Bug 726841

Summary: Re-Review Request for Rename: python-egenix-mx-base - renaming mx
Product: [Fedora] Fedora Reporter: Brian Lane <bcl>
Component: Package ReviewAssignee: Susi Lehtola <susi.lehtola>
Status: CLOSED RAWHIDE QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: jpopelka, notting, package-review, susi.lehtola
Target Milestone: ---Flags: susi.lehtola: fedora-review+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-08-13 18:48:27 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Brian Lane 2011-07-29 22:20:41 UTC
Spec URL: http://bcl.fedorapeople.org/python-mx.spec
SRPM URL: http://bcl.fedorapeople.org/python-mx-3.2.0-2.fc17.src.rpm
Description: Renaming mx to python-mx as requested in bug 497471

Please see https://fedoraproject.org/wiki/Package_Renaming_Process for the renaming process.

Comment 1 Susi Lehtola 2011-07-30 00:41:09 UTC
$ rpmlint python-mx-*
python-mx.src: W: strange-permission egenix-mx-base-3.2.0.tar.gz 0444L
python-mx.src: E: invalid-spec-name
python-mx.src:20: W: unversioned-explicit-provides mx
python-mx.src:21: W: unversioned-explicit-obsoletes mx
python-mx.src:32: W: unversioned-explicit-provides mx-devel
python-mx.src:33: W: unversioned-explicit-obsoletes mx-devel
python-mx.src:82: W: macro-in-comment %{_bindir}
python-mx.x86_64: W: self-obsoletion mx obsoletes mx
python-mx.x86_64: W: self-obsoletion mx2 <= 3.2.0-2.fc15 obsoletes mx2 = 3.2.0-2.fc15
python-mx.x86_64: W: private-shared-object-provides /usr/lib64/python2.7/site-packages/mx/Proxy/mxProxy/mxProxy.so mxProxy.so()(64bit)
python-mx.x86_64: W: private-shared-object-provides /usr/lib64/python2.7/site-packages/mx/Queue/mxQueue/mxQueue.so mxQueue.so()(64bit)
python-mx.x86_64: W: private-shared-object-provides /usr/lib64/python2.7/site-packages/mx/TextTools/mxTextTools/mxTextTools.so mxTextTools.so()(64bit)
python-mx.x86_64: W: private-shared-object-provides /usr/lib64/python2.7/site-packages/mx/UID/mxUID/mxUID.so mxUID.so()(64bit)
python-mx.x86_64: W: private-shared-object-provides /usr/lib64/python2.7/site-packages/mx/URL/mxURL/mxURL.so mxURL.so()(64bit)
python-mx.x86_64: W: private-shared-object-provides /usr/lib64/python2.7/site-packages/mx/BeeBase/mxBeeBase/mxBeeBase.so mxBeeBase.so()(64bit)
python-mx.x86_64: W: private-shared-object-provides /usr/lib64/python2.7/site-packages/mx/DateTime/mxDateTime/mxDateTime.so mxDateTime.so()(64bit)
python-mx.x86_64: W: private-shared-object-provides /usr/lib64/python2.7/site-packages/mx/Stack/mxStack/mxStack.so mxStack.so()(64bit)
python-mx.x86_64: W: private-shared-object-provides /usr/lib64/python2.7/site-packages/mx/Tools/mxTools/mxTools.so mxTools.so()(64bit)
python-mx.x86_64: E: non-standard-executable-perm /usr/lib64/python2.7/site-packages/mx/Proxy/mxProxy/mxProxy.so 0775L
python-mx.x86_64: W: python-bytecode-without-source /usr/lib64/python2.7/site-packages/mx/BeeBase/showBeeDict.pyo
python-mx.x86_64: W: python-bytecode-without-source /usr/lib64/python2.7/site-packages/mx/BeeBase/showBeeDict.pyc
python-mx.x86_64: W: python-bytecode-without-source /usr/lib64/python2.7/site-packages/mx/TextTools/mxTextTools/testkj.pyc
python-mx.x86_64: W: python-bytecode-without-source /usr/lib64/python2.7/site-packages/mx/TextTools/mxTextTools/testkj.pyo
python-mx.x86_64: E: non-standard-executable-perm /usr/lib64/python2.7/site-packages/mx/Queue/mxQueue/mxQueue.so 0775L
python-mx.x86_64: E: wrong-script-interpreter /usr/lib64/python2.7/site-packages/mx/BeeBase/mxBeeBase/testernesto.py /usr/local/bin/python
python-mx.x86_64: E: non-executable-script /usr/lib64/python2.7/site-packages/mx/BeeBase/mxBeeBase/testernesto.py 0644L /usr/local/bin/python
python-mx.x86_64: E: non-standard-executable-perm /usr/lib64/python2.7/site-packages/mx/TextTools/mxTextTools/mxTextTools.so 0775L
python-mx.x86_64: E: non-executable-script /usr/lib64/python2.7/site-packages/mx/Misc/Daemon.py 0644L /usr/bin/env
python-mx.x86_64: W: python-bytecode-without-source /usr/lib64/python2.7/site-packages/mx/Stack/stackbench.pyc
python-mx.x86_64: W: python-bytecode-without-source /usr/lib64/python2.7/site-packages/mx/Stack/stackbench.pyo
python-mx.x86_64: W: python-bytecode-without-source /usr/lib64/python2.7/site-packages/mx/DateTime/mxDateTime/test.pyc
python-mx.x86_64: W: python-bytecode-without-source /usr/lib64/python2.7/site-packages/mx/DateTime/mxDateTime/test.pyo
python-mx.x86_64: E: non-standard-executable-perm /usr/lib64/python2.7/site-packages/mx/UID/mxUID/mxUID.so 0775L
python-mx.x86_64: W: python-bytecode-without-source /usr/lib64/python2.7/site-packages/mx/Queue/queuebench.pyc
python-mx.x86_64: W: python-bytecode-without-source /usr/lib64/python2.7/site-packages/mx/Queue/queuebench.pyo
python-mx.x86_64: E: non-standard-executable-perm /usr/lib64/python2.7/site-packages/mx/URL/mxURL/mxURL.so 0775L
python-mx.x86_64: E: non-standard-executable-perm /usr/lib64/python2.7/site-packages/mx/BeeBase/mxBeeBase/mxBeeBase.so 0775L
python-mx.x86_64: E: non-standard-executable-perm /usr/lib64/python2.7/site-packages/mx/DateTime/mxDateTime/mxDateTime.so 0775L
python-mx.x86_64: E: non-standard-executable-perm /usr/lib64/python2.7/site-packages/mx/Stack/mxStack/mxStack.so 0775L
python-mx.x86_64: E: non-standard-executable-perm /usr/lib64/python2.7/site-packages/mx/Tools/mxTools/mxTools.so 0775L
python-mx-devel.x86_64: W: self-obsoletion mx-devel obsoletes mx-devel
python-mx-devel.x86_64: W: no-documentation
4 packages and 0 specfiles checked; 13 errors, 29 warnings.

- The name of the spec should be python-mx.spec.

- Please version the obsoletes and provides:
 Obsoletes: mx < 3.2.0-2
 Provides: mx = %{version}-%{release}
and analogously for devel.

- The requires must be architecture specific, e.g., -devel must have
 Requires: %{name}%{?_isa} = %{version}-%{release}
http://fedoraproject.org/wiki/Packaging/Guidelines#Requiring_Base_Package

- Fix the self-obsoletion stuff.

- What is the pybasever macro used for?

- The BuildRoot tag (and its value!) is obsolete. If you're not targetting EPEL, you can remove the cleaning from %install, the %clean section altogether, the BuildRoot tag and the %defattr clauses, all of which are defaulted by current RPM.

- Consider replacing %define 's with %global 's.
http://fedoraproject.org/wiki/Packaging/Guidelines#.25global_preferred_over_.25define

- You need to use a filter for the libraries:
 # we don't want to provide private python extension libs
 %{?filter_setup:
 %filter_provides_in %{python_sitearch}/.*\.so$ 
 %filter_setup
 }
as in http://fedoraproject.org/wiki/Packaging:AutoProvidesAndRequiresFiltering#Arch-specific_extensions_to_scripting_languages

- Installed .so libraries should have 755 permissions.

- Patch1 is missing a description in the spec file. What does it do?

- I suggest adding a tailing / in %files to
 %{python_sitearch}/mx
to make it clear it is a directory (a trailing slash is also used in -devel).

Comment 2 Brian Lane 2011-08-02 00:10:28 UTC
I think pybasever was a leftover from a previous name change. I've removed that and the mx2 provide/obsolete -- nothing in the current repo depends on it.

I've uploaded a new .spec and src.rpm over the top of the previous and you can see a scratch build at: http://koji.fedoraproject.org/koji/taskinfo?taskID=3245283

Thanks!

Comment 3 Jiri Popelka 2011-08-16 08:58:43 UTC
The License: says 'Python' but it should be 'eGenix' I think.
http://fedoraproject.org/wiki/Licensing
https://fedoraproject.org/wiki/Licensing/eGenix.com_Public_License_1.1.0

Comment 4 Susi Lehtola 2011-08-16 09:26:44 UTC
(In reply to comment #2)
> I've uploaded a new .spec and src.rpm over the top of the previous and you can
> see a scratch build at:
> http://koji.fedoraproject.org/koji/taskinfo?taskID=3245283

There's a reason for the existence of the Release tag. Please use it whenever you make changes to the spec file, even during the review phase. Otherwise it's a PITA for the reviewer.

Comment 5 Susi Lehtola 2011-08-16 09:48:19 UTC
Please do the preparation of the sources


# alter /usr/local/bin/python
find mx/ -name "*.py" -exec sed -i -e 's:^#!.*python:#!%{_bindir}/python:' {} \;

# These just have test cases and aren't meant to be run
for file in mx/Log.py mx/BeeBase/FileLock.py mx/BeeBase/mxBeeBase/testernesto.py \
        mx/Misc/OrderedMapping.py mx/Misc/Daemon.py mx/Misc/FileLock.py; do
    sed -i -e '/^#!.*python/d' ${file}
done


in the %prep phase, not in %build.

**


$ rpmlint python-mx-*
python-mx.src: W: strange-permission egenix-mx-base-3.2.0.tar.gz 0444L
python-mx.src:73: W: macro-in-comment %{_bindir}
python-mx.x86_64: E: non-standard-executable-perm /usr/lib64/python2.7/site-packages/mx/Proxy/mxProxy/mxProxy.so 0775L
python-mx.x86_64: E: non-standard-executable-perm /usr/lib64/python2.7/site-packages/mx/Queue/mxQueue/mxQueue.so 0775L
python-mx.x86_64: E: non-standard-executable-perm /usr/lib64/python2.7/site-packages/mx/TextTools/mxTextTools/mxTextTools.so 0775L
python-mx.x86_64: E: non-standard-executable-perm /usr/lib64/python2.7/site-packages/mx/UID/mxUID/mxUID.so 0775L
python-mx.x86_64: E: non-standard-executable-perm /usr/lib64/python2.7/site-packages/mx/URL/mxURL/mxURL.so 0775L
python-mx.x86_64: E: non-standard-executable-perm /usr/lib64/python2.7/site-packages/mx/BeeBase/mxBeeBase/mxBeeBase.so 0775L
python-mx.x86_64: E: non-standard-executable-perm /usr/lib64/python2.7/site-packages/mx/DateTime/mxDateTime/mxDateTime.so 0775L
python-mx.x86_64: E: non-standard-executable-perm /usr/lib64/python2.7/site-packages/mx/Stack/mxStack/mxStack.so 0775L
python-mx.x86_64: E: non-standard-executable-perm /usr/lib64/python2.7/site-packages/mx/Tools/mxTools/mxTools.so 0775L
python-mx-devel.x86_64: W: no-documentation
4 packages and 0 specfiles checked; 9 errors, 3 warnings.

You still need to fix the permissions of the libraries. Run
 find %{buildroot}%{python_sitearch}/mx/ -name \*.so -exec chmod 755 {} \;
at the end of %install.

**

If you like, you can also drop the %defattr lines, which are defaulted in current versions of RPM.

**

MUST: The spec file for the package is legible and macros are used consistently. NEEDSWORK
- You are mixing macro styles. Change $RPM_OPT_FLAGS to %{optflags} to be consistent.

MUST: The package must be named according to the Package Naming Guidelines. NEEDSWORK
- In the two years' time from filing of bug #497471, the upstream project has changed its name.
- Instead of python-mx, this package should actually now be named python-egenix-mx-base.
(Fortuitiously this change can now be done for free.)

MUST: The spec file name must match the base package %{name}. OK
MUST: The package must be licensed with a Fedora approved license and meet the  Licensing Guidelines. OK

MUST: The License field in the package spec file must match the actual license. NEEDSWORK
- As noted in comment #3, the correct license tag is eGenix.

MUST: The sources used to build the package must match the upstream source, as provided in the spec URL. OK
$ md5sum egenix-mx-base-3.2.0.tar.gz ../SOURCES/egenix-mx-base-3.2.0.tar.gz 
5db1fa864e9c239e9438bd64beed5f9b  egenix-mx-base-3.2.0.tar.gz
5db1fa864e9c239e9438bd64beed5f9b  ../SOURCES/egenix-mx-base-3.2.0.tar.gz

MUST: The package MUST successfully compile and build into binary rpms. OK
MUST: The spec file MUST handle locales properly. N/A

MUST: Optflags are used and time stamps preserved. NEEDSWORK
- Please use 'cp -pr' instead of 'cp -r'.

MUST: Packages containing shared library files must call ldconfig. N/A
MUST: A package must own all directories that it creates or require the package that owns the directory. OK
MUST: Files only listed once in %files listings. OK
MUST: Debuginfo package is complete. OK

MUST: Permissions on files must be set properly. NEEDSWORK
- Fix the library perms.

MUST: Large documentation files must go in a -doc subpackage. N/A

MUST: All relevant items are included in %doc. Items in %doc do not affect runtime of application. NEEDSWORK
- docs is now 5 MB (uncompressed), which is too big to put in the base package.
- Put COPYRIGHT and LICENSE in the main package, and the rest in -docs.
- IMHO there's no sense in having Doc folders for single PDF files. For example, I'd place DateTime/Doc/mxDateTime.pdf as just DateTime/mxDateTime.pdf.

MUST: Header files must be in a -devel package. OK
MUST: Static libraries must be in a -static package. N/A
MUST: If a package contains library files with a suffix then library files ending in .so must go in a -devel package. Not applicable
MUST: In the vast majority of cases, devel packages must require the base package using a fully versioned, architecture dependent dependency. OK
MUST: Packages does not contain any .la libtool archives. N/A
MUST: Desktop files are installed properly. N/A
MUST: No file conflicts with other packages and no general names. OK
SHOULD: %{?dist} tag is used in release. OK
SHOULD: If the package does not include license text(s) as separate files from upstream, the packager should query upstream to include it. OK
SHOULD: The package builds in mock. OK

Comment 6 Susi Lehtola 2011-08-27 17:59:32 UTC
Ping Brian?

Comment 7 Brian Lane 2011-08-29 16:30:00 UTC
I'll hopefully get back to this sometime this week.

Comment 8 Susi Lehtola 2012-07-28 13:31:52 UTC
ping again Brian

Comment 9 Brian Lane 2012-08-03 22:08:44 UTC
Thanks for the help, sorry to take so long to get back to this:

spec URL: http://bcl.fedorapeople.org/python-egenix-mx-base.spec
srpm URL: http://bcl.fedorapeople.org/python-egenix-mx-base-3.2.4-1.fc18.src.rpm

Comment 10 Brian Lane 2012-08-13 16:15:46 UTC
*** Bug 497471 has been marked as a duplicate of this bug. ***

Comment 11 Susi Lehtola 2012-08-13 17:42:08 UTC
Sorry that it took me this long to respond, I've been quite busy lately. Well, looks like every issue in comment #5 has been adressed. The review has been

APPROVED

Comment 12 Brian Lane 2012-08-13 18:10:28 UTC
New Package SCM Request
=======================
Package Name: python-egenix-mx-base
Short Description: A collection of Python software tools
Owners: bcl jpopelka mdomsch 
Branches: rawhide

Comment 13 Gwyn Ciesla 2012-08-13 18:15:40 UTC
Git done (by process-git-requests).

Comment 14 Gwyn Ciesla 2012-08-13 18:54:43 UTC
Already done. . .