Bug 1204467

Summary: Please re-review for packaging mistakes
Product: [Fedora] Fedora Reporter: Michael Schwendt <bugs.michael>
Component: pcpAssignee: Nathan Scott <nathans>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 21CC: brolley, fche, lberk, mgoodwin, nathans, pcp, scox
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: pcp-3.10.4-1.el5 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-04-22 22:57:19 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Michael Schwendt 2015-03-22 12:15:12 UTC
The package suffers from various packaging mistakes and would benefit from a re-review:

[...]

# rpm -q pcp-libs-devel
pcp-libs-devel-3.10.3-1.fc21.x86_64

# rpmls pcp-libs-devel|grep ^d
drwxr-xr-x  /usr/share/pcp/demos/mmv
drwxr-xr-x  /usr/share/pcp/demos/pmclient
drwxr-xr-x  /usr/share/pcp/demos/procmemstat
drwxr-xr-x  /usr/share/pcp/demos/trace
drwxr-xr-x  /usr/share/pcp/examples
drwxr-xr-x  /usr/share/pcp/examples/pmie
drwxr-xr-x  /var/lib/pcp/pmdas/sample
drwxr-xr-x  /var/lib/pcp/pmdas/simple
drwxr-xr-x  /var/lib/pcp/pmdas/trivial
drwxr-xr-x  /var/lib/pcp/pmdas/txmon

# rpm -qf /usr/share/pcp /var/lib/pcp /var/lib/pcp/pmdas
file /usr/share/pcp is not owned by any package
file /var/lib/pcp is not owned by any package
file /var/lib/pcp/pmdas is not owned by any package

https://fedoraproject.org/wiki/Packaging:Guidelines#File_and_Directory_Ownership
https://fedoraproject.org/wiki/Packaging:UnownedDirectories

A dependency on the base "pcp" package is missing, because that one is the provider of those directories.

[...]

# rpmls pcp-libs-devel|grep \.so
lrwxrwxrwx  /usr/lib64/libpcp.so
lrwxrwxrwx  /usr/lib64/libpcp.so.2
lrwxrwxrwx  /usr/lib64/libpcp_gui.so
lrwxrwxrwx  /usr/lib64/libpcp_gui.so.1
lrwxrwxrwx  /usr/lib64/libpcp_import.so
lrwxrwxrwx  /usr/lib64/libpcp_mmv.so
lrwxrwxrwx  /usr/lib64/libpcp_pmda.so
lrwxrwxrwx  /usr/lib64/libpcp_pmda.so.2
lrwxrwxrwx  /usr/lib64/libpcp_trace.so

The versioned libs very likely are runtime libs, compatibility links. In the spec file, I couldn't find any comment on them and why there are stored in the buildtime -devel package instead of the pcp-libs runtime package.

[...]

> Version: 3.10.3
> Release: 0.804.g2e0fe59%{?dist}

The guidelines for snapshot packages have always been different:

https://fedoraproject.org/wiki/Packaging:Guidelines#Version_and_Release
https://fedoraproject.org/wiki/Packaging:NamingGuidelines#Snapshot_packages


> Source0: %{name}-%{version}-0.804.g2e0fe59.tar.gz

https://fedoraproject.org/wiki/Packaging:SourceURL#Using_Revision_Control


> %define

https://fedoraproject.org/wiki/Packaging:Guidelines#.25global_preferred_over_.25define


> %package conf
> Group: Development/Libraries

??  That is the group tag for buildtime packages.


> %package libs
> Group: Development/Libraries

The group tag for runtime base library packages has been "System Environment/Libraries" for many years, dating back to very old Red Hat Linux releases even. 

Nowadays, the group tag is optional:
https://fedoraproject.org/wiki/Packaging:Guidelines#Group_tag


> %package libs-devel
> Requires: pcp-libs = %{version}-%{release}

https://fedoraproject.org/wiki/Packaging:Guidelines#Requiring_Base_Package

Same for the other subpackages.


> %{_mandir}/man1/pmmgr.1.gz

Typically, one includes manual pages with a trailing wildcard, so the package would still build with modified/disabled compression of manual pages:

  %{_mandir}/man1/pmmgr.1*


> %defattr(-,root,root,-)

Obsolete for several years.
https://fedoraproject.org/wiki/Packaging:Guidelines#File_Permissions

Comment 1 Nathan Scott 2015-03-23 07:13:50 UTC
Ah, thanks Michael!  I'll work through those for the next update.  Lukas, could you look into the rawhide snapshot naming issues Michael mentioned? - presumably the same changes will be needed in systemtap, from whence that came.

Comment 2 Frank Ch. Eigler 2015-03-23 13:06:37 UTC
It turns out that the snapshot-naming issues are false positives: we're exactly following the "pre-release packages" convention for these.

Comment 3 Michael Schwendt 2015-03-23 13:16:32 UTC
Are you kidding?

The package has been at 3.10.3-2 before. Both in %changelog as well as in koji. Now it returned to 3.10.3-0.something, which is _lower_ than the earlier release: 2 is higher than 0. That's another mistake.

And it is a snapshot, but if it has been at 3.10.3 before, the later snapshots are a post-release.


> Release: 0.804.g2e0fe59%{?dist}

Look at the "kismet pre-release svn checkout" example:

  https://fedoraproject.org/wiki/Packaging:NamingGuidelines#Examples

You're missing the %{checkout} value as explained here:

  https://fedoraproject.org/wiki/Packaging:NamingGuidelines#Snapshot_packages

Comment 4 Michael Schwendt 2015-03-23 13:19:16 UTC
Lots of upgrade path issues because of those versioning problems:

  http://koji.fedoraproject.org/koji/packageinfo?packageID=10542

Example:

$ rpmdev-vercmp 3.10.3-1.fc22 3.10.3-0.804.g2e0fe59.fc23
3.10.3-1.fc22 > 3.10.3-0.804.g2e0fe59.fc23

Comment 5 Michael Schwendt 2015-03-23 13:30:11 UTC
> presumably the same changes will be needed in systemtap, from whence that came.

Confirmed.

Comment 6 Frank Ch. Eigler 2015-03-23 15:28:26 UTC
> The package has been at 3.10.3-2 before. Both in %changelog as well as in
> koji. Now it returned to 3.10.3-0.something

That's a separate matter - it should be named 3.10.4-something now.  The other question is whether it's better to model it as a ¶1.5.2.1.2 pre-release vs. ¶1.5.2.1.1 snapshot.

Comment 7 Michael Schwendt 2015-03-23 17:16:09 UTC
> The other question is whether it's better to model it as a ¶1.5.2.1.2
> pre-release vs. ¶1.5.2.1.1 snapshot.

There is no difference as long as you check out the source code from an SCM system.

Let me quote from the guidelines:

| If the snapshot package is considered a "pre-release package", follow the
| guidelines listed in Pre-Release Packages for snapshot packages, using the
| %{checkout} that you decide on above. (For instance,
| in kismet-0-0.3.20040204svn, 20040204svn is the %{checkout}) 

That is, currently it does _not_ follow the pre-release versioning guidelines for snapshots.

| If the snapshot is a "post-release package", follow the guidelines in the
| Post-Release Packages section. Where the %{posttag} in that section is the
| %{checkout} string you decided on above. 

Same here.

Comment 8 Lukas Berk 2015-03-23 17:46:56 UTC
(In reply to Michael Schwendt (Fedora Packager Sponsors Group) from comment #7)
> > The other question is whether it's better to model it as a ¶1.5.2.1.2
> > pre-release vs. ¶1.5.2.1.1 snapshot.
> 
> There is no difference as long as you check out the source code from an SCM
> system.
> 
> Let me quote from the guidelines:
> 
> | If the snapshot package is considered a "pre-release package", follow the
> | guidelines listed in Pre-Release Packages for snapshot packages, using the
> | %{checkout} that you decide on above. (For instance,
> | in kismet-0-0.3.20040204svn, 20040204svn is the %{checkout}) 
> 
> That is, currently it does _not_ follow the pre-release versioning
> guidelines for snapshots.
> 
> | If the snapshot is a "post-release package", follow the guidelines in the
> | Post-Release Packages section. Where the %{posttag} in that section is the
> | %{checkout} string you decided on above. 
> 
> Same here.

As of the current rawhide spin, this particular naming issue has been fixed.  Please see: http://koji.fedoraproject.org/koji/buildinfo?buildID=622679

I will tweak the systemtap spins as well next week to observe proper YYYYMMDDgit{describe} naming.

Comment 9 Fedora Update System 2015-04-16 04:08:44 UTC
pcp-3.10.4-1.fc22 has been submitted as an update for Fedora 22.
https://admin.fedoraproject.org/updates/pcp-3.10.4-1.fc22

Comment 10 Fedora Update System 2015-04-16 04:09:25 UTC
pcp-3.10.4-1.fc21 has been submitted as an update for Fedora 21.
https://admin.fedoraproject.org/updates/pcp-3.10.4-1.fc21

Comment 11 Fedora Update System 2015-04-16 04:10:06 UTC
pcp-3.10.4-1.fc20 has been submitted as an update for Fedora 20.
https://admin.fedoraproject.org/updates/pcp-3.10.4-1.fc20

Comment 12 Fedora Update System 2015-04-16 04:12:04 UTC
pcp-3.10.4-1.el5 has been submitted as an update for Fedora EPEL 5.
https://admin.fedoraproject.org/updates/pcp-3.10.4-1.el5

Comment 13 Fedora Update System 2015-04-17 18:19:41 UTC
Package pcp-3.10.4-1.el5:
* should fix your issue,
* was pushed to the Fedora EPEL 5 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=epel-testing pcp-3.10.4-1.el5'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-EPEL-2015-5870/pcp-3.10.4-1.el5
then log in and leave karma (feedback).

Comment 14 Fedora Update System 2015-04-22 22:57:19 UTC
pcp-3.10.4-1.fc22 has been pushed to the Fedora 22 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 15 Fedora Update System 2015-04-28 12:58:26 UTC
pcp-3.10.4-1.fc21 has been pushed to the Fedora 21 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 16 Fedora Update System 2015-04-28 13:15:31 UTC
pcp-3.10.4-1.fc20 has been pushed to the Fedora 20 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 17 Fedora Update System 2015-05-03 00:48:20 UTC
pcp-3.10.4-1.el5 has been pushed to the Fedora EPEL 5 stable repository.  If problems still persist, please make note of it in this bug report.