Spec URL: https://dcavalca.fedorapeople.org/review/libsurvive/libsurvive.spec SRPM URL: https://dcavalca.fedorapeople.org/review/libsurvive/libsurvive-1.01^20240123git037189e-1.fc41.src.rpm Description: Libsurvive is a set of tools and libraries that enable 6 dof tracking on Lighthouse and Vive based systems that is completely Open Source and can run on any device. It currently supports both SteamVR 1.0 and SteamVR 2.0 generation of devices and should support any tracked object commercially available. Fedora Account System Username: dcavalca
This package built on koji: https://koji.fedoraproject.org/koji/taskinfo?taskID=116959068
Package Review ============== Legend: [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated [ ] = Manual review needed ===== MUST items ===== C/C++: [-]: Provides: bundled(gnulib) in place as required. Note: Sources not installed [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: "Unknown or generated", "MIT License", "GNU General Public License, Version 3", "zlib License", "Apache License 1.1", "MIT License and/or The Unlicense", "BSD 2-Clause License". 528 files have unknown license. Detailed output of licensecheck in /home/jon/Reviews/libsurvive/licensecheck.txt [!]: License file installed when any subpackage combination is installed. [!]: Package requires other packages for directories it uses. Note: No known owner of /usr/lib/udev/rules.d, /usr/lib/udev, /usr/lib64/pkgconfig [x]: %build honors applicable compiler flags or justifies otherwise. [!]: 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 33413 bytes in 3 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 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]: 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: [x]: 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. [!]: 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. [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]: 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]: 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]: 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]: Large data in /usr/share should live in a noarch subpackage if package is arched. Rpmlint ------- Checking: libsurvive-1.01^20240123git037189e-1.fc41.x86_64.rpm libsurvive-devel-1.01^20240123git037189e-1.fc41.x86_64.rpm libsurvive-debuginfo-1.01^20240123git037189e-1.fc41.x86_64.rpm libsurvive-debugsource-1.01^20240123git037189e-1.fc41.x86_64.rpm libsurvive-1.01^20240123git037189e-1.fc41.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/tmp6rjm7zo5')] checks: 32, packages: 5 libsurvive.src: E: spelling-error ('dof', '%description -l en_US dof -> dog, do, of') libsurvive.x86_64: E: spelling-error ('dof', '%description -l en_US dof -> dog, do, of') libsurvive.x86_64: W: no-manual-page-for-binary sensors-readout libsurvive.x86_64: W: no-manual-page-for-binary survive-buttons libsurvive.x86_64: W: no-manual-page-for-binary survive-cli libsurvive.x86_64: W: no-manual-page-for-binary survive-solver libsurvive.x86_64: W: no-manual-page-for-binary survive-websocketd libsurvive-devel.x86_64: W: no-manual-page-for-binary api_example ========= 5 packages and 0 specfiles checked; 2 errors, 6 warnings, 76 filtered, 2 badness; has taken 3.0 s ========== Rpmlint (debuginfo) ------------------- Checking: libsurvive-devel-debuginfo-1.01^20240123git037189e-1.fc41.x86_64.rpm libsurvive-debuginfo-1.01^20240123git037189e-1.fc41.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/tmpq5ka_kgn')] checks: 32, packages: 2 ========= 2 packages and 0 specfiles checked; 0 errors, 0 warnings, 46 filtered, 0 badness; has taken 0.8 s ========== Rpmlint (installed packages) ---------------------------- ============================ 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 checks: 32, packages: 5 libsurvive.x86_64: E: spelling-error ('dof', '%description -l en_US dof -> dog, do, of') libsurvive.x86_64: W: no-manual-page-for-binary sensors-readout libsurvive.x86_64: W: no-manual-page-for-binary survive-buttons libsurvive.x86_64: W: no-manual-page-for-binary survive-cli libsurvive.x86_64: W: no-manual-page-for-binary survive-solver libsurvive.x86_64: W: no-manual-page-for-binary survive-websocketd libsurvive-devel.x86_64: W: no-manual-page-for-binary api_example 5 packages and 0 specfiles checked; 1 errors, 6 warnings, 93 filtered, 1 badness; has taken 4.0 s Unversioned so-files -------------------- libsurvive: /usr/lib64/libsurvive/plugins/disambiguator_statebased.so libsurvive: /usr/lib64/libsurvive/plugins/driver_dummy.so libsurvive: /usr/lib64/libsurvive/plugins/driver_global_scene_solver.so libsurvive: /usr/lib64/libsurvive/plugins/driver_playback.so libsurvive: /usr/lib64/libsurvive/plugins/driver_simulator.so libsurvive: /usr/lib64/libsurvive/plugins/driver_udp.so libsurvive: /usr/lib64/libsurvive/plugins/driver_usbmon.so libsurvive: /usr/lib64/libsurvive/plugins/driver_vive.so libsurvive: /usr/lib64/libsurvive/plugins/poser_barycentric_svd.so libsurvive: /usr/lib64/libsurvive/plugins/poser_dummy.so libsurvive: /usr/lib64/libsurvive/plugins/poser_kalman_only.so libsurvive: /usr/lib64/libsurvive/plugins/poser_mpfit.so Source checksums ---------------- https://github.com/jdavidberger/libsurvive-extras-data/archive/3476af66c488b029e04c74fbb1b57f3b7acb9eb7/libsurvive-extras-data-3476af66c488b029e04c74fbb1b57f3b7acb9eb7.tar.gz : CHECKSUM(SHA256) this package : bb45aef8ae57dafd3fc84f89374af7eb0dc9cb15b1e2c24692e78c03a567fc67 CHECKSUM(SHA256) upstream package : bb45aef8ae57dafd3fc84f89374af7eb0dc9cb15b1e2c24692e78c03a567fc67 https://github.com/cntools/cnmatrix/archive/5936c62511305227fbd59b2d5a43aaf89ec3a0b6/cnmatrix-5936c62511305227fbd59b2d5a43aaf89ec3a0b6.tar.gz : CHECKSUM(SHA256) this package : e4f1c776c5fbf04374727b6b1c6c32f7226db35fde480468f857df5b6d543f81 CHECKSUM(SHA256) upstream package : e4f1c776c5fbf04374727b6b1c6c32f7226db35fde480468f857df5b6d543f81 https://github.com/cntools/cnkalman/archive/6b350314225e28d2e4e8daad7d2971d22386f76f/cnkalman-6b350314225e28d2e4e8daad7d2971d22386f76f.tar.gz : CHECKSUM(SHA256) this package : e7082c497fb9c76b79f781b3b15147c12a122026a1f3f83a44605132c2766093 CHECKSUM(SHA256) upstream package : e7082c497fb9c76b79f781b3b15147c12a122026a1f3f83a44605132c2766093 https://github.com/cntools/libsurvive/archive/037189ebbcdb2a0bedd6fe6a8d1ad3910ac6caad/libsurvive-037189ebbcdb2a0bedd6fe6a8d1ad3910ac6caad.tar.gz : CHECKSUM(SHA256) this package : 0a354752b02abfefc2394d425656bcc7b0c07d0334e70fca0f4a313c604850a9 CHECKSUM(SHA256) upstream package : 0a354752b02abfefc2394d425656bcc7b0c07d0334e70fca0f4a313c604850a9 Requires -------- libsurvive (rpmlib, GLIBC filtered): /usr/bin/bash libc.so.6()(64bit) libm.so.6()(64bit) libpcap.so.1()(64bit) libstdc++.so.6()(64bit) libstdc++.so.6(CXXABI_1.3)(64bit) libsurvive.so.0()(64bit) libusb-1.0.so.0()(64bit) libz.so.1()(64bit) libz.so.1(ZLIB_1.2.7.1)(64bit) rtld(GNU_HASH) systemd-udev libsurvive-devel (rpmlib, GLIBC filtered): /usr/bin/pkg-config libc.so.6()(64bit) libsurvive(x86-64) libsurvive.so.0()(64bit) rtld(GNU_HASH) libsurvive-debuginfo (rpmlib, GLIBC filtered): libsurvive-debugsource (rpmlib, GLIBC filtered): Provides -------- libsurvive: bundled(cnkalman) bundled(cnmatrix) libsurvive libsurvive(x86-64) libsurvive.so.0()(64bit) libsurvive-devel: libsurvive-devel libsurvive-devel(x86-64) pkgconfig(survive) libsurvive-debuginfo: debuginfo(build-id) libsurvive-debuginfo libsurvive-debuginfo(x86-64) libsurvive.so.0.3-1.01^20240123git037189e-1.fc41.x86_64.debug()(64bit) libsurvive-debugsource: libsurvive-debugsource libsurvive-debugsource(x86-64) Generated by fedora-review 0.10.0 (e79b66b) last change: 2023-07-24 Command line :/usr/bin/fedora-review -r -n libsurvive-1.01^20240123git037189e-1.fc41.src.rpm Buildroot used: fedora-rawhide-x86_64 Active plugins: C/C++, Shell-api, Generic Disabled plugins: Java, SugarActivity, Perl, Haskell, Python, fonts, PHP, Ocaml, R Disabled flags: EXARCH, EPEL6, EPEL7, DISTTAG, BATCH
[!]: License field in the package spec file matches the actual license. Note: Checking patched sources after %prep for licenses. Licenses found: "Unknown or generated", "MIT License", "GNU General Public License, Version 3", "zlib License", "Apache License 1.1", "MIT License and/or The Unlicense", "BSD 2-Clause License". 528 files have unknown license. [!]: License file installed when any subpackage combination is installed. Looks like there is some stuff in redist that needs to be addressed. [!]: Package requires other packages for directories it uses. Note: No known owner of /usr/lib/udev/rules.d, /usr/lib/udev, /usr/lib64/pkgconfig systemd-udev pkgconf-pkg-config [!]: Package contains no bundled libraries without FPC exception. I want to note there is bundled statically linked libraries and I don't know if it passes https://docs.fedoraproject.org/en-US/packaging-guidelines/#bundling (I suspect it does and I think we should continue with this strategy for all of the XR stuff.) [!]: Package is not known to require an ExcludeArch tag. With the 32bit tests not being reliable, should we exclude? [!]: Patches link to upstream bugs/comments/lists or are otherwise justified. I've noticed a pattern of adding "downstream-only: why it's downstream only and what it does" as a good comment for patches that we don't intend on sending upstream. [!]: %check is present and all tests pass. See comment about 32bit. Based on my understanding of the policy, the following is acceptable because the so-files are outside of the default LD path. Unversioned so-files -------------------- libsurvive: /usr/lib64/libsurvive/plugins/disambiguator_statebased.so libsurvive: /usr/lib64/libsurvive/plugins/driver_dummy.so libsurvive: /usr/lib64/libsurvive/plugins/driver_global_scene_solver.so libsurvive: /usr/lib64/libsurvive/plugins/driver_playback.so libsurvive: /usr/lib64/libsurvive/plugins/driver_simulator.so libsurvive: /usr/lib64/libsurvive/plugins/driver_udp.so libsurvive: /usr/lib64/libsurvive/plugins/driver_usbmon.so libsurvive: /usr/lib64/libsurvive/plugins/driver_vive.so libsurvive: /usr/lib64/libsurvive/plugins/poser_barycentric_svd.so libsurvive: /usr/lib64/libsurvive/plugins/poser_dummy.so libsurvive: /usr/lib64/libsurvive/plugins/poser_kalman_only.so libsurvive: /usr/lib64/libsurvive/plugins/poser_mpfit.so
Good catch! The bundled copy of mpfit is... interesting. I filed https://gitlab.com/fedora/legal/fedora-license-data/-/issues/511 with legal as I'm not actually sure how to declare its license.
crc32 also needs clarification as it looks like a public domain declaration: https://gitlab.com/fedora/legal/fedora-license-data/-/issues/512
And hidapi too: https://gitlab.com/fedora/legal/fedora-license-data/-/issues/513
It looks like the licensing issues can be resolved by adding AND LicenseRef-Fedora-UltraPermissive AND HIDAPI? The other updates seem to have been successfully merged? [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. Unversioned so-files -------------------- libsurvive: /usr/lib64/libsurvive/plugins/disambiguator_statebased.so libsurvive: /usr/lib64/libsurvive/plugins/driver_dummy.so libsurvive: /usr/lib64/libsurvive/plugins/driver_global_scene_solver.so libsurvive: /usr/lib64/libsurvive/plugins/driver_openvr.so libsurvive: /usr/lib64/libsurvive/plugins/driver_playback.so libsurvive: /usr/lib64/libsurvive/plugins/driver_simulator.so libsurvive: /usr/lib64/libsurvive/plugins/driver_udp.so libsurvive: /usr/lib64/libsurvive/plugins/driver_usbmon.so libsurvive: /usr/lib64/libsurvive/plugins/driver_vive.so libsurvive: /usr/lib64/libsurvive/plugins/poser_barycentric_svd.so libsurvive: /usr/lib64/libsurvive/plugins/poser_dummy.so libsurvive: /usr/lib64/libsurvive/plugins/poser_kalman_only.so libsurvive: /usr/lib64/libsurvive/plugins/poser_mpfit.so These are not in the ld path and are approved per https://docs.fedoraproject.org/en-US/packaging-guidelines/Unversioned_shared_objects/ [!]: Latest version is packaged. There has been an update upstream. [!]: %check is present and all tests pass. Let's just exclude 32bit for this package. If we get a report that someone actually needs it, we can add it?
> Let's just exclude 32bit for this package. If we get a report that someone actually needs it, we can add it? The problem with excluding i686 is that this is a library, so that means we'd need to also exclude it in every other package that ends up depending on it.
Spec URL: https://dcavalca.fedorapeople.org/review/libsurvive/libsurvive.spec SRPM URL: https://dcavalca.fedorapeople.org/review/libsurvive/libsurvive-1.01^20240510git4fb6d88-1.fc42.src.rpm Changelog: - update to latest commit - document more bundled libraries and update license tag
Package Review ============== Legend: [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated [ ] = Manual review needed Issues: ======= - The License field must be a valid SPDX expression. Note: Not a valid SPDX expression 'MIT AND Minpack AND LicenseRef-Fedora- UltraPermissive AND HIDAPI AND ((MIT OR X11) OR BSD 3-Clause OR GPL-1.0-or-later) AND (MIT AND (MIT OR X11) OR BSD 3-Clause) AND (MIT AND (MIT OR X11)) AND Zlib'. See: https://fedoraproject.org/wiki/Changes/SPDX_Licenses_Phase_1 ===== 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. Approved per https://docs.fedoraproject.org/en-US/packaging-guidelines/Unversioned_shared_objects/ [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: "Unknown or generated", "MIT License", "GNU General Public License, Version 3", "zlib License", "Apache License 1.1", "MIT License and/or The Unlicense", "BSD 2-Clause License". 526 files have unknown license. Detailed output of licensecheck in /home/jon/Reviews/libsurvive/licensecheck.txt [x]: License file installed when any subpackage combination is installed. [x]: If the package is under multiple licenses, the licensing breakdown must be documented in the spec. [x]: %build honors applicable compiler flags or justifies otherwise. [!]: 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. [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 33413 bytes in 3 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]: 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]: 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: [-]: 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. [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. [x]: %check is present and all tests pass. [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]: 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]: 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]: Rpmlint is run on debuginfo package(s). Note: There are rpmlint messages (see attachment). [x]: Rpmlint is run on all installed packages. Note: There are rpmlint messages (see attachment). [x]: Large data in /usr/share should live in a noarch subpackage if package is arched. Rpmlint ------- Cannot parse rpmlint output: Rpmlint (debuginfo) ------------------- Cannot parse rpmlint output: Rpmlint (installed packages) ---------------------------- Cannot parse rpmlint output: Unversioned so-files -------------------- libsurvive: /usr/lib64/libsurvive/plugins/disambiguator_statebased.so libsurvive: /usr/lib64/libsurvive/plugins/driver_dummy.so libsurvive: /usr/lib64/libsurvive/plugins/driver_global_scene_solver.so libsurvive: /usr/lib64/libsurvive/plugins/driver_playback.so libsurvive: /usr/lib64/libsurvive/plugins/driver_simulator.so libsurvive: /usr/lib64/libsurvive/plugins/driver_udp.so libsurvive: /usr/lib64/libsurvive/plugins/driver_usbmon.so libsurvive: /usr/lib64/libsurvive/plugins/driver_vive.so libsurvive: /usr/lib64/libsurvive/plugins/poser_barycentric_svd.so libsurvive: /usr/lib64/libsurvive/plugins/poser_dummy.so libsurvive: /usr/lib64/libsurvive/plugins/poser_kalman_only.so libsurvive: /usr/lib64/libsurvive/plugins/poser_mpfit.so Source checksums ---------------- https://github.com/jdavidberger/libsurvive-extras-data/archive/3476af66c488b029e04c74fbb1b57f3b7acb9eb7/libsurvive-extras-data-3476af66c488b029e04c74fbb1b57f3b7acb9eb7.tar.gz : CHECKSUM(SHA256) this package : bb45aef8ae57dafd3fc84f89374af7eb0dc9cb15b1e2c24692e78c03a567fc67 CHECKSUM(SHA256) upstream package : bb45aef8ae57dafd3fc84f89374af7eb0dc9cb15b1e2c24692e78c03a567fc67 https://github.com/cntools/cnmatrix/archive/5936c62511305227fbd59b2d5a43aaf89ec3a0b6/cnmatrix-5936c62511305227fbd59b2d5a43aaf89ec3a0b6.tar.gz : CHECKSUM(SHA256) this package : e4f1c776c5fbf04374727b6b1c6c32f7226db35fde480468f857df5b6d543f81 CHECKSUM(SHA256) upstream package : e4f1c776c5fbf04374727b6b1c6c32f7226db35fde480468f857df5b6d543f81 https://github.com/cntools/cnkalman/archive/6b350314225e28d2e4e8daad7d2971d22386f76f/cnkalman-6b350314225e28d2e4e8daad7d2971d22386f76f.tar.gz : CHECKSUM(SHA256) this package : e7082c497fb9c76b79f781b3b15147c12a122026a1f3f83a44605132c2766093 CHECKSUM(SHA256) upstream package : e7082c497fb9c76b79f781b3b15147c12a122026a1f3f83a44605132c2766093 https://github.com/cntools/libsurvive/archive/4fb6d888d0277a8a3ba725e63707434d80ecdb2a/libsurvive-4fb6d888d0277a8a3ba725e63707434d80ecdb2a.tar.gz : CHECKSUM(SHA256) this package : 51280535c8edaa367ec8e8e681022e55a6db13b3bf143bc3005b4d25d21105de CHECKSUM(SHA256) upstream package : 51280535c8edaa367ec8e8e681022e55a6db13b3bf143bc3005b4d25d21105de Requires -------- libsurvive (rpmlib, GLIBC filtered): /usr/bin/bash libc.so.6()(64bit) libm.so.6()(64bit) libpcap.so.1()(64bit) libstdc++.so.6()(64bit) libstdc++.so.6(CXXABI_1.3)(64bit) libsurvive.so.0()(64bit) libusb-1.0.so.0()(64bit) libz.so.1()(64bit) libz.so.1(ZLIB_1.2.7.1)(64bit) rtld(GNU_HASH) systemd-udev libsurvive-devel (rpmlib, GLIBC filtered): /usr/bin/pkg-config libc.so.6()(64bit) libsurvive(x86-64) libsurvive.so.0()(64bit) rtld(GNU_HASH) libsurvive-debuginfo (rpmlib, GLIBC filtered): libsurvive-debugsource (rpmlib, GLIBC filtered): Provides -------- libsurvive: bundled(CNFG) bundled(CNFG3D) bundled(cnkalman) bundled(cnmatrix) bundled(crc32) bundled(hidapi) bundled(jsmn) bundled(linmath) bundled(mpfit) bundled(zlib) libsurvive libsurvive(x86-64) libsurvive.so.0()(64bit) libsurvive-devel: libsurvive-devel libsurvive-devel(x86-64) pkgconfig(survive) libsurvive-debuginfo: debuginfo(build-id) libsurvive-debuginfo libsurvive-debuginfo(x86-64) libsurvive.so.0.3-1.01^20240510git4fb6d88-1.fc42.x86_64.debug()(64bit) libsurvive-debugsource: libsurvive-debugsource libsurvive-debugsource(x86-64) Generated by fedora-review 0.10.0 (e79b66b) last change: 2023-07-24 Command line :/usr/bin/fedora-review -r -n libsurvive-1.01^20240510git4fb6d88-1.fc42.src.rpm Buildroot used: fedora-rawhide-x86_64 Active plugins: Generic, Shell-api, C/C++ Disabled plugins: Python, Java, PHP, Ocaml, R, fonts, SugarActivity, Haskell, Perl Disabled flags: EXARCH, EPEL6, EPEL7, DISTTAG, BATCH
Issues: ======= - The License field must be a valid SPDX expression. Note: Not a valid SPDX expression 'MIT AND Minpack AND LicenseRef-Fedora- UltraPermissive AND HIDAPI AND ((MIT OR X11) OR BSD 3-Clause OR GPL-1.0-or-later) AND (MIT AND (MIT OR X11) OR BSD 3-Clause) AND (MIT AND (MIT OR X11)) AND Zlib'. See: https://fedoraproject.org/wiki/Changes/SPDX_Licenses_Phase_1 license-validate 'MIT AND Minpack AND LicenseRef-Fedora-UltraPermissive AND HIDAPI AND ((MIT OR X11) OR BSD-3-Clause OR GPL-1.0-or-later) AND (MIT AND (MIT OR X11) OR BSD-3-Clause) AND (MIT AND (MIT OR X11)) AND Zlib' Approved license BSD-3-Clause [!]: License field in the package spec file matches the actual license. Note: Checking patched sources after %prep for licenses. Licenses found: "Unknown or generated", "MIT License", "GNU General Public License, Version 3", "zlib License", "Apache License 1.1", "MIT License and/or The Unlicense", "BSD 2-Clause License". 526 files have unknown license. Detailed output of licensecheck in /home/jon/Reviews/libsurvive/licensecheck.txt The one that sticks out is missing BSD-2-Clause for libs/cnkalman/libs/cnmatrix/cmake/FindEigen3.cmake [!]: Package contains no bundled libraries without FPC exception. There is bundled stuff and I don't know the process to approve this.
i686 is failing to build: 124784292 buildArch (libsurvive-1.01^20240510git4fb6d88-1.fc42.src.rpm, i686): open (buildvm-x86-05.iad2.fedoraproject.org) -> FAILED: BuildError: error building package (arch i686), mock exited with status 1; see build.log or root.log for more information Relevant logs: https://kojipkgs.fedoraproject.org/work/tasks/4292/124784292/mock_config.log https://kojipkgs.fedoraproject.org/work/tasks/4292/124784292/state.log https://kojipkgs.fedoraproject.org/work/tasks/4292/124784292/build.log https://kojipkgs.fedoraproject.org/work/tasks/4292/124784292/root.log https://kojipkgs.fedoraproject.org/work/tasks/4292/124784292/mock_output.log https://kojipkgs.fedoraproject.org/work/tasks/4292/124784292/hw_info.log https://kojipkgs.fedoraproject.org/work/tasks/4292/124784292/dnf5.log 0 free 5 open 1 done 1 failed /builddir/build/BUILD/libsurvive-1.01_20240510git4fb6d88-build/libsurvive-4fb6d888d0277a8a3ba725e63707434d80ecdb2a/src/driver_usbmon.c:796:99: error: initialization of ‘int (*)(void *, __off64_t *, int)’ {aka ‘int (*)(void *, long long int *, int)’} from incompatible pointer type ‘int (*)(void *, off_t *, int)’ {aka ‘int (*)(void *, long int *, int)’} [-Wincompatible-pointer-types] 796 | .close = gzip_cookie_close, .write = gzip_cookie_write, .read = gzip_cookie_read, .seek = gzip_cookie_seek}; | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/libsurvive-1.01_20240510git4fb6d88-build/libsurvive-4fb6d888d0277a8a3ba725e63707434d80ecdb2a/src/driver_usbmon.c:796:99: note: (near initialization for ‘gzip_cookie.seek’) Looks like we need to exclude it.
> There is bundled stuff and I don't know the process to approve this. My read of https://docs.fedoraproject.org/en-US/packaging-guidelines/#bundling is that this is a SHOULD and as long as the provides are declared and the licensing is sane it shouldn't require an exception. > i686 is failing to build Oh well, we tried. I wonder if this will end up being an issue if/when we end up trying to run proprietary games (as those are often 32 bit...)
Spec URL: https://dcavalca.fedorapeople.org/review/libsurvive/libsurvive.spec SRPM URL: https://dcavalca.fedorapeople.org/review/libsurvive/libsurvive-1.01^20240510git4fb6d88-1.fc42.src.rpm Changelog: - fix SPDX expression - drop i686
(In reply to Davide Cavalca from comment #13) > > i686 is failing to build > > Oh well, we tried. I wonder if this will end up being an issue if/when we > end up trying to run proprietary games (as those are often 32 bit...) That's a good question. I think Monado would provide enough insulation from the game engines themselves talking to LH stuff but I don't know about the ABI between OpenXR/OpenOVR/OpenVR and Monado needing to be 32bit. Maybe there is enough abstraction in the OpenXR/OpenOVR/OpenVR we wont have to care. There is a lot of IPC stuff in use so we might be good. I run with a standalone HMD and 64bit WiVRn (i.e. modified Monado) and 32bit games work IIRC.
APPROVED
The Pagure repository was created at https://src.fedoraproject.org/rpms/libsurvive
FEDORA-2024-38ec624e75 (libsurvive-1.01^20240510git4fb6d88-2.fc42) has been submitted as an update to Fedora 42. https://bodhi.fedoraproject.org/updates/FEDORA-2024-38ec624e75
FEDORA-2024-38ec624e75 (libsurvive-1.01^20240510git4fb6d88-2.fc42) has been pushed to the Fedora 42 stable repository. If problem still persists, please make note of it in this bug report.
FEDORA-2024-c581675cc8 (libsurvive-1.01^20240510git4fb6d88-2.fc41) has been submitted as an update to Fedora 41. https://bodhi.fedoraproject.org/updates/FEDORA-2024-c581675cc8
FEDORA-2024-c581675cc8 (libsurvive-1.01^20240510git4fb6d88-2.fc41) has been pushed to the Fedora 41 stable repository. If problem still persists, please make note of it in this bug report.
FEDORA-2024-e5fca0db79 (libsurvive-1.01^20240510git4fb6d88-2.fc40) has been submitted as an update to Fedora 40. https://bodhi.fedoraproject.org/updates/FEDORA-2024-e5fca0db79
FEDORA-2024-e5fca0db79 has been pushed to the Fedora 40 testing repository. Soon you'll be able to install the update with the following command: `sudo dnf install --enablerepo=updates-testing --refresh --advisory=FEDORA-2024-e5fca0db79 \*` You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2024-e5fca0db79 See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.
FEDORA-2024-e5fca0db79 (libsurvive-1.01^20240510git4fb6d88-2.fc40) has been pushed to the Fedora 40 stable repository. If problem still persists, please make note of it in this bug report.