1{ lib
2, stdenv
3, fetchFromGitHub
4, cmake
5, ninja
6, pkg-config
7, zlib
8, xz
9, bzip2
10, zchunk
11, zstd
12, expat
13, withRpm ? !stdenv.isDarwin
14, rpm
15, db
16}:
17
18stdenv.mkDerivation rec {
19 version = "0.7.26";
20 pname = "libsolv";
21
22 src = fetchFromGitHub {
23 owner = "openSUSE";
24 repo = "libsolv";
25 rev = version;
26 sha256 = "sha256-NGybpl/Fd46pmSYMNGocStQQCXr5pX34PCmN/hFKeyk=";
27 };
28
29 cmakeFlags = [
30 "-DENABLE_COMPLEX_DEPS=true"
31 "-DENABLE_LZMA_COMPRESSION=true"
32 "-DENABLE_BZIP2_COMPRESSION=true"
33 "-DENABLE_ZSTD_COMPRESSION=true"
34 "-DENABLE_ZCHUNK_COMPRESSION=true"
35 "-DWITH_SYSTEM_ZCHUNK=true"
36 ] ++ lib.optionals withRpm [
37 "-DENABLE_COMPS=true"
38 "-DENABLE_PUBKEY=true"
39 "-DENABLE_RPMDB=true"
40 "-DENABLE_RPMDB_BYRPMHEADER=true"
41 "-DENABLE_RPMMD=true"
42 ];
43
44 nativeBuildInputs = [ cmake ninja pkg-config ];
45 buildInputs = [ zlib xz bzip2 zchunk zstd expat db ]
46 ++ lib.optional withRpm rpm;
47
48 meta = with lib; {
49 description = "A free package dependency solver";
50 homepage = "https://github.com/openSUSE/libsolv";
51 license = licenses.bsd3;
52 platforms = platforms.linux ++ platforms.darwin;
53 maintainers = with maintainers; [ copumpkin ];
54 };
55}