Spec URL: https://rathann.fedorapeople.org/review/libfreenect/libfreenect.spec SRPM URL: https://rathann.fedorapeople.org/review/libfreenect/libfreenect-0.7.5-1.fc44.src.rpm Description: libfreenect is a free and open source library that provides access to the Kinect device. Currently, the library supports the RGB webcam, the depth image, the LED, and the tilt motor. Fedora Account System Username: rathann NOTE: this is an unretirement review request.
Copr build: https://copr.fedorainfracloud.org/coprs/build/9786879 (succeeded) Review template: https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2414070-libfreenect/fedora-rawhide-x86_64/09786879-libfreenect/fedora-review/review.txt Found issues: - A package with this name already exists. Please check https://src.fedoraproject.org/rpms/libfreenect Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/Naming/#_conflicting_package_names 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.
I will take this review.
Package Review ============== Legend: [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated Issues: ======= - Package does not contain duplicates in %files. Note: warning: File listed twice: /usr/lib/.build- id/f7/52d2cb0f75547c1a661ccec026732acb6158bc See: https://docs.fedoraproject.org/en-US/packaging- guidelines/#_duplicate_files This file corresponds to /usr/bin/freenect-cvdemo, which is part of the libfreenect-opencv package. This seems to be related to the %exclude directives in %files. If I remove the %exclude directives and expand "%{_bindir}/freenect-*" to this list: %{_bindir}/freenect-camtest %{_bindir}/freenect-chunkview %{_bindir}/freenect-cpp_pcview %{_bindir}/freenect-cppview %{_bindir}/freenect-glpclview %{_bindir}/freenect-glview %{_bindir}/freenect-hiview %{_bindir}/freenect-micview %{_bindir}/freenect-regtest %{_bindir}/freenect-regview %{_bindir}/freenect-tiltdemo %{_bindir}/freenect-wavrecord then the warning goes away. That's also the approach recommended by https://docs.fedoraproject.org/en-US/packaging-guidelines/#_explicit_lists - Regarding the license, there are also files under the MIT license: fakenect/parson.c and fakenect/parson.h Those files are copied from https://github.com/kgabis/parson. They should either be unbundled (preferably), or the appropriate "Provides: bundled" should be added. - The openni subpackage can be installed by itself and does not contain the license files. - The %{?python_provide} invocation in python3-libfreenect does nothing. It should be removed. - The __provides_exclude at the top of the spec file is no longer needed. It can be removed. - Please replace "/lib/udev/rules.d" with "%{_udevrulesdir}" everywhere. - If this package is not needed on i686, please add "ExcludeArch: %{ix86}"; see https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval - Not a problem, just an observation: the -n %{name}-%{version} argument to %setup in %prep is not needed, as that is the default; i.e., just "%setup -q" is enough. - Note the shlib-policy-excessive-dependency warning from rpmlint below. The issue is that %{_libdir}/fakenect/libfakenect.so.0.7.5 depends only on libc and libm, but /usr/bin/fakenect-record, in the same package, depends on several other libraries. If somebody needs the package solely for the library, they will have to deal with the additional dependencies dragged in by the binary. Should the binary & library be in separate packages? - Note the non-executable-script warning from rpmlint below. Should fwfetcher.py be executable? If so, add the executable bit. If not, remove the shebang. - Note the file-contains-date-and-time warning from rpmlint below. The build can be made more reproducible by changing HTML_TIMESTAMP fron YES to NO in doc/Doxyfile. ===== MUST items ===== C/C++: [x]: Package does not contain kernel modules. [x]: Development (unversioned) .so files in -devel subpackage, if present. Note: Unversioned so-files in private %_libdir subdirectory (see attachment). Verify they are not in ld path. [x]: If your application is a C or C++ application you must list a BuildRequires against gcc, gcc-c++ or clang. [x]: Header files in -devel subpackage, if present. [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. 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. [!]: License field in the package spec file matches the actual license. Note: Checking patched sources after %prep for licenses. Licenses found: "*No copyright* Apache License 2.0", "Apache License 2.0", "Unknown or generated", "GNU General Public License, Version 2", "BSD 3-Clause License", "MIT License". 107 files have unknown license. Detailed output of licensecheck in /home/jamesjer/2414070-libfreenect/licensecheck.txt The MIT license is missing. [!]: License file installed when any subpackage combination is installed. The openni subpackage can be installed by itself and does not contain the license files. [x]: If the package is under multiple licenses, the licensing breakdown must be documented in the spec. [x]: Package requires other packages for directories it uses. Note: No known owner of /lib/udev, /lib/udev/rules.d [x]: Package must own all directories that it creates. Note: Directories without known owners: /lib/udev/rules.d, /lib/udev [x]: %build honors applicable compiler flags or justifies otherwise. [!]: Package contains no bundled libraries without FPC exception. The parson JSON parser is bundled. [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. [!]: Package consistently uses macros (instead of hard-coded directory names). "/lib/udev/rules.d" should be replaced with "%{_udevrulesdir}" [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. [x]: 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 991149 bytes in 60 files. [x]: 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: There are rpmlint messages (see attachment). [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]: 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 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]: Static libraries in -static or -devel subpackage, providing -devel if present. Note: Package has .a files: libfreenect-static. [x]: File names are valid UTF-8. [x]: Packages must not store files under /srv, /opt or /usr/local ===== SHOULD items ===== Generic: [-]: 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). [x]: Fully versioned dependency in subpackages if applicable. Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in libfreenect-static , libfreenect-openni [?]: Package functions as described. [x]: Latest version is packaged. [x]: Package does not include license text files separate from upstream. [x]: Patches link to upstream bugs/comments/lists or are otherwise justified. [-]: Sources are verified with gpgverify first in %prep if upstream publishes signatures. Note: gpgverify is not used. [x]: Package should compile and build into binary rpms on all supported architectures. [!]: %check is present and all tests pass. No tests are run, but I don't see any in the upstream tarball. [x]: Packages should try to preserve timestamps of original installed files. [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]: Packager, Vendor, PreReq, Copyright tags should not be in spec file [x]: The placement of pkgconfig(.pc) files are correct. [x]: Sources can be downloaded from URI in Source: tag [x]: SourceX is a working URL. [x]: Spec use %global instead of %define unless justified. ===== EXTRA items ===== Generic: [x]: Large data in /usr/share should live in a noarch subpackage if package is arched. Note: Arch-ed rpms have a total of 1136640 bytes in /usr/share [x]: Rpmlint is run on debuginfo package(s). Note: No rpmlint messages. [x]: Rpmlint is run on all installed packages. Note: There are rpmlint messages (see attachment). [x]: Spec file according to URL is the same as in SRPM. Rpmlint ------- Checking: libfreenect-0.7.5-1.fc44.x86_64.rpm libfreenect-devel-0.7.5-1.fc44.x86_64.rpm libfreenect-static-0.7.5-1.fc44.x86_64.rpm libfreenect-fakenect-0.7.5-1.fc44.x86_64.rpm libfreenect-opencv-0.7.5-1.fc44.x86_64.rpm python3-libfreenect-0.7.5-1.fc44.x86_64.rpm libfreenect-openni-0.7.5-1.fc44.x86_64.rpm libfreenect-0.7.5-1.fc44.src.rpm ============================ rpmlint session starts ============================ rpmlint: 2.8.0 configuration: /usr/lib/python3.14/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 rpmlintrc: [PosixPath('/tmp/tmpgd0fhh2_')] checks: 32, packages: 8 libfreenect-fakenect.x86_64: E: spelling-error ('kinect', '%description -l en_US kinect -> kine ct, kine-ct, kinetic') libfreenect-fakenect.x86_64: E: shlib-policy-excessive-dependency libfreenect.so.0 libfreenect.x86_64: E: non-executable-script /usr/share/libfreenect/fwfetcher.py 644 /usr/bin/env python libfreenect.x86_64: W: no-manual-page-for-binary freenect-camtest libfreenect.x86_64: W: no-manual-page-for-binary freenect-chunkview libfreenect.x86_64: W: no-manual-page-for-binary freenect-cpp_pcview libfreenect.x86_64: W: no-manual-page-for-binary freenect-cppview libfreenect.x86_64: W: no-manual-page-for-binary freenect-glpclview libfreenect.x86_64: W: no-manual-page-for-binary freenect-glview libfreenect.x86_64: W: no-manual-page-for-binary freenect-hiview libfreenect.x86_64: W: no-manual-page-for-binary freenect-micview libfreenect.x86_64: W: no-manual-page-for-binary freenect-regtest libfreenect.x86_64: W: no-manual-page-for-binary freenect-regview libfreenect.x86_64: W: no-manual-page-for-binary freenect-tiltdemo libfreenect.x86_64: W: no-manual-page-for-binary freenect-wavrecord libfreenect-opencv.x86_64: W: no-manual-page-for-binary freenect-cvdemo python3-libfreenect.x86_64: W: no-documentation libfreenect.spec: W: no-%check-section libfreenect.x86_64: E: incorrect-fsf-address /usr/share/licenses/libfreenect/GPL2 libfreenect-devel.x86_64: E: file-contains-date-and-time /usr/share/doc/libfreenect-devel/html/doxygen.css libfreenect.x86_64: W: dangling-relative-symlink /usr/lib/.build-id/f7/52d2cb0f75547c1a661ccec026732acb6158bc ../../../../usr/bin/freenect-cvdemo 8 packages and 0 specfiles checked; 5 errors, 16 warnings, 73 filtered, 5 badness; has taken 1.0 s Rpmlint (debuginfo) ------------------- Checking: libfreenect-openni-debuginfo-0.7.5-1.fc44.x86_64.rpm libfreenect-opencv-debuginfo-0.7.5-1.fc44.x86_64.rpm libfreenect-fakenect-debuginfo-0.7.5-1.fc44.x86_64.rpm libfreenect-debuginfo-0.7.5-1.fc44.x86_64.rpm ============================ rpmlint session starts ============================ rpmlint: 2.8.0 configuration: /usr/lib/python3.14/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 rpmlintrc: [PosixPath('/tmp/tmp23_q3cd8')] checks: 32, packages: 4 4 packages and 0 specfiles checked; 0 errors, 0 warnings, 56 filtered, 0 badness; has taken 0.6 s Rpmlint (installed packages) ---------------------------- ============================ rpmlint session starts ============================ rpmlint: 2.8.0 configuration: /usr/lib/python3.14/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: 11 libfreenect-fakenect.x86_64: E: spelling-error ('kinect', '%description -l en_US kinect -> kine ct, kine-ct, kinetic') libfreenect-fakenect.x86_64: E: shlib-policy-excessive-dependency libfreenect.so.0 libfreenect.x86_64: E: non-executable-script /usr/share/libfreenect/fwfetcher.py 644 /usr/bin/env python libfreenect-opencv.x86_64: W: no-manual-page-for-binary freenect-cvdemo libfreenect.x86_64: W: no-manual-page-for-binary freenect-camtest libfreenect.x86_64: W: no-manual-page-for-binary freenect-chunkview libfreenect.x86_64: W: no-manual-page-for-binary freenect-cpp_pcview libfreenect.x86_64: W: no-manual-page-for-binary freenect-cppview libfreenect.x86_64: W: no-manual-page-for-binary freenect-glpclview libfreenect.x86_64: W: no-manual-page-for-binary freenect-glview libfreenect.x86_64: W: no-manual-page-for-binary freenect-hiview libfreenect.x86_64: W: no-manual-page-for-binary freenect-micview libfreenect.x86_64: W: no-manual-page-for-binary freenect-regtest libfreenect.x86_64: W: no-manual-page-for-binary freenect-regview libfreenect.x86_64: W: no-manual-page-for-binary freenect-tiltdemo libfreenect.x86_64: W: no-manual-page-for-binary freenect-wavrecord python3-libfreenect.x86_64: W: no-documentation libfreenect.x86_64: E: incorrect-fsf-address /usr/share/licenses/libfreenect/GPL2 libfreenect-devel.x86_64: E: file-contains-date-and-time /usr/share/doc/libfreenect-devel/html/doxygen.css libfreenect.x86_64: W: dangling-relative-symlink /usr/lib/.build-id/f7/52d2cb0f75547c1a661ccec026732acb6158bc ../../../../usr/bin/freenect-cvdemo 11 packages and 0 specfiles checked; 5 errors, 15 warnings, 141 filtered, 5 badness; has taken 4.0 s Unversioned so-files -------------------- python3-libfreenect: /usr/lib64/python3.14/site-packages/freenect.so libfreenect-openni: /usr/lib64/openni2/Drivers/libFreenectDriver.so Source checksums ---------------- https://github.com/OpenKinect/libfreenect/archive/v0.7.5/libfreenect-0.7.5.tar.gz : CHECKSUM(SHA256) this package : 3c668053db726206a8c3a92e92e91ef7a64407968f422b9c4b828d0fd234c866 CHECKSUM(SHA256) upstream package : 3c668053db726206a8c3a92e92e91ef7a64407968f422b9c4b828d0fd234c866 Requires -------- libfreenect (rpmlib, GLIBC filtered): libGLU.so.1()(64bit) libOpenGL.so.0()(64bit) libc.so.6()(64bit) libfreenect.so.0()(64bit) libfreenect_sync.so.0()(64bit) libgcc_s.so.1()(64bit) libgcc_s.so.1(GCC_3.0)(64bit) libgcc_s.so.1(GCC_3.3.1)(64bit) libglut.so.3()(64bit) libm.so.6()(64bit) libstdc++.so.6()(64bit) libstdc++.so.6(CXXABI_1.3)(64bit) libstdc++.so.6(CXXABI_1.3.9)(64bit) libusb-1.0.so.0()(64bit) rtld(GNU_HASH) udev libfreenect-devel (rpmlib, GLIBC filtered): /usr/bin/pkg-config libfakenect.so.0()(64bit) libfreenect(x86-64) libfreenect.so.0()(64bit) libfreenect_cv.so.0()(64bit) libfreenect_sync.so.0()(64bit) pkgconfig(libusb-1.0) libfreenect-static (rpmlib, GLIBC filtered): libfreenect-devel(x86-64) libfreenect-fakenect (rpmlib, GLIBC filtered): /usr/bin/bash libc.so.6()(64bit) libfreenect(x86-64) libfreenect.so.0()(64bit) libm.so.6()(64bit) rtld(GNU_HASH) libfreenect-opencv (rpmlib, GLIBC filtered): libc.so.6()(64bit) libfreenect(x86-64) libfreenect_cv.so.0()(64bit) libfreenect_sync.so.0()(64bit) libopencv_core.so.411()(64bit) libopencv_highgui.so.411()(64bit) libopencv_imgproc.so.411()(64bit) rtld(GNU_HASH) python3-libfreenect (rpmlib, GLIBC filtered): libc.so.6()(64bit) libfreenect(x86-64) libfreenect.so.0()(64bit) libfreenect_sync.so.0()(64bit) libpython3.14.so.1.0()(64bit) python(abi) python3-numpy rtld(GNU_HASH) libfreenect-openni (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) libstdc++.so.6()(64bit) libstdc++.so.6(CXXABI_1.3)(64bit) libstdc++.so.6(CXXABI_1.3.1)(64bit) libstdc++.so.6(CXXABI_1.3.15)(64bit) libstdc++.so.6(CXXABI_1.3.8)(64bit) libstdc++.so.6(CXXABI_1.3.9)(64bit) libusb-1.0.so.0()(64bit) rtld(GNU_HASH) Provides -------- libfreenect: libfreenect libfreenect(x86-64) libfreenect.so.0()(64bit) libfreenect_sync.so.0()(64bit) libfreenect-devel: libfreenect-devel libfreenect-devel(x86-64) pkgconfig(libfreenect) libfreenect-static: libfreenect-static libfreenect-static(x86-64) libfreenect-fakenect: libfakenect.so.0()(64bit) libfreenect-fakenect libfreenect-fakenect(x86-64) libfreenect-opencv: libfreenect-opencv libfreenect-opencv(x86-64) libfreenect_cv.so.0()(64bit) python3-libfreenect: python-libfreenect python3-libfreenect python3-libfreenect(x86-64) python3.14-libfreenect libfreenect-openni: libFreenectDriver.so()(64bit) libfreenect-openni libfreenect-openni(x86-64) Generated by fedora-review 0.10.0 (e79b66b) last change: 2023-07-24 Command line :/usr/bin/fedora-review -b 2414070 -m fedora-rawhide-x86_64 Buildroot used: fedora-rawhide-x86_64 Active plugins: C/C++, Shell-api, Generic Disabled plugins: R, fonts, SugarActivity, Perl, Ocaml, Python, Java, Ruby, Haskell, PHP Disabled flags: EXARCH, EPEL6, EPEL7, DISTTAG, BATCH
Thanks for the review! (In reply to Jerry James from comment #3) > Issues: > ======= > - Package does not contain duplicates in %files. > Note: warning: File listed twice: /usr/lib/.build- > id/f7/52d2cb0f75547c1a661ccec026732acb6158bc > See: https://docs.fedoraproject.org/en-US/packaging- > guidelines/#_duplicate_files > > This file corresponds to /usr/bin/freenect-cvdemo, which is part of the > libfreenect-opencv package. This seems to be related to the %exclude > directives in %files. If I remove the %exclude directives and expand > "%{_bindir}/freenect-*" to this list: > > %{_bindir}/freenect-camtest > %{_bindir}/freenect-chunkview > %{_bindir}/freenect-cpp_pcview > %{_bindir}/freenect-cppview > %{_bindir}/freenect-glpclview > %{_bindir}/freenect-glview > %{_bindir}/freenect-hiview > %{_bindir}/freenect-micview > %{_bindir}/freenect-regtest > %{_bindir}/freenect-regview > %{_bindir}/freenect-tiltdemo > %{_bindir}/freenect-wavrecord > > then the warning goes away. That's also the approach recommended by > https://docs.fedoraproject.org/en-US/packaging-guidelines/#_explicit_lists Fixed. > - Regarding the license, there are also files under the MIT license: > fakenect/parson.c and fakenect/parson.h > > Those files are copied from https://github.com/kgabis/parson. They should > either be unbundled (preferably), or the appropriate "Provides: bundled" > should be added. It's an old version from 2017. Added bundled Provides: for now. > - The openni subpackage can be installed by itself and does not contain the > license files. Fixed. > - The %{?python_provide} invocation in python3-libfreenect does nothing. It > should be removed. Removed. > - The __provides_exclude at the top of the spec file is no longer needed. It > can be removed. Removed. > - Please replace "/lib/udev/rules.d" with "%{_udevrulesdir}" everywhere. Replaced. > - If this package is not needed on i686, please add "ExcludeArch: %{ix86}"; > see > https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval Added, > - Not a problem, just an observation: the -n %{name}-%{version} argument to > %setup in %prep is not needed, as that is the default; i.e., just "%setup > -q" > is enough. Dropped. > - Note the shlib-policy-excessive-dependency warning from rpmlint below. The > issue is that %{_libdir}/fakenect/libfakenect.so.0.7.5 depends only on libc > and libm, but /usr/bin/fakenect-record, in the same package, depends on > several other libraries. If somebody needs the package solely for the > library, they will have to deal with the additional dependencies dragged in > by the binary. Should the binary & library be in separate packages? It doesn't make sense to separate them in my opinion. > - Note the non-executable-script warning from rpmlint below. Should > fwfetcher.py be executable? If so, add the executable bit. If not, remove > the shebang. Added executable bit and fixed the shebang. > - Note the file-contains-date-and-time warning from rpmlint below. The build > can be made more reproducible by changing HTML_TIMESTAMP fron YES to NO in > doc/Doxyfile. Fixed. Spec URL: https://rathann.fedorapeople.org/review/libfreenect/libfreenect.spec SRPM URL: https://rathann.fedorapeople.org/review/libfreenect/libfreenect-0.7.5-2.fc44.src.rpm
Created attachment 2116137 [details] The .spec file difference from Copr build 9786879 to 9834498
Copr build: https://copr.fedorainfracloud.org/coprs/build/9834498 (succeeded) Review template: https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2414070-libfreenect/fedora-rawhide-x86_64/09834498-libfreenect/fedora-review/review.txt Found issues: - A package with this name already exists. Please check https://src.fedoraproject.org/rpms/libfreenect Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/Naming/#_conflicting_package_names 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.
That looks good. This package is APPROVED.
Unretired and built for rawhide, submitted an update for F43, as well. Thanks!