Bug 1318359 - Review Request: python-justbases - precise conversion between arbitrary bases
Summary: Review Request: python-justbases - precise conversion between arbitrary bases
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Ralph Bean
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-03-16 15:57 UTC by mulhern
Modified: 2016-03-23 13:44 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2016-03-23 13:44:44 UTC
Type: ---
Embargoed:
rbean: fedora-review+


Attachments (Terms of Use)
Diff between source tarballs (7.84 KB, text/plain)
2016-03-16 19:43 UTC, Ralph Bean
no flags Details

Description mulhern 2016-03-16 15:57:53 UTC
Spec URL: https://mulhern.fedorapeople.org/python-justbases.spec
SRPM URL: https://mulhern.fedorapeople.org/python-justbases-0.5-1.fc22.src.rpm
Description: precise conversion between arbitrary bases
Fedora Account System Username: mulhern

Copr: https://copr.fedorainfracloud.org/coprs/mulhern/justbases/build/168721/
Pipy: https://pypi.python.org/pypi/justbases

Comment 1 Ralph Bean 2016-03-16 18:43:25 UTC
I'll take on this one.

Comment 2 Gwyn Ciesla 2016-03-16 19:02:39 UTC
Package request has been approved: https://admin.fedoraproject.org/pkgdb/package/python-justbases

Comment 3 Ralph Bean 2016-03-16 19:22:17 UTC
We must have a bug somewhere.  This was never actually reviewed.  Therefore the pkgdb admin action request for a new pcakage should have failed.

Comment 4 Ralph Bean 2016-03-16 19:24:11 UTC
Filed this ticket on pkgdb to track that behavior:  https://github.com/fedora-infra/pkgdb2/issues/330

Comment 5 Ralph Bean 2016-03-16 19:42:55 UTC
Hi mulhern, I found a few issues:



- (must fix) Sources used to build the package must match the upstream source, as provided in the spec URL.  See:  http://fedoraproject.org/wiki/Packaging/SourceURL
  There's a difference between what your package claims is the upstream tarball and what was actually used to build the srpm.  The diff is attached.

- (must fix) You're going to want to add a BuildRequires on python-six and python3-six I think, otherwise it will try to pull down that package from pypi in koji (and the koji builders' network settings will disallow that).

- (must fix) The python_provide line in the python3 package has a typo.  It reads:

    %{?python_provide:%python_provide python2-%{srcname}}

  but should be:

    %{?python_provide:%python_provide python3-%{srcname}}

- (optional fix) The project seems to have a test suite included in the tarball.  If so, it would be nice to run this in a %check section in the rpm spec (to detect when things break down the road).  This is not mandatory, but definitely nice to have.



Package Review
==============

Legend:
[x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated

===== MUST items =====

Generic:
[x]: Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[x]: License field in the package spec file matches the actual license.
[x]: License file installed when any subpackage combination is installed.
[x]: Package contains no bundled libraries without FPC exception.
[x]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.
[-]: Package contains desktop file if it is a GUI application.
[-]: Development files must be in a -devel package
[x]: Package uses nothing in %doc for runtime.
[x]: Package consistently uses macros (instead of hard-coded directory
     names).
[x]: Package is named according to the Package Naming Guidelines.
[x]: Package does not generate any conflict.
[x]: Package obeys FHS, except libexecdir and /usr/target.
[-]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[x]: Requires correct, justified where necessary.
[x]: Spec file is legible and written in American English.
[-]: Package contains systemd file(s) if in need.
[x]: Package is not known to require an ExcludeArch tag.
[x]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 20480 bytes in 2 files.
[x]: Package complies to the Packaging Guidelines
[x]: Package successfully compiles and builds into binary rpms on at least
     one supported primary architecture.
[x]: Package installs properly.
[x]: Rpmlint is run on all rpms the build produces.
     Note: There are rpmlint messages (see attachment).
[x]: 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 %license.
[x]: Package requires other packages for directories it uses.
[x]: Package must own all directories that it creates.
[x]: Package does not own files or directories owned by other packages.
[x]: All build dependencies are listed in BuildRequires, except for any
     that are listed in the exceptions section of Packaging Guidelines.
[x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[x]: Macros in Summary, %description expandable at SRPM build time.
[x]: Dist tag is present.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Package use %makeinstall only when make install DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[x]: Package is not relocatable.
[x]: Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[x]: File names are valid UTF-8.
[x]: Packages must not store files under /srv, /opt or /usr/local

Python:
[!]: Python eggs must not download any dependencies during the build
     process.
     python-six may be a problem here.  Just adding it as a BuildRequires line
     should do it.
[x]: A package which is used by another package via an egg interface should
     provide egg info.
[x]: Package meets the Packaging Guidelines::Python
[x]: Package contains BR: python2-devel or python3-devel
[x]: Binary eggs must be removed in %prep

===== SHOULD items =====

Generic:
[x]: 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]: Final provides and requires are sane (see attachments).
[!]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in
     python2-justbases , python3-justbases
[x]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[-]: Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[x]: Package should compile and build into binary rpms on all supported
     architectures.
[!]: %check is present and all tests pass.
[x]: Packages should try to preserve timestamps of original installed
     files.
[x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: Sources can be downloaded from URI in Source: tag
[x]: Reviewer should test that the package builds in mock.
[x]: Buildroot is not present
[x]: Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: SourceX is a working URL.
[x]: Spec use %global instead of %define unless justified.

===== EXTRA items =====

Generic:
[x]: Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: python2-justbases-0.5-1.fc23.noarch.rpm
          python3-justbases-0.5-1.fc23.noarch.rpm
          python-justbases-0.5-1.fc23.src.rpm
python2-justbases.noarch: W: summary-ended-with-dot C A small library for precise conversion between arbitrary bases.
python3-justbases.noarch: W: summary-ended-with-dot C A small library for precise conversion between arbitrary bases.
python-justbases.src: W: summary-ended-with-dot C A small library for precise conversion between arbitrary bases.
python-justbases.src: W: file-size-mismatch justbases-0.5.tar.gz = 47230, https://pypi.python.org/packages/source/j/justbases/justbases-0.5.tar.gz = 10036
3 packages and 0 specfiles checked; 0 errors, 4 warnings.




Rpmlint (installed packages)
----------------------------
python2-justbases.noarch: W: summary-ended-with-dot C A small library for precise conversion between arbitrary bases.
python3-justbases.noarch: W: summary-ended-with-dot C A small library for precise conversion between arbitrary bases.
2 packages and 0 specfiles checked; 0 errors, 2 warnings.



Requires
--------
python2-justbases (rpmlib, GLIBC filtered):
    python(abi)
    python-six

python3-justbases (rpmlib, GLIBC filtered):
    python(abi)
    python3-six



Provides
--------
python2-justbases:
    python-justbases
    python2-justbases

python3-justbases:
    python-justbases
    python3-justbases



Source checksums
----------------
https://pypi.python.org/packages/source/j/justbases/justbases-0.5.tar.gz :
  CHECKSUM(SHA256) this package     : 1e5923288666ff286f8ed95b84c7d9ff05ef5ceef8795dafdc2d2544f9a61a6b
  CHECKSUM(SHA256) upstream package : 325720e4488ce6f7deaf67ccd9de85d812f850f93cf127868b359a95fffc25cc
diff -r also reports differences


Generated by fedora-review 0.6.0 (3c5c9d7) last change: 2015-05-20
Command line :/usr/bin/fedora-review -b 1318359
Buildroot used: fedora-23-x86_64
Active plugins: Python, Generic, Shell-api
Disabled plugins: Java, C/C++, fonts, SugarActivity, Ocaml, Perl, Haskell, R, PHP, Ruby
Disabled flags: EXARCH, DISTTAG, EPEL5, BATCH, EPEL6

Comment 6 Ralph Bean 2016-03-16 19:43:38 UTC
Created attachment 1137144 [details]
Diff between source tarballs

Comment 7 mulhern 2016-03-17 13:46:08 UTC
Thanks!

Regarding %check, I'm happier skipping it because:
1. I'm the upstream maintainer and I have good continuous integration. So, I know the package is well-tested upstream.
2. My tests use the hypothesis testing library which creates a whole database of tests in a .hypothesis subdirectory. I do not want to make the hypothesis testing library a BuildRequires, and I don't want to have to worry about the cleanup afterwards.
3. I can see having some small test, just to make sure that the install hasn't been a complete failure due to some dependency issue of some sort in %check. Donning my upstream-maintainer hat, I'll consider how to add that in future, for the convenience of packagers.

Regarding _isa:
Is it really relevant at all in this case?

Regarding python-six dependency:
I'm the co-maintainer of python-pyudev which is in the same position with six and just uses Reqires. So, this arrangement works OK.

Regarding spec file typo: Fixed.

Regarding rpm checksum: Fixed.

I uploaded fixed version to prior locations.

Comment 8 mulhern 2016-03-17 14:00:19 UTC
Whoops. Look's like I'll have to do a new upstream release.

Comment 9 mulhern 2016-03-17 15:17:41 UTC
Ok. It should be ready now.

Comment 10 Ralph Bean 2016-03-17 16:09:39 UTC
Nah, _isa isn't an issue here.  And the %check issue is fine.  I'm in the same situation with a number of packages (and fwiw, I like running them yet again in koji to catch flubs on my part, but.. your choice!)

Thanks!  I'll re-review in a moment.

Comment 11 Ralph Bean 2016-03-17 16:43:23 UTC
Package approved!  (post-facto ;p)


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