summaryrefslogtreecommitdiff
path: root/dev-db/redis
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2024-01-10 13:02:42 +0000
committerV3n3RiX <venerix@koprulu.sector>2024-01-10 13:02:42 +0000
commit8c8f1cfd2aa9e839aad7dad6fd43b370cfbc0a1e (patch)
treef7b0f94c13a0454ed75b614028f1455e894f28d2 /dev-db/redis
parent47f05d092ef8c19b3e973f62648e58c0e1a18631 (diff)
gentoo auto-resync : 10:01:2024 - 13:02:42
Diffstat (limited to 'dev-db/redis')
-rw-r--r--dev-db/redis/Manifest4
-rw-r--r--dev-db/redis/files/redis-7.0.4-replica-tests-fix.patch61
-rw-r--r--dev-db/redis/files/redis-7.0.5-cve-2022-3647.patch173
-rw-r--r--dev-db/redis/redis-7.0.5-r1.ebuild191
4 files changed, 0 insertions, 429 deletions
diff --git a/dev-db/redis/Manifest b/dev-db/redis/Manifest
index c3af4c088d42..d8d0e5c77078 100644
--- a/dev-db/redis/Manifest
+++ b/dev-db/redis/Manifest
@@ -4,8 +4,6 @@ AUX redis-5.0-shared.patch 883 BLAKE2B 71a490d5c40d873db7d363c4f3cab966bf8e92fa8
AUX redis-6.2.1-config.patch 1477 BLAKE2B bc87272e52b44fc58e7e8b08b5d97e53c9ba22eab02f89c3803d02e526c6c5eb1df5d1565021d96dabf8b9936dfc0b2c27c9dd148d1968d98d31d10470687741 SHA512 da2a2f4321fc4f5fef4db1e399bd6a011c18a997b28c4355ed4284d07c24a5038f086f7dcbb26d4534d800baf9be0634cf53466524a8323d16ad542042d89d98
AUX redis-6.2.3-ppc-atomic.patch 465 BLAKE2B 9324bb198f03a3e5043986adaac170f30f378f5835a53e1c749ccf3392edcfecb22f4f7ae2b325ced3b06bf20535a243daa138073014a109e6e54b27d736dde5 SHA512 803ea4e1dfcb2f87187a0294051bf91f4e67a9b7de421dca20fe8b574741dc454f83fe1eadac7a4ef5d29b7a707a9dc2a56479f8d86c9e82de6332b21101456f
AUX redis-7.0.4-no-which.patch 1876 BLAKE2B 9461bdfac73c21d338fbac0a41d64ecb4c14f993b2932ae2df35317529cec399ef9163ce8ebae012dd215d755c3d5a2527bb6f8647ffb0cc6365e1a67a19a331 SHA512 eb22bb26642f1c602bb2fd4b08af7de9036c0acc5fb2a4139608bec10962031f0515f31fc18c7dcd1f8352359fc381a752ac6f63adc01b46df853019bd886d16
-AUX redis-7.0.4-replica-tests-fix.patch 2183 BLAKE2B a5452adf9776c9dd6c443020264e65a4a1e9c148451f133e1e117208118b63507e6641ce60ada4cedc469869085f03dff7b84836fd7f924d6c37a5aacaa612ee SHA512 0ccfe595a76f8570fe735cbebbf887c505ac264f5419a0b34e8c618ff6d082100651042d42de4989e560838e8c8526a4ab6071ff3bbdc6c9eaf3daa1d56672b5
-AUX redis-7.0.5-cve-2022-3647.patch 5965 BLAKE2B e5abd4079c280e9ff1b3e80d4cf3224b53d426dc51411e7c05772603da3a43b3880bd114c970c9833991f61464845a45ff5f6b28832032692783d96f91e5efc6 SHA512 164c400b0b431b3b5ff738c88db691bc0e6cb9be1ab4170b2ffec1f03c704ce1f6851ce9d80e5a6a76534183e8b1b58b53654433208793a018d807ab3de9b268
AUX redis-7.2.0-system-jemalloc.patch 879 BLAKE2B c511606969b5f9876fa6481f0e6abf441732342299e0be3b0517541ca428ddc745a1692a0f703c5fe62442c5c2e5697e86d37b4e771f433d9dc9bfa5fa19f100 SHA512 605b3f4f41b8539e50a0fa1aa924e6d1fa7e8a80dfc03ed46a33c8b25a3bb43b4ab668c991150afd1dea5d86b8252c00c03f1582b3b0f47242127dc149819463
AUX redis-sentinel-5.0-config.patch 706 BLAKE2B 0fa0166bbb3460e783e85b90acf4c606b83e271d8e9828bb5b3a39b623508b21dac33369ac25b645169271822e9c5deb6ea7294e40fc8d1a5ceec5129c174505 SHA512 2dee5666d50fc5d9b6021735a95c9a9647ba99c562e348785381d5a05f1388c3fb9e8c4a15b0de771cf73fb80e5e29f1df25805df749457a2ce4f2e3f2e0e9e8
AUX redis-sentinel-7.2.0-config.patch 959 BLAKE2B c94c2a291a4ccc42272115528bf774978cae88d8f0e4f5dd17d2f3f407a719afa9381e76a589f654563393966d24d76d01282b92bb0a7d6106fa9dabb6f12a14 SHA512 6ad97df345bf07f4d3bd8fc05d52d4e495a723ecaeec961b7e3b27e94a89ac949b5a52fd62f4a4a1ec2e2b4e962878ab65e0a47f742c8bfd0e83b076455d8811
@@ -19,14 +17,12 @@ AUX redis.tmpfiles-2 57 BLAKE2B 1e0577c1828bb693cf820f3ba5e77d7d748adf4df2d1910d
DIST redis-6.2.14.tar.gz 2496149 BLAKE2B 689a0c3b558e07f43f8b1480fbf7a083184bbc0ccde0b184dc8a1d89ed22bec9694b7c8605ff729c9e9d582e8cf47c8f9cd9ee0794ea15e07cdb0b886e93c116 SHA512 140d4b23c20d459b65be8c61996e281222f978b51c52cb048039d741801e4027775ad89ed354dc0dce3d47703a08610adafaf6253fea2f973d5b9d20bc1e59ce
DIST redis-7.0.14.tar.gz 2994188 BLAKE2B ab4325df8f1af1f7b8c634265a1c7001486c305d4210e72045e6434207e4a447e67d41fa07bd3cd5a57da173e7f9893bf386b18b556156cf559019573a7c4f8b SHA512 31d851dd72cea7d1e48c0df5646c91a2f7b72696067c017936984c49912f6e846ba6469c1ee8e361e362c8683912a25f6eee3993ed1a73cfe70051e84ad79b8b
DIST redis-7.0.15.tar.gz 2994329 BLAKE2B fa1bc85c89cb6a6fb18710a4d29c20db44a80ce445d217f39a234a2aad1d79031e9d1fc45415af7b0eb1c169bd88f45f1fe60cab35de38c6fadc839e2a27676d SHA512 83d58f98085f91754f6d87810e7da0d6cf11ffbe11a0f5d3581d5b2c63d2a752ba6b4eda921a04031aedc56ecebe349cd468ab5ad837493f55d2cac0ab3d015a
-DIST redis-7.0.5.tar.gz 2968205 BLAKE2B c319a2f656e4bd26637735ef73e58eecc306e202b57d6da3a38150a02d738a414c6696e261b8ab88033e117aee4f02308aab9ca4a5f382d66ec3a10f3e020580 SHA512 16ff920cb8df4d82e78ef34209285024aa98189be8acbca86b10fb3064dcc70eac60206aadece6af08406860ed01a004ce3aaa86be896ea36c7f486686646753
DIST redis-7.2.1.tar.gz 3383319 BLAKE2B 92784af3d1df338a8af7475ab7c598309f33f682ad4bb0b827f170c9f20c1a0879b433c6325c90dd6ba17e06e95bf7d8a9a665d6706065ff4c4c8c141d9c93c1 SHA512 7df4afd51dceea0edbb999027c84820a6aebdd58d71b2e93a4861120fa2b9c0801a0e61c70e695845dbff4e9b96907a4215dcacf72d3593ad014cfa584b5cad0
DIST redis-7.2.3.tar.gz 3384816 BLAKE2B 6aaf1bae377f3885affd140365eb0c2c30079fe40d770af1ac75a50647ce811e6c4dccd4b886db315e7b78e60661fa0bee280d707c1c4490f32086d0793069c3 SHA512 2ce4bbb056372f1180ceb1863106d07b021d32af2379f1f5dfc61e930c2cd0303433af22c7231adc8890ab5581cb41be3b792f19a0b1645108735c86d9fdf68e
DIST redis-7.2.4.tar.gz 3386861 BLAKE2B 852d55f875378248fa15e189308afbe36bca73c2aa2e5423a765a3d6f6895908ac1455148e032f6d1a1087f57af5869bccf8a932684817109f3fcf09b204e639 SHA512 78590fb6680f229905c240ed8ce7a9a7153e5f8563577dbbb26aebf9bfbdcd7495d687f452bd95e0a86c76d772e1c497b506cf8d29bc97b62c9267f7d1e76f72
EBUILD redis-6.2.14.ebuild 5465 BLAKE2B 434998689d42dcac8fe8805062b1b84e5e3388373fb979ef2c1d4e02c993da7032cd591d51140ef99eadf54263f2ffe6a1fe8d7c6183c2d7a098cb4d935794ac SHA512 a26909e160940ce707310b0530da40361cf4838a920284a054d528d14ee621112a6aa1384b4c5cef5bb896c0ae9f0c989aaaa017fbcd6c24252b021a7c9aa28e
EBUILD redis-7.0.14.ebuild 4925 BLAKE2B 6291aaf1a5febec7560c891659b70fda268986c0b7007f66c5fa12291cf0eac573373c9f3749d0d5cd2fedc0e5b879b390da3e557fe0d8922bf817ca5af73de5 SHA512 17daa5bb0863b69e1726170578fa5ff2f6d28665d7e17b996030ba7388c9414a036f160775a3be5fe14d3d18374aac67d7bd1f2dbe6316ef84711322fcf60ac6
EBUILD redis-7.0.15.ebuild 4929 BLAKE2B 0d2926298afd86c013b826d58692bbe1b066c8bbdc3a9bb9c9a303c8bc8a46b53fb0b19ee02eeda3843241bc68d2995982bf9fbc6b991acd8b081035a836f47f SHA512 a08487b8b1ce924a7a8477c204bdb3cd912a3a927889ae4247c00e308d866fc6489c06a831743c8524cc27b705721ef280b3baea4bb1cb5050797615161a319d
-EBUILD redis-7.0.5-r1.ebuild 5040 BLAKE2B bef377ef4746cdc5519e73501b938e47f56da8aae49effe67eafefddf7bb514fd5dec634442aa3a06bfaa7b0b4c9fdbcd407f5fcc8b6a6aa8351eec27b7b3516 SHA512 b7db0668c58ccba8b3b2eab3c46d0ab0ea7d223e7ff59e4d3ed87839c57cf139337c6723edeb62d0947d2bfb79ca49fc925714b5a91eca5f34f621e140000360
EBUILD redis-7.2.1.ebuild 5078 BLAKE2B de53fb49489cd8eb1a8079e44dfc70b85faa1f6955f3d72a12fd36bab8a8ef65b109ef9c16f8210a0a2db3d8b8475f5ebf86c974befc37fdbf353c1dc83e663a SHA512 e03ca0930e62922cd2cf5fc196159d0fba58db8dea673f103bb7901b0937bc9dad9ff0705f93ce1a84abf6290252e6b5e29797664840b256b897b440276ef3d4
EBUILD redis-7.2.3.ebuild 5079 BLAKE2B 375caf22c7a82a9202b408eef89877ab5d28cb47c42aba5cab52e28100ec6230f72a955eeb42ea04bfda8780309519be0c2bf8f8fc1cbd0af627bb754dbd58d3 SHA512 d52ab4a7f2f276032c87fa7bf295bd268c9cc0f230e5549f8b4f84ffeb5fb8f0300b16453e51ab98a826fc2160a00ff4af2cb457a849b6b93f574068463702bc
EBUILD redis-7.2.4.ebuild 5083 BLAKE2B 2cc84db51ac585d809ffc24992a1d9e0e8f34f4eefda6885f86b274efa85dad22fd9457f92635219bab63b5e1e40bda3af6f6d46fdc6ebe4169cecdc2401ae59 SHA512 9e1f826a5eaebe509476329ca0e501c108f44263e39e21b28c074ea185856a504341f1ac4a77a30f0c23528160e4df753a2525e88bb7f472b391b15587fb7cf9
diff --git a/dev-db/redis/files/redis-7.0.4-replica-tests-fix.patch b/dev-db/redis/files/redis-7.0.4-replica-tests-fix.patch
deleted file mode 100644
index 55da00137b46..000000000000
--- a/dev-db/redis/files/redis-7.0.4-replica-tests-fix.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From e7144693e2446f21ee68c95676ecf65d1351d13e Mon Sep 17 00:00:00 2001
-From: Binbin <binloveplay1314@qq.com>
-Date: Wed, 27 Jul 2022 19:58:25 +0800
-Subject: [PATCH] Fix bgsaveerr issue in psync wrong offset test (#11043)
-
-The kill above is sometimes successful and sometimes already too late.
-The PING in pysnc wrong offset test got rejected by bgsaveerr because
-lastbgsave_status is C_ERR.
-
-In theory, using diskless can avoid PING being affected, because when
-the replica is dropped, we will kill the child with SIGUSR1, and this
-will not affect lastbgsave_status.
-
-Anyway, this kill is not particularly needed here, dropping the kill
-is the best one, since we do have the waitForBgsave, so just let it
-take care of the bgsave. No need for fast termination.
----
-
-This patch is backported from upstream, see PR #11043.
-
-Upstream-PR: https://github.com/redis/redis/pull/11043
-
-diff --git a/tests/integration/replication.tcl b/tests/integration/replication.tcl
-index d60c91918..457c3150e 100644
---- a/tests/integration/replication.tcl
-+++ b/tests/integration/replication.tcl
-@@ -1289,7 +1289,6 @@ start_server {tags {"repl" "external:skip"}} {
- verify_log_message 0 "*Replica generated a reply to command 'ping', disconnecting it: *" $lines
-
- $rd close
-- catch {exec kill -9 [get_child_pid 0]}
- waitForBgsave r
- }
-
-@@ -1307,7 +1306,6 @@ start_server {tags {"repl" "external:skip"}} {
- verify_log_message 0 "*Replica generated a reply to command 'xinfo|help', disconnecting it: *" $lines
-
- $rd close
-- catch {exec kill -9 [get_child_pid 0]}
- waitForBgsave r
- }
-
-@@ -1328,7 +1326,6 @@ start_server {tags {"repl" "external:skip"}} {
- verify_log_message 0 "*Replica can't interact with the keyspace*" $lines
-
- $rd close
-- catch {exec kill -9 [get_child_pid 0]}
- waitForBgsave r
- }
-
-@@ -1347,7 +1344,6 @@ start_server {tags {"repl" "external:skip"}} {
- verify_log_message 0 "*Replica generated a reply to command 'slowlog|get', disconnecting it: *" $lines
-
- $rd close
-- catch {exec kill -9 [get_child_pid 0]}
- waitForBgsave r
- }
-
---
-2.35.1
-
diff --git a/dev-db/redis/files/redis-7.0.5-cve-2022-3647.patch b/dev-db/redis/files/redis-7.0.5-cve-2022-3647.patch
deleted file mode 100644
index 8f5eaff13fed..000000000000
--- a/dev-db/redis/files/redis-7.0.5-cve-2022-3647.patch
+++ /dev/null
@@ -1,173 +0,0 @@
-This is the patch recommended to apply in order to fix CVE-2022-3647.
-
-Upstream-commit: https://github.com/redis/redis/commit/0bf90d944313919eb8e63d3588bf63a367f020a3
-Bug: https://bugs.gentoo.org/877863
-
-diff --git a/src/debug.c b/src/debug.c
-index 8cc811be4..b15ac8780 100644
---- a/src/debug.c
-+++ b/src/debug.c
-@@ -1123,73 +1123,88 @@ void bugReportStart(void) {
- }
-
- #ifdef HAVE_BACKTRACE
--static void *getMcontextEip(ucontext_t *uc) {
-+
-+/* Returns the current eip and set it to the given new value (if its not NULL) */
-+static void* getAndSetMcontextEip(ucontext_t *uc, void *eip) {
- #define NOT_SUPPORTED() do {\
- UNUSED(uc);\
-+ UNUSED(eip);\
- return NULL;\
- } while(0)
-+#define GET_SET_RETURN(target_var, new_val) do {\
-+ void *old_val = (void*)target_var; \
-+ if (new_val) { \
-+ void **temp = (void**)&target_var; \
-+ *temp = new_val; \
-+ } \
-+ return old_val; \
-+} while(0)
- #if defined(__APPLE__) && !defined(MAC_OS_X_VERSION_10_6)
- /* OSX < 10.6 */
- #if defined(__x86_64__)
-- return (void*) uc->uc_mcontext->__ss.__rip;
-+ GET_SET_RETURN(uc->uc_mcontext->__ss.__rip, eip);
- #elif defined(__i386__)
-- return (void*) uc->uc_mcontext->__ss.__eip;
-+ GET_SET_RETURN(uc->uc_mcontext->__ss.__eip, eip);
- #else
-- return (void*) uc->uc_mcontext->__ss.__srr0;
-+ GET_SET_RETURN(uc->uc_mcontext->__ss.__srr0, eip);
- #endif
- #elif defined(__APPLE__) && defined(MAC_OS_X_VERSION_10_6)
- /* OSX >= 10.6 */
- #if defined(_STRUCT_X86_THREAD_STATE64) && !defined(__i386__)
-- return (void*) uc->uc_mcontext->__ss.__rip;
-+ GET_SET_RETURN(uc->uc_mcontext->__ss.__rip, eip);
- #elif defined(__i386__)
-- return (void*) uc->uc_mcontext->__ss.__eip;
-+ GET_SET_RETURN(uc->uc_mcontext->__ss.__eip, eip);
- #else
- /* OSX ARM64 */
-- return (void*) arm_thread_state64_get_pc(uc->uc_mcontext->__ss);
-+ void *old_val = (void*)arm_thread_state64_get_pc(uc->uc_mcontext->__ss);
-+ if (eip) {
-+ arm_thread_state64_set_pc_fptr(uc->uc_mcontext->__ss, eip);
-+ }
-+ return old_val;
- #endif
- #elif defined(__linux__)
- /* Linux */
- #if defined(__i386__) || ((defined(__X86_64__) || defined(__x86_64__)) && defined(__ILP32__))
-- return (void*) uc->uc_mcontext.gregs[14]; /* Linux 32 */
-+ GET_SET_RETURN(uc->uc_mcontext.gregs[14], eip);
- #elif defined(__X86_64__) || defined(__x86_64__)
-- return (void*) uc->uc_mcontext.gregs[16]; /* Linux 64 */
-+ GET_SET_RETURN(uc->uc_mcontext.gregs[16], eip);
- #elif defined(__ia64__) /* Linux IA64 */
-- return (void*) uc->uc_mcontext.sc_ip;
-+ GET_SET_RETURN(uc->uc_mcontext.sc_ip, eip);
- #elif defined(__arm__) /* Linux ARM */
-- return (void*) uc->uc_mcontext.arm_pc;
-+ GET_SET_RETURN(uc->uc_mcontext.arm_pc, eip);
- #elif defined(__aarch64__) /* Linux AArch64 */
-- return (void*) uc->uc_mcontext.pc;
-+ GET_SET_RETURN(uc->uc_mcontext.pc, eip);
- #else
- NOT_SUPPORTED();
- #endif
- #elif defined(__FreeBSD__)
- /* FreeBSD */
- #if defined(__i386__)
-- return (void*) uc->uc_mcontext.mc_eip;
-+ GET_SET_RETURN(uc->uc_mcontext.mc_eip, eip);
- #elif defined(__x86_64__)
-- return (void*) uc->uc_mcontext.mc_rip;
-+ GET_SET_RETURN(uc->uc_mcontext.mc_rip, eip);
- #else
- NOT_SUPPORTED();
- #endif
- #elif defined(__OpenBSD__)
- /* OpenBSD */
- #if defined(__i386__)
-- return (void*) uc->sc_eip;
-+ GET_SET_RETURN(uc->sc_eip, eip);
- #elif defined(__x86_64__)
-- return (void*) uc->sc_rip;
-+ GET_SET_RETURN(uc->sc_rip, eip);
- #else
- NOT_SUPPORTED();
- #endif
- #elif defined(__NetBSD__)
- #if defined(__i386__)
-- return (void*) uc->uc_mcontext.__gregs[_REG_EIP];
-+ GET_SET_RETURN(uc->uc_mcontext.__gregs[_REG_EIP], eip);
- #elif defined(__x86_64__)
-- return (void*) uc->uc_mcontext.__gregs[_REG_RIP];
-+ GET_SET_RETURN(uc->uc_mcontext.__gregs[_REG_RIP], eip);
- #else
- NOT_SUPPORTED();
- #endif
- #elif defined(__DragonFly__)
-- return (void*) uc->uc_mcontext.mc_rip;
-+ GET_SET_RETURN(uc->uc_mcontext.mc_rip, eip);
- #else
- NOT_SUPPORTED();
- #endif
-@@ -1951,6 +1966,10 @@ void dumpCodeAroundEIP(void *eip) {
- }
- }
-
-+void invalidFunctionWasCalled() {}
-+
-+typedef void (*invalidFunctionWasCalledType)();
-+
- void sigsegvHandler(int sig, siginfo_t *info, void *secret) {
- UNUSED(secret);
- UNUSED(info);
-@@ -1968,13 +1987,30 @@ void sigsegvHandler(int sig, siginfo_t *info, void *secret) {
-
- #ifdef HAVE_BACKTRACE
- ucontext_t *uc = (ucontext_t*) secret;
-- void *eip = getMcontextEip(uc);
-+ void *eip = getAndSetMcontextEip(uc, NULL);
- if (eip != NULL) {
- serverLog(LL_WARNING,
- "Crashed running the instruction at: %p", eip);
- }
-
-- logStackTrace(getMcontextEip(uc), 1);
-+ if (eip == info->si_addr) {
-+ /* When eip matches the bad address, it's an indication that we crashed when calling a non-mapped
-+ * function pointer. In that case the call to backtrace will crash trying to access that address and we
-+ * won't get a crash report logged. Set it to a valid point to avoid that crash. */
-+
-+ /* This trick allow to avoid compiler warning */
-+ void *ptr;
-+ invalidFunctionWasCalledType *ptr_ptr = (invalidFunctionWasCalledType*)&ptr;
-+ *ptr_ptr = invalidFunctionWasCalled;
-+ getAndSetMcontextEip(uc, ptr);
-+ }
-+
-+ logStackTrace(eip, 1);
-+
-+ if (eip == info->si_addr) {
-+ /* Restore old eip */
-+ getAndSetMcontextEip(uc, eip);
-+ }
-
- logRegisters(uc);
- #endif
-@@ -2079,7 +2115,7 @@ void watchdogSignalHandler(int sig, siginfo_t *info, void *secret) {
-
- serverLogFromHandler(LL_WARNING,"\n--- WATCHDOG TIMER EXPIRED ---");
- #ifdef HAVE_BACKTRACE
-- logStackTrace(getMcontextEip(uc), 1);
-+ logStackTrace(getAndSetMcontextEip(uc, NULL), 1);
- #else
- serverLogFromHandler(LL_WARNING,"Sorry: no support for backtrace().");
- #endif
---
-2.37.4
-
diff --git a/dev-db/redis/redis-7.0.5-r1.ebuild b/dev-db/redis/redis-7.0.5-r1.ebuild
deleted file mode 100644
index ce206c93e4b4..000000000000
--- a/dev-db/redis/redis-7.0.5-r1.ebuild
+++ /dev/null
@@ -1,191 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# N.B.: It is no clue in porting to Lua eclasses, as upstream have deviated
-# too far from vanilla Lua, adding their own APIs like lua_enablereadonlytable
-
-inherit autotools edo flag-o-matic multiprocessing systemd tmpfiles toolchain-funcs
-
-DESCRIPTION="A persistent caching system, key-value, and data structures database"
-HOMEPAGE="https://redis.io"
-SRC_URI="https://download.redis.io/releases/${P}.tar.gz"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
-IUSE="+jemalloc selinux ssl systemd tcmalloc test"
-RESTRICT="!test? ( test )"
-
-COMMON_DEPEND="
- jemalloc? ( >=dev-libs/jemalloc-5.1:= )
- ssl? ( dev-libs/openssl:0= )
- systemd? ( sys-apps/systemd:= )
- tcmalloc? ( dev-util/google-perftools )
-"
-
-RDEPEND="
- ${COMMON_DEPEND}
- acct-group/redis
- acct-user/redis
- selinux? ( sec-policy/selinux-redis )
-"
-
-BDEPEND="
- ${COMMON_DEPEND}
- virtual/pkgconfig
-"
-
-# Tcl is only needed in the CHOST test env
-DEPEND="
- ${COMMON_DEPEND}
- test? (
- dev-lang/tcl:0=
- ssl? ( dev-tcltk/tls )
- )"
-
-REQUIRED_USE="?? ( jemalloc tcmalloc )"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-6.2.1-config.patch
- "${FILESDIR}"/${PN}-5.0-shared.patch
- "${FILESDIR}"/${PN}-6.2.3-ppc-atomic.patch
- "${FILESDIR}"/${PN}-sentinel-5.0-config.patch
- "${FILESDIR}"/${PN}-7.0.4-no-which.patch
- "${FILESDIR}"/${PN}-7.0.4-replica-tests-fix.patch
-
- # see bug 877863
- "${FILESDIR}/${PN}-7.0.5-cve-2022-3647.patch"
-)
-
-src_prepare() {
- default
-
- # Append cflag for lua_cjson
- # https://github.com/antirez/redis/commit/4fdcd213#diff-3ba529ae517f6b57803af0502f52a40bL61
- append-cflags "-DENABLE_CJSON_GLOBAL"
-
- # now we will rewrite present Makefiles
- local makefiles="" MKF
- for MKF in $(find -name 'Makefile' | cut -b 3-); do
- mv "${MKF}" "${MKF}.in"
- sed -i -e 's:$(CC):@CC@:g' \
- -e 's:$(CFLAGS):@AM_CFLAGS@:g' \
- -e 's: $(DEBUG)::g' \
- -e 's:$(OBJARCH)::g' \
- -e 's:ARCH:TARCH:g' \
- -e '/^CCOPT=/s:$: $(LDFLAGS):g' \
- "${MKF}.in" \
- || die "Sed failed for ${MKF}"
- makefiles+=" ${MKF}"
- done
- # autodetection of compiler and settings; generates the modified Makefiles
- cp "${FILESDIR}"/configure.ac-7.0 configure.ac || die
-
- sed -i \
- -e "/^AC_INIT/s|, __PV__, |, $PV, |" \
- -e "s:AC_CONFIG_FILES(\[Makefile\]):AC_CONFIG_FILES([${makefiles}]):g" \
- configure.ac || die "Sed failed for configure.ac"
- eautoreconf
-}
-
-src_configure() {
- econf
-
- # Linenoise can't be built with -std=c99, see https://bugs.gentoo.org/451164
- # also, don't define ANSI/c99 for lua twice
- sed -i -e "s:-std=c99::g" deps/linenoise/Makefile deps/Makefile || die
-}
-
-src_compile() {
- local myconf=""
-
- if use jemalloc; then
- myconf+="MALLOC=jemalloc"
- elif use tcmalloc; then
- myconf+="MALLOC=tcmalloc"
- else
- myconf+="MALLOC=libc"
- fi
-
- if use ssl; then
- myconf+=" BUILD_TLS=yes"
- fi
-
- export USE_SYSTEMD=$(usex systemd)
-
- tc-export AR CC RANLIB
- emake V=1 ${myconf} AR="${AR}" CC="${CC}" RANLIB="${RANLIB}"
-}
-
-src_test() {
- local runtestargs=(
- --clients "$(makeopts_jobs)" # see bug #649868
-
- --skiptest "Active defrag eval scripts" # see bug #851654
- )
-
- if has usersandbox ${FEATURES} || ! has userpriv ${FEATURES}; then
- ewarn "oom-score-adj related tests will be skipped." \
- "They are known to fail with FEATURES usersandbox or -userpriv. See bug #756382."
-
- runtestargs+=(
- # unit/oom-score-adj was introduced in version 6.2.0
- --skipunit unit/oom-score-adj # see bug #756382
-
- # Following test was added in version 7.0.0 to unit/introspection.
- # It also tries to adjust OOM score.
- --skiptest "CONFIG SET rollback on apply error"
- )
- fi
-
- if use ssl; then
- edo ./utils/gen-test-certs.sh
- runtestargs+=( --tls )
- fi
-
- edo ./runtest "${runtestargs[@]}"
-}
-
-src_install() {
- insinto /etc/redis
- doins redis.conf sentinel.conf
- use prefix || fowners -R redis:redis /etc/redis /etc/redis/{redis,sentinel}.conf
- fperms 0750 /etc/redis
- fperms 0644 /etc/redis/{redis,sentinel}.conf
-
- newconfd "${FILESDIR}/redis.confd-r2" redis
- newinitd "${FILESDIR}/redis.initd-6" redis
-
- systemd_newunit "${FILESDIR}/redis.service-4" redis.service
- newtmpfiles "${FILESDIR}/redis.tmpfiles-2" redis.conf
-
- newconfd "${FILESDIR}/redis-sentinel.confd-r1" redis-sentinel
- newinitd "${FILESDIR}/redis-sentinel.initd-r1" redis-sentinel
-
- insinto /etc/logrotate.d/
- newins "${FILESDIR}/${PN}.logrotate" ${PN}
-
- dodoc 00-RELEASENOTES BUGS CONTRIBUTING.md MANIFESTO README.md
-
- dobin src/redis-cli
- dosbin src/redis-benchmark src/redis-server src/redis-check-aof src/redis-check-rdb
- fperms 0750 /usr/sbin/redis-benchmark
- dosym redis-server /usr/sbin/redis-sentinel
-
- if use prefix; then
- diropts -m0750
- else
- diropts -m0750 -o redis -g redis
- fi
- keepdir /var/{log,lib}/redis
-}
-
-pkg_postinst() {
- tmpfiles_process redis.conf
-
- ewarn "The default redis configuration file location changed to:"
- ewarn " /etc/redis/{redis,sentinel}.conf"
- ewarn "Please apply your changes to the new configuration files."
-}