File pam-cracklib-option-sync.patch of Package pam-config.10024
Index: pam-config-0.89/src/mod_pam_cracklib.c
===================================================================
--- pam-config-0.89.orig/src/mod_pam_cracklib.c
+++ pam-config-0.89/src/mod_pam_cracklib.c
@@ -56,8 +56,8 @@ PRINT_ARGS("cracklib")
PRINT_XMLHELP("cracklib")
/* ---- contruct module object ---- */
-DECLARE_BOOL_OPTS_2(is_enabled, debug);
-DECLARE_STRING_OPTS_11(authtok_type, retry, difok, difignore, minlen, dcredit, ucredit, lcredit, ocredit, minclass, dictpath);
+DECLARE_BOOL_OPTS_5(is_enabled, debug, reject_username, gecoscheck, enforce_for_root);
+DECLARE_STRING_OPTS_14(authtok_type, retry, difok, difignore, minlen, dcredit, ucredit, lcredit, ocredit, minclass, dictpath, maxrepeat, maxsequence, maxclassrepeat);
DECLARE_OPT_SETS;
static module_helptext_t helptext[] = {{NULL, NULL, NULL}};
Index: pam-config-0.89/src/pam-config.8.xml
===================================================================
--- pam-config-0.89.orig/src/pam-config.8.xml
+++ pam-config-0.89/src/pam-config.8.xml
@@ -338,6 +338,54 @@
</listitem>
</varlistentry>
<varlistentry>
+ <term><option>--cracklib-maxrepeat=</option><replaceable>value</replaceable></term>
+ <listitem>
+ <para>
+ Add <option>maxrepeat=</option><replaceable>value</replaceable> option to pam_cracklib.so.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--cracklib-maxsequence=</option><replaceable>value</replaceable></term>
+ <listitem>
+ <para>
+ Add <option>maxsequence=</option><replaceable>value</replaceable> option to pam_cracklib.so.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--cracklib-maxclassrepeat=</option><replaceable>value</replaceable></term>
+ <listitem>
+ <para>
+ Add <option>maxclassrepeat=</option><replaceable>value</replaceable> option to pam_cracklib.so.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--cracklib-reject_username=</option><replaceable>value</replaceable></term>
+ <listitem>
+ <para>
+ Add <option>reject_username=</option><replaceable>value</replaceable> option to pam_cracklib.so.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--cracklib-gecoscheck=</option><replaceable>value</replaceable></term>
+ <listitem>
+ <para>
+ Add <option>gecoscheck=</option><replaceable>value</replaceable> option to pam_cracklib.so.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--cracklib-enforce_for_root=</option><replaceable>value</replaceable></term>
+ <listitem>
+ <para>
+ Add <option>enforce_for_root=</option><replaceable>value</replaceable> option to pam_cracklib.so.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
<term><option>--cracklib-dictpath=</option><replaceable>value</replaceable></term>
<listitem>
<para>
Index: pam-config-0.89/src/pam-config.8
===================================================================
--- pam-config-0.89.orig/src/pam-config.8
+++ pam-config-0.89/src/pam-config.8
@@ -258,6 +258,48 @@ Add
option to pam_cracklib\&.so\&.
.RE
.PP
+\fB\-\-cracklib\-maxrepeat=\fR\fIvalue\fR
+.RS 4
+Add
+\fBmaxrepeat=\fR\fIvalue\fR
+option to pam_cracklib\&.so\&.
+.RE
+.PP
+\fB\-\-cracklib\-maxsequence=\fR\fIvalue\fR
+.RS 4
+Add
+\fBmaxsequence=\fR\fIvalue\fR
+option to pam_cracklib\&.so\&.
+.RE
+.PP
+\fB\-\-cracklib\-maxclassrepeat=\fR\fIvalue\fR
+.RS 4
+Add
+\fBmaxclassrepeat=\fR\fIvalue\fR
+option to pam_cracklib\&.so\&.
+.RE
+.PP
+\fB\-\-cracklib\-reject_username=\fR\fIvalue\fR
+.RS 4
+Add
+\fBreject_username=\fR\fIvalue\fR
+option to pam_cracklib\&.so\&.
+.RE
+.PP
+\fB\-\-cracklib\-gecoscheck=\fR\fIvalue\fR
+.RS 4
+Add
+\fBgecoscheck=\fR\fIvalue\fR
+option to pam_cracklib\&.so\&.
+.RE
+.PP
+\fB\-\-cracklib\-enforce_for_root=\fR\fIvalue\fR
+.RS 4
+Add
+\fBenforce_for_root=\fR\fIvalue\fR
+option to pam_cracklib\&.so\&.
+.RE
+.PP
\fB\-\-cracklib\-dictpath=\fR\fIvalue\fR
.RS 4
Add
Index: pam-config-0.89/src/pam-module.h
===================================================================
--- pam-config-0.89.orig/src/pam-module.h
+++ pam-config-0.89/src/pam-module.h
@@ -85,6 +85,7 @@ typedef struct {
#define INIT_OPT_8(PREFIX,TYPE,DEFAULT,a,b,c,d,e,f,g,h) INIT_OPT_4(PREFIX,TYPE,DEFAULT,a,b,c,d); INIT_OPT_4(PREFIX,TYPE,DEFAULT,e,f,g,h)
#define INIT_OPT_10(PREFIX,TYPE,DEFAULT,a,b,c,d,e,f,g,h,i,j) INIT_OPT_5(PREFIX,TYPE,DEFAULT,a,b,c,d,e); INIT_OPT_5(PREFIX,TYPE,DEFAULT,f,g,h,i,j)
#define INIT_OPT_11(PREFIX,TYPE,DEFAULT,a,b,c,d,e,f,g,h,i,j,k) INIT_OPT_6(PREFIX,TYPE,DEFAULT,a,b,c,d,e,f); INIT_OPT_5(PREFIX,TYPE,DEFAULT,g,h,i,j,k)
+#define INIT_OPT_14(PREFIX,TYPE,DEFAULT,a,b,c,d,e,f,g,h,i,j,k,l,m,n) INIT_OPT_8(PREFIX,TYPE,DEFAULT,a,b,c,d,e,f,g,h); INIT_OPT_6(PREFIX,TYPE,DEFAULT,i,j,k,l,m,n)
#define INIT_OPT_16(PREFIX,TYPE,DEFAULT,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) INIT_OPT_8(PREFIX,TYPE,DEFAULT,a,b,c,d,e,f,g,h); INIT_OPT_8(PREFIX,TYPE,DEFAULT,i,j,k,l,m,n,o,p)
#define OPT_SET_START(PREFIX, TYPE) static TYPE ## _option_t * PREFIX ## _ ## TYPE ## _opts[] = {
@@ -100,6 +101,7 @@ typedef struct {
#define OPT_SET_BODY_8(PREFIX, a,b,c,d,e,f,g,h) OPT_SET_BODY_2(PREFIX,a,b), OPT_SET_BODY_6(PREFIX, c,d,e,f,g,h)
#define OPT_SET_BODY_10(PREFIX, a,b,c,d,e,f,g,h,i,j) OPT_SET_BODY_5(PREFIX,a,b,c,d,e), OPT_SET_BODY_5(PREFIX, f,g,h,i,j)
#define OPT_SET_BODY_11(PREFIX, a,b,c,d,e,f,g,h,i,j,k) OPT_SET_BODY_5(PREFIX,a,b,c,d,e), OPT_SET_BODY_6(PREFIX, f,g,h,i,j,k)
+#define OPT_SET_BODY_14(PREFIX, a,b,c,d,e,f,g,h,i,j,k,l,m,n) OPT_SET_BODY_8(PREFIX,a,b,c,d,e,f,g,h), OPT_SET_BODY_6(PREFIX, i,j,k,l,m,n)
#define OPT_SET_BODY_16(PREFIX, a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) OPT_SET_BODY_8(PREFIX,a,b,c,d,e,f,g,h), OPT_SET_BODY_8(PREFIX, i,j,k,l,m,n,o,p)
#define GENERIC_OPT_SET_1(PREFIX,TYPE,DEFAULT,a) INIT_OPT_1(PREFIX, TYPE, DEFAULT, a); \
@@ -145,6 +147,10 @@ typedef struct {
OPT_SET_START(PREFIX, TYPE) \
OPT_SET_BODY_11(PREFIX,a,b,c,d,e,f,g,h,i,j,k), \
OPT_SET_END
+#define GENERIC_OPT_SET_14(PREFIX, TYPE, DEFAULT,a,b,c,d,e,f,g,h,i,j,k,l,m,n) INIT_OPT_14(PREFIX,TYPE,DEFAULT,a,b,c,d,e,f,g,h,i,j,k,l,m,n); \
+ OPT_SET_START(PREFIX, TYPE) \
+ OPT_SET_BODY_14(PREFIX,a,b,c,d,e,f,g,h,i,j,k,l,m,n), \
+ OPT_SET_END
#define GENERIC_OPT_SET_16(PREFIX, TYPE, DEFAULT,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) \
INIT_OPT_16(PREFIX,TYPE,DEFAULT,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p); \
@@ -263,6 +269,12 @@ typedef struct {
GENERIC_OPT_SET_11( password, string, STRING_DEFAULT, OPT_1, OPT_2,OPT_3,OPT_4,OPT_5,OPT_6,OPT_7,OPT_8,OPT_9,OPT_10,OPT_11 ); \
GENERIC_OPT_SET_11( session, string, STRING_DEFAULT, OPT_1, OPT_2,OPT_3,OPT_4,OPT_5,OPT_6,OPT_7,OPT_8,OPT_9,OPT_10,OPT_11 );
+#define DECLARE_STRING_OPTS_14(OPT_1,OPT_2,OPT_3,OPT_4,OPT_5,OPT_6,OPT_7,OPT_8,OPT_9,OPT_10,OPT_11,OPT_12,OPT_13,OPT_14) \
+ GENERIC_OPT_SET_14( auth, string, STRING_DEFAULT, OPT_1, OPT_2,OPT_3,OPT_4,OPT_5,OPT_6,OPT_7,OPT_8,OPT_9,OPT_10,OPT_11,OPT_12,OPT_13,OPT_14 ); \
+ GENERIC_OPT_SET_14( account, string, STRING_DEFAULT, OPT_1, OPT_2,OPT_3,OPT_4,OPT_5,OPT_6,OPT_7,OPT_8,OPT_9,OPT_10,OPT_11,OPT_12,OPT_13,OPT_14 ); \
+ GENERIC_OPT_SET_14( password, string, STRING_DEFAULT, OPT_1, OPT_2,OPT_3,OPT_4,OPT_5,OPT_6,OPT_7,OPT_8,OPT_9,OPT_10,OPT_11,OPT_12,OPT_13,OPT_14 ); \
+ GENERIC_OPT_SET_14( session, string, STRING_DEFAULT, OPT_1, OPT_2,OPT_3,OPT_4,OPT_5,OPT_6,OPT_7,OPT_8,OPT_9,OPT_10,OPT_11,OPT_12,OPT_13,OPT_14 );
+
#define DECLARE_OPT_SETS \
static option_set_t auth_opts = { auth_bool_opts, auth_string_opts, &is_enabled, &enable, &get_opt, &set_opt }; \