summaryrefslogtreecommitdiffstats
path: root/redis-bloom.spec
blob: 1327a34797eda1dcfb694c0279bcbe5974912a9b (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
99
100
101
102
103
104
# remirepo/fedora spec file for redis-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          redisbloom.so
# Github forge
%global gh_vend          RedisBloom
%global gh_proj          RedisBloom
%global forgeurl         https://github.com/%{gh_vend}/%{gh_proj}
#global commit           afe5de4ce52bb2b80af565a6f297bf330a65d0d8
%global tag              v%{version}
# for EL-8 to avoid TAG usage
%global archivename      %{gh_proj}-%{version}

Name:              redis-bloom
Version:           8.0.1
Release:           1%{?dist}
Summary:           Probabilistic data structures
# Starting with Redis 8, RedisTimeSeries is licensed under your choice of:
# (i) Redis Source Available License 2.0 (RSALv2);
# (ii) the Server Side Public License v1 (SSPLv1); or
# (iii) the GNU Affero General Public License version 3 (AGPLv3). 
# RedisModulesSDK is MIT
# bloom is BSD
# murmur2 is Public Domain
# readies is BSD-3-Clause
# rmutil is AGPLv3
# t-digest-c is MIT
License:           AGPL-3.0-only AND MIT AND BSD-3-Clause
URL:               %{forgeurl}
Source0:           %{name}-%{version}.tgz
# get full git snapshot with submodules
Source1:           makesrc.sh

BuildRequires:     redis-devel
BuildRequires:     make
BuildRequires:     cmake
BuildRequires:     automake
BuildRequires:     autoconf
BuildRequires:     libtool
BuildRequires:     gcc
BuildRequires:     gcc-c++
BuildRequires:     python3
BuildRequires:     python3-pip
BuildRequires:     openssl-devel
BuildRequires:     jq

Provides:          bundled(RedisModulesSDK)
Provides:          bundled(readies)
Provides:          bundled(t-digest-c)

Requires:          redis(modules_abi)%{?_isa} = %{redis_modules_abi}
Requires:         (redis >= 8.0 with redis < 8.1)
Supplements:       redis


%description
RedisBloom adds a set of probabilistic data structures to Redis, including
Bloom filter, Cuckoo filter, Count-min sketch, Top-K, and t-digest.
Using this capability, you can query streaming data without needing to
store all the elements of the stream. 


%prep
%setup -q -n %{gh_proj}-%{version}

: Configuration file
cat << EOF | tee %{cfgname}
# %{gh_proj}
loadmodule %{redis_modules_dir}/%{libname}
EOF

cp -p deps/RedisModulesSDK/LICENSE LICENSE.RedisModulesSDK  # MIT
cp -p deps/readies/LICENSE         LICENSE.readies          # BSD-3-Clause
cp -p deps/t-digest-c/LICENSE.md   LICENSE.t-digest-c       # MIT


%build
%global make_flags	 DEBUG="" VERBOSE=1 LDFLAGS="%{?__global_ldflags}" CFLAGS+="%{optflags} -fPIC"
make %{?_smp_mflags} %{make_flags} build


%install
install -Dpm755 bin/linux-*-release/%{libname} %{buildroot}%{redis_modules_dir}/%{libname}
install -Dpm640 %{cfgname}                     %{buildroot}%{redis_modules_cfg}/%{cfgname}


%files
%license LICENSE.*
%license licenses/AGPLv3.txt
%doc *.md
%attr(0640, redis, root) %config(noreplace) %{redis_modules_cfg}/%{cfgname}
%{redis_modules_dir}/%{libname}


%changelog
* Fri Jul 25 2025 Remi Collet <remi@remirepo.net> - 8.0.1-1
- initial package