2012-05-13 Sergey Poznyakoff Revamp build system. Add pam_ldaphome module. * configure.ac: Test for ldap. (AC_OUTPUT): Create pam_ldaphome/Makefile. * acinclude.m4 (PM_ENABLE): Declare PAM_COND_ conditional in addition to BUILD_PAM_ substitution variable. * Makefile.am (SUBDIRS): Include most modules via conditionally defined Makefile variables. * lib/graypam.h (gray_env): New struct. (gray_env_get,gray_env_free,gray_env_read) (gray_boolean_true_p): New protos. * lib/env.c: New file. * lib/Makefile.am (libgraypam_la_SOURCES): Add env.c * pam_fshadow/Makefile.am: Remove BUILD_PAM_FSHADOW substitution. * pam_regex/Makefile.am: Remove BUILD_PAM_REGEX substitution. * pam_sql/pam_sql.c (free_config, boolean_true_p) (read_config): Remove. Use gray_env_* functions instead. All uses updated. * pam_regex/pam_regex.c: Fix typo. * pam_ldaphome/Makefile.am: New file. 2011-09-29 Sergey Poznyakoff Allow installers to link modules with alternative crypt(3) implementations. * configure.ac: New option --with-crypt-lib. * README: Update. 2011-08-31 Sergey Poznyakoff Various bugfixes. * pam_fshadow/pam_fshadow.c (pam_sm_authenticate): Fix erroneous conditional, which allowed for logins with arbitrary passwords if `nopasswd' option was given. * lib/graypam.h (gray_free_transform_expr): New proto. * lib/transform.c (transform) : New member. (free_transform,free_segment): New statics. (gray_free_transform_expr): New function. * pam_regex/pam_regex.c (pam_sm_authenticate): Free slist and transform expression. 2011-04-08 Sergey Poznyakoff Version 1.7 * configure.ac: Enable silent rules. Require autoconf 2.63, automake 1.11. * pam_log/pam_log.c: Suppress a gcc warning. * NEWS: Update. 2011-04-05 Sergey Poznyakoff Allow for the use of `CALL proc' in MySQL queries. * pam_sql/pam_mysql.c (flush_result): New static. (mysql_do_query): Call mysql_real_connect with the CLIENT_MULTI_RESULTS flag. (check_query_result, mysql_setenv, gpam_sql_acct): Call flush_result after freeing the result. 2009-02-27 Sergey Poznyakoff Minor changes * pam_fshadow/pam_fshadow.c: Protect shadow-related code with ifdefs. * configure.ac: Check for shadow.h, struct spwd and fgetspent. Do not disable pam_fshadow.c if they are not present. Rewrite Makefile.am's in a clearer and simpler way * configure.ac: Require libtool 2.2.5a * Make.rules (.c.lo, .lo.la): Remove (AM_LDFLAGS, INCLUDES, LIBS): New assignments. * pam_sql/Makefile.am, pam_fshadow/Makefile.am, pam_sql/Makefile.am, pam_regex/Makefile.am, pam_log/Makefile.am: Rewrite. * pam_sql/pam_sql.h, pam_sql/pam_mysql.c, pam_sql/pam_pgsql.c. pam_sql/pam_sql.c: Rewrite. * pam_sql/sha1.h, pam_sql/md5.c, pam_sql/md5.h, pam_sql/sha1.c * pam_fshadow/pam_fshadow.c: New option [no]shadow * doc/pam-modules.texi: Update. * lib/graypam.h (gray_trim_ws): New proto * lib/strutil.c: New file. * lib/Makefile.am: Add strutil.c 2009-02-17 Sergey Poznyakoff * pam_fshadow/Makefile.am: Build the module conditionally. * pam_regex/Makefile.am: Likewise. * pam_log/Makefile.am: Likewise. * NEWS, README: Update. * configure.ac: Raise version number to 1.5. Update bug-report address. Add options for disabling fshadow, log and regex. * acinclude.m4: Prefix all macros with PM_ (PM_CHECK_LIB): Rewrite. 2008-03-20 Sergey Poznyakoff * configure.ac, NEWS: Version 1.4 * doc/pam-modules.texi: Update. * doc/macros.texi (opsummary,kwsummary): Remove anchor definitions, they cause grief in texi2html. 2008-03-19 Sergey Poznyakoff * doc/pam-modules.texi: Improve docs. Documentation checking framework: * doc/macros.texi, doc/check-docs.sh, doc/mastermenu.el, doc/untabify.el, doc/rendition.texi: New files. * pam_regex/pam_regex.c: Remove useless use_authtok option. * pam_sql/pam_mysql.c, pam_sql/pam_pgsql.c, pam_sql/pam_sql.c: Pacify `make check-sql-config' in doc. * doc/Makefile.am: Add check-* rules. * doc/pam-modules.texi: Update. * configure.ac: Check for pam libraries and header files. * pam_sql/pam_mysql.c (mysql_setenv): Protect by #ifdef HAVE_PAM_MISC_SETENV. Prevent coredumps on NULL values. * pam_sql/pam_pgsql.c (pgsql_setenv): Likewise. * pam_sql/Makefile.am (pam_mysql_la_LDADD,pam_pgsql_la_LDADD): Add @PAM_MISC@. * pam_sql/pam_sql.c (read_config): Read lines of arbitrary length. * pam_sql/pam_mysql.c, pam_sql/pam_pgsql.c: Implement `setenv' method. * pam_sql/pam_sql.c, pam_fshadow/pam_fshadow (_pam_get_password): Set PAM_AUTHTOK. 2008-03-17 Sergey Poznyakoff * doc/pam-modules.texi: Update. * pam_fshadow/pam_fshadow.c, pam_sql/pam_mysql.c, pam_sql/pam_sql.c, pam_regex/pam_regex.c: Ensure passwords might get divulged only at debugging level 100. 2008-03-16 Sergey Poznyakoff Add session management to pam_sql. * NEWS, configure.ac: Updated. Set version to 1.3.90. * lib/escape.c, lib/vartab.c: New files. * lib/graypam.h (gray_expand_argv) (gray_expand_string, gray_escape_string): New functions. (struct keyword): New declaration. (gray_find_keyword): New function. * lib/Makefile.am (libgraypam_la_SOURCES): Add vartab.c and escape.c. * pam_log/pam_log.c: Use gray_find_keyword and gray_expand_argv. * pam_sql/pam_mysql.c, pam_sql/pam_pgsql.c (verify_user_pass): Change signature. (sql_acct): New function. * pam_sql/pam_sql.c (verify_user_pass): Change signature. (_pam_parse): Initialize globals. (free_config): Reset config_env to NULL. (read_config): Set config_env to NULL. (get_query,get_query2): New functions. (pam_sm_authenticate): Call gray_pam_init, update call to verify_user_pass. (sql_session_mgmt,pam_sm_open_session,pam_sm_close_session): New functions. 2008-03-15 Sergey Poznyakoff * pam_regex/pam_regex.c (pam_opt): Fix a typo: rename "user_name" option to "user". (pam_sm_authenticate): Bugfix 2008-03-15 Sergey Poznyakoff -= Release 1.3 =- 2008-03-15 Sergey Poznyakoff Initial framework for LDAP-style password hashes. * pam_sql/pam_mysql.c, pam_sql/pam_pgsql.c: Call gray_check_ldap_pass if configuration variable allow-ldap-pass is set. * lib/graypam.h (gray_base64_decode, gray_check_ldap_pass): New prototypes. * lib/Makefile.am (libgraypam_la_SOURCES): Add new files. * lib/sha1.h, lib/base64.c, lib/md5.c, lib/ldappass.c, lib/md5.h, lib/sha1.c: New files. 2008-03-14 Sergey Poznyakoff * doc/Makefile.am: Use texi2html to produce html files. * doc/gendocs_template: Use latest version from Texinfo. -= Release 1.2 =- * lib/graypam.h: Minor change. * pam_sql/pam_pgsql.c (verify_user_pass): port is optional. Fix erroneous argument to PQsetdbLogin. * pam_sql/pam_sql.c (pam_opt): Bugfix. * doc/pam-modules.texi: Minor change. * NEWS, doc/pam-modules.texi: Document new regexp default for pam_fshadow.c * lib/parseopt.c: New file. * lib/Makefile.am (libgraypam_la_SOURCES): Add parseopt.c * lib/graypam.h (gray_parseopt, gray_wait_debug_fun): New functions (CNTL_DEBUG_LEV, CNTL_SET_DEBUG_LEV): Removed. * lib/log.c (gray_wait_debug): New functions. * pam_fshadow/pam_fshadow.c, pam_sql/pam_sql.c, pam_regex/pam_regex.c, pam_log/pam_log.c: Use gray_parseopt for command line parsing. 2008-03-13 Sergey Poznyakoff * configure.ac (PAM_COMMON_INCLUDES): Add -I${top_srcdir}/lib. (AC_OUTPUT): Add lib/Makefile. * doc/pam-modules.texi: Document `transform' option. * Make.rules: New file. * lib/mem.c, lib/slist.c, lib/log.c, lib/converse.c, lib/graypam.h, lib/Makefile.am, lib/transform.c. * pam_regex/pam_regex.c: Implement user name transformations. * pam_fshadow/Makefile.am, pam_sql/Makefile.am: Add ../lib/libgraypam.la to LDADD * pam_fshadow/pam_fshadow.c, pam_sql/pam_mysql.c, pam_sql/pam_pgsql.c, pam_sql/pam_sql.c: Use functions from ../lib. 2007-08-28 Sergey Poznyakoff * pam_fshadow/Makefile.am, pam_regex/Makefile.am, pam_log/Makefile.am: Place INCLUDES in front of CPPFLAGS * pam_sql/Makefile.am: Place INCLUDES in front of CPPFLAGS (pam_mysql.la): Redo rule * pam_sql/sha1.h, pam_sql/sha1.c, pam_sql/md5.h, pam_sql/md5.c: Replace with another version * pam_fshadow/pam_fshadow.c: Minor change * pam_sql/pam_mysql.c (sql_expand_query): Bugfix Implement pure md5 passwords (verify_user_pass): Lots of bugfixes * pam_sql/pam_sql.c (read_config): Lots of bugfixes (pam_sm_setcred,pam_sm_acct_mgmt): Add required functions 2007-08-14 Sergey Poznyakoff * NEWS, configure.ac: Version 1.2 * pam_fshadow/pam_fshadow.c: Include config.h and time.h * pam_sql/pam_mysql.c, pam_sql/pam_pgsql.c, pam_sql/pam_sql.c: Use _pam_log for diagnostics. * pam_regex/pam_regex.c (pam_sm_authenticate): Remove unused variable. * configure.ac: New option --enable-debug * common.c (wait_debug): Bugfix * pam_log/pam_log.c: Include ctype.h (parse_priority): Change return type. * pam_fshadow/Makefile.am, pam_log/Makefile.am, pam_regex/Makefile.am, pam_sql/Makefile.am: Use CPPFLAGS in cc rules. 2007-08-06 Sergey Poznyakoff Relicense under GPLv3. 2007-08-05 Sergey Poznyakoff * NEWS: Update * configure.ac: Version 1.0.90 * common.c: Include regex.h; (_cleanup_regex, make_str): New functions * doc/pam-modules.texi: Update * pam_fshadow/Makefile.am (pam_fshadow_la_LDADD): Add @LIBS@ * pam_fshadow/pam_fshadow.c: Implement virtual domain authentication. * pam_regex/pam_regex.c (make_str): Moved to ../common.c * pam_sql/pam_sql.c (verify_user_pass): static 2006-09-06 Sergey Poznyakoff * configure.ac: New option --without-sql * doc/pam-modules.texi: Updated * common.c: Moved here syslog-reporting and debugging functions * pam_fshadow/Makefile.am (AM_CPPFLAGS): Define MODULE_NAME * pam_log/Makefile.am: Likewise * pam_regex/Makefile.am: Likewise * pam_fshadow/pam_fshadow.c: Update * pam_regex/pam_regex.c: Update * pam_sql/pam_sql.c: Update * pam_sql/pam_mysql.c (sql_expand_query): Bugfix * pam_sql/pam_pgsql.c (sql_expand_query): Bugfix * pam_log/pam_log.c: Implemented 2006-09-06 Sergey Poznyakoff * acinclude.m4: New file * common.c: New file * pam_log: New directory * pam_log/pam_log.c: New file * pam_log/Makefile.am: New file * pam_log/.cvsignore: New file * pam_sql: New directory * pam_sql/Makefile.am: New file * pam_sql/pam_mysql.c: New file * pam_sql/pam_pgsql.c: New file * pam_sql/pam_sql.c: New file * pam_sql/pam_sql.h: New file * pam_sql/sha1.c: New file * pam_sql/sha1.h: New file * pam_sql/.cvsignore: New file * Makefile.am (SUBDIRS): Add pam_log pam_sql * configure.ac: Add library versioning. Check for libmysqlclient and libpq. Create pam_log/Makefile and pam_sql/Makefile * pam_fshadow/Makefile.am, pam_regex/Makefile.am: Update * pam_fshadow/pam_fshadow.c, pam_regex/pam_regex.c: Include 2006-09-04 Sergey Poznyakoff * pam_regex/pam_regex.c: New option 'user=[arg]' * doc/pam-modules.texi: Update 2005-08-18 Sergey Poznyakoff * autogen.sh: Updated * pam_regex/pam_regex.c: Use stdarg.h (regex): Made const * NEWS: Updated * README: Updated * configure.ac: Change auxiliary directory to build-aux, change version number to 1.0, change bug report address. * doc: New directory * doc/Makefile.am: New file * doc/pam-modules.texi: New file * doc/gendocs_template: New file * doc/fdl.texi: New file * doc/.cvsignore: New file * configure.ac: Add doc/ * Makefile.am: Likewise * pam_fshadow/pam_fshadow.c: Updated copyright statement * pam_regex/pam_regex.c: Likewise 2004-05-27 Sergey Poznyakoff * INSTALL: Removed * Makefile.in: Removed * pam_fshadow/Makefile.in: Removed * pam_regex/Makefile.in: Removed * .cvsignore: New file * pam_fshadow/.cvsignore: New file * pam_regex/.cvsignore: New file * pam_fshadow/pam_fshadow.c: Minor fixes. * README: Updated * autogen.sh: Updated 2004-02-09 Sergey Poznyakoff * Put the two modules in a single packet and imported them to CVS. 2001-09-22 Sergey Poznyakoff First release. Local Variables: mode: change-log version-control: never End: