DevHeads.net

Postings by Jason L Tibbitts III

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>

Changes to the packaging guidelines

Here are the recent changes to the packaging guidelines.

A section on the treatment of pregenerated code has been added to the
main guideline page.

*​https://fedoraproject.org/wiki/Packaging:Guidelines#Use_of_pregenerated_code
*​https://fedorahosted.org/fpc/ticket/580

Text was added to the section on spec legibility indicating that non
Fedora/EPEL macros should not be used in Fedora specfiles.

*​https://fedoraproject.org/wiki/Packaging:Guidelines#Spec_Legibility
*​https://fedorahosted.org/fpc/ticket/582

The node.js guidelines have gained a requirement for a %chec

Needless use of %defattr (in 4464 packages)

The %defattr statement in the %files section of a spec is used to
specify the default mode and user/group for the files and directories
which follow. However, for a very, very long time, RPM has provided a
default value, and no version of RPM in use in any Fedora or EPEL
version requires a defattr statement. It is completely pointless to
provide one which just sets the defaults to the existing defaults.

The %license property is now supported in EPEL6

Just a note that it EPEL6 no longer requires you to include the
definition of %license property; you can use it freely in your %files
list as you would in EPEL7 or Fedora. It simply maps to %doc as it
would if you had included the magic line noise manually. This works for
me in koji; if it doesn't work in your local mock instance, it's
possible that the mirrors still need to catch up with the change to
comps.

You'll still need that line noise (for now, at least) in EPEL5. Next
I'll be looking into whether or not it's actually possible.

- J<

Specs using %define

To satisfy my curiosity, I grepped the convenient tarball of specfiles
(<a href="http://pkgs.fedoraproject.org/repo/rpm-specs-latest.tar.xz" title="http://pkgs.fedoraproject.org/repo/rpm-specs-latest.tar.xz">http://pkgs.fedoraproject.org/repo/rpm-specs-latest.tar.xz</a>) for lines
matching "(?<!%)%define" (%define but not %%define). To my surprise,
there were more than 1900 hits.

Here's a complete (long) list. I don't think there's much point in
doing anything about the vast majority of these, but if you're in
cleaning up your packages then why not? Also, feel free to let me know
if any of these are false positives.

Slight change to the review process for new contributors

After FESCo approval of <a href="https://fedorahosted.org/fesco/ticket/1499" title="https://fedorahosted.org/fesco/ticket/1499">https://fedorahosted.org/fesco/ticket/1499</a> I
have modified the review process document:
<a href="https://fedoraproject.org/wiki/Package_Review_Process" title="https://fedoraproject.org/wiki/Package_Review_Process">https://fedoraproject.org/wiki/Package_Review_Process</a>
to indicate that any packager is welcome to complete the initial package
review(s) for a new contributor.

Dealing with the "my packages" problem

tl; dr: I have submitted the following RFE for pkgdb:
<a href="https://github.com/fedora-infra/pkgdb2/issues/274" title="https://github.com/fedora-infra/pkgdb2/issues/274">https://github.com/fedora-infra/pkgdb2/issues/274</a>
Please add comments there if you have any.

I know I'm not the only provenpackager to have applied a bugfix to
someone's package only to be yelled at it for it.

Quick proposal for making packager sponsorship slightly easier

I recently filed <a href="https://fedorahosted.org/fesco/ticket/1499" title="https://fedorahosted.org/fesco/ticket/1499">https://fedorahosted.org/fesco/ticket/1499</a> with the
goal of making the process just a bit simpler for new packagers. The text of
my proposal follows. Please make sure that substantial comments are
made on the ticket to ensure that FESCo sees them.

Sponsors are responsible (but not solely responsible) for shepherding
people through the packaging process.