[Bug 2354797] Review Request: libpkgmanifest - library for working with RPM manifests

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

 



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



--- Comment #6 from Petr Pisar <ppisar@xxxxxxxxxx> ---
The standalone spec file differs from a spec file from the source package (a
new-line at the end of the file). I will review spec file from the source
package.

URL and Source0 addresses are Ok.
Source0 archive (SHA-512:
d293731c4ff40508611d334e5cb31f5c10a8e143cdac6b82e122bcf3312b37b98fc005b88975b7b1ab28302a090dee0f5e192f4418a7028298712fd98f4dbca8)
is original. Ok.

TODO: I recommend moving the %bcond macros to the top of the spec file. This is
a prominent place where people building the package look for them.
TODO: You can stop using clang build condition. There is already a
system-provided %toolchain macro defaulting to gcc. Use that for
build-requiring g++/clang.
TODO: Remove a notice about "Python bindings" from libpkgmanifest description.
That binary package does not contain Python bindings. It's in
python3-libpkgmanifest.
TODO: You don't need to repeat License tag at every subpackage. They are
inherited from the main package.

License verified from: LICENSE. Ok.

TODO: You don't need to package LICENSE in every subpackage. Only
libpkgmanifest is enough as it is required by any of them.
TODO: Add an explicit -DWITH_CODE_COVERAGE=OFF argument to %cmake invocation
(CMakeLists.txt:13). All configure-time options should be specified to prevent
from unnoticed changes.

FIX: Build-require "pkgconf-pkg-config" (CMakeLists.txt:24).
FIX: Build-require "doxygen" if docs build condition is enabled, or remove the
build condition from spec file (docs/CMakeLists.txt:11).

$ rpmlint libpkgmanifest.spec ../SRPMS/libpkgmanifest-0.5.8-1.fc43.src.rpm
../RPMS/x86_64/*libpkgmanifest-*
======================================== rpmlint session starts
=======================================
rpmlint: 2.7.0
configuration:
    /usr/lib/python3.13/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
checks: 32, packages: 8

python3-libpkgmanifest.x86_64: W: no-documentation
libpkgmanifest.x86_64: E: incorrect-fsf-address
/usr/share/licenses/libpkgmanifest/LICENSE
libpkgmanifest-devel.x86_64: E: incorrect-fsf-address
/usr/share/licenses/libpkgmanifest-devel/LICENSE
python3-libpkgmanifest.x86_64: E: incorrect-fsf-address
/usr/share/licenses/python3-libpkgmanifest/LICENSE
== 7 packages and 1 specfiles checked; 3 errors, 1 warnings, 40 filtered, 3
badness; has taken 1.7 s ==

TODO: Ask upstream for updating the postal address in LICENSE file. Current
wording of the license is at
<https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt>.

$ rpm -q -lv -p ../RPMS/x86_64/libpkgmanifest-0.5.8-1.fc43.x86_64.rpm
drwxr-xr-x    2 root     root                        0 Apr  2 02:00
/usr/lib/.build-id
drwxr-xr-x    2 root     root                        0 Apr  2 02:00
/usr/lib/.build-id/f6
lrwxrwxrwx    1 root     root                       41 Apr  2 02:00
/usr/lib/.build-id/f6/70f6db21c3691f1f4324af39380924f66f10b7 ->
../../../../usr/lib64/libpkgmanifest.so.0
-rwxr-xr-x    1 root     root                   597712 Apr  2 02:00
/usr/lib64/libpkgmanifest.so.0
drwxr-xr-x    2 root     root                        0 Apr  2 02:00
/usr/share/licenses/libpkgmanifest
-rw-r--r--    1 root     root                    26042 Apr  1 16:55
/usr/share/licenses/libpkgmanifest/LICENSE
$ rpm -q -lv -p ../RPMS/x86_64/libpkgmanifest-devel-0.5.8-1.fc43.x86_64.rpm 
drwxr-xr-x    2 root     root                        0 Apr  2 02:00
/usr/include/libpkgmanifest
drwxr-xr-x    2 root     root                        0 Apr  2 02:00
/usr/include/libpkgmanifest/common
-rw-r--r--    1 root     root                      468 Apr  1 16:55
/usr/include/libpkgmanifest/common/exception.hpp
-rw-r--r--    1 root     root                     2919 Apr  1 16:55
/usr/include/libpkgmanifest/common/repositories.hpp
-rw-r--r--    1 root     root                     1842 Apr  1 16:55
/usr/include/libpkgmanifest/common/repository.hpp
-rw-r--r--    1 root     root                     1551 Apr  1 16:55
/usr/include/libpkgmanifest/common/version.hpp
drwxr-xr-x    2 root     root                        0 Apr  2 02:00
/usr/include/libpkgmanifest/input
-rw-r--r--    1 root     root                     3361 Apr  1 16:55
/usr/include/libpkgmanifest/input/input.hpp
-rw-r--r--    1 root     root                      911 Apr  1 16:55
/usr/include/libpkgmanifest/input/modules.hpp
-rw-r--r--    1 root     root                     1022 Apr  1 16:55
/usr/include/libpkgmanifest/input/options.hpp
-rw-r--r--    1 root     root                      957 Apr  1 16:55
/usr/include/libpkgmanifest/input/packages.hpp
-rw-r--r--    1 root     root                     1073 Apr  1 16:55
/usr/include/libpkgmanifest/input/parser.hpp
drwxr-xr-x    2 root     root                        0 Apr  2 02:00
/usr/include/libpkgmanifest/manifest
-rw-r--r--    1 root     root                     1251 Apr  1 16:55
/usr/include/libpkgmanifest/manifest/checksum.hpp
-rw-r--r--    1 root     root                     2408 Apr  1 16:55
/usr/include/libpkgmanifest/manifest/manifest.hpp
-rw-r--r--    1 root     root                     1433 Apr  1 16:55
/usr/include/libpkgmanifest/manifest/module.hpp
-rw-r--r--    1 root     root                     2204 Apr  1 16:55
/usr/include/libpkgmanifest/manifest/nevra.hpp
-rw-r--r--    1 root     root                     3905 Apr  1 16:55
/usr/include/libpkgmanifest/manifest/package.hpp
-rw-r--r--    1 root     root                     2363 Apr  1 16:55
/usr/include/libpkgmanifest/manifest/packages.hpp
-rw-r--r--    1 root     root                      627 Apr  1 16:55
/usr/include/libpkgmanifest/manifest/parser.hpp
-rw-r--r--    1 root     root                      698 Apr  1 16:55
/usr/include/libpkgmanifest/manifest/serializer.hpp
lrwxrwxrwx    1 root     root                       19 Apr  2 02:00
/usr/lib64/libpkgmanifest.so -> libpkgmanifest.so.0
-rw-r--r--    1 root     root                      246 Apr  2 02:00
/usr/lib64/pkgconfig/libpkgmanifest.pc
drwxr-xr-x    2 root     root                        0 Apr  2 02:00
/usr/share/licenses/libpkgmanifest-devel
-rw-r--r--    1 root     root                    26042 Apr  1 16:55
/usr/share/licenses/libpkgmanifest-devel/LICENSE
$ rpm -q -lv -p ../RPMS/x86_64/python3-libpkgmanifest-0.5.8-1.fc43.x86_64.rpm
drwxr-xr-x    2 root     root                        0 Apr  2 02:00
/usr/lib/.build-id
drwxr-xr-x    2 root     root                        0 Apr  2 02:00
/usr/lib/.build-id/03
lrwxrwxrwx    1 root     root                       74 Apr  2 02:00
/usr/lib/.build-id/03/d7bf814441b9a5c405cf5a5e40f2cb256996a5 ->
../../../../usr/lib64/python3.13/site-packages/libpkgmanifest/_manifest.so
drwxr-xr-x    2 root     root                        0 Apr  2 02:00
/usr/lib/.build-id/7c
lrwxrwxrwx    1 root     root                       71 Apr  2 02:00
/usr/lib/.build-id/7c/a6678b29ab8a6adaa3c6aea55ed5dfaed5b459 ->
../../../../usr/lib64/python3.13/site-packages/libpkgmanifest/_input.so
drwxr-xr-x    2 root     root                        0 Apr  2 02:00
/usr/lib/.build-id/f7
lrwxrwxrwx    1 root     root                       72 Apr  2 02:00
/usr/lib/.build-id/f7/5a02ef3a7d1a7960a5fc11bd41e51db91a19de ->
../../../../usr/lib64/python3.13/site-packages/libpkgmanifest/_common.so
drwxr-xr-x    2 root     root                        0 Apr  2 02:00
/usr/lib64/python3.13/site-packages/libpkgmanifest
drwxr-xr-x    2 root     root                        0 Apr  2 02:00
/usr/lib64/python3.13/site-packages/libpkgmanifest-0.5.8.dist-info
-rw-r--r--    1 root     root                       58 Apr  2 02:00
/usr/lib64/python3.13/site-packages/libpkgmanifest-0.5.8.dist-info/METADATA
-rw-r--r--    1 root     root                       64 Apr  2 02:00
/usr/lib64/python3.13/site-packages/libpkgmanifest/__init__.py
drwxr-xr-x    2 root     root                        0 Apr  2 02:00
/usr/lib64/python3.13/site-packages/libpkgmanifest/__pycache__
-rw-r--r--    2 root     root                      254 Apr  2 02:00
/usr/lib64/python3.13/site-packages/libpkgmanifest/__pycache__/__init__.cpython-313.opt-1.pyc
-rw-r--r--    2 root     root                      254 Apr  2 02:00
/usr/lib64/python3.13/site-packages/libpkgmanifest/__pycache__/__init__.cpython-313.pyc
-rw-r--r--    2 root     root                    37519 Apr  2 02:00
/usr/lib64/python3.13/site-packages/libpkgmanifest/__pycache__/common.cpython-313.opt-1.pyc
-rw-r--r--    2 root     root                    37519 Apr  2 02:00
/usr/lib64/python3.13/site-packages/libpkgmanifest/__pycache__/common.cpython-313.pyc
-rw-r--r--    2 root     root                    48817 Apr  2 02:00
/usr/lib64/python3.13/site-packages/libpkgmanifest/__pycache__/input.cpython-313.opt-1.pyc
-rw-r--r--    2 root     root                    48817 Apr  2 02:00
/usr/lib64/python3.13/site-packages/libpkgmanifest/__pycache__/input.cpython-313.pyc
-rw-r--r--    2 root     root                    70943 Apr  2 02:00
/usr/lib64/python3.13/site-packages/libpkgmanifest/__pycache__/manifest.cpython-313.opt-1.pyc
-rw-r--r--    2 root     root                    70943 Apr  2 02:00
/usr/lib64/python3.13/site-packages/libpkgmanifest/__pycache__/manifest.cpython-313.pyc
-rwxr-xr-x    1 root     root                   268264 Apr  2 02:00
/usr/lib64/python3.13/site-packages/libpkgmanifest/_common.so
-rwxr-xr-x    1 root     root                   311896 Apr  2 02:00
/usr/lib64/python3.13/site-packages/libpkgmanifest/_input.so
-rwxr-xr-x    1 root     root                   521040 Apr  2 02:00
/usr/lib64/python3.13/site-packages/libpkgmanifest/_manifest.so
-rw-r--r--    1 root     root                    23129 Apr  2 02:00
/usr/lib64/python3.13/site-packages/libpkgmanifest/common.py
-rw-r--r--    1 root     root                    32256 Apr  2 02:00
/usr/lib64/python3.13/site-packages/libpkgmanifest/input.py
-rw-r--r--    1 root     root                    49787 Apr  2 02:00
/usr/lib64/python3.13/site-packages/libpkgmanifest/manifest.py
drwxr-xr-x    2 root     root                        0 Apr  2 02:00
/usr/share/licenses/python3-libpkgmanifest
-rw-r--r--    1 root     root                    26042 Apr  1 16:55
/usr/share/licenses/python3-libpkgmanifest/LICENSE

TODO: Add README.md to libpkgmanifest binary package.
TODO: Add docs/design to libpkgmanifest-devel if you don't build a complete
documentation. Some documentation is better than none.

$ rpm -q --requires -p ../RPMS/x86_64/libpkgmanifest-0.5.8-1.fc43.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.32)(64bit)
      1 libc.so.6(GLIBC_2.38)(64bit)
      1 libc.so.6(GLIBC_2.4)(64bit)
      1 libc.so.6(GLIBC_ABI_DT_RELR)(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 libm.so.6()(64bit)
      1 libm.so.6(GLIBC_2.2.5)(64bit)
      1 libstdc++.so.6()(64bit)
      1 libstdc++.so.6(CXXABI_1.3)(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 libstdc++.so.6(GLIBCXX_3.4.21)(64bit)
      1 libstdc++.so.6(GLIBCXX_3.4.26)(64bit)
      1 libstdc++.so.6(GLIBCXX_3.4.29)(64bit)
      1 libstdc++.so.6(GLIBCXX_3.4.30)(64bit)
      1 libstdc++.so.6(GLIBCXX_3.4.31)(64bit)
      1 libstdc++.so.6(GLIBCXX_3.4.32)(64bit)
      1 libstdc++.so.6(GLIBCXX_3.4.9)(64bit)
      1 libyaml-cpp.so.0.8()(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)
$ rpm -q --requires -p
../RPMS/x86_64/libpkgmanifest-devel-0.5.8-1.fc43.x86_64.rpm | sort -f | uniq -c
      1 /usr/bin/pkg-config
      1 libpkgmanifest(x86-64) = 0.5.8-1.fc43
      1 libpkgmanifest.so.0()(64bit)
      1 pkgconfig(yaml-cpp)
      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
$ rpm -q --requires -p
../RPMS/x86_64/python3-libpkgmanifest-0.5.8-1.fc43.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.4)(64bit)
      1 libc.so.6(GLIBC_ABI_DT_RELR)(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 libpkgmanifest(x86-64) = 0.5.8-1.fc43
      1 libpkgmanifest.so.0()(64bit)
      1 libpython3.13.so.1.0()(64bit)
      1 libstdc++.so.6()(64bit)
      1 libstdc++.so.6(CXXABI_1.3)(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.21)(64bit)
      1 libstdc++.so.6(GLIBCXX_3.4.30)(64bit)
      1 libstdc++.so.6(GLIBCXX_3.4.32)(64bit)
      1 python(abi) = 3.13
      1 rpmlib(CompressedFileNames) <= 3.0.4-1
      1 rpmlib(FileDigests) <= 4.6.0-1
      1 rpmlib(PartialHardlinkSets) <= 4.0.4-1
      1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
      1 rpmlib(PayloadIsZstd) <= 5.4.18-1
      1 rtld(GNU_HASH)
Binary requires are Ok.

TODO: Report upstream that libpkgmanifest.pc file contains a useless dependency
on yaml-cpp. The library links to libyaml-cpp.so and header files do not
include yaml-cpp header files. Therefore libpkgmanifest applications do not
need to link to yaml-cpp and it should not be declared in Requires of the
pkg-config file.

$ rpm -q --provides -p ../RPMS/x86_64/libpkgmanifest-0.5.8-1.fc43.x86_64.rpm |
sort -f | uniq -c
      1 libpkgmanifest = 0.5.8-1.fc43
      1 libpkgmanifest(x86-64) = 0.5.8-1.fc43
      1 libpkgmanifest.so.0()(64bit)
$ rpm -q --provides -p
../RPMS/x86_64/libpkgmanifest-devel-0.5.8-1.fc43.x86_64.rpm | sort -f | uniq -c
      1 libpkgmanifest-devel = 0.5.8-1.fc43
      1 libpkgmanifest-devel(x86-64) = 0.5.8-1.fc43
      1 pkgconfig(libpkgmanifest) = 0.5.8
$ rpm -q --provides -p
../RPMS/x86_64/python3-libpkgmanifest-0.5.8-1.fc43.x86_64.rpm | sort -f | uniq
-c
      1 python-libpkgmanifest = 0.5.8-1.fc43
      1 python3-libpkgmanifest = 0.5.8-1.fc43
      1 python3-libpkgmanifest(x86-64) = 0.5.8-1.fc43
      1 python3.13-libpkgmanifest = 0.5.8-1.fc43
      1 python3.13dist(libpkgmanifest) = 0.5.8
      1 python3dist(libpkgmanifest) = 0.5.8
Binary provides are Ok.

$ resolvedeps f43-build
../RPMS/x86_64/libpkgmanifest{,-devel}-0.5.8-1.fc43.x86_64.rpm 
Binary dependencies are resolvable. Ok.

The package builds in Fedora 43
<https://koji.fedoraproject.org/koji/taskinfo?taskID=131007412>. Ok.

Otherwise, the package is in line-with Fedora and Python packaging guidelines.
Please correct FIX item, consider fixing TODO items, and provide a new spec
file.


-- 
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
https://bugzilla.redhat.com/show_bug.cgi?id=2354797

Report this comment as SPAM: https://bugzilla.redhat.com/enter_bug.cgi?product=Bugzilla&format=report-spam&short_desc=Report%20of%20Bug%202354797%23c6

-- 
_______________________________________________
package-review mailing list -- package-review@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to package-review-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/package-review@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue




[Index of Archives]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite Conditions]     [KDE Users]

  Powered by Linux