Bug 1592254 - Review Request: python-symver-smap - A helper for library maintainers to use symbol versioning
Summary: Review Request: python-symver-smap - A helper for library maintainers to use ...
Keywords:
Status: CLOSED DUPLICATE of bug 1612551
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Andreas Schneider
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2018-06-18 09:20 UTC by Anderson Sasaki
Modified: 2018-08-07 13:45 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2018-08-07 13:45:25 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Anderson Sasaki 2018-06-18 09:20:28 UTC
Spec URL: https://copr-be.cloud.fedoraproject.org/results/ansasaki/python-symver-smap/fedora-rawhide-x86_64/00768283-python-symver-smap/python-symver-smap.spec
SRPM URL: https://copr-be.cloud.fedoraproject.org/results/ansasaki/python-symver-smap/fedora-rawhide-x86_64/00768283-python-symver-smap/python-symver-smap-0.2.4-1.fc29.src.rpm

Description: This script allows to generate and update symbol version linker scripts which adds version information to the exported symbols. The script is intended to be integrated as part of a shared library build to check for changes in the set of exported symbols and update the symbol version linker script accordingly.

Copr build: https://copr.fedorainfracloud.org/coprs/ansasaki/python-symver-smap/build/768283/

Koji scratch build: https://koji.fedoraproject.org/koji/taskinfo?taskID=27699000

Fedora Account System Username: ansasaki

Comment 1 Marcel Plch 2018-06-22 15:00:38 UTC
Note that I am not a packager yet and this is an informal review.

Some issues that are worth considering:
1) This package conflicts with slurm-gui package. (/usr/bin/smap)
2) %{python3_sitelib}/* is not nice, you might end up owning %{python3_sitelib}/__pycache__ for example. Since you do not install any top-level cache, this is not the case, but you never know what future versions will bring. You could do something like %{python3_sitelib}/smap/*, which is more acceptable.
3) %check, perhaps you could package the test dependency first or skip the failing part of tests? (this will probably will not be required to accept the package, but it would be nice to have working tests)

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.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "MIT/X11 (BSD like)", "Unknown or generated". 210 files have
     unknown license. Detailed output of licensecheck in
     /home/mplch/reviews/1592254-python-symver-smap/licensecheck.txt
[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.
[!]: 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 3 files.
[!]: 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 does not use a name that already exists.
[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]: Packages must not store files under /srv, /opt or /usr/local

Python:
[x]: Python eggs must not download any dependencies during the build
     process.
[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]: Avoid bundling fonts in non-fonts packages.
     Note: Package contains font files
[-]: 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.
[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.
[?]: Packages should try to preserve timestamps of original installed
     files.
[!]: Spec use %global instead of %define unless justified.
     Note: %define requiring justification: %define module_name symver-smap
[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]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: Sources can be downloaded from URI in Source: tag
[x]: SourceX is a working URL.

===== 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: python3-symver-smap-0.2.4-1.fc29.noarch.rpm
          python-symver-smap-doc-0.2.4-1.fc29.noarch.rpm
          python-symver-smap-0.2.4-1.fc29.src.rpm
python3-symver-smap.noarch: W: spelling-error Summary(en_US) versioning -> versifying, version, overseeing
python3-symver-smap.noarch: W: no-manual-page-for-binary smap
python-symver-smap-doc.noarch: W: summary-not-capitalized C python-symver-smap documentation
python-symver-smap-doc.noarch: W: file-not-utf8 /usr/share/doc/python-symver-smap-doc/html/objects.inv
python-symver-smap.src: W: spelling-error Summary(en_US) versioning -> versifying, version, overseeing
python-symver-smap.src:21: W: macro-in-comment %{py3_dist
python-symver-smap.src:62: W: macro-in-comment %check
python-symver-smap.src:63: W: macro-in-comment %{__python3}
python-symver-smap.src: E: specfile-error warning: Macro expanded in comment on line 21: %{py3_dist pytest-console-scripts}
3 packages and 0 specfiles checked; 1 errors, 8 warnings.




Rpmlint (installed packages)
----------------------------
sh: /usr/bin/python: No such file or directory
python-symver-smap-doc.noarch: W: summary-not-capitalized C python-symver-smap documentation
python-symver-smap-doc.noarch: W: file-not-utf8 /usr/share/doc/python-symver-smap-doc/html/objects.inv
python3-symver-smap.noarch: W: spelling-error Summary(en_US) versioning -> versifying, version, overseeing
python3-symver-smap.noarch: W: no-manual-page-for-binary smap
2 packages and 0 specfiles checked; 0 errors, 4 warnings.

Comment 2 Anderson Sasaki 2018-06-29 16:32:22 UTC
> Some issues that are worth considering:
> 1) This package conflicts with slurm-gui package. (/usr/bin/smap)

Ouch! I was not aware of this package. I will find a solution soon (probably renaming the executable)

2) %{python3_sitelib}/* is not nice, you might end up owning %{python3_sitelib}/__pycache__ for example. Since you do not install any top-level cache, this is not the case, but you never know what future versions will bring. You could do something like %{python3_sitelib}/smap/*, which is more acceptable.

Agreed. I missed that on the Fedora Python Packaging Guidelines, more specifically https://fedoraproject.org/wiki/Packaging:Python#Byte_compiling.
It says explicitly that you should not do that. I'll fix it.

3) %check, perhaps you could package the test dependency first or skip the failing part of tests? (this will probably will not be required to accept the package, but it would be nice to have working tests)

Agreed. I am working with the upstream developer to package the test dependency. So this will probably be blocked until I finish packaging it.

Comment 3 Anderson Sasaki 2018-07-26 11:20:56 UTC
(In reply to Anderson Sasaki from comment #2)
> > Some issues that are worth considering:
> > 1) This package conflicts with slurm-gui package. (/usr/bin/smap)
> 
> Ouch! I was not aware of this package. I will find a solution soon (probably
> renaming the executable)

The upstream was changed to generate 2 copy binaries in the new 0.2.5 release: smap and symver-smap. smap is now deleted in the install process, leaving only symver-smap ins /usr/bin/

> 
> 2) %{python3_sitelib}/* is not nice, you might end up owning
> %{python3_sitelib}/__pycache__ for example. Since you do not install any
> top-level cache, this is not the case, but you never know what future
> versions will bring. You could do something like %{python3_sitelib}/smap/*,
> which is more acceptable.
> 
> Agreed. I missed that on the Fedora Python Packaging Guidelines, more
> specifically https://fedoraproject.org/wiki/Packaging:Python#Byte_compiling.
> It says explicitly that you should not do that. I'll fix it.

Fixed this to include only the content of the smap subdirectory and the egg-info directory.

> 
> 3) %check, perhaps you could package the test dependency first or skip the
> failing part of tests? (this will probably will not be required to accept
> the package, but it would be nice to have working tests)
> 
> Agreed. I am working with the upstream developer to package the test
> dependency. So this will probably be blocked until I finish packaging it.

Since the pytest-console-scripts upstream developer is taking too long to change its testing, I've added a patch to disable the tests depending on pytest-console-scripts. The rest of the test suite is run on %check. When pytest-console-scripts is available in Fedora, this patch can be dropped.


Summary of changes:

* Changed version to symver-smap-0.2.5
* Disabled tests depending on pytest-console-scripts by a downstream patch
* Included only %{python3_sitelib}/smap and %{python3_sitelib}/symver_smap-%{version}-py%{python3_version}.egg-info
* Fixed PYTHONPATH when generating documentation with sphinx (previously the generated documentation were incomplete)


New URLs:

Spec URL: https://copr-be.cloud.fedoraproject.org/results/ansasaki/python-symver-smap/fedora-rawhide-x86_64/00781057-python-symver-smap/python-symver-smap.spec

SRPM URL: https://copr-be.cloud.fedoraproject.org/results/ansasaki/python-symver-smap/fedora-rawhide-x86_64/00781057-python-symver-smap/python-symver-smap-0.2.5-1.fc29.src.rpm

Copr build: https://copr.fedorainfracloud.org/coprs/ansasaki/python-symver-smap/build/781057/

Koji scratch build: https://koji.fedoraproject.org/koji/taskinfo?taskID=28618195

Fedora Account System Username: ansasaki

Comment 4 Anderson Sasaki 2018-08-07 13:45:25 UTC
This was replaced by https://bugzilla.redhat.com/show_bug.cgi?id=1612551

This request is no longer valid.

*** This bug has been marked as a duplicate of bug 1612551 ***


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