# 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 - 1.0.0-1 - initial package