Bug 670345

Summary: Review Request: cx_freeze - create executable from python scripts
Product: [Fedora] Fedora Reporter: Patrice FERLET <metal3d>
Component: Package ReviewAssignee: Pierre-YvesChibon <pingou>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: low    
Version: rawhideCC: fedora-package-review, notting, pingou
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-06-14 14:24:33 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 201449    

Description Patrice FERLET 2011-01-17 23:26:21 UTC
Spec URL: http://www.metal3d.org/rpms/cxFreeze.spec
SRPM URL: http://www.metal3d.org/rpms/cxfreeze-4.2.2-1.fc14.src.rpm
Description: 
cx_Freeze create executable from python scripts by freezing in the same way py2exe. It's multiplateform

koji said me that my rpm seems to be ok. rpmlint says that I've got no documentation (true...), and spelling errors that are not real :)

cxfreeze.x86_64: W: spelling-error %description -l en_US cx -> xx, cc, c
cxfreeze.x86_64: W: private-shared-object-provides /usr/lib64/python2.7/site-packages/cx_Freeze/util.so util.so()(64bit)
cxfreeze.x86_64: W: no-documentation
cxfreeze.x86_64: W: no-manual-page-for-binary cxfreeze

I cannot move util.so util.so... trust me I tried :)

koji said ok:
http://koji.fedoraproject.org/koji/taskinfo?taskID=2727304

PS: I'm not sponsored.

Comment 1 Patrice FERLET 2011-01-17 23:31:59 UTC
I wonder if I can move util.so to %{_libdir}/cxfreeze and make a symlink to /usr/lib64/python2.7/site-packages/cx_Freeze/

PS: my FAS is metal3d

Comment 2 Pierre-YvesChibon 2011-01-18 10:29:54 UTC
Quickly reading the spec file:

># sitelib for noarch packages, sitearch for others (remove the unneeded one)
>%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from >distutils.sysconfig import get_python_lib; print(get_python_lib())")}
>%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from >distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
Choose one of the other, but one should be removed

> Name:           cxfreeze 
Why did you choose this name ? I see cx_freeze more often on the website. Please see http://fedoraproject.org/wiki/Packaging:NamingGuidelines

> License:        Python
hm, seeing this http://cx-freeze.sourceforge.net/LICENSE.txt I think it might need to be reviewed to be sure the license is valid.

> Source0:        cx_Freeze-%{version}.tar.gz
This is not correct, please see http://fedoraproject.org/wiki/Packaging/SourceURL

> Requires:       python >= 2.3 gcc
Are you sure the gcc should be explicitly required ?

> #add shebang
> for f in ${RPM_BUILD_ROOT}/%{python_sitearch}/cx_Freeze/initscripts/*
Why do you add shebang to file which will never be executed ?

> #not relevant
> rm -rf ${RPM_BUILD_ROOT}/%{python_sitearch}/cx_Freeze/samples
Why is it not relevant ? Couldn't it be provided as doc ?

There are several comments on your spec which you could clean.

Comment 3 Patrice FERLET 2011-01-19 06:50:00 UTC
For name, ok... In fact I didn't see any package with "_" in name... that's why I did it.

For license, that's exactly why I ask a review. It seems that cx_freeze use a derivated python license.

gcc is needed. cx_freeze creates an executable by making linkage with gcc. If you've got not gcc, cx_freeze won't create executable

I add shebang because rpmlint insult me :)

sample aren't very usefull, not documented... that's right I can set a -doc package with this files into. But I have to move them to documentation directory, right ?

I do modifications

Comment 4 Patrice FERLET 2011-01-19 07:39:07 UTC
http://koji.fedoraproject.org/koji/taskinfo?taskID=2730674
Spec URL: http://www.metal3d.org/rpms/cxFreeze.spec
SRPM URL: http://www.metal3d.org/rpms/cxfreeze-4.2.2-1.fc14.src.rpm

Modifications done 
Koji test ok :) 

rpmlint:
[patachou@patrice-laptop rpmbuild]$ rpmlint /home/patachou/rpmbuild/RPMS/x86_64/cx_freeze-4.2.2-1.fc14.x86_64.rpm
cx_freeze.x86_64: W: spelling-error %description -l en_US cx -> xx, cc, c
cx_freeze.x86_64: W: private-shared-object-provides /usr/lib64/python2.7/site-packages/cx_Freeze/util.so util.so()(64bit)
cx_freeze.x86_64: W: no-documentation
cx_freeze.x86_64: E: script-without-shebang /usr/lib64/python2.7/site-packages/cx_Freeze/initscripts/ConsoleKeepPath3.py
cx_freeze.x86_64: E: script-without-shebang /usr/lib64/python2.7/site-packages/cx_Freeze/initscripts/ConsoleSetLibPath.py
cx_freeze.x86_64: E: script-without-shebang /usr/lib64/python2.7/site-packages/cx_Freeze/initscripts/Console.py
cx_freeze.x86_64: E: script-without-shebang /usr/lib64/python2.7/site-packages/cx_Freeze/initscripts/SharedLib.py
cx_freeze.x86_64: E: script-without-shebang /usr/lib64/python2.7/site-packages/cx_Freeze/initscripts/SharedLibSource.py
cx_freeze.x86_64: E: script-without-shebang /usr/lib64/python2.7/site-packages/cx_Freeze/initscripts/ConsoleKeepPath.py
cx_freeze.x86_64: E: script-without-shebang /usr/lib64/python2.7/site-packages/cx_Freeze/initscripts/Console3.py
cx_freeze.x86_64: W: no-manual-page-for-binary cxfreeze
1 packages and 0 specfiles checked; 7 errors, 4 warnings.



[patachou@patrice-laptop rpmbuild]$ rpmlint /home/patachou/rpmbuild/RPMS/noarch/cx_freeze-doc-4.2.2-1.fc14.noarch.rpm
cx_freeze-doc.noarch: W: spelling-error Summary(en_US) cx -> xx, cc, c
cx_freeze-doc.noarch: W: spelling-error %description -l en_US cx -> xx, cc, c
cx_freeze-doc.noarch: W: wrong-file-end-of-line-encoding /usr/share/doc/cx_freeze/samples/advanced/advanced_2.py
cx_freeze-doc.noarch: W: wrong-file-end-of-line-encoding /usr/share/doc/cx_freeze/samples/advanced/modules/testfreeze_1.py
cx_freeze-doc.noarch: W: wrong-file-end-of-line-encoding /usr/share/doc/cx_freeze/samples/advanced/modules/testfreeze_2.py
cx_freeze-doc.noarch: W: wrong-file-end-of-line-encoding /usr/share/doc/cx_freeze/samples/service/Config.py
cx_freeze-doc.noarch: W: wrong-file-end-of-line-encoding /usr/share/doc/cx_freeze/samples/service/setup.py
cx_freeze-doc.noarch: W: wrong-file-end-of-line-encoding /usr/share/doc/cx_freeze/samples/advanced/advanced_1.py
cx_freeze-doc.noarch: W: wrong-file-end-of-line-encoding /usr/share/doc/cx_freeze/samples/service/ServiceHandler.py
cx_freeze-doc.noarch: W: wrong-file-end-of-line-encoding /usr/share/doc/cx_freeze/samples/advanced/setup.py
1 packages and 0 specfiles checked; 0 errors, 10 warnings.

Comment 5 Pierre-YvesChibon 2011-01-19 07:53:53 UTC
Ah you still have to clean the output of rpmlint, you might want to look at rpmlint -i for hints.

For the documentation, you can just "flag" the folder in the %files section as being doc.

Comment 6 Patrice FERLET 2011-01-19 07:54:30 UTC
Source URL changed, sorry if you didn't see my last modification :)

PS: name is very badly choosen by author... cx_Freeze isn't the right name used in sourceforge urls (it uses cx-freeze, lowercase, minus and not underscore...)

Comment 7 Patrice FERLET 2011-01-19 08:02:29 UTC
Pierre-YvesChibon: ok, I take a look at this time.

For shebangs I really don't know how to do without my "for f in ${RPM_BUILD_ROOT}/%{python_sitearch}/cx_Freeze/initscripts/*" loop.

I have setted my doc flag, already see how to make multiple packages with one spec :)

For end of line errors, I do now a sed replacement, working:

[patachou@patrice-laptop rpmbuild]$ rpmlint -i /home/patachou/rpmbuild/RPMS/noarch/cx_freeze-doc-4.2.2-1.fc14.noarch.rpm 
cx_freeze-doc.noarch: W: spelling-error Summary(en_US) cx -> xx, cc, c
The value of this tag appears to be misspelled. Please double-check.

cx_freeze-doc.noarch: W: spelling-error %description -l en_US cx -> xx, cc, c
The value of this tag appears to be misspelled. Please double-check.

1 packages and 0 specfiles checked; 0 errors, 2 warnings.

Comment 8 Pierre-YvesChibon 2011-01-19 08:06:59 UTC
FYI, it is normally good practice to increase the release for each change and populate the changelog accordingly

I don't think the sample are worth a -doc subpackage.
But you can flag the documentation as being %doc which allow when using rpm to install the software without the documentation.

Don't forget to adjust the name of the spec to the name you choose

Comment 9 Patrice FERLET 2011-01-19 11:04:12 UTC
Ok, I will do it in next hours.
thank you for all these tips, I try to do my best :)

Comment 10 Patrice FERLET 2011-01-19 11:29:37 UTC
Spec URL: http://www.metal3d.org/rpms/cx_freeze.spec
SRPM URL: http://www.metal3d.org/rpms/cx_freeze-4.2.2-1.fc14.src.rpm

I did what you told me to do.

rpmint still beat me with needed shebangs... Can I uncomment my workaround ?

Comment 11 Pierre-YvesChibon 2011-01-19 12:33:41 UTC
You might want to have a look at: http://fedoraproject.org/wiki/PackageMaintainers/Packaging_Tricks
Also beware that some people attached importance to keeping to time stamp.

Comment 12 Patrice FERLET 2011-01-19 12:52:31 UTC
Spec URL: http://www.metal3d.org/rpms/cx_freeze.spec
SRPM URL: http://www.metal3d.org/rpms/cx_freeze-4.2.2-3.fc14.src.rpm

Should be nice now:
rpmlint /home/patachou/rpmbuild/RPMS/x86_64/cx_freeze-4.2.2-3.fc14.x86_64.rpm
cx_freeze.x86_64: W: spelling-error %description -l en_US cx -> xx, cc, c
cx_freeze.x86_64: W: private-shared-object-provides /usr/lib64/python2.7/site-packages/cx_Freeze/util.so util.so()(64bit)
cx_freeze.x86_64: W: no-manual-page-for-binary cxfreeze
1 packages and 0 specfiles checked; 0 errors, 3 warnings.

Comment 13 Patrice FERLET 2011-01-19 13:40:06 UTC
changed description to 75 caracters long as possible

Spec URL: http://www.metal3d.org/rpms/cx_freeze.spec
SRPM URL: http://www.metal3d.org/rpms/cx_freeze-4.2.2-4.fc14.src.rpm

Comment 14 Pierre-YvesChibon 2011-01-19 13:57:41 UTC
(In reply to comment #12)
> cx_freeze.x86_64: W: private-shared-object-provides
> /usr/lib64/python2.7/site-packages/cx_Freeze/util.so util.so()(64bit)

You might want to look into http://fedoraproject.org/wiki/Packaging:AutoProvidesAndRequiresFiltering#Arch-specific_extensions_to_scripting_languages

Comment 15 Patrice FERLET 2011-01-19 14:41:27 UTC
Done, thanks :)

Spec URL: http://www.metal3d.org/rpms/cx_freeze.spec
SRPM URL: http://www.metal3d.org/rpms/cx_freeze-4.2.2-5.fc14.src.rpm

Comment 16 Patrice FERLET 2011-02-01 23:28:16 UTC
Excuse me to ping this post, but... is anyone looking at my package ?

Comment 17 Pierre-YvesChibon 2011-02-10 19:19:19 UTC
Hi,

I have recently been approved sponsors, so I am willing to sponsor you.

This package looks in a decent shape to me but before I do the formal review and approve it I would like to see you submit one or two more packages and do a couple of informal review on already submitted packages.
Please attached the link to the new review request and the link to the informal review you do to this ticket.

Thanks.

Comment 18 Patrice FERLET 2011-03-08 15:28:17 UTC
Ok, I will do that. Thanks

Comment 19 Pierre-YvesChibon 2011-03-20 09:44:07 UTC
ping ?

Comment 20 Pierre-YvesChibon 2011-05-09 07:20:20 UTC
ping ?

Comment 21 Pierre-YvesChibon 2011-06-14 14:24:33 UTC
I have not heard from you for 3 months, I am therefore closing this ticket.

If you want to finish the review, feel free to re-open it!