Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

upower: add port #383

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 66 additions & 0 deletions bootstrap.d/dev-libs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -885,6 +885,72 @@ packages:
DESTDIR: '@THIS_COLLECT_DIR@'
quiet: true

- name: libgudev
architecture: '@OPTION:arch@'
metadata:
summary: GObject bindings for libudev
description: This package contains GObject bindings for libudev.
spdx: 'LGPL-2.1-or-later'
website: 'https://wiki.gnome.org/Projects/libgudev'
maintainer: "Dennis Bonke <dennis@managarm.org>"
categories: ['dev-libs']
source:
subdir: 'ports'
git: 'https://gitlab.gnome.org/GNOME/libgudev.git'
tag: '237' # DON'T BUMP, DOES NOT WORK WITH EUDEV
version: '237'
tools_required:
- system-gcc
- virtual: pkgconfig-for-target
triple: "@OPTION:arch-triple@"
- host-mlibc
- host-gobject-introspection
- host-python
- host-glib
pkgs_required:
- mlibc
- glib
- eudev
- gobject-introspection
revision: 1
configure:
- args:
- 'meson'
- 'setup'
- '--cross-file'
- '@SOURCE_ROOT@/scripts/meson-@OPTION:arch-triple@.cross-file'
- '--prefix=/usr'
- '--buildtype=release'
- '--wrap-mode=nodownload'
- '-Dintrospection=enabled'
- '-Dvapi=disabled'
- '-Dgtk_doc=false'
- '@THIS_SOURCE_DIR@'
environ:
# Same as below
RUN_WRAPPER_LD_LIBRARY_PATH: '@BUILD_ROOT@/tools/host-mlibc/lib:@SYSROOT_DIR@/usr/lib:@SYSROOT_DIR@/usr/lib64:@THIS_BUILD_DIR@/girepository'
RUN_WRAPPER_INTERP: '@BUILD_ROOT@/tools/host-mlibc/lib/ld.so'
build:
- args: ['ninja']
environ:
# Make python load host libraries instead of the ones in the rootfs
LD_LIBRARY_PATH: '@BUILD_ROOT@/tools/host-glib/lib:@BUILD_ROOT@/tools/host-glib/lib/x86_64-linux-gnu:@BUILD_ROOT@/tools/host-gobject-introspection/lib/x86_64-linux-gnu'
# Library path for our run-wrapper that allows it to load managarm libraries
RUN_WRAPPER_LD_LIBRARY_PATH: '@BUILD_ROOT@/tools/host-mlibc/lib:@SYSROOT_DIR@/usr/lib:@SYSROOT_DIR@/usr/lib64:@THIS_BUILD_DIR@/girepository'
# Similar to above, but using a nasty (but working) hack lets us use a Linux mlibc build to execute an
# executable that was cross-compiled for managarm
RUN_WRAPPER_INTERP: '@BUILD_ROOT@/tools/host-mlibc/lib/ld.so'
# This is a custom environment variable which tells g-ir-scanner what to use instead of ldd
# We point it at our native ldd-wrapper that's installed as part of host-gobject-introspection
GI_LDD_WRAPPER: ldd-wrapper
# This tells g-ir-scanner what program should be used for "cross-launching" the executables it builds
GI_CROSS_LAUNCHER: run-wrapper
# Path to the introspection data installed by other packages
GI_GIR_PATH: '@SYSROOT_DIR@/usr/share/gir-1.0'
- args: ['ninja', 'install']
environ:
DESTDIR: '@THIS_COLLECT_DIR@'

- name: libiconv
labels: [aarch64]
architecture: '@OPTION:arch@'
Expand Down
49 changes: 49 additions & 0 deletions bootstrap.d/sys-power.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
packages:
- name: upower
metadata:
summary: D-Bus abstraction for enumerating power devices, querying history and statistics.
description: UPower is an abstraction for enumerating power devices, listening to device events and querying history and statistics. Any application or service on the system can access the org.freedesktop.UPower service via the system message bus.
spdx: 'GPL-2.0-or-later'
website: 'https://upower.freedesktop.org/'
maintainer: "no92 <leo@managarm.org>"
categories: ['sys-power']
source:
subdir: 'ports'
git: 'https://gitlab.freedesktop.org/upower/upower.git'
tag: 'v1.90.6'
version: '1.90.6'
tools_required:
- system-gcc
- host-glib
- virtual: pkgconfig-for-target
triple: "@OPTION:arch-triple@"
pkgs_required:
- mlibc
- libgudev
- glib
revision: 1
configure:
- args:
- 'meson'
- 'setup'
- '--cross-file'
- '@SOURCE_ROOT@/scripts/meson-@OPTION:arch-triple@.cross-file'
- '--prefix=/usr'
- '--buildtype=debugoptimized'
- '--wrap-mode=nofallback'
- '-Dsystemdsystemunitdir=no'
- '-Dos_backend=linux'
- '-Dintrospection=disabled'
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can just enable introspection

- '-Didevice=disabled'
- '-Dpolkit=disabled'
- '-Dgtk-doc=false'
- '-Dman=false'
- '-Dudevrulesdir=lib/udev'
- '-Dudevhwdbdir=lib/udev'
- '@THIS_SOURCE_DIR@'
build:
- args: ['ninja']
- args: ['ninja', 'install']
environ:
DESTDIR: '@THIS_COLLECT_DIR@'
quiet: true
1 change: 1 addition & 0 deletions bootstrap.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ imports:
- file: bootstrap.d/sys-devel.yml
- file: bootstrap.d/sys-kernel.yml
- file: bootstrap.d/sys-libs.yml
- file: bootstrap.d/sys-power.yml
- file: bootstrap.d/sys-process.yml
- file: bootstrap.d/www-client.yml
- file: bootstrap.d/x11-apps.yml
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
From a8d0d09bce568e9aeb62b7b432466263479a1f01 Mon Sep 17 00:00:00 2001
From: no92 <no92.mail@gmail.com>
Date: Fri, 27 Sep 2024 15:08:20 +0200
Subject: [PATCH] Require gudev-1.0 version >= 237 for managarm compatability

---
meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meson.build b/meson.build
index aff36e4..ee758e6 100644
--- a/meson.build
+++ b/meson.build
@@ -79,7 +79,7 @@ gobject_introspection = dependency('gobject-introspection-1.0', required: get_op


if os_backend == 'linux'
- gudev_dep = dependency('gudev-1.0', version: '>= 238')
+ gudev_dep = dependency('gudev-1.0', version: '>= 237')
idevice_dep = dependency('libimobiledevice-1.0',
version : '>= 0.9.7',
required : get_option('idevice'))
--
2.46.1

Loading