86 lines
2 KiB
Nix
86 lines
2 KiB
Nix
{ lib
|
|
, stdenv
|
|
, fetchFromGitHub
|
|
, fetchpatch2
|
|
, cmake
|
|
, curl
|
|
, gpgme
|
|
, libsolv
|
|
, libxml2
|
|
, pkg-config
|
|
, python3
|
|
, rpm
|
|
, sqlite
|
|
}:
|
|
|
|
stdenv.mkDerivation (finalAttrs: {
|
|
pname = "tdnf";
|
|
version = "3.5.9";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "vmware";
|
|
repo = "tdnf";
|
|
rev = "v${finalAttrs.version}";
|
|
hash = "sha256-p9g+b7Fqq8V6QSaikEQMMHWqBf4UtRA9a/VtH+s5JUM=";
|
|
};
|
|
|
|
patches = [
|
|
# Support for rpm >= 4.19
|
|
(fetchpatch2 {
|
|
url = "https://patch-diff.githubusercontent.com/raw/vmware/tdnf/pull/410.patch";
|
|
hash = "sha256-p/ix5O1J/lj2fw7qJokT+wPN4ROoulnVqByfxgFvuEo=";
|
|
})
|
|
];
|
|
|
|
nativeBuildInputs = [
|
|
cmake
|
|
pkg-config
|
|
python3
|
|
];
|
|
|
|
buildInputs = [
|
|
curl.dev
|
|
gpgme.dev
|
|
libsolv
|
|
libxml2.dev
|
|
sqlite.dev
|
|
];
|
|
|
|
propagatedBuildInputs = [
|
|
rpm
|
|
];
|
|
|
|
cmakeFlags = [
|
|
"-DCMAKE_INSTALL_PREFIX=$out"
|
|
"-DCMAKE_INSTALL_FULL_SYSCONDIR=$out/etc"
|
|
"-DCMAKE_INSTALL_SYSCONFDIR=$out/etc"
|
|
"-DSYSTEMD_DIR=$out/lib/systemd/system"
|
|
];
|
|
|
|
# error: format not a string literal and no format arguments [-Werror=format-security]
|
|
hardeningDisable = [ "format" ];
|
|
|
|
postPatch = ''
|
|
substituteInPlace CMakeLists.txt \
|
|
--replace-fail 'SYSCONFDIR /etc' 'SYSCONFDIR $out/etc' \
|
|
--replace-fail '/etc/motdgen.d' '$out/etc/motdgen.d'
|
|
substituteInPlace client/tdnf.pc.in \
|
|
--replace-fail 'libdir=''${prefix}/@CMAKE_INSTALL_LIBDIR@' 'libdir=@CMAKE_INSTALL_FULL_LIBDIR@'
|
|
substituteInPlace tools/cli/lib/tdnf-cli-libs.pc.in \
|
|
--replace-fail 'libdir=''${prefix}/@CMAKE_INSTALL_LIBDIR@' 'libdir=@CMAKE_INSTALL_FULL_LIBDIR@'
|
|
'';
|
|
|
|
# remove binaries used for testing from the final output
|
|
postInstall = "rm $out/bin/*test";
|
|
|
|
meta = {
|
|
description = "Tiny Dandified Yum";
|
|
homepage = "https://github.com/vmware/tdnf";
|
|
changelog = "https://github.com/vmware/tdnf/releases/tag/v${finalAttrs.version}";
|
|
license = with lib.licenses; [ gpl2 lgpl21 ];
|
|
maintainers = [ lib.maintainers.malt3 ];
|
|
mainProgram = "tdnf";
|
|
# rpm only supports linux
|
|
platforms = lib.platforms.linux;
|
|
};
|
|
})
|