Bug 1136972 - Review Request: paflib - POWER Architecture facilities library
Summary: Review Request: paflib - POWER Architecture facilities library
Keywords:
Status: CLOSED NEXTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Dan Horák
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: 989565
TreeView+ depends on / blocked
 
Reported: 2014-09-03 17:33 UTC by Rajalakshmi
Modified: 2014-09-24 07:29 UTC (History)
7 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2014-09-24 07:29:38 UTC
Type: ---
Embargoed:
dan: fedora-review+
gwync: fedora-cvs+


Attachments (Terms of Use)

Description Rajalakshmi 2014-09-03 17:33:58 UTC
Spec URL: https://github.com/paflib/paflib/blob/packaging/paflib.spec
SRPM URL: https://github.com/paflib/paflib/blob/packaging/paflib-.1-1.fc19.src.rpm
Description: PAFLib is a IBM written library which exposes Power Architecture Facilities to user space via an API.
Fedora Account System Username:rajalakshmi

Comment 1 Rajalakshmi 2014-09-04 04:45:58 UTC
Modifying the URL

SRPM URL:
https://github.com/paflib/paflib/blob/packaging/paflib-0.1-1.fc19.src.rpm

Comment 2 Rajalakshmi 2014-09-04 05:55:28 UTC
Test Build:
http://ppc.koji.fedoraproject.org/koji/taskinfo?taskID=2080630

Comment 4 Ralf Corsepius 2014-09-04 11:40:44 UTC
Please make yourself familiar with Fedora's conventions on splitting a package into <main>, *-devel and static subpackages.

cf. http://fedoraproject.org/wiki/Packaging:Guidelines#Devel_Packages ff.

Comment 5 Dan Horák 2014-09-05 07:51:46 UTC
some notes for the start:
- the source archive is weird, it contains another copy of the paflib tree, please use github provided archive (https://github.com/paflib/paflib/archive/0.1-2.tar.gz)
- would be great if upstream could switch to versioning without the dash, eg. 0.1-2.tar.gz will be 0.1.2.tar.gz
- use %{configure} macro, no need to manually step into the build directory, rpmbuild does that on its own
- drop outdated %defattr() definitions, rpmbuild adds the defaults itself
- simplify %install section to just "make install ..."
- as Ralf said, look into another package how the main/devel/static split should look like, but are the static libs necessary, Fedora discourages packaging them (https://fedoraproject.org/wiki/Packaging:Guidelines?rd=Packaging/Guidelines#Packaging_Static_Libraries)

Comment 6 Rajalakshmi 2014-09-08 09:41:13 UTC
Thanks for the comments.

I removed static libraries and %defattr() definitions.

The reason to step to a different directory in configure and install is: 

The object directoy has to be different from source directory for paflib considering the  following advantages.(GLIBC is also designed like this).

   -> It keeps the files generated during the build from cluttering up your sources.
   -> It permits to remove the built files by simply removing the entire build directory.
   -> It permits to build from the same sources with several sets of configure options simultaneously.

Comment 7 Dan Horák 2014-09-08 18:01:42 UTC
Raji, please post new URLs for updated spec file and srpm. Also don't forget to increase Release in each iteration and update %changelog.

The reasons for building outside of current dir are not relevant for builds in a buildsystem.

Comment 8 Rajalakshmi 2014-09-09 17:37:55 UTC
Updated with review comments.
- Removed builddir.
- Updated changelog. (used same 0.1-1 as this has not yet been built as per
http://fedoraproject.org/wiki/Packaging:Guidelines#Changelogs )

SPEC URL :
https://github.com/paflib/paflib/blob/packaging/paflib.spec

SRPM URL:
https://github.com/paflib/paflib/blob/packaging/paflib-0.1-1.fc19.src.rpm

Comment 9 Ralf Corsepius 2014-09-09 17:50:27 UTC
* Please remove this line in %install:
rm -rf $RPM_BUILD_ROOT
It is superflous. rpm automatically cleans RPM_BUILD_ROOT


* Please remove "--prefix=%{_prefix} --libdir=%{_libdir}" from the call to %configure. These options are automatically added by %configure.

* Please increment  Release each time you change something in your spec and reflect this to the %changelog.

Besides this, based on visual inspection only (I haven't tried to build), the spec looks good.

Comment 11 Dan Horák 2014-09-10 09:55:27 UTC
few more things:
- %{_includedir}/paf directory is unowned, add "%dir %{_includedir}/paf" to %files for devel subpackage
- why not make the version set to 0.1.3? you can the use "setup -q -n %{name}-0.1"
- use fully specified dependency for devel subpackage (http://fedoraproject.org/wiki/Packaging:Guidelines#Requiring_Base_Package)
- you might use %{power64} instead of ppc64 ppc64le, it would cover also pp64p7 subarch
- use wildcards for man pages: %{_mandir}/man3/libpaf-dsc.3.gz => %{_mandir}/man3/libpaf-dsc.3* (it covers situations when the compression algorithm will change)
- Summary should be shortened, to eg. "Library for accessing Power Architecture Facilities"
- does upstream provide any API or ABI stability for the library?

Comment 13 Rajalakshmi 2014-09-10 17:16:20 UTC
- does upstream provide any API or ABI stability for the library?
  do you mean if it supports ABI ELF v1 and v2? Yes.

Comment 14 Rajalakshmi 2014-09-10 17:35:36 UTC
SPEC URL :
https://github.com/paflib/paflib/blob/packaging/paflib.spec

SRPM URL:
https://github.com/paflib/paflib/blob/packaging/paflib-0.1.3-3.fc19.src.rpm

Koji build:
http://ppc.koji.fedoraproject.org/koji/taskinfo?taskID=2098623


rpmlint output:
(none): E: no installed packages by name ../SRPMS/paflib-0.1-1.fc19.src.rpm
(none): E: no installed packages by name ../RPMS/ppc64/paflib-0.1-1.fc19.ppc64.rpm
0 packages and 1 specfiles checked; 0 errors, 0 warnings.


The function which has exit() call is defined as attribute_noreturn.
Hence this warning can be ignored.

Comment 15 Michael Schwendt 2014-09-13 20:19:44 UTC
> Name: paflib
> Group: Development/Libraries

The group for _runtime_ library packages has been "System Environment/Libraries" for a very long time.

Alternatively, consider dropping the Group tag:
https://fedoraproject.org/wiki/Packaging:Guidelines#Group_tag


> %files
> %{_mandir}/man3/libpaf-dsc.3*
> %{_mandir}/man3/libpaf-ebb.3*

Those section 3 manuals belong into the -devel subpackage.

Comment 17 Dan Horák 2014-09-19 08:09:29 UTC
formal review is here, see the notes explaining OK* and BAD statuses below:

OK      source files match upstream:
            dcfd088f0560087b8901b97154d44f693a0998e3  0.1.3.tar.gz
OK      package meets naming and versioning guidelines.
OK      specfile is properly named, is cleanly written and uses macros consistently.
OK      dist tag is present.
OK      license field matches the actual license.
OK      license is open source-compatible (MIT). License text included in package.
OK      latest version is being packaged.
OK      BuildRequires are proper.
OK      compiler flags are appropriate.
OK      package builds in mock (Rawhide/x86_64).
OK      debuginfo package looks complete.
OK*     rpmlint is silent.
OK      final provides and requires look sane.
N/A     %check is present and all tests pass.
OK      shared libraries are added to the regular linker search paths, with correct scriptlet
OK      owns the directories it creates.
OK      doesn't own any directories it shouldn't.
OK      no duplicates in %files.
OK      file permissions are appropriate.
OK      correct scriptlets present.
OK      code, not content.
OK      documentation is small, so no -docs subpackage is necessary.
OK      %docs are not necessary for the proper functioning of the package.
OK      headers in devel
OK      no pkgconfig files.
OK      no libtool .la droppings.
OK      not a GUI app.

- rpmlint complains a bit, it's acceptable
paflib.ppc64: W: shared-lib-calls-exit /usr/lib64/libpaf-ebb.so.0.0.1 exit
paflib.ppc64: W: shared-lib-calls-exit /usr/lib64/libpaf-dsc.so.0.0.1 _exit
    -> advice from running "rpmlint -i paflib-0.1.3-4.fc21.ppc64.rpm"
This library package calls exit() or _exit(), probably in a non-fork()
context. Doing so from a library is strongly discouraged - when a library
function calls exit(), it prevents the calling program from handling the
error, reporting it to the user, closing files properly, and cleaning up any
state that the program has. It is preferred for the library to return an
actual error code and let the calling program decide how to handle the
situation.

paflib-devel.ppc64: W: only-non-binary-in-usr-lib
    -> only the devel symlinks are there, OK

The package is APPROVED.

Raji, please continue with step 8 in http://fedoraproject.org/wiki/Package_Review_Process (the SCM admin request).

Comment 18 Rajalakshmi 2014-09-19 11:52:56 UTC
New Package SCM Request
=======================
Package Name: paflib
Short Description: Library for accessing Power Architecture Facilities
Upstream URL: https://github.com/paflib/paflib
Owners: rajalakshmi
Branches: f20 f21 el6
InitialCC:

Comment 19 Gwyn Ciesla 2014-09-19 13:43:02 UTC
Git done (by process-git-requests).

Comment 20 Dan Horák 2014-09-24 07:29:38 UTC
imported and built, closing


Note You need to log in before you can comment on or make changes to this bug.