Bug 620177

Summary: Review Request: uprof - Profiling toolkit
Product: [Fedora] Fedora Reporter: Adel Gadllah <adel.gadllah>
Component: Package ReviewAssignee: Kalev Lember <kalevlember>
Status: CLOSED NEXTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: fedora-package-review, kalevlember, notting
Target Milestone: ---Flags: kalevlember: 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: 2010-08-10 07:39:14 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:

Description Adel Gadllah 2010-08-01 12:40:36 UTC
Spec URL: http://193.200.113.196/apache2-default/rpm/uprof.spec
SRPM URL: http://193.200.113.196/apache2-default/rpm/uprof-0.2-0.1.b620fb7f9.fc13.src.rpm
Description:
An open source library providing a toolkit to assist in profiling
applications in a domain specific way and generating reports than can quickly
be digested and discussed.

Scratch build: http://koji.fedoraproject.org/koji/taskinfo?taskID=2371134
rpmlint output:
---------
uprof.spec: W: invalid-url Source0: uprof-0.2-b620fb7f9.tar.bz2
uprof.src: W: invalid-url Source0: uprof-0.2-b620fb7f9.tar.bz2
4 packages and 1 specfiles checked; 0 errors, 2 warnings.
---------

(which is just noise as there is no tarball url).

Comment 1 Kalev Lember 2010-08-02 14:49:51 UTC
Taking for review.

> License:        GPLv2+
How did you determine that it is GPLv2+? uprof.c, uprof.h, and uprof-private.h all have LGPLv2+ headers and there's an LGPL COPYING file too.

> find $RPM_BUILD_ROOT -name '*.a' -exec rm -f {} ';'
It'd be nicer to pass --disable-static to configure so that the .a files don't get built in the first place.

> BuildRequires:  gtk-doc
> BuildRequires:  gnome-doc-utils
Are these buildrequires necessary? There doesn't appear to be anything built with gtk-doc in the final rpms.

The COPYING file is included in both base package and in the -devel subpackage. As per https://fedoraproject.org/wiki/Packaging/LicensingGuidelines#Subpackage_Licensing you can omit the COPYING file in -devel as it's dependant upon the base package.

Comment 2 Adel Gadllah 2010-08-02 16:37:29 UTC
(In reply to comment #1)
> Taking for review.

Thanks!

> > License:        GPLv2+
> How did you determine that it is GPLv2+? uprof.c, uprof.h, and uprof-private.h
> all have LGPLv2+ headers and there's an LGPL COPYING file too.

D'oh .. your right it is indeed LGPLv2+

> > find $RPM_BUILD_ROOT -name '*.a' -exec rm -f {} ';'
> It'd be nicer to pass --disable-static to configure so that the .a files don't
> get built in the first place.

Well yeah, but as the current build system is broken I'd had to patch it for "--disable-static" to work; and I'd rather avoid non upstream patches unless when possible.

> > BuildRequires:  gtk-doc
> > BuildRequires:  gnome-doc-utils
> Are these buildrequires necessary? There doesn't appear to be anything built
> with gtk-doc in the final rpms.

Missing configure switch; docs are now being built. (it complains about missing gtk-doc even when no docs are being built).

> The COPYING file is included in both base package and in the -devel subpackage.
> As per
> https://fedoraproject.org/wiki/Packaging/LicensingGuidelines#Subpackage_Licensing
> you can omit the COPYING file in -devel as it's dependant upon the base
> package.    

Good point.

New spec / srpm :
http://193.200.113.196/apache2-default/rpm/uprof.spec
http://193.200.113.196/apache2-default/rpm/uprof-0.2-0.2.b620fb7f9.fc13.src.rpm

Comment 3 Kalev Lember 2010-08-02 17:31:36 UTC
(In reply to comment #2)
> (In reply to comment #1)
> > > find $RPM_BUILD_ROOT -name '*.a' -exec rm -f {} ';'
> > It'd be nicer to pass --disable-static to configure so that the .a files don't
> > get built in the first place.
> 
> Well yeah, but as the current build system is broken I'd had to patch it for
> "--disable-static" to work; and I'd rather avoid non upstream patches unless
> when possible.

"avoid non upstream patches"? Is upstream not accepting patches? Anyway, I tried it out with the following changes to the spec file:
-%configure --enable-gtk-doc
+%configure --disable-static --enable-gtk-doc

 find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';'
-find $RPM_BUILD_ROOT -name '*.a' -exec rm -f {} ';'

... and the scratch build succeeded, so I don't really believe there's something wrong with the way the build system handles --disable-static:
http://koji.fedoraproject.org/koji/taskinfo?taskID=2374115

Also, I'd like to comment on two added requires in the devel package (no need to change anything, I just feel verbose today):
> Requires:       gtk-doc
This is fine right now, but keep an eye on
https://bugzilla.redhat.com/show_bug.cgi?id=604169#c28

> Requires:       pkgconfig
This line is only needed if you plan to use the same spec file in EPEL 4 or EPEL 5; in current Fedora releases rpm adds the pkgconfig dep automatically.

Comment 4 Kalev Lember 2010-08-05 12:42:50 UTC
Fedora review uprof-0.2-0.2.b620fb7f9.fc13.src.rpm 2010-08-05

+ OK
! needs attention

rpmlint output:
$ rpmlint uprof uprof-devel uprof-0.2-0.2.b620fb7f9.fc15.src.rpm uprof-debuginfo-0.2-0.2.b620fb7f9.fc15.i686.rpm
uprof.i686: W: unused-direct-shlib-dependency /usr/lib/libuprof-0.2.so.0.0.0 /lib/librt.so.1
uprof.src: W: invalid-url Source0: uprof-0.2-b620fb7f9.tar.bz2
4 packages and 0 specfiles checked; 0 errors, 2 warnings.

+ Rpmlint warnings are harmless and can be ignored
! The Release tag doesn't follow Package Naming Guidelines.
Instead of "0.2.b620fb7f9" you should use "0.2.YYYYMMDDgitb620fb7f9" or just plain "0.2.YYYYMMDDgit" as per https://fedoraproject.org/wiki/Packaging:NamingGuidelines#Snapshot_packages

+ Spec file name matches the base package name
! Actual compiler commands aren't visible in the build logs
Please turn off libtool "shave" mode so that it'd be possible to check compiler flags. It's usually enough to pass V=1 to make command.

+ The package is licensed with a Fedora approved license and meets the Licensing Guidelines.
+ The license field in the spec file matches the actual license
+ The package contains license file (COPYING)
+ Spec file is written in American English
+ Spec file is legible
+ Following instructions in the spec file to check out sources
  from upstream git repo produce matching tarball. md5sum:
  c6d435870591f04202a3c262c46df5d0  uprof-0.2-b620fb7f9.tar.bz2
  c6d435870591f04202a3c262c46df5d0  uprof.git/uprof-0.2-b620fb7f9.tar.bz2

+ The package builds in koji
n/a ExcludeArch bugs filed
+ BuildRequires look sane
n/a The spec file MUST handle locales properly
+ ldconfig is properly called in %post and %postun
+ Package does not bundle copies of system libraries
n/a Package isn't relocatable
+ Package owns all directories it creates
+ No duplicate files in %files
+ Permissions are properly set and %files has %defattr
+ Consistent use of macros
+ The package must contain code, or permissable content.
n/a Large documentation files should go in -doc subpackage
+ Files marked %doc don't affect the package
+ Header files are in -devel
n/a Static libraries should be in -static
+ Library files that end in .so are in -devel package
+ -devel requires the fully versioned base
+ Package doesn't contain any libtool .la files
n/a Packages containing GUI apps must include %{name}.desktop file
+ Directory ownership sane
+ Filenames are valid UTF-8


It would also be nice if you could avoid building the static library by using --disable-static as mentioned in comment #3, but this isn't a review blocker.

Please address the issues mentioned in this comment and I'll evaluate the package for final approval.

Comment 5 Adel Gadllah 2010-08-08 08:06:01 UTC
Sorry for the late response; I have addressed the noted issues.

> (In reply to comment #3)
> ... and the scratch build succeeded, so I don't really believe there's
> something wrong with the way the build system handles --disable-static:
> http://koji.fedoraproject.org/koji/taskinfo?taskID=2374115

Indeed not sure what was going on before, so your right it works fine just confirmed it.


New spec / srpm :
http://193.200.113.196/apache2-default/rpm/uprof.spec
http://193.200.113.196/apache2-default/rpm/uprof-0.2-0.3.b620fb7f9.fc13.src.rpm

Comment 6 Kalev Lember 2010-08-08 09:04:20 UTC
Looks like you missed this paragraph in comment #4:
> ! The Release tag doesn't follow Package Naming Guidelines.
> Instead of "0.2.b620fb7f9" you should use "0.2.YYYYMMDDgitb620fb7f9" or just
> plain "0.2.YYYYMMDDgit" as per
> https://fedoraproject.org/wiki/Packaging:NamingGuidelines#Snapshot_packages

Comment 7 Adel Gadllah 2010-08-08 10:19:33 UTC
(In reply to comment #6)
> Looks like you missed this paragraph in comment #4:
> > ! The Release tag doesn't follow Package Naming Guidelines.
> > Instead of "0.2.b620fb7f9" you should use "0.2.YYYYMMDDgitb620fb7f9" or just
> > plain "0.2.YYYYMMDDgit" as per
> > https://fedoraproject.org/wiki/Packaging:NamingGuidelines#Snapshot_packages    

Neither makes sense .... the git hash is an unique identifier so it tells exactly which upstream snapshot that is.

Adding the date does not add any value here neither does not using the hash at all.

Comment 8 Kalev Lember 2010-08-08 10:47:40 UTC
I'd argue that using the date in release field gives the user a better sense how fresh the snapshot is. The git hash is only useful if one can look it up in the git repo; without the repo the hash isn't very informative.

In any case, it's the official guidelines which suggest to include date in the release field if you are packaging a snapshot. I think it makes sense to keep naming consistent in the distro. Even if you think that including the date + the word "git" in release field is redundant, I believe it is useful to keep naming consistent with other packages.

Comment 9 Adel Gadllah 2010-08-08 11:38:24 UTC
(In reply to comment #8)
> I'd argue that using the date in release field gives the user a better sense
> how fresh the snapshot is. The git hash is only useful if one can look it up in
> the git repo; without the repo the hash isn't very informative.

True but that is what the changelog is for; we don't add the date to "foo-2.0-1" either even thought it would tell the user when "2.0" has been released.

> In any case, it's the official guidelines which suggest to include date in the
> release field if you are packaging a snapshot. I think it makes sense to keep
> naming consistent in the distro. Even if you think that including the date +
> the word "git" in release field is redundant, I believe it is useful to keep
> naming consistent with other packages.    

Anyway yeah you are right; changing this is beyond the scope of a package review, so I have added the date and "git" to the release.

New srpm / spec:
http://193.200.113.196/apache2-default/rpm/uprof.spec
http://193.200.113.196/apache2-default/rpm/uprof-0.2-0.4.20100808gitb620fb7f9.fc13.src.rpm

Comment 10 Kalev Lember 2010-08-08 11:54:15 UTC
Looks good.

APPROVED

Comment 11 Adel Gadllah 2010-08-08 13:05:05 UTC
New Package SCM Request
=======================
Package Name: uprof
Short Description: Profiling toolkit
Owners: drago01
Branches: f12 f13 f14
InitialCC:

Comment 12 Kevin Fenzi 2010-08-09 17:29:46 UTC
Git done (by process-git-requests).