Bug 634025 - Review Request: PolarSSL - Light-weight cryptographic and SSL/TLS library
Summary: Review Request: PolarSSL - Light-weight cryptographic and SSL/TLS library
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Martin Gieseking
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2010-09-14 23:18 UTC by Mads Kiilerich
Modified: 2013-10-30 12:06 UTC (History)
5 users (show)

Fixed In Version: polarssl-0.14.0-4.fc14
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2011-02-09 20:20:29 UTC
Type: ---
Embargoed:
martin.gieseking: fedora-review+
gwync: fedora-cvs+


Attachments (Terms of Use)

Description Mads Kiilerich 2010-09-14 23:18:03 UTC
Spec URL: http://people.fedoraproject.org/~kiilerix/polarssl.spec
SRPM URL: http://people.fedoraproject.org/~kiilerix/polarssl-0.14.0-1.fc13.src.rpm
Description: 
PolarSSL is a light-weight open source cryptographic and SSL/TLS
library written in C. PolarSSL makes it easy for developers to include
cryptographic and SSL/TLS capabilities in their (embedded)
applications with as little hassle as possible.

Comment 1 Golo Fuchert 2010-11-12 22:50:55 UTC
The package looks quite clean to me, except of one issue (see below). But since I am not yet sponsored I can only make an inofficial review.

Inofficial review:

[+] = ok
[o] = does not apply
[-] = not ok
[?] = see comments

[+] rpmlint is quiet
rpmlint polarssl-0.14.0-1.fc13.src.rpm ../RPMS/i686/polarssl-devel-0.14.0-1.fc14.i686.rpm ../RPMS/i686/polarssl-0.14.0-1.fc14.i686.rpm ../SPECS/polarssl.spec
3 packages and 1 specfiles checked; 0 errors, 0 warnings.

[+] The package is named according to the guidelines
[+] Spec file name matches base package name
[+] The package follows the Packaging Guidelines
[+] The license is an approved licence
[+] The License field matches the actual licence
[+] License file from source file is included in %doc
[+] The spec file is written in American English
[+] The spec file is legible
[+] Used sources match width upstream sources (md5)
[+] Package build at least on one primary architecture (i686)
[?] ExecludeArch for x86_64?? SEE COMMENT BELOW
[+] All build dependencies are listed in the BuildRequires section
[o] No locales for the package
[+] Package stores shared libraries and calls ldconfig in %post/%postun
[+] Package does not bundle copies of system libraries
[o] Package is not relocatable
[o] Package does not install any directories to be owned
[+] No files are listed more then once in the %files section
[+] File permissions are set properly (%defattr(...) is used)
[+] Consistent use of macros
[+] Package contains code and documentation only, no content
[o] No large documentation files
[+] %doc files do not affect runtime
[o] No Header files included
[o] No static libraries
[+] Library files ending with .so correctly in a -devel package
[+] -devel package requires the package correctly as %{name} = %{version}-%{release}
[+] No libtool .la archives included
[o] No GUI application
[+] Package does not own files or directories that are owned by other packages
[+] All filenames are valid UTF-8

-----

Comments:

- Wouldn't it be good practice to comment on the patches (i.e. where do they come from, why are they needed and does upstream know about them)? I think the guidelines encourage you to do this (http://fedoraproject.org/wiki/Packaging/Guidelines#All_patches_should_have_an_upstream_bug_link_or_comment).

- The package fails to build here on the x86_64 architecture. Some files seem to be put in $BUILDROOT/usr/lib but later %{_libdir} is expanded to /usr/lib64 (of course). My fault or a bug?

-----

So in my opinion the package is ready after either dealing with the x86_64 issue, excluding this arch or tell me what I did wrong. ;-)

Comment 2 Golo Fuchert 2010-11-12 22:52:08 UTC
The package looks quite clean to me, except of one issue (see below). But since I am not yet sponsored I can only make an inofficial review.

Inofficial review:

[+] = ok
[o] = does not apply
[-] = not ok
[?] = see comments

[+] rpmlint is quiet
rpmlint polarssl-0.14.0-1.fc13.src.rpm ../RPMS/i686/polarssl-devel-0.14.0-1.fc14.i686.rpm ../RPMS/i686/polarssl-0.14.0-1.fc14.i686.rpm ../SPECS/polarssl.spec
3 packages and 1 specfiles checked; 0 errors, 0 warnings.

[+] The package is named according to the guidelines
[+] Spec file name matches base package name
[+] The package follows the Packaging Guidelines
[+] The license is an approved licence
[+] The License field matches the actual licence
[+] License file from source file is included in %doc
[+] The spec file is written in American English
[+] The spec file is legible
[+] Used sources match width upstream sources (md5)
[+] Package build at least on one primary architecture (i686)
[?] ExecludeArch for x86_64?? SEE COMMENT BELOW
[+] All build dependencies are listed in the BuildRequires section
[o] No locales for the package
[+] Package stores shared libraries and calls ldconfig in %post/%postun
[+] Package does not bundle copies of system libraries
[o] Package is not relocatable
[o] Package does not install any directories to be owned
[+] No files are listed more then once in the %files section
[+] File permissions are set properly (%defattr(...) is used)
[+] Consistent use of macros
[+] Package contains code and documentation only, no content
[o] No large documentation files
[+] %doc files do not affect runtime
[o] No Header files included
[o] No static libraries
[+] Library files ending with .so correctly in a -devel package
[+] -devel package requires the package correctly as %{name} = %{version}-%{release}
[+] No libtool .la archives included
[o] No GUI application
[+] Package does not own files or directories that are owned by other packages
[+] All filenames are valid UTF-8

-----

Comments:

- Wouldn't it be good practice to comment on the patches (i.e. where do they come from, why are they needed and does upstream know about them)? I think the guidelines encourage you to do this (http://fedoraproject.org/wiki/Packaging/Guidelines#All_patches_should_have_an_upstream_bug_link_or_comment).

- The package fails to build here on the x86_64 architecture. Some files seem to be put in $BUILDROOT/usr/lib but later %{_libdir} is expanded to /usr/lib64 (of course). My fault or a bug?

-----

So in my opinion the package is ready after either dealing with the x86_64 issue, excluding this arch or tell me what I did wrong. ;-)

Comment 4 Golo Fuchert 2010-11-13 09:13:31 UTC
First I like to clarify my comment "[o] No Header files included". This sounds misleading and should of course be "[+] ... outside of the -devel package".

The package now builds fine and from my side there are no further objections. So let's see what the Gurus say!

Comment 5 Martin Gieseking 2010-11-13 09:45:13 UTC
Here are two more (minor) things to consider:

- Please prefix the patch filenames with "polarssl-". This way it's much easier
  to identify them in rpmbuild/SOURCES.

- I also recommend to be more specific in %files:
  %{_libexecdir}/* => %{_libexecdir}/polarssl/
  %{_includedir}/* => %{_includedir}/polarssl/

Comment 6 Andy Bailey 2010-12-08 17:04:21 UTC
Here's the culprit for the broken x86_64 build:

--- a/library/CMakeLists.txt                                                                                                                                   
+++ b/library/CMakeLists.txt                                                                                                                                   
@@ -26,3 +26,7 @@
      x509parse.c                                                                                                                                              
      xtea.c                                                                                                                                                   
 )                                                                                                                                                             
+                                                                                                                                                              
+INSTALL(TARGETS polarssl                                                                                                                                      
+        DESTINATION lib                                                                                                                                       
+        PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)

Comment 7 Mads Kiilerich 2010-12-08 17:11:01 UTC
Yes, thanks, I have fixed that patch but was waiting for more review before creating new builds.

Comment 8 Jason Tibbitts 2011-01-28 15:49:20 UTC
Golo, since you seem to be sponsored now, did you want to finish this review?  Or, heck, anyone else who has commented here?

Comment 9 Martin Gieseking 2011-01-29 10:49:03 UTC
OK, I'm volunteering. :)
The package looks fine. However, I recommend to apply the minor improvements  mentioned in comment #5. Also, please add short comments above the Patch fields telling what the patches do. These are no blockers though.

$ rpmlint /var/lib/mock/fedora-14-x86_64/result/*.rpm
4 packages and 0 specfiles checked; 0 errors, 0 warnings.

---------------------------------
key:

[+] OK
[.] OK, not applicable
[X] needs work
---------------------------------

[+] 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.
    GPLv2+

[+] MUST: The License field in the package spec file must match the actual license.
[+] MUST: The 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.
    $ md5sum polarssl-0.14.0-gpl.tgz*
    669a0582a27a5ec381542f0c67e966b7  polarssl-0.14.0-gpl.tgz
    669a0582a27a5ec381542f0c67e966b7  polarssl-0.14.0-gpl.tgz.1

[+] MUST: The package MUST successfully compile and build into binary rpms on at least one primary architecture.
    koji scratch build (f15):
    http://koji.fedoraproject.org/koji/taskinfo?taskID=2748827

[.] MUST: If the package does not successfully compile, build or work on an architecture, ...
[+] MUST: All build dependencies must be listed in BuildRequires.
[+] MUST: When compiling C, C++, and Fortran files, %{optflags} must be applied.
[.] MUST: The spec file MUST handle locales properly.
[.] MUST: If a package installs files below %{_datadir}/icons, the icon cache must be updated.
[+] MUST: Packages storing shared library files (not just symlinks) must call ldconfig in %post and %postun.
[+] MUST: Packages must NOT bundle copies of system libraries.
[.] MUST: If the package is designed to be relocatable, ...
[+] MUST: A package must own all directories that it creates. 
[+] MUST: A Fedora package must not list a file more than once in %files.
[+] MUST: Permissions on files must be set properly.
[.] MUST: Packages must not provide RPM dependency information when that information is not global in nature, or are otherwise handled.
[.] MUST: When filtering automatically generated RPM dependency information, the filtering system implemented by Fedora must be used.
[+] MUST: Each package must consistently use macros.
[+] MUST: The package must contain code, or permissable content.
[.] MUST: Large documentation files must go in a -doc subpackage.
[+] MUST: Files in %doc must not affect the runtime of the application.
[+] MUST: Header files must be in a -devel package.
[.] MUST: Static libraries must be in a -static package.
[+] MUST: .so (without suffix) must go in a -devel package.
[+] MUST: devel packages must require the base package using a fully versioned dependency
[+] MUST: Packages must NOT contain any .la libtool archives, these must be removed in the spec if they are built.
[.] MUST: Packages containing GUI applications must include a %{name}.desktop file
[+] MUST: Packages must not own files or directories already owned by other packages.
[+] MUST: All filenames in rpm packages must be valid UTF-8.

EPEL <= 5 only:
[+] MUST: The spec file must contain a valid BuildRoot field.
[+] MUST: At the beginning of %install, each package must run rm -rf %{buildroot}.
[+] MUST: Each package must have a %clean section, which contains rm -rf %{buildroot}.
[.] MUST: Packages containing pkgconfig(.pc) files must 'Requires: pkgconfig'

[.] SHOULD: If the source package does not include license text(s) as a separate file from upstream,...
[X] SHOULD: Patch files should be prefixed with %{name}-
[X] SHOULD: All patches should be commented in the spec file.
[+] SHOULD: Timestamps of files should be preserved.
[+] SHOULD: The reviewer should test that the package builds in mock.
[+] SHOULD: The package should compile and build into binary rpms on all supported architectures.
[+] SHOULD: The reviewer should test that the package functions as described.
[+] SHOULD: If scriptlets are used, those scriptlets must be sane.
[.] SHOULD: subpackages other than devel should require the base package using a fully versioned dependency.
[.] SHOULD: pkgconfig(.pc) should be placed in a -devel pkg.
[.] 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: your package should contain man pages for binaries/scripts.

----------------
Package APPROVED
----------------

Comment 10 Mads Kiilerich 2011-01-30 01:20:31 UTC
New Package SCM Request
=======================
Package Name: polarssl
Short Description: Light-weight cryptographic and SSL/TLS library
Owners: kiilerix
Branches: f14
InitialCC:

Comment 11 Dennis Gilmore 2011-01-31 00:02:48 UTC
Git done (by process-git-requests).

Comment 12 Fedora Update System 2011-02-01 00:35:37 UTC
polarssl-0.14.0-4.fc14 has been submitted as an update for Fedora 14.
https://admin.fedoraproject.org/updates/polarssl-0.14.0-4.fc14

Comment 13 Mads Kiilerich 2011-02-01 00:40:29 UTC
Thanks for the review(s).

Upstream is very friendly and competent but also very busy, quiet and private, so it will be interesting to see how this will work out ...

Comment 14 Fedora Update System 2011-02-01 20:55:01 UTC
polarssl-0.14.0-4.fc14 has been pushed to the Fedora 14 testing repository.  If problems still persist, please make note of it in this bug report.
 If you want to test the update, you can install it with 
 su -c 'yum --enablerepo=updates-testing update polarssl'.  You can provide feedback for this update here: https://admin.fedoraproject.org/updates/polarssl-0.14.0-4.fc14

Comment 15 Fedora Update System 2011-02-09 20:20:23 UTC
polarssl-0.14.0-4.fc14 has been pushed to the Fedora 14 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 16 Mads Kiilerich 2013-10-29 23:11:11 UTC
Package Change Request
======================
Package Name: polarssl
New Branches: el5 el6
Owners: kiilerix
InitialCC:

Comment 17 Gwyn Ciesla 2013-10-30 12:06:29 UTC
Git done (by process-git-requests).


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