mirror of
https://github.com/xcat2/confluent.git
synced 2026-10-20 06:35:33 +00:00
b1ed925e40
Python 3.13 dropped crypt from the stdlib, and openSUSE Leap 16 packages neither legacycrypt nor crypt_r, so the server did not start there without a pip install. Both of those only call crypt(3) from libcrypt, which every distribution ships, so do that through ctypes as the last resort, serialized because crypt(3) returns a static buffer. Its hashes match the stdlib module byte for byte. Move the import chain both callers carried into confluent.pwcrypt. The legacycrypt Recommends is no longer needed.
118 lines
5.3 KiB
Cheetah
118 lines
5.3 KiB
Cheetah
%define name confluent_server
|
|
%define version #VERSION#
|
|
%define fversion %{lua:
|
|
sv, _ = string.gsub("#VERSION#", "[~]", "-")
|
|
print(sv)
|
|
}
|
|
%define release 1
|
|
|
|
Summary: confluent systems management server
|
|
Name: %{name}
|
|
Version: %{version}
|
|
Release: %{release}
|
|
Source0: %{name}-%{fversion}.tar.gz
|
|
License: Apache-2.0
|
|
Group: Development/Libraries
|
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
|
|
Prefix: %{_prefix}
|
|
BuildArch: noarch
|
|
Requires: confluent_vtbufferd
|
|
%if "%{dist}" == ".el9"
|
|
Requires: python3-asyncssh, python3-cryptography, confluent_client == %{version}, python3-pyparsing, python3-netifaces, python3-pyasn1 >= 0.2.3, python3-pysnmp >= 4.3.4, python3-lxml, python3-setuptools, python3-dateutil, python3-cffi, python3-pyOpenSSL python3-msgpack python3-libarchive-c python3-yaml python3-yarl python3-aiohttp openssl iproute
|
|
# httpapi drops passkey support without webauthn, and only BIOS settings on
|
|
# IMM2-era Lenovo BMCs need eficompressor. Neither is in EPEL.
|
|
Recommends: python3-webauthn python3-eficompressor
|
|
%else
|
|
%if "%{dist}" == ".el10"
|
|
Requires: python3-asyncssh, python3-cryptography, confluent_client == %{version}, python3-pyparsing, python3-psutil, python3-pyasn1 >= 0.2.3, python3-pysnmp >= 4.3.4, python3-lxml,python3-setuptools, python3-dateutil, python3-cffi, python3-pyOpenSSL python3-msgpack python3-libarchive-c python3-yaml openssl iproute python3-yarl python3-aiohttp
|
|
# httpapi drops passkey support without webauthn, which is not in EPEL
|
|
Recommends: python3-webauthn
|
|
%else
|
|
%if 0%{?suse_version}
|
|
# python3-dbm is split out there, PyYAML keeps its upstream capitalisation
|
|
Requires: python3-dbm, python3-asyncssh, python3-cryptography, confluent_client == %{version}, python3-pyparsing, python3-psutil, python3-pyasn1 >= 0.2.3, python3-pysnmp >= 4.3.4, python3-lxml, python3-setuptools, python3-dateutil, python3-cffi, python3-pyOpenSSL, python3-msgpack, python3-libarchive-c, python3-PyYAML, python3-yarl, python3-aiohttp, openssl, iproute
|
|
# httpapi imports webauthn behind a try/except and drops passkey support
|
|
# without it, and openSUSE packages no candidate, so recommend it instead.
|
|
Recommends: python3-webauthn
|
|
%endif
|
|
%endif
|
|
%endif
|
|
|
|
Vendor: Lenovo
|
|
Url: https://github.com/lenovo/confluent
|
|
|
|
%description
|
|
Server for console management and systems management aggregation
|
|
|
|
%prep
|
|
%setup -n %{name}-%{fversion}
|
|
|
|
%build
|
|
%if "%{dist}" == ".el7"
|
|
python2 setup.py build
|
|
%else
|
|
python3 setup.py build
|
|
%endif
|
|
|
|
%install
|
|
%if "%{dist}" == ".el7"
|
|
python2 setup.py install --single-version-externally-managed -O1 --root=$RPM_BUILD_ROOT --record=INSTALLED_FILES.bare --install-purelib=/opt/confluent/lib/python --install-scripts=/opt/confluent/bin
|
|
%else
|
|
python3 setup.py install --single-version-externally-managed -O1 --root=$RPM_BUILD_ROOT --record=INSTALLED_FILES.bare --install-purelib=/opt/confluent/lib/python --install-scripts=/opt/confluent/bin
|
|
%endif
|
|
for file in $(grep confluent/__init__.py INSTALLED_FILES.bare); do
|
|
rm $RPM_BUILD_ROOT/$file
|
|
done
|
|
grep -v confluent/__init__.py INSTALLED_FILES.bare > INSTALLED_FILES
|
|
%if 0%{?suse_version}
|
|
# openSUSE patches setuptools to write a literal "#!python" placeholder into
|
|
# installed scripts and expects the packager to rewrite it. The stock
|
|
# %%python3_fix_shebang only looks at %%{_bindir}, so do it for our prefix.
|
|
sed -i '1s|^#!python|#!/usr/bin/python3|' $RPM_BUILD_ROOT/opt/confluent/bin/*
|
|
%endif
|
|
# Only do non-root confluent if systemd of the platform supports it
|
|
systemd-analyze verify $RPM_BUILD_ROOT/usr/lib/systemd/system/confluent.service 2>&1 | grep "'AmbientCapabilities'" > /dev/null && sed -e 's/User=.*//' -e 's/Group=.*//' -e 's/AmbientCapabilities=.*//' -i $RPM_BUILD_ROOT/usr/lib/systemd/system/confluent.service
|
|
cat INSTALLED_FILES
|
|
|
|
%pre
|
|
getent group confluent > /dev/null || /usr/sbin/groupadd -r confluent
|
|
getent passwd confluent > /dev/null || /usr/sbin/useradd -r -g confluent -d /var/lib/confluent -s /sbin/nologin confluent
|
|
mkdir -p /etc/confluent /var/lib/confluent /var/log/confluent /var/cache/confluent
|
|
chown confluent:confluent /etc/confluent /var/lib/confluent /var/log/confluent /var/cache/confluent
|
|
|
|
%post
|
|
sysctl -p /usr/lib/sysctl.d/confluent.conf >& /dev/null
|
|
NEEDCHOWN=0
|
|
NEEDSTART=0
|
|
[ -n "$(find /etc/confluent /var/log/confluent /var/cache/confluent -uid 0 -print -quit 2>/dev/null)" ] && NEEDCHOWN=1
|
|
if [ $NEEDCHOWN = 1 ]; then
|
|
if systemctl is-active confluent > /dev/null; then
|
|
NEEDSTART=1
|
|
systemctl stop confluent
|
|
fi
|
|
chown -R confluent:confluent /etc/confluent /var/log/confluent /var/cache/confluent
|
|
fi
|
|
systemctl daemon-reload
|
|
if systemctl is-active confluent > /dev/null || [ $NEEDSTART = 1 ]; then /usr/bin/systemctl restart confluent >& /dev/null; fi
|
|
# -e is false for a dangling link, so an existing bad one is replaced. Linux-PAM
|
|
# reads vendor defaults from /usr/lib/pam.d and distributions are migrating there
|
|
# package by package; openssh has already done so on SUSE 16.
|
|
if [ ! -e /etc/pam.d/confluent ]; then
|
|
for pamsrc in /etc/pam.d/sshd /usr/lib/pam.d/sshd; do
|
|
if [ -f $pamsrc ]; then
|
|
ln -sf $pamsrc /etc/pam.d/confluent
|
|
break
|
|
fi
|
|
done
|
|
fi
|
|
true
|
|
|
|
%clean
|
|
rm -rf $RPM_BUILD_ROOT
|
|
|
|
%files -f INSTALLED_FILES
|
|
%license /opt/confluent/share/licenses/confluent_server/LICENSE
|
|
%license /opt/confluent/share/licenses/confluent_server/COPYRIGHT
|
|
%defattr(-,root,root)
|
|
/opt/confluent
|