Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ lib 2, stdenv 3, symlinkJoin 4, fetchFromGitHub 5, libxcrypt 6}: 7 8let 9 version = "2.61-1"; 10 mkSubProject = { subprj # The only mandatory argument 11 , buildInputs ? [] 12 , src ? fetchFromGitHub { 13 owner = "WiringPi"; 14 repo = "WiringPi"; 15 rev = version; 16 sha256 = "sha256-VxAaPhaPXd9xYt663Ju6SLblqiSLizauhhuFqCqbO5M="; 17 } 18 }: stdenv.mkDerivation rec { 19 pname = "wiringpi-${subprj}"; 20 inherit version src; 21 sourceRoot = "source/${subprj}"; 22 inherit buildInputs; 23 # Remove (meant for other OSs) lines from Makefiles 24 preInstall = '' 25 sed -i "/chown root/d" Makefile 26 sed -i "/chmod/d" Makefile 27 ''; 28 makeFlags = [ 29 "DESTDIR=${placeholder "out"}" 30 "PREFIX=/." 31 # On NixOS we don't need to run ldconfig during build: 32 "LDCONFIG=echo" 33 ]; 34 }; 35 passthru = { 36 inherit mkSubProject; 37 wiringPi = mkSubProject { 38 subprj = "wiringPi"; 39 buildInputs = [ 40 libxcrypt 41 ]; 42 }; 43 devLib = mkSubProject { 44 subprj = "devLib"; 45 buildInputs = [ 46 passthru.wiringPi 47 ]; 48 }; 49 wiringPiD = mkSubProject { 50 subprj = "wiringPiD"; 51 buildInputs = [ 52 libxcrypt 53 passthru.wiringPi 54 passthru.devLib 55 ]; 56 }; 57 gpio = mkSubProject { 58 subprj = "gpio"; 59 buildInputs = [ 60 libxcrypt 61 passthru.wiringPi 62 passthru.devLib 63 ]; 64 }; 65 }; 66in 67 68symlinkJoin { 69 name = "wiringpi-${version}"; 70 inherit passthru; 71 paths = [ 72 passthru.wiringPi 73 passthru.devLib 74 passthru.wiringPiD 75 passthru.gpio 76 ]; 77 meta = with lib; { 78 description = "Gordon's Arduino wiring-like WiringPi Library for the Raspberry Pi (Unofficial Mirror for WiringPi bindings)"; 79 homepage = "https://github.com/WiringPi/WiringPi"; 80 license = licenses.lgpl3Plus; 81 maintainers = with maintainers; [ doronbehar ]; 82 platforms = platforms.linux; 83 }; 84}