Spec Url: http://silassewell.googlecode.com/svn/trunk/projects/packages/rpms/funcshell/funcshell.spec SRPM Url: http://silassewell.googlecode.com/files/funcshell-0.0.1-1.fc10.src.rpm Description: funcshell is a shell interface to Func. rpmlint [silas@silas result]$ rpmlint funcshell-0.0.1-1.fc10.src.rpm 1 packages and 0 specfiles checked; 0 errors, 0 warnings. [silas@silas result]$ rpmlint funcshell-0.0.1-1.fc10.noarch.rpm 1 packages and 0 specfiles checked; 0 errors, 0 warnings. NOTE: I am the creator of this package. NOTE 2: python-cly (https://admin.fedoraproject.org/pkgdb/packages/name/python-cly) is available in devel and F11.
1] md5sum of tarball in source rpm 1c4ffd7be2aee86743b5aa5f64cc7971 funcshell-0.0.1.tar.gz is different from tarball downloaded from Source0 20d2b36a2ec3bebfaf7eb2acd317e269 funcshell-0.0.1.tar.gz 2] is this your first package for fedora? Or are you maintainer of any other packages for fedora?
1). Updated Source0 to match tar.gz found in the source rpm. [silas@silas ~]$ curl --silent http://cloud.github.com/downloads/silas/funcshell/funcshell-0.0.1.tar.gz | md5sum 1c4ffd7be2aee86743b5aa5f64cc7971 - 2). I maintain other packages: https://admin.fedoraproject.org/pkgdb/users/packages/silas Just a quick clarification, when I say "I am the creator of this package" I mean I wrote funcshell (my original wording was somewhat ambiguous).
Hi Silas, please treat this review as advisory as it's my first review of someone elses work against the Fedora Guidelines. MUST: rpmlint must be run on every package. The output should be posted in the review. - rpmlint funcshell-0.0.1-1.src.rpm -Ok -rpmlint funcshell-0.0.1-1.noarch.rpm -Not OK - rpm package does not build on my system. Processing files: funcshell-0.0.1-1 error: File not found by glob: /var/tmp/funcshell-0.0.1-1-root-root/usr/lib/python2.5/site-packages/funcshell-0.0.1-*.egg-info - Not OK MUST: The package must be named according to the Package Naming Guidelines . - OK MUST: The spec file name must match the base package %{name} - OK MUST: The package must meet the Packaging Guidelines - Doesn’t build (on my system) - Not 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. - OK 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 - OK MUST: The spec file must be written in American English. -OK MUST: The spec file for the package MUST be legible. - OK MUST: The sources used to build the package must match the upstream source - OK MUST: The package MUST successfully compile and build into binary rpms on at least one primary architecture. - Doesn’t build on my system Must: Python eggs must be built from source. They cannot simply drop an egg from upstream into the proper directory. - No egg-info files generated. Must: If egg-info files are generated by the modules build scripts they must be included in the package. - No egg-info files generated, package is expecting them. - Not OK MUST: If the package does not successfully compile, build or work on an architecture - See above - Not OK MUST: All build dependencies must be listed in BuildRequires - Missing python requirement in spec file: BuildRequires: python - Not OK MUST: The spec file MUST handle locales properly. - OK, no locales available MUST: Every binary RPM package (or subpackage) which stores shared library files (not just symlinks) in any of the dynamic linker's default paths, must call ldconfig in %post and %postun. - OK, no shared library available MUST: 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. Without this, use of Prefix: /usr is considered a blocker. - OK, no relocatable package MUST: A package must own all directories that it creates. - OK MUST: A Fedora package must not list a file more than once in the spec file's %files listings. - OK MUST: Permissions on files must be set properly. - OK MUST: Each package must have a %clean section, which contains rm -rf %{buildroot} (or $RPM_BUILD_ROOT). - OK MUST: Each package must consistently use macros. URL: and Source0: could be more consistent with %{name} macro - OK MUST: The package must contain code, or permissable content. - OK MUST: Large documentation files must go in a -doc subpackage. - OK, no large documentation MUST: If a package includes something as %doc, it must not affect the runtime of the application. - OK MUST: Header files must be in a -devel package. - OK, no header files MUST: Static libraries must be in a -static package. - OK, no static libraries MUST: Packages containing pkgconfig(.pc) files must 'Requires: pkgconfig' (for directory ownership and usability). - OK, no .pc files 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. - OK, no library files MUST: In the vast majority of cases, devel packages must require the base package using a fully versioned dependency: Requires: %{name} = %{version}-%{release} - OK, no devel package MUST: Packages must NOT contain any .la libtool archives, these must be removed in the spec if they are built. - OK, no .la files MUST: Packages containing GUI applications must include a %{name}.desktop file - OK, no gui available MUST: Packages must not own files or directories already owned by other packages. - OK MUST: At the beginning of %install, each package MUST run rm -rf %{buildroot} (or $RPM_BUILD_ROOT). - OK MUST: All filenames in rpm packages must be valid UTF-8. Regards, Arthur Gouros - OK
Thanks Arthur. Just curious how you ran your build; this is what I did and it worked. 1. [silas@silas SRPM]$ wget http://silassewell.googlecode.com/files/funcshell-0.0.1-1.fc10.src.rpm 2. [silas@silas SRPMS]$ mock -r fedora-10-i386 funcshell-0.0.1-1.fc10.src.rpm NFO: mock.py version 0.9.14 starting... State Changed: init plugins State Changed: start INFO: Start(funcshell-0.0.1-1.fc10.src.rpm) Config(fedora-10-i386) State Changed: lock buildroot State Changed: clean State Changed: init State Changed: lock buildroot Mock Version: 0.9.14 INFO: Mock Version: 0.9.14 INFO: enabled root cache State Changed: unpacking root cache INFO: enabled yum cache State Changed: cleaning yum metadata INFO: enabled ccache State Changed: running yum State Changed: setup State Changed: build INFO: Done(funcshell-0.0.1-1.fc10.src.rpm) Config(fedora-10-i386) 1 minutes 1 seconds INFO: Results and/or logs in: /var/lib/mock/fedora-10-i386/result 3. [silas@silas SRPMS]$ rpmls /var/lib/mock/fedora-10-i386/result/funcshell-0.0.1-1.fc10.noarch.rpm -rwxr-xr-x /usr/bin/funcshell drwxr-xr-x /usr/lib/python2.5/site-packages/funcshell -rw-r--r-- /usr/lib/python2.5/site-packages/funcshell-0.0.1-py2.5.egg-info -rw-r--r-- /usr/lib/python2.5/site-packages/funcshell/__init__.py -rw-r--r-- /usr/lib/python2.5/site-packages/funcshell/__init__.pyc -rw-r--r-- /usr/lib/python2.5/site-packages/funcshell/__init__.pyo -rw-r--r-- /usr/lib/python2.5/site-packages/funcshell/utils.py -rw-r--r-- /usr/lib/python2.5/site-packages/funcshell/utils.pyc -rw-r--r-- /usr/lib/python2.5/site-packages/funcshell/utils.pyo drwxr-xr-x /usr/share/doc/funcshell-0.0.1 -rw-r--r-- /usr/share/doc/funcshell-0.0.1/LICENSE 4. [silas@silas SRPMS]$ rpmlint /var/lib/mock/fedora-10-i386/result/*.rpm 2 packages and 0 specfiles checked; 0 errors, 0 warnings. P.S. If the syntax of the egg file name is different, let me know the name and I will make the glob more general. Thanks again,
Hi Silas, Builds on my system ok, egg file is present. (In reply to comment #3) > MUST: All build dependencies must be listed in BuildRequires > - Missing python requirement in spec file: BuildRequires: python > - Not OK python is required by python-devel in BuildRequires, explicit buildrequires is not needed IMHO (correct me if I'm wrong)
Hi Silas, I'm using f7 which still uses python 2.5 (r25:51908, Apr 10 2007) (which is why I stressed "on my machine"). I'm building against the source archive as: % rpmbuild -ba funcshell.spec The build works, but the egg-info file is not present in %{buildroot}, which then fails the packaging part of the spec file. Not familiar with python history but 2 years is a long time in software. If its a version issue and f7 is not reaching end-of-life status with looming f11 then maybe some advanced packaging syntax could be used in the specfile. E.g. BuildRequires: python >= <version> Kind Regards, Arthur
Fedora 7 was end-of-life a while ago, only Fedora 9 and up are currently active and Fedora 9 will be end-of-life soon. http://fedoraproject.org/wiki/End_of_life Fedora 10 also uses Python 2.5, but Fedora didn't support creating eggs in distutils until Fedora 9. I would highly recommend using a non-EOL product when doing package reviews or use mock and a more recent build tree. I changed my setup.py to use setuptools instead of distutils which should fix the issue you were seeing. SRPM: http://silassewell.googlecode.com/files/funcshell-0.0.1-2.fc10.src.rpm Diff: http://code.google.com/p/silassewell/source/diff?spec=svn274&r=274&format=side&path=/trunk/projects/packages/rpms/funcshell/funcshell.spec
Hi Silas, Just did another informal review of funcshell using Koji for the builds. http://koji.fedoraproject.org/koji/taskinfo?taskID=1380831 (i386, f-10) http://koji.fedoraproject.org/koji/taskinfo?taskID=1380834 (ppc, f-10) Although it now builds on f-7 (thanks) its not worth pursuing as there is no python-cly for f-7 (in the standard repo). I plan to upgrade, but that will be some months away. In the meantime all the items that I could check (mainly clerical and builds) appear to be in order. Best regards, Arthur
Silas, are you ready to take this to the next level? It's been a while of course, but I'd like to see this package end up in Fedora / EPEL as soon as possible.
Kanarip, I believe this package is ready to go barring a formal review. I've started work on a func replacement so I'm not going to spend a bunch of time on funcshell, but I'm sure some people would like having it in the official repositories.
any progress?
Hi Silas, Review based on latest ReviewGuidelines Rev: Friday Jan 9, 2009 Koji builds: http://koji.fedoraproject.org/koji/taskinfo?taskID=1755879 (i386, f-11) http://koji.fedoraproject.org/koji/taskinfo?taskID=1755887 (ppc64, f-11) All was good, no issues found. Summary follows. MUST: rpmlint must be run on every package. The output should be posted in the review. % rpmlint funcshell-0.0.1-2.fc11.src.rpm 1 packages and 0 specfiles checked; 0 errors, 0 warnings. % rpmlint funcshell-0.0.1-2.fc11.noarch.rpm 1 packages and 0 specfiles checked; 0 errors, 0 warnings. % rpmlint funcshell.spec 0 packages and 1 specfiles checked; 0 errors, 0 warnings. - OK MUST: The package must be named according to the Package Naming Guidelines . - OK MUST: The spec file name must match the base package %{name} - OK MUST: The package must meet the Packaging Guidelines - 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. - OK 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 - OK MUST: The spec file must be written in American English. - OK MUST: The spec file for the package MUST be legible. - OK MUST: The sources used to build the package must match the upstream source - OK MUST: The package MUST successfully compile and build into binary rpms on at least one primary architecture. - OK MUST: If the package does not successfully compile, build or work on an architecture - OK MUST: All build dependencies must be listed in BuildRequires - OK MUST: The spec file MUST handle locales properly. - OK, no locales available MUST: Every binary RPM package (or subpackage) which stores shared library files (not just symlinks) in any of the dynamic linker's default paths, must call ldconfig in %post and %postun. - OK, no shared library available MUST: Packages must NOT bundle copies of system libraries. - OK MUST: 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. Without this, use of Prefix: /usr is considered a blocker. - OK, no relocatable package MUST: A package must own all directories that it creates. - OK MUST: A Fedora package must not list a file more than once in the spec file's %files listings. - OK MUST: Permissions on files must be set properly. - OK MUST: Each package must have a %clean section, which contains rm -rf %{buildroot} (or $RPM_BUILD_ROOT). - OK MUST: Each package must consistently use macros. - OK MUST: The package must contain code, or permissable content. - OK MUST: Large documentation files must go in a -doc subpackage. - OK, no large documentation MUST: If a package includes something as %doc, it must not affect the runtime of the application. - OK MUST: Header files must be in a -devel package. - OK, no header files MUST: Static libraries must be in a -static package. - OK, no static libraries MUST: Packages containing pkgconfig(.pc) files must 'Requires: pkgconfig' (for directory ownership and usability). - OK, no .pc files 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. - OK, no library files MUST: In the vast majority of cases, devel packages must require the base package using a fully versioned dependency: Requires: %{name} = %{version}-%{release} - OK, no devel package MUST: Packages must NOT contain any .la libtool archives, these must be removed in the spec if they are built. - OK, no .la files MUST: Packages containing GUI applications must include a %{name}.desktop file - OK, no gui available MUST: Packages must not own files or directories already owned by other packages. - OK MUST: At the beginning of %install, each package MUST run rm -rf %{buildroot} (or $RPM_BUILD_ROOT). - OK MUST: All filenames in rpm packages must be valid UTF-8. - OK Regs, Arthur Gouros.
Hi, I also would like to see funcshell in EPEL/Fedora.... However, I think that funcshell really needs more documentation! On the project homepage (apparently the github http://github.com/silas/funcshell page??) there is really no information how to use funchshell! Please, add some documentation or at least an exhaustive list of examples. Kind Regards, Schlomo Schapiro
I added a blurb to the README.md about how to use the in-app funcshell help (basically just spam the "?" key). See: http://github.com/silas/funcshell/blob/master/README.md If there was something specific you had trouble with I'll write up a FAQ. I'll wait for your response before I do a rebuild. Thanks
Hi, I looked at the README.md and still don't really know how to do cool things with funcshell. Maybe a Tutorial or example session showing off what funcshell can do would be useful. You could also see it as project marketing: If people see immediately what can be done with it they are more likely to give it a try. Thanks, Schlomo
I added a link to http://www.silassewell.com/blog/2009/04/22/funcshell-a-shell-interface-to-func/ which is about as much as I'm willing to do for this project. If you'd like something more you're welcome to send a patch.
Greate! I was looking for this post and had lost it. That's a great starting point. Thanks a lot.
I'm not going to pursue this further.