Bug 1985573 - Review Request: qpress - A portable file archiver using QuickLZ
Summary: Review Request: qpress - A portable file archiver using QuickLZ
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Petr Pisar
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2021-07-24 00:18 UTC by Davide Cavalca
Modified: 2022-07-28 01:30 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2022-07-19 01:48:17 UTC
Type: ---
Embargoed:
ppisar: fedora-review+


Attachments (Terms of Use)

Description Davide Cavalca 2021-07-24 00:18:05 UTC
Spec URL: https://dcavalca.fedorapeople.org/review/qpress/qpress.spec
SRPM URL: https://dcavalca.fedorapeople.org/review/qpress/qpress-11-1.fc35.src.rpm

Description:
qpress is a portable file archiver using QuickLZ and designed to utilize fast
storage systems to their max. It's often faster than file copy because the
destination is smaller than the source.

Fedora Account System Username: dcavalca

Comment 1 Davide Cavalca 2021-07-24 00:18:07 UTC
This package built on koji:  https://koji.fedoraproject.org/koji/taskinfo?taskID=72529747

Comment 2 Lukáš Zaoral 2021-07-30 12:52:30 UTC
Hi David,
note, that I'm not a member of the packager group yet and this is one of the reviews I have to write to become one.  Therefore, some of my suggestions or remarks may not be perfect.  Thank you for understanding and patience until some official member responds to your review request (and reviews my review).

The spec file looks great! I have only two remarks:

* No license file is installed or present in the sources.  From guidelines: "If the source package does not include the text of the license(s), the packager should contact upstream and encourage them to correct this mistake."  See https://docs.fedoraproject.org/en-US/packaging-guidelines/LicensingGuidelines/#_license_text.

* Just a nitpick: It may be useful to replace all occurrences of qpress by %{name} and 11 by %{version}, e.g. %{name}-%{version}-source.zip.

Comment 3 Davide Cavalca 2022-02-23 19:47:12 UTC
Unfortunately upstream isn't really active anymore, I haven't had much luck in getting the license text included.

Spec URL: https://dcavalca.fedorapeople.org/review/qpress/qpress.spec
SRPM URL: https://dcavalca.fedorapeople.org/review/qpress/qpress-11-1.fc37.src.rpm

Changelog:
- use %{name} and %{version}

Comment 4 Petr Pisar 2022-05-13 13:06:09 UTC
I haven't look at the sources, but this is suspicious:

License:        GPLv1 and GPLv2 and GPLv3
[...]
%files
%{_bindir}/%{name}

How can an executable be (GPLv1 and GPLv2 and GPLv2)? That does not makes sense. The GPL licenses are mutually exclusive.

Comment 5 Davide Cavalca 2022-07-11 01:22:06 UTC
> How can an executable be (GPLv1 and GPLv2 and GPLv2)? That does not makes sense. The GPL licenses are mutually exclusive.

Good catch, that was supposed to be "or", not "and".

Spec URL: https://dcavalca.fedorapeople.org/review/qpress/qpress.spec
SRPM URL: https://dcavalca.fedorapeople.org/review/qpress/qpress-11-1.fc37.src.rpm

Changelog:
- Fix license

Comment 6 Petr Pisar 2022-07-14 11:28:44 UTC
URL and Source0 addresses are usable. Ok.
TODO: Add a trailing slash to URL.
TODO: Consider using HTTPS schema in URL and Source0.
TODO: The Source0 cannot be downloaded with command-line tools like wget. The server returns "406: Not Acceptable". Inform upstream that this discrimination hinders automation. You won't probably be able to use <https://release-monitoring.org/> service for reporting new releases to Fedora Bugzilla.

Source archive (SHA512: 986754cca8bb2cdcfc7e197f7e123c6b2da90db840642a6385f14613f49f7ec6b2c18944838405fe35d5382d71fcd5d69050a036dda4c5de2e588d144e16ea6b) is original. Ok.
Summary is Ok.
Description verified from the home page. Ok.

Found licenses:

aio.cpp: GPLv1 and GPLv2
aio.hpp: GPLv1 and GPLv2
quicklz.h: GPLv1 or GPLv2
quicklz.c: GPLv1 or GPLv2
qpress.cpp: GPLv1 and GPLv2 and GPLv3
01-include-unistd.patch: GPLv2

I believe that an author meant "or" instead of "and". It would be great to confirm this assumption by asking the author and packaging the confirmation e-mail message using %license macro.

FIX: Provided the assumption is correct and because all these files are compiled into a single executable, the License tag should be "GPLv2".

FIX: Build-require "coreutils" (qpress.spec:26).

TODO: You can remove -lpthread from the g++ command. Current glibc does not have a separate pthread library.


$ rpmlint qpress.spec ../SRPMS/qpress-11-1.fc37.src.rpm ../RPMS/x86_64/qpress-11-1.fc37.x86_64.rpm 
======================================== rpmlint session starts =======================================
rpmlint: 2.2.0
configuration:
    /usr/lib/python3.11/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/licenses.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
checks: 32, packages: 3

qpress.x86_64: W: no-manual-page-for-binary qpress
qpress.x86_64: W: no-documentation
========= 2 packages and 1 specfiles checked; 0 errors, 2 warnings, 0 badness; has taken 0.3 s ========
rpmlint is Ok.

The package builds in Fedora 37 (https://koji.fedoraproject.org/koji/taskinfo?taskID=89491525). Ok.

$ rpm -qlvp ../RPMS/x86_64/qpress-11-1.fc37.x86_64.rpm 
-rwxr-xr-x    1 root     root                    70544 Jul 14 13:08 /usr/bin/qpress
drwxr-xr-x    2 root     root                        0 Jul 14 13:08 /usr/lib/.build-id
drwxr-xr-x    2 root     root                        0 Jul 14 13:08 /usr/lib/.build-id/40
lrwxrwxrwx    1 root     root                       26 Jul 14 13:08 /usr/lib/.build-id/40/6e66d91ee0b39692eab31bf301cf2c01cce29f -> ../../../../usr/bin/qpress
File layout and permissions are Ok.

$ rpm -q --requires -p ../RPMS/x86_64/qpress-11-1.fc37.x86_64.rpm | sort -f | uniq -c
      1 libc.so.6()(64bit)
      1 libc.so.6(GLIBC_2.14)(64bit)
      1 libc.so.6(GLIBC_2.2.5)(64bit)
      1 libc.so.6(GLIBC_2.3.4)(64bit)
      1 libc.so.6(GLIBC_2.33)(64bit)
      1 libc.so.6(GLIBC_2.34)(64bit)
      1 libc.so.6(GLIBC_2.4)(64bit)
      1 libgcc_s.so.1()(64bit)
      1 libgcc_s.so.1(GCC_3.0)(64bit)
      1 libgcc_s.so.1(GCC_3.3.1)(64bit)
      1 libstdc++.so.6()(64bit)
      1 libstdc++.so.6(CXXABI_1.3.9)(64bit)
      1 libstdc++.so.6(GLIBCXX_3.4)(64bit)
      1 libstdc++.so.6(GLIBCXX_3.4.20)(64bit)
      1 rpmlib(CompressedFileNames) <= 3.0.4-1
      1 rpmlib(FileDigests) <= 4.6.0-1
      1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
      1 rpmlib(PayloadIsZstd) <= 5.4.18-1
      1 rtld(GNU_HASH)
Binary requires are Ok.

$ rpm -q --provides -p ../RPMS/x86_64/qpress-11-1.fc37.x86_64.rpm | sort -f | uniq -c
      1 qpress = 11-1.fc37
      1 qpress(x86-64) = 11-1.fc37
FIX: qpress-11 bundles quicklz-1.4.1. There is a separate QuickLZ project downloadable from <http://www.quicklz.com/download.html>. Please add "Provides: bundled(quicklz) = 1.4.1" <https://docs.fedoraproject.org/en-US/packaging-guidelines/#bundling>.
TODO: Consider packaging quicklz at the latest version as a dynamic library and building qpress against it.

$ resolvedeps rawhide ../RPMS/x86_64/qpress-11-1.fc37.x86_64.rpm 
Binary dependencies are resolvable. Ok.

Otherwise, this package is in line with Fedora packaging guidelines.
Please correct all "FIX" items, consider fixing "TODO" items, and provide a new spec file.
Resolution: Package NOT approved.

Comment 7 Davide Cavalca 2022-07-16 15:48:42 UTC
Spec URL: https://dcavalca.fedorapeople.org/review/qpress/qpress.spec
SRPM URL: https://dcavalca.fedorapeople.org/review/qpress/qpress-11-1.fc37.src.rpm

Changelog:
- Update license
- Use https for URL
- Add missing coreutils BR
- Add missing bundled provides for quicklz
- Drop -lpthread

Comment 8 Petr Pisar 2022-07-18 09:20:55 UTC
Changes in the spec file:

--- qpress.spec.old     2022-07-14 13:20:55.219000000 +0200
+++ qpress.spec 2022-07-16 17:47:48.000000000 +0200
@@ -3,12 +3,15 @@
 Release:        %autorelease
 Summary:        A portable file archiver using QuickLZ
 
-License:        GPLv1 or GPLv2 or GPLv3
-URL:            http://www.quicklz.com
+License:        GPLv2
+URL:            https://www.quicklz.com
 Source0:        %{url}/%{name}-%{version}-source.zip
 Patch0:         01-include-unistd.patch
 
 BuildRequires:  gcc-c++
+BuildRequires:  coreutils
+
+Provides:       bundled(quicklz) = 1.4.1
 
 %description
 qpress is a portable file archiver using QuickLZ and designed to utilize fast
@@ -20,7 +23,7 @@
 
 %build
 %set_build_flags
-$CXX $CXXFLAGS -o qpress qpress.cpp aio.cpp quicklz.c utilities.cpp $LDFLAGS -lpthread
+$CXX $CXXFLAGS -o qpress qpress.cpp aio.cpp quicklz.c utilities.cpp $LDFLAGS
 
 %install
 install -Dpm0755 -t %{buildroot}/%{_bindir} %{name}


$ rpmlint qpress.spec ../SRPMS/qpress-11-1.fc37.src.rpm ../RPMS/x86_64/qpress-11-1.fc37.x86_64.rpm 
======================================== rpmlint session starts =======================================
rpmlint: 2.2.0
configuration:
    /usr/lib/python3.11/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/licenses.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
checks: 32, packages: 3

qpress.x86_64: W: no-manual-page-for-binary qpress
qpress.x86_64: W: no-documentation
========= 2 packages and 1 specfiles checked; 0 errors, 2 warnings, 0 badness; has taken 0.8 s ========
rpmlint is Ok.

The package builds in F37 (https://koji.fedoraproject.org/koji/taskinfo?taskID=89641580). Ok.

The package is in line with Fedora packaging guidelines.
Resolution: Package APPROVED.

Comment 9 Davide Cavalca 2022-07-18 14:48:40 UTC
Thanks!

$ fedpkg request-repo qpress 1985573
https://pagure.io/releng/fedora-scm-requests/issue/45840
$ fedpkg request-branch --repo qpress f36
https://pagure.io/releng/fedora-scm-requests/issue/45841
$ fedpkg request-branch --repo qpress f35
https://pagure.io/releng/fedora-scm-requests/issue/45842
$ fedpkg request-branch --repo qpress epel8
https://pagure.io/releng/fedora-scm-requests/issue/45843
$ fedpkg request-branch --repo qpress epel9
https://pagure.io/releng/fedora-scm-requests/issue/45844

Comment 10 Gwyn Ciesla 2022-07-18 16:33:13 UTC
(fedscm-admin):  The Pagure repository was created at https://src.fedoraproject.org/rpms/qpress

Comment 11 Fedora Update System 2022-07-19 01:47:30 UTC
FEDORA-2022-0b05f17be5 has been submitted as an update to Fedora 37. https://bodhi.fedoraproject.org/updates/FEDORA-2022-0b05f17be5

Comment 12 Fedora Update System 2022-07-19 01:48:17 UTC
FEDORA-2022-0b05f17be5 has been pushed to the Fedora 37 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 13 Fedora Update System 2022-07-19 02:24:45 UTC
FEDORA-2022-fd80b5c096 has been submitted as an update to Fedora 35. https://bodhi.fedoraproject.org/updates/FEDORA-2022-fd80b5c096

Comment 14 Fedora Update System 2022-07-19 02:36:31 UTC
FEDORA-EPEL-2022-6713d6cf10 has been submitted as an update to Fedora EPEL 9. https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2022-6713d6cf10

Comment 15 Fedora Update System 2022-07-19 16:30:31 UTC
FEDORA-2022-6390b11a93 has been submitted as an update to Fedora 36. https://bodhi.fedoraproject.org/updates/FEDORA-2022-6390b11a93

Comment 16 Fedora Update System 2022-07-19 17:54:40 UTC
FEDORA-EPEL-2022-1c28d7c3a0 has been submitted as an update to Fedora EPEL 8. https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2022-1c28d7c3a0

Comment 17 Fedora Update System 2022-07-20 01:46:15 UTC
FEDORA-EPEL-2022-1c28d7c3a0 has been pushed to the Fedora EPEL 8 testing repository.

You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2022-1c28d7c3a0

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 18 Fedora Update System 2022-07-20 01:53:01 UTC
FEDORA-2022-fd80b5c096 has been pushed to the Fedora 35 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf install --enablerepo=updates-testing --refresh --advisory=FEDORA-2022-fd80b5c096 \*`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2022-fd80b5c096

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 19 Fedora Update System 2022-07-20 01:54:38 UTC
FEDORA-EPEL-2022-6713d6cf10 has been pushed to the Fedora EPEL 9 testing repository.

You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2022-6713d6cf10

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 20 Fedora Update System 2022-07-20 18:22:27 UTC
FEDORA-2022-6390b11a93 has been pushed to the Fedora 36 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf install --enablerepo=updates-testing --refresh --advisory=FEDORA-2022-6390b11a93 \*`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2022-6390b11a93

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 21 Fedora Update System 2022-07-22 17:16:09 UTC
FEDORA-2022-6390b11a93 has been pushed to the Fedora 36 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 22 Fedora Update System 2022-07-28 00:45:52 UTC
FEDORA-EPEL-2022-1c28d7c3a0 has been pushed to the Fedora EPEL 8 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 23 Fedora Update System 2022-07-28 00:59:43 UTC
FEDORA-EPEL-2022-6713d6cf10 has been pushed to the Fedora EPEL 9 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 24 Fedora Update System 2022-07-28 01:30:10 UTC
FEDORA-2022-fd80b5c096 has been pushed to the Fedora 35 stable repository.
If problem still persists, please make note of it in this bug report.


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