Bug 497759 - Review Request: funcshell - A shell interface to Func
Summary: Review Request: funcshell - A shell interface to Func
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
low
medium
Target Milestone: ---
Assignee: Jeroen van Meeuwen
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2009-04-27 00:16 UTC by Silas Sewell
Modified: 2010-06-20 01:29 UTC (History)
6 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2010-06-20 01:29:29 UTC
Type: ---
Embargoed:
vanmeeuwen+fedora: fedora-review?


Attachments (Terms of Use)

Description Silas Sewell 2009-04-27 00:16:45 UTC
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.

Comment 1 Jan Klepek 2009-04-29 05:51:36 UTC
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?

Comment 2 Silas Sewell 2009-04-29 06:16:54 UTC
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).

Comment 3 arthurguru 2009-05-01 05:08:04 UTC
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

Comment 4 Silas Sewell 2009-05-01 14:32:04 UTC
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,

Comment 5 Jan Klepek 2009-05-03 08:35:32 UTC
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)

Comment 6 arthurguru 2009-05-04 03:17:43 UTC
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

Comment 7 Silas Sewell 2009-05-26 07:39:34 UTC
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

Comment 8 arthurguru 2009-05-28 02:17:26 UTC
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

Comment 9 Jeroen van Meeuwen 2009-09-20 19:56:05 UTC
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.

Comment 10 Silas Sewell 2009-09-22 00:50:58 UTC
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.

Comment 11 Jan Klepek 2009-10-15 21:03:06 UTC
any progress?

Comment 12 arthurguru 2009-10-20 01:34:28 UTC
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.

Comment 13 Schlomo Schapiro 2010-02-01 19:15:26 UTC
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

Comment 14 Silas Sewell 2010-03-02 18:06:32 UTC
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

Comment 15 Schlomo Schapiro 2010-03-03 09:30:25 UTC
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

Comment 16 Silas Sewell 2010-03-03 20:01:05 UTC
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.

Comment 17 Schlomo Schapiro 2010-03-03 21:22:21 UTC
Greate! I was looking for this post and had lost it. That's a great starting point. Thanks a lot.

Comment 18 Silas Sewell 2010-06-20 01:29:29 UTC
I'm not going to pursue this further.


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