From e789ccec415e10d5a00cbff09e5e70ec93a7de66 Mon Sep 17 00:00:00 2001 From: Xiangyan Sun Date: Sun, 5 Apr 2026 18:16:04 -0700 Subject: [PATCH] fdtools: 2020.05.04 -> 2024.12.07 --- .../fd/fdtools/add-skalibs-include.patch | 120 ++++++++++ pkgs/by-name/fd/fdtools/new-skalibs.patch | 223 ------------------ pkgs/by-name/fd/fdtools/package.nix | 49 ++-- 3 files changed, 144 insertions(+), 248 deletions(-) create mode 100644 pkgs/by-name/fd/fdtools/add-skalibs-include.patch delete mode 100644 pkgs/by-name/fd/fdtools/new-skalibs.patch diff --git a/pkgs/by-name/fd/fdtools/add-skalibs-include.patch b/pkgs/by-name/fd/fdtools/add-skalibs-include.patch new file mode 100644 index 000000000000..3869890cb732 --- /dev/null +++ b/pkgs/by-name/fd/fdtools/add-skalibs-include.patch @@ -0,0 +1,120 @@ +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 + + #include ++#include + #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 + + #include ++#include + #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 + + #include ++#include + #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 + + #include ++#include + #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 + + #include ++#include + #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 + + #include ++#include + #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 + + #include ++#include + #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 + + #include ++#include + #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 + + #include ++#include + #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 + + #include ++#include + #include "prjlibs-c/constants.h" + #include "prjlibs-c/diewarn.h" + #include "prjlibs-c/types.h" diff --git a/pkgs/by-name/fd/fdtools/new-skalibs.patch b/pkgs/by-name/fd/fdtools/new-skalibs.patch deleted file mode 100644 index 76c5396f8a88..000000000000 --- a/pkgs/by-name/fd/fdtools/new-skalibs.patch +++ /dev/null @@ -1,223 +0,0 @@ -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 - #include - -+#include - #include - #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 - - #include -+#include - #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 - #include - -+#include - #include - #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 - - #include -+#include - #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 - - #include -+#include - #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 - - #include -+#include - #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 - - #include -+#include - #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 - - #include -+#include - #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 - #include - -+#include - #include - #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 - - #include -+#include - #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]); - } diff --git a/pkgs/by-name/fd/fdtools/package.nix b/pkgs/by-name/fd/fdtools/package.nix index d1a56d54d88f..af7c0e7d3041 100644 --- a/pkgs/by-name/fd/fdtools/package.nix +++ b/pkgs/by-name/fd/fdtools/package.nix @@ -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 = [ ]; }; -} +})