diff options
Diffstat (limited to 'nixpkgs/pkgs/tools/misc/rpm-ostree/default.nix')
-rw-r--r-- | nixpkgs/pkgs/tools/misc/rpm-ostree/default.nix | 124 |
1 files changed, 124 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/tools/misc/rpm-ostree/default.nix b/nixpkgs/pkgs/tools/misc/rpm-ostree/default.nix new file mode 100644 index 000000000000..b84bc955c46a --- /dev/null +++ b/nixpkgs/pkgs/tools/misc/rpm-ostree/default.nix @@ -0,0 +1,124 @@ +{ lib, stdenv +, fetchurl +, ostree +, rpm +, which +, autoconf +, automake +, libtool +, pkg-config +, cargo +, rustc +, gobject-introspection +, gtk-doc +, libxml2 +, libxslt +, docbook_xsl +, docbook_xml_dtd_42 +, docbook_xml_dtd_43 +, gperf +, cmake +, libcap +, glib +, systemd +, json-glib +, libarchive +, libsolv +, librepo +, polkit +, bubblewrap +, pcre +, check +, python3 +, json_c +, zchunk +, libmodulemd +, util-linux +, sqlite +, cppunit +}: + +stdenv.mkDerivation rec { + pname = "rpm-ostree"; + version = "2023.7"; + + outputs = [ "out" "dev" "man" "devdoc" ]; + + src = fetchurl { + url = "https://github.com/coreos/${pname}/releases/download/v${version}/${pname}-${version}.tar.xz"; + hash = "sha256-OL1PEXGqPbMWFcCTkjRAUk+7zbGTQiwQqmgmkEgfgHE="; + }; + + nativeBuildInputs = [ + python3 + pkg-config + which + autoconf + automake + libtool + cmake + gperf + cargo + rustc + gobject-introspection + gtk-doc + libxml2 + libxslt + docbook_xsl + docbook_xml_dtd_42 + docbook_xml_dtd_43 + ]; + + buildInputs = [ + libcap + ostree + rpm + glib + systemd + polkit + bubblewrap + json-glib + libarchive + libsolv + librepo + pcre + check + + # libdnf # vendored unstable branch + # required by vendored libdnf + json_c + zchunk + libmodulemd + util-linux # for smartcols.pc + sqlite + cppunit + ]; + + configureFlags = [ + "--enable-gtk-doc" + "--with-bubblewrap=${bubblewrap}/bin/bwrap" + ]; + + dontUseCmakeConfigure = true; + + prePatch = '' + # According to #cmake on freenode, libdnf should bundle the FindLibSolv.cmake module + cp ${libsolv}/share/cmake/Modules/FindLibSolv.cmake libdnf/cmake/modules/ + + # Let's not hardcode the rpm-gpg path... + substituteInPlace libdnf/libdnf/dnf-keyring.cpp \ + --replace '"/etc/pki/rpm-gpg"' 'getenv("LIBDNF_RPM_GPG_PATH_OVERRIDE") ? getenv("LIBDNF_RPM_GPG_PATH_OVERRIDE") : "/etc/pki/rpm-gpg"' + ''; + + preConfigure = '' + env NOCONFIGURE=1 ./autogen.sh + ''; + + meta = with lib; { + description = "A hybrid image/package system. It uses OSTree as an image format, and uses RPM as a component model"; + homepage = "https://coreos.github.io/rpm-ostree/"; + license = licenses.lgpl2Plus; + maintainers = with maintainers; [ copumpkin ]; + platforms = platforms.linux; + }; +} |