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