linux_xanmod: 5.11.14 -> 5.11.15
[NixPkgs.git] / pkgs / development / libraries / pango / default.nix
blob0369cedebf4cc310ed77f246a0c08475cc516289
1 { lib
2 , stdenv
3 , fetchurl
4 , fetchpatch
5 , pkg-config
6 , cairo
7 , harfbuzz
8 , libintl
9 , libthai
10 , gobject-introspection
11 , darwin
12 , fribidi
13 , gnome3
14 , gi-docgen
15 , makeFontsConf
16 , freefont_ttf
17 , meson
18 , ninja
19 , glib
20 , x11Support? !stdenv.isDarwin, libXft
23 stdenv.mkDerivation rec {
24   pname = "pango";
25   version = "1.48.3";
27   outputs = [ "bin" "out" "dev" "devdoc" ];
29   src = fetchurl {
30     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
31     sha256 = "0ijbkcs6217ygzphlpi0vajxkccifdbsl0jdjpy8wz11h9f19sin";
32   };
34   patches = [
35     # Install developer documentation.
36     (fetchpatch {
37       url = "https://gitlab.gnome.org/GNOME/pango/commit/a2f35860115e8cd44f07d5158e2df059e8163a08.patch";
38       sha256 = "hN7O4DBk4A+TmBl6DGx6RHni5qRBg6akdjv9o3iWKDQ=";
39     })
40   ];
42   nativeBuildInputs = [
43     meson ninja
44     glib # for glib-mkenum
45     pkg-config
46     gobject-introspection
47     gi-docgen
48   ];
50   buildInputs = [
51     fribidi
52     libthai
53   ] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
54     ApplicationServices
55     Carbon
56     CoreGraphics
57     CoreText
58   ]);
60   propagatedBuildInputs = [
61     cairo
62     glib
63     libintl
64     harfbuzz
65   ] ++ lib.optionals x11Support [
66     libXft
67   ];
69   mesonFlags = [
70     "-Dgtk_doc=true"
71   ] ++ lib.optionals (!x11Support) [
72     "-Dxft=disabled" # only works with x11
73   ];
75   # Fontconfig error: Cannot load default config file
76   FONTCONFIG_FILE = makeFontsConf {
77     fontDirectories = [ freefont_ttf ];
78   };
80   doCheck = false; # test-font: FAIL
82   postInstall = ''
83     # So that devhelp can find this.
84     # https://gitlab.gnome.org/GNOME/pango/merge_requests/293/diffs#note_1058448
85     mkdir -p "$devdoc/share/devhelp"
86     mv "$out/share/doc/pango/reference" "$devdoc/share/devhelp/books"
87     rmdir -p --ignore-fail-on-non-empty "$out/share/doc/pango"
88   '';
90   passthru = {
91     updateScript = gnome3.updateScript {
92       packageName = pname;
93     };
94   };
96   meta = with lib; {
97     description = "A library for laying out and rendering of text, with an emphasis on internationalization";
99     longDescription = ''
100       Pango is a library for laying out and rendering of text, with an
101       emphasis on internationalization.  Pango can be used anywhere
102       that text layout is needed, though most of the work on Pango so
103       far has been done in the context of the GTK widget toolkit.
104       Pango forms the core of text and font handling for GTK.
105     '';
107     homepage = "https://www.pango.org/";
108     license = licenses.lgpl2Plus;
110     maintainers = with maintainers; [ raskin ] ++ teams.gnome.members;
111     platforms = platforms.linux ++ platforms.darwin;
112   };