Fedora Account System
Red Hat Associate
Red Hat Customer
This is an initial Fedora package review request for libxs 1.0.0. LIBXS is a portable C library providing building blocks for numerics, memory operations, synchronization, hashing, random number generation, and related low-level utilities. It was originally developed as part of LIBXSMM and is also used by LIBXSTREAM. Upstream: https://github.com/hfp/libxs License: BSD-3-Clause Spec file: https://github.com/hfp/libxs/blob/main/scripts/fedora/libxs.spec The package has an existing Packit workflow and has been built successfully in Fedora-oriented environments, including Rawhide, supported Fedora releases, and EL-compatible targets. The review SRPM was additionally built in a local Rawhide mock environment. The package installs a shared library, development headers, a Fortran module interface, pkg-config metadata, and CMake package configuration files. It does not bundle third-party dependencies. I intend to maintain the package in Fedora after the initial import. Reproducible: Always
Cannot find any valid SRPM URL for this ticket. Common causes are: - You didn't specify `SRPM URL: ...` in the ticket description or any of your comments - The URL schema isn't HTTP or HTTPS - The SRPM package linked in your URL doesn't match the package name specified in the ticket summary --- 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.
This comment was flagged as spam, view the edit history to see the original text if required.
Copr build: https://copr.fedorainfracloud.org/coprs/build/10651384 (succeeded) Review template: https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2493314-libxs/fedora-rawhide-x86_64/10651384-libxs/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.
Copr build: https://copr.fedorainfracloud.org/coprs/build/10651386 (succeeded) Review template: https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2493314-libxs/fedora-rawhide-x86_64/10651386-libxs/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.
Copr build: https://copr.fedorainfracloud.org/coprs/build/10651387 (succeeded) Review template: https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2493314-libxs/fedora-rawhide-x86_64/10651387-libxs/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.
> %global debug_package %{nil} Nuh-uh. We want debuginfo in Fedora. https://docs.fedoraproject.org/en-US/packaging-guidelines/Debuginfo/ > Version: 1.0.0 > Release: 1.20260625235357766098.main.0.g2132ebbc6%{?dist} Snapshot info should be part of Version, not Release. Also, you don't need to make it so detailed. https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/#_snapshots > Source0: libxs-1.0.0.tar.gz This should, preferably, be a downloadable URL. https://docs.fedoraproject.org/en-US/packaging-guidelines/SourceURL/ Since the project is hosted on GitHub, you can use the following: %global git_commit COMMIT_HASH_HERE Source0: https://github.com/hfp/libxs/archive/%{git_commit}/libxs-%{git_commit}.tar.gz Or, alternatively, you can use the Forge macros: https://docs.fedoraproject.org/en-US/packaging-guidelines/SourceURL/#_commit_example > %files > %{_libdir}/libxs.so.* You should avoid using a catch-all wildcard here, as it will hide any SONAME changes. https://docs.fedoraproject.org/en-US/packaging-guidelines/#_listing_shared_library_files > %files devel > %license LICENSE.md As the devel package requires the main package, you don't need to package the licence here. https://docs.fedoraproject.org/en-US/packaging-guidelines/LicensingGuidelines/#subpackage-licensing
Created attachment 2147074 [details] The .spec file difference from Copr build 10651387 to 10660768
Copr build: https://copr.fedorainfracloud.org/coprs/build/10660768 (succeeded) Review template: https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2493314-libxs/fedora-rawhide-x86_64/10660768-libxs/fedora-review/review.txt Found issues: - Upstream MD5sum check error, diff is in /var/lib/copr-rpmbuild/results/libxs/diff.txt Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/SourceURL/ 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.
Copr build: https://copr.fedorainfracloud.org/coprs/build/10666298 (succeeded) Review template: https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2493314-libxs/fedora-rawhide-x86_64/10666298-libxs/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.
Needs some more work, I will focus the comments as a downstream package review, there are only a few notes I can make for handling in upstream that I will comment separately. - Please make a separate git repository from which you submit the review request [1]. You can in principle you can use the copr project, but the version in packit+copr upstream will mangale the version, so doing it from a fresh repository with an empty `fix-spec-file` is needed. - Macro `libxs_build_testing` is not defined. Use `%{with tests}` instead - `%bcond_*` is deprecated because it is super unintuitive. Use `%bcond tests` instead - It does not make much practical difference, but use `-D...:<TYPE>` in the cmake variables when you can. In practice it only affects `PATH` types, but it helps with a readability to know what type it was meant to be when it was first added - Instead of `rm -f %{buildroot}%{_datadir}/%{name}/LICENSE.md` just use that as `%license %{_datadir}/%{name}/LICENSE.md` - It is common to have `soversion` as a macro - `_smp_build_ncpus` is not needed and already covered in the `%ctest` macro via `%{?_smp_mflags}` - `BUILD_SHARED_LIBS` is already covered in `%cmake` - Please keep a 1-2 new line gap between sections [3] (`%prep` -> `%build` does not have one). We have people with strong opinions on both 1 and 2, so it is up to you, as long as you are consistent. - Strongly recommend to use the `%conf` section unless you need rhel10 and less compatibility - Fortran modules must be installed in `%{_fmoddir}` according to the current guidelines [4]. Btw we can adjust the guidelines as needed, I am not a fan of that part either - This project has a good implementation of pkgconfig generation. Nothing to do, just wanted to comment on that :). The only thing that I would change is to add a check for absolute path. I think Qt has one of the best implementation of it so far (not biased at all :D) and can replicate it to catch some of these edge-case handlings - Please patch out the installation of the source into `/usr/include`. Why does upstream need this - Documentation are currently installed in an unstructured directory. `CMAKE_INSTALL_DOCDIR` is a good enough default to install to instead - Open an issue/tracker about opting out of `LIBXS_VERSION_RC` being dynamically created. We do not have the git information during the rpm build. You could use setuptools-scm's `.git_archival.txt` pattern if really needed, but you can also get it from the `%{version}` and manually pass it - Make a `doc` sub-package (noarch-ed) Still missing in the review: - license checks. fedora-review failed on me because of the unusual SPEC/SRPM urls - other fedora-review checklist that I have missed [1]: Example of how I manage https://github.com/LecrisUT/FedoraRPMs/tree/koneko [2]: https://src.fedoraproject.org/rpms/cmake/blob/rawhide/f/macros.cmake.in [3]: Sections are enumerated in https://rpm.org/docs/latest/manual/spec.html#build-scriptlets [4]: https://docs.fedoraproject.org/en-US/packaging-guidelines/Fortran/
> but it should be possible to only set the installation path of docs to `CMAKE_INSTALL_DOCDIR` Yes, that was what I was referring to. I did not review all of the other files that are in there, will do that as soon as I can run `fedora-review` > - Source file in `/usr/include/libxs/` It should not be in a CMake workflow in the first place. There is `FetchContent` if the user needs a "header-only"-like approach. As for the consumer, if it reads a `.pc` or CMake file, then they do not even care about header-only vs non-header-only mode. The header-only mode is just a "relic" of when you did not have build systems that can handle dependencies, and I would much rather kill that support as early as possible in the Fedora package before it can cause problems.
Copr build: https://copr.fedorainfracloud.org/coprs/build/10767825 (succeeded) Review template: https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2493314-libxs/fedora-rawhide-x86_64/10767825-libxs/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.
Created attachment 2152816 [details] The .spec file difference from Copr build 10767825 to 10782183
Copr build: https://copr.fedorainfracloud.org/coprs/build/10782183 (succeeded) Review template: https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2493314-libxs/fedora-rawhide-x86_64/10782183-libxs/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.
Ok, second round of review: - The patches are missing either providence and description. You can use a patch url like `https://github.com/hfp/libxs/pull/22.patch` - Additional comments about the patches in downstream - `bash` is a very uncommon thing to `BuildRequires`. You have it by default anyway - `cmake-rpm-macros` are included automatically when using `BuildRequires: cmake`, use only the latter instead - Do not explicitly `BuildRequires: ninja-build` unless you want to fix the generator - You can just use the whole folder in the `%files doc` - `-doc` subpackage must be version-locked to the name package, so please add a `Requires` (iiuc you skip the `%{?_isa}` in this case, but honestly I am still confused by it) Otherwise it all LGTM. 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]: 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. [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: "Unknown or generated", "BSD 3-Clause License", "*No copyright* BSD 3-Clause License". 140 files have unknown license. Detailed output of licensecheck in /home/cle/FedoraRPMs/2493314-libxs/licensecheck.txt [x]: License file installed when any subpackage combination is installed. [x]: Package requires other packages for directories it uses. Note: No known owner of /usr/lib64/gfortran (it is gcc-gfortran, although we should fix that to use a filesystem instead) [x]: %build honors applicable compiler flags or justifies otherwise. [x]: Package contains no bundled libraries or specifies bundled libraries with Provides: bundled(<libname>) if unbundling is not possible. [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]: 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]: Large documentation must go in a -doc subpackage. Large could be size (~1MB) or number of files. Note: Documentation size is 1526 bytes in 1 files. [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. [!]: 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: 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. [x]: Spec file according to URL is the same as in SRPM. Rpmlint ------- Checking: libxs-1.0.0-1.fc45.x86_64.rpm libxs-devel-1.0.0-1.fc45.x86_64.rpm libxs-doc-1.0.0-1.fc45.noarch.rpm libxs-1.0.0-1.fc45.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/tmp68xpgfpu')] checks: 32, packages: 4 libxs.src: E: spelling-error ('numerics', 'Summary(en_US) numerics -> numeric, numeric s') libxs.src: E: spelling-error ('numerics', '%description -l en_US numerics -> numeric, numeric s') libxs.x86_64: E: spelling-error ('numerics', 'Summary(en_US) numerics -> numeric, numeric s') libxs.x86_64: E: spelling-error ('numerics', '%description -l en_US numerics -> numeric, numeric s') 4 packages and 0 specfiles checked; 4 errors, 0 warnings, 24 filtered, 4 badness; has taken 0.9 s Rpmlint (debuginfo) ------------------- Checking: libxs-debuginfo-1.0.0-1.fc45.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/tmpxabeq4mp')] checks: 32, packages: 1 1 packages and 0 specfiles checked; 0 errors, 0 warnings, 4 filtered, 0 badness; has taken 0.2 s Rpmlint (installed packages) ---------------------------- ============================ rpmlint session starts ============================ rpmlint: 2.9.0 configuration: /usr/lib/python3.15/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 libxs.x86_64: E: spelling-error ('numerics', 'Summary(en_US) numerics -> numeric, numeric s') libxs.x86_64: E: spelling-error ('numerics', '%description -l en_US numerics -> numeric, numeric s') 4 packages and 0 specfiles checked; 2 errors, 0 warnings, 25 filtered, 2 badness; has taken 0.6 s Source checksums ---------------- https://github.com/hfp/libxs/releases/download/1.0.0/libxs-1.0.0.tar.gz : CHECKSUM(SHA256) this package : de26f50cb986a2f0e4f92c0eb489d40a44f7e4c5acd22751a6cfa2829dabd04d CHECKSUM(SHA256) upstream package : de26f50cb986a2f0e4f92c0eb489d40a44f7e4c5acd22751a6cfa2829dabd04d Requires -------- libxs (rpmlib, GLIBC filtered): libc.so.6()(64bit) libgcc_s.so.1()(64bit) libm.so.6()(64bit) rtld(GNU_HASH) libxs-devel (rpmlib, GLIBC filtered): /usr/bin/pkg-config cmake-filesystem(x86-64) gcc-gfortran(x86-64) libxs(x86-64) libxs.so.1()(64bit) libxs-doc (rpmlib, GLIBC filtered): Provides -------- libxs: libxs libxs(x86-64) libxs.so.1()(64bit) libxs-devel: cmake(libxs) libxs-devel libxs-devel(x86-64) pkgconfig(libxs) libxs-doc: libxs-doc Generated by fedora-review 0.11.0 (05c5b26) last change: 2025-11-29 Command line :/usr/bin/fedora-review -b 2493314 Buildroot used: fedora-rawhide-x86_64 Active plugins: Shell-api, Generic, C/C++ Disabled plugins: Perl, Python, SugarActivity, fonts, Haskell, R, Ocaml, PHP, Java Disabled flags: EXARCH, EPEL6, EPEL7, DISTTAG, BATCH
> I cannot ensure the patch url is directly appliable in the libxs-1.0.0 tarball, as there's other modification upstream and I wish to keep the patches minimal here. Can I add a description at the top of the patch with what it does and that it has been applied upstream? That is perfectly fine and expected. You just put the url of where you initially got it as a comment above it. A description of what it does or why it was added should be added in either case You can leave out `%license LICENSE.md` in the docs subpackage now that it is handled by the requires. Just patch comments and the question if `%{_isa}` in the docs are remaining, but those are not major and can be tweaked on import. PACKAGE APPROVED
The Pagure repository was created at https://src.fedoraproject.org/rpms/libxs Monitoring: Wasn't able to create project in Anitya. You can create it manually on: `https://release-monitoring.org`
FEDORA-2026-1c6984df6e (libxs-1.0.0-2.fc45) has been submitted as an update to Fedora 45. https://bodhi.fedoraproject.org/updates/FEDORA-2026-1c6984df6e
FEDORA-2026-1c6984df6e (libxs-1.0.0-2.fc45) has been pushed to the Fedora 45 stable repository. If problem still persists, please make note of it in this bug report.
FEDORA-2026-8535a56609 (libxs-1.0.0-2.fc44) has been submitted as an update to Fedora 44. https://bodhi.fedoraproject.org/updates/FEDORA-2026-8535a56609
FEDORA-EPEL-2026-303c906586 (libxs-1.0.0-2.el10_3) has been submitted as an update to Fedora EPEL 10.3. https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2026-303c906586
FEDORA-EPEL-2026-303c906586 has been pushed to the Fedora EPEL 10.3 testing repository. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2026-303c906586 See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.
FEDORA-2026-8535a56609 has been pushed to the Fedora 44 testing repository. Soon you'll be able to install the update with the following command: `sudo dnf install --enablerepo=updates-testing --refresh --advisory=FEDORA-2026-8535a56609 \*` You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2026-8535a56609 See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.
FEDORA-EPEL-2026-303c906586 (libxs-1.0.0-2.el10_3) has been pushed to the Fedora EPEL 10.3 stable repository. If problem still persists, please make note of it in this bug report.
FEDORA-2026-8535a56609 (libxs-1.0.0-2.fc44) has been pushed to the Fedora 44 stable repository. If problem still persists, please make note of it in this bug report.