107 lines
2 KiB
Nix
107 lines
2 KiB
Nix
{
|
|
lib,
|
|
stdenv,
|
|
fetchurl,
|
|
bzip2,
|
|
cmake,
|
|
curl,
|
|
db,
|
|
docbook_xml_dtd_45,
|
|
docbook_xsl,
|
|
doxygen,
|
|
dpkg,
|
|
gettext,
|
|
gnutls,
|
|
gtest,
|
|
libgcrypt,
|
|
libgpg-error,
|
|
libseccomp,
|
|
libtasn1,
|
|
libxslt,
|
|
lz4,
|
|
p11-kit,
|
|
perlPackages,
|
|
pkg-config,
|
|
triehash,
|
|
udev,
|
|
w3m,
|
|
xxHash,
|
|
xz,
|
|
zstd,
|
|
withDocs ? true,
|
|
withNLS ? true,
|
|
}:
|
|
|
|
stdenv.mkDerivation (finalAttrs: {
|
|
pname = "apt";
|
|
version = "2.9.16";
|
|
|
|
src = fetchurl {
|
|
url = "mirror://debian/pool/main/a/apt/apt_${finalAttrs.version}.tar.xz";
|
|
hash = "sha256-9ncx162Jm4WZBYFPvtO03ic8/rhcGEUEPxR4x1LsnvQ=";
|
|
};
|
|
|
|
# cycle detection; lib can't be split
|
|
outputs = [
|
|
"out"
|
|
"dev"
|
|
"doc"
|
|
"man"
|
|
];
|
|
|
|
nativeBuildInputs = [
|
|
cmake
|
|
gtest
|
|
(lib.getBin libxslt)
|
|
pkg-config
|
|
triehash
|
|
];
|
|
|
|
buildInputs =
|
|
[
|
|
bzip2
|
|
curl
|
|
db
|
|
dpkg
|
|
gnutls
|
|
libgcrypt
|
|
libgpg-error
|
|
libseccomp
|
|
libtasn1
|
|
lz4
|
|
p11-kit
|
|
perlPackages.perl
|
|
udev
|
|
xxHash
|
|
xz
|
|
zstd
|
|
]
|
|
++ lib.optionals withDocs [
|
|
docbook_xml_dtd_45
|
|
doxygen
|
|
perlPackages.Po4a
|
|
w3m
|
|
]
|
|
++ lib.optionals withNLS [
|
|
gettext
|
|
];
|
|
|
|
cmakeFlags = [
|
|
(lib.cmakeOptionType "filepath" "BERKELEY_INCLUDE_DIRS" "${lib.getDev db}/include")
|
|
(lib.cmakeOptionType "filepath" "DOCBOOK_XSL" "${docbook_xsl}/share/xml/docbook-xsl")
|
|
(lib.cmakeOptionType "filepath" "GNUTLS_INCLUDE_DIR" "${lib.getDev gnutls}/include")
|
|
(lib.cmakeFeature "DROOT_GROUP" "root")
|
|
(lib.cmakeBool "USE_NLS" withNLS)
|
|
(lib.cmakeBool "WITH_DOC" withDocs)
|
|
];
|
|
|
|
meta = {
|
|
homepage = "https://salsa.debian.org/apt-team/apt";
|
|
description = "Command-line package management tools used on Debian-based systems";
|
|
changelog = "https://salsa.debian.org/apt-team/apt/-/raw/${finalAttrs.version}/debian/changelog";
|
|
license = with lib.licenses; [ gpl2Plus ];
|
|
mainProgram = "apt";
|
|
maintainers = with lib.maintainers; [ ];
|
|
platforms = lib.platforms.linux;
|
|
};
|
|
})
|