From 2edb3e61e337926a92d56ffe84bd8cdb0f625586 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 10 Feb 2017 07:57:53 +0000 Subject: [PATCH 01/47] - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild --- cracklib.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cracklib.spec b/cracklib.spec index 6fbadac..1a3d9f7 100644 --- a/cracklib.spec +++ b/cracklib.spec @@ -5,7 +5,7 @@ Summary: A password-checking library Name: cracklib Version: 2.9.6 -Release: 4%{?dist} +Release: 5%{?dist} Group: System Environment/Libraries Source0: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-%{version}.tar.gz Source1: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-words-%{version}.gz @@ -221,6 +221,9 @@ EOF %{_libdir}/python*/site-packages/*.py* %changelog +* Fri Feb 10 2017 Fedora Release Engineering - 2.9.6-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + * Thu Dec 8 2016 Fedora Release Engineering - 2.9.6-4 - fix CVE-2016-6318 - avoid overflows in GECOS handling and mangling password (#1364944) From f1a74a691bfacf1bae96737283fa1781b45523bc Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 26 Jul 2017 05:36:59 +0000 Subject: [PATCH 02/47] - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild --- cracklib.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cracklib.spec b/cracklib.spec index 1a3d9f7..2ed2e83 100644 --- a/cracklib.spec +++ b/cracklib.spec @@ -5,7 +5,7 @@ Summary: A password-checking library Name: cracklib Version: 2.9.6 -Release: 5%{?dist} +Release: 6%{?dist} Group: System Environment/Libraries Source0: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-%{version}.tar.gz Source1: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-words-%{version}.gz @@ -221,6 +221,9 @@ EOF %{_libdir}/python*/site-packages/*.py* %changelog +* Wed Jul 26 2017 Fedora Release Engineering - 2.9.6-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + * Fri Feb 10 2017 Fedora Release Engineering - 2.9.6-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild From 0b46647a95de12e990c22c41bc51a42d0349242b Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 2 Aug 2017 19:15:12 +0000 Subject: [PATCH 03/47] - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild --- cracklib.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cracklib.spec b/cracklib.spec index 2ed2e83..7b4adb5 100644 --- a/cracklib.spec +++ b/cracklib.spec @@ -5,7 +5,7 @@ Summary: A password-checking library Name: cracklib Version: 2.9.6 -Release: 6%{?dist} +Release: 7%{?dist} Group: System Environment/Libraries Source0: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-%{version}.tar.gz Source1: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-words-%{version}.gz @@ -221,6 +221,9 @@ EOF %{_libdir}/python*/site-packages/*.py* %changelog +* Wed Aug 02 2017 Fedora Release Engineering - 2.9.6-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + * Wed Jul 26 2017 Fedora Release Engineering - 2.9.6-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild From 31ac5ac711432d1f936f403c3bd1dc1a4416a497 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Sat, 19 Aug 2017 09:38:10 -0400 Subject: [PATCH 04/47] Python 2 binary package renamed to python2-cracklib --- cracklib.spec | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/cracklib.spec b/cracklib.spec index 7b4adb5..f550c4a 100644 --- a/cracklib.spec +++ b/cracklib.spec @@ -5,7 +5,7 @@ Summary: A password-checking library Name: cracklib Version: 2.9.6 -Release: 7%{?dist} +Release: 8%{?dist} Group: System Environment/Libraries Source0: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-%{version}.tar.gz Source1: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-words-%{version}.gz @@ -63,12 +63,16 @@ Requires: %{name} = %{version}-%{release} The cracklib-devel package contains the header files and libraries needed for compiling applications which use cracklib. -%package python +%package -n python2-cracklib +%{?python_provide:%python_provide python2-cracklib} +# Remove before F30 +Provides: %{name}-python%{?_isa} = %{version}-%{release} +Obsoletes: %{name}-python < %{version}-%{release} Summary: Python bindings for applications which use cracklib Group: Development/Libraries Requires: %{name} = %{version}-%{release} -%description python +%description -n python2-cracklib The cracklib-python package contains a module which permits applications written in the Python programming language to use cracklib. @@ -215,12 +219,16 @@ EOF %{_sbindir}/mkdict %{_sbindir}/packer -%files python +%files -n python2-cracklib %defattr(-,root,root) %{_libdir}/python*/site-packages/_cracklib*.so %{_libdir}/python*/site-packages/*.py* %changelog +* Sat Aug 19 2017 Zbigniew Jędrzejewski-Szmek - 2.9.6-8 +- Python 2 binary package renamed to python2-cracklib + See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3 + * Wed Aug 02 2017 Fedora Release Engineering - 2.9.6-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild From bd8f1f551064565f58887a416050c6bf26acda01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Sun, 20 Aug 2017 09:23:26 -0400 Subject: [PATCH 05/47] Add Provides for the old name without %_isa --- cracklib.spec | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/cracklib.spec b/cracklib.spec index f550c4a..2dff3f7 100644 --- a/cracklib.spec +++ b/cracklib.spec @@ -5,7 +5,7 @@ Summary: A password-checking library Name: cracklib Version: 2.9.6 -Release: 8%{?dist} +Release: 9%{?dist} Group: System Environment/Libraries Source0: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-%{version}.tar.gz Source1: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-words-%{version}.gz @@ -64,13 +64,14 @@ The cracklib-devel package contains the header files and libraries needed for compiling applications which use cracklib. %package -n python2-cracklib -%{?python_provide:%python_provide python2-cracklib} -# Remove before F30 -Provides: %{name}-python%{?_isa} = %{version}-%{release} -Obsoletes: %{name}-python < %{version}-%{release} Summary: Python bindings for applications which use cracklib Group: Development/Libraries Requires: %{name} = %{version}-%{release} +%{?python_provide:%python_provide python2-cracklib} +# Remove before F30 +Provides: %{name}-python = %{version}-%{release} +Provides: %{name}-python%{?_isa} = %{version}-%{release} +Obsoletes: %{name}-python < %{version}-%{release} %description -n python2-cracklib The cracklib-python package contains a module which permits applications @@ -225,6 +226,9 @@ EOF %{_libdir}/python*/site-packages/*.py* %changelog +* Sun Aug 20 2017 Zbigniew Jędrzejewski-Szmek - 2.9.6-9 +- Add Provides for the old name without %%_isa + * Sat Aug 19 2017 Zbigniew Jędrzejewski-Szmek - 2.9.6-8 - Python 2 binary package renamed to python2-cracklib See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3 From 96682a090d867c2cc83364ef15a657d7afa98b44 Mon Sep 17 00:00:00 2001 From: Andrei Stepanov Date: Tue, 17 Oct 2017 15:01:06 +0000 Subject: [PATCH 06/47] Add CI tests using the standard test interface Adds tests according to the CI wiki [0] specifically the standard test interface in the spec [1]. [0]: https://fedoraproject.org/wiki/CI [1]: https://fedoraproject.org/wiki/Changes/InvokingTests --- tests/ABI-compatibility/Makefile | 64 +++++++++++++++ tests/ABI-compatibility/PURPOSE | 3 + tests/ABI-compatibility/runtest.sh | 81 +++++++++++++++++++ tests/Localization/Makefile | 63 +++++++++++++++ tests/Localization/PURPOSE | 3 + tests/Localization/runtest.sh | 125 +++++++++++++++++++++++++++++ tests/inventory | 3 + tests/tests.yml | 25 ++++++ 8 files changed, 367 insertions(+) create mode 100644 tests/ABI-compatibility/Makefile create mode 100644 tests/ABI-compatibility/PURPOSE create mode 100755 tests/ABI-compatibility/runtest.sh create mode 100644 tests/Localization/Makefile create mode 100644 tests/Localization/PURPOSE create mode 100755 tests/Localization/runtest.sh create mode 100755 tests/inventory create mode 100644 tests/tests.yml diff --git a/tests/ABI-compatibility/Makefile b/tests/ABI-compatibility/Makefile new file mode 100644 index 0000000..964c3e5 --- /dev/null +++ b/tests/ABI-compatibility/Makefile @@ -0,0 +1,64 @@ +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Makefile of /CoreOS/cracklib/Sanity/ABI-compatibility +# Description: Test if the ABI hasn't changed +# Author: Hubert Kario +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2013 Red Hat, Inc. All rights reserved. +# +# This copyrighted material is made available to anyone wishing +# to use, modify, copy, or redistribute it subject to the terms +# and conditions of the GNU General Public License version 2. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public +# License along with this program; if not, write to the Free +# Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +# Boston, MA 02110-1301, USA. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +export TEST=/CoreOS/cracklib/Sanity/ABI-compatibility +export TESTVERSION=1.0 + +BUILT_FILES= + +FILES=$(METADATA) runtest.sh Makefile PURPOSE + +.PHONY: all install download clean + +run: $(FILES) build + ./runtest.sh + +build: $(BUILT_FILES) + test -x runtest.sh || chmod a+x runtest.sh + +clean: + rm -f *~ $(BUILT_FILES) + + +include /usr/share/rhts/lib/rhts-make.include + +$(METADATA): Makefile + @echo "Owner: Hubert Kario " > $(METADATA) + @echo "Name: $(TEST)" >> $(METADATA) + @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) + @echo "Path: $(TEST_DIR)" >> $(METADATA) + @echo "Description: Test if the ABI hasn't changed" >> $(METADATA) + @echo "Type: Sanity" >> $(METADATA) + @echo "TestTime: 5m" >> $(METADATA) + @echo "RunFor: cracklib" >> $(METADATA) + @echo "Requires: cracklib cracklib-devel gcc words ltrace" >> $(METADATA) + @echo "Priority: Normal" >> $(METADATA) + @echo "License: GPLv2" >> $(METADATA) + @echo "Confidential: no" >> $(METADATA) + @echo "Destructive: no" >> $(METADATA) + @echo "Releases: -RHEL3 -RHEL4" >> $(METADATA) + + rhts-lint $(METADATA) diff --git a/tests/ABI-compatibility/PURPOSE b/tests/ABI-compatibility/PURPOSE new file mode 100644 index 0000000..f256265 --- /dev/null +++ b/tests/ABI-compatibility/PURPOSE @@ -0,0 +1,3 @@ +PURPOSE of /CoreOS/cracklib/Sanity/ABI-compatibility +Description: Test if the ABI hasn't changed +Author: Hubert Kario diff --git a/tests/ABI-compatibility/runtest.sh b/tests/ABI-compatibility/runtest.sh new file mode 100755 index 0000000..58f6400 --- /dev/null +++ b/tests/ABI-compatibility/runtest.sh @@ -0,0 +1,81 @@ +#!/bin/bash +# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /CoreOS/cracklib/Sanity/ABI-compatibility +# Description: Test if the ABI hasn't changed +# Author: Hubert Kario +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2013 Red Hat, Inc. All rights reserved. +# +# This copyrighted material is made available to anyone wishing +# to use, modify, copy, or redistribute it subject to the terms +# and conditions of the GNU General Public License version 2. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public +# License along with this program; if not, write to the Free +# Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +# Boston, MA 02110-1301, USA. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include Beaker environment +. /usr/bin/rhts-environment.sh || exit 1 +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +PACKAGE="cracklib" + +if rlIsRHEL 5; then +PACKAGES="cracklib gcc words ltrace" +else +PACKAGES="cracklib cracklib-devel gcc words ltrace" +fi + +rlJournalStart + rlPhaseStartSetup + for PKG in $PACKAGES; do + rlAssertRpm $PKG + done + rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory" + rlRun "if [ ! -e /usr/share/cracklib/pw_dict.pwi ]; then create-cracklib-dict /usr/share/dict/words; fi" 0 "Create a cracklib dictionary if not already present" + rlRun "pushd $TmpDir" + rlRun "cat > test.c <<_EOF_ +#include +#include + +int main(int argc, char **argv) +{ + char const *dict = \"/usr/share/cracklib/pw_dict\"; + char const *msg = NULL; + msg = FascistCheck(\"AAAAAAAA\", dict); + if (msg == 0) + return 1; + else + { + printf(\"%s\\n\", msg); + return 0; + } +} +_EOF_" 0 "Create test application" + rlPhaseEnd + + rlPhaseStartTest + rlRun "gcc -O0 test.c -lcrack -Wall -o test" 0 "Compile the program" + rlRun "./test" 0 "Run the program" + rlRun "ltrace -o ltrace.out ./test" 0 "Run the program with ltrace" + rlRun "grep FascistCheck ltrace.out" 0 "Check if it actually uses the library function" + rlPhaseEnd + + rlPhaseStartCleanup + rlRun "popd" + rlRun "rm -r $TmpDir" 0 "Removing tmp directory" + rlPhaseEnd +rlJournalPrintText +rlJournalEnd diff --git a/tests/Localization/Makefile b/tests/Localization/Makefile new file mode 100644 index 0000000..37c4135 --- /dev/null +++ b/tests/Localization/Makefile @@ -0,0 +1,63 @@ +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Makefile of /CoreOS/cracklib/Sanity/Localization +# Description: Check if package localization is correct +# Author: Hubert Kario +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2014 Red Hat, Inc. +# +# This copyrighted material is made available to anyone wishing +# to use, modify, copy, or redistribute it subject to the terms +# and conditions of the GNU General Public License version 2. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public +# License along with this program; if not, write to the Free +# Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +# Boston, MA 02110-1301, USA. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +export TEST=/CoreOS/cracklib/Sanity/Localization +export TESTVERSION=1.0 + +BUILT_FILES= + +FILES=$(METADATA) runtest.sh Makefile PURPOSE + +.PHONY: all install download clean + +run: $(FILES) build + ./runtest.sh + +build: $(BUILT_FILES) + test -x runtest.sh || chmod a+x runtest.sh + +clean: + rm -f *~ $(BUILT_FILES) + + +include /usr/share/rhts/lib/rhts-make.include + +$(METADATA): Makefile + @echo "Owner: Hubert Kario " > $(METADATA) + @echo "Name: $(TEST)" >> $(METADATA) + @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) + @echo "Path: $(TEST_DIR)" >> $(METADATA) + @echo "Description: Check if package localization is correct" >> $(METADATA) + @echo "Type: Sanity" >> $(METADATA) + @echo "TestTime: 5m" >> $(METADATA) + @echo "RunFor: cracklib" >> $(METADATA) + @echo "Requires: cracklib" >> $(METADATA) + @echo "Priority: Normal" >> $(METADATA) + @echo "License: GPLv2" >> $(METADATA) + @echo "Confidential: no" >> $(METADATA) + @echo "Destructive: no" >> $(METADATA) + + rhts-lint $(METADATA) diff --git a/tests/Localization/PURPOSE b/tests/Localization/PURPOSE new file mode 100644 index 0000000..83d8e81 --- /dev/null +++ b/tests/Localization/PURPOSE @@ -0,0 +1,3 @@ +PURPOSE of /CoreOS/cracklib/Sanity/Localization +Description: Check if package localization is correct +Author: Hubert Kario diff --git a/tests/Localization/runtest.sh b/tests/Localization/runtest.sh new file mode 100755 index 0000000..6afb4ab --- /dev/null +++ b/tests/Localization/runtest.sh @@ -0,0 +1,125 @@ +#!/bin/bash +# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /CoreOS/cracklib/Sanity/Localization +# Description: Check if package localization is correct +# Author: Hubert Kario +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2014 Red Hat, Inc. +# +# This copyrighted material is made available to anyone wishing +# to use, modify, copy, or redistribute it subject to the terms +# and conditions of the GNU General Public License version 2. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public +# License along with this program; if not, write to the Free +# Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +# Boston, MA 02110-1301, USA. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include Beaker environment +. /usr/bin/rhts-environment.sh || exit 1 +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +PACKAGE="cracklib" + +rlJournalStart + rlPhaseStartSetup + rlAssertRpm $PACKAGE + rlAssertRpm grep + rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory" + rlRun "pushd $TmpDir" + rlPhaseEnd + + + rlPhaseStartTest "Sanity" + rlRun "echo 'aVk(|vDTRz$xVE-W6(Z2' | LANG=C cracklib-check | grep ': OK'" 0 "Check if cracklib-check accepts complex passwords" + rlRun "echo AAAAAAAAAAAA | LANG=C cracklib-check | grep ': OK'" 1 "Verify that cracklib-check rejects simple passwords" + rlRun "echo AAAAAAAAAAAA | LANG=C cracklib-check | grep 'DIFFERENT'" 0 "Verify that rejection message contains string 'DIFFERENT'" + rlPhaseEnd + +NAME[0]="Assamese" +CODE[0]="as_IN.utf8" + +NAME[1]="Bengali" +CODE[1]="bn_IN.utf8" + +NAME[2]="German" +CODE[2]="de_DE.utf8" + +NAME[3]="Spanish" +CODE[3]="es_ES.utf8" + +NAME[4]="French" +CODE[4]="fr_FR.utf8" + +NAME[5]="Gujarati" +CODE[5]="gu_IN.utf8" + +NAME[6]="Hindi" +CODE[6]="hi_IN.utf8" + +NAME[7]="Italian" +CODE[7]="it_IT.utf8" + +NAME[8]="Japanese" +CODE[8]="ja_JP.utf8" + +NAME[9]="Kannada" +CODE[9]="kn_IN.utf8" + +NAME[10]="Korean" +CODE[10]="ko_KR.utf8" + +NAME[11]="Malayalam" +CODE[11]="ml_IN.utf8" + +NAME[12]="Marathi" +CODE[12]="mr_IN.utf8" + +NAME[13]="Oriya" +CODE[13]="or_IN.utf8" + +NAME[14]="Punjabi" +CODE[14]="pa_IN.utf8" + +NAME[15]="Brazil Portugese" +CODE[15]="pt_BR.utf8" + +NAME[16]="Russian" +CODE[16]="ru_RU.utf8" + +NAME[17]="Tamil" +CODE[17]="ta_IN.utf8" + +NAME[18]="Telugu" +CODE[18]="te_IN.utf8" + +NAME[19]="Chinese" +CODE[19]="zh_CN.utf8" + +NAME[20]="Taiwanese Chinese" +CODE[20]="zh_TW.utf8" + +for i in ${!NAME[@]}; do + rlPhaseStartTest "${NAME[$i]}" + rlRun "echo AAAAAAAAAAAA | LANG=${CODE[$i]} cracklib-check | grep -Ev DIFFERENT\>" 0 "Check if fallback message isn't used" + rlRun "echo AAAAAAAAAAAA | LANG=${CODE[$i]} cracklib-check | grep '???????'" 1 "Check if message isn't clobbered" + rlPhaseEnd +done + + rlPhaseStartCleanup + rlRun "popd" + rlRun "rm -r $TmpDir" 0 "Removing tmp directory" + rlPhaseEnd +rlJournalPrintText +rlJournalEnd diff --git a/tests/inventory b/tests/inventory new file mode 100755 index 0000000..6238138 --- /dev/null +++ b/tests/inventory @@ -0,0 +1,3 @@ +#!/bin/bash +export TEST_DOCKER_EXTRA_ARGS="--security-opt seccomp:unconfined" +exec merge-standard-inventory "$@" diff --git a/tests/tests.yml b/tests/tests.yml new file mode 100644 index 0000000..ac40fef --- /dev/null +++ b/tests/tests.yml @@ -0,0 +1,25 @@ +--- +# Tests for Docker and Classic Context +- hosts: localhost + roles: + - role: standard-test-beakerlib + tags: + - classic + - container + tests: + - ABI-compatibility + - Localization + required_packages: + - words # required for ABI-compatibility + - cracklib-devel # required for ABI-compatibility + - ltrace # required for ABI-compatibility + - gcc # required for ABI-compatibility + +# Tests for Atomic +- hosts: localhost + roles: + - role: standard-test-beakerlib + tags: + - atomic + tests: + - Localization From 73c5a992200b5e2b7a327d203cfb2f03ec74fa18 Mon Sep 17 00:00:00 2001 From: Iryna Shcherbina Date: Wed, 3 Jan 2018 11:16:12 +0100 Subject: [PATCH 07/47] Update Python 2 dependency declarations to new packaging standards --- cracklib.spec | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/cracklib.spec b/cracklib.spec index 2dff3f7..8eb93e6 100644 --- a/cracklib.spec +++ b/cracklib.spec @@ -5,7 +5,7 @@ Summary: A password-checking library Name: cracklib Version: 2.9.6 -Release: 9%{?dist} +Release: 10%{?dist} Group: System Environment/Libraries Source0: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-%{version}.tar.gz Source1: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-words-%{version}.gz @@ -29,7 +29,7 @@ Patch8: cracklib-2.9.6-cve-2016-6318.patch URL: http://sourceforge.net/projects/cracklib/ License: LGPLv2+ Buildroot: %{_tmppath}/%{name}-%{version}-root -BuildRequires: python-devel, words, gettext +BuildRequires: python2-devel, words, gettext BuildRequires: gettext-autopoint BuildRequires: zlib-devel Conflicts: cracklib-dicts < 2.8 @@ -226,6 +226,10 @@ EOF %{_libdir}/python*/site-packages/*.py* %changelog +* Wed Jan 03 2018 Iryna Shcherbina - 2.9.6-10 +- Update Python 2 dependency declarations to new packaging standards + (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) + * Sun Aug 20 2017 Zbigniew Jędrzejewski-Szmek - 2.9.6-9 - Add Provides for the old name without %%_isa From f69740c948e5ddfb329f27340e2883119f605762 Mon Sep 17 00:00:00 2001 From: Igor Gnatenko Date: Sat, 3 Feb 2018 18:17:40 +0100 Subject: [PATCH 08/47] Switch to %ldconfig_scriptlets Signed-off-by: Igor Gnatenko --- cracklib.spec | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/cracklib.spec b/cracklib.spec index 8eb93e6..18106e8 100644 --- a/cracklib.spec +++ b/cracklib.spec @@ -5,7 +5,7 @@ Summary: A password-checking library Name: cracklib Version: 2.9.6 -Release: 10%{?dist} +Release: 11%{?dist} Group: System Environment/Libraries Source0: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-%{version}.tar.gz Source1: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-words-%{version}.gz @@ -186,14 +186,7 @@ finally: sys.exit(0) EOF -%clean -[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT - -%post -p /sbin/ldconfig - -%postun -p /sbin/ldconfig - -%triggerpostun -p /sbin/ldconfig -- cracklib < 2.7-24 +%ldconfig_scriptlets %files -f %{name}.lang %defattr(-,root,root) @@ -226,6 +219,9 @@ EOF %{_libdir}/python*/site-packages/*.py* %changelog +* Sat Feb 03 2018 Igor Gnatenko - 2.9.6-11 +- Switch to %%ldconfig_scriptlets + * Wed Jan 03 2018 Iryna Shcherbina - 2.9.6-10 - Update Python 2 dependency declarations to new packaging standards (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) From 09348f50cbad1a0e4b0b17d4b41fed8faf741161 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 7 Feb 2018 05:52:59 +0000 Subject: [PATCH 09/47] - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- cracklib.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cracklib.spec b/cracklib.spec index 18106e8..816ce6c 100644 --- a/cracklib.spec +++ b/cracklib.spec @@ -5,7 +5,7 @@ Summary: A password-checking library Name: cracklib Version: 2.9.6 -Release: 11%{?dist} +Release: 12%{?dist} Group: System Environment/Libraries Source0: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-%{version}.tar.gz Source1: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-words-%{version}.gz @@ -219,6 +219,9 @@ EOF %{_libdir}/python*/site-packages/*.py* %changelog +* Wed Feb 07 2018 Fedora Release Engineering - 2.9.6-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + * Sat Feb 03 2018 Igor Gnatenko - 2.9.6-11 - Switch to %%ldconfig_scriptlets From 68dc49109f05adfc683ad37d6663ecf2ddf4e381 Mon Sep 17 00:00:00 2001 From: Tomas Mraz Date: Wed, 21 Feb 2018 13:14:59 +0100 Subject: [PATCH 10/47] Drop Python 2 support in RHEL --- cracklib.spec | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/cracklib.spec b/cracklib.spec index 816ce6c..779d5fa 100644 --- a/cracklib.spec +++ b/cracklib.spec @@ -1,11 +1,12 @@ # Reflects the values hard-coded in various Makefile.am's in the source tree. %define dictdir %{_datadir}/cracklib %define dictpath %{dictdir}/pw_dict +%define rhel 1 Summary: A password-checking library Name: cracklib Version: 2.9.6 -Release: 12%{?dist} +Release: 13%{?dist} Group: System Environment/Libraries Source0: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-%{version}.tar.gz Source1: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-words-%{version}.gz @@ -29,9 +30,13 @@ Patch8: cracklib-2.9.6-cve-2016-6318.patch URL: http://sourceforge.net/projects/cracklib/ License: LGPLv2+ Buildroot: %{_tmppath}/%{name}-%{version}-root -BuildRequires: python2-devel, words, gettext +BuildRequires: gcc +BuildRequires: words, gettext BuildRequires: gettext-autopoint BuildRequires: zlib-devel +%if 0%{?rhel} == 0 +BuildRequires: python2-devel +%endif Conflicts: cracklib-dicts < 2.8 # The cracklib-format script calls gzip, but without a specific path. Requires: gzip @@ -63,6 +68,7 @@ Requires: %{name} = %{version}-%{release} The cracklib-devel package contains the header files and libraries needed for compiling applications which use cracklib. +%if 0%{?rhel} == 0 %package -n python2-cracklib Summary: Python bindings for applications which use cracklib Group: Development/Libraries @@ -76,6 +82,7 @@ Obsoletes: %{name}-python < %{version}-%{release} %description -n python2-cracklib The cracklib-python package contains a module which permits applications written in the Python programming language to use cracklib. +%endif %package dicts Summary: The standard CrackLib dictionaries @@ -113,7 +120,13 @@ done chmod +x util/cracklib-format %build -%configure --with-pic --with-python --with-default-dict=%{dictpath} --disable-static +%configure --with-pic \ +%if 0%{?rhel} == 0 + --with-python \ +%else + --without-python \ +%endif + --with-default-dict=%{dictpath} --disable-static make -C po update-gmo make @@ -158,6 +171,7 @@ fi %check make test +%if 0%{?rhel} == 0 # We want to check that the new library is able to open the new dictionaries, # using the new python module. LD_LIBRARY_PATH=$RPM_BUILD_ROOT/%{_libdir} %{__python} 2>&1 << EOF @@ -185,6 +199,7 @@ except ValueError, message: finally: sys.exit(0) EOF +%endif %ldconfig_scriptlets @@ -213,12 +228,17 @@ EOF %{_sbindir}/mkdict %{_sbindir}/packer +%if 0%{?rhel} == 0 %files -n python2-cracklib %defattr(-,root,root) %{_libdir}/python*/site-packages/_cracklib*.so %{_libdir}/python*/site-packages/*.py* +%endif %changelog +* Wed Feb 21 2018 Tomáš Mráz - 2.9.6-13 +- Drop Python 2 support in RHEL + * Wed Feb 07 2018 Fedora Release Engineering - 2.9.6-12 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild From 811f0d18291bf76dfe86cb6d6bd139c3a67f7295 Mon Sep 17 00:00:00 2001 From: Tomas Mraz Date: Wed, 21 Feb 2018 13:16:24 +0100 Subject: [PATCH 11/47] Drop debugging leftover --- cracklib.spec | 1 - 1 file changed, 1 deletion(-) diff --git a/cracklib.spec b/cracklib.spec index 779d5fa..caacbd5 100644 --- a/cracklib.spec +++ b/cracklib.spec @@ -1,7 +1,6 @@ # Reflects the values hard-coded in various Makefile.am's in the source tree. %define dictdir %{_datadir}/cracklib %define dictpath %{dictdir}/pw_dict -%define rhel 1 Summary: A password-checking library Name: cracklib From 4dbc86aacaeac1213f6de7e545648560c8bdbbd1 Mon Sep 17 00:00:00 2001 From: Jason Tibbitts Date: Tue, 10 Jul 2018 00:33:52 -0500 Subject: [PATCH 12/47] Remove needless use of %defattr --- cracklib.spec | 4 ---- 1 file changed, 4 deletions(-) diff --git a/cracklib.spec b/cracklib.spec index caacbd5..62ad374 100644 --- a/cracklib.spec +++ b/cracklib.spec @@ -203,7 +203,6 @@ EOF %ldconfig_scriptlets %files -f %{name}.lang -%defattr(-,root,root) %doc README README-WORDS NEWS README-LICENSE AUTHORS %{!?_licensedir:%global license %%doc} %license COPYING.LIB @@ -214,13 +213,11 @@ EOF %{_mandir}/man8/* %files devel -%defattr(-,root,root) %{_includedir}/* %{_libdir}/libcrack.so %{_mandir}/man3/* %files dicts -%defattr(-,root,root) %{_datadir}/cracklib/pw_dict.* %{_datadir}/cracklib/cracklib-small.* %{_libdir}/cracklib_dict.* @@ -229,7 +226,6 @@ EOF %if 0%{?rhel} == 0 %files -n python2-cracklib -%defattr(-,root,root) %{_libdir}/python*/site-packages/_cracklib*.so %{_libdir}/python*/site-packages/*.py* %endif From 4b67c0c867b03f6602cc460db57256d8133a0609 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 12 Jul 2018 22:19:52 +0000 Subject: [PATCH 13/47] - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- cracklib.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cracklib.spec b/cracklib.spec index 62ad374..4d6591d 100644 --- a/cracklib.spec +++ b/cracklib.spec @@ -5,7 +5,7 @@ Summary: A password-checking library Name: cracklib Version: 2.9.6 -Release: 13%{?dist} +Release: 14%{?dist} Group: System Environment/Libraries Source0: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-%{version}.tar.gz Source1: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-words-%{version}.gz @@ -231,6 +231,9 @@ EOF %endif %changelog +* Thu Jul 12 2018 Fedora Release Engineering - 2.9.6-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + * Wed Feb 21 2018 Tomáš Mráz - 2.9.6-13 - Drop Python 2 support in RHEL From 8274cbbc56e478a99f29a231a094529426852b05 Mon Sep 17 00:00:00 2001 From: Tomas Mraz Date: Fri, 13 Jul 2018 13:59:23 +0200 Subject: [PATCH 14/47] The test must use the dictionary from the build --- cracklib.spec | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/cracklib.spec b/cracklib.spec index 4d6591d..7935ceb 100644 --- a/cracklib.spec +++ b/cracklib.spec @@ -5,7 +5,7 @@ Summary: A password-checking library Name: cracklib Version: 2.9.6 -Release: 14%{?dist} +Release: 15%{?dist} Group: System Environment/Libraries Source0: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-%{version}.tar.gz Source1: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-words-%{version}.gz @@ -119,6 +119,8 @@ done chmod +x util/cracklib-format %build +# Use the dictionary from the build to test +sed -i 's,util/cracklib-check <,util/cracklib-check $(DESTDIR)/$(DEFAULT_CRACKLIB_DICT) <,' Makefile.in %configure --with-pic \ %if 0%{?rhel} == 0 --with-python \ @@ -169,7 +171,7 @@ fi %find_lang %{name} %check -make test +make test DESTDIR=$RPM_BUILD_ROOT %if 0%{?rhel} == 0 # We want to check that the new library is able to open the new dictionaries, # using the new python module. @@ -231,6 +233,9 @@ EOF %endif %changelog +* Fri Jul 13 2018 Tomáš Mráz - 2.9.6-15 +- The test must use the dictionary from the build + * Thu Jul 12 2018 Fedora Release Engineering - 2.9.6-14 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild From 673d98d62e3f75f01225be35801228371714eda0 Mon Sep 17 00:00:00 2001 From: Tomas Mraz Date: Fri, 13 Jul 2018 14:24:02 +0200 Subject: [PATCH 15/47] Properly call python2 in check. --- cracklib.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cracklib.spec b/cracklib.spec index 7935ceb..c5f5e6a 100644 --- a/cracklib.spec +++ b/cracklib.spec @@ -175,7 +175,7 @@ make test DESTDIR=$RPM_BUILD_ROOT %if 0%{?rhel} == 0 # We want to check that the new library is able to open the new dictionaries, # using the new python module. -LD_LIBRARY_PATH=$RPM_BUILD_ROOT/%{_libdir} %{__python} 2>&1 << EOF +LD_LIBRARY_PATH=$RPM_BUILD_ROOT/%{_libdir} %{__python2} 2>&1 << EOF import string, sys # Prepend buildroot-specific variations of the python path to the python path. syspath2=[] From e82881853970217e56320b94dff3d40f8bb08f77 Mon Sep 17 00:00:00 2001 From: Tomas Mraz Date: Tue, 9 Oct 2018 12:18:30 +0200 Subject: [PATCH 16/47] Updated translations --- cracklib-2.9.6-translation-updates.patch | 2593 ++++++++++++++-------- cracklib.spec | 5 +- 2 files changed, 1637 insertions(+), 961 deletions(-) diff --git a/cracklib-2.9.6-translation-updates.patch b/cracklib-2.9.6-translation-updates.patch index eb2497a..fff80c0 100644 --- a/cracklib-2.9.6-translation-updates.patch +++ b/cracklib-2.9.6-translation-updates.patch @@ -1,6 +1,6 @@ -diff -up cracklib-2.9.6/po/as.po.translations cracklib-2.9.6/po/as.po ---- cracklib-2.9.6/po/as.po.translations 2015-10-22 18:24:54.374118684 +0200 -+++ cracklib-2.9.6/po/as.po 2014-07-09 17:24:45.000000000 +0200 +diff -urN cracklib-2.9.6.old/po/as.po cracklib-2.9.6.new/po/as.po +--- cracklib-2.9.6.old/po/as.po 2015-08-18 20:48:15.000000000 +0200 ++++ cracklib-2.9.6.new/po/as.po 2018-10-09 11:57:33.759928725 +0200 @@ -1,82 +1,83 @@ # Copyright (C) 2009 Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. @@ -112,9 +112,92 @@ diff -up cracklib-2.9.6/po/as.po.translations cracklib-2.9.6/po/as.po msgid "error loading dictionary" -msgstr "" +msgstr "শব্দকোষ ল'ড কৰোতে ত্ৰুটি" -diff -up cracklib-2.9.6/po/bn_IN.po.translations cracklib-2.9.6/po/bn_IN.po ---- cracklib-2.9.6/po/bn_IN.po.translations 2015-10-22 18:24:54.374118684 +0200 -+++ cracklib-2.9.6/po/bn_IN.po 2014-07-09 17:24:45.000000000 +0200 +diff -urN cracklib-2.9.6.old/po/be.po cracklib-2.9.6.new/po/be.po +--- cracklib-2.9.6.old/po/be.po 1970-01-01 01:00:00.000000000 +0100 ++++ cracklib-2.9.6.new/po/be.po 2018-10-09 11:38:57.597040577 +0200 +@@ -0,0 +1,79 @@ ++# Viktar Siarheichyk , 2018. #zanata ++msgid "" ++msgstr "" ++"Project-Id-Version: cracklib 2.9.6\n" ++"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" ++"POT-Creation-Date: 2015-08-18 13:45-0500\n" ++"PO-Revision-Date: 2018-06-04 07:22+0000\n" ++"Last-Translator: Viktar Siarheichyk \n" ++"Language-Team: Belarusian\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=UTF-8\n" ++"Content-Transfer-Encoding: 8bit\n" ++"Language: be\n" ++"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" ++"X-Generator: Zanata 4.6.2\n" ++ ++#: lib/fascist.c:516 ++msgid "it is based on your username" ++msgstr "заснавана на імені карыстальніка" ++ ++#: lib/fascist.c:576 ++msgid "it is based upon your password entry" ++msgstr "заснавана на ўпісаным пароле" ++ ++#: lib/fascist.c:591 ++msgid "it is derived from your password entry" ++msgstr "паходзіць з вашага запісу пароля" ++ ++#: lib/fascist.c:599 ++msgid "it's derived from your password entry" ++msgstr "паходзіць з вашага запісу пароля" ++ ++#: lib/fascist.c:608 ++msgid "it is derivable from your password entry" ++msgstr "можа паходзіць з вашага запісу пароля" ++ ++#: lib/fascist.c:617 ++msgid "it's derivable from your password entry" ++msgstr "можа паходзіць з вашага запісу пароля" ++ ++#: lib/fascist.c:674 ++msgid "you are not registered in the password file" ++msgstr "няма вашага запісу ў файле пароляў" ++ ++#: lib/fascist.c:709 ++msgid "it is WAY too short" ++msgstr "ён ЗАНАДТА кароткі" ++ ++#: lib/fascist.c:714 ++msgid "it is too short" ++msgstr "ён надта кароткі" ++ ++#: lib/fascist.c:731 ++msgid "it does not contain enough DIFFERENT characters" ++msgstr "у ім недастаткова РОЗНАСТАЙНЫХ знакаў" ++ ++#: lib/fascist.c:745 ++msgid "it is all whitespace" ++msgstr "адны прабелы" ++ ++#: lib/fascist.c:764 ++msgid "it is too simplistic/systematic" ++msgstr "надта просты ці распаўсюджаны" ++ ++#: lib/fascist.c:769 ++msgid "it looks like a National Insurance number." ++msgstr " надобны на нумар сацыяльнага страхавання." ++ ++#: lib/fascist.c:801 ++msgid "it is based on a dictionary word" ++msgstr "базуецца на слоўнікавым слове" ++ ++#: lib/fascist.c:820 ++msgid "it is based on a (reversed) dictionary word" ++msgstr "бвзуецца на (адваротным) слоўнікавым слове" ++ ++#: lib/fascist.c:865 ++msgid "error loading dictionary" ++msgstr "памылка падчас загрузкі слоўніка" +diff -urN cracklib-2.9.6.old/po/bn_IN.po cracklib-2.9.6.new/po/bn_IN.po +--- cracklib-2.9.6.old/po/bn_IN.po 2015-08-18 20:48:15.000000000 +0200 ++++ cracklib-2.9.6.new/po/bn_IN.po 2018-10-09 11:57:33.759928725 +0200 @@ -1,83 +1,84 @@ # translation of cracklib.po to Bengali INDIA # Copyright (C) 2009 Free Software Foundation, Inc. @@ -227,26 +310,210 @@ diff -up cracklib-2.9.6/po/bn_IN.po.translations cracklib-2.9.6/po/bn_IN.po msgid "error loading dictionary" -msgstr "" +msgstr "অভিধান লোড হতে সমস্যা" -diff -up cracklib-2.9.6/po/de.po.translations cracklib-2.9.6/po/de.po ---- cracklib-2.9.6/po/de.po.translations 2015-10-22 18:24:54.375118708 +0200 -+++ cracklib-2.9.6/po/de.po 2014-07-09 17:24:45.000000000 +0200 -@@ -4,82 +4,82 @@ +diff -urN cracklib-2.9.6.old/po/ca.po cracklib-2.9.6.new/po/ca.po +--- cracklib-2.9.6.old/po/ca.po 1970-01-01 01:00:00.000000000 +0100 ++++ cracklib-2.9.6.new/po/ca.po 2018-10-09 11:37:49.699355368 +0200 +@@ -0,0 +1,79 @@ ++# Robert Antoni Buj Gelonch , 2016. #zanata ++msgid "" ++msgstr "" ++"Project-Id-Version: cracklib 2.9.6\n" ++"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" ++"POT-Creation-Date: 2015-08-18 13:45-0500\n" ++"PO-Revision-Date: 2016-10-08 03:48+0000\n" ++"Last-Translator: Robert Antoni Buj Gelonch \n" ++"Language-Team: Catalan\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=UTF-8\n" ++"Content-Transfer-Encoding: 8bit\n" ++"Language: ca\n" ++"Plural-Forms: nplurals=2; plural=(n != 1)\n" ++"X-Generator: Zanata 4.6.2\n" ++ ++#: lib/fascist.c:516 ++msgid "it is based on your username" ++msgstr "es basa en el vostre nom d'usuari" ++ ++#: lib/fascist.c:576 ++msgid "it is based upon your password entry" ++msgstr "es basa en la introducció de la vostra contrasenya" ++ ++#: lib/fascist.c:591 ++msgid "it is derived from your password entry" ++msgstr "es deriva a partir de la introducció de la vostra contrasenya" ++ ++#: lib/fascist.c:599 ++msgid "it's derived from your password entry" ++msgstr "es deriva a partir de la introducció de la vostra contrasenya" ++ ++#: lib/fascist.c:608 ++msgid "it is derivable from your password entry" ++msgstr "es pot derivar a partir de la introducció de la vostra contrasenya" ++ ++#: lib/fascist.c:617 ++msgid "it's derivable from your password entry" ++msgstr "es pot derivar a partir de la introducció de la vostra contrasenya" ++ ++#: lib/fascist.c:674 ++msgid "you are not registered in the password file" ++msgstr "no esteu registrat al fitxer de contrasenyes" ++ ++#: lib/fascist.c:709 ++msgid "it is WAY too short" ++msgstr "és massa curt" ++ ++#: lib/fascist.c:714 ++msgid "it is too short" ++msgstr "és massa curt" ++ ++#: lib/fascist.c:731 ++msgid "it does not contain enough DIFFERENT characters" ++msgstr "no conté prou caràcters DIFERENTS" ++ ++#: lib/fascist.c:745 ++msgid "it is all whitespace" ++msgstr "és tot l'espai en blanc" ++ ++#: lib/fascist.c:764 ++msgid "it is too simplistic/systematic" ++msgstr "és massa simplista/sistemàtica" ++ ++#: lib/fascist.c:769 ++msgid "it looks like a National Insurance number." ++msgstr "sembla un número de la seguretat social." ++ ++#: lib/fascist.c:801 ++msgid "it is based on a dictionary word" ++msgstr "es basa en una paraula del diccionari" ++ ++#: lib/fascist.c:820 ++msgid "it is based on a (reversed) dictionary word" ++msgstr "es basa en una paraula del diccionari (revers)" ++ ++#: lib/fascist.c:865 ++msgid "error loading dictionary" ++msgstr "error en carregar el diccionari" +diff -urN cracklib-2.9.6.old/po/cs.po cracklib-2.9.6.new/po/cs.po +--- cracklib-2.9.6.old/po/cs.po 2015-08-18 20:48:15.000000000 +0200 ++++ cracklib-2.9.6.new/po/cs.po 2018-10-09 11:37:54.554475070 +0200 +@@ -1,19 +1,21 @@ + # translation of cracklib.po to czech + # Klara Cihlarova , 2003. +-# ++# Jan Dittberner , 2016. #zanata ++# Marek Suchánek , 2016. #zanata + msgid "" + msgstr "" +-"Project-Id-Version: cracklib\n" ++"Project-Id-Version: cracklib 2.9.6\n" + "Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" + "POT-Creation-Date: 2015-08-18 13:45-0500\n" +-"PO-Revision-Date: 2005-06-23 13:18+02:00\n" +-"Last-Translator: Klara Cihlarova \n" ++"PO-Revision-Date: 2016-08-31 01:14+0000\n" ++"Last-Translator: Marek Suchánek \n" + "Language-Team: czech \n" +-"Language: \n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=UTF-8\n" + "Content-Transfer-Encoding: 8bit\n" +-"X-Generator: KBabel 1.2\n" ++"Language: cs\n" ++"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2\n" ++"X-Generator: Zanata 4.6.2\n" + + #: lib/fascist.c:516 + msgid "it is based on your username" +@@ -77,4 +79,4 @@ + + #: lib/fascist.c:865 + msgid "error loading dictionary" +-msgstr "" ++msgstr "chyba při načítání slovníku" +diff -urN cracklib-2.9.6.old/po/da.po cracklib-2.9.6.new/po/da.po +--- cracklib-2.9.6.old/po/da.po 2015-08-18 20:48:15.000000000 +0200 ++++ cracklib-2.9.6.new/po/da.po 2018-10-09 11:39:10.434360676 +0200 +@@ -2,20 +2,22 @@ + # Copyright (C) 2005 Free Software Foundation, Inc. + # This file is distributed under the same license as the PACKAGE package. + # Martin Møller , 2005. +-# ++# Jan Dittberner , 2016. #zanata ++# scootergrisen , 2017. #zanata + msgid "" + msgstr "" +-"Project-Id-Version: cracklib\n" ++"Project-Id-Version: cracklib 2.9.6\n" + "Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" + "POT-Creation-Date: 2015-08-18 13:45-0500\n" +-"PO-Revision-Date: 2005-08-16 20:11+0200\n" +-"Last-Translator: Martin Møller \n" ++"PO-Revision-Date: 2017-10-06 02:39+0000\n" ++"Last-Translator: scootergrisen \n" + "Language-Team: Dansk \n" +-"Language: \n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=UTF-8\n" + "Content-Transfer-Encoding: 8bit\n" +-"X-Generator: KBabel 1.10.1\n" ++"Language: da\n" ++"Plural-Forms: nplurals=2; plural=(n != 1)\n" ++"X-Generator: Zanata 4.6.2\n" + + #: lib/fascist.c:516 + msgid "it is based on your username" +@@ -43,7 +45,7 @@ + + #: lib/fascist.c:674 + msgid "you are not registered in the password file" +-msgstr "Du er ikke optegnet i adgangskodefilen" ++msgstr "du er ikke optegnet i adgangskodefilen" + + #: lib/fascist.c:709 + msgid "it is WAY too short" +@@ -59,7 +61,7 @@ + + #: lib/fascist.c:745 + msgid "it is all whitespace" +-msgstr "det er kun mellemrum/blanke tegn" ++msgstr "alt er blanktegn" + + #: lib/fascist.c:764 + msgid "it is too simplistic/systematic" +@@ -67,7 +69,7 @@ + + #: lib/fascist.c:769 + msgid "it looks like a National Insurance number." +-msgstr "det ligner et CPR nummer." ++msgstr "det ligner et \"National Insurance\"-nummer." + + #: lib/fascist.c:801 + msgid "it is based on a dictionary word" +@@ -79,4 +81,4 @@ + + #: lib/fascist.c:865 + msgid "error loading dictionary" +-msgstr "" ++msgstr "fejl ved indlæsning af ordbog" +diff -urN cracklib-2.9.6.old/po/de.po cracklib-2.9.6.new/po/de.po +--- cracklib-2.9.6.old/po/de.po 2015-08-18 20:48:15.000000000 +0200 ++++ cracklib-2.9.6.new/po/de.po 2018-10-09 11:38:15.372988343 +0200 +@@ -4,21 +4,21 @@ # Antje Faber , 2000-2003. # Karl Eichwalder , 1999-2003. # Martin Lohner , 2000. -# -+# rgromans , 2013. #zanata ++# Jan Dittberner , 2016. #zanata msgid "" msgstr "" - "Project-Id-Version: new\n" --"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" --"POT-Creation-Date: 2015-08-18 13:45-0500\n" +-"Project-Id-Version: new\n" ++"Project-Id-Version: cracklib 2.9.6\n" + "Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" + "POT-Creation-Date: 2015-08-18 13:45-0500\n" -"PO-Revision-Date: 2003-11-27 18:31GMT\n" -"Last-Translator: Novell Language \n" -+"Report-Msgid-Bugs-To: \n" -+"POT-Creation-Date: 2012-12-14 16:11-0600\n" -+"PO-Revision-Date: 2013-10-17 11:45-0400\n" -+"Last-Translator: rgromans \n" ++"PO-Revision-Date: 2018-08-16 12:44+0000\n" ++"Last-Translator: Copied by Zanata \n" "Language-Team: Novell Language \n" -"Language: \n" "MIME-Version: 1.0\n" @@ -256,113 +523,70 @@ diff -up cracklib-2.9.6/po/de.po.translations cracklib-2.9.6/po/de.po +"Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: KBabel 1.0.2\n" -+"X-Generator: Zanata 3.1.2\n" ++"X-Generator: Zanata 4.6.2\n" --#: lib/fascist.c:516 -+#: ../lib/fascist.c:550 -+msgid "you are not registered in the password file" -+msgstr "Sie sind nicht in der passwd-Datei eingetragen." -+ -+#: ../lib/fascist.c:564 + #: lib/fascist.c:516 msgid "it is based on your username" - msgstr "Es basiert auf Ihrem Benutzernamen" +@@ -82,4 +82,4 @@ --#: lib/fascist.c:576 -+#: ../lib/fascist.c:629 - msgid "it is based upon your password entry" - msgstr "Es basiert auf Ihrem Passwort-Eintrag" - --#: lib/fascist.c:591 -+#: ../lib/fascist.c:649 - msgid "it is derived from your password entry" - msgstr "Es wird von Ihrem Passwort-Eintrag abgeleitet" - --#: lib/fascist.c:599 -+#: ../lib/fascist.c:662 - msgid "it's derived from your password entry" - msgstr "Es wird von Ihrem Passwort-Eintrag abgeleitet" - --#: lib/fascist.c:608 -+#: ../lib/fascist.c:676 - msgid "it is derivable from your password entry" - msgstr "Es kann von Ihrem Passwort-Eintrag abgeleitet werden." - --#: lib/fascist.c:617 -+#: ../lib/fascist.c:690 - msgid "it's derivable from your password entry" - msgstr "Es kann von Ihrem Passwort-Eintrag abgeleitet werden." - --#: lib/fascist.c:674 --msgid "you are not registered in the password file" --msgstr "Sie sind nicht in der passwd-Datei eingetragen." -- --#: lib/fascist.c:709 -+#: ../lib/fascist.c:726 - msgid "it is WAY too short" - msgstr "Es ist VIEL zu kurz" - --#: lib/fascist.c:714 -+#: ../lib/fascist.c:731 - msgid "it is too short" - msgstr "Es ist zu kurz" - --#: lib/fascist.c:731 -+#: ../lib/fascist.c:748 - msgid "it does not contain enough DIFFERENT characters" - msgstr "Es enthält nicht genug unterschiedliche Zeichen" - --#: lib/fascist.c:745 -+#: ../lib/fascist.c:762 - msgid "it is all whitespace" - msgstr "Es besteht nur aus Leerzeichen" - --#: lib/fascist.c:764 -+#: ../lib/fascist.c:781 - msgid "it is too simplistic/systematic" - msgstr "Es ist zu einfach/systematisch" - --#: lib/fascist.c:769 -+#: ../lib/fascist.c:786 - msgid "it looks like a National Insurance number." - msgstr "Es schaut nach Versicherungsnummer aus" - --#: lib/fascist.c:801 -+#: ../lib/fascist.c:813 - msgid "it is based on a dictionary word" - msgstr "Es basiert auf einem Wörterbucheintrag" - --#: lib/fascist.c:820 -+#: ../lib/fascist.c:832 - msgid "it is based on a (reversed) dictionary word" - msgstr "Es basiert auf einem (umgekehrten) Wörterbucheintrag" - --#: lib/fascist.c:865 -+#: ../lib/fascist.c:867 + #: lib/fascist.c:865 msgid "error loading dictionary" -msgstr "" -+msgstr "Fehler beim Laden des Wörterbuches" -diff -up cracklib-2.9.6/po/es.po.translations cracklib-2.9.6/po/es.po ---- cracklib-2.9.6/po/es.po.translations 2015-10-22 18:24:54.375118708 +0200 -+++ cracklib-2.9.6/po/es.po 2014-07-09 17:24:45.000000000 +0200 -@@ -1,81 +1,82 @@ - # translation of cracklib.po to - # This file is put in the public domain. - # , 2003 ++msgstr "Fehler beim Laden des Wörterbuchs" +diff -urN cracklib-2.9.6.old/po/el.po cracklib-2.9.6.new/po/el.po +--- cracklib-2.9.6.old/po/el.po 2015-08-18 20:48:15.000000000 +0200 ++++ cracklib-2.9.6.new/po/el.po 2018-10-09 11:38:32.974426610 +0200 +@@ -4,20 +4,21 @@ + # This file is distributed under the same license as the PACKAGE package. + # Kostas Boukouvalas , 2005. + # Hellenic SuSE Translation Group , 2005. -# -+# gguerrer , 2013. #zanata ++# Jan Dittberner , 2016. #zanata msgid "" msgstr "" - "Project-Id-Version: cracklib\n" --"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" --"POT-Creation-Date: 2015-08-18 13:45-0500\n" +-"Project-Id-Version: el\n" ++"Project-Id-Version: cracklib 2.9.6\n" + "Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" + "POT-Creation-Date: 2015-08-18 13:45-0500\n" +-"PO-Revision-Date: 2005-08-26 19:19+0300\n" +-"Last-Translator: Hellenic SuSE Translation Group \n" ++"PO-Revision-Date: 2016-06-18 01:02+0000\n" ++"Last-Translator: Copied by Zanata \n" + "Language-Team: Hellenic-Ελληνικά-Greek \n" +-"Language: \n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=UTF-8\n" + "Content-Transfer-Encoding: 8bit\n" +-"X-Generator: KBabel 1.10\n" ++"Language: el\n" ++"Plural-Forms: nplurals=2; plural=(n != 1)\n" ++"X-Generator: Zanata 4.6.2\n" + + #: lib/fascist.c:516 + msgid "it is based on your username" +diff -urN cracklib-2.9.6.old/po/es.po cracklib-2.9.6.new/po/es.po +--- cracklib-2.9.6.old/po/es.po 2015-08-18 20:48:15.000000000 +0200 ++++ cracklib-2.9.6.new/po/es.po 2018-10-09 11:38:49.684843285 +0200 +@@ -1,81 +1,83 @@ + # translation of cracklib.po to + # This file is put in the public domain. +-# , 2003 +-# ++#, 2003 ++# Waldo Ribeiro , 2016. #zanata ++# Máximo Castañeda Riloba , 2017. #zanata + msgid "" + msgstr "" +-"Project-Id-Version: cracklib\n" ++"Project-Id-Version: cracklib 2.9.6\n" + "Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" + "POT-Creation-Date: 2015-08-18 13:45-0500\n" -"PO-Revision-Date: 2005-06-23 13:17+02:00\n" -"Last-Translator: Novell Language \n" -"Language-Team: Novell Language \n" -"Language: \n" -+"Report-Msgid-Bugs-To: \n" -+"POT-Creation-Date: 2012-12-14 16:11-0600\n" -+"PO-Revision-Date: 2013-09-23 07:39-0400\n" -+"Last-Translator: gguerrer \n" ++"PO-Revision-Date: 2018-08-16 12:44+0000\n" ++"Last-Translator: Copied by Zanata \n" +"Language-Team: Novell Language \n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" @@ -370,113 +594,230 @@ diff -up cracklib-2.9.6/po/es.po.translations cracklib-2.9.6/po/es.po "Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.0.1\n" +"Language: es\n" -+"X-Generator: Zanata 3.1.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" ++"X-Generator: Zanata 4.6.2\n" --#: lib/fascist.c:516 -+#: ../lib/fascist.c:550 -+msgid "you are not registered in the password file" -+msgstr "No está registrado en el archivo de contraseñas." -+ -+#: ../lib/fascist.c:564 + #: lib/fascist.c:516 msgid "it is based on your username" -msgstr "Está basada en su nombre de usuario." -+msgstr "Se basa en su nombre de usuario." ++msgstr "está basada en su nombre de usuario" --#: lib/fascist.c:576 -+#: ../lib/fascist.c:629 + #: lib/fascist.c:576 msgid "it is based upon your password entry" -msgstr "Está basada en su contraseña." -+msgstr "Se base en la entrada de su contraseña." ++msgstr "está basada en su contraseña" --#: lib/fascist.c:591 -+#: ../lib/fascist.c:649 + #: lib/fascist.c:591 msgid "it is derived from your password entry" - msgstr "Se deriva de su contraseña." +-msgstr "Se deriva de su contraseña." ++msgstr "se deriva de su contraseña" --#: lib/fascist.c:599 -+#: ../lib/fascist.c:662 + #: lib/fascist.c:599 msgid "it's derived from your password entry" - msgstr "Se deriva de su contraseña." +-msgstr "Se deriva de su contraseña." ++msgstr "se deriva de su contraseña" --#: lib/fascist.c:608 -+#: ../lib/fascist.c:676 + #: lib/fascist.c:608 msgid "it is derivable from your password entry" - msgstr "Puede derivarse de su contraseña." +-msgstr "Puede derivarse de su contraseña." ++msgstr "puede derivarse de su contraseña" --#: lib/fascist.c:617 -+#: ../lib/fascist.c:690 + #: lib/fascist.c:617 msgid "it's derivable from your password entry" - msgstr "Puede derivarse de su contraseña." +-msgstr "Puede derivarse de su contraseña." ++msgstr "puede derivarse de su contraseña" --#: lib/fascist.c:674 --msgid "you are not registered in the password file" + #: lib/fascist.c:674 + msgid "you are not registered in the password file" -msgstr "No está registrado en el archivo de contraseñas." -- --#: lib/fascist.c:709 -+#: ../lib/fascist.c:726 ++msgstr "no está registrado en el archivo de contraseñas" + + #: lib/fascist.c:709 msgid "it is WAY too short" - msgstr "Es DEMASIADO corta." +-msgstr "Es DEMASIADO corta." ++msgstr "es DEMASIADO corta" --#: lib/fascist.c:714 -+#: ../lib/fascist.c:731 + #: lib/fascist.c:714 msgid "it is too short" - msgstr "Es demasiado corta." +-msgstr "Es demasiado corta." ++msgstr "es demasiado corta" --#: lib/fascist.c:731 -+#: ../lib/fascist.c:748 + #: lib/fascist.c:731 msgid "it does not contain enough DIFFERENT characters" - msgstr "No contiene suficientes caracteres DIFERENTES." +-msgstr "No contiene suficientes caracteres DIFERENTES." ++msgstr "no contiene suficientes caracteres DIFERENTES" --#: lib/fascist.c:745 -+#: ../lib/fascist.c:762 + #: lib/fascist.c:745 msgid "it is all whitespace" - msgstr "Está formada sólo por espacios." +-msgstr "Está formada sólo por espacios." ++msgstr "está formada sólo por espacios" --#: lib/fascist.c:764 -+#: ../lib/fascist.c:781 + #: lib/fascist.c:764 msgid "it is too simplistic/systematic" - msgstr "Es demasiado simple/sistemática." +-msgstr "Es demasiado simple/sistemática." ++msgstr "es demasiado simple/sistemática" --#: lib/fascist.c:769 -+#: ../lib/fascist.c:786 + #: lib/fascist.c:769 msgid "it looks like a National Insurance number." - msgstr "Parece un número de la Seguridad Social." +-msgstr "Parece un número de la Seguridad Social." ++msgstr "parece un número de la Seguridad Social" --#: lib/fascist.c:801 -+#: ../lib/fascist.c:813 + #: lib/fascist.c:801 msgid "it is based on a dictionary word" - msgstr "Está basada en una palabra del diccionario." +-msgstr "Está basada en una palabra del diccionario." ++msgstr "está basada en una palabra del diccionario" --#: lib/fascist.c:820 -+#: ../lib/fascist.c:832 + #: lib/fascist.c:820 msgid "it is based on a (reversed) dictionary word" - msgstr "Está basada en una palabra del diccionario escrita al revés." +-msgstr "Está basada en una palabra del diccionario escrita al revés." ++msgstr "está basada en una palabra del diccionario escrita al revés" --#: lib/fascist.c:865 -+#: ../lib/fascist.c:867 + #: lib/fascist.c:865 msgid "error loading dictionary" -msgstr "" -+msgstr "Error al cargar el diccionario" -diff -up cracklib-2.9.6/po/fr.po.translations cracklib-2.9.6/po/fr.po ---- cracklib-2.9.6/po/fr.po.translations 2015-10-22 18:24:54.375118708 +0200 -+++ cracklib-2.9.6/po/fr.po 2014-07-09 17:24:45.000000000 +0200 -@@ -1,81 +1,82 @@ ++msgstr "error al cargar el diccionario" +diff -urN cracklib-2.9.6.old/po/eu.po cracklib-2.9.6.new/po/eu.po +--- cracklib-2.9.6.old/po/eu.po 1970-01-01 01:00:00.000000000 +0100 ++++ cracklib-2.9.6.new/po/eu.po 2018-10-09 11:38:46.701768899 +0200 +@@ -0,0 +1,79 @@ ++# Mikel Olasagasti Uranga , 2017. #zanata ++msgid "" ++msgstr "" ++"Project-Id-Version: cracklib 2.9.6\n" ++"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" ++"POT-Creation-Date: 2015-08-18 13:45-0500\n" ++"PO-Revision-Date: 2017-04-11 05:46+0000\n" ++"Last-Translator: Mikel Olasagasti Uranga \n" ++"Language-Team: Basque\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=UTF-8\n" ++"Content-Transfer-Encoding: 8bit\n" ++"Language: eu\n" ++"Plural-Forms: nplurals=2; plural=(n != 1)\n" ++"X-Generator: Zanata 4.6.2\n" ++ ++#: lib/fascist.c:516 ++msgid "it is based on your username" ++msgstr "zure erabiltzaile-izenean oinarrituta dago" ++ ++#: lib/fascist.c:576 ++msgid "it is based upon your password entry" ++msgstr "" ++ ++#: lib/fascist.c:591 ++msgid "it is derived from your password entry" ++msgstr "" ++ ++#: lib/fascist.c:599 ++msgid "it's derived from your password entry" ++msgstr "" ++ ++#: lib/fascist.c:608 ++msgid "it is derivable from your password entry" ++msgstr "" ++ ++#: lib/fascist.c:617 ++msgid "it's derivable from your password entry" ++msgstr "" ++ ++#: lib/fascist.c:674 ++msgid "you are not registered in the password file" ++msgstr "" ++ ++#: lib/fascist.c:709 ++msgid "it is WAY too short" ++msgstr "OSO laburra da" ++ ++#: lib/fascist.c:714 ++msgid "it is too short" ++msgstr "laburregia da" ++ ++#: lib/fascist.c:731 ++msgid "it does not contain enough DIFFERENT characters" ++msgstr "ez ditu nahikoa karaktere EZBERDIN" ++ ++#: lib/fascist.c:745 ++msgid "it is all whitespace" ++msgstr "karaktere guztiak zuriuneak dira" ++ ++#: lib/fascist.c:764 ++msgid "it is too simplistic/systematic" ++msgstr "oso sinple edo sistematikoa" ++ ++#: lib/fascist.c:769 ++msgid "it looks like a National Insurance number." ++msgstr "Gizarte Segurantza zenbakia dirudi (National Insurance)" ++ ++#: lib/fascist.c:801 ++msgid "it is based on a dictionary word" ++msgstr "hiztegiko hitz batean oinarritua da" ++ ++#: lib/fascist.c:820 ++msgid "it is based on a (reversed) dictionary word" ++msgstr "hiztegiko hitz batean oinarritua da (alderantziz)" ++ ++#: lib/fascist.c:865 ++msgid "error loading dictionary" ++msgstr "errorea hiztegia kargatzean" +diff -urN cracklib-2.9.6.old/po/fi.po cracklib-2.9.6.new/po/fi.po +--- cracklib-2.9.6.old/po/fi.po 2015-08-18 20:48:15.000000000 +0200 ++++ cracklib-2.9.6.new/po/fi.po 2018-10-09 11:39:09.467336563 +0200 +@@ -2,20 +2,22 @@ + # Copyright (C) 2005 Free Software Foundation, Inc. + # This file is distributed under the same license as the PACKAGE package. + # Jyri Palokangas , 2005. +-# ++# Jan Dittberner , 2016. #zanata ++# Jiri Grönroos , 2017. #zanata + msgid "" + msgstr "" +-"Project-Id-Version: cracklib\n" ++"Project-Id-Version: cracklib 2.9.6\n" + "Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" + "POT-Creation-Date: 2015-08-18 13:45-0500\n" +-"PO-Revision-Date: 2005-08-25 15:20+0300\n" +-"Last-Translator: Jyri Palokangas \n" +-"Language-Team: \n" +-"Language: \n" ++"PO-Revision-Date: 2017-03-26 09:02+0000\n" ++"Last-Translator: Jiri Grönroos \n" ++"Language-Team: \n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=UTF-8\n" + "Content-Transfer-Encoding: 8bit\n" +-"X-Generator: KBabel 1.10.2\n" ++"Language: fi\n" ++"Plural-Forms: nplurals=2; plural=(n != 1)\n" ++"X-Generator: Zanata 4.6.2\n" + + #: lib/fascist.c:516 + msgid "it is based on your username" +@@ -79,4 +81,4 @@ + + #: lib/fascist.c:865 + msgid "error loading dictionary" +-msgstr "" ++msgstr "virhe sanakirjaa ladatessa" +diff -urN cracklib-2.9.6.old/po/fr.po cracklib-2.9.6.new/po/fr.po +--- cracklib-2.9.6.old/po/fr.po 2015-08-18 20:48:15.000000000 +0200 ++++ cracklib-2.9.6.new/po/fr.po 2018-10-09 11:38:58.577065014 +0200 +@@ -1,20 +1,22 @@ # translation of cracklib.po to Français # This file is put in the public domain. # Patricia Vaz , 2003 -# -+# Sam Friedmann , 2013. #zanata ++# Jan Dittberner , 2016. #zanata ++# Jean-Baptiste Holcroft , 2016. #zanata msgid "" msgstr "" - "Project-Id-Version: cracklib\n" --"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" --"POT-Creation-Date: 2015-08-18 13:45-0500\n" +-"Project-Id-Version: cracklib\n" ++"Project-Id-Version: cracklib 2.9.6\n" + "Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" + "POT-Creation-Date: 2015-08-18 13:45-0500\n" -"PO-Revision-Date: 2005-06-23 13:17+02:00\n" -+"Report-Msgid-Bugs-To: \n" -+"POT-Creation-Date: 2012-12-14 16:11-0600\n" -+"PO-Revision-Date: 2013-10-08 12:03-0400\n" - "Last-Translator: Novell Language \n" +-"Last-Translator: Novell Language \n" ++"PO-Revision-Date: 2018-08-16 12:44+0000\n" ++"Last-Translator: Copied by Zanata \n" "Language-Team: Novell Language \n" -"Language: \n" "MIME-Version: 1.0\n" @@ -485,95 +826,20 @@ diff -up cracklib-2.9.6/po/fr.po.translations cracklib-2.9.6/po/fr.po "Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.0.1\n" +"Language: fr\n" -+"X-Generator: Zanata 3.1.2\n" +"Plural-Forms: nplurals=2; plural=(n > 1)\n" ++"X-Generator: Zanata 4.6.2\n" --#: lib/fascist.c:516 -+#: ../lib/fascist.c:550 -+msgid "you are not registered in the password file" -+msgstr "vous n'êtes pas enregistré dans le fichier de mot de passe" -+ -+#: ../lib/fascist.c:564 + #: lib/fascist.c:516 msgid "it is based on your username" - msgstr "basé sur votre nom d'utilisateur" +@@ -78,4 +80,4 @@ --#: lib/fascist.c:576 -+#: ../lib/fascist.c:629 - msgid "it is based upon your password entry" - msgstr "basé sur votre mot de passe" - --#: lib/fascist.c:591 -+#: ../lib/fascist.c:649 - msgid "it is derived from your password entry" - msgstr "dérivé de votre mot de passe" - --#: lib/fascist.c:599 -+#: ../lib/fascist.c:662 - msgid "it's derived from your password entry" - msgstr "dérivé de votre mot de passe" - --#: lib/fascist.c:608 -+#: ../lib/fascist.c:676 - msgid "it is derivable from your password entry" - msgstr "dérivable de votre mot de passe" - --#: lib/fascist.c:617 -+#: ../lib/fascist.c:690 - msgid "it's derivable from your password entry" - msgstr "dérivable de votre mot de passe" - --#: lib/fascist.c:674 --msgid "you are not registered in the password file" --msgstr "vous n'êtes pas enregistré dans le fichier de mot de passe" -- --#: lib/fascist.c:709 -+#: ../lib/fascist.c:726 - msgid "it is WAY too short" - msgstr "BEAUCOUP trop court" - --#: lib/fascist.c:714 -+#: ../lib/fascist.c:731 - msgid "it is too short" - msgstr "trop court" - --#: lib/fascist.c:731 -+#: ../lib/fascist.c:748 - msgid "it does not contain enough DIFFERENT characters" - msgstr "ne contient pas suffisamment de caractères DIFFÉRENTS" - --#: lib/fascist.c:745 -+#: ../lib/fascist.c:762 - msgid "it is all whitespace" - msgstr "il n'y a que des espaces" - --#: lib/fascist.c:764 -+#: ../lib/fascist.c:781 - msgid "it is too simplistic/systematic" - msgstr "trop simple/systématique" - --#: lib/fascist.c:769 -+#: ../lib/fascist.c:786 - msgid "it looks like a National Insurance number." - msgstr "ressemble à un numéro de sécurité sociale" - --#: lib/fascist.c:801 -+#: ../lib/fascist.c:813 - msgid "it is based on a dictionary word" - msgstr "basé sur un mot du dictionnaire" - --#: lib/fascist.c:820 -+#: ../lib/fascist.c:832 - msgid "it is based on a (reversed) dictionary word" - msgstr "basé sur un mot du dictionnaire à l'envers" - --#: lib/fascist.c:865 -+#: ../lib/fascist.c:867 + #: lib/fascist.c:865 msgid "error loading dictionary" -msgstr "" +msgstr "erreur lors du chargement du dictionnaire" -diff -up cracklib-2.9.6/po/gu.po.translations cracklib-2.9.6/po/gu.po ---- cracklib-2.9.6/po/gu.po.translations 2015-10-22 18:24:54.375118708 +0200 -+++ cracklib-2.9.6/po/gu.po 2014-07-09 17:24:45.000000000 +0200 +diff -urN cracklib-2.9.6.old/po/gu.po cracklib-2.9.6.new/po/gu.po +--- cracklib-2.9.6.old/po/gu.po 2015-08-18 20:48:15.000000000 +0200 ++++ cracklib-2.9.6.new/po/gu.po 2018-10-09 11:57:33.760928751 +0200 @@ -1,84 +1,85 @@ # translation of cracklib.default.cracklib.gu.po to Gujarati # Copyright (C) 2009 Free Software Foundation, Inc. @@ -688,9 +954,92 @@ diff -up cracklib-2.9.6/po/gu.po.translations cracklib-2.9.6/po/gu.po msgid "error loading dictionary" -msgstr "" +msgstr "શબ્દકોષને લાવી રહ્યા હોય ત્યારે ભૂલ" -diff -up cracklib-2.9.6/po/hi.po.translations cracklib-2.9.6/po/hi.po ---- cracklib-2.9.6/po/hi.po.translations 2015-10-22 18:24:54.376118732 +0200 -+++ cracklib-2.9.6/po/hi.po 2014-07-09 17:24:45.000000000 +0200 +diff -urN cracklib-2.9.6.old/po/he.po cracklib-2.9.6.new/po/he.po +--- cracklib-2.9.6.old/po/he.po 1970-01-01 01:00:00.000000000 +0100 ++++ cracklib-2.9.6.new/po/he.po 2018-10-09 11:38:19.242084195 +0200 +@@ -0,0 +1,79 @@ ++# Yaron Shahrabani , 2018. #zanata ++msgid "" ++msgstr "" ++"Project-Id-Version: cracklib 2.9.6\n" ++"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" ++"POT-Creation-Date: 2015-08-18 13:45-0500\n" ++"PO-Revision-Date: 2018-03-20 10:17+0000\n" ++"Last-Translator: Yaron Shahrabani \n" ++"Language-Team: Hebrew\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=UTF-8\n" ++"Content-Transfer-Encoding: 8bit\n" ++"Language: he\n" ++"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n==2 ? 2 : 1;\n" ++"X-Generator: Zanata 4.6.2\n" ++ ++#: lib/fascist.c:516 ++msgid "it is based on your username" ++msgstr "מבוססת על שם המשתמש שלך" ++ ++#: lib/fascist.c:576 ++msgid "it is based upon your password entry" ++msgstr "" ++ ++#: lib/fascist.c:591 ++msgid "it is derived from your password entry" ++msgstr "" ++ ++#: lib/fascist.c:599 ++msgid "it's derived from your password entry" ++msgstr "" ++ ++#: lib/fascist.c:608 ++msgid "it is derivable from your password entry" ++msgstr "" ++ ++#: lib/fascist.c:617 ++msgid "it's derivable from your password entry" ++msgstr "" ++ ++#: lib/fascist.c:674 ++msgid "you are not registered in the password file" ++msgstr "לא נרשמת בקובץ הססמאות" ++ ++#: lib/fascist.c:709 ++msgid "it is WAY too short" ++msgstr "קצרה ביותר" ++ ++#: lib/fascist.c:714 ++msgid "it is too short" ++msgstr "קצרה מדי" ++ ++#: lib/fascist.c:731 ++msgid "it does not contain enough DIFFERENT characters" ++msgstr "אינה מכילה מספיק תווים שונים" ++ ++#: lib/fascist.c:745 ++msgid "it is all whitespace" ++msgstr "כולה רווחים" ++ ++#: lib/fascist.c:764 ++msgid "it is too simplistic/systematic" ++msgstr "מערכתית/פשוטה מדי" ++ ++#: lib/fascist.c:769 ++msgid "it looks like a National Insurance number." ++msgstr "נראית כמו מספר תעודת זהות/ביטוח לאומי" ++ ++#: lib/fascist.c:801 ++msgid "it is based on a dictionary word" ++msgstr "מבוססת על מילה במילון" ++ ++#: lib/fascist.c:820 ++msgid "it is based on a (reversed) dictionary word" ++msgstr "מבוססת על (היפוך של) מילה במילון" ++ ++#: lib/fascist.c:865 ++msgid "error loading dictionary" ++msgstr "שגיאה בטעינת המילון" +diff -urN cracklib-2.9.6.old/po/hi.po cracklib-2.9.6.new/po/hi.po +--- cracklib-2.9.6.old/po/hi.po 2015-08-18 20:48:15.000000000 +0200 ++++ cracklib-2.9.6.new/po/hi.po 2018-10-09 11:57:33.760928751 +0200 @@ -2,84 +2,85 @@ # Hindi translations for cracklib package. # Copyright (C) 2009, 2010 Free Software Foundation, Inc. @@ -804,26 +1153,200 @@ diff -up cracklib-2.9.6/po/hi.po.translations cracklib-2.9.6/po/hi.po msgid "error loading dictionary" -msgstr "" +msgstr "शब्दकोश लोड करने में त्रुटि" -diff -up cracklib-2.9.6/po/it.po.translations cracklib-2.9.6/po/it.po ---- cracklib-2.9.6/po/it.po.translations 2015-10-22 18:24:54.376118732 +0200 -+++ cracklib-2.9.6/po/it.po 2014-07-09 17:24:45.000000000 +0200 -@@ -1,81 +1,82 @@ +diff -urN cracklib-2.9.6.old/po/hu.po cracklib-2.9.6.new/po/hu.po +--- cracklib-2.9.6.old/po/hu.po 2015-08-18 20:48:15.000000000 +0200 ++++ cracklib-2.9.6.new/po/hu.po 2018-10-09 11:38:16.351012456 +0200 +@@ -2,48 +2,49 @@ + # This file is put in the public domain. + # Marcel Hilzinger , 2003. + # Gábor Szentiványi , 2003 +-# ++# Meskó Balázs , 2016. #zanata + msgid "" + msgstr "" +-"Project-Id-Version: cracklib.hu\n" ++"Project-Id-Version: cracklib 2.9.6\n" + "Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" + "POT-Creation-Date: 2015-08-18 13:45-0500\n" +-"PO-Revision-Date: 2005-08-06 20:20+0100\n" +-"Last-Translator: Szabolcs Varga \n" ++"PO-Revision-Date: 2016-09-10 06:40+0000\n" ++"Last-Translator: Meskó Balázs \n" + "Language-Team: hungarian\n" +-"Language: \n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=UTF-8\n" + "Content-Transfer-Encoding: 8bit\n" +-"X-Generator: KBabel 1.0.1\n" ++"Language: hu\n" ++"Plural-Forms: nplurals=2; plural=(n != 1)\n" ++"X-Generator: Zanata 4.6.2\n" + + #: lib/fascist.c:516 + msgid "it is based on your username" +-msgstr "az Ön felhasználónevén alapszik" ++msgstr "a felhasználónevén alapszik" + + #: lib/fascist.c:576 + msgid "it is based upon your password entry" +-msgstr "az Ön jelszóbejegyzésén alapszik" ++msgstr "a jelszóbejegyzésén alapszik" + + #: lib/fascist.c:591 + msgid "it is derived from your password entry" +-msgstr "az Ön jelszóbejegyzéséból lett származtatva" ++msgstr "a jelszóbejegyzéséből lett származtatva" + + #: lib/fascist.c:599 + msgid "it's derived from your password entry" +-msgstr "az Ön jelszóbejegyzéséból lett származtatva" ++msgstr "a jelszóbejegyzéséből lett származtatva" + + #: lib/fascist.c:608 + msgid "it is derivable from your password entry" +-msgstr "kitalálható az Ön jelszóbejegyzéséből" ++msgstr "kitalálható a jelszóbejegyzéséből" + + #: lib/fascist.c:617 + msgid "it's derivable from your password entry" +-msgstr "kitalálható az Ön jelszóbejegyzéséből" ++msgstr "kitalálható a jelszóbejegyzéséből" + + #: lib/fascist.c:674 + msgid "you are not registered in the password file" +-msgstr "Ön nem szerepel a password fájlban" ++msgstr "nincs regisztrálva a jelszófájlban" + + #: lib/fascist.c:709 + msgid "it is WAY too short" +@@ -59,7 +60,7 @@ + + #: lib/fascist.c:745 + msgid "it is all whitespace" +-msgstr "csak szóközszerű karakterekből áll" ++msgstr "csak üres karakterekből áll" + + #: lib/fascist.c:764 + msgid "it is too simplistic/systematic" +@@ -71,12 +72,12 @@ + + #: lib/fascist.c:801 + msgid "it is based on a dictionary word" +-msgstr "a szótárban megtalálható" ++msgstr "szótári szón alapszik" + + #: lib/fascist.c:820 + msgid "it is based on a (reversed) dictionary word" +-msgstr "visszafelé olvasva egy ismert szót ad" ++msgstr "(megfordított) szótári szón alapszik" + + #: lib/fascist.c:865 + msgid "error loading dictionary" +-msgstr "" ++msgstr "hiba a szótár betöltésekor" +diff -urN cracklib-2.9.6.old/po/id.po cracklib-2.9.6.new/po/id.po +--- cracklib-2.9.6.old/po/id.po 1970-01-01 01:00:00.000000000 +0100 ++++ cracklib-2.9.6.new/po/id.po 2018-10-09 11:38:48.634817101 +0200 +@@ -0,0 +1,79 @@ ++# Andika Triwidada , 2017. #zanata ++msgid "" ++msgstr "" ++"Project-Id-Version: cracklib 2.9.6\n" ++"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" ++"POT-Creation-Date: 2015-08-18 13:45-0500\n" ++"PO-Revision-Date: 2017-07-24 12:45+0000\n" ++"Last-Translator: Andika Triwidada \n" ++"Language-Team: Indonesian\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=UTF-8\n" ++"Content-Transfer-Encoding: 8bit\n" ++"Language: id\n" ++"Plural-Forms: nplurals=1; plural=0\n" ++"X-Generator: Zanata 4.6.2\n" ++ ++#: lib/fascist.c:516 ++msgid "it is based on your username" ++msgstr "ini berbasis pada nama Anda" ++ ++#: lib/fascist.c:576 ++msgid "it is based upon your password entry" ++msgstr "ini berbasis pada entri kata sandi Anda" ++ ++#: lib/fascist.c:591 ++msgid "it is derived from your password entry" ++msgstr "ini diturunkan dari entri kata sandi Anda" ++ ++#: lib/fascist.c:599 ++msgid "it's derived from your password entry" ++msgstr "ini diturunkan dari entri kata sandi Anda" ++ ++#: lib/fascist.c:608 ++msgid "it is derivable from your password entry" ++msgstr "ini dapat diturunkan dari entri kata sandi Anda" ++ ++#: lib/fascist.c:617 ++msgid "it's derivable from your password entry" ++msgstr "ini dapat diturunkan dari entri kata sandi Anda" ++ ++#: lib/fascist.c:674 ++msgid "you are not registered in the password file" ++msgstr "Anda tidak terdaftar dalam berkas kata sandi" ++ ++#: lib/fascist.c:709 ++msgid "it is WAY too short" ++msgstr "ini KETERLALUAN pendeknya" ++ ++#: lib/fascist.c:714 ++msgid "it is too short" ++msgstr "ini terlalu pendek" ++ ++#: lib/fascist.c:731 ++msgid "it does not contain enough DIFFERENT characters" ++msgstr "ini tidak memuat cukup karakter yang BERBEDA" ++ ++#: lib/fascist.c:745 ++msgid "it is all whitespace" ++msgstr "ini semua keluarga spasi" ++ ++#: lib/fascist.c:764 ++msgid "it is too simplistic/systematic" ++msgstr "ini terlalu sederhana/sistematis" ++ ++#: lib/fascist.c:769 ++msgid "it looks like a National Insurance number." ++msgstr "ini tampak seperti nomor Asuransi Nasional." ++ ++#: lib/fascist.c:801 ++msgid "it is based on a dictionary word" ++msgstr "ini berbasis pada kata kamus" ++ ++#: lib/fascist.c:820 ++msgid "it is based on a (reversed) dictionary word" ++msgstr "ini berbasis pada kata kamus (terbalik)" ++ ++#: lib/fascist.c:865 ++msgid "error loading dictionary" ++msgstr "galat saat memuat kamus" +diff -urN cracklib-2.9.6.old/po/it.po cracklib-2.9.6.new/po/it.po +--- cracklib-2.9.6.old/po/it.po 2015-08-18 20:48:15.000000000 +0200 ++++ cracklib-2.9.6.new/po/it.po 2018-10-09 11:38:39.759595795 +0200 +@@ -1,20 +1,22 @@ # SOME DESCRIPTIVE TITLE. # This file is put in the public domain. # FIRST AUTHOR , YEAR. -# -+# fvalen , 2013. #zanata ++# Jan Dittberner , 2016. #zanata ++# Luca Ciavatta , 2017. #zanata msgid "" msgstr "" - "Project-Id-Version: cracklib\n" --"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" --"POT-Creation-Date: 2015-08-18 13:45-0500\n" +-"Project-Id-Version: cracklib\n" ++"Project-Id-Version: cracklib 2.9.6\n" + "Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" + "POT-Creation-Date: 2015-08-18 13:45-0500\n" -"PO-Revision-Date: 2005-06-23 13:15+02:00\n" -"Last-Translator: Novell Language \n" -+"Report-Msgid-Bugs-To: \n" -+"POT-Creation-Date: 2012-12-14 16:11-0600\n" -+"PO-Revision-Date: 2013-09-24 10:43-0400\n" -+"Last-Translator: fvalen \n" ++"PO-Revision-Date: 2018-08-16 12:44+0000\n" ++"Last-Translator: Copied by Zanata \n" "Language-Team: Novell Language \n" -"Language: \n" "MIME-Version: 1.0\n" @@ -832,207 +1355,140 @@ diff -up cracklib-2.9.6/po/it.po.translations cracklib-2.9.6/po/it.po "Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 0.9.6\n" +"Language: it\n" -+"X-Generator: Zanata 3.1.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" ++"X-Generator: Zanata 4.6.2\n" --#: lib/fascist.c:516 -+#: ../lib/fascist.c:550 -+msgid "you are not registered in the password file" -+msgstr "Non siete registrati nel file delle password" -+ -+#: ../lib/fascist.c:564 + #: lib/fascist.c:516 msgid "it is based on your username" - msgstr "Si basa sul vostro nome utente" +@@ -78,4 +80,4 @@ --#: lib/fascist.c:576 -+#: ../lib/fascist.c:629 - msgid "it is based upon your password entry" - msgstr "Si basa sulla vostra password registrata" - --#: lib/fascist.c:591 -+#: ../lib/fascist.c:649 - msgid "it is derived from your password entry" - msgstr "Deriva dalla vostra password registrata" - --#: lib/fascist.c:599 -+#: ../lib/fascist.c:662 - msgid "it's derived from your password entry" - msgstr "Deriva dalla vostra password registrata" - --#: lib/fascist.c:608 -+#: ../lib/fascist.c:676 - msgid "it is derivable from your password entry" - msgstr "Può essere derivata dalla vostra password registrata" - --#: lib/fascist.c:617 -+#: ../lib/fascist.c:690 - msgid "it's derivable from your password entry" - msgstr "Può essere derivata dalla vostra password registrata" - --#: lib/fascist.c:674 --msgid "you are not registered in the password file" --msgstr "Non siete registrati nel file delle password" -- --#: lib/fascist.c:709 -+#: ../lib/fascist.c:726 - msgid "it is WAY too short" - msgstr "E' TROPPO breve" - --#: lib/fascist.c:714 -+#: ../lib/fascist.c:731 - msgid "it is too short" - msgstr "E' troppo breve" - --#: lib/fascist.c:731 -+#: ../lib/fascist.c:748 - msgid "it does not contain enough DIFFERENT characters" - msgstr "Non contiene abbastanza caratteri DIFFERENTI" - --#: lib/fascist.c:745 -+#: ../lib/fascist.c:762 - msgid "it is all whitespace" - msgstr "E' composta solo da caratteri di spaziatura" - --#: lib/fascist.c:764 -+#: ../lib/fascist.c:781 - msgid "it is too simplistic/systematic" - msgstr "E' troppo semplice/sistematica" - --#: lib/fascist.c:769 -+#: ../lib/fascist.c:786 - msgid "it looks like a National Insurance number." - msgstr "Sembra essere un codice dell'Assicurazione" - --#: lib/fascist.c:801 -+#: ../lib/fascist.c:813 - msgid "it is based on a dictionary word" - msgstr "Si basa su un termine di dizionario" - --#: lib/fascist.c:820 -+#: ../lib/fascist.c:832 - msgid "it is based on a (reversed) dictionary word" - msgstr "Si basa su un termine (rovesciato) di dizionario" - --#: lib/fascist.c:865 -+#: ../lib/fascist.c:867 + #: lib/fascist.c:865 msgid "error loading dictionary" -msgstr "" -+msgstr "errore nel caricare il dizionario" -diff -up cracklib-2.9.6/po/ja.po.translations cracklib-2.9.6/po/ja.po ---- cracklib-2.9.6/po/ja.po.translations 2015-10-22 18:24:54.376118732 +0200 -+++ cracklib-2.9.6/po/ja.po 2014-07-09 17:24:45.000000000 +0200 -@@ -2,80 +2,82 @@ ++msgstr "Errore di caricamento del dizionario" +diff -urN cracklib-2.9.6.old/po/ja.po cracklib-2.9.6.new/po/ja.po +--- cracklib-2.9.6.old/po/ja.po 2015-08-18 20:48:15.000000000 +0200 ++++ cracklib-2.9.6.new/po/ja.po 2018-10-09 11:38:02.366667678 +0200 +@@ -2,19 +2,22 @@ # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. -# -+# noriko , 2013. #zanata ++# Jan Dittberner , 2016. #zanata ++# Ludek Janda , 2018. #zanata msgid "" msgstr "" - "Project-Id-Version: cracklib\n" --"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" --"POT-Creation-Date: 2015-08-18 13:45-0500\n" +-"Project-Id-Version: cracklib\n" ++"Project-Id-Version: cracklib 2.9.6\n" + "Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" + "POT-Creation-Date: 2015-08-18 13:45-0500\n" -"PO-Revision-Date: 2005-08-18 11:52-0000\n" -"Last-Translator: Novell Language \n" -+"Report-Msgid-Bugs-To: \n" -+"POT-Creation-Date: 2012-12-14 16:11-0600\n" -+"PO-Revision-Date: 2013-09-30 01:55-0400\n" -+"Last-Translator: noriko \n" ++"PO-Revision-Date: 2018-08-16 12:48+0000\n" ++"Last-Translator: Copied by Zanata \n" "Language-Team: Novell Language \n" -"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Language: ja\n" -+"X-Generator: Zanata 3.1.2\n" +"Plural-Forms: nplurals=1; plural=0\n" ++"X-Generator: Zanata 4.6.2\n" --#: lib/fascist.c:516 -+#: ../lib/fascist.c:550 -+msgid "you are not registered in the password file" -+msgstr "パスワードファイルで登録されていません" -+ -+#: ../lib/fascist.c:564 + #: lib/fascist.c:516 msgid "it is based on your username" - msgstr "パスワードファイルはユーザー名に基づいています" +@@ -78,4 +81,4 @@ --#: lib/fascist.c:576 -+#: ../lib/fascist.c:629 - msgid "it is based upon your password entry" - msgstr "パスワードエントリに基づいています" - --#: lib/fascist.c:591 -+#: ../lib/fascist.c:649 - msgid "it is derived from your password entry" - msgstr "パスワードエントリから引き出されています" - --#: lib/fascist.c:599 -+#: ../lib/fascist.c:662 - msgid "it's derived from your password entry" - msgstr "パスワードエントリから引き出されています" - --#: lib/fascist.c:608 -+#: ../lib/fascist.c:676 - msgid "it is derivable from your password entry" - msgstr "パスワードエントリから引き出せます" - --#: lib/fascist.c:617 -+#: ../lib/fascist.c:690 - msgid "it's derivable from your password entry" - msgstr "パスワードエントリから引き出せます" - --#: lib/fascist.c:674 --msgid "you are not registered in the password file" --msgstr "パスワードファイルで登録されていません" -- --#: lib/fascist.c:709 -+#: ../lib/fascist.c:726 - msgid "it is WAY too short" - msgstr "あまりにも短かすぎます" - --#: lib/fascist.c:714 -+#: ../lib/fascist.c:731 - msgid "it is too short" - msgstr "短かすぎます" - --#: lib/fascist.c:731 -+#: ../lib/fascist.c:748 - msgid "it does not contain enough DIFFERENT characters" - msgstr "異なる文字が十分に含まれていません" - --#: lib/fascist.c:745 -+#: ../lib/fascist.c:762 - msgid "it is all whitespace" - msgstr "すべて余白です" - --#: lib/fascist.c:764 -+#: ../lib/fascist.c:781 - msgid "it is too simplistic/systematic" - msgstr "単純/系統的すぎます" - --#: lib/fascist.c:769 -+#: ../lib/fascist.c:786 - msgid "it looks like a National Insurance number." - msgstr "国民保険番号のように見えます。" - --#: lib/fascist.c:801 -+#: ../lib/fascist.c:813 - msgid "it is based on a dictionary word" - msgstr "辞書の単語に基づいています" - --#: lib/fascist.c:820 -+#: ../lib/fascist.c:832 - msgid "it is based on a (reversed) dictionary word" - msgstr "(逆順の)辞書の単語に基づいています" - --#: lib/fascist.c:865 -+#: ../lib/fascist.c:867 + #: lib/fascist.c:865 msgid "error loading dictionary" -msgstr "" +msgstr "辞書の読み込み中二エラーが発生しました" -diff -up cracklib-2.9.6/po/kn.po.translations cracklib-2.9.6/po/kn.po ---- cracklib-2.9.6/po/kn.po.translations 2015-10-22 18:24:54.376118732 +0200 -+++ cracklib-2.9.6/po/kn.po 2014-07-09 17:24:45.000000000 +0200 +diff -urN cracklib-2.9.6.old/po/kk.po cracklib-2.9.6.new/po/kk.po +--- cracklib-2.9.6.old/po/kk.po 1970-01-01 01:00:00.000000000 +0100 ++++ cracklib-2.9.6.new/po/kk.po 2018-10-09 11:39:13.394434486 +0200 +@@ -0,0 +1,79 @@ ++# Baurzhan Muftakhidinov , 2017. #zanata ++msgid "" ++msgstr "" ++"Project-Id-Version: cracklib 2.9.6\n" ++"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" ++"POT-Creation-Date: 2015-08-18 13:45-0500\n" ++"PO-Revision-Date: 2017-04-11 12:05+0000\n" ++"Last-Translator: Baurzhan Muftakhidinov \n" ++"Language-Team: Kazakh\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=UTF-8\n" ++"Content-Transfer-Encoding: 8bit\n" ++"Language: kk\n" ++"Plural-Forms: nplurals=1; plural=0\n" ++"X-Generator: Zanata 4.6.2\n" ++ ++#: lib/fascist.c:516 ++msgid "it is based on your username" ++msgstr "ол сіздің пайдаланушы атыңызға негізделген" ++ ++#: lib/fascist.c:576 ++msgid "it is based upon your password entry" ++msgstr "" ++ ++#: lib/fascist.c:591 ++msgid "it is derived from your password entry" ++msgstr "" ++ ++#: lib/fascist.c:599 ++msgid "it's derived from your password entry" ++msgstr "" ++ ++#: lib/fascist.c:608 ++msgid "it is derivable from your password entry" ++msgstr "" ++ ++#: lib/fascist.c:617 ++msgid "it's derivable from your password entry" ++msgstr "" ++ ++#: lib/fascist.c:674 ++msgid "you are not registered in the password file" ++msgstr "" ++ ++#: lib/fascist.c:709 ++msgid "it is WAY too short" ++msgstr "ол ТЫМ қысқа" ++ ++#: lib/fascist.c:714 ++msgid "it is too short" ++msgstr "ол тым қысқа" ++ ++#: lib/fascist.c:731 ++msgid "it does not contain enough DIFFERENT characters" ++msgstr "" ++ ++#: lib/fascist.c:745 ++msgid "it is all whitespace" ++msgstr "" ++ ++#: lib/fascist.c:764 ++msgid "it is too simplistic/systematic" ++msgstr "" ++ ++#: lib/fascist.c:769 ++msgid "it looks like a National Insurance number." ++msgstr "" ++ ++#: lib/fascist.c:801 ++msgid "it is based on a dictionary word" ++msgstr "" ++ ++#: lib/fascist.c:820 ++msgid "it is based on a (reversed) dictionary word" ++msgstr "" ++ ++#: lib/fascist.c:865 ++msgid "error loading dictionary" ++msgstr "" +diff -urN cracklib-2.9.6.old/po/kn.po cracklib-2.9.6.new/po/kn.po +--- cracklib-2.9.6.old/po/kn.po 2015-08-18 20:48:15.000000000 +0200 ++++ cracklib-2.9.6.new/po/kn.po 2018-10-09 11:57:33.760928751 +0200 @@ -1,83 +1,84 @@ # translation of cracklib.po to Kannada # Copyright (C) 2008 Free Software Foundation, Inc. @@ -1147,28 +1603,25 @@ diff -up cracklib-2.9.6/po/kn.po.translations cracklib-2.9.6/po/kn.po msgid "error loading dictionary" -msgstr "" +msgstr "ಕೋಶವನ್ನು ಲೋಡ್ ಮಾಡುವಲ್ಲಿ ದೋಷ" -diff -up cracklib-2.9.6/po/ko.po.translations cracklib-2.9.6/po/ko.po ---- cracklib-2.9.6/po/ko.po.translations 2015-10-22 18:24:54.377118756 +0200 -+++ cracklib-2.9.6/po/ko.po 2014-07-09 17:24:45.000000000 +0200 -@@ -1,83 +1,84 @@ - # translation of cracklib.default.po to Korean - # Copyright (C) 2009 Free Software Foundation, Inc. +diff -urN cracklib-2.9.6.old/po/ko.po cracklib-2.9.6.new/po/ko.po +--- cracklib-2.9.6.old/po/ko.po 2015-08-18 20:48:15.000000000 +0200 ++++ cracklib-2.9.6.new/po/ko.po 2018-10-09 11:39:16.328507645 +0200 +@@ -3,20 +3,22 @@ # This file is distributed under the same license as the PACKAGE package. --# -+# + # # Eunju Kim , 2009. -+# eukim , 2013. #zanata ++# Jan Dittberner , 2016. #zanata ++# Ludek Janda , 2018. #zanata msgid "" msgstr "" - "Project-Id-Version: cracklib.default\n" --"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" --"POT-Creation-Date: 2015-08-18 13:45-0500\n" +-"Project-Id-Version: cracklib.default\n" ++"Project-Id-Version: cracklib 2.9.6\n" + "Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" + "POT-Creation-Date: 2015-08-18 13:45-0500\n" -"PO-Revision-Date: 2009-11-18 11:19+1000\n" -"Last-Translator: Eunju Kim \n" -+"Report-Msgid-Bugs-To: \n" -+"POT-Creation-Date: 2012-12-14 16:11-0600\n" -+"PO-Revision-Date: 2013-09-24 12:33-0400\n" -+"Last-Translator: eukim \n" ++"PO-Revision-Date: 2018-08-21 09:51+0000\n" ++"Last-Translator: Copied by Zanata \n" "Language-Team: Korean \n" -"Language: ko\n" "MIME-Version: 1.0\n" @@ -1178,94 +1631,54 @@ diff -up cracklib-2.9.6/po/ko.po.translations cracklib-2.9.6/po/ko.po -"Plural-Forms: nplurals=1; plural=0;\n" +"Language: ko\n" +"Plural-Forms: nplurals=1; plural=0;\n" -+"X-Generator: Zanata 3.1.2\n" -+ -+#: ../lib/fascist.c:550 -+msgid "you are not registered in the password file" -+msgstr "암호 파일에 등록되어 있지 않습니다 " ++"X-Generator: Zanata 4.6.2\n" --#: lib/fascist.c:516 -+#: ../lib/fascist.c:564 + #: lib/fascist.c:516 msgid "it is based on your username" - msgstr "이는 사용자 이름을 기반으로 합니다 " +@@ -80,4 +82,4 @@ --#: lib/fascist.c:576 -+#: ../lib/fascist.c:629 - msgid "it is based upon your password entry" - msgstr "이는 암호 항목을 기반으로 합니다 " - --#: lib/fascist.c:591 -+#: ../lib/fascist.c:649 - msgid "it is derived from your password entry" - msgstr "이는 암호 항목에서 파생된 것입니다 " - --#: lib/fascist.c:599 -+#: ../lib/fascist.c:662 - msgid "it's derived from your password entry" - msgstr "이는 암호 항목에서 파생된 것입니다 " - --#: lib/fascist.c:608 -+#: ../lib/fascist.c:676 - msgid "it is derivable from your password entry" - msgstr "이는 암호 항목에서 파생 가능합니다 " - --#: lib/fascist.c:617 -+#: ../lib/fascist.c:690 - msgid "it's derivable from your password entry" - msgstr "이는 암호 항목에서 파생 가능합니다 " - --#: lib/fascist.c:674 --msgid "you are not registered in the password file" --msgstr "암호 파일에 등록되어 있지 않습니다 " -- --#: lib/fascist.c:709 -+#: ../lib/fascist.c:726 - msgid "it is WAY too short" - msgstr "너무 짧습니다 " - --#: lib/fascist.c:714 -+#: ../lib/fascist.c:731 - msgid "it is too short" - msgstr "너무 짧습니다 " - --#: lib/fascist.c:731 -+#: ../lib/fascist.c:748 - msgid "it does not contain enough DIFFERENT characters" - msgstr "다른 문자가 충분히 포함되어 있지 않습니다 " - --#: lib/fascist.c:745 -+#: ../lib/fascist.c:762 - msgid "it is all whitespace" - msgstr "모든 여백입니다 " - --#: lib/fascist.c:764 -+#: ../lib/fascist.c:781 - msgid "it is too simplistic/systematic" - msgstr "너무 단순/체계적입니다 " - --#: lib/fascist.c:769 -+#: ../lib/fascist.c:786 - msgid "it looks like a National Insurance number." - msgstr "국민 보험 번호와 유사합니다. " - --#: lib/fascist.c:801 -+#: ../lib/fascist.c:813 - msgid "it is based on a dictionary word" - msgstr "사전에 있는 단어를 기반으로 합니다 " - --#: lib/fascist.c:820 -+#: ../lib/fascist.c:832 - msgid "it is based on a (reversed) dictionary word" - msgstr "(역순) 사전에 있는 단어를 기반으로 합니다 " - --#: lib/fascist.c:865 -+#: ../lib/fascist.c:867 + #: lib/fascist.c:865 msgid "error loading dictionary" -msgstr "" -+msgstr "사전을 불러오는 도중 오류 발생 " -diff -up cracklib-2.9.6/po/ml.po.translations cracklib-2.9.6/po/ml.po ---- cracklib-2.9.6/po/ml.po.translations 2015-10-22 18:24:54.377118756 +0200 -+++ cracklib-2.9.6/po/ml.po 2014-07-09 17:24:45.000000000 +0200 ++msgstr "사전을 로드하는 도중 오류가 발생했습니다 " +diff -urN cracklib-2.9.6.old/po/LINGUAS cracklib-2.9.6.new/po/LINGUAS +--- cracklib-2.9.6.old/po/LINGUAS 1970-01-01 01:00:00.000000000 +0100 ++++ cracklib-2.9.6.new/po/LINGUAS 2018-10-09 12:14:53.147237727 +0200 +@@ -0,0 +1 @@ ++as be bn_IN ca cs da de el es eu fi fr gu he hi hu id it ja kk kn ko lt ml mr nb nl or pa pl pt_BR pt ru sk sl_SI sq sv ta te tr uk zh_CN zh_TW +diff -urN cracklib-2.9.6.old/po/lt.po cracklib-2.9.6.new/po/lt.po +--- cracklib-2.9.6.old/po/lt.po 2015-08-18 20:48:15.000000000 +0200 ++++ cracklib-2.9.6.new/po/lt.po 2018-10-09 11:38:04.314715706 +0200 +@@ -2,19 +2,21 @@ + # Copyright (C) YEAR Free Software Foundation, Inc. + # This file is distributed under the same license as the PACKAGE package. + # FIRST AUTHOR , YEAR. +-# ++# Jan Dittberner , 2016. #zanata + msgid "" + msgstr "" +-"Project-Id-Version: cracklib\n" ++"Project-Id-Version: cracklib 2.9.6\n" + "Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" + "POT-Creation-Date: 2015-08-18 13:45-0500\n" +-"PO-Revision-Date: 2005-08-04 12:05+0200\n" +-"Last-Translator: Linas Spraunius \n" ++"PO-Revision-Date: 2016-06-18 01:02+0000\n" ++"Last-Translator: Copied by Zanata \n" + "Language-Team: lt\n" +-"Language: \n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=UTF-8\n" + "Content-Transfer-Encoding: 8bit\n" ++"Language: lt\n" ++"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2)\n" ++"X-Generator: Zanata 4.6.2\n" + + #: lib/fascist.c:516 + msgid "it is based on your username" +diff -urN cracklib-2.9.6.old/po/ml.po cracklib-2.9.6.new/po/ml.po +--- cracklib-2.9.6.old/po/ml.po 2015-08-18 20:48:15.000000000 +0200 ++++ cracklib-2.9.6.new/po/ml.po 2018-10-09 11:57:33.760928751 +0200 @@ -2,81 +2,82 @@ # Copyright (C) 2009 Free Software Foundation, Inc. # This file is distributed under the same license as the cracklib package. @@ -1376,9 +1789,9 @@ diff -up cracklib-2.9.6/po/ml.po.translations cracklib-2.9.6/po/ml.po msgid "error loading dictionary" -msgstr "" +msgstr "നിഘണ്ടു ലഭ്യമാക്കുന്നതില്‍ പിശക്" -diff -up cracklib-2.9.6/po/mr.po.translations cracklib-2.9.6/po/mr.po ---- cracklib-2.9.6/po/mr.po.translations 2015-10-22 18:24:54.377118756 +0200 -+++ cracklib-2.9.6/po/mr.po 2014-07-09 17:24:45.000000000 +0200 +diff -urN cracklib-2.9.6.old/po/mr.po cracklib-2.9.6.new/po/mr.po +--- cracklib-2.9.6.old/po/mr.po 2015-08-18 20:48:15.000000000 +0200 ++++ cracklib-2.9.6.new/po/mr.po 2018-10-09 11:57:33.761928776 +0200 @@ -1,83 +1,84 @@ # translation of cracklib.default.cracklib.po to Marathi # Copyright (C) 2009 Free Software Foundation, Inc. @@ -1491,9 +1904,80 @@ diff -up cracklib-2.9.6/po/mr.po.translations cracklib-2.9.6/po/mr.po msgid "error loading dictionary" -msgstr "" +msgstr "शब्दकोष लोड करतेवेळी त्रुटी" -diff -up cracklib-2.9.6/po/or.po.translations cracklib-2.9.6/po/or.po ---- cracklib-2.9.6/po/or.po.translations 2015-10-22 18:24:54.377118756 +0200 -+++ cracklib-2.9.6/po/or.po 2014-07-09 17:24:45.000000000 +0200 +diff -urN cracklib-2.9.6.old/po/nb.po cracklib-2.9.6.new/po/nb.po +--- cracklib-2.9.6.old/po/nb.po 2015-08-18 20:48:15.000000000 +0200 ++++ cracklib-2.9.6.new/po/nb.po 2018-10-09 11:38:53.611941207 +0200 +@@ -2,20 +2,21 @@ + # Copyright (C) 2005 Free Software Foundation, Inc. + # This file is distributed under the same license as the PACKAGE package. + # Olav Pettershagen , 2005. +-# ++# Jan Dittberner , 2016. #zanata + msgid "" + msgstr "" +-"Project-Id-Version: nb\n" ++"Project-Id-Version: cracklib 2.9.6\n" + "Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" + "POT-Creation-Date: 2015-08-18 13:45-0500\n" +-"PO-Revision-Date: 2005-08-11 20:48+0200\n" +-"Last-Translator: Olav Pettershagen \n" +-"Language-Team: \n" +-"Language: \n" ++"PO-Revision-Date: 2016-06-18 01:02+0000\n" ++"Last-Translator: Copied by Zanata \n" ++"Language-Team: \n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=UTF-8\n" + "Content-Transfer-Encoding: 8bit\n" +-"X-Generator: KBabel 1.10.2\n" ++"Language: nb\n" ++"Plural-Forms: nplurals=2; plural=(n != 1)\n" ++"X-Generator: Zanata 4.6.2\n" + + #: lib/fascist.c:516 + msgid "it is based on your username" +diff -urN cracklib-2.9.6.old/po/nl.po cracklib-2.9.6.new/po/nl.po +--- cracklib-2.9.6.old/po/nl.po 2015-08-18 20:48:15.000000000 +0200 ++++ cracklib-2.9.6.new/po/nl.po 2018-10-09 11:38:51.650892308 +0200 +@@ -4,21 +4,22 @@ + # This file is put in the public domain. + # Arthur & Ettie Kerkmeester , 2003. + # Rinse de Vries , 2005. +-# ++# Geert Warrink , 2016. #zanata ++# Jan Dittberner , 2016. #zanata + msgid "" + msgstr "" +-"Project-Id-Version: nl\n" ++"Project-Id-Version: cracklib 2.9.6\n" + "Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" + "POT-Creation-Date: 2015-08-18 13:45-0500\n" +-"PO-Revision-Date: 2005-08-14 05:41+0200\n" +-"Last-Translator: Rinse de Vries \n" ++"PO-Revision-Date: 2016-09-01 06:35+0000\n" ++"Last-Translator: Geert Warrink \n" + "Language-Team: Dutch \n" +-"Language: nl\n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=UTF-8\n" + "Content-Transfer-Encoding: 8bit\n" +-"X-Generator: KBabel 1.10.2\n" +-"Plural-Forms: nplurals=2; plural=(n != 1);\n" ++"Language: nl\n" ++"Plural-Forms: nplurals=2; plural=(n != 1);\n" ++"X-Generator: Zanata 4.6.2\n" + + #: lib/fascist.c:516 + msgid "it is based on your username" +@@ -82,4 +83,4 @@ + + #: lib/fascist.c:865 + msgid "error loading dictionary" +-msgstr "" ++msgstr "fout bij laden woordenboek" +diff -urN cracklib-2.9.6.old/po/or.po cracklib-2.9.6.new/po/or.po +--- cracklib-2.9.6.old/po/or.po 2015-08-18 20:48:15.000000000 +0200 ++++ cracklib-2.9.6.new/po/or.po 2018-10-09 11:57:33.761928776 +0200 @@ -1,84 +1,85 @@ # translation of cracklib.default.cracklib.or.po to Oriya # Copyright (C) 2009 Free Software Foundation, Inc. @@ -1608,29 +2092,25 @@ diff -up cracklib-2.9.6/po/or.po.translations cracklib-2.9.6/po/or.po msgid "error loading dictionary" -msgstr "" +msgstr "ଅଭିଧାନ ଧାରଣ କରିବାରେ ତ୍ରୁଟି" -diff -up cracklib-2.9.6/po/pa.po.translations cracklib-2.9.6/po/pa.po ---- cracklib-2.9.6/po/pa.po.translations 2015-10-22 18:24:54.378118779 +0200 -+++ cracklib-2.9.6/po/pa.po 2014-07-09 17:24:45.000000000 +0200 -@@ -2,84 +2,85 @@ - # translation of cracklib.po to Panjabi - # Copyright (C) 2005 Free Software Foundation, Inc. - # This file is distributed under the same license as the PACKAGE package. --# -+# +diff -urN cracklib-2.9.6.old/po/pa.po cracklib-2.9.6.new/po/pa.po +--- cracklib-2.9.6.old/po/pa.po 2015-08-18 20:48:15.000000000 +0200 ++++ cracklib-2.9.6.new/po/pa.po 2018-10-09 11:38:05.301740041 +0200 +@@ -5,24 +5,26 @@ + # # Amanpreet Singh Alam[ਆਲਮ] , 2005, 2009. # A S Alam , 2009. -+# asaini , 2013. #zanata ++# Jan Dittberner , 2016. #zanata ++# A S Alam , 2017. #zanata msgid "" msgstr "" - "Project-Id-Version: cracklib.pa\n" --"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" --"POT-Creation-Date: 2015-08-18 13:45-0500\n" +-"Project-Id-Version: cracklib.pa\n" ++"Project-Id-Version: cracklib 2.9.6\n" + "Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" + "POT-Creation-Date: 2015-08-18 13:45-0500\n" -"PO-Revision-Date: 2009-11-17 05:52+0530\n" -"Last-Translator: A S Alam \n" -+"Report-Msgid-Bugs-To: \n" -+"POT-Creation-Date: 2012-12-14 16:11-0600\n" -+"PO-Revision-Date: 2013-10-08 08:06-0400\n" -+"Last-Translator: asaini \n" ++"PO-Revision-Date: 2017-08-18 07:15+0000\n" ++"Last-Translator: A S Alam \n" "Language-Team: Punjabi/Panjabi \n" -"Language: \n" "MIME-Version: 1.0\n" @@ -1639,227 +2119,208 @@ diff -up cracklib-2.9.6/po/pa.po.translations cracklib-2.9.6/po/pa.po -"X-Generator: Lokalize 1.0\n" +"Language: pa\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -+"X-Generator: Zanata 3.1.2\n" ++"X-Generator: Zanata 4.6.2\n" --#: lib/fascist.c:516 -+#: ../lib/fascist.c:550 -+msgid "you are not registered in the password file" -+msgstr "ਤੁਸੀਂ ਪਾਸਵਰਡ ਫਾਇਲ 'ਚ ਰਜਿਸਟਰ ਨਹੀਂ ਹੋ" -+ -+#: ../lib/fascist.c:564 + #: lib/fascist.c:516 msgid "it is based on your username" - msgstr "ਇਹ ਤੁਹਾਡੇ ਯੂਜ਼ਰ-ਨਾਂ ਮੁਤਾਬਿਕ ਨਹੀਂ ਹੈ" +-msgstr "ਇਹ ਤੁਹਾਡੇ ਯੂਜ਼ਰ-ਨਾਂ ਮੁਤਾਬਿਕ ਨਹੀਂ ਹੈ" ++msgstr "ਇਹ ਤੁਹਾਡੇ ਵਰਤੋਂਕਾਰ-ਨਾਂ ਮੁਤਾਬਕ ਹੈ" --#: lib/fascist.c:576 -+#: ../lib/fascist.c:629 + #: lib/fascist.c:576 msgid "it is based upon your password entry" - msgstr "ਇਹ ਤੁਹਾਡੇ ਪਾਸਵਰਡ ਐਂਟਰੀ ਮੁਤਾਬਕ ਹੈ" +@@ -50,7 +52,7 @@ --#: lib/fascist.c:591 -+#: ../lib/fascist.c:649 - msgid "it is derived from your password entry" - msgstr "ਇਹ ਤੁਹਾਡੇ ਪਾਸਵਰਡ ਐਂਟਰੀ ਤੋਂ ਬਣਾਇਆ ਗਿਆ ਹੈ" - --#: lib/fascist.c:599 -+#: ../lib/fascist.c:662 - msgid "it's derived from your password entry" - msgstr "ਇਹ ਤੁਹਾਡੇ ਪਾਸਵਰਡ ਐਂਟਰੀ ਤੋਂ ਬਣਾਇਆ ਗਿਆ ਹੈ" - --#: lib/fascist.c:608 -+#: ../lib/fascist.c:676 - msgid "it is derivable from your password entry" - msgstr "ਇਹ ਤੁਹਾਡੇ ਪਾਸਵਰਡ ਐਂਟਰੀ ਤੋਂ ਬਣਾਉਣ ਯੋਗ ਹੈ" - --#: lib/fascist.c:617 -+#: ../lib/fascist.c:690 - msgid "it's derivable from your password entry" - msgstr "ਇਹ ਤੁਹਾਡੇ ਪਾਸਵਰਡ ਐਂਟਰੀ ਤੋਂ ਬਣਾਉਣਯੋਗ ਹੈ" - --#: lib/fascist.c:674 --msgid "you are not registered in the password file" --msgstr "ਤੁਸੀਂ ਪਾਸਵਰਡ ਫਾਇਲ 'ਚ ਰਜਿਸਟਰ ਨਹੀਂ ਹੋ" -- --#: lib/fascist.c:709 -+#: ../lib/fascist.c:726 + #: lib/fascist.c:709 msgid "it is WAY too short" - msgstr "ਇਹ ਬਹੁਤ ਹੀ ਛੋਟਾ ਢੰਗ ਹੈ" +-msgstr "ਇਹ ਬਹੁਤ ਹੀ ਛੋਟਾ ਢੰਗ ਹੈ" ++msgstr "ਇਹ ਬਹੁਤ ਹੀ ਛੋਟਾ ਹੈ" --#: lib/fascist.c:714 -+#: ../lib/fascist.c:731 + #: lib/fascist.c:714 msgid "it is too short" - msgstr "ਇਹ ਬਹੁਤ ਛੋਟਾ ਹੈ" +@@ -70,7 +72,7 @@ --#: lib/fascist.c:731 -+#: ../lib/fascist.c:748 - msgid "it does not contain enough DIFFERENT characters" - msgstr "ਇਹ ਵਿੱਚ ਲੋੜੀਦੇ*ਵੱਖਰੇ* ਅੱਖਰ ਮੌਜੂਦ ਨਹੀਂ ਹਨ" - --#: lib/fascist.c:745 -+#: ../lib/fascist.c:762 - msgid "it is all whitespace" - msgstr "ਇਹ ਸਿਰਫ਼ ਖਾਲੀ ਥਾਂ ਹੈ" - --#: lib/fascist.c:764 -+#: ../lib/fascist.c:781 - msgid "it is too simplistic/systematic" - msgstr "ਇਹ ਬਹੁਤ ਸਧਾਰਨ/ਇਕਸਾਰ ਜਿਹਾ ਹੈ" - --#: lib/fascist.c:769 -+#: ../lib/fascist.c:786 + #: lib/fascist.c:769 msgid "it looks like a National Insurance number." - msgstr "ਇਹ ਰਾਸ਼ਟਰੀ ਸੁਰੱਖਿਆ ਨੰਬਰ ਵਰਗਾ ਜਾਪਦਾ ਹੈ।" +-msgstr "ਇਹ ਰਾਸ਼ਟਰੀ ਸੁਰੱਖਿਆ ਨੰਬਰ ਵਰਗਾ ਜਾਪਦਾ ਹੈ।" ++msgstr "ਇਹ ਨੈਸ਼ਨਲ ਇਨਸ਼ੋਅਰੈਂਸ ਨੰਬਰ ਵਰਗਾ ਜਾਪਦਾ ਹੈ।" --#: lib/fascist.c:801 -+#: ../lib/fascist.c:813 + #: lib/fascist.c:801 msgid "it is based on a dictionary word" - msgstr "ਇਹ ਡਿਕਸ਼ਨਰੀ ਸ਼ਬਦ ਉੱਤੇ ਅਧਾਰਿਤ ਹੈ" +@@ -78,8 +80,8 @@ --#: lib/fascist.c:820 -+#: ../lib/fascist.c:832 + #: lib/fascist.c:820 msgid "it is based on a (reversed) dictionary word" - msgstr "ਇਹ (ਉਲਟੇ) ਡਿਕਸ਼ਨਰੀ ਸ਼ਬਦ ਉੱਤੇ ਅਧਾਰਿਤ ਹੈ" +-msgstr "ਇਹ (ਉਲਟੇ) ਡਿਕਸ਼ਨਰੀ ਸ਼ਬਦ ਉੱਤੇ ਅਧਾਰਿਤ ਹੈ" ++msgstr "ਇਹ (ਉਲਟ) ਡਿਕਸ਼ਨਰੀ ਸ਼ਬਦ ਉੱਤੇ ਅਧਾਰਿਤ ਹੈ" --#: lib/fascist.c:865 -+#: ../lib/fascist.c:867 + #: lib/fascist.c:865 msgid "error loading dictionary" -msgstr "" -+msgstr "ਸ਼ਬਦ-ਕੋਸ਼ ਲੋਡ ਕਰਨ ਵੇਲੇ ਗਲਤੀ" -diff -up cracklib-2.9.6/po/pt_BR.po.translations cracklib-2.9.6/po/pt_BR.po ---- cracklib-2.9.6/po/pt_BR.po.translations 2015-10-22 18:24:54.378118779 +0200 -+++ cracklib-2.9.6/po/pt_BR.po 2014-07-09 17:24:45.000000000 +0200 -@@ -2,80 +2,82 @@ ++msgstr "ਡਿਕਸ਼ਨਰੀ ਲੋਡ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ" +diff -urN cracklib-2.9.6.old/po/pl.po cracklib-2.9.6.new/po/pl.po +--- cracklib-2.9.6.old/po/pl.po 2015-08-18 20:48:15.000000000 +0200 ++++ cracklib-2.9.6.new/po/pl.po 2018-10-09 11:38:10.401865781 +0200 +@@ -1,19 +1,22 @@ + # translation of pl.po to Polish + # Piotr Bolek , 2005. + # Piotr Drąg , 2009. +-# ++# Jan Dittberner , 2016. #zanata ++# Piotr Drąg , 2016. #zanata + msgid "" + msgstr "" +-"Project-Id-Version: pl\n" ++"Project-Id-Version: cracklib 2.9.6\n" + "Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" + "POT-Creation-Date: 2015-08-18 13:45-0500\n" +-"PO-Revision-Date: 2009-10-12 15:57+0200\n" ++"PO-Revision-Date: 2016-08-31 09:50+0000\n" + "Last-Translator: Piotr Drąg \n" + "Language-Team: Polish \n" +-"Language: pl\n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=UTF-8\n" + "Content-Transfer-Encoding: 8bit\n" ++"Language: pl\n" ++"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" ++"X-Generator: Zanata 4.6.2\n" + + #: lib/fascist.c:516 + msgid "it is based on your username" +@@ -21,27 +24,27 @@ + + #: lib/fascist.c:576 + msgid "it is based upon your password entry" +-msgstr "oparte na wpisie w pliku passwd" ++msgstr "oparte na wpisie w pliku passwd" + + #: lib/fascist.c:591 + msgid "it is derived from your password entry" +-msgstr "pochodzi od wpisu w pliku passwd" ++msgstr "pochodzi od wpisu w pliku passwd" + + #: lib/fascist.c:599 + msgid "it's derived from your password entry" +-msgstr "pochodzi od wpisu w pliku passwd" ++msgstr "pochodzi od wpisu w pliku passwd" + + #: lib/fascist.c:608 + msgid "it is derivable from your password entry" +-msgstr "da się odtworzyć z wpisu w pliku passwd" ++msgstr "da się odtworzyć z wpisu w pliku passwd" + + #: lib/fascist.c:617 + msgid "it's derivable from your password entry" +-msgstr "da się odtworzyć z wpisu w pliku passwd" ++msgstr "da się odtworzyć z wpisu w pliku passwd" + + #: lib/fascist.c:674 + msgid "you are not registered in the password file" +-msgstr "nie zarejestrowano w pliku passwd" ++msgstr "nie zarejestrowano w pliku passwd" + + #: lib/fascist.c:709 + msgid "it is WAY too short" +@@ -77,4 +80,4 @@ + + #: lib/fascist.c:865 + msgid "error loading dictionary" +-msgstr "" ++msgstr "błąd podczas wczytywania słownika" +diff -urN cracklib-2.9.6.old/po/pt_BR.po cracklib-2.9.6.new/po/pt_BR.po +--- cracklib-2.9.6.old/po/pt_BR.po 2015-08-18 20:48:15.000000000 +0200 ++++ cracklib-2.9.6.new/po/pt_BR.po 2018-10-09 11:38:18.293060531 +0200 +@@ -2,19 +2,21 @@ # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. -# -+# gcintra , 2013. #zanata ++# Daniel Lara , 2016. #zanata msgid "" msgstr "" - "Project-Id-Version: cracklib\n" --"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" --"POT-Creation-Date: 2015-08-18 13:45-0500\n" +-"Project-Id-Version: cracklib\n" ++"Project-Id-Version: cracklib 2.9.6\n" + "Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" + "POT-Creation-Date: 2015-08-18 13:45-0500\n" -"PO-Revision-Date: 2005-08-18 15:02+0000\n" -"Last-Translator: Novell Language \n" -+"Report-Msgid-Bugs-To: \n" -+"POT-Creation-Date: 2012-12-14 16:11-0600\n" -+"PO-Revision-Date: 2013-09-30 08:53-0400\n" -+"Last-Translator: gcintra \n" ++"PO-Revision-Date: 2018-08-16 12:44+0000\n" ++"Last-Translator: Copied by Zanata \n" "Language-Team: Novell Language \n" -"Language: \n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -+"Language: pt-BR\n" -+"X-Generator: Zanata 3.1.2\n" ++"Language: pt_BR\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" ++"X-Generator: Zanata 4.6.2\n" --#: lib/fascist.c:516 -+#: ../lib/fascist.c:550 -+msgid "you are not registered in the password file" -+msgstr "você não está registrado no arquivo de senha" -+ -+#: ../lib/fascist.c:564 + #: lib/fascist.c:516 msgid "it is based on your username" - msgstr "é baseada no seu nome de usuário" +@@ -78,4 +80,4 @@ --#: lib/fascist.c:576 -+#: ../lib/fascist.c:629 - msgid "it is based upon your password entry" - msgstr "é baseada na sua entrada de senha" - --#: lib/fascist.c:591 -+#: ../lib/fascist.c:649 - msgid "it is derived from your password entry" - msgstr "deriva de sua entrada de senha" - --#: lib/fascist.c:599 -+#: ../lib/fascist.c:662 - msgid "it's derived from your password entry" - msgstr "deriva de sua entrada de senha" - --#: lib/fascist.c:608 -+#: ../lib/fascist.c:676 - msgid "it is derivable from your password entry" - msgstr "é derivável de sua entrada de senha" - --#: lib/fascist.c:617 -+#: ../lib/fascist.c:690 - msgid "it's derivable from your password entry" - msgstr "é derivável de sua entrada de senha" - --#: lib/fascist.c:674 --msgid "you are not registered in the password file" --msgstr "você não está registrado no arquivo de senha" -- --#: lib/fascist.c:709 -+#: ../lib/fascist.c:726 - msgid "it is WAY too short" - msgstr "é MUITO curta" - --#: lib/fascist.c:714 -+#: ../lib/fascist.c:731 - msgid "it is too short" - msgstr "é muito curta" - --#: lib/fascist.c:731 -+#: ../lib/fascist.c:748 - msgid "it does not contain enough DIFFERENT characters" - msgstr "não contém caracteres DIFERENTES suficientes" - --#: lib/fascist.c:745 -+#: ../lib/fascist.c:762 - msgid "it is all whitespace" - msgstr "só contém espaços em branco" - --#: lib/fascist.c:764 -+#: ../lib/fascist.c:781 - msgid "it is too simplistic/systematic" - msgstr "é muito simples/sistemática" - --#: lib/fascist.c:769 -+#: ../lib/fascist.c:786 - msgid "it looks like a National Insurance number." - msgstr "parece um número de documento oficial." - --#: lib/fascist.c:801 -+#: ../lib/fascist.c:813 - msgid "it is based on a dictionary word" - msgstr "é uma palavra da língua portuguesa" - --#: lib/fascist.c:820 -+#: ../lib/fascist.c:832 - msgid "it is based on a (reversed) dictionary word" - msgstr "é baseada em uma palavra da língua portuguesa (ao contrário)" - --#: lib/fascist.c:865 -+#: ../lib/fascist.c:867 + #: lib/fascist.c:865 msgid "error loading dictionary" -msgstr "" +msgstr "erro ao carregar dicionário" -diff -up cracklib-2.9.6/po/ru.po.translations cracklib-2.9.6/po/ru.po ---- cracklib-2.9.6/po/ru.po.translations 2015-10-22 18:24:54.378118779 +0200 -+++ cracklib-2.9.6/po/ru.po 2014-07-09 17:24:45.000000000 +0200 -@@ -1,85 +1,86 @@ - # translation of cracklib.pot to Russian - # Copyright (C) 2008, 2009 - # This file is distributed under the same license as the cracklib package. +diff -urN cracklib-2.9.6.old/po/pt.po cracklib-2.9.6.new/po/pt.po +--- cracklib-2.9.6.old/po/pt.po 2015-08-18 20:48:15.000000000 +0200 ++++ cracklib-2.9.6.new/po/pt.po 2018-10-09 11:37:57.475547088 +0200 +@@ -2,20 +2,22 @@ + # Copyright (C) 2005 Free Software Foundation, Inc. + # This file is distributed under the same license as the PACKAGE package. + # Antonio Cardoso Martins , 2005. -# -+# - # Anton Dobkin , 2008. - # Yulia Poyarko , 2009. -+# ypoyarko , 2013. #zanata ++# Jan Dittberner , 2016. #zanata ++# Ricardo Pinto , 2016. #zanata msgid "" msgstr "" - "Project-Id-Version: cracklib\n" --"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" --"POT-Creation-Date: 2015-08-18 13:45-0500\n" +-"Project-Id-Version: cracklib.pt\n" ++"Project-Id-Version: cracklib 2.9.6\n" + "Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" + "POT-Creation-Date: 2015-08-18 13:45-0500\n" +-"PO-Revision-Date: 2005-08-05 00:45+0100\n" +-"Last-Translator: Antonio Cardoso Martins \n" ++"PO-Revision-Date: 2016-09-05 10:12+0000\n" ++"Last-Translator: Ricardo Pinto \n" + "Language-Team: portuguese\n" +-"Language: \n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=UTF-8\n" + "Content-Transfer-Encoding: 8bit\n" +-"X-Generator: KBabel 1.10\n" ++"Language: pt\n" ++"Plural-Forms: nplurals=2; plural=(n != 1)\n" ++"X-Generator: Zanata 4.6.2\n" + + #: lib/fascist.c:516 + msgid "it is based on your username" +@@ -79,4 +81,4 @@ + + #: lib/fascist.c:865 + msgid "error loading dictionary" +-msgstr "" ++msgstr "erro ao carregar o dicionário" +diff -urN cracklib-2.9.6.old/po/ru.po cracklib-2.9.6.new/po/ru.po +--- cracklib-2.9.6.old/po/ru.po 2015-08-18 20:48:15.000000000 +0200 ++++ cracklib-2.9.6.new/po/ru.po 2018-10-09 11:38:50.654867472 +0200 +@@ -4,45 +4,46 @@ + # + # Anton Dobkin , 2008. + # Yulia Poyarko , 2009. ++# Igor Gorbounov , 2016. #zanata ++# Jan Dittberner , 2016. #zanata + msgid "" + msgstr "" +-"Project-Id-Version: cracklib\n" ++"Project-Id-Version: cracklib 2.9.6\n" + "Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" + "POT-Creation-Date: 2015-08-18 13:45-0500\n" -"PO-Revision-Date: 2009-12-03 10:17+1100\n" -"Last-Translator: Yulia \n" -+"Report-Msgid-Bugs-To: \n" -+"POT-Creation-Date: 2012-12-14 16:11-0600\n" -+"PO-Revision-Date: 2013-09-22 07:44-0400\n" -+"Last-Translator: ypoyarko \n" ++"PO-Revision-Date: 2018-08-16 12:43+0000\n" ++"Last-Translator: Copied by Zanata \n" "Language-Team: \n" -"Language: \n" "MIME-Version: 1.0\n" @@ -1869,100 +2330,283 @@ diff -up cracklib-2.9.6/po/ru.po.translations cracklib-2.9.6/po/ru.po -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Language: ru\n" -+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " -+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -+"X-Generator: Zanata 3.1.2\n" ++"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" ++"X-Generator: Zanata 4.6.2\n" --#: lib/fascist.c:516 -+#: ../lib/fascist.c:550 -+msgid "you are not registered in the password file" -+msgstr "вы не зарегистрированы в файле паролей" -+ -+#: ../lib/fascist.c:564 + #: lib/fascist.c:516 msgid "it is based on your username" - msgstr "основан на вашем имени пользователя" +-msgstr "основан на вашем имени пользователя" ++msgstr "на основе вашего имени пользователя" --#: lib/fascist.c:576 -+#: ../lib/fascist.c:629 + #: lib/fascist.c:576 msgid "it is based upon your password entry" -msgstr "основан на вашем входном пароле" -+msgstr "основан на вашем пароле" ++msgstr "на основе введенного вами пароля" --#: lib/fascist.c:591 -+#: ../lib/fascist.c:649 + #: lib/fascist.c:591 msgid "it is derived from your password entry" - msgstr "получен из вашего входного пароля" +-msgstr "получен из вашего входного пароля" ++msgstr "получен из введенного вами пароля" --#: lib/fascist.c:599 -+#: ../lib/fascist.c:662 + #: lib/fascist.c:599 msgid "it's derived from your password entry" - msgstr "получен из вашего входного пароля" +-msgstr "получен из вашего входного пароля" ++msgstr "получен из введенного вами пароля" --#: lib/fascist.c:608 -+#: ../lib/fascist.c:676 + #: lib/fascist.c:608 msgid "it is derivable from your password entry" -msgstr "получен из вашего входного пароля" -+msgstr "получен из вашего пароля" ++msgstr "получается из введенного вами пароля" --#: lib/fascist.c:617 -+#: ../lib/fascist.c:690 + #: lib/fascist.c:617 msgid "it's derivable from your password entry" -msgstr "получен из вашего входного пароля" -+msgstr "получен из вашего пароля" ++msgstr "получается из введенного вами пароля" --#: lib/fascist.c:674 --msgid "you are not registered in the password file" --msgstr "вы не зарегистрированы в файле паролей" -- --#: lib/fascist.c:709 -+#: ../lib/fascist.c:726 - msgid "it is WAY too short" --msgstr "СЛИШКОМ короткий" + #: lib/fascist.c:674 + msgid "you are not registered in the password file" +@@ -54,11 +55,11 @@ + + #: lib/fascist.c:714 + msgid "it is too short" +-msgstr "короткий" +msgstr "слишком короткий" --#: lib/fascist.c:714 -+#: ../lib/fascist.c:731 - msgid "it is too short" - msgstr "короткий" - --#: lib/fascist.c:731 -+#: ../lib/fascist.c:748 + #: lib/fascist.c:731 msgid "it does not contain enough DIFFERENT characters" - msgstr "не содержит достаточное число РАЗЛИЧНЫХ символов" +-msgstr "не содержит достаточное число РАЗЛИЧНЫХ символов" ++msgstr "не содержит достаточного числа РАЗЛИЧНЫХ символов" --#: lib/fascist.c:745 -+#: ../lib/fascist.c:762 + #: lib/fascist.c:745 msgid "it is all whitespace" - msgstr "состоит из пробелов" +@@ -70,16 +71,16 @@ --#: lib/fascist.c:764 -+#: ../lib/fascist.c:781 - msgid "it is too simplistic/systematic" - msgstr "слишком простой" - --#: lib/fascist.c:769 -+#: ../lib/fascist.c:786 + #: lib/fascist.c:769 msgid "it looks like a National Insurance number." - msgstr "похож на число государственного страхования." +-msgstr "похож на число государственного страхования." ++msgstr "похож на номер государственного страхования." --#: lib/fascist.c:801 -+#: ../lib/fascist.c:813 + #: lib/fascist.c:801 msgid "it is based on a dictionary word" - msgstr "основан на слове из словаря" +-msgstr "основан на слове из словаря" ++msgstr "на основе слова из словаря" --#: lib/fascist.c:820 -+#: ../lib/fascist.c:832 + #: lib/fascist.c:820 msgid "it is based on a (reversed) dictionary word" - msgstr "основан на измененном слове из словаря" +-msgstr "основан на измененном слове из словаря" ++msgstr "на основе (перевернутого) слова из словаря" --#: lib/fascist.c:865 -+#: ../lib/fascist.c:867 + #: lib/fascist.c:865 msgid "error loading dictionary" -msgstr "" +msgstr "ошибка при загрузке словаря" -diff -up cracklib-2.9.6/po/ta.po.translations cracklib-2.9.6/po/ta.po ---- cracklib-2.9.6/po/ta.po.translations 2015-10-22 18:24:54.378118779 +0200 -+++ cracklib-2.9.6/po/ta.po 2014-07-09 17:24:45.000000000 +0200 +diff -urN cracklib-2.9.6.old/po/sk.po cracklib-2.9.6.new/po/sk.po +--- cracklib-2.9.6.old/po/sk.po 2015-08-18 20:48:15.000000000 +0200 ++++ cracklib-2.9.6.new/po/sk.po 2018-10-09 11:39:19.259580732 +0200 +@@ -1,20 +1,22 @@ + # translation of cracklib.po to Slovak + # This file is put in the public domain. + # Stanislav Visnovsky , 2003. +-# ++# Jan Dittberner , 2016. #zanata ++# feonsu , 2016. #zanata + msgid "" + msgstr "" +-"Project-Id-Version: cracklib\n" ++"Project-Id-Version: cracklib 2.9.6\n" + "Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" + "POT-Creation-Date: 2015-08-18 13:45-0500\n" +-"PO-Revision-Date: 2005-06-23 13:12+02:00\n" +-"Last-Translator: Stanislav Visnovsky \n" ++"PO-Revision-Date: 2016-10-11 06:53+0000\n" ++"Last-Translator: feonsu \n" + "Language-Team: Slovak \n" +-"Language: sk\n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=UTF-8\n" + "Content-Transfer-Encoding: 8bit\n" +-"X-Generator: KBabel 1.2beta3\n" ++"Language: sk\n" ++"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2\n" ++"X-Generator: Zanata 4.6.2\n" + + #: lib/fascist.c:516 + msgid "it is based on your username" +@@ -78,4 +80,4 @@ + + #: lib/fascist.c:865 + msgid "error loading dictionary" +-msgstr "" ++msgstr "chyba pri načítavaní slovníka" +diff -urN cracklib-2.9.6.old/po/sq.po cracklib-2.9.6.new/po/sq.po +--- cracklib-2.9.6.old/po/sq.po 1970-01-01 01:00:00.000000000 +0100 ++++ cracklib-2.9.6.new/po/sq.po 2018-10-09 11:39:15.354483358 +0200 +@@ -0,0 +1,79 @@ ++# Jona Azizaj , 2017. #zanata ++msgid "" ++msgstr "" ++"Project-Id-Version: cracklib 2.9.6\n" ++"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" ++"POT-Creation-Date: 2015-08-18 13:45-0500\n" ++"PO-Revision-Date: 2017-04-17 10:20+0000\n" ++"Last-Translator: Anxhela Hyseni \n" ++"Language-Team: Albanian\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=UTF-8\n" ++"Content-Transfer-Encoding: 8bit\n" ++"Language: sq\n" ++"Plural-Forms: nplurals=2; plural=(n != 1)\n" ++"X-Generator: Zanata 4.6.2\n" ++ ++#: lib/fascist.c:516 ++msgid "it is based on your username" ++msgstr "kjo është bazuar në emrin e përdoruesit tuaj" ++ ++#: lib/fascist.c:576 ++msgid "it is based upon your password entry" ++msgstr "kjo është bazuar në fjalëkalimin që ju keni dhënë" ++ ++#: lib/fascist.c:591 ++msgid "it is derived from your password entry" ++msgstr "kjo është përftuar nga fjalëkalimi që ju keni dhënë" ++ ++#: lib/fascist.c:599 ++msgid "it's derived from your password entry" ++msgstr "kjo është përftuar nga fjalëkalimi që ju keni dhënë" ++ ++#: lib/fascist.c:608 ++msgid "it is derivable from your password entry" ++msgstr "kjo u përfitua nga fjalëkalimi që ju keni dhënë" ++ ++#: lib/fascist.c:617 ++msgid "it's derivable from your password entry" ++msgstr "kjo u përfitua nga fjalëkalimi që ju keni dhënë" ++ ++#: lib/fascist.c:674 ++msgid "you are not registered in the password file" ++msgstr "ju nuk jeni regjistruar në skedarin e fjalëkalimit" ++ ++#: lib/fascist.c:709 ++msgid "it is WAY too short" ++msgstr "kjo është JASHTËZAKONISHT shumë e shkurtër" ++ ++#: lib/fascist.c:714 ++msgid "it is too short" ++msgstr "kjo është shumë e shkurtër" ++ ++#: lib/fascist.c:731 ++msgid "it does not contain enough DIFFERENT characters" ++msgstr "nuk përmban mjaftueshëm karaktere të NDRYSHME" ++ ++#: lib/fascist.c:745 ++msgid "it is all whitespace" ++msgstr "është e gjitha hapësirë e bardhë" ++ ++#: lib/fascist.c:764 ++msgid "it is too simplistic/systematic" ++msgstr "është shumë i thjeshtë/ sistematik" ++ ++#: lib/fascist.c:769 ++msgid "it looks like a National Insurance number." ++msgstr "ngjan sikur është numër Sigurimi Kombëtar." ++ ++#: lib/fascist.c:801 ++msgid "it is based on a dictionary word" ++msgstr "është bazuar në një fjalë në fjalor" ++ ++#: lib/fascist.c:820 ++msgid "it is based on a (reversed) dictionary word" ++msgstr "është bazuar në një fjalë (mbrapsht) në fjalor" ++ ++#: lib/fascist.c:865 ++msgid "error loading dictionary" ++msgstr "gabim në ngarkimin e fjalorit" +diff -urN cracklib-2.9.6.old/po/sv.po cracklib-2.9.6.new/po/sv.po +--- cracklib-2.9.6.old/po/sv.po 1970-01-01 01:00:00.000000000 +0100 ++++ cracklib-2.9.6.new/po/sv.po 2018-10-09 11:39:17.304531983 +0200 +@@ -0,0 +1,79 @@ ++# Göran Uddeborg , 2017. #zanata ++msgid "" ++msgstr "" ++"Project-Id-Version: cracklib 2.9.6\n" ++"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" ++"POT-Creation-Date: 2015-08-18 13:45-0500\n" ++"PO-Revision-Date: 2017-03-29 03:16+0000\n" ++"Last-Translator: Göran Uddeborg \n" ++"Language-Team: Swedish\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=UTF-8\n" ++"Content-Transfer-Encoding: 8bit\n" ++"Language: sv\n" ++"Plural-Forms: nplurals=2; plural=(n != 1)\n" ++"X-Generator: Zanata 4.6.2\n" ++ ++#: lib/fascist.c:516 ++msgid "it is based on your username" ++msgstr "det är baserat på ditt användarnamn" ++ ++#: lib/fascist.c:576 ++msgid "it is based upon your password entry" ++msgstr "det är baserat på din lösenordspost" ++ ++#: lib/fascist.c:591 ++msgid "it is derived from your password entry" ++msgstr "det är härlett från din lösenordspost" ++ ++#: lib/fascist.c:599 ++msgid "it's derived from your password entry" ++msgstr "det är härlett från din lösenordspost" ++ ++#: lib/fascist.c:608 ++msgid "it is derivable from your password entry" ++msgstr "det är härledbart från din lösenordspost" ++ ++#: lib/fascist.c:617 ++msgid "it's derivable from your password entry" ++msgstr "det är härledbart från din lösenordspost" ++ ++#: lib/fascist.c:674 ++msgid "you are not registered in the password file" ++msgstr "du är inte registrerad i lösenordsfilen" ++ ++#: lib/fascist.c:709 ++msgid "it is WAY too short" ++msgstr "det är ALLDELES för kort" ++ ++#: lib/fascist.c:714 ++msgid "it is too short" ++msgstr "det är för kort" ++ ++#: lib/fascist.c:731 ++msgid "it does not contain enough DIFFERENT characters" ++msgstr "det innehåller inte tillräckligt med OLIKA tecken" ++ ++#: lib/fascist.c:745 ++msgid "it is all whitespace" ++msgstr "det är bara blanktecken" ++ ++#: lib/fascist.c:764 ++msgid "it is too simplistic/systematic" ++msgstr "det är för simplistiskt/systematiskt" ++ ++#: lib/fascist.c:769 ++msgid "it looks like a National Insurance number." ++msgstr "det ser ut som ett personnummer" ++ ++#: lib/fascist.c:801 ++msgid "it is based on a dictionary word" ++msgstr "det är baserat på ett ord ur ordlistan" ++ ++#: lib/fascist.c:820 ++msgid "it is based on a (reversed) dictionary word" ++msgstr "det är baserat på ett (omvänt) ord ur ordlistan" ++ ++#: lib/fascist.c:865 ++msgid "error loading dictionary" ++msgstr "fel när ordlistan lästes in" +diff -urN cracklib-2.9.6.old/po/ta.po cracklib-2.9.6.new/po/ta.po +--- cracklib-2.9.6.old/po/ta.po 2015-08-18 20:48:15.000000000 +0200 ++++ cracklib-2.9.6.new/po/ta.po 2018-10-09 11:57:33.761928776 +0200 @@ -1,83 +1,84 @@ # translation of cracklib.default.cracklib.po to Tamil # Copyright (C) 2009 Free Software Foundation, Inc. @@ -2075,9 +2719,9 @@ diff -up cracklib-2.9.6/po/ta.po.translations cracklib-2.9.6/po/ta.po msgid "error loading dictionary" -msgstr "" +msgstr "அகராதியை ஏற்றுவதில் பிழை" -diff -up cracklib-2.9.6/po/te.po.translations cracklib-2.9.6/po/te.po ---- cracklib-2.9.6/po/te.po.translations 2015-10-22 18:24:54.379118803 +0200 -+++ cracklib-2.9.6/po/te.po 2014-07-09 17:24:45.000000000 +0200 +diff -urN cracklib-2.9.6.old/po/te.po cracklib-2.9.6.new/po/te.po +--- cracklib-2.9.6.old/po/te.po 2015-08-18 20:48:15.000000000 +0200 ++++ cracklib-2.9.6.new/po/te.po 2018-10-09 11:57:33.761928776 +0200 @@ -1,84 +1,85 @@ # translation of cracklib.pot to Telugu # Copyright (C) 2009 Free Software Foundation, Inc. @@ -2191,221 +2835,250 @@ diff -up cracklib-2.9.6/po/te.po.translations cracklib-2.9.6/po/te.po msgid "error loading dictionary" -msgstr "" +msgstr "నిఘంటువును లోడు చేయుటలో దోషం" -diff -up cracklib-2.9.6/po/zh_CN.po.translations cracklib-2.9.6/po/zh_CN.po ---- cracklib-2.9.6/po/zh_CN.po.translations 2011-07-26 11:55:29.000000000 +0200 -+++ cracklib-2.9.6/po/zh_CN.po 2014-07-09 17:24:45.000000000 +0200 -@@ -1,78 +1,84 @@ - # translation of cracklib.default.po to Wei Liu - # Copyright (C) 2010 Free Software Foundation, Inc. +diff -urN cracklib-2.9.6.old/po/tr.po cracklib-2.9.6.new/po/tr.po +--- cracklib-2.9.6.old/po/tr.po 2015-08-18 20:48:15.000000000 +0200 ++++ cracklib-2.9.6.new/po/tr.po 2018-10-09 11:38:00.427619872 +0200 +@@ -3,19 +3,21 @@ # This file is distributed under the same license as the PACKAGE package. --# -+# - # Leah Liu , 2010. -+# Leah Liu , 2013. #zanata + # + # Görkem Çetin , 2006. ++# Jan Dittberner , 2016. #zanata msgid "" msgstr "" - "Project-Id-Version: cracklib.default\n" - "Report-Msgid-Bugs-To: \n" - "POT-Creation-Date: 2010-03-02 21:00-0600\n" +-"Project-Id-Version: cracklib\n" ++"Project-Id-Version: cracklib 2.9.6\n" + "Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" + "POT-Creation-Date: 2015-08-18 13:45-0500\n" +-"PO-Revision-Date: 2006-03-12 22:56+0200\n" +-"Last-Translator: Görkem Çetin \n" +-"Language-Team: \n" +-"Language: \n" ++"PO-Revision-Date: 2016-06-18 01:03+0000\n" ++"Last-Translator: Copied by Zanata \n" ++"Language-Team: \n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=UTF-8\n" + "Content-Transfer-Encoding: 8bit\n" +-"X-Generator: KBabel 1.11\n" ++"Language: tr\n" ++"Plural-Forms: nplurals=2; plural=(n>1)\n" ++"X-Generator: Zanata 4.6.2\n" + + #: lib/fascist.c:516 + msgid "it is based on your username" +diff -urN cracklib-2.9.6.old/po/uk.po cracklib-2.9.6.new/po/uk.po +--- cracklib-2.9.6.old/po/uk.po 2015-08-18 20:48:15.000000000 +0200 ++++ cracklib-2.9.6.new/po/uk.po 2018-10-09 11:38:27.234283479 +0200 +@@ -2,21 +2,22 @@ + # This file is distributed under the same license as the PACKAGE package. + # + # Yuri Chornoivan , 2010. ++# Jan Dittberner , 2016. #zanata ++# Yuri Chornoivan , 2016. #zanata + msgid "" + msgstr "" +-"Project-Id-Version: \n" ++"Project-Id-Version: cracklib 2.9.6\n" + "Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" + "POT-Creation-Date: 2015-08-18 13:45-0500\n" +-"PO-Revision-Date: 2010-04-16 19:43+0300\n" ++"PO-Revision-Date: 2016-06-19 02:18+0000\n" + "Last-Translator: Yuri Chornoivan \n" + "Language-Team: Ukrainian \n" +-"Language: uk\n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=UTF-8\n" + "Content-Transfer-Encoding: 8bit\n" +-"X-Generator: Lokalize 1.0\n" +-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" ++"Language: uk\n" ++"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" ++"X-Generator: Zanata 4.6.2\n" + + #: lib/fascist.c:516 + msgid "it is based on your username" +@@ -80,4 +81,4 @@ + + #: lib/fascist.c:865 + msgid "error loading dictionary" +-msgstr "" ++msgstr "помилка під час спроби завантажити словник" +diff -urN cracklib-2.9.6.old/po/zh_CN.po cracklib-2.9.6.new/po/zh_CN.po +--- cracklib-2.9.6.old/po/zh_CN.po 2011-07-26 11:55:29.000000000 +0200 ++++ cracklib-2.9.6.new/po/zh_CN.po 2018-10-09 11:38:25.279234731 +0200 +@@ -1,78 +1,86 @@ +-# translation of cracklib.default.po to Wei Liu ++# translation of cracklib.po to Wei Liu + # Copyright (C) 2010 Free Software Foundation, Inc. +-# This file is distributed under the same license as the PACKAGE package. ++# This file is distributed under the same license as the cracklib package. + # + # Leah Liu , 2010. ++# translation of cracklib.default.po to Wei Liu ++# This file is distributed under the same license as the PACKAGE package. ++# Ludek Janda , 2018. #zanata + msgid "" + msgstr "" +-"Project-Id-Version: cracklib.default\n" +-"Report-Msgid-Bugs-To: \n" +-"POT-Creation-Date: 2010-03-02 21:00-0600\n" -"PO-Revision-Date: 2010-09-07 23:42+1000\n" -+"PO-Revision-Date: 2013-09-25 01:44-0400\n" - "Last-Translator: Leah Liu \n" +-"Last-Translator: Leah Liu \n" ++"Project-Id-Version: cracklib 2.9.6\n" ++"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" ++"POT-Creation-Date: 2015-08-18 13:45-0500\n" ++"PO-Revision-Date: 2018-08-21 09:51+0000\n" ++"Last-Translator: Copied by Zanata \n" "Language-Team: Wei Liu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.11.4\n" -+"Language: zh-CN\n" -+"X-Generator: Zanata 3.1.2\n" -+"Plural-Forms: nplurals=1; plural=0\n" - +- -#: lib/fascist.c:550 -+#: ../lib/fascist.c:550 - msgid "you are not registered in the password file" - msgstr "尚未在口令文件中注册" +-msgid "you are not registered in the password file" +-msgstr "尚未在口令文件中注册" ++"Language: zh_CN\n" ++"Plural-Forms: nplurals=1; plural=0\n" ++"X-Generator: Zanata 4.6.2\n" -#: lib/fascist.c:564 -+#: ../lib/fascist.c:564 ++#: lib/fascist.c:516 msgid "it is based on your username" - msgstr "它基于用户名" +-msgstr "它基于用户名" ++msgstr "它基于您的用户名" -#: lib/fascist.c:629 -+#: ../lib/fascist.c:629 ++#: lib/fascist.c:576 msgid "it is based upon your password entry" - msgstr "它基于输入的口令" +-msgstr "它基于输入的口令" ++msgstr "它基于您的密码" -#: lib/fascist.c:649 -+#: ../lib/fascist.c:649 ++#: lib/fascist.c:591 msgid "it is derived from your password entry" - msgstr "它派生自输入的口令" +-msgstr "它派生自输入的口令" ++msgstr "它根据您的密码生成" -#: lib/fascist.c:662 -+#: ../lib/fascist.c:662 ++#: lib/fascist.c:599 msgid "it's derived from your password entry" - msgstr "它派生自输入的口令" +-msgstr "它派生自输入的口令" ++msgstr "它根据您的密码生成" -#: lib/fascist.c:676 -+#: ../lib/fascist.c:676 ++#: lib/fascist.c:608 msgid "it is derivable from your password entry" - msgstr "可从输入的口令推断" +-msgstr "可从输入的口令推断" ++msgstr "它可以根据您的密码生成" -#: lib/fascist.c:690 -+#: ../lib/fascist.c:690 ++#: lib/fascist.c:617 msgid "it's derivable from your password entry" - msgstr "可从输入的口令推断" +-msgstr "可从输入的口令推断" ++msgstr "它可以根据您的密码生成" ++ ++#: lib/fascist.c:674 ++msgid "you are not registered in the password file" ++msgstr "您没有在密码文件中注册" -#: lib/fascist.c:726 -+#: ../lib/fascist.c:726 ++#: lib/fascist.c:709 msgid "it is WAY too short" - msgstr "WAY 过短" +-msgstr "WAY 过短" ++msgstr "太短" -#: lib/fascist.c:731 -+#: ../lib/fascist.c:731 ++#: lib/fascist.c:714 msgid "it is too short" - msgstr "过短" +-msgstr "过短" ++msgstr "太短" -#: lib/fascist.c:748 -+#: ../lib/fascist.c:748 ++#: lib/fascist.c:731 msgid "it does not contain enough DIFFERENT characters" - msgstr "它没有包含足够的不同字符" +-msgstr "它没有包含足够的不同字符" ++msgstr "不包括足够不同的字符" -#: lib/fascist.c:762 -+#: ../lib/fascist.c:762 ++#: lib/fascist.c:745 msgid "it is all whitespace" - msgstr "全是空格" +-msgstr "全是空格" ++msgstr "都是空白" -#: lib/fascist.c:781 -+#: ../lib/fascist.c:781 ++#: lib/fascist.c:764 msgid "it is too simplistic/systematic" - msgstr "过于简单化/系统化" +-msgstr "过于简单化/系统化" ++msgstr "太简单或太有规律" -#: lib/fascist.c:786 -+#: ../lib/fascist.c:786 ++#: lib/fascist.c:769 msgid "it looks like a National Insurance number." - msgstr "看起来像国家保险号码。" +-msgstr "看起来像国家保险号码。" ++msgstr "象国家保险号。" -#: lib/fascist.c:813 -+#: ../lib/fascist.c:813 ++#: lib/fascist.c:801 msgid "it is based on a dictionary word" - msgstr "它基于字典单词" +-msgstr "它基于字典单词" ++msgstr "它基于一个字典中的词" -#: lib/fascist.c:832 -+#: ../lib/fascist.c:832 ++#: lib/fascist.c:820 msgid "it is based on a (reversed) dictionary word" - msgstr "它基于(颠倒的)字典单词" +-msgstr "它基于(颠倒的)字典单词" ++msgstr "它基于一个字典中的词的反向拼写" -+#: ../lib/fascist.c:867 ++#: lib/fascist.c:865 +msgid "error loading dictionary" -+msgstr "载入字典出错" -diff -up cracklib-2.9.6/po/zh_TW.po.translations cracklib-2.9.6/po/zh_TW.po ---- cracklib-2.9.6/po/zh_TW.po.translations 2015-10-22 18:24:54.379118803 +0200 -+++ cracklib-2.9.6/po/zh_TW.po 2014-07-09 17:24:45.000000000 +0200 -@@ -2,80 +2,82 @@ ++msgstr "加载字典错误" +diff -urN cracklib-2.9.6.old/po/zh_TW.po cracklib-2.9.6.new/po/zh_TW.po +--- cracklib-2.9.6.old/po/zh_TW.po 2015-08-18 20:48:15.000000000 +0200 ++++ cracklib-2.9.6.new/po/zh_TW.po 2018-10-09 11:37:47.781308079 +0200 +@@ -2,19 +2,22 @@ # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. -# -+# tchuang , 2013. #zanata ++# Jan Dittberner , 2016. #zanata ++# Peter Pan , 2018. #zanata msgid "" msgstr "" - "Project-Id-Version: cracklib\n" --"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" --"POT-Creation-Date: 2015-08-18 13:45-0500\n" +-"Project-Id-Version: cracklib\n" ++"Project-Id-Version: cracklib 2.9.6\n" + "Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" + "POT-Creation-Date: 2015-08-18 13:45-0500\n" -"PO-Revision-Date: 2005-06-23 12:52+0200\n" -"Last-Translator: Novell Language \n" -+"Report-Msgid-Bugs-To: \n" -+"POT-Creation-Date: 2012-12-14 16:11-0600\n" -+"PO-Revision-Date: 2013-10-22 09:50-0400\n" -+"Last-Translator: tchuang \n" ++"PO-Revision-Date: 2018-08-16 12:45+0000\n" ++"Last-Translator: Copied by Zanata \n" "Language-Team: Novell Language \n" -"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -+"Language: zh-TW\n" -+"X-Generator: Zanata 3.1.2\n" ++"Language: zh_TW\n" +"Plural-Forms: nplurals=1; plural=0\n" ++"X-Generator: Zanata 4.6.2\n" --#: lib/fascist.c:516 -+#: ../lib/fascist.c:550 -+msgid "you are not registered in the password file" -+msgstr "您沒有在密碼檔案中註冊。" -+ -+#: ../lib/fascist.c:564 + #: lib/fascist.c:516 msgid "it is based on your username" - msgstr "這是根據您的使用者名稱" +@@ -78,4 +81,4 @@ --#: lib/fascist.c:576 -+#: ../lib/fascist.c:629 - msgid "it is based upon your password entry" - msgstr "這是根據您的密碼項目" - --#: lib/fascist.c:591 -+#: ../lib/fascist.c:649 - msgid "it is derived from your password entry" - msgstr "這是從您的密碼項目中獲得的" - --#: lib/fascist.c:599 -+#: ../lib/fascist.c:662 - msgid "it's derived from your password entry" - msgstr "這是從您的密碼項目中獲得的" - --#: lib/fascist.c:608 -+#: ../lib/fascist.c:676 - msgid "it is derivable from your password entry" - msgstr "這可以從您的密碼項目中獲得" - --#: lib/fascist.c:617 -+#: ../lib/fascist.c:690 - msgid "it's derivable from your password entry" - msgstr "這可以從您的密碼項目中獲得" - --#: lib/fascist.c:674 --msgid "you are not registered in the password file" --msgstr "您沒有在密碼檔案中註冊。" -- --#: lib/fascist.c:709 -+#: ../lib/fascist.c:726 - msgid "it is WAY too short" - msgstr "太短了" - --#: lib/fascist.c:714 -+#: ../lib/fascist.c:731 - msgid "it is too short" - msgstr "太短了" - --#: lib/fascist.c:731 -+#: ../lib/fascist.c:748 - msgid "it does not contain enough DIFFERENT characters" - msgstr "未包含足夠的的不同字元。" - --#: lib/fascist.c:745 -+#: ../lib/fascist.c:762 - msgid "it is all whitespace" - msgstr "全部都是空格" - --#: lib/fascist.c:764 -+#: ../lib/fascist.c:781 - msgid "it is too simplistic/systematic" - msgstr "太簡單/太過於系統化" - --#: lib/fascist.c:769 -+#: ../lib/fascist.c:786 - msgid "it looks like a National Insurance number." - msgstr "看起來向是國際保險號碼。" - --#: lib/fascist.c:801 -+#: ../lib/fascist.c:813 - msgid "it is based on a dictionary word" - msgstr "根據辭典單字" - --#: lib/fascist.c:820 -+#: ../lib/fascist.c:832 - msgid "it is based on a (reversed) dictionary word" - msgstr "根據 (顛倒的) 辭典單字" - --#: lib/fascist.c:865 -+#: ../lib/fascist.c:867 + #: lib/fascist.c:865 msgid "error loading dictionary" -msgstr "" -+msgstr "載入字典時發生了錯誤" ++msgstr "讀取字典時錯誤" +diff -urN cracklib-2.9.6.old/zanata.xml cracklib-2.9.6.new/zanata.xml +--- cracklib-2.9.6.old/zanata.xml 1970-01-01 01:00:00.000000000 +0100 ++++ cracklib-2.9.6.new/zanata.xml 2018-10-09 11:37:21.033648627 +0200 +@@ -0,0 +1,7 @@ ++ ++ ++ https://fedora.zanata.org/ ++ cracklib ++ master ++ gettext ++ diff --git a/cracklib.spec b/cracklib.spec index c5f5e6a..8540daf 100644 --- a/cracklib.spec +++ b/cracklib.spec @@ -5,7 +5,7 @@ Summary: A password-checking library Name: cracklib Version: 2.9.6 -Release: 15%{?dist} +Release: 16%{?dist} Group: System Environment/Libraries Source0: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-%{version}.tar.gz Source1: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-words-%{version}.gz @@ -233,6 +233,9 @@ EOF %endif %changelog +* Tue Oct 9 2018 Tomáš Mráz - 2.9.6-16 +- Updated translations + * Fri Jul 13 2018 Tomáš Mráz - 2.9.6-15 - The test must use the dictionary from the build From 6d35644e4b36f5297d783b37f11041f8e86f054e Mon Sep 17 00:00:00 2001 From: Tomas Mraz Date: Wed, 10 Oct 2018 14:36:31 +0200 Subject: [PATCH 17/47] Fix minor bug found in the Coverity scan --- cracklib-2.9.6-coverity.patch | 20 ++++++++++++++++++++ cracklib.spec | 7 ++++++- 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 cracklib-2.9.6-coverity.patch diff --git a/cracklib-2.9.6-coverity.patch b/cracklib-2.9.6-coverity.patch new file mode 100644 index 0000000..457b55f --- /dev/null +++ b/cracklib-2.9.6-coverity.patch @@ -0,0 +1,20 @@ +diff -up cracklib-2.9.6/lib/rules.c.coverity cracklib-2.9.6/lib/rules.c +--- cracklib-2.9.6/lib/rules.c.coverity 2018-10-09 12:15:31.455187555 +0200 ++++ cracklib-2.9.6/lib/rules.c 2018-10-10 14:28:43.472740618 +0200 +@@ -774,6 +774,8 @@ Mangle(input, control, area) /* returns + } + } + } ++ break; ++ + case RULE_MLAST: + if (!ptr[1] || (ptr[1] == RULE_CLASS && !ptr[2])) + { +@@ -809,6 +811,7 @@ Mangle(input, control, area) /* returns + } + } + } ++ break; + + default: + Debug(1, "Mangle: unknown command %c in %s\n", *ptr, control); diff --git a/cracklib.spec b/cracklib.spec index 8540daf..016e5fc 100644 --- a/cracklib.spec +++ b/cracklib.spec @@ -5,7 +5,7 @@ Summary: A password-checking library Name: cracklib Version: 2.9.6 -Release: 16%{?dist} +Release: 17%{?dist} Group: System Environment/Libraries Source0: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-%{version}.tar.gz Source1: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-words-%{version}.gz @@ -26,6 +26,7 @@ Patch4: cracklib-2.9.6-packlib-reentrant.patch Patch6: cracklib-2.9.6-simplistic.patch Patch7: cracklib-2.9.6-translation-updates.patch Patch8: cracklib-2.9.6-cve-2016-6318.patch +Patch9: cracklib-2.9.6-coverity.patch URL: http://sourceforge.net/projects/cracklib/ License: LGPLv2+ Buildroot: %{_tmppath}/%{name}-%{version}-root @@ -110,6 +111,7 @@ install -p -m 644 %{SOURCE3} po/zh_CN.po %patch6 -p1 -b .simplistic %patch7 -p1 -b .translations %patch8 -p1 -b .overflow +%patch9 -p1 -b .coverity mkdir cracklib-dicts for dict in %{SOURCE10} %{SOURCE1} @@ -233,6 +235,9 @@ EOF %endif %changelog +* Wed Oct 10 2018 Tomáš Mráz - 2.9.6-17 +- Fix minor bug found in the Coverity scan + * Tue Oct 9 2018 Tomáš Mráz - 2.9.6-16 - Updated translations From bc61ed011962c8422848c13cf4ae19725499e218 Mon Sep 17 00:00:00 2001 From: Tomas Mraz Date: Mon, 26 Nov 2018 16:44:58 +0100 Subject: [PATCH 18/47] Fix regression in dictionary creation and lookup --- cracklib-2.9.6-lookup.patch | 60 +++++++++++++++++++++++++++++++++ cracklib-2.9.6-simplistic.patch | 2 +- cracklib.spec | 7 +++- 3 files changed, 67 insertions(+), 2 deletions(-) create mode 100644 cracklib-2.9.6-lookup.patch diff --git a/cracklib-2.9.6-lookup.patch b/cracklib-2.9.6-lookup.patch new file mode 100644 index 0000000..52ce857 --- /dev/null +++ b/cracklib-2.9.6-lookup.patch @@ -0,0 +1,60 @@ +diff -up cracklib-2.9.6/lib/packlib.c.lookup cracklib-2.9.6/lib/packlib.c +--- cracklib-2.9.6/lib/packlib.c.lookup 2018-10-10 14:19:06.988958835 +0200 ++++ cracklib-2.9.6/lib/packlib.c 2018-11-26 16:04:34.648256614 +0100 +@@ -585,12 +585,11 @@ fprintf(stderr, "look for (%s)\n", strin + fprintf(stderr, "---- %lu, %lu ----\n", lwm, hwm); + #endif + +- middle = lwm + ((hwm - lwm + 1) / 2); +- + for (;;) + { + int cmp; + ++ middle = lwm + ((hwm - lwm + 1) / 2); + + #if DEBUG + fprintf(stderr, "lwm = %lu, middle = %lu, hwm = %lu\n", lwm, middle, hwm); +@@ -617,24 +616,28 @@ fprintf(stderr, "look for (%s)\n", strin + return(middle); + } + +- if (middle == hwm) +- { +-#if DEBUG +- fprintf(stderr, "at terminal subdivision, stopping search\n"); +-#endif +- break; +- } +- + if (cmp < 0) + { +- hwm = middle; +- middle = lwm + ((hwm - lwm ) / 2); +- } ++ if (middle == lwm) ++ { ++#if DEBUG ++ fprintf(stderr, "at terminal subdivision from right, stopping search\n"); ++#endif ++ break; ++ } ++ hwm = middle - 1; ++ } + else if (cmp > 0) + { +- lwm = middle; +- middle = lwm + ((hwm - lwm + 1) / 2); +- } ++ if (middle == hwm) ++ { ++#if DEBUG ++ fprintf(stderr, "at terminal subdivision from left, stopping search\n"); ++#endif ++ break; ++ } ++ lwm = middle + 1; ++ } + } + + return (PW_WORDS(pwp)); diff --git a/cracklib-2.9.6-simplistic.patch b/cracklib-2.9.6-simplistic.patch index 650b103..743b9cb 100644 --- a/cracklib-2.9.6-simplistic.patch +++ b/cracklib-2.9.6-simplistic.patch @@ -106,7 +106,7 @@ diff -up cracklib-2.9.6/util/cracklib-format.simplistic cracklib-2.9.6/util/crac - tr '[A-Z]' '[a-z]' | - tr -cd '\012[a-z][0-9]' | - env LC_ALL=C sort -u -+ grep -a -E -v '^.{30,}$' | ++ grep -a -E -v '^.{32,}$' | + tr '[:upper:]' '[:lower:]' | + tr -cd '\n[:graph:]' | + sort -u diff --git a/cracklib.spec b/cracklib.spec index 016e5fc..c9acbde 100644 --- a/cracklib.spec +++ b/cracklib.spec @@ -5,7 +5,7 @@ Summary: A password-checking library Name: cracklib Version: 2.9.6 -Release: 17%{?dist} +Release: 18%{?dist} Group: System Environment/Libraries Source0: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-%{version}.tar.gz Source1: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-words-%{version}.gz @@ -27,6 +27,7 @@ Patch6: cracklib-2.9.6-simplistic.patch Patch7: cracklib-2.9.6-translation-updates.patch Patch8: cracklib-2.9.6-cve-2016-6318.patch Patch9: cracklib-2.9.6-coverity.patch +Patch10: cracklib-2.9.6-lookup.patch URL: http://sourceforge.net/projects/cracklib/ License: LGPLv2+ Buildroot: %{_tmppath}/%{name}-%{version}-root @@ -112,6 +113,7 @@ install -p -m 644 %{SOURCE3} po/zh_CN.po %patch7 -p1 -b .translations %patch8 -p1 -b .overflow %patch9 -p1 -b .coverity +%patch10 -p1 -b .lookup mkdir cracklib-dicts for dict in %{SOURCE10} %{SOURCE1} @@ -235,6 +237,9 @@ EOF %endif %changelog +* Mon Nov 26 2018 Tomáš Mráz - 2.9.6-18 +- Fix regression in dictionary creation and lookup + * Wed Oct 10 2018 Tomáš Mráz - 2.9.6-17 - Fix minor bug found in the Coverity scan From f67e241300c623443709a7470cd05413aefdc9e4 Mon Sep 17 00:00:00 2001 From: Igor Gnatenko Date: Mon, 28 Jan 2019 20:17:41 +0100 Subject: [PATCH 19/47] Remove obsolete Group tag References: https://fedoraproject.org/wiki/Changes/Remove_Group_Tag --- cracklib.spec | 4 ---- 1 file changed, 4 deletions(-) diff --git a/cracklib.spec b/cracklib.spec index c9acbde..f421f8d 100644 --- a/cracklib.spec +++ b/cracklib.spec @@ -6,7 +6,6 @@ Summary: A password-checking library Name: cracklib Version: 2.9.6 Release: 18%{?dist} -Group: System Environment/Libraries Source0: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-%{version}.tar.gz Source1: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-words-%{version}.gz @@ -62,7 +61,6 @@ CrackLib, you will also want to install the cracklib-dicts package. %package devel Summary: Development files needed for building applications which use cracklib -Group: Development/Libraries Requires: %{name} = %{version}-%{release} %description devel @@ -72,7 +70,6 @@ for compiling applications which use cracklib. %if 0%{?rhel} == 0 %package -n python2-cracklib Summary: Python bindings for applications which use cracklib -Group: Development/Libraries Requires: %{name} = %{version}-%{release} %{?python_provide:%python_provide python2-cracklib} # Remove before F30 @@ -87,7 +84,6 @@ written in the Python programming language to use cracklib. %package dicts Summary: The standard CrackLib dictionaries -Group: System Environment/Libraries BuildRequires: words >= 2-13 Requires: cracklib = %{version}-%{release} From 1595629cca72aa6e74d595dce0e199e69578d907 Mon Sep 17 00:00:00 2001 From: Igor Gnatenko Date: Tue, 29 Jan 2019 05:34:36 +0100 Subject: [PATCH 20/47] Remove obsolete BuildRoot tag Signed-off-by: Igor Gnatenko --- cracklib.spec | 1 - 1 file changed, 1 deletion(-) diff --git a/cracklib.spec b/cracklib.spec index f421f8d..96adad7 100644 --- a/cracklib.spec +++ b/cracklib.spec @@ -29,7 +29,6 @@ Patch9: cracklib-2.9.6-coverity.patch Patch10: cracklib-2.9.6-lookup.patch URL: http://sourceforge.net/projects/cracklib/ License: LGPLv2+ -Buildroot: %{_tmppath}/%{name}-%{version}-root BuildRequires: gcc BuildRequires: words, gettext BuildRequires: gettext-autopoint From c7cf122685d25a0263568c10e5679d31020dfca2 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 31 Jan 2019 16:23:54 +0000 Subject: [PATCH 21/47] - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- cracklib.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cracklib.spec b/cracklib.spec index 96adad7..3ebc5d5 100644 --- a/cracklib.spec +++ b/cracklib.spec @@ -5,7 +5,7 @@ Summary: A password-checking library Name: cracklib Version: 2.9.6 -Release: 18%{?dist} +Release: 19%{?dist} Source0: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-%{version}.tar.gz Source1: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-words-%{version}.gz @@ -232,6 +232,9 @@ EOF %endif %changelog +* Thu Jan 31 2019 Fedora Release Engineering - 2.9.6-19 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + * Mon Nov 26 2018 Tomáš Mráz - 2.9.6-18 - Fix regression in dictionary creation and lookup From 2e9952380c838219e49739bd2a767c4877afa303 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 24 Jul 2019 21:09:23 +0000 Subject: [PATCH 22/47] - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- cracklib.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cracklib.spec b/cracklib.spec index 3ebc5d5..62b9a6c 100644 --- a/cracklib.spec +++ b/cracklib.spec @@ -5,7 +5,7 @@ Summary: A password-checking library Name: cracklib Version: 2.9.6 -Release: 19%{?dist} +Release: 20%{?dist} Source0: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-%{version}.tar.gz Source1: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-words-%{version}.gz @@ -232,6 +232,9 @@ EOF %endif %changelog +* Wed Jul 24 2019 Fedora Release Engineering - 2.9.6-20 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + * Thu Jan 31 2019 Fedora Release Engineering - 2.9.6-19 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild From a11e8f0582e0389f8ac141293fc78b8ec91144ba Mon Sep 17 00:00:00 2001 From: Tomas Mraz Date: Fri, 9 Aug 2019 16:46:56 +0200 Subject: [PATCH 23/47] Drop Python 2 bindings completely --- cracklib.spec | 62 ++++----------------------------------------------- 1 file changed, 4 insertions(+), 58 deletions(-) diff --git a/cracklib.spec b/cracklib.spec index 62b9a6c..0c5b473 100644 --- a/cracklib.spec +++ b/cracklib.spec @@ -5,7 +5,7 @@ Summary: A password-checking library Name: cracklib Version: 2.9.6 -Release: 20%{?dist} +Release: 21%{?dist} Source0: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-%{version}.tar.gz Source1: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-words-%{version}.gz @@ -33,9 +33,6 @@ BuildRequires: gcc BuildRequires: words, gettext BuildRequires: gettext-autopoint BuildRequires: zlib-devel -%if 0%{?rhel} == 0 -BuildRequires: python2-devel -%endif Conflicts: cracklib-dicts < 2.8 # The cracklib-format script calls gzip, but without a specific path. Requires: gzip @@ -66,21 +63,6 @@ Requires: %{name} = %{version}-%{release} The cracklib-devel package contains the header files and libraries needed for compiling applications which use cracklib. -%if 0%{?rhel} == 0 -%package -n python2-cracklib -Summary: Python bindings for applications which use cracklib -Requires: %{name} = %{version}-%{release} -%{?python_provide:%python_provide python2-cracklib} -# Remove before F30 -Provides: %{name}-python = %{version}-%{release} -Provides: %{name}-python%{?_isa} = %{version}-%{release} -Obsoletes: %{name}-python < %{version}-%{release} - -%description -n python2-cracklib -The cracklib-python package contains a module which permits applications -written in the Python programming language to use cracklib. -%endif - %package dicts Summary: The standard CrackLib dictionaries BuildRequires: words >= 2-13 @@ -121,11 +103,7 @@ chmod +x util/cracklib-format # Use the dictionary from the build to test sed -i 's,util/cracklib-check <,util/cracklib-check $(DESTDIR)/$(DEFAULT_CRACKLIB_DICT) <,' Makefile.in %configure --with-pic \ -%if 0%{?rhel} == 0 - --with-python \ -%else --without-python \ -%endif --with-default-dict=%{dictpath} --disable-static make -C po update-gmo make @@ -171,35 +149,6 @@ fi %check make test DESTDIR=$RPM_BUILD_ROOT -%if 0%{?rhel} == 0 -# We want to check that the new library is able to open the new dictionaries, -# using the new python module. -LD_LIBRARY_PATH=$RPM_BUILD_ROOT/%{_libdir} %{__python2} 2>&1 << EOF -import string, sys -# Prepend buildroot-specific variations of the python path to the python path. -syspath2=[] -for element in sys.path: - syspath2.append("$RPM_BUILD_ROOT/" + element) -syspath2.reverse() -for element in syspath2: - sys.path.insert(0,element) -# Now actually do the test. If we get a different result, or throw an -# exception, the script will end with the error. -import cracklib -try: - s = cracklib.FascistCheck("cracklib", "$RPM_BUILD_ROOT/%{dictpath}") -except ValueError, message: - expected = "it is based on a dictionary word" - if message != expected: - print "Got unexpected result \"%s\"," % messgae, - print "instead of expected value of \"%s\"." % expected - sys.exit(1) - print "Got expected result \"%s\"," % message - sys.exit(0) -finally: - sys.exit(0) -EOF -%endif %ldconfig_scriptlets @@ -225,13 +174,10 @@ EOF %{_sbindir}/mkdict %{_sbindir}/packer -%if 0%{?rhel} == 0 -%files -n python2-cracklib -%{_libdir}/python*/site-packages/_cracklib*.so -%{_libdir}/python*/site-packages/*.py* -%endif - %changelog +* Fri Aug 9 2019 Tomáš Mráz - 2.9.6-21 +- Drop Python 2 bindings completely + * Wed Jul 24 2019 Fedora Release Engineering - 2.9.6-20 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild From 8dcbcb28e3b34b93193c52cfe60f8f26602674ef Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Tue, 28 Jan 2020 14:58:29 +0000 Subject: [PATCH 24/47] - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- cracklib.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cracklib.spec b/cracklib.spec index 0c5b473..1364d9c 100644 --- a/cracklib.spec +++ b/cracklib.spec @@ -5,7 +5,7 @@ Summary: A password-checking library Name: cracklib Version: 2.9.6 -Release: 21%{?dist} +Release: 22%{?dist} Source0: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-%{version}.tar.gz Source1: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-words-%{version}.gz @@ -175,6 +175,9 @@ make test DESTDIR=$RPM_BUILD_ROOT %{_sbindir}/packer %changelog +* Tue Jan 28 2020 Fedora Release Engineering - 2.9.6-22 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + * Fri Aug 9 2019 Tomáš Mráz - 2.9.6-21 - Drop Python 2 bindings completely From 32ce35d61ab71d8c8a64ff77b651c9f28801de7d Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Mon, 13 Jul 2020 18:54:59 +0000 Subject: [PATCH 25/47] Use make macros https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro --- cracklib.spec | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/cracklib.spec b/cracklib.spec index 1364d9c..38a5162 100644 --- a/cracklib.spec +++ b/cracklib.spec @@ -5,7 +5,7 @@ Summary: A password-checking library Name: cracklib Version: 2.9.6 -Release: 22%{?dist} +Release: 23%{?dist} Source0: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-%{version}.tar.gz Source1: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-words-%{version}.gz @@ -110,7 +110,7 @@ make %install [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT -make install DESTDIR=$RPM_BUILD_ROOT 'pythondir=${pyexecdir}' +%make_install 'pythondir=${pyexecdir}' ./util/cracklib-format cracklib-dicts/* | \ ./util/cracklib-packer $RPM_BUILD_ROOT/%{dictpath} ./util/cracklib-format $RPM_BUILD_ROOT/%{dictdir}/cracklib-small | \ @@ -175,6 +175,10 @@ make test DESTDIR=$RPM_BUILD_ROOT %{_sbindir}/packer %changelog +* Mon Jul 13 2020 Tom Stellard - 2.9.6-23 +- Use make macros +- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro + * Tue Jan 28 2020 Fedora Release Engineering - 2.9.6-22 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild From 28dcf39ec147ce819f46f27b42b20bd536cc1b36 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Mon, 27 Jul 2020 14:42:06 +0000 Subject: [PATCH 26/47] - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- cracklib.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cracklib.spec b/cracklib.spec index 38a5162..5f36a78 100644 --- a/cracklib.spec +++ b/cracklib.spec @@ -5,7 +5,7 @@ Summary: A password-checking library Name: cracklib Version: 2.9.6 -Release: 23%{?dist} +Release: 24%{?dist} Source0: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-%{version}.tar.gz Source1: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-words-%{version}.gz @@ -175,6 +175,9 @@ make test DESTDIR=$RPM_BUILD_ROOT %{_sbindir}/packer %changelog +* Mon Jul 27 2020 Fedora Release Engineering - 2.9.6-24 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + * Mon Jul 13 2020 Tom Stellard - 2.9.6-23 - Use make macros - https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro From 3e85d8d26dd0952b6fd54352b7b1d961c654fefa Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Thu, 17 Dec 2020 03:59:46 +0000 Subject: [PATCH 27/47] Add BuildRequires: make https://fedoraproject.org/wiki/Changes/Remove_make_from_BuildRoot --- cracklib.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/cracklib.spec b/cracklib.spec index 5f36a78..a07defd 100644 --- a/cracklib.spec +++ b/cracklib.spec @@ -66,6 +66,7 @@ for compiling applications which use cracklib. %package dicts Summary: The standard CrackLib dictionaries BuildRequires: words >= 2-13 +BuildRequires: make Requires: cracklib = %{version}-%{release} %description dicts From 0cc486dfc528d941314a60b21225bc943fb9dfe6 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Tue, 26 Jan 2021 02:40:38 +0000 Subject: [PATCH 28/47] - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- cracklib.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cracklib.spec b/cracklib.spec index a07defd..184407f 100644 --- a/cracklib.spec +++ b/cracklib.spec @@ -5,7 +5,7 @@ Summary: A password-checking library Name: cracklib Version: 2.9.6 -Release: 24%{?dist} +Release: 25%{?dist} Source0: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-%{version}.tar.gz Source1: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-words-%{version}.gz @@ -176,6 +176,9 @@ make test DESTDIR=$RPM_BUILD_ROOT %{_sbindir}/packer %changelog +* Tue Jan 26 2021 Fedora Release Engineering - 2.9.6-25 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + * Mon Jul 27 2020 Fedora Release Engineering - 2.9.6-24 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild From fab3ab864115b36dbf36d3e0fdefb59557ac886f Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 21 Jul 2021 20:05:13 +0000 Subject: [PATCH 29/47] - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- cracklib.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cracklib.spec b/cracklib.spec index 184407f..95a574b 100644 --- a/cracklib.spec +++ b/cracklib.spec @@ -5,7 +5,7 @@ Summary: A password-checking library Name: cracklib Version: 2.9.6 -Release: 25%{?dist} +Release: 26%{?dist} Source0: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-%{version}.tar.gz Source1: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-words-%{version}.gz @@ -176,6 +176,9 @@ make test DESTDIR=$RPM_BUILD_ROOT %{_sbindir}/packer %changelog +* Wed Jul 21 2021 Fedora Release Engineering - 2.9.6-26 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + * Tue Jan 26 2021 Fedora Release Engineering - 2.9.6-25 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild From 5d99be852eb974b33c8a7f0434989498c6659fcd Mon Sep 17 00:00:00 2001 From: Paul Wouters Date: Mon, 30 Aug 2021 23:50:23 +0300 Subject: [PATCH 30/47] - Resolves: rhbz#1994196 Remove /usr/bin/packer symbolic link --- cracklib.spec | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/cracklib.spec b/cracklib.spec index 95a574b..ac02d1b 100644 --- a/cracklib.spec +++ b/cracklib.spec @@ -5,7 +5,7 @@ Summary: A password-checking library Name: cracklib Version: 2.9.6 -Release: 26%{?dist} +Release: 27%{?dist} Source0: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-%{version}.tar.gz Source1: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-words-%{version}.gz @@ -119,7 +119,8 @@ make rm -f $RPM_BUILD_ROOT/%{dictdir}/cracklib-small sed s,/usr/lib/cracklib_dict,%{dictpath},g lib/crack.h > $RPM_BUILD_ROOT/%{_includedir}/crack.h ln -s cracklib-format $RPM_BUILD_ROOT/%{_sbindir}/mkdict -ln -s cracklib-packer $RPM_BUILD_ROOT/%{_sbindir}/packer +# packer link removed as it clashes with hashicorp's packer binary. +#ln -s cracklib-packer $RPM_BUILD_ROOT/%{_sbindir}/packer touch $RPM_BUILD_ROOT/top toprelpath=.. @@ -173,9 +174,11 @@ make test DESTDIR=$RPM_BUILD_ROOT %{_datadir}/cracklib/cracklib-small.* %{_libdir}/cracklib_dict.* %{_sbindir}/mkdict -%{_sbindir}/packer %changelog +* Mon Aug 30 2021 Paul Wouters - 2.9.6-27 +- Resolves: rhbz#1994196 Remove /usr/bin/packer symbolic link + * Wed Jul 21 2021 Fedora Release Engineering - 2.9.6-26 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild From bd42e8f9cf83eea687bbd0aac55585339ffdb72f Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 19 Jan 2022 23:57:59 +0000 Subject: [PATCH 31/47] - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- cracklib.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cracklib.spec b/cracklib.spec index ac02d1b..2129bf3 100644 --- a/cracklib.spec +++ b/cracklib.spec @@ -5,7 +5,7 @@ Summary: A password-checking library Name: cracklib Version: 2.9.6 -Release: 27%{?dist} +Release: 28%{?dist} Source0: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-%{version}.tar.gz Source1: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-words-%{version}.gz @@ -176,6 +176,9 @@ make test DESTDIR=$RPM_BUILD_ROOT %{_sbindir}/mkdict %changelog +* Wed Jan 19 2022 Fedora Release Engineering - 2.9.6-28 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + * Mon Aug 30 2021 Paul Wouters - 2.9.6-27 - Resolves: rhbz#1994196 Remove /usr/bin/packer symbolic link From 620dc687b7fde701fcfed6c43d4666c65a0eeadd Mon Sep 17 00:00:00 2001 From: Paul Wouters Date: Mon, 7 Mar 2022 20:04:01 -0500 Subject: [PATCH 32/47] update to 2.9.7 Mostly a security fix release for CVE 2016-6318 which was already fixed in Fedora. --- cracklib-2.9.7-packlib-reentrant.patch | 671 +++++++++++++++++++++++ cracklib-2.9.7-simplistic.patch | 217 ++++++++ cracklib-2.9.7-translation-updates.patch | 118 ++++ cracklib.spec | 8 +- 4 files changed, 1009 insertions(+), 5 deletions(-) create mode 100644 cracklib-2.9.7-packlib-reentrant.patch create mode 100644 cracklib-2.9.7-simplistic.patch create mode 100644 cracklib-2.9.7-translation-updates.patch diff --git a/cracklib-2.9.7-packlib-reentrant.patch b/cracklib-2.9.7-packlib-reentrant.patch new file mode 100644 index 0000000..0615aff --- /dev/null +++ b/cracklib-2.9.7-packlib-reentrant.patch @@ -0,0 +1,671 @@ +diff -Naur cracklib-2.9.7-orig/lib/fascist.c cracklib-2.9.7/lib/fascist.c +--- cracklib-2.9.7-orig/lib/fascist.c 2019-02-13 20:54:41.000000000 -0500 ++++ cracklib-2.9.7/lib/fascist.c 2022-03-07 14:48:53.348146748 -0500 +@@ -36,8 +36,8 @@ + #undef DEBUG + #undef DEBUG2 + +-extern char *Reverse(char *buf); +-extern char *Lowercase(char *buf); ++extern char *Reverse(char *buf, char *area); ++extern char *Lowercase(char *buf, char *area); + + static char *r_destructors[] = { + ":", /* noop - must do this to test raw word. */ +@@ -439,6 +439,8 @@ + int i; + int len; + char *mp; ++ char area[STRINGSIZE]; ++ char revarea[STRINGSIZE]; + + /* use destructors to turn password into rawtext */ + /* note use of Reverse() to save duplicating all rules */ +@@ -447,7 +449,7 @@ + + for (i = 0; r_destructors[i]; i++) + { +- if (!(mp = Mangle(password, r_destructors[i]))) ++ if (!(mp = Mangle(password, r_destructors[i], area))) + { + continue; + } +@@ -462,10 +464,10 @@ + } + + #ifdef DEBUG +- printf("%-16s = %-16s (destruct %s reversed)\n", Reverse(mp), rawtext, r_destructors[i]); ++ printf("%-16s = %-16s (destruct %s reversed)\n", Reverse(mp, revarea), rawtext, r_destructors[i]); + #endif + +- if (!strncmp(Reverse(mp), rawtext, len)) ++ if (!strncmp(Reverse(mp, revarea), rawtext, len)) + { + return (1); + } +@@ -473,7 +475,7 @@ + + for (i = 0; r_constructors[i]; i++) + { +- if (!(mp = Mangle(rawtext, r_constructors[i]))) ++ if (!(mp = Mangle(rawtext, r_constructors[i], area))) + { + continue; + } +@@ -520,7 +522,7 @@ + + strncpy(tbuffer, gecos, STRINGSIZE); + tbuffer[STRINGSIZE-1] = '\0'; +- strcpy(gbuffer, Lowercase(tbuffer)); ++ Lowercase(tbuffer, gbuffer); + + wc = 0; + ptr = gbuffer; +@@ -704,6 +706,7 @@ + char junk[STRINGSIZE]; + char *password; + char rpassword[STRINGSIZE]; ++ char area[STRINGSIZE]; + uint32_t notfound; + + notfound = PW_WORDS(pwp); +@@ -740,7 +743,7 @@ + return _("it does not contain enough DIFFERENT characters"); + } + +- strcpy(password, (char *)Lowercase(password)); ++ strcpy(password, (char *)Lowercase(password, area)); + + Trim(password); + +@@ -796,7 +799,7 @@ + { + char *a; + +- if (!(a = Mangle(password, r_destructors[i]))) ++ if (!(a = Mangle(password, r_destructors[i], area))) + { + continue; + } +@@ -811,13 +814,13 @@ + } + } + +- strcpy(password, (char *)Reverse(password)); ++ strcpy(password, (char *)Reverse(password, area)); + + for (i = 0; r_destructors[i]; i++) + { + char *a; + +- if (!(a = Mangle(password, r_destructors[i]))) ++ if (!(a = Mangle(password, r_destructors[i], area))) + { + continue; + } +diff -Naur cracklib-2.9.7-orig/lib/packer.h cracklib-2.9.7/lib/packer.h +--- cracklib-2.9.7-orig/lib/packer.h 2022-03-07 14:47:42.224763853 -0500 ++++ cracklib-2.9.7/lib/packer.h 2022-03-07 14:48:53.349146753 -0500 +@@ -82,7 +82,7 @@ + extern unsigned int FindPW(PWDICT *pwp, char *string); + extern int PutPW(PWDICT *pwp, char *string); + extern int PMatch(char *control, char *string); +-extern char *Mangle(char *input, char *control); ++extern char *Mangle(char *input, char *control, char *area); + extern char Chop(char *string); + extern char *Trim(char *string); + extern char *FascistLook(PWDICT *pwp, char *instring); +diff -Naur cracklib-2.9.7-orig/lib/packlib.c cracklib-2.9.7/lib/packlib.c +--- cracklib-2.9.7-orig/lib/packlib.c 2019-02-13 20:54:41.000000000 -0500 ++++ cracklib-2.9.7/lib/packlib.c 2022-03-07 14:48:53.349146753 -0500 +@@ -67,8 +67,8 @@ + char *mode; + { + int use64 = 0; +- static PWDICT pdesc; +- static PWDICT64 pdesc64; ++ PWDICT *pdesc; ++ PWDICT64 pdesc64; + char iname[STRINGSIZE]; + char dname[STRINGSIZE]; + char wname[STRINGSIZE]; +@@ -76,13 +76,11 @@ + void *ifp; + void *wfp; + +- if (pdesc.header.pih_magic == PIH_MAGIC) +- { +- fprintf(stderr, "%s: another dictionary already open\n", prefix); ++ pdesc = malloc(sizeof(*pdesc)); ++ if (pdesc == NULL) + return NULL; +- } + +- memset(&pdesc, '\0', sizeof(pdesc)); ++ memset(pdesc, '\0', sizeof(*pdesc)); + memset(&pdesc64, '\0', sizeof(pdesc64)); + + snprintf(iname, STRINGSIZE, "%s.pwi", prefix); +@@ -91,77 +89,80 @@ + + if (mode[0] == 'r') + { +- pdesc.flags &= ~PFOR_USEZLIB; ++ pdesc->flags &= ~PFOR_USEZLIB; + /* first try the normal db file */ +- if (!(pdesc.dfp = fopen(dname, mode))) ++ if (!(pdesc->dfp = fopen(dname, mode))) + { + #ifdef HAVE_ZLIB_H +- pdesc.flags |= PFOR_USEZLIB; ++ pdesc->flags |= PFOR_USEZLIB; + /* try extension .gz */ + snprintf(dname, STRINGSIZE, "%s.pwd.gz", prefix); +- if (!(pdesc.dfp = gzopen(dname, mode))) ++ if (!(pdesc->dfp = gzopen(dname, mode))) + { + perror(dname); ++ free(pdesc); + return NULL; + } + #else + perror(dname); ++ free(pdesc); + return NULL; + #endif + } + } + else + { +- pdesc.flags &= ~PFOR_USEZLIB; ++ pdesc->flags &= ~PFOR_USEZLIB; + /* write mode: use fopen */ +- if (!(pdesc.dfp = fopen(dname, mode))) ++ if (!(pdesc->dfp = fopen(dname, mode))) + { + perror(dname); ++ free(pdesc); + return NULL; + } + } + +- if (!(pdesc.ifp = fopen(iname, mode))) ++ if (!(pdesc->ifp = fopen(iname, mode))) + { + #ifdef HAVE_ZLIB_H +- if (pdesc.flags & PFOR_USEZLIB) +- gzclose(pdesc.dfp); ++ if(pdesc->flags & PFOR_USEZLIB) ++ gzclose(pdesc->dfp); + else + #endif +- fclose(pdesc.dfp); ++ fclose(pdesc->dfp); + perror(iname); ++ free(pdesc); + return NULL; + } + +- if ((pdesc.wfp = fopen(wname, mode))) ++ if ((pdesc->wfp = fopen(wname, mode))) + { +- pdesc.flags |= PFOR_USEHWMS; ++ pdesc->flags |= PFOR_USEHWMS; + } + +- ifp = pdesc.ifp; +- dfp = pdesc.dfp; +- wfp = pdesc.wfp; ++ ifp = pdesc->ifp; ++ dfp = pdesc->dfp; ++ wfp = pdesc->wfp; + + if (mode[0] == 'w') + { +- pdesc.flags |= PFOR_WRITE; +- pdesc.header.pih_magic = PIH_MAGIC; +- pdesc.header.pih_blocklen = NUMWORDS; +- pdesc.header.pih_numwords = 0; ++ pdesc->flags |= PFOR_WRITE; ++ pdesc->header.pih_magic = PIH_MAGIC; ++ pdesc->header.pih_blocklen = NUMWORDS; ++ pdesc->header.pih_numwords = 0; + +- fwrite((char *) &pdesc.header, sizeof(pdesc.header), 1, ifp); ++ fwrite((char *) &pdesc->header, sizeof(pdesc->header), 1, ifp); + } else + { +- pdesc.flags &= ~PFOR_WRITE; ++ pdesc->flags &= ~PFOR_WRITE; + +- if (!fread((char *) &pdesc.header, sizeof(pdesc.header), 1, ifp)) ++ if (!fread((char *) &pdesc->header, sizeof(pdesc->header), 1, ifp)) + { + fprintf(stderr, "%s: error reading header\n", prefix); + +- pdesc.header.pih_magic = 0; + fclose(ifp); + #ifdef HAVE_ZLIB_H +- if (pdesc.flags & PFOR_USEZLIB) ++ if(pdesc->flags & PFOR_USEZLIB) + gzclose(dfp); + else + #endif +@@ -170,10 +171,11 @@ + { + fclose(wfp); + } ++ free(pdesc); + return NULL; + } + +- if ((pdesc.header.pih_magic == 0) || (pdesc.header.pih_numwords == 0)) ++ if ((pdesc->header.pih_magic == 0) || (pdesc->header.pih_numwords == 0)) + { + /* uh-oh. either a broken "64-bit" file or a garbage file. */ + rewind (ifp); +@@ -181,10 +183,9 @@ + { + fprintf(stderr, "%s: error reading header\n", prefix); + +- pdesc.header.pih_magic = 0; + fclose(ifp); + #ifdef HAVE_ZLIB_H +- if (pdesc.flags & PFOR_USEZLIB) ++ if (pdesc->flags & PFOR_USEZLIB) + gzclose(dfp); + else + #endif +@@ -193,6 +194,7 @@ + { + fclose(wfp); + } ++ free(pdesc); + return NULL; + } + if (pdesc64.header.pih_magic != PIH_MAGIC) +@@ -200,10 +202,9 @@ + /* nope, not "64-bit" after all */ + fprintf(stderr, "%s: error reading header\n", prefix); + +- pdesc.header.pih_magic = 0; + fclose(ifp); + #ifdef HAVE_ZLIB_H +- if (pdesc.flags & PFOR_USEZLIB) ++ if (pdesc->flags & PFOR_USEZLIB) + gzclose(dfp); + else + #endif +@@ -213,23 +214,23 @@ + { + fclose(wfp); + } ++ free(pdesc); + return NULL; + } +- pdesc.header.pih_magic = pdesc64.header.pih_magic; +- pdesc.header.pih_numwords = pdesc64.header.pih_numwords; +- pdesc.header.pih_blocklen = pdesc64.header.pih_blocklen; +- pdesc.header.pih_pad = pdesc64.header.pih_pad; ++ pdesc->header.pih_magic = pdesc64.header.pih_magic; ++ pdesc->header.pih_numwords = pdesc64.header.pih_numwords; ++ pdesc->header.pih_blocklen = pdesc64.header.pih_blocklen; ++ pdesc->header.pih_pad = pdesc64.header.pih_pad; + use64 = 1; + } + +- if (pdesc.header.pih_magic != PIH_MAGIC) ++ if (pdesc->header.pih_magic != PIH_MAGIC) + { + fprintf(stderr, "%s: magic mismatch\n", prefix); + +- pdesc.header.pih_magic = 0; + fclose(ifp); + #ifdef HAVE_ZLIB_H +- if (pdesc.flags & PFOR_USEZLIB) ++ if (pdesc->flags & PFOR_USEZLIB) + gzclose(dfp); + else + #endif +@@ -239,17 +240,17 @@ + { + fclose(wfp); + } ++ free(pdesc); + return NULL; + } + +- if (pdesc.header.pih_numwords < 1) ++ if (pdesc->header.pih_numwords < 1) + { + fprintf(stderr, "%s: invalid word count\n", prefix); + +- pdesc.header.pih_magic = 0; + fclose(ifp); + #ifdef HAVE_ZLIB_H +- if (pdesc.flags & PFOR_USEZLIB) ++ if (pdesc->flags & PFOR_USEZLIB) + gzclose(dfp); + else + #endif +@@ -258,17 +259,17 @@ + { + fclose(wfp); + } ++ free(pdesc); + return NULL; + } + +- if (pdesc.header.pih_blocklen != NUMWORDS) ++ if (pdesc->header.pih_blocklen != NUMWORDS) + { + fprintf(stderr, "%s: size mismatch\n", prefix); + +- pdesc.header.pih_magic = 0; + fclose(ifp); + #ifdef HAVE_ZLIB_H +- if (pdesc.flags & PFOR_USEZLIB) ++ if (pdesc->flags & PFOR_USEZLIB) + gzclose(dfp); + else + #endif +@@ -277,10 +278,11 @@ + { + fclose(wfp); + } ++ free(pdesc); + return NULL; + } + +- if (pdesc.flags & PFOR_USEHWMS) ++ if (pdesc->flags & PFOR_USEHWMS) + { + int i; + +@@ -288,27 +290,27 @@ + { + if (fread(pdesc64.hwms, 1, sizeof(pdesc64.hwms), wfp) != sizeof(pdesc64.hwms)) + { +- pdesc.flags &= ~PFOR_USEHWMS; ++ pdesc->flags &= ~PFOR_USEHWMS; + } +- for (i = 0; i < sizeof(pdesc.hwms) / sizeof(pdesc.hwms[0]); i++) ++ for (i = 0; i < sizeof(pdesc->hwms) / sizeof(pdesc->hwms[0]); i++) + { +- pdesc.hwms[i] = pdesc64.hwms[i]; ++ pdesc->hwms[i] = pdesc64.hwms[i]; + } +- } +- else if (fread(pdesc.hwms, 1, sizeof(pdesc.hwms), wfp) != sizeof(pdesc.hwms)) ++ } ++ else if (fread(pdesc->hwms, 1, sizeof(pdesc->hwms), wfp) != sizeof(pdesc->hwms)) + { +- pdesc.flags &= ~PFOR_USEHWMS; ++ pdesc->flags &= ~PFOR_USEHWMS; + } + #if DEBUG + for (i=1; i<=0xff; i++) + { +- printf("hwm[%02x] = %d\n", i, pdesc.hwms[i]); ++ printf("hwm[%02x] = %d\n", i, pdesc->hwms[i]); + } + #endif + } + } + +- return (&pdesc); ++ return (pdesc); + } + + int +@@ -318,6 +320,7 @@ + if (pwp->header.pih_magic != PIH_MAGIC) + { + fprintf(stderr, "PWClose: close magic mismatch\n"); ++ /* we do not try to free memory that is probably corrupted */ + return (-1); + } + +@@ -329,12 +332,14 @@ + if (fseek(pwp->ifp, 0L, 0)) + { + fprintf(stderr, "index magic fseek failed\n"); ++ free(pwp); + return (-1); + } + + if (!fwrite((char *) &pwp->header, sizeof(pwp->header), 1, pwp->ifp)) + { + fprintf(stderr, "index magic fwrite failed\n"); ++ free(pwp); + return (-1); + } + +@@ -368,6 +373,7 @@ + } + + pwp->header.pih_magic = 0; ++ free(pwp); + + return (0); + } +diff -Naur cracklib-2.9.7-orig/lib/rules.c cracklib-2.9.7/lib/rules.c +--- cracklib-2.9.7-orig/lib/rules.c 2019-02-13 20:54:41.000000000 -0500 ++++ cracklib-2.9.7/lib/rules.c 2022-03-07 15:11:48.271298263 -0500 +@@ -82,12 +82,12 @@ + } + + char * +-Reverse(str) /* return a pointer to a reversal */ ++Reverse(str, area) /* return a pointer to a reversal */ + register char *str; ++ char *area; + { + register int i; + register int j; +- static char area[STRINGSIZE]; + j = i = strlen(str); + while (*str) + { +@@ -98,11 +98,11 @@ + } + + char * +-Uppercase(str) /* return a pointer to an uppercase */ ++Uppercase(str, area) /* return a pointer to an uppercase */ + register char *str; ++ char *area; + { + register char *ptr; +- static char area[STRINGSIZE]; + ptr = area; + while (*str) + { +@@ -115,11 +115,11 @@ + } + + char * +-Lowercase(str) /* return a pointer to an lowercase */ ++Lowercase(str, area) /* return a pointer to an lowercase */ + register char *str; ++ char *area; + { + register char *ptr; +- static char area[STRINGSIZE]; + ptr = area; + while (*str) + { +@@ -132,11 +132,11 @@ + } + + char * +-Capitalise(str) /* return a pointer to an capitalised */ ++Capitalise(str, area) /* return a pointer to an capitalised */ + register char *str; ++ char *area; + { + register char *ptr; +- static char area[STRINGSIZE]; + ptr = area; + + while (*str) +@@ -151,11 +151,11 @@ + } + + char * +-Pluralise(string) /* returns a pointer to a plural */ ++Pluralise(string, area) /* returns a pointer to a plural */ + register char *string; ++ char *area; + { + register int length; +- static char area[STRINGSIZE]; + length = strlen(string); + strcpy(area, string); + +@@ -192,13 +192,13 @@ + } + + char * +-Substitute(string, old, new) /* returns pointer to a swapped about copy */ ++Substitute(string, old, new, area) /* returns pointer to a swapped about copy */ + register char *string; + register char old; + register char new; ++ char *area; + { + register char *ptr; +- static char area[STRINGSIZE]; + ptr = area; + while (*string) + { +@@ -210,12 +210,12 @@ + } + + char * +-Purge(string, target) /* returns pointer to a purged copy */ ++Purge(string, target, area) /* returns pointer to a purged copy */ + register char *string; + register char target; ++ char *area; + { + register char *ptr; +- static char area[STRINGSIZE]; + ptr = area; + while (*string) + { +@@ -372,13 +372,13 @@ + } + + char * +-PolySubst(string, class, new) /* returns pointer to a swapped about copy */ ++PolySubst(string, class, new, area) /* returns pointer to a swapped about copy */ + register char *string; + register char class; + register char new; ++ char *area; + { + register char *ptr; +- static char area[STRINGSIZE]; + ptr = area; + while (*string) + { +@@ -390,12 +390,12 @@ + } + + char * +-PolyPurge(string, class) /* returns pointer to a purged copy */ ++PolyPurge(string, class, area) /* returns pointer to a purged copy */ + register char *string; + register char class; ++ char *area; + { + register char *ptr; +- static char area[STRINGSIZE]; + ptr = area; + while (*string) + { +@@ -428,39 +428,40 @@ + } + + char * +-Mangle(input, control) /* returns a pointer to a controlled Mangle */ ++Mangle(input, control, area) /* returns a pointer to a controlled Mangle */ + char *input; + char *control; ++ char *area; + { + int limit; + register char *ptr; +- static char area[STRINGSIZE * 2] = {0}; + char area2[STRINGSIZE * 2] = {0}; + strcpy(area, input); + + for (ptr = control; *ptr; ptr++) + { ++ strcpy(area2, area); + switch (*ptr) + { + case RULE_NOOP: + break; + case RULE_REVERSE: +- strcpy(area, Reverse(area)); ++ Reverse(area2, area); + break; + case RULE_UPPERCASE: +- strcpy(area, Uppercase(area)); ++ Uppercase(area2, area); + break; + case RULE_LOWERCASE: +- strcpy(area, Lowercase(area)); ++ Lowercase(area2, area); + break; + case RULE_CAPITALISE: +- strcpy(area, Capitalise(area)); ++ Capitalise(area2, area); + break; + case RULE_PLURALISE: +- strcpy(area, Pluralise(area)); ++ Pluralise(area2, area); + break; + case RULE_REFLECT: +- strcat(area, Reverse(area)); ++ strcat(area, Reverse(area, area2)); + break; + case RULE_DUPLICATE: + strcpy(area2, area); +@@ -547,7 +548,6 @@ + Debug(1, "Mangle: extract: weird argument in '%s'\n", control); + return NULL; + } +- strcpy(area2, area); + for (i = 0; length-- && area2[start + i]; i++) + { + area[i] = area2[start + i]; +@@ -618,10 +618,10 @@ + return NULL; + } else if (ptr[1] != RULE_CLASS) + { +- strcpy(area, Purge(area, *(++ptr))); ++ Purge(area2, *(++ptr), area); + } else + { +- strcpy(area, PolyPurge(area, ptr[2])); ++ PolyPurge(area2, ptr[2], area); + ptr += 2; + } + break; +@@ -632,11 +632,11 @@ + return NULL; + } else if (ptr[1] != RULE_CLASS) + { +- strcpy(area, Substitute(area, ptr[1], ptr[2])); ++ Substitute(area2, ptr[1], ptr[2], area); + ptr += 2; + } else + { +- strcpy(area, PolySubst(area, ptr[2], ptr[3])); ++ PolySubst(area2, ptr[2], ptr[3], area); + ptr += 3; + } + break; diff --git a/cracklib-2.9.7-simplistic.patch b/cracklib-2.9.7-simplistic.patch new file mode 100644 index 0000000..a711b6f --- /dev/null +++ b/cracklib-2.9.7-simplistic.patch @@ -0,0 +1,217 @@ +diff -Naur cracklib-2.9.7-orig/lib/fascist.c cracklib-2.9.7/lib/fascist.c +--- cracklib-2.9.7-orig/lib/fascist.c 2022-03-07 15:16:11.722225350 -0500 ++++ cracklib-2.9.7/lib/fascist.c 2022-03-07 15:17:54.598692721 -0500 +@@ -55,7 +55,6 @@ + + "/?p@?p", /* purging out punctuation/symbols/junk */ + "/?s@?s", +- "/?X@?X", + + /* attempt reverse engineering of password strings */ + +@@ -454,6 +453,12 @@ + continue; + } + ++ if (len - strlen(mp) >= 3) ++ { ++ /* purged too much */ ++ continue; ++ } ++ + #ifdef DEBUG + printf("%-16s = %-16s (destruct %s)\n", mp, rawtext, r_destructors[i]); + #endif +@@ -480,6 +485,12 @@ + continue; + } + ++ if (len - strlen(mp) >= 3) ++ { ++ /* purged too much */ ++ continue; ++ } ++ + #ifdef DEBUG + printf("%-16s = %-16s (construct %s)\n", mp, password, r_constructors[i]); + #endif +@@ -708,6 +719,7 @@ + char rpassword[STRINGSIZE]; + char area[STRINGSIZE]; + uint32_t notfound; ++ int len; + + notfound = PW_WORDS(pwp); + /* already truncated if from FascistCheck() */ +@@ -757,6 +769,7 @@ + return _("it is all whitespace"); + } + ++ len = strlen(password); + i = 0; + ptr = password; + while (ptr[0] && ptr[1]) +@@ -768,10 +781,9 @@ + ptr++; + } + +- /* Change by Ben Karsin from ITS at University of Hawaii at Manoa. Static MAXSTEP +- would generate many false positives for long passwords. */ +- maxrepeat = 3+(0.09*strlen(password)); +- if (i > maxrepeat) ++ /* We were still generating false positives for long passwords. ++ Just count systematic double as a single character. */ ++ if (len - i < MINLEN) + { + return _("it is too simplistic/systematic"); + } +@@ -804,6 +816,12 @@ + continue; + } + ++ if (len - strlen(a) >= 3) ++ { ++ /* purged too much */ ++ continue; ++ } ++ + #ifdef DEBUG + printf("%-16s (dict)\n", a); + #endif +@@ -824,6 +842,13 @@ + { + continue; + } ++ ++ if (len - strlen(a) >= 3) ++ { ++ /* purged too much */ ++ continue; ++ } ++ + #ifdef DEBUG + printf("%-16s (reversed dict)\n", a); + #endif +diff -Naur cracklib-2.9.7-orig/lib/fascist.c.orig cracklib-2.9.7/lib/fascist.c.orig +--- cracklib-2.9.7-orig/lib/fascist.c.orig 2022-03-07 15:16:11.722225350 -0500 ++++ cracklib-2.9.7/lib/fascist.c.orig 2022-03-07 15:16:11.722225350 -0500 +@@ -36,8 +36,8 @@ + #undef DEBUG + #undef DEBUG2 + +-extern char *Reverse(char *buf); +-extern char *Lowercase(char *buf); ++extern char *Reverse(char *buf, char *area); ++extern char *Lowercase(char *buf, char *area); + + static char *r_destructors[] = { + ":", /* noop - must do this to test raw word. */ +@@ -439,6 +439,8 @@ + int i; + int len; + char *mp; ++ char area[STRINGSIZE]; ++ char revarea[STRINGSIZE]; + + /* use destructors to turn password into rawtext */ + /* note use of Reverse() to save duplicating all rules */ +@@ -447,7 +449,7 @@ + + for (i = 0; r_destructors[i]; i++) + { +- if (!(mp = Mangle(password, r_destructors[i]))) ++ if (!(mp = Mangle(password, r_destructors[i], area))) + { + continue; + } +@@ -462,10 +464,10 @@ + } + + #ifdef DEBUG +- printf("%-16s = %-16s (destruct %s reversed)\n", Reverse(mp), rawtext, r_destructors[i]); ++ printf("%-16s = %-16s (destruct %s reversed)\n", Reverse(mp, revarea), rawtext, r_destructors[i]); + #endif + +- if (!strncmp(Reverse(mp), rawtext, len)) ++ if (!strncmp(Reverse(mp, revarea), rawtext, len)) + { + return (1); + } +@@ -473,7 +475,7 @@ + + for (i = 0; r_constructors[i]; i++) + { +- if (!(mp = Mangle(rawtext, r_constructors[i]))) ++ if (!(mp = Mangle(rawtext, r_constructors[i], area))) + { + continue; + } +@@ -520,7 +522,7 @@ + + strncpy(tbuffer, gecos, STRINGSIZE); + tbuffer[STRINGSIZE-1] = '\0'; +- strcpy(gbuffer, Lowercase(tbuffer)); ++ Lowercase(tbuffer, gbuffer); + + wc = 0; + ptr = gbuffer; +@@ -704,6 +706,7 @@ + char junk[STRINGSIZE]; + char *password; + char rpassword[STRINGSIZE]; ++ char area[STRINGSIZE]; + uint32_t notfound; + + notfound = PW_WORDS(pwp); +@@ -740,7 +743,7 @@ + return _("it does not contain enough DIFFERENT characters"); + } + +- strcpy(password, (char *)Lowercase(password)); ++ strcpy(password, (char *)Lowercase(password, area)); + + Trim(password); + +@@ -796,7 +799,7 @@ + { + char *a; + +- if (!(a = Mangle(password, r_destructors[i]))) ++ if (!(a = Mangle(password, r_destructors[i], area))) + { + continue; + } +@@ -811,13 +814,13 @@ + } + } + +- strcpy(password, (char *)Reverse(password)); ++ strcpy(password, (char *)Reverse(password, area)); + + for (i = 0; r_destructors[i]; i++) + { + char *a; + +- if (!(a = Mangle(password, r_destructors[i]))) ++ if (!(a = Mangle(password, r_destructors[i], area))) + { + continue; + } +diff -Naur cracklib-2.9.7-orig/util/cracklib-format cracklib-2.9.7/util/cracklib-format +--- cracklib-2.9.7-orig/util/cracklib-format 2019-02-13 20:54:41.000000000 -0500 ++++ cracklib-2.9.7/util/cracklib-format 2022-03-07 15:17:54.599692726 -0500 +@@ -3,8 +3,10 @@ + # This preprocesses a set of word lists into a suitable form for input + # into cracklib-packer + # ++LC_ALL=C ++export LC_ALL + gzip -cdf "$@" | +- grep -v '^\(#\|$\)' | +- tr '[A-Z]' '[a-z]' | +- tr -cd '\012[a-z][0-9]' | +- env LC_ALL=C sort -u ++ grep -a -E -v '^.{32,}$' | ++ tr '[:upper:]' '[:lower:]' | ++ tr -cd '\n[:graph:]' | ++ sort -u diff --git a/cracklib-2.9.7-translation-updates.patch b/cracklib-2.9.7-translation-updates.patch new file mode 100644 index 0000000..4b43134 --- /dev/null +++ b/cracklib-2.9.7-translation-updates.patch @@ -0,0 +1,118 @@ +diff -Naur cracklib-2.9.7-orig/po/as.po cracklib-2.9.7/po/as.po +--- cracklib-2.9.7-orig/po/as.po 2019-03-03 12:49:42.000000000 -0500 ++++ cracklib-2.9.7/po/as.po 2022-03-07 15:22:59.631245123 -0500 +@@ -76,7 +76,7 @@ + + #: lib/fascist.c:874 + msgid "error loading dictionary" +-msgstr "" ++msgstr "শব্দকোষ ল'ড কৰোতে ত্ৰুটি" + + #~ msgid "it's derived from your password entry" + #~ msgstr "ইয়াক আপোনাৰ গুপ্তশব্দৰ নিবেশৰ পৰা পোৱা হৈছে" +diff -Naur cracklib-2.9.7-orig/po/gu.po cracklib-2.9.7/po/gu.po +--- cracklib-2.9.7-orig/po/gu.po 2019-03-03 12:49:42.000000000 -0500 ++++ cracklib-2.9.7/po/gu.po 2022-03-07 15:32:12.444115364 -0500 +@@ -77,7 +77,7 @@ + + #: lib/fascist.c:874 + msgid "error loading dictionary" +-msgstr "" ++msgstr "શબ્દકોષને લાવી રહ્યા હોય ત્યારે ભૂલ" + + #~ msgid "it's derived from your password entry" + #~ msgstr "તમારા પાસવર્ડ પ્રવેશમાંથી તારવવામાં આવેલ છે" +diff -Naur cracklib-2.9.7-orig/po/hi.po cracklib-2.9.7/po/hi.po +--- cracklib-2.9.7-orig/po/hi.po 2019-03-03 12:49:42.000000000 -0500 ++++ cracklib-2.9.7/po/hi.po 2022-03-07 15:33:31.445561126 -0500 +@@ -78,7 +78,7 @@ + + #: lib/fascist.c:874 + msgid "error loading dictionary" +-msgstr "" ++msgstr "शब्दकोश लोड करने में त्रुटि" + + #~ msgid "it's derived from your password entry" + #~ msgstr "यह आपकी कूटशब्द प्रविष्टि से निकला हुआ है" +diff -Naur cracklib-2.9.7-orig/po/kn.po cracklib-2.9.7/po/kn.po +--- cracklib-2.9.7-orig/po/kn.po 2019-03-03 12:49:42.000000000 -0500 ++++ cracklib-2.9.7/po/kn.po 2022-03-07 15:36:06.001428084 -0500 +@@ -77,7 +77,7 @@ + + #: lib/fascist.c:874 + msgid "error loading dictionary" +-msgstr "" ++msgstr "ಕೋಶವನ್ನು ಲೋಡ್ ಮಾಡುವಲ್ಲಿ ದೋಷ" + + #~ msgid "it's derived from your password entry" + #~ msgstr "ಇದು ನಿಮ್ಮ ಗುಪ್ತಪದ ನಮೂದಿನಿಂದ ತೆಗೆದುಕೊಳ್ಳಲ್ಪಟ್ಟಿದೆ" +diff -Naur cracklib-2.9.7-orig/po/ml.po cracklib-2.9.7/po/ml.po +--- cracklib-2.9.7-orig/po/ml.po 2019-03-03 12:49:42.000000000 -0500 ++++ cracklib-2.9.7/po/ml.po 2022-03-07 15:37:59.048062855 -0500 +@@ -76,7 +76,7 @@ + + #: lib/fascist.c:874 + msgid "error loading dictionary" +-msgstr "" ++msgstr "നിഘണ്ടു ലഭ്യമാക്കുന്നതില്<200d> പിശക്" + + #~ msgid "it's derived from your password entry" + #~ msgstr "നിങ്ങളുടെ രഹസ്യവാക്കില്‍ നിന്നും ലഭ്യമാക്കുന്നു" +diff -Naur cracklib-2.9.7-orig/po/mr.po cracklib-2.9.7/po/mr.po +--- cracklib-2.9.7-orig/po/mr.po 2019-03-03 12:49:42.000000000 -0500 ++++ cracklib-2.9.7/po/mr.po 2022-03-07 15:38:30.812241798 -0500 +@@ -77,7 +77,7 @@ + + #: lib/fascist.c:874 + msgid "error loading dictionary" +-msgstr "" ++msgstr "शब्दकोष लोड करतेवेळी त्रुटी" + + #~ msgid "it's derived from your password entry" + #~ msgstr "तुमच्या पासवर्ड नोंद पासून प्राप्त" +diff -Naur cracklib-2.9.7-orig/po/or.po cracklib-2.9.7/po/or.po +--- cracklib-2.9.7-orig/po/or.po 2019-03-03 12:49:42.000000000 -0500 ++++ cracklib-2.9.7/po/or.po 2022-03-07 15:39:56.858728487 -0500 +@@ -77,7 +77,7 @@ + + #: lib/fascist.c:874 + msgid "error loading dictionary" +-msgstr "" ++msgstr "ଅଭିଧାନ ଧାରଣ କରିବାରେ ତ୍ରୁଟି" + + #~ msgid "it's derived from your password entry" + #~ msgstr "ଏହା ଆପଣଙ୍କର ପ୍ରବେଶ ସଂକେତ ଭରଣରୁ ଉତ୍ପନ୍ନ କରାହୋଇଥାଏ" +diff -Naur cracklib-2.9.7-orig/po/ta.po cracklib-2.9.7/po/ta.po +--- cracklib-2.9.7-orig/po/ta.po 2019-03-03 12:49:42.000000000 -0500 ++++ cracklib-2.9.7/po/ta.po 2022-03-07 15:44:53.857740705 -0500 +@@ -77,7 +77,7 @@ + + #: lib/fascist.c:874 + msgid "error loading dictionary" +-msgstr "" ++msgstr "அகராதியை ஏற்றுவதில் பிழை" + + #~ msgid "it's derived from your password entry" + #~ msgstr "இது உங்கள் கடவுச்சொல் உள்ளீடிலிருந்து வரையறுக்கப்பட்டது" +diff -Naur cracklib-2.9.7-orig/po/te.po cracklib-2.9.7/po/te.po +--- cracklib-2.9.7-orig/po/te.po 2019-03-03 12:49:42.000000000 -0500 ++++ cracklib-2.9.7/po/te.po 2022-03-07 15:45:23.810936770 -0500 +@@ -77,7 +77,7 @@ + + #: lib/fascist.c:874 + msgid "error loading dictionary" +-msgstr "" ++msgstr "నిఘంటువును లోడు చేయుటలో దోషం" + + #~ msgid "it's derived from your password entry" + #~ msgstr "ఇది మీ సంకేతపదము ప్రవేశమునుండి ఉత్పాదించబడింది" +diff -Naur cracklib-2.9.7-orig/po/zh_CN.po cracklib-2.9.7/po/zh_CN.po +--- cracklib-2.9.7-orig/po/zh_CN.po 2021-08-17 11:56:42.000000000 -0400 ++++ cracklib-2.9.7/po/zh_CN.po 2022-03-07 15:48:56.407302640 -0500 +@@ -76,3 +76,6 @@ + msgid "it is based on a (reversed) dictionary word" + msgstr "它基于(颠倒的)字典单词" + ++#: lib/fascist.c:865 ++msgid "error loading dictionary" ++msgstr "加载字典错误" diff --git a/cracklib.spec b/cracklib.spec index 2129bf3..efbccd8 100644 --- a/cracklib.spec +++ b/cracklib.spec @@ -21,10 +21,9 @@ Source10: missing-words.gz Patch1: cracklib-2.9.1-inttypes.patch Patch2: cracklib-2.9.0-python-gzdicts.patch -Patch4: cracklib-2.9.6-packlib-reentrant.patch -Patch6: cracklib-2.9.6-simplistic.patch -Patch7: cracklib-2.9.6-translation-updates.patch -Patch8: cracklib-2.9.6-cve-2016-6318.patch +Patch4: cracklib-2.9.7-packlib-reentrant.patch +Patch6: cracklib-2.9.7-simplistic.patch +Patch7: cracklib-2.9.7-translation-updates.patch Patch9: cracklib-2.9.6-coverity.patch Patch10: cracklib-2.9.6-lookup.patch URL: http://sourceforge.net/projects/cracklib/ @@ -89,7 +88,6 @@ install -p -m 644 %{SOURCE3} po/zh_CN.po %patch4 -p1 -b .reentrant %patch6 -p1 -b .simplistic %patch7 -p1 -b .translations -%patch8 -p1 -b .overflow %patch9 -p1 -b .coverity %patch10 -p1 -b .lookup From 6d9868a4c6c2c8c9be003836b43e901da7dcabbf Mon Sep 17 00:00:00 2001 From: Paul Wouters Date: Mon, 7 Mar 2022 21:37:40 -0500 Subject: [PATCH 33/47] also apply stashed changes :P --- cracklib.spec | 56 +++++++++++++++++++++++++-------------------------- 1 file changed, 27 insertions(+), 29 deletions(-) diff --git a/cracklib.spec b/cracklib.spec index efbccd8..dafa27a 100644 --- a/cracklib.spec +++ b/cracklib.spec @@ -4,14 +4,14 @@ Summary: A password-checking library Name: cracklib -Version: 2.9.6 +Version: 2.9.7 Release: 28%{?dist} -Source0: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-%{version}.tar.gz -Source1: https://github.com/cracklib/cracklib/releases/download/cracklib-%{version}/cracklib-words-%{version}.gz +Source0: https://github.com/cracklib/cracklib/releases/download/v%{version}/cracklib-%{version}.tar.gz +Source1: https://github.com/cracklib/cracklib/releases/download/v%{version}/cracklib-words-%{version}.gz # For man pages. -Source2: http://ftp.us.debian.org/debian/pool/main/c/cracklib2/cracklib2_2.8.19-1.debian.tar.gz -Source40: http://ftp.us.debian.org/debian/pool/main/c/cracklib2/cracklib2_2.8.19-1.dsc +Source2: http://archive.debian.org/debian/pool/main/c/cracklib2/cracklib2_2.9.2-1.debian.tar.xz +Source40: http://archive.debian.org/debian/pool/main/c/cracklib2/cracklib2_2.9.2-1.dsc # From attachment to https://bugzilla.redhat.com/show_bug.cgi?id=627449 Source3: cracklib.default.zh_CN.po @@ -26,7 +26,7 @@ Patch6: cracklib-2.9.7-simplistic.patch Patch7: cracklib-2.9.7-translation-updates.patch Patch9: cracklib-2.9.6-coverity.patch Patch10: cracklib-2.9.6-lookup.patch -URL: http://sourceforge.net/projects/cracklib/ +URL: https://github.com/cracklib/cracklib License: LGPLv2+ BuildRequires: gcc BuildRequires: words, gettext @@ -56,7 +56,7 @@ CrackLib, you will also want to install the cracklib-dicts package. %package devel Summary: Development files needed for building applications which use cracklib -Requires: %{name} = %{version}-%{release} +Requires: %{name}%{?_isa} = %{version}-%{release} %description devel The cracklib-devel package contains the header files and libraries needed @@ -66,6 +66,7 @@ for compiling applications which use cracklib. Summary: The standard CrackLib dictionaries BuildRequires: words >= 2-13 BuildRequires: make +BuildArch: noarch Requires: cracklib = %{version}-%{release} %description dicts @@ -80,7 +81,6 @@ If you are installing CrackLib, you should also install cracklib-dicts. %setup -q -a 2 # Replace zn_CN.po with one that wasn't mis-transcoded at some point. -grep '????????????????' po/zh_CN.po install -p -m 644 %{SOURCE3} po/zh_CN.po %patch1 -p1 -b .inttypes @@ -108,41 +108,40 @@ make -C po update-gmo make %install -[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT %make_install 'pythondir=${pyexecdir}' ./util/cracklib-format cracklib-dicts/* | \ -./util/cracklib-packer $RPM_BUILD_ROOT/%{dictpath} -./util/cracklib-format $RPM_BUILD_ROOT/%{dictdir}/cracklib-small | \ -./util/cracklib-packer $RPM_BUILD_ROOT/%{dictdir}/cracklib-small -rm -f $RPM_BUILD_ROOT/%{dictdir}/cracklib-small -sed s,/usr/lib/cracklib_dict,%{dictpath},g lib/crack.h > $RPM_BUILD_ROOT/%{_includedir}/crack.h -ln -s cracklib-format $RPM_BUILD_ROOT/%{_sbindir}/mkdict +./util/cracklib-packer $RPM_BUILD_ROOT%{dictpath} +./util/cracklib-format $RPM_BUILD_ROOT%{dictdir}/cracklib-small | \ +./util/cracklib-packer $RPM_BUILD_ROOT%{dictdir}/cracklib-small +rm -f $RPM_BUILD_ROOT%{dictdir}/cracklib-small +sed s,/usr/lib/cracklib_dict,%{dictpath},g lib/crack.h > $RPM_BUILD_ROOT%{_includedir}/crack.h +ln -s cracklib-format $RPM_BUILD_ROOT%{_sbindir}/mkdict # packer link removed as it clashes with hashicorp's packer binary. #ln -s cracklib-packer $RPM_BUILD_ROOT/%{_sbindir}/packer touch $RPM_BUILD_ROOT/top toprelpath=.. touch $RPM_BUILD_ROOT/top -while ! test -f $RPM_BUILD_ROOT/%{_libdir}/$toprelpath/top ; do +while ! test -f $RPM_BUILD_ROOT%{_libdir}/$toprelpath/top ; do toprelpath=../$toprelpath done rm -f $RPM_BUILD_ROOT/top if test %{dictpath} != %{_libdir}/cracklib_dict ; then -ln -s $toprelpath%{dictpath}.hwm $RPM_BUILD_ROOT/%{_libdir}/cracklib_dict.hwm -ln -s $toprelpath%{dictpath}.pwd $RPM_BUILD_ROOT/%{_libdir}/cracklib_dict.pwd -ln -s $toprelpath%{dictpath}.pwi $RPM_BUILD_ROOT/%{_libdir}/cracklib_dict.pwi +ln -s $toprelpath%{dictpath}.hwm $RPM_BUILD_ROOT%{_libdir}/cracklib_dict.hwm +ln -s $toprelpath%{dictpath}.pwd $RPM_BUILD_ROOT%{_libdir}/cracklib_dict.pwd +ln -s $toprelpath%{dictpath}.pwi $RPM_BUILD_ROOT%{_libdir}/cracklib_dict.pwi fi -rm -f $RPM_BUILD_ROOT/%{_libdir}/python*/site-packages/_cracklib*.*a -rm -f $RPM_BUILD_ROOT/%{_libdir}/libcrack.la +rm -f $RPM_BUILD_ROOT%{_libdir}/python*/site-packages/_cracklib*.*a +rm -f $RPM_BUILD_ROOT%{_libdir}/libcrack.la -mkdir -p $RPM_BUILD_ROOT/%{_mandir}/man{3,8} -install -p -m644 debian/*.3 $RPM_BUILD_ROOT/%{_mandir}/man3/ -install -p -m644 debian/*.8 $RPM_BUILD_ROOT/%{_mandir}/man8/ -if ! test -s $RPM_BUILD_ROOT/%{_mandir}/man8/cracklib-packer.8 ; then - echo .so man8/cracklib-format.8 > $RPM_BUILD_ROOT/%{_mandir}/man8/cracklib-packer.8 +mkdir -p $RPM_BUILD_ROOT%{_mandir}/man{3,8} +install -p -m644 debian/*.3 $RPM_BUILD_ROOT%{_mandir}/man3/ +install -p -m644 debian/*.8 $RPM_BUILD_ROOT%{_mandir}/man8/ +if ! test -s $RPM_BUILD_ROOT%{_mandir}/man8/cracklib-packer.8 ; then + echo .so man8/cracklib-format.8 > $RPM_BUILD_ROOT%{_mandir}/man8/cracklib-packer.8 fi -if ! test -s $RPM_BUILD_ROOT/%{_mandir}/man8/cracklib-unpacker.8 ; then - echo .so man8/cracklib-format.8 > $RPM_BUILD_ROOT/%{_mandir}/man8/cracklib-unpacker.8 +if ! test -s $RPM_BUILD_ROOT%{_mandir}/man8/cracklib-unpacker.8 ; then + echo .so man8/cracklib-format.8 > $RPM_BUILD_ROOT%{_mandir}/man8/cracklib-unpacker.8 fi %find_lang %{name} @@ -154,7 +153,6 @@ make test DESTDIR=$RPM_BUILD_ROOT %files -f %{name}.lang %doc README README-WORDS NEWS README-LICENSE AUTHORS -%{!?_licensedir:%global license %%doc} %license COPYING.LIB %{_libdir}/libcrack.so.* %dir %{_datadir}/cracklib From d3fefae733112bf4342ee5548fc9d8549b81c8e8 Mon Sep 17 00:00:00 2001 From: Paul Wouters Date: Mon, 7 Mar 2022 21:42:42 -0500 Subject: [PATCH 34/47] update sources --- .gitignore | 4 ++++ sources | 10 +++++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index bee2d82..3a3d8d1 100644 --- a/.gitignore +++ b/.gitignore @@ -54,3 +54,7 @@ cracklib-2.8.16.tar.gz /cracklib-2.9.6.tar.gz /cracklib-words-2.9.6.gz /missing-words.gz +/cracklib-2.9.7.tar.gz +/cracklib-words-2.9.7.gz +/cracklib2_2.9.2-1.debian.tar.xz +/cracklib2_2.9.2-1.dsc diff --git a/sources b/sources index a5a9a0f..9306778 100644 --- a/sources +++ b/sources @@ -1,5 +1,5 @@ -12936e97cc34a28f2efec62e115a60e1 cracklib2_2.8.19-1.debian.tar.gz -bf8714368e0a485472b6ad7c4dba06a3 cracklib2_2.8.19-1.dsc -c52f463585d85924b28cdc1e373ae06d cracklib-2.9.6.tar.gz -cae1257e3a9f95c917cc9dbbab852316 cracklib-words-2.9.6.gz -8405c72b4f68fe569da831abff4c0544 missing-words.gz +SHA512 (cracklib-2.9.7.tar.gz) = 76d701ee521ae35b4cbab406f23a15c84937bb06d3c3747ca8ef2584a41074fc00309a676ec37ebd5b32930163213365cf508d47f614cfccea38e1ba6babb2ff +SHA512 (cracklib-words-2.9.7.gz) = 1fa34b0a2e16d6906982b248f1757bf5bf8154d8d7e8bab94a4ac25080c41434d3828a2c8dd5065e9be586f36480ab70375f09e0bb64eb495d96a460619e2bae +SHA512 (cracklib2_2.9.2-1.debian.tar.xz) = 3521f475389fdbb2ac79f745ea3c247dc179c7492e712a3f3f2620ff483c0c69a799b656d06f1e281012edfa33df53130a83a633381c6c1cd9f1d4eebf7ded8a +SHA512 (cracklib2_2.9.2-1.dsc) = e1b3bee4f015f0e3fcafa714429ae733b8377b2c4cdcfcc3b0cf77e922d78c2e57214f71ab4c8058650c8a80d5bdaf532648e038fdf37dce91045b9b9892023a +SHA512 (missing-words.gz) = 50afb5538ddd15de997883f5ff6925d9084117851cfdcfc02f05c28304d6c17b46ea669fe626ad819e732b6f291f308194300c9db9b110a5c15a4e5d97ca6caa From 7903ce885c14f6c1100690b51cfbd51f8a5d587b Mon Sep 17 00:00:00 2001 From: Paul Wouters Date: Mon, 7 Mar 2022 21:48:25 -0500 Subject: [PATCH 35/47] another stashes patch hunk that was removed in a stashed version --- cracklib-2.9.7-simplistic.patch | 105 -------------------------------- 1 file changed, 105 deletions(-) diff --git a/cracklib-2.9.7-simplistic.patch b/cracklib-2.9.7-simplistic.patch index a711b6f..6d8501f 100644 --- a/cracklib-2.9.7-simplistic.patch +++ b/cracklib-2.9.7-simplistic.patch @@ -92,111 +92,6 @@ diff -Naur cracklib-2.9.7-orig/lib/fascist.c cracklib-2.9.7/lib/fascist.c #ifdef DEBUG printf("%-16s (reversed dict)\n", a); #endif -diff -Naur cracklib-2.9.7-orig/lib/fascist.c.orig cracklib-2.9.7/lib/fascist.c.orig ---- cracklib-2.9.7-orig/lib/fascist.c.orig 2022-03-07 15:16:11.722225350 -0500 -+++ cracklib-2.9.7/lib/fascist.c.orig 2022-03-07 15:16:11.722225350 -0500 -@@ -36,8 +36,8 @@ - #undef DEBUG - #undef DEBUG2 - --extern char *Reverse(char *buf); --extern char *Lowercase(char *buf); -+extern char *Reverse(char *buf, char *area); -+extern char *Lowercase(char *buf, char *area); - - static char *r_destructors[] = { - ":", /* noop - must do this to test raw word. */ -@@ -439,6 +439,8 @@ - int i; - int len; - char *mp; -+ char area[STRINGSIZE]; -+ char revarea[STRINGSIZE]; - - /* use destructors to turn password into rawtext */ - /* note use of Reverse() to save duplicating all rules */ -@@ -447,7 +449,7 @@ - - for (i = 0; r_destructors[i]; i++) - { -- if (!(mp = Mangle(password, r_destructors[i]))) -+ if (!(mp = Mangle(password, r_destructors[i], area))) - { - continue; - } -@@ -462,10 +464,10 @@ - } - - #ifdef DEBUG -- printf("%-16s = %-16s (destruct %s reversed)\n", Reverse(mp), rawtext, r_destructors[i]); -+ printf("%-16s = %-16s (destruct %s reversed)\n", Reverse(mp, revarea), rawtext, r_destructors[i]); - #endif - -- if (!strncmp(Reverse(mp), rawtext, len)) -+ if (!strncmp(Reverse(mp, revarea), rawtext, len)) - { - return (1); - } -@@ -473,7 +475,7 @@ - - for (i = 0; r_constructors[i]; i++) - { -- if (!(mp = Mangle(rawtext, r_constructors[i]))) -+ if (!(mp = Mangle(rawtext, r_constructors[i], area))) - { - continue; - } -@@ -520,7 +522,7 @@ - - strncpy(tbuffer, gecos, STRINGSIZE); - tbuffer[STRINGSIZE-1] = '\0'; -- strcpy(gbuffer, Lowercase(tbuffer)); -+ Lowercase(tbuffer, gbuffer); - - wc = 0; - ptr = gbuffer; -@@ -704,6 +706,7 @@ - char junk[STRINGSIZE]; - char *password; - char rpassword[STRINGSIZE]; -+ char area[STRINGSIZE]; - uint32_t notfound; - - notfound = PW_WORDS(pwp); -@@ -740,7 +743,7 @@ - return _("it does not contain enough DIFFERENT characters"); - } - -- strcpy(password, (char *)Lowercase(password)); -+ strcpy(password, (char *)Lowercase(password, area)); - - Trim(password); - -@@ -796,7 +799,7 @@ - { - char *a; - -- if (!(a = Mangle(password, r_destructors[i]))) -+ if (!(a = Mangle(password, r_destructors[i], area))) - { - continue; - } -@@ -811,13 +814,13 @@ - } - } - -- strcpy(password, (char *)Reverse(password)); -+ strcpy(password, (char *)Reverse(password, area)); - - for (i = 0; r_destructors[i]; i++) - { - char *a; - -- if (!(a = Mangle(password, r_destructors[i]))) -+ if (!(a = Mangle(password, r_destructors[i], area))) - { - continue; - } diff -Naur cracklib-2.9.7-orig/util/cracklib-format cracklib-2.9.7/util/cracklib-format --- cracklib-2.9.7-orig/util/cracklib-format 2019-02-13 20:54:41.000000000 -0500 +++ cracklib-2.9.7/util/cracklib-format 2022-03-07 15:17:54.599692726 -0500 From 8e08eacebe00d430a6b4a6843b24b310b5334d75 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 20 Jul 2022 23:43:03 +0000 Subject: [PATCH 36/47] Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- cracklib.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cracklib.spec b/cracklib.spec index dafa27a..d0dd0cc 100644 --- a/cracklib.spec +++ b/cracklib.spec @@ -5,7 +5,7 @@ Summary: A password-checking library Name: cracklib Version: 2.9.7 -Release: 28%{?dist} +Release: 29%{?dist} Source0: https://github.com/cracklib/cracklib/releases/download/v%{version}/cracklib-%{version}.tar.gz Source1: https://github.com/cracklib/cracklib/releases/download/v%{version}/cracklib-words-%{version}.gz @@ -172,6 +172,9 @@ make test DESTDIR=$RPM_BUILD_ROOT %{_sbindir}/mkdict %changelog +* Wed Jul 20 2022 Fedora Release Engineering - 2.9.7-29 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + * Wed Jan 19 2022 Fedora Release Engineering - 2.9.6-28 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild From 57c3c940caaed21c346260a8395c2a8537746cef Mon Sep 17 00:00:00 2001 From: Parag Nemade Date: Tue, 30 Aug 2022 17:12:49 +0530 Subject: [PATCH 37/47] As -dicts subpackage installs files under %{_libdir} path it should not be noarch this fixes FTBFS on F37+ --- cracklib.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/cracklib.spec b/cracklib.spec index d0dd0cc..62677f5 100644 --- a/cracklib.spec +++ b/cracklib.spec @@ -5,7 +5,7 @@ Summary: A password-checking library Name: cracklib Version: 2.9.7 -Release: 29%{?dist} +Release: 30%{?dist} Source0: https://github.com/cracklib/cracklib/releases/download/v%{version}/cracklib-%{version}.tar.gz Source1: https://github.com/cracklib/cracklib/releases/download/v%{version}/cracklib-words-%{version}.gz @@ -66,7 +66,6 @@ for compiling applications which use cracklib. Summary: The standard CrackLib dictionaries BuildRequires: words >= 2-13 BuildRequires: make -BuildArch: noarch Requires: cracklib = %{version}-%{release} %description dicts @@ -172,6 +171,10 @@ make test DESTDIR=$RPM_BUILD_ROOT %{_sbindir}/mkdict %changelog +* Tue Aug 30 2022 Parag Nemade - 2.9.7-30 +- As -dicts subpackage installs files under %%{_libdir} path it should not be noarch +- this fixes FTBFS on F37+ + * Wed Jul 20 2022 Fedora Release Engineering - 2.9.7-29 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild From 3217e5685badc06bf433a4391329078e7dffd10a Mon Sep 17 00:00:00 2001 From: Paul Wouters Date: Tue, 30 Aug 2022 19:42:25 -0400 Subject: [PATCH 38/47] move Url: and License: to a saner spot higher up in spec file --- cracklib.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cracklib.spec b/cracklib.spec index 62677f5..bba00ea 100644 --- a/cracklib.spec +++ b/cracklib.spec @@ -6,6 +6,8 @@ Summary: A password-checking library Name: cracklib Version: 2.9.7 Release: 30%{?dist} +URL: https://github.com/cracklib/cracklib +License: LGPLv2+ Source0: https://github.com/cracklib/cracklib/releases/download/v%{version}/cracklib-%{version}.tar.gz Source1: https://github.com/cracklib/cracklib/releases/download/v%{version}/cracklib-words-%{version}.gz @@ -26,8 +28,6 @@ Patch6: cracklib-2.9.7-simplistic.patch Patch7: cracklib-2.9.7-translation-updates.patch Patch9: cracklib-2.9.6-coverity.patch Patch10: cracklib-2.9.6-lookup.patch -URL: https://github.com/cracklib/cracklib -License: LGPLv2+ BuildRequires: gcc BuildRequires: words, gettext BuildRequires: gettext-autopoint From 1a51e53e47a95c20708fb2ee04687a6ba14b32b0 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 19 Jan 2023 00:38:18 +0000 Subject: [PATCH 39/47] Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- cracklib.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cracklib.spec b/cracklib.spec index bba00ea..7e0e0e2 100644 --- a/cracklib.spec +++ b/cracklib.spec @@ -5,7 +5,7 @@ Summary: A password-checking library Name: cracklib Version: 2.9.7 -Release: 30%{?dist} +Release: 31%{?dist} URL: https://github.com/cracklib/cracklib License: LGPLv2+ Source0: https://github.com/cracklib/cracklib/releases/download/v%{version}/cracklib-%{version}.tar.gz @@ -171,6 +171,9 @@ make test DESTDIR=$RPM_BUILD_ROOT %{_sbindir}/mkdict %changelog +* Thu Jan 19 2023 Fedora Release Engineering - 2.9.7-31 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + * Tue Aug 30 2022 Parag Nemade - 2.9.7-30 - As -dicts subpackage installs files under %%{_libdir} path it should not be noarch - this fixes FTBFS on F37+ From d2f5af3f9e0552fb56a5575e22ec70f188035767 Mon Sep 17 00:00:00 2001 From: Paul Wouters Date: Fri, 7 Jul 2023 17:59:06 -0400 Subject: [PATCH 40/47] update to 2.9.11 - Resolves: rhbz#2123955 cracklib-2.9.11 is available - Remove old patches, port remaining patches to 2.9.11 - Use man pages from doc/ instead of pulling them from debian --- .gitignore | 2 + cracklib-2.9.0-python-gzdicts.patch | 104 - cracklib-2.9.1-inttypes.patch | 22 - ...=> cracklib-2.9.11-packlib-reentrant.patch | 151 +- ....patch => cracklib-2.9.11-simplistic.patch | 47 +- cracklib-2.9.6-coverity.patch | 20 - cracklib-2.9.6-cve-2016-6318.patch | 144 - cracklib-2.9.6-lookup.patch | 60 - cracklib-2.9.6-packlib-reentrant.patch | 672 ---- cracklib-2.9.6-simplistic.patch | 112 - cracklib-2.9.6-translation-updates.patch | 3084 ----------------- cracklib-2.9.7-translation-updates.patch | 118 - cracklib.spec | 92 +- sources | 6 +- 14 files changed, 138 insertions(+), 4496 deletions(-) delete mode 100644 cracklib-2.9.0-python-gzdicts.patch delete mode 100644 cracklib-2.9.1-inttypes.patch rename cracklib-2.9.7-packlib-reentrant.patch => cracklib-2.9.11-packlib-reentrant.patch (85%) rename cracklib-2.9.7-simplistic.patch => cracklib-2.9.11-simplistic.patch (63%) delete mode 100644 cracklib-2.9.6-coverity.patch delete mode 100644 cracklib-2.9.6-cve-2016-6318.patch delete mode 100644 cracklib-2.9.6-lookup.patch delete mode 100644 cracklib-2.9.6-packlib-reentrant.patch delete mode 100644 cracklib-2.9.6-simplistic.patch delete mode 100644 cracklib-2.9.6-translation-updates.patch delete mode 100644 cracklib-2.9.7-translation-updates.patch diff --git a/.gitignore b/.gitignore index 3a3d8d1..0bcf5ff 100644 --- a/.gitignore +++ b/.gitignore @@ -58,3 +58,5 @@ cracklib-2.8.16.tar.gz /cracklib-words-2.9.7.gz /cracklib2_2.9.2-1.debian.tar.xz /cracklib2_2.9.2-1.dsc +/cracklib-2.9.11.tar.gz +/cracklib-words-2.9.11.gz diff --git a/cracklib-2.9.0-python-gzdicts.patch b/cracklib-2.9.0-python-gzdicts.patch deleted file mode 100644 index feac201..0000000 --- a/cracklib-2.9.0-python-gzdicts.patch +++ /dev/null @@ -1,104 +0,0 @@ -diff -up cracklib-2.9.0/python/_cracklib.c.gzdicts cracklib-2.9.0/python/_cracklib.c ---- cracklib-2.9.0/python/_cracklib.c.gzdicts 2013-06-01 16:47:13.000000000 +0200 -+++ cracklib-2.9.0/python/_cracklib.c 2013-08-20 12:37:32.028611493 +0200 -@@ -23,6 +23,7 @@ - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -+#include "config.h" - #ifdef PYTHON_H - #include PYTHON_H - #else -@@ -72,9 +73,8 @@ static char _cracklib_FascistCheck_doc [ - static PyObject * - _cracklib_FascistCheck(PyObject *self, PyObject *args, PyObject *kwargs) - { -- char *candidate, *dict; -- char *defaultdict = NULL; -- const char *result; -+ char *candidate; -+ const char *result, *dict; - struct stat st; - char *keywords[] = {"pw", "dictpath", NULL}; - char *dictfile; -@@ -103,44 +103,35 @@ _cracklib_FascistCheck(PyObject *self, P - "second argument was not an absolute path!"); - return NULL; - } -- dictfile = malloc(strlen(dict) + sizeof(DICT_SUFFIX)); -- if (dictfile == NULL) -- { -- PyErr_SetFromErrnoWithFilename(PyExc_OSError, dict); -- return NULL; -- } -- sprintf(dictfile, "%s" DICT_SUFFIX, dict); -- if (lstat(dictfile, &st) == -1) -- { -- PyErr_SetFromErrnoWithFilename(PyExc_OSError, dictfile); -- free(dictfile); -- return NULL; -- } -- free(dictfile); - } else - { -- defaultdict = strdup(GetDefaultCracklibDict()); -- if (errno == ENOMEM) { -- PyErr_SetFromErrno(PyExc_OSError); -- return NULL; -- } -- dictfile = malloc(strlen(defaultdict) + sizeof(DICT_SUFFIX)); -- if (dictfile == NULL) -- { -- PyErr_SetFromErrnoWithFilename(PyExc_OSError, defaultdict); -- free(defaultdict); -- return NULL; -- } -- sprintf(dictfile, "%s" DICT_SUFFIX, defaultdict); -+ /* No need to strdup() anything as this is a constant value */ -+ dict = GetDefaultCracklibDict(); -+ } -+ -+ dictfile = malloc(strlen(dict) + sizeof(DICT_SUFFIX) + 3); -+ if (dictfile == NULL) -+ { -+ PyErr_SetFromErrnoWithFilename(PyExc_OSError, dict); -+ return NULL; -+ } -+ sprintf(dictfile, "%s" DICT_SUFFIX, dict); -+ if (lstat(dictfile, &st) == -1) -+ { -+#ifdef HAVE_ZLIB_H -+ sprintf(dictfile, "%s" DICT_SUFFIX ".gz", dict); - if (lstat(dictfile, &st) == -1) - { -+ sprintf(dictfile, "%s" DICT_SUFFIX, dict); -+#endif - PyErr_SetFromErrnoWithFilename(PyExc_OSError, dictfile); -- free(defaultdict); - free(dictfile); - return NULL; -+#ifdef HAVE_ZLIB_H - } -- free(dictfile); -+#endif - } -+ free(dictfile); - - setlocale(LC_ALL, ""); - #ifdef ENABLE_NLS -@@ -148,14 +139,9 @@ _cracklib_FascistCheck(PyObject *self, P - #endif - - LOCK(); -- result = FascistCheck(candidate, dict ? dict : defaultdict); -+ result = FascistCheck(candidate, dict); - UNLOCK(); - -- if (defaultdict != NULL) -- { -- free(defaultdict); -- } -- - if (result != NULL) - { - PyErr_SetString(PyExc_ValueError, result); diff --git a/cracklib-2.9.1-inttypes.patch b/cracklib-2.9.1-inttypes.patch deleted file mode 100644 index c8d8fe8..0000000 --- a/cracklib-2.9.1-inttypes.patch +++ /dev/null @@ -1,22 +0,0 @@ -Do not depend on config.h in public header. -diff -up cracklib-2.9.1/lib/packer.h.inttypes cracklib-2.9.1/lib/packer.h ---- cracklib-2.9.1/lib/packer.h.inttypes 2013-12-03 15:00:15.000000000 +0100 -+++ cracklib-2.9.1/lib/packer.h 2013-12-09 09:07:38.306394809 +0100 -@@ -30,17 +30,7 @@ - #define _(String) (String) - #endif - --#if defined(HAVE_INTTYPES_H) --#include --#else --#if defined(HAVE_STDINT_H) - #include --#else --typedef unsigned int uint32_t; --typedef unsigned short uint16_t; --#endif --#endif -- - - struct pi_header - { diff --git a/cracklib-2.9.7-packlib-reentrant.patch b/cracklib-2.9.11-packlib-reentrant.patch similarity index 85% rename from cracklib-2.9.7-packlib-reentrant.patch rename to cracklib-2.9.11-packlib-reentrant.patch index 0615aff..71f23e3 100644 --- a/cracklib-2.9.7-packlib-reentrant.patch +++ b/cracklib-2.9.11-packlib-reentrant.patch @@ -1,6 +1,6 @@ -diff -Naur cracklib-2.9.7-orig/lib/fascist.c cracklib-2.9.7/lib/fascist.c ---- cracklib-2.9.7-orig/lib/fascist.c 2019-02-13 20:54:41.000000000 -0500 -+++ cracklib-2.9.7/lib/fascist.c 2022-03-07 14:48:53.348146748 -0500 +diff -Naur cracklib-2.9.11-orig/lib/fascist.c cracklib-2.9.11/lib/fascist.c +--- cracklib-2.9.11-orig/lib/fascist.c 2019-02-13 20:54:41.000000000 -0500 ++++ cracklib-2.9.11/lib/fascist.c 2023-07-07 18:20:42.239904964 -0400 @@ -36,8 +36,8 @@ #undef DEBUG #undef DEBUG2 @@ -103,9 +103,9 @@ diff -Naur cracklib-2.9.7-orig/lib/fascist.c cracklib-2.9.7/lib/fascist.c { continue; } -diff -Naur cracklib-2.9.7-orig/lib/packer.h cracklib-2.9.7/lib/packer.h ---- cracklib-2.9.7-orig/lib/packer.h 2022-03-07 14:47:42.224763853 -0500 -+++ cracklib-2.9.7/lib/packer.h 2022-03-07 14:48:53.349146753 -0500 +diff -Naur cracklib-2.9.11-orig/lib/packer.h cracklib-2.9.11/lib/packer.h +--- cracklib-2.9.11-orig/lib/packer.h 2023-03-04 11:00:49.000000000 -0500 ++++ cracklib-2.9.11/lib/packer.h 2023-07-07 18:21:04.315119032 -0400 @@ -82,7 +82,7 @@ extern unsigned int FindPW(PWDICT *pwp, char *string); extern int PutPW(PWDICT *pwp, char *string); @@ -115,10 +115,10 @@ diff -Naur cracklib-2.9.7-orig/lib/packer.h cracklib-2.9.7/lib/packer.h extern char Chop(char *string); extern char *Trim(char *string); extern char *FascistLook(PWDICT *pwp, char *instring); -diff -Naur cracklib-2.9.7-orig/lib/packlib.c cracklib-2.9.7/lib/packlib.c ---- cracklib-2.9.7-orig/lib/packlib.c 2019-02-13 20:54:41.000000000 -0500 -+++ cracklib-2.9.7/lib/packlib.c 2022-03-07 14:48:53.349146753 -0500 -@@ -67,8 +67,8 @@ +diff -Naur cracklib-2.9.11-orig/lib/packlib.c cracklib-2.9.11/lib/packlib.c +--- cracklib-2.9.11-orig/lib/packlib.c 2023-03-04 11:00:49.000000000 -0500 ++++ cracklib-2.9.11/lib/packlib.c 2023-07-07 18:44:55.183214284 -0400 +@@ -65,8 +65,8 @@ char *mode; { int use64 = 0; @@ -129,7 +129,7 @@ diff -Naur cracklib-2.9.7-orig/lib/packlib.c cracklib-2.9.7/lib/packlib.c char iname[STRINGSIZE]; char dname[STRINGSIZE]; char wname[STRINGSIZE]; -@@ -76,13 +76,11 @@ +@@ -74,13 +74,11 @@ void *ifp; void *wfp; @@ -146,7 +146,7 @@ diff -Naur cracklib-2.9.7-orig/lib/packlib.c cracklib-2.9.7/lib/packlib.c memset(&pdesc64, '\0', sizeof(pdesc64)); snprintf(iname, STRINGSIZE, "%s.pwi", prefix); -@@ -91,77 +89,80 @@ +@@ -89,77 +87,80 @@ if (mode[0] == 'r') { @@ -195,7 +195,7 @@ diff -Naur cracklib-2.9.7-orig/lib/packlib.c cracklib-2.9.7/lib/packlib.c #ifdef HAVE_ZLIB_H - if (pdesc.flags & PFOR_USEZLIB) - gzclose(pdesc.dfp); -+ if(pdesc->flags & PFOR_USEZLIB) ++ if (pdesc->flags & PFOR_USEZLIB) + gzclose(pdesc->dfp); else #endif @@ -247,11 +247,11 @@ diff -Naur cracklib-2.9.7-orig/lib/packlib.c cracklib-2.9.7/lib/packlib.c fclose(ifp); #ifdef HAVE_ZLIB_H - if (pdesc.flags & PFOR_USEZLIB) -+ if(pdesc->flags & PFOR_USEZLIB) ++ if (pdesc->flags & PFOR_USEZLIB) gzclose(dfp); else #endif -@@ -170,10 +171,11 @@ +@@ -168,10 +169,11 @@ { fclose(wfp); } @@ -264,7 +264,7 @@ diff -Naur cracklib-2.9.7-orig/lib/packlib.c cracklib-2.9.7/lib/packlib.c { /* uh-oh. either a broken "64-bit" file or a garbage file. */ rewind (ifp); -@@ -181,10 +183,9 @@ +@@ -179,10 +181,9 @@ { fprintf(stderr, "%s: error reading header\n", prefix); @@ -276,15 +276,15 @@ diff -Naur cracklib-2.9.7-orig/lib/packlib.c cracklib-2.9.7/lib/packlib.c gzclose(dfp); else #endif -@@ -193,6 +194,7 @@ +@@ -191,6 +192,7 @@ { fclose(wfp); } -+ free(pdesc); ++ free(pdesc); return NULL; } if (pdesc64.header.pih_magic != PIH_MAGIC) -@@ -200,10 +202,9 @@ +@@ -198,10 +200,9 @@ /* nope, not "64-bit" after all */ fprintf(stderr, "%s: error reading header\n", prefix); @@ -296,11 +296,11 @@ diff -Naur cracklib-2.9.7-orig/lib/packlib.c cracklib-2.9.7/lib/packlib.c gzclose(dfp); else #endif -@@ -213,23 +214,23 @@ +@@ -211,23 +212,23 @@ { fclose(wfp); } -+ free(pdesc); ++ free(pdesc); return NULL; } - pdesc.header.pih_magic = pdesc64.header.pih_magic; @@ -327,7 +327,7 @@ diff -Naur cracklib-2.9.7-orig/lib/packlib.c cracklib-2.9.7/lib/packlib.c gzclose(dfp); else #endif -@@ -239,17 +240,17 @@ +@@ -237,17 +238,17 @@ { fclose(wfp); } @@ -348,7 +348,7 @@ diff -Naur cracklib-2.9.7-orig/lib/packlib.c cracklib-2.9.7/lib/packlib.c gzclose(dfp); else #endif -@@ -258,17 +259,17 @@ +@@ -256,17 +257,17 @@ { fclose(wfp); } @@ -369,7 +369,7 @@ diff -Naur cracklib-2.9.7-orig/lib/packlib.c cracklib-2.9.7/lib/packlib.c gzclose(dfp); else #endif -@@ -277,10 +278,11 @@ +@@ -275,10 +276,11 @@ { fclose(wfp); } @@ -382,7 +382,7 @@ diff -Naur cracklib-2.9.7-orig/lib/packlib.c cracklib-2.9.7/lib/packlib.c { int i; -@@ -288,27 +290,27 @@ +@@ -286,27 +288,27 @@ { if (fread(pdesc64.hwms, 1, sizeof(pdesc64.hwms), wfp) != sizeof(pdesc64.hwms)) { @@ -395,9 +395,8 @@ diff -Naur cracklib-2.9.7-orig/lib/packlib.c cracklib-2.9.7/lib/packlib.c - pdesc.hwms[i] = pdesc64.hwms[i]; + pdesc->hwms[i] = pdesc64.hwms[i]; } -- } + } - else if (fread(pdesc.hwms, 1, sizeof(pdesc.hwms), wfp) != sizeof(pdesc.hwms)) -+ } + else if (fread(pdesc->hwms, 1, sizeof(pdesc->hwms), wfp) != sizeof(pdesc->hwms)) { - pdesc.flags &= ~PFOR_USEHWMS; @@ -418,15 +417,7 @@ diff -Naur cracklib-2.9.7-orig/lib/packlib.c cracklib-2.9.7/lib/packlib.c } int -@@ -318,6 +320,7 @@ - if (pwp->header.pih_magic != PIH_MAGIC) - { - fprintf(stderr, "PWClose: close magic mismatch\n"); -+ /* we do not try to free memory that is probably corrupted */ - return (-1); - } - -@@ -329,12 +332,14 @@ +@@ -327,12 +329,14 @@ if (fseek(pwp->ifp, 0L, 0)) { fprintf(stderr, "index magic fseek failed\n"); @@ -437,11 +428,11 @@ diff -Naur cracklib-2.9.7-orig/lib/packlib.c cracklib-2.9.7/lib/packlib.c if (!fwrite((char *) &pwp->header, sizeof(pwp->header), 1, pwp->ifp)) { fprintf(stderr, "index magic fwrite failed\n"); -+ free(pwp); ++ free(pwp); return (-1); } -@@ -368,6 +373,7 @@ +@@ -366,6 +370,7 @@ } pwp->header.pih_magic = 0; @@ -449,143 +440,143 @@ diff -Naur cracklib-2.9.7-orig/lib/packlib.c cracklib-2.9.7/lib/packlib.c return (0); } -diff -Naur cracklib-2.9.7-orig/lib/rules.c cracklib-2.9.7/lib/rules.c ---- cracklib-2.9.7-orig/lib/rules.c 2019-02-13 20:54:41.000000000 -0500 -+++ cracklib-2.9.7/lib/rules.c 2022-03-07 15:11:48.271298263 -0500 -@@ -82,12 +82,12 @@ +diff -Naur cracklib-2.9.11-orig/lib/rules.c cracklib-2.9.11/lib/rules.c +--- cracklib-2.9.11-orig/lib/rules.c 2023-04-02 14:15:05.000000000 -0400 ++++ cracklib-2.9.11/lib/rules.c 2023-07-07 18:58:04.892943574 -0400 +@@ -80,12 +80,12 @@ } char * -Reverse(str) /* return a pointer to a reversal */ +Reverse(str, area) /* return a pointer to a reversal */ - register char *str; + char *str; + char *area; { - register int i; - register int j; + int i; + int j; - static char area[STRINGSIZE]; j = i = strlen(str); while (*str) { -@@ -98,11 +98,11 @@ +@@ -96,11 +96,11 @@ } char * -Uppercase(str) /* return a pointer to an uppercase */ +Uppercase(str, area) /* return a pointer to an uppercase */ - register char *str; + char *str; + char *area; { - register char *ptr; + char *ptr; - static char area[STRINGSIZE]; ptr = area; while (*str) { -@@ -115,11 +115,11 @@ +@@ -113,11 +113,11 @@ } char * -Lowercase(str) /* return a pointer to an lowercase */ +Lowercase(str, area) /* return a pointer to an lowercase */ - register char *str; + char *str; + char *area; { - register char *ptr; + char *ptr; - static char area[STRINGSIZE]; ptr = area; while (*str) { -@@ -132,11 +132,11 @@ +@@ -130,11 +130,11 @@ } char * -Capitalise(str) /* return a pointer to an capitalised */ +Capitalise(str, area) /* return a pointer to an capitalised */ - register char *str; + char *str; + char *area; { - register char *ptr; + char *ptr; - static char area[STRINGSIZE]; ptr = area; while (*str) -@@ -151,11 +151,11 @@ +@@ -149,11 +149,11 @@ } char * -Pluralise(string) /* returns a pointer to a plural */ +Pluralise(string, area) /* returns a pointer to a plural */ - register char *string; + char *string; + char *area; { - register int length; + int length; - static char area[STRINGSIZE]; length = strlen(string); strcpy(area, string); -@@ -192,13 +192,13 @@ +@@ -190,13 +190,13 @@ } char * -Substitute(string, old, new) /* returns pointer to a swapped about copy */ +Substitute(string, old, new, area) /* returns pointer to a swapped about copy */ - register char *string; - register char old; - register char new; + char *string; + char old; + char new; + char *area; { - register char *ptr; + char *ptr; - static char area[STRINGSIZE]; ptr = area; while (*string) { -@@ -210,12 +210,12 @@ +@@ -208,12 +208,12 @@ } char * -Purge(string, target) /* returns pointer to a purged copy */ +Purge(string, target, area) /* returns pointer to a purged copy */ - register char *string; - register char target; + char *string; + char target; + char *area; { - register char *ptr; + char *ptr; - static char area[STRINGSIZE]; ptr = area; while (*string) { -@@ -372,13 +372,13 @@ +@@ -370,13 +370,13 @@ } char * -PolySubst(string, class, new) /* returns pointer to a swapped about copy */ +PolySubst(string, class, new, area) /* returns pointer to a swapped about copy */ - register char *string; - register char class; - register char new; + char *string; + char class; + char new; + char *area; { - register char *ptr; + char *ptr; - static char area[STRINGSIZE]; ptr = area; while (*string) { -@@ -390,12 +390,12 @@ +@@ -388,12 +388,12 @@ } char * -PolyPurge(string, class) /* returns pointer to a purged copy */ +PolyPurge(string, class, area) /* returns pointer to a purged copy */ - register char *string; - register char class; + char *string; + char class; + char *area; { - register char *ptr; + char *ptr; - static char area[STRINGSIZE]; ptr = area; while (*string) { -@@ -428,39 +428,40 @@ +@@ -426,39 +426,40 @@ } char * @@ -596,7 +587,7 @@ diff -Naur cracklib-2.9.7-orig/lib/rules.c cracklib-2.9.7/lib/rules.c + char *area; { int limit; - register char *ptr; + char *ptr; - static char area[STRINGSIZE * 2] = {0}; char area2[STRINGSIZE * 2] = {0}; strcpy(area, input); @@ -634,7 +625,7 @@ diff -Naur cracklib-2.9.7-orig/lib/rules.c cracklib-2.9.7/lib/rules.c break; case RULE_DUPLICATE: strcpy(area2, area); -@@ -547,7 +548,6 @@ +@@ -545,7 +546,6 @@ Debug(1, "Mangle: extract: weird argument in '%s'\n", control); return NULL; } @@ -642,7 +633,7 @@ diff -Naur cracklib-2.9.7-orig/lib/rules.c cracklib-2.9.7/lib/rules.c for (i = 0; length-- && area2[start + i]; i++) { area[i] = area2[start + i]; -@@ -618,10 +618,10 @@ +@@ -616,10 +616,10 @@ return NULL; } else if (ptr[1] != RULE_CLASS) { @@ -655,7 +646,7 @@ diff -Naur cracklib-2.9.7-orig/lib/rules.c cracklib-2.9.7/lib/rules.c ptr += 2; } break; -@@ -632,11 +632,11 @@ +@@ -630,11 +630,11 @@ return NULL; } else if (ptr[1] != RULE_CLASS) { diff --git a/cracklib-2.9.7-simplistic.patch b/cracklib-2.9.11-simplistic.patch similarity index 63% rename from cracklib-2.9.7-simplistic.patch rename to cracklib-2.9.11-simplistic.patch index 6d8501f..f1df715 100644 --- a/cracklib-2.9.7-simplistic.patch +++ b/cracklib-2.9.11-simplistic.patch @@ -1,6 +1,6 @@ -diff -Naur cracklib-2.9.7-orig/lib/fascist.c cracklib-2.9.7/lib/fascist.c ---- cracklib-2.9.7-orig/lib/fascist.c 2022-03-07 15:16:11.722225350 -0500 -+++ cracklib-2.9.7/lib/fascist.c 2022-03-07 15:17:54.598692721 -0500 +diff -Naur cracklib-2.9.11-orig/lib/fascist.c cracklib-2.9.11/lib/fascist.c +--- cracklib-2.9.11-orig/lib/fascist.c 2023-07-07 21:18:25.582821076 -0400 ++++ cracklib-2.9.11/lib/fascist.c 2023-07-07 21:19:55.130234075 -0400 @@ -55,7 +55,6 @@ "/?p@?p", /* purging out punctuation/symbols/junk */ @@ -15,8 +15,8 @@ diff -Naur cracklib-2.9.7-orig/lib/fascist.c cracklib-2.9.7/lib/fascist.c + if (len - strlen(mp) >= 3) + { -+ /* purged too much */ -+ continue; ++ /* purged too much */ ++ continue; + } + #ifdef DEBUG @@ -28,8 +28,8 @@ diff -Naur cracklib-2.9.7-orig/lib/fascist.c cracklib-2.9.7/lib/fascist.c + if (len - strlen(mp) >= 3) + { -+ /* purged too much */ -+ continue; ++ /* purged too much */ ++ continue; + } + #ifdef DEBUG @@ -60,7 +60,7 @@ diff -Naur cracklib-2.9.7-orig/lib/fascist.c cracklib-2.9.7/lib/fascist.c - maxrepeat = 3+(0.09*strlen(password)); - if (i > maxrepeat) + /* We were still generating false positives for long passwords. -+ Just count systematic double as a single character. */ ++ Just count systematic double as a single character. */ + if (len - i < MINLEN) { return _("it is too simplistic/systematic"); @@ -71,8 +71,8 @@ diff -Naur cracklib-2.9.7-orig/lib/fascist.c cracklib-2.9.7/lib/fascist.c + if (len - strlen(a) >= 3) + { -+ /* purged too much */ -+ continue; ++ /* purged too much */ ++ continue; + } + #ifdef DEBUG @@ -85,28 +85,27 @@ diff -Naur cracklib-2.9.7-orig/lib/fascist.c cracklib-2.9.7/lib/fascist.c + + if (len - strlen(a) >= 3) + { -+ /* purged too much */ -+ continue; ++ /* purged too much */ ++ continue; + } + #ifdef DEBUG printf("%-16s (reversed dict)\n", a); #endif -diff -Naur cracklib-2.9.7-orig/util/cracklib-format cracklib-2.9.7/util/cracklib-format ---- cracklib-2.9.7-orig/util/cracklib-format 2019-02-13 20:54:41.000000000 -0500 -+++ cracklib-2.9.7/util/cracklib-format 2022-03-07 15:17:54.599692726 -0500 -@@ -3,8 +3,10 @@ - # This preprocesses a set of word lists into a suitable form for input - # into cracklib-packer +diff -Naur cracklib-2.9.11-orig/util/cracklib-format cracklib-2.9.11/util/cracklib-format +--- cracklib-2.9.11-orig/util/cracklib-format 2021-01-22 10:58:14.000000000 -0500 ++++ cracklib-2.9.11/util/cracklib-format 2023-07-07 21:19:14.854048317 -0400 +@@ -10,10 +10,12 @@ + # lines (possibly introduced by earlier parts of the pipeline) as + # cracklib-packer will generate "skipping line" warnings otherwise. # +LC_ALL=C +export LC_ALL gzip -cdf "$@" | -- grep -v '^\(#\|$\)' | -- tr '[A-Z]' '[a-z]' | -- tr -cd '\012[a-z][0-9]' | + grep -a -v '^#' | + tr '[A-Z]' '[a-z]' | + tr -cd '\012[a-z][0-9]' | + cut -c 1-1022 | + grep -v '^$' | - env LC_ALL=C sort -u -+ grep -a -E -v '^.{32,}$' | -+ tr '[:upper:]' '[:lower:]' | -+ tr -cd '\n[:graph:]' | + sort -u diff --git a/cracklib-2.9.6-coverity.patch b/cracklib-2.9.6-coverity.patch deleted file mode 100644 index 457b55f..0000000 --- a/cracklib-2.9.6-coverity.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff -up cracklib-2.9.6/lib/rules.c.coverity cracklib-2.9.6/lib/rules.c ---- cracklib-2.9.6/lib/rules.c.coverity 2018-10-09 12:15:31.455187555 +0200 -+++ cracklib-2.9.6/lib/rules.c 2018-10-10 14:28:43.472740618 +0200 -@@ -774,6 +774,8 @@ Mangle(input, control, area) /* returns - } - } - } -+ break; -+ - case RULE_MLAST: - if (!ptr[1] || (ptr[1] == RULE_CLASS && !ptr[2])) - { -@@ -809,6 +811,7 @@ Mangle(input, control, area) /* returns - } - } - } -+ break; - - default: - Debug(1, "Mangle: unknown command %c in %s\n", *ptr, control); diff --git a/cracklib-2.9.6-cve-2016-6318.patch b/cracklib-2.9.6-cve-2016-6318.patch deleted file mode 100644 index 370b403..0000000 --- a/cracklib-2.9.6-cve-2016-6318.patch +++ /dev/null @@ -1,144 +0,0 @@ -diff -up cracklib-2.9.6/lib/fascist.c.overflow cracklib-2.9.6/lib/fascist.c ---- cracklib-2.9.6/lib/fascist.c.overflow 2015-10-23 16:58:38.403319225 +0200 -+++ cracklib-2.9.6/lib/fascist.c 2016-12-08 17:28:41.490101358 +0100 -@@ -515,7 +515,7 @@ FascistGecosUser(char *password, const c - char gbuffer[STRINGSIZE]; - char tbuffer[STRINGSIZE]; - char *uwords[STRINGSIZE]; -- char longbuffer[STRINGSIZE * 2]; -+ char longbuffer[STRINGSIZE]; - - if (gecos == NULL) - gecos = ""; -@@ -596,38 +596,47 @@ FascistGecosUser(char *password, const c - { - for (i = 0; i < j; i++) - { -- strcpy(longbuffer, uwords[i]); -- strcat(longbuffer, uwords[j]); -- -- if (GTry(longbuffer, password)) -+ if (strlen(uwords[i]) + strlen(uwords[j]) < STRINGSIZE) - { -- return _("it is derived from your password entry"); -- } -- -- strcpy(longbuffer, uwords[j]); -- strcat(longbuffer, uwords[i]); -+ strcpy(longbuffer, uwords[i]); -+ strcat(longbuffer, uwords[j]); - -- if (GTry(longbuffer, password)) -- { -- return _("it's derived from your password entry"); -+ if (GTry(longbuffer, password)) -+ { -+ return _("it is derived from your password entry"); -+ } -+ -+ strcpy(longbuffer, uwords[j]); -+ strcat(longbuffer, uwords[i]); -+ -+ if (GTry(longbuffer, password)) -+ { -+ return _("it's derived from your password entry"); -+ } - } - -- longbuffer[0] = uwords[i][0]; -- longbuffer[1] = '\0'; -- strcat(longbuffer, uwords[j]); -- -- if (GTry(longbuffer, password)) -+ if (strlen(uwords[j]) < STRINGSIZE - 1) - { -- return _("it is derivable from your password entry"); -+ longbuffer[0] = uwords[i][0]; -+ longbuffer[1] = '\0'; -+ strcat(longbuffer, uwords[j]); -+ -+ if (GTry(longbuffer, password)) -+ { -+ return _("it is derivable from your password entry"); -+ } - } - -- longbuffer[0] = uwords[j][0]; -- longbuffer[1] = '\0'; -- strcat(longbuffer, uwords[i]); -- -- if (GTry(longbuffer, password)) -+ if (strlen(uwords[i]) < STRINGSIZE - 1) - { -- return _("it's derivable from your password entry"); -+ longbuffer[0] = uwords[j][0]; -+ longbuffer[1] = '\0'; -+ strcat(longbuffer, uwords[i]); -+ -+ if (GTry(longbuffer, password)) -+ { -+ return _("it's derivable from your password entry"); -+ } - } - } - } -diff -up cracklib-2.9.6/lib/rules.c.overflow cracklib-2.9.6/lib/rules.c ---- cracklib-2.9.6/lib/rules.c.overflow 2015-10-23 16:58:38.000000000 +0200 -+++ cracklib-2.9.6/lib/rules.c 2016-12-08 18:03:27.041941297 +0100 -@@ -158,6 +158,8 @@ Pluralise(string, area) /* returns a po - register int length; - length = strlen(string); - strcpy(area, string); -+ if (length > STRINGSIZE - 3) /* we add 2 characters at worst */ -+ return (area); - - if (!Suffix(string, "ch") || - !Suffix(string, "ex") || -@@ -462,11 +464,11 @@ Mangle(input, control, area) /* returns - Pluralise(area2, area); - break; - case RULE_REFLECT: -- strcat(area, Reverse(area, area2)); -+ strncat(area, Reverse(area, area2), STRINGSIZE - strlen(area) - 1); - break; - case RULE_DUPLICATE: - strcpy(area2, area); -- strcat(area, area2); -+ strncat(area, area2, STRINGSIZE - strlen(area) - 1); - break; - case RULE_GT: - if (!ptr[1]) -@@ -514,7 +516,8 @@ Mangle(input, control, area) /* returns - } else - { - area2[0] = *(++ptr); -- strcpy(area2 + 1, area); -+ strncpy(area2 + 1, area, STRINGSIZE - 2); -+ area2[STRINGSIZE - 1] = '\0'; - strcpy(area, area2); - } - break; -@@ -528,8 +531,10 @@ Mangle(input, control, area) /* returns - register char *string; - string = area; - while (*(string++)); -- string[-1] = *(++ptr); -- *string = '\0'; -+ if (string < area + STRINGSIZE) { -+ string[-1] = *(++ptr); -+ *string = '\0'; -+ } - } - break; - case RULE_EXTRACT: -@@ -600,6 +605,10 @@ Mangle(input, control, area) /* returns - } - p1 = area; - p2 = area2; -+ if (strlen(p1) > STRINGSIZE - 2) { -+ /* truncate */ -+ p1[STRINGSIZE - 2] = '\0'; -+ } - while (i && *p1) - { - i--; diff --git a/cracklib-2.9.6-lookup.patch b/cracklib-2.9.6-lookup.patch deleted file mode 100644 index 52ce857..0000000 --- a/cracklib-2.9.6-lookup.patch +++ /dev/null @@ -1,60 +0,0 @@ -diff -up cracklib-2.9.6/lib/packlib.c.lookup cracklib-2.9.6/lib/packlib.c ---- cracklib-2.9.6/lib/packlib.c.lookup 2018-10-10 14:19:06.988958835 +0200 -+++ cracklib-2.9.6/lib/packlib.c 2018-11-26 16:04:34.648256614 +0100 -@@ -585,12 +585,11 @@ fprintf(stderr, "look for (%s)\n", strin - fprintf(stderr, "---- %lu, %lu ----\n", lwm, hwm); - #endif - -- middle = lwm + ((hwm - lwm + 1) / 2); -- - for (;;) - { - int cmp; - -+ middle = lwm + ((hwm - lwm + 1) / 2); - - #if DEBUG - fprintf(stderr, "lwm = %lu, middle = %lu, hwm = %lu\n", lwm, middle, hwm); -@@ -617,24 +616,28 @@ fprintf(stderr, "look for (%s)\n", strin - return(middle); - } - -- if (middle == hwm) -- { --#if DEBUG -- fprintf(stderr, "at terminal subdivision, stopping search\n"); --#endif -- break; -- } -- - if (cmp < 0) - { -- hwm = middle; -- middle = lwm + ((hwm - lwm ) / 2); -- } -+ if (middle == lwm) -+ { -+#if DEBUG -+ fprintf(stderr, "at terminal subdivision from right, stopping search\n"); -+#endif -+ break; -+ } -+ hwm = middle - 1; -+ } - else if (cmp > 0) - { -- lwm = middle; -- middle = lwm + ((hwm - lwm + 1) / 2); -- } -+ if (middle == hwm) -+ { -+#if DEBUG -+ fprintf(stderr, "at terminal subdivision from left, stopping search\n"); -+#endif -+ break; -+ } -+ lwm = middle + 1; -+ } - } - - return (PW_WORDS(pwp)); diff --git a/cracklib-2.9.6-packlib-reentrant.patch b/cracklib-2.9.6-packlib-reentrant.patch deleted file mode 100644 index 9ca7fa7..0000000 --- a/cracklib-2.9.6-packlib-reentrant.patch +++ /dev/null @@ -1,672 +0,0 @@ -diff -up cracklib-2.9.6/lib/fascist.c.reentrant cracklib-2.9.6/lib/fascist.c ---- cracklib-2.9.6/lib/fascist.c.reentrant 2015-08-18 20:41:16.000000000 +0200 -+++ cracklib-2.9.6/lib/fascist.c 2015-10-22 18:17:20.338290974 +0200 -@@ -36,8 +36,8 @@ typedef unsigned short uint16_t; - #undef DEBUG - #undef DEBUG2 - --extern char *Reverse(char *buf); --extern char *Lowercase(char *buf); -+extern char *Reverse(char *buf, char *area); -+extern char *Lowercase(char *buf, char *area); - - static char *r_destructors[] = { - ":", /* noop - must do this to test raw word. */ -@@ -439,6 +439,8 @@ GTry(rawtext, password) - int i; - int len; - char *mp; -+ char area[STRINGSIZE]; -+ char revarea[STRINGSIZE]; - - /* use destructors to turn password into rawtext */ - /* note use of Reverse() to save duplicating all rules */ -@@ -447,7 +449,7 @@ GTry(rawtext, password) - - for (i = 0; r_destructors[i]; i++) - { -- if (!(mp = Mangle(password, r_destructors[i]))) -+ if (!(mp = Mangle(password, r_destructors[i], area))) - { - continue; - } -@@ -462,10 +464,10 @@ GTry(rawtext, password) - } - - #ifdef DEBUG -- printf("%-16s = %-16s (destruct %s reversed)\n", Reverse(mp), rawtext, r_destructors[i]); -+ printf("%-16s = %-16s (destruct %s reversed)\n", Reverse(mp, revarea), rawtext, r_destructors[i]); - #endif - -- if (!strncmp(Reverse(mp), rawtext, len)) -+ if (!strncmp(Reverse(mp, revarea), rawtext, len)) - { - return (1); - } -@@ -473,7 +475,7 @@ GTry(rawtext, password) - - for (i = 0; r_constructors[i]; i++) - { -- if (!(mp = Mangle(rawtext, r_constructors[i]))) -+ if (!(mp = Mangle(rawtext, r_constructors[i], area))) - { - continue; - } -@@ -520,7 +522,7 @@ FascistGecosUser(char *password, const c - - strncpy(tbuffer, gecos, STRINGSIZE); - tbuffer[STRINGSIZE-1] = '\0'; -- strcpy(gbuffer, Lowercase(tbuffer)); -+ Lowercase(tbuffer, gbuffer); - - wc = 0; - ptr = gbuffer; -@@ -695,6 +697,7 @@ FascistLookUser(PWDICT *pwp, char *instr - char junk[STRINGSIZE]; - char *password; - char rpassword[STRINGSIZE]; -+ char area[STRINGSIZE]; - uint32_t notfound; - - notfound = PW_WORDS(pwp); -@@ -731,7 +734,7 @@ FascistLookUser(PWDICT *pwp, char *instr - return _("it does not contain enough DIFFERENT characters"); - } - -- strcpy(password, (char *)Lowercase(password)); -+ strcpy(password, (char *)Lowercase(password, area)); - - Trim(password); - -@@ -787,7 +790,7 @@ FascistLookUser(PWDICT *pwp, char *instr - { - char *a; - -- if (!(a = Mangle(password, r_destructors[i]))) -+ if (!(a = Mangle(password, r_destructors[i], area))) - { - continue; - } -@@ -802,13 +805,13 @@ FascistLookUser(PWDICT *pwp, char *instr - } - } - -- strcpy(password, (char *)Reverse(password)); -+ strcpy(password, (char *)Reverse(password, area)); - - for (i = 0; r_destructors[i]; i++) - { - char *a; - -- if (!(a = Mangle(password, r_destructors[i]))) -+ if (!(a = Mangle(password, r_destructors[i], area))) - { - continue; - } -diff -up cracklib-2.9.6/lib/packer.h.reentrant cracklib-2.9.6/lib/packer.h ---- cracklib-2.9.6/lib/packer.h.reentrant 2015-10-22 18:17:20.335290902 +0200 -+++ cracklib-2.9.6/lib/packer.h 2015-10-22 18:17:20.338290974 +0200 -@@ -82,7 +82,7 @@ extern int PWClose(PWDICT *pwp); - extern unsigned int FindPW(PWDICT *pwp, char *string); - extern int PutPW(PWDICT *pwp, char *string); - extern int PMatch(char *control, char *string); --extern char *Mangle(char *input, char *control); -+extern char *Mangle(char *input, char *control, char *area); - extern char Chop(char *string); - extern char *Trim(char *string); - extern char *FascistLook(PWDICT *pwp, char *instring); -diff -up cracklib-2.9.6/lib/packlib.c.reentrant cracklib-2.9.6/lib/packlib.c ---- cracklib-2.9.6/lib/packlib.c.reentrant 2015-08-18 20:41:16.000000000 +0200 -+++ cracklib-2.9.6/lib/packlib.c 2015-10-22 18:19:52.154911451 +0200 -@@ -67,8 +67,8 @@ PWOpen(prefix, mode) - char *mode; - { - int use64 = 0; -- static PWDICT pdesc; -- static PWDICT64 pdesc64; -+ PWDICT *pdesc; -+ PWDICT64 pdesc64; - char iname[STRINGSIZE]; - char dname[STRINGSIZE]; - char wname[STRINGSIZE]; -@@ -76,13 +76,11 @@ PWOpen(prefix, mode) - void *ifp; - void *wfp; - -- if (pdesc.header.pih_magic == PIH_MAGIC) -- { -- fprintf(stderr, "%s: another dictionary already open\n", prefix); -+ pdesc = malloc(sizeof(*pdesc)); -+ if (pdesc == NULL) - return NULL; -- } - -- memset(&pdesc, '\0', sizeof(pdesc)); -+ memset(pdesc, '\0', sizeof(*pdesc)); - memset(&pdesc64, '\0', sizeof(pdesc64)); - - snprintf(iname, STRINGSIZE, "%s.pwi", prefix); -@@ -91,77 +89,80 @@ PWOpen(prefix, mode) - - if (mode[0] == 'r') - { -- pdesc.flags &= ~PFOR_USEZLIB; -+ pdesc->flags &= ~PFOR_USEZLIB; - /* first try the normal db file */ -- if (!(pdesc.dfp = fopen(dname, mode))) -+ if (!(pdesc->dfp = fopen(dname, mode))) - { - #ifdef HAVE_ZLIB_H -- pdesc.flags |= PFOR_USEZLIB; -+ pdesc->flags |= PFOR_USEZLIB; - /* try extension .gz */ - snprintf(dname, STRINGSIZE, "%s.pwd.gz", prefix); -- if (!(pdesc.dfp = gzopen(dname, mode))) -+ if (!(pdesc->dfp = gzopen(dname, mode))) - { - perror(dname); -+ free(pdesc); - return NULL; - } - #else - perror(dname); -+ free(pdesc); - return NULL; - #endif - } - } - else - { -- pdesc.flags &= ~PFOR_USEZLIB; -+ pdesc->flags &= ~PFOR_USEZLIB; - /* write mode: use fopen */ -- if (!(pdesc.dfp = fopen(dname, mode))) -+ if (!(pdesc->dfp = fopen(dname, mode))) - { - perror(dname); -+ free(pdesc); - return NULL; - } - } - -- if (!(pdesc.ifp = fopen(iname, mode))) -+ if (!(pdesc->ifp = fopen(iname, mode))) - { - #ifdef HAVE_ZLIB_H -- if (pdesc.flags & PFOR_USEZLIB) -- gzclose(pdesc.dfp); -+ if(pdesc->flags & PFOR_USEZLIB) -+ gzclose(pdesc->dfp); - else - #endif -- fclose(pdesc.dfp); -+ fclose(pdesc->dfp); - perror(iname); -+ free(pdesc); - return NULL; - } - -- if ((pdesc.wfp = fopen(wname, mode))) -+ if ((pdesc->wfp = fopen(wname, mode))) - { -- pdesc.flags |= PFOR_USEHWMS; -+ pdesc->flags |= PFOR_USEHWMS; - } - -- ifp = pdesc.ifp; -- dfp = pdesc.dfp; -- wfp = pdesc.wfp; -+ ifp = pdesc->ifp; -+ dfp = pdesc->dfp; -+ wfp = pdesc->wfp; - - if (mode[0] == 'w') - { -- pdesc.flags |= PFOR_WRITE; -- pdesc.header.pih_magic = PIH_MAGIC; -- pdesc.header.pih_blocklen = NUMWORDS; -- pdesc.header.pih_numwords = 0; -+ pdesc->flags |= PFOR_WRITE; -+ pdesc->header.pih_magic = PIH_MAGIC; -+ pdesc->header.pih_blocklen = NUMWORDS; -+ pdesc->header.pih_numwords = 0; - -- fwrite((char *) &pdesc.header, sizeof(pdesc.header), 1, ifp); -+ fwrite((char *) &pdesc->header, sizeof(pdesc->header), 1, ifp); - } else - { -- pdesc.flags &= ~PFOR_WRITE; -+ pdesc->flags &= ~PFOR_WRITE; - -- if (!fread((char *) &pdesc.header, sizeof(pdesc.header), 1, ifp)) -+ if (!fread((char *) &pdesc->header, sizeof(pdesc->header), 1, ifp)) - { - fprintf(stderr, "%s: error reading header\n", prefix); - -- pdesc.header.pih_magic = 0; - fclose(ifp); - #ifdef HAVE_ZLIB_H -- if (pdesc.flags & PFOR_USEZLIB) -+ if(pdesc->flags & PFOR_USEZLIB) - gzclose(dfp); - else - #endif -@@ -170,10 +171,11 @@ PWOpen(prefix, mode) - { - fclose(wfp); - } -+ free(pdesc); - return NULL; - } - -- if ((pdesc.header.pih_magic == 0) || (pdesc.header.pih_numwords == 0)) -+ if ((pdesc->header.pih_magic == 0) || (pdesc->header.pih_numwords == 0)) - { - /* uh-oh. either a broken "64-bit" file or a garbage file. */ - rewind (ifp); -@@ -181,10 +183,9 @@ PWOpen(prefix, mode) - { - fprintf(stderr, "%s: error reading header\n", prefix); - -- pdesc.header.pih_magic = 0; - fclose(ifp); - #ifdef HAVE_ZLIB_H -- if (pdesc.flags & PFOR_USEZLIB) -+ if (pdesc->flags & PFOR_USEZLIB) - gzclose(dfp); - else - #endif -@@ -193,6 +194,7 @@ PWOpen(prefix, mode) - { - fclose(wfp); - } -+ free(pdesc); - return NULL; - } - if (pdesc64.header.pih_magic != PIH_MAGIC) -@@ -200,10 +202,9 @@ PWOpen(prefix, mode) - /* nope, not "64-bit" after all */ - fprintf(stderr, "%s: error reading header\n", prefix); - -- pdesc.header.pih_magic = 0; - fclose(ifp); - #ifdef HAVE_ZLIB_H -- if (pdesc.flags & PFOR_USEZLIB) -+ if (pdesc->flags & PFOR_USEZLIB) - gzclose(dfp); - else - #endif -@@ -213,23 +214,23 @@ PWOpen(prefix, mode) - { - fclose(wfp); - } -+ free(pdesc); - return NULL; - } -- pdesc.header.pih_magic = pdesc64.header.pih_magic; -- pdesc.header.pih_numwords = pdesc64.header.pih_numwords; -- pdesc.header.pih_blocklen = pdesc64.header.pih_blocklen; -- pdesc.header.pih_pad = pdesc64.header.pih_pad; -+ pdesc->header.pih_magic = pdesc64.header.pih_magic; -+ pdesc->header.pih_numwords = pdesc64.header.pih_numwords; -+ pdesc->header.pih_blocklen = pdesc64.header.pih_blocklen; -+ pdesc->header.pih_pad = pdesc64.header.pih_pad; - use64 = 1; - } - -- if (pdesc.header.pih_magic != PIH_MAGIC) -+ if (pdesc->header.pih_magic != PIH_MAGIC) - { - fprintf(stderr, "%s: magic mismatch\n", prefix); - -- pdesc.header.pih_magic = 0; - fclose(ifp); - #ifdef HAVE_ZLIB_H -- if (pdesc.flags & PFOR_USEZLIB) -+ if (pdesc->flags & PFOR_USEZLIB) - gzclose(dfp); - else - #endif -@@ -239,17 +240,17 @@ PWOpen(prefix, mode) - { - fclose(wfp); - } -+ free(pdesc); - return NULL; - } - -- if (pdesc.header.pih_numwords < 1) -+ if (pdesc->header.pih_numwords < 1) - { - fprintf(stderr, "%s: invalid word count\n", prefix); - -- pdesc.header.pih_magic = 0; - fclose(ifp); - #ifdef HAVE_ZLIB_H -- if (pdesc.flags & PFOR_USEZLIB) -+ if (pdesc->flags & PFOR_USEZLIB) - gzclose(dfp); - else - #endif -@@ -258,17 +259,17 @@ PWOpen(prefix, mode) - { - fclose(wfp); - } -+ free(pdesc); - return NULL; - } - -- if (pdesc.header.pih_blocklen != NUMWORDS) -+ if (pdesc->header.pih_blocklen != NUMWORDS) - { - fprintf(stderr, "%s: size mismatch\n", prefix); - -- pdesc.header.pih_magic = 0; - fclose(ifp); - #ifdef HAVE_ZLIB_H -- if (pdesc.flags & PFOR_USEZLIB) -+ if (pdesc->flags & PFOR_USEZLIB) - gzclose(dfp); - else - #endif -@@ -277,10 +278,11 @@ PWOpen(prefix, mode) - { - fclose(wfp); - } -+ free(pdesc); - return NULL; - } - -- if (pdesc.flags & PFOR_USEHWMS) -+ if (pdesc->flags & PFOR_USEHWMS) - { - int i; - -@@ -288,27 +290,27 @@ PWOpen(prefix, mode) - { - if (fread(pdesc64.hwms, 1, sizeof(pdesc64.hwms), wfp) != sizeof(pdesc64.hwms)) - { -- pdesc.flags &= ~PFOR_USEHWMS; -+ pdesc->flags &= ~PFOR_USEHWMS; - } -- for (i = 0; i < sizeof(pdesc.hwms) / sizeof(pdesc.hwms[0]); i++) -+ for (i = 0; i < sizeof(pdesc->hwms) / sizeof(pdesc->hwms[0]); i++) - { -- pdesc.hwms[i] = pdesc64.hwms[i]; -+ pdesc->hwms[i] = pdesc64.hwms[i]; - } -- } -- else if (fread(pdesc.hwms, 1, sizeof(pdesc.hwms), wfp) != sizeof(pdesc.hwms)) -+ } -+ else if (fread(pdesc->hwms, 1, sizeof(pdesc->hwms), wfp) != sizeof(pdesc->hwms)) - { -- pdesc.flags &= ~PFOR_USEHWMS; -+ pdesc->flags &= ~PFOR_USEHWMS; - } - #if DEBUG - for (i=1; i<=0xff; i++) - { -- printf("hwm[%02x] = %d\n", i, pdesc.hwms[i]); -+ printf("hwm[%02x] = %d\n", i, pdesc->hwms[i]); - } - #endif - } - } - -- return (&pdesc); -+ return (pdesc); - } - - int -@@ -318,6 +320,7 @@ PWClose(pwp) - if (pwp->header.pih_magic != PIH_MAGIC) - { - fprintf(stderr, "PWClose: close magic mismatch\n"); -+ /* we do not try to free memory that is probably corrupted */ - return (-1); - } - -@@ -329,12 +332,14 @@ PWClose(pwp) - if (fseek(pwp->ifp, 0L, 0)) - { - fprintf(stderr, "index magic fseek failed\n"); -+ free(pwp); - return (-1); - } - - if (!fwrite((char *) &pwp->header, sizeof(pwp->header), 1, pwp->ifp)) - { - fprintf(stderr, "index magic fwrite failed\n"); -+ free(pwp); - return (-1); - } - -@@ -368,6 +373,7 @@ PWClose(pwp) - } - - pwp->header.pih_magic = 0; -+ free(pwp); - - return (0); - } -diff -up cracklib-2.9.6/lib/rules.c.reentrant cracklib-2.9.6/lib/rules.c ---- cracklib-2.9.6/lib/rules.c.reentrant 2015-08-18 20:41:16.000000000 +0200 -+++ cracklib-2.9.6/lib/rules.c 2015-10-22 18:17:20.339290998 +0200 -@@ -82,12 +82,12 @@ Suffix(myword, suffix) - } - - char * --Reverse(str) /* return a pointer to a reversal */ -+Reverse(str, area) /* return a pointer to a reversal */ - register char *str; -+ char *area; - { - register int i; - register int j; -- static char area[STRINGSIZE]; - j = i = strlen(str); - while (*str) - { -@@ -98,11 +98,11 @@ Reverse(str) /* return a pointer to a - } - - char * --Uppercase(str) /* return a pointer to an uppercase */ -+Uppercase(str, area) /* return a pointer to an uppercase */ - register char *str; -+ char *area; - { - register char *ptr; -- static char area[STRINGSIZE]; - ptr = area; - while (*str) - { -@@ -115,11 +115,11 @@ Uppercase(str) /* return a pointer to - } - - char * --Lowercase(str) /* return a pointer to an lowercase */ -+Lowercase(str, area) /* return a pointer to an lowercase */ - register char *str; -+ char *area; - { - register char *ptr; -- static char area[STRINGSIZE]; - ptr = area; - while (*str) - { -@@ -132,11 +132,11 @@ Lowercase(str) /* return a pointer to - } - - char * --Capitalise(str) /* return a pointer to an capitalised */ -+Capitalise(str, area) /* return a pointer to an capitalised */ - register char *str; -+ char *area; - { - register char *ptr; -- static char area[STRINGSIZE]; - ptr = area; - - while (*str) -@@ -151,11 +151,11 @@ Capitalise(str) /* return a pointer to - } - - char * --Pluralise(string) /* returns a pointer to a plural */ -+Pluralise(string, area) /* returns a pointer to a plural */ - register char *string; -+ char *area; - { - register int length; -- static char area[STRINGSIZE]; - length = strlen(string); - strcpy(area, string); - -@@ -192,13 +192,13 @@ Pluralise(string) /* returns a pointer - } - - char * --Substitute(string, old, new) /* returns pointer to a swapped about copy */ -+Substitute(string, old, new, area) /* returns pointer to a swapped about copy */ - register char *string; - register char old; - register char new; -+ char *area; - { - register char *ptr; -- static char area[STRINGSIZE]; - ptr = area; - while (*string) - { -@@ -210,12 +210,12 @@ Substitute(string, old, new) /* returns - } - - char * --Purge(string, target) /* returns pointer to a purged copy */ -+Purge(string, target, area) /* returns pointer to a purged copy */ - register char *string; - register char target; -+ char *area; - { - register char *ptr; -- static char area[STRINGSIZE]; - ptr = area; - while (*string) - { -@@ -372,13 +372,13 @@ PolyStrchr(string, class) - } - - char * --PolySubst(string, class, new) /* returns pointer to a swapped about copy */ -+PolySubst(string, class, new, area) /* returns pointer to a swapped about copy */ - register char *string; - register char class; - register char new; -+ char *area; - { - register char *ptr; -- static char area[STRINGSIZE]; - ptr = area; - while (*string) - { -@@ -390,12 +390,12 @@ PolySubst(string, class, new) /* returns - } - - char * --PolyPurge(string, class) /* returns pointer to a purged copy */ -+PolyPurge(string, class, area) /* returns pointer to a purged copy */ - register char *string; - register char class; -+ char *area; - { - register char *ptr; -- static char area[STRINGSIZE]; - ptr = area; - while (*string) - { -@@ -428,40 +428,41 @@ Char2Int(character) - } - - char * --Mangle(input, control) /* returns a pointer to a controlled Mangle */ -+Mangle(input, control, area) /* returns a pointer to a controlled Mangle */ - char *input; - char *control; -+ char *area; - { - int limit; - register char *ptr; -- static char area[STRINGSIZE]; - char area2[STRINGSIZE]; - area[0] = '\0'; - strcpy(area, input); - - for (ptr = control; *ptr; ptr++) - { -+ strcpy(area2, area); - switch (*ptr) - { - case RULE_NOOP: - break; - case RULE_REVERSE: -- strcpy(area, Reverse(area)); -+ Reverse(area2, area); - break; - case RULE_UPPERCASE: -- strcpy(area, Uppercase(area)); -+ Uppercase(area2, area); - break; - case RULE_LOWERCASE: -- strcpy(area, Lowercase(area)); -+ Lowercase(area2, area); - break; - case RULE_CAPITALISE: -- strcpy(area, Capitalise(area)); -+ Capitalise(area2, area); - break; - case RULE_PLURALISE: -- strcpy(area, Pluralise(area)); -+ Pluralise(area2, area); - break; - case RULE_REFLECT: -- strcat(area, Reverse(area)); -+ strcat(area, Reverse(area, area2)); - break; - case RULE_DUPLICATE: - strcpy(area2, area); -@@ -548,7 +549,6 @@ Mangle(input, control) /* returns a poi - Debug(1, "Mangle: extract: weird argument in '%s'\n", control); - return NULL; - } -- strcpy(area2, area); - for (i = 0; length-- && area2[start + i]; i++) - { - area[i] = area2[start + i]; -@@ -619,10 +619,10 @@ Mangle(input, control) /* returns a poi - return NULL; - } else if (ptr[1] != RULE_CLASS) - { -- strcpy(area, Purge(area, *(++ptr))); -+ Purge(area2, *(++ptr), area); - } else - { -- strcpy(area, PolyPurge(area, ptr[2])); -+ PolyPurge(area2, ptr[2], area); - ptr += 2; - } - break; -@@ -633,11 +633,11 @@ Mangle(input, control) /* returns a poi - return NULL; - } else if (ptr[1] != RULE_CLASS) - { -- strcpy(area, Substitute(area, ptr[1], ptr[2])); -+ Substitute(area2, ptr[1], ptr[2], area); - ptr += 2; - } else - { -- strcpy(area, PolySubst(area, ptr[2], ptr[3])); -+ PolySubst(area2, ptr[2], ptr[3], area); - ptr += 3; - } - break; diff --git a/cracklib-2.9.6-simplistic.patch b/cracklib-2.9.6-simplistic.patch deleted file mode 100644 index 743b9cb..0000000 --- a/cracklib-2.9.6-simplistic.patch +++ /dev/null @@ -1,112 +0,0 @@ -diff -up cracklib-2.9.6/lib/fascist.c.simplistic cracklib-2.9.6/lib/fascist.c ---- cracklib-2.9.6/lib/fascist.c.simplistic 2015-10-22 18:21:51.099748012 +0200 -+++ cracklib-2.9.6/lib/fascist.c 2015-10-22 18:21:51.101748060 +0200 -@@ -55,7 +55,6 @@ static char *r_destructors[] = { - - "/?p@?p", /* purging out punctuation/symbols/junk */ - "/?s@?s", -- "/?X@?X", - - /* attempt reverse engineering of password strings */ - -@@ -454,6 +453,12 @@ GTry(rawtext, password) - continue; - } - -+ if (len - strlen(mp) >= 3) -+ { -+ /* purged too much */ -+ continue; -+ } -+ - #ifdef DEBUG - printf("%-16s = %-16s (destruct %s)\n", mp, rawtext, r_destructors[i]); - #endif -@@ -480,6 +485,12 @@ GTry(rawtext, password) - continue; - } - -+ if (len - strlen(mp) >= 3) -+ { -+ /* purged too much */ -+ continue; -+ } -+ - #ifdef DEBUG - printf("%-16s = %-16s (construct %s)\n", mp, password, r_constructors[i]); - #endif -@@ -699,6 +710,7 @@ FascistLookUser(PWDICT *pwp, char *instr - char rpassword[STRINGSIZE]; - char area[STRINGSIZE]; - uint32_t notfound; -+ int len; - - notfound = PW_WORDS(pwp); - /* already truncated if from FascistCheck() */ -@@ -748,6 +760,7 @@ FascistLookUser(PWDICT *pwp, char *instr - return _("it is all whitespace"); - } - -+ len = strlen(password); - i = 0; - ptr = password; - while (ptr[0] && ptr[1]) -@@ -759,10 +772,9 @@ FascistLookUser(PWDICT *pwp, char *instr - ptr++; - } - -- /* Change by Ben Karsin from ITS at University of Hawaii at Manoa. Static MAXSTEP -- would generate many false positives for long passwords. */ -- maxrepeat = 3+(0.09*strlen(password)); -- if (i > maxrepeat) -+ /* We were still generating false positives for long passwords. -+ Just count systematic double as a single character. */ -+ if (len - i < MINLEN) - { - return _("it is too simplistic/systematic"); - } -@@ -795,6 +807,12 @@ FascistLookUser(PWDICT *pwp, char *instr - continue; - } - -+ if (len - strlen(a) >= 3) -+ { -+ /* purged too much */ -+ continue; -+ } -+ - #ifdef DEBUG - printf("%-16s (dict)\n", a); - #endif -@@ -815,6 +833,13 @@ FascistLookUser(PWDICT *pwp, char *instr - { - continue; - } -+ -+ if (len - strlen(a) >= 3) -+ { -+ /* purged too much */ -+ continue; -+ } -+ - #ifdef DEBUG - printf("%-16s (reversed dict)\n", a); - #endif -diff -up cracklib-2.9.6/util/cracklib-format.simplistic cracklib-2.9.6/util/cracklib-format ---- cracklib-2.9.6/util/cracklib-format.simplistic 2015-10-22 18:21:51.101748060 +0200 -+++ cracklib-2.9.6/util/cracklib-format 2014-07-09 17:24:45.000000000 +0200 -@@ -3,8 +3,10 @@ - # This preprocesses a set of word lists into a suitable form for input - # into cracklib-packer - # -+LC_ALL=C -+export LC_ALL - gzip -cdf "$@" | -- grep -v '^\(#\|$\)' | -- tr '[A-Z]' '[a-z]' | -- tr -cd '\012[a-z][0-9]' | -- env LC_ALL=C sort -u -+ grep -a -E -v '^.{32,}$' | -+ tr '[:upper:]' '[:lower:]' | -+ tr -cd '\n[:graph:]' | -+ sort -u diff --git a/cracklib-2.9.6-translation-updates.patch b/cracklib-2.9.6-translation-updates.patch deleted file mode 100644 index fff80c0..0000000 --- a/cracklib-2.9.6-translation-updates.patch +++ /dev/null @@ -1,3084 +0,0 @@ -diff -urN cracklib-2.9.6.old/po/as.po cracklib-2.9.6.new/po/as.po ---- cracklib-2.9.6.old/po/as.po 2015-08-18 20:48:15.000000000 +0200 -+++ cracklib-2.9.6.new/po/as.po 2018-10-09 11:57:33.759928725 +0200 -@@ -1,82 +1,83 @@ - # Copyright (C) 2009 Free Software Foundation, Inc. - # This file is distributed under the same license as the PACKAGE package. --# -+# - # Amitakhya Phukan , 2009. -+# ngoswami , 2013. #zanata - msgid "" - msgstr "" - "Project-Id-Version: \n" --"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" --"POT-Creation-Date: 2015-08-18 13:45-0500\n" --"PO-Revision-Date: 2009-11-12 11:39+0530\n" --"Last-Translator: Amitakhya Phukan \n" -+"Report-Msgid-Bugs-To: \n" -+"POT-Creation-Date: 2012-12-14 16:11-0600\n" -+"PO-Revision-Date: 2013-09-23 10:11-0400\n" -+"Last-Translator: ngoswami \n" - "Language-Team: Assamese <>\n" --"Language: as\n" - "MIME-Version: 1.0\n" - "Content-Type: text/plain; charset=UTF-8\n" - "Content-Transfer-Encoding: 8bit\n" --"X-Generator: Lokalize 1.0\n" -+"Language: as\n" - "Plural-Forms: nplurals=2; plural=n != 1;\n" -+"X-Generator: Zanata 3.1.2\n" -+ -+#: ../lib/fascist.c:550 -+msgid "you are not registered in the password file" -+msgstr "আপুনি গুপ্তশব্দৰ নথিপত্ৰ পঞ্জিকৃত নহয়" - --#: lib/fascist.c:516 -+#: ../lib/fascist.c:564 - msgid "it is based on your username" - msgstr "এইটো আপোনাৰ ব্যৱহাৰকৰ্তাৰ নামৰ আধাৰত" - --#: lib/fascist.c:576 -+#: ../lib/fascist.c:629 - msgid "it is based upon your password entry" - msgstr "এইটো আপোনাৰ গুপ্তশব্দৰ নিবেশৰ আধাৰত" - --#: lib/fascist.c:591 -+#: ../lib/fascist.c:649 - msgid "it is derived from your password entry" - msgstr "ইয়াক আপোনাৰ গুপ্তশব্দৰ নিবেশৰ পৰা পোৱা হৈছে" - --#: lib/fascist.c:599 -+#: ../lib/fascist.c:662 - msgid "it's derived from your password entry" - msgstr "ইয়াক আপোনাৰ গুপ্তশব্দৰ নিবেশৰ পৰা পোৱা হৈছে" - --#: lib/fascist.c:608 -+#: ../lib/fascist.c:676 - msgid "it is derivable from your password entry" - msgstr "ইয়াক আপোনাৰ গুপ্তশব্দৰ নিবেশৰ পৰা পাব পাৰি" - --#: lib/fascist.c:617 -+#: ../lib/fascist.c:690 - msgid "it's derivable from your password entry" - msgstr "ইয়াক আপোনাৰ গুপ্তশব্দৰ নিবেশৰ পৰা পাব পাৰি" - --#: lib/fascist.c:674 --msgid "you are not registered in the password file" --msgstr "আপুনি গুপ্তশব্দৰ নথিপত্ৰ পঞ্জিকৃত নহয়" -- --#: lib/fascist.c:709 -+#: ../lib/fascist.c:726 - msgid "it is WAY too short" - msgstr "ই বৰ সৰু" - --#: lib/fascist.c:714 -+#: ../lib/fascist.c:731 - msgid "it is too short" - msgstr "ই বৰ সৰু" - --#: lib/fascist.c:731 -+#: ../lib/fascist.c:748 - msgid "it does not contain enough DIFFERENT characters" - msgstr "ইয়াত যথেষ্ট ভিন্ন আকৰ নাই" - --#: lib/fascist.c:745 -+#: ../lib/fascist.c:762 - msgid "it is all whitespace" - msgstr "ই সম্পূৰ্ণৰূপে ৰিক্ত স্থানেৰে ভৰা" - --#: lib/fascist.c:764 -+#: ../lib/fascist.c:781 - msgid "it is too simplistic/systematic" - msgstr "ই বৰ সৰল/শৃংখলাবদ্ধ" - --#: lib/fascist.c:769 -+#: ../lib/fascist.c:786 - msgid "it looks like a National Insurance number." - msgstr "ই দেখাত এটা National Insurance ৰ নম্বৰৰ দৰে ।" - --#: lib/fascist.c:801 -+#: ../lib/fascist.c:813 - msgid "it is based on a dictionary word" - msgstr "ই এটা অভিধানৰ শব্দৰ আধাৰত" - --#: lib/fascist.c:820 -+#: ../lib/fascist.c:832 - msgid "it is based on a (reversed) dictionary word" - msgstr "ই এটা অভিধানৰ শব্দৰ আধাৰত (ওলোটা ক্ৰমত)" - --#: lib/fascist.c:865 -+#: ../lib/fascist.c:867 - msgid "error loading dictionary" --msgstr "" -+msgstr "শব্দকোষ ল'ড কৰোতে ত্ৰুটি" -diff -urN cracklib-2.9.6.old/po/be.po cracklib-2.9.6.new/po/be.po ---- cracklib-2.9.6.old/po/be.po 1970-01-01 01:00:00.000000000 +0100 -+++ cracklib-2.9.6.new/po/be.po 2018-10-09 11:38:57.597040577 +0200 -@@ -0,0 +1,79 @@ -+# Viktar Siarheichyk , 2018. #zanata -+msgid "" -+msgstr "" -+"Project-Id-Version: cracklib 2.9.6\n" -+"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" -+"POT-Creation-Date: 2015-08-18 13:45-0500\n" -+"PO-Revision-Date: 2018-06-04 07:22+0000\n" -+"Last-Translator: Viktar Siarheichyk \n" -+"Language-Team: Belarusian\n" -+"MIME-Version: 1.0\n" -+"Content-Type: text/plain; charset=UTF-8\n" -+"Content-Transfer-Encoding: 8bit\n" -+"Language: be\n" -+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" -+"X-Generator: Zanata 4.6.2\n" -+ -+#: lib/fascist.c:516 -+msgid "it is based on your username" -+msgstr "заснавана на імені карыстальніка" -+ -+#: lib/fascist.c:576 -+msgid "it is based upon your password entry" -+msgstr "заснавана на ўпісаным пароле" -+ -+#: lib/fascist.c:591 -+msgid "it is derived from your password entry" -+msgstr "паходзіць з вашага запісу пароля" -+ -+#: lib/fascist.c:599 -+msgid "it's derived from your password entry" -+msgstr "паходзіць з вашага запісу пароля" -+ -+#: lib/fascist.c:608 -+msgid "it is derivable from your password entry" -+msgstr "можа паходзіць з вашага запісу пароля" -+ -+#: lib/fascist.c:617 -+msgid "it's derivable from your password entry" -+msgstr "можа паходзіць з вашага запісу пароля" -+ -+#: lib/fascist.c:674 -+msgid "you are not registered in the password file" -+msgstr "няма вашага запісу ў файле пароляў" -+ -+#: lib/fascist.c:709 -+msgid "it is WAY too short" -+msgstr "ён ЗАНАДТА кароткі" -+ -+#: lib/fascist.c:714 -+msgid "it is too short" -+msgstr "ён надта кароткі" -+ -+#: lib/fascist.c:731 -+msgid "it does not contain enough DIFFERENT characters" -+msgstr "у ім недастаткова РОЗНАСТАЙНЫХ знакаў" -+ -+#: lib/fascist.c:745 -+msgid "it is all whitespace" -+msgstr "адны прабелы" -+ -+#: lib/fascist.c:764 -+msgid "it is too simplistic/systematic" -+msgstr "надта просты ці распаўсюджаны" -+ -+#: lib/fascist.c:769 -+msgid "it looks like a National Insurance number." -+msgstr " надобны на нумар сацыяльнага страхавання." -+ -+#: lib/fascist.c:801 -+msgid "it is based on a dictionary word" -+msgstr "базуецца на слоўнікавым слове" -+ -+#: lib/fascist.c:820 -+msgid "it is based on a (reversed) dictionary word" -+msgstr "бвзуецца на (адваротным) слоўнікавым слове" -+ -+#: lib/fascist.c:865 -+msgid "error loading dictionary" -+msgstr "памылка падчас загрузкі слоўніка" -diff -urN cracklib-2.9.6.old/po/bn_IN.po cracklib-2.9.6.new/po/bn_IN.po ---- cracklib-2.9.6.old/po/bn_IN.po 2015-08-18 20:48:15.000000000 +0200 -+++ cracklib-2.9.6.new/po/bn_IN.po 2018-10-09 11:57:33.759928725 +0200 -@@ -1,83 +1,84 @@ - # translation of cracklib.po to Bengali INDIA - # Copyright (C) 2009 Free Software Foundation, Inc. - # This file is distributed under the same license as the cracklib package. --# -+# - # Runa Bhattacharjee , 2009. -+# sray , 2013. #zanata - msgid "" - msgstr "" - "Project-Id-Version: cracklib.default.cracklib\n" --"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" --"POT-Creation-Date: 2015-08-18 13:45-0500\n" --"PO-Revision-Date: 2009-11-11 12:34+0530\n" --"Last-Translator: Runa Bhattacharjee \n" -+"Report-Msgid-Bugs-To: \n" -+"POT-Creation-Date: 2012-12-14 16:11-0600\n" -+"PO-Revision-Date: 2013-10-03 05:14-0400\n" -+"Last-Translator: sray \n" - "Language-Team: Bengali INDIA \n" --"Language: \n" - "MIME-Version: 1.0\n" - "Content-Type: text/plain; charset=UTF-8\n" - "Content-Transfer-Encoding: 8bit\n" --"X-Generator: KBabel 1.11.4\n" -+"Language: bn-IN\n" - "Plural-Forms: nplurals=2; plural=(n != 1);\n" -+"X-Generator: Zanata 3.1.2\n" - --#: lib/fascist.c:516 -+#: ../lib/fascist.c:550 -+msgid "you are not registered in the password file" -+msgstr "পাসওয়ার্ড ফাইলের মধ্যে আপনার পরিচয় নিবন্ধিত নয়" -+ -+#: ../lib/fascist.c:564 - msgid "it is based on your username" - msgstr "আপনার ব্যবহারকারীর নামের উপর এটি নির্ভরশীল" - --#: lib/fascist.c:576 -+#: ../lib/fascist.c:629 - msgid "it is based upon your password entry" - msgstr "আপনার পাসওয়ার্ড এনট্রির উপর এটি নির্ভরশীল" - --#: lib/fascist.c:591 -+#: ../lib/fascist.c:649 - msgid "it is derived from your password entry" - msgstr "আপনার পাসওয়ার্ড এনট্রি থেকে এটি আহরণ করা হয়েছে" - --#: lib/fascist.c:599 -+#: ../lib/fascist.c:662 - msgid "it's derived from your password entry" - msgstr "আপনার পাসওয়ার্ড এনট্রি থেকে এটি আহরণ করা হয়েছে" - --#: lib/fascist.c:608 -+#: ../lib/fascist.c:676 - msgid "it is derivable from your password entry" - msgstr "আপনার পাসওয়ার্ড এনট্রি থেকে এটি আহরণ করা সম্ভব" - --#: lib/fascist.c:617 -+#: ../lib/fascist.c:690 - msgid "it's derivable from your password entry" - msgstr "আপনার পাসওয়ার্ড এনট্রি থেকে এটি আহরণ করা সম্ভব" - --#: lib/fascist.c:674 --msgid "you are not registered in the password file" --msgstr "পাসওয়ার্ড ফাইলের মধ্যে আপনার পরিচয় নিবন্ধিত নয়" -- --#: lib/fascist.c:709 -+#: ../lib/fascist.c:726 - msgid "it is WAY too short" - msgstr "এটি অত্যাধিক ছোট" - --#: lib/fascist.c:714 -+#: ../lib/fascist.c:731 - msgid "it is too short" - msgstr "এটি অতিমাত্রায় ছোট" - --#: lib/fascist.c:731 -+#: ../lib/fascist.c:748 - msgid "it does not contain enough DIFFERENT characters" - msgstr "এর মধ্যে উপস্থিত অক্ষরগুলির মধ্যে পর্যাপ্ত বৈচিত্র উপস্থিত নেই" - --#: lib/fascist.c:745 -+#: ../lib/fascist.c:762 - msgid "it is all whitespace" - msgstr "এটি শুধুমাত্র শূণ্যস্থান দ্বারা গঠিত হয়েছে" - --#: lib/fascist.c:764 -+#: ../lib/fascist.c:781 - msgid "it is too simplistic/systematic" - msgstr "এটি অত্যাধিক সরল/গতানুগতিক" - --#: lib/fascist.c:769 -+#: ../lib/fascist.c:786 - msgid "it looks like a National Insurance number." - msgstr "এটি একটি বীমার অ্যাকাউন্টের সংখ্যার অনুরূপ।" - --#: lib/fascist.c:801 -+#: ../lib/fascist.c:813 - msgid "it is based on a dictionary word" - msgstr "এটি অভিধানের একটি শব্দের ভিত্তিতে নির্ধারিত হয়েছে" - --#: lib/fascist.c:820 -+#: ../lib/fascist.c:832 - msgid "it is based on a (reversed) dictionary word" - msgstr "এটি অভিধানের একটি শব্দের (বিপরীত) ভিত্তিতে নির্ধারিত হয়েছে" - --#: lib/fascist.c:865 -+#: ../lib/fascist.c:867 - msgid "error loading dictionary" --msgstr "" -+msgstr "অভিধান লোড হতে সমস্যা" -diff -urN cracklib-2.9.6.old/po/ca.po cracklib-2.9.6.new/po/ca.po ---- cracklib-2.9.6.old/po/ca.po 1970-01-01 01:00:00.000000000 +0100 -+++ cracklib-2.9.6.new/po/ca.po 2018-10-09 11:37:49.699355368 +0200 -@@ -0,0 +1,79 @@ -+# Robert Antoni Buj Gelonch , 2016. #zanata -+msgid "" -+msgstr "" -+"Project-Id-Version: cracklib 2.9.6\n" -+"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" -+"POT-Creation-Date: 2015-08-18 13:45-0500\n" -+"PO-Revision-Date: 2016-10-08 03:48+0000\n" -+"Last-Translator: Robert Antoni Buj Gelonch \n" -+"Language-Team: Catalan\n" -+"MIME-Version: 1.0\n" -+"Content-Type: text/plain; charset=UTF-8\n" -+"Content-Transfer-Encoding: 8bit\n" -+"Language: ca\n" -+"Plural-Forms: nplurals=2; plural=(n != 1)\n" -+"X-Generator: Zanata 4.6.2\n" -+ -+#: lib/fascist.c:516 -+msgid "it is based on your username" -+msgstr "es basa en el vostre nom d'usuari" -+ -+#: lib/fascist.c:576 -+msgid "it is based upon your password entry" -+msgstr "es basa en la introducció de la vostra contrasenya" -+ -+#: lib/fascist.c:591 -+msgid "it is derived from your password entry" -+msgstr "es deriva a partir de la introducció de la vostra contrasenya" -+ -+#: lib/fascist.c:599 -+msgid "it's derived from your password entry" -+msgstr "es deriva a partir de la introducció de la vostra contrasenya" -+ -+#: lib/fascist.c:608 -+msgid "it is derivable from your password entry" -+msgstr "es pot derivar a partir de la introducció de la vostra contrasenya" -+ -+#: lib/fascist.c:617 -+msgid "it's derivable from your password entry" -+msgstr "es pot derivar a partir de la introducció de la vostra contrasenya" -+ -+#: lib/fascist.c:674 -+msgid "you are not registered in the password file" -+msgstr "no esteu registrat al fitxer de contrasenyes" -+ -+#: lib/fascist.c:709 -+msgid "it is WAY too short" -+msgstr "és massa curt" -+ -+#: lib/fascist.c:714 -+msgid "it is too short" -+msgstr "és massa curt" -+ -+#: lib/fascist.c:731 -+msgid "it does not contain enough DIFFERENT characters" -+msgstr "no conté prou caràcters DIFERENTS" -+ -+#: lib/fascist.c:745 -+msgid "it is all whitespace" -+msgstr "és tot l'espai en blanc" -+ -+#: lib/fascist.c:764 -+msgid "it is too simplistic/systematic" -+msgstr "és massa simplista/sistemàtica" -+ -+#: lib/fascist.c:769 -+msgid "it looks like a National Insurance number." -+msgstr "sembla un número de la seguretat social." -+ -+#: lib/fascist.c:801 -+msgid "it is based on a dictionary word" -+msgstr "es basa en una paraula del diccionari" -+ -+#: lib/fascist.c:820 -+msgid "it is based on a (reversed) dictionary word" -+msgstr "es basa en una paraula del diccionari (revers)" -+ -+#: lib/fascist.c:865 -+msgid "error loading dictionary" -+msgstr "error en carregar el diccionari" -diff -urN cracklib-2.9.6.old/po/cs.po cracklib-2.9.6.new/po/cs.po ---- cracklib-2.9.6.old/po/cs.po 2015-08-18 20:48:15.000000000 +0200 -+++ cracklib-2.9.6.new/po/cs.po 2018-10-09 11:37:54.554475070 +0200 -@@ -1,19 +1,21 @@ - # translation of cracklib.po to czech - # Klara Cihlarova , 2003. --# -+# Jan Dittberner , 2016. #zanata -+# Marek Suchánek , 2016. #zanata - msgid "" - msgstr "" --"Project-Id-Version: cracklib\n" -+"Project-Id-Version: cracklib 2.9.6\n" - "Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" - "POT-Creation-Date: 2015-08-18 13:45-0500\n" --"PO-Revision-Date: 2005-06-23 13:18+02:00\n" --"Last-Translator: Klara Cihlarova \n" -+"PO-Revision-Date: 2016-08-31 01:14+0000\n" -+"Last-Translator: Marek Suchánek \n" - "Language-Team: czech \n" --"Language: \n" - "MIME-Version: 1.0\n" - "Content-Type: text/plain; charset=UTF-8\n" - "Content-Transfer-Encoding: 8bit\n" --"X-Generator: KBabel 1.2\n" -+"Language: cs\n" -+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2\n" -+"X-Generator: Zanata 4.6.2\n" - - #: lib/fascist.c:516 - msgid "it is based on your username" -@@ -77,4 +79,4 @@ - - #: lib/fascist.c:865 - msgid "error loading dictionary" --msgstr "" -+msgstr "chyba při načítání slovníku" -diff -urN cracklib-2.9.6.old/po/da.po cracklib-2.9.6.new/po/da.po ---- cracklib-2.9.6.old/po/da.po 2015-08-18 20:48:15.000000000 +0200 -+++ cracklib-2.9.6.new/po/da.po 2018-10-09 11:39:10.434360676 +0200 -@@ -2,20 +2,22 @@ - # Copyright (C) 2005 Free Software Foundation, Inc. - # This file is distributed under the same license as the PACKAGE package. - # Martin Møller , 2005. --# -+# Jan Dittberner , 2016. #zanata -+# scootergrisen , 2017. #zanata - msgid "" - msgstr "" --"Project-Id-Version: cracklib\n" -+"Project-Id-Version: cracklib 2.9.6\n" - "Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" - "POT-Creation-Date: 2015-08-18 13:45-0500\n" --"PO-Revision-Date: 2005-08-16 20:11+0200\n" --"Last-Translator: Martin Møller \n" -+"PO-Revision-Date: 2017-10-06 02:39+0000\n" -+"Last-Translator: scootergrisen \n" - "Language-Team: Dansk \n" --"Language: \n" - "MIME-Version: 1.0\n" - "Content-Type: text/plain; charset=UTF-8\n" - "Content-Transfer-Encoding: 8bit\n" --"X-Generator: KBabel 1.10.1\n" -+"Language: da\n" -+"Plural-Forms: nplurals=2; plural=(n != 1)\n" -+"X-Generator: Zanata 4.6.2\n" - - #: lib/fascist.c:516 - msgid "it is based on your username" -@@ -43,7 +45,7 @@ - - #: lib/fascist.c:674 - msgid "you are not registered in the password file" --msgstr "Du er ikke optegnet i adgangskodefilen" -+msgstr "du er ikke optegnet i adgangskodefilen" - - #: lib/fascist.c:709 - msgid "it is WAY too short" -@@ -59,7 +61,7 @@ - - #: lib/fascist.c:745 - msgid "it is all whitespace" --msgstr "det er kun mellemrum/blanke tegn" -+msgstr "alt er blanktegn" - - #: lib/fascist.c:764 - msgid "it is too simplistic/systematic" -@@ -67,7 +69,7 @@ - - #: lib/fascist.c:769 - msgid "it looks like a National Insurance number." --msgstr "det ligner et CPR nummer." -+msgstr "det ligner et \"National Insurance\"-nummer." - - #: lib/fascist.c:801 - msgid "it is based on a dictionary word" -@@ -79,4 +81,4 @@ - - #: lib/fascist.c:865 - msgid "error loading dictionary" --msgstr "" -+msgstr "fejl ved indlæsning af ordbog" -diff -urN cracklib-2.9.6.old/po/de.po cracklib-2.9.6.new/po/de.po ---- cracklib-2.9.6.old/po/de.po 2015-08-18 20:48:15.000000000 +0200 -+++ cracklib-2.9.6.new/po/de.po 2018-10-09 11:38:15.372988343 +0200 -@@ -4,21 +4,21 @@ - # Antje Faber , 2000-2003. - # Karl Eichwalder , 1999-2003. - # Martin Lohner , 2000. --# -+# Jan Dittberner , 2016. #zanata - msgid "" - msgstr "" --"Project-Id-Version: new\n" -+"Project-Id-Version: cracklib 2.9.6\n" - "Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" - "POT-Creation-Date: 2015-08-18 13:45-0500\n" --"PO-Revision-Date: 2003-11-27 18:31GMT\n" --"Last-Translator: Novell Language \n" -+"PO-Revision-Date: 2018-08-16 12:44+0000\n" -+"Last-Translator: Copied by Zanata \n" - "Language-Team: Novell Language \n" --"Language: \n" - "MIME-Version: 1.0\n" --"Content-Type: text/plain; charset=utf-8\n" -+"Content-Type: text/plain; charset=UTF-8\n" - "Content-Transfer-Encoding: 8bit\n" -+"Language: de\n" - "Plural-Forms: nplurals=2; plural=(n != 1);\n" --"X-Generator: KBabel 1.0.2\n" -+"X-Generator: Zanata 4.6.2\n" - - #: lib/fascist.c:516 - msgid "it is based on your username" -@@ -82,4 +82,4 @@ - - #: lib/fascist.c:865 - msgid "error loading dictionary" --msgstr "" -+msgstr "Fehler beim Laden des Wörterbuchs" -diff -urN cracklib-2.9.6.old/po/el.po cracklib-2.9.6.new/po/el.po ---- cracklib-2.9.6.old/po/el.po 2015-08-18 20:48:15.000000000 +0200 -+++ cracklib-2.9.6.new/po/el.po 2018-10-09 11:38:32.974426610 +0200 -@@ -4,20 +4,21 @@ - # This file is distributed under the same license as the PACKAGE package. - # Kostas Boukouvalas , 2005. - # Hellenic SuSE Translation Group , 2005. --# -+# Jan Dittberner , 2016. #zanata - msgid "" - msgstr "" --"Project-Id-Version: el\n" -+"Project-Id-Version: cracklib 2.9.6\n" - "Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" - "POT-Creation-Date: 2015-08-18 13:45-0500\n" --"PO-Revision-Date: 2005-08-26 19:19+0300\n" --"Last-Translator: Hellenic SuSE Translation Group \n" -+"PO-Revision-Date: 2016-06-18 01:02+0000\n" -+"Last-Translator: Copied by Zanata \n" - "Language-Team: Hellenic-Ελληνικά-Greek \n" --"Language: \n" - "MIME-Version: 1.0\n" - "Content-Type: text/plain; charset=UTF-8\n" - "Content-Transfer-Encoding: 8bit\n" --"X-Generator: KBabel 1.10\n" -+"Language: el\n" -+"Plural-Forms: nplurals=2; plural=(n != 1)\n" -+"X-Generator: Zanata 4.6.2\n" - - #: lib/fascist.c:516 - msgid "it is based on your username" -diff -urN cracklib-2.9.6.old/po/es.po cracklib-2.9.6.new/po/es.po ---- cracklib-2.9.6.old/po/es.po 2015-08-18 20:48:15.000000000 +0200 -+++ cracklib-2.9.6.new/po/es.po 2018-10-09 11:38:49.684843285 +0200 -@@ -1,81 +1,83 @@ - # translation of cracklib.po to - # This file is put in the public domain. --# , 2003 --# -+#, 2003 -+# Waldo Ribeiro , 2016. #zanata -+# Máximo Castañeda Riloba , 2017. #zanata - msgid "" - msgstr "" --"Project-Id-Version: cracklib\n" -+"Project-Id-Version: cracklib 2.9.6\n" - "Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" - "POT-Creation-Date: 2015-08-18 13:45-0500\n" --"PO-Revision-Date: 2005-06-23 13:17+02:00\n" --"Last-Translator: Novell Language \n" --"Language-Team: Novell Language \n" --"Language: \n" -+"PO-Revision-Date: 2018-08-16 12:44+0000\n" -+"Last-Translator: Copied by Zanata \n" -+"Language-Team: Novell Language \n" - "MIME-Version: 1.0\n" --"Content-Type: text/plain; charset=utf-8\n" -+"Content-Type: text/plain; charset=UTF-8\n" - "Content-Transfer-Encoding: 8bit\n" --"X-Generator: KBabel 1.0.1\n" -+"Language: es\n" -+"Plural-Forms: nplurals=2; plural=(n != 1)\n" -+"X-Generator: Zanata 4.6.2\n" - - #: lib/fascist.c:516 - msgid "it is based on your username" --msgstr "Está basada en su nombre de usuario." -+msgstr "está basada en su nombre de usuario" - - #: lib/fascist.c:576 - msgid "it is based upon your password entry" --msgstr "Está basada en su contraseña." -+msgstr "está basada en su contraseña" - - #: lib/fascist.c:591 - msgid "it is derived from your password entry" --msgstr "Se deriva de su contraseña." -+msgstr "se deriva de su contraseña" - - #: lib/fascist.c:599 - msgid "it's derived from your password entry" --msgstr "Se deriva de su contraseña." -+msgstr "se deriva de su contraseña" - - #: lib/fascist.c:608 - msgid "it is derivable from your password entry" --msgstr "Puede derivarse de su contraseña." -+msgstr "puede derivarse de su contraseña" - - #: lib/fascist.c:617 - msgid "it's derivable from your password entry" --msgstr "Puede derivarse de su contraseña." -+msgstr "puede derivarse de su contraseña" - - #: lib/fascist.c:674 - msgid "you are not registered in the password file" --msgstr "No está registrado en el archivo de contraseñas." -+msgstr "no está registrado en el archivo de contraseñas" - - #: lib/fascist.c:709 - msgid "it is WAY too short" --msgstr "Es DEMASIADO corta." -+msgstr "es DEMASIADO corta" - - #: lib/fascist.c:714 - msgid "it is too short" --msgstr "Es demasiado corta." -+msgstr "es demasiado corta" - - #: lib/fascist.c:731 - msgid "it does not contain enough DIFFERENT characters" --msgstr "No contiene suficientes caracteres DIFERENTES." -+msgstr "no contiene suficientes caracteres DIFERENTES" - - #: lib/fascist.c:745 - msgid "it is all whitespace" --msgstr "Está formada sólo por espacios." -+msgstr "está formada sólo por espacios" - - #: lib/fascist.c:764 - msgid "it is too simplistic/systematic" --msgstr "Es demasiado simple/sistemática." -+msgstr "es demasiado simple/sistemática" - - #: lib/fascist.c:769 - msgid "it looks like a National Insurance number." --msgstr "Parece un número de la Seguridad Social." -+msgstr "parece un número de la Seguridad Social" - - #: lib/fascist.c:801 - msgid "it is based on a dictionary word" --msgstr "Está basada en una palabra del diccionario." -+msgstr "está basada en una palabra del diccionario" - - #: lib/fascist.c:820 - msgid "it is based on a (reversed) dictionary word" --msgstr "Está basada en una palabra del diccionario escrita al revés." -+msgstr "está basada en una palabra del diccionario escrita al revés" - - #: lib/fascist.c:865 - msgid "error loading dictionary" --msgstr "" -+msgstr "error al cargar el diccionario" -diff -urN cracklib-2.9.6.old/po/eu.po cracklib-2.9.6.new/po/eu.po ---- cracklib-2.9.6.old/po/eu.po 1970-01-01 01:00:00.000000000 +0100 -+++ cracklib-2.9.6.new/po/eu.po 2018-10-09 11:38:46.701768899 +0200 -@@ -0,0 +1,79 @@ -+# Mikel Olasagasti Uranga , 2017. #zanata -+msgid "" -+msgstr "" -+"Project-Id-Version: cracklib 2.9.6\n" -+"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" -+"POT-Creation-Date: 2015-08-18 13:45-0500\n" -+"PO-Revision-Date: 2017-04-11 05:46+0000\n" -+"Last-Translator: Mikel Olasagasti Uranga \n" -+"Language-Team: Basque\n" -+"MIME-Version: 1.0\n" -+"Content-Type: text/plain; charset=UTF-8\n" -+"Content-Transfer-Encoding: 8bit\n" -+"Language: eu\n" -+"Plural-Forms: nplurals=2; plural=(n != 1)\n" -+"X-Generator: Zanata 4.6.2\n" -+ -+#: lib/fascist.c:516 -+msgid "it is based on your username" -+msgstr "zure erabiltzaile-izenean oinarrituta dago" -+ -+#: lib/fascist.c:576 -+msgid "it is based upon your password entry" -+msgstr "" -+ -+#: lib/fascist.c:591 -+msgid "it is derived from your password entry" -+msgstr "" -+ -+#: lib/fascist.c:599 -+msgid "it's derived from your password entry" -+msgstr "" -+ -+#: lib/fascist.c:608 -+msgid "it is derivable from your password entry" -+msgstr "" -+ -+#: lib/fascist.c:617 -+msgid "it's derivable from your password entry" -+msgstr "" -+ -+#: lib/fascist.c:674 -+msgid "you are not registered in the password file" -+msgstr "" -+ -+#: lib/fascist.c:709 -+msgid "it is WAY too short" -+msgstr "OSO laburra da" -+ -+#: lib/fascist.c:714 -+msgid "it is too short" -+msgstr "laburregia da" -+ -+#: lib/fascist.c:731 -+msgid "it does not contain enough DIFFERENT characters" -+msgstr "ez ditu nahikoa karaktere EZBERDIN" -+ -+#: lib/fascist.c:745 -+msgid "it is all whitespace" -+msgstr "karaktere guztiak zuriuneak dira" -+ -+#: lib/fascist.c:764 -+msgid "it is too simplistic/systematic" -+msgstr "oso sinple edo sistematikoa" -+ -+#: lib/fascist.c:769 -+msgid "it looks like a National Insurance number." -+msgstr "Gizarte Segurantza zenbakia dirudi (National Insurance)" -+ -+#: lib/fascist.c:801 -+msgid "it is based on a dictionary word" -+msgstr "hiztegiko hitz batean oinarritua da" -+ -+#: lib/fascist.c:820 -+msgid "it is based on a (reversed) dictionary word" -+msgstr "hiztegiko hitz batean oinarritua da (alderantziz)" -+ -+#: lib/fascist.c:865 -+msgid "error loading dictionary" -+msgstr "errorea hiztegia kargatzean" -diff -urN cracklib-2.9.6.old/po/fi.po cracklib-2.9.6.new/po/fi.po ---- cracklib-2.9.6.old/po/fi.po 2015-08-18 20:48:15.000000000 +0200 -+++ cracklib-2.9.6.new/po/fi.po 2018-10-09 11:39:09.467336563 +0200 -@@ -2,20 +2,22 @@ - # Copyright (C) 2005 Free Software Foundation, Inc. - # This file is distributed under the same license as the PACKAGE package. - # Jyri Palokangas , 2005. --# -+# Jan Dittberner , 2016. #zanata -+# Jiri Grönroos , 2017. #zanata - msgid "" - msgstr "" --"Project-Id-Version: cracklib\n" -+"Project-Id-Version: cracklib 2.9.6\n" - "Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" - "POT-Creation-Date: 2015-08-18 13:45-0500\n" --"PO-Revision-Date: 2005-08-25 15:20+0300\n" --"Last-Translator: Jyri Palokangas \n" --"Language-Team: \n" --"Language: \n" -+"PO-Revision-Date: 2017-03-26 09:02+0000\n" -+"Last-Translator: Jiri Grönroos \n" -+"Language-Team: \n" - "MIME-Version: 1.0\n" - "Content-Type: text/plain; charset=UTF-8\n" - "Content-Transfer-Encoding: 8bit\n" --"X-Generator: KBabel 1.10.2\n" -+"Language: fi\n" -+"Plural-Forms: nplurals=2; plural=(n != 1)\n" -+"X-Generator: Zanata 4.6.2\n" - - #: lib/fascist.c:516 - msgid "it is based on your username" -@@ -79,4 +81,4 @@ - - #: lib/fascist.c:865 - msgid "error loading dictionary" --msgstr "" -+msgstr "virhe sanakirjaa ladatessa" -diff -urN cracklib-2.9.6.old/po/fr.po cracklib-2.9.6.new/po/fr.po ---- cracklib-2.9.6.old/po/fr.po 2015-08-18 20:48:15.000000000 +0200 -+++ cracklib-2.9.6.new/po/fr.po 2018-10-09 11:38:58.577065014 +0200 -@@ -1,20 +1,22 @@ - # translation of cracklib.po to Français - # This file is put in the public domain. - # Patricia Vaz , 2003 --# -+# Jan Dittberner , 2016. #zanata -+# Jean-Baptiste Holcroft , 2016. #zanata - msgid "" - msgstr "" --"Project-Id-Version: cracklib\n" -+"Project-Id-Version: cracklib 2.9.6\n" - "Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" - "POT-Creation-Date: 2015-08-18 13:45-0500\n" --"PO-Revision-Date: 2005-06-23 13:17+02:00\n" --"Last-Translator: Novell Language \n" -+"PO-Revision-Date: 2018-08-16 12:44+0000\n" -+"Last-Translator: Copied by Zanata \n" - "Language-Team: Novell Language \n" --"Language: \n" - "MIME-Version: 1.0\n" --"Content-Type: text/plain; charset=utf-8\n" -+"Content-Type: text/plain; charset=UTF-8\n" - "Content-Transfer-Encoding: 8bit\n" --"X-Generator: KBabel 1.0.1\n" -+"Language: fr\n" -+"Plural-Forms: nplurals=2; plural=(n > 1)\n" -+"X-Generator: Zanata 4.6.2\n" - - #: lib/fascist.c:516 - msgid "it is based on your username" -@@ -78,4 +80,4 @@ - - #: lib/fascist.c:865 - msgid "error loading dictionary" --msgstr "" -+msgstr "erreur lors du chargement du dictionnaire" -diff -urN cracklib-2.9.6.old/po/gu.po cracklib-2.9.6.new/po/gu.po ---- cracklib-2.9.6.old/po/gu.po 2015-08-18 20:48:15.000000000 +0200 -+++ cracklib-2.9.6.new/po/gu.po 2018-10-09 11:57:33.760928751 +0200 -@@ -1,84 +1,85 @@ - # translation of cracklib.default.cracklib.gu.po to Gujarati - # Copyright (C) 2009 Free Software Foundation, Inc. - # This file is distributed under the same license as the PACKAGE package. --# -+# - # Ankit Patel , 2009. -+# swkothar , 2013. #zanata - msgid "" - msgstr "" - "Project-Id-Version: cracklib.default.cracklib.gu\n" --"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" --"POT-Creation-Date: 2015-08-18 13:45-0500\n" --"PO-Revision-Date: 2009-10-22 18:13+0530\n" --"Last-Translator: Ankit Patel \n" -+"Report-Msgid-Bugs-To: \n" -+"POT-Creation-Date: 2012-12-14 16:11-0600\n" -+"PO-Revision-Date: 2013-09-24 05:01-0400\n" -+"Last-Translator: swkothar \n" - "Language-Team: Gujarati \n" --"Language: gu\n" - "MIME-Version: 1.0\n" - "Content-Type: text/plain; charset=UTF-8\n" - "Content-Transfer-Encoding: 8bit\n" --"X-Generator: KBabel 1.11.4\n" --"Plural-Forms: nplurals=2; plural=(n!=1);\n" -+"Language: gu\n" -+"Plural-Forms: nplurals=2; plural=(n!=1);\n" - "\n" -+"X-Generator: Zanata 3.1.2\n" -+ -+#: ../lib/fascist.c:550 -+msgid "you are not registered in the password file" -+msgstr "પાસવર્ડ ફાઈલમાં તમારી નોંધ થયેલ નથી" - --#: lib/fascist.c:516 -+#: ../lib/fascist.c:564 - msgid "it is based on your username" - msgstr "તમારા વપરાશકર્તા નામ પર આધારિત છે" - --#: lib/fascist.c:576 -+#: ../lib/fascist.c:629 - msgid "it is based upon your password entry" - msgstr "તમારા પાસવર્ડ પ્રવેશ પર આધારિત છે" - --#: lib/fascist.c:591 -+#: ../lib/fascist.c:649 - msgid "it is derived from your password entry" - msgstr "તમારા પાસવર્ડ પ્રવેશમાંથી તારવવામાં આવેલ છે" - --#: lib/fascist.c:599 -+#: ../lib/fascist.c:662 - msgid "it's derived from your password entry" - msgstr "તમારા પાસવર્ડ પ્રવેશમાંથી તારવવામાં આવેલ છે" - --#: lib/fascist.c:608 -+#: ../lib/fascist.c:676 - msgid "it is derivable from your password entry" - msgstr "તમારા પાસવર્ડ પ્રવેશમાંથી તારવી શકાય તેવું છે" - --#: lib/fascist.c:617 -+#: ../lib/fascist.c:690 - msgid "it's derivable from your password entry" - msgstr "તમારા પાસવર્ડ પ્રવેશમાંથી તારવી શકાય તેવું છે" - --#: lib/fascist.c:674 --msgid "you are not registered in the password file" --msgstr "પાસવર્ડ ફાઈલમાં તમારી નોંધ થયેલ નથી" -- --#: lib/fascist.c:709 -+#: ../lib/fascist.c:726 - msgid "it is WAY too short" - msgstr "ખૂબ ટૂંકો છે" - --#: lib/fascist.c:714 -+#: ../lib/fascist.c:731 - msgid "it is too short" - msgstr "ખૂબ ટૂંકો છે" - --#: lib/fascist.c:731 -+#: ../lib/fascist.c:748 - msgid "it does not contain enough DIFFERENT characters" - msgstr "ભિન્ન અક્ષરો સમાવતો નથી" - --#: lib/fascist.c:745 -+#: ../lib/fascist.c:762 - msgid "it is all whitespace" - msgstr "આ બધી ખાલી જગ્યા છે" - --#: lib/fascist.c:764 -+#: ../lib/fascist.c:781 - msgid "it is too simplistic/systematic" - msgstr "ખૂબ સરળ છે/પદ્ધતિસરનું છે" - --#: lib/fascist.c:769 -+#: ../lib/fascist.c:786 - msgid "it looks like a National Insurance number." - msgstr "રાષ્ટ્રિય વીમા નંબર જેવું દેખાય છે." - --#: lib/fascist.c:801 -+#: ../lib/fascist.c:813 - msgid "it is based on a dictionary word" - msgstr "શબ્દકોષના શબ્દ પર આધારિત છે" - --#: lib/fascist.c:820 -+#: ../lib/fascist.c:832 - msgid "it is based on a (reversed) dictionary word" - msgstr "(આરક્ષિત) શબ્દકોષના શબ્દ પર આધારિત છે" - --#: lib/fascist.c:865 -+#: ../lib/fascist.c:867 - msgid "error loading dictionary" --msgstr "" -+msgstr "શબ્દકોષને લાવી રહ્યા હોય ત્યારે ભૂલ" -diff -urN cracklib-2.9.6.old/po/he.po cracklib-2.9.6.new/po/he.po ---- cracklib-2.9.6.old/po/he.po 1970-01-01 01:00:00.000000000 +0100 -+++ cracklib-2.9.6.new/po/he.po 2018-10-09 11:38:19.242084195 +0200 -@@ -0,0 +1,79 @@ -+# Yaron Shahrabani , 2018. #zanata -+msgid "" -+msgstr "" -+"Project-Id-Version: cracklib 2.9.6\n" -+"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" -+"POT-Creation-Date: 2015-08-18 13:45-0500\n" -+"PO-Revision-Date: 2018-03-20 10:17+0000\n" -+"Last-Translator: Yaron Shahrabani \n" -+"Language-Team: Hebrew\n" -+"MIME-Version: 1.0\n" -+"Content-Type: text/plain; charset=UTF-8\n" -+"Content-Transfer-Encoding: 8bit\n" -+"Language: he\n" -+"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n==2 ? 2 : 1;\n" -+"X-Generator: Zanata 4.6.2\n" -+ -+#: lib/fascist.c:516 -+msgid "it is based on your username" -+msgstr "מבוססת על שם המשתמש שלך" -+ -+#: lib/fascist.c:576 -+msgid "it is based upon your password entry" -+msgstr "" -+ -+#: lib/fascist.c:591 -+msgid "it is derived from your password entry" -+msgstr "" -+ -+#: lib/fascist.c:599 -+msgid "it's derived from your password entry" -+msgstr "" -+ -+#: lib/fascist.c:608 -+msgid "it is derivable from your password entry" -+msgstr "" -+ -+#: lib/fascist.c:617 -+msgid "it's derivable from your password entry" -+msgstr "" -+ -+#: lib/fascist.c:674 -+msgid "you are not registered in the password file" -+msgstr "לא נרשמת בקובץ הססמאות" -+ -+#: lib/fascist.c:709 -+msgid "it is WAY too short" -+msgstr "קצרה ביותר" -+ -+#: lib/fascist.c:714 -+msgid "it is too short" -+msgstr "קצרה מדי" -+ -+#: lib/fascist.c:731 -+msgid "it does not contain enough DIFFERENT characters" -+msgstr "אינה מכילה מספיק תווים שונים" -+ -+#: lib/fascist.c:745 -+msgid "it is all whitespace" -+msgstr "כולה רווחים" -+ -+#: lib/fascist.c:764 -+msgid "it is too simplistic/systematic" -+msgstr "מערכתית/פשוטה מדי" -+ -+#: lib/fascist.c:769 -+msgid "it looks like a National Insurance number." -+msgstr "נראית כמו מספר תעודת זהות/ביטוח לאומי" -+ -+#: lib/fascist.c:801 -+msgid "it is based on a dictionary word" -+msgstr "מבוססת על מילה במילון" -+ -+#: lib/fascist.c:820 -+msgid "it is based on a (reversed) dictionary word" -+msgstr "מבוססת על (היפוך של) מילה במילון" -+ -+#: lib/fascist.c:865 -+msgid "error loading dictionary" -+msgstr "שגיאה בטעינת המילון" -diff -urN cracklib-2.9.6.old/po/hi.po cracklib-2.9.6.new/po/hi.po ---- cracklib-2.9.6.old/po/hi.po 2015-08-18 20:48:15.000000000 +0200 -+++ cracklib-2.9.6.new/po/hi.po 2018-10-09 11:57:33.760928751 +0200 -@@ -2,84 +2,85 @@ - # Hindi translations for cracklib package. - # Copyright (C) 2009, 2010 Free Software Foundation, Inc. - # This file is distributed under the same license as the cracklib package. --# -+# - # Rajesh Ranjan , 2010. -+# rranjan , 2013. #zanata - msgid "" - msgstr "" - "Project-Id-Version: cracklib.default.cracklib\n" --"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" --"POT-Creation-Date: 2015-08-18 13:45-0500\n" --"PO-Revision-Date: 2010-04-06 12:21+0530\n" --"Last-Translator: Rajesh Ranjan \n" -+"Report-Msgid-Bugs-To: \n" -+"POT-Creation-Date: 2012-12-14 16:11-0600\n" -+"PO-Revision-Date: 2013-10-23 04:21-0400\n" -+"Last-Translator: rranjan \n" - "Language-Team: Hindi \n" --"Language: \n" - "MIME-Version: 1.0\n" - "Content-Type: text/plain; charset=UTF-8\n" - "Content-Transfer-Encoding: 8bit\n" --"X-Generator: KBabel 1.11.4\n" -+"Language: hi\n" - "Plural-Forms: nplurals=2; plural=(n!=1);\n" - "\n" -+"X-Generator: Zanata 3.1.2\n" - --#: lib/fascist.c:516 -+#: ../lib/fascist.c:550 -+msgid "you are not registered in the password file" -+msgstr "आप कूटशब्द फ़ाइल में पंजीकृत नहीं हैं" -+ -+#: ../lib/fascist.c:564 - msgid "it is based on your username" - msgstr "यह आपके उपयोक्ता नाम पर आधारित है" - --#: lib/fascist.c:576 -+#: ../lib/fascist.c:629 - msgid "it is based upon your password entry" - msgstr "यह आपकी कूटशब्द प्रविष्टि पर आधारित है" - --#: lib/fascist.c:591 -+#: ../lib/fascist.c:649 - msgid "it is derived from your password entry" - msgstr "यह आपकी कूटशब्द प्रविष्टि से निकला हुआ है" - --#: lib/fascist.c:599 -+#: ../lib/fascist.c:662 - msgid "it's derived from your password entry" - msgstr "यह आपकी कूटशब्द प्रविष्टि से निकला हुआ है" - --#: lib/fascist.c:608 -+#: ../lib/fascist.c:676 - msgid "it is derivable from your password entry" - msgstr "यह आपकी कूटशब्द प्रविष्टि से निकलने योग्य है" - --#: lib/fascist.c:617 -+#: ../lib/fascist.c:690 - msgid "it's derivable from your password entry" - msgstr "यह आपकी कूटशब्द प्रविष्टि से निकलने योग्य है" - --#: lib/fascist.c:674 --msgid "you are not registered in the password file" --msgstr "आप कूटशब्द फ़ाइल में पंजीकृत नहीं हैं" -- --#: lib/fascist.c:709 -+#: ../lib/fascist.c:726 - msgid "it is WAY too short" - msgstr "यह बहुत ही छोटा है" - --#: lib/fascist.c:714 -+#: ../lib/fascist.c:731 - msgid "it is too short" - msgstr "यह बहुत छोटा है" - --#: lib/fascist.c:731 -+#: ../lib/fascist.c:748 - msgid "it does not contain enough DIFFERENT characters" - msgstr "इसमें पर्याप्त मात्रा में भिन्न वर्ण समाहित नहीं हैं" - --#: lib/fascist.c:745 -+#: ../lib/fascist.c:762 - msgid "it is all whitespace" - msgstr "यह पूरी तरह से खाली स्थान है" - --#: lib/fascist.c:764 -+#: ../lib/fascist.c:781 - msgid "it is too simplistic/systematic" - msgstr "यह काफी सरल/क्रमबद्ध है" - --#: lib/fascist.c:769 -+#: ../lib/fascist.c:786 - msgid "it looks like a National Insurance number." - msgstr "यह राष्ट्रीय बीमा संख्या की तरह दिखता है." - --#: lib/fascist.c:801 -+#: ../lib/fascist.c:813 - msgid "it is based on a dictionary word" - msgstr "यह शब्दकोश के शब्द पर आधारित है" - --#: lib/fascist.c:820 -+#: ../lib/fascist.c:832 - msgid "it is based on a (reversed) dictionary word" - msgstr "यह शब्दकोश के शब्द (विलोम) पर आधारित है" - --#: lib/fascist.c:865 -+#: ../lib/fascist.c:867 - msgid "error loading dictionary" --msgstr "" -+msgstr "शब्दकोश लोड करने में त्रुटि" -diff -urN cracklib-2.9.6.old/po/hu.po cracklib-2.9.6.new/po/hu.po ---- cracklib-2.9.6.old/po/hu.po 2015-08-18 20:48:15.000000000 +0200 -+++ cracklib-2.9.6.new/po/hu.po 2018-10-09 11:38:16.351012456 +0200 -@@ -2,48 +2,49 @@ - # This file is put in the public domain. - # Marcel Hilzinger , 2003. - # Gábor Szentiványi , 2003 --# -+# Meskó Balázs , 2016. #zanata - msgid "" - msgstr "" --"Project-Id-Version: cracklib.hu\n" -+"Project-Id-Version: cracklib 2.9.6\n" - "Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" - "POT-Creation-Date: 2015-08-18 13:45-0500\n" --"PO-Revision-Date: 2005-08-06 20:20+0100\n" --"Last-Translator: Szabolcs Varga \n" -+"PO-Revision-Date: 2016-09-10 06:40+0000\n" -+"Last-Translator: Meskó Balázs \n" - "Language-Team: hungarian\n" --"Language: \n" - "MIME-Version: 1.0\n" - "Content-Type: text/plain; charset=UTF-8\n" - "Content-Transfer-Encoding: 8bit\n" --"X-Generator: KBabel 1.0.1\n" -+"Language: hu\n" -+"Plural-Forms: nplurals=2; plural=(n != 1)\n" -+"X-Generator: Zanata 4.6.2\n" - - #: lib/fascist.c:516 - msgid "it is based on your username" --msgstr "az Ön felhasználónevén alapszik" -+msgstr "a felhasználónevén alapszik" - - #: lib/fascist.c:576 - msgid "it is based upon your password entry" --msgstr "az Ön jelszóbejegyzésén alapszik" -+msgstr "a jelszóbejegyzésén alapszik" - - #: lib/fascist.c:591 - msgid "it is derived from your password entry" --msgstr "az Ön jelszóbejegyzéséból lett származtatva" -+msgstr "a jelszóbejegyzéséből lett származtatva" - - #: lib/fascist.c:599 - msgid "it's derived from your password entry" --msgstr "az Ön jelszóbejegyzéséból lett származtatva" -+msgstr "a jelszóbejegyzéséből lett származtatva" - - #: lib/fascist.c:608 - msgid "it is derivable from your password entry" --msgstr "kitalálható az Ön jelszóbejegyzéséből" -+msgstr "kitalálható a jelszóbejegyzéséből" - - #: lib/fascist.c:617 - msgid "it's derivable from your password entry" --msgstr "kitalálható az Ön jelszóbejegyzéséből" -+msgstr "kitalálható a jelszóbejegyzéséből" - - #: lib/fascist.c:674 - msgid "you are not registered in the password file" --msgstr "Ön nem szerepel a password fájlban" -+msgstr "nincs regisztrálva a jelszófájlban" - - #: lib/fascist.c:709 - msgid "it is WAY too short" -@@ -59,7 +60,7 @@ - - #: lib/fascist.c:745 - msgid "it is all whitespace" --msgstr "csak szóközszerű karakterekből áll" -+msgstr "csak üres karakterekből áll" - - #: lib/fascist.c:764 - msgid "it is too simplistic/systematic" -@@ -71,12 +72,12 @@ - - #: lib/fascist.c:801 - msgid "it is based on a dictionary word" --msgstr "a szótárban megtalálható" -+msgstr "szótári szón alapszik" - - #: lib/fascist.c:820 - msgid "it is based on a (reversed) dictionary word" --msgstr "visszafelé olvasva egy ismert szót ad" -+msgstr "(megfordított) szótári szón alapszik" - - #: lib/fascist.c:865 - msgid "error loading dictionary" --msgstr "" -+msgstr "hiba a szótár betöltésekor" -diff -urN cracklib-2.9.6.old/po/id.po cracklib-2.9.6.new/po/id.po ---- cracklib-2.9.6.old/po/id.po 1970-01-01 01:00:00.000000000 +0100 -+++ cracklib-2.9.6.new/po/id.po 2018-10-09 11:38:48.634817101 +0200 -@@ -0,0 +1,79 @@ -+# Andika Triwidada , 2017. #zanata -+msgid "" -+msgstr "" -+"Project-Id-Version: cracklib 2.9.6\n" -+"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" -+"POT-Creation-Date: 2015-08-18 13:45-0500\n" -+"PO-Revision-Date: 2017-07-24 12:45+0000\n" -+"Last-Translator: Andika Triwidada \n" -+"Language-Team: Indonesian\n" -+"MIME-Version: 1.0\n" -+"Content-Type: text/plain; charset=UTF-8\n" -+"Content-Transfer-Encoding: 8bit\n" -+"Language: id\n" -+"Plural-Forms: nplurals=1; plural=0\n" -+"X-Generator: Zanata 4.6.2\n" -+ -+#: lib/fascist.c:516 -+msgid "it is based on your username" -+msgstr "ini berbasis pada nama Anda" -+ -+#: lib/fascist.c:576 -+msgid "it is based upon your password entry" -+msgstr "ini berbasis pada entri kata sandi Anda" -+ -+#: lib/fascist.c:591 -+msgid "it is derived from your password entry" -+msgstr "ini diturunkan dari entri kata sandi Anda" -+ -+#: lib/fascist.c:599 -+msgid "it's derived from your password entry" -+msgstr "ini diturunkan dari entri kata sandi Anda" -+ -+#: lib/fascist.c:608 -+msgid "it is derivable from your password entry" -+msgstr "ini dapat diturunkan dari entri kata sandi Anda" -+ -+#: lib/fascist.c:617 -+msgid "it's derivable from your password entry" -+msgstr "ini dapat diturunkan dari entri kata sandi Anda" -+ -+#: lib/fascist.c:674 -+msgid "you are not registered in the password file" -+msgstr "Anda tidak terdaftar dalam berkas kata sandi" -+ -+#: lib/fascist.c:709 -+msgid "it is WAY too short" -+msgstr "ini KETERLALUAN pendeknya" -+ -+#: lib/fascist.c:714 -+msgid "it is too short" -+msgstr "ini terlalu pendek" -+ -+#: lib/fascist.c:731 -+msgid "it does not contain enough DIFFERENT characters" -+msgstr "ini tidak memuat cukup karakter yang BERBEDA" -+ -+#: lib/fascist.c:745 -+msgid "it is all whitespace" -+msgstr "ini semua keluarga spasi" -+ -+#: lib/fascist.c:764 -+msgid "it is too simplistic/systematic" -+msgstr "ini terlalu sederhana/sistematis" -+ -+#: lib/fascist.c:769 -+msgid "it looks like a National Insurance number." -+msgstr "ini tampak seperti nomor Asuransi Nasional." -+ -+#: lib/fascist.c:801 -+msgid "it is based on a dictionary word" -+msgstr "ini berbasis pada kata kamus" -+ -+#: lib/fascist.c:820 -+msgid "it is based on a (reversed) dictionary word" -+msgstr "ini berbasis pada kata kamus (terbalik)" -+ -+#: lib/fascist.c:865 -+msgid "error loading dictionary" -+msgstr "galat saat memuat kamus" -diff -urN cracklib-2.9.6.old/po/it.po cracklib-2.9.6.new/po/it.po ---- cracklib-2.9.6.old/po/it.po 2015-08-18 20:48:15.000000000 +0200 -+++ cracklib-2.9.6.new/po/it.po 2018-10-09 11:38:39.759595795 +0200 -@@ -1,20 +1,22 @@ - # SOME DESCRIPTIVE TITLE. - # This file is put in the public domain. - # FIRST AUTHOR , YEAR. --# -+# Jan Dittberner , 2016. #zanata -+# Luca Ciavatta , 2017. #zanata - msgid "" - msgstr "" --"Project-Id-Version: cracklib\n" -+"Project-Id-Version: cracklib 2.9.6\n" - "Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" - "POT-Creation-Date: 2015-08-18 13:45-0500\n" --"PO-Revision-Date: 2005-06-23 13:15+02:00\n" --"Last-Translator: Novell Language \n" -+"PO-Revision-Date: 2018-08-16 12:44+0000\n" -+"Last-Translator: Copied by Zanata \n" - "Language-Team: Novell Language \n" --"Language: \n" - "MIME-Version: 1.0\n" --"Content-Type: text/plain; charset=utf-8\n" -+"Content-Type: text/plain; charset=UTF-8\n" - "Content-Transfer-Encoding: 8bit\n" --"X-Generator: KBabel 0.9.6\n" -+"Language: it\n" -+"Plural-Forms: nplurals=2; plural=(n != 1)\n" -+"X-Generator: Zanata 4.6.2\n" - - #: lib/fascist.c:516 - msgid "it is based on your username" -@@ -78,4 +80,4 @@ - - #: lib/fascist.c:865 - msgid "error loading dictionary" --msgstr "" -+msgstr "Errore di caricamento del dizionario" -diff -urN cracklib-2.9.6.old/po/ja.po cracklib-2.9.6.new/po/ja.po ---- cracklib-2.9.6.old/po/ja.po 2015-08-18 20:48:15.000000000 +0200 -+++ cracklib-2.9.6.new/po/ja.po 2018-10-09 11:38:02.366667678 +0200 -@@ -2,19 +2,22 @@ - # Copyright (C) YEAR Free Software Foundation, Inc. - # This file is distributed under the same license as the PACKAGE package. - # FIRST AUTHOR , YEAR. --# -+# Jan Dittberner , 2016. #zanata -+# Ludek Janda , 2018. #zanata - msgid "" - msgstr "" --"Project-Id-Version: cracklib\n" -+"Project-Id-Version: cracklib 2.9.6\n" - "Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" - "POT-Creation-Date: 2015-08-18 13:45-0500\n" --"PO-Revision-Date: 2005-08-18 11:52-0000\n" --"Last-Translator: Novell Language \n" -+"PO-Revision-Date: 2018-08-16 12:48+0000\n" -+"Last-Translator: Copied by Zanata \n" - "Language-Team: Novell Language \n" --"Language: \n" - "MIME-Version: 1.0\n" - "Content-Type: text/plain; charset=UTF-8\n" - "Content-Transfer-Encoding: 8bit\n" -+"Language: ja\n" -+"Plural-Forms: nplurals=1; plural=0\n" -+"X-Generator: Zanata 4.6.2\n" - - #: lib/fascist.c:516 - msgid "it is based on your username" -@@ -78,4 +81,4 @@ - - #: lib/fascist.c:865 - msgid "error loading dictionary" --msgstr "" -+msgstr "辞書の読み込み中二エラーが発生しました" -diff -urN cracklib-2.9.6.old/po/kk.po cracklib-2.9.6.new/po/kk.po ---- cracklib-2.9.6.old/po/kk.po 1970-01-01 01:00:00.000000000 +0100 -+++ cracklib-2.9.6.new/po/kk.po 2018-10-09 11:39:13.394434486 +0200 -@@ -0,0 +1,79 @@ -+# Baurzhan Muftakhidinov , 2017. #zanata -+msgid "" -+msgstr "" -+"Project-Id-Version: cracklib 2.9.6\n" -+"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" -+"POT-Creation-Date: 2015-08-18 13:45-0500\n" -+"PO-Revision-Date: 2017-04-11 12:05+0000\n" -+"Last-Translator: Baurzhan Muftakhidinov \n" -+"Language-Team: Kazakh\n" -+"MIME-Version: 1.0\n" -+"Content-Type: text/plain; charset=UTF-8\n" -+"Content-Transfer-Encoding: 8bit\n" -+"Language: kk\n" -+"Plural-Forms: nplurals=1; plural=0\n" -+"X-Generator: Zanata 4.6.2\n" -+ -+#: lib/fascist.c:516 -+msgid "it is based on your username" -+msgstr "ол сіздің пайдаланушы атыңызға негізделген" -+ -+#: lib/fascist.c:576 -+msgid "it is based upon your password entry" -+msgstr "" -+ -+#: lib/fascist.c:591 -+msgid "it is derived from your password entry" -+msgstr "" -+ -+#: lib/fascist.c:599 -+msgid "it's derived from your password entry" -+msgstr "" -+ -+#: lib/fascist.c:608 -+msgid "it is derivable from your password entry" -+msgstr "" -+ -+#: lib/fascist.c:617 -+msgid "it's derivable from your password entry" -+msgstr "" -+ -+#: lib/fascist.c:674 -+msgid "you are not registered in the password file" -+msgstr "" -+ -+#: lib/fascist.c:709 -+msgid "it is WAY too short" -+msgstr "ол ТЫМ қысқа" -+ -+#: lib/fascist.c:714 -+msgid "it is too short" -+msgstr "ол тым қысқа" -+ -+#: lib/fascist.c:731 -+msgid "it does not contain enough DIFFERENT characters" -+msgstr "" -+ -+#: lib/fascist.c:745 -+msgid "it is all whitespace" -+msgstr "" -+ -+#: lib/fascist.c:764 -+msgid "it is too simplistic/systematic" -+msgstr "" -+ -+#: lib/fascist.c:769 -+msgid "it looks like a National Insurance number." -+msgstr "" -+ -+#: lib/fascist.c:801 -+msgid "it is based on a dictionary word" -+msgstr "" -+ -+#: lib/fascist.c:820 -+msgid "it is based on a (reversed) dictionary word" -+msgstr "" -+ -+#: lib/fascist.c:865 -+msgid "error loading dictionary" -+msgstr "" -diff -urN cracklib-2.9.6.old/po/kn.po cracklib-2.9.6.new/po/kn.po ---- cracklib-2.9.6.old/po/kn.po 2015-08-18 20:48:15.000000000 +0200 -+++ cracklib-2.9.6.new/po/kn.po 2018-10-09 11:57:33.760928751 +0200 -@@ -1,83 +1,84 @@ - # translation of cracklib.po to Kannada - # Copyright (C) 2008 Free Software Foundation, Inc. - # This file is distributed under the same license as the PACKAGE package. --# -+# - # Shankar Prasad , 2008. -+# Shankar Prasad , 2008, 2013. - msgid "" - msgstr "" --"Project-Id-Version: cracklib\n" --"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" --"POT-Creation-Date: 2015-08-18 13:45-0500\n" --"PO-Revision-Date: 2008-12-11 11:49+0530\n" -+"Project-Id-Version: PACKAGE VERSION\n" -+"Report-Msgid-Bugs-To: \n" -+"POT-Creation-Date: 2013-08-06 14:45+0530\n" -+"PO-Revision-Date: 2013-10-28 02:15-0400\n" - "Last-Translator: Shankar Prasad \n" --"Language-Team: Kannada \n" --"Language: kn\n" -+"Language-Team: Kannada \n" - "MIME-Version: 1.0\n" - "Content-Type: text/plain; charset=UTF-8\n" - "Content-Transfer-Encoding: 8bit\n" --"X-Generator: KBabel 1.11.4\n" --"Plural-Forms: nplurals=2; plural=(n != 1);\n" -+"Language: kn\n" -+"Plural-Forms: nplurals=2; plural=(n != 1);\n" -+"X-Generator: Zanata 3.1.2\n" -+ -+#: ../lib/fascist.c:550 -+msgid "you are not registered in the password file" -+msgstr "ಗುಪ್ತಪದದ ಕಡತದಲ್ಲಿ ನಿಮ್ಮ ಹೆಸರು ನೋಂದಾಯಿಸಲ್ಪಟ್ಟಿಲ್ಲ" - --#: lib/fascist.c:516 -+#: ../lib/fascist.c:564 - msgid "it is based on your username" - msgstr "ಇದು ನಿಮ್ಮ ಬಳಕೆದಾರಹೆಸರಿನ ಮೇಲೆ ಆಧರಿತವಾಗಿದೆ" - --#: lib/fascist.c:576 -+#: ../lib/fascist.c:629 - msgid "it is based upon your password entry" - msgstr "ಇದು ನಿಮ್ಮ ಗುಪ್ತಪದ ನಮೂದಿನ ಮೇಲೆ ಆಧರಿತವಾಗಿದೆ" - --#: lib/fascist.c:591 -+#: ../lib/fascist.c:649 - msgid "it is derived from your password entry" - msgstr "ಇದನ್ನು ನಿಮ್ಮ ಗುಪ್ತಪದ ನಮೂದಿನಿಂದ ತೆಗೆದುಕೊಳ್ಳಲಾಗಿದೆ" - --#: lib/fascist.c:599 -+#: ../lib/fascist.c:662 - msgid "it's derived from your password entry" - msgstr "ಇದು ನಿಮ್ಮ ಗುಪ್ತಪದ ನಮೂದಿನಿಂದ ತೆಗೆದುಕೊಳ್ಳಲ್ಪಟ್ಟಿದೆ" - --#: lib/fascist.c:608 -+#: ../lib/fascist.c:676 - msgid "it is derivable from your password entry" - msgstr "ಇದನ್ನು ನಿಮ್ಮ ಗುಪ್ತಪದ ನಮೂದಿನಿಂದ ತೆಗೆದುಕೊಳ್ಳಬಹುದಾಗಿದೆ" - --#: lib/fascist.c:617 -+#: ../lib/fascist.c:690 - msgid "it's derivable from your password entry" - msgstr "ಇದನ್ನು ನಿಮ್ಮ ಗುಪ್ತಪದ ನಮೂದಿನಿಂದ ತೆಗೆದುಕೊಳ್ಳಬಹುದಾಗಿದೆ" - --#: lib/fascist.c:674 --msgid "you are not registered in the password file" --msgstr "ಗುಪ್ತಪದದ ಕಡತದಲ್ಲಿ ನಿಮ್ಮ ಹೆಸರು ನೋಂದಾಯಿಸಲ್ಪಟ್ಟಿಲ್ಲ" -- --#: lib/fascist.c:709 -+#: ../lib/fascist.c:726 - msgid "it is WAY too short" - msgstr "ಇದು ಅತ್ಯಂತ ಚಿಕ್ಕದಾಗಿದೆ" - --#: lib/fascist.c:714 -+#: ../lib/fascist.c:731 - msgid "it is too short" - msgstr "ಇದು ಬಹಳ ಚಿಕ್ಕದಾಗಿದೆ" - --#: lib/fascist.c:731 -+#: ../lib/fascist.c:748 - msgid "it does not contain enough DIFFERENT characters" - msgstr "ಇದು ವಿಭಿನ್ನವಾದ ಸಾಕಷ್ಟು ಅಕ್ಷರಗಳನ್ನು ಹೊಂದಿಲ್ಲ" - --#: lib/fascist.c:745 -+#: ../lib/fascist.c:762 - msgid "it is all whitespace" - msgstr "ಇದು ಕೇವಲ ಖಾಲಿ ಜಾಗಗಳನ್ನು ಹೊಂದಿದೆ" - --#: lib/fascist.c:764 -+#: ../lib/fascist.c:781 - msgid "it is too simplistic/systematic" - msgstr "ಇದು ಬಹಳ ಸರಳ/ಊಹಿಸಬಹುದಾಗಿದೆ" - --#: lib/fascist.c:769 -+#: ../lib/fascist.c:786 - msgid "it looks like a National Insurance number." - msgstr "ಇದು ರಾಷ್ಟ್ರೀಯ ವಿಮೆ ಸಂಖ್ಯೆಯಂತೆ ಕಾಣಿಸುತ್ತಿದೆ" - --#: lib/fascist.c:801 -+#: ../lib/fascist.c:813 - msgid "it is based on a dictionary word" - msgstr "ಇದು ಶಬ್ಧಕೋಶದಲ್ಲಿನ ಒಂದು ಪದದಂತಿದೆ" - --#: lib/fascist.c:820 -+#: ../lib/fascist.c:832 - msgid "it is based on a (reversed) dictionary word" - msgstr "ಇದು ಶಬ್ಧಕೋಶದಲ್ಲಿನ ಒಂದು ಪದದಂತಿದೆ(ತಿರುಮುರುವು)" - --#: lib/fascist.c:865 -+#: ../lib/fascist.c:867 - msgid "error loading dictionary" --msgstr "" -+msgstr "ಕೋಶವನ್ನು ಲೋಡ್ ಮಾಡುವಲ್ಲಿ ದೋಷ" -diff -urN cracklib-2.9.6.old/po/ko.po cracklib-2.9.6.new/po/ko.po ---- cracklib-2.9.6.old/po/ko.po 2015-08-18 20:48:15.000000000 +0200 -+++ cracklib-2.9.6.new/po/ko.po 2018-10-09 11:39:16.328507645 +0200 -@@ -3,20 +3,22 @@ - # This file is distributed under the same license as the PACKAGE package. - # - # Eunju Kim , 2009. -+# Jan Dittberner , 2016. #zanata -+# Ludek Janda , 2018. #zanata - msgid "" - msgstr "" --"Project-Id-Version: cracklib.default\n" -+"Project-Id-Version: cracklib 2.9.6\n" - "Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" - "POT-Creation-Date: 2015-08-18 13:45-0500\n" --"PO-Revision-Date: 2009-11-18 11:19+1000\n" --"Last-Translator: Eunju Kim \n" -+"PO-Revision-Date: 2018-08-21 09:51+0000\n" -+"Last-Translator: Copied by Zanata \n" - "Language-Team: Korean \n" --"Language: ko\n" - "MIME-Version: 1.0\n" - "Content-Type: text/plain; charset=UTF-8\n" - "Content-Transfer-Encoding: 8bit\n" --"X-Generator: KBabel 1.11.4\n" --"Plural-Forms: nplurals=1; plural=0;\n" -+"Language: ko\n" -+"Plural-Forms: nplurals=1; plural=0;\n" -+"X-Generator: Zanata 4.6.2\n" - - #: lib/fascist.c:516 - msgid "it is based on your username" -@@ -80,4 +82,4 @@ - - #: lib/fascist.c:865 - msgid "error loading dictionary" --msgstr "" -+msgstr "사전을 로드하는 도중 오류가 발생했습니다 " -diff -urN cracklib-2.9.6.old/po/LINGUAS cracklib-2.9.6.new/po/LINGUAS ---- cracklib-2.9.6.old/po/LINGUAS 1970-01-01 01:00:00.000000000 +0100 -+++ cracklib-2.9.6.new/po/LINGUAS 2018-10-09 12:14:53.147237727 +0200 -@@ -0,0 +1 @@ -+as be bn_IN ca cs da de el es eu fi fr gu he hi hu id it ja kk kn ko lt ml mr nb nl or pa pl pt_BR pt ru sk sl_SI sq sv ta te tr uk zh_CN zh_TW -diff -urN cracklib-2.9.6.old/po/lt.po cracklib-2.9.6.new/po/lt.po ---- cracklib-2.9.6.old/po/lt.po 2015-08-18 20:48:15.000000000 +0200 -+++ cracklib-2.9.6.new/po/lt.po 2018-10-09 11:38:04.314715706 +0200 -@@ -2,19 +2,21 @@ - # Copyright (C) YEAR Free Software Foundation, Inc. - # This file is distributed under the same license as the PACKAGE package. - # FIRST AUTHOR , YEAR. --# -+# Jan Dittberner , 2016. #zanata - msgid "" - msgstr "" --"Project-Id-Version: cracklib\n" -+"Project-Id-Version: cracklib 2.9.6\n" - "Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" - "POT-Creation-Date: 2015-08-18 13:45-0500\n" --"PO-Revision-Date: 2005-08-04 12:05+0200\n" --"Last-Translator: Linas Spraunius \n" -+"PO-Revision-Date: 2016-06-18 01:02+0000\n" -+"Last-Translator: Copied by Zanata \n" - "Language-Team: lt\n" --"Language: \n" - "MIME-Version: 1.0\n" - "Content-Type: text/plain; charset=UTF-8\n" - "Content-Transfer-Encoding: 8bit\n" -+"Language: lt\n" -+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2)\n" -+"X-Generator: Zanata 4.6.2\n" - - #: lib/fascist.c:516 - msgid "it is based on your username" -diff -urN cracklib-2.9.6.old/po/ml.po cracklib-2.9.6.new/po/ml.po ---- cracklib-2.9.6.old/po/ml.po 2015-08-18 20:48:15.000000000 +0200 -+++ cracklib-2.9.6.new/po/ml.po 2018-10-09 11:57:33.760928751 +0200 -@@ -2,81 +2,82 @@ - # Copyright (C) 2009 Free Software Foundation, Inc. - # This file is distributed under the same license as the cracklib package. - # Ani Peter , 2009. --# -+# apeter , 2013. #zanata - msgid "" - msgstr "" - "Project-Id-Version: cracklib\n" --"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" --"POT-Creation-Date: 2015-08-18 13:45-0500\n" --"PO-Revision-Date: 2009-11-11 14:46+0530\n" --"Last-Translator: Ani Peter \n" -+"Report-Msgid-Bugs-To: \n" -+"POT-Creation-Date: 2012-12-14 16:11-0600\n" -+"PO-Revision-Date: 2013-10-28 08:56-0400\n" -+"Last-Translator: apeter \n" - "Language-Team: Malayalam\n" --"Language: \n" - "MIME-Version: 1.0\n" - "Content-Type: text/plain; charset=UTF-8\n" - "Content-Transfer-Encoding: 8bit\n" --"X-Generator: KBabel 1.11.4\n" -+"Language: ml\n" -+"X-Generator: Zanata 3.1.2\n" -+"Plural-Forms: nplurals=2; plural=(n != 1)\n" - --#: lib/fascist.c:516 -+#: ../lib/fascist.c:550 -+msgid "you are not registered in the password file" -+msgstr "നിങ്ങള്‍ രഹസ്യവാക്കിനുള്ള ഫയലില്‍ രജിസ്ടര്‍ ചെയ്തിട്ടില്ല" -+ -+#: ../lib/fascist.c:564 - msgid "it is based on your username" - msgstr "നിങ്ങളുടെ ഉപയോക്തൃനാമം അനുസരിച്ചാണു്" - --#: lib/fascist.c:576 -+#: ../lib/fascist.c:629 - msgid "it is based upon your password entry" - msgstr "നിങ്ങളുടെ രഹസ്യവാക്കനുസരിച്ചാണു്" - --#: lib/fascist.c:591 -+#: ../lib/fascist.c:649 - msgid "it is derived from your password entry" - msgstr "നിങ്ങളുടെ രഹസ്യവാക്കില്‍ നിന്നും ലഭ്യമാക്കുന്നു" - --#: lib/fascist.c:599 -+#: ../lib/fascist.c:662 - msgid "it's derived from your password entry" - msgstr "നിങ്ങളുടെ രഹസ്യവാക്കില്‍ നിന്നും ലഭ്യമാക്കുന്നു" - --#: lib/fascist.c:608 -+#: ../lib/fascist.c:676 - msgid "it is derivable from your password entry" - msgstr "നിങ്ങളുടെ രഹസ്യവാക്കില്‍ നിന്നും ലഭ്യമാക്കുവാന്‍ സാധിക്കുന്നു" - --#: lib/fascist.c:617 -+#: ../lib/fascist.c:690 - msgid "it's derivable from your password entry" - msgstr "നിങ്ങളുടെ രഹസ്യവാക്കില്‍ നിന്നും ലഭ്യമാക്കുന്നു" - --#: lib/fascist.c:674 --msgid "you are not registered in the password file" --msgstr "നിങ്ങള്‍ രഹസ്യവാക്കിനുള്ള ഫയലില്‍ രജിസ്ടര്‍ ചെയ്തിട്ടില്ല" -- --#: lib/fascist.c:709 -+#: ../lib/fascist.c:726 - msgid "it is WAY too short" - msgstr "വളരെ ചെറുതാണു്" - --#: lib/fascist.c:714 -+#: ../lib/fascist.c:731 - msgid "it is too short" - msgstr "വളരെ ചെറുതാണു്" - --#: lib/fascist.c:731 -+#: ../lib/fascist.c:748 - msgid "it does not contain enough DIFFERENT characters" - msgstr "അനവധി തരത്തിലുള്ള അക്ഷരങ്ങള്‍ നല്‍കുക" - --#: lib/fascist.c:745 -+#: ../lib/fascist.c:762 - msgid "it is all whitespace" - msgstr "എല്ലാം വൈറ്റ്സ്പെയിസാണു്" - --#: lib/fascist.c:764 -+#: ../lib/fascist.c:781 - msgid "it is too simplistic/systematic" - msgstr "വളരെ ലളിതമാണു്" - --#: lib/fascist.c:769 -+#: ../lib/fascist.c:786 - msgid "it looks like a National Insurance number." - msgstr "ഒരു നാഷണല്‍ ഇന്‍ഷുറന്‍സ് നംബര്‍ പോലുണ്ടു്." - --#: lib/fascist.c:801 -+#: ../lib/fascist.c:813 - msgid "it is based on a dictionary word" - msgstr "നിഘണ്ടുവിലുള്ള ഒരു വാക്കിനെ അടിസ്ഥാനമാക്കിയുള്ളതാണു്" - --#: lib/fascist.c:820 -+#: ../lib/fascist.c:832 - msgid "it is based on a (reversed) dictionary word" - msgstr "നിഘണ്ടുവിലുള്ള ഒരു വാക്കിനെ അടിസ്ഥാനമാക്കിയുള്ളതാണു്" - --#: lib/fascist.c:865 -+#: ../lib/fascist.c:867 - msgid "error loading dictionary" --msgstr "" -+msgstr "നിഘണ്ടു ലഭ്യമാക്കുന്നതില്‍ പിശക്" -diff -urN cracklib-2.9.6.old/po/mr.po cracklib-2.9.6.new/po/mr.po ---- cracklib-2.9.6.old/po/mr.po 2015-08-18 20:48:15.000000000 +0200 -+++ cracklib-2.9.6.new/po/mr.po 2018-10-09 11:57:33.761928776 +0200 -@@ -1,83 +1,84 @@ - # translation of cracklib.default.cracklib.po to Marathi - # Copyright (C) 2009 Free Software Foundation, Inc. - # This file is distributed under the same license as the PACKAGE package. --# -+# - # Sandeep Shedmake , 2009. -+# Sandeep Shedmake , 2009, 2013. - msgid "" - msgstr "" --"Project-Id-Version: cracklib.default.cracklib\n" --"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" --"POT-Creation-Date: 2015-08-18 13:45-0500\n" --"PO-Revision-Date: 2009-11-11 12:24+0530\n" -+"Project-Id-Version: PACKAGE VERSION\n" -+"Report-Msgid-Bugs-To: \n" -+"POT-Creation-Date: 2013-08-06 14:45+0530\n" -+"PO-Revision-Date: 2013-10-13 01:28-0400\n" - "Last-Translator: Sandeep Shedmake \n" - "Language-Team: Marathi \n" --"Language: mr\n" - "MIME-Version: 1.0\n" - "Content-Type: text/plain; charset=UTF-8\n" - "Content-Transfer-Encoding: 8bit\n" --"X-Generator: KBabel 1.11.4\n" -+"Language: mr\n" - "Plural-Forms: nplurals=2; plural=(n!=1);\n" -+"X-Generator: Zanata 3.1.2\n" -+ -+#: ../lib/fascist.c:550 -+msgid "you are not registered in the password file" -+msgstr "तुम्ही पासवर्ड फाइलमध्ये नोंदणीकृत नाही" - --#: lib/fascist.c:516 -+#: ../lib/fascist.c:564 - msgid "it is based on your username" - msgstr "तुमच्या वापरकर्तानावावर आधारीत आहे" - --#: lib/fascist.c:576 -+#: ../lib/fascist.c:629 - msgid "it is based upon your password entry" - msgstr "तुमच्या पासवर्ड नोंदवर आधारीत आहे" - --#: lib/fascist.c:591 -+#: ../lib/fascist.c:649 - msgid "it is derived from your password entry" - msgstr "तुमच्या पासवर्ड नोंद पासून प्राप्त आहे" - --#: lib/fascist.c:599 -+#: ../lib/fascist.c:662 - msgid "it's derived from your password entry" - msgstr "तुमच्या पासवर्ड नोंद पासून प्राप्त" - --#: lib/fascist.c:608 -+#: ../lib/fascist.c:676 - msgid "it is derivable from your password entry" - msgstr "तुमच्या पासवर्ड नोंद पासून प्राप्यजोगी आहे" - --#: lib/fascist.c:617 -+#: ../lib/fascist.c:690 - msgid "it's derivable from your password entry" - msgstr "तुमच्या पासवर्ड नोंद पासून प्राप्यजोगी" - --#: lib/fascist.c:674 --msgid "you are not registered in the password file" --msgstr "तुम्ही पासवर्ड फाइलमध्ये नोंदणीकृत नाही" -- --#: lib/fascist.c:709 -+#: ../lib/fascist.c:726 - msgid "it is WAY too short" - msgstr "खूपच लहान" - --#: lib/fascist.c:714 -+#: ../lib/fascist.c:731 - msgid "it is too short" - msgstr "खूप लहान आहे" - --#: lib/fascist.c:731 -+#: ../lib/fascist.c:748 - msgid "it does not contain enough DIFFERENT characters" - msgstr "अतिरीक्त वेगळे अक्षर समाविष्टीत नाही" - --#: lib/fascist.c:745 -+#: ../lib/fascist.c:762 - msgid "it is all whitespace" - msgstr "सर्वत्र वाईटस्पेस् आहे" - --#: lib/fascist.c:764 -+#: ../lib/fascist.c:781 - msgid "it is too simplistic/systematic" - msgstr "खूपच सोपे/पद्धतशीर आहे" - --#: lib/fascist.c:769 -+#: ../lib/fascist.c:786 - msgid "it looks like a National Insurance number." - msgstr "राष्ट्रीय इन्शॉरन्स् क्रमांक प्रमाणे आढळते." - --#: lib/fascist.c:801 -+#: ../lib/fascist.c:813 - msgid "it is based on a dictionary word" - msgstr "शब्दकोषमधील शब्दावर आधारीत आहे" - --#: lib/fascist.c:820 -+#: ../lib/fascist.c:832 - msgid "it is based on a (reversed) dictionary word" - msgstr "(उलटे) शब्दकोषमधील शब्दावर आधारीत आहे" - --#: lib/fascist.c:865 -+#: ../lib/fascist.c:867 - msgid "error loading dictionary" --msgstr "" -+msgstr "शब्दकोष लोड करतेवेळी त्रुटी" -diff -urN cracklib-2.9.6.old/po/nb.po cracklib-2.9.6.new/po/nb.po ---- cracklib-2.9.6.old/po/nb.po 2015-08-18 20:48:15.000000000 +0200 -+++ cracklib-2.9.6.new/po/nb.po 2018-10-09 11:38:53.611941207 +0200 -@@ -2,20 +2,21 @@ - # Copyright (C) 2005 Free Software Foundation, Inc. - # This file is distributed under the same license as the PACKAGE package. - # Olav Pettershagen , 2005. --# -+# Jan Dittberner , 2016. #zanata - msgid "" - msgstr "" --"Project-Id-Version: nb\n" -+"Project-Id-Version: cracklib 2.9.6\n" - "Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" - "POT-Creation-Date: 2015-08-18 13:45-0500\n" --"PO-Revision-Date: 2005-08-11 20:48+0200\n" --"Last-Translator: Olav Pettershagen \n" --"Language-Team: \n" --"Language: \n" -+"PO-Revision-Date: 2016-06-18 01:02+0000\n" -+"Last-Translator: Copied by Zanata \n" -+"Language-Team: \n" - "MIME-Version: 1.0\n" - "Content-Type: text/plain; charset=UTF-8\n" - "Content-Transfer-Encoding: 8bit\n" --"X-Generator: KBabel 1.10.2\n" -+"Language: nb\n" -+"Plural-Forms: nplurals=2; plural=(n != 1)\n" -+"X-Generator: Zanata 4.6.2\n" - - #: lib/fascist.c:516 - msgid "it is based on your username" -diff -urN cracklib-2.9.6.old/po/nl.po cracklib-2.9.6.new/po/nl.po ---- cracklib-2.9.6.old/po/nl.po 2015-08-18 20:48:15.000000000 +0200 -+++ cracklib-2.9.6.new/po/nl.po 2018-10-09 11:38:51.650892308 +0200 -@@ -4,21 +4,22 @@ - # This file is put in the public domain. - # Arthur & Ettie Kerkmeester , 2003. - # Rinse de Vries , 2005. --# -+# Geert Warrink , 2016. #zanata -+# Jan Dittberner , 2016. #zanata - msgid "" - msgstr "" --"Project-Id-Version: nl\n" -+"Project-Id-Version: cracklib 2.9.6\n" - "Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" - "POT-Creation-Date: 2015-08-18 13:45-0500\n" --"PO-Revision-Date: 2005-08-14 05:41+0200\n" --"Last-Translator: Rinse de Vries \n" -+"PO-Revision-Date: 2016-09-01 06:35+0000\n" -+"Last-Translator: Geert Warrink \n" - "Language-Team: Dutch \n" --"Language: nl\n" - "MIME-Version: 1.0\n" - "Content-Type: text/plain; charset=UTF-8\n" - "Content-Transfer-Encoding: 8bit\n" --"X-Generator: KBabel 1.10.2\n" --"Plural-Forms: nplurals=2; plural=(n != 1);\n" -+"Language: nl\n" -+"Plural-Forms: nplurals=2; plural=(n != 1);\n" -+"X-Generator: Zanata 4.6.2\n" - - #: lib/fascist.c:516 - msgid "it is based on your username" -@@ -82,4 +83,4 @@ - - #: lib/fascist.c:865 - msgid "error loading dictionary" --msgstr "" -+msgstr "fout bij laden woordenboek" -diff -urN cracklib-2.9.6.old/po/or.po cracklib-2.9.6.new/po/or.po ---- cracklib-2.9.6.old/po/or.po 2015-08-18 20:48:15.000000000 +0200 -+++ cracklib-2.9.6.new/po/or.po 2018-10-09 11:57:33.761928776 +0200 -@@ -1,84 +1,85 @@ - # translation of cracklib.default.cracklib.or.po to Oriya - # Copyright (C) 2009 Free Software Foundation, Inc. - # This file is distributed under the same license as the PACKAGE package. --# -+# - # Manoj Kumar Giri , 2009. -+# mgiri , 2013. #zanata - msgid "" - msgstr "" - "Project-Id-Version: cracklib.default.cracklib.or\n" --"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" --"POT-Creation-Date: 2015-08-18 13:45-0500\n" --"PO-Revision-Date: 2009-11-12 13:02+0530\n" --"Last-Translator: Manoj Kumar Giri \n" -+"Report-Msgid-Bugs-To: \n" -+"POT-Creation-Date: 2012-12-14 16:11-0600\n" -+"PO-Revision-Date: 2013-10-22 06:40-0400\n" -+"Last-Translator: mgiri \n" - "Language-Team: Oriya \n" --"Language: or\n" - "MIME-Version: 1.0\n" - "Content-Type: text/plain; charset=UTF-8\n" - "Content-Transfer-Encoding: 8bit\n" --"X-Generator: KBabel 1.11.4\n" --"Plural-Forms: nplurals=2; plural=(n!=1);\n" -+"Language: or\n" -+"Plural-Forms: nplurals=2; plural=(n!=1);\n" - "\n" -+"X-Generator: Zanata 3.1.2\n" -+ -+#: ../lib/fascist.c:550 -+msgid "you are not registered in the password file" -+msgstr "ପ୍ରବେଶ ସଂକେତ ଫାଇଲରେ ଆପଣ ପଞ୍ଜିକୃତ ହୋଇନାହାନ୍ତି" - --#: lib/fascist.c:516 -+#: ../lib/fascist.c:564 - msgid "it is based on your username" - msgstr "ଏହା ଆପଣଙ୍କର ଚାଳକନାମ ଉପରେ ଆଧାରିତ" - --#: lib/fascist.c:576 -+#: ../lib/fascist.c:629 - msgid "it is based upon your password entry" - msgstr "ଏହା ଆପଣଙ୍କର ପ୍ରବେଶ ସଂକେତ ଭରଣ ଉପରେ ଆଧାରିତ" - --#: lib/fascist.c:591 -+#: ../lib/fascist.c:649 - msgid "it is derived from your password entry" - msgstr "ଏହା ଆପଣଙ୍କର ପ୍ରବେଶ ସଂକେତ ଭରଣରୁ ଉତ୍ପନ୍ନ କରାହୋଇଥାଏ" - --#: lib/fascist.c:599 -+#: ../lib/fascist.c:662 - msgid "it's derived from your password entry" - msgstr "ଏହା ଆପଣଙ୍କର ପ୍ରବେଶ ସଂକେତ ଭରଣରୁ ଉତ୍ପନ୍ନ କରାହୋଇଥାଏ" - --#: lib/fascist.c:608 -+#: ../lib/fascist.c:676 - msgid "it is derivable from your password entry" - msgstr "ଏହା ଆପଣଙ୍କର ପ୍ରବେଶ ସଂକେତ ଭରଣରୁ ଉତ୍ପନ୍ନ କରିବା ଯୋଗ୍ୟ" - --#: lib/fascist.c:617 -+#: ../lib/fascist.c:690 - msgid "it's derivable from your password entry" - msgstr "ଏହା ଆପଣଙ୍କର ପ୍ରବେଶ ସଂକେତ ଭରଣରୁ ଉତ୍ପନ୍ନ କରିବା ଯୋଗ୍ୟ" - --#: lib/fascist.c:674 --msgid "you are not registered in the password file" --msgstr "ପ୍ରବେଶ ସଂକେତ ଫାଇଲରେ ଆପଣ ପଞ୍ଜିକୃତ ହୋଇନାହାନ୍ତି" -- --#: lib/fascist.c:709 -+#: ../lib/fascist.c:726 - msgid "it is WAY too short" - msgstr "ଏହା ଅତ୍ୟଧିକ ଛୋଟ ଅଟେ" - --#: lib/fascist.c:714 -+#: ../lib/fascist.c:731 - msgid "it is too short" - msgstr "ଏହା ଅତ୍ୟଧିକ ଛୋଟ ଅଟେ" - --#: lib/fascist.c:731 -+#: ../lib/fascist.c:748 - msgid "it does not contain enough DIFFERENT characters" - msgstr "ଏହା ଯଥେଷ୍ଟ ଭିନ୍ନ ବର୍ଣ୍ଣ ଧାରଣ କରିନଥାଏ" - --#: lib/fascist.c:745 -+#: ../lib/fascist.c:762 - msgid "it is all whitespace" - msgstr "ଏହା କେବଳ ଖାଲିସ୍ଥାନ ଅଟେ" - --#: lib/fascist.c:764 -+#: ../lib/fascist.c:781 - msgid "it is too simplistic/systematic" - msgstr "ଏହା ଅତ୍ୟଧିକ ସରଳ/ନିୟମାନୁବର୍ତ୍ତୀ" - --#: lib/fascist.c:769 -+#: ../lib/fascist.c:786 - msgid "it looks like a National Insurance number." - msgstr "ଏହା ଗୋଟିଏ ଜାତୀୟ ବୀମା ସଂଖ୍ୟା ପରି ଦେଖାଯାଉଛି।" - --#: lib/fascist.c:801 -+#: ../lib/fascist.c:813 - msgid "it is based on a dictionary word" - msgstr "ଏହା ଅଭିଧାନ ଶବ୍ଦ ଉପରେ ଆଧାରିତ" - --#: lib/fascist.c:820 -+#: ../lib/fascist.c:832 - msgid "it is based on a (reversed) dictionary word" - msgstr "ଏହା ଗୋଟିଏ (ଓଲଟା) ଅଭିଧାନ ଶବ୍ଦ ଉପରେ ଆଧାରିତ" - --#: lib/fascist.c:865 -+#: ../lib/fascist.c:867 - msgid "error loading dictionary" --msgstr "" -+msgstr "ଅଭିଧାନ ଧାରଣ କରିବାରେ ତ୍ରୁଟି" -diff -urN cracklib-2.9.6.old/po/pa.po cracklib-2.9.6.new/po/pa.po ---- cracklib-2.9.6.old/po/pa.po 2015-08-18 20:48:15.000000000 +0200 -+++ cracklib-2.9.6.new/po/pa.po 2018-10-09 11:38:05.301740041 +0200 -@@ -5,24 +5,26 @@ - # - # Amanpreet Singh Alam[ਆਲਮ] , 2005, 2009. - # A S Alam , 2009. -+# Jan Dittberner , 2016. #zanata -+# A S Alam , 2017. #zanata - msgid "" - msgstr "" --"Project-Id-Version: cracklib.pa\n" -+"Project-Id-Version: cracklib 2.9.6\n" - "Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" - "POT-Creation-Date: 2015-08-18 13:45-0500\n" --"PO-Revision-Date: 2009-11-17 05:52+0530\n" --"Last-Translator: A S Alam \n" -+"PO-Revision-Date: 2017-08-18 07:15+0000\n" -+"Last-Translator: A S Alam \n" - "Language-Team: Punjabi/Panjabi \n" --"Language: \n" - "MIME-Version: 1.0\n" - "Content-Type: text/plain; charset=UTF-8\n" - "Content-Transfer-Encoding: 8bit\n" --"X-Generator: Lokalize 1.0\n" -+"Language: pa\n" - "Plural-Forms: nplurals=2; plural=(n != 1);\n" -+"X-Generator: Zanata 4.6.2\n" - - #: lib/fascist.c:516 - msgid "it is based on your username" --msgstr "ਇਹ ਤੁਹਾਡੇ ਯੂਜ਼ਰ-ਨਾਂ ਮੁਤਾਬਿਕ ਨਹੀਂ ਹੈ" -+msgstr "ਇਹ ਤੁਹਾਡੇ ਵਰਤੋਂਕਾਰ-ਨਾਂ ਮੁਤਾਬਕ ਹੈ" - - #: lib/fascist.c:576 - msgid "it is based upon your password entry" -@@ -50,7 +52,7 @@ - - #: lib/fascist.c:709 - msgid "it is WAY too short" --msgstr "ਇਹ ਬਹੁਤ ਹੀ ਛੋਟਾ ਢੰਗ ਹੈ" -+msgstr "ਇਹ ਬਹੁਤ ਹੀ ਛੋਟਾ ਹੈ" - - #: lib/fascist.c:714 - msgid "it is too short" -@@ -70,7 +72,7 @@ - - #: lib/fascist.c:769 - msgid "it looks like a National Insurance number." --msgstr "ਇਹ ਰਾਸ਼ਟਰੀ ਸੁਰੱਖਿਆ ਨੰਬਰ ਵਰਗਾ ਜਾਪਦਾ ਹੈ।" -+msgstr "ਇਹ ਨੈਸ਼ਨਲ ਇਨਸ਼ੋਅਰੈਂਸ ਨੰਬਰ ਵਰਗਾ ਜਾਪਦਾ ਹੈ।" - - #: lib/fascist.c:801 - msgid "it is based on a dictionary word" -@@ -78,8 +80,8 @@ - - #: lib/fascist.c:820 - msgid "it is based on a (reversed) dictionary word" --msgstr "ਇਹ (ਉਲਟੇ) ਡਿਕਸ਼ਨਰੀ ਸ਼ਬਦ ਉੱਤੇ ਅਧਾਰਿਤ ਹੈ" -+msgstr "ਇਹ (ਉਲਟ) ਡਿਕਸ਼ਨਰੀ ਸ਼ਬਦ ਉੱਤੇ ਅਧਾਰਿਤ ਹੈ" - - #: lib/fascist.c:865 - msgid "error loading dictionary" --msgstr "" -+msgstr "ਡਿਕਸ਼ਨਰੀ ਲੋਡ ਕਰਨ ਦੌਰਾਨ ਗਲਤੀ" -diff -urN cracklib-2.9.6.old/po/pl.po cracklib-2.9.6.new/po/pl.po ---- cracklib-2.9.6.old/po/pl.po 2015-08-18 20:48:15.000000000 +0200 -+++ cracklib-2.9.6.new/po/pl.po 2018-10-09 11:38:10.401865781 +0200 -@@ -1,19 +1,22 @@ - # translation of pl.po to Polish - # Piotr Bolek , 2005. - # Piotr Drąg , 2009. --# -+# Jan Dittberner , 2016. #zanata -+# Piotr Drąg , 2016. #zanata - msgid "" - msgstr "" --"Project-Id-Version: pl\n" -+"Project-Id-Version: cracklib 2.9.6\n" - "Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" - "POT-Creation-Date: 2015-08-18 13:45-0500\n" --"PO-Revision-Date: 2009-10-12 15:57+0200\n" -+"PO-Revision-Date: 2016-08-31 09:50+0000\n" - "Last-Translator: Piotr Drąg \n" - "Language-Team: Polish \n" --"Language: pl\n" - "MIME-Version: 1.0\n" - "Content-Type: text/plain; charset=UTF-8\n" - "Content-Transfer-Encoding: 8bit\n" -+"Language: pl\n" -+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" -+"X-Generator: Zanata 4.6.2\n" - - #: lib/fascist.c:516 - msgid "it is based on your username" -@@ -21,27 +24,27 @@ - - #: lib/fascist.c:576 - msgid "it is based upon your password entry" --msgstr "oparte na wpisie w pliku passwd" -+msgstr "oparte na wpisie w pliku passwd" - - #: lib/fascist.c:591 - msgid "it is derived from your password entry" --msgstr "pochodzi od wpisu w pliku passwd" -+msgstr "pochodzi od wpisu w pliku passwd" - - #: lib/fascist.c:599 - msgid "it's derived from your password entry" --msgstr "pochodzi od wpisu w pliku passwd" -+msgstr "pochodzi od wpisu w pliku passwd" - - #: lib/fascist.c:608 - msgid "it is derivable from your password entry" --msgstr "da się odtworzyć z wpisu w pliku passwd" -+msgstr "da się odtworzyć z wpisu w pliku passwd" - - #: lib/fascist.c:617 - msgid "it's derivable from your password entry" --msgstr "da się odtworzyć z wpisu w pliku passwd" -+msgstr "da się odtworzyć z wpisu w pliku passwd" - - #: lib/fascist.c:674 - msgid "you are not registered in the password file" --msgstr "nie zarejestrowano w pliku passwd" -+msgstr "nie zarejestrowano w pliku passwd" - - #: lib/fascist.c:709 - msgid "it is WAY too short" -@@ -77,4 +80,4 @@ - - #: lib/fascist.c:865 - msgid "error loading dictionary" --msgstr "" -+msgstr "błąd podczas wczytywania słownika" -diff -urN cracklib-2.9.6.old/po/pt_BR.po cracklib-2.9.6.new/po/pt_BR.po ---- cracklib-2.9.6.old/po/pt_BR.po 2015-08-18 20:48:15.000000000 +0200 -+++ cracklib-2.9.6.new/po/pt_BR.po 2018-10-09 11:38:18.293060531 +0200 -@@ -2,19 +2,21 @@ - # Copyright (C) YEAR Free Software Foundation, Inc. - # This file is distributed under the same license as the PACKAGE package. - # FIRST AUTHOR , YEAR. --# -+# Daniel Lara , 2016. #zanata - msgid "" - msgstr "" --"Project-Id-Version: cracklib\n" -+"Project-Id-Version: cracklib 2.9.6\n" - "Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" - "POT-Creation-Date: 2015-08-18 13:45-0500\n" --"PO-Revision-Date: 2005-08-18 15:02+0000\n" --"Last-Translator: Novell Language \n" -+"PO-Revision-Date: 2018-08-16 12:44+0000\n" -+"Last-Translator: Copied by Zanata \n" - "Language-Team: Novell Language \n" --"Language: \n" - "MIME-Version: 1.0\n" --"Content-Type: text/plain; charset=utf-8\n" -+"Content-Type: text/plain; charset=UTF-8\n" - "Content-Transfer-Encoding: 8bit\n" -+"Language: pt_BR\n" -+"Plural-Forms: nplurals=2; plural=(n != 1)\n" -+"X-Generator: Zanata 4.6.2\n" - - #: lib/fascist.c:516 - msgid "it is based on your username" -@@ -78,4 +80,4 @@ - - #: lib/fascist.c:865 - msgid "error loading dictionary" --msgstr "" -+msgstr "erro ao carregar dicionário" -diff -urN cracklib-2.9.6.old/po/pt.po cracklib-2.9.6.new/po/pt.po ---- cracklib-2.9.6.old/po/pt.po 2015-08-18 20:48:15.000000000 +0200 -+++ cracklib-2.9.6.new/po/pt.po 2018-10-09 11:37:57.475547088 +0200 -@@ -2,20 +2,22 @@ - # Copyright (C) 2005 Free Software Foundation, Inc. - # This file is distributed under the same license as the PACKAGE package. - # Antonio Cardoso Martins , 2005. --# -+# Jan Dittberner , 2016. #zanata -+# Ricardo Pinto , 2016. #zanata - msgid "" - msgstr "" --"Project-Id-Version: cracklib.pt\n" -+"Project-Id-Version: cracklib 2.9.6\n" - "Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" - "POT-Creation-Date: 2015-08-18 13:45-0500\n" --"PO-Revision-Date: 2005-08-05 00:45+0100\n" --"Last-Translator: Antonio Cardoso Martins \n" -+"PO-Revision-Date: 2016-09-05 10:12+0000\n" -+"Last-Translator: Ricardo Pinto \n" - "Language-Team: portuguese\n" --"Language: \n" - "MIME-Version: 1.0\n" - "Content-Type: text/plain; charset=UTF-8\n" - "Content-Transfer-Encoding: 8bit\n" --"X-Generator: KBabel 1.10\n" -+"Language: pt\n" -+"Plural-Forms: nplurals=2; plural=(n != 1)\n" -+"X-Generator: Zanata 4.6.2\n" - - #: lib/fascist.c:516 - msgid "it is based on your username" -@@ -79,4 +81,4 @@ - - #: lib/fascist.c:865 - msgid "error loading dictionary" --msgstr "" -+msgstr "erro ao carregar o dicionário" -diff -urN cracklib-2.9.6.old/po/ru.po cracklib-2.9.6.new/po/ru.po ---- cracklib-2.9.6.old/po/ru.po 2015-08-18 20:48:15.000000000 +0200 -+++ cracklib-2.9.6.new/po/ru.po 2018-10-09 11:38:50.654867472 +0200 -@@ -4,45 +4,46 @@ - # - # Anton Dobkin , 2008. - # Yulia Poyarko , 2009. -+# Igor Gorbounov , 2016. #zanata -+# Jan Dittberner , 2016. #zanata - msgid "" - msgstr "" --"Project-Id-Version: cracklib\n" -+"Project-Id-Version: cracklib 2.9.6\n" - "Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" - "POT-Creation-Date: 2015-08-18 13:45-0500\n" --"PO-Revision-Date: 2009-12-03 10:17+1100\n" --"Last-Translator: Yulia \n" -+"PO-Revision-Date: 2018-08-16 12:43+0000\n" -+"Last-Translator: Copied by Zanata \n" - "Language-Team: \n" --"Language: \n" - "MIME-Version: 1.0\n" - "Content-Type: text/plain; charset=UTF-8\n" - "Content-Transfer-Encoding: 8bit\n" --"X-Generator: KBabel 1.11.4\n" --"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" --"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -+"Language: ru\n" -+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -+"X-Generator: Zanata 4.6.2\n" - - #: lib/fascist.c:516 - msgid "it is based on your username" --msgstr "основан на вашем имени пользователя" -+msgstr "на основе вашего имени пользователя" - - #: lib/fascist.c:576 - msgid "it is based upon your password entry" --msgstr "основан на вашем входном пароле" -+msgstr "на основе введенного вами пароля" - - #: lib/fascist.c:591 - msgid "it is derived from your password entry" --msgstr "получен из вашего входного пароля" -+msgstr "получен из введенного вами пароля" - - #: lib/fascist.c:599 - msgid "it's derived from your password entry" --msgstr "получен из вашего входного пароля" -+msgstr "получен из введенного вами пароля" - - #: lib/fascist.c:608 - msgid "it is derivable from your password entry" --msgstr "получен из вашего входного пароля" -+msgstr "получается из введенного вами пароля" - - #: lib/fascist.c:617 - msgid "it's derivable from your password entry" --msgstr "получен из вашего входного пароля" -+msgstr "получается из введенного вами пароля" - - #: lib/fascist.c:674 - msgid "you are not registered in the password file" -@@ -54,11 +55,11 @@ - - #: lib/fascist.c:714 - msgid "it is too short" --msgstr "короткий" -+msgstr "слишком короткий" - - #: lib/fascist.c:731 - msgid "it does not contain enough DIFFERENT characters" --msgstr "не содержит достаточное число РАЗЛИЧНЫХ символов" -+msgstr "не содержит достаточного числа РАЗЛИЧНЫХ символов" - - #: lib/fascist.c:745 - msgid "it is all whitespace" -@@ -70,16 +71,16 @@ - - #: lib/fascist.c:769 - msgid "it looks like a National Insurance number." --msgstr "похож на число государственного страхования." -+msgstr "похож на номер государственного страхования." - - #: lib/fascist.c:801 - msgid "it is based on a dictionary word" --msgstr "основан на слове из словаря" -+msgstr "на основе слова из словаря" - - #: lib/fascist.c:820 - msgid "it is based on a (reversed) dictionary word" --msgstr "основан на измененном слове из словаря" -+msgstr "на основе (перевернутого) слова из словаря" - - #: lib/fascist.c:865 - msgid "error loading dictionary" --msgstr "" -+msgstr "ошибка при загрузке словаря" -diff -urN cracklib-2.9.6.old/po/sk.po cracklib-2.9.6.new/po/sk.po ---- cracklib-2.9.6.old/po/sk.po 2015-08-18 20:48:15.000000000 +0200 -+++ cracklib-2.9.6.new/po/sk.po 2018-10-09 11:39:19.259580732 +0200 -@@ -1,20 +1,22 @@ - # translation of cracklib.po to Slovak - # This file is put in the public domain. - # Stanislav Visnovsky , 2003. --# -+# Jan Dittberner , 2016. #zanata -+# feonsu , 2016. #zanata - msgid "" - msgstr "" --"Project-Id-Version: cracklib\n" -+"Project-Id-Version: cracklib 2.9.6\n" - "Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" - "POT-Creation-Date: 2015-08-18 13:45-0500\n" --"PO-Revision-Date: 2005-06-23 13:12+02:00\n" --"Last-Translator: Stanislav Visnovsky \n" -+"PO-Revision-Date: 2016-10-11 06:53+0000\n" -+"Last-Translator: feonsu \n" - "Language-Team: Slovak \n" --"Language: sk\n" - "MIME-Version: 1.0\n" - "Content-Type: text/plain; charset=UTF-8\n" - "Content-Transfer-Encoding: 8bit\n" --"X-Generator: KBabel 1.2beta3\n" -+"Language: sk\n" -+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2\n" -+"X-Generator: Zanata 4.6.2\n" - - #: lib/fascist.c:516 - msgid "it is based on your username" -@@ -78,4 +80,4 @@ - - #: lib/fascist.c:865 - msgid "error loading dictionary" --msgstr "" -+msgstr "chyba pri načítavaní slovníka" -diff -urN cracklib-2.9.6.old/po/sq.po cracklib-2.9.6.new/po/sq.po ---- cracklib-2.9.6.old/po/sq.po 1970-01-01 01:00:00.000000000 +0100 -+++ cracklib-2.9.6.new/po/sq.po 2018-10-09 11:39:15.354483358 +0200 -@@ -0,0 +1,79 @@ -+# Jona Azizaj , 2017. #zanata -+msgid "" -+msgstr "" -+"Project-Id-Version: cracklib 2.9.6\n" -+"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" -+"POT-Creation-Date: 2015-08-18 13:45-0500\n" -+"PO-Revision-Date: 2017-04-17 10:20+0000\n" -+"Last-Translator: Anxhela Hyseni \n" -+"Language-Team: Albanian\n" -+"MIME-Version: 1.0\n" -+"Content-Type: text/plain; charset=UTF-8\n" -+"Content-Transfer-Encoding: 8bit\n" -+"Language: sq\n" -+"Plural-Forms: nplurals=2; plural=(n != 1)\n" -+"X-Generator: Zanata 4.6.2\n" -+ -+#: lib/fascist.c:516 -+msgid "it is based on your username" -+msgstr "kjo është bazuar në emrin e përdoruesit tuaj" -+ -+#: lib/fascist.c:576 -+msgid "it is based upon your password entry" -+msgstr "kjo është bazuar në fjalëkalimin që ju keni dhënë" -+ -+#: lib/fascist.c:591 -+msgid "it is derived from your password entry" -+msgstr "kjo është përftuar nga fjalëkalimi që ju keni dhënë" -+ -+#: lib/fascist.c:599 -+msgid "it's derived from your password entry" -+msgstr "kjo është përftuar nga fjalëkalimi që ju keni dhënë" -+ -+#: lib/fascist.c:608 -+msgid "it is derivable from your password entry" -+msgstr "kjo u përfitua nga fjalëkalimi që ju keni dhënë" -+ -+#: lib/fascist.c:617 -+msgid "it's derivable from your password entry" -+msgstr "kjo u përfitua nga fjalëkalimi që ju keni dhënë" -+ -+#: lib/fascist.c:674 -+msgid "you are not registered in the password file" -+msgstr "ju nuk jeni regjistruar në skedarin e fjalëkalimit" -+ -+#: lib/fascist.c:709 -+msgid "it is WAY too short" -+msgstr "kjo është JASHTËZAKONISHT shumë e shkurtër" -+ -+#: lib/fascist.c:714 -+msgid "it is too short" -+msgstr "kjo është shumë e shkurtër" -+ -+#: lib/fascist.c:731 -+msgid "it does not contain enough DIFFERENT characters" -+msgstr "nuk përmban mjaftueshëm karaktere të NDRYSHME" -+ -+#: lib/fascist.c:745 -+msgid "it is all whitespace" -+msgstr "është e gjitha hapësirë e bardhë" -+ -+#: lib/fascist.c:764 -+msgid "it is too simplistic/systematic" -+msgstr "është shumë i thjeshtë/ sistematik" -+ -+#: lib/fascist.c:769 -+msgid "it looks like a National Insurance number." -+msgstr "ngjan sikur është numër Sigurimi Kombëtar." -+ -+#: lib/fascist.c:801 -+msgid "it is based on a dictionary word" -+msgstr "është bazuar në një fjalë në fjalor" -+ -+#: lib/fascist.c:820 -+msgid "it is based on a (reversed) dictionary word" -+msgstr "është bazuar në një fjalë (mbrapsht) në fjalor" -+ -+#: lib/fascist.c:865 -+msgid "error loading dictionary" -+msgstr "gabim në ngarkimin e fjalorit" -diff -urN cracklib-2.9.6.old/po/sv.po cracklib-2.9.6.new/po/sv.po ---- cracklib-2.9.6.old/po/sv.po 1970-01-01 01:00:00.000000000 +0100 -+++ cracklib-2.9.6.new/po/sv.po 2018-10-09 11:39:17.304531983 +0200 -@@ -0,0 +1,79 @@ -+# Göran Uddeborg , 2017. #zanata -+msgid "" -+msgstr "" -+"Project-Id-Version: cracklib 2.9.6\n" -+"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" -+"POT-Creation-Date: 2015-08-18 13:45-0500\n" -+"PO-Revision-Date: 2017-03-29 03:16+0000\n" -+"Last-Translator: Göran Uddeborg \n" -+"Language-Team: Swedish\n" -+"MIME-Version: 1.0\n" -+"Content-Type: text/plain; charset=UTF-8\n" -+"Content-Transfer-Encoding: 8bit\n" -+"Language: sv\n" -+"Plural-Forms: nplurals=2; plural=(n != 1)\n" -+"X-Generator: Zanata 4.6.2\n" -+ -+#: lib/fascist.c:516 -+msgid "it is based on your username" -+msgstr "det är baserat på ditt användarnamn" -+ -+#: lib/fascist.c:576 -+msgid "it is based upon your password entry" -+msgstr "det är baserat på din lösenordspost" -+ -+#: lib/fascist.c:591 -+msgid "it is derived from your password entry" -+msgstr "det är härlett från din lösenordspost" -+ -+#: lib/fascist.c:599 -+msgid "it's derived from your password entry" -+msgstr "det är härlett från din lösenordspost" -+ -+#: lib/fascist.c:608 -+msgid "it is derivable from your password entry" -+msgstr "det är härledbart från din lösenordspost" -+ -+#: lib/fascist.c:617 -+msgid "it's derivable from your password entry" -+msgstr "det är härledbart från din lösenordspost" -+ -+#: lib/fascist.c:674 -+msgid "you are not registered in the password file" -+msgstr "du är inte registrerad i lösenordsfilen" -+ -+#: lib/fascist.c:709 -+msgid "it is WAY too short" -+msgstr "det är ALLDELES för kort" -+ -+#: lib/fascist.c:714 -+msgid "it is too short" -+msgstr "det är för kort" -+ -+#: lib/fascist.c:731 -+msgid "it does not contain enough DIFFERENT characters" -+msgstr "det innehåller inte tillräckligt med OLIKA tecken" -+ -+#: lib/fascist.c:745 -+msgid "it is all whitespace" -+msgstr "det är bara blanktecken" -+ -+#: lib/fascist.c:764 -+msgid "it is too simplistic/systematic" -+msgstr "det är för simplistiskt/systematiskt" -+ -+#: lib/fascist.c:769 -+msgid "it looks like a National Insurance number." -+msgstr "det ser ut som ett personnummer" -+ -+#: lib/fascist.c:801 -+msgid "it is based on a dictionary word" -+msgstr "det är baserat på ett ord ur ordlistan" -+ -+#: lib/fascist.c:820 -+msgid "it is based on a (reversed) dictionary word" -+msgstr "det är baserat på ett (omvänt) ord ur ordlistan" -+ -+#: lib/fascist.c:865 -+msgid "error loading dictionary" -+msgstr "fel när ordlistan lästes in" -diff -urN cracklib-2.9.6.old/po/ta.po cracklib-2.9.6.new/po/ta.po ---- cracklib-2.9.6.old/po/ta.po 2015-08-18 20:48:15.000000000 +0200 -+++ cracklib-2.9.6.new/po/ta.po 2018-10-09 11:57:33.761928776 +0200 -@@ -1,83 +1,84 @@ - # translation of cracklib.default.cracklib.po to Tamil - # Copyright (C) 2009 Free Software Foundation, Inc. - # This file is distributed under the same license as the PACKAGE package. --# -+# - # I. Felix , 2009. -+# shkumar , 2013. #zanata - msgid "" - msgstr "" - "Project-Id-Version: cracklib.default.cracklib\n" --"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" --"POT-Creation-Date: 2015-08-18 13:45-0500\n" --"PO-Revision-Date: 2009-11-11 14:21+0530\n" --"Last-Translator: I. Felix \n" -+"Report-Msgid-Bugs-To: \n" -+"POT-Creation-Date: 2012-12-14 16:11-0600\n" -+"PO-Revision-Date: 2013-11-11 09:51-0500\n" -+"Last-Translator: shkumar \n" - "Language-Team: Tamil \n" --"Language: ta\n" - "MIME-Version: 1.0\n" - "Content-Type: text/plain; charset=UTF-8\n" - "Content-Transfer-Encoding: 8bit\n" --"X-Generator: KBabel 1.11.4\n" -+"Language: ta\n" - "Plural-Forms: nplurals=2; plural=(n!=1);\\n\n" -+"X-Generator: Zanata 3.1.2\n" -+ -+#: ../lib/fascist.c:550 -+msgid "you are not registered in the password file" -+msgstr "நீங்கள் கடவுச்சொல் கோப்பில் பதிவு செய்யவில்லை" - --#: lib/fascist.c:516 -+#: ../lib/fascist.c:564 - msgid "it is based on your username" - msgstr "இது உங்கள் பயனர்பெயர் அடிப்படையில் உள்ளது" - --#: lib/fascist.c:576 -+#: ../lib/fascist.c:629 - msgid "it is based upon your password entry" - msgstr "இது உங்கள் கடவுச்சொல் உள்ளீடு படி உள்ளது" - --#: lib/fascist.c:591 -+#: ../lib/fascist.c:649 - msgid "it is derived from your password entry" - msgstr "இது உங்கள் கடவுச்சொல் உள்ளீடிலிருந்து வரையறுக்கப்பட்டது" - --#: lib/fascist.c:599 -+#: ../lib/fascist.c:662 - msgid "it's derived from your password entry" - msgstr "இது உங்கள் கடவுச்சொல் உள்ளீடிலிருந்து வரையறுக்கப்பட்டது" - --#: lib/fascist.c:608 -+#: ../lib/fascist.c:676 - msgid "it is derivable from your password entry" - msgstr "இது உங்கள் கடவுச்சொல் உள்ளீடிலிருந்து வரையறுக்கப்படக்கூடியது" - --#: lib/fascist.c:617 -+#: ../lib/fascist.c:690 - msgid "it's derivable from your password entry" - msgstr "இது உங்கள் கடவுச்சொல் உள்ளீடிலிருந்து வரையறுக்கப்படக்கூடியது" - --#: lib/fascist.c:674 --msgid "you are not registered in the password file" --msgstr "நீங்கள் கடவுச்சொல் கோப்பில் பதிவு செய்யவில்லை" -- --#: lib/fascist.c:709 -+#: ../lib/fascist.c:726 - msgid "it is WAY too short" - msgstr "இது மிகவும் சிறியது" - --#: lib/fascist.c:714 -+#: ../lib/fascist.c:731 - msgid "it is too short" - msgstr "இது மிகவும் சிறியது" - --#: lib/fascist.c:731 -+#: ../lib/fascist.c:748 - msgid "it does not contain enough DIFFERENT characters" - msgstr "இது போதிய வேறுபாடு எழுத்துக்களை கொண்டிருக்கவில்லை" - --#: lib/fascist.c:745 -+#: ../lib/fascist.c:762 - msgid "it is all whitespace" - msgstr "இது எல்லாம் காலிஇடங்கள்" - --#: lib/fascist.c:764 -+#: ../lib/fascist.c:781 - msgid "it is too simplistic/systematic" - msgstr "இது மிகவும் எளியது/அமைப்பானது" - --#: lib/fascist.c:769 -+#: ../lib/fascist.c:786 - msgid "it looks like a National Insurance number." - msgstr "இது ஒரு தேசிய காப்பீடு எண் போலுள்ளது." - --#: lib/fascist.c:801 -+#: ../lib/fascist.c:813 - msgid "it is based on a dictionary word" - msgstr "இது ஒரு அகராதி சொல்லை அடிப்படையாக கொண்டது" - --#: lib/fascist.c:820 -+#: ../lib/fascist.c:832 - msgid "it is based on a (reversed) dictionary word" - msgstr "இது ஒரு (தலைகீழானது) அகராதி சொல்லை அடிப்படையாக கொண்டது" - --#: lib/fascist.c:865 -+#: ../lib/fascist.c:867 - msgid "error loading dictionary" --msgstr "" -+msgstr "அகராதியை ஏற்றுவதில் பிழை" -diff -urN cracklib-2.9.6.old/po/te.po cracklib-2.9.6.new/po/te.po ---- cracklib-2.9.6.old/po/te.po 2015-08-18 20:48:15.000000000 +0200 -+++ cracklib-2.9.6.new/po/te.po 2018-10-09 11:57:33.761928776 +0200 -@@ -1,84 +1,85 @@ - # translation of cracklib.pot to Telugu - # Copyright (C) 2009 Free Software Foundation, Inc. - # This file is distributed under the same license as the cracklib package. --# -+# - # Krishna Babu K , 2009. -+# kkrothap , 2013. #zanata - msgid "" - msgstr "" - "Project-Id-Version: cracklib\n" --"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" --"POT-Creation-Date: 2015-08-18 13:45-0500\n" --"PO-Revision-Date: 2009-11-11 15:13+0530\n" --"Last-Translator: Krishna Babu K \n" -+"Report-Msgid-Bugs-To: \n" -+"POT-Creation-Date: 2012-12-14 16:11-0600\n" -+"PO-Revision-Date: 2013-09-26 10:54-0400\n" -+"Last-Translator: kkrothap \n" - "Language-Team: Telugu \n" --"Language: te\n" - "MIME-Version: 1.0\n" - "Content-Type: text/plain; charset=UTF-8\n" - "Content-Transfer-Encoding: 8bit\n" --"X-Generator: KBabel 1.11.4\n" -+"Language: te\n" - "Plural-Forms: nplurals=2; plural=(n!=1);\n" - "\n" -+"X-Generator: Zanata 3.1.2\n" -+ -+#: ../lib/fascist.c:550 -+msgid "you are not registered in the password file" -+msgstr "మీరు సంకేతపదపు ఫైలునందు నమోదు కాలేదు" - --#: lib/fascist.c:516 -+#: ../lib/fascist.c:564 - msgid "it is based on your username" - msgstr "ఇది మీ వినియోగదారినామముపై ఆధారపడి వుంది" - --#: lib/fascist.c:576 -+#: ../lib/fascist.c:629 - msgid "it is based upon your password entry" - msgstr "ఇది మీ సంకేతపదము ప్రవేశముపై ఆధారపడి వుంది" - --#: lib/fascist.c:591 -+#: ../lib/fascist.c:649 - msgid "it is derived from your password entry" - msgstr "ఇది మీ సంకేతపదము ప్రవేశమునుండి ఉత్పాదించబడింది" - --#: lib/fascist.c:599 -+#: ../lib/fascist.c:662 - msgid "it's derived from your password entry" - msgstr "ఇది మీ సంకేతపదము ప్రవేశమునుండి ఉత్పాదించబడింది" - --#: lib/fascist.c:608 -+#: ../lib/fascist.c:676 - msgid "it is derivable from your password entry" - msgstr "ఇది మీ సంకేతపదము ప్రవేశమునుండి ఉత్పాదించబడ గలదు" - --#: lib/fascist.c:617 -+#: ../lib/fascist.c:690 - msgid "it's derivable from your password entry" - msgstr "ఇది మీ సంకేతపదము ప్రవేశమునుండి ఉత్పాదించబడ గలదు" - --#: lib/fascist.c:674 --msgid "you are not registered in the password file" --msgstr "మీరు సంకేతపదపు ఫైలునందు నమోదు కాలేదు" -- --#: lib/fascist.c:709 -+#: ../lib/fascist.c:726 - msgid "it is WAY too short" - msgstr "ఇది పొట్టి దానికి మార్గము" - --#: lib/fascist.c:714 -+#: ../lib/fascist.c:731 - msgid "it is too short" - msgstr "ఇది మరీ పొట్టిదిగా వుంది" - --#: lib/fascist.c:731 -+#: ../lib/fascist.c:748 - msgid "it does not contain enough DIFFERENT characters" - msgstr "ఇది కావలసినన్ని విభిన్న అక్షరాలను కలిగిలేదు" - --#: lib/fascist.c:745 -+#: ../lib/fascist.c:762 - msgid "it is all whitespace" - msgstr "ఇది అంతా ఖాళీగానే వుంది" - --#: lib/fascist.c:764 -+#: ../lib/fascist.c:781 - msgid "it is too simplistic/systematic" - msgstr "ఇదీ మరీ సాధారణంగా/క్రమపద్దతిలో వుంది" - --#: lib/fascist.c:769 -+#: ../lib/fascist.c:786 - msgid "it looks like a National Insurance number." - msgstr "ఇది నేష్నల్ ఇన్సూరెన్స్ సంఖ్య వలె వుంది." - --#: lib/fascist.c:801 -+#: ../lib/fascist.c:813 - msgid "it is based on a dictionary word" - msgstr "ఇది నిఘంటువు పదముపై ఆధారపడివుంది" - --#: lib/fascist.c:820 -+#: ../lib/fascist.c:832 - msgid "it is based on a (reversed) dictionary word" - msgstr "ఇది నిఘంటువు(కలిగివున్న) పదముపై ఆధారపడివుంది" - --#: lib/fascist.c:865 -+#: ../lib/fascist.c:867 - msgid "error loading dictionary" --msgstr "" -+msgstr "నిఘంటువును లోడు చేయుటలో దోషం" -diff -urN cracklib-2.9.6.old/po/tr.po cracklib-2.9.6.new/po/tr.po ---- cracklib-2.9.6.old/po/tr.po 2015-08-18 20:48:15.000000000 +0200 -+++ cracklib-2.9.6.new/po/tr.po 2018-10-09 11:38:00.427619872 +0200 -@@ -3,19 +3,21 @@ - # This file is distributed under the same license as the PACKAGE package. - # - # Görkem Çetin , 2006. -+# Jan Dittberner , 2016. #zanata - msgid "" - msgstr "" --"Project-Id-Version: cracklib\n" -+"Project-Id-Version: cracklib 2.9.6\n" - "Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" - "POT-Creation-Date: 2015-08-18 13:45-0500\n" --"PO-Revision-Date: 2006-03-12 22:56+0200\n" --"Last-Translator: Görkem Çetin \n" --"Language-Team: \n" --"Language: \n" -+"PO-Revision-Date: 2016-06-18 01:03+0000\n" -+"Last-Translator: Copied by Zanata \n" -+"Language-Team: \n" - "MIME-Version: 1.0\n" - "Content-Type: text/plain; charset=UTF-8\n" - "Content-Transfer-Encoding: 8bit\n" --"X-Generator: KBabel 1.11\n" -+"Language: tr\n" -+"Plural-Forms: nplurals=2; plural=(n>1)\n" -+"X-Generator: Zanata 4.6.2\n" - - #: lib/fascist.c:516 - msgid "it is based on your username" -diff -urN cracklib-2.9.6.old/po/uk.po cracklib-2.9.6.new/po/uk.po ---- cracklib-2.9.6.old/po/uk.po 2015-08-18 20:48:15.000000000 +0200 -+++ cracklib-2.9.6.new/po/uk.po 2018-10-09 11:38:27.234283479 +0200 -@@ -2,21 +2,22 @@ - # This file is distributed under the same license as the PACKAGE package. - # - # Yuri Chornoivan , 2010. -+# Jan Dittberner , 2016. #zanata -+# Yuri Chornoivan , 2016. #zanata - msgid "" - msgstr "" --"Project-Id-Version: \n" -+"Project-Id-Version: cracklib 2.9.6\n" - "Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" - "POT-Creation-Date: 2015-08-18 13:45-0500\n" --"PO-Revision-Date: 2010-04-16 19:43+0300\n" -+"PO-Revision-Date: 2016-06-19 02:18+0000\n" - "Last-Translator: Yuri Chornoivan \n" - "Language-Team: Ukrainian \n" --"Language: uk\n" - "MIME-Version: 1.0\n" - "Content-Type: text/plain; charset=UTF-8\n" - "Content-Transfer-Encoding: 8bit\n" --"X-Generator: Lokalize 1.0\n" --"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" --"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -+"Language: uk\n" -+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -+"X-Generator: Zanata 4.6.2\n" - - #: lib/fascist.c:516 - msgid "it is based on your username" -@@ -80,4 +81,4 @@ - - #: lib/fascist.c:865 - msgid "error loading dictionary" --msgstr "" -+msgstr "помилка під час спроби завантажити словник" -diff -urN cracklib-2.9.6.old/po/zh_CN.po cracklib-2.9.6.new/po/zh_CN.po ---- cracklib-2.9.6.old/po/zh_CN.po 2011-07-26 11:55:29.000000000 +0200 -+++ cracklib-2.9.6.new/po/zh_CN.po 2018-10-09 11:38:25.279234731 +0200 -@@ -1,78 +1,86 @@ --# translation of cracklib.default.po to Wei Liu -+# translation of cracklib.po to Wei Liu - # Copyright (C) 2010 Free Software Foundation, Inc. --# This file is distributed under the same license as the PACKAGE package. -+# This file is distributed under the same license as the cracklib package. - # - # Leah Liu , 2010. -+# translation of cracklib.default.po to Wei Liu -+# This file is distributed under the same license as the PACKAGE package. -+# Ludek Janda , 2018. #zanata - msgid "" - msgstr "" --"Project-Id-Version: cracklib.default\n" --"Report-Msgid-Bugs-To: \n" --"POT-Creation-Date: 2010-03-02 21:00-0600\n" --"PO-Revision-Date: 2010-09-07 23:42+1000\n" --"Last-Translator: Leah Liu \n" -+"Project-Id-Version: cracklib 2.9.6\n" -+"Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" -+"POT-Creation-Date: 2015-08-18 13:45-0500\n" -+"PO-Revision-Date: 2018-08-21 09:51+0000\n" -+"Last-Translator: Copied by Zanata \n" - "Language-Team: Wei Liu\n" - "MIME-Version: 1.0\n" - "Content-Type: text/plain; charset=UTF-8\n" - "Content-Transfer-Encoding: 8bit\n" --"X-Generator: KBabel 1.11.4\n" -- --#: lib/fascist.c:550 --msgid "you are not registered in the password file" --msgstr "尚未在口令文件中注册" -+"Language: zh_CN\n" -+"Plural-Forms: nplurals=1; plural=0\n" -+"X-Generator: Zanata 4.6.2\n" - --#: lib/fascist.c:564 -+#: lib/fascist.c:516 - msgid "it is based on your username" --msgstr "它基于用户名" -+msgstr "它基于您的用户名" - --#: lib/fascist.c:629 -+#: lib/fascist.c:576 - msgid "it is based upon your password entry" --msgstr "它基于输入的口令" -+msgstr "它基于您的密码" - --#: lib/fascist.c:649 -+#: lib/fascist.c:591 - msgid "it is derived from your password entry" --msgstr "它派生自输入的口令" -+msgstr "它根据您的密码生成" - --#: lib/fascist.c:662 -+#: lib/fascist.c:599 - msgid "it's derived from your password entry" --msgstr "它派生自输入的口令" -+msgstr "它根据您的密码生成" - --#: lib/fascist.c:676 -+#: lib/fascist.c:608 - msgid "it is derivable from your password entry" --msgstr "可从输入的口令推断" -+msgstr "它可以根据您的密码生成" - --#: lib/fascist.c:690 -+#: lib/fascist.c:617 - msgid "it's derivable from your password entry" --msgstr "可从输入的口令推断" -+msgstr "它可以根据您的密码生成" -+ -+#: lib/fascist.c:674 -+msgid "you are not registered in the password file" -+msgstr "您没有在密码文件中注册" - --#: lib/fascist.c:726 -+#: lib/fascist.c:709 - msgid "it is WAY too short" --msgstr "WAY 过短" -+msgstr "太短" - --#: lib/fascist.c:731 -+#: lib/fascist.c:714 - msgid "it is too short" --msgstr "过短" -+msgstr "太短" - --#: lib/fascist.c:748 -+#: lib/fascist.c:731 - msgid "it does not contain enough DIFFERENT characters" --msgstr "它没有包含足够的不同字符" -+msgstr "不包括足够不同的字符" - --#: lib/fascist.c:762 -+#: lib/fascist.c:745 - msgid "it is all whitespace" --msgstr "全是空格" -+msgstr "都是空白" - --#: lib/fascist.c:781 -+#: lib/fascist.c:764 - msgid "it is too simplistic/systematic" --msgstr "过于简单化/系统化" -+msgstr "太简单或太有规律" - --#: lib/fascist.c:786 -+#: lib/fascist.c:769 - msgid "it looks like a National Insurance number." --msgstr "看起来像国家保险号码。" -+msgstr "象国家保险号。" - --#: lib/fascist.c:813 -+#: lib/fascist.c:801 - msgid "it is based on a dictionary word" --msgstr "它基于字典单词" -+msgstr "它基于一个字典中的词" - --#: lib/fascist.c:832 -+#: lib/fascist.c:820 - msgid "it is based on a (reversed) dictionary word" --msgstr "它基于(颠倒的)字典单词" -+msgstr "它基于一个字典中的词的反向拼写" - -+#: lib/fascist.c:865 -+msgid "error loading dictionary" -+msgstr "加载字典错误" -diff -urN cracklib-2.9.6.old/po/zh_TW.po cracklib-2.9.6.new/po/zh_TW.po ---- cracklib-2.9.6.old/po/zh_TW.po 2015-08-18 20:48:15.000000000 +0200 -+++ cracklib-2.9.6.new/po/zh_TW.po 2018-10-09 11:37:47.781308079 +0200 -@@ -2,19 +2,22 @@ - # Copyright (C) YEAR Free Software Foundation, Inc. - # This file is distributed under the same license as the PACKAGE package. - # FIRST AUTHOR , YEAR. --# -+# Jan Dittberner , 2016. #zanata -+# Peter Pan , 2018. #zanata - msgid "" - msgstr "" --"Project-Id-Version: cracklib\n" -+"Project-Id-Version: cracklib 2.9.6\n" - "Report-Msgid-Bugs-To: cracklib-devel@lists.sourceforge.net\n" - "POT-Creation-Date: 2015-08-18 13:45-0500\n" --"PO-Revision-Date: 2005-06-23 12:52+0200\n" --"Last-Translator: Novell Language \n" -+"PO-Revision-Date: 2018-08-16 12:45+0000\n" -+"Last-Translator: Copied by Zanata \n" - "Language-Team: Novell Language \n" --"Language: \n" - "MIME-Version: 1.0\n" - "Content-Type: text/plain; charset=UTF-8\n" - "Content-Transfer-Encoding: 8bit\n" -+"Language: zh_TW\n" -+"Plural-Forms: nplurals=1; plural=0\n" -+"X-Generator: Zanata 4.6.2\n" - - #: lib/fascist.c:516 - msgid "it is based on your username" -@@ -78,4 +81,4 @@ - - #: lib/fascist.c:865 - msgid "error loading dictionary" --msgstr "" -+msgstr "讀取字典時錯誤" -diff -urN cracklib-2.9.6.old/zanata.xml cracklib-2.9.6.new/zanata.xml ---- cracklib-2.9.6.old/zanata.xml 1970-01-01 01:00:00.000000000 +0100 -+++ cracklib-2.9.6.new/zanata.xml 2018-10-09 11:37:21.033648627 +0200 -@@ -0,0 +1,7 @@ -+ -+ -+ https://fedora.zanata.org/ -+ cracklib -+ master -+ gettext -+ diff --git a/cracklib-2.9.7-translation-updates.patch b/cracklib-2.9.7-translation-updates.patch deleted file mode 100644 index 4b43134..0000000 --- a/cracklib-2.9.7-translation-updates.patch +++ /dev/null @@ -1,118 +0,0 @@ -diff -Naur cracklib-2.9.7-orig/po/as.po cracklib-2.9.7/po/as.po ---- cracklib-2.9.7-orig/po/as.po 2019-03-03 12:49:42.000000000 -0500 -+++ cracklib-2.9.7/po/as.po 2022-03-07 15:22:59.631245123 -0500 -@@ -76,7 +76,7 @@ - - #: lib/fascist.c:874 - msgid "error loading dictionary" --msgstr "" -+msgstr "শব্দকোষ ল'ড কৰোতে ত্ৰুটি" - - #~ msgid "it's derived from your password entry" - #~ msgstr "ইয়াক আপোনাৰ গুপ্তশব্দৰ নিবেশৰ পৰা পোৱা হৈছে" -diff -Naur cracklib-2.9.7-orig/po/gu.po cracklib-2.9.7/po/gu.po ---- cracklib-2.9.7-orig/po/gu.po 2019-03-03 12:49:42.000000000 -0500 -+++ cracklib-2.9.7/po/gu.po 2022-03-07 15:32:12.444115364 -0500 -@@ -77,7 +77,7 @@ - - #: lib/fascist.c:874 - msgid "error loading dictionary" --msgstr "" -+msgstr "શબ્દકોષને લાવી રહ્યા હોય ત્યારે ભૂલ" - - #~ msgid "it's derived from your password entry" - #~ msgstr "તમારા પાસવર્ડ પ્રવેશમાંથી તારવવામાં આવેલ છે" -diff -Naur cracklib-2.9.7-orig/po/hi.po cracklib-2.9.7/po/hi.po ---- cracklib-2.9.7-orig/po/hi.po 2019-03-03 12:49:42.000000000 -0500 -+++ cracklib-2.9.7/po/hi.po 2022-03-07 15:33:31.445561126 -0500 -@@ -78,7 +78,7 @@ - - #: lib/fascist.c:874 - msgid "error loading dictionary" --msgstr "" -+msgstr "शब्दकोश लोड करने में त्रुटि" - - #~ msgid "it's derived from your password entry" - #~ msgstr "यह आपकी कूटशब्द प्रविष्टि से निकला हुआ है" -diff -Naur cracklib-2.9.7-orig/po/kn.po cracklib-2.9.7/po/kn.po ---- cracklib-2.9.7-orig/po/kn.po 2019-03-03 12:49:42.000000000 -0500 -+++ cracklib-2.9.7/po/kn.po 2022-03-07 15:36:06.001428084 -0500 -@@ -77,7 +77,7 @@ - - #: lib/fascist.c:874 - msgid "error loading dictionary" --msgstr "" -+msgstr "ಕೋಶವನ್ನು ಲೋಡ್ ಮಾಡುವಲ್ಲಿ ದೋಷ" - - #~ msgid "it's derived from your password entry" - #~ msgstr "ಇದು ನಿಮ್ಮ ಗುಪ್ತಪದ ನಮೂದಿನಿಂದ ತೆಗೆದುಕೊಳ್ಳಲ್ಪಟ್ಟಿದೆ" -diff -Naur cracklib-2.9.7-orig/po/ml.po cracklib-2.9.7/po/ml.po ---- cracklib-2.9.7-orig/po/ml.po 2019-03-03 12:49:42.000000000 -0500 -+++ cracklib-2.9.7/po/ml.po 2022-03-07 15:37:59.048062855 -0500 -@@ -76,7 +76,7 @@ - - #: lib/fascist.c:874 - msgid "error loading dictionary" --msgstr "" -+msgstr "നിഘണ്ടു ലഭ്യമാക്കുന്നതില്<200d> പിശക്" - - #~ msgid "it's derived from your password entry" - #~ msgstr "നിങ്ങളുടെ രഹസ്യവാക്കില്‍ നിന്നും ലഭ്യമാക്കുന്നു" -diff -Naur cracklib-2.9.7-orig/po/mr.po cracklib-2.9.7/po/mr.po ---- cracklib-2.9.7-orig/po/mr.po 2019-03-03 12:49:42.000000000 -0500 -+++ cracklib-2.9.7/po/mr.po 2022-03-07 15:38:30.812241798 -0500 -@@ -77,7 +77,7 @@ - - #: lib/fascist.c:874 - msgid "error loading dictionary" --msgstr "" -+msgstr "शब्दकोष लोड करतेवेळी त्रुटी" - - #~ msgid "it's derived from your password entry" - #~ msgstr "तुमच्या पासवर्ड नोंद पासून प्राप्त" -diff -Naur cracklib-2.9.7-orig/po/or.po cracklib-2.9.7/po/or.po ---- cracklib-2.9.7-orig/po/or.po 2019-03-03 12:49:42.000000000 -0500 -+++ cracklib-2.9.7/po/or.po 2022-03-07 15:39:56.858728487 -0500 -@@ -77,7 +77,7 @@ - - #: lib/fascist.c:874 - msgid "error loading dictionary" --msgstr "" -+msgstr "ଅଭିଧାନ ଧାରଣ କରିବାରେ ତ୍ରୁଟି" - - #~ msgid "it's derived from your password entry" - #~ msgstr "ଏହା ଆପଣଙ୍କର ପ୍ରବେଶ ସଂକେତ ଭରଣରୁ ଉତ୍ପନ୍ନ କରାହୋଇଥାଏ" -diff -Naur cracklib-2.9.7-orig/po/ta.po cracklib-2.9.7/po/ta.po ---- cracklib-2.9.7-orig/po/ta.po 2019-03-03 12:49:42.000000000 -0500 -+++ cracklib-2.9.7/po/ta.po 2022-03-07 15:44:53.857740705 -0500 -@@ -77,7 +77,7 @@ - - #: lib/fascist.c:874 - msgid "error loading dictionary" --msgstr "" -+msgstr "அகராதியை ஏற்றுவதில் பிழை" - - #~ msgid "it's derived from your password entry" - #~ msgstr "இது உங்கள் கடவுச்சொல் உள்ளீடிலிருந்து வரையறுக்கப்பட்டது" -diff -Naur cracklib-2.9.7-orig/po/te.po cracklib-2.9.7/po/te.po ---- cracklib-2.9.7-orig/po/te.po 2019-03-03 12:49:42.000000000 -0500 -+++ cracklib-2.9.7/po/te.po 2022-03-07 15:45:23.810936770 -0500 -@@ -77,7 +77,7 @@ - - #: lib/fascist.c:874 - msgid "error loading dictionary" --msgstr "" -+msgstr "నిఘంటువును లోడు చేయుటలో దోషం" - - #~ msgid "it's derived from your password entry" - #~ msgstr "ఇది మీ సంకేతపదము ప్రవేశమునుండి ఉత్పాదించబడింది" -diff -Naur cracklib-2.9.7-orig/po/zh_CN.po cracklib-2.9.7/po/zh_CN.po ---- cracklib-2.9.7-orig/po/zh_CN.po 2021-08-17 11:56:42.000000000 -0400 -+++ cracklib-2.9.7/po/zh_CN.po 2022-03-07 15:48:56.407302640 -0500 -@@ -76,3 +76,6 @@ - msgid "it is based on a (reversed) dictionary word" - msgstr "它基于(颠倒的)字典单词" - -+#: lib/fascist.c:865 -+msgid "error loading dictionary" -+msgstr "加载字典错误" diff --git a/cracklib.spec b/cracklib.spec index 7e0e0e2..9b4d2b8 100644 --- a/cracklib.spec +++ b/cracklib.spec @@ -4,30 +4,21 @@ Summary: A password-checking library Name: cracklib -Version: 2.9.7 -Release: 31%{?dist} +Version: 2.9.11 +Release: 1%{?dist} URL: https://github.com/cracklib/cracklib License: LGPLv2+ + Source0: https://github.com/cracklib/cracklib/releases/download/v%{version}/cracklib-%{version}.tar.gz Source1: https://github.com/cracklib/cracklib/releases/download/v%{version}/cracklib-words-%{version}.gz - -# For man pages. -Source2: http://archive.debian.org/debian/pool/main/c/cracklib2/cracklib2_2.9.2-1.debian.tar.xz -Source40: http://archive.debian.org/debian/pool/main/c/cracklib2/cracklib2_2.9.2-1.dsc - # From attachment to https://bugzilla.redhat.com/show_bug.cgi?id=627449 -Source3: cracklib.default.zh_CN.po - +Source2: cracklib.default.zh_CN.po # No upstream source for this, just words missing from the current cracklib-words -Source10: missing-words.gz +Source3: missing-words.gz + +Patch: cracklib-2.9.11-packlib-reentrant.patch +Patch: cracklib-2.9.11-simplistic.patch -Patch1: cracklib-2.9.1-inttypes.patch -Patch2: cracklib-2.9.0-python-gzdicts.patch -Patch4: cracklib-2.9.7-packlib-reentrant.patch -Patch6: cracklib-2.9.7-simplistic.patch -Patch7: cracklib-2.9.7-translation-updates.patch -Patch9: cracklib-2.9.6-coverity.patch -Patch10: cracklib-2.9.6-lookup.patch BuildRequires: gcc BuildRequires: words, gettext BuildRequires: gettext-autopoint @@ -77,21 +68,13 @@ contains the utilities necessary for the creation of new dictionaries. If you are installing CrackLib, you should also install cracklib-dicts. %prep -%setup -q -a 2 +%autosetup -p 1 # Replace zn_CN.po with one that wasn't mis-transcoded at some point. -install -p -m 644 %{SOURCE3} po/zh_CN.po - -%patch1 -p1 -b .inttypes -%patch2 -p1 -b .gzdicts -%patch4 -p1 -b .reentrant -%patch6 -p1 -b .simplistic -%patch7 -p1 -b .translations -%patch9 -p1 -b .coverity -%patch10 -p1 -b .lookup +install -p -m 644 %{SOURCE2} po/zh_CN.po mkdir cracklib-dicts -for dict in %{SOURCE10} %{SOURCE1} +for dict in %{SOURCE3} %{SOURCE1} do cp -fv ${dict} cracklib-dicts/ done @@ -109,44 +92,44 @@ make %install %make_install 'pythondir=${pyexecdir}' ./util/cracklib-format cracklib-dicts/* | \ -./util/cracklib-packer $RPM_BUILD_ROOT%{dictpath} -./util/cracklib-format $RPM_BUILD_ROOT%{dictdir}/cracklib-small | \ -./util/cracklib-packer $RPM_BUILD_ROOT%{dictdir}/cracklib-small -rm -f $RPM_BUILD_ROOT%{dictdir}/cracklib-small -sed s,/usr/lib/cracklib_dict,%{dictpath},g lib/crack.h > $RPM_BUILD_ROOT%{_includedir}/crack.h -ln -s cracklib-format $RPM_BUILD_ROOT%{_sbindir}/mkdict +./util/cracklib-packer %{buildroot}%{dictpath} +./util/cracklib-format %{buildroot}%{dictdir}/cracklib-small | \ +./util/cracklib-packer %{buildroot}%{dictdir}/cracklib-small +rm -f %{buildroot}%{dictdir}/cracklib-small +sed s,/usr/lib/cracklib_dict,%{dictpath},g lib/crack.h > %{buildroot}%{_includedir}/crack.h +ln -s cracklib-format %{buildroot}%{_sbindir}/mkdict # packer link removed as it clashes with hashicorp's packer binary. -#ln -s cracklib-packer $RPM_BUILD_ROOT/%{_sbindir}/packer -touch $RPM_BUILD_ROOT/top +#ln -s cracklib-packer %{buildroot}/%{_sbindir}/packer +touch %{buildroot}/top toprelpath=.. -touch $RPM_BUILD_ROOT/top -while ! test -f $RPM_BUILD_ROOT%{_libdir}/$toprelpath/top ; do +touch %{buildroot}/top +while ! test -f %{buildroot}%{_libdir}/$toprelpath/top ; do toprelpath=../$toprelpath done -rm -f $RPM_BUILD_ROOT/top +rm -f %{buildroot}/top if test %{dictpath} != %{_libdir}/cracklib_dict ; then -ln -s $toprelpath%{dictpath}.hwm $RPM_BUILD_ROOT%{_libdir}/cracklib_dict.hwm -ln -s $toprelpath%{dictpath}.pwd $RPM_BUILD_ROOT%{_libdir}/cracklib_dict.pwd -ln -s $toprelpath%{dictpath}.pwi $RPM_BUILD_ROOT%{_libdir}/cracklib_dict.pwi +ln -s $toprelpath%{dictpath}.hwm %{buildroot}%{_libdir}/cracklib_dict.hwm +ln -s $toprelpath%{dictpath}.pwd %{buildroot}%{_libdir}/cracklib_dict.pwd +ln -s $toprelpath%{dictpath}.pwi %{buildroot}%{_libdir}/cracklib_dict.pwi fi -rm -f $RPM_BUILD_ROOT%{_libdir}/python*/site-packages/_cracklib*.*a -rm -f $RPM_BUILD_ROOT%{_libdir}/libcrack.la +rm -f %{buildroot}%{_libdir}/python*/site-packages/_cracklib*.*a +rm -f %{buildroot}%{_libdir}/libcrack.la -mkdir -p $RPM_BUILD_ROOT%{_mandir}/man{3,8} -install -p -m644 debian/*.3 $RPM_BUILD_ROOT%{_mandir}/man3/ -install -p -m644 debian/*.8 $RPM_BUILD_ROOT%{_mandir}/man8/ -if ! test -s $RPM_BUILD_ROOT%{_mandir}/man8/cracklib-packer.8 ; then - echo .so man8/cracklib-format.8 > $RPM_BUILD_ROOT%{_mandir}/man8/cracklib-packer.8 +mkdir -p %{buildroot}%{_mandir}/man{3,8} +install -p -m644 doc/*.3 %{buildroot}%{_mandir}/man3/ +install -p -m644 doc/*.8 %{buildroot}%{_mandir}/man8/ +if ! test -s %{buildroot}%{_mandir}/man8/cracklib-packer.8 ; then + echo .so man8/cracklib-format.8 > %{buildroot}%{_mandir}/man8/cracklib-packer.8 fi -if ! test -s $RPM_BUILD_ROOT%{_mandir}/man8/cracklib-unpacker.8 ; then - echo .so man8/cracklib-format.8 > $RPM_BUILD_ROOT%{_mandir}/man8/cracklib-unpacker.8 +if ! test -s %{buildroot}%{_mandir}/man8/cracklib-unpacker.8 ; then + echo .so man8/cracklib-format.8 > %{buildroot}%{_mandir}/man8/cracklib-unpacker.8 fi %find_lang %{name} %check -make test DESTDIR=$RPM_BUILD_ROOT +make test DESTDIR=%{buildroot} %ldconfig_scriptlets @@ -171,6 +154,11 @@ make test DESTDIR=$RPM_BUILD_ROOT %{_sbindir}/mkdict %changelog +* Fri Jul 07 2023 Paul Wouters - 2.9.7-31 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild diff --git a/sources b/sources index 9306778..1a02ec2 100644 --- a/sources +++ b/sources @@ -1,5 +1,3 @@ -SHA512 (cracklib-2.9.7.tar.gz) = 76d701ee521ae35b4cbab406f23a15c84937bb06d3c3747ca8ef2584a41074fc00309a676ec37ebd5b32930163213365cf508d47f614cfccea38e1ba6babb2ff -SHA512 (cracklib-words-2.9.7.gz) = 1fa34b0a2e16d6906982b248f1757bf5bf8154d8d7e8bab94a4ac25080c41434d3828a2c8dd5065e9be586f36480ab70375f09e0bb64eb495d96a460619e2bae -SHA512 (cracklib2_2.9.2-1.debian.tar.xz) = 3521f475389fdbb2ac79f745ea3c247dc179c7492e712a3f3f2620ff483c0c69a799b656d06f1e281012edfa33df53130a83a633381c6c1cd9f1d4eebf7ded8a -SHA512 (cracklib2_2.9.2-1.dsc) = e1b3bee4f015f0e3fcafa714429ae733b8377b2c4cdcfcc3b0cf77e922d78c2e57214f71ab4c8058650c8a80d5bdaf532648e038fdf37dce91045b9b9892023a +SHA512 (cracklib-2.9.11.tar.gz) = 9e73a715c8f82723abc36b08906e212aaf79a7f6dfa560c6a98963b1e63aa21f7b612f285a639a41ec9eec7025aa2c16f702aad934cd30bc995f470d62ee4bc3 +SHA512 (cracklib-words-2.9.11.gz) = d1983e8e8fcb9abee4701581d66008eda2d7ad6ee8d017b7fed225b71bd333fa6199338f37fd120c1c6bf1c8a75025692f4118d97e8c384e578000bed59c6aed SHA512 (missing-words.gz) = 50afb5538ddd15de997883f5ff6925d9084117851cfdcfc02f05c28304d6c17b46ea669fe626ad819e732b6f291f308194300c9db9b110a5c15a4e5d97ca6caa From 78da22597530e7f360b609e495c48c7ef132c876 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 19 Jul 2023 16:32:59 +0000 Subject: [PATCH 41/47] Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- cracklib.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cracklib.spec b/cracklib.spec index 9b4d2b8..72959e6 100644 --- a/cracklib.spec +++ b/cracklib.spec @@ -5,7 +5,7 @@ Summary: A password-checking library Name: cracklib Version: 2.9.11 -Release: 1%{?dist} +Release: 2%{?dist} URL: https://github.com/cracklib/cracklib License: LGPLv2+ @@ -154,6 +154,9 @@ make test DESTDIR=%{buildroot} %{_sbindir}/mkdict %changelog +* Wed Jul 19 2023 Fedora Release Engineering - 2.9.11-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + * Fri Jul 07 2023 Paul Wouters Date: Fri, 4 Aug 2023 14:26:24 +0200 Subject: [PATCH 42/47] migrated to SPDX license --- cracklib.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/cracklib.spec b/cracklib.spec index 72959e6..d17c17d 100644 --- a/cracklib.spec +++ b/cracklib.spec @@ -5,9 +5,9 @@ Summary: A password-checking library Name: cracklib Version: 2.9.11 -Release: 2%{?dist} +Release: 3%{?dist} URL: https://github.com/cracklib/cracklib -License: LGPLv2+ +License: LGPL-2.1-or-later Source0: https://github.com/cracklib/cracklib/releases/download/v%{version}/cracklib-%{version}.tar.gz Source1: https://github.com/cracklib/cracklib/releases/download/v%{version}/cracklib-words-%{version}.gz @@ -154,6 +154,9 @@ make test DESTDIR=%{buildroot} %{_sbindir}/mkdict %changelog +* Fri Aug 04 2023 Dmitry Belyavskiy - 2.9.11-3 +- migrated to SPDX license + * Wed Jul 19 2023 Fedora Release Engineering - 2.9.11-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild From 4beb16080f95a1b16a95b83a232ac7749f17705d Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 19 Jan 2024 16:19:48 +0000 Subject: [PATCH 43/47] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- cracklib.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cracklib.spec b/cracklib.spec index d17c17d..7f516f6 100644 --- a/cracklib.spec +++ b/cracklib.spec @@ -5,7 +5,7 @@ Summary: A password-checking library Name: cracklib Version: 2.9.11 -Release: 3%{?dist} +Release: 4%{?dist} URL: https://github.com/cracklib/cracklib License: LGPL-2.1-or-later @@ -154,6 +154,9 @@ make test DESTDIR=%{buildroot} %{_sbindir}/mkdict %changelog +* Fri Jan 19 2024 Fedora Release Engineering - 2.9.11-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Fri Aug 04 2023 Dmitry Belyavskiy - 2.9.11-3 - migrated to SPDX license From 253ee10c451ceef4dc4d251bb71a4fed6e06cad2 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 24 Jan 2024 08:21:30 +0000 Subject: [PATCH 44/47] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- cracklib.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cracklib.spec b/cracklib.spec index 7f516f6..2ecd50a 100644 --- a/cracklib.spec +++ b/cracklib.spec @@ -5,7 +5,7 @@ Summary: A password-checking library Name: cracklib Version: 2.9.11 -Release: 4%{?dist} +Release: 5%{?dist} URL: https://github.com/cracklib/cracklib License: LGPL-2.1-or-later @@ -154,6 +154,9 @@ make test DESTDIR=%{buildroot} %{_sbindir}/mkdict %changelog +* Wed Jan 24 2024 Fedora Release Engineering - 2.9.11-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Fri Jan 19 2024 Fedora Release Engineering - 2.9.11-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From 48f6fe27af4cfb094962a2a01e7ad423e26b2529 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 17 Jul 2024 20:09:33 +0000 Subject: [PATCH 45/47] Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild --- cracklib.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cracklib.spec b/cracklib.spec index 2ecd50a..92d2827 100644 --- a/cracklib.spec +++ b/cracklib.spec @@ -5,7 +5,7 @@ Summary: A password-checking library Name: cracklib Version: 2.9.11 -Release: 5%{?dist} +Release: 6%{?dist} URL: https://github.com/cracklib/cracklib License: LGPL-2.1-or-later @@ -154,6 +154,9 @@ make test DESTDIR=%{buildroot} %{_sbindir}/mkdict %changelog +* Wed Jul 17 2024 Fedora Release Engineering - 2.9.11-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + * Wed Jan 24 2024 Fedora Release Engineering - 2.9.11-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From ac34a7a48c7d623ec8221f418a439d072cc23408 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 16 Jan 2025 14:47:34 +0000 Subject: [PATCH 46/47] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild --- cracklib.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cracklib.spec b/cracklib.spec index 92d2827..05a0a62 100644 --- a/cracklib.spec +++ b/cracklib.spec @@ -5,7 +5,7 @@ Summary: A password-checking library Name: cracklib Version: 2.9.11 -Release: 6%{?dist} +Release: 7%{?dist} URL: https://github.com/cracklib/cracklib License: LGPL-2.1-or-later @@ -154,6 +154,9 @@ make test DESTDIR=%{buildroot} %{_sbindir}/mkdict %changelog +* Thu Jan 16 2025 Fedora Release Engineering - 2.9.11-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + * Wed Jul 17 2024 Fedora Release Engineering - 2.9.11-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild From 268edecb671455aa54e4767a00a0b91c555539b2 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 23 Jul 2025 18:47:34 +0000 Subject: [PATCH 47/47] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild --- cracklib.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cracklib.spec b/cracklib.spec index 05a0a62..183ca97 100644 --- a/cracklib.spec +++ b/cracklib.spec @@ -5,7 +5,7 @@ Summary: A password-checking library Name: cracklib Version: 2.9.11 -Release: 7%{?dist} +Release: 8%{?dist} URL: https://github.com/cracklib/cracklib License: LGPL-2.1-or-later @@ -154,6 +154,9 @@ make test DESTDIR=%{buildroot} %{_sbindir}/mkdict %changelog +* Wed Jul 23 2025 Fedora Release Engineering - 2.9.11-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + * Thu Jan 16 2025 Fedora Release Engineering - 2.9.11-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild