Bug 290081

Summary: Review Request: bodhi - A modular web-system that facilitates the process of publishing updates for a Fedora-based software distribution
Product: [Fedora] Fedora Reporter: Luke Macken <lmacken>
Component: Package ReviewAssignee: Tim Lauridsen <tim.lauridsen>
Status: CLOSED NEXTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: a.badger, fedora-package-review, notting, pfrields, tim.lauridsen
Target Milestone: ---Flags: tim.lauridsen: fedora-review+
kevin: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2007-10-21 23:03:07 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:

Description Luke Macken 2007-09-13 21:27:28 UTC
Spec URL: http://lmacken.fedorapeople.org/rpms/bodhi.spec
SRPM URL: http://lmacken.fedorapeople.org/rpms/bodhi-0.2.0-1.fc7.src.rpm
Description:
Bodhi is a modular web system that facilitates the process of publishing
updates for a software distribution.

Comment 1 Luke Macken 2007-09-14 00:30:39 UTC
Note: the client is not fully functional with the current server deployment.

Comment 2 Tim Lauridsen 2007-09-14 08:31:33 UTC
Luke:
You should add this to the spec file

%if 0%{?fedora} >= 8
BuildRequires: python-setuptools-devel
%else
BuildRequires: python-setuptools
%endif

to make it work F8 and later too.


Comment 3 Tim Lauridsen 2007-09-14 08:47:56 UTC
$ rpmlint ~/rpmbuild/RPMS/noarch/bodhi-server-0.2.0-1.fc7.noarch.rpm 

bodhi-server.noarch: E: non-executable-script
/usr/lib/python2.5/site-packages/bodhi/tools/bodhi-client.py 0644
bodhi-server.noarch: E: non-executable-script
/usr/lib/python2.5/site-packages/bodhi/tests/test_cli.py 0644
bodhi-server.noarch: E: non-executable-script
/usr/lib/python2.5/site-packages/bodhi/tools/dev_init.py 0644
bodhi-server.noarch: E: non-executable-script
/usr/lib/python2.5/site-packages/bodhi/tools/test-bodhi.py 0644
bodhi-server.noarch: E: non-executable-script
/usr/lib/python2.5/site-packages/bodhi/tools/init.py 0644
bodhi-server.noarch: W: non-executable-in-bin /usr/bin/start-bodhi.pyo 0644
bodhi-server.noarch: W: non-executable-in-bin /usr/bin/start-bodhi.pyc 0644
bodhi-server.noarch: E: non-executable-script
/usr/lib/python2.5/site-packages/bodhi/modifyrepo.py 0644
bodhi-server.noarch: E: non-executable-script
/usr/lib/python2.5/site-packages/bodhi/tools/pickledb.py 0644

look like it needs a little chmod magic to silence rpmlint

Comment 4 Tim Lauridsen 2007-09-14 09:01:39 UTC
$ rpmlint ~/rpmbuild/RPMS/noarch/bodhi-client-0.2.0-1.fc7.noarch.rpm 
bodhi-client.noarch: W: no-documentation

maybe the should be a README or something in the client package too.

Is it on purpose that the license is GPLv2 (GPL2 only) and not GPLv2+ (GPL2 or
later), the later is easier to work with.

what about a COPYING gpl file ??? (shouldn't there be one in a GPL package ???)




Comment 5 Tim Lauridsen 2007-09-14 09:19:05 UTC
you should use 'Requires: yum-utils >= 1.1.7' in the server package
because you are using 'repoquery --repofrompath=' this is first available in
yum-utils-1.1.7.

Comment 6 Tim Lauridsen 2007-09-14 09:50:36 UTC
MUST:
* package is named appropriately
* it is legal for Fedora to distribute this
* license field matches the actual license.
* license is open source-compatible.
* specfile name matches %{name}
? verify source and patches (md5sum matches upstream, know what the patches do)
    No upstream tarball to match, SRPM is upstream source.
? summary and description fine
    Maybe copy the main summary + description to the server package because
because no binary bodhi packages is build, so the description ends up 
    nowhere rpm -qi bodhi-server will not show much info.
* correct buildroot
* %{?dist} is used
X license text included in package and marked with %doc
* package meets FHS (http://www.pathname.com/fhs/)
* changelog format fine 
* Packager tag not used
* Vendor tag not used
* Distribution tag not used
* License used and not Copyright 
* Summary tag does not end in a period
* specfile is legible
* package successfully compiles and builds on at least x86
? BuildRequires are proper
  See earlier comment.
* make sure lines are <= 80 characters
* specfile written in American English
* no -doc sub-package necessary
* no libraries
* no rpath
* no config files
* not a GUI app
* no -devel sub-package necessary
* macros used appropriately and consistently
* no %makeinstall
* install section must begin with rm -rf $RPM_BUILD_ROOT or %{buildroot}
* no locale data
* no cp usage so no need to worry about -p
* split Requires(pre,post) into two separate lines
* package not relocatable
* package contains code
* package owns all directories and files
* no %files duplicates
? file permissions fine
  See earlier comments.
* %defattrs present ( %defattr(-, root, root, -))
* %clean present
* %doc files do not affect runtime
* verify the final provides and requires of the binary RPMs
    $ rpm -q -R -p rpmbuild/RPMS/noarch/bodhi-client-0.2.0-1.fc7.noarch.rpm 
    /usr/bin/python  
    rpmlib(CompressedFileNames) <= 3.0.4-1
    rpmlib(PayloadFilesHavePrefix) <= 4.0-1

    $ rpm -q -R -p rpmbuild/RPMS/noarch/bodhi-server-0.2.0-1.fc7.noarch.rpm 
    /usr/bin/python  
    TurboGears  
    createrepo  
    intltool  
    mash  
    python(abi) = 2.5
    python-TurboMail  
    rpmlib(CompressedFileNames) <= 3.0.4-1
    rpmlib(PayloadFilesHavePrefix) <= 4.0-1
    yum-utils  

    $ rpm -q --provides -p rpmbuild/RPMS/noarch/bodhi-client-0.2.0-1.fc7.noarch.rpm 
    bodhi-client = 0.2.0-1.fc7
    
    $ rpm -q --provides -p rpmbuild/RPMS/noarch/bodhi-server-0.2.0-1.fc7.noarch.rpm 
    bodhi-server = 0.2.0-1.fc7

* run rpmlint on the binary RPMs
 - see previous bug comments

SHOULD:
x package should include license text in the package and mark it with %doc
* package should build on i386
? package should build in mock
 - I haven't tried, but I don't think it'll be a problem
 

Comment 7 Tim Lauridsen 2007-09-14 11:21:54 UTC
when installing the bodhi-server packages everything goes into
?python_sitelib/bodhi is this the right way to do it ??
the bodhi/static should go into /usr/share/bodhi/static
and bodhi/config should go into /etc/bodhi ( and maybe add some example cfg files)
start-bodhi dev.cfg, should start bodhi and look for dev.cfg in /etc/bodhi/,
~/.bodhi/ or in current dir.

the bodhi/tests should be exclude in the server package, unit tests don't make
much sense in the binary packages (IMHO).

the bodhi tools should goto the /usr/share/bodhi or be excluded from the server
package is not needed.

Comment 8 Toshio Ernie Kuratomi 2007-10-16 17:47:53 UTC
You might want to look at these pages:

  https://fedoraproject.org/wiki/PackagingDrafts/TGApps
  http://www.advogato.org/person/badger/diary/46.html

They're non-binding at this point..  Just some things that I thought about and
arrived at when packaging the pkgdb.

Comment 9 Tim Lauridsen 2007-10-17 06:21:28 UTC
(In reply to comment #8)
> You might want to look at these pages:
> 
>   https://fedoraproject.org/wiki/PackagingDrafts/TGApps
>   http://www.advogato.org/person/badger/diary/46.html
> 
> They're non-binding at this point..  Just some things that I thought about and
> arrived at when packaging the pkgdb.

Looks very good to me, it makes it looks much better than all the code located
under python site libs.

Comment 10 Luke Macken 2007-10-17 19:50:03 UTC
http://lmacken.fedorapeople.org/rpms/bodhi-0.3.2-1.fc8.src.rpm
http://lmacken.fedorapeople.org/rpms/bodhi.spec

• Added COPYING file
• bodhi-server now installs to /usr/share/bodhi
• configuration lives in /etc/bodhi.cfg
• unittests are no longer included
• Requires: yum-utils  >= 1.1.7

Comment 11 Tim Lauridsen 2007-10-18 09:10:29 UTC
X. Could not rebuild the srpm on a system without TurboGear installed (used by
setup.py) so TurboGear should be a BuildRequires.

X. Rpmlint is not silent

rpmbuild/RPMS/noarch/bodhi-server-0.3.2-1.fc8.noarch.rpm
TurboGearrpmbuild/RPMS/noarch/bodhi-server-0.3.2-1.fc8.noarch.rpm 

[tim@localhost ~]$ rpmlint rpmbuild/RPMS/noarch/bodhi-server-0.3.2-1.fc8.noarch.rpm 
bodhi-server.noarch: E: non-executable-script
/usr/share/bodhi/bodhi/tools/dev_init.py 0644
bodhi-server.noarch: E: non-executable-script
/usr/share/bodhi/bodhi/tools/test-bodhi.py 0644
bodhi-server.noarch: E: non-executable-script
/usr/share/bodhi/bodhi/tools/pickledb.py 0644
bodhi-server.noarch: E: non-executable-script
/usr/share/bodhi/bodhi/tools/bodhi-client.py 0644
bodhi-server.noarch: E: non-executable-script
/usr/share/bodhi/bodhi/tools/init.py 0644

can be fixed by adding
chmod +x $RPM_BUILD_ROOT/%{_datadir}/%{name}/bodhi/tools/*.py
to %install

* rpmlint silent on SRPM & bodhi-client.

If these issues are fixed, i will approve it.



Comment 12 Luke Macken 2007-10-18 17:32:01 UTC
http://lmacken.fedorapeople.org/rpms/bodhi-0.3.2-2.fc8.src.rpm
http://lmacken.fedorapeople.org/rpms/bodhi.spec

* Thu Oct 18 2007 Luke Macken <lmacken> - 0.3.2-2
- Add TurboGears to BuildRequires
- Make some scripts executable to silence rpmlint

Comment 13 Tim Lauridsen 2007-10-19 05:14:21 UTC
Looks good.

* rpmlint silent

APPROVED.


Comment 14 Luke Macken 2007-10-19 15:28:34 UTC
New Package CVS Request
=======================
Package Name: bodhi
Short Description: A modular framework that facilitates publishing software updates
Owners: lmacken
Branches: EL-5 FC-6 F-7 F-8
InitialCC: toshio, timlau
Cvsextras Commits: yes

Comment 15 Kevin Fenzi 2007-10-21 17:29:23 UTC
cvs done.

Comment 16 Luke Macken 2007-10-21 23:03:07 UTC
Imported into cvs.  I'm going to do some testing and make sure the client
actually works with our production instance before I build.

Thanks!