summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Klink <flokli@flokli.de>2020-01-11 21:13:42 +0100
committerBjørn Forsman <bjorn.forsman@gmail.com>2020-01-12 00:01:59 +0100
commit1ec5d8249c703269bbaf690e497b4b659b9ee4d2 (patch)
treed9190129a7885633b3f9065562fea0a68118612c
parentpythonPackages.measurement: now python3 only (diff)
downloadnixpkgs-1ec5d8249c703269bbaf690e497b4b659b9ee4d2.tar.gz
davfs2: substitute ps command
umount.davfs2 uses ps to get a process list to terminate gracefully. On NixOS, this currently fails: ``` sh: ps: command not found /run/current-system/sw/bin/umount.davfs: can't find mount.davfs-process with pid 4085; trying to unmount anyway. you propably have to remove /var/run/mount.davfs/root-x.pid manually sh: umount: command not found ``` Fix this by patching ${procps}/bin/ps into the ps_command. Afterwards: ``` umount.davfs: waiting for mount.davfs (pid 4106) to terminate gracefully .. OK ```
-rw-r--r--pkgs/tools/filesystems/davfs2/0001-umount_davfs-substitute-ps-command.patch25
-rw-r--r--pkgs/tools/filesystems/davfs2/default.nix22
2 files changed, 44 insertions, 3 deletions
diff --git a/pkgs/tools/filesystems/davfs2/0001-umount_davfs-substitute-ps-command.patch b/pkgs/tools/filesystems/davfs2/0001-umount_davfs-substitute-ps-command.patch
new file mode 100644
index 000000000000..3fbbc4c7d0fd
--- /dev/null
+++ b/pkgs/tools/filesystems/davfs2/0001-umount_davfs-substitute-ps-command.patch
@@ -0,0 +1,25 @@
+From 0cb1321c4cbb2978318ddad73c9ee6f2a19c55c8 Mon Sep 17 00:00:00 2001
+From: Florian Klink <flokli@flokli.de>
+Date: Sat, 11 Jan 2020 21:06:33 +0100
+Subject: [PATCH] umount_davfs: substitute ps command
+
+---
+ src/umount_davfs.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/umount_davfs.c b/src/umount_davfs.c
+index b7019c3..a278679 100644
+--- a/src/umount_davfs.c
++++ b/src/umount_davfs.c
+@@ -157,7 +157,7 @@ main(int argc, char *argv[])
+ }
+ fclose(file);
+
+- char *ps_command = ne_concat("ps -p ", pid, NULL);
++ char *ps_command = ne_concat("@ps@ -p ", pid, NULL);
+ FILE *ps_in = popen(ps_command, "r");
+ if (!ps_in) {
+ error(0, 0,
+--
+2.24.1
+
diff --git a/pkgs/tools/filesystems/davfs2/default.nix b/pkgs/tools/filesystems/davfs2/default.nix
index a0d2cfd4ef7d..366db929f582 100644
--- a/pkgs/tools/filesystems/davfs2/default.nix
+++ b/pkgs/tools/filesystems/davfs2/default.nix
@@ -1,4 +1,10 @@
-{ stdenv, fetchurl, neon, zlib }:
+{ stdenv
+, fetchurl
+, neon
+, procps
+, substituteAll
+, zlib
+}:
stdenv.mkDerivation rec {
name = "davfs2-1.5.6";
@@ -10,11 +16,21 @@ stdenv.mkDerivation rec {
buildInputs = [ neon zlib ];
- patches = [ ./isdir.patch ./fix-sysconfdir.patch ];
+ patches = [
+ ./isdir.patch
+ ./fix-sysconfdir.patch
+ (substituteAll {
+ src = ./0001-umount_davfs-substitute-ps-command.patch;
+ ps = "${procps}/bin/ps";
+ })
+ ];
configureFlags = [ "--sysconfdir=/etc" ];
- makeFlags = ["sbindir=$(out)/sbin" "ssbindir=$(out)/sbin"];
+ makeFlags = [
+ "sbindir=$(out)/sbin"
+ "ssbindir=$(out)/sbin"
+ ];
meta = {
homepage = https://savannah.nongnu.org/projects/davfs2;