Bug 2445809 - Review Request: glaze - Extremely fast, in memory, JSON and interface library
Summary: Review Request: glaze - Extremely fast, in memory, JSON and interface library
Keywords:
Status: NEW
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: U2FsdGVkX1
QA Contact: Fedora Extras Quality Assurance
URL: https://github.com/stephenberry/glaze
Whiteboard:
: 2366921 (view as bug list)
Depends On:
Blocks: FE-NEEDSPONSOR
TreeView+ depends on / blocked
 
Reported: 2026-03-09 19:18 UTC by Bekir YAZIR
Modified: 2026-05-03 14:20 UTC (History)
5 users (show)

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


Attachments (Terms of Use)
The .spec file difference from Copr build 10416720 to 10416724 (988 bytes, patch)
2026-05-02 01:40 UTC, Fedora Review Service
no flags Details | Diff

Description Bekir YAZIR 2026-03-09 19:18:35 UTC
Spec URL: https://download.copr.fedorainfracloud.org/results/bby256/hyprland-stack/srpm-builds/10204738/glaze.spec
SRPM URL: https://download.copr.fedorainfracloud.org/results/bby256/hyprland-stack/srpm-builds/10204738/glaze-7.1.1-1.src.rpm
Description: One of the fastest JSON libraries in the world. Glaze reads and writes from object memory, simplifying interfaces and offering incredible performance.
Fedora Account System username: bby256

Needed for Hyprland version 0.46+. This review request is part of my effort to get the Hyprland ecosystem back in official Fedora repositories. The package+dependencies for Hyprland is currently retired/stale/missing.

Comment 1 Fedora Review Service 2026-03-09 19:22:33 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/10204788
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2445809-glaze/fedora-rawhide-x86_64/10204788-glaze/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 2 Benson Muite 2026-03-10 19:05:15 UTC
Maybe helpful to see https://bugzilla.redhat.com/show_bug.cgi?id=2366921

Comment 3 Bekir YAZIR 2026-03-10 21:20:42 UTC
(In reply to Benson Muite from comment #2)
> Maybe helpful to see https://bugzilla.redhat.com/show_bug.cgi?id=2366921

I know about that one. nightishaman has been inactive for months and I made this request with the fixes implemented to the spec file that is broken on the bug you linked.

Comment 4 Jens Petersen 2026-03-26 03:34:02 UTC
Do update the links, thanks

Comment 5 Jens Petersen 2026-03-26 03:34:47 UTC
Presumably it is not x86_64 only, right?  (arch field)

Comment 7 Jens Petersen 2026-03-26 08:54:42 UTC
Thanks

Did you try to unbundle xxhash (like in the earlier package review)?

Also can you comment on the disabling of SIMD?

Comment 9 Fedora Review Service 2026-03-27 02:58:58 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/10265671
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2445809-glaze/fedora-rawhide-x86_64/10265671-glaze/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 10 Fedora Review Service 2026-03-27 03:07:15 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/10265682
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2445809-glaze/fedora-rawhide-x86_64/10265682-glaze/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 11 Benson Muite 2026-04-02 07:04:12 UTC
*** Bug 2366921 has been marked as a duplicate of this bug. ***

Comment 12 U2FsdGVkX1 2026-04-20 15:41:53 UTC
I would like to take over the review of this package.
If you are open to it, I would appreciate it if you could help review ly in return:
https://bugzilla.redhat.com/show_bug.cgi?id=2459725

Comment 13 U2FsdGVkX1 2026-04-20 16:11:20 UTC
I tested the current package: SRPM build, rebuild, install, and a small CMake consumer test all succeeded.

A few issues still need to be addressed before approval:

1. The spec comment explains MIT + bundled dragonbox, but I could not confirm the current BSD-2-Clause part from the sources.
2. since fast_float-devel is already packaged in Fedora, is there still a need to bundle fast_float here?
https://src.fedoraproject.org/rpms/fast_float

Comment 14 Bekir YAZIR 2026-04-29 05:44:13 UTC
Sure, sorry for being late. I will address the issues today.

Comment 15 Bekir YAZIR 2026-04-30 18:31:50 UTC
Spec URL: https://download.copr.fedorainfracloud.org/results/bby256/hyprland-stack/srpm-builds/10412870/glaze.spec
SRPM URL: https://download.copr.fedorainfracloud.org/results/bby256/hyprland-stack/srpm-builds/10412870/glaze-7.1.1-1.src.rpm

BSD-2-Clause issue addressed (Removed from spec)

About fast_float: The bundled one in the package is namespace wrapped, making the system fast_float package incompatible.

Comment 16 Fedora Review Service 2026-04-30 18:35:05 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/10412887
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2445809-glaze/fedora-rawhide-x86_64/10412887-glaze/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 17 U2FsdGVkX1 2026-05-01 07:55:11 UTC
Hi, Bekir

1. Provides: bundled(fast_float) has the wrong version.

The spec currently has:

Provides: bundled(fast_float) = 6.1.1

but the bundled header says it is fast_float 8.0.2:

// glaze-7.1.1/include/glaze/util/fast_float.hpp
#define GLZ_FASTFLOAT_VERSION_MAJOR 8
#define GLZ_FASTFLOAT_VERSION_MINOR 0
#define GLZ_FASTFLOAT_VERSION_PATCH 2

2. The package is currently at 7.1.1, while upstream has released 7.5.0. It would be good to update to the latest release.

Comment 18 U2FsdGVkX1 2026-05-01 08:41:45 UTC
maybe you could try this patch to unbundle fast_float:

in %prep, replace the bundled include/glaze/util/fast_float.hpp with a small wrapper around the system header:

# Replace the bundled fast_float header with a wrapper pointing to the system version.
cat > include/glaze/util/fast_float.hpp <<'EOF'
#pragma once
#include <fast_float/fast_float.h>
namespace glz { namespace fast_float = ::fast_float; }
EOF

The spec also needs:
Patch0:         0001-use-system-fast-float.patch
BuildRequires:  fast_float-devel
Requires:       fast_float-devel


0001-use-system-fast-float.patch:
--- a/include/glaze/util/glaze_fast_float.hpp
+++ b/include/glaze/util/glaze_fast_float.hpp
@@ -42,7 +42,7 @@
 
       uint64_t digit;
       if constexpr (null_terminated) {
-         while ((digit = glz::fast_float::digit_value(*p)) <= 9) {
+         while ((digit = uint64_t(*p - UC('0'))) <= 9) {
             // a multiplication by 10 is cheaper than an arbitrary integer
             // multiplication
             i = 10 * i + digit; // might overflow, we will handle the overflow later
@@ -50,7 +50,7 @@
          }
       }
       else {
-         while ((p != pend) && (digit = glz::fast_float::digit_value(*p)) <= 9) {
+         while ((p != pend) && (digit = uint64_t(*p - UC('0'))) <= 9) {
             // a multiplication by 10 is cheaper than an arbitrary integer
             // multiplication
             i = 10 * i + digit; // might overflow, we will handle the overflow later
@@ -84,13 +84,13 @@
          loop_parse_if_eight_digits(p, pend, i);
 
          if constexpr (null_terminated) {
-            while ((digit = glz::fast_float::digit_value(*p)) <= 9) {
+            while ((digit = uint64_t(*p - UC('0'))) <= 9) {
                ++p;
                i = i * 10 + digit; // in rare cases, this will overflow, but that's ok
             }
          }
          else {
-            while ((p != pend) && (digit = glz::fast_float::digit_value(*p)) <= 9) {
+            while ((p != pend) && (digit = uint64_t(*p - UC('0'))) <= 9) {
                ++p;
                i = i * 10 + digit; // in rare cases, this will overflow, but that's ok
             }
@@ -118,7 +118,7 @@
             else if (UC('+') == *p) { // '+' on exponent is allowed by C++17 20.19.3.(7.1)
                ++p;
             }
-            if ((digit = glz::fast_float::digit_value(*p)) > 9) {
+            if ((digit = uint64_t(*p - UC('0'))) > 9) {
                // Otherwise, we will be ignoring the 'e'.
                p = location_of_e;
             }
@@ -128,7 +128,7 @@
                      exp_number = 10 * exp_number + digit;
                   }
                   ++p;
-               } while ((digit = glz::fast_float::digit_value(*p)) <= 9);
+               } while ((digit = uint64_t(*p - UC('0'))) <= 9);
                if (neg_exp) {
                   exp_number = -exp_number;
                }
@@ -148,7 +148,7 @@
             else if ((p != pend) && (UC('+') == *p)) { // '+' on exponent is allowed by C++17 20.19.3.(7.1)
                ++p;
             }
-            if ((p == pend) || (digit = glz::fast_float::digit_value(*p)) > 9) {
+            if ((p == pend) || (digit = uint64_t(*p - UC('0'))) > 9) {
                // Otherwise, we will be ignoring the 'e'.
                p = location_of_e;
             }
@@ -158,7 +158,7 @@
                      exp_number = 10 * exp_number + digit;
                   }
                   ++p;
-               } while ((p != pend) && (digit = glz::fast_float::digit_value(*p)) <= 9);
+               } while ((p != pend) && (digit = uint64_t(*p - UC('0'))) <= 9);
                if (neg_exp) {
                   exp_number = -exp_number;
                }

Comment 20 Bekir YAZIR 2026-05-01 14:00:56 UTC
Upstream has replaced dragonbox with zmij which is not in the system repositories. Now there is a bundled zmij.

Comment 21 U2FsdGVkX1 2026-05-01 18:49:32 UTC
1. %global debug_package %{nil} is acceptable here. Fedora Packaging Guidelines explicitly mention this case for header-only libraries whose base package remains arched while only noarch subpackages are built. However, the Debuginfo guidelines require an explanation in the spec whenever debuginfo generation is explicitly disabled. Please add a comment explaining this.

https://src.fedoraproject.org/rpms/fast_float/blob/rawhide/f/fast_float.spec#_38
https://src.fedoraproject.org/rpms/xxhashct/blob/rawhide/f/xxhashct.spec#_24

2. The License comment/field still refers to dragonbox / Apache-2.0, but upstream 7.5.0 appears to have replaced dragonbox with zmij. Please update the License field and comment accordingly.

Comment 23 Fedora Review Service 2026-05-02 01:39:14 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/10416720
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2445809-glaze/fedora-rawhide-x86_64/10416720-glaze/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 24 Fedora Review Service 2026-05-02 01:40:44 UTC
Created attachment 2139035 [details]
The .spec file difference from Copr build 10416720 to 10416724

Comment 25 Fedora Review Service 2026-05-02 01:40:46 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/10416724
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2445809-glaze/fedora-rawhide-x86_64/10416724-glaze/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 26 U2FsdGVkX1 2026-05-02 04:32:25 UTC
Thank you for the updates.
I have reviewed and everything looks good to me.

Comment 27 Bekir YAZIR 2026-05-02 19:31:01 UTC
Thanks, can you also sponsor me to the packager group please?

Comment 28 U2FsdGVkX1 2026-05-03 14:20:14 UTC
Hi, Bekir

Just to clarify, I’m a Fedora packager and can help with reviewing the package, but I do not have sponsor status. Therefore I’m not able to sponsor new packagers into the packager group.

I can still continue with the package review and provide feedback, but you will need an existing Fedora packager sponsor for the sponsorship part.


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