+#
+# Conditional build:
+%bcond_with words # bigger words database
+
+%define words_v 20080507
Summary: Password checking library
-Summary(fr): Bibliothèque de vérification de mots de passe
-Summary(tr): Parola denetim kitaplýðý
-Summary(pl): Biblioteka sprawdzania hase³
+Summary(es.UTF-8): Biblioteca de chequeo de contraseñas
+Summary(fr.UTF-8): Bibliothèque de vérification de mots de passe
+Summary(pl.UTF-8): Biblioteka sprawdzania haseł
+Summary(pt_BR.UTF-8): Biblioteca de checagem de senhas
+Summary(ru.UTF-8): Библиотека проверки паролей
+Summary(tr.UTF-8): Parola denetim kitaplığı
+Summary(uk.UTF-8): Бібліотека перевірки паролів
Name: cracklib
-Version: 2.7
-Release: 7
+Version: 2.8.18
+Release: 1
+License: GPL v2
Group: Libraries
-Group(pl): Biblioteki
-Copyright: artistic
-Source: ftp://coast.cs.purdue.edu/pub/tools/unix/cracklib/%{name}_%{version}.tgz
-Patch: cracklib.patch
-URL: ftp://coast.cs.purdue.edu/pub/tools/unix/cracklib/
-Buildroot: /tmp/%{name}-%{version}-root
+Source0: http://downloads.sourceforge.net/cracklib/%{name}-%{version}.tar.gz
+# Source0-md5: 79053ad8bc714a44cd660cb12116211b
+Source1: http://downloads.sourceforge.net/cracklib/%{name}-words-%{words_v}.gz
+# Source1-md5: 7fa6ba0cd50e7f9ccaf4707c810b14f1
+URL: http://sourceforge.net/projects/cracklib/
+BuildRequires: python-devel
+BuildRequires: python-modules
+BuildRequires: rpm-pythonprov
+BuildRequires: words
+BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+
+%undefine __cxx
%description
-Checks passwords for security related characteristics - length, uniqueness,
-whether they are in a word database, etc.
-
-%description -l de
-Überprüft Paßwörter auf Sicherheitsmerkmale - Länge, Eindeutigkeit,
-Anwesenheit in einer Wörter-Datenbank usw.
-
-%description -l fr
-Vérifie les caractéristiques liées à la sécurité des mots de passe - longueur,
-unicité, s'ils sont dans une base de mots, etc.
-
-%description -l tr
-Parolalarýn uzunluklarý, sistemde tek olmalarý, sözcük veri tabanýnda
-bulunmamalarý gibi güvenlikle ilgili özelliklerini kontrol eder.
-
-%description -l pl
-Sprawdza has³a pod k±tem bezpieczeñstwa - d³ugo¶æ, unikalno¶æ, czy
-wystêpuj± w s³owniu itp.
+CrackLib tests passwords to determine whether they match certain
+security-oriented characteristics. You can use CrackLib to stop users
+from choosing passwords which would be easy to guess. CrackLib
+performs certain tests:
+
+- It tries to generate words from a username and gecos entry and
+ checks those words against the password;
+- It checks for simplistic patterns in passwords;
+- It checks for the password in a dictionary.
+
+CrackLib is actually a library containing a particular C function
+which is used to check the password, as well as other C functions.
+CrackLib is not a replacement for a passwd program; it must be used in
+conjunction with an existing passwd program.
+
+Install the cracklib package if you need a program to check users'
+passwords to see if they are at least minimally secure. If you install
+CrackLib, you'll also want to install the cracklib-dicts package.
+
+%description -l de.UTF-8
+Überprüft Paßwörter auf Sicherheitsmerkmale - Länge, Eindeutigkeit,
+Anwesenheit in einer Wörter-Datenbank usw.
+
+%description -l fr.UTF-8
+Vérifie les caractéristiques liées à la sécurité des mots de passe -
+longueur, unicité, s'ils sont dans une base de mots, etc.
+
+%description -l pl.UTF-8
+CrackLib sprawdza hasła pod kątem bezpieczeństwa. Można użyć tej
+biblioteki do powstrzymywania użytkowników przed wybieraniem haseł
+łatwych do odgadnięcia. CrackLib przeprowadza następujące testy:
+
+- próbuje wygenerować słowa z nazwy użytkownika i wpisu gecos, a
+ następnie porównuje je z hasłem
+- szuka prostych wzorców w haśle
+- szuka hasła w słowniku
+
+CrackLib to biblioteka zawierająca funkcję C służącą do sprawdzania
+hasła oraz inne funkcje C. Nie jest to zamiennik programu passwd -
+musi być użyty w połączeniu z istniejącym programem passwd.
+
+%description -l pt_BR.UTF-8
+Inclui os dicionários cracklib para o padrão /usr/dict/words, assim
+como os utilitários necessários para criar dicionários.
+
+%description -l ru.UTF-8
+CrackLib проверяет пароли на предмет соответствия некоторым критериям
+безопасности. Она может быть использована для предотвращения выбора
+пользователями легкоугадываемых паролей. CrackLib производит такие
+тесты:
+
+- Генерирует слова из имени пользователя и поля gecos и сравнивает их
+ с паролем;
+- Ищет в паролях простые шаблоны;
+- Проверяет пароль на наличие его в словаре.
+
+CrackLib - это, собственно, библиотека, содержащая специфическую
+функцию C для угадывания паролей и некоторые другие функции. Это не
+замена программы passwd, ее надо использовать совместно с существующей
+программой passwd.
+
+%description -l tr.UTF-8
+Parolaların uzunlukları, sistemde tek olmaları, sözcük veri tabanında
+bulunmamaları gibi güvenlikle ilgili özelliklerini kontrol eder.
+
+%description -l uk.UTF-8
+CrackLib перевіряє паролі на відповідність деяким критеріям безпеки.
+Вона може бути використана для запобігання вибору користувачами
+паролів, які легко відгадати. Вона виконує такі тести:
+
+- Генерує слова з імені користувача та поля gecos і порівнює їх з
+ паролем;
+- Шукає в паролях прості шаблони;
+- Перевіряє паролі на наявність їх у словнику.
+
+CrackLib - це, власне, бібліотека, що містить специфічну функцію C для
+відгадування паролів та деякі інші функції. Це не заміна програми
+passwd, її треба використовувати спільно з існуючою програмою passwd.
%package devel
Summary: Header files and documentation for cracklib
-Summary(pl): Pliki nag³ówkowe i dokumentacja dla cracklib
+Summary(es.UTF-8): Archivos de inclusión y bibliotecas para cracklib
+Summary(pl.UTF-8): Pliki nagłówkowe i dokumentacja dla cracklib
+Summary(pt_BR.UTF-8): Arquivos de inclusão e bibliotecas para a cracklib
Group: Development/Libraries
-Group(pl): Programowanie/Biblioteki
-Requires: %{name} = %{version}
+Requires: %{name} = %{version}-%{release}
%description devel
Header files and documentation for cracklib.
-%description -l pl
-Pliki nag³ówkowe i dokumentacja dla cracklib.
+%description devel -l es.UTF-8
+Este paquete contiene los archivos de inclusión y bibliotecas que se
+necesitan para desarrollar programas que usan cracklib.
-%package dicts
-Summary: Standard dictionaries (/usr/dict/words)
-Summary(de): Standard-Wörterbücher (/usr/dict/words)
-Summary(fr): Dictionnaires standards (/usr/dict/words)
-Summary(tr): Standart sözlükler
-Summary(pl): Standardowe s³owniki (/usr/dict/words)
-Group: Utilities/System
-Group(pl): Narzêdzia/System
+%description devel -l pl.UTF-8
+Pliki nagłówkowe i dokumentacja dla cracklib.
-%description dicts
-Includes the cracklib dictionaries for the standard /usr/dict/words, as
-well as utilities needed to create new dictionaries.
+%description devel -l pt_BR.UTF-8
+Este pacote contém os arquivos de inclusão e bibliotecas que são
+necessários para desenvolver programas que usam a cracklib.
-%description -l de dicts
-Enthält die Cracklib-Wörterbücher für die Standard-/usr/dict/Wörter sowie
-Utilities zum Erstellen neuer Wörterbücher"
+%package static
+Summary: Static cracklib library
+Summary(pl.UTF-8): Statyczna biblioteka cracklib
+Group: Development/Libraries
+Requires: %{name}-devel = %{version}-%{release}
-%description -l fr dicts
-Contient les dictionnaires cracklib pour le /usr/dict/words standard, ainsi
-que les utilitaires nécessaires à la création de nouveaux dictionnaires.
+%description static
+Static cracklib library.
-%description -l tr dicts
-/usr/dict/words dosyasý için 'cracklib' kitaplýklarýný ve yeni sözlükler
-yaratýlmasý için gerekli yardýmcý programlarý içerir.
+%description static -l pl.UTF-8
+Statyczna biblioteka cracklib.
-%description -l pl
-Pakiet zawiera s³owniki cracklib'a dla standardowego /usr/dict/words oraz
-narzêdzia do tworzenia nowych s³owników.
+%package dicts
+Summary: Standard dictionaries (/usr/share/dict/words)
+Summary(de.UTF-8): Standard-Wörterbücher (/usr/share/dict/words)
+Summary(es.UTF-8): Diccionarios para chequeo de contraseñas
+Summary(fr.UTF-8): Dictionnaires standards (/usr/share/dict/words)
+Summary(pl.UTF-8): Standardowe słowniki (/usr/share/dict/words)
+Summary(pt_BR.UTF-8): Dicionários para checagem de senhas
+Summary(ru.UTF-8): Стандартные словари CrackLib
+Summary(tr.UTF-8): Standart sözlükler (/usr/share/dict/words)
+Summary(uk.UTF-8): Стандартні словники CrackLib
+Group: Applications/System
+
+%description dicts
+The cracklib-dicts package includes the CrackLib dictionaries.
+CrackLib will need to use the dictionary appropriate to your system,
+which is normally put in /usr/share/dict/words. Cracklib-dicts also
+contains the utilities necessary for the creation of new dictionaries.
+
+%description dicts -l de.UTF-8
+Enthält die Cracklib-Wörterbücher für die
+Standard-/usr/share/dict/Wörter sowie Utilities zum Erstellen neuer
+Wörterbücher"
+
+%description dicts -l es.UTF-8
+Incluye el diccionario cracklib para el padrón /usr/share/dict/words,
+y utilitarios necesarios a creación de nuevos diccionarios.
+
+%description dicts -l fr.UTF-8
+Contient les dictionnaires cracklib pour le /usr/share/dict/words
+standard, ainsi que les utilitaires nécessaires à la création de
+nouveaux dictionnaires.
+
+%description dicts -l pl.UTF-8
+Pakiet zawiera słowniki crackliba dla standardowego
+/usr/share/dict/words oraz narzędzia do tworzenia nowych słowników.
+
+%description dicts -l pt_BR.UTF-8
+Inclui o dicionário cracklib para o padrão /usr/dict/words, bem como
+utilitários necessários a criação de novos dicionários.
+
+%description dicts -l ru.UTF-8
+Пакет cracklib-dicts включает словари CrackLib. CrackLib будут нужны
+словари, соответствующие вашей системе, которые обычно находятся в
+/usr/share/dict/words. Cracklib-dicts также содержит утилиты,
+необходимые для создания новых словарей.
+
+%description dicts -l tr.UTF-8
+/usr/share/dict/words dosyası için 'cracklib' kitaplıklarını ve yeni
+sözlükler yaratılması için gerekli yardımcı programları içerir.
+
+%description dicts -l uk.UTF-8
+Пакет cracklib-dicts містить словники CrackLib. CrackLib будуть
+потрібні словники, що відповідають вашій системі, котрі зазвичай
+знаходяться в /usr/share/dict/words. Cracklib-dicts також містить
+утиліти, необхідні для створення нових словників.
+
+%package -n python-cracklib
+Summary: Python binding for cracklib
+Summary(pl.UTF-8): Wiązanie Pythona do crackliba
+Group: Libraries/Python
+Requires: %{name} = %{version}-%{release}
+%pyrequires_eq python-libs
+
+%description -n python-cracklib
+Python binding for cracklib.
+
+%description -n python-cracklib -l pl.UTF-8
+Wiązanie Pythona do crackliba.
%prep
-%setup -q -n %{name},%{version}
-%patch -p1
+%setup -q
+%if %{with words}
+install %{SOURCE1} dicts/
+%endif
%build
-make all
+%configure \
+ --with-default-dict=%{_datadir}/dict/cracklib_dict
+%{__make}
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT/usr/{sbin,lib,include}
-make install ROOT=$RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT{%{_sbindir},%{_libdir},%{_includedir},%{_datadir}/dict}
+
+%{__make} install \
+ DESTDIR=$RPM_BUILD_ROOT
+
+chmod 755 util/cracklib-format
+util/cracklib-format dicts/cracklib* | util/cracklib-packer $RPM_BUILD_ROOT%{_datadir}/dict/cracklib_dict
+
+%{__rm} $RPM_BUILD_ROOT%{py_sitedir}/*.{la,a}
+
+# already in file(1) database
+%{__rm} $RPM_BUILD_ROOT%{_datadir}/%{name}/cracklib.magic
-strip $RPM_BUILD_ROOT/usr/lib/lib*.so.*.* $RPM_BUILD_ROOT/usr/sbin/packer
+mv -f $RPM_BUILD_ROOT%{_localedir}/{sl_SI,sl}
-gzip -9nf README MANIFEST LICENCE POSTER HISTORY
+%find_lang %{name}
%clean
rm -rf $RPM_BUILD_ROOT
-%post -p /sbin/ldconfig
+%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
-%files
+%files -f %{name}.lang
%defattr(644,root,root,755)
-%doc {README,MANIFEST,LICENCE,POSTER}.gz
-%attr(755,root,root) /usr/lib/lib*so.*.*
+%doc ChangeLog NEWS README
+%attr(755,root,root) %{_libdir}/libcrack.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libcrack.so.2
+%{_datadir}/%{name}
%files devel
%defattr(644,root,root,755)
-%doc HISTORY.gz
-%attr(755,root,root) /usr/lib/lib*so
-/usr/include/*
+%attr(755,root,root) %{_libdir}/libcrack.so
+%{_libdir}/libcrack.la
+%{_includedir}/crack.h
+%{_includedir}/packer.h
+
+%files static
+%defattr(644,root,root,755)
+%{_libdir}/libcrack.a
%files dicts
%defattr(644,root,root,755)
-%attr(755,root,root) /usr/sbin/*
-/usr/lib/cracklib_dict*
-
-%changelog
-* Wed Apr 28 1999 Artur Frysiak <wiget@pld.org.pl>
- [2.7-7]
-- build with new rpm
-- striped executable
-
-* Tue Jan 26 1999 Micha³ Kuratczyk <kurkens@polbox.com>
-- added pl translations
-- cosmetics changes
-
-* Sat Aug 15 1998 Tomasz K³oczko <kloczek@rudy.mif.pg.gda.pl>
- [2.7-3]
-- added -q %setup parameter,
-- changed Buildroot to /tmp/%%{name}-%%{version}-root,
-- added using %%{name} and %%{version} in Source and %setup,
-- added stripping shared libraries,
-- added devel subpackage,
-- added %attr and %defattr macros in %files (allows build package from
- non-root account).
-
-* Sat May 09 1998 Prospector System <bugs@redhat.com>
-- translations modified for de, fr, tr
-
-* Tue Mar 10 1998 Cristian Gafton <gafton@redhat.com>
-- updated to 2.7
-- build shared libraries
-
-* Mon Nov 03 1997 Donnie Barnes <djb@redhat.com>
-- added -fPIC
-
-* Mon Oct 13 1997 Donnie Barnes <djb@redhat.com>
-- basic spec file cleanups
-
-* Mon Jun 02 1997 Erik Troan <ewt@redhat.com>
-- built against glibc
+%attr(755,root,root) %{_sbindir}/cracklib-*
+%attr(755,root,root) %{_sbindir}/create-cracklib-dict
+%{_datadir}/dict/cracklib_dict.*
+
+%files -n python-cracklib
+%defattr(644,root,root,755)
+%attr(755,root,root) %{py_sitedir}/_cracklibmodule.so
+%{py_sitescriptdir}/%{name}.*