Skip to content

Commit

Permalink
Merge pull request #107712 from flokli/iwd-fix-cross
Browse files Browse the repository at this point in the history
Iwd: fix cross compilation
  • Loading branch information
flokli committed Dec 27, 2020
2 parents c958c1b + d24918b commit 5bfb673
Show file tree
Hide file tree
Showing 4 changed files with 97 additions and 73 deletions.
@@ -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

9 changes: 5 additions & 4 deletions pkgs/os-specific/linux/ell/default.nix
Expand Up @@ -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 = [
Expand Down
65 changes: 0 additions & 65 deletions pkgs/os-specific/linux/ell/fix-dbus-tests.patch

This file was deleted.

12 changes: 8 additions & 4 deletions pkgs/os-specific/linux/iwd/default.nix
Expand Up @@ -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
Expand All @@ -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
];
Expand All @@ -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 = ''
Expand Down

0 comments on commit 5bfb673

Please sign in to comment.