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
40 lines
1 KiB
Nix
40 lines
1 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 ];
|
|
};
|
|
}
|