Bug 1130097 - Review Request: python-cjson - Fast JSON encoder/decoder for Python
Summary: Review Request: python-cjson - Fast JSON encoder/decoder for Python
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Christopher Meng
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: 1130103
TreeView+ depends on / blocked
 
Reported: 2014-08-14 10:31 UTC by Pavel Alexeev
Modified: 2015-03-12 16:35 UTC (History)
4 users (show)

Fixed In Version: python-cjson-1.1.0-5.fc20
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2015-03-10 16:04:15 UTC
Type: ---
Embargoed:
i: fedora-review+
gwync: fedora-cvs+


Attachments (Terms of Use)

Description Pavel Alexeev 2014-08-14 10:31:49 UTC
Spec URL: https://raw.githubusercontent.com/Hubbitus/Fedora-packaging/master/SPECS/python-cjson.spec
SRPM URL: http://hubbitus.info/rpm/Fedora20/python-cjson/python-cjson-1.1.0-1.fc20.src.rpm
Description: This module implements a very fast JSON encoder/decoder for Python.

JSON stands for JavaScript Object Notation and is a text based lightweight
data exchange format which is easy for humans to read/write and for machines
to parse/generate. JSON is completely language independent and has multiple
implementations in most of the programming languages, making it ideal for
data exchange and storage.

The module is written in C and it is up to 250 times faster when compared to
the other python JSON implementations which are written directly in python.
This speed gain varies with the complexity of the data and the operation and
is the the range of 10-200 times for encoding operations and in the range of
100-250 times for decoding operations.
Fedora Account System Username: Hubbitus

Comment 2 Pavel Alexeev 2014-08-18 16:10:45 UTC
(In reply to Christopher Meng from comment #1)
> https://fedoraproject.org/wiki/Packaging:Python#BuildRequires
Hm. Thanks to pointing. Unfortunately I do not very familiar with python. How I could determine for what python version package supposed for? Official page https://pypi.python.org/pypi/python-cjson does not clear it for me. I've built blink with all its dependencies on my Fedora 20 box without explicit version set. If I understand correctly there 2.7 version is default. So I must use BuildRequires: python2-devel in my spec. Right?

Comment 3 Christopher Meng 2014-08-19 06:29:36 UTC
(In reply to Pavel Alexeev (aka Pahan-Hubbitus) from comment #2)
> (In reply to Christopher Meng from comment #1)
> > https://fedoraproject.org/wiki/Packaging:Python#BuildRequires
> Hm. Thanks to pointing. Unfortunately I do not very familiar with python.
> How I could determine for what python version package supposed for? 

Hmm...Basically you can try python2, if you have time, use python3 template and try a build. The best solution is to ask upstream directly, or based on daily usage.

Drop %{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}.

Comment 5 Christopher Meng 2014-08-20 02:44:09 UTC
Package Review
==============

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



Issues:
=======
- Permissions on files are set properly.
  Note: See rpmlint output
  See: http://fedoraproject.org/wiki/Packaging/Guidelines#FilePermissions
- Package do not use a name that already exist
  Note: A package already exist with this name, please check
  https://admin.fedoraproject.org/pkgdb/acls/name/python-cjson
  See:
  https://fedoraproject.org/wiki/Packaging/NamingGuidelines#Conflicting_Package_Names


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

C/C++:
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[-]: Development (unversioned) .so files in -devel subpackage, if present.
     Note: Unversioned so-files in private %_libdir subdirectory (see
     attachment). Verify they are not in ld path.
[x]: Package does not contain any libtool archives (.la)
[x]: Rpath absent or only used for internal libs.

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]: 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]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses found:
     "LGPL (v2.1 or later) (with incorrect FSF address)", "Unknown or
     generated". 2 files have unknown license. Detailed output of licensecheck:

LGPL (v2.1 or later) (with incorrect FSF address)
-------------------------------------------------
python-cjson-1.1.0/jsontest.py

Unknown or generated
--------------------
python-cjson-1.1.0/cjson.c
python-cjson-1.1.0/setup.py

[x]: %build honors applicable compiler flags or justifies otherwise.
[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]: Useful -debuginfo package or justification otherwise.
[x]: Package is not known to require an ExcludeArch tag.
[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]: 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]: Package does not contain duplicates in %files.
[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]: Sources used to build the package match the upstream source, as provided
     in the spec URL.
[x]: Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[x]: File names are valid UTF-8.
[x]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 0 bytes in 0 files.
[x]: Packages must not store files under /srv, /opt or /usr/local

Python:
[-]: Python eggs must not download any dependencies during the build process.
[-]: 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).
[x]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[x]: 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]: Dist tag is present (not strictly required in GL).
[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]: Large data in /usr/share should live in a noarch subpackage if package is
     arched.


Rpmlint
-------
Checking: python-cjson-1.1.0-2.fc22.i686.rpm
          python-cjson-1.1.0-2.fc22.src.rpm
python-cjson.i686: W: no-documentation
python-cjson.i686: E: non-standard-executable-perm /usr/lib/python2.7/site-packages/cjson.so 0775L
2 packages and 0 specfiles checked; 1 errors, 1 warnings.




Rpmlint (installed packages)
----------------------------
# rpmlint python-cjson
python-cjson.i686: W: no-documentation
python-cjson.i686: E: non-standard-executable-perm /usr/lib/python2.7/site-packages/cjson.so 0775L
1 packages and 0 specfiles checked; 1 errors, 1 warnings.
# echo 'rpmlint-done:'



Requires
--------
python-cjson (rpmlib, GLIBC filtered):
    libc.so.6
    libpthread.so.0
    libpython2.7.so.1.0
    python(abi)
    rtld(GNU_HASH)



Provides
--------
python-cjson:
    python-cjson
    python-cjson(x86-32)



Unversioned so-files
--------------------
python-cjson: /usr/lib/python2.7/site-packages/cjson.so

Source checksums
----------------
https://pypi.python.org/packages/source/p/python-cjson/python-cjson-1.1.0.tar.gz :
  CHECKSUM(SHA256) this package     : a01fabb7593728c3d851e1cd9a3efbd18f72650a31a5aa8a74018640da3de8b3
  CHECKSUM(SHA256) upstream package : a01fabb7593728c3d851e1cd9a3efbd18f72650a31a5aa8a74018640da3de8b3


Generated by fedora-review 0.5.2 (63c24cb) last change: 2014-07-14
Command line :/usr/bin/fedora-review -rvn python-cjson-1.1.0-2.fc20.src.rpm
Buildroot used: fedora-rawhide-i386
Active plugins: Python, Generic, Shell-api, C/C++
Disabled plugins: Java, SugarActivity, fonts, Haskell, Ocaml, Perl, R, PHP, Ruby
Disabled flags: EXARCH, EPEL5, BATCH, DISTTAG

--------------------------------------
Is it possible to run the test in %check for you?

Comment 6 Pavel Alexeev 2014-08-25 18:28:14 UTC
(In reply to Christopher Meng from comment #5)

> Issues:
> =======
> - Permissions on files are set properly.
>   Note: See rpmlint output
>   See: http://fedoraproject.org/wiki/Packaging/Guidelines#FilePermissions
Sorry, I don't see such warning on my Fedora 20 box nor Rawhide test. What rpmlint version are you use?
And what permissions on that file you think should be?
> - Package do not use a name that already exist
>   Note: A package already exist with this name, please check
>   https://admin.fedoraproject.org/pkgdb/acls/name/python-cjson
This is not collision name. It is the same package which is retired for devel and Fedora 20. And it happened Tue Oct 1 10:05:41 2013 +0200 so re-review needed. It also orphaned in EPEL 5,6.
So I think there should not be a problem if I became its maintainer.


> --------------------------------------
> Is it possible to run the test in %check for you?
Sure.

https://github.com/Hubbitus/Fedora-packaging/commit/9df7e97593d3290afc2af397ad788b622a4410ce
https://raw.githubusercontent.com/Hubbitus/Fedora-packaging/9df7e97593d3290afc2af397ad788b622a4410ce/SPECS/python-cjson.spec
http://hubbitus.info/rpm/Fedora20/python-cjson/python-cjson-1.1.0-3.fc20.src.rpm

Comment 7 Christopher Meng 2014-08-28 01:41:03 UTC
(In reply to Pavel Alexeev (aka Pahan-Hubbitus) from comment #6)
> > Issues:
> > =======
> > - Permissions on files are set properly.
> >   Note: See rpmlint output
> >   See: http://fedoraproject.org/wiki/Packaging/Guidelines#FilePermissions
> Sorry, I don't see such warning on my Fedora 20 box nor Rawhide test. What
> rpmlint version are you use?

I've seen this for many times _on my computer_, sigh... I'm confused as well. You can ignore this.

> > - Package do not use a name that already exist
> >   Note: A package already exist with this name, please check
> >   https://admin.fedoraproject.org/pkgdb/acls/name/python-cjson
> This is not collision name. It is the same package which is retired for
> devel and Fedora 20. And it happened Tue Oct 1 10:05:41 2013 +0200 so
> re-review needed. It also orphaned in EPEL 5,6.
> So I think there should not be a problem if I became its maintainer.

I know this ;) Don't be worried.

====================

1. %doc is empty, you should include changelog and license file.

2. https://fedoraproject.org/wiki/Packaging:Python#Macros

Comment 9 Christopher Meng 2014-09-04 22:03:28 UTC
Argh.......

%{python_sitearch}/*

->

%{python2_sitearch}/*

I've mentioned it several times.

Comment 11 Pavel Alexeev 2014-09-08 08:21:27 UTC
Christopher thank you very much for the review. Could I do some for you?

Package Change Request
======================
Package Name: python-cjson
New Branches: f20 f21 el6 узуд7
Owners: Hubbitus


As it discussed early package already exists in Fedora, but retired for master and а20 branches and orphaned for el5 and el6. Epel7 does not exists as I se. So I would became new maintainer and resurrect it with new version.

Comment 12 Gwyn Ciesla 2014-09-08 12:01:26 UTC
I changed ownership, but our script cannot parse узуд7, which in any case is not a valid branch, please resubmit with epel7.

Comment 13 Pavel Alexeev 2014-09-08 13:04:40 UTC
Big sorry for my second mistake today.

Package Change Request
======================
Package Name: python-cjson
New Branches: epel7
Owners: hubbitus

Comment 14 Gwyn Ciesla 2014-09-08 13:10:49 UTC
Git done (by process-git-requests).

Comment 15 Pavel Alexeev 2014-09-08 19:31:07 UTC
I've got: BuildError: package python-cjson is blocked for tag f22

Is there something wrong with SCM processing?

Comment 16 Gwyn Ciesla 2014-09-08 19:45:31 UTC
No, but it takes time for it to be automatically unblocked in rawhide, if it doesn't occur in the next hour or so follow up with rel-eng.

Comment 17 Pavel Alexeev 2014-10-23 18:25:21 UTC
Rel-eng ticket: https://fedorahosted.org/rel-eng/ticket/6021

Comment 18 Till Maas 2014-10-23 21:08:19 UTC
(In reply to Jon Ciesla from comment #16)
> No, but it takes time for it to be automatically unblocked in rawhide, if it
> doesn't occur in the next hour or so follow up with rel-eng.

There is no automation for unblocking retired packages, but it will be made automatically when the branch request processing will be moved to PKGDB after F21 was released.

Comment 19 Pavel Alexeev 2014-10-24 14:47:56 UTC
Package Change Request
======================
Package Name: python-cjson
New Branches: f21
Owners: hubbitus

Comment 20 Gwyn Ciesla 2014-10-24 14:57:00 UTC
Git done (by process-git-requests).

Comment 21 Fedora Update System 2014-10-24 15:01:29 UTC
python-cjson-1.1.0-5.el7 has been submitted as an update for Fedora EPEL 7.
https://admin.fedoraproject.org/updates/python-cjson-1.1.0-5.el7

Comment 22 Pavel Alexeev 2014-10-24 15:06:24 UTC
Thank you very much.

Comment 23 Fedora Update System 2014-10-24 15:13:59 UTC
python-cjson-1.1.0-5.fc21 has been submitted as an update for Fedora 21.
https://admin.fedoraproject.org/updates/python-cjson-1.1.0-5.fc21

Comment 24 Fedora Update System 2014-10-24 16:54:44 UTC
python-cjson-1.1.0-5.fc20 has been submitted as an update for Fedora 20.
https://admin.fedoraproject.org/updates/python-cjson-1.1.0-5.fc20

Comment 25 Fedora Update System 2014-10-27 08:19:02 UTC
python-cjson-1.1.0-5.fc21 has been pushed to the Fedora 21 testing repository.

Comment 26 Christopher Meng 2015-02-05 11:16:28 UTC
Time to push it to stable?

Comment 27 Pavel Alexeev 2015-03-09 17:38:05 UTC
Sorry for the delay. Has been pushed.

Comment 28 Fedora Update System 2015-03-10 16:04:15 UTC
python-cjson-1.1.0-5.el7 has been pushed to the Fedora EPEL 7 stable repository.

Comment 29 Fedora Update System 2015-03-12 16:33:17 UTC
python-cjson-1.1.0-5.fc21 has been pushed to the Fedora 21 stable repository.

Comment 30 Fedora Update System 2015-03-12 16:35:16 UTC
python-cjson-1.1.0-5.fc20 has been pushed to the Fedora 20 stable repository.


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