DevHeads.net

Postings by Jason L Tibbitts III

Changes to the packaging guidelines

Here are the recent changes to the packaging guidelines.

The Python packaging guidelines have been updated to reflect the fact
that Python 2 is deprecated. All relevant information for legacy Python
2 packaging has been moved to the appendix.

Brainstorming about kernel updates with low disk space

I'd like to brainstorm a bit about how to make kernel updates more
resilient to running out of disk space.

Changes to the packaging guidelines

Here are the recent changes to the packaging guidelines.

The packaging guidelines for enabling services by default were
significantly revised to emphasize that services starting by default
should fail only in exceptional conditions, and to provide additional
guidance for services related to hardware enablement.

* <a href="https://fedoraproject.org/wiki/Packaging:DefaultServices" title="https://fedoraproject.org/wiki/Packaging:DefaultServices">https://fedoraproject.org/wiki/Packaging:DefaultServices</a>
* <a href="https://pagure.io/packaging-committee/issue/777" title="https://pagure.io/packaging-committee/issue/777">https://pagure.io/packaging-committee/issue/777</a>

The Python guidelines were modified to mention the %pypi_source macro
(available in all Fedora and EPEL releases) which conveniently expands
to the proper sou

Intent to retire denyhosts

Denyhosts is a daemon which watches for failed ssh login attempts and
blocks them. I have long maintained denyhosts in Fedora and while I did
not originally agree with it being branched to EPEL, I have done light
maintenance on EPEL7 as well. The EPEL6 branch is, however, very old.

The upstream project is mostly moribund.

Packages which use banned tags

The packaging guidelines indicate that the following tags must not be
used:
Copyright:
Packager:
Vendor:
PreReq:
<a href="https://fedoraproject.org/wiki/Packaging:Guidelines#Tags_and_Sections" title="https://fedoraproject.org/wiki/Packaging:Guidelines#Tags_and_Sections">https://fedoraproject.org/wiki/Packaging:Guidelines#Tags_and_Sections</a>

I wasn't aware that a package would even build if the first three were
used, but it seems that a few instances of these tags persist.

Nothing uses Copyright:.

Five packages use Vendor:
dpkg etoys gold netbeans storhaug

Packager: is used by mcollective

apmud has Prereq: chkconfig which is obviously a sign that something is
amiss.

Packages which use the BuildRoot: directive

The Packaging Guidelines indicate that BuildRoot: should not be used in
Fedora specfiles.

The BuildRoot: tag has not been required since RHEL6 and was also not
required in EPEL5 (due to some magic in epel-rpm-macros). It has not
been needed in any Fedora release since at least Fedora 12.

It has already been removed from most packages due to previous efforts
but it lingers in a few (91, to be exact).

Packages which needlessly use %defattr

In a %files section of a specfile, the %defattr directive is used to set
the default file ownership and permissions. RPM has provided a sensible
default since version 4.4 (which predates FC6 and RHEL5), but very many
specfiles still include an initial %defattr line like
"%defattr(-,root,root,-)" as the initial line in a %files section even
though this has not been needed for well over a decade now. This
construct even appears in new specfiles, perhaps because it appears in
so many existing packages.

The packaging guidelines indicate that %defattr should not be used in
this manner.

Packages with scriptlets which call ldconfig

In Fedora 28 and newer, it is no longer necessary for most packages
which install shared libraries to have scriptlets which call ldconfig:
<a href="https://fedoraproject.org/wiki/Packaging:Scriptlets#Shared_Libraries" title="https://fedoraproject.org/wiki/Packaging:Scriptlets#Shared_Libraries">https://fedoraproject.org/wiki/Packaging:Scriptlets#Shared_Libraries</a>

For your convenience, I ran the find-ldconfig-calls script from
<a href="https://pagure.io/fedora-misc-package-utilities" title="https://pagure.io/fedora-misc-package-utilities">https://pagure.io/fedora-misc-package-utilities</a> to find all source
packages in rawhide which produce binary packages with scriptlets that
call ldconfig. I found 2239 packages.

Packages which call install-info in scriptlets

As of Fedora 28, the 'info' package has gained a file trigger
(%transfiletrigger) which will automatically rebuild the info directory
node when any file is installed into %_infodir. Thus it is no longer
necessary for packages in F28 or newer to include scriptlets which call
install-info, nor to include the dependencies on info or
/sbin/install-info for those scriptlets. We have updated the packaging
guidelines (<a href="https://fedoraproject.org/wiki/Packaging:Scriptlets#Texinfo" title="https://fedoraproject.org/wiki/Packaging:Scriptlets#Texinfo">https://fedoraproject.org/wiki/Packaging:Scriptlets#Texinfo</a>)
to indicate that these scriptlets and dependencies should be removed in
F28 and newer.

Packages with compiled python files outside of /usr/lib*/python8

As part of a recent guideline change
(<a href="https://pagure.io/packaging-committee/issue/772" title="https://pagure.io/packaging-committee/issue/772">https://pagure.io/packaging-committee/issue/772</a>) which ties in with an
accepted F29 change
(<a href="https://fedoraproject.org/wiki/Changes/No_more_automagic_Python_bytecompilation" title="https://fedoraproject.org/wiki/Changes/No_more_automagic_Python_bytecompilation">https://fedoraproject.org/wiki/Changes/No_more_automagic_Python_bytecomp...</a>),
this section of the guidelines was overhauled for F29+:
<a href="https://fedoraproject.org/wiki/Packaging:Python_Appendix#Manual_byte_compilation" title="https://fedoraproject.org/wiki/Packaging:Python_Appendix#Manual_byte_compilation">https://fedoraproject.org/wiki/Packaging:Python_Appendix#Manual_byte_com...</a>

The quick summary is that Fedora will be changing to not automatically
byte-compile python files which are installed outside of the usual
python library locations.

Changes to the packaging guidelines

Here are the recent changes to the packaging guidelines.

In Fedora 28 (and rawhide), the texinfo scriptlets (which call
install-info) are no longer necessary and should be removed or, for
cross-release specfiles, wrapped in conditionals.

Changes to the packaging guidelines

Here are the recent changes to the packaging guidelines.

Many changes have been made to the Ruby packaging guidelines to reflect
the current state of Ruby packaging.

* <a href="https://fedoraproject.org/wiki/Packaging:Ruby" title="https://fedoraproject.org/wiki/Packaging:Ruby">https://fedoraproject.org/wiki/Packaging:Ruby</a>
* <a href="https://pagure.io/packaging-committee/issue/710" title="https://pagure.io/packaging-committee/issue/710">https://pagure.io/packaging-committee/issue/710</a>

Note that the macros required for some of those guidelines might still
be making their way into the stable releases.

The Libraries and Applications section of the guidelines was modified to
favor independent packaging of applications and to discourage separate
graphical applications from having dependencies on each o

Changes to the packaging guidelines

Here are the recent changes to the packaging guidelines.

A note was added to the Python guidelines indicating that the python2
stack may go away and that upstreams should be contacted about software
not yet ported to python3.

* <a href="https://fedoraproject.org/wiki/Packaging:Python#Python_Version_Support" title="https://fedoraproject.org/wiki/Packaging:Python#Python_Version_Support">https://fedoraproject.org/wiki/Packaging:Python#Python_Version_Support</a>
* <a href="https://pagure.io/packaging-committee/issue/753" title="https://pagure.io/packaging-committee/issue/753">https://pagure.io/packaging-committee/issue/753</a>

The Python guidelines now more clearly indicate that use of %{__python},
%{python_sitelib} and %{python_sitearch} is forbidden.

* <a href="https://fedoraproject.org/wiki/Packaging:Python#Macros" title="https://fedoraproject.org/wiki/Packaging:Python#Macros">https://fedoraproject.org/wiki/Packaging:Python#Macros</a>
* <a href="https://pagure.io/packaging-committee/issu" title="https://pagure.io/packaging-committee/issu">https://pagure.io/packaging-committee/issu</a>

Help needed with new segfaults in frame unwinding under gcc8

I could really use some help from the gcc experts.

A package I maintain, cyrus-imapd, contains two extensive test suites
which we run at package build time. After the big flag day where we
updated gcc and glibc and such in rawhide, one of the test suites now
shows failures and produces 22 core dumps, but only when run in mock
(not even fedpkg local on a rawhide container).

Python2 stub packages now in EPEL stable

[For those who don't read epel-devel, this is a duplicate of a message
also posted there.]

The initial set of stub python2-* packages I created have now made their
way to EPEL6 and EPEL7 stable, so packages can now depend on
python2-setuptools, python2-six, python2-pytest and python2-sphinx
in all releases without having to add conditionals for EPEL.

Feel free to suggest additional packages; I will be happy to create
them.

See <a href="https://fedoraproject.org/wiki/User:Tibbs/EPELPythonStubPackages" title="https://fedoraproject.org/wiki/User:Tibbs/EPELPythonStubPackages">https://fedoraproject.org/wiki/User:Tibbs/EPELPythonStubPackages</a> for
more information.

- J<

Changes to the packaging guidelines

Just this one change, but it has implications for many packages.

The Scriptlet guidelines have received several changes regarding the
installation of shared libraries and ldconfig.

Heads up: automatic shebang munging in rawhide

With redhat-rpm-config-91-1.fc28 which is currently in rawhide comes
automatic munging of the "#!" (shebang) line in executable scripts, as
well as several additional checks. The following changes will be
applied the shebang line of executables:

1) "#!/usr/bin/env foo" will be replaced with "#!/usr/bin/foo".
2) "#!/usr/bin/python" will be replaced with "#!/usr/bin/python2".

Both might happen, so /usr/bin/env python will get fixed properly.

Changes to the packaging guidelines

Here are the recent changes to the packaging guidelines.

We have more things coming in concert with various distro changes that
are happening, but I wanted to get these two out there now.

The icon cache scriptlets were removed from the scriptlet guidelines, as
no live Fedora release needs them.

Changes to the packaging guidelines

Here are the recent changes to the packaging guidelines.

Following releng approval, the restrictions on the use of rich/Boolean
dependencies have been lifted.

* <a href="https://fedoraproject.org/wiki/Packaging:Guidelines#Rich.2FBoolean_dependencies" title="https://fedoraproject.org/wiki/Packaging:Guidelines#Rich.2FBoolean_dependencies">https://fedoraproject.org/wiki/Packaging:Guidelines#Rich.2FBoolean_depen...</a>
* <a href="https://pagure.io/packaging-committee/issue/559" title="https://pagure.io/packaging-committee/issue/559">https://pagure.io/packaging-committee/issue/559</a>

Packaging guidelines for Rust have been added.

* <a href="https://fedoraproject.org/wiki/Packaging:Rust" title="https://fedoraproject.org/wiki/Packaging:Rust">https://fedoraproject.org/wiki/Packaging:Rust</a>
* <a href="https://pagure.io/packaging-committee/issue/705" title="https://pagure.io/packaging-committee/issue/705">https://pagure.io/packaging-committee/issue/705</a>

A new section was added to the packaging guidelines regarding shebang
lines.

Mass rebuild failures only on ppc64le: glibc problem?

I noticed one of my packages failed to build because the test suite
failed, but only on ppc64le.

builddir/build/BUILD/cyrus-imapd-3.0.2/cunit/.libs/lt-unit: error while
loading shared libraries:
/builddir/build/BUILD/cyrus-imapd-3.0.2/imap/.libs/libcyrus_imap.so.0:
expected localentry:0 `sasl_client_new'

I have no idea what that means, and a search for "expected localentry:0"
turned up only the patch where that message was added to glibc.

I did some other random checks and found a few other packages with
ppc64le-only build failures: freeipa, gammu, gap-pkg-float, gambas3,
getdp (and I stopp

Guidelines change] Changes to the packaging guidelines

Here are the recent changes to the packaging guidelines.

The guidelines for enabling services by default modified to indicate
that FESCo approval is required for services which change the behavior
of other services.

* <a href="https://fedoraproject.org/wiki/Packaging:DefaultServices#Restrictions" title="https://fedoraproject.org/wiki/Packaging:DefaultServices#Restrictions">https://fedoraproject.org/wiki/Packaging:DefaultServices#Restrictions</a>
* <a href="https://pagure.io/packaging-committee/issue/683" title="https://pagure.io/packaging-committee/issue/683">https://pagure.io/packaging-committee/issue/683</a>

A very minor tweak was made to the bootstrapping guidelines to invert
the sense of a test so that it matches expectations.

* <a href="https://fedoraproject.org/wiki/Packaging:Guidelines#Bootstrapping" title="https://fedoraproject.org/wiki/Packaging:Guidelines#Bootstrapping">https://fedoraproject.org/wiki/Packaging:Guidelines#Bootstrapping</a>
* <a href="https://pagure.io/packaging-committee/issue/684" title="https://pagure.io/packaging-committee/issue/684">https://pagure.io/packaging-committee/issue/684</a>

Changes to the packaging guidelines

Here are the recent changes to the packaging guidelines.

The guidelines on versioning packages were completely rewritten in order
to make them (hopefully) more comprehensible.

Changes to the packaging guidelines

Here are the recent changes to the packaging guidelines.

The systemd section of the scriptlet guidelines was updated to indicate
situations where the %systemd_ordering macro may be used instead of
%systemd_requires.

* <a href="https://fedoraproject.org/wiki/Packaging:Scriptlets#Systemd" title="https://fedoraproject.org/wiki/Packaging:Scriptlets#Systemd">https://fedoraproject.org/wiki/Packaging:Scriptlets#Systemd</a>
* <a href="https://fedorahosted.org/fpc/ticket/644" title="https://fedorahosted.org/fpc/ticket/644">https://fedorahosted.org/fpc/ticket/644</a>

The guidelines for replacing existing packages have been updated with
mention of the "fedora-obsolete-packages" package:

* <a href="https://fedoraproject.org/wiki/Packaging:Guidelines#Renaming.2FReplacing_Existing_Packages" title="https://fedoraproject.org/wiki/Packaging:Guidelines#Renaming.2FReplacing_Existing_Packages">https://fedoraproject.org/wiki/Packaging:Guidelines#Renaming.2FReplacing...</a>
* <a href="https://apps.fedoraproject.org/packages/fedora" title="https://apps.fedoraproject.org/packages/fedora">https://apps.fedoraproject.org/packages/fedora</a>

Removal of the default 16 job limit for makefile parallelism

The hardcoded upper limit of 16 jobs, passed to make via "-j" when you
use either %make_build or make %{?_smp_mflags} in the %build section of
your specfiles, is going away in rawhide. This may result in your jobs
being run with additional parallelization in some situations.

This change will appear in rawhide soon. It is not being made in F25 at
this time; that requires more discussion and will warrant a separate
announcement.

What you need to do:

Nothing.

My experiences with KillUserProcesses=yes on F24

After reading (some of) the "discussion" about systemd-logind's
KillUserProcesses setting, I decided that I'd like to try enabling it
and see how it works and how I can make it useful in my environment.
Sorry, it's long, but I though folks might want to know.

Disclaimer:
I quite like systemd and I will try to avoid strong language like
"bizarre", "surprising", "WTF" and except in one case, "bug".

Changes to the packaging guidelines

Here are the recent changes to the packaging guidelines.

The Filesystem Layout section of the guidelines was simplified and
outdated information was removed.

* <a href="https://fedoraproject.org/wiki/Packaging:Guidelines" title="https://fedoraproject.org/wiki/Packaging:Guidelines">https://fedoraproject.org/wiki/Packaging:Guidelines</a>
* <a href="https://fedoraproject.org/wiki/Packaging:Guidelines#Filesystem_Layout" title="https://fedoraproject.org/wiki/Packaging:Guidelines#Filesystem_Layout">https://fedoraproject.org/wiki/Packaging:Guidelines#Filesystem_Layout</a>
* <a href="https://fedorahosted.org/fpc/ticket/623" title="https://fedorahosted.org/fpc/ticket/623">https://fedorahosted.org/fpc/ticket/623</a>

The outdated section restricting dependencies between /bin and /usr has
been removed.

* <a href="https://fedoraproject.org/wiki/Packaging:Guidelines" title="https://fedoraproject.org/wiki/Packaging:Guidelines">https://fedoraproject.org/wiki/Packaging:Guidelines</a>
* <a href="https://fedoraproject.org/wiki/Packaging:Guidelines#Binaries_in_.2Fbin_and_.2Fsbin" title="https://fedoraproject.org/wiki/Packaging:Guidelines#Binaries_in_.2Fbin_and_.2Fsbin">https://fedoraproject.org/wiki/Packaging:Guidelines#Binaries_in_.2Fbin_a...</a>
(now deleted)
* <a href="https://fed" title="https://fed">https://fed</a>

Changes to the packaging guidelines

Here are the recent changes to the packaging guidelines.

The section on the use of pregenerated code was amended to indicate the
preference for having tools necessary to regenerate such code be free
software and packaged in Fedora.
* <a href="https://fedoraproject.org/wiki/Packaging:Guidelines" title="https://fedoraproject.org/wiki/Packaging:Guidelines">https://fedoraproject.org/wiki/Packaging:Guidelines</a>
* <a href="https://fedoraproject.org/wiki/Packaging:Guidelines#Use_of_pregenerated_code" title="https://fedoraproject.org/wiki/Packaging:Guidelines#Use_of_pregenerated_code">https://fedoraproject.org/wiki/Packaging:Guidelines#Use_of_pregenerated_...</a>
* <a href="https://fedorahosted.org/fesco/ticket/1514" title="https://fedorahosted.org/fesco/ticket/1514">https://fedorahosted.org/fesco/ticket/1514</a>

The outdated prohibition on socket activated services was removed from
the Systemd packaging guidelines.

* <a href="https://fedoraproject.org/wiki/Packaging:Systemd" title="https://fedoraproject.org/wiki/Packaging:Systemd">https://fedoraproject.org/wiki/Packaging:Systemd</a>
* <a href="https://fedorap" title="https://fedorap">https://fedorap</a>

Changes to the packaging guidelines

Here are the recent changes to the packaging guidelines.

The use of rich (or Boolean) dependencies is now OK for F23+.

* <a href="https://fedoraproject.org/wiki/Packaging:Guidelines#Rich.2FBoolean_dependencies" title="https://fedoraproject.org/wiki/Packaging:Guidelines#Rich.2FBoolean_dependencies">https://fedoraproject.org/wiki/Packaging:Guidelines#Rich.2FBoolean_depen...</a>
* <a href="https://fedorahosted.org/fpc/ticket/593" title="https://fedorahosted.org/fpc/ticket/593">https://fedorahosted.org/fpc/ticket/593</a>

The ban on the use of the %systemd_requires macro has been lifted.

* <a href="https://fedoraproject.org/wiki/Packaging:Scriptlets#Systemd" title="https://fedoraproject.org/wiki/Packaging:Scriptlets#Systemd">https://fedoraproject.org/wiki/Packaging:Scriptlets#Systemd</a>
* <a href="https://fedorahosted.org/fpc/ticket/600" title="https://fedorahosted.org/fpc/ticket/600">https://fedorahosted.org/fpc/ticket/600</a>

The mono guidelines were modified to require that packages limit
themselves via ExclusiveArch: to architectures which actually support
mono.

* <a href="https://f" title="https://f">https://f</a>

Changes to the packaging guidelines

Here are the recent changes to the packaging guidelines.

Some PHP scriptlets are now unnecessary in F24 due to the use of file
triggers.

* <a href="https://fedoraproject.org/wiki/Packaging:PHP#PECL_Modules" title="https://fedoraproject.org/wiki/Packaging:PHP#PECL_Modules">https://fedoraproject.org/wiki/Packaging:PHP#PECL_Modules</a>
* <a href="https://fedorahosted.org/fpc/ticket/597" title="https://fedorahosted.org/fpc/ticket/597">https://fedorahosted.org/fpc/ticket/597</a>

A page describing the implementation of Langpacks for F23 and newer has
been added to the guidelines, and various other pages have been updated
to reference it.

* <a href="https://fedoraproject.org/wiki/Packaging:Langpacks" title="https://fedoraproject.org/wiki/Packaging:Langpacks">https://fedoraproject.org/wiki/Packaging:Langpacks</a>
* <a href="https://fedorahosted.org/fpc/ticket/593" title="https://fedorahosted.org/fpc/ticket/593">https://fedorahosted.org/fpc/ticket/593</a>