1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
# remirepo/fedora spec file for valkey-bloom
#
# SPDX-FileCopyrightText: Copyright 2025-2026 Remi Collet
# SPDX-License-Identifier: CECILL-2.1
# http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
#
# Please, preserve the changelog entries
#
%global cfgname bloom.conf
%global libname bloom.so
# Github forge
%global gh_vend valkey-io
%global gh_proj valkey-bloom
%global forgeurl https://github.com/%{gh_vend}/%{gh_proj}
#global commit afe5de4ce52bb2b80af565a6f297bf330a65d0d8
%global tag %{version}
Name: valkey-bloom
Version: 1.0.1
%forgemeta
Release: 1%{?dist}
Summary: Probabilistic data structures
# this module is BSD-3-Clause
# rust libraries are Apache-2.0, MIT, BSD-2-CLAUSE
License: BSD-3-Clause AND BSD-2-CLAUSE AND Apache-2.0 AND MIT AND ISC
URL: %{forgeurl}
Source0: %{forgesource}
# get rust dependencies
Source2: %{name}-deps-%{version}.tgz
Source3: makedeps.sh
BuildRequires: valkey-devel >= 8.0
BuildRequires: cargo-rpm-macros >= 24
BuildRequires: cargo >= 1.82
BuildRequires: rust >= 1.82
BuildRequires: clang-devel
Requires: valkey(modules_abi)%{?_isa} = %{valkey_modules_abi}
Requires: valkey >= %{valkey_version}
Supplements: valkey
%description
Valkey-Bloom (BSD-3-Clause) is a Rust based Valkey-Module which brings a Bloom
Filter (Module) data type into Valkey and supports versions >= 8.0.
With this, users can create bloom filters (space efficient probabilistic
data structures) to add elements, check whether elements exists, auto scale
their filters, customize bloom filter properties, perform RDB Save and load
operations, etc.
%prep
%setup -q -n %{gh_proj}-%{version} -a2
: Configuration file
cat << EOF | tee %{cfgname}
# %{gh_proj}
loadmodule %{valkey_modules_dir}/%{libname}
EOF
: Create cargo configuration to use vendor directory
%cargo_prep -v $PWD/mycargo
cat .cargo/config.toml
: Bundled projects Licenses
for proj in mycargo/*; do
for lic in $proj/LICENSE*; do
[ -f $lic ] && cp $lic $(basename $lic).$(basename $proj)
done
done
: Licenses list
cargo tree \
--workspace --offline --edges no-build,no-dev,no-proc-macro \
--no-dedupe --target all --prefix none --format "{l}: {p}" \
| sed -e "s: ($(pwd)[^)]*)::g" -e "s: / :/:g" -e "s:/: OR :g" | sort -u
: Required rust version
grep -h rust-version mycargo/*/Cargo.toml Cargo.toml | sort -u | tail -n 8
%build
%cargo_build
%install
install -Dpm755 target/rpm/*%{libname} %{buildroot}%{valkey_modules_dir}/%{libname}
install -Dpm640 %{cfgname} %{buildroot}%{valkey_modules_cfg}/%{cfgname}
%files
%license LICENSE*
%doc *.md
%attr(0640, valkey, root) %config(noreplace) %{valkey_modules_cfg}/%{cfgname}
%{valkey_modules_dir}/%{libname}
%changelog
* Tue Feb 24 2026 Remi Collet <remi@remirepo.net> - 1.0.1-1
- update to 1.0.1
* Tue Aug 5 2025 Remi Collet <remi@remirepo.net> - 1.0.0-1
- initial package
|