nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at devShellTools-shell 77 lines 2.0 kB view raw
1{ 2 lib, 3 stdenv, 4 symlinkJoin, 5 fetchurl, 6 fetchzip, 7 scons, 8 zlib, 9 libiconv, 10}: 11 12stdenv.mkDerivation rec { 13 pname = "nsis"; 14 version = "3.11"; 15 16 src = fetchurl { 17 url = "mirror://sourceforge/project/nsis/NSIS%203/${version}/nsis-${version}-src.tar.bz2"; 18 sha256 = "19e72062676ebdc67c11dc032ba80b979cdbffd3886c60b04bb442cdd401ff4b"; 19 }; 20 srcWinDistributable = fetchzip { 21 url = "mirror://sourceforge/project/nsis/NSIS%203/${version}/nsis-${version}.zip"; 22 sha256 = "e574f335ab9d3ad73118f46615e5c9f2a52f3e4622ecbb7e5886badbc8601348"; 23 }; 24 25 postUnpack = '' 26 mkdir -p $out/share/nsis 27 cp -avr ${srcWinDistributable}/{Contrib,Include,Plugins,Stubs} \ 28 $out/share/nsis 29 chmod -R u+w $out/share/nsis 30 ''; 31 32 nativeBuildInputs = [ scons ]; 33 buildInputs = [ zlib ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ libiconv ]; 34 35 CPPPATH = symlinkJoin { 36 name = "nsis-includes"; 37 paths = [ zlib.dev ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ libiconv ]; 38 }; 39 40 LIBPATH = symlinkJoin { 41 name = "nsis-libs"; 42 paths = [ zlib ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ libiconv ]; 43 }; 44 45 sconsFlags = [ 46 "SKIPSTUBS=all" 47 "SKIPPLUGINS=all" 48 "SKIPUTILS=all" 49 "SKIPMISC=all" 50 "NSIS_CONFIG_CONST_DATA=no" 51 "VERSION=${version}" 52 ] 53 ++ lib.optional stdenv.hostPlatform.isDarwin "APPEND_LINKFLAGS=-liconv"; 54 55 preBuild = '' 56 sconsFlagsArray+=( 57 "PATH=$PATH" 58 "CC=$CC" 59 "CXX=$CXX" 60 "APPEND_CPPPATH=$CPPPATH/include" 61 "APPEND_LIBPATH=$LIBPATH/lib" 62 ) 63 ''; 64 65 prefixKey = "PREFIX="; 66 installTargets = [ "install-compiler" ]; 67 68 meta = with lib; { 69 description = "Free scriptable win32 installer/uninstaller system that doesn't suck and isn't huge"; 70 homepage = "https://nsis.sourceforge.io/"; 71 license = licenses.zlib; 72 platforms = platforms.unix; 73 maintainers = with maintainers; [ pombeirp ]; 74 mainProgram = "makensis"; 75 broken = stdenv.hostPlatform.isDarwin; 76 }; 77}