blob: 5f76dc166a8f1bf16881e3fa909381aef7226d32 (
plain)
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
|
# remirepo/fedora spec file for valkey-bloom
#
# SPDX-FileCopyrightText: Copyright 2025 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}
# for EL-8 to avoid TAG usage
%global archivename %{gh_proj}-%{version}
Name: valkey-bloom
Version: 1.0.0
Release: 1%{?dist}
Summary: Probabilistic data structures
# this module is BSD-3-Clause
# rust lilbraries are Apache-2.0, MIT, BSD-2-CLAUSE
License: BSD-3-Clause AND BSD-2-CLAUSE AND Apache-2.0 AND MIT
URL: %{forgeurl}
Source0: %{name}-%{version}.tgz
Source1: makesrc.sh
# get full git snapshot with submodules
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 >= 8.0
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
: Required rust version
grep -h rust-version mycargo/*/Cargo.toml Cargo.toml | sort -u | tail -n 8
: Bundled projects Licenses
for proj in mycargo/*; do
for lic in $proj/LICENSE*; do
[ -f $lic ] && cp $lic $(basename $lic).$(basename $proj)
done
done
%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 Aug 5 2025 Remi Collet <remi@remirepo.net> - 1.0.0-1
- initial package
|