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, power-profiles-daemon: Fix GI_TYPELIB_PATH for tests #182687

Merged
merged 2 commits into from
Jul 24, 2022

Conversation

YorikSar
Copy link
Contributor

@YorikSar YorikSar commented Jul 24, 2022

Description of changes

gobject-introspection doesn't handle checkInputs since #177538, so tests couldn't find UMockdev namespace. Added umockdev to buildInputs.

Things done
  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 22.11 Release Notes (or backporting 22.05 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
    • (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes
  • Fits CONTRIBUTING.md.

@YorikSar YorikSar mentioned this pull request Jul 24, 2022
13 tasks
@YorikSar
Copy link
Contributor Author

Note that this includes #182668 that fixes umockdev build in staging-next.

@YorikSar
Copy link
Contributor Author

Looks like power-profiles-daemon also suffers from the same error. Will add fix to this branch.

@YorikSar YorikSar changed the title upower: Fix GI_TYPELIB_PATH for tests upower, power-profiles-daemon: Fix GI_TYPELIB_PATH for tests Jul 24, 2022
@ofborg ofborg bot requested a review from mvnetbiz July 24, 2022 12:04
@jtojnar
Copy link
Member

jtojnar commented Jul 24, 2022

Do not like it very much but I guess it is an okay workaround until it is fixed properly. cc @Artturin

@Artturin
Copy link
Member

Im checking it out, do not merge yet

gobject-introspection doesn't handle checkInputs since
NixOS#177538, so tests
couldn't find UMockdev namespace. Added umockdev to buildInputs.
gobject-introspection doesn't handle checkInputs since
NixOS#177538.
Added umockdev to buildInputs.
@YorikSar YorikSar requested a review from Artturin July 24, 2022 19:41
@Artturin Artturin merged commit 66f6d19 into NixOS:staging-next Jul 24, 2022
@YorikSar YorikSar deleted the upower-bump branch July 25, 2022 05:04
@Mindavi
Copy link
Contributor

Mindavi commented Jul 25, 2022

This broke cross-compilation for upower since umockdev doesn't cross-compile properly.

Installing /build/umockdev-0.17.13/src/umockdev-wrapper to /nix/store/1qblp8rylkg0a0y6jlfv8b2m8innkl9d-umockdev-aarch64-unknown-linux-gnu-0.17.13-bin/bin
Running custom install script '/nix/store/v35hli0b3na323sjh7q5057pxmqw2v5x-meson-0.61.2/bin/meson --internal gtkdoc --sourcedir=/build/umockdev-0.17.13 --builddir=/build/umockdev-0.17.13/build --subdir=docs/reference --headerdirs=/build/umockdev-0.17.13/build --mainfile=umockdev-docs.xml --modulename=umockdev --moduleversion= --mode=auto --gtkdoc-scan=/nix/store/n55ybhsaqp7alvpi7878wnqk2n6ry6xp-gtk-doc-1.33.2/bin/gtkdoc-scan --gtkdoc-scangobj=/nix/store/n55ybhsaqp7alvpi7878wnqk2n6ry6xp-gtk-doc-1.33.2/bin/gtkdoc-scangobj --gtkdoc-mkdb=/nix/store/n55ybhsaqp7alvpi7878wnqk2n6ry6xp-gtk-doc-1.33.2/bin/gtkdoc-mkdb --gtkdoc-mkhtml=/nix/store/n55ybhsaqp7alvpi7878wnqk2n6ry6xp-gtk-doc-1.33.2/bin/gtkdoc-mkhtml --gtkdoc-fixxref=/nix/store/n55ybhsaqp7alvpi7878wnqk2n6ry6xp-gtk-doc-1.33.2/bin/gtkdoc-fixxref --htmlargs= --scanargs=--ignore-decorators@@VALA_EXTERN --scanobjsargs= --gobjects-types-file=/build/umockdev-0.17.13/docs/reference/umockdev.types --fixxrefargs= --mkdbargs= --html-assets= --content-files=/build/umockdev-0.17.13/build/docs/reference/version.xml --expand-content-files= --ignore-headers=uevent_sender.h@@ioctl_tree.h@@debug.h --installdir= --cc=aarch64-unknown-linux-gnu-gcc --ld=aarch64-unknown-linux-gnu-gcc --cflags=-I/nix/store/jnrniljmhip62x6nycvcl3pllx55cd9l-glib-aarch64-unknown-linux-gnu-2.72.3-dev/include/glib-2.0 -I/nix/store/dfy1ajhqbz8ma60s3q9zqgirgyjv668r-glib-aarch64-unknown-linux-gnu-2.72.3/lib/glib-2.0/include -I/nix/store/jnrniljmhip62x6nycvcl3pllx55cd9l-glib-aarch64-unknown-linux-gnu-2.72.3-dev/include -I/nix/store/jnrniljmhip62x6nycvcl3pllx55cd9l-glib-aarch64-unknown-linux-gnu-2.72.3-dev/include/gio-unix-2.0 -I/nix/store/ynha2wg9nl4hrhys9il9j5vm72lmwxfj-libpcap-aarch64-unknown-linux-gnu-1.10.1/include -Werror=missing-prototypes -Werror=strict-prototypes -Werror=nested-externs -Werror=pointer-arith -Werror=implicit-function-declaration -Werror=pointer-arith -Werror=init-self -Werror=format-security -Werror=format=2 -Werror=unused-variable -Werror=return-type -Werror=uninitialized -Wcast-align -Wno-error=pragmas --ldflags=-L/build/umockdev-0.17.13/build/ -Wl,-rpath,/build/umockdev-0.17.13/build/ -lumockdev -L/nix/store/dfy1ajhqbz8ma60s3q9zqgirgyjv668r-glib-aarch64-unknown-linux-gnu-2.72.3/lib -lglib-2.0 -lgobject-2.0 -lgio-2.0 -ludev -lutil -L/nix/store/ynha2wg9nl4hrhys9il9j5vm72lmwxfj-libpcap-aarch64-unknown-linux-gnu-1.10.1/lib -lpcap'
--- stdout ---
Building documentation for umockdev
ERROR: Error in gtkdoc helper script:

ERROR: ['/nix/store/n55ybhsaqp7alvpi7878wnqk2n6ry6xp-gtk-doc-1.33.2/bin/gtkdoc-scangobj', '--types=/build/umockdev-0.17.13/docs/reference/umockdev.types', '--module=umockdev', '--run=', '--cflags=-I/nix/store/jnrniljmhip62x6nycvcl3pllx55cd9l-glib-aarch64-unknown-linux-gnu-2.72.3-dev/include/glib-2.0 -I/nix/store/dfy1ajhqbz8ma60s3q9zqgirgyjv668r-glib-aarch64-unknown-linux-gnu-2.72.3/lib/glib-2.0/include -I/nix/store/jnrniljmhip62x6nycvcl3pllx55cd9l-glib-aarch64-unknown-linux-gnu-2.72.3-dev/include -I/nix/store/jnrniljmhip62x6nycvcl3pllx55cd9l-glib-aarch64-unknown-linux-gnu-2.72.3-dev/include/gio-unix-2.0 -I/nix/store/ynha2wg9nl4hrhys9il9j5vm72lmwxfj-libpcap-aarch64-unknown-linux-gnu-1.10.1/include -Werror=missing-prototypes -Werror=strict-prototypes -Werror=nested-externs -Werror=pointer-arith -Werror=implicit-function-declaration -Werror=pointer-arith -Werror=init-self -Werror=format-security -Werror=format=2 -Werror=unused-variable -Werror=return-type -Werror=uninitialized -Wcast-align -Wno-error=pragmas', '--ldflags=-L/build/umockdev-0.17.13/build/ -Wl,-rpath,/build/umockdev-0.17.13/build/ -lumockdev -L/nix/store/dfy1ajhqbz8ma60s3q9zqgirgyjv668r-glib-aarch64-unknown-linux-gnu-2.72.3/lib -lglib-2.0 -lgobject-2.0 -lgio-2.0 -ludev -lutil -L/nix/store/ynha2wg9nl4hrhys9il9j5vm72lmwxfj-libpcap-aarch64-unknown-linux-gnu-1.10.1/lib -lpcap', '--cc=aarch64-unknown-linux-gnu-gcc', '--ld=aarch64-unknown-linux-gnu-gcc', '--output-dir=/build/umockdev-0.17.13/build/docs/reference'] failed with status 1
2022-07-24 22:29:19,374:scangobj.py:execute_command:1293:WARNING:Running scanner failed: [Errno 8] Exec format error: './umockdev-scan', command: ./umockdev-scan


--- stderr ---

FAILED: install script '/nix/store/v35hli0b3na323sjh7q5057pxmqw2v5x-meson-0.61.2/bin/meson --internal gtkdoc --sourcedir=/build/umockdev-0.17.13 --builddir=/build/umockdev-0.17.13/build --subdir=docs/reference --headerdirs=/build/umockdev-0.17.13/build --mainfile=umockdev-docs.xml --modulename=umockdev --moduleversion= --mode=auto --gtkdoc-scan=/nix/store/n55ybhsaqp7alvpi7878wnqk2n6ry6xp-gtk-doc-1.33.2/bin/gtkdoc-scan --gtkdoc-scangobj=/nix/store/n55ybhsaqp7alvpi7878wnqk2n6ry6xp-gtk-doc-1.33.2/bin/gtkdoc-scangobj --gtkdoc-mkdb=/nix/store/n55ybhsaqp7alvpi7878wnqk2n6ry6xp-gtk-doc-1.33.2/bin/gtkdoc-mkdb --gtkdoc-mkhtml=/nix/store/n55ybhsaqp7alvpi7878wnqk2n6ry6xp-gtk-doc-1.33.2/bin/gtkdoc-mkhtml --gtkdoc-fixxref=/nix/store/n55ybhsaqp7alvpi7878wnqk2n6ry6xp-gtk-doc-1.33.2/bin/gtkdoc-fixxref --htmlargs= --scanargs=--ignore-decorators@@VALA_EXTERN --scanobjsargs= --gobjects-types-file=/build/umockdev-0.17.13/docs/reference/umockdev.types --fixxrefargs= --mkdbargs= --html-assets= --content-files=/build/umockdev-0.17.13/build/docs/reference/version.xml --expand-content-files= --ignore-headers=uevent_sender.h@@ioctl_tree.h@@debug.h --installdir= --cc=aarch64-unknown-linux-gnu-gcc --ld=aarch64-unknown-linux-gnu-gcc --cflags=-I/nix/store/jnrniljmhip62x6nycvcl3pllx55cd9l-glib-aarch64-unknown-linux-gnu-2.72.3-dev/include/glib-2.0 -I/nix/store/dfy1ajhqbz8ma60s3q9zqgirgyjv668r-glib-aarch64-unknown-linux-gnu-2.72.3/lib/glib-2.0/include -I/nix/store/jnrniljmhip62x6nycvcl3pllx55cd9l-glib-aarch64-unknown-linux-gnu-2.72.3-dev/include -I/nix/store/jnrniljmhip62x6nycvcl3pllx55cd9l-glib-aarch64-unknown-linux-gnu-2.72.3-dev/include/gio-unix-2.0 -I/nix/store/ynha2wg9nl4hrhys9il9j5vm72lmwxfj-libpcap-aarch64-unknown-linux-gnu-1.10.1/include -Werror=missing-prototypes -Werror=strict-prototypes -Werror=nested-externs -Werror=pointer-arith -Werror=implicit-function-declaration -Werror=pointer-arith -Werror=init-self -Werror=format-security -Werror=format=2 -Werror=unused-variable -Werror=return-type -Werror=uninitialized -Wcast-align -Wno-error=pragmas --ldflags=-L/build/umockdev-0.17.13/build/ -Wl,-rpath,/build/umockdev-0.17.13/build/ -lumockdev -L/nix/store/dfy1ajhqbz8ma60s3q9zqgirgyjv668r-glib-aarch64-unknown-linux-gnu-2.72.3/lib -lglib-2.0 -lgobject-2.0 -lgio-2.0 -ludev -lutil -L/nix/store/ynha2wg9nl4hrhys9il9j5vm72lmwxfj-libpcap-aarch64-unknown-linux-gnu-1.10.1/lib -lpcap' exit code 1, stopped
FAILED: meson-install
/nix/store/v35hli0b3na323sjh7q5057pxmqw2v5x-meson-0.61.2/bin/meson install --no-rebuild
ninja: build stopped: subcommand failed.

I'll take a quick look to see if it's easily fixable.

Edit: it seems an issue related to the gobject fixes Artturin has looked into lately

Lazy fix here:

diff --git a/pkgs/development/libraries/umockdev/default.nix b/pkgs/development/libraries/umockdev/default.nix
index 60d74f43b6a..6069a7bf154 100644
--- a/pkgs/development/libraries/umockdev/default.nix
+++ b/pkgs/development/libraries/umockdev/default.nix
@@ -21,7 +21,8 @@ stdenv.mkDerivation rec {
   pname = "umockdev";
   version = "0.17.13";
 
-  outputs = [ "bin" "out" "dev" "devdoc" ];
+  outputs = [ "bin" "out" "dev" ]
+    ++ lib.optional (stdenv.buildPlatform == stdenv.hostPlatform) "devdoc";
 
   src = fetchurl {
     url = "https://github.com/martinpitt/umockdev/releases/download/${version}/${pname}-${version}.tar.xz";
@@ -45,6 +46,7 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
+    gobject-introspection
     glib
     systemd
     libgudev
@@ -58,7 +60,7 @@ stdenv.mkDerivation rec {
   ];
 
   mesonFlags = [
-    "-Dgtk_doc=true"
+    "-Dgtk_doc=${lib.boolToString (stdenv.buildPlatform == stdenv.hostPlatform)}"
   ];
 
   doCheck = true;

@Artturin
Copy link
Member

Proper fix is to use mesonEmulatorHook

@Mindavi
Copy link
Contributor

Mindavi commented Jul 25, 2022

Oh! I thought it wasn't using meson, guess I'm a bit tired. Thanks.

@Artturin
Copy link
Member

i'll send the fix to staging-next because I changed the logic of mesonEmulatorHook throw and if I add mesonEmulatorHook to it on master then when staging-next is merged there will be a throw

@Artturin
Copy link
Member

12b2eae

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants