Unverified Commit d57fd6a5 authored by Peder Bergebakken Sundt's avatar Peder Bergebakken Sundt Committed by GitHub
Browse files

fdtools: 2020.05.04 -> 2024.12.07 (#507150)

parents 2bd66f33 e789ccec
Loading
Loading
Loading
Loading
+120 −0
Original line number Diff line number Diff line
diff --git a/fdtools-2024.12.07/src/check_exit_exec.c b/fdtools-2024.12.07/src/check_exit_exec.c
index 6bb6860..87f26b4 100644
--- a/fdtools-2024.12.07/src/check_exit_exec.c
+++ b/fdtools-2024.12.07/src/check_exit_exec.c
@@ -3,6 +3,7 @@
 #include <errno.h>
 
 #include <skalibs/stddjb.h>
+#include <skalibs/exec.h>
 #include "prjlibs-c/constants.h"
 #include "prjlibs-c/diewarn.h"
 #include "check_exit_exec.h"
diff --git a/fdtools-2024.12.07/src/grabconsole.c b/fdtools-2024.12.07/src/grabconsole.c
index 8da1233..316ea95 100644
--- a/fdtools-2024.12.07/src/grabconsole.c
+++ b/fdtools-2024.12.07/src/grabconsole.c
@@ -4,6 +4,7 @@
 #include <errno.h>
 
 #include <skalibs/stddjb.h>
+#include <skalibs/exec.h>
 #include "prjlibs-c/constants.h"
 #include "prjlibs-c/diewarn.h"
 #include "prjlibs-c/types.h"
diff --git a/fdtools-2024.12.07/src/pipecycle.c b/fdtools-2024.12.07/src/pipecycle.c
index 5042a52..652dd69 100644
--- a/fdtools-2024.12.07/src/pipecycle.c
+++ b/fdtools-2024.12.07/src/pipecycle.c
@@ -5,6 +5,7 @@
 #include <signal.h>
 
 #include <skalibs/stddjb.h>
+#include <skalibs/exec.h>
 #include "prjlibs-c/diewarn.h"
 #include "prjlibs-c/types.h"
 #include "prjlibs-c/vec.h"
diff --git a/fdtools-2024.12.07/src/recvfd.c b/fdtools-2024.12.07/src/recvfd.c
index e2de372..197e40e 100644
--- a/fdtools-2024.12.07/src/recvfd.c
+++ b/fdtools-2024.12.07/src/recvfd.c
@@ -7,6 +7,7 @@
 #include <limits.h>
 
 #include <skalibs/stddjb.h>
+#include <skalibs/exec.h>
 #include "prjlibs-c/diewarn.h"
 #include "prjlibs-c/types.h"
 #include "fdtools.h"
diff --git a/fdtools-2024.12.07/src/sendfd.c b/fdtools-2024.12.07/src/sendfd.c
index e5b7236..fc54371 100644
--- a/fdtools-2024.12.07/src/sendfd.c
+++ b/fdtools-2024.12.07/src/sendfd.c
@@ -7,6 +7,7 @@
 #include <limits.h>
 
 #include <skalibs/stddjb.h>
+#include <skalibs/exec.h>
 #include "prjlibs-c/diewarn.h"
 #include "prjlibs-c/types.h"
 #include "fdtools.h"
diff --git a/fdtools-2024.12.07/src/setstate.c b/fdtools-2024.12.07/src/setstate.c
index 723d40f..f6ddcbc 100644
--- a/fdtools-2024.12.07/src/setstate.c
+++ b/fdtools-2024.12.07/src/setstate.c
@@ -8,6 +8,7 @@
 #include <errno.h>
 
 #include <skalibs/stddjb.h>
+#include <skalibs/exec.h>
 #include "prjlibs-c/constants.h"
 #include "prjlibs-c/intattr.h"
 #include "prjlibs-c/diewarn.h"
diff --git a/fdtools-2024.12.07/src/statfile.c b/fdtools-2024.12.07/src/statfile.c
index be66988..41131ee 100644
--- a/fdtools-2024.12.07/src/statfile.c
+++ b/fdtools-2024.12.07/src/statfile.c
@@ -6,6 +6,7 @@
 #include <errno.h>
 
 #include <skalibs/stddjb.h>
+#include <skalibs/exec.h>
 #include "prjlibs-c/constants.h"
 #include "prjlibs-c/diewarn.h"
 #include "prjlibs-c/warn.h"
diff --git a/fdtools-2024.12.07/src/vc-get-linux.c b/fdtools-2024.12.07/src/vc-get-linux.c
index 5263344..52c29ff 100644
--- a/fdtools-2024.12.07/src/vc-get-linux.c
+++ b/fdtools-2024.12.07/src/vc-get-linux.c
@@ -10,6 +10,7 @@
 #include <sys/sysmacros.h>
 
 #include <skalibs/stddjb.h>
+#include <skalibs/exec.h>
 #include "prjlibs-c/constants.h"
 #include "prjlibs-c/diewarn.h"
 #include "prjlibs-c/types.h"
diff --git a/fdtools-2024.12.07/src/vc-lock-linux.c b/fdtools-2024.12.07/src/vc-lock-linux.c
index 0d6cee1..e2112e5 100644
--- a/fdtools-2024.12.07/src/vc-lock-linux.c
+++ b/fdtools-2024.12.07/src/vc-lock-linux.c
@@ -9,6 +9,7 @@
 #include <sys/vt.h>
 
 #include <skalibs/stddjb.h>
+#include <skalibs/exec.h>
 #include "prjlibs-c/constants.h"
 #include "prjlibs-c/diewarn.h"
 #include "prjlibs-c/types.h"
diff --git a/fdtools-2024.12.07/src/vc-switch-linux.c b/fdtools-2024.12.07/src/vc-switch-linux.c
index 6bab00f..59ece24 100644
--- a/fdtools-2024.12.07/src/vc-switch-linux.c
+++ b/fdtools-2024.12.07/src/vc-switch-linux.c
@@ -10,6 +10,7 @@
 #include <sys/sysmacros.h>
 
 #include <skalibs/stddjb.h>
+#include <skalibs/exec.h>
 #include "prjlibs-c/constants.h"
 #include "prjlibs-c/diewarn.h"
 #include "prjlibs-c/types.h"
+0 −223
Original line number Diff line number Diff line
diff -Naur misc/fdtools-2020.05.04/src/check_exit_exec.c misc-new/fdtools-2020.05.04/src/check_exit_exec.c
--- misc/fdtools-2020.05.04/src/check_exit_exec.c	2015-03-16 04:55:56.000000000 +0100
+++ misc-new/fdtools-2020.05.04/src/check_exit_exec.c	2021-01-22 10:50:25.529955213 +0100
@@ -2,6 +2,7 @@
 #include <unistd.h>
 #include <errno.h>
 
+#include <skalibs/exec.h>
 #include <skalibs/stddjb.h>
 #include "prjlibs-c/constants.h"
 #include "prjlibs-c/diewarn.h"
@@ -14,7 +15,7 @@
 
   if (str_equal(arg, ":")) {
     ++argv;
-    pathexec0((char const**)argv);
+    mexec0((char const**)argv);
     DIE1(exec, argv[0]);
   }
 }
diff -Naur misc/fdtools-2020.05.04/src/grabconsole.c misc-new/fdtools-2020.05.04/src/grabconsole.c
--- misc/fdtools-2020.05.04/src/grabconsole.c	2020-04-24 06:01:22.000000000 +0200
+++ misc-new/fdtools-2020.05.04/src/grabconsole.c	2021-01-22 10:43:27.887754936 +0100
@@ -4,6 +4,7 @@
 #include <errno.h>
 
 #include <skalibs/stddjb.h>
+#include <skalibs/exec.h>
 #include "prjlibs-c/constants.h"
 #include "prjlibs-c/diewarn.h"
 #include "prjlibs-c/types.h"
@@ -26,6 +27,6 @@
   if (fd_grabconsole(fd)!=0) DIE0(tioccons);
 
   argv+=2;
-  pathexec0((char const**)argv);
+  mexec0((char const**)argv);
   DIE1(exec, argv[0]);
 }
diff -Naur misc/fdtools-2020.05.04/src/pipecycle.c misc-new/fdtools-2020.05.04/src/pipecycle.c
--- misc/fdtools-2020.05.04/src/pipecycle.c	2015-03-16 04:55:56.000000000 +0100
+++ misc-new/fdtools-2020.05.04/src/pipecycle.c	2021-01-22 10:47:58.033220790 +0100
@@ -4,6 +4,7 @@
 #include <unistd.h>
 #include <signal.h>
 
+#include <skalibs/exec.h>
 #include <skalibs/stddjb.h>
 #include "prjlibs-c/diewarn.h"
 #include "prjlibs-c/types.h"
@@ -56,7 +57,7 @@
       if (fd_shuffle(2, current, wanted)!=0) DIE0(dup);
     }
     read(start[0], &j, 1);
-    pathexec(args);
+    mexec(args);
     DIE1(exec, args[0]);
   }
 
diff -Naur misc/fdtools-2020.05.04/src/recvfd.c misc-new/fdtools-2020.05.04/src/recvfd.c
--- misc/fdtools-2020.05.04/src/recvfd.c	2020-04-28 09:35:05.000000000 +0200
+++ misc-new/fdtools-2020.05.04/src/recvfd.c	2021-01-22 10:47:14.180994779 +0100
@@ -7,6 +7,7 @@
 #include <limits.h>
 
 #include <skalibs/stddjb.h>
+#include <skalibs/exec.h>
 #include "prjlibs-c/diewarn.h"
 #include "prjlibs-c/types.h"
 #include "fdtools.h"
@@ -69,9 +70,9 @@
       named_fd=duped;
     }
     buf[int_fmt(buf, named_fd)]='\0';
-    if (pathexec_env(argv[i]+1, buf)==0) DIE0(alloc);
+    if (env_mexec(argv[i]+1, buf)==0) DIE0(alloc);
   }
   argv+=nfds+1;
-  pathexec0((char const**)argv);
+  mexec0((char const**)argv);
   DIE1(exec, argv[0]);
 }
diff -Naur misc/fdtools-2020.05.04/src/sendfd.c misc-new/fdtools-2020.05.04/src/sendfd.c
--- misc/fdtools-2020.05.04/src/sendfd.c	2015-03-16 06:48:39.000000000 +0100
+++ misc-new/fdtools-2020.05.04/src/sendfd.c	2021-01-22 10:43:07.207634214 +0100
@@ -7,6 +7,7 @@
 #include <limits.h>
 
 #include <skalibs/stddjb.h>
+#include <skalibs/exec.h>
 #include "prjlibs-c/diewarn.h"
 #include "prjlibs-c/types.h"
 #include "fdtools.h"
@@ -40,6 +41,6 @@
   argv+=nfds;
   if (*argv==NULL) _exit(0);
   ++argv;
-  pathexec0((char const**)argv);
+  mexec0((char const**)argv);
   DIE1(exec, argv[0]);
 }
diff -Naur misc/fdtools-2020.05.04/src/setstate.c misc-new/fdtools-2020.05.04/src/setstate.c
--- misc/fdtools-2020.05.04/src/setstate.c	2020-05-04 10:04:21.000000000 +0200
+++ misc-new/fdtools-2020.05.04/src/setstate.c	2021-01-22 10:45:05.084304318 +0100
@@ -8,6 +8,7 @@
 #include <errno.h>
 
 #include <skalibs/stddjb.h>
+#include <skalibs/exec.h>
 #include "prjlibs-c/constants.h"
 #include "prjlibs-c/intattr.h"
 #include "prjlibs-c/diewarn.h"
@@ -167,6 +168,6 @@
   }
 
   argv+=2;
-  pathexec_run(argv[0], (char const**)argv, (char const**)environ);
+  mexec_ae(argv[0], (char const**)argv, (char const**)environ);
   DIE1(exec, argv[0]);
 }
diff -Naur misc/fdtools-2020.05.04/src/statfile.c misc-new/fdtools-2020.05.04/src/statfile.c
--- misc/fdtools-2020.05.04/src/statfile.c	2015-03-22 00:33:44.000000000 +0100
+++ misc-new/fdtools-2020.05.04/src/statfile.c	2021-01-22 10:48:23.673351183 +0100
@@ -6,6 +6,7 @@
 #include <errno.h>
 
 #include <skalibs/stddjb.h>
+#include <skalibs/exec.h>
 #include "prjlibs-c/constants.h"
 #include "prjlibs-c/diewarn.h"
 #include "prjlibs-c/warn.h"
@@ -15,7 +16,7 @@
 char const* PROG="statfile";
 
 static void set(char const* const var, char const* const val) {
-  if (pathexec_env(var, val)==0) DIE0(alloc);
+  if (env_mexec(var, val)==0) DIE0(alloc);
 }
 
 static void set64n(char const* const var, time_t t, unsigned int nsec) {
@@ -178,6 +179,6 @@
   }
 
   argv+=3;
-  pathexec((char const**)argv);
+  mexec((char const**)argv);
   DIE1(exec, argv[0]);
 }
diff -Naur misc/fdtools-2020.05.04/src/vc-get-linux.c misc-new/fdtools-2020.05.04/src/vc-get-linux.c
--- misc/fdtools-2020.05.04/src/vc-get-linux.c	2020-04-28 07:04:49.000000000 +0200
+++ misc-new/fdtools-2020.05.04/src/vc-get-linux.c	2021-01-22 10:47:34.649100757 +0100
@@ -10,6 +10,7 @@
 #include <sys/sysmacros.h>
 
 #include <skalibs/stddjb.h>
+#include <skalibs/exec.h>
 #include "prjlibs-c/constants.h"
 #include "prjlibs-c/diewarn.h"
 #include "prjlibs-c/types.h"
@@ -38,7 +39,7 @@
       errno=0;
       if (ioctl(fd, VT_OPENQRY, &vtnum)<0 || vtnum==-1) DIE0(vt_qry);
       bufnum[ulong_fmt(bufnum, vtnum)]='\0';
-      if (pathexec_env("TTY", buf)==0) DIE0(alloc);
+      if (env_mexec("TTY", buf)==0) DIE0(alloc);
     }
     fd_close(fd);
 
@@ -50,12 +51,12 @@
       if (fstat(fd, &statbuf)!=0) DIE1(stat, buf);
       buf[ulong_fmt(buf, minor(statbuf.st_rdev))]='\0';
     }
-    if (pathexec_env("VCNUM", buf)==0) DIE0(alloc);
+    if (env_mexec("VCNUM", buf)==0) DIE0(alloc);
 
     buf[ulong_fmt(buf, fd)]='\0';
-    if (pathexec_env("VCFD", buf)==0) DIE0(alloc);
+    if (env_mexec("VCFD", buf)==0) DIE0(alloc);
   }
 
-  pathexec((char const**)argv+2);
+  mexec((char const**)argv+2);
   DIE1(exec, argv[2]);
 }
diff -Naur misc/fdtools-2020.05.04/src/vc-lock-linux.c misc-new/fdtools-2020.05.04/src/vc-lock-linux.c
--- misc/fdtools-2020.05.04/src/vc-lock-linux.c	2015-03-20 05:59:42.000000000 +0100
+++ misc-new/fdtools-2020.05.04/src/vc-lock-linux.c	2021-01-22 10:48:36.857417751 +0100
@@ -8,6 +8,7 @@
 #include <sys/ioctl.h>
 #include <sys/vt.h>
 
+#include <skalibs/exec.h>
 #include <skalibs/stddjb.h>
 #include "prjlibs-c/constants.h"
 #include "prjlibs-c/diewarn.h"
@@ -79,7 +80,7 @@
       WARN0(fork);
     } else if (pid==0) {
       sigprocmask(SIG_SETMASK, &old_set, NULLP);
-      pathexec((char const**)argv);
+      mexec((char const**)argv);
       DIE1(exec, *argv);
     } else {
       int status;
diff -Naur misc/fdtools-2020.05.04/src/vc-switch-linux.c misc-new/fdtools-2020.05.04/src/vc-switch-linux.c
--- misc/fdtools-2020.05.04/src/vc-switch-linux.c	2020-04-28 07:14:04.000000000 +0200
+++ misc-new/fdtools-2020.05.04/src/vc-switch-linux.c	2021-01-22 10:42:41.259480648 +0100
@@ -10,6 +10,7 @@
 #include <sys/sysmacros.h>
 
 #include <skalibs/stddjb.h>
+#include <skalibs/exec.h>
 #include "prjlibs-c/constants.h"
 #include "prjlibs-c/diewarn.h"
 #include "prjlibs-c/types.h"
@@ -36,6 +37,6 @@
   if (ioctl(fd, VT_ACTIVATE, ttyno)<0) DIE0(vt_act);
   if (!scan) fd_close(fd);
 
-  pathexec0((char const**)argv+3);
+  mexec0((char const**)argv+3);
   DIE1(exec, argv[3]);
 }
+24 −25
Original line number Diff line number Diff line
@@ -5,53 +5,48 @@
  skawarePackages,
}:

let
stdenv.mkDerivation (finalAttrs: {
  pname = "fdtools";
  # When you update, check whether we can drop the skalibs pin.
  version = "2020.05.04";
  sha256 = "0lnafcp4yipi0dl8gh33zjs8wlpz0mim8mwmiz9s49id0b0fmlla";
  skalibs = skawarePackages.skalibs_2_10;

in
stdenv.mkDerivation {
  inherit pname version;
  version = "2024.12.07";

  src = fetchurl {
    url = "https://code.dogmap.org/fdtools/releases/fdtools-${version}.tar.bz2";
    inherit sha256;
    url = "https://code.dogmap.org/fdtools/releases/fdtools-${finalAttrs.version}.tar.bz2";
    hash = "sha256-URK5FBpCbhcp2haug0lWtc9wOvwJHPTWZe4u8HDeaYc=";
  };

  patches = [ ./new-skalibs.patch ];
  patches = [
    ./add-skalibs-include.patch
  ];

  outputs = [
    "bin"
    "lib"
    "dev"
    "man"
    "doc"
    "out"
  ];

  buildInputs = [
    # temporary, until fdtools catches up to skalibs
    skalibs
    skawarePackages.skalibs
  ];

  configurePhase = ''
    cd fdtools-${version}
    sed -e 's|gcc|$CC|' \
      conf-compile/defaults/host_link.sh \
      > conf-compile/host_link.sh
    sed -e 's|gcc|$CC|' \
      conf-compile/defaults/host_compile.sh \
      > conf-compile/host_compile.sh

    echo "${skalibs.lib}/lib/skalibs/sysdeps" \
      > conf-compile/depend_skalibs_sysdeps
    cd fdtools-${finalAttrs.version}
    substituteInPlace conf-compile/defaults/host_compile.sh \
      --replace-fail "gcc" "$CC"
    substituteInPlace conf-compile/defaults/host_link.sh \
      --replace-fail "gcc" "$CC"
    echo "${skawarePackages.skalibs.lib}/lib/skalibs/sysdeps" > conf-compile/defaults/depend_skalibs_sysdeps
  '';

  buildPhase = ''
    bash package/build
  '';

  # gcc15
  env.NIX_CFLAGS_COMPILE = "-std=gnu17";

  installPhase = ''
    mkdir -p $bin/bin
    tools=( grabconsole multitee pipecycle recvfd seek0 sendfd setblock setstate statfile vc-get vc-lock vc-switch )
@@ -62,11 +57,15 @@ stdenv.mkDerivation {

    mkdir -p $lib/lib
    mkdir -p $dev/include
    mkdir -p $man/share/man/man1
    mkdir -p $man/share/man/man8
    docdir=$doc/share/doc/fdtools
    mkdir -p $docdir

    mv library/fdtools.a $lib/lib/fdtools.a
    mv include/fdtools.h $dev/include/fdtools.h
    mv man/man1/* $man/share/man/man1/
    mv man/man8/* $man/share/man/man8/

    ${
      skawarePackages.cleanPackaging.commonFileActions {
@@ -98,4 +97,4 @@ stdenv.mkDerivation {
    platforms = lib.platforms.linux;
    maintainers = [ ];
  };
}
})