[Bug 2315907] Review Request: lmdbal - LMDB Abstraction Layer

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

 



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



--- Comment #2 from Petr Pisar <ppisar@xxxxxxxxxx> ---
URL and Source addresses are Ok.
Source archive (SHA512
e4d037c1080888a7ca5da400ff52cc1f756289a22f8f35f60a3bba68871033e6c53cbffe1641df4906b819d7dba6e1127d12d3fc1d508de526764f12584bf7b2)
is original. Ok.

TODO: I recommend menitioning "Qt" in the description because lmdbal API uses
Qt classes. That's import for programs deciding what library they will use.
E.g. the Qt dependency would be a no-go for Gnome applications.

FIX: lmdbal-devel subpackage has a summary and a description equal to lmdbal
subpackage. That's not good. Please use genuine and more descriptive texts.
E.g. "Developmental files for lmdbal library".

TODO: Add a link <https://git.macaw.me/blue/lmdbal/pulls/2> to the Patch, and
preferably use patches from the pull request.

Licenses found:

LICENSE.md: Modified GPL-3.0 text.
FATAL: The modification violates the license. People are not allowed to do
modifications of the license text. Original version is at
<https://www.gnu.org/licenses/gpl-3.0.md>. See e.g. the first line with a
different number of hash signs. Report it to upstream to use FSF's copy of
LICENSE.md.

cmake/FindLMDB.cmake: GPL-3.0-only
README.md: GPL-3.0-only
src/base.cpp: GPL-3.0-or-later
src/base.h: GPL-3.0-or-later
src/cache.h: GPL-3.0-or-later
src/cache.hpp: GPL-3.0-or-later
src/cursor.h: GPL-3.0-or-later
src/cursor.hpp: GPL-3.0-or-later
src/exceptions.cpp: GPL-3.0-or-later
src/exceptions.h: GPL-3.0-or-later
src/operators.hpp: GPL-3.0-or-later
src/serializer/serializer.h: GPL-3.0-or-later
src/serializer/serializer.hpp: GPL-3.0-or-later
src/serializer/serializer_double.hpp: GPL-3.0-or-later
src/serializer/serializer_float.hpp: GPL-3.0-or-later
src/serializer/serializer_int16.hpp: GPL-3.0-or-later
src/serializer/serializer_int32.hpp: GPL-3.0-or-later
src/serializer/serializer_int64.hpp: GPL-3.0-or-later
src/serializer/serializer_int8.hpp: GPL-3.0-or-later
src/serializer/serializer_qbytearray.hpp: GPL-3.0-or-later
src/serializer/serializer_qstring.hpp: GPL-3.0-or-later
src/serializer/serializer_stdstring.hpp: GPL-3.0-or-later
src/serializer/serializer_uint16.hpp: GPL-3.0-or-later
src/serializer/serializer_uint32.hpp: GPL-3.0-or-later
src/serializer/serializer_uint64.hpp: GPL-3.0-or-later
src/serializer/serializer_uint8.hpp: GPL-3.0-or-later
src/storage.cpp: GPL-3.0-or-later
src/storage.h: GPL-3.0-or-later
src/storage.hpp: GPL-3.0-or-later

FIX: Correct license tag to "GPL-3.0-only AND GPL-3.0-or-later" in lmdbal
package and to "GPL-3.0-or-later" in lmdbal-devel package.
TODO: Ask upstream for clarifying the GPL-3.0-only clause in REAMDE.md. He
probably did it wrong because all the code explicitly allows later versions.

TODO: Add '>= 3.16' constraint to 'cmake' build-dependency (CMakeLists.txt:1).
That helps when porting the spec file to older distributions releases.
TODO: Specify BUILD_DOXYGEN_AWESOME option at %cmake macro. That helps from
surprises when upstream changes the default value.

TODO: You don't have to explicitly package files under %{_includedir}/%{name}
directory. %{_includedir}/%{name} is specific enough.

TODO: Remove disabling optimization from building the tests
(test/CMakeLists.txt:15). All Fedora code is supposed to build with default
optimization level. -O0 breaks code fortification as you can see in the
compiler warnings:

In file included from
/usr/include/c++/14/x86_64-redhat-linux/bits/os_defines.h:39,
                 from
/usr/include/c++/14/x86_64-redhat-linux/bits/c++config.h:2521,
                 from /usr/include/c++/14/cstddef:49,
                 from /usr/include/gtest/gtest.h:52,
                 from
/home/test/rpmbuild/BUILD/lmdbal-0.5.4-build/lmdbal/test/serialization.cpp:1:
/usr/include/features.h:422:4: warning: #warning _FORTIFY_SOURCE requires
compiling with optimization (-O) [-Wcpp]

All tests pass. Ok.

$ rpmlint lmdbal.spec ../SRPMS/lmdbal-0.5.4-1.fc42.src.rpm
../RPMS/x86_64/lmdbal-*
======================================== rpmlint session starts
=======================================
rpmlint: 2.5.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: 6

lmdbal-devel.x86_64: W: no-documentation
== 5 packages and 1 specfiles checked; 0 errors, 1 warnings, 50 filtered, 0
badness; has taken 0.6 s ==
FIX: Move the 3rd section manual pages to lmdbal-devel package.

$ rpm -q -lv -p ../RPMS/x86_64/lmdbal-0.5.4-1.fc42.x86_64.rpm 
drwxr-xr-x    2 root     root                        0 Oct  1 02:00
/usr/lib/.build-id
drwxr-xr-x    2 root     root                        0 Oct  1 02:00
/usr/lib/.build-id/01
lrwxrwxrwx    1 root     root                       36 Oct  1 02:00
/usr/lib/.build-id/01/5450a1df2d93cd02dda8c49a116ad426e57bcf ->
../../../../usr/lib64/libLMDBAL.so.1
-rwxr-xr-x    1 root     root                    95176 Oct  1 02:00
/usr/lib64/libLMDBAL.so.1
drwxr-xr-x    2 root     root                        0 Oct  1 02:00
/usr/share/doc/lmdbal
-rw-r--r--    1 root     root                     1238 Feb  4  2024
/usr/share/doc/lmdbal/CHANGELOG.md
-rw-r--r--    1 root     root                     3544 Feb  4  2024
/usr/share/doc/lmdbal/README.md
drwxr-xr-x    2 root     root                        0 Oct  1 02:00
/usr/share/licenses/lmdbal
-rw-r--r--    1 root     root                    34916 Feb  4  2024
/usr/share/licenses/lmdbal/LICENSE.md
-rw-r--r--    1 root     root                     2451 Oct  1 02:00
/usr/share/man/man3/LMDBAL_Base.3.gz
-rw-r--r--    1 root     root                     5727 Oct  1 02:00
/usr/share/man/man3/LMDBAL_Cache.3.gz
-rw-r--r--    1 root     root                      727 Oct  1 02:00
/usr/share/man/man3/LMDBAL_Closed.3.gz
-rw-r--r--    1 root     root                     2949 Oct  1 02:00
/usr/share/man/man3/LMDBAL_Cursor.3.gz
-rw-r--r--    1 root     root                      595 Oct  1 02:00
/usr/share/man/man3/LMDBAL_CursorEmpty.3.gz
-rw-r--r--    1 root     root                      659 Oct  1 02:00
/usr/share/man/man3/LMDBAL_CursorNotReady.3.gz
-rw-r--r--    1 root     root                      613 Oct  1 02:00
/usr/share/man/man3/LMDBAL_Directory.3.gz
-rw-r--r--    1 root     root                      593 Oct  1 02:00
/usr/share/man/man3/LMDBAL_Exception.3.gz
-rw-r--r--    1 root     root                      655 Oct  1 02:00
/usr/share/man/man3/LMDBAL_Exist.3.gz
-rw-r--r--    1 root     root                      649 Oct  1 02:00
/usr/share/man/man3/LMDBAL_NotFound.3.gz
-rw-r--r--    1 root     root                      564 Oct  1 02:00
/usr/share/man/man3/LMDBAL_Opened.3.gz
-rw-r--r--    1 root     root                      933 Oct  1 02:00
/usr/share/man/man3/LMDBAL_Serializer.3.gz
-rw-r--r--    1 root     root                      329 Oct  1 02:00
/usr/share/man/man3/LMDBAL_Serializer_ QByteArray _.3.gz
-rw-r--r--    1 root     root                      326 Oct  1 02:00
/usr/share/man/man3/LMDBAL_Serializer_ QString _.3.gz
-rw-r--r--    1 root     root                      324 Oct  1 02:00
/usr/share/man/man3/LMDBAL_Serializer_ double _.3.gz
-rw-r--r--    1 root     root                      323 Oct  1 02:00
/usr/share/man/man3/LMDBAL_Serializer_ float _.3.gz
-rw-r--r--    1 root     root                      327 Oct  1 02:00
/usr/share/man/man3/LMDBAL_Serializer_ int16_t _.3.gz
-rw-r--r--    1 root     root                      326 Oct  1 02:00
/usr/share/man/man3/LMDBAL_Serializer_ int32_t _.3.gz
-rw-r--r--    1 root     root                      327 Oct  1 02:00
/usr/share/man/man3/LMDBAL_Serializer_ int64_t _.3.gz
-rw-r--r--    1 root     root                      325 Oct  1 02:00
/usr/share/man/man3/LMDBAL_Serializer_ int8_t _.3.gz
-rw-r--r--    1 root     root                      329 Oct  1 02:00
/usr/share/man/man3/LMDBAL_Serializer_ std_string _.3.gz
-rw-r--r--    1 root     root                      327 Oct  1 02:00
/usr/share/man/man3/LMDBAL_Serializer_ uint16_t _.3.gz
-rw-r--r--    1 root     root                      327 Oct  1 02:00
/usr/share/man/man3/LMDBAL_Serializer_ uint32_t _.3.gz
-rw-r--r--    1 root     root                      328 Oct  1 02:00
/usr/share/man/man3/LMDBAL_Serializer_ uint64_t _.3.gz
-rw-r--r--    1 root     root                      326 Oct  1 02:00
/usr/share/man/man3/LMDBAL_Serializer_ uint8_t _.3.gz
-rw-r--r--    1 root     root                     6091 Oct  1 02:00
/usr/share/man/man3/LMDBAL_Storage.3.gz
-rw-r--r--    1 root     root                      637 Oct  1 02:00
/usr/share/man/man3/LMDBAL_StorageDuplicate.3.gz
-rw-r--r--    1 root     root                      942 Oct  1 02:00
/usr/share/man/man3/LMDBAL_Transaction.3.gz
-rw-r--r--    1 root     root                      678 Oct  1 02:00
/usr/share/man/man3/LMDBAL_TransactionTerminated.3.gz
-rw-r--r--    1 root     root                      732 Oct  1 02:00
/usr/share/man/man3/LMDBAL_Unknown.3.gz
-rw-r--r--    1 root     root                     1111 Oct  1 02:00
/usr/share/man/man3/LMDBAL_WriteTransaction.3.gz
-rw-r--r--    1 root     root                     3770 Oct  1 02:00
/usr/share/man/man3/LMDBAL_iStorage.3.gz
FIX: Package manual pages in lmdbal-devel subpackage. Those are for developers
and thus belong to devel subpackage.

$ rpm -q -lv -p ../RPMS/x86_64/lmdbal-devel-0.5.4-1.fc42.x86_64.rpm 
drwxr-xr-x    2 root     root                        0 Oct  1 02:00
/usr/include/lmdbal
-rw-r--r--    1 root     root                     8258 Feb  4  2024
/usr/include/lmdbal/base.h
-rw-r--r--    1 root     root                     5838 Feb  4  2024
/usr/include/lmdbal/cache.h
-rw-r--r--    1 root     root                    31369 Feb  4  2024
/usr/include/lmdbal/cache.hpp
-rw-r--r--    1 root     root                     4425 Feb  4  2024
/usr/include/lmdbal/cursor.h
-rw-r--r--    1 root     root                    25106 Feb  4  2024
/usr/include/lmdbal/cursor.hpp
-rw-r--r--    1 root     root                     6955 Feb  4  2024
/usr/include/lmdbal/exceptions.h
-rw-r--r--    1 root     root                     4950 Feb  4  2024
/usr/include/lmdbal/operators.hpp
-rw-r--r--    1 root     root                     1821 Feb  4  2024
/usr/include/lmdbal/serializer.h
-rw-r--r--    1 root     root                     3832 Feb  4  2024
/usr/include/lmdbal/serializer.hpp
-rw-r--r--    1 root     root                     1560 Feb  4  2024
/usr/include/lmdbal/serializer_double.hpp
-rw-r--r--    1 root     root                     1551 Feb  4  2024
/usr/include/lmdbal/serializer_float.hpp
-rw-r--r--    1 root     root                     1581 Feb  4  2024
/usr/include/lmdbal/serializer_int16.hpp
-rw-r--r--    1 root     root                     1584 Feb  4  2024
/usr/include/lmdbal/serializer_int32.hpp
-rw-r--r--    1 root     root                     1584 Feb  4  2024
/usr/include/lmdbal/serializer_int64.hpp
-rw-r--r--    1 root     root                     1575 Feb  4  2024
/usr/include/lmdbal/serializer_int8.hpp
-rw-r--r--    1 root     root                     1660 Feb  4  2024
/usr/include/lmdbal/serializer_qbytearray.hpp
-rw-r--r--    1 root     root                     1757 Feb  4  2024
/usr/include/lmdbal/serializer_qstring.hpp
-rw-r--r--    1 root     root                     1654 Feb  4  2024
/usr/include/lmdbal/serializer_stdstring.hpp
-rw-r--r--    1 root     root                     1592 Feb  4  2024
/usr/include/lmdbal/serializer_uint16.hpp
-rw-r--r--    1 root     root                     1590 Feb  4  2024
/usr/include/lmdbal/serializer_uint32.hpp
-rw-r--r--    1 root     root                     1591 Feb  4  2024
/usr/include/lmdbal/serializer_uint64.hpp
-rw-r--r--    1 root     root                     1584 Feb  4  2024
/usr/include/lmdbal/serializer_uint8.hpp
-rw-r--r--    1 root     root                    10146 Feb  4  2024
/usr/include/lmdbal/storage.h
-rw-r--r--    1 root     root                    51427 Feb  4  2024
/usr/include/lmdbal/storage.hpp
-rw-r--r--    1 root     root                     1198 Feb  4  2024
/usr/include/lmdbal/transaction.h
drwxr-xr-x    2 root     root                        0 Oct  1 02:00
/usr/lib64/cmake/lmdbal
-rw-r--r--    1 root     root                     1334 Oct  1 02:00
/usr/lib64/cmake/lmdbal/lmdbalConfig.cmake
-rw-r--r--    1 root     root                     1861 Oct  1 02:00
/usr/lib64/cmake/lmdbal/lmdbalConfigVersion.cmake
-rw-r--r--    1 root     root                      836 Oct  1 02:00
/usr/lib64/cmake/lmdbal/lmdbalTargets-debug.cmake
-rw-r--r--    1 root     root                     4567 Oct  1 02:00
/usr/lib64/cmake/lmdbal/lmdbalTargets.cmake
lrwxrwxrwx    1 root     root                       14 Oct  1 02:00
/usr/lib64/libLMDBAL.so -> libLMDBAL.so.1
File permisions and layout in lmdbal-devel are Ok.

$ rpm -q --requires -p ../RPMS/x86_64/lmdbal-0.5.4-1.fc42.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.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 liblmdb.so.0.0.0()(64bit)
      1 libQt5Core.so.5()(64bit)
      1 libQt5Core.so.5(Qt_5)(64bit)
      1 libQt5Core.so.5(Qt_5.15)(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.30)(64bit)
      1 libstdc++.so.6(GLIBCXX_3.4.32)(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/lmdbal-devel-0.5.4-1.fc42.x86_64.rpm |
sort -f | uniq -c
      1 cmake-filesystem(x86-64)
      1 libLMDBAL.so.1()(64bit)
      1 lmdbal(x86-64) = 0.5.4-1.fc42
      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
FIX: Run-require "lmdb-devel" in lmdbal-devel (/usr/include/lmdbal/base.h:32).
FIX: Run-require "qt5-qtbase-devel" in lmdbal-devel
(/usr/include/lmdbal/operators.hpp:28).

$ rpm -q --provides -p ../RPMS/x86_64/lmdbal-0.5.4-1.fc42.x86_64.rpm | sort -f
| uniq -c
      1 libLMDBAL.so.1()(64bit)
      1 lmdbal = 0.5.4-1.fc42
      1 lmdbal(x86-64) = 0.5.4-1.fc42
$ rpm -q --provides -p ../RPMS/x86_64/lmdbal-devel-0.5.4-1.fc42.x86_64.rpm |
sort -f | uniq -c
      1 cmake(lmdbal) = 0.5.4
      1 lmdbal-devel = 0.5.4-1.fc42
      1 lmdbal-devel(x86-64) = 0.5.4-1.fc42
Binary Provides are Ok.

Please correct the FIX items and consider fixing the TODO items.
I will continue with the review when the LICENSE.MD issue is resolved.


-- 
You are receiving this mail because:
You are always notified about changes to this product and component
You are on the CC list for the bug.
https://bugzilla.redhat.com/show_bug.cgi?id=2315907

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

-- 
_______________________________________________
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