summaryrefslogtreecommitdiffstats
path: root/valkey-search.spec
blob: f703ce2f3ea9f5dfaddb996773b1b602d74dd25c (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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
# remirepo/fedora spec file for valkey-search
#
# 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          search.conf
%global libname          search.so
# Github forge
%global gh_vend          valkey-io
%global gh_proj          valkey-search
%global forgeurl         https://github.com/%{gh_vend}/%{gh_proj}
%global tag              %{version}

Name:              valkey-search
Version:           1.2.0
%forgemeta
Release:           1%{?dist}
Summary:           Vector Similarity Search engine
# this module is BSD-3-Clause
# RapidJSON is MIT
License:           BSD-3-Clause AND MIT
URL:               %{forgeurl}
Source0:           %{forgesource}
# see submodules/CMakeLists.txt
Source1:           makedeps.sh
Source2:           %{name}-deps-%{version}.tgz

# fix check for cached sources
Patch0:            %{name}-offline.patch

BuildRequires:     valkey-devel >= 9.0.1
BuildRequires:     ninja-build
BuildRequires:     cmake
BuildRequires:     gcc >= 12
BuildRequires:     gcc-c++
BuildRequires:     openssl-devel
%if 0%{?fedora} >= 41
BuildRequires:     openssl-devel-engine
%endif
BuildRequires:     systemd-devel

Requires:          valkey(modules_abi)%{?_isa} = %{valkey_modules_abi}
Requires:          valkey >= %{valkey_version}
Supplements:       valkey

Provides:          bundled(highwayhash)
Provides:          bundled(googletest)
Provides:          bundled(google-benchmark)
Provides:          bundled(grpc) = 1.70.1
Provides:          bundled(hdrhistogram_c)
Provides:          bundled(hnswlib)
Provides:          bundled(simsimd)
Provides:          bundled(snowball)
Provides:          bundled(icu)



%description
valkey-search (BSD-3-Clause), provided as a Valkey module,
is a high-performance Vector Similarity Search engine optimized
for AI-driven workloads. It delivers single-digit millisecond
latency and high QPS, capable of handling billions of vectors
with over 99% recall.

valkey-search allows users to create indexes and perform similarity
searches, incorporating complex filters. It supports Approximate Nearest
Neighbor (ANN) search with HNSW and exact matching using K-Nearest Neighbors
(KNN). Users can index data using either Valkey Hash or Valkey-JSON data types.

While valkey-search currently focuses on Vector Search, its goal is to extend
Valkey into a full-fledged search engine, supporting Full Text Search and
additional indexing options. 


%prep
%setup -q -n %{gh_proj}-%{version} -a2
%patch -P0 -p1 -b .offline

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

cp .build-release/.deps/grpc/LICENSE        LICENSE.grpc
cp .build-release/.deps/highwayhash/LICENSE LICENSE.highwayhash
cp .build-release/.deps/googletest/LICENSE  LICENSE.googletest
cp .build-release/.deps/benchmark/LICENSE   LICENSE.benchmark

cp third_party/hdrhistogram_c/LICENSE LICENSE.hdrhistogram_c
cp third_party/hnswlib/LICENSE        LICENSE.hnswlib
cp third_party/simsimd/LICENSE        LICENSE.simsimd
cp third_party/snowball/COPYING       COPYING.snowball
cp third_party/icu/LICENSE            LICENSE.icu

: submodules list
grep -E '(github.com|"v)' submodules/CMakeLists.txt


%build
./build.sh --verbose


%install
install -Dpm755 .build-release/*%{libname} %{buildroot}%{valkey_modules_dir}/%{libname}
install -Dpm640 %{cfgname}                 %{buildroot}%{valkey_modules_cfg}/%{cfgname}


%files
%license LICENSE*
%license COPYING*
%doc *.md
%doc docs
%doc THIRD_PARTY_NOTICES

%attr(0640, valkey, root) %config(noreplace) %{valkey_modules_cfg}/%{cfgname}
%{valkey_modules_dir}/%{libname}


%changelog
* Wed Mar 18 2026 Remi Collet <remi@remirepo.net> - 1.2.0-1
- update to 1.2.0
- open https://github.com/valkey-io/valkey-search/issues/918 build failure

* Tue Dec 30 2025 Remi Collet <remi@remirepo.net> - 1.1-1
- update to 1.1

* Wed Nov 26 2025 Remi Collet <remi@remirepo.net> - 1.0.2-1
- update to 1.0.2

* Fri Sep  5 2025 Remi Collet <remi@remirepo.net> - 1.0.1-1
- initial package