https://bugzilla.redhat.com/show_bug.cgi?id=1123044
Garrett Holmstrom <gholms(a)fedoraproject.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
CC| |gholms(a)fedoraproject.org
Assignee|nobody(a)fedoraproject.org |gholms(a)fedoraproject.org
Flags| |fedora-review?
--- Comment #3 from Garrett Holmstrom <gholms(a)fedoraproject.org> ---
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