Bug 2216484 - Review Request: sexpp - S-expressions parser and generator tools
Summary: Review Request: sexpp - S-expressions parser and generator tools
Keywords:
Status: ASSIGNED
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Petr Pisar
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2023-06-21 15:06 UTC by Remi Collet
Modified: 2023-06-30 14:55 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed:
Type: ---
Embargoed:
ppisar: fedora-review+


Attachments (Terms of Use)

Description Remi Collet 2023-06-21 15:06:47 UTC
Spec URL: https://git.remirepo.net/cgit/rpms/lib/sexp.git/plain/sexp.spec?id=35dda533579c08f066d03b26f5b7643b3a5e63c0
SRPM URL: https://rpms.remirepo.net/SRPMS/sexp-0.8.5-1.remi.src.rpm
Description: 
S-expressions parser and generator tools.

Fedora Account System Username: remi


----

This library is for now bundled in rnp (used by thunderbird for GPG features)
Support for build as shared is new (and still uncompleted, so requires "soversion" patch)

Comment 1 Remi Collet 2023-06-21 15:08:32 UTC
Scratch build
https://koji.fedoraproject.org/koji/taskinfo?taskID=102422724

Comment 4 Remi Collet 2023-06-23 06:34:59 UTC
Probably have to wait on https://github.com/rnpgp/sexp/issues/45 name conflict libsexp (rnpgp/sexp and mjsottile/sfsexp)

Comment 6 Petr Pisar 2023-06-30 14:55:04 UTC
URL and Source0 addresses are Ok.
Source0 archive (SHA-512: 28b93626887da3c1228ddbb9b8566f2d9895f263a1fc31ac2cfa6fc0215cb6a8ec31900255335792bfd580d10f53dd3f88274df83f8c0ddff62ebe35dce7da08) is original. Ok.
Summary verified from README.adoc. Ok.
Description verified from README.adoc. Ok.
License verified from tests/src/primitives-tests.cpp, tests/src/g23-exception-tests.cpp, tests/src/g23-compat-tests.cpp, tests/src/g10-compat-tests.cpp, tests/src/exception-tests.cpp, tests/src/compare-files.cpp, tests/src/baseline-tests.cpp, tests/scripts/tests.sh, tests/include/sexp-tests, src/sexp-simple-string.cpp, src/sexp-output.cpp, src/sexp-object.cpp, src/sexp-main.cpp, src/sexp-input.cpp, src/sexp-error.cpp, src/sexp-depth-manager.cpp, src/sexp-char-defs.cpp, src/ext-key-format.cpp, include/sexpp/sexp.h, include/sexpp/sexp-public.h, include/sexpp/sexp-error.h, include/sexpp/ext-key-format.h, flake.nix, default.nix, codecov.yml, cmake/version.cmake, cmake/sexp-samples-folder.h.in, README.adoc, LICENSE.md, CMakeLists.txt, .github/workflows/nix.yml, .github/workflows/lint.yml, .github/workflows/coverity.yml, .github/workflows/coverage.yml, .github/workflows/codeql.yml, .github/workflows/build-and-test.yml, .github/workflows/build-and-test-rh.yml, .github/workflows/build-and-test-msys.yml, .github/workflows/build-and-test-deb.yml.

TODO: Build-require 'coreutils' under licensecheck condition (sexpp.spec:70).
TODO: Build-require 'grep' under licensecheck condition (sexpp.spec:73).
TODO: Build-require 'sed' under licensecheck condition (sexpp.spec:73).

TODO: Pass an explicit -DWITH_SEXP_TESTS=ON/OFF option to %cmake based on 'tests' macro. There is no need to build tests if you are not going to run them.
TODO: Pass explicit -DWITH_SEXP_CLI=ON -DWITH_SANITIZERS=OFF -DWITH_COVERAGE=OFF options to %cmake. That will prevent from an unnoticed change in upstream defaults.

All tests pass. Ok.

$ rpmlint sexpp.spec ../SRPMS/sexpp-0.8.7-1.fc39.src.rpm ../RPMS/x86_64/sexpp-* ../RPMS/x86_64/libsexpp-*
======================================== 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

sexpp.spec:75: W: mixed-use-of-spaces-and-tabs (spaces: line 10, tab: line 75)
sexpp.spec:75: W: mixed-use-of-spaces-and-tabs (spaces: line 10, tab: line 75)
========= 7 packages and 1 specfiles checked; 0 errors, 2 warnings, 0 badness; has taken 0.5 s ========

TODO: Normalize whitespace in the spec file.

$ rpm -q -lv -p  ../RPMS/x86_64/sexpp-0.8.7-1.fc39.x86_64.rpm 
-rwxr-xr-x    1 root     root                    25584 Jun 26 02:00 /usr/bin/sexpp
drwxr-xr-x    2 root     root                        0 Jun 26 02:00 /usr/lib/.build-id
drwxr-xr-x    2 root     root                        0 Jun 26 02:00 /usr/lib/.build-id/85
lrwxrwxrwx    1 root     root                       25 Jun 26 02:00 /usr/lib/.build-id/85/6042f9ca57991a892f7fbba68986672cfc3ddc -> ../../../../usr/bin/sexpp
-rw-r--r--    1 root     root                      813 Jun 26 02:00 /usr/share/man/man1/sexpp.1.gz
$ rpm -q -lv -p  ../RPMS/x86_64/libsexpp-0.8.7-1.fc39.x86_64.rpm 
drwxr-xr-x    2 root     root                        0 Jun 26 02:00 /usr/lib/.build-id
drwxr-xr-x    2 root     root                        0 Jun 26 02:00 /usr/lib/.build-id/1b
lrwxrwxrwx    1 root     root                       39 Jun 26 02:00 /usr/lib/.build-id/1b/99df56177ea18d3307a7bfcddee0ea992bdb04 -> ../../../../usr/lib64/libsexpp.so.0.8.7
lrwxrwxrwx    1 root     root                       17 Jun 26 02:00 /usr/lib64/libsexpp.so.0 -> libsexpp.so.0.8.7
-rwxr-xr-x    1 root     root                    71080 Jun 26 02:00 /usr/lib64/libsexpp.so.0.8.7
drwxr-xr-x    2 root     root                        0 Jun 26 02:00 /usr/share/licenses/libsexpp
-rw-r--r--    1 root     root                     1368 Jun 26 02:00 /usr/share/licenses/libsexpp/LICENSE.md
$ rpm -q -lv -p  ../RPMS/x86_64/libsexpp-devel-0.8.7-1.fc39.x86_64.rpm 
drwxr-xr-x    2 root     root                        0 Jun 26 02:00 /usr/include/sexpp
-rw-r--r--    1 root     root                     3270 Jun 26 02:00 /usr/include/sexpp/ext-key-format.h
-rw-r--r--    1 root     root                     2909 Jun 26 02:00 /usr/include/sexpp/sexp-error.h
-rw-r--r--    1 root     root                     1287 Jun 26 02:00 /usr/include/sexpp/sexp-public.h
-rw-r--r--    1 root     root                    17593 Jun 26 02:00 /usr/include/sexpp/sexp.h
lrwxrwxrwx    1 root     root                       13 Jun 26 02:00 /usr/lib64/libsexpp.so -> libsexpp.so.0
-rw-r--r--    1 root     root                      210 Jun 26 02:00 /usr/lib64/pkgconfig/sexpp.pc
File layout and permission are Ok.

$ rpm -q --requires -p  ../RPMS/x86_64/sexpp-0.8.7-1.fc39.x86_64.rpm | sort -f | uniq -c
      1 glibc >= 2.37.9000-14
      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.34)(64bit)
      1 libc.so.6(GLIBC_2.38)(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 libsexpp(x86-64) = 0.8.7-1.fc39
      1 libsexpp.so.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.11)(64bit)
      1 libstdc++.so.6(GLIBCXX_3.4.32)(64bit)
      1 libstdc++.so.6(GLIBCXX_3.4.9)(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/libsexpp-0.8.7-1.fc39.x86_64.rpm | sort -f | uniq -c
      1 glibc >= 2.37.9000-14
      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.32)(64bit)
      1 libc.so.6(GLIBC_2.38)(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)(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.11)(64bit)
      1 libstdc++.so.6(GLIBCXX_3.4.30)(64bit)
      1 libstdc++.so.6(GLIBCXX_3.4.32)(64bit)
      1 libstdc++.so.6(GLIBCXX_3.4.9)(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/libsexpp-devel-0.8.7-1.fc39.x86_64.rpm | sort -f | uniq -c
      1 /usr/bin/pkg-config
      1 libsexpp(x86-64) = 0.8.7-1.fc39
      1 libsexpp.so.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
Binary requires are Ok.

$ rpm -q --provides -p  ../RPMS/x86_64/sexpp-0.8.7-1.fc39.x86_64.rpm | sort -f | uniq -c
      1 sexpp = 0.8.7-1.fc39
      1 sexpp(x86-64) = 0.8.7-1.fc39
$ rpm -q --provides -p  ../RPMS/x86_64/libsexpp-0.8.7-1.fc39.x86_64.rpm | sort -f | uniq -c
      1 libsexpp = 0.8.7-1.fc39
      1 libsexpp(x86-64) = 0.8.7-1.fc39
      1 libsexpp.so.0()(64bit)
$ rpm -q --provides -p  ../RPMS/x86_64/libsexpp-devel-0.8.7-1.fc39.x86_64.rpm | sort -f | uniq -c
      1 libsexpp-devel = 0.8.7-1.fc39
      1 libsexpp-devel(x86-64) = 0.8.7-1.fc39
      1 pkgconfig(sexpp) = 0.8.7
Binary provides are Ok.

$ resolvedeps rawhide ../RPMS/x86_64/sexpp-* ../RPMS/x86_64/libsexpp-*
Binary dependencies are resolvable. Ok.

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

The package is in line with Fedora and CMake packaging guidelines.
Please consider fixing the TODO items before building this package.
Resolution: Package APPROVED.


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