liminix

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

default.nix (1083B)


      1 {
      2   stdenv,
      3   buildPackages,
      4   libnl,
      5   ...
      6 }:
      7 let
      8   switchDotH = buildPackages.fetchurl {
      9     url = "https://git.openwrt.org/?p=openwrt/openwrt.git;a=blob_plain;f=target/linux/generic/files/include/uapi/linux/switch.h;hb=99a188828713d6ff9c541590b08d4e63ef52f6d7";
     10     sha256 = "15kmhhcpd84y4f45rf8zai98c61jyvkc37p90pcxirna01x33wi8";
     11     name = "switch.h";
     12   };
     13 in
     14 stdenv.mkDerivation {
     15   src = buildPackages.fetchFromGitHub {
     16     owner = "jekader";
     17     repo = "swconfig";
     18     rev = "66c760893ecdd1d603a7231fea9209daac57b610";
     19     sha256 = "0hi2rj1a1fbvr5n1090q1zzigjyxmn643jzrwngw4ij0g82za3al";
     20   };
     21   name = "swconfig";
     22   buildInputs = [ buildPackages.pkg-config ];
     23   nativeBuildInputs = [ libnl ];
     24   CFLAGS = "-O2 -Ifrom_kernel -I${libnl.dev}/include/libnl3";
     25   LDFLAGS = "-L${libnl.out}/lib";
     26 
     27   patchPhase = ''
     28     mkdir -p from_kernel/linux
     29     cp ${switchDotH} from_kernel/linux/switch.h
     30     sed -i '1i #include <ctype.h>'  swlib.c
     31   '';
     32 
     33   buildPhase = ''
     34     make swconfig
     35     $STRIP swconfig
     36   '';
     37   installPhase = ''
     38     mkdir -p $out/bin
     39     cp swconfig $out/bin
     40   '';
     41 }