Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.

Bug 490397

Summary: Review Request: gmime22 - Library for creating and parsing MIME messages
Product: [Fedora] Fedora Reporter: Bernard Johnson <bjohnson>
Component: Package ReviewAssignee: Alex Lancaster <alex>
Status: CLOSED NEXTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: alex, alexl, fedora-package-review, moneta.mace, notting
Target Milestone: ---Flags: alex: fedora-review+
kevin: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2009-03-20 02:52:13 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 476243    
Bug Blocks: 476250, 490316    

Description Bernard Johnson 2009-03-16 03:53:06 UTC
Spec URL: http://fedorapeople.org/~bjohnson/compat-gmime.spec
SRPM URL: http://fedorapeople.org/~bjohnson/compat-gmime-2.2.23-3.fc11.src.rpm>
Description: 
The GMime suite provides a core library and set of utilities which may be
used for the creation and parsing of messages using the Multipurpose
Internet Mail Extension (MIME).

This is a compat library for those programs that are still using gmime-2.2.

The package does not build the mono part as those are provided by gmime-2.4.

$ rpmlint *rpm
compat-gmime-devel.i386: E: only-non-binary-in-usr-lib
4 packages and 0 specfiles checked; 1 errors, 0 warnings.

Given that this package is based off the gmime-2.2 package that previously passed review, I'd like an exception on this rpmlint error so that the package remains more or less the same as the 2.2 package.

Comment 1 Alex Lancaster 2009-03-16 06:32:23 UTC
There are at least two packages that don't yet rebuild using gmime 2.4:

pan: (bug #476250)  and dbmail (bug #490316)

Also Cc'ing the gmime maintainer as https://fedoraproject.org/wiki/BrianPepple/DraftCompatPackages suggests that the maintainer of the primary package shouldn't be against the idea.

Comment 2 Alex Lancaster 2009-03-16 07:16:04 UTC
Here are the main issues:

1. missing "Requires: pkgconfig"
2. probably should get some feedback from current gmime maintainer (although not a 100% requirement, it would be better to get feedback)

Rest of full review:

 +:ok, =:needs attention, -:needs fixing, N/A:not applicable

MUST Items:
[+] MUST: rpmlint must be run on every package.
# rpmlint compat-gmime-*
compat-gmime-devel.i586: E: only-non-binary-in-usr-lib
2 packages and 0 specfiles checked; 1 errors, 0 warnings.

Given that this exists in the original gmime 2.2.x package, I think this can be ignored for the moment as noted by comment #0

[+] MUST: The package must be named according to the Package Naming Guidelines.
[+] MUST: The spec file name must match the base package %{name}
[+] MUST: The package must meet the Packaging Guidelines. 
[+] MUST: The package must be licensed with a Fedora approved license and meet the Licensing Guidelines.
[+] MUST: The License field in the package spec file must match the actual license.
[+] MUST: If (and only if) the source package includes the text of the license(s) in its own file, then that file, containing the text of the license(s) for the package must be included in %doc.
[+] MUST: The spec file must be written in American English.
[+] MUST: The spec file for the package MUST be legible.
[+] MUST: The sources used to build the package must match the upstream source, as provided in the spec URL.
md5sum gmime-2.2.23.tar.bz2 rpmbuild/SOURCES/gmime-2.2.23.tar.bz2 
9f254eb989e0506243da6fde7f164998  gmime-2.2.23.tar.bz2
9f254eb989e0506243da6fde7f164998  rpmbuild/SOURCES/gmime-2.2.23.tar.bz2

[+] MUST: The package must successfully compile and build into binary rpms on at least one supported architecture.
koji scratch build
http://koji.fedoraproject.org/koji/taskinfo?taskID=1242971
[] MUST: If the package does not successfully compile, build or work on an architecture, then those architectures should be listed in the spec in ExcludeArch.

[+] MUST: All build dependencies must be listed in BuildRequires
[N/A] MUST: The spec file MUST handle locales properly. This is done by using the %find_lang macro.
[+] MUST: Every binary RPM package which stores shared library files (not just symlinks) in any of the dynamic linker's default paths, must call ldconfig in %post and %postun.
[N/A] MUST: If the package is designed to be relocatable, the packager must state this fact in the request for review
[+] MUST: A package must own all directories that it creates. If it does not create a directory that it uses, then it should require a package which does create that directory.
[+] MUST: A package must not contain any duplicate files in the %files listing.
[+] MUST: Permissions on files must be set properly. Executables should be set with executable permissions, for example. Every %files section must include a %defattr(...) line.
[+] MUST: Each package must have a %clean section, which contains rm -rf %{buildroot} (or $RPM_BUILD_ROOT).
[+] MUST: Each package must consistently use macros, as described in the macros section of Packaging Guidelines.
[+] MUST: The package must contain code, or permissible content. This is described in detail in the code vs. content section of Packaging Guidelines.
[N/A] MUST: Large documentation files should go in a doc subpackage.
[+] MUST: If a package includes something as %doc, it must not affect the runtime of the application.
[+] MUST: Header files must be in a -devel package.
[N/A] MUST: Static libraries must be in a -static package.
[=] MUST: Packages containing pkgconfig(.pc) files must 'Requires: pkgconfig' (for directory ownership and usability).
Appears to be missing "Requires: pkgconfig", see:
http://fedoraproject.org/wiki/Packaging/Guidelines#PkgconfigFiles

[+] MUST: If a package contains library files with a suffix (e.g. libfoo.so.1.1), then library files that end in .so (without suffix) must go in a -devel package.
[+] MUST: In the vast majority of cases, devel packages must require the base package using a fully versioned dependency: Requires: %{name} = %{version}-%{release} 
[+] MUST: Packages must NOT contain any .la libtool archives, these should be removed in the spec.
[N/A] MUST: Packages containing GUI applications must include a %{name}.desktop file, and that file must be properly installed with desktop-file-install in the %install section.
[+] MUST: Packages must not own files or directories already owned by other packages.
[+] MUST: At the beginning of %install, each package MUST run rm -rf %{buildroot} (or $RPM_BUILD_ROOT).
[+] MUST: All filenames in rpm packages must be valid UTF-8.

SHOULD Items:
[+] SHOULD: If the source package does not include license text(s) as a separate file from upstream, the packager SHOULD query upstream to include it.
[N/A] SHOULD: The description and summary sections in the package spec file should contain translations for supported Non-English languages, if available.
[+] SHOULD: The reviewer should test that the package builds in mock.
See koji build above
[+] SHOULD: The package should compile and build into binary rpms on all supported architectures.
Koji build above
[] SHOULD: The reviewer should test that the package functions as described.
[+] SHOULD: If scriptlets are used, those scriptlets must be sane.
[+] SHOULD: Usually, subpackages other than devel should require the base package using a fully versioned dependency.
[+] SHOULD: The placement of pkgconfig(.pc) files depends on their usecase, and this is usually for development purposes, so should be placed in a -devel pkg. A reasonable exception is that the main pkg itself is a devel tool not installed in a user runtime, e.g. gcc or gdb.
[N/A] SHOULD: If the package has file dependencies outside of /etc, /bin, /sbin, /usr/bin, or /usr/sbin consider requiring the package which provides the file instead of the file itself.
[+] SHOULD: Packages should try to preserve timestamps of original installed files.

Comment 3 Alex Lancaster 2009-03-16 07:18:31 UTC
Additional MUST that was missing:

[x] MUST: If the package does not successfully compile, build or work on an
architecture, then those architectures should be listed in the spec in
ExcludeArch.

Comment 4 Bernard Johnson 2009-03-17 04:51:32 UTC
(In reply to comment #2)
> Here are the main issues:
> 
> 1. missing "Requires: pkgconfig"
> 2. probably should get some feedback from current gmime maintainer (although
> not a 100% requirement, it would be better to get feedback)

1. fixed
2. Am I misreading packagedb?  Are you not the owner of the current gmime package?


(In reply to comment #3)
> Additional MUST that was missing:
> 
> [x] MUST: If the package does not successfully compile, build or work on an
> architecture, then those architectures should be listed in the spec in
> ExcludeArch.  

I believe you mean "+" ?? Unless you found that one arch didn't build?

Spec URL: http://fedorapeople.org/~bjohnson/compat-gmime.spec
SRPM URL: http://fedorapeople.org/~bjohnson/compat-gmime-2.2.23-4.fc11.src.rpm

* Mon Mar 16 2009 Bernard Johnson <bjohnson> - 2.2.23-4
- add Requires: pkgconfig to -devel package

Comment 5 Alex Lancaster 2009-03-17 05:53:33 UTC
(In reply to comment #4)
> (In reply to comment #2)
> > Here are the main issues:
> > 
> > 1. missing "Requires: pkgconfig"
> > 2. probably should get some feedback from current gmime maintainer (although
> > not a 100% requirement, it would be better to get feedback)
> 
> 1. fixed
> 2. Am I misreading packagedb?  Are you not the owner of the current gmime
> package?

I am not the current name.  My FAS username is "alexlan".  "alexl" is Alexander Larsson.

> (In reply to comment #3)
> > Additional MUST that was missing:
> > 
> > [x] MUST: If the package does not successfully compile, build or work on an
> > architecture, then those architectures should be listed in the spec in
> > ExcludeArch.  
> 
> I believe you mean "+" ?? Unless you found that one arch didn't build?

Yes, sorry, that should have been "+".

> Spec URL: http://fedorapeople.org/~bjohnson/compat-gmime.spec
> SRPM URL: http://fedorapeople.org/~bjohnson/compat-gmime-2.2.23-4.fc11.src.rpm
> 
> * Mon Mar 16 2009 Bernard Johnson <bjohnson> - 2.2.23-4
> - add Requires: pkgconfig to -devel package 

Thanks, I'll review that in a second.

Comment 6 Alex Lancaster 2009-03-18 00:21:02 UTC
Addressed review items:

[+] MUST: Packages containing pkgconfig(.pc) files must 'Requires: pkgconfig'
(for directory ownership and usability).

Since there have been no objections on this bug or on bug #476243 and given the need to fix the broken deps in rawhide, I'm going ahead and marking this as:

APPROVED.

I would recommend that we keep open bugs (or open new ones) for both dbmail and pan and plan to phase this compat-gmime package during the F-12 rawhide cycle.  That will give the upstreams another 4-6 months to port their packages.

Comment 7 Bernard Johnson 2009-03-18 04:37:53 UTC
(In reply to comment #5)
> I am not the current name.  My FAS username is "alexlan".  "alexl" is Alexander
> Larsson.

Hum.  That was less than obvious to me ;)  I sent an email to Alexander Larsson so he would be aware of this bug.

(In reply to comment #6)
> APPROVED.

Thanks for your time on this Alex.


New Package CVS Request
=======================
Package Name: compat-gmime
Short Description: Compatibility library for creating and parsing MIME messages for gmime 2.2
Owners: bjohnson
Branches: devel
InitialCC:

Comment 8 Mamoru TASAKA 2009-03-18 05:03:27 UTC
One comment, for naming:

- On Fedora, "compat-" package meant is to provide binary compatibility
  for old applications and no packages on Fedora are allowed to
  build against "compat-" package, c.f.
  http://www.redhat.com/archives/fedora-devel-list/2008-February/msg01009.html
  https://bugzilla.redhat.com/show_bug.cgi?id=432310#c7

If this package wants to provide -devel subpackage, this must
be named differently.

Comment 9 Alex Lancaster 2009-03-18 05:09:48 UTC
(In reply to comment #7)
> (In reply to comment #5)
> > I am not the current name.  My FAS username is "alexlan".  "alexl" is Alexander
> > Larsson.
> 
> Hum.  That was less than obvious to me ;)  I sent an email to Alexander Larsson
> so he would be aware of this bug.

I had actually already Cc'ed him earlier, so he should have been already getting the bugmail.  Actually it appears that he hasn't worked on the package for a while, more recently mclasen has been doing the updates.

Comment 10 Alex Lancaster 2009-03-18 05:12:01 UTC
(In reply to comment #8)
> One comment, for naming:
> 
> - On Fedora, "compat-" package meant is to provide binary compatibility
>   for old applications and no packages on Fedora are allowed to
>   build against "compat-" package, c.f.
>   http://www.redhat.com/archives/fedora-devel-list/2008-February/msg01009.html
>   https://bugzilla.redhat.com/show_bug.cgi?id=432310#c7
> 
> If this package wants to provide -devel subpackage, this must
> be named differently.  

That can't be true across the board.  For example compat-libosip2 provides a shared library that linphone (and other apps) link against.

# rpm -q  compat-libosip2 --provides 
libosip2.so.3  
libosipparser2.so.3  
compat-libosip2 = 2.2.2-16.fc9
# rpm -q --whatrequires libosip2.so.3
compat-libosip2-2.2.2-16.fc9.i386
libeXosip2-3.1.0-1.fc9.i386
linphone-2.1.1-1.fc9.i386

Comment 11 Alex Lancaster 2009-03-18 05:15:08 UTC
Another example:

# rpm -q compat-wxGTK26 --provides
<snip>
libwx_baseu-2.6.so.0

this is linked to by gspiceui and audacity:

# repoquery --whatrequires libwx_baseu-2.6.so.0
gspiceui-0:0.9.65-3.fc10.i386
audacity-freeworld-0:1.3.5-0.4.beta.fc10.i386
compat-wxGTK26-devel-0:2.6.4-3.i386
compat-wxGTK26-0:2.6.4-3.i386

Comment 12 Alex Lancaster 2009-03-18 05:19:48 UTC
(In reply to comment #8)

> If this package wants to provide -devel subpackage, this must
> be named differently.  

Since the -devel package is explicitly needed for rebuilding dmail and pan against, what should the -devel package be named then?  

gmime22-devel?

Comment 13 Alex Lancaster 2009-03-18 05:24:52 UTC
There's actually some more guidance on another reply in a thread:

http://www.redhat.com/archives/fedora-devel-list/2008-February/msg01010.html

It seems that there are no explicit guidelines on this in the package guidelines so people seem have done both compat-foo-devel and foo2-devel solutions.

If we switch to gmime22{-devel} as the package name, we should rename the package basename as gmime22 not compat-gmime.

Having compat-gmime and gmime22-devel in the same package is probably to invite confusion.

Comment 14 Alex Lancaster 2009-03-18 05:26:50 UTC
Disabling the CVS request and re-raising the review flag until we get this sorted out, to avoid having to re-import with a different name later.

Comment 15 Mamoru TASAKA 2009-03-18 05:33:18 UTC
(In reply to comment #10)
> (In reply to comment #8)
> > One comment, for naming:
> > 
> > - On Fedora, "compat-" package meant is to provide binary compatibility
> >   for old applications and no packages on Fedora are allowed to
> >   build against "compat-" package, c.f.
> >   http://www.redhat.com/archives/fedora-devel-list/2008-February/msg01009.html
> >   https://bugzilla.redhat.com/show_bug.cgi?id=432310#c7
> > 
> > If this package wants to provide -devel subpackage, this must
> > be named differently.  
> 
> That can't be true across the board.  For example compat-libosip2 provides a
> shared library that linphone (and other apps) link against.

Yes, even _me_ didn't know this (i.e. the meaning of "compat-") before
(actually I approved "compat-guile-16"), but I have already seen
that many reviewers say that "compat-" is meant as so.

Comment 16 Alex Lancaster 2009-03-18 11:59:55 UTC
OK, based on all of this, I recommend changing the basename of the package to gmime22 (as per bug #476243). 

Update the spec file, and I'll do a quick re-review, and the approve.

Comment 17 Alex Lancaster 2009-03-18 12:03:25 UTC
Changing the summary accordingly.

Comment 18 Bernard Johnson 2009-03-19 00:57:34 UTC
I had only heard that "compat-" was an indication to end users that "this package will be removed soon" - I had not heard the other points brought up.  They do make sense though.

Spec URL: http://fedorapeople.org/~bjohnson/gmime22.spec
SRPM URL: http://fedorapeople.org/~bjohnson/gmime22-2.2.23-3.fc11.src.rpm

Comment 19 Bernard Johnson 2009-03-19 00:58:37 UTC
Sorry, typo, here is the URLs:

Spec URL: http://fedorapeople.org/~bjohnson/gmime22.spec
SRPM URL: http://fedorapeople.org/~bjohnson/gmime22-2.2.23-5.fc11.src.rpm

Comment 20 Mamoru TASAKA 2009-03-19 02:46:15 UTC
To Alex:
The new naming seems good, so if you want to re-approve this package
please do so.

Comment 21 Alex Lancaster 2009-03-19 05:03:12 UTC
koji build succeeded:

http://koji.fedoraproject.org/koji/taskinfo?taskID=1249361

Re-APPROVING:

Note: I don't have a rawhide install to test, but I assume that you've tested parallel-installing gmime22 and gmime22-devel alongside the current 2.4.x gmime and gmime-devel?  (Looking at the spec file it looks like it should be OK).

Comment 22 Bernard Johnson 2009-03-19 13:56:11 UTC
(In reply to comment #21)
> Note: I don't have a rawhide install to test, but I assume that you've tested
> parallel-installing gmime22 and gmime22-devel alongside the current 2.4.x gmime
> and gmime-devel?  (Looking at the spec file it looks like it should be OK).

I haven't because I don't have a rawhide system either.  However, I've renamed some files in the spec file and inspected the rpm files list and everything looks ok.


New Package CVS Request
=======================
Package Name: gmime22
Short Description: Library for creating and parsing MIME messages
Owners: bjohnson
Branches: devel
InitialCC:

Comment 23 Kevin Fenzi 2009-03-20 01:50:58 UTC
cvs done.

Comment 24 Bernard Johnson 2009-03-20 02:51:50 UTC
built in rawhide