Bug 1393899 - Review Request: libdirq - C implementation of the simple directory queue algorithm
Summary: Review Request: libdirq - C implementation of the simple directory queue algo...
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: lionel.cons
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: DebugInfo
TreeView+ depends on / blocked
 
Reported: 2016-11-10 15:08 UTC by lionel.cons
Modified: 2017-08-11 14:53 UTC (History)
3 users (show)

Fixed In Version: libdirq-0.5-1.fc27
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2017-08-11 14:53:42 UTC
Type: ---
Embargoed:
a.alvarezayllon: fedora-review+


Attachments (Terms of Use)

Description lionel.cons 2016-11-10 15:08:05 UTC
Spec URL: http://cern.ch/lionel.cons/c-dirq/libdirq.spec
SRPM URL: http://cern.ch/lionel.cons/c-dirq/libdirq-0.4-1.el7.src.rpm
Description:
Here is the C implementation of the directory queue algorithm already available
in EPEL for Perl (perl-Directory-Queue) and Python (python-dirq).
Fedora Account System Username: lcons

Comment 1 Alejandro Alvarez 2016-11-10 15:27:46 UTC
build
=====
http://koji.fedoraproject.org/koji/taskinfo?taskID=16385362

rpmlint output
==============
# rpmlint libdirq-0.4-1.el7.src.rpm 
libdirq.src: W: spelling-error %description -l en_US filesystem -> file system, file-system, systematic
libdirq.src: W: spelling-error %description -l en_US scalability -> availability, sociability, inviolability
libdirq.src: E: no-changelogname-tag
libdirq.src: W: no-url-tag
libdirq.src:35: W: make-check-outside-check-section make test
libdirq.src: W: no-cleaning-of-buildroot %install
libdirq.src: W: invalid-url Source0: libdirq-0.4.tgz
1 packages and 0 specfiles checked; 1 errors, 6 warnings.

MUST
====

[OK] The package must be named according to the Package Naming Guidelines.
[OK] Package does not use a name that already exist.
[OK] The spec file name must match the base package %{name}, in the format %{name}.spec
[OK] Spec file lacks Packager, Vendor, PreReq tags.
[MISSING] Changelog in prescribed format.
[OK] The package must be licensed with a Fedora approved license and meet the Licensing Guidelines.
[OK] The License field in the package spec file must match the actual license.
[OK] The spec file must be written in American English.
[OK] The spec file for the package MUST be legible.
[--] If a rename, provides/obsoletes is specified.
[--] The spec file MUST handle locales properly.
[OK] Every binary RPM package which stores shared library files in any of the dynamic linker's default paths, must call ldconfig in %post and %postun.

[FAIL] 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.
[OK] -debuginfo package or justification otherwise.
[OK] Development files must be in a -devel package.
[FAIL] Static libraries must be in a -static package.
[OK] Devel packages must require the base package using a fully versioned dependency
[--] Large documentation files must go in a -doc subpackage.

[FAIL] The sources used to build the package must match the upstream source, as provided in the spec URL.

[OK] The package must contain code, or permissable content.

[OK] Package obeys FHS, except libexecdir and /usr/target.
[OK] Packages must NOT contain any .la libtool archives.
[OK] Packages must not own files or directories already owned by other packages
[--] Packages containing GUI applications must include a %{name}.desktop file.
[OK] A Fedora package must not list a file more than once in the spec file's %files listings.
[--] 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.
[OK] Packages must NOT bundle copies of system libraries
[--] If the package is designed to be relocatable, the packager must state this fact in the request for review, along with the rationalization for relocation of that specific package.
[OK] All filenames in rpm packages must be valid UTF-8.
[OK] Permissions on files must be set properly.

[OK] Each package must consistently use macros.
[OK] No external kernel modules
[OK] No inclusion of pre-built binaries or libraries
[OK] No need for external bits
[OK] All build dependencies must be listed in BuildRequires.
[--] If a package includes something as %doc, it must not affect the runtime of the application.
[OK] %build honors applicable compiler flags or justifies otherwise.

	https://fedoraproject.org/wiki/Packaging:Guidelines?rd=Packaging/Guidelines#Compiler_flags

[OK] The package MUST successfully compile and build into binary rpms on at least one primary architecture.
[--] If the package does not successfully compile, build or work on an architecture, then those architectures should be listed in the spec in ExcludeArch.
[OK] Package installs properly.

SHOULD
======
[--] All patches have an upstream bug link or comment
[OK] The source package does not include license text(s) as a separate file from upstream.
[OK] No PreReq
[OK] %makeinstall is not used
[OK] Timestamp is preserved
[FAIL] Parallel make
[--] Subpackages other than devel should require the base package using a fully versioned dependency.
[--] 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.
[OK] The placement of pkgconfig(.pc) files should be in a -devel pkg
[OK] The package builds in mock.
[OK] The package should compile and build into binary rpms on all supported architectures.
[OK] The package functions as described.
[OK] If scriptlets are used, those scriptlets must be sane.
[OK] The package should contain man pages for binaries/scripts
[--] The description and summary sections in the package spec file should contain translations for supported Non-English languages, if available.

Comment 2 Alejandro Alvarez 2016-11-10 15:31:21 UTC
So, in summary, missing bits:

* %changelog is missing
* An URL field could be added
* make test should be in %check
* LICENSE missing in %doc
* There is a static library, that should be in -static
* The spec file should reference upstream (either repo+tag or tar.gz)
* make should be parallel (make %{?_smp_mflags})

Cheers.

Comment 3 lionel.cons 2016-11-11 09:15:40 UTC
Alejandro, thanks for your recommendations.

I have updated the spec file, see:

Spec URL: http://cern.ch/lionel.cons/c-dirq/libdirq.spec
SRPM URL: http://cern.ch/lionel.cons/c-dirq/libdirq-0.4-2.el7.src.rpm

Could you please check this new version?

Comment 4 lionel.cons 2016-11-11 10:37:23 UTC
See the corresponding build: http://koji.fedoraproject.org/koji/taskinfo?taskID=16401163

Comment 5 Alejandro Alvarez 2016-11-11 13:16:03 UTC
Looks good. Last missing thing: %defattr(-,root,root,-) for %files static

rpmlint:
libdirq.src: W: spelling-error %description -l en_US filesystem -> file system, file-system, systematic
libdirq.src: W: spelling-error %description -l en_US scalability -> availability, sociability, inviolability
libdirq.src:77: E: files-attr-not-set
libdirq.src: W: no-cleaning-of-buildroot %install
1 packages and 0 specfiles checked; 1 errors, 3 warnings.

Cheers.

Comment 6 lionel.cons 2016-11-11 13:51:01 UTC
Indeed, now added...

Comment 7 Alejandro Alvarez 2016-11-11 14:04:27 UTC
Accepted.

Comment 8 Gwyn Ciesla 2016-11-11 14:52:14 UTC
Package request has been approved: https://admin.fedoraproject.org/pkgdb/package/rpms/libdirq

Comment 9 Fedora Update System 2016-11-14 08:20:43 UTC
libdirq-0.4-1.el7 has been submitted as an update to Fedora EPEL 7. https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2016-693fad51b5

Comment 10 Fedora Update System 2016-11-14 08:20:51 UTC
libdirq-0.4-1.fc25 has been submitted as an update to Fedora 25. https://bodhi.fedoraproject.org/updates/FEDORA-2016-5367cf57b0

Comment 11 Fedora Update System 2016-11-15 07:35:23 UTC
libdirq-0.4-1.el6 has been submitted as an update to Fedora EPEL 6. https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2016-7a13703365

Comment 12 Fedora Update System 2016-11-15 13:26:52 UTC
libdirq-0.4-1.fc25 has been pushed to the Fedora 25 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2016-5367cf57b0

Comment 13 Fedora Update System 2016-11-15 14:23:26 UTC
libdirq-0.4-1.el7 has been pushed to the Fedora EPEL 7 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2016-693fad51b5

Comment 14 Fedora Update System 2016-11-15 17:18:19 UTC
libdirq-0.4-1.el6 has been pushed to the Fedora EPEL 6 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2016-7a13703365

Comment 15 Fedora Update System 2016-11-19 21:18:55 UTC
libdirq-0.4-1.fc25 has been pushed to the Fedora 25 stable repository. If problems still persist, please make note of it in this bug report.

Comment 16 Fedora Update System 2016-12-01 15:20:11 UTC
libdirq-0.4-1.el6 has been pushed to the Fedora EPEL 6 stable repository. If problems still persist, please make note of it in this bug report.

Comment 17 Fedora Update System 2016-12-01 15:22:50 UTC
libdirq-0.4-1.el7 has been pushed to the Fedora EPEL 7 stable repository. If problems still persist, please make note of it in this bug report.

Comment 18 Ville Skyttä 2016-12-08 11:46:24 UTC
(In reply to Alejandro Alvarez from comment #1)
> MUST
> ====
> 
> [OK] -debuginfo package or justification otherwise.
> [OK] %build honors applicable compiler flags or justifies otherwise.

The -debuginfo package is not ok, it lacks sources and the package is not built with $RPM_OPT_FLAGS (which is quite probably the reason for the faulty -debuginfo). This needs to be fixed.

Comment 19 lionel.cons 2016-12-09 08:30:39 UTC
Ville, I've added support for $RPM_OPT_FLAGS and rebuilt the package:
http://koji.fedoraproject.org/koji/taskinfo?taskID=16804470

Could you please check that the -debuginfo package is now ok?

At least, it now contains the source files...

Comment 20 Ville Skyttä 2016-12-11 14:01:25 UTC
It seems to be ok. However, looking at the build log:

https://kojipkgs.fedoraproject.org//packages/libdirq/0.4/2.fc26/data/logs/x86_64/build.log

> using cflags=-O -DNDEBUG -pedantic -Wall -Wextra -Wshadow -Wpointer-arith -Wcast-align -Wmissing-prototypes -Wmissing-declarations -fpic
> [...]
> + make -j48 'CFLAGS=-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic -fpic'

Looks like the build is now overriding everything in upstream CFLAGS instead of adding the Fedora ones to it. That may have unexpected results; in particular the omission of -DNDEBUG may be a problem. I suggest modifying the build so that it appends RPM_OPT_FLAGS to upstream's default CFLAGS instead of overriding all of them.

Comment 21 lionel.cons 2017-08-04 10:33:31 UTC
Sorry for the late reply.

This should be fixed in the latest spec using upstream 0.5.

Here is the latest build: https://koji.fedoraproject.org/koji/taskinfo?taskID=21041228

Comment 22 Ville Skyttä 2017-08-11 14:53:42 UTC
Seems ok now in libdirq-0.5-1.fc27, based on a brief look at the build log.


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