blob: 432f4eb79a1814faf75bc33bb12b3c6ec2bb4315 (
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 valkey-ldap
#
# 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 ldap.conf
%global libname ldap.so
# Github forge
%global gh_vend valkey-io
%global gh_proj valkey-ldap
%global forgeurl https://github.com/%{gh_vend}/%{gh_proj}
#global commit afe5de4ce52bb2b80af565a6f297bf330a65d0d8
%global tag %{version}
Name: valkey-ldap
Version: 1.0.0
%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 Zlib AND Unicode-3.0
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.81
BuildRequires: rust >= 1.81
BuildRequires: clang-devel
BuildRequires: openssl-devel
Requires: valkey(modules_abi)%{?_isa} = %{valkey_modules_abi}
Requires: valkey >= 8.0
# only a hint as auth module
Enhances: valkey
%description
The valkey-ldap module is a Rust based Valkey module that adds the support
for handling user authentication against LDAP based identity providers.
The module works by registering and authentication handler that intercepts
the valkey AUTH command, which validates the the username and password,
specified in the AUTH command, using an LDAP server. Therefore the user must
already exist in Valkey before LDAP can be used for authentication.
%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
* Wed Aug 6 2025 Remi Collet <remi@remirepo.net> - 1.0.0-1
- initial package
|