nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
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}