Fonts packaging policy rewrite proposal
by Nicolas Mailhot
Hi,
A fonts packaging policy rewrite proposal has been pushed to FPC today:
https://pagure.io/packaging-committee/pull-request/934
It should be clearer, more opinionated, and take into account:
– updates of The OpenType standard
– variable fonts
– web fonts
– upstream depreciation of non OpenType formats: final stages of the
Harfbuzz consolidation decided at the 2006 Text Layout summit
https://www.freedesktop.org/wiki/TextLayout/
– appstream & fonts
– weak dependencies
– and probably more I forget here
It is based on the new fonts-rpm-macros project for automation:
This project builds on tooling enhancements in redhat-rpm-config and rpm
itself, done during the past two years for the Forge and Go sets of
packaging macros. It started 2 years ago as a fork of fontpackages,
which is the core of our current fonts packaging guidelines.
It will require putting the fonts-srpm-macros package in the default
build root, like is done for other domain-specific packaging macro
sets.
Major additions:
– better documentation (clearer and more complete)
– better automation (less packager hassle for better and more complete
results)
Major removals:
– tools and scripts
– fixing metadata with ttname
Mostly because no one seems willing to maintain those scripts, or port
ttname to python 3.
https://copr.fedorainfracloud.org/coprs/nim/fonts-rpm-macros/builds/
showcases the new policy on 62 real-world source packages, generating
139 installation packages. Some of those are badly delayed updates to
Fedora packages, others are brand-new packages ready for Fedora
inclusion. They include major font packages such as Stix, DejaVu, Droid,
IBM Plex.
Existing Fedora packages will continue to build, the old fontpackages
macros are grandfathered in fonts-rpm-macros for now. They will be
removed in a few years to give packagers time to apply the new
guidelines.
Regards,
--
Nicolas Mailhot
3 years
Summary/Minutes from today's FPC Meeting (2020-01-30 17:00 - 17:20 UTC)
by James Antill
======================
#fedora-meeting-1: fpc
======================
Meeting started by geppetto at 17:00:38 UTC. The full logs are available
at
https://meetbot.fedoraproject.org/fedora-meeting-1/2020-01-30/fpc.2020-01...
.
Meeting summary
---------------
* Roll Call (geppetto, 17:00:39)
* Open Floor (geppetto, 17:12:19)
* ACTION: Everyone should try to vote in the ticket for fonts policy,
#935 (geppetto, 17:19:36)
Meeting ended at 17:20:24 UTC.
Action Items
------------
* Everyone should try to vote in the ticket for fonts policy, #935
Action Items, by person
-----------------------
* **UNASSIGNED**
* Everyone should try to vote in the ticket for fonts policy, #935
People Present (lines said)
---------------------------
* geppetto (18)
* zodbot (8)
* nim (6)
* tibbs (5)
* decathorpe (5)
* mhroncok (4)
* tachoknight_ (4)
Generated by `MeetBot`_ 0.1.4
.. _`MeetBot`: http://wiki.debian.org/MeetBot
3 years, 1 month
Replace a symlink to a directory with a directory
by Miro Hrončok
Hello. I was hit by a infamous "replace a symlink to a directory with a
directory" problem in https://bugzilla.redhat.com/show_bug.cgi?id=1787079
/usr/lib/python3.8/site-packages/notebook/static/components/moment
This was a symbolic link, but now it is a directory. The error is:
Error: Transaction test error:
file
/usr/lib/python3.8/site-packages/notebook/static/components/moment/min/locales.js
from install of python3-notebook-6.0.2-2.fc32.noarch conflicts with file from
package js-moment-2.18.1-6.fc30.noarch
file
/usr/lib/python3.8/site-packages/notebook/static/components/moment/min/moment-with-locales.js
from install of python3-notebook-6.0.2-2.fc32.noarch conflicts with file from
package js-moment-2.18.1-6.fc30.noarch
file
/usr/lib/python3.8/site-packages/notebook/static/components/moment/moment.js
from install of python3-notebook-6.0.2-2.fc32.noarch conflicts with file from
package js-moment-2.18.1-6.fc30.noarch
file /usr/lib/python3.8/site-packages/notebook/static/components/moment from
install of python3-notebook-6.0.2-2.fc32.noarch conflicts with file from package
python3-notebook-6.0.2-1.fc32.noarch
When I add:
$ rpm -q --scripts -p python3-notebook-6.0.2-3.fc32.noarch.rpm
pretrans scriptlet (using <lua>):
path = "/usr/lib/python3.8/site-packages/notebook/static/components/moment"
st = posix.stat(path)
if st and st.type == "link" then
os.remove(path)
end
Code: https://src.fedoraproject.org/rpms/python-notebook/pull-request/17
I still get:
Error: Transaction test error:
file
/usr/lib/python3.8/site-packages/notebook/static/components/moment/min/locales.js
from install of python3-notebook-6.0.2-3.fc32.noarch conflicts with file from
package js-moment-2.18.1-6.fc30.noarch
file
/usr/lib/python3.8/site-packages/notebook/static/components/moment/min/moment-with-locales.js
from install of python3-notebook-6.0.2-3.fc32.noarch conflicts with file from
package js-moment-2.18.1-6.fc30.noarch
file
/usr/lib/python3.8/site-packages/notebook/static/components/moment/moment.js
from install of python3-notebook-6.0.2-3.fc32.noarch conflicts with file from
package js-moment-2.18.1-6.fc30.noarch
What am I doing wrong?
Note that I have tried to add this workaround instead:
mv moment moment.bundled
ln -vfs moment.bundled moment
But that clears the update path from 6.0.2-1, but breaks it from 6.0.2-2.
Error: Transaction test error:
file /usr/lib/python3.8/site-packages/notebook/static/components/moment from
install of python3-notebook-6.0.2-3.fc32.noarch conflicts with file from package
python3-notebook-6.0.2-2.fc32.noarch
And I would need to add the other (uglier) scriptlet to replace a directory with
a symbolic link :(
--
Miro Hrončok
--
Phone: +420777974800
IRC: mhroncok
3 years, 2 months
Is building the API docs required?
by Dan Čermák
Hi list,
if a -devel package could include API docs from upstream, should these
be packaged too or not? This recently came up during a package review,
where the package submitter said that probably everyone reads the online
docs anyway (where he imho has a point, I think I never read installed
API docs, except for man pages).
What's the official stance on this? The packaging guidelines
(https://docs.fedoraproject.org/en-US/packaging-guidelines/#_documentation)
just say:
> Any relevant documentation included in the source distribution should
> be included in the package in the proper documentation directory
Which begs the question: are API docs relevant documentation?
Thanks in advance,
Dan
3 years, 2 months
Skip the meeting this week, unless someone else wants to run it
by James Antill
I know we skipped a couple of meetings over the holiday break, but I'm
not available to run the meeting this week (although I might be able to
participate if anyone else wants to).
There is one PR that's had a comment recently, but apart from that we
don't seem to be holding anything new up (if you haven't read the fonts
rewrite, tomorrow's meeting time would be good).
3 years, 2 months
%pre and macros
by Sérgio Basto
Hi,
In apt.spec we have [1] and when I query apt rpm for scripts (rpm -q
apt --scripts ) we have [2], i.e. %{_sharedstatedir} wasn't replaced by
/var/lib . why ? and how I fix it ?
Thanks ,
[1]
%pre
getent group _apt >/dev/null || groupadd -r _apt
getent passwd _apt >/dev/null || \
useradd -r -g _apt -d %{_sharedstatedir}/apt -s /sbin/nologin \
-c "APT account for owning persistent & cache data" _apt
exit 0
[2]
preinstall scriptlet (using /bin/sh):
getent group apt >/dev/null || groupadd -r apt
getent passwd apt >/dev/null || \
useradd -r -g apt -d apt -s /sbin/nologin \
-c "APT account for owning persistent & cache data" apt
exit 0
--
Sérgio M. B.
3 years, 2 months
Request for feedback: %pycached macro for %files section
by Miro Hrončok
Hello,
we are considering to add a %pycached macro to be used in the %files section:
https://src.fedoraproject.org/rpms/python-rpm-macros/pull-request/37
We'd like to receive feedback. We plan to add it to rawhide and backport it to
all Fedoras + EPEL7+.
Usage:
%files
...
%pycached %{python3_sitelib}/foo.py
This will list:
/usr/lib/python3.8/site-packages/foo.py
/usr/lib/python3.8/site-packages/__pycache__/foo.cpython-38{,.opt-?}.pyc
Assuming the Python 3 version is 3.8.
The bytecode files are globbed, their presence is not checked.
This will fail:
%pycached %{python3_sitelib}/foo
error: %pycached can only be used with paths explicitly ending with .py
And so will any of this:
%pycached %{python3_sitelib}/*
%pycached %{python3_sitelib}/foo.*
%pycached %{python3_sitelib}/foo.p?
%pycached %{python3_sitelib}/foo.?y
%pycached %{python3_sitelib}/foo.??
But this will work:
%pycached %{python3_sitelib}/foo*.py
And it will generate the following globs:
/usr/lib/python3.8/site-packages/foo*.py
/usr/lib/python3.8/site-packages/__pycache__/foo*.cpython-38{,.opt-?}.pyc
When used with paths that include Python 3 version, it globs with the version:
%pycached /opt/python3.10/foo.py
Generates:
/opt/python3.10/foo.py
/opt/python3.10/__pycache__/foo.cpython-310{,.opt-?}.pyc
While paths without version have less strict globs:
%pycached /custom/foo.py
/custom/foo.py
/custom/__pycache__/foo.cpython-3*{,.opt-?}.pyc
This will generate a warning in RPM build:
warning: File listed twice: /custom/__pycache__/foo.cpython-38.opt-1.pyc
However it ensures the optimized bytecode is there.
--
Miro Hrončok
--
Phone: +420777974800
IRC: mhroncok
3 years, 2 months