Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package valkey for openSUSE:Factory checked in at 2026-02-14 21:36:04 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/valkey (Old) and /work/SRC/openSUSE:Factory/.valkey.new.1977 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "valkey" Sat Feb 14 21:36:04 2026 rev:18 rq:1332764 version:9.0.2 Changes: -------- --- /work/SRC/openSUSE:Factory/valkey/valkey.changes 2025-12-10 15:31:17.492178118 +0100 +++ /work/SRC/openSUSE:Factory/.valkey.new.1977/valkey.changes 2026-02-14 21:36:16.622073434 +0100 @@ -1,0 +2,70 @@ +Tue Feb 10 22:51:02 UTC 2026 - Antonio Teixeira <[email protected]> + +- Use systemd-tmpfiles to create dirs in /var/* (jsc#PED-14743) +- Add fix-pointer-to-int.patch + +------------------------------------------------------------------- +Sun Feb 8 10:48:18 UTC 2026 - Marcus Rueckert <[email protected]> + +- Update to 9.0.2: + Upgrade urgency HIGH: + There are critical bugs that may affect a subset of users. + + - Bug fixes + - Avoid memory leak of new argv when HEXPIRE commands target + only non-exiting fields (#2973) + - Fix HINCRBY and HINCRBYFLOAT to update volatile key tracking + (#2974) + - Avoid empty hash object when HSETEX added no fields (#2998) + - Fix case-sensitive check for the FNX and FXX arguments in + HSETEX (#3000) + - Prevent assertion in active expiration job after a hash with + volatile fields is overwritten (#3003, #3007) + - Fix HRANDFIELD to return null response when no field could be + found (#3022) + - Fix HEXPIRE to not delete items when validation rules fail + and expiration is in the past (#3023, #3048) + - Fix how hash is handling overriding of expired fields + overwrite (#3060) + - HSETEX - Always issue keyspace notifications after validation + (#3001) + - Make zero a valid TTL for hash fields during import mode and + data loading (#3006) + - Trigger prepareCommand on argc change in module command + filters (#2945) + - Restrict TTL from being negative and avoid crash in + import-mode (#2944) + - Fix chained replica crash when doing dual channel replication + (#2983) + - Skip slot cache optimization for AOF client to prevent key + duplication and data corruption (#3004) + - Fix used_memory_dataset underflow due to miscalculated + used_memory_overhead (#3005) + - Avoid duplicate calculations of network-bytes-out in slot + stats with copy-avoidance (#3046) + - Fix XREAD returning error on empty stream with + ID (#2742) + - Performance/Efficiency Improvements + - Track reply bytes in I/O threads if + commandlog-reply-larger-than is -1 (#3086, #3126). + - This makes it possible to mitigate a performance regression + in 9.0.1 caused by the bug fix #2652. + +------------------------------------------------------------------- +Fri Jan 16 20:50:54 UTC 2026 - Marcus Rueckert <[email protected]> + +- valkey-cli and valkey-benchmark both link the RDMA libraries as + well. So there is no need to split out the server feature into + module to split it out into a subpackage. Build with RDMA enabled + by default. + +------------------------------------------------------------------- +Tue Jan 13 11:11:14 UTC 2026 - Marcus Rueckert <[email protected]> + +- mark RDMA support as disabled until we figured out the linking + +------------------------------------------------------------------- +Tue Jan 13 01:07:13 UTC 2026 - Marcus Rueckert <[email protected]> + +- enable RDMA support + +------------------------------------------------------------------- Old: ---- valkey-9.0.1.tar.gz New: ---- fix-pointer-to-int.patch valkey-9.0.2.tar.gz ----------(New B)---------- New:- Use systemd-tmpfiles to create dirs in /var/* (jsc#PED-14743) - Add fix-pointer-to-int.patch ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ valkey.spec ++++++ --- /var/tmp/diff_new_pack.JrEK0B/_old 2026-02-14 21:36:18.002130321 +0100 +++ /var/tmp/diff_new_pack.JrEK0B/_new 2026-02-14 21:36:18.006130486 +0100 @@ -1,7 +1,7 @@ # # spec file for package valkey # -# Copyright (c) 2025 SUSE LLC and contributors +# Copyright (c) 2026 SUSE LLC and contributors # Copyright (c) Jonathan Wright # Copyright (c) Neal Gompa # Copyright (c) 2025 Andreas Stieger <[email protected]> @@ -23,10 +23,10 @@ %define _log_dir %{_localstatedir}/log/%{name} %define _conf_dir %{_sysconfdir}/%{name} -%global make_flags CFLAGS="%{build_cflags}" DEBUG="" V="echo" PREFIX=%{buildroot}%{_prefix} BUILD_WITH_SYSTEMD=yes BUILD_TLS=yes +%global make_flags CFLAGS="%{build_cflags}" DEBUG="" V="echo" PREFIX=%{buildroot}%{_prefix} USE_SYSTEMD=yes BUILD_TLS=yes BUILD_RDMA=yes Name: valkey -Version: 9.0.1 +Version: 9.0.2 Release: 0 Summary: Persistent key-value database License: BSD-3-Clause @@ -43,6 +43,8 @@ Source9: %{name}-user.conf Source10: macros.%{name} Source11: migrate_redis_to_valkey.bash +# PATCH-FIX-UPSTREAM fix-pointer-to-int.patch -- Fix pointer-to-int-cast build errors for i586 and armv7l +Patch0: fix-pointer-to-int.patch # PATCH-FIX-OPENSUSE -- Adjust configs for openSUSE Patch1001: %{name}-conf.patch BuildRequires: jemalloc-devel @@ -53,6 +55,8 @@ BuildRequires: sysuser-shadow BuildRequires: sysuser-tools BuildRequires: tcl +BuildRequires: pkgconfig(libibverbs) +BuildRequires: pkgconfig(librdmacm) BuildRequires: pkgconfig(libsystemd) BuildRequires: pkgconfig(systemd) # there is no tcl-tls package yet, which is said to be needed for testing tls support @@ -61,6 +65,7 @@ %global valkey_modules_abi 1 %global valkey_modules_dir %{_libdir}/%{name}/modules +%global valkey_modules_cfg %{_sysconfdir}/%{name}/modules Provides: valkey(modules_abi)%{?_isa} = %{valkey_modules_abi} %description @@ -201,12 +206,12 @@ %{_unitdir}/%{name}[email protected] %{_unitdir}/%{name}-sentinel.target %dir %{_libdir}/%{name} -%dir %{_libdir}/%{name}/modules +%dir %{valkey_modules_dir} %doc README.SUSE %config(noreplace) %attr(-,root,%{name}) %{_conf_dir}/ -%dir %attr(0750,%{name},%{name}) %{_data_dir} -%dir %attr(0750,%{name},%{name}) %{_data_dir}/default -%dir %attr(0750,%{name},%{name}) %{_log_dir} +%ghost %dir %attr(0750,%{name},%{name}) %{_data_dir} +%ghost %dir %attr(0750,%{name},%{name}) %{_data_dir}/default +%ghost %dir %attr(0750,%{name},%{name}) %{_log_dir} %ghost %dir %attr(0755,%{name},%{name}) /run/%{name} %files devel ++++++ fix-pointer-to-int.patch ++++++ >From eb6da581e73a0f0deae2e2b40def2d535cf3c738 Mon Sep 17 00:00:00 2001 From: stydxm <[email protected]> Date: Wed, 11 Feb 2026 05:48:20 +0800 Subject: [PATCH] Fix pointer-to-int-cast warnings for RDMA address handling Signed-off-by: stydxm <[email protected]> --- deps/libvalkey/src/rdma.c | 8 ++++---- src/rdma.c | 22 +++++++++++----------- tests/rdma/rdma-test.c | 22 +++++++++++----------- 3 files changed, 26 insertions(+), 26 deletions(-) diff --git a/deps/libvalkey/src/rdma.c b/deps/libvalkey/src/rdma.c index b0deba72531..eddefbeb787 100644 --- a/deps/libvalkey/src/rdma.c +++ b/deps/libvalkey/src/rdma.c @@ -161,7 +161,7 @@ static int rdmaPostRecv(RdmaContext *ctx, struct rdma_cm_id *cm_id, valkeyRdmaCm sge.length = length; sge.lkey = ctx->cmd_mr->lkey; - recv_wr.wr_id = (uint64_t)cmd; + recv_wr.wr_id = (uint64_t)(uintptr_t)cmd; recv_wr.sg_list = &sge; recv_wr.num_sge = 1; recv_wr.next = NULL; @@ -302,7 +302,7 @@ static int rdmaSendCommand(valkeyContext *c, struct rdma_cm_id *cm_id, valkeyRdm send_wr.sg_list = &sge; send_wr.num_sge = 1; - send_wr.wr_id = (uint64_t)_cmd; + send_wr.wr_id = (uint64_t)(uintptr_t)_cmd; send_wr.opcode = IBV_WR_SEND; send_wr.send_flags = IBV_SEND_SIGNALED; send_wr.next = NULL; @@ -320,7 +320,7 @@ static int connRdmaRegisterRx(valkeyContext *c, struct rdma_cm_id *cm_id) { valkeyRdmaCmd cmd = {0}; cmd.memory.opcode = htons(RegisterXferMemory); - cmd.memory.addr = htobe64((uint64_t)ctx->recv_buf); + cmd.memory.addr = htobe64((uint64_t)(uintptr_t)ctx->recv_buf); cmd.memory.length = htonl(ctx->recv_length); cmd.memory.key = htonl(ctx->recv_mr->rkey); @@ -338,7 +338,7 @@ static int connRdmaHandleRecv(valkeyContext *c, RdmaContext *ctx, struct rdma_cm switch (ntohs(cmd->keepalive.opcode)) { case RegisterXferMemory: - ctx->tx_addr = (char *)be64toh(cmd->memory.addr); + ctx->tx_addr = (char *)(uintptr_t)be64toh(cmd->memory.addr); ctx->tx_length = ntohl(cmd->memory.length); ctx->tx_key = ntohl(cmd->memory.key); ctx->tx_offset = 0; diff --git a/src/rdma.c b/src/rdma.c index 864cca4de4f..2d4cc498c25 100644 --- a/src/rdma.c +++ b/src/rdma.c @@ -180,11 +180,11 @@ static int rdmaPostRecv(RdmaContext *ctx, struct rdma_cm_id *cm_id, ValkeyRdmaCm return C_ERR; } - sge.addr = (uint64_t)cmd; + sge.addr = (uint64_t)(uintptr_t)cmd; sge.length = length; sge.lkey = ctx->cmd_mr->lkey; - recv_wr.wr_id = (uint64_t)cmd; + recv_wr.wr_id = (uint64_t)(uintptr_t)cmd; recv_wr.sg_list = &sge; recv_wr.num_sge = 1; recv_wr.next = NULL; @@ -451,13 +451,13 @@ static int rdmaSendCommand(RdmaContext *ctx, struct rdma_cm_id *cm_id, ValkeyRdm assert(i < 2 * VALKEY_RDMA_MAX_WQE); memcpy(_cmd, cmd, sizeof(ValkeyRdmaCmd)); - sge.addr = (uint64_t)_cmd; + sge.addr = (uint64_t)(uintptr_t)_cmd; sge.length = sizeof(ValkeyRdmaCmd); sge.lkey = ctx->cmd_mr->lkey; send_wr.sg_list = &sge; send_wr.num_sge = 1; - send_wr.wr_id = (uint64_t)_cmd; + send_wr.wr_id = (uint64_t)(uintptr_t)_cmd; send_wr.opcode = IBV_WR_SEND; send_wr.send_flags = IBV_SEND_SIGNALED; send_wr.next = NULL; @@ -474,7 +474,7 @@ static int connRdmaRegisterRx(RdmaContext *ctx, struct rdma_cm_id *cm_id) { ValkeyRdmaCmd cmd = {0}; cmd.memory.opcode = htons(RegisterXferMemory); - cmd.memory.addr = htonu64((uint64_t)ctx->rx.addr); + cmd.memory.addr = htonu64((uint64_t)(uintptr_t)ctx->rx.addr); cmd.memory.length = htonl(ctx->rx.length); cmd.memory.key = htonl(ctx->rx.mr->rkey); @@ -552,7 +552,7 @@ static int connRdmaHandleRecv(RdmaContext *ctx, struct rdma_cm_id *cm_id, Valkey case Keepalive: break; case RegisterXferMemory: - ctx->tx_addr = (char *)ntohu64(cmd->memory.addr); + ctx->tx_addr = (char *)(uintptr_t)ntohu64(cmd->memory.addr); ctx->tx.length = ntohl(cmd->memory.length); ctx->tx_key = ntohl(cmd->memory.key); ctx->tx.offset = 0; @@ -632,14 +632,14 @@ static int connRdmaHandleCq(rdma_connection *rdma_conn) { switch (wc.opcode) { case IBV_WC_RECV: - cmd = (ValkeyRdmaCmd *)wc.wr_id; + cmd = (ValkeyRdmaCmd *)(uintptr_t)wc.wr_id; if (connRdmaHandleRecv(ctx, cm_id, cmd, wc.byte_len) == C_ERR) { return C_ERR; } break; case IBV_WC_RECV_RDMA_WITH_IMM: - cmd = (ValkeyRdmaCmd *)wc.wr_id; + cmd = (ValkeyRdmaCmd *)(uintptr_t)wc.wr_id; if (connRdmaHandleRecvImm(ctx, cm_id, cmd, ntohl(wc.imm_data)) == C_ERR) { rdma_conn->c.state = CONN_STATE_ERROR; return C_ERR; @@ -654,7 +654,7 @@ static int connRdmaHandleCq(rdma_connection *rdma_conn) { break; case IBV_WC_SEND: - cmd = (ValkeyRdmaCmd *)wc.wr_id; + cmd = (ValkeyRdmaCmd *)(uintptr_t)wc.wr_id; if (connRdmaHandleSend(cmd) == C_ERR) { return C_ERR; } @@ -1300,7 +1300,7 @@ static size_t connRdmaSend(connection *conn, const void *data, size_t data_len) memcpy(addr, data, data_len); - sge.addr = (uint64_t)addr; + sge.addr = (uint64_t)(uintptr_t)addr; sge.lkey = ctx->tx.mr->lkey; sge.length = data_len; @@ -1309,7 +1309,7 @@ static size_t connRdmaSend(connection *conn, const void *data, size_t data_len) send_wr.opcode = IBV_WR_RDMA_WRITE_WITH_IMM; send_wr.send_flags = (++ctx->tx_ops % (VALKEY_RDMA_MAX_WQE / 2)) ? 0 : IBV_SEND_SIGNALED; send_wr.imm_data = htonl(data_len); - send_wr.wr.rdma.remote_addr = (uint64_t)remote_addr; + send_wr.wr.rdma.remote_addr = (uint64_t)(uintptr_t)remote_addr; send_wr.wr.rdma.rkey = ctx->tx_key; send_wr.wr_id = 0; send_wr.next = NULL; diff --git a/tests/rdma/rdma-test.c b/tests/rdma/rdma-test.c index 6d39522f8ae..19288012c33 100644 --- a/tests/rdma/rdma-test.c +++ b/tests/rdma/rdma-test.c @@ -150,11 +150,11 @@ static int rdmaPostRecv(RdmaContext *ctx, struct rdma_cm_id *cm_id, valkeyRdmaCm struct ibv_recv_wr recv_wr, *bad_wr; - sge.addr = (uint64_t)cmd; + sge.addr = (uint64_t)(uintptr_t)cmd; sge.length = length; sge.lkey = ctx->cmd_mr->lkey; - recv_wr.wr_id = (uint64_t)cmd; + recv_wr.wr_id = (uint64_t)(uintptr_t)cmd; recv_wr.sg_list = &sge; recv_wr.num_sge = 1; recv_wr.next = NULL; @@ -286,13 +286,13 @@ static int rdmaSendCommand(RdmaContext *ctx, struct rdma_cm_id *cm_id, valkeyRdm assert(i < 2 * VALKEY_RDMA_MAX_WQE); memcpy(_cmd, cmd, sizeof(valkeyRdmaCmd)); - sge.addr = (uint64_t)_cmd; + sge.addr = (uint64_t)(uintptr_t)_cmd; sge.length = sizeof(valkeyRdmaCmd); sge.lkey = ctx->cmd_mr->lkey; send_wr.sg_list = &sge; send_wr.num_sge = 1; - send_wr.wr_id = (uint64_t)_cmd; + send_wr.wr_id = (uint64_t)(uintptr_t)_cmd; send_wr.opcode = IBV_WR_SEND; send_wr.send_flags = IBV_SEND_SIGNALED; send_wr.next = NULL; @@ -308,7 +308,7 @@ static int connRdmaRegisterRx(RdmaContext *ctx, struct rdma_cm_id *cm_id) { valkeyRdmaCmd cmd = { 0 }; cmd.memory.opcode = htons(RegisterXferMemory); - cmd.memory.addr = htobe64((uint64_t)ctx->recv_buf); + cmd.memory.addr = htobe64((uint64_t)(uintptr_t)ctx->recv_buf); cmd.memory.length = htonl(ctx->recv_length); cmd.memory.key = htonl(ctx->recv_mr->rkey); @@ -326,7 +326,7 @@ static int connRdmaHandleRecv(RdmaContext *ctx, struct rdma_cm_id *cm_id, valkey switch (ntohs(cmd->keepalive.opcode)) { case RegisterXferMemory: - ctx->tx_addr = (char *)be64toh(cmd->memory.addr); + ctx->tx_addr = (char *)(uintptr_t)be64toh(cmd->memory.addr); ctx->tx_length = ntohl(cmd->memory.length); ctx->tx_key = ntohl(cmd->memory.key); ctx->tx_offset = 0; @@ -405,7 +405,7 @@ static int connRdmaHandleCq(RdmaContext *ctx) { switch (wc.opcode) { case IBV_WC_RECV: - cmd = (valkeyRdmaCmd *)wc.wr_id; + cmd = (valkeyRdmaCmd *)(uintptr_t)wc.wr_id; if (connRdmaHandleRecv(ctx, cm_id, cmd, wc.byte_len) == -1) { return -1; } @@ -413,7 +413,7 @@ static int connRdmaHandleCq(RdmaContext *ctx) { break; case IBV_WC_RECV_RDMA_WITH_IMM: - cmd = (valkeyRdmaCmd *)wc.wr_id; + cmd = (valkeyRdmaCmd *)(uintptr_t)wc.wr_id; if (connRdmaHandleRecvImm(ctx, cm_id, cmd, ntohl(wc.imm_data)) == -1) { return -1; } @@ -426,7 +426,7 @@ static int connRdmaHandleCq(RdmaContext *ctx) { break; case IBV_WC_SEND: - cmd = (valkeyRdmaCmd *)wc.wr_id; + cmd = (valkeyRdmaCmd *)(uintptr_t)wc.wr_id; if (connRdmaHandleSend(cmd) == -1) { return -1; } @@ -510,7 +510,7 @@ static size_t connRdmaSend(RdmaContext *ctx, struct rdma_cm_id *cm_id, const voi assert(data_len <= ctx->tx_length); memcpy(addr, data, data_len); - sge.addr = (uint64_t)addr; + sge.addr = (uint64_t)(uintptr_t)addr; sge.lkey = ctx->send_mr->lkey; sge.length = data_len; @@ -519,7 +519,7 @@ static size_t connRdmaSend(RdmaContext *ctx, struct rdma_cm_id *cm_id, const voi send_wr.opcode = IBV_WR_RDMA_WRITE_WITH_IMM; send_wr.send_flags = (++ctx->send_ops % VALKEY_RDMA_MAX_WQE) ? 0 : IBV_SEND_SIGNALED; send_wr.imm_data = htonl(data_len); - send_wr.wr.rdma.remote_addr = (uint64_t)remote_addr; + send_wr.wr.rdma.remote_addr = (uint64_t)(uintptr_t)remote_addr; send_wr.wr.rdma.rkey = ctx->tx_key; send_wr.next = NULL; ret = ibv_post_send(cm_id->qp, &send_wr, &bad_wr); ++++++ valkey-9.0.1.tar.gz -> valkey-9.0.2.tar.gz ++++++ ++++ 1987 lines of diff (skipped) ++++++ valkey.tmpfiles.d ++++++ --- /var/tmp/diff_new_pack.JrEK0B/_old 2026-02-14 21:36:19.286183250 +0100 +++ /var/tmp/diff_new_pack.JrEK0B/_new 2026-02-14 21:36:19.290183415 +0100 @@ -1,3 +1,7 @@ # Type Path Mode UID GID Age Argument d /run/valkey 0755 valkey valkey - - +d /var/lib/valkey 0750 valkey valkey - - +d /var/lib/valkey/default 0750 valkey valkey - - +d /var/log/valkey 0750 valkey valkey - - +
