%global cargo_install_lib 0 %global upstream_version 1.1.0-dev+46ddd3d %global valkey_modules_dir %{_libdir}/valkey/modules %global debug_package %{nil} # Detect SUSE %if 0%{?suse_version} %global is_suse 1 %endif # Detect architecture for rustup %ifarch aarch64 %global rustup_arch aarch64-unknown-linux-gnu %endif %ifarch x86_64 %global rustup_arch x86_64-unknown-linux-gnu %endif Name: valkey-ldap-nightly Version: 1.1.0~dev+46ddd3d Release: 1%{dist} Summary: LDAP authentication module for Valkey License: BSD-3-Clause URL: https://github.com/valkey-io/valkey-ldap Source: valkey-ldap-%{upstream_version}.tar.gz %if 0%{?fedora} && !0%{?amzn} BuildRequires: cargo-rpm-macros >= 26 %endif # SUSE uses different package names %if 0%{?is_suse} BuildRequires: libopenssl-devel BuildRequires: openldap2-devel BuildRequires: clang-devel %else BuildRequires: openssl-devel BuildRequires: openldap-devel BuildRequires: clang-devel %endif BuildRequires: gcc BuildRequires: make BuildRequires: pkg-config # curl or curl-minimal is needed for rustup download on non-Fedora; # not listed as BuildRequires to avoid curl-minimal conflicts on EL9+. # The container build script installs it before rpmbuild runs. Recommends: valkey >= 7.2 %global _description %{expand: An LDAP authentication module for Valkey.} %description %{_description} %prep %autosetup -n valkey-ldap-%{upstream_version} -p1 %if 0%{?fedora} && !0%{?amzn} %cargo_prep -v vendor %else # Install rust compiler using correct arch curl -sSf -o rustup-init https://static.rust-lang.org/rustup/dist/%{rustup_arch}/rustup-init chmod +x rustup-init ./rustup-init --default-toolchain 1.87.0 --no-modify-path --profile minimal -y set -euo pipefail %{__mkdir} -p target/rpm /usr/bin/ln -s rpm target/release %{__rm} -rf .cargo/ %{__mkdir} -p .cargo cat > .cargo/config.toml << EOF [build] rustc = "rustc" rustdoc = "rustdoc" [profile.rpm] inherits = "release" opt-level = 3 codegen-units = 1 debug = 2 strip = "none" [env] CFLAGS = "%{build_cflags}" CXXFLAGS = "%{build_cxxflags}" LDFLAGS = "%{build_ldflags}" [install] root = "%{buildroot}%{_prefix}" [term] verbose = true [net] offline = true EOF cat >> .cargo/config.toml << EOF [source.vendored-sources] directory = "vendor" [source.crates-io] registry = "https://crates.io" replace-with = "vendored-sources" EOF %{__rm} -f Cargo.lock %endif %build %if 0%{?fedora} && !0%{?amzn} %cargo_build %{cargo_license} > LICENSE.dependencies %else # Source cargo env — try multiple known locations if [ -f "$HOME/.cargo/env" ]; then . "$HOME/.cargo/env" elif [ -f /root/.cargo/env ]; then . /root/.cargo/env elif [ -f /builddir/.cargo/env ]; then . /builddir/.cargo/env elif [ -f /usr/local/cargo/env ]; then . /usr/local/cargo/env else echo "WARNING: No cargo env file found, assuming cargo is in PATH" >&2 fi cargo build %{?_smp_mflags} --profile rpm set -euo pipefail 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 \ > LICENSE.dependencies %endif %install install -pDm755 target/rpm/libvalkey_ldap.so -t %{buildroot}%{valkey_modules_dir} %files %{valkey_modules_dir}/libvalkey_ldap.so %license LICENSE %license LICENSE.dependencies %doc README.md %changelog * Tue Mar 31 2026 Ricardo Dias - 1.1.0~dev+46ddd3d - Update to upstream version 1.1.0-dev+46ddd3d