anvil-editor: init at 0.4
[NixPkgs.git] / pkgs / development / libraries / librest / 1.0.nix
blobeff390cb2031a819f00ec3b02ee3b3abc7760d11
1 { lib
2 , stdenv
3 , fetchpatch
4 , fetchurl
5 , meson
6 , ninja
7 , pkg-config
8 , gi-docgen
9 , glib
10 , json-glib
11 , libsoup_3
12 , libxml2
13 , gobject-introspection
14 , gnome
17 stdenv.mkDerivation rec {
18   pname = "rest";
19   version = "0.9.1";
21   outputs = [ "out" "dev" "devdoc" ];
23   src = fetchurl {
24     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
25     sha256 = "kmalwQ7OOD4ZPft/+we1CcwfUVIauNrXavlu0UISwuM=";
26   };
28   patches = [
29     # Pick up MR 30 (https://gitlab.gnome.org/GNOME/librest/-/merge_requests/30) to fix GOA crashes with libsoup 3
30     (fetchpatch {
31       url = "https://gitlab.gnome.org/GNOME/librest/-/commit/fbad64abe28a96f591a30e3a5d3189c10172a414.patch";
32       hash = "sha256-r8+h84Y/AdM1IOMRcBVwDvfqapqOY8ZtRXdOIQvFR9w=";
33     })
34     (fetchpatch {
35       url = "https://gitlab.gnome.org/GNOME/librest/-/commit/8049048a0f7d52b3f4101c7123797fed099d4cc8.patch";
36       hash = "sha256-AMhHKzzOoTIlkRwN4KfUwdhxlqvtRgiVjKRfnG7KZwc=";
37     })
38   ];
40   strictDeps = true;
41   depsBuildBuild = [ pkg-config ];
42   nativeBuildInputs = [
43     meson
44     ninja
45     pkg-config
46     gi-docgen
47     gobject-introspection
48   ];
50   propagatedBuildInputs = [
51     glib
52     json-glib
53     libsoup_3
54     libxml2
55   ];
57   mesonFlags = [
58     "-Dexamples=false"
60     # Remove when https://gitlab.gnome.org/GNOME/librest/merge_requests/2 is merged.
61     "-Dca_certificates=true"
62     "-Dca_certificates_path=/etc/ssl/certs/ca-certificates.crt"
63   ];
65   postPatch = ''
66     # https://gitlab.gnome.org/GNOME/librest/-/merge_requests/19
67     substituteInPlace meson.build \
68       --replace "con." "conf."
70     # Run-time dependency gi-docgen found: NO (tried pkgconfig and cmake)
71     # it should be a build-time dep for build
72     # TODO: send upstream
73     substituteInPlace docs/meson.build \
74       --replace "'gi-docgen', ver" "'gi-docgen', native:true, ver"
75   '';
77   postFixup = ''
78     # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
79     moveToOutput "share/doc" "$devdoc"
80   '';
82   separateDebugInfo = true;
84   passthru = {
85     updateScript = gnome.updateScript {
86       packageName = pname;
87       attrPath = "librest_1_0";
88       versionPolicy = "odd-unstable";
89     };
90   };
92   meta = with lib; {
93     description = "Helper library for RESTful services";
94     homepage = "https://gitlab.gnome.org/GNOME/librest";
95     license = licenses.lgpl21Only;
96     platforms = platforms.unix;
97     maintainers = teams.gnome.members;
98   };