about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/libgsf
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/libgsf')
-rw-r--r--nixpkgs/pkgs/development/libraries/libgsf/default.nix101
1 files changed, 101 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/libgsf/default.nix b/nixpkgs/pkgs/development/libraries/libgsf/default.nix
new file mode 100644
index 000000000000..172e3a2a2c78
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libgsf/default.nix
@@ -0,0 +1,101 @@
+{ fetchFromGitLab
+, lib
+, stdenv
+, autoreconfHook
+, gtk-doc
+, pkg-config
+, intltool
+, gettext
+, glib
+, libxml2
+, zlib
+, bzip2
+, perl
+, gdk-pixbuf
+, libiconv
+, libintl
+, gnome
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libgsf";
+  version = "1.14.50";
+
+  outputs = [ "out" "dev" ];
+
+  src = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    owner = "GNOME";
+    repo = "libgsf";
+    rev = "LIBGSF_${lib.replaceStrings ["."] ["_"] version}";
+    hash = "sha256-6RP2DJWcDQ8dkKtcPxAkRsS7jSvvLoDNZHXiDJwR8Eg=";
+  };
+
+  postPatch = ''
+    # Fix cross-compilation
+    substituteInPlace configure.ac \
+      --replace "AC_PATH_PROG(PKG_CONFIG, pkg-config, no)" \
+                "PKG_PROG_PKG_CONFIG"
+  '';
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    autoreconfHook
+    gtk-doc
+    pkg-config
+    intltool
+    libintl
+  ];
+
+  buildInputs = [
+    gettext
+    bzip2
+    zlib
+  ];
+
+  nativeCheckInputs = [
+    perl
+  ];
+
+  propagatedBuildInputs = [
+    libxml2
+    glib
+    gdk-pixbuf
+    libiconv
+  ];
+
+  doCheck = true;
+
+  preCheck = ''
+    patchShebangs ./tests/
+  '';
+
+  # checking pkg-config is at least version 0.9.0... ./configure: line 15213: no: command not found
+  # configure: error: in `/build/libgsf-1.14.50':
+  # configure: error: The pkg-config script could not be found or is too old.  Make sure it
+  # is in your PATH or set the PKG_CONFIG environment variable to the full
+  preConfigure = ''
+    export PKG_CONFIG="$(command -v "$PKG_CONFIG")"
+  '';
+
+  passthru = {
+    updateScript = gnome.updateScript {
+      packageName = pname;
+      versionPolicy = "odd-unstable";
+    };
+  };
+
+  meta = with lib; {
+    description = "GNOME's Structured File Library";
+    homepage = "https://www.gnome.org/projects/libgsf";
+    license = licenses.lgpl2Plus;
+    maintainers = with maintainers; [ lovek323 ];
+    platforms = lib.platforms.unix;
+
+    longDescription = ''
+      Libgsf aims to provide an efficient extensible I/O abstraction for
+      dealing with different structured file formats.
+    '';
+  };
+}