aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/tools/misc/ostree/default.nix
diff options
context:
space:
mode:
authorMx Kookie <kookie@spacekookie.de>2020-10-31 19:35:09 +0100
committerMx Kookie <kookie@spacekookie.de>2020-10-31 19:35:09 +0100
commitc4625b175f8200f643fd6e11010932ea44c78433 (patch)
treebce3f89888c8ac3991fa5569a878a9eab6801ccc /infra/libkookie/nixpkgs/pkgs/tools/misc/ostree/default.nix
parent49f735974dd103039ddc4cb576bb76555164a9e7 (diff)
parentd661aa56a8843e991261510c1bb28fdc2f6975ae (diff)
Add 'infra/libkookie/' from commit 'd661aa56a8843e991261510c1bb28fdc2f6975ae'
git-subtree-dir: infra/libkookie git-subtree-mainline: 49f735974dd103039ddc4cb576bb76555164a9e7 git-subtree-split: d661aa56a8843e991261510c1bb28fdc2f6975ae
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/tools/misc/ostree/default.nix')
-rw-r--r--infra/libkookie/nixpkgs/pkgs/tools/misc/ostree/default.nix145
1 files changed, 145 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/tools/misc/ostree/default.nix b/infra/libkookie/nixpkgs/pkgs/tools/misc/ostree/default.nix
new file mode 100644
index 000000000000..fd1bfc7f8c79
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/tools/misc/ostree/default.nix
@@ -0,0 +1,145 @@
+{ stdenv
+, fetchurl
+, fetchpatch
+, substituteAll
+, pkg-config
+, gtk-doc
+, gobject-introspection
+, gjs
+, nixosTests
+, glib
+, systemd
+, xz
+, e2fsprogs
+, libsoup
+, gpgme
+, which
+, makeWrapper
+, autoconf
+, automake
+, libtool
+, fuse
+, utillinuxMinimal
+, libselinux
+, libsodium
+, libarchive
+, libcap
+, bzip2
+, yacc
+, libxslt
+, docbook-xsl-nons
+, docbook_xml_dtd_42
+, openssl
+, python3
+}:
+
+let
+ testPython = (python3.withPackages (p: with p; [
+ pyyaml
+ ]));
+in stdenv.mkDerivation rec {
+ pname = "ostree";
+ version = "2020.5";
+
+ outputs = [ "out" "dev" "man" "installedTests" ];
+
+ src = fetchurl {
+ url = "https://github.com/ostreedev/ostree/releases/download/v${version}/libostree-${version}.tar.xz";
+ sha256 = "1k92177hjalbdpmg45ymwwrni68vh9rs5x9zvy5fzl9lng12fgpb";
+ };
+
+ patches = [
+ # Tests access the helper using relative path
+ # https://github.com/ostreedev/ostree/issues/1593
+ # Patch from https://github.com/ostreedev/ostree/pull/1633
+ ./01-Drop-ostree-trivial-httpd-CLI-move-to-tests-director.patch
+
+ # Workarounds for https://github.com/ostreedev/ostree/issues/1592
+ ./fix-1592.patch
+
+ # Hard-code paths in tests
+ (substituteAll {
+ src = ./fix-test-paths.patch;
+ python3 = testPython.interpreter;
+ openssl = "${openssl}/bin/openssl";
+ })
+ ];
+
+ nativeBuildInputs = [
+ autoconf
+ automake
+ libtool
+ pkg-config
+ gtk-doc
+ gobject-introspection
+ which
+ makeWrapper
+ yacc
+ libxslt
+ docbook-xsl-nons
+ docbook_xml_dtd_42
+ ];
+
+ buildInputs = [
+ glib
+ systemd
+ e2fsprogs
+ libsoup
+ gpgme
+ fuse
+ libselinux
+ libsodium
+ libcap
+ libarchive
+ bzip2
+ xz
+ utillinuxMinimal # for libmount
+
+ # for installed tests
+ testPython
+ gjs
+ ];
+
+ enableParallelBuilding = true;
+
+ configureFlags = [
+ "--with-systemdsystemunitdir=${placeholder "out"}/lib/systemd/system"
+ "--with-systemdsystemgeneratordir=${placeholder "out"}/lib/systemd/system-generators"
+ "--enable-installed-tests"
+ "--with-ed25519-libsodium"
+ ];
+
+ makeFlags = [
+ "installed_testdir=${placeholder "installedTests"}/libexec/installed-tests/libostree"
+ "installed_test_metadir=${placeholder "installedTests"}/share/installed-tests/libostree"
+ ];
+
+ preConfigure = ''
+ env NOCONFIGURE=1 ./autogen.sh
+ '';
+
+ postFixup = let
+ typelibPath = stdenv.lib.makeSearchPath "/lib/girepository-1.0" [
+ (placeholder "out")
+ gobject-introspection
+ ];
+ in ''
+ for test in $installedTests/libexec/installed-tests/libostree/*.js; do
+ wrapProgram "$test" --prefix GI_TYPELIB_PATH : "${typelibPath}"
+ done
+ '';
+
+ passthru = {
+ tests = {
+ installedTests = nixosTests.installed-tests.ostree;
+ };
+ };
+
+ meta = with stdenv.lib; {
+ description = "Git for operating system binaries";
+ homepage = "https://ostree.readthedocs.io/en/latest/";
+ license = licenses.lgpl2Plus;
+ platforms = platforms.linux;
+ maintainers = with maintainers; [ copumpkin ];
+ };
+}