summaryrefslogtreecommitdiff
path: root/pkgs/tools/misc/rpm-ostree/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/tools/misc/rpm-ostree/default.nix')
-rw-r--r--pkgs/tools/misc/rpm-ostree/default.nix49
1 files changed, 37 insertions, 12 deletions
diff --git a/pkgs/tools/misc/rpm-ostree/default.nix b/pkgs/tools/misc/rpm-ostree/default.nix
index f96e70650b7c..3e2953c57334 100644
--- a/pkgs/tools/misc/rpm-ostree/default.nix
+++ b/pkgs/tools/misc/rpm-ostree/default.nix
@@ -1,35 +1,60 @@
{ stdenv, fetchFromGitHub, ostree, rpm, which, autoconf, automake, libtool, pkgconfig,
- libcap, glib, libgsystem, json_glib, libarchive, libhif, librepo, gtk_doc, elfutils,
- libxslt, docbook_xsl, docbook_xml_dtd_42, acl }:
+ libcap, glib, libgsystem, json_glib, libarchive, libsolv, librepo, gtk_doc, elfutils,
+ gperf, cmake, pcre, check, python, libxslt, docbook_xsl, docbook_xml_dtd_42, acl }:
let
libglnx-src = fetchFromGitHub {
owner = "GNOME";
repo = "libglnx";
- rev = "85c9dd5c073a8c0d74c4baa2e4a94f5535984e62";
- sha256 = "08m8wxlkymwq5hsc26k7ndwiqiw1ggaaxyi2qfhqznasgbp4g623";
+ rev = "4ae5e3beaaa674abfabf7404ab6fafcc4ec547db";
+ sha256 = "1npb9zbyb4bl0nxqf0pcqankcwzs3k1x8i2wkdwhgak4qcvxvfqn";
};
-in stdenv.mkDerivation rec {
- rev = "v2016.1";
- name = "rpm-ostree";
+
+ libdnf-src = fetchFromGitHub {
+ owner = "rpm-software-management";
+ repo = "libhif";
+ rev = "b69552b3b3a42fd41698a925d5f5f623667bac63";
+ sha256 = "0h6k09rb4imzbmsn7mspwl0js2awqdpb4ysdqq550vw2nr0dzszr";
+ };
+
+ version = "2016.10";
+in stdenv.mkDerivation {
+ name = "rpm-ostree-${version}";
src = fetchFromGitHub {
- inherit rev;
+ rev = "v${version}";
owner = "projectatomic";
repo = "rpm-ostree";
- sha256 = "19jvnmy9zinx0j5nvy3h5abfv9d988kvyza09gljx16gll8qkbbf";
+ sha256 = "0a0wwklzk1kvk3bbxxfvxgk4ck5dn7a7v32shqidb674fr2d5pvb";
};
buildInputs = [
- which autoconf automake pkgconfig libtool libcap ostree rpm glib libgsystem
- json_glib libarchive libhif librepo gtk_doc libxslt docbook_xsl docbook_xml_dtd_42
+ which autoconf automake pkgconfig libtool libcap ostree rpm glib libgsystem gperf
+ json_glib libarchive libsolv librepo gtk_doc libxslt docbook_xsl docbook_xml_dtd_42
+ cmake pcre check python
# FIXME: get rid of this once libarchive properly propagates this
acl
];
+ dontUseCmakeConfigure = true;
+
prePatch = ''
- rmdir libglnx
+ rmdir libglnx libdnf
cp --no-preserve=mode -r ${libglnx-src} libglnx
+ cp --no-preserve=mode -r ${libdnf-src} libdnf
+
+ # According to #cmake on freenode, libdnf should bundle the FindLibSolv.cmake module
+ cp ${libsolv}/share/cmake/Modules/FindLibSolv.cmake libdnf/cmake/modules/
+
+ # See https://github.com/projectatomic/rpm-ostree/issues/480
+ substituteInPlace src/libpriv/rpmostree-unpacker.c --replace 'include <selinux/selinux.h>' ""
+
+ # libdnf normally wants sphinx to build its hawkey manpages, but we don't care about those manpages since we don't use hawkey
+ substituteInPlace configure.ac --replace 'cmake \' 'cmake -DWITH_MAN=off \'
+
+ # Let's not hardcode the rpm-gpg path...
+ substituteInPlace libdnf/libdnf/dnf-keyring.c \
+ --replace '"/etc/pki/rpm-gpg"' 'getenv("LIBDNF_RPM_GPG_PATH_OVERRIDE") ? getenv("LIBDNF_RPM_GPG_PATH_OVERRIDE") : "/etc/pki/rpm-gpg"'
'';
preConfigure = ''