diff --git a/.gitignore b/.gitignore index 0bcf5ff..4b49299 100644 --- a/.gitignore +++ b/.gitignore @@ -37,26 +37,3 @@ cracklib-2.8.9.tar.gz pass_file.gz cracklib-2.8.10.tar.gz cracklib-2.8.12.tar.gz -cracklib-2.8.13.tar.gz -cracklib-2.8.15.tar.gz -cracklib-words-20080507.gz -cracklib-2.8.16.tar.gz -/cracklib2_2.8.18-1.debian.tar.gz -/cracklib-2.8.18.tar.gz -/cracklib-2.8.19.tar.gz -/cracklib2_2.8.19-1.debian.tar.gz -/cracklib2_2.8.19-1.dsc -/cracklib-2.8.20.tar.gz -/cracklib-2.8.21.tar.gz -/cracklib-2.8.22.tar.gz -/cracklib-2.9.0.tar.gz -/cracklib-2.9.1.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 -/cracklib-2.9.11.tar.gz -/cracklib-words-2.9.11.gz diff --git a/cracklib-2.8.10-docstring.patch b/cracklib-2.8.10-docstring.patch new file mode 100644 index 0000000..3ba871c --- /dev/null +++ b/cracklib-2.8.10-docstring.patch @@ -0,0 +1,39 @@ +Some docstrings for the Python module. Need to figure out how to fix the +summary in the help() output. + python -c 'import cracklib; help(cracklib)' + +diff -up cracklib-2.8.10/python/cracklibmodule.c cracklib-2.8.10/python/cracklibmodule.c +--- cracklib-2.8.10/python/cracklibmodule.c 2007-07-19 09:57:04.000000000 -0400 ++++ cracklib-2.8.10/python/cracklibmodule.c 2007-07-19 09:57:48.000000000 -0400 +@@ -24,7 +24,6 @@ static pthread_mutex_t cracklib_mutex = + static PyObject * + cracklib_FascistCheck(PyObject *self, PyObject *args, PyObject *kwargs) + { +- int i; + char *candidate, *dict; + const char *result; + struct stat st; +@@ -96,12 +95,21 @@ cracklib_FascistCheck(PyObject *self, Py + static PyMethodDef + cracklibmethods[] = + { +- {"FascistCheck", cracklib_FascistCheck, METH_VARARGS | METH_KEYWORDS}, ++ {"FascistCheck", cracklib_FascistCheck, METH_VARARGS | METH_KEYWORDS, ++ "Keyword arguments:\n" ++ " pw - candidate password\n" ++ " dict - dictionary location (default \"" ++ DEFAULT_CRACKLIB_DICT ++ "\")\n" ++ "\n" ++ "Returns:\n" ++ " None on success, an error string on failure.\n"}, + {NULL, NULL}, + }; + + void + initcracklib(void) + { +- Py_InitModule("cracklib", cracklibmethods); ++ Py_InitModule3("cracklib", cracklibmethods, ++ "Python interface to libcrack's FascistCheck() function.\n"); + } diff --git a/cracklib-2.8.10-suffix.patch b/cracklib-2.8.10-suffix.patch new file mode 100644 index 0000000..150fdb4 --- /dev/null +++ b/cracklib-2.8.10-suffix.patch @@ -0,0 +1,32 @@ +Tiny problems in errors reported: when we're out of memory, report out of +memory unrelated to the filename. When we notice that the dictionary isn't +there, give the name of the file which wasn't there. + python -c 'import cracklib;cracklib.FascistCheck("canihas","/tmp/notthere")' +diff -up cracklib-2.8.10/python/cracklibmodule.c cracklib-2.8.10/python/cracklibmodule.c +--- cracklib-2.8.10/python/cracklibmodule.c 2007-01-26 11:55:07.000000000 -0500 ++++ cracklib-2.8.10/python/cracklibmodule.c 2007-07-19 09:55:22.000000000 -0400 +@@ -58,13 +58,13 @@ cracklib_FascistCheck(PyObject *self, Py + dictfile = malloc(strlen(dict) + sizeof(DICT_SUFFIX)); + if (dictfile == NULL) + { +- PyErr_SetFromErrnoWithFilename(PyExc_OSError, dict); ++ PyErr_SetFromErrno(PyExc_MemoryError); + return NULL; + } + sprintf(dictfile, "%s" DICT_SUFFIX, dict); + if (lstat(dictfile, &st) == -1) + { +- PyErr_SetFromErrnoWithFilename(PyExc_OSError, dict); ++ PyErr_SetFromErrnoWithFilename(PyExc_OSError, dictfile); + free(dictfile); + return NULL; + } +@@ -74,7 +74,7 @@ cracklib_FascistCheck(PyObject *self, Py + if (lstat(DEFAULT_CRACKLIB_DICT DICT_SUFFIX, &st) == -1) + { + PyErr_SetFromErrnoWithFilename(PyExc_OSError, +- DEFAULT_CRACKLIB_DICT); ++ DEFAULT_CRACKLIB_DICT DICT_SUFFIX); + return NULL; + } + } diff --git a/cracklib-2.8.12-inttypes.patch b/cracklib-2.8.12-inttypes.patch new file mode 100644 index 0000000..8a5b82c --- /dev/null +++ b/cracklib-2.8.12-inttypes.patch @@ -0,0 +1,65 @@ +--- cracklib-2.8.9/configure.in 2006-02-17 14:49:12.000000000 -0500 ++++ cracklib-2.8.9/configure.in 2007-03-12 18:47:32.000000000 -0400 +@@ -23,6 +23,19 @@ + AC_CHECK_HEADERS(stdint.h) + AC_CHECK_HEADERS(pthread.h) + ++if test x$ac_cv_header_inttypes_h = xyes ; then ++ CRACKLIB_INTEGER_TYPES1="#include " ++ CRACKLIB_INTEGER_TYPES2= ++elif test x$ac_cv_header_stdint_h = xyes ; then ++ CRACKLIB_INTEGER_TYPES1="#include " ++ CRACKLIB_INTEGER_TYPES2= ++else ++ CRACKLIB_INTEGER_TYPES1="typedef unsigned int uint32_t;" ++ CRACKLIB_INTEGER_TYPES2="typedef unsigned short uint16_t;" ++fi ++AC_SUBST(CRACKLIB_INTEGER_TYPES1) ++AC_SUBST(CRACKLIB_INTEGER_TYPES2) ++ + dnl Cygwin workaround + AC_MSG_CHECKING(if LINE_MAX is defined) + AC_EGREP_CPP(yes, +@@ -87,6 +100,8 @@ + dnl Handle local dict compiling properly + AC_SUBST(CROSS_COMPILING, $cross_compiling) + +-AC_OUTPUT(util/Makefile lib/Makefile doc/Makefile python/Makefile Makefile \ +- po/Makefile.in m4/Makefile dicts/Makefile cracklib.spec) ++AC_CONFIG_FILES(util/Makefile lib/Makefile doc/Makefile python/Makefile \ ++ Makefile po/Makefile.in m4/Makefile dicts/Makefile \ ++ cracklib.spec lib/packer.h) ++AC_OUTPUT + +--- cracklib-2.8.9/lib/packer.h.in 2007-03-12 18:47:32.000000000 -0400 ++++ cracklib-2.8.9/lib/packer.h.in 2007-03-12 18:49:50.000000000 -0400 +@@ -32,17 +32,8 @@ + #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 +- ++@CRACKLIB_INTEGER_TYPES1@ ++@CRACKLIB_INTEGER_TYPES2@ + + struct pi_header + { +@@ -84,6 +75,9 @@ + int dummy; + } PWDICT; + ++@CRACKLIB_INTEGER_TYPES1@ ++@CRACKLIB_INTEGER_TYPES2@ ++ + #endif + + extern PWDICT *PWOpen(const char *prefix, char *mode); diff --git a/cracklib-2.9.11-packlib-reentrant.patch b/cracklib-2.9.11-packlib-reentrant.patch deleted file mode 100644 index 71f23e3..0000000 --- a/cracklib-2.9.11-packlib-reentrant.patch +++ /dev/null @@ -1,662 +0,0 @@ -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 - --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.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); - 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.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; -- static PWDICT pdesc; -- static PWDICT64 pdesc64; -+ PWDICT *pdesc; -+ PWDICT64 pdesc64; - char iname[STRINGSIZE]; - char dname[STRINGSIZE]; - char wname[STRINGSIZE]; -@@ -74,13 +74,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); -@@ -89,77 +87,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 -@@ -168,10 +169,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); -@@ -179,10 +181,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 -@@ -191,6 +192,7 @@ - { - fclose(wfp); - } -+ free(pdesc); - return NULL; - } - if (pdesc64.header.pih_magic != PIH_MAGIC) -@@ -198,10 +200,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 -@@ -211,23 +212,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 -@@ -237,17 +238,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 -@@ -256,17 +257,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 -@@ -275,10 +276,11 @@ - { - fclose(wfp); - } -+ free(pdesc); - return NULL; - } - -- if (pdesc.flags & PFOR_USEHWMS) -+ if (pdesc->flags & PFOR_USEHWMS) - { - int i; - -@@ -286,27 +288,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 -@@ -327,12 +329,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); - } - -@@ -366,6 +370,7 @@ - } - - pwp->header.pih_magic = 0; -+ free(pwp); - - return (0); - } -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 */ - char *str; -+ char *area; - { - int i; - int j; -- static char area[STRINGSIZE]; - j = i = strlen(str); - while (*str) - { -@@ -96,11 +96,11 @@ - } - - char * --Uppercase(str) /* return a pointer to an uppercase */ -+Uppercase(str, area) /* return a pointer to an uppercase */ - char *str; -+ char *area; - { - char *ptr; -- static char area[STRINGSIZE]; - ptr = area; - while (*str) - { -@@ -113,11 +113,11 @@ - } - - char * --Lowercase(str) /* return a pointer to an lowercase */ -+Lowercase(str, area) /* return a pointer to an lowercase */ - char *str; -+ char *area; - { - char *ptr; -- static char area[STRINGSIZE]; - ptr = area; - while (*str) - { -@@ -130,11 +130,11 @@ - } - - char * --Capitalise(str) /* return a pointer to an capitalised */ -+Capitalise(str, area) /* return a pointer to an capitalised */ - char *str; -+ char *area; - { - char *ptr; -- static char area[STRINGSIZE]; - ptr = area; - - while (*str) -@@ -149,11 +149,11 @@ - } - - char * --Pluralise(string) /* returns a pointer to a plural */ -+Pluralise(string, area) /* returns a pointer to a plural */ - char *string; -+ char *area; - { - int length; -- static char area[STRINGSIZE]; - length = strlen(string); - strcpy(area, string); - -@@ -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 */ - char *string; - char old; - char new; -+ char *area; - { - char *ptr; -- static char area[STRINGSIZE]; - ptr = area; - while (*string) - { -@@ -208,12 +208,12 @@ - } - - char * --Purge(string, target) /* returns pointer to a purged copy */ -+Purge(string, target, area) /* returns pointer to a purged copy */ - char *string; - char target; -+ char *area; - { - char *ptr; -- static char area[STRINGSIZE]; - ptr = area; - while (*string) - { -@@ -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 */ - char *string; - char class; - char new; -+ char *area; - { - char *ptr; -- static char area[STRINGSIZE]; - ptr = area; - while (*string) - { -@@ -388,12 +388,12 @@ - } - - char * --PolyPurge(string, class) /* returns pointer to a purged copy */ -+PolyPurge(string, class, area) /* returns pointer to a purged copy */ - char *string; - char class; -+ char *area; - { - char *ptr; -- static char area[STRINGSIZE]; - ptr = area; - while (*string) - { -@@ -426,39 +426,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; - 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); -@@ -545,7 +546,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]; -@@ -616,10 +616,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; -@@ -630,11 +630,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.11-simplistic.patch b/cracklib-2.9.11-simplistic.patch deleted file mode 100644 index f1df715..0000000 --- a/cracklib-2.9.11-simplistic.patch +++ /dev/null @@ -1,111 +0,0 @@ -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 */ - "/?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.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 -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 -+ sort -u diff --git a/cracklib.default.zh_CN.po b/cracklib.default.zh_CN.po deleted file mode 100644 index e080d6c..0000000 --- a/cracklib.default.zh_CN.po +++ /dev/null @@ -1,78 +0,0 @@ -# translation of cracklib.default.po to Wei Liu -# Copyright (C) 2010 Free Software Foundation, Inc. -# This file is distributed under the same license as the PACKAGE package. -# -# Leah Liu , 2010. -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" -"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 "尚未在口令文件中注册" - -#: lib/fascist.c:564 -msgid "it is based on your username" -msgstr "它基于用户名" - -#: lib/fascist.c:629 -msgid "it is based upon your password entry" -msgstr "它基于输入的口令" - -#: lib/fascist.c:649 -msgid "it is derived from your password entry" -msgstr "它派生自输入的口令" - -#: lib/fascist.c:662 -msgid "it's derived from your password entry" -msgstr "它派生自输入的口令" - -#: lib/fascist.c:676 -msgid "it is derivable from your password entry" -msgstr "可从输入的口令推断" - -#: lib/fascist.c:690 -msgid "it's derivable from your password entry" -msgstr "可从输入的口令推断" - -#: lib/fascist.c:726 -msgid "it is WAY too short" -msgstr "WAY 过短" - -#: lib/fascist.c:731 -msgid "it is too short" -msgstr "过短" - -#: lib/fascist.c:748 -msgid "it does not contain enough DIFFERENT characters" -msgstr "它没有包含足够的不同字符" - -#: lib/fascist.c:762 -msgid "it is all whitespace" -msgstr "全是空格" - -#: lib/fascist.c:781 -msgid "it is too simplistic/systematic" -msgstr "过于简单化/系统化" - -#: lib/fascist.c:786 -msgid "it looks like a National Insurance number." -msgstr "看起来像国家保险号码。" - -#: lib/fascist.c:813 -msgid "it is based on a dictionary word" -msgstr "它基于字典单词" - -#: lib/fascist.c:832 -msgid "it is based on a (reversed) dictionary word" -msgstr "它基于(颠倒的)字典单词" - diff --git a/cracklib.spec b/cracklib.spec index 183ca97..3a680d0 100644 --- a/cracklib.spec +++ b/cracklib.spec @@ -4,28 +4,53 @@ Summary: A password-checking library Name: cracklib -Version: 2.9.11 -Release: 8%{?dist} -URL: https://github.com/cracklib/cracklib -License: LGPL-2.1-or-later +Version: 2.8.12 +Release: 2 +Group: System Environment/Libraries +Source0: http://prdownloads.sourceforge.net/cracklib/cracklib-%{version}.tar.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 -# From attachment to https://bugzilla.redhat.com/show_bug.cgi?id=627449 -Source2: cracklib.default.zh_CN.po -# No upstream source for this, just words missing from the current cracklib-words -Source3: missing-words.gz +# Retrieved at 20070213003424Z. +Source1: http://prdownloads.sourceforge.net/cracklib/cracklib-words.gz -Patch: cracklib-2.9.11-packlib-reentrant.patch -Patch: cracklib-2.9.11-simplistic.patch +Source10: ftp://ftp.cerias.purdue.edu/pub/dict/wordlists/computer/Domains.gz +Source11: ftp://ftp.cerias.purdue.edu/pub/dict/wordlists/computer/Dosref.gz +Source12: ftp://ftp.cerias.purdue.edu/pub/dict/wordlists/computer/Ftpsites.gz +Source13: ftp://ftp.cerias.purdue.edu/pub/dict/wordlists/computer/Jargon.gz +Source14: ftp://ftp.cerias.purdue.edu/pub/dict/wordlists/computer/common-passwords.txt.gz +Source15: ftp://ftp.cerias.purdue.edu/pub/dict/wordlists/computer/etc-hosts.gz +Source16: ftp://ftp.cerias.purdue.edu/pub/dict/wordlists/movieTV/Movies.gz +Source17: ftp://ftp.cerias.purdue.edu/pub/dict/wordlists/movieTV/Python.gz +Source18: ftp://ftp.cerias.purdue.edu/pub/dict/wordlists/movieTV/Trek.gz +Source19: ftp://ftp.cerias.purdue.edu/pub/dict/wordlists/literature/LCarrol.gz +Source20: ftp://ftp.cerias.purdue.edu/pub/dict/wordlists/literature/Paradise.Lost.gz +Source21: ftp://ftp.cerias.purdue.edu/pub/dict/wordlists/literature/cartoon.gz +Source22: ftp://ftp.cerias.purdue.edu/pub/dict/wordlists/literature/myths-legends.gz +Source23: ftp://ftp.cerias.purdue.edu/pub/dict/wordlists/literature/sf.gz +Source24: ftp://ftp.cerias.purdue.edu/pub/dict/wordlists/literature/shakespeare.gz +Source25: ftp://ftp.cerias.purdue.edu/pub/dict/wordlists/names/ASSurnames.gz +Source26: ftp://ftp.cerias.purdue.edu/pub/dict/wordlists/names/Congress.gz +Source27: ftp://ftp.cerias.purdue.edu/pub/dict/wordlists/names/Family-Names.gz +Source28: ftp://ftp.cerias.purdue.edu/pub/dict/wordlists/names/Given-Names.gz +Source29: ftp://ftp.cerias.purdue.edu/pub/dict/wordlists/names/famous.gz +Source30: ftp://ftp.cerias.purdue.edu/pub/dict/wordlists/names/fast-names.gz +Source31: ftp://ftp.cerias.purdue.edu/pub/dict/wordlists/names/female-names.gz +Source32: ftp://ftp.cerias.purdue.edu/pub/dict/wordlists/names/male-names.gz +Source33: ftp://ftp.cerias.purdue.edu/pub/dict/wordlists/names/names.french.gz +Source34: ftp://ftp.cerias.purdue.edu/pub/dict/wordlists/names/names.hp.gz +Source35: ftp://ftp.cerias.purdue.edu/pub/dict/wordlists/names/other-names.gz +Source36: ftp://ftp.cerias.purdue.edu/pub/dict/wordlists/names/surnames.finnish.gz -BuildRequires: gcc -BuildRequires: words, gettext -BuildRequires: gettext-autopoint -BuildRequires: zlib-devel +# No upstream source for this; it came in as a bugzilla attachment. +Source37: pass_file.gz + +Patch0: cracklib-2.8.10-suffix.patch +Patch1: cracklib-2.8.12-inttypes.patch +Patch2: cracklib-2.8.10-docstring.patch +URL: http://sourceforge.net/projects/cracklib/ +License: GPLv2 +Buildroot: %{_tmppath}/%{name}-%{version}-root +BuildRequires: python-devel, words, automake, libtool Conflicts: cracklib-dicts < 2.8 -# The cracklib-format script calls gzip, but without a specific path. -Requires: gzip %description CrackLib tests passwords to determine whether they match certain @@ -47,16 +72,26 @@ 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}%{?_isa} = %{version}-%{release} +Group: Development/Libraries +Requires: %{name} = %{version}-%{release} %description devel The cracklib-devel package contains the header files and libraries needed for compiling applications which use cracklib. +%package python +Summary: Python bindings for applications which use cracklib +Group: Development/Libraries +Requires: %{name} = %{version}-%{release} + +%description python +The cracklib-python package contains a module which permits applications +written in the Python programming language to use cracklib. + %package dicts -Summary: The standard CrackLib dictionaries +Summary: The standard CrackLib dictionaries. +Group: System Environment/Libraries BuildRequires: words >= 2-13 -BuildRequires: make Requires: cracklib = %{version}-%{release} %description dicts @@ -68,359 +103,116 @@ contains the utilities necessary for the creation of new dictionaries. If you are installing CrackLib, you should also install cracklib-dicts. %prep -%autosetup -p 1 - -# Replace zn_CN.po with one that wasn't mis-transcoded at some point. -install -p -m 644 %{SOURCE2} po/zh_CN.po - +%setup -q +%patch0 -p1 -b .suffix +cp lib/packer.h lib/packer.h.in +%patch1 -p1 -b .inttypes +%patch2 -p1 -b .docstring +autoreconf mkdir cracklib-dicts -for dict in %{SOURCE3} %{SOURCE1} +for dict in %{SOURCE10} %{SOURCE11} %{SOURCE12} %{SOURCE13} %{SOURCE14} \ + %{SOURCE15} %{SOURCE16} %{SOURCE17} %{SOURCE18} %{SOURCE19} \ + %{SOURCE20} %{SOURCE21} %{SOURCE22} %{SOURCE23} %{SOURCE24} \ + %{SOURCE25} %{SOURCE26} %{SOURCE27} %{SOURCE28} %{SOURCE29} \ + %{SOURCE30} %{SOURCE31} %{SOURCE32} %{SOURCE33} %{SOURCE34} \ + %{SOURCE35} %{SOURCE36} %{SOURCE37} %{SOURCE1} do cp -fv ${dict} cracklib-dicts/ 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 \ - --without-python \ - --with-default-dict=%{dictpath} --disable-static -make -C po update-gmo +%configure --with-pic --with-python --with-default-dict=%{dictpath} --disable-static make %install -%make_install 'pythondir=${pyexecdir}' +[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT +make install DESTDIR=$RPM_BUILD_ROOT ./util/cracklib-format cracklib-dicts/* | \ -./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 %{buildroot}/%{_sbindir}/packer -touch %{buildroot}/top +./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 +ln -s cracklib-packer $RPM_BUILD_ROOT/%{_sbindir}/packer +touch $RPM_BUILD_ROOT/top toprelpath=.. -touch %{buildroot}/top -while ! test -f %{buildroot}%{_libdir}/$toprelpath/top ; do +touch $RPM_BUILD_ROOT/top +while ! test -f $RPM_BUILD_ROOT/%{_libdir}/$toprelpath/top ; do toprelpath=../$toprelpath done -rm -f %{buildroot}/top +rm -f $RPM_BUILD_ROOT/top if test %{dictpath} != %{_libdir}/cracklib_dict ; then -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 %{buildroot}%{_libdir}/python*/site-packages/_cracklib*.*a -rm -f %{buildroot}%{_libdir}/libcrack.la - -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 %{buildroot}%{_mandir}/man8/cracklib-unpacker.8 ; then - echo .so man8/cracklib-format.8 > %{buildroot}%{_mandir}/man8/cracklib-unpacker.8 +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/cracklibmodule.*a +rm -f $RPM_BUILD_ROOT/%{_libdir}/libcrack.la %find_lang %{name} %check -make test DESTDIR=%{buildroot} +# 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 +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 +s = cracklib.FascistCheck("cracklib", "$RPM_BUILD_ROOT/%{dictpath}") +expected = "it is based on a dictionary word" +if s != expected: + print "Got unexpected result \"%s\"," % s, + print "instead of expected value of \"%s\"." % expected + sys.exit(1) +EOF -%ldconfig_scriptlets +%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 %files -f %{name}.lang +%defattr(-,root,root) %doc README README-WORDS NEWS README-LICENSE AUTHORS -%license COPYING.LIB %{_libdir}/libcrack.so.* %dir %{_datadir}/cracklib %{_datadir}/cracklib/cracklib.magic %{_sbindir}/*cracklib* -%{_mandir}/man8/* %files devel +%defattr(-,root,root) %{_includedir}/* %{_libdir}/libcrack.so -%{_mandir}/man3/* %files dicts +%defattr(-,root,root) +%dir %{_datadir}/cracklib %{_datadir}/cracklib/pw_dict.* %{_datadir}/cracklib/cracklib-small.* %{_libdir}/cracklib_dict.* %{_sbindir}/mkdict +%{_sbindir}/packer + +%files python +%defattr(-,root,root) +%{_libdir}/python*/site-packages/cracklibmodule.so %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 - -* 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 - -* 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 - -* 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 - 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+ - -* 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 - -* 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 - -* 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 - -* 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 - -* 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 - -* 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 - -* 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 - -* 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 - -* 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 - -* 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) - -* 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 - -* 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 - -* 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) - -* Tue Jul 19 2016 Fedora Release Engineering - 2.9.6-3 -- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages - -* Wed Feb 03 2016 Fedora Release Engineering - 2.9.6-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Fri Oct 23 2015 Tomáš Mráz - 2.9.6-1 -- new upstream release -- cleanup of the word lists - -* Wed Jun 17 2015 Fedora Release Engineering - 2.9.1-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - -* Sat Aug 16 2014 Fedora Release Engineering - 2.9.1-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild - -* Fri Jul 11 2014 Tom Callaway - 2.9.1-4 -- fix license handling - -* Sat Jun 07 2014 Fedora Release Engineering - 2.9.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild - -* Wed Feb 5 2014 Tomáš Mráz - 2.9.1-2 -- move python files to libdir - -* Mon Dec 9 2013 Tomáš Mráz - 2.9.1-1 -- new upstream release - -* Mon Dec 2 2013 Tomáš Mráz - 2.9.0-9 -- update only .gmo files to avoid multilib conflicts (#1036305) - -* Thu Nov 28 2013 Tomáš Mráz - 2.9.0-8 -- updated translations - -* Thu Oct 31 2013 Tomáš Mráz - 2.9.0-7 -- do not remove any printable characters in cracklib-format - -* Thu Oct 31 2013 Tomáš Mráz - 2.9.0-6 -- fix the broken zh_CN translation - -* Tue Sep 3 2013 Tomáš Mráz - 2.9.0-5 -- make the simplistic check and the purging of special characters much - less aggressive (#1003624, #985378) - -* Wed Aug 28 2013 Tomáš Mráz - 2.9.0-4 -- revert compression of the dictionaries as the performance penalty is too big - -* Wed Aug 21 2013 Tomáš Mráz - 2.9.0-3 -- fix the python module to work with compressed dictionaries (#972542) -- fix various dictionary lookup errors (#986400, #986401) -- make the library reentrant and fix compilation warnings - -* Sat Aug 03 2013 Fedora Release Engineering - 2.9.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild - -* Mon Jun 3 2013 Nalin Dahyabhai - 2.9.0-1 -- update to 2.9.0 (#970065) - - adds FascistCheckUser() -- go ahead and compress the main dictionary, since we're linking with zlib - anyway - -* Tue Jan 29 2013 Nalin Dahyabhai - 2.8.22-3 -- point cracklib-packer and cracklib-unpacker man pages to cracklib-format - (internal tooling) - -* Wed Dec 19 2012 Nalin Dahyabhai - 2.8.22-2 -- add missing buildrequires: on zlib-devel (#888876) - -* Mon Dec 17 2012 Nalin Dahyabhai - 2.8.22-1 -- update to 2.8.22 (#887461), which now returns an error instead of exiting - when there's a failure opening the dictionary in FascistCheck() - -* Thu Dec 13 2012 Nalin Dahyabhai - 2.8.21-1 -- update to 2.8.21 - -* Mon Dec 10 2012 Nalin Dahyabhai - 2.8.20-1 -- update to 2.8.20 (#885439) - -* Tue Nov 20 2012 Nalin Dahyabhai - 2.8.19-3 -- update the copy of the debian source package to one that can currently be - retrieved using the URL we list for it - -* Wed Jul 18 2012 Fedora Release Engineering - 2.8.19-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild - -* Fri May 18 2012 Nalin Dahyabhai - 2.8.19-1 -- update to 2.8.19 - -* Thu Jan 12 2012 Fedora Release Engineering - 2.8.18-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild - -* Tue Feb 08 2011 Fedora Release Engineering - 2.8.18-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild - -* Thu Jan 27 2011 Nalin Dahyabhai - 2.8.18-1 -- update to 2.8.18 -- add man pages from Debian (#583932) -- replace zh_CN translation (related to #627449) - -* Wed Jul 21 2010 David Malcolm - 2.8.16-4 -- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild - -* Sat Jul 3 2010 Dan Horák - 2.8.16-3 -- added gettext-autopoint as BR: - -* Thu May 20 2010 Nalin Dahyabhai - 2.8.16-2 -- pull in changes to the Hindi translation (#589188) - -* Tue Apr 20 2010 Nalin Dahyabhai - 2.8.16-1 -- update to 2.8.16 - -* Fri Jan 22 2010 Nalin Dahyabhai - 2.8.15-3 -- add passwords derived from rockyou breach data to the dictionaries (Matthew - Miller, #557592) - -* Thu Jan 21 2010 Nalin Dahyabhai - 2.8.15-2 -- update license: tag -- include license file - -* Tue Dec 1 2009 Nalin Dahyabhai - 2.8.15-1 -- update to 2.8.15 -- update cracklib-words to the current version (2008-05-07) -- fixup URLs for various dictionary sources that we use -- fix freeing-an-uninitialized-pointer in the python module (SF#2907102) -- add a disttag - -* Fri Jul 24 2009 Fedora Release Engineering - 2.8.13-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild - -* Mon May 18 2009 Nalin Dahyabhai - 2.8.13-5 -- add explicit dependency on gzip for the sake of cracklib-format (Daniel - Mach, #501278) - -* Tue Feb 24 2009 Fedora Release Engineering - 2.8.13-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild - -* Thu Feb 19 2009 Nalin Dahyabhai - 2.8.13-3 -- drop trailing "." from the package description for the dicts - subpackage (#225659) - -* Sat Nov 29 2008 Ignacio Vazquez-Abrams - 2.8.13-2 -- Rebuild for Python 2.6 - -* Tue Oct 28 2008 Nalin Dahyabhai - 2.8.13-1 -- update to 2.8.13, which overhauls the python bindings and revises - FascistCheck()'s behavior: - 2.8.12 success: returns None, fail: returns error text, other: exceptions - 2.8.13 success: returns candidate, fail: throws ValueError, other: exceptions - -* Tue Oct 28 2008 Nalin Dahyabhai - 2.8.12-3 -- fix errors rebuilding with libtool that's newer than the one upstream - has (#467364) - * Tue Feb 19 2008 Fedora Release Engineering - 2.8.12-2 - Autorebuild for GCC 4.3 diff --git a/sources b/sources index 1a02ec2..7db85d3 100644 --- a/sources +++ b/sources @@ -1,3 +1,30 @@ -SHA512 (cracklib-2.9.11.tar.gz) = 9e73a715c8f82723abc36b08906e212aaf79a7f6dfa560c6a98963b1e63aa21f7b612f285a639a41ec9eec7025aa2c16f702aad934cd30bc995f470d62ee4bc3 -SHA512 (cracklib-words-2.9.11.gz) = d1983e8e8fcb9abee4701581d66008eda2d7ad6ee8d017b7fed225b71bd333fa6199338f37fd120c1c6bf1c8a75025692f4118d97e8c384e578000bed59c6aed -SHA512 (missing-words.gz) = 50afb5538ddd15de997883f5ff6925d9084117851cfdcfc02f05c28304d6c17b46ea669fe626ad819e732b6f291f308194300c9db9b110a5c15a4e5d97ca6caa +16cb1a55d7a2fdf92ca52d89ff1f622e ASSurnames.gz +d5b23f17981b3dff16532e2b2878dcb8 Congress.gz +176684d648b795c599e2125ade7fbe10 Domains.gz +bc7edfe2cc34e80b1a74753b1f215c73 Dosref.gz +922c958fbff2c5428bba5f75bcf4d090 Family-Names.gz +528cd34f1a0537a21d480621f2573527 Ftpsites.gz +4a9086b08e038167cddf0d4609fe046b Given-Names.gz +1e90a81ed180165d2ae3d7e97c47d8b5 Jargon.gz +ffc528048927ed767ba1c5d67c2c1cd1 LCarrol.gz +f45610404e56901d627932895899c6bf Movies.gz +6a6daa254215d18441acb7c72bbe4b01 Paradise.Lost.gz +c575d3302d3a6beb9daef6a492ba024a Python.gz +d2af1d5bfb80515129632a5d5cd106f7 Trek.gz +c262148af56614d9b33946c4758e101b cartoon.gz +5e35a78582c233f8b703f1dabf264788 common-passwords.txt.gz +9296e6866c48522d35440c921dfac538 etc-hosts.gz +056193ded99b178046e87e6fb4300ebf famous.gz +5857e228e763eb8300a8f2d3a424d766 fast-names.gz +67d56b0639e8edeacdf804005cb13afb female-names.gz +2118799e73046f4a386a2e8b8d244d3b male-names.gz +18a1a7c79821701d8c7e8ee1e3d81361 myths-legends.gz +453c3842bb232d50fb45935e18be4250 names.french.gz +ca42f876220de24d5cc1d8f3645b339c names.hp.gz +f70810a2ba08f95df6787afe0eba2907 other-names.gz +a2bd31ce25a3057b61d2e5a1182d93a9 sf.gz +15ec61296de799eaa8111cfabbcbb44f shakespeare.gz +c03b38448aefcde059e6fcfb20784f2c surnames.finnish.gz +6e76a087a646ede5eba05e9259fd84d4 pass_file.gz +d18e670e5df560a8745e1b4dede8f84f cracklib-words.gz +580346fa1012f9d9769192f49d3801fa cracklib-2.8.12.tar.gz diff --git a/tests/ABI-compatibility/Makefile b/tests/ABI-compatibility/Makefile deleted file mode 100644 index 964c3e5..0000000 --- a/tests/ABI-compatibility/Makefile +++ /dev/null @@ -1,64 +0,0 @@ -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# 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 deleted file mode 100644 index f256265..0000000 --- a/tests/ABI-compatibility/PURPOSE +++ /dev/null @@ -1,3 +0,0 @@ -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 deleted file mode 100755 index 58f6400..0000000 --- a/tests/ABI-compatibility/runtest.sh +++ /dev/null @@ -1,81 +0,0 @@ -#!/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 deleted file mode 100644 index 37c4135..0000000 --- a/tests/Localization/Makefile +++ /dev/null @@ -1,63 +0,0 @@ -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# 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 deleted file mode 100644 index 83d8e81..0000000 --- a/tests/Localization/PURPOSE +++ /dev/null @@ -1,3 +0,0 @@ -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 deleted file mode 100755 index 6afb4ab..0000000 --- a/tests/Localization/runtest.sh +++ /dev/null @@ -1,125 +0,0 @@ -#!/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 deleted file mode 100755 index 6238138..0000000 --- a/tests/inventory +++ /dev/null @@ -1,3 +0,0 @@ -#!/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 deleted file mode 100644 index ac40fef..0000000 --- a/tests/tests.yml +++ /dev/null @@ -1,25 +0,0 @@ ---- -# 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