8a9ed9
%if 0%{?fedora} || 0%{?rhel} > 7
8a9ed9
# Enable python3 build by default
8a9ed9
%bcond_without python3
8a9ed9
%else
8a9ed9
%bcond_with python3
8a9ed9
%endif
8a9ed9
1d3708
%if 0%{?rhel} > 7 || 0%{?fedora} > 30
8a9ed9
# Disable python2 build by default
8a9ed9
%bcond_with python2
8a9ed9
%else
8a9ed9
%bcond_without python2
8a9ed9
%endif
8a9ed9
8a9ed9
Summary: A library for password generation and password quality checking
8a9ed9
Name: libpwquality
1d3708
Version: 1.4.4
f222d1
Release: 6%{?dist}
8a9ed9
# The package is BSD licensed with option to relicense as GPLv2+
8a9ed9
# - this option is redundant as the BSD license allows that anyway.
8a9ed9
License: BSD or GPLv2+
8a9ed9
Source0: https://github.com/libpwquality/libpwquality/releases/download/libpwquality-%{version}/libpwquality-%{version}.tar.bz2
8a9ed9
07909d
Patch100: libpwquality-1.4.4-rhel8-i18n.patch
07909d
8a9ed9
%global _pwqlibdir %{_libdir}
8a9ed9
%global _moduledir %{_libdir}/security
8a9ed9
%global _secconfdir %{_sysconfdir}/security
8a9ed9
1d3708
Requires: cracklib-dicts >= 2.8
8a9ed9
Requires: pam%{?_isa}
1d3708
BuildRequires: gcc make
8a9ed9
BuildRequires: cracklib-devel
8a9ed9
BuildRequires: gettext
8a9ed9
BuildRequires: pam-devel
8a9ed9
%if %{with python2}
8a9ed9
BuildRequires: python2-devel
8a9ed9
%endif
8a9ed9
%if %{with python3}
8a9ed9
BuildRequires: python3-devel
8a9ed9
%endif
8a9ed9
8a9ed9
URL: https://github.com/libpwquality/libpwquality/
8a9ed9
8a9ed9
# we don't want to provide private python extension libs
8a9ed9
%define __provides_exclude_from ^(%{python_sitearch}|%{python3_sitearch})/.*\.so$.
8a9ed9
8a9ed9
%description
8a9ed9
This is a library for password quality checks and generation
8a9ed9
of random passwords that pass the checks.
8a9ed9
This library uses the cracklib and cracklib dictionaries
8a9ed9
to perform some of the checks.
8a9ed9
8a9ed9
%package devel
8a9ed9
Summary: Support for development of applications using the libpwquality library
8a9ed9
Requires: libpwquality%{?_isa} = %{version}-%{release}
8a9ed9
Requires: pkgconfig
8a9ed9
8a9ed9
%description devel
8a9ed9
Files needed for development of applications using the libpwquality
8a9ed9
library.
8a9ed9
See the pwquality.h header file for the API.
8a9ed9
8a9ed9
%if %{with python2}
8a9ed9
%package -n python2-pwquality
8a9ed9
%{?python_provide:%python_provide python2-pwquality}
8a9ed9
Summary: Python bindings for the libpwquality library
8a9ed9
Requires: libpwquality%{?_isa} = %{version}-%{release}
8a9ed9
8a9ed9
%description -n python2-pwquality
8a9ed9
This is pwquality Python module that provides Python bindings
8a9ed9
for the libpwquality library. These bindings can be used
8a9ed9
for easy password quality checking and generation of random
8a9ed9
pronounceable passwords from Python applications.
8a9ed9
%endif
8a9ed9
8a9ed9
%if %{with python3}
8a9ed9
%package -n python3-pwquality
8a9ed9
Summary: Python bindings for the libpwquality library
8a9ed9
Requires: libpwquality%{?_isa} = %{version}-%{release}
8a9ed9
8a9ed9
%description -n python3-pwquality
8a9ed9
This is pwquality Python module that provides Python bindings
8a9ed9
for the libpwquality library. These bindings can be used
8a9ed9
for easy password quality checking and generation of random
8a9ed9
pronounceable passwords from Python applications.
8a9ed9
%endif
8a9ed9
8a9ed9
%prep
8a9ed9
%setup -q
8a9ed9
8a9ed9
%if %{with python3} && %{with python2}
8a9ed9
rm -rf %{py3dir}
8a9ed9
cp -a . %{py3dir}
8a9ed9
%endif
07909d
%patch100 -p1 -b .nodot
8a9ed9
8a9ed9
%build
8a9ed9
%if %{with python2}
8a9ed9
%configure \
8a9ed9
	--with-securedir=%{_moduledir} \
8a9ed9
	--with-pythonsitedir=%{python2_sitearch} \
8a9ed9
	--with-python-binary=%{__python2} \
8a9ed9
	--disable-static
8a9ed9
8a9ed9
make %{?_smp_mflags}
8a9ed9
%endif
8a9ed9
%if %{with python3} && %{with python2}
8a9ed9
pushd %{py3dir}
8a9ed9
%endif
8a9ed9
%if %{with python3}
8a9ed9
%configure \
8a9ed9
	--with-securedir=%{_moduledir} \
8a9ed9
	--with-pythonsitedir=%{python3_sitearch} \
8a9ed9
	--with-python-binary=%{__python3} \
8a9ed9
	--disable-static
8a9ed9
8a9ed9
make %{?_smp_mflags}
8a9ed9
%endif
8a9ed9
%if %{with python3} && %{with python2}
8a9ed9
popd
8a9ed9
%endif
8a9ed9
8a9ed9
%install
8a9ed9
make install DESTDIR=$RPM_BUILD_ROOT INSTALL='install -p'
8a9ed9
8a9ed9
%if %{with python3} && %{with python2}
8a9ed9
pushd %{py3dir}
8a9ed9
make -C python install DESTDIR=$RPM_BUILD_ROOT INSTALL='install -p'
8a9ed9
popd
8a9ed9
%endif
8a9ed9
8a9ed9
%if "%{_pwqlibdir}" != "%{_libdir}"
8a9ed9
pushd $RPM_BUILD_ROOT%{_libdir}
8a9ed9
mv libpwquality.so.* $RPM_BUILD_ROOT%{_pwqlibdir}
8a9ed9
ln -sf %{_pwqlibdir}/libpwquality.so.*.* libpwquality.so
8a9ed9
popd
8a9ed9
%endif
8a9ed9
rm -f $RPM_BUILD_ROOT%{_libdir}/*.la
8a9ed9
rm -f $RPM_BUILD_ROOT%{_moduledir}/*.la
8a9ed9
8a9ed9
mkdir $RPM_BUILD_ROOT%{_secconfdir}/pwquality.conf.d
8a9ed9
8a9ed9
%find_lang libpwquality
8a9ed9
8a9ed9
%check
8a9ed9
# Nothing yet
8a9ed9
8a9ed9
%ldconfig_scriptlets
8a9ed9
8a9ed9
%files -f libpwquality.lang
8a9ed9
%{!?_licensedir:%global license %%doc}
8a9ed9
%license COPYING
8a9ed9
%doc README NEWS AUTHORS
8a9ed9
%{_bindir}/pwmake
8a9ed9
%{_bindir}/pwscore
8a9ed9
%{_moduledir}/pam_pwquality.so
8a9ed9
%{_pwqlibdir}/libpwquality.so.*
8a9ed9
%config(noreplace) %{_secconfdir}/pwquality.conf
8a9ed9
%{_secconfdir}/pwquality.conf.d
8a9ed9
%{_mandir}/man1/*
8a9ed9
%{_mandir}/man5/*
8a9ed9
%{_mandir}/man8/*
8a9ed9
8a9ed9
%files devel
8a9ed9
%{_includedir}/pwquality.h
8a9ed9
%{_libdir}/libpwquality.so
8a9ed9
%{_libdir}/pkgconfig/*.pc
8a9ed9
%{_mandir}/man3/*
8a9ed9
8a9ed9
%if %{with python2}
8a9ed9
%files -n python2-pwquality
1d3708
%{python2_sitearch}/pwquality.so
1d3708
%{python2_sitearch}/*.egg-info
8a9ed9
%endif
8a9ed9
8a9ed9
%if %{with python3}
8a9ed9
%files -n python3-pwquality
8a9ed9
%{python3_sitearch}/*.so
8a9ed9
%{python3_sitearch}/*.egg-info
8a9ed9
%endif
8a9ed9
8a9ed9
%changelog
f222d1
* Tue Feb 14 2023 Dmitry Belyavskiy <dbelyavs@redhat.com> - 1.4.4-6
f222d1
- rebuilt
f222d1
f222d1
* Mon Feb 13 2023 Dmitry Belyavskiy - 1.4.4-5
07909d
- rebuilt
07909d
07909d
* Tue Aug 30 2022 Dmitry Belyavskiy - 1.4.4-4
07909d
- Japan translation update (remove extra dot)
f222d1
  Resolves: rhbz#2122609
07909d
1d3708
* Mon Feb 22 2021 Dmitry Belyavskiy <dbelyavs@redhat.com> - 1.4.4-3
1d3708
- Resolves: rhbz#1919026 libpwquaily rpm requires cracklib to function but RPM missing requirement [updated]
1d3708
1d3708
* Wed Feb 17 2021 Dmitry Belyavskiy <dbelyavs@redhat.com> - 1.4.4-2
1d3708
- Resolves: rhbz#1919026 libpwquaily rpm requires cracklib to function but RPM missing requirement
1d3708
1d3708
* Tue Oct 13 2020 Tomáš Mráz <tmraz@redhat.com> 1.4.4-1
1d3708
- Translation updates
1d3708
- Add usersubstr check for substrings of N characters from the username
1d3708
  patch by Danny Sauer
1d3708
- pam_pwquality: Abort the retry loop if user requests it
1d3708
- Allow setting retry, enforce_for_root, and local_users_only options
1d3708
  in the pwquality.conf config file
1d3708
8a9ed9
* Mon Oct 22 2018 Tomáš Mráz <tmraz@redhat.com> 1.4.0-9
8a9ed9
- Fix an issue found in Coverity scan
8a9ed9
8a9ed9
* Fri Jun 22 2018 Tomáš Mráz <tmraz@redhat.com> 1.4.0-8
8a9ed9
- Properly conditionalize the python buildrequires
8a9ed9
8a9ed9
* Thu Mar 22 2018 Tomáš Mráz <tmraz@redhat.com> 1.4.0-7
8a9ed9
- Add conditionals for Python2 and Python3
8a9ed9
8a9ed9
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.4.0-6
8a9ed9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
8a9ed9
8a9ed9
* Sat Feb 03 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 1.4.0-5
8a9ed9
- Switch to %%ldconfig_scriptlets
8a9ed9
8a9ed9
* Sun Dec 17 2017 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 1.4.0-4
8a9ed9
- Python 2 binary package renamed to python2-pwquality
8a9ed9
  See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3
8a9ed9
8a9ed9
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.4.0-3
8a9ed9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
8a9ed9
8a9ed9
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.4.0-2
8a9ed9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
8a9ed9
8a9ed9
* Fri May 26 2017 Tomáš Mráz <tmraz@redhat.com> 1.4.0-1
8a9ed9
- Do not try to check presence of too short username in password
8a9ed9
- Make the user name check optional (via usercheck option)
8a9ed9
- Add an 'enforcing' option to make the checks to be warning-only
8a9ed9
  in PAM
8a9ed9
- The difok = 0 setting will disable all old password similarity
8a9ed9
  checks except new and old passwords being identical
8a9ed9
- Updated translations from Zanata
8a9ed9
8a9ed9
* Mon Aug 24 2015 Tomáš Mráz <tmraz@redhat.com> 1.3.0-2
8a9ed9
- Fix possible stack overflow in the generate function (#1255935)
8a9ed9
8a9ed9
* Thu Jul 23 2015 Tomáš Mráz <tmraz@redhat.com> 1.3.0-1
8a9ed9
- Change the defaults for credits, difok, and minlen
8a9ed9
- Make the cracklib check optional but on by default
8a9ed9
- Add implicit support for parsing  <cfgfile>.d/*.conf files
8a9ed9
- Add libpwquality API manual page
8a9ed9
8a9ed9
* Wed Aug  6 2014 Tomáš Mráz <tmraz@redhat.com> 1.2.4-1
8a9ed9
- fix license handling (by Tom Callaway)
8a9ed9
- add Python3 module subpackage
8a9ed9
8a9ed9
* Thu Sep 12 2013 Tomáš Mráz <tmraz@redhat.com> 1.2.3-1
8a9ed9
- fix problem with parsing the pam_pwquality options
8a9ed9
  patch by Vladimir Sorokin.
8a9ed9
- updated translations from Transifex
8a9ed9
- treat empty user or password as NULL
8a9ed9
- move the library to /usr
8a9ed9
8a9ed9
* Wed Jun 19 2013 Tomas Mraz <tmraz@redhat.com> 1.2.2-1
8a9ed9
- manual page fixes
8a9ed9
- make it possible to set the maxsequence configuration value
8a9ed9
- updated translations from Transifex
8a9ed9
8a9ed9
* Thu Dec 20 2012 Tomas Mraz <tmraz@redhat.com> 1.2.1-1
8a9ed9
- properly free pwquality settings
8a9ed9
- add extern "C" to public header
8a9ed9
- updated translations from Transifex
8a9ed9
8a9ed9
* Thu Aug 16 2012 Tomas Mraz <tmraz@redhat.com> 1.2.0-1
8a9ed9
- add maxsequence check for too long monotonic character sequence.
8a9ed9
- clarified alternative licensing to GPLv2+.
8a9ed9
- add local_users_only option to skip the pwquality checks for
8a9ed9
  non-locals. (thanks to Stef Walter)
8a9ed9
8a9ed9
* Wed Jun 13 2012 Tomas Mraz <tmraz@redhat.com> 1.1.1-1
8a9ed9
- use rpm built-in filtering of provides (rhbz#830153)
8a9ed9
- remove strain debug fprintf() (rhbz#831567)
8a9ed9
8a9ed9
* Thu May 24 2012 Tomas Mraz <tmraz@redhat.com> 1.1.0-1
8a9ed9
- fix leak when throwing PWQError exception
8a9ed9
- added pkgconfig file
8a9ed9
- call the simplicity checks before the cracklib check
8a9ed9
- add enforce_for_root option to the PAM module
8a9ed9
- updated translations from Transifex
8a9ed9
8a9ed9
* Thu Dec  8 2011 Tomas Mraz <tmraz@redhat.com> 1.0.0-1
8a9ed9
- added a few additional password quality checks
8a9ed9
- bugfix in configuration file parsing
8a9ed9
8a9ed9
* Fri Nov 11 2011 Tomas Mraz <tmraz@redhat.com> 0.9.9-1
8a9ed9
- added python bindings and documentation
8a9ed9
8a9ed9
* Mon Oct 10 2011 Tomas Mraz <tmraz@redhat.com> 0.9-2
8a9ed9
- fixes for problems found in review (missing BR on pam-devel,
8a9ed9
  License field, Source URL, Require pam, other cleanups)
8a9ed9
8a9ed9
* Mon Oct  3 2011 Tomas Mraz <tmraz@redhat.com> 0.9-1
8a9ed9
- first spec file for libpwquality