evcc: 0.131.4 -> 0.131.5
[NixPkgs.git] / pkgs / by-name / ab / abuild / package.nix
blob4cabeaa7d020b81476647811757bbbf8b01fa618
1 { lib
2 , stdenv
3 , fetchFromGitLab
4 , gitUpdater
5 , makeWrapper
6 , pkg-config
7 , file
8 , scdoc
9 , openssl
10 , zlib
11 , busybox
12 , apk-tools
13 , perl
14 , findutils
17 stdenv.mkDerivation rec {
18   pname = "abuild";
19   version = "3.13.0";
21   src = fetchFromGitLab {
22     domain = "gitlab.alpinelinux.org";
23     owner = "alpine";
24     repo = pname;
25     rev = version;
26     sha256 = "sha256-xVxgcBchGfeVo1cgP9iVsWjZ6SHVN6R8zWaE1k3DcXQ=";
27   };
29   buildInputs = [
30     openssl
31     zlib
32     busybox
33     # for $out/bin/apkbuild-cpan and $out/bin/apkbuild-pypi
34     (perl.withPackages (ps: with ps; [
35       LWP
36       JSON
37       ModuleBuildTiny
38       LWPProtocolHttps
39       IPCSystemSimple
40     ]))
41   ];
43   nativeBuildInputs = [
44     pkg-config
45     scdoc
46     makeWrapper
47     file
48     findutils
49   ];
51   patchPhase = ''
52     substituteInPlace ./Makefile \
53       --replace 'chmod 4555' '#chmod 4555'
54   '';
56   makeFlags = [
57     "prefix=${placeholder "out"}"
58     "CFLAGS=-Wno-error"
59   ];
61   installFlags = [
62     "sysconfdir=${placeholder "out"}/etc"
63   ];
65   postInstall = ''
66     # this script requires unpackaged 'augeas' rubygem, no reason
67     # to ship it if we can't provide the dependencies for it
68     rm -f ${placeholder "out"}/bin/apkbuild-gem-resolver
70     # Find all executables that are not compiled binaries and wrap
71     # them, make `apk-tools` available in their PATH and also the
72     # $out directory since many of the binaries provided call into
73     # other binaries
74     for prog in \
75       $(find ${placeholder "out"}/bin -type f -exec ${file}/bin/file -i '{}' + \
76       | grep -v x-executable | cut -d : -f1); do
77       wrapProgram $prog \
78         --prefix PATH : "${lib.makeBinPath [ apk-tools ]}" \
79         --prefix PATH : "${placeholder "out"}/bin"
80     done
81   '';
83   passthru.updateScript = gitUpdater { };
85   meta = with lib; {
86     description = "Alpine Linux build tools";
87     homepage = "https://gitlab.alpinelinux.org/alpine/abuild";
88     license = licenses.gpl2Plus;
89     maintainers = with maintainers; [ onny ];
90     platforms = platforms.unix;
91   };