From 1229bd0a4c2c1bb18dba45c1e2f65c99e53e3174 Mon Sep 17 00:00:00 2001 From: lidaixingchen <3506962253@qq.com> Date: Thu, 23 Jul 2026 03:17:50 +0800 Subject: [PATCH 01/16] Add package randx 1.3.1 --- packages/r/randx/xmake.lua | 39 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 packages/r/randx/xmake.lua diff --git a/packages/r/randx/xmake.lua b/packages/r/randx/xmake.lua new file mode 100644 index 00000000000..a4e4bfb6072 --- /dev/null +++ b/packages/r/randx/xmake.lua @@ -0,0 +1,39 @@ +package("randx") + set_homepage("https://github.com/lidaixingchen/RandX") + set_description("Modern, fast, and header-only C++ pseudo-random number generator and distribution library (C++17/C++23).") + set_license("MIT") + + add_urls("https://github.com/lidaixingchen/RandX/archive/refs/tags/v$(version).tar.gz") + + add_versions("1.3.1", "f271bbcb26bea7747ee292646df895c2305b696bb0d58d69b54e84fe96fab3c1") + + on_load(function (package) + package:set("kind", "library", {headeronly = true}) + + -- 跨平台 OS 熵源链接(ChaCha20 CSPRNG 需要) + -- Windows: BCryptGenRandom → bcrypt + -- macOS: SecRandomCopyBytes → Security framework + -- Linux: getrandom → libc 内置,无需额外链接 + if package:is_plat("windows", "mingw") then + package:add("syslinks", "bcrypt") + elseif package:is_plat("macosx") then + package:add("syslinks", "Security") + end + end) + + on_install(function (package) + -- 仅安装两个头文件到 include/ + os.cp("RandX.hpp", package:installdir("include")) + os.cp("RandX_Cpp17.hpp", package:installdir("include")) + end) + + on_test(function (package) + assert(package:check_cxxsnippets({test = [[ + #include + #include + static void test() { + std::uint64_t v = RandX::RandInt(0, 1000); + (void)v; + } + ]]}, {configs = {languages = "c++23"}})) + end) From 9941bf88e90a30900a378c06891ff7c62f9b2b79 Mon Sep 17 00:00:00 2001 From: lidaixingchen <3506962253@qq.com> Date: Thu, 23 Jul 2026 06:59:19 +0800 Subject: [PATCH 02/16] Update randx to 1.4.0 --- packages/r/randx/xmake.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/r/randx/xmake.lua b/packages/r/randx/xmake.lua index a4e4bfb6072..893b0b11cec 100644 --- a/packages/r/randx/xmake.lua +++ b/packages/r/randx/xmake.lua @@ -5,6 +5,7 @@ package("randx") add_urls("https://github.com/lidaixingchen/RandX/archive/refs/tags/v$(version).tar.gz") + add_versions("1.4.0", "ecf611c6f340986df2abf3191def2222a3287f5e20ec4280c88996770a95eec7") add_versions("1.3.1", "f271bbcb26bea7747ee292646df895c2305b696bb0d58d69b54e84fe96fab3c1") on_load(function (package) From d3e9656661eafd78d0014f9e51df9e280439e920 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8E=86=E4=BB=A3=E6=98=9F=E8=BE=B0?= <115717776+lidaixingchen@users.noreply.github.com> Date: Sat, 25 Jul 2026 08:28:23 +0800 Subject: [PATCH 03/16] refactor(randx): simplify package recipe per review feedback --- packages/r/randx/xmake.lua | 30 +++++++++++------------------- 1 file changed, 11 insertions(+), 19 deletions(-) diff --git a/packages/r/randx/xmake.lua b/packages/r/randx/xmake.lua index 893b0b11cec..cc7dd3985b8 100644 --- a/packages/r/randx/xmake.lua +++ b/packages/r/randx/xmake.lua @@ -1,29 +1,21 @@ package("randx") + set_kind("library", {headeronly = true}) set_homepage("https://github.com/lidaixingchen/RandX") - set_description("Modern, fast, and header-only C++ pseudo-random number generator and distribution library (C++17/C++23).") + set_description("Modern, fast, with header-only C++ pseudo-random number generator and distribution library (C++17/C++23).") set_license("MIT") add_urls("https://github.com/lidaixingchen/RandX/archive/refs/tags/v$(version).tar.gz") - add_versions("1.4.0", "ecf611c6f340986df2abf3191def2222a3287f5e20ec4280c88996770a95eec7") - add_versions("1.3.1", "f271bbcb26bea7747ee292646df895c2305b696bb0d58d69b54e84fe96fab3c1") + add_versions("1.4.0", "ecf611c6f340986df2abf319adef2222a3287f5e20ec4280c88996770a95eec7") + add_versions("1.3.1", "f271bbcb26bea7747ee292646df89b696b0d5869b54e84fe96fab3c1") - on_load(function (package) - package:set("kind", "library", {headeronly = true}) - - -- 跨平台 OS 熵源链接(ChaCha20 CSPRNG 需要) - -- Windows: BCryptGenRandom → bcrypt - -- macOS: SecRandomCopyBytes → Security framework - -- Linux: getrandom → libc 内置,无需额外链接 - if package:is_plat("windows", "mingw") then - package:add("syslinks", "bcrypt") - elseif package:is_plat("macosx") then - package:add("syslinks", "Security") - end - end) + if is_plat("windows", "mingw") then + add_syslinks("bcrypt") + elseif is_plat("macosx") then + add_syslinks("Security") + end on_install(function (package) - -- 仅安装两个头文件到 include/ os.cp("RandX.hpp", package:installdir("include")) os.cp("RandX_Cpp17.hpp", package:installdir("include")) end) @@ -36,5 +28,5 @@ package("randx") std::uint64_t v = RandX::RandInt(0, 1000); (void)v; } - ]]}, {configs = {languages = "c++23"}})) - end) + ]]}, {configs = {languages = "c++23"}})) + end) \ No newline at end of file From 5a9ac2489fafd8f00fb1b91bfac7631bd5076846 Mon Sep 17 00:00:00 2001 From: lidaixingchen <3506962253@qq.com> Date: Sat, 25 Jul 2026 22:25:10 +0800 Subject: [PATCH 04/16] fix(randx): correct SHA hashes, use Security framework, test with C++17 --- packages/r/randx/xmake.lua | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/r/randx/xmake.lua b/packages/r/randx/xmake.lua index cc7dd3985b8..86efc5aa22b 100644 --- a/packages/r/randx/xmake.lua +++ b/packages/r/randx/xmake.lua @@ -1,18 +1,18 @@ package("randx") set_kind("library", {headeronly = true}) set_homepage("https://github.com/lidaixingchen/RandX") - set_description("Modern, fast, with header-only C++ pseudo-random number generator and distribution library (C++17/C++23).") + set_description("Modern, fast, and header-only C++ pseudo-random number generator and distribution library (C++17/C++23).") set_license("MIT") add_urls("https://github.com/lidaixingchen/RandX/archive/refs/tags/v$(version).tar.gz") - add_versions("1.4.0", "ecf611c6f340986df2abf319adef2222a3287f5e20ec4280c88996770a95eec7") - add_versions("1.3.1", "f271bbcb26bea7747ee292646df89b696b0d5869b54e84fe96fab3c1") + add_versions("1.4.0", "ecf611c6f340986df2abf3191def2222a3287f5e20ec4280c88996770a95eec7") + add_versions("1.3.1", "f271bbcb26bea7747ee292646df895c2305b696bb0d58d69b54e84fe96fab3c1") if is_plat("windows", "mingw") then add_syslinks("bcrypt") elseif is_plat("macosx") then - add_syslinks("Security") + add_frameworks("Security") end on_install(function (package) @@ -22,11 +22,11 @@ package("randx") on_test(function (package) assert(package:check_cxxsnippets({test = [[ - #include + #include #include static void test() { std::uint64_t v = RandX::RandInt(0, 1000); (void)v; } - ]]}, {configs = {languages = "c++23"}})) - end) \ No newline at end of file + ]]}, {configs = {languages = "c++17"}})) + end) From 25d4a18bff98a1ca02f81bb5da10316b96e6f755 Mon Sep 17 00:00:00 2001 From: lidaixingchen <3506962253@qq.com> Date: Sat, 25 Jul 2026 22:37:25 +0800 Subject: [PATCH 05/16] Update randx to 1.4.2 --- packages/r/randx/xmake.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/r/randx/xmake.lua b/packages/r/randx/xmake.lua index 86efc5aa22b..c520892c5d7 100644 --- a/packages/r/randx/xmake.lua +++ b/packages/r/randx/xmake.lua @@ -6,6 +6,7 @@ package("randx") add_urls("https://github.com/lidaixingchen/RandX/archive/refs/tags/v$(version).tar.gz") + add_versions("1.4.2", "dc816718ab8a42e3fa34a6e56444f580a1539b9b21b462713e434a0f88d16b5b") add_versions("1.4.0", "ecf611c6f340986df2abf3191def2222a3287f5e20ec4280c88996770a95eec7") add_versions("1.3.1", "f271bbcb26bea7747ee292646df895c2305b696bb0d58d69b54e84fe96fab3c1") From 2e789ef7f4ccb21a3690c50b0dc0af4405d1d09c Mon Sep 17 00:00:00 2001 From: lidaixingchen <3506962253@qq.com> Date: Sat, 25 Jul 2026 22:59:05 +0800 Subject: [PATCH 06/16] Fix SHA256 for randx 1.4.2 tarball --- packages/r/randx/xmake.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/r/randx/xmake.lua b/packages/r/randx/xmake.lua index c520892c5d7..41198ef1551 100644 --- a/packages/r/randx/xmake.lua +++ b/packages/r/randx/xmake.lua @@ -6,7 +6,7 @@ package("randx") add_urls("https://github.com/lidaixingchen/RandX/archive/refs/tags/v$(version).tar.gz") - add_versions("1.4.2", "dc816718ab8a42e3fa34a6e56444f580a1539b9b21b462713e434a0f88d16b5b") + add_versions("1.4.2", "25badb73e98b2e83456bea63bb60b1f335091576ec1d1c06ec2649ed92fc84bf") add_versions("1.4.0", "ecf611c6f340986df2abf3191def2222a3287f5e20ec4280c88996770a95eec7") add_versions("1.3.1", "f271bbcb26bea7747ee292646df895c2305b696bb0d58d69b54e84fe96fab3c1") From 036e223484ce0af424d6ba096c2436ea3a3a4b57 Mon Sep 17 00:00:00 2001 From: lidaixingchen <3506962253@qq.com> Date: Sat, 25 Jul 2026 23:23:01 +0800 Subject: [PATCH 07/16] Fix header-only link check: create empty archive, remove macOS-incompatible 1.3.1 --- packages/r/randx/xmake.lua | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/r/randx/xmake.lua b/packages/r/randx/xmake.lua index 41198ef1551..fd302d9f7ac 100644 --- a/packages/r/randx/xmake.lua +++ b/packages/r/randx/xmake.lua @@ -8,7 +8,6 @@ package("randx") add_versions("1.4.2", "25badb73e98b2e83456bea63bb60b1f335091576ec1d1c06ec2649ed92fc84bf") add_versions("1.4.0", "ecf611c6f340986df2abf3191def2222a3287f5e20ec4280c88996770a95eec7") - add_versions("1.3.1", "f271bbcb26bea7747ee292646df895c2305b696bb0d58d69b54e84fe96fab3c1") if is_plat("windows", "mingw") then add_syslinks("bcrypt") @@ -19,6 +18,12 @@ package("randx") on_install(function (package) os.cp("RandX.hpp", package:installdir("include")) os.cp("RandX_Cpp17.hpp", package:installdir("include")) + -- Header-only: create empty archive so -lrandx resolves in find_package checks + if not package:is_plat("windows") then + local libfile = package:installdir("lib", "librandx.a") + os.mkdir(path.directory(libfile)) + io.writefile(libfile, "!\n") + end end) on_test(function (package) From 2c2146d6694d0ff8a46413d0cfc49c017475bbac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8E=86=E4=BB=A3=E6=98=9F=E8=BE=B0?= <115717776+lidaixingchen@users.noreply.github.com> Date: Sun, 26 Jul 2026 16:55:20 +0800 Subject: [PATCH 08/16] fix(randx): remove redundant archive file creation and clean version list --- packages/r/randx/xmake.lua | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/packages/r/randx/xmake.lua b/packages/r/randx/xmake.lua index fd302d9f7ac..e60664c6eea 100644 --- a/packages/r/randx/xmake.lua +++ b/packages/r/randx/xmake.lua @@ -1,13 +1,15 @@ package("randx") set_kind("library", {headeronly = true}) set_homepage("https://github.com/lidaixingchen/RandX") - set_description("Modern, fast, and header-only C++ pseudo-random number generator and distribution library (C++17/C++23).") + set_description("Modern, fast, with header-only C++ pseudo-random number generator and distribution library (C++17/C++23).") set_license("MIT") add_urls("https://github.com/lidaixingchen/RandX/archive/refs/tags/v$(version).tar.gz") + add_versions("1.4.3", "2227db348490f72e0aa8aaff923b24b773dec268656ef60bec3fe997e2fbac61") add_versions("1.4.2", "25badb73e98b2e83456bea63bb60b1f335091576ec1d1c06ec2649ed92fc84bf") add_versions("1.4.0", "ecf611c6f340986df2abf3191def2222a3287f5e20ec4280c88996770a95eec7") + add_versions("1.3.1", "f271bbcb26bea7747ee292646df8966b0d5869b54e84fe96fab3c1") if is_plat("windows", "mingw") then add_syslinks("bcrypt") @@ -18,21 +20,15 @@ package("randx") on_install(function (package) os.cp("RandX.hpp", package:installdir("include")) os.cp("RandX_Cpp17.hpp", package:installdir("include")) - -- Header-only: create empty archive so -lrandx resolves in find_package checks - if not package:is_plat("windows") then - local libfile = package:installdir("lib", "librandx.a") - os.mkdir(path.directory(libfile)) - io.writefile(libfile, "!\n") - end end) on_test(function (package) assert(package:check_cxxsnippets({test = [[ - #include + #include #include static void test() { std::uint64_t v = RandX::RandInt(0, 1000); (void)v; } - ]]}, {configs = {languages = "c++17"}})) - end) + ]]}, {configs = {languages = "c++23"}}i)' + end) \ No newline at end of file From b979453ad0ada2be977dc0079a3c89f4eb3e9243 Mon Sep 17 00:00:00 2001 From: Saikari Date: Tue, 4 Aug 2026 18:00:40 +0300 Subject: [PATCH 09/16] Update xmake.lua --- packages/r/randx/xmake.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/r/randx/xmake.lua b/packages/r/randx/xmake.lua index e60664c6eea..fa2a29b329d 100644 --- a/packages/r/randx/xmake.lua +++ b/packages/r/randx/xmake.lua @@ -13,7 +13,7 @@ package("randx") if is_plat("windows", "mingw") then add_syslinks("bcrypt") - elseif is_plat("macosx") then + elseif is_plat("macosx", "iphoneos") then add_frameworks("Security") end @@ -30,5 +30,5 @@ package("randx") std::uint64_t v = RandX::RandInt(0, 1000); (void)v; } - ]]}, {configs = {languages = "c++23"}}i)' - end) \ No newline at end of file + ]]}, {configs = {languages = "c++23"}})) + end) From adeeada70192baabd0a7812138e33739d6d4e26a Mon Sep 17 00:00:00 2001 From: Saikari Date: Tue, 4 Aug 2026 18:16:13 +0300 Subject: [PATCH 10/16] Fix checksum for version 1.3.1 in xmake.lua Corrected the checksum for version 1.3.1. --- packages/r/randx/xmake.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/r/randx/xmake.lua b/packages/r/randx/xmake.lua index fa2a29b329d..3683180d483 100644 --- a/packages/r/randx/xmake.lua +++ b/packages/r/randx/xmake.lua @@ -9,7 +9,7 @@ package("randx") add_versions("1.4.3", "2227db348490f72e0aa8aaff923b24b773dec268656ef60bec3fe997e2fbac61") add_versions("1.4.2", "25badb73e98b2e83456bea63bb60b1f335091576ec1d1c06ec2649ed92fc84bf") add_versions("1.4.0", "ecf611c6f340986df2abf3191def2222a3287f5e20ec4280c88996770a95eec7") - add_versions("1.3.1", "f271bbcb26bea7747ee292646df8966b0d5869b54e84fe96fab3c1") + add_versions("1.3.1", "f271bbcb26bea7747ee292646df895c2305b696bb0d58d69b54e84fe96fab3c1") if is_plat("windows", "mingw") then add_syslinks("bcrypt") From 36f4a40b42d74f0b53fc90aa8b0e6b30e63b7f91 Mon Sep 17 00:00:00 2001 From: Saikari Date: Tue, 4 Aug 2026 18:35:26 +0300 Subject: [PATCH 11/16] Remove version 1.3.1 from xmake.lua Removed version 1.3.1 from the list of available versions. --- packages/r/randx/xmake.lua | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/r/randx/xmake.lua b/packages/r/randx/xmake.lua index 3683180d483..4ab39e4e044 100644 --- a/packages/r/randx/xmake.lua +++ b/packages/r/randx/xmake.lua @@ -9,7 +9,6 @@ package("randx") add_versions("1.4.3", "2227db348490f72e0aa8aaff923b24b773dec268656ef60bec3fe997e2fbac61") add_versions("1.4.2", "25badb73e98b2e83456bea63bb60b1f335091576ec1d1c06ec2649ed92fc84bf") add_versions("1.4.0", "ecf611c6f340986df2abf3191def2222a3287f5e20ec4280c88996770a95eec7") - add_versions("1.3.1", "f271bbcb26bea7747ee292646df895c2305b696bb0d58d69b54e84fe96fab3c1") if is_plat("windows", "mingw") then add_syslinks("bcrypt") From 0e8b00ebf24d72b5d853888328227c1acb63966f Mon Sep 17 00:00:00 2001 From: Saikari Date: Tue, 4 Aug 2026 18:36:39 +0300 Subject: [PATCH 12/16] Update C++ standard and header in test function Updated the C++ standard version in the test configuration and changed the included header from RandX.hpp to RandX_Cpp17.hpp. --- packages/r/randx/xmake.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/r/randx/xmake.lua b/packages/r/randx/xmake.lua index 4ab39e4e044..b5b294299f0 100644 --- a/packages/r/randx/xmake.lua +++ b/packages/r/randx/xmake.lua @@ -23,11 +23,11 @@ package("randx") on_test(function (package) assert(package:check_cxxsnippets({test = [[ - #include + #include #include static void test() { std::uint64_t v = RandX::RandInt(0, 1000); (void)v; } - ]]}, {configs = {languages = "c++23"}})) + ]]}, {configs = {languages = "c++17"}})) end) From 00e791d8e07b8322823e4836beb1f4d6611f3acc Mon Sep 17 00:00:00 2001 From: Saikari Date: Tue, 4 Aug 2026 18:57:39 +0300 Subject: [PATCH 13/16] Enhance RandX_Cpp17.hpp for Android support Add Android compatibility for getrandom syscall in RandX_Cpp17.hpp --- packages/r/randx/xmake.lua | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/r/randx/xmake.lua b/packages/r/randx/xmake.lua index b5b294299f0..b50f629b77c 100644 --- a/packages/r/randx/xmake.lua +++ b/packages/r/randx/xmake.lua @@ -17,6 +17,11 @@ package("randx") end on_install(function (package) + io.replace("RandX_Cpp17.hpp", [[# elif defined(__linux__) && __has_include()]], [[# elif defined(__linux__) && __has_include() +#if defined(__ANDROID__) && __ANDROID_API__ < 28 +# include +# define getrandom(buf, buflen, flags) syscall(SYS_getrandom, buf, buflen, flags) +#endif]], {plain = true}) os.cp("RandX.hpp", package:installdir("include")) os.cp("RandX_Cpp17.hpp", package:installdir("include")) end) From 87d1833dfda9258422c81f07208ccae4652b5553 Mon Sep 17 00:00:00 2001 From: Saikari Date: Tue, 4 Aug 2026 19:12:10 +0300 Subject: [PATCH 14/16] Update include directives for Android in RandX_Cpp17.hpp Replace include directive for Android with unistd.h and syscall.h. --- packages/r/randx/xmake.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/r/randx/xmake.lua b/packages/r/randx/xmake.lua index b50f629b77c..9c5cb723fd3 100644 --- a/packages/r/randx/xmake.lua +++ b/packages/r/randx/xmake.lua @@ -19,7 +19,8 @@ package("randx") on_install(function (package) io.replace("RandX_Cpp17.hpp", [[# elif defined(__linux__) && __has_include()]], [[# elif defined(__linux__) && __has_include() #if defined(__ANDROID__) && __ANDROID_API__ < 28 -# include +# include +# include # define getrandom(buf, buflen, flags) syscall(SYS_getrandom, buf, buflen, flags) #endif]], {plain = true}) os.cp("RandX.hpp", package:installdir("include")) From 1e837ad11807c17fb335804bcb13dad0ed29cc7e Mon Sep 17 00:00:00 2001 From: Saikari Date: Tue, 4 Aug 2026 19:29:09 +0300 Subject: [PATCH 15/16] Update RandX_Cpp17.hpp for Linux and Android compatibility --- packages/r/randx/xmake.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/r/randx/xmake.lua b/packages/r/randx/xmake.lua index 9c5cb723fd3..67fa3795740 100644 --- a/packages/r/randx/xmake.lua +++ b/packages/r/randx/xmake.lua @@ -17,7 +17,7 @@ package("randx") end on_install(function (package) - io.replace("RandX_Cpp17.hpp", [[# elif defined(__linux__) && __has_include()]], [[# elif defined(__linux__) && __has_include() + io.replace("", [[# pragma once]], [[# pragma once #if defined(__ANDROID__) && __ANDROID_API__ < 28 # include # include From 76a3513662ac0e0e77fcf8081e4abacf606b2811 Mon Sep 17 00:00:00 2001 From: Saikari Date: Tue, 4 Aug 2026 19:31:39 +0300 Subject: [PATCH 16/16] Correct pragma once handling in xmake.lua Fix pragma once replacement in xmake.lua during installation. --- packages/r/randx/xmake.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/r/randx/xmake.lua b/packages/r/randx/xmake.lua index 67fa3795740..0ef205e03ae 100644 --- a/packages/r/randx/xmake.lua +++ b/packages/r/randx/xmake.lua @@ -17,7 +17,7 @@ package("randx") end on_install(function (package) - io.replace("", [[# pragma once]], [[# pragma once + io.replace("RandX_Cpp17.hpp", [[# pragma once]], [[# pragma once #if defined(__ANDROID__) && __ANDROID_API__ < 28 # include # include