about summary refs log tree commit diff
path: root/pkgs/os-specific
diff options
context:
space:
mode:
authorFlorian Klink <flokli@flokli.de>2020-12-27 15:20:52 +0100
committerGitHub <noreply@github.com>2020-12-27 15:20:52 +0100
commit5bfb673137d95ea3339b491edcd04dff6c271580 (patch)
tree558b9b1731ebeaeade65b56c95fa9fe62422bf55 /pkgs/os-specific
parentc958c1b6b2f94f2d1e45809cf4097aa72439130a (diff)
parentd24918b70e5aaa41aaa55b393cd1341377acfb00 (diff)
downloadnixlib-5bfb673137d95ea3339b491edcd04dff6c271580.tar
nixlib-5bfb673137d95ea3339b491edcd04dff6c271580.tar.gz
nixlib-5bfb673137d95ea3339b491edcd04dff6c271580.tar.bz2
nixlib-5bfb673137d95ea3339b491edcd04dff6c271580.tar.lz
nixlib-5bfb673137d95ea3339b491edcd04dff6c271580.tar.xz
nixlib-5bfb673137d95ea3339b491edcd04dff6c271580.tar.zst
nixlib-5bfb673137d95ea3339b491edcd04dff6c271580.zip
Merge pull request #107712 from flokli/iwd-fix-cross
Iwd: fix cross compilation
Diffstat (limited to 'pkgs/os-specific')
-rw-r--r--pkgs/os-specific/linux/ell/0001-unit-test-dbus-pick-up-dbus-daemon-from-PATH.patch84
-rw-r--r--pkgs/os-specific/linux/ell/default.nix9
-rw-r--r--pkgs/os-specific/linux/ell/fix-dbus-tests.patch65
-rw-r--r--pkgs/os-specific/linux/iwd/default.nix12
4 files changed, 97 insertions, 73 deletions
diff --git a/pkgs/os-specific/linux/ell/0001-unit-test-dbus-pick-up-dbus-daemon-from-PATH.patch b/pkgs/os-specific/linux/ell/0001-unit-test-dbus-pick-up-dbus-daemon-from-PATH.patch
new file mode 100644
index 000000000000..c2d844edecd1
--- /dev/null
+++ b/pkgs/os-specific/linux/ell/0001-unit-test-dbus-pick-up-dbus-daemon-from-PATH.patch
@@ -0,0 +1,84 @@
+From 55d499f4cd5667c04c21f7201d7f10484e187907 Mon Sep 17 00:00:00 2001
+From: Florian Klink <flokli@flokli.de>
+Date: Sun, 27 Dec 2020 13:03:12 +0100
+Subject: [PATCH] unit/test-dbus: pick up dbus-daemon from $PATH
+
+This allows running the unit tests in environments where `dbus-daemon`
+isn't in /usr/bin, but in $PATH.
+
+Signed-off-by: Florian Klink <flokli@flokli.de>
+---
+ unit/test-dbus-message-fds.c | 4 ++--
+ unit/test-dbus-properties.c  | 4 ++--
+ unit/test-dbus.c             | 4 ++--
+ 3 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/unit/test-dbus-message-fds.c b/unit/test-dbus-message-fds.c
+index 6f68bae..4b5662e 100644
+--- a/unit/test-dbus-message-fds.c
++++ b/unit/test-dbus-message-fds.c
+@@ -51,7 +51,7 @@ static bool start_dbus_daemon(void)
+ 	char *prg_envp[1];
+ 	pid_t pid;
+ 
+-	prg_argv[0] = "/usr/bin/dbus-daemon";
++	prg_argv[0] = "dbus-daemon";
+ 	prg_argv[1] = "--nopidfile";
+ 	prg_argv[2] = "--nofork";
+ 	prg_argv[3] = "--config-file=" UNITDIR "dbus.conf";
+@@ -68,7 +68,7 @@ static bool start_dbus_daemon(void)
+ 	}
+ 
+ 	if (pid == 0) {
+-		execve(prg_argv[0], prg_argv, prg_envp);
++		execvpe(prg_argv[0], prg_argv, prg_envp);
+ 		exit(EXIT_SUCCESS);
+ 	}
+ 
+diff --git a/unit/test-dbus-properties.c b/unit/test-dbus-properties.c
+index b435062..049f0f4 100644
+--- a/unit/test-dbus-properties.c
++++ b/unit/test-dbus-properties.c
+@@ -49,7 +49,7 @@ static bool start_dbus_daemon(void)
+ 	char *prg_envp[1];
+ 	pid_t pid;
+ 
+-	prg_argv[0] = "/usr/bin/dbus-daemon";
++	prg_argv[0] = "dbus-daemon";
+ 	prg_argv[1] = "--nopidfile";
+ 	prg_argv[2] = "--nofork";
+ 	prg_argv[3] = "--config-file=" UNITDIR "dbus.conf";
+@@ -66,7 +66,7 @@ static bool start_dbus_daemon(void)
+ 	}
+ 
+ 	if (pid == 0) {
+-		execve(prg_argv[0], prg_argv, prg_envp);
++		execvpe(prg_argv[0], prg_argv, prg_envp);
+ 		exit(EXIT_SUCCESS);
+ 	}
+ 
+diff --git a/unit/test-dbus.c b/unit/test-dbus.c
+index 67f0a7b..582847e 100644
+--- a/unit/test-dbus.c
++++ b/unit/test-dbus.c
+@@ -45,7 +45,7 @@ static void start_dbus_daemon(void)
+ 	char *prg_envp[1];
+ 	pid_t pid;
+ 
+-	prg_argv[0] = "/usr/bin/dbus-daemon";
++	prg_argv[0] = "dbus-daemon";
+ 	prg_argv[1] = "--nopidfile";
+ 	prg_argv[2] = "--nofork";
+ 	prg_argv[3] = "--config-file=" UNITDIR "dbus.conf";
+@@ -62,7 +62,7 @@ static void start_dbus_daemon(void)
+ 	}
+ 
+ 	if (pid == 0) {
+-		execve(prg_argv[0], prg_argv, prg_envp);
++		execvpe(prg_argv[0], prg_argv, prg_envp);
+ 		exit(EXIT_SUCCESS);
+ 	}
+ 
+-- 
+2.29.2
+
diff --git a/pkgs/os-specific/linux/ell/default.nix b/pkgs/os-specific/linux/ell/default.nix
index 21f98889ca57..c6aed21cd8e8 100644
--- a/pkgs/os-specific/linux/ell/default.nix
+++ b/pkgs/os-specific/linux/ell/default.nix
@@ -12,13 +12,14 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "dev" ];
 
   src = fetchgit {
-     url = "https://git.kernel.org/pub/scm/libs/${pname}/${pname}.git";
-     rev = version;
-     sha256 = "16z7xwlrpx1bsr2y1rgxxxixzwc84cwn2g557iqxhwsxfzy6q3dk";
+    url = "https://git.kernel.org/pub/scm/libs/${pname}/${pname}.git";
+    rev = version;
+    sha256 = "16z7xwlrpx1bsr2y1rgxxxixzwc84cwn2g557iqxhwsxfzy6q3dk";
   };
 
   patches = [
-    ./fix-dbus-tests.patch
+    # Sent upstream in https://lists.01.org/hyperkitty/list/ell@lists.01.org/thread/SQEZAIS2LZXSXGTXOW3GTAM5ZPXRLTN4/
+    ./0001-unit-test-dbus-pick-up-dbus-daemon-from-PATH.patch
   ];
 
   nativeBuildInputs = [
diff --git a/pkgs/os-specific/linux/ell/fix-dbus-tests.patch b/pkgs/os-specific/linux/ell/fix-dbus-tests.patch
deleted file mode 100644
index b494ba8b43c9..000000000000
--- a/pkgs/os-specific/linux/ell/fix-dbus-tests.patch
+++ /dev/null
@@ -1,65 +0,0 @@
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -140,6 +140,7 @@
- ell_libell_private_la_SOURCES = $(ell_libell_la_SOURCES)
- 
- AM_CFLAGS = -fvisibility=hidden -DUNITDIR=\""$(top_srcdir)/unit/"\" \
-+				-DDBUS_DAEMON=\""$(DBUS_DAEMONDIR)/dbus-daemon"\" \
- 				-DCERTDIR=\""$(top_builddir)/unit/"\"
- 
- pkgconfigdir = $(libdir)/pkgconfig
---- a/configure.ac
-+++ b/configure.ac
-@@ -14,6 +14,8 @@
- 
- AC_PREFIX_DEFAULT(/usr/local)
- 
-+PKG_PROG_PKG_CONFIG
-+
- COMPILER_FLAGS
- 
- AC_LANG_C
-@@ -131,6 +133,10 @@
- 	AC_CHECK_PROG(have_xxd, [xxd], [yes], [no])
- fi
- 
-+PKG_CHECK_MODULES(DBUS, dbus-1, dummy=yes,
-+			AC_MSG_ERROR(D-Bus is required for running tests))
-+PKG_CHECK_VAR(DBUS_DAEMONDIR, dbus-1, daemondir)
-+
- AM_CONDITIONAL(DBUS_TESTS, test "${little_endian}" = "yes")
- AM_CONDITIONAL(CERT_TESTS, test "${have_openssl}" = "yes")
- 
---- a/unit/test-dbus-message-fds.c
-+++ b/unit/test-dbus-message-fds.c
-@@ -51,7 +51,7 @@
- 	char *prg_envp[1];
- 	pid_t pid;
- 
--	prg_argv[0] = "/usr/bin/dbus-daemon";
-+	prg_argv[0] = DBUS_DAEMON;
- 	prg_argv[1] = "--nopidfile";
- 	prg_argv[2] = "--nofork";
- 	prg_argv[3] = "--config-file=" UNITDIR "dbus.conf";
---- a/unit/test-dbus-properties.c
-+++ b/unit/test-dbus-properties.c
-@@ -48,7 +48,7 @@
- 	char *prg_envp[1];
- 	pid_t pid;
- 
--	prg_argv[0] = "/usr/bin/dbus-daemon";
-+	prg_argv[0] = DBUS_DAEMON;
- 	prg_argv[1] = "--nopidfile";
- 	prg_argv[2] = "--nofork";
- 	prg_argv[3] = "--config-file=" UNITDIR "dbus.conf";
---- a/unit/test-dbus.c
-+++ b/unit/test-dbus.c
-@@ -45,7 +45,7 @@
- 	char *prg_envp[1];
- 	pid_t pid;
- 
--	prg_argv[0] = "/usr/bin/dbus-daemon";
-+	prg_argv[0] = DBUS_DAEMON;
- 	prg_argv[1] = "--nopidfile";
- 	prg_argv[2] = "--nofork";
- 	prg_argv[3] = "--config-file=" UNITDIR "dbus.conf";
diff --git a/pkgs/os-specific/linux/iwd/default.nix b/pkgs/os-specific/linux/iwd/default.nix
index 64ac3342acf2..0cbd7ff3a3ad 100644
--- a/pkgs/os-specific/linux/iwd/default.nix
+++ b/pkgs/os-specific/linux/iwd/default.nix
@@ -21,7 +21,8 @@ stdenv.mkDerivation rec {
     sha256 = "0gzpdgfwzlqj2n3amf2zhi2hlpa412878yphgx79y6b5gn1y1lm2";
   };
 
-  outputs = [ "out" "man" "test" ];
+  outputs = [ "out" "man" ]
+    ++ stdenv.lib.optional (stdenv.hostPlatform == stdenv.buildPlatform) "test";
 
   nativeBuildInputs = [
     autoreconfHook
@@ -38,7 +39,9 @@ stdenv.mkDerivation rec {
 
   checkInputs = [ openssl ];
 
-  pythonPath = [
+  # wrapPython wraps the scripts in $test. They pull in gobject-introspection,
+  # which doesn't cross-compile.
+  pythonPath = stdenv.lib.optionals (stdenv.hostPlatform == stdenv.buildPlatform) [
     python3Packages.dbus-python
     python3Packages.pygobject3
   ];
@@ -61,11 +64,12 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   postInstall = ''
-    mkdir -p $test/bin
-    cp -a test/* $test/bin/
     mkdir -p $out/share
     cp -a doc $out/share/
     cp -a README AUTHORS TODO $out/share/doc/
+  '' + stdenv.lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) ''
+    mkdir -p $test/bin
+    cp -a test/* $test/bin/
   '';
 
   preFixup = ''