#2294 Request for Proven Packager
Closed: Accepted by kevin. Opened by law.

I'm requesting to be added to the proven packager group. The primary purpose is to address minor issues with packages in preparation for the gcc-10 upgrade now (and future upgrades as well).

For example, gcc-10 has refactored C++ header files which no longer indirectly include things like stdexcept (and many others). Thus, packages that previously depended on those indirect includes will fail to build with gcc-10.

Another upcoming change is a re-tuned function inliner which will trip problems with packages that have inline functions with no storage class specifier. In some cases this will result in link errors due to undefined functions.

In both of these cases the fix is trivial (add missing #include and adding "static" storage qualifier respectively) and I've tried to contact the package owners to get these issues fixed proactively (with some, but limited success).

There's other changes that will likely cause similar issues that are going to need to be fixed with trivial .spec file markers (to denote packages that require old C "common" symbol handling and thus special flags to continue to build with gcc-10). This is going to affect 400-500 packages in Fedora and I'm going to be unable to contact every package maintainer proactively to fix their package. Similar kinds of fallout is expected for the no-implicit-function changes and LTO enablement that the GCC team wants to put in place in F32/F33.

I'm keenly aware of the desire not to make extensive changes or changes where I'm not 100% confident in the fix. For example, there's a Fortran change that is going to cause ~40 packages to fail to build with gcc-10, but I'm not confident enough in my Fortran abilities to reliably fix those packages at this time and will continue to rely on the appropriate package maintainers to address those problems.

I've been a package maintainer in Fedora in the past (glibc, fuse) and probably have commit privileges on others (gcc, ltrace, perhaps others). So I'm familiar with basic policies and procedures.

I'm not sure who can sponsor the request. I'm happy to reach out to folks like Jakub Jelinek, Carlos O Donell and Jon Wakely to votes if that's appropriate.

Thanks,
Jeff Law
law@redhat.com


Metadata Update from @churchyard:
- Issue tagged with: provenpackager

Announced to sponsors. Sponsors, please vote in this ticket.

+1 from me

@law Do you have some specific examples of the changes you are talking about?

An example of fixing the C++ include issue would look like this (memkind package that I picked at random)

diff -Nrup a/include/pmem_allocator.h b/include/pmem_allocator.h
--- a/include/pmem_allocator.h 2019-04-08 03:09:06.000000000 -0600
+++ b/include/pmem_allocator.h 2019-09-23 16:44:03.513259842 -0600
@@ -30,6 +30,7 @@
#include
#include
#include
+#include

#include "memkind.h"

With whatever appropriate .spec changes are necessary to get the patch installed. Obviously some use %patch others use %autosetup with or without --git, different -p options, etc.

For the inliner issues the patches look like this (tcpick again as a random sample)

diff -Nrup a/src/verify.c b/src/verify.c
--- a/src/verify.c 2019-10-15 14:12:20.401992523 -0600
+++ b/src/verify.c 2019-11-11 15:00:53.912969295 -0700
@@ -92,7 +92,7 @@
tcppacket->rst == 1

-inline int
+static inline int
established_packet ( struct CONN * conn_ptr, struct HOST_DESC * Desc)
/ called by verify()
packets of established connections come here
/
diff -Nrup a/src/write.c b/src/write.c
--- a/src/write.c 2019-10-15 14:12:20.401992523 -0600
+++ b/src/write.c 2019-10-15 14:12:46.936842779 -0600
@@ -31,7 +31,7 @@
#include "extern.h"
#include "lookup.h"

-inline char *
+static inline char *
avail_filename(struct CONN * conn_ptr,
enum PART side, char * ext)
/*

We don't yet know what form the .spec file marker will look like for the "-fcommon/-fno-common" issue will look like. It'll require negotiation with the redhat-rpm-config maintainers first.

So, you expect to go and mass add patches to packages, correct?

+1 for Jeff Law to be provenpackager.

+1 from me, Jeff Law is an experienced toolchain developer (I remember his posts to the GCC mailing list when I was still reading everything on it for my work on TIGCC more than a decade ago), so I see no reason not to trust him.

Looks good to me, +1.

Where I've already identified the problem, produced a patch & verified it builds with mock in our Fedora package tester yes.

For the -fcommon/-fno-common issue, it'll depend on what we work out with the redhat-rpm-config maintainers and how fast we can get the package maintainers and upstreams to fix their code. I'm already coordinating with SuSE and Ubuntu on this stuff given how many packages are involved and everyone's desire to see it fixed upstream first rather than blindly using markers.

Definite +1 here.

For these changes, do look at https://docs.fedoraproject.org/en-US/fesco/Mass_package_changes/

+1

APPROVED. +26, no -.

@kevin, please make it happen.

Metadata Update from @churchyard:
- Issue assigned to kevin
- Issue tagged with: pending announcement

Done. Sorry for the delay.

Use your powers wisely!

Metadata Update from @kevin:
- Issue close_status updated to: Accepted
- Issue status updated to: Closed (was: Open)

On Fri, 2019-12-13 at 17:14 +0000, Kevin Fenzi wrote:

The status of the issue: Request for Proven Packager of project: fesco has been updated to: Closed as Accepted by kevin.

https://pagure.io/fesco/issue/2294
Hmm, I'd think it would have propagated by now (~5hrs):

[law@Jeffs-laptop FEDORA]$ cd dwgrep/
[law@Jeffs-laptop dwgrep]$ git push
Enter passphrase for key '/home/law/.ssh/id_rsa':
X11 forwarding request failed on channel 0
Enumerating objects: 6, done.
Counting objects: 100% (6/6), done.
Delta compression using up to 8 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 732 bytes | 732.00 KiB/s, done.
Total 4 (delta 1), reused 0 (delta 0)
remote: Fall-through deny
remote: Denied push for ref 'refs/heads/master' for user 'law'
remote: All changes have been rejected
To ssh://pkgs.fedoraproject.org/rpms/dwgrep
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to '
ssh://law@pkgs.fedoraproject.org/rpms/dwgrep'

[law@Jeffs-laptop dwgrep]$ ssh law@pkgs.fedoraproject.org
Enter passphrase for key '/home/law/.ssh/id_rsa':
X11 forwarding request failed on channel 0
PTY allocation request failed on channel 0
Welcome law. This server does not offer shell access.
Connection to pkgs.fedoraproject.org closed.

@law you'll need to log out and back in on src.fedoraproject.org to synchronize your group memberships, IIRC.

There's also sometimes a sync issue, but I manually just made sure it was synced. If it doesn't work after a logout/login now, let me know...

On Sat, 2019-12-14 at 01:07 +0000, Kevin Fenzi wrote:

kevin added a new comment to an issue you are following:
``
There's also sometimes a sync issue, but I manually just made sure it was synced. If it doesn't work after a logout/login now, let me know...

``

I'm certainly in the group according to admin.fedoraproject.org, but
I'm still unable to git push to a package where I'm not a listed
maintainer. I've got to be doing something wrong. Testing with
dwgrep:

[law@localhost dwgrep]$ git push
Enter passphrase for key '/home/law/.ssh/id_rsa':
X11 forwarding request failed on channel 0
Enumerating objects: 6, done.
Counting objects: 100% (6/6), done.
Delta compression using up to 8 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 732 bytes | 732.00 KiB/s, done.
Total 4 (delta 1), reused 0 (delta 0)
remote: Fall-through deny
remote: Denied push for ref 'refs/heads/master' for user 'law'
remote: All changes have been rejected
To ssh://pkgs.fedoraproject.org/rpms/dwgrep
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'ssh://law@pkgs.fedoraproject.org/rpms/dwgrep'

Is it possible dwgrep has opted-out of commits from the provenpackager
group?

I can still commit to other projects where I'm a maintainer though
(memstomp for example).

How do we best go about debugging this?

jeff

On Sat, 2019-12-14 at 01:07 +0000, Kevin Fenzi wrote:

kevin added a new comment to an issue you are following:
``
There's also sometimes a sync issue, but I manually just made sure it was synced. If it doesn't work after a logout/login now, let me know...

It's working now! Thanks!

jeff

Metadata