Bug 2330591 - Review Request: gdbuspp - GDBus++ - a glib2 D-Bus API wrapper for C++
Summary: Review Request: gdbuspp - GDBus++ - a glib2 D-Bus API wrapper for C++
Keywords:
Status: POST
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Benson Muite
QA Contact: Fedora Extras Quality Assurance
URL: https://codeberg.org/OpenVPN/gdbuspp/
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2024-12-05 15:34 UTC by David Sommerseth
Modified: 2025-01-06 16:07 UTC (History)
2 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Type: ---
Embargoed:
benson_muite: fedora-review+


Attachments (Terms of Use)
The .spec file difference from Copr build 8363429 to 8412250 (868 bytes, patch)
2024-12-18 17:23 UTC, Fedora Review Service
no flags Details | Diff

Description David Sommerseth 2024-12-05 15:34:25 UTC
Spec URL: https://fedorapeople.org/~dsommers/pkgreview/gdbuspp/gdbuspp.spec
SRPM URL: https://fedorapeople.org/~dsommers/pkgreview/gdbuspp/gdbuspp-3-1.fc42.src.rpm
Description: GDBus++ is an API wrapper around glib2's D-Bus interface to write D-Bus
services and proxies (clients) using C++17.  It tries to avoid exposing
the low-level glib2 APIs as much as possible to the developer.

Fedora Account System Username: dsommers

This package is a dependency for another package review which will come a bit later, the OpenVPN 3 Linux project.  This is currently only in a Fedora Copr repo and not yet ready for package review: https://copr.fedorainfracloud.org/coprs/dsommers/openvpn3-devsnapshots/

Comment 1 David Sommerseth 2024-12-05 15:41:44 UTC
The fedora-review tool lists these files in the licensecheck ...

* gdbuspp-3-build/gdbuspp-3/gdbuspp-3/.reuse/dep5
  This is used by the REUSE tool to ensure licensing is properly handled.  This passes a reuse lint check from the git tree.

* gdbuspp-3-build/gdbuspp-3/gdbuspp-3/.vscode/launch.json
  vscodium configuraiton file, only defining targets for debugging via vscodium

* gdbuspp-3-build/gdbuspp-3/gdbuspp-3/doxygen/gdbuspp.doxy.in
  This has a proper license tagging via gdbuspp.doxy.in.license, required by REUSE

* gdbuspp-3-build/gdbuspp-3/gdbuspp-3/version.txt
  This is automatically generated by meson dist.  This contains the package version, which is extracted from a git tag during the 'meson dist' run.

I hope I've not missed anything else being crucial for the first review round.

Comment 2 Fedora Review Service 2024-12-05 15:45:50 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/8344525
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2330591-gdbuspp/fedora-rawhide-x86_64/08344525-gdbuspp/fedora-review/review.txt

Found issues:

- Package has .a files: gdbuspp-devel. Does not provide -static: gdbuspp-devel.
  Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/#packaging-static-libraries

Please know that there can be false-positives.

---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 3 Benson Muite 2024-12-05 18:19:55 UTC
Please put the static library in a separate package:
https://docs.fedoraproject.org/en-US/packaging-guidelines/#packaging-static-libraries

The first part of the soname should be included in the shared library file listing:
%{_libdir}/lib%{name}.so.*

Comment 4 David Sommerseth 2024-12-06 07:42:26 UTC
Thanks!  I'm sorry I didn't catch that in the early testing.

I'm actually considering removing it instead, since glib2 (which is a hard dependency) does not provide any static libraries either.  So static builds would not be that much helpful; it would end up in a mixed static/dynamic build.

I'll push out an update soon with the .a file removed and fix the other detail.  And if I should need to do the -static package, I'll add that.

Comment 5 David Sommerseth 2024-12-06 08:24:24 UTC
I've done a Fedora Copr build on x86_64 only here: https://copr.fedorainfracloud.org/coprs/dsommers/sandbox/build/8347734/


Regarding the shared library ...

%{_libdir}/lib%{name}.so.*

From what I see glib2 is doing, they ship the *.so link (it's not a file) in -devel, but the *so.* files in the main glib2 package.  I'm doing the same here as well.  To me this makes sense, as binaries depending on libgdbus/libglib-2.0/libgio-2.0 depends on the corresponding *.so.* files.  While the -devel package ships the *.so link, pointing at the corresponding *.so.* file - which is why there is a hard version dependency between the main package and the -devel package (%{name}%{?_isa} = %{version}-%{release}).

Or did I misunderstand you?

Comment 6 David Sommerseth 2024-12-06 08:35:05 UTC
Updated the files for the automation

Spec URL: https://fedorapeople.org/~dsommers/pkgreview/gdbuspp/gdbuspp.spec
SRPM URL: https://fedorapeople.org/~dsommers/pkgreview/gdbuspp/gdbuspp-3-2.fc42.src.rpm

Comment 7 Benson Muite 2024-12-08 07:09:46 UTC
Someone other than yourself needs to review the package.

[fedora-review-service-build]

Comment 8 Fedora Review Service 2024-12-08 07:19:26 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/8363429
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2330591-gdbuspp/fedora-rawhide-x86_64/08363429-gdbuspp/fedora-review/review.txt

Please take a look if any issues were found.


---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 9 David Sommerseth 2024-12-09 11:30:56 UTC
Sorry!  I didn't intend to do the + flag to rush or circumvent the review.  Just misunderstood the docs and I see now I should have used the [fedora-service...] approach in my comment instead.  Lesson learnt!

Please let me know if there are other things needed to be fixed.

Comment 10 Benson Muite 2024-12-18 11:14:33 UTC
Package Review
==============

Legend:
[x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
[ ] = Manual review needed


Issues:
=======
- Package does not contain duplicates in %files.
  Note: warning: File listed twice: /usr/share/doc/gdbuspp/README.md
  See: https://docs.fedoraproject.org/en-US/packaging-
  guidelines/#_duplicate_files


===== MUST items =====

C/C++:
[x]: Package does not contain kernel modules.
[x]: If your application is a C or C++ application you must list a
     BuildRequires against gcc, gcc-c++ or clang.
[x]: ldconfig not called in %post and %postun for Fedora 28 and later.
[x]: Package does not contain any libtool archives (.la)
[x]: Package contains no static executables.
[x]: Rpath absent or only used for internal libs.
[x]: Development (unversioned) .so files in -devel subpackage, if present.

Generic:
[x]: Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[x]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "GNU Affero General Public License v3.0", "Unknown or
     generated". 4 files have unknown license. Detailed output of
     licensecheck in
     /home/FedoraPackaging/reviews/gdbuspp/2330591-gdbuspp/licensecheck.txt
[x]: License file installed when any subpackage combination is installed.
[x]: %build honors applicable compiler flags or justifies otherwise.
[x]: Package contains no bundled libraries without FPC exception.
[x]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.
[-]: Package contains desktop file if it is a GUI application.
[x]: Development files must be in a -devel package
[x]: Package uses nothing in %doc for runtime.
[x]: Package consistently uses macros (instead of hard-coded directory
     names).
[x]: Package is named according to the Package Naming Guidelines.
[x]: Package does not generate any conflict.
[x]: Package obeys FHS, except libexecdir and /usr/target.
[-]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[x]: Requires correct, justified where necessary.
[x]: Spec file is legible and written in American English.
[-]: Package contains systemd file(s) if in need.
[x]: Useful -debuginfo package or justification otherwise.
[ ]: Package is not known to require an ExcludeArch tag.
[-]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 70899 bytes in 9 files.
[ ]: Package complies to the Packaging Guidelines
[x]: Package successfully compiles and builds into binary rpms on at least
     one supported primary architecture.
[x]: Package installs properly.
[x]: Rpmlint is run on all rpms the build produces.
     Note: No rpmlint messages.
[x]: If (and only if) the source package includes the text of the
     license(s) in its own file, then that file, containing the text of the
     license(s) for the package is included in %license.
[x]: The License field must be a valid SPDX expression.
[x]: Package requires other packages for directories it uses.
[x]: Package must own all directories that it creates.
[x]: Package does not own files or directories owned by other packages.
[x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[x]: Macros in Summary, %description expandable at SRPM build time.
[x]: Dist tag is present.
[x]: Permissions on files are set properly.
[x]: Package must not depend on deprecated() packages.
[x]: Package use %makeinstall only when make install DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[x]: Package does not use a name that already exists.
[x]: Package is not relocatable.
[x]: Sources used to build the package match the upstream source, as
     provided in the spec URL.
[x]: Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[x]: File names are valid UTF-8.
[x]: Packages must not store files under /srv, /opt or /usr/local

===== SHOULD items =====

Generic:
[!]: Sources can be downloaded from URI in Source: tag
     Note: Could not download Source2:
     https://swupdate.openvpn.net/community/keys/gpgkey-F554A3687412CFFEBDEFE0A312F5F7B42F2B01E7.gpg,
     Source1:
     https://swupdate.openvpn.net/community/releases/gdbuspp-3.tar.xz.asc,
     Source0:
     https://swupdate.openvpn.net/community/releases/gdbuspp-3.tar.xz
     See: https://docs.fedoraproject.org/en-US/packaging-
     guidelines/SourceURL/
[-]: If the source package does not include license text(s) as a separate
     file from upstream, the packager SHOULD query upstream to include it.
[x]: Final provides and requires are sane (see attachments).
[ ]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[ ]: SourceX tarball generation or download is documented.
     Note: Package contains tarball without URL, check comments
[ ]: Package should compile and build into binary rpms on all supported
     architectures.
[x]: %check is present and all tests pass.
[x]: Packages should try to preserve timestamps of original installed
     files.
[ ]: Spec use %global instead of %define unless justified.
     Note: %define requiring justification: #%%define releasetag .qa1,
     #%%define versiontag _qa1
[x]: Reviewer should test that the package builds in mock.
[x]: Buildroot is not present
[x]: Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: Fully versioned dependency in subpackages if applicable.
[x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: The placement of pkgconfig(.pc) files are correct.
[x]: SourceX is a working URL.
[x]: Sources are verified with gpgverify first in %prep if upstream
     publishes signatures.

===== EXTRA items =====

Generic:
[x]: Rpmlint is run on debuginfo package(s).
     Note: No rpmlint messages.
[x]: Rpmlint is run on all installed packages.
     Note: No rpmlint messages.
[x]: Large data in /usr/share should live in a noarch subpackage if package
     is arched.
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: gdbuspp-3-2.fc42.x86_64.rpm
          gdbuspp-devel-3-2.fc42.x86_64.rpm
          gdbuspp-debuginfo-3-2.fc42.x86_64.rpm
          gdbuspp-debugsource-3-2.fc42.x86_64.rpm
          gdbuspp-3-2.fc42.src.rpm
====================================== rpmlint session starts ======================================
rpmlint: 2.5.0
configuration:
    /usr/lib/python3.12/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
rpmlintrc: [PosixPath('/tmp/tmpbt4skcxg')]
checks: 32, packages: 5

 5 packages and 0 specfiles checked; 0 errors, 0 warnings, 32 filtered, 0 badness; has taken 4.7 s =




Rpmlint (debuginfo)
-------------------
Checking: gdbuspp-debuginfo-3-2.fc42.x86_64.rpm
====================================== rpmlint session starts ======================================
rpmlint: 2.5.0
configuration:
    /usr/lib/python3.12/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
rpmlintrc: [PosixPath('/tmp/tmpvi50p9nc')]
checks: 32, packages: 1

= 1 packages and 0 specfiles checked; 0 errors, 0 warnings, 5 filtered, 0 badness; has taken 1.2 s =





Rpmlint (installed packages)
----------------------------
============================ 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: 4

 4 packages and 0 specfiles checked; 0 errors, 0 warnings, 29 filtered, 0 badness; has taken 3.5 s 



Requires
--------
gdbuspp (rpmlib, GLIBC filtered):
    libc.so.6()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgcc_s.so.1(GCC_3.3.1)(64bit)
    libgio-2.0.so.0()(64bit)
    libglib-2.0.so.0()(64bit)
    libgobject-2.0.so.0()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.15)(64bit)
    libstdc++.so.6(CXXABI_1.3.9)(64bit)
    rtld(GNU_HASH)

gdbuspp-devel (rpmlib, GLIBC filtered):
    /usr/bin/pkg-config
    gdbuspp(x86-64)
    libgdbuspp.so.3()(64bit)
    pkgconfig(gio-2.0)
    pkgconfig(gio-unix-2.0)
    pkgconfig(glib-2.0)
    pkgconfig(gthread-2.0)

gdbuspp-debuginfo (rpmlib, GLIBC filtered):

gdbuspp-debugsource (rpmlib, GLIBC filtered):



Provides
--------
gdbuspp:
    gdbuspp
    gdbuspp(x86-64)
    libgdbuspp.so.3()(64bit)

gdbuspp-devel:
    gdbuspp-devel
    gdbuspp-devel(x86-64)
    pkgconfig(gdbuspp)

gdbuspp-debuginfo:
    debuginfo(build-id)
    gdbuspp-debuginfo
    gdbuspp-debuginfo(x86-64)
    libgdbuspp.so.3-3-2.fc42.x86_64.debug()(64bit)

gdbuspp-debugsource:
    gdbuspp-debugsource
    gdbuspp-debugsource(x86-64)



Generated by fedora-review 0.10.0 (e79b66b) last change: 2023-07-24
Command line :/usr/bin/fedora-review -b 2330591
Buildroot used: fedora-rawhide-x86_64
Active plugins: Shell-api, Generic, C/C++
Disabled plugins: Java, Python, Ocaml, PHP, fonts, Haskell, R, SugarActivity, Perl
Disabled flags: EXARCH, EPEL6, EPEL7, DISTTAG, BATCH

Comments:
a) Please change
%files
%license %{name}-%{version}/LICENSES/AGPL-3.0-only.txt
%{_pkgdocdir}
%{_pkgdocdir}/README.md
%{_libdir}/lib%{name}.so.*

to

%files
%license %{name}-%{version}/LICENSES/AGPL-3.0-only.txt
%{_pkgdocdir}/README.md
%{_libdir}/lib%{name}.so.3*

As he first part of the soname needs to be included and
to avoid duplication of documentation files.
https://docs.fedoraproject.org/en-US/packaging-guidelines/#_shared_libraries

b) Koji build:
https://koji.fedoraproject.org/koji/taskinfo?taskID=126981802

c) Please check download of sources, signatures and keys.

Comment 11 David Sommerseth 2024-12-18 17:08:34 UTC
Packaging updated with changes related to a)

Spec URL: https://fedorapeople.org/~dsommers/pkgreview/gdbuspp/gdbuspp.spec
SRPM URL: https://fedorapeople.org/~dsommers/pkgreview/gdbuspp/gdbuspp-3-3.fc42.src.rpm

[fedora-review-service-build]

My testing in regards to testing downloads on c):
--------------------------------------------------------------------------------------------
[dsommers@people01 dl-test][PROD]$ ll
total 0
[dsommers@people01 dl-test][PROD]$ wget https://swupdate.openvpn.net/community/keys/gpgkey-F554A3687412CFFEBDEFE0A312F5F7B42F2B01E7.gpg https://swupdate.openvpn.net/community/releases/gdbuspp-3.tar.xz.asc https://swupdate.openvpn.net/community/releases/gdbuspp-3.tar.xz
--2024-12-18 17:06:25--  https://swupdate.openvpn.net/community/keys/gpgkey-F554A3687412CFFEBDEFE0A312F5F7B42F2B01E7.gpg
Resolving swupdate.openvpn.net (swupdate.openvpn.net)... 2606:4700::6813:bf6a, 2606:4700::6813:be6a, 104.19.191.106, ...
Connecting to swupdate.openvpn.net (swupdate.openvpn.net)|2606:4700::6813:bf6a|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 26459 (26K) [binary/octet-stream]
Saving to: ‘gpgkey-F554A3687412CFFEBDEFE0A312F5F7B42F2B01E7.gpg’

gpgkey-F554A3687412 100%[===================>]  25.84K  --.-KB/s    in 0.001s  

2024-12-18 17:06:25 (27.9 MB/s) - ‘gpgkey-F554A3687412CFFEBDEFE0A312F5F7B42F2B01E7.gpg’ saved [26459/26459]

--2024-12-18 17:06:25--  https://swupdate.openvpn.net/community/releases/gdbuspp-3.tar.xz.asc
Reusing existing connection to [swupdate.openvpn.net]:443.
HTTP request sent, awaiting response... 200 OK
Length: 862 [application/pgp-signature]
Saving to: ‘gdbuspp-3.tar.xz.asc’

gdbuspp-3.tar.xz.as 100%[===================>]     862  --.-KB/s    in 0s      

2024-12-18 17:06:25 (22.0 MB/s) - ‘gdbuspp-3.tar.xz.asc’ saved [862/862]

--2024-12-18 17:06:25--  https://swupdate.openvpn.net/community/releases/gdbuspp-3.tar.xz
Reusing existing connection to [swupdate.openvpn.net]:443.
HTTP request sent, awaiting response... 200 OK
Length: 129672 (127K) [application/x-tar]
Saving to: ‘gdbuspp-3.tar.xz’

gdbuspp-3.tar.xz    100%[===================>] 126.63K  --.-KB/s    in 0.02s   

2024-12-18 17:06:25 (5.87 MB/s) - ‘gdbuspp-3.tar.xz’ saved [129672/129672]

FINISHED --2024-12-18 17:06:25--
Total wall clock time: 0.4s
Downloaded: 3 files, 153K in 0.02s (6.80 MB/s)
[dsommers@people01 dl-test][PROD]$ gpgv --keyring ./gpgkey-F554A3687412CFFEBDEFE0A312F5F7B42F2B01E7.gpg gdbuspp-3.tar.xz.asc gdbuspp-3.tar.xz
gpgv: Signature made Wed Dec  4 14:14:54 2024 UTC
gpgv:                using RSA key 57E95049D76AA39A74439603533A6860529F23C5
gpgv:                issuer "security"
gpgv: Good signature from "OpenVPN - Security Mailing List <security>"
[dsommers@people01 dl-test][PROD]$ ll
total 160
-rw-r--r--. 1 dsommers dsommers 129672 Dec  6 13:26 gdbuspp-3.tar.xz
-rw-r--r--. 1 dsommers dsommers    862 Dec  6 13:26 gdbuspp-3.tar.xz.asc
-rw-r--r--. 1 dsommers dsommers  26459 Dec  6 13:23 gpgkey-F554A3687412CFFEBDEFE0A312F5F7B42F2B01E7.gpg
[dsommers@people01 dl-test][PROD]$

Comment 12 David Sommerseth 2024-12-18 17:20:35 UTC
From what I understand, these review points need some kind of resolution:

[ ]: Package is not known to require an ExcludeArch tag.
>>  This has a comment in the .spec file why it is so; not buildable on 32-bit platforms

[ ]: Package complies to the Packaging Guidelines
>>  That I cannot and should not answer ;-)

[ ]: Package functions as described.
>> There are three test programs in /usr/share/doc/gdbuspp/ with compile instructions in the source files.
>> Build all of them, start  the example-service first, then test the two other programs


[ ]: SourceX tarball generation or download is documented.
     Note: Package contains tarball without URL, check comments
>> This sounds odd ... given that all %Source references points at a https:// and spectool -gf works


[ ]: Package should compile and build into binary rpms on all supported
     architectures.
>> I believe this is true - all except 32-bit platforms do build (Koji build should be able to confirm)


[ ]: Spec use %global instead of %define unless justified.
     Note: %define requiring justification: #%%define releasetag .qa1,
     #%%define versiontag _qa1
>> I can change this ... I just find it valuable to keep it there as documentation on how to
>> handle tagged versions, as documented in the comment above.  Not sure if %global is the right
>> alternative in this case.


IF there are anything else I can do to clarify details or fix, keep me posted!

Comment 13 Fedora Review Service 2024-12-18 17:23:18 UTC
Created attachment 2063021 [details]
The .spec file difference from Copr build 8363429 to 8412250

Comment 14 Fedora Review Service 2024-12-18 17:23:20 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/8412250
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2330591-gdbuspp/fedora-rawhide-x86_64/08412250-gdbuspp/fedora-review/review.txt

Please take a look if any issues were found.


---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 15 Benson Muite 2024-12-21 04:00:43 UTC
Package Review
==============

Legend:
[x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
[ ] = Manual review needed



===== MUST items =====

C/C++:
[x]: Package does not contain kernel modules.
[x]: If your application is a C or C++ application you must list a
     BuildRequires against gcc, gcc-c++ or clang.
[x]: ldconfig not called in %post and %postun for Fedora 28 and later.
[x]: Package does not contain any libtool archives (.la)
[x]: Package contains no static executables.
[x]: Rpath absent or only used for internal libs.
[x]: Development (unversioned) .so files in -devel subpackage, if present.

Generic:
[x]: Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[x]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "GNU Affero General Public License v3.0", "Unknown or
     generated". 4 files have unknown license. Detailed output of
     licensecheck in
     /home/FedoraPackaging/reviews/gdbuspp/2330591-gdbuspp/licensecheck.txt
[x]: License file installed when any subpackage combination is installed.
[ ]: Package requires other packages for directories it uses.
     Note: No known owner of /usr/share/doc/gdbuspp
[!]: Package must own all directories that it creates.
     Note: Directories without known owners: /usr/share/doc/gdbuspp
[x]: %build honors applicable compiler flags or justifies otherwise.
[x]: Package contains no bundled libraries without FPC exception.
[x]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.
[-]: Package contains desktop file if it is a GUI application.
[x]: Development files must be in a -devel package
[x]: Package uses nothing in %doc for runtime.
[x]: Package consistently uses macros (instead of hard-coded directory
     names).
[x]: Package is named according to the Package Naming Guidelines.
[x]: Package does not generate any conflict.
[x]: Package obeys FHS, except libexecdir and /usr/target.
[-]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[x]: Requires correct, justified where necessary.
[x]: Spec file is legible and written in American English.
[-]: Package contains systemd file(s) if in need.
[x]: Useful -debuginfo package or justification otherwise.
[ ]: Package is not known to require an ExcludeArch tag.
[x]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 44918 bytes in 5 files.
[ ]: Package complies to the Packaging Guidelines
[x]: Package successfully compiles and builds into binary rpms on at least
     one supported primary architecture.
[x]: Package installs properly.
[x]: Rpmlint is run on all rpms the build produces.
     Note: No rpmlint messages.
[x]: If (and only if) the source package includes the text of the
     license(s) in its own file, then that file, containing the text of the
     license(s) for the package is included in %license.
[x]: The License field must be a valid SPDX expression.
[x]: Package does not own files or directories owned by other packages.
[x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[x]: Macros in Summary, %description expandable at SRPM build time.
[x]: Dist tag is present.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Package must not depend on deprecated() packages.
[x]: Package use %makeinstall only when make install DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[x]: Package does not use a name that already exists.
[x]: Package is not relocatable.
[x]: Sources used to build the package match the upstream source, as
     provided in the spec URL.
[x]: Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[x]: File names are valid UTF-8.
[x]: Packages must not store files under /srv, /opt or /usr/local

===== SHOULD items =====

Generic:
[!]: Sources can be downloaded from URI in Source: tag
     Note: Could not download Source2:
     https://swupdate.openvpn.net/community/keys/gpgkey-F554A3687412CFFEBDEFE0A312F5F7B42F2B01E7.gpg,
     Source1:
     https://swupdate.openvpn.net/community/releases/gdbuspp-3.tar.xz.asc,
     Source0:
     https://swupdate.openvpn.net/community/releases/gdbuspp-3.tar.xz
     See: https://docs.fedoraproject.org/en-US/packaging-
     guidelines/SourceURL/
[-]: If the source package does not include license text(s) as a separate
     file from upstream, the packager SHOULD query upstream to include it.
[x]: Final provides and requires are sane (see attachments).
[ ]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[ ]: SourceX tarball generation or download is documented.
     Note: Package contains tarball without URL, check comments
[ ]: Package should compile and build into binary rpms on all supported
     architectures.
[x]: %check is present and all tests pass.
[x]: Packages should try to preserve timestamps of original installed
     files.
[!]: Spec use %global instead of %define unless justified.
     Note: %define requiring justification: #%%define releasetag .qa1,
     #%%define versiontag _qa1
[x]: Reviewer should test that the package builds in mock.
[x]: Buildroot is not present
[x]: Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: Fully versioned dependency in subpackages if applicable.
[x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: The placement of pkgconfig(.pc) files are correct.
[x]: SourceX is a working URL.
[x]: Sources are verified with gpgverify first in %prep if upstream
     publishes signatures.

===== EXTRA items =====

Generic:
[x]: Rpmlint is run on debuginfo package(s).
     Note: No rpmlint messages.
[x]: Rpmlint is run on all installed packages.
     Note: No rpmlint messages.
[x]: Large data in /usr/share should live in a noarch subpackage if package
     is arched.
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: gdbuspp-3-3.fc42.x86_64.rpm
          gdbuspp-devel-3-3.fc42.x86_64.rpm
          gdbuspp-debuginfo-3-3.fc42.x86_64.rpm
          gdbuspp-debugsource-3-3.fc42.x86_64.rpm
          gdbuspp-3-3.fc42.src.rpm
============================================== rpmlint session starts =============================================
rpmlint: 2.5.0
configuration:
    /usr/lib/python3.12/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
rpmlintrc: [PosixPath('/tmp/tmpww0oswl6')]
checks: 32, packages: 5

======== 5 packages and 0 specfiles checked; 0 errors, 0 warnings, 28 filtered, 0 badness; has taken 3.8 s ========




Rpmlint (debuginfo)
-------------------
Checking: gdbuspp-debuginfo-3-3.fc42.x86_64.rpm
============================================== rpmlint session starts =============================================
rpmlint: 2.5.0
configuration:
    /usr/lib/python3.12/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
rpmlintrc: [PosixPath('/tmp/tmpuk62l3w7')]
checks: 32, packages: 1

========= 1 packages and 0 specfiles checked; 0 errors, 0 warnings, 5 filtered, 0 badness; has taken 1.4 s ========





Rpmlint (installed packages)
----------------------------
============================ 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: 4

 4 packages and 0 specfiles checked; 0 errors, 0 warnings, 24 filtered, 0 badness; has taken 3.3 s 



Requires
--------
gdbuspp (rpmlib, GLIBC filtered):
    libc.so.6()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgcc_s.so.1(GCC_3.3.1)(64bit)
    libgio-2.0.so.0()(64bit)
    libglib-2.0.so.0()(64bit)
    libgobject-2.0.so.0()(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.15)(64bit)
    libstdc++.so.6(CXXABI_1.3.9)(64bit)
    rtld(GNU_HASH)

gdbuspp-devel (rpmlib, GLIBC filtered):
    /usr/bin/pkg-config
    gdbuspp(x86-64)
    libgdbuspp.so.3()(64bit)
    pkgconfig(gio-2.0)
    pkgconfig(gio-unix-2.0)
    pkgconfig(glib-2.0)
    pkgconfig(gthread-2.0)

gdbuspp-debuginfo (rpmlib, GLIBC filtered):

gdbuspp-debugsource (rpmlib, GLIBC filtered):



Provides
--------
gdbuspp:
    gdbuspp
    gdbuspp(x86-64)
    libgdbuspp.so.3()(64bit)

gdbuspp-devel:
    gdbuspp-devel
    gdbuspp-devel(x86-64)
    pkgconfig(gdbuspp)

gdbuspp-debuginfo:
    debuginfo(build-id)
    gdbuspp-debuginfo
    gdbuspp-debuginfo(x86-64)
    libgdbuspp.so.3-3-3.fc42.x86_64.debug()(64bit)

gdbuspp-debugsource:
    gdbuspp-debugsource
    gdbuspp-debugsource(x86-64)



Generated by fedora-review 0.10.0 (e79b66b) last change: 2023-07-24
Command line :/usr/bin/fedora-review -b 2330591
Buildroot used: fedora-rawhide-x86_64
Active plugins: Generic, Shell-api, C/C++
Disabled plugins: Haskell, fonts, Java, PHP, Ocaml, Perl, Python, R, SugarActivity
Disabled flags: EXARCH, EPEL6, EPEL7, DISTTAG, BATCH

Comments:
a)
[ ]: Spec use %global instead of %define unless justified.
     Note: %define requiring justification: #%%define releasetag .qa1,
     #%%define versiontag _qa1
>> I can change this ... I just find it valuable to keep it there as documentation on how to
>> handle tagged versions, as documented in the comment above.  Not sure if %global is the right
>> alternative in this case.

Please change #define to #global in case you uncomment that section

b)

[ ]: Package functions as described.
>> There are three test programs in /usr/share/doc/gdbuspp/ with compile instructions in the source files.
>> Build all of them, start  the example-service first, then test the two other programs

Thanks

c)
[ ]: SourceX tarball generation or download is documented.
     Note: Package contains tarball without URL, check comments
>> This sounds odd ... given that all %Source references points at a https:// and spectool -gf works

This timed out on my end, but manual download works.

d) Please modify
%{_pkgdocdir}/dbus-primer.md
%{_pkgdocdir}/example-*.cpp
to
%dir %{_pkgdocdir}
%{_pkgdocdir}/dbus-primer.md
%{_pkgdocdir}/example-*.cpp

e) Consider using/supporting muon-build to speed up compilation during development https://muon.build/

f) Approved. Please fix (d) before import. Thanks for bringing this to Fedora.

g) Review of one of:
https://bugzilla.redhat.com/show_bug.cgi?id=2329630
https://bugzilla.redhat.com/show_bug.cgi?id=2325026
would be appreciated if time and expertise allow.

Comment 16 David Sommerseth 2025-01-06 16:07:02 UTC
Thank you for your review and feedback!

I've not followed up due to Christmas holidays the last 2 weeks.  I'll fix last comments.  I'm sorry I didn't manage to look at those packages you suggested.  Feel free to reach out (also via e-mail) if I can help out somehow on other packages!


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