Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / libraries / appstream / default.nix
blob78ca9cfddbadf566033aedb65d73848b04f55e0f
1 { lib
2 , stdenv
3 , substituteAll
4 , fetchFromGitHub
5 , meson
6 , mesonEmulatorHook
7 , ninja
8 , pkg-config
9 , gettext
10 , xmlto
11 , docbook-xsl-nons
12 , docbook_xml_dtd_45
13 , libxslt
14 , libstemmer
15 , glib
16 , xapian
17 , libxml2
18 , libxmlb
19 , libyaml
20 , gobject-introspection
21 , pcre
22 , itstool
23 , gperf
24 , vala
25 , curl
26 , nixosTests
29 stdenv.mkDerivation rec {
30   pname = "appstream";
31   version = "0.15.5";
33   outputs = [ "out" "dev" "installedTests" ];
35   src = fetchFromGitHub {
36     owner = "ximion";
37     repo = "appstream";
38     rev = "v${version}";
39     sha256 = "sha256-KVZCtu1w5FMgXZMiSW55rbrI6W/A9zWWKKvACtk/jjk=";
40   };
42   patches = [
43     # Fix hardcoded paths
44     (substituteAll {
45       src = ./fix-paths.patch;
46       libstemmer_includedir = "${lib.getDev libstemmer}/include";
47     })
49     # Allow installing installed tests to a separate output.
50     ./installed-tests-path.patch
51   ];
53   strictDeps = true;
55   depsBuildBuild = [
56     pkg-config
57   ];
59   nativeBuildInputs = [
60     meson
61     ninja
62     pkg-config
63     gettext
64     libxslt
65     xmlto
66     docbook-xsl-nons
67     docbook_xml_dtd_45
68     gobject-introspection
69     itstool
70     vala
71     gperf
72   ] ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
73     mesonEmulatorHook
74   ];
76   buildInputs = [
77     libstemmer
78     pcre
79     glib
80     xapian
81     libxml2
82     libxmlb
83     libyaml
84     curl
85   ];
87   mesonFlags = [
88     "-Dapidocs=false"
89     "-Ddocs=false"
90     "-Dvapi=true"
91     "-Dinstalled_test_prefix=${placeholder "installedTests"}"
92   ];
94   passthru = {
95     tests = {
96       installed-tests = nixosTests.installed-tests.appstream;
97     };
98   };
100   meta = with lib; {
101     description = "Software metadata handling library";
102     longDescription = ''
103       AppStream is a cross-distro effort for building Software-Center applications
104       and enhancing metadata provided by software components.  It provides
105       specifications for meta-information which is shipped by upstream projects and
106       can be consumed by other software.
107     '';
108     homepage = "https://www.freedesktop.org/wiki/Distributions/AppStream/";
109     license = licenses.lgpl21Plus;
110     mainProgram = "appstreamcli";
111     platforms = platforms.unix;
112   };