[Bug 1123044] Review Request: pyrax - A Rackspace/Openstack client library

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



https://bugzilla.redhat.com/show_bug.cgi?id=1123044

Garrett Holmstrom <gholms@xxxxxxxxxxxxxxxxx> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
                 CC|                            |gholms@xxxxxxxxxxxxxxxxx
           Assignee|nobody@xxxxxxxxxxxxxxxxx    |gholms@xxxxxxxxxxxxxxxxx
              Flags|                            |fedora-review?



--- Comment #3 from Garrett Holmstrom <gholms@xxxxxxxxxxxxxxxxx> ---
Most everything looks sane here.  The package just needs updating to address a
few complaints from rpmlint and changes in packaging guidelines over the past
few years.  I am also concerned about licensing for a bit of copypasted code
that the software includes in utils.py, so perhaps we should bug legal about it
to be sure that it is okay.

Please fix:
 - Non-executable scripts (I would remove the #! lines from the top of
   python modules.)
 - Licensing:  utils.py contains BSD code with no accompanying header, but
   the author appears to have not published said header.  We might need to
   check with the legal team on this.
 - Add commentary that explains how to construct the tarball for your git
   snapshot.
 - Add BuildRequires: python2-devel.
 - Prepend "0." to the Release field.
   http://fedoraproject.org/wiki/Packaging:NamingGuidelines#Snapshot_packages
 - Use %global to set %python_sitelib, not %define.
 - Use python2 instead of %{__python}.
 - Use %{python2_sitelib} instead of %{python_sitelib}.

The wiki has boilerplate for the latter three here:
http://fedoraproject.org/wiki/Packaging:Python#Macros

I also suggest:
 - Add a version to Provides: pyrax

The nitty-gritty details follow.

Mandatory review guidelines:
NO - rpmlint output:
     python-pyrax.noarch: E: explicit-lib-dependency python-httplib2
     python-pyrax.noarch: E: non-executable-script
/usr/lib/python2.7/site-packages/pyrax/version.py 0644L /usr/bin/env
     python-pyrax.noarch: E: non-executable-script
/usr/lib/python2.7/site-packages/pyrax/queueing.py 0644L /usr/bin/env
     python-pyrax.noarch: E: non-executable-script
/usr/lib/python2.7/site-packages/pyrax/identity/keystone_identity.py 0644L
/usr/bin/env
     python-pyrax.noarch: E: non-executable-script
/usr/lib/python2.7/site-packages/pyrax/base_identity.py 0644L /usr/bin/env
     python-pyrax.noarch: E: non-executable-script
/usr/lib/python2.7/site-packages/pyrax/cloudblockstorage.py 0644L /usr/bin/env
     python-pyrax.noarch: E: non-executable-script
/usr/lib/python2.7/site-packages/pyrax/utils.py 0644L /usr/bin/env
     python-pyrax.noarch: E: non-executable-script
/usr/lib/python2.7/site-packages/pyrax/exceptions.py 0644L /usr/bin/env
     python-pyrax.noarch: E: non-executable-script
/usr/lib/python2.7/site-packages/pyrax/cloudloadbalancers.py 0644L /usr/bin/env
     python-pyrax.noarch: E: non-executable-script
/usr/lib/python2.7/site-packages/pyrax/autoscale.py 0644L /usr/bin/env
     python-pyrax.noarch: E: non-executable-script
/usr/lib/python2.7/site-packages/pyrax/fakes.py 0644L /usr/bin/env
     python-pyrax.noarch: E: non-executable-script
/usr/lib/python2.7/site-packages/pyrax/object_storage.py 0644L /usr/bin/env
     python-pyrax.noarch: E: non-executable-script
/usr/lib/python2.7/site-packages/pyrax/clouddns.py 0644L /usr/bin/env
     python-pyrax.noarch: E: non-executable-script
/usr/lib/python2.7/site-packages/pyrax/identity/__init__.py 0644L /usr/bin/env
     python-pyrax.noarch: E: non-executable-script
/usr/lib/python2.7/site-packages/pyrax/cloudnetworks.py 0644L /usr/bin/env
     python-pyrax.noarch: E: non-executable-script
/usr/lib/python2.7/site-packages/pyrax/identity/rax_identity.py 0644L
/usr/bin/env
     python-pyrax.noarch: E: non-executable-script
/usr/lib/python2.7/site-packages/pyrax/image.py 0644L /usr/bin/env
     python-pyrax.noarch: E: non-executable-script
/usr/lib/python2.7/site-packages/pyrax/client.py 0644L /usr/bin/env
     python-pyrax.noarch: E: non-executable-script
/usr/lib/python2.7/site-packages/pyrax/__init__.py 0644L /usr/bin/env
     python-pyrax.noarch: E: non-executable-script
/usr/lib/python2.7/site-packages/pyrax/clouddatabases.py 0644L /usr/bin/env
     python-pyrax.noarch: E: non-executable-script
/usr/lib/python2.7/site-packages/pyrax/cloudmonitoring.py 0644L /usr/bin/env
     python-pyrax.src: W: spelling-error %description -l en_US cloudfiles ->
cloud files, cloud-files, cloudless
     python-pyrax.src:14: W: unversioned-explicit-provides pyrax
     python-pyrax.src: W: file-size-mismatch pyrax-1.9.0.tar.gz = 310594,
http://imcleod.fedorapeople.org/src/pyrax/pyrax-1.9.0.tar.gz = 310590
     2 packages and 0 specfiles checked; 21 errors, 3 warnings.
ok - License is acceptable (ASL 2.0)
NO - License field in spec is correct
     utils.py includes third party BSD code without its corresponding notice.
     Original source contains no such notice; need to check with legal as to
     acceptability.
ok - License files included in package %docs if included in source package
     Note that a guideline change to use the %license macro is pending:
     https://fedorahosted.org/fpc/ticket/411
ok - License files installed when any subpackage combination is installed
ok - Spec written in American English
ok - Spec is legible
NO - Sources match upstream unless altered to fix permissibility issues
     This is a git snapshot.  Please include commentary that instructs one on
     how to construct the source tarball.
ok - Build succeeds on at least one primary arch
ok - Build succeeds on all primary arches or has ExcludeArch + justification
NO - BuildRequires correct, justified where necessary
     Need to add BuildRequires: python2-devel
-- - Locales handled with %find_lang, not %_datadir/locale/*
-- - %post, %postun call ldconfig if package contains shared .so files
ok - No bundled libs
-- - Relocatability is justified
ok - Package owns all directories it creates
ok - Package requires others for directories it uses but does not own
ok - No duplication in %files unless necessary for license files
ok - File permissions are sane
ok - Package contains permissible code or content
-- - Large docs go in -doc subpackage
ok - %doc files not required at runtime
-- - Static libs go in -static package/virtual Provides
-- - Development files go in -devel package
-- - -devel packages Require base with fully-versioned dependency, %_isa
-- - No .la files
-- - GUI app uses .desktop file, installs it with desktop-file-install
ok - File list does not conflict with other packages' without justification
ok - File names are valid UTF-8

Optional review guidelines:
-- - Query upstream about including license files
no - Translations of description, summary
ok - Builds in mock
ok - Builds on all arches
-- - Scriptlets are sane
-- - Subpackages require base with fully-versioned dependency if sensible
-- - .pc file subpackage placement is sensible
ok - No file deps outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin
-- - Include man pages if available

Naming guidelines:
ok - Package names use only a-zA-Z0-9-._+ subject to restrictions on -._+
ok - Package names are sane
ok - No naming conflicts
ok - Spec file name matches base package name
     "python" prefix mandated by python guidelines
ok - Version is sane
ok - Version does not contain ~
NO - Release is sane
     Pre-release snapshots must begin with "0."
ok - %dist tag
ok - Case used only when necessary
ok - Package names follow applicable language/addon rules

Packaging guidelines:
ok - Useful without external bits
ok - No kmods
ok - Pre-built binaries, libs removed in %prep
ok - Sources contain only redistributable code or content
ok - Spec format is sane
-- - noarch package with unported deps has correct ExclusiveArch
-- - Arch-specific sources/patches are applied, not included, conditionally
ok - Package obeys FHS, except libexecdir, /run, /usr/target
-- - %{_prefix}/lib only used for multilib-exempt packages
-- - Programs run before FS mounting use /run instead of /var/run
ok - No files under /srv, /opt, /usr/local
ok - Changelog in prescribed format
ok - No Packager, Vendor, Copyright, PreReq tags
ok - Summary does not end in a period
ok - Requires correct, justified where necessary
ok - BuildRequires lack %{_isa}
ok - Summary, description do not use trademarks incorrectly
ok - All relevant documentation is packaged, appropriately marked with %doc
ok - Doc files do not drag in extra dependencies (e.g. due to +x)
-- - Code compilable with gcc is compiled with gcc
-- - Build honors applicable compiler flags or justifies otherwise
-- - PIE used for long-running/root daemons, setuid/filecap programs
-- - Useful -debuginfo package or disabled and justified
-- - No static executables (except OCaml)
-- - Rpath absent or only used for internal libs
-- - Config files marked with %config(noreplace) or justified %config
ok - No config files under /usr
-- - Third party package manager configs acceptable, only in %_docdir
-- - .desktop files are sane
-- - desktop-file-install/validate run on .desktop files, as appropriate
-- - No desktop-file-install --vendor on >= F19
ok - Spec uses macros consistently
ok - Spec uses macros instead of hard-coded names where appropriate
NO - Spec uses macros for executables only when configurability is needed
     %{__python} is deprecated; use python2 or %{__python2} instead
-- - %makeinstall used only when alternatives don't work
-- - Macros in Summary, description are expandable at srpm build time
-- - Spec uses %{SOURCE#} instead of $RPM_SOURCE_DIR and %sourcedir
ok - No software collections (scl)
-- - Macro files named /etc/rpm/macros.%name or /usr/lib/rpm/macros.%name
-- - Macro files not marked with %config
ok - Build uses only python/perl/shell+coreutils/lua/BuildRequired langs
NO - %global, not %define
     Use %global to set %python_sitelib, not %define
-- - Package translating with gettext BuildRequires it
-- - Package translating with Linguist BuildRequires qt-devel
-- - File ops preserve timestamps
-- - Parallel make
-- - User, group creation handled correctly (See Packaging:UsersAndGroups)
-- - Web apps go in /usr/share/%name, not /var/www
-- - Conflicts are justified
ok - One project per package
ok - No bundled fonts
-- - Patches have appropriate commentary
no - Available test suites executed in %check
-- - tmpfiles.d used for /run, /run/lock on >= F15
-- - Package renaming/replacement handled correctly
ok - Package builds without network access

Python guidelines:
ok - Runtime Requires correct
NO - BuildRequires: python2-devel and/or python3-devel
     python2-devel is required
NO - Spec uses versioned macros
     Use python2 or %{__python2} instead of %{__python}
     Use %{python2_sitelib} instead of %{python_sitelib}
     For boilerplate see: http://fedoraproject.org/wiki/Packaging:Python#Macros
ok - All .py files packaged with .pyc, .pyo counterparts
ok - INSTALLED_FILES not used for %files list
ok - Includes .egg-info files/directories when generated
ok - .py not under site-libs byte-compiled against correct runtimes
-- - Python 3 built as upstream instructs, if at all
-- - Patches are not specific to python 2 or 3 when sources are combined
-- - Non-parallel-installable scripts only installed for default runtime
ok - Eggs built from source
ok - Eggs do not download deps during build
-- - Compat packages use easy_install -m to avoid conflicts
ok - At least one version of each module must be importable w/o version
ok - Provides/Requires properly filtered
-- - Code that invokes gtk.gdk.get_pixels_array() Requires numpy

-- 
You are receiving this mail because:
You are on the CC list for the bug.
You are always notified about changes to this product and component
_______________________________________________
package-review mailing list
package-review@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/package-review





[Index of Archives]     [Fedora Legacy]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [KDE Users]     [Fedora Tools]