summary refs log tree commit diff
path: root/pkgs/tools/package-management
diff options
context:
space:
mode:
authorRobin Gloster <mail@glob.in>2016-05-02 22:58:02 +0000
committerRobin Gloster <mail@glob.in>2016-05-02 22:58:02 +0000
commitc92bca56f8ea5623cf01952621455db308d0f330 (patch)
treef940e6e4fabd8e58b91fe885f9541205258023b2 /pkgs/tools/package-management
parent0fdde5efd08c036fe9d73b4e65f2ba9797053d0f (diff)
parent94520a25adc6b6bee799ec9dab344cfdad3f7180 (diff)
downloadnixlib-c92bca56f8ea5623cf01952621455db308d0f330.tar
nixlib-c92bca56f8ea5623cf01952621455db308d0f330.tar.gz
nixlib-c92bca56f8ea5623cf01952621455db308d0f330.tar.bz2
nixlib-c92bca56f8ea5623cf01952621455db308d0f330.tar.lz
nixlib-c92bca56f8ea5623cf01952621455db308d0f330.tar.xz
nixlib-c92bca56f8ea5623cf01952621455db308d0f330.tar.zst
nixlib-c92bca56f8ea5623cf01952621455db308d0f330.zip
Merge remote-tracking branch 'upstream/master' into hardened-stdenv
Diffstat (limited to 'pkgs/tools/package-management')
-rw-r--r--pkgs/tools/package-management/createrepo_c/default.nix35
-rw-r--r--pkgs/tools/package-management/libhif/default.nix36
-rw-r--r--pkgs/tools/package-management/librepo/default.nix31
-rw-r--r--pkgs/tools/package-management/nix/default.nix2
-rw-r--r--pkgs/tools/package-management/nox/default.nix2
-rw-r--r--pkgs/tools/package-management/packagekit/default.nix5
-rw-r--r--pkgs/tools/package-management/rpm/default.nix13
7 files changed, 115 insertions, 9 deletions
diff --git a/pkgs/tools/package-management/createrepo_c/default.nix b/pkgs/tools/package-management/createrepo_c/default.nix
new file mode 100644
index 000000000000..eed1ed1e5260
--- /dev/null
+++ b/pkgs/tools/package-management/createrepo_c/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, bzip2, expat, glib, curl, libxml2, python, rpm, openssl, sqlite, file, xz, pcre, bashCompletion }:
+
+stdenv.mkDerivation rec {
+  rev  = "0.10.0";
+  name = "createrepo_c-${rev}";
+
+  src = fetchFromGitHub {
+    inherit rev;
+    owner  = "rpm-software-management";
+    repo   = "createrepo_c";
+    sha256 = "1sqzdkj9vigkvxsjlih1i0gylv53na2yic5if9w1s2sgxhqqz5zv";
+  };
+
+  # FIXME: ugh, there has to be a better way to do this...
+  prePatch = ''
+    substituteInPlace CMakeLists.txt \
+      --replace 'execute_process(COMMAND ''${PKG_CONFIG_EXECUTABLE} --variable=completionsdir bash-completion OUTPUT_VARIABLE BASHCOMP_DIR OUTPUT_STRIP_TRAILING_WHITESPACE)' \
+                "set (BASHCOMP_DIR "$out/share/bash-completion/completions")"
+
+    substituteInPlace src/python/CMakeLists.txt \
+      --replace 'EXECUTE_PROCESS(COMMAND ''${PYTHON_EXECUTABLE} -c "from sys import stdout; from distutils import sysconfig; stdout.write(sysconfig.get_python_lib(True))" OUTPUT_VARIABLE PYTHON_INSTALL_DIR)' \
+                "set (PYTHON_INSTALL_DIR "$out/${python.sitePackages}")"
+  '';
+
+  buildInputs = [ cmake pkgconfig bzip2 expat glib curl libxml2 python rpm openssl sqlite file xz pcre bashCompletion ];
+
+  meta = with stdenv.lib; {
+    description = "C implementation of createrepo";
+    homepage    = "http://rpm-software-management.github.io/createrepo_c/";
+    license     = licenses.gpl2;
+    platforms   = platforms.linux;
+    maintainers = with maintainers; [ copumpkin ];
+  };
+}
+
diff --git a/pkgs/tools/package-management/libhif/default.nix b/pkgs/tools/package-management/libhif/default.nix
new file mode 100644
index 000000000000..7736c67007ae
--- /dev/null
+++ b/pkgs/tools/package-management/libhif/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, autoconf, automake, libtool, expat, python, sphinx, gobjectIntrospection, librepo, check, rpm, libsolv, pcre, curl, gtk_doc, zlib, xz, elfutils }:
+
+stdenv.mkDerivation rec {
+  rev  = "87e4cb247f5982fd48636691a955cc566d3110a3";
+  name = "libhif-${stdenv.lib.strings.substring 0 7 rev}";
+
+  src = fetchFromGitHub {
+    inherit rev;
+    owner  = "rpm-software-management";
+    repo   = "libhif";
+    sha256 = "1g8hrqjawzwcx1gjcnv9sxg5i8l13dab3rr3i641k5vi76vv8miq";
+  };
+
+  postPatch = ''
+    for file in python/hawkey/CMakeLists.txt python/hawkey/tests/module/CMakeLists.txt; do
+      substituteInPlace $file --replace ' ''${PYTHON_INSTALL_DIR}' " $out/${python.sitePackages}"
+    done
+
+    # Until https://github.com/rpm-software-management/libhif/issues/43 is implemented, let's not force users to have this path
+    substituteInPlace libhif/hif-keyring.c \
+      --replace '"/etc/pki/rpm-gpg"' 'getenv("LIBHIF_RPM_GPG_PATH_OVERRIDE") ? getenv("LIBHIF_RPM_GPG_PATH_OVERRIDE") : "/etc/pki/rpm-gpg"'
+ '';
+
+  buildInputs = [ cmake pkgconfig pcre expat python sphinx gobjectIntrospection gtk_doc librepo check rpm curl ];
+
+  # ibhif/hif-packagedelta.h includes solv/pool.h
+  propagatedBuildInputs = [ libsolv ];
+
+  meta = with stdenv.lib; {
+    description = "A library that provides a high level package-manager. It uses librepo and hawkey under the hood.";
+    license     = licenses.lgpl2Plus;
+    platforms   = platforms.linux;
+    maintainers = with maintainers; [ copumpkin ];
+  };
+}
+
diff --git a/pkgs/tools/package-management/librepo/default.nix b/pkgs/tools/package-management/librepo/default.nix
new file mode 100644
index 000000000000..ceef483c8cce
--- /dev/null
+++ b/pkgs/tools/package-management/librepo/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, cmake, python, pkgconfig, expat, glib, pcre, openssl, curl, check, attr, gpgme }:
+
+stdenv.mkDerivation rec {
+  version = "1.7.18";
+  name = "librepo-${version}";
+
+  src = fetchFromGitHub {
+    owner  = "rpm-software-management";
+    repo   = "librepo";
+    rev    = name;
+    sha256 = "05iqx2kvfqsskb2r3n5p8f91i4gd4pbw6nh30pn532mgab64cvxk";
+  };
+
+  patchPhase = ''
+    substituteInPlace librepo/python/python2/CMakeLists.txt \
+      --replace ' ''${PYTHON_INSTALL_DIR}' " $out/lib/python2.7/site-packages"
+  '';
+
+  buildInputs = [ cmake python pkgconfig expat glib pcre openssl curl check attr gpgme ];
+
+  # librepo/fastestmirror.h includes curl/curl.h, and pkg-config specfile refers to others in here
+  propagatedBuildInputs = [ curl gpgme expat ];
+
+  meta = with stdenv.lib; {
+    description = "Library providing C and Python (libcURL like) API for downloading linux repository metadata and packages";
+    license     = licenses.lgpl2Plus;
+    platforms   = platforms.linux;
+    maintainers = with maintainers; [ copumpkin ];
+  };
+}
+
diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix
index 16078906bc2b..bf3f8aed712b 100644
--- a/pkgs/tools/package-management/nix/default.nix
+++ b/pkgs/tools/package-management/nix/default.nix
@@ -9,7 +9,7 @@ let
   common = { name, src }: stdenv.mkDerivation rec {
     inherit name src;
 
-    outputs = [ "out" "man" "doc" ];
+    outputs = [ "dev" "out" "man" "doc" ];
 
     nativeBuildInputs = [ perl pkgconfig ];
 
diff --git a/pkgs/tools/package-management/nox/default.nix b/pkgs/tools/package-management/nox/default.nix
index 89e72307ead1..895704ec6464 100644
--- a/pkgs/tools/package-management/nox/default.nix
+++ b/pkgs/tools/package-management/nox/default.nix
@@ -6,7 +6,7 @@ pythonPackages.buildPythonApplication rec {
   namePrefix = "";
 
   src = fetchurl {
-    url = "https://pypi.python.org/packages/source/n/nix-nox/nix-nox-${version}.tar.gz";
+    url = "mirror://pypi/n/nix-nox/nix-nox-${version}.tar.gz";
     sha256 = "1wpxh5fhj8nx4yx4cvmc087cnf4iqwxf7zd7rdh2ln3pgxrjfral";
   };
 
diff --git a/pkgs/tools/package-management/packagekit/default.nix b/pkgs/tools/package-management/packagekit/default.nix
index ae8e1b252c4c..bc57dd7c80f3 100644
--- a/pkgs/tools/package-management/packagekit/default.nix
+++ b/pkgs/tools/package-management/packagekit/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   name = "packagekit-${version}";
-  version = "1.0.8";
+  version = "1.1.0";
 
   src = fetchurl {
-    sha256 = "1vaxn4kwdwx6p03n88k4pnbd2l6lb0cbxpcs88kjack1jml17c3l";
+    sha256 = "0sn38b80c6jx9d9r329ji9bg4m4gj6gnl04rv8fkmincj61qf7ag";
     url = "http://www.freedesktop.org/software/PackageKit/releases/PackageKit-${version}.tar.xz";
   };
 
@@ -20,7 +20,6 @@ stdenv.mkDerivation rec {
     "--disable-connman"
     "--disable-systemd"
     "--disable-bash-completion"
-    "--disable-browser-plugin"
     "--disable-gstreamer-plugin"
     "--disable-gtk-module"
     "--disable-command-not-found"
diff --git a/pkgs/tools/package-management/rpm/default.nix b/pkgs/tools/package-management/rpm/default.nix
index 24346fb0eb70..d9cf24f6e519 100644
--- a/pkgs/tools/package-management/rpm/default.nix
+++ b/pkgs/tools/package-management/rpm/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, cpio, zlib, bzip2, file, elfutils, libarchive, nspr, nss, popt, db, xz, python }:
+{ stdenv, fetchurl, cpio, zlib, bzip2, file, elfutils, libarchive, nspr, nss, popt, db, xz, python, lua, pkgconfig, autoreconfHook }:
 
 stdenv.mkDerivation rec {
   name = "rpm-4.12.0";
@@ -8,7 +8,10 @@ stdenv.mkDerivation rec {
     sha256 = "18hk47hc755nslvb7xkq4jb095z7va0nlcyxdpxayc4lmb8mq3bp";
   };
 
-  buildInputs = [ cpio zlib bzip2 file libarchive nspr nss popt db xz python ];
+  buildInputs = [ cpio zlib bzip2 file libarchive nspr nss db xz python lua pkgconfig autoreconfHook ];
+
+  # rpm/rpmlib.h includes popt.h, and then the pkg-config file mentions these as linkage requirements
+  propagatedBuildInputs = [ popt nss db bzip2 libarchive ];
 
   # Note: we don't add elfutils to buildInputs, since it provides a
   # bad `ld' and other stuff.
@@ -19,15 +22,17 @@ stdenv.mkDerivation rec {
   postPatch = ''
     # For Python3, the original expression evaluates as 'python3.4' but we want 'python3.4m' here
     substituteInPlace configure --replace 'python''${PYTHON_VERSION}' ${python.executable}
+
+    substituteInPlace Makefile.am --replace '@$(MKDIR_P) $(DESTDIR)$(localstatedir)/tmp' ""
   '';
 
-  configureFlags = "--with-external-db --without-lua --enable-python";
+  configureFlags = "--with-external-db --with-lua --enable-python --localstatedir=/var --sharedstatedir=/com";
 
   meta = with stdenv.lib; {
     homepage = http://www.rpm.org/;
     license = licenses.gpl2;
     description = "The RPM Package Manager";
-    maintainers = [ maintainers.mornfall ];
+    maintainers = with maintainers; [ mornfall copumpkin ];
     platforms = platforms.linux;
   };
 }