diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/appstream')
3 files changed, 108 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/appstream/default.nix b/nixpkgs/pkgs/development/libraries/appstream/default.nix new file mode 100644 index 000000000000..6fa4a6e0a4ab --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/appstream/default.nix @@ -0,0 +1,54 @@ +{ lib, stdenv, substituteAll, fetchFromGitHub, meson, ninja, pkg-config, gettext +, xmlto, docbook_xsl, docbook_xml_dtd_45, libxslt +, libstemmer, glib, xapian, libxml2, libyaml, gobject-introspection +, pcre, itstool, gperf, vala, lmdb, libsoup +}: + +stdenv.mkDerivation rec { + pname = "appstream"; + version = "0.14.0"; + + outputs = [ "out" "dev" ]; + + src = fetchFromGitHub { + owner = "ximion"; + repo = "appstream"; + rev = "v${version}"; + sha256 = "sha256-iYqmQ1/58t3ZdJTxYLDc5jkTG1lMBtQWMFFsYsszH9Q="; + }; + + patches = [ + # Fix hardcoded paths + (substituteAll { + src = ./fix-paths.patch; + libstemmer_includedir = "${lib.getDev libstemmer}/include"; + }) + ]; + + nativeBuildInputs = [ + meson ninja pkg-config gettext + libxslt xmlto docbook_xsl docbook_xml_dtd_45 + gobject-introspection itstool vala + ]; + + buildInputs = [ libstemmer pcre glib xapian libxml2 libyaml gperf lmdb libsoup ]; + + mesonFlags = [ + "-Dapidocs=false" + "-Ddocs=false" + "-Dvapi=true" + ]; + + meta = with lib; { + description = "Software metadata handling library"; + homepage = "https://www.freedesktop.org/wiki/Distributions/AppStream/"; + longDescription = '' + AppStream is a cross-distro effort for building Software-Center applications + and enhancing metadata provided by software components. It provides + specifications for meta-information which is shipped by upstream projects and + can be consumed by other software. + ''; + license = licenses.lgpl21Plus; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/development/libraries/appstream/fix-paths.patch b/nixpkgs/pkgs/development/libraries/appstream/fix-paths.patch new file mode 100644 index 000000000000..0da72a78cbcf --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/appstream/fix-paths.patch @@ -0,0 +1,29 @@ +diff --git a/data/meson.build b/data/meson.build +index 1eb3dfb0..623b66ec 100644 +--- a/data/meson.build ++++ b/data/meson.build +@@ -26,4 +26,4 @@ i18n.merge_file ( + ) + + install_data ('appstream.conf', +- install_dir: get_option('sysconfdir')) ++ install_dir: get_option('prefix') / 'etc') +diff --git a/meson.build b/meson.build +index dc1fb1a5..5ee03b73 100644 +--- a/meson.build ++++ b/meson.build +@@ -108,12 +108,12 @@ if get_option ('gir') + dependency('gobject-introspection-1.0', version: '>=1.56') + endif + +-stemmer_inc_dirs = include_directories(['/usr/include']) ++stemmer_inc_dirs = include_directories(['@libstemmer_includedir@']) + if get_option('stemming') + stemmer_lib = cc.find_library('stemmer', required: true) + if not cc.has_header('libstemmer.h') + if cc.has_header('libstemmer/libstemmer.h') +- stemmer_inc_dirs = include_directories('/usr/include/libstemmer') ++ stemmer_inc_dirs = include_directories('@libstemmer_includedir@/libstemmer') + else + error('Unable to find Snowball header "libstemmer.h". Please ensure libstemmer/Snowball is installed properly in order to continue.') + endif diff --git a/nixpkgs/pkgs/development/libraries/appstream/qt.nix b/nixpkgs/pkgs/development/libraries/appstream/qt.nix new file mode 100644 index 000000000000..0bcb4741ff12 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/appstream/qt.nix @@ -0,0 +1,25 @@ +{ mkDerivation, appstream, qtbase, qttools }: + +# TODO: look into using the libraries from the regular appstream derivation as we keep duplicates here + +mkDerivation { + pname = "appstream-qt"; + inherit (appstream) version src patches; + + outputs = [ "out" "dev" ]; + + buildInputs = appstream.buildInputs ++ [ appstream qtbase ]; + + nativeBuildInputs = appstream.nativeBuildInputs ++ [ qttools ]; + + mesonFlags = appstream.mesonFlags ++ [ "-Dqt=true" ]; + + postFixup = '' + sed -i "$dev/lib/cmake/AppStreamQt/AppStreamQtConfig.cmake" \ + -e "/INTERFACE_INCLUDE_DIRECTORIES/ s@\''${PACKAGE_PREFIX_DIR}@$dev@" + ''; + + meta = appstream.meta // { + description = "Software metadata handling library - Qt"; + }; +} |