nixpkgs/pkgs/os-specific/linux/jool/cli.nix
apfelkuchen06 20761c31d0 jool-cli: fix build
prior to this, building with iptables-1.8.9 failed with

> make[2]: Entering directory '/tmp/nix-shell.okX50g/tmp.O3HX8QruLZ/source/src/usr/iptables'
> gcc -Wall -pedantic -std=gnu11 -O2 -I../.. -I/nix/store/h6saqb0001ps7mwi1c40m90f53af1hpj-iptables-1.8.9-dev/include   -D_INIT=libxt_JOOL_SIIT_init -fPIC -c -o libxt_JOOL_SIIT.o libxt_JOOL_SIIT.c;
> gcc -shared -fPIC  -o libxt_JOOL_SIIT.so libxt_JOOL_SIIT.o;
> /nix/store/f4qnwzv6y0nq8lix33jr5ykkyybs6fxf-binutils-2.40/bin/ld: libxt_JOOL_SIIT.o: in function `_init':
> libxt_JOOL_SIIT.c:(.text+0x150): multiple definition of `_init'; /nix/store/1n2l5law9g3b77hcfyp50vrhhssbrj5g-glibc-2.37-8/lib/crti.o:(.init+0x0): first defined here
> collect2: error: ld returned 1 exit status
> make[2]: *** [Makefile:37: libxt_JOOL_SIIT.so] Error 1

This adds the upstream fix from 490ddb0933
2023-04-16 06:06:22 +02:00

40 lines
1.0 KiB
Nix

{ lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook, pkg-config, libnl, iptables }:
let
sourceAttrs = (import ./source.nix) { inherit fetchFromGitHub; };
in
stdenv.mkDerivation {
pname = "jool-cli";
version = sourceAttrs.version;
src = sourceAttrs.src;
patches = [ (fetchpatch {
url = "https://github.com/NICMx/Jool/commit/490ddb0933061cab3c2a7952dffc61789deed565.patch";
hash = "sha256-1dpMth0ocPHujlk+96St1a63RipcWiL/CdmSz4O87Lg=";
}) ];
outputs = [
"out"
"man"
];
nativeBuildInputs = [ autoreconfHook pkg-config ];
buildInputs = [ libnl iptables ];
makeFlags = [ "-C" "src/usr" ];
prePatch = ''
sed -e 's%^XTABLES_SO_DIR = .*%XTABLES_SO_DIR = '"$out"'/lib/xtables%g' -i src/usr/iptables/Makefile
'';
meta = with lib; {
homepage = "https://www.jool.mx/";
description = "Fairly compliant SIIT and Stateful NAT64 for Linux - CLI tools";
platforms = platforms.linux;
license = licenses.gpl2;
maintainers = with maintainers; [ fpletz ];
};
}