Bug 786668

Summary: Review Request: python-sqlite3dbm - SQLite-backed dictionary conforming to the dbm interface
Product: [Fedora] Fedora Reporter: Ian Weller <ian>
Component: Package ReviewAssignee: eric <eric>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: eric, notting, nsoranzo, oschreib, package-review, sdake, sgordon
Target Milestone: ---Flags: eric: fedora‑review+
limburgher: fedora‑cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: python-sqlite3dbm-0.1.4-2.fc16 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-02-17 18:50:27 EST Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Description Ian Weller 2012-02-02 00:32:47 EST
Spec URL: http://ianweller.fedorapeople.org/SRPMS/python-sqlite3dbm/0.1.4-1/python-sqlite3dbm.spec
SRPM URL: http://ianweller.fedorapeople.org/SRPMS/python-sqlite3dbm/0.1.4-1/python-sqlite3dbm-0.1.4-1.fc16.src.rpm

Description:
This module provides a SQLite-backed dictionary conforming to the dbm 
interface, along with a shelve class that wraps the dict and provides
serialization for it. 

Required for python-mwlib, needed by the Docs Project.
More information: https://fedoraproject.org/wiki/User:Ianweller/mwlib_status
Comment 1 Ofer Schreiber 2012-02-07 05:37:27 EST
I'm not a packager, so I can't be a sponsor yet.
Some comments though:
1. You're missing two BuildRequires needed for python packages:
  a. python2-devel
  b. python-setuptools-devel

2. A package shouldn't run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install. (unless you're going to support EPEL5)

3. The %python_sitelib defenition is not needed in fedora
Comment 2 Ian Weller 2012-02-07 11:31:18 EST
> I'm not a packager, so I can't be a sponsor yet.

I don't need a sponsor, just a reviewer :)

> Some comments though:
> 1. You're missing two BuildRequires needed for python packages:
>   a. python2-devel
>   b. python-setuptools-devel

Where does it say I need these? python-devel provides python2-devel, and python-setuptools provides python-setuptools-devel.

> 2. A package shouldn't run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
>      beginning of %install. (unless you're going to support EPEL5)

This is habit for me and it's in rpmdev-newspec. If you can find the rule where it says "do not do this under any circumstances" I will remove it.
 
> 3. The %python_sitelib defenition is not needed in fedora

Once again, rpmdev-newspec, please find where it says I must remove it.

If there's another problem with the package I might adjust 2 and 3 but I have no interest in bumping an RPM release to fix nothing :)
Comment 3 Steven Dake 2012-02-07 11:56:11 EST
Rationale behind python2-devel is to support python2 and python3 runtime as per Python sig rules without having to rev hundreds of python packages.

See:
http://fedoraproject.org/wiki/Packaging:Python

python_sitelib falls under the category of "uses macros properly" per the checklist (already defined in the macro definitions of fedora)

rm -rf isn't necessary but you know what your doing Ian, so your best judgement there makes sense.

Regards
-steve
Comment 4 Stephen Gordon 2012-02-07 13:29:57 EST
In addition to the previous comments about python2-devel being required this packaged also needs:

BuildRequires: python-setuptools

I couldn't get it to build in mock without this.
Comment 5 Stephen Gordon 2012-02-07 14:00:39 EST
I am not a packager, so can't approve the package, but I will have a swing at a review.

[+] Complete
[-] Incomplete
[N/A] Not Applicable

[+] MUST: rpmlint must be run on the source rpm and all binary rpms the build produces. The output should be posted in the review. rpmlint issues the following two warnings, which should be ignored in this case, on both the SRPM and RPM:

python-sqlite3dbm.src: W: spelling-error Summary(en_US) dbm -> db, dim, dam
python-sqlite3dbm.src: W: spelling-error %description -l en_US dbm -> db, dim, dam
1 packages and 0 specfiles checked; 0 errors, 2 warnings.

[+] MUST: The package must be named according to the Package Naming Guidelines.

[+] MUST: The spec file name must match the base package %{name}, in the format %{name}.spec unless your package has an exemption.

[-] MUST: The package must meet the Packaging Guidelines. Only due to other incomplete issues noted in this review.

[+] MUST: The package must be licensed with a Fedora approved license and meet the Licensing Guidelines .

[+] MUST: The License field in the package spec file must match the actual license.

[+] 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.

[+] MUST: The spec file must be written in American English.

[+] MUST: The spec file for the package MUST be legible. 

[+] MUST: The sources used to build the package must match the upstream source, as provided in the spec URL.

[-] MUST: The package MUST successfully compile and build into binary rpms on at least one primary architecture.

    Package build fails without python-setuptools. Should be in BuildRequires.

[N/A] MUST: If the package does not successfully compile, build or work on an architecture, then those architectures should be listed in the spec in ExcludeArch.

[-] MUST: All build dependencies must be listed in BuildRequires, except for any that are listed in the exceptions section of the Packaging Guidelines

    As per previous incomplete item.

[N/A] MUST: The spec file MUST handle locales properly. This is done by using the %find_lang macro. Using %{_datadir}/locale/* is strictly forbidden.

[N/A] 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.

[+] MUST: Packages must NOT bundle copies of system libraries.

[N/A] 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. 

[+] MUST: A package must own all directories that it creates. If it does not create a directory that it uses, then it should require a package which does create that directory. 

[+] MUST: A Fedora package must not list a file more than once in the spec file's %files listings. (Notable exception: license texts in specific situations)

[+] MUST: Permissions on files must be set properly. Executables should be set with executable permissions, for example.

[+] MUST: Each package must consistently use macros. 

[+] MUST: The package must contain code, or permissable content. 

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

[+] MUST: If a package includes something as %doc, it must not affect the runtime of the application. To summarize: If it is in %doc, the program must run properly if it is not present.

[N/A] MUST: Static libraries must be in a -static package.

[N/A] MUST: Development files must be in a -devel package.

[N/A] MUST: In the vast majority of cases, devel packages must require the base package using a fully versioned dependency

[N/A] MUST: Packages must NOT contain any .la libtool archives, these must be removed in the spec if they are built.

[N/A] MUST: Packages containing GUI applications must include a %{name}.desktop file, and that file must be properly installed with desktop-file-install in the %install section. 

[-] MUST: Packages must not own files or directories already owned by other packages. I could be wrong here but I feel that the glob in the %files section is to expansive. Instead of:

    %{python_sitelib}/*

I would suggest:

    %{python_sitelib}/sqlite3dbm

For example, this may prove difficult for the egg directory though, which appears to include the python version in its name.

[+] MUST: All filenames in rpm packages must be valid UTF-8.
Comment 6 Ian Weller 2012-02-07 15:04:50 EST
* Tue Feb 07 2012 Ian Weller <iweller@redhat.com> - 0.1.4-2
- Add python-setuptools to BuildRequires
- s/python-devel/python2-devel/
- Make definition of python_sitelib conditional
- Use more specific filenames in file list

Spec: http://ianweller.fedorapeople.org/SRPMS/python-sqlite3dbm/0.1.4-2/python-sqlite3dbm.spec
SRPM: http://ianweller.fedorapeople.org/SRPMS/python-sqlite3dbm/0.1.4-2/python-sqlite3dbm-0.1.4-2.fc16.src.rpm
Comment 7 eric@christensenplace.us 2012-02-07 22:51:44 EST
Package Review
==============

Key:
- = N/A
x = Pass
! = Fail
? = Not evaluated



==== Generic ====
[x]: MUST Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[x]: MUST Package successfully compiles and builds into binary rpms on at
     least one supported primary architecture.
[x]: MUST All build dependencies are listed in BuildRequires, except for any
     that are listed in the exceptions section of Packaging Guidelines.
[x]: MUST Buildroot is not present
     Note: Unless packager wants to package for EPEL5 this is fine
[x]: MUST Package contains no bundled libraries.
[x]: MUST Changelog in prescribed format.
[x]: MUST Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
     Note: Clean would be needed if support for EPEL is required
[x]: MUST Sources contain only permissible code or content.
[x]: MUST Each %files section contains %defattr if rpm < 4.4
     Note: Note: defattr macros not found. They would be needed for EPEL5
[x]: MUST Macros in Summary, %description expandable at SRPM build time.
[x]: MUST Package requires other packages for directories it uses.
[x]: MUST Package uses nothing in %doc for runtime.
[x]: MUST Package is not known to require ExcludeArch.
[x]: MUST Permissions on files are set properly.
[x]: MUST Package does not contain duplicates in %files.
[x]: MUST Spec file lacks Packager, Vendor, PreReq tags.
[-]: MUST Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
     Note: rm -rf is only needed if supporting EPEL5
[x]: 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 is included in %doc.
[x]: MUST License field in the package spec file matches the actual license.
[x]: MUST Package consistently uses macros (instead of hard-coded directory
     names).
[x]: MUST Package meets the Packaging Guidelines.
[x]: MUST Package is named according to the Package Naming Guidelines.
[x]: MUST Package does not generates any conflict.
[x]: MUST Package obeys FHS, except libexecdir and /usr/target.
[x]: MUST Package must own all directories that it creates.
[x]: MUST Package does not own files or directories owned by other packages.
[x]: MUST Package installs properly.
[x]: MUST Requires correct, justified where necessary.
[x]: MUST Rpmlint output is silent.

rpmlint python-sqlite3dbm-0.1.4-2.fc17.src.rpm

python-sqlite3dbm.src: W: spelling-error Summary(en_US) dbm -> db, dim, dam
python-sqlite3dbm.src: W: spelling-error %description -l en_US dbm -> db, dim, dam
1 packages and 0 specfiles checked; 0 errors, 2 warnings.


rpmlint python-sqlite3dbm-0.1.4-2.fc17.noarch.rpm

python-sqlite3dbm.noarch: W: spelling-error Summary(en_US) dbm -> db, dim, dam
python-sqlite3dbm.noarch: W: spelling-error %description -l en_US dbm -> db, dim, dam
1 packages and 0 specfiles checked; 0 errors, 2 warnings.


[x]: MUST Sources used to build the package match the upstream source, as
     provided in the spec URL.
  ~/786668/sqlite3dbm-0.1.4.tar.gz :
  MD5SUM this package     : fc2f8fb09a4bbc0260b97e835b369184
  MD5SUM upstream package : fc2f8fb09a4bbc0260b97e835b369184

[x]: MUST Spec file is legible and written in American English.
[x]: MUST Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[-]: MUST Package contains a SysV-style init script if in need of one.
[x]: MUST File names are valid UTF-8.
[x]: SHOULD Reviewer should test that the package builds in mock.
[x]: SHOULD If the source package does not include license text(s) as a
     separate file from upstream, the packager SHOULD query upstream to
     include it.
[x]: SHOULD Dist tag is present.
[x]: SHOULD No file requires outside of /etc, /bin, /sbin, /usr/bin,
     /usr/sbin.
[x]: SHOULD Final provides and requires are sane (rpm -q --provides and rpm -q
     --requires).
[x]: SHOULD Package functions as described.
[x]: SHOULD Package does not include license text files separate from
     upstream.
[x]: SHOULD SourceX is a working URL.
[!]: SHOULD Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[-]: SHOULD Package should compile and build into binary rpms on all supported
     architectures.
[-]: SHOULD %check is present and all tests pass.
[-]: SHOULD Packages should try to preserve timestamps of original installed
     files.
[x]: SHOULD Spec use %global instead of %define.

Generated by fedora-review 0.1.2
External plugins:

APPROVED
Comment 8 Ian Weller 2012-02-07 23:52:37 EST
(Don't know if f17 is a valid branch or not yet.)

New Package SCM Request
=======================
Package Name: python-sqlite3dbm
Short Description: SQLite-backed dictionary conforming to the dbm interface
Owners: ianweller
Branches: f16 f17
InitialCC:
Comment 9 Jon Ciesla 2012-02-08 08:18:15 EST
Git done (by process-git-requests).
Comment 10 Fedora Update System 2012-02-08 14:19:58 EST
python-sqlite3dbm-0.1.4-2.fc16 has been submitted as an update for Fedora 16.
https://admin.fedoraproject.org/updates/python-sqlite3dbm-0.1.4-2.fc16
Comment 11 Fedora Update System 2012-02-09 19:55:26 EST
python-sqlite3dbm-0.1.4-2.fc16 has been pushed to the Fedora 16 testing repository.
Comment 12 Fedora Update System 2012-02-17 18:50:27 EST
python-sqlite3dbm-0.1.4-2.fc16 has been pushed to the Fedora 16 stable repository.