libpwquality/libpwquality.spec

198 lines
5.6 KiB
RPMSpec

#
# spec file for package libpwquality
#
# Copyright (c) 2022 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%define _secconfdir %{_sysconfdir}/security
%define libname libpwquality1
%bcond_without python2
Name: libpwquality
Version: 1.4.5
Release: 0
Summary: Library for password quality checking and generating random passwords
License: BSD-3-Clause OR GPL-2.0-or-later
Group: Development/Libraries/C and C++
URL: https://github.com/libpwquality/libpwquality
Source: %{url}/releases/download/%{name}-%{version}/%{name}-%{version}.tar.bz2
Source1: baselibs.conf
BuildRequires: cracklib-devel
BuildRequires: gettext-devel
BuildRequires: pam-devel
BuildRequires: pkgconfig
BuildRequires: pkgconfig(python3)
%if %{with python2}
BuildRequires: pkgconfig(python2)
%endif
BuildRequires: python-rpm-macros
%description
libpwquality is a library for password quality checks and generation
of random passwords that pass the checks.
%lang_package
%package -n %{libname}
Summary: Library for password quality checking and generating random passwords
Group: System/Libraries
Requires: cracklib-dict >= 2.8
Recommends: cracklib-dict-full >= 2.8
# To make lang package installable
Provides: %{name}
%description -n %{libname}
libpwquality is a library for password quality checks and generation
of random passwords that pass the checks.
%package tools
Summary: Tools from libpequality, a library for password quality checking
Group: Productivity/Security
%description tools
libpwquality is a library for password quality checks and generation
of random passwords that pass the checks.
This package contains simple tools that use libpwquality.
%package devel
Summary: Development files for libpwquality, a library for password quality checking
Group: Development/Libraries/C and C++
Requires: %{libname} = %{version}
Requires: pkgconfig
%description devel
libpwquality is a library for password quality checks and generation
of random passwords that pass the checks.
This package provides files needed for development of applications
using the libpwquality library.
%package -n pam_pwquality
Summary: PAM module to disallow weak new passwords
Group: System/Libraries
Requires: pam
Requires(post): pam-config
Requires(postun):pam-config
%description -n pam_pwquality
The pam_pwquality PAM module can be used instead of pam_cracklib to
disallow weak new passwords when user's login password is changed.
%package -n python2-pwquality
Summary: Python bindings for libpwquality
Group: Development/Libraries/Python
Provides: python-pwquality = %{version}-%{release}
Obsoletes: python-pwquality < %{version}-%{release}
%description -n python2-pwquality
libpwquality is a library for password quality checks and generation
of random passwords that pass the checks.
This package provides Python bindings for the libpwquality library.
%package -n python3-pwquality
Summary: Python 3 bindings for libpwquality
Group: Development/Libraries/Python
Provides: python-pwquality = %{version}-%{release}
Obsoletes: python-pwquality < %{version}-%{release}
%description -n python3-pwquality
libpwquality is a library for password quality checks and generation
of random passwords that pass the checks.
This package provides Python 3 bindings for the libpwquality library.
%prep
%autosetup -p1
%build
%configure \
--disable-static \
--with-securedir=%{_pam_moduledir} \
--with-python-binary=%{_bindir}/python3 \
--with-pythonsitedir=%{python3_sitearch} \
%{nil}
%if 0%{?suse_version} < 1500
make -O %{?_smp_mflags}
%else
%make_build
%endif
%if %{with python2}
pushd python
%python_build
popd
%endif
%install
%make_install
%if %{with python2}
pushd python
%python_install
popd
%endif
find %{buildroot} -type f -name "*.la" -delete -print
%find_lang %{name} %{?no_lang_C}
%post -n %{libname} -p /sbin/ldconfig
%postun -n %{libname} -p /sbin/ldconfig
%post -n pam_pwquality
# Due to boo#728586 it is necessary to duplicate this in the 32bit variant.
# So you need to edit baselibs.conf if you change this.
%{_sbindir}/pam-config -a --pwquality || :
%postun -n pam_pwquality
if [ "$1" = "0" ]; then
%{_sbindir}/pam-config -d --pwquality || :
fi
%files -n %{libname}
%license COPYING
%doc AUTHORS NEWS README
%{_libdir}/libpwquality.so.*
%config(noreplace) %{_secconfdir}/pwquality.conf
%{_mandir}/man3/pwquality.3%{?ext_man}
%{_mandir}/man5/pwquality.conf.5%{?ext_man}
%files tools
%{_bindir}/pwmake
%{_bindir}/pwscore
%{_mandir}/man1/pwmake.1%{?ext_man}
%{_mandir}/man1/pwscore.1%{?ext_man}
%files devel
%{_includedir}/pwquality.h
%{_libdir}/libpwquality.so
%{_libdir}/pkgconfig/pwquality.pc
%files -n pam_pwquality
%{_pam_moduledir}/pam_pwquality.so
%{_mandir}/man8/pam_pwquality.8%{?ext_man}
%if %{with python2}
%files -n python2-pwquality
%{python2_sitearch}/*
%endif
%files -n python3-pwquality
%{python3_sitearch}/*
%files lang -f libpwquality.lang
%changelog