File 0003-Improve-persistent_term-detection.patch of Package lz4b

From dc4cf3613015a4b3f513c13e64783f6f100242e8 Mon Sep 17 00:00:00 2001
From: Led <ledest@gmail.com>
Date: Mon, 2 Jun 2025 20:57:34 +0300
Subject: [PATCH] Improve persistent_term detection

---
 rebar.config.script | 10 ++++++++++
 src/lz4b_config.erl |  2 +-
 src/lz4b_frame.erl  |  2 +-
 src/lz4b_nif.erl    |  2 +-
 4 files changed, 13 insertions(+), 3 deletions(-)
 create mode 100644 rebar.config.script

diff --git a/rebar.config.script b/rebar.config.script
new file mode 100644
index 0000000..b04ec3a
--- /dev/null
+++ b/rebar.config.script
@@ -0,0 +1,10 @@
+case erlang:is_builtin(persistent_term, put, 2) andalso erlang:is_builtin(persistent_term, get, 2) of
+    true ->
+        lists:keystore(erl_opts, 1, CONFIG,
+                       {erl_opts,
+                        case lists:keyfind(erl_opts, 1, CONFIG) of
+                            {_, [_|_] = O} -> [{d, 'HAVE_persistent_term'}|O];
+                            _ -> [{d, 'HAVE_presistent_term'}]
+                        end});
+    _false -> CONFIG
+end.
diff --git a/src/lz4b_config.erl b/src/lz4b_config.erl
index 8672114..bd41fd0 100644
--- a/src/lz4b_config.erl
+++ b/src/lz4b_config.erl
@@ -3,7 +3,7 @@
 -export([reload_config/0]).
 
 -spec reload_config() -> ok.
--ifdef(OTP_RELEASE).
+-ifdef(HAVE_presistent_term).
 reload_config() ->
     Val = application:get_env(lz4b, dirty_threshold,0),
     true = is_integer(Val),
diff --git a/src/lz4b_frame.erl b/src/lz4b_frame.erl
index 999bafb..4d17255 100644
--- a/src/lz4b_frame.erl
+++ b/src/lz4b_frame.erl
@@ -86,7 +86,7 @@ do_incremental_decompress(ReaderFun, WriterFun, Readsize, Ref, LeftBin)->
 
 -spec above_threshold(integer()) -> boolean().
 
--ifdef(OTP_RELEASE).
+-ifdef(HAVE_presistent_term).
 above_threshold(Current) ->
     case persistent_term:get({lz4b, dirty_threshold}, 0) of
         0 -> %% disabled
diff --git a/src/lz4b_nif.erl b/src/lz4b_nif.erl
index 8f05bdb..87c2a33 100644
--- a/src/lz4b_nif.erl
+++ b/src/lz4b_nif.erl
@@ -234,7 +234,7 @@ dirty_compress_perf_parallel_test() ->
     End = os:timestamp(),
     ?debugFmt("each parallel dirty compress takes ~p us", [timer:now_diff(End, Start) / Count]).
 
--ifdef(OTP_RELEASE).
+-ifdef(HAVE_presistent_term).
 dirty_threshold_compress_perf_parallel_test() ->
     application:set_env(lz4b, dirty_threshold, 1024),
     lz4b_config:reload_config(),
-- 
2.43.0

openSUSE Build Service is sponsored by