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