about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRahul Butani <rrbutani@users.noreply.github.com>2024-05-10 01:27:14 -0700
committerRahul Butani <rrbutani@users.noreply.github.com>2024-05-10 01:27:19 -0700
commit7c28930254ca30130b0598eac806f15b2d428883 (patch)
treed3535beb26541e88d5050c86105889cb333311d8
parent446a3fbadaa5d5338bdb7127fac484e9db1ee2ec (diff)
uucp: unbreak on Darwin/in `pkgsLLVM`
`configure` contains snippets like `main(){return(0);}` which modern
clang versions complain about (with the default warnings and errors):
```console
configure:1283:1: error: type specifier missing, defaults to 'int'; ISO C99 and later do not support implicit int [-Wimplicit-int]
main(){return(0);}
^
int
```

As a workaround, this commit has the package:
  - regenerate `configure` as part of the build
  - patches a test for `void` to not rely on `exit` being implicitly
    defined
-rw-r--r--pkgs/tools/misc/uucp/default.nix16
1 files changed, 12 insertions, 4 deletions
diff --git a/pkgs/tools/misc/uucp/default.nix b/pkgs/tools/misc/uucp/default.nix
index 28f7a6572c185..4e1d74e4f73af 100644
--- a/pkgs/tools/misc/uucp/default.nix
+++ b/pkgs/tools/misc/uucp/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl }:
+{ lib, stdenv, fetchurl, autoreconfHook }:
 
 stdenv.mkDerivation rec {
   pname = "uucp";
@@ -13,11 +13,19 @@ stdenv.mkDerivation rec {
 
   prePatch = ''
     # do not set sticky bit in nix store
-    substituteInPlace Makefile.in \
-      --replace 4555 0555
-    sed -i '/chown $(OWNER)/d' Makefile.in
+    substituteInPlace Makefile.am \
+      --replace-fail 4555 0555
+    sed -i '/chown $(OWNER)/d' Makefile.am
+
+    # don't reply on implicitly defined `exit` function in `HAVE_VOID` test:
+    substituteInPlace configure.in \
+      --replace-fail '(void) exit (0)' '(void) (0)'
   '';
 
+  # Regenerate `configure`; the checked in version was generated in 2002 and
+  # contains snippets like `main(){return(0);}` that modern compilers dislike.
+  nativeBuildInputs = [ autoreconfHook ];
+
   makeFlags = [ "AR:=$(AR)" ];
 
   meta = {