Please do not reply directly to this email. All additional comments should be made in the comments box of this bug.
Summary: Review Request: lcg-util - Command line tools for wlcg data management
https://bugzilla.redhat.com/show_bug.cgi?id=790805
Summary: Review Request: lcg-util - Command line tools for wlcg data management Product: Fedora Version: rawhide Platform: All OS/Version: Linux Status: NEW Severity: medium Priority: medium Component: Package Review AssignedTo: nobody@fedoraproject.org ReportedBy: adev88@gmail.com QAContact: extras-qa@fedoraproject.org CC: notting@redhat.com, package-review@lists.fedoraproject.org Classification: Fedora Story Points: --- Type: --- Regression: --- Mount Type: --- Documentation: ---
Spec URL: http://firwen.org/home/specs/lcg-util.spec SRPM URL: http://firwen.org/home/specs/lcg-util-1.12.0-1.el5.centos.src.rpm Description: The LCG Utilities package is the main end user command line tool for data management provided by LCG.
Please do not reply directly to this email. All additional comments should be made in the comments box of this bug.
https://bugzilla.redhat.com/show_bug.cgi?id=790805
Mohamed El Morabity pikachu.2014@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED CC| |pikachu.2014@gmail.com AssignedTo|nobody@fedoraproject.org |pikachu.2014@gmail.com
--- Comment #1 from Mohamed El Morabity pikachu.2014@gmail.com 2012-02-15 09:45:04 EST --- I will review this package.
Please do not reply directly to this email. All additional comments should be made in the comments box of this bug.
https://bugzilla.redhat.com/show_bug.cgi?id=790805
--- Comment #2 from adev adev88@gmail.com 2012-03-06 04:27:23 EST --- Update with a correction on EL6 :
Spec URL: http://firwen.org/home/specs/lcg-util.spec SRPM URL: http://firwen.org/home/specs/lcg-util-1.12.0-2.el5.centos.src.rpm Description: The LCG Utilities package is the main end user command line tool for data management provided by LCG.
Please do not reply directly to this email. All additional comments should be made in the comments box of this bug.
https://bugzilla.redhat.com/show_bug.cgi?id=790805
--- Comment #3 from Mohamed El Morabity pikachu.2014@gmail.com 2012-03-12 15:48:06 EDT --- Sorry for this late answer, I got really busy these last days.
Is there a particular reason for this Provides in the python subpackage? Provides: %{name}-py%{python_version_nodot} = %{version} Such Provides are not common in Fedora packages.
You can remove automake from the BuildRequires list, it's already required by libtool and voms-devel.
You *MUST* use the %configure macro, instead of calling explicitely the ./configure script: - the macro sets the appropriate CFLAGS/CXXFLAGS to build the program - it already set most of the options you pass to configure
By the way, I wonder why you set the following options:
* --enable-debug → the debug flags are already in RPM_OPT_FLAGS * --enable-wall → already in RPM_OPT_FLAGS too * --with-pythonrelease=%{python_version} → the ./configure script is able to find the defaut Python version/libs * --with-version=%{version} / --with-release=%{release} → do you really need to set explicitely the version of lcg-util at build time? This is all but robust.
It looks like lcg-util requires an old and specific version of swig (1.3.0), obviously no more available in latest Fedora releases. Is it a real lack not to have swig support for Fedora packages?
Please do not reply directly to this email. All additional comments should be made in the comments box of this bug.
https://bugzilla.redhat.com/show_bug.cgi?id=790805
--- Comment #4 from adev adev88@gmail.com 2012-03-13 05:03:18 EDT ---
Is there a particular reason for this Provides in the python subpackage? Provides: %{name}-py%{python_version_nodot} = %{version}
-> Yes, it is a compatibility with the European project EMI. Similars things for the other EMI components ( Lcgdm, lfc, gfal ) have already been added to EPEL/fedora.
You can remove automake from the BuildRequires list, it's already required by libtool and voms-devel.
-> done
You *MUST* use the %configure macro, instead of calling explicitely the ./configure script: - the macro sets the appropriate CFLAGS/CXXFLAGS to build the program - it already set most of the options you pass to configure
-> done, sorry for this.. the copy/paste kills the little cats.
* --enable-debug → the debug flags are already in RPM_OPT_FLAGS * --enable-wall → already in RPM_OPT_FLAGS too
-> removed, too.
* --with-pythonrelease=%{python_version} → the ./configure script is able to find the defaut Python version/libs * --with-version=%{version} / --with-release=%{release} → do you really need to set explicitely the version of lcg-util at build time? This is all but robust.
-> This is needed by the upstream, this software is included in differents project that are not EPEL related and this flags are still needed in these one.
I upload the updated version as soon as possible
Please do not reply directly to this email. All additional comments should be made in the comments box of this bug.
https://bugzilla.redhat.com/show_bug.cgi?id=790805
--- Comment #5 from adev adev88@gmail.com 2012-03-13 05:04:13 EDT --- comments about SWIG :
It can compile without problem on rawhide, it is not the required version of SWIG but the minimum requirement in fact.
Please do not reply directly to this email. All additional comments should be made in the comments box of this bug.
https://bugzilla.redhat.com/show_bug.cgi?id=790805
--- Comment #6 from adev adev88@gmail.com 2012-03-13 06:29:03 EDT --- Updated again
Spec URL: http://firwen.org/home/specs/lcg-util.spec SRPM URL: http://firwen.org/home/specs/lcg-util-1.12.0-3.el5.centos.src.rpm Description: The LCG Utilities package is the main end user command line tool for data management provided by LCG.
Please do not reply directly to this email. All additional comments should be made in the comments box of this bug.
https://bugzilla.redhat.com/show_bug.cgi?id=790805
Adrien Devresse adev88@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |NEW AssignedTo|pikachu.2014@gmail.com |nobody@fedoraproject.org
Please do not reply directly to this email. All additional comments should be made in the comments box of this bug.
https://bugzilla.redhat.com/show_bug.cgi?id=790805
Ricardo Rocha rocha.porto@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |rocha.porto@gmail.com AssignedTo|nobody@fedoraproject.org |rocha.porto@gmail.com
Please do not reply directly to this email. All additional comments should be made in the comments box of this bug.
https://bugzilla.redhat.com/show_bug.cgi?id=790805
Ricardo Rocha rocha.porto@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED
https://bugzilla.redhat.com/show_bug.cgi?id=790805
--- Comment #7 from Adrien Devresse adev88@gmail.com --- Updated again with unit tests and python26 support :
Spec URL: http://firwen.org/home/specs/lcg-util.spec SRPM URL: firwen.org/home/specs/lcg-util-1.12.0-5.2012060109snap.el5.centos.src.rpm Description: The LCG Utilities package is the main end user command line tool for data management provided by LCG.
https://bugzilla.redhat.com/show_bug.cgi?id=790805
--- Comment #8 from Ricardo Rocha rocha.porto@gmail.com --- Hi.
Here's the first go.
General comments:
- svn export comment refers to trunk. i understand you're doing a snapshot from trunk, but this should disappear and be replaced with a tag when you're done.
- requires on libs should be %{version}-%{release}, probably everywhere, more inline
- doc file not marked as doc in libs/devel/python/main, also see inline
- you have the release notes in the devel package, shouldn't it go to libs so that it is installed with all packages?
Cheers, Ricardo
[-] MUST: rpmlint must be run on every package.
rpmlint is not silent.
lcg-util.x86_64: W: incoherent-version-in-changelog 1.12.0-5.2012060109snap ['1.12.0-5.2012060109snap.el5.centos', '1.12.0-5.2012060109snap.centos'] lcg-util-libs.x86_64: W: shared-lib-calls-exit /usr/lib64/liblcg_util.so.1.12.0 exit@GLIBC_2.2.5 lcg-util-python26.x86_64: W: no-documentation
The relevant one is the shared-lib-calls-exit. Any chance of this being patched?
The first one should go away when you start using a tag.
[+] 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.
Why not: %doc VERSION LICENSE README instead of: %{_docdir}/%{name}-%{version}/VERSION ...
The same is valid for all the other doc files in the other packages, you don't use %doc. http://fedoraproject.org/wiki/Packaging:Guidelines#Documentation
[+] 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. [+] MUST: The package must successfully compile and build into binary rpms on at least one supported architecture. [-] 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 see ppc listed in, but you should add additional information, and then add a bugzilla entry, as described in: http://fedoraproject.org/wiki/Packaging:Guidelines#Architecture_Support
[+] MUST: All build dependencies must be listed in BuildRequires Builds fine with mock and koji. [=] 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. [=] 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.
Nothing owns %{_docdir}/%{name}-%{version}.
You can fix this by simply using %doc instead.
[+] 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. [=] 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. [=] MUST: Static libraries must be in a -static package. [=] MUST: Packages containing pkgconfig(.pc) files must 'Requires: pkgconfig' (for directory ownership and usability). [+] 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}
Please add the missing %{release}. You probably want to do the same on all the -libs dependencies.
[+] MUST: Packages must NOT contain any .la libtool archives, these should be removed in the spec. Explicitly removed. [=] 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. [+] 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. [+] SHOULD: The package should compile and build into binary rpms on all supported architectures. ppc explicitly removed. [+] SHOULD: The reviewer should test that the package functions as described. Very basic tests done, like: # lcg-cp LCG_GFAL_INFOSYS is not set usage: lcg-cp [-h,--help] [-c,--config config_file] [-n nbstreams] [-b,--nobdii] [-D,--defaultsetype se|srmv1|srmv2] [-T,--srcsetype se|srmv1|srmv2] [-U,--dstsetype se|srmv1|srmv2] [-s,--sst src_spacetokendesc] [-S,--dst dest_spacetokendesc] [--connect-timeout value] [--sendreceive-timeout value] [--bdii-timeout value] [--srm-timeout value] [--checksum] [--checksum-type type] [-v,--verbose] [-V,--vo vo] [--version] [--src-protocols <protocol1,protocol2,...>] [--dst-protocols <protocol1,protocol2,...>] src_file dest_file
[+] 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.
Please see above, missing %{release} in the libs dependencies.
[+] 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. [+] 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.
Additional python checks: [+] MUST: Python eggs must be built from source. They cannot simply drop an egg from upstream into the proper directory. (See prebuilt binaries Guidelines for details) The sources do provide an egginfo directory, but it's not the one being packaged. [+] MUST: Python eggs must not download any dependencies during the build process. Seems to be an issue only for easy_install, not the case. [+] MUST: When building a compat package, it must install using easy_install -m so it won't conflict with the main package. Not a multi-version package. [+] MUST: When building multiple versions (for a compat package) one of the packages must contain a default version that is usable via "import MODULE" with no prior setup. Not a multi-version package. [+] SHOULD: A package which is used by another package via an egg interface should provide egg info. egginfo available.
https://bugzilla.redhat.com/show_bug.cgi?id=790805
--- Comment #9 from Adrien Devresse adev88@gmail.com --- Updated again from the comments
Spec URL: http://firwen.org/home/specs/lcg-util.spec SRPM URL: http://firwen.org/home/specs/lcg-util-1.12.0-5.2012061214snap.el5.centos.src...
Description: The LCG Utilities package is the main end user command line tool for data management provided by LCG.
- svn export comment refers to trunk. i understand you're doing a snapshot from trunk, but this should disappear and be replaced with a tag when you're done.
The SVN export comment is just a link to the official source respository, the official sources are provided by a static tarball. I am part of the upstream, a tag will be done as soon as the review is finished in order to integrate the review's modification directly to the trunk.
- requires on libs should be %{version}-%{release}, probably everywhere, more inline
Done
- doc file not marked as doc in libs/devel/python/main, also see inline
All files under a %{_docdir}/ macro as tagger like "%doc" by default.
- you have the release notes in the devel package, shouldn't it go to libs so that it is installed with all packages?
Done
The relevant one is the shared-lib-calls-exit. Any chance of this being patched?
Impossible to patch in the current state without big modifications.
Why not: %doc VERSION LICENSE README instead of: %{_docdir}/%{name}-%{version}/VERSION ...
Because my "make install" already install all the documentations in the proper place, and %{_docdir}/ already marks these files like "doc".
I see ppc listed in, but you should add additional information, and then add > a bugzilla entry, as described in: http://fedoraproject.org/wiki/Packaging:Guidelines#Architecture_Support
Done, Ticket will be added after review, like specified in the process spec.
Nothing owns %{_docdir}/%{name}-%{version}.
Fixed.
Please add the missing %{release}. You probably want to do the same on all the -libs dependencies.
Fixed.
https://bugzilla.redhat.com/show_bug.cgi?id=790805
--- Comment #10 from Ricardo Rocha rocha.porto@gmail.com ---
(In reply to comment #9)
Updated again from the comments
Spec URL: http://firwen.org/home/specs/lcg-util.spec SRPM URL: http://firwen.org/home/specs/lcg-util-1.12.0-5.2012061214snap.el5.centos.src. rpm
Description: The LCG Utilities package is the main end user command line tool for data management provided by LCG.
- svn export comment refers to trunk. i understand you're doing a snapshot from trunk, but this should disappear and be replaced with a tag when you're done.
The SVN export comment is just a link to the official source respository, the official sources are provided by a static tarball. I am part of the upstream, a tag will be done as soon as the review is finished in order to integrate the review's modification directly to the trunk.
Ok i'll check for it after, it's just confusing to have this comment there.
- requires on libs should be %{version}-%{release}, probably everywhere, more inline
Done
- doc file not marked as doc in libs/devel/python/main, also see inline
All files under a %{_docdir}/ macro as tagger like "%doc" by default.
- you have the release notes in the devel package, shouldn't it go to libs so that it is installed with all packages?
Done
The relevant one is the shared-lib-calls-exit. Any chance of this being patched?
Impossible to patch in the current state without big modifications.
Ok, but make sure there's a bug added upstream and put the link back here.
Why not: %doc VERSION LICENSE README instead of: %{_docdir}/%{name}-%{version}/VERSION ...
Because my "make install" already install all the documentations in the proper place, and %{_docdir}/ already marks these files like "doc".
I see ppc listed in, but you should add additional information, and then add > a bugzilla entry, as described in: http://fedoraproject.org/wiki/Packaging:Guidelines#Architecture_Support
Done, Ticket will be added after review, like specified in the process spec.
I think the goal was to add a comment explaining why it doesn't build. I would replace the copy paste from the guidelines with a more detailed description of the error, which you'll be putting later in the bug anyway.
Nothing owns %{_docdir}/%{name}-%{version}.
Fixed.
Please add the missing %{release}. You probably want to do the same on all the -libs dependencies.
Fixed.
So two very minor things (bug reference to upstream for shared-libs-call-exit and comment with gcc error in epel 5).
And then i'll approve it.
https://bugzilla.redhat.com/show_bug.cgi?id=790805
--- Comment #11 from Adrien Devresse adev88@gmail.com ---
So two very minor things (bug reference to upstream for shared-libs-call-exit and comment with gcc error in epel 5).
Done, https://svnweb.cern.ch/trac/lcgutil/ticket/332
I think the goal was to add a comment explaining why it doesn't build. I would > replace the copy paste from the guidelines with a more detailed description of > the error, which you'll be putting later in the bug anyway.
I tried to described it with "compilation error internal to gcc on epel 5". It is a complexe internal compiler error with a direct dependency ( gfal ) at the linker level. I think that describing the full complexity of the problem in a ticket included in the spec file as soon as the review is done would be better. I can't explain it in a other way without putting a stacktrace :)
https://bugzilla.redhat.com/show_bug.cgi?id=790805
Ricardo Rocha rocha.porto@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Flags| |fedora-review+
--- Comment #12 from Ricardo Rocha rocha.porto@gmail.com --- (In reply to comment #11)
So two very minor things (bug reference to upstream for shared-libs-call-exit and comment with gcc error in epel 5).
Done, https://svnweb.cern.ch/trac/lcgutil/ticket/332
I think the goal was to add a comment explaining why it doesn't build. I would > replace the copy paste from the guidelines with a more detailed description of > the error, which you'll be putting later in the bug anyway.
I tried to described it with "compilation error internal to gcc on epel 5". It is a complexe internal compiler error with a direct dependency ( gfal ) at the linker level. I think that describing the full complexity of the problem in a ticket included in the spec file as soon as the review is done would be better. I can't explain it in a other way without putting a stacktrace :)
That's good enough, you can simply add the link and remove the comment later.
APPROVED.
https://bugzilla.redhat.com/show_bug.cgi?id=790805
--- Comment #13 from Adrien Devresse adev88@gmail.com --- New Package SCM Request ======================= Package Name: lcg-util Short Description: Command line tools for wlcg storage system Owners: adev Branches: el5 el6 f15 f16 f17 InitialCC:
https://bugzilla.redhat.com/show_bug.cgi?id=790805
Adrien Devresse adev88@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Flags| |fedora-cvs?
https://bugzilla.redhat.com/show_bug.cgi?id=790805
--- Comment #14 from Jon Ciesla limburgher@gmail.com --- Git done (by process-git-requests).
https://bugzilla.redhat.com/show_bug.cgi?id=790805
Adrien Devresse adev88@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |CLOSED Resolution|--- |NEXTRELEASE Last Closed| |2012-10-11 11:18:18
package-review@lists.fedoraproject.org