# Copyright © 2008-2019 Nicolas Mailhot
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
# RPM macros for fonts packages.
#
# SPDX-License-Identifier: GPL-3.0-or-later
## Default directories
# Font installation directory root
%_fontbasedir /usr/share/fonts
# Master fontconfig configuration directory
# Only needed to avoid a circular directory dependency with the fontconfig
# package — you should *not* use this in fonts packages
%_fontconfig_masterdir /etc/fonts
# Fontconfig directory for active configuration snippets
%_fontconfig_confdir /etc/fonts/conf.d
# Fontconfig configuration template directory
# Templates are activated by symlinking in _fontconfig_confdir
%_fontconfig_templatedir /usr/share/fontconfig/conf.avail
# Default contact in font appstream files
# Override in your spec file if it does not apply
%fontcontact fonts@lists.fedoraproject.org
# Default org in font appstream files
# Override in your spec file if it does not apply
%fontorg org.fedoraproject
# Sanitize a font family name that can then serve as rpm package name
# Mandatory parameter: a font family name
%fontrpmname() %{lua:
local fonts = require "fedora.srpm.fonts"
print(fonts.rpmname(rpm.expand("%1")))
}
# Computes rpm variables associated with a font sub(package)
# There should be no reason to call this macro directly. Arguments:
# -z read the zth block of definitions, for example
# %{fontfamily}
# -a process all blocks in one go, instead of using separate
# -z calls
# -v be verbose
# -f "" font files to include. Alternatively, set %{fonts}
# -F "" font files to exclude. Alternatively, set %{fontsex}
# -c "" fontconfig files to include. Alternatively, set %{fontconfs}
# -C "" fontconfig files to exclude. Alternatively, set %{fontconfsex}
# -s "" font appstream files to include. Alternatively, set %{fontappstreams}
# -S "" font appstream files to exclude. Alternatively, set %{fontappstreamsex}
# -d "" documentation files to include. Alternatively, set %{fontdocs}
# -D "" documentation files to exclude. Alternatively, set %{fontdocsex}
# -l "" licensing files to include. Alternatively, set %{fontlicenses}
# -L "" licensing files to exclude. Alternatively, set %{fontlicensesex}
%fontenv(z:vf:F:c:C:s:S:d:D:l:L:) %{lua:
local fonts = require "fedora.srpm.fonts"
local suffix = rpm.expand("%{?-z*}")
local verbose = (rpm.expand("%{-v}") ~= "")
local globvalues = {}
for g,_ in pairs(fonts.globargs) do
globvalues[g] = rpm.expand("%{?-" .. fonts.globargs[g] .. "*}")
end
fonts.env(suffix, verbose, globvalues)
}
# Create a font (sub)package header. Arguments:
# -z read the zth block of definitions, for example
# %{fontfamily}
# -a process all blocks in one go, instead of using separate
# -z calls
# -v be verbose
# -m force main header creation
# -s force sub header creation
# by itself the macro assumes the zero or nil suffix block
# corresponds to the main package header
%fontpkg(z:avms) %{lua:
local fonts = require "fedora.srpm.fonts"
local suffix = rpm.expand("%{?-z*}")
local processall = (rpm.expand("%{-a}") ~= "") and (rpm.expand("%{-z}") == "")
local verbose = (rpm.expand("%{-v}") ~= "")
local forcemain = (rpm.expand("%{-m}") ~= "")
local forcesub = (rpm.expand("%{-s}") ~= "")
fonts.pkg(forcemain, forcesub, suffix, processall, verbose)
}
# Create a font (sub)metapackage header. Optional arguments:
# -n use as metapackage name
# -s use the content of as metapackage summary
# -d use the content of as metapackage description
# -z "" restrict metapackaging to comma-separated list of
# font package suffixes
%fontmetapkg(n:s:d:z:) %{lua:
local fonts = require "fedora.srpm.fonts"
local name = rpm.expand("%{?-n*}")
local summary = rpm.expand("%{?-s*}")
if (summary ~= "") then
summary = "%{" .. summary .. "}"
end
local description = rpm.expand("%{?-d*}")
if (description ~= "") then
description = "%{" .. description .. "}"
end
local suffixes = rpm.expand("%{?-z*}")
fonts.metapkg(name, summary, description, suffixes)
}