@@ -0,0 +1,66 @@
1+{ gcc9Stdenv, stdenv, fetchFromGitHub, cmake, gettext, pkg-config, gpgme, libsolv, openssl, check
2+, pcre, json_c, libmodulemd, libsmartcols, sqlite, librepo, libyaml, rpm }:
3+
4+gcc9Stdenv.mkDerivation rec {
5+ pname = "libdnf";
6+ version = "0.55.2";
7+
8+ src = fetchFromGitHub {
9+ owner = "rpm-software-management";
10+ repo = pname;
11+ rev = version;
12+ sha256 = "0hiydwfa90nsrqk5ffa6ks1g73wnsgjgq7z7gwq9jj76a7gpfbfq";
13+ };
14+
15+ patches = stdenv.lib.optionals stdenv.isDarwin [ ./darwin.patch ];
16+
17+ nativeBuildInputs = [
18+ cmake
19+ gettext
20+ pkg-config
21+ ];
22+
23+ buildInputs = [
24+ check
25+ gpgme
26+ openssl
27+ json_c
28+ libsmartcols
29+ libyaml
30+ libmodulemd
31+ ];
32+
33+ propagatedBuildInputs = [
34+ sqlite
35+ libsolv
36+ librepo
37+ rpm
38+ ];
39+
40+ # See https://github.com/NixOS/nixpkgs/issues/107430
41+ prePatch = ''
42+ cp ${libsolv}/share/cmake/Modules/FindLibSolv.cmake cmake/modules/
43+ '';
44+
45+ # See https://github.com/NixOS/nixpkgs/issues/107428
46+ postPatch = ''
47+ substituteInPlace CMakeLists.txt \
48+ --replace "enable_testing()" "" \
49+ --replace "add_subdirectory(tests)" ""
50+ '';
51+
52+ cmakeFlags = [
53+ "-DWITH_GTKDOC=OFF"
54+ "-DWITH_HTML=OFF"
55+ "-DWITH_BINDINGS=OFF"
56+ "-DWITH_ZCHUNK=OFF"
57+ ];
58+
59+ meta = with stdenv.lib; {
60+ description = "Package management library.";
61+ homepage = "https://github.com/rpm-software-management/libdnf";
62+ license = licenses.gpl2Plus;
63+ platforms = platforms.linux ++ platforms.darwin;
64+ maintainers = with maintainers; [ rb2k ];
65+ };
66+}