# # spec file for package libpwquality # # Copyright (c) 2021 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 _pammoduledir /%{_lib}/security %define _secconfdir %{_sysconfdir}/security %define libname libpwquality1 %bcond_with python2 Name: libpwquality Version: 1.4.4 Release: 2.5 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 %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=%{_pammoduledir} \ --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 %{_pammoduledir}/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 * Tue Jan 5 2021 Josef Möllers - Do not use macro %%make_build pre SLE-15 Use "make -O %%{?_smp_mflags}" instead [libpwquality.spec] * Fri Oct 16 2020 Danny Sauer - update to 1.4.4 * e11f2bd Fix regression with enabling cracklib check * 02e6728 Use make macros in rpm spec file * xxxxxxx Translated using Weblate (Polish, Turkish, Ukrainian) - update to 1.4.3 * 1213d33 Update translation files * a951fbe Add --disable-cracklib-check configure parameter * 6a8845b fixup static compilation * 92c6066 python: Add missing getters/setters for newly added settings * bfef79d Add usersubstr check * 09a2e65 pam_pwquality: Add debug message for the local_users_only option * a6f7705 Fix some gcc warnings * 8c8a260 pwmake: Properly validate the bits parameter. * 7be4797 we use Fedora Weblate now * xxxxxxx Translated using Weblate (Azerbaijani, Bulgarian, Chinese (Simplified), Czech, French, Friulian, Hungarian, Italian, Japanese, Norwegian Bokmål, Persian, Russian, Spanish, Turkish) * Thu Aug 20 2020 Dirk Mueller - update to 1.4.2: * Fix regression in handling retry, enforce_for_root, and local_users_only options introduced with the previous release. * Mon May 18 2020 Fabian Vogt - Register with pam-config in %%post(un) * Fri May 1 2020 Thorsten Kukuk - Add baselibs.conf * Thu Sep 19 2019 Bjørn Lie - Update to version 1.4.1: + Minor bugfix update of the library. - Drop libpwquality-pythons.patch: Fixed upstream. Following this, drop autoconf, automake and libtool BuildRequires and autoreconf call. - Use modern macros. * Thu Sep 19 2019 Ludwig Nussel - Do not recommend lang package. The lang package already has a supplements. * Wed Feb 28 2018 dimstar@opensuse.org - Modernize spec-file by calling spec-cleaner * Mon Jan 8 2018 jengelh@inai.de - Update RPM groups and summaries. * Mon Jan 8 2018 tchvatal@suse.com - Switch url to https://github.com/libpwquality/libpwquality/ - Update to release 1.4.0: * Fix possible buffer overflow with data from /dev/urandom in pwquality_generate(). * Do not try to check presence of too short username in password. (thanks to Nikos Mavrogiannopoulos) * Make the user name check optional (via usercheck option). * Add an 'enforcing' option to make the checks to be warning-only in PAM. * The difok = 0 setting will disable all old password similarity checks except new and old passwords being identical. * Updated translations from Zanata. - Add patch libpwquality-pythons.patch to avoid duping pythondir - Make python3 default and enable py2 only when needed * Thu Nov 9 2017 mpluskal@suse.com - Build python3 version of bindings as well * Fri Apr 15 2016 mgorse@suse.com - Update to GNOME 3.20 Fate#318572 * Sat Jul 25 2015 zaitor@opensuse.org - Update to version 1.3.0: + Change the defaults for credits, difok, and minlen. + Make the cracklib check optional but on by default. + Add implicit support for parsing .d/*.conf files. + Add libpwquality API manual page. * Sat Aug 23 2014 dimstar@opensuse.org - Update to version 1.2.4: + Add Python3 module subpackage. * Fri Aug 15 2014 mlin@suse.com - Avoid conflict in installation-images-openSUSE with cryptsetup: + Only recommend, insted of Require cracklib-dict-full. + Require cracklib-dict. * Thu Sep 12 2013 dimstar@opensuse.org - Update to version 1.2.3: + Fix problem with parsing the pam_pwquality options. + Treat empty user or password as NULL. + Updated translations. * Fri Jun 21 2013 dimstar@opensuse.org - Update to version 1.2.2: + Manual page fixes. + Make it possible to set the maxsequence configuration value. + Updated translations. * Sun Dec 23 2012 zaitor@opensuse.org - Update to version 1.2.1: + Properly free pwquality settings. + Add extern "C" to public header. + Updated translations. * Fri Sep 7 2012 vuntz@opensuse.org - Cleanup for inclusion in Factory. - Update to version 1.2.0: + Add maxsequence check for too long monotonic character sequence. + Clarified alternative licensing to GPLv2+. + Add local_users_only option to skip the pwquality checks for non-locals. * Thu Jun 7 2012 badshah400@gmail.com - Initial build (version 1.1.0).