[Bug 2165536] Review Request: libbee2 - Cryptographic library

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

 



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



--- Comment #2 from Petr Pisar <ppisar@xxxxxxxxxx> ---
URL and Source0 addresses are Ok.
Source0 archive (SHA-512:
7b245d490281467bd78ce0f3ae21c168a737c3ca36310cff67677aeb4a715759efdb26ca71bdfef9e6b8e10ba3dc80e407afa60c1632093dd5269805ba2cc172)
is original. Ok.

TODO: I think this package should be called "bee2". It's the name used on the
home page, on github and also the archive is called like that.
TODO: The libbee2 summary is very general. I see that the algorithm names are
quite terrible, but couldn't the summary be made more specific? E.g. "STB
cryptography"? The same applies to bsum summary.

Description texts are Ok.

GPL-3.0-only license verified in win/bee2.rc, win/bee2.c, test/test.c,
README.md, LICENSE and other files.
include/bee2/info.h* are files are "GPL-3.0-only AND GPL-3.0-or-later".
include/bee2/info.h is included into src/core/util.c which is linked into bee2
dynamic and static libraries. bsum tool links to a dynamic library, hence it
does not contain the header file.
FIX: Please correct the license tag for libbee2 and libbee2-devel packages to
"GPL-3.0-only AND GPL-3.0-or-later". bsum should use "GPL-3.0-only".
TODO: It's possible the GPL-3.0-or-later license is an upstream's mistake.
Please report it.

FIX: Build-require 'sed' (libbee2.spec:45).

TODO: You don't have to add -fPIE and -pie to build flags. Fedora default build
flags linked from CFLAGS and LDFLAGS environment variables already do that.

FIX: Build-require "coreutils" (libbee2.spec:67).

The assembler code with SMD instructions is not built. Thus the resulting code
is compatible with a minimal Fedora-supported CPU instruction set.

FIX: A soname of the library is "libbee2.so.2.0". The %files section must name
it explicitly
<https://docs.fedoraproject.org/en-US/packaging-guidelines/#_listing_shared_library_files>,
hence "%{_libdir}/libbee2.so.2.*" glob is not specific enough. Use
"%{_libdir}/libbee2.so.2.0" and "%{_libdir}/libbee2.so.%{version}" to capture
both files.

All tests pass. Ok.

$ rpmlint libbee2.spec ../SRPMS/libbee2-2.1.0-1.fc38.src.rpm
../RPMS/x86_64/libbee2-* ../RPMS/x86_64/bsum-*
======================================== rpmlint session starts
=======================================
rpmlint: 2.4.0
configuration:
    /usr/lib/python3.11/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-legacy-licenses.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: 31, packages: 8

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

$ rpm -q -lv -p ../RPMS/x86_64/libbee2-2.1.0-1.fc38.x86_64.rpm
drwxr-xr-x    2 root     root                        0 Jan 30 01:00
/usr/lib/.build-id
drwxr-xr-x    2 root     root                        0 Jan 30 01:00
/usr/lib/.build-id/78
lrwxrwxrwx    1 root     root                       38 Jan 30 01:00
/usr/lib/.build-id/78/bd508922a537e5e8af20c139756d4c1cac60e7 ->
../../../../usr/lib64/libbee2.so.2.1.0
lrwxrwxrwx    1 root     root                       16 Jan 30 01:00
/usr/lib64/libbee2.so.2.0 -> libbee2.so.2.1.0
-rwxr-xr-x    1 root     root                   765744 Jan 30 01:00
/usr/lib64/libbee2.so.2.1.0
drwxr-xr-x    2 root     root                        0 Jan 30 01:00
/usr/share/doc/libbee2
-rw-r--r--    1 root     root                      905 Jun 30  2021
/usr/share/doc/libbee2/AUTHORS.md
-rw-r--r--    1 root     root                     3242 Jun 30  2021
/usr/share/doc/libbee2/README.md
drwxr-xr-x    2 root     root                        0 Jan 30 01:00
/usr/share/licenses/libbee2
-rw-r--r--    1 root     root                    35142 Jun 30  2021
/usr/share/licenses/libbee2/LICENSE
-rw-r--r--    1 root     root                     1888 Jan 30 01:00
/usr/share/man/man3/b64.h.3.gz
-rw-r--r--    1 root     root                     5689 Jan 30 01:00
/usr/share/man/man3/bake.h.3.gz
-rw-r--r--    1 root     root                      452 Jan 30 01:00
/usr/share/man/man3/bake_cert.3.gz
-rw-r--r--    1 root     root                      611 Jan 30 01:00
/usr/share/man/man3/bake_settings.3.gz
-rw-r--r--    1 root     root                     4443 Jan 30 01:00
/usr/share/man/man3/bash.h.3.gz
-rw-r--r--    1 root     root                     3741 Jan 30 01:00
/usr/share/man/man3/bels.h.3.gz
-rw-r--r--    1 root     root                    10828 Jan 30 01:00
/usr/share/man/man3/belt.h.3.gz
-rw-r--r--    1 root     root                     4462 Jan 30 01:00
/usr/share/man/man3/bign.h.3.gz
-rw-r--r--    1 root     root                      560 Jan 30 01:00
/usr/share/man/man3/bign_params.3.gz
-rw-r--r--    1 root     root                     2019 Jan 30 01:00
/usr/share/man/man3/blob.h.3.gz
-rw-r--r--    1 root     root                     5356 Jan 30 01:00
/usr/share/man/man3/botp.h.3.gz
-rw-r--r--    1 root     root                     3497 Jan 30 01:00
/usr/share/man/man3/brng.h.3.gz
-rw-r--r--    1 root     root                     4651 Jan 30 01:00
/usr/share/man/man3/defs.h.3.gz
-rw-r--r--    1 root     root                     5099 Jan 30 01:00
/usr/share/man/man3/der.h.3.gz
-rw-r--r--    1 root     root                      439 Jan 30 01:00
/usr/share/man/man3/der_anchor.3.gz
-rw-r--r--    1 root     root                     3554 Jan 30 01:00
/usr/share/man/man3/dstu.h.3.gz
-rw-r--r--    1 root     root                      559 Jan 30 01:00
/usr/share/man/man3/dstu_params.3.gz
-rw-r--r--    1 root     root                     5683 Jan 30 01:00
/usr/share/man/man3/ec.h.3.gz
-rw-r--r--    1 root     root                     2350 Jan 30 01:00
/usr/share/man/man3/ec2.h.3.gz
-rw-r--r--    1 root     root                     1194 Jan 30 01:00
/usr/share/man/man3/ec_o.3.gz
-rw-r--r--    1 root     root                     2673 Jan 30 01:00
/usr/share/man/man3/ecp.h.3.gz
-rw-r--r--    1 root     root                      999 Jan 30 01:00
/usr/share/man/man3/err.h.3.gz
-rw-r--r--    1 root     root                     3039 Jan 30 01:00
/usr/share/man/man3/g12s.h.3.gz
-rw-r--r--    1 root     root                      599 Jan 30 01:00
/usr/share/man/man3/g12s_params.3.gz
-rw-r--r--    1 root     root                     2827 Jan 30 01:00
/usr/share/man/man3/gf2.h.3.gz
-rw-r--r--    1 root     root                     1306 Jan 30 01:00
/usr/share/man/man3/gfp.h.3.gz
-rw-r--r--    1 root     root                     1870 Jan 30 01:00
/usr/share/man/man3/hex.h.3.gz
-rw-r--r--    1 root     root                      273 Jan 30 01:00
/usr/share/man/man3/info.h.3.gz
-rw-r--r--    1 root     root                     3869 Jan 30 01:00
/usr/share/man/man3/mem.h.3.gz
-rw-r--r--    1 root     root                     2751 Jan 30 01:00
/usr/share/man/man3/mt.h.3.gz
-rw-r--r--    1 root     root                     1813 Jan 30 01:00
/usr/share/man/man3/obj.h.3.gz
-rw-r--r--    1 root     root                      439 Jan 30 01:00
/usr/share/man/man3/obj_hdr_t.3.gz
-rw-r--r--    1 root     root                     1553 Jan 30 01:00
/usr/share/man/man3/oid.h.3.gz
-rw-r--r--    1 root     root                     3145 Jan 30 01:00
/usr/share/man/man3/pfok.h.3.gz
-rw-r--r--    1 root     root                      491 Jan 30 01:00
/usr/share/man/man3/pfok_params.3.gz
-rw-r--r--    1 root     root                      413 Jan 30 01:00
/usr/share/man/man3/pfok_seed.3.gz
-rw-r--r--    1 root     root                     4966 Jan 30 01:00
/usr/share/man/man3/pp.h.3.gz
-rw-r--r--    1 root     root                      452 Jan 30 01:00
/usr/share/man/man3/pp_pentanom_st.3.gz
-rw-r--r--    1 root     root                      411 Jan 30 01:00
/usr/share/man/man3/pp_trinom_st.3.gz
-rw-r--r--    1 root     root                     3076 Jan 30 01:00
/usr/share/man/man3/pri.h.3.gz
-rw-r--r--    1 root     root                     1983 Jan 30 01:00
/usr/share/man/man3/prng.h.3.gz
-rw-r--r--    1 root     root                     4538 Jan 30 01:00
/usr/share/man/man3/qr.h.3.gz
-rw-r--r--    1 root     root                     1072 Jan 30 01:00
/usr/share/man/man3/qr_o.3.gz
-rw-r--r--    1 root     root                     4041 Jan 30 01:00
/usr/share/man/man3/rng.h.3.gz
-rw-r--r--    1 root     root                     1563 Jan 30 01:00
/usr/share/man/man3/safe.h.3.gz
-rw-r--r--    1 root     root                     1884 Jan 30 01:00
/usr/share/man/man3/stack.h.3.gz
-rw-r--r--    1 root     root                     1642 Jan 30 01:00
/usr/share/man/man3/str.h.3.gz
-rw-r--r--    1 root     root                     1960 Jan 30 01:00
/usr/share/man/man3/tm.h.3.gz
-rw-r--r--    1 root     root                     1764 Jan 30 01:00
/usr/share/man/man3/u16.h.3.gz
-rw-r--r--    1 root     root                     1761 Jan 30 01:00
/usr/share/man/man3/u32.h.3.gz
-rw-r--r--    1 root     root                     1759 Jan 30 01:00
/usr/share/man/man3/u64.h.3.gz
-rw-r--r--    1 root     root                     3062 Jan 30 01:00
/usr/share/man/man3/util.h.3.gz
-rw-r--r--    1 root     root                     1443 Jan 30 01:00
/usr/share/man/man3/word.h.3.gz
-rw-r--r--    1 root     root                     4784 Jan 30 01:00
/usr/share/man/man3/ww.h.3.gz
-rw-r--r--    1 root     root                     2452 Jan 30 01:00
/usr/share/man/man3/zm.h.3.gz
-rw-r--r--    1 root     root                     7261 Jan 30 01:00
/usr/share/man/man3/zz.h.3.gz
FIX: Section 3 manual pages belong to devel subpackage. They document an API of
the library.

$ rpm -q -lv -p ../RPMS/x86_64/libbee2-devel-2.1.0-1.fc38.x86_64.rpm 
-rw-r--r--    1 root     root                     5452 Jun 30  2021
/usr/include/bee2/core/b64.h
-rw-r--r--    1 root     root                     6421 Jun 30  2021
/usr/include/bee2/core/blob.h
-rw-r--r--    1 root     root                     7277 Jun 30  2021
/usr/include/bee2/core/dec.h
-rw-r--r--    1 root     root                    23828 Jun 30  2021
/usr/include/bee2/core/der.h
-rw-r--r--    1 root     root                     8253 Jun 30  2021
/usr/include/bee2/core/err.h
-rw-r--r--    1 root     root                     7620 Jun 30  2021
/usr/include/bee2/core/hex.h
-rw-r--r--    1 root     root                    17205 Jun 30  2021
/usr/include/bee2/core/mem.h
-rw-r--r--    1 root     root                     8929 Jun 30  2021
/usr/include/bee2/core/mt.h
-rw-r--r--    1 root     root                     6297 Jun 30  2021
/usr/include/bee2/core/obj.h
-rw-r--r--    1 root     root                     4584 Jun 30  2021
/usr/include/bee2/core/oid.h
-rw-r--r--    1 root     root                     7453 Jun 30  2021
/usr/include/bee2/core/prng.h
-rw-r--r--    1 root     root                    15568 Jun 30  2021
/usr/include/bee2/core/rng.h
-rw-r--r--    1 root     root                     4911 Jun 30  2021
/usr/include/bee2/core/safe.h
-rw-r--r--    1 root     root                     6143 Jun 30  2021
/usr/include/bee2/core/stack.h
-rw-r--r--    1 root     root                     4979 Jun 30  2021
/usr/include/bee2/core/str.h
-rw-r--r--    1 root     root                     5923 Jun 30  2021
/usr/include/bee2/core/tm.h
-rw-r--r--    1 root     root                     5602 Jun 30  2021
/usr/include/bee2/core/u16.h
-rw-r--r--    1 root     root                     5610 Jun 30  2021
/usr/include/bee2/core/u32.h
-rw-r--r--    1 root     root                     5957 Jun 30  2021
/usr/include/bee2/core/u64.h
-rw-r--r--    1 root     root                    10459 Jun 30  2021
/usr/include/bee2/core/util.h
-rw-r--r--    1 root     root                     7654 Jun 30  2021
/usr/include/bee2/core/word.h
-rw-r--r--    1 root     root                    38070 Jun 30  2021
/usr/include/bee2/crypto/bake.h
-rw-r--r--    1 root     root                    21129 Jun 30  2021
/usr/include/bee2/crypto/bash.h
-rw-r--r--    1 root     root                    19295 Jun 30  2021
/usr/include/bee2/crypto/bels.h
-rw-r--r--    1 root     root                    89383 Jun 30  2021
/usr/include/bee2/crypto/belt.h
-rw-r--r--    1 root     root                    29707 Jun 30  2021
/usr/include/bee2/crypto/bign.h
-rw-r--r--    1 root     root                    27544 Jun 30  2021
/usr/include/bee2/crypto/botp.h
-rw-r--r--    1 root     root                     9308 Jun 30  2021
/usr/include/bee2/crypto/bpki.h
-rw-r--r--    1 root     root                    15510 Jun 30  2021
/usr/include/bee2/crypto/brng.h
-rw-r--r--    1 root     root                    14895 Jun 30  2021
/usr/include/bee2/crypto/dstu.h
-rw-r--r--    1 root     root                    12092 Jun 30  2021
/usr/include/bee2/crypto/g12s.h
-rw-r--r--    1 root     root                    16418 Jun 30  2021
/usr/include/bee2/crypto/pfok.h
-rw-r--r--    1 root     root                    23223 Jun 30  2021
/usr/include/bee2/defs.h
-rw-r--r--    1 root     root                     7237 Jun 30  2021
/usr/include/bee2/info.h
-rw-r--r--    1 root     root                    32259 Jun 30  2021
/usr/include/bee2/math/ec.h
-rw-r--r--    1 root     root                     9418 Jun 30  2021
/usr/include/bee2/math/ec2.h
-rw-r--r--    1 root     root                    10605 Jun 30  2021
/usr/include/bee2/math/ecp.h
-rw-r--r--    1 root     root                     9833 Jun 30  2021
/usr/include/bee2/math/gf2.h
-rw-r--r--    1 root     root                     3966 Jun 30  2021
/usr/include/bee2/math/gfp.h
-rw-r--r--    1 root     root                    23799 Jun 30  2021
/usr/include/bee2/math/pp.h
-rw-r--r--    1 root     root                    13648 Jun 30  2021
/usr/include/bee2/math/pri.h
-rw-r--r--    1 root     root                    21969 Jun 30  2021
/usr/include/bee2/math/qr.h
-rw-r--r--    1 root     root                    24548 Jun 30  2021
/usr/include/bee2/math/ww.h
-rw-r--r--    1 root     root                    11723 Jun 30  2021
/usr/include/bee2/math/zm.h
-rw-r--r--    1 root     root                    48871 Jun 30  2021
/usr/include/bee2/math/zz.h
lrwxrwxrwx    1 root     root                       14 Jan 30 01:00
/usr/lib64/libbee2.so -> libbee2.so.2.0
FIX: devel subpackage must own %{_includedir}/bee2, %{_includedir}/bee2/core
etc. directories. I recommend simply using "%{_includedir}/bee2" in %files
section instead of listing files separately.

$ rpm -q -lv -p ../RPMS/x86_64/bsum-2.1.0-1.fc38.x86_64.rpm 
-rwxr-xr-x    1 root     root                    15592 Jan 30 01:00
/usr/bin/bsum
drwxr-xr-x    2 root     root                        0 Jan 30 01:00
/usr/lib/.build-id
drwxr-xr-x    2 root     root                        0 Jan 30 01:00
/usr/lib/.build-id/fa
lrwxrwxrwx    1 root     root                       24 Jan 30 01:00
/usr/lib/.build-id/fa/11ffb604a21eab277b740f03211e607b09e825 ->
../../../../usr/bin/bsum
bsum binary package layou and file permissions are Ok.

$ rpm -q --requires -p ../RPMS/x86_64/libbee2-2.1.0-1.fc38.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 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/libbee2-devel-2.1.0-1.fc38.x86_64.rpm |
sort -f | uniq -c
      1 libbee2(x86-64) = 2.1.0-1.fc38
      1 libbee2.so.2.0()(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
$ rpm -q --requires -p ../RPMS/x86_64/bsum-2.1.0-1.fc38.x86_64.rpm | sort -f |
uniq -c
      1 libbee2(x86-64) = 2.1.0-1.fc38
      1 libbee2.so.2.0()(64bit)
      1 libc.so.6()(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.34)(64bit)
      1 libc.so.6(GLIBC_2.4)(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/libbee2-2.1.0-1.fc38.x86_64.rpm | sort -f
| uniq -c
      1 libbee2 = 2.1.0-1.fc38
      1 libbee2(x86-64) = 2.1.0-1.fc38
      1 libbee2.so.2.0()(64bit)
$ rpm -q --provides -p ../RPMS/x86_64/libbee2-devel-2.1.0-1.fc38.x86_64.rpm |
sort -f | uniq -c
      1 libbee2-devel = 2.1.0-1.fc38
      1 libbee2-devel(x86-64) = 2.1.0-1.fc38
$ rpm -q --provides -p ../RPMS/x86_64/bsum-2.1.0-1.fc38.x86_64.rpm | sort -f |
uniq -c
      1 bsum = 2.1.0-1.fc38
      1 bsum(x86-64) = 2.1.0-1.fc38
Binary provides are Ok.

$ resolvedeps rawhide
../RPMS/x86_64/{libbee2,libbee2-devel,bsum}-2.1.0-1.fc38.x86_64.rpm
Binary dependencies are resolvable. Ok.

The package fails to build on s390x F38
(https://koji.fedoraproject.org/koji/taskinfo?taskID=97237047) because a
beltTest test fails there. s390x is a big-endian, 64-bit, signed char
archicterure. Maybe there is a bug in the library which manifests on that
architecture.
FIX: Either fix the bug, or exclude the package from building on s390x with
"ExcludeArch: s390x"
<https://docs.fedoraproject.org/en-US/packaging-guidelines/#_architecture_build_failures>.

Otherwise, the package is in line with Fedora packaging guidelines.
Please correct the FIX items, 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=2165536
_______________________________________________
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