nixpkgs/pkgs/applications/misc/font-manager/default.nix
Colin 54931faf9a font-manager: allow building without webkit
webkit is only beneficial if browsing non-local fonts and building
without it greatly reduces closure size (measurements from
`nix path-info -S` on x86_64):

- `withWebkit=true`: 1203033312
- `withWebkit=false`: 372203760

upstream calls this feature "Google Font integration" here:
- <https://github.com/FontManager/font-manager#building-from-source>

but it's controlled via the "webkit" meson flag:
- <https://github.com/FontManager/font-manager/blob/master/meson.build#L29>
2023-09-16 12:36:33 +00:00

91 lines
2.0 KiB
Nix

{ lib
, stdenv
, fetchFromGitHub
, meson
, ninja
, gettext
, python3
, pkg-config
, libxml2
, json-glib
, sqlite
, itstool
, yelp-tools
, vala
, gsettings-desktop-schemas
, gtk3
, gnome
, desktop-file-utils
, wrapGAppsHook
, gobject-introspection
# withWebkit enables the "webkit" feature, also known as Google Fonts
, withWebkit ? true, glib-networking, libsoup, webkitgtk
}:
stdenv.mkDerivation rec {
pname = "font-manager";
version = "0.8.8";
src = fetchFromGitHub {
owner = "FontManager";
repo = "font-manager";
rev = version;
hash = "sha256-M13Q9d2cKhc0tudkvw0zgqPAFTlmXwK+LltXeuDPWxo=";
};
nativeBuildInputs = [
pkg-config
meson
ninja
gettext
python3
itstool
desktop-file-utils
vala
yelp-tools
wrapGAppsHook
# For https://github.com/FontManager/master/blob/master/lib/unicode/meson.build
gobject-introspection
];
buildInputs = [
libxml2
json-glib
sqlite
gsettings-desktop-schemas # for font settings
gtk3
gnome.adwaita-icon-theme
] ++ lib.optionals withWebkit [
glib-networking # for SSL so that Google Fonts can load
libsoup
webkitgtk
];
mesonFlags = [
"-Dreproducible=true" # Do not hardcode build directory…
(lib.mesonBool "webkit" withWebkit)
];
postPatch = ''
chmod +x meson_post_install.py
patchShebangs meson_post_install.py
'';
meta = with lib; {
homepage = "https://fontmanager.github.io/";
description = "Simple font management for GTK desktop environments";
longDescription = ''
Font Manager is intended to provide a way for average users to
easily manage desktop fonts, without having to resort to command
line tools or editing configuration files by hand. While designed
primarily with the Gnome Desktop Environment in mind, it should
work well with other GTK desktop environments.
Font Manager is NOT a professional-grade font management solution.
'';
license = licenses.gpl3Plus;
platforms = platforms.unix;
maintainers = [ maintainers.romildo ];
};
}