Bug 2401972 - Review Request: qthreads - Lightweight locality-aware user-level threading runtime
Summary: Review Request: qthreads - Lightweight locality-aware user-level threading ru...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: Unspecified
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Ben Beasley
QA Contact: Fedora Extras Quality Assurance
URL: https://www.sandia.gov/qthreads/
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2025-10-06 20:09 UTC by Benson Muite
Modified: 2025-10-25 21:06 UTC (History)
3 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2025-10-19 02:38:15 UTC
Type: ---
Embargoed:
code: fedora-review+


Attachments (Terms of Use)
The .spec file difference from Copr build 9648885 to 9667664 (1.54 KB, patch)
2025-10-08 07:23 UTC, Fedora Review Service
no flags Details | Diff
The .spec file difference from Copr build 9667664 to 9674261 (1.98 KB, patch)
2025-10-09 14:27 UTC, Fedora Review Service
no flags Details | Diff

Description Benson Muite 2025-10-06 20:09:00 UTC
spec: https://fed500.fedorapeople.org/qthreads.spec
srpm: https://fed500.fedorapeople.org/qthreads-1.22-1.fc42.src.rpm

description:
The Qthreads API is designed to make using large numbers of threads convenient
and easy. The Qthreads API also provides access to full/empty-bit (FEB)
semantics, where every word of memory can be marked either full or empty, and a
thread can wait for any word to attain either state.

Qthreads is essentially a library for spawning and controlling stackful
coroutines: threads with small (4-8k) stacks. The exposed user API resembles
OS threads, however the threads are entirely in user-space and use their
locked/unlocked status as part of their scheduling.

The library's metaphor is that there are many Qthreads and several "shepherds".
Shepherds generally map to specific processors or memory regions, but this is
not an explicit part of the API. Qthreads are assigned to specific shepherds
and are only allowed to migrate when running on a scheduler that supports work
stealing or when migration is explicitly triggered via user APIs.

The API includes utility functions for making threaded loops, sorting, and
similar operations convenient.

fas: fed500



Reproducible: Always

Comment 1 Fedora Review Service 2025-10-06 20:13:53 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/9648885
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2401972-qthreads/fedora-rawhide-x86_64/09648885-qthreads/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 3 Fedora Review Service 2025-10-08 07:23:26 UTC
Created attachment 2109018 [details]
The .spec file difference from Copr build 9648885 to 9667664

Comment 4 Fedora Review Service 2025-10-08 07:23:29 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/9667664
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2401972-qthreads/fedora-rawhide-x86_64/09667664-qthreads/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 5 Terje Rosten 2025-10-09 06:39:42 UTC
spec file have:

 ExcludeArch:    %{ix86} s390x
 
why have ppc64le code as:

%ifarch ppc64le then?

Is s390x a ppc64le arch?

Comment 6 Ben Beasley 2025-10-09 06:54:40 UTC
(In reply to Terje Rosten from comment #5)
> spec file have:
> 
>  ExcludeArch:    %{ix86} s390x
>  
> why have ppc64le code as:
> 
> %ifarch ppc64le then?
> 
> Is s390x a ppc64le arch?

The library apparently does not work at all on s390x, so the ExcludeArch ensures it will not be built there. The library does work on ppc64le, but it apparently needs to be configured differently than other architectures (with -DQTHREADS_CONTEXT_SWAP_IMPL=system), which is what the %ifarch does.

Comment 7 Terje Rosten 2025-10-09 07:00:40 UTC
Ok, I see

Comment 8 Ben Beasley 2025-10-09 09:09:42 UTC
Overall, this looks really good! There are just a few things that need a second
look.

Package Review
==============

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


Issues:
=======
- Dist tag is present.

  OK: fedora-review is confused by rpmautospec

- It would be better to remove the bundled HPGCC in the benchmarks in %prep to
  prove that it is not used in the build.

    # Remove bundled HPGCC, only for benchmarks, to show it is unused
    rm -rv test/benchmarks/mantevo/hpccg/

- Contents of test/benchmarks/mantevo/hpccg/ are a bundled copy of HPGCC under
  LGPL-2.1-or-later, which is of course acceptable in Fedora. Since these
  sources do not contribute to the binary RPMs, this term is correctly omitted
  from License.

- The file COPYING contains three licenses. The first two are BSD-3-Clause and
  MIT, and are correctly represented in License. The third appears to be
  https://spdx.org/licenses/dtoa.html. Therefore, I belive the License should
  be:

    # Breakdown of licenses is documented in COPYING.
    License:        BSD-3-Clause AND MIT AND dtoa

  (You don’t have to add the comment if you don’t want to.)

- This:

    %{_libdir}/libqthread.so.1*

  can be more precisely written as:

    %{_libdir}/libqthread.so.1{,.*}

  which would not match e.g. libqthread.so.14. See:

    https://docs.fedoraproject.org/en-US/packaging-guidelines/#_listing_shared_library_files

  This is a small quibble that’s unlikely to make a difference in practice.

- For ExcludeArch: s390x, you need to document the reason in (for now) a comment. You sort of have this with

    # Unsupported architectures

  but that doesn’t really add any useful information. Maybe something like
  this?

    # This library relies on some low-level platform-specific code, so it can
    # only be expected to work on explicitly-supported architectures, and it only
    # compiles on architectures that upstream has attempted to support. See:
    #
    # https://github.com/sandialabs/qthreads/blob/1.22/README.md#compatibility
    # https://github.com/sandialabs/qthreads/blob/1.22/include/qthread/common.h#L44-L58.
    #
    # https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval
    ExcludeArch:    %{ix86} s390x

  When you import the package, you must file a tracking bug with the details
  about the architecture incompatibility, make it block F-ExcludeArch-s390x,
  and link it from the spec-file comment; see
  https://docs.fedoraproject.org/en-US/packaging-guidelines/#_architecture_build_failures.
  If you like, you can then omit the description from the spec file and just
  link the bug.

  A tracking bug isn’t required for i686 due to
  https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval.

- The source includes API documentation in the form of man pages. You might
  consider adding these to the -devel subpackage:

    %install
    […]
    install -t '%{buildroot}%{_mandir}/man3' -p -m 0644 -D man/man3/*.3

    […]

    %files devel
    %{_mandir}/man3/q*.3*
    […]

===== 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.
[!]: 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", "MIT License",
     "GNU Lesser General Public License v2.1 or later [obsolete FSF postal
     address (Temple Place)]". 579 files have unknown license. Detailed
     output of licensecheck in
     /home/ben/fedora/review/2401972-qthreads/licensecheck.txt

     It looks like this should be:

       # Breakdown of licenses is documented in COPYING.
       License:        BSD-3-Clause AND MIT AND dtoa

     See Issues.

[x]: License file installed when any subpackage combination is installed.
[!]: If the package is under multiple licenses, the licensing breakdown
     must be documented in the spec.

     This is no longer formally required,
     https://gitlab.com/fedora/legal/fedora-legal-docs/-/issues/64, although I
     think a comment as suggested above would be helpful.

[x]: %build honors applicable compiler flags or justifies otherwise.
[x]: Package contains no bundled libraries without FPC exception.

     Bundled HPGCC is not used in the build. It would be better to remove it in
     %prep; see Issues.  

[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.

     ExcludeArch tag is present, but lacks documentation.

     https://docs.fedoraproject.org/en-US/packaging-guidelines/#_architecture_build_failures

     See Issues.

[-]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 27351 bytes in 5 files.
[x]: Package complies to the Packaging Guidelines

     (Except as mentioned.)

[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 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]: 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).
[x]: Package functions as described.

     (Tests pass)

[x]: Latest version is packaged.

     A post-release snapshot is packaged, with adequate justification and with
     a valid snapshot information field in the Version.

[x]: Package does not include license text files separate from upstream.
[-]: Sources are verified with gpgverify first in %prep if upstream
     publishes signatures.
     Note: gpgverify is not used.
[!]: Package should compile and build into binary rpms on all supported
     architectures.

     Package is ExcludeArch: s390x. This is OK as long as it is correctly
     documented.

     The package does build on all of the architectures that it is supposed to
     build on: https://koji.fedoraproject.org/koji/taskinfo?taskID=137940277

[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]: 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: qthreads-1.22^20251007gitcedb1fc-1.fc44.aarch64.rpm
          qthreads-devel-1.22^20251007gitcedb1fc-1.fc44.aarch64.rpm
          qthreads-1.22^20251007gitcedb1fc-1.fc44.src.rpm
============================ rpmlint session starts ============================
rpmlint: 2.7.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
rpmlintrc: [PosixPath('/tmp/tmpdg7gdx3_')]
checks: 32, packages: 3

qthreads.aarch64: E: spelling-error ('stackful', '%description -l en_US stackful -> sackful, tactful')
qthreads.aarch64: E: spelling-error ('coroutines', '%description -l en_US coroutines -> co routines, co-routines, routines')
qthreads.src: E: spelling-error ('stackful', '%description -l en_US stackful -> sackful, tactful')
qthreads.src: E: spelling-error ('coroutines', '%description -l en_US coroutines -> co routines, co-routines, routines')
qthreads-devel.aarch64: W: no-documentation
 3 packages and 0 specfiles checked; 4 errors, 1 warnings, 25 filtered, 4 badness; has taken 0.4 s 




Rpmlint (debuginfo)
-------------------
Checking: qthreads-debuginfo-1.22^20251007gitcedb1fc-1.fc44.aarch64.rpm
============================ rpmlint session starts ============================
rpmlint: 2.7.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
rpmlintrc: [PosixPath('/tmp/tmpubb1r96r')]
checks: 32, packages: 1

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





Rpmlint (installed packages)
----------------------------
============================ rpmlint session starts ============================
rpmlint: 2.7.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: 3

qthreads.aarch64: E: spelling-error ('stackful', '%description -l en_US stackful -> sackful, tactful')
qthreads.aarch64: E: spelling-error ('coroutines', '%description -l en_US coroutines -> co routines, co-routines, routines')
qthreads-devel.aarch64: W: no-documentation
 3 packages and 0 specfiles checked; 2 errors, 1 warnings, 26 filtered, 2 badness; has taken 0.3 s 



Source checksums
----------------
https://github.com/sandialabs/qthreads/archive/cedb1fc6f725ea1a51dc9f5bbdc1ec6ec00e33d7/qthreads-cedb1fc.tar.gz :
  CHECKSUM(SHA256) this package     : 09a5877a8dd821374e5795d12b15187794831cb197c9e1c095247f8eab3cfe4d
  CHECKSUM(SHA256) upstream package : 09a5877a8dd821374e5795d12b15187794831cb197c9e1c095247f8eab3cfe4d


Requires
--------
qthreads (rpmlib, GLIBC filtered):
    ld-linux-aarch64.so.1()(64bit)
    libc.so.6()(64bit)
    rtld(GNU_HASH)

qthreads-devel (rpmlib, GLIBC filtered):
    cmake-filesystem(aarch-64)
    libqthread.so.1()(64bit)
    qthreads(aarch-64)



Provides
--------
qthreads:
    libqthread.so.1()(64bit)
    qthreads
    qthreads(aarch-64)

qthreads-devel:
    cmake(qthread)
    qthreads-devel
    qthreads-devel(aarch-64)



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

Comment 9 Benson Muite 2025-10-09 14:21:51 UTC
Thanks for the feedback.

(In reply to Ben Beasley from comment #8)
> Overall, this looks really good! There are just a few things that need a
> second
> look.
> 
> Issues:
> =======
> - Dist tag is present.
> 
>   OK: fedora-review is confused by rpmautospec
> 
> - It would be better to remove the bundled HPGCC in the benchmarks in %prep
> to
>   prove that it is not used in the build.
> 
>     # Remove bundled HPGCC, only for benchmarks, to show it is unused
>     rm -rv test/benchmarks/mantevo/hpccg/
> 

Done

> - Contents of test/benchmarks/mantevo/hpccg/ are a bundled copy of HPGCC
> under
>   LGPL-2.1-or-later, which is of course acceptable in Fedora. Since these
>   sources do not contribute to the binary RPMs, this term is correctly
> omitted
>   from License.
> 
> - The file COPYING contains three licenses. The first two are BSD-3-Clause
> and
>   MIT, and are correctly represented in License. The third appears to be
>   https://spdx.org/licenses/dtoa.html. Therefore, I belive the License should
>   be:
> 
>     # Breakdown of licenses is documented in COPYING.
>     License:        BSD-3-Clause AND MIT AND dtoa

Done

> 
>   (You don’t have to add the comment if you don’t want to.)
> 
> - This:
> 
>     %{_libdir}/libqthread.so.1*
> 
>   can be more precisely written as:
> 
>     %{_libdir}/libqthread.so.1{,.*}

Done

> 
>   which would not match e.g. libqthread.so.14. See:
> 
>    
> https://docs.fedoraproject.org/en-US/packaging-guidelines/
> #_listing_shared_library_files
> 
>   This is a small quibble that’s unlikely to make a difference in practice.
> 
> - For ExcludeArch: s390x, you need to document the reason in (for now) a
> comment. You sort of have this with
> 
>     # Unsupported architectures
> 
>   but that doesn’t really add any useful information. Maybe something like
>   this?
> 
>     # This library relies on some low-level platform-specific code, so it can
>     # only be expected to work on explicitly-supported architectures, and it
> only
>     # compiles on architectures that upstream has attempted to support. See:
>     #
>     #
> https://github.com/sandialabs/qthreads/blob/1.22/README.md#compatibility
>     #
> https://github.com/sandialabs/qthreads/blob/1.22/include/qthread/common.
> h#L44-L58.
>     #
>     # https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval
>     ExcludeArch:    %{ix86} s390x

Done

> 
>   When you import the package, you must file a tracking bug with the details
>   about the architecture incompatibility, make it block F-ExcludeArch-s390x,
>   and link it from the spec-file comment; see
>  
> https://docs.fedoraproject.org/en-US/packaging-guidelines/
> #_architecture_build_failures.
>   If you like, you can then omit the description from the spec file and just
>   link the bug.
> 
>   A tracking bug isn’t required for i686 due to
>   https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval.
> 
> - The source includes API documentation in the form of man pages. You might
>   consider adding these to the -devel subpackage:
> 
>     %install
>     […]
>     install -t '%{buildroot}%{_mandir}/man3' -p -m 0644 -D man/man3/*.3
> 
>     […]
> 
>     %files devel
>     %{_mandir}/man3/q*.3*
>     […]

Done


spec: https://fed500.fedorapeople.org/qthreads.spec
srpm: https://fed500.fedorapeople.org/qthreads-1.22%5e20251007gitcedb1fc-1.fc42.src.rpm


spec:
srpm:

Comment 10 Fedora Review Service 2025-10-09 14:27:15 UTC
Created attachment 2109189 [details]
The .spec file difference from Copr build 9667664 to 9674261

Comment 11 Fedora Review Service 2025-10-09 14:27:18 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/9674261
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2401972-qthreads/fedora-rawhide-x86_64/09674261-qthreads/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 12 Ben Beasley 2025-10-10 05:21:57 UTC
Package Review
==============

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

All of the feedback from the previous review has been correctly addressed.

After you import the package, please make sure to file the required tracking
issue for the ExcludeArch and link it in the spec file.
https://docs.fedoraproject.org/en-US/packaging-guidelines/#_architecture_build_failures


Issues:
=======
- Dist tag is present.

  OK: fedora-review is confused by rpmautospec


===== 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", "MIT License".
     577 files have unknown license. Detailed output of licensecheck in
     /home/ben/fedora/review/2401972-qthreads/20251009/2401972-qthreads/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.
[x]: Package contains no bundled libraries without FPC exception.

     Bundled HPGCC is removed in %prep.

[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.

     ExcludeArch tag is present and properly documented. Make sure to file the
     required tracking issue and link it in the spec file after you import the
     package.

[-]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 27351 bytes in 5 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 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]: 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).
[x]: Package functions as described.

     (tests pass)

[x]: Latest version is packaged.

     A post-release snapshot is packaged, with adequate justification and with
     a valid snapshot information field in the Version.

[x]: Package does not include license text files separate from upstream.
[-]: Sources are verified with gpgverify first in %prep if upstream
     publishes signatures.
     Note: gpgverify is not used.
[!]: Package should compile and build into binary rpms on all supported
     architectures.

     ExcludeArch tag is present and properly documented. Make sure to file the

[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]: 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: qthreads-1.22^20251007gitcedb1fc-1.fc44.aarch64.rpm
          qthreads-devel-1.22^20251007gitcedb1fc-1.fc44.aarch64.rpm
          qthreads-1.22^20251007gitcedb1fc-1.fc44.src.rpm
============================ rpmlint session starts ============================
rpmlint: 2.7.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
rpmlintrc: [PosixPath('/tmp/tmpietnnjdc')]
checks: 32, packages: 3

qthreads.aarch64: E: spelling-error ('stackful', '%description -l en_US stackful -> sackful, tactful')
qthreads.aarch64: E: spelling-error ('coroutines', '%description -l en_US coroutines -> co routines, co-routines, routines')
qthreads.src: E: spelling-error ('stackful', '%description -l en_US stackful -> sackful, tactful')
qthreads.src: E: spelling-error ('coroutines', '%description -l en_US coroutines -> co routines, co-routines, routines')
 3 packages and 0 specfiles checked; 4 errors, 0 warnings, 25 filtered, 4 badness; has taken 0.4 s 




Rpmlint (debuginfo)
-------------------
Checking: qthreads-debuginfo-1.22^20251007gitcedb1fc-1.fc44.aarch64.rpm
============================ rpmlint session starts ============================
rpmlint: 2.7.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
rpmlintrc: [PosixPath('/tmp/tmpef6gisox')]
checks: 32, packages: 1

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





Rpmlint (installed packages)
----------------------------
============================ rpmlint session starts ============================
rpmlint: 2.7.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: 3

qthreads.aarch64: E: spelling-error ('stackful', '%description -l en_US stackful -> sackful, tactful')
qthreads.aarch64: E: spelling-error ('coroutines', '%description -l en_US coroutines -> co routines, co-routines, routines')
 3 packages and 0 specfiles checked; 2 errors, 0 warnings, 26 filtered, 2 badness; has taken 0.3 s 



Source checksums
----------------
https://github.com/sandialabs/qthreads/archive/cedb1fc6f725ea1a51dc9f5bbdc1ec6ec00e33d7/qthreads-cedb1fc.tar.gz :
  CHECKSUM(SHA256) this package     : 09a5877a8dd821374e5795d12b15187794831cb197c9e1c095247f8eab3cfe4d
  CHECKSUM(SHA256) upstream package : 09a5877a8dd821374e5795d12b15187794831cb197c9e1c095247f8eab3cfe4d


Requires
--------
qthreads (rpmlib, GLIBC filtered):
    ld-linux-aarch64.so.1()(64bit)
    libc.so.6()(64bit)
    rtld(GNU_HASH)

qthreads-devel (rpmlib, GLIBC filtered):
    cmake-filesystem(aarch-64)
    libqthread.so.1()(64bit)
    qthreads(aarch-64)



Provides
--------
qthreads:
    libqthread.so.1()(64bit)
    qthreads
    qthreads(aarch-64)

qthreads-devel:
    cmake(qthread)
    qthreads-devel
    qthreads-devel(aarch-64)



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

Comment 13 Fedora Admin user for bugzilla script actions 2025-10-10 13:34:13 UTC
The Pagure repository was created at https://src.fedoraproject.org/rpms/qthreads

Comment 14 Fedora Update System 2025-10-10 14:58:42 UTC
FEDORA-2025-698ae78e80 (qthreads-1.22^20251007gitcedb1fc-1.fc42) has been submitted as an update to Fedora 42.
https://bodhi.fedoraproject.org/updates/FEDORA-2025-698ae78e80

Comment 15 Fedora Update System 2025-10-10 15:01:53 UTC
FEDORA-2025-0472d78b15 (qthreads-1.22^20251007gitcedb1fc-1.fc43) has been submitted as an update to Fedora 43.
https://bodhi.fedoraproject.org/updates/FEDORA-2025-0472d78b15

Comment 16 Fedora Update System 2025-10-11 01:23:08 UTC
FEDORA-2025-0472d78b15 has been pushed to the Fedora 43 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf install --enablerepo=updates-testing --refresh --advisory=FEDORA-2025-0472d78b15 \*`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2025-0472d78b15

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 17 Fedora Update System 2025-10-11 01:44:00 UTC
FEDORA-2025-698ae78e80 has been pushed to the Fedora 42 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf install --enablerepo=updates-testing --refresh --advisory=FEDORA-2025-698ae78e80 \*`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2025-698ae78e80

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 18 Fedora Update System 2025-10-19 02:38:15 UTC
FEDORA-2025-698ae78e80 (qthreads-1.22^20251007gitcedb1fc-1.fc42) has been pushed to the Fedora 42 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 19 Fedora Update System 2025-10-25 21:06:01 UTC
FEDORA-2025-0472d78b15 (qthreads-1.22^20251007gitcedb1fc-1.fc43) has been pushed to the Fedora 43 stable repository.
If problem still persists, please make note of it in this bug report.


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