summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Tojnar <jtojnar@gmail.com>2020-12-23 01:03:32 +0100
committerGitHub <noreply@github.com>2020-12-23 01:03:32 +0100
commit00f6d352bd4598bdcd6b5c9884430e9e2d6084a6 (patch)
treea7ba04d40f58c6e3ec3a0975261ecf0d83608353
parentbc4dab193d97abd7753a6232c2c0037dd19eecaf (diff)
parent638eefae70a0d8954e043f77a5fc9021d0a8fa25 (diff)
Merge pull request #107348 from rb2k/microdnf
-rw-r--r--pkgs/tools/package-management/libdnf/darwin.patch35
-rw-r--r--pkgs/tools/package-management/libdnf/default.nix66
-rw-r--r--pkgs/tools/package-management/microdnf/default.nix24
-rw-r--r--pkgs/top-level/all-packages.nix4
4 files changed, 129 insertions, 0 deletions
diff --git a/pkgs/tools/package-management/libdnf/darwin.patch b/pkgs/tools/package-management/libdnf/darwin.patch
new file mode 100644
index 000000000000..56bafb2f7b82
--- /dev/null
+++ b/pkgs/tools/package-management/libdnf/darwin.patch
@@ -0,0 +1,35 @@
+--- src/libdnf/hy-iutil.cpp 2020-12-02 07:53:42.000000000 -0800
++++ src/libdnf/hy-iutil.cpp 2020-12-21 14:24:14.000000000 -0800
+@@ -22,7 +22,7 @@
+ #include <errno.h>
+ #include <dirent.h>
+ #include <fcntl.h>
+-#include <linux/limits.h>
++#include <limits.h>
+ #include <pwd.h>
+ #include <unistd.h>
+ #include <stdio.h>
+--- src/libdnf/hy-util.cpp 2020-12-02 07:53:42.000000000 -0800
++++ src/libdnf/hy-util.cpp 2020-12-21 14:23:21.000000000 -0800
+@@ -24,7 +24,20 @@
+ #include <ctype.h>
+ #include <sys/utsname.h>
+ #include <sys/stat.h>
+-#include <sys/auxv.h>
++
++// Darwin compatibility hacks
++typedef int auxv_t;
++#ifndef AT_HWCAP2
++#define AT_HWCAP2 26
++#endif
++#ifndef AT_HWCAP
++#define AT_HWCAP 16
++#endif
++static unsigned long getauxval(unsigned long type)
++{
++ unsigned long ret = 0;
++ return ret;
++}
+
+ // hawkey
+ #include "dnf-types.h"
diff --git a/pkgs/tools/package-management/libdnf/default.nix b/pkgs/tools/package-management/libdnf/default.nix
new file mode 100644
index 000000000000..480222a45de2
--- /dev/null
+++ b/pkgs/tools/package-management/libdnf/default.nix
@@ -0,0 +1,66 @@
+{ gcc9Stdenv, stdenv, fetchFromGitHub, cmake, gettext, pkg-config, gpgme, libsolv, openssl, check
+, pcre, json_c, libmodulemd, libsmartcols, sqlite, librepo, libyaml, rpm }:
+
+gcc9Stdenv.mkDerivation rec {
+ pname = "libdnf";
+ version = "0.55.2";
+
+ src = fetchFromGitHub {
+ owner = "rpm-software-management";
+ repo = pname;
+ rev = version;
+ sha256 = "0hiydwfa90nsrqk5ffa6ks1g73wnsgjgq7z7gwq9jj76a7gpfbfq";
+ };
+
+ patches = stdenv.lib.optionals stdenv.isDarwin [ ./darwin.patch ];
+
+ nativeBuildInputs = [
+ cmake
+ gettext
+ pkg-config
+ ];
+
+ buildInputs = [
+ check
+ gpgme
+ openssl
+ json_c
+ libsmartcols
+ libyaml
+ libmodulemd
+ ];
+
+ propagatedBuildInputs = [
+ sqlite
+ libsolv
+ librepo
+ rpm
+ ];
+
+ # See https://github.com/NixOS/nixpkgs/issues/107430
+ prePatch = ''
+ cp ${libsolv}/share/cmake/Modules/FindLibSolv.cmake cmake/modules/
+ '';
+
+ # See https://github.com/NixOS/nixpkgs/issues/107428
+ postPatch = ''
+ substituteInPlace CMakeLists.txt \
+ --replace "enable_testing()" "" \
+ --replace "add_subdirectory(tests)" ""
+ '';
+
+ cmakeFlags = [
+ "-DWITH_GTKDOC=OFF"
+ "-DWITH_HTML=OFF"
+ "-DWITH_BINDINGS=OFF"
+ "-DWITH_ZCHUNK=OFF"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Package management library.";
+ homepage = "https://github.com/rpm-software-management/libdnf";
+ license = licenses.gpl2Plus;
+ platforms = platforms.linux ++ platforms.darwin;
+ maintainers = with maintainers; [ rb2k ];
+ };
+}
diff --git a/pkgs/tools/package-management/microdnf/default.nix b/pkgs/tools/package-management/microdnf/default.nix
new file mode 100644
index 000000000000..de473cf6a898
--- /dev/null
+++ b/pkgs/tools/package-management/microdnf/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, cmake, gettext, libdnf, pkg-config, glib, libpeas, libsmartcols, help2man }:
+
+stdenv.mkDerivation rec {
+ pname = "microdnf";
+ version = "3.6.0";
+
+ src = fetchFromGitHub {
+ owner = "rpm-software-management";
+ repo = pname;
+ rev = version;
+ sha256 = "0a7lc3qsnblvznzsz3544l3n84184xi85zf7c3m3jhnmpmxsg39h";
+ };
+
+ nativeBuildInputs = [ pkg-config cmake gettext help2man ];
+ buildInputs = [ libdnf glib libpeas libsmartcols ];
+
+ meta = with stdenv.lib; {
+ description = "Lightweight implementation of dnf in C";
+ homepage = "https://github.com/rpm-software-management/microdnf";
+ license = licenses.gpl2Plus;
+ maintainers = with stdenv.lib.maintainers; [ rb2k ];
+ platforms = platforms.linux ++ platforms.darwin;
+ };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 7ea74885a385..36dafc455852 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -5741,6 +5741,8 @@ in
mgba = libsForQt5.callPackage ../misc/emulators/mgba { };
+ microdnf = callPackage ../tools/package-management/microdnf { };
+
microserver = callPackage ../servers/microserver { };
midisheetmusic = callPackage ../applications/audio/midisheetmusic { };
@@ -13977,6 +13979,8 @@ in
libdnet = callPackage ../development/libraries/libdnet { };
+ libdnf = callPackage ../tools/package-management/libdnf { };
+
libdrm = callPackage ../development/libraries/libdrm { };
libdv = callPackage ../development/libraries/libdv { };