nixpkgs/pkgs/by-name/td/tdnf/package.nix
2024-11-13 12:34:58 -08:00

87 lines
2.0 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;
};
})