[linux-pam] pam_unix: make configuration consistent in --enable-static-modules mode
by Dmitry V. Levin
commit 3c69856acf9af74368b789b1ed867b433db0ed02
Author: Dmitry V. Levin <ldv(a)altlinux.org>
Date: Fri Feb 3 00:13:44 2012 +0000
pam_unix: make configuration consistent in --enable-static-modules mode
In --enable-static-modules mode, it was not possible to use "pam_unix"
in PAM config files. Instead, different names had to be used for each
management group: pam_unix_auth, pam_unix_acct, pam_unix_passwd and
pam_unix_session. This change makes pam_unix configuration consistent
with other PAM modules.
* README: Remove the paragraph describing pam_unix distinctions in
--enable-static-modules mode.
* libpam/pam_static_modules.h (_pam_unix_acct_modstruct,
_pam_unix_auth_modstruct, _pam_unix_passwd_modstruct,
_pam_unix_session_modstruct): Remove.
(_pam_unix_modstruct): New pam_module declaration.
* modules/pam_unix/pam_unix_static.h: New file.
* modules/pam_unix/pam_unix_static.c: Likewise.
* modules/pam_unix/Makefile.am (noinst_HEADERS): Add pam_unix_static.h
(pam_unix_la_SOURCES) [STATIC_MODULES]: Add pam_unix_static.c
* modules/pam_unix/pam_unix_acct.c [PAM_STATIC]: Include
pam_unix_static.h
[PAM_STATIC] (_pam_unix_acct_modstruct): Remove.
* modules/pam_unix/pam_unix_auth.c [PAM_STATIC]: Include
pam_unix_static.h
[PAM_STATIC] (_pam_unix_auth_modstruct): Remove.
* modules/pam_unix/pam_unix_passwd.c [PAM_STATIC]: Include
pam_unix_static.h
[PAM_STATIC] (_pam_unix_passwd_modstruct): Remove.
* modules/pam_unix/pam_unix_sess.c [PAM_STATIC]: Include
pam_unix_static.h
[PAM_STATIC] (_pam_unix_session_modstruct): Remove.
Suggested-by: Matveychikov Ilya <i.matveychikov(a)securitycode.ru>
README | 4 ----
libpam/pam_static_modules.h | 10 ++--------
modules/pam_unix/Makefile.am | 6 +++++-
modules/pam_unix/pam_unix_acct.c | 24 +++++++-----------------
modules/pam_unix/pam_unix_auth.c | 25 ++++++++-----------------
modules/pam_unix/pam_unix_passwd.c | 25 +++++++------------------
modules/pam_unix/pam_unix_sess.c | 27 +++++++++------------------
modules/pam_unix/pam_unix_static.c | 23 +++++++++++++++++++++++
modules/pam_unix/pam_unix_static.h | 6 ++++++
9 files changed, 67 insertions(+), 83 deletions(-)
---
diff --git a/README b/README
index 8115914..994dd95 100644
--- a/README
+++ b/README
@@ -52,10 +52,6 @@ build a static libpam including all PAM modules, you have to call:
./configure --enable-static-modules --disable-pie
-In this case you cannot use pam_unix in the PAM config files instead you
-have to use pam_unix_acct, pam_unix_auth, pam_unix_passwd and
-pam_unix_session.
-
To run the build checks with static modules, you need to run the
following command: make -C test check && make check
diff --git a/libpam/pam_static_modules.h b/libpam/pam_static_modules.h
index b1739ed..698989b 100644
--- a/libpam/pam_static_modules.h
+++ b/libpam/pam_static_modules.h
@@ -80,10 +80,7 @@ extern struct pam_module _pam_timestamp_modstruct;
extern struct pam_module _pam_tty_audit_modstruct;
#endif
extern struct pam_module _pam_umask_modstruct;
-extern struct pam_module _pam_unix_acct_modstruct;
-extern struct pam_module _pam_unix_auth_modstruct;
-extern struct pam_module _pam_unix_passwd_modstruct;
-extern struct pam_module _pam_unix_session_modstruct;
+extern struct pam_module _pam_unix_modstruct;
extern struct pam_module _pam_userdb_modstruct;
extern struct pam_module _pam_warn_modstruct;
extern struct pam_module _pam_wheel_modstruct;
@@ -142,10 +139,7 @@ static struct pam_module *static_modules[] = {
&_pam_tty_audit_modstruct,
#endif
&_pam_umask_modstruct,
- &_pam_unix_acct_modstruct,
- &_pam_unix_auth_modstruct,
- &_pam_unix_passwd_modstruct,
- &_pam_unix_session_modstruct,
+ &_pam_unix_modstruct,
&_pam_userdb_modstruct,
&_pam_warn_modstruct,
&_pam_wheel_modstruct,
diff --git a/modules/pam_unix/Makefile.am b/modules/pam_unix/Makefile.am
index ab0d55a..56ed591 100644
--- a/modules/pam_unix/Makefile.am
+++ b/modules/pam_unix/Makefile.am
@@ -34,7 +34,8 @@ pam_unix_la_LIBADD = $(top_builddir)/libpam/libpam.la \
securelib_LTLIBRARIES = pam_unix.la
-noinst_HEADERS = md5.h support.h yppasswd.h bigcrypt.h passverify.h
+noinst_HEADERS = md5.h support.h yppasswd.h bigcrypt.h passverify.h \
+ pam_unix_static.h
sbin_PROGRAMS = unix_chkpwd unix_update
@@ -43,6 +44,9 @@ noinst_PROGRAMS = bigcrypt
pam_unix_la_SOURCES = bigcrypt.c pam_unix_acct.c \
pam_unix_auth.c pam_unix_passwd.c pam_unix_sess.c support.c \
passverify.c yppasswd_xdr.c md5_good.c md5_broken.c
+if STATIC_MODULES
+pam_unix_la_SOURCES += pam_unix_static.c
+endif
bigcrypt_SOURCES = bigcrypt.c bigcrypt_main.c
bigcrypt_CFLAGS = $(AM_CFLAGS)
diff --git a/modules/pam_unix/pam_unix_acct.c b/modules/pam_unix/pam_unix_acct.c
index 2731b8b..8e90cc9 100644
--- a/modules/pam_unix/pam_unix_acct.c
+++ b/modules/pam_unix/pam_unix_acct.c
@@ -52,7 +52,11 @@
/* indicate that the following groups are defined */
-#define PAM_SM_ACCOUNT
+#ifdef PAM_STATIC
+# include "pam_unix_static.h"
+#else
+# define PAM_SM_ACCOUNT
+#endif
#include <security/pam_modules.h>
#include <security/pam_ext.h>
@@ -178,8 +182,8 @@ int _unix_run_verify_binary(pam_handle_t *pamh, unsigned int ctrl,
* account management module.
*/
-PAM_EXTERN int pam_sm_acct_mgmt(pam_handle_t * pamh, int flags,
- int argc, const char **argv)
+int
+pam_sm_acct_mgmt(pam_handle_t *pamh, int flags, int argc, const char **argv)
{
unsigned int ctrl;
const void *void_uname;
@@ -291,17 +295,3 @@ PAM_EXTERN int pam_sm_acct_mgmt(pam_handle_t * pamh, int flags,
return retval;
}
-
-
-/* static module data */
-#ifdef PAM_STATIC
-struct pam_module _pam_unix_acct_modstruct = {
- "pam_unix_acct",
- NULL,
- NULL,
- pam_sm_acct_mgmt,
- NULL,
- NULL,
- NULL,
-};
-#endif
diff --git a/modules/pam_unix/pam_unix_auth.c b/modules/pam_unix/pam_unix_auth.c
index 1379d96..44573e6 100644
--- a/modules/pam_unix/pam_unix_auth.c
+++ b/modules/pam_unix/pam_unix_auth.c
@@ -50,7 +50,11 @@
/* indicate the following groups are defined */
-#define PAM_SM_AUTH
+#ifdef PAM_STATIC
+# include "pam_unix_static.h"
+#else
+# define PAM_SM_AUTH
+#endif
#define _PAM_EXTERN_FUNCTIONS
#include <security/_pam_macros.h>
@@ -98,9 +102,8 @@ setcred_free (pam_handle_t *pamh UNUSED, void *ptr, int err UNUSED)
free (ptr);
}
-
-PAM_EXTERN int pam_sm_authenticate(pam_handle_t * pamh, int flags
- ,int argc, const char **argv)
+int
+pam_sm_authenticate(pam_handle_t *pamh, int flags, int argc, const char **argv)
{
unsigned int ctrl;
int retval, *ret_data = NULL;
@@ -190,7 +193,7 @@ PAM_EXTERN int pam_sm_authenticate(pam_handle_t * pamh, int flags
* warned you. -- AOY
*/
-PAM_EXTERN int
+int
pam_sm_setcred (pam_handle_t *pamh, int flags UNUSED,
int argc UNUSED, const char **argv UNUSED)
{
@@ -213,15 +216,3 @@ pam_sm_setcred (pam_handle_t *pamh, int flags UNUSED,
return retval;
}
-
-#ifdef PAM_STATIC
-struct pam_module _pam_unix_auth_modstruct = {
- "pam_unix_auth",
- pam_sm_authenticate,
- pam_sm_setcred,
- NULL,
- NULL,
- NULL,
- NULL,
-};
-#endif
diff --git a/modules/pam_unix/pam_unix_passwd.c b/modules/pam_unix/pam_unix_passwd.c
index 498a81c..e9059d3 100644
--- a/modules/pam_unix/pam_unix_passwd.c
+++ b/modules/pam_unix/pam_unix_passwd.c
@@ -63,7 +63,11 @@
/* indicate the following groups are defined */
-#define PAM_SM_PASSWORD
+#ifdef PAM_STATIC
+# include "pam_unix_static.h"
+#else
+# define PAM_SM_PASSWORD
+#endif
#include <security/pam_modules.h>
#include <security/pam_ext.h>
@@ -523,9 +527,8 @@ static int _pam_unix_approve_pass(pam_handle_t * pamh
return retval;
}
-
-PAM_EXTERN int pam_sm_chauthtok(pam_handle_t * pamh, int flags,
- int argc, const char **argv)
+int
+pam_sm_chauthtok(pam_handle_t *pamh, int flags, int argc, const char **argv)
{
unsigned int ctrl, lctrl;
int retval;
@@ -823,17 +826,3 @@ PAM_EXTERN int pam_sm_chauthtok(pam_handle_t * pamh, int flags,
return retval;
}
-
-
-/* static module data */
-#ifdef PAM_STATIC
-struct pam_module _pam_unix_passwd_modstruct = {
- "pam_unix_passwd",
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- pam_sm_chauthtok,
-};
-#endif
diff --git a/modules/pam_unix/pam_unix_sess.c b/modules/pam_unix/pam_unix_sess.c
index 72046ea..d137673 100644
--- a/modules/pam_unix/pam_unix_sess.c
+++ b/modules/pam_unix/pam_unix_sess.c
@@ -49,7 +49,11 @@
/* indicate the following groups are defined */
-#define PAM_SM_SESSION
+#ifdef PAM_STATIC
+# include "pam_unix_static.h"
+#else
+# define PAM_SM_SESSION
+#endif
#include <security/_pam_macros.h>
#include <security/pam_modules.h>
@@ -63,8 +67,8 @@
* session module.
*/
-PAM_EXTERN int pam_sm_open_session(pam_handle_t * pamh, int flags,
- int argc, const char **argv)
+int
+pam_sm_open_session(pam_handle_t *pamh, int flags, int argc, const char **argv)
{
char *user_name, *service;
unsigned int ctrl;
@@ -98,8 +102,8 @@ PAM_EXTERN int pam_sm_open_session(pam_handle_t * pamh, int flags,
return PAM_SUCCESS;
}
-PAM_EXTERN int pam_sm_close_session(pam_handle_t * pamh, int flags,
- int argc, const char **argv)
+int
+pam_sm_close_session(pam_handle_t *pamh, int flags, int argc, const char **argv)
{
char *user_name, *service;
unsigned int ctrl;
@@ -127,16 +131,3 @@ PAM_EXTERN int pam_sm_close_session(pam_handle_t * pamh, int flags,
return PAM_SUCCESS;
}
-
-/* static module data */
-#ifdef PAM_STATIC
-struct pam_module _pam_unix_session_modstruct = {
- "pam_unix_session",
- NULL,
- NULL,
- NULL,
- pam_sm_open_session,
- pam_sm_close_session,
- NULL,
-};
-#endif
diff --git a/modules/pam_unix/pam_unix_static.c b/modules/pam_unix/pam_unix_static.c
new file mode 100644
index 0000000..160268c
--- /dev/null
+++ b/modules/pam_unix/pam_unix_static.c
@@ -0,0 +1,23 @@
+#include "config.h"
+
+#ifdef PAM_STATIC
+
+#define static extern
+#define PAM_SM_ACCOUNT
+#define PAM_SM_AUTH
+#define PAM_SM_PASSWORD
+#define PAM_SM_SESSION
+#include "pam_unix_static.h"
+#include <security/pam_modules.h>
+
+struct pam_module _pam_unix_modstruct = {
+ "pam_unix",
+ pam_sm_authenticate,
+ pam_sm_setcred,
+ pam_sm_acct_mgmt,
+ pam_sm_open_session,
+ pam_sm_close_session,
+ pam_sm_chauthtok,
+};
+
+#endif
diff --git a/modules/pam_unix/pam_unix_static.h b/modules/pam_unix/pam_unix_static.h
new file mode 100644
index 0000000..39b05ef
--- /dev/null
+++ b/modules/pam_unix/pam_unix_static.h
@@ -0,0 +1,6 @@
+#define pam_sm_acct_mgmt _pam_unix_sm_acct_mgmt
+#define pam_sm_authenticate _pam_unix_sm_authenticate
+#define pam_sm_setcred _pam_unix_sm_setcred
+#define pam_sm_chauthtok _pam_unix_sm_chauthtok
+#define pam_sm_open_session _pam_unix_sm_open_session
+#define pam_sm_close_session _pam_unix_sm_close_session
12 years, 2 months
[linux-pam] Make --disable-cracklib compatible with --enable-static-modules mode
by Dmitry V. Levin
commit fa1cf8afa8d482753900a1ac8a171b977bf40e15
Author: Dmitry V. Levin <ldv(a)altlinux.org>
Date: Thu Jan 26 22:22:59 2012 +0000
Make --disable-cracklib compatible with --enable-static-modules mode
* configure.in: Define HAVE_LIBCRACK when cracklib is enabled.
* libpam/pam_static_modules.h (static_modules): Guard the use of
_pam_cracklib_modstruct by HAVE_LIBCRACK macro.
configure.in | 5 ++++-
libpam/pam_static_modules.h | 2 ++
2 files changed, 6 insertions(+), 1 deletions(-)
---
diff --git a/configure.in b/configure.in
index 15ff6dc..cba05ee 100644
--- a/configure.in
+++ b/configure.in
@@ -363,8 +363,11 @@ if test x"$WITH_CRACKLIB" != xno ; then
else
LIBCRACK=""
fi
+if test -n "$LIBCRACK"; then
+ AC_DEFINE([HAVE_LIBCRACK], [1], [Define to 1 if you have cracklib.])
+fi
AC_SUBST(LIBCRACK)
-AM_CONDITIONAL([HAVE_LIBCRACK], [test ! -z "$LIBCRACK"])
+AM_CONDITIONAL([HAVE_LIBCRACK], [test -n "$LIBCRACK"])
dnl Look for Linux Auditing library - see documentation
AC_ARG_ENABLE([audit],
diff --git a/libpam/pam_static_modules.h b/libpam/pam_static_modules.h
index 67d8135..b1739ed 100644
--- a/libpam/pam_static_modules.h
+++ b/libpam/pam_static_modules.h
@@ -94,7 +94,9 @@ extern struct pam_module _pam_xauth_modstruct;
static struct pam_module *static_modules[] = {
&_pam_access_modstruct,
+#ifdef HAVE_LIBCRACK
&_pam_cracklib_modstruct,
+#endif
&_pam_debug_modstruct,
&_pam_deny_modstruct,
&_pam_echo_modstruct,
12 years, 2 months
[linux-pam] Add missing includes for types used in the pam_modutil.h.
by Tomáš Mráz
commit 02680528e3b2ee9d156116540caa291cff873d74
Author: Tomas Mraz <tmraz(a)fedoraproject.org>
Date: Fri Feb 10 09:10:10 2012 +0100
Add missing includes for types used in the pam_modutil.h.
* libpam/include/security/pam_modutil.h: Add missing includes for used types.
libpam/include/security/pam_modutil.h | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
---
diff --git a/libpam/include/security/pam_modutil.h b/libpam/include/security/pam_modutil.h
index 317202d..8087ba1 100644
--- a/libpam/include/security/pam_modutil.h
+++ b/libpam/include/security/pam_modutil.h
@@ -47,6 +47,11 @@
#ifndef _SECURITY__PAM_MODUTIL_H
#define _SECURITY__PAM_MODUTIL_H
+#include <sys/types.h>
+#include <pwd.h>
+#include <grp.h>
+#include <shadow.h>
+
#ifdef __cplusplus
extern "C" {
#endif
12 years, 2 months
[linux-pam] Fix compile time errors in --enable-static-modules mode
by Dmitry V. Levin
commit aff021e14203373248e376b4ca013e58074dc7a9
Author: Matveychikov Ilya <i.matveychikov(a)securitycode.ru>
Date: Tue Jan 17 11:16:49 2012 +0400
Fix compile time errors in --enable-static-modules mode
* libpam/pam_static_modules.h (_pam_rhosts_auth_modstruct): Remove
obsolete declaration.
(static_modules): Remove undefined reference to
_pam_rhosts_auth_modstruct.
* modules/pam_pwhistory/opasswd.h: Rename {save,check}_old_password to
{save,check}_old_pass in order to avoid conflicts with pam_unix.
* modules/pam_pwhistory/opasswd.c: Likewise.
* modules/pam_pwhistory/pam_pwhistory.c: Likewise.
* modules/pam_tally2/pam_tally2.c: Rename _pam_tally_modstruct to
_pam_tally2_modstruct.
Signed-off-by: Matveychikov Ilya <i.matveychikov(a)securitycode.ru>
libpam/pam_static_modules.h | 2 --
modules/pam_pwhistory/opasswd.c | 8 ++++----
modules/pam_pwhistory/opasswd.h | 10 +++++-----
modules/pam_pwhistory/pam_pwhistory.c | 12 ++++++------
modules/pam_tally2/pam_tally2.c | 2 +-
5 files changed, 16 insertions(+), 18 deletions(-)
---
diff --git a/libpam/pam_static_modules.h b/libpam/pam_static_modules.h
index 999adc2..67d8135 100644
--- a/libpam/pam_static_modules.h
+++ b/libpam/pam_static_modules.h
@@ -63,7 +63,6 @@ extern struct pam_module _pam_nologin_modstruct;
extern struct pam_module _pam_permit_modstruct;
extern struct pam_module _pam_pwhistory_modstruct;
extern struct pam_module _pam_rhosts_modstruct;
-extern struct pam_module _pam_rhosts_auth_modstruct;
extern struct pam_module _pam_rootok_modstruct;
extern struct pam_module _pam_securetty_modstruct;
#ifdef WITH_SELINUX
@@ -124,7 +123,6 @@ static struct pam_module *static_modules[] = {
&_pam_permit_modstruct,
&_pam_pwhistory_modstruct,
&_pam_rhosts_modstruct,
- &_pam_rhosts_auth_modstruct,
&_pam_rootok_modstruct,
&_pam_securetty_modstruct,
#ifdef WITH_SELINUX
diff --git a/modules/pam_pwhistory/opasswd.c b/modules/pam_pwhistory/opasswd.c
index f896119..274fdb9 100644
--- a/modules/pam_pwhistory/opasswd.c
+++ b/modules/pam_pwhistory/opasswd.c
@@ -113,8 +113,8 @@ compare_password(const char *newpass, const char *oldpass)
/* Check, if the new password is already in the opasswd file. */
int
-check_old_password (pam_handle_t *pamh, const char *user,
- const char *newpass, int debug)
+check_old_pass (pam_handle_t *pamh, const char *user,
+ const char *newpass, int debug)
{
int retval = PAM_SUCCESS;
FILE *oldpf;
@@ -209,8 +209,8 @@ check_old_password (pam_handle_t *pamh, const char *user,
}
int
-save_old_password (pam_handle_t *pamh, const char *user, uid_t uid,
- const char *oldpass, int howmany, int debug UNUSED)
+save_old_pass (pam_handle_t *pamh, const char *user, uid_t uid,
+ const char *oldpass, int howmany, int debug UNUSED)
{
char opasswd_tmp[] = TMP_PASSWORDS_FILE;
struct stat opasswd_stat;
diff --git a/modules/pam_pwhistory/opasswd.h b/modules/pam_pwhistory/opasswd.h
index e8a2013..db3e656 100644
--- a/modules/pam_pwhistory/opasswd.h
+++ b/modules/pam_pwhistory/opasswd.h
@@ -36,10 +36,10 @@
#ifndef __OPASSWD_H__
#define __OPASSWD_H__
-extern int check_old_password (pam_handle_t *pamh, const char *user,
- const char *newpass, int debug);
-extern int save_old_password (pam_handle_t *pamh, const char *user,
- uid_t uid, const char *oldpass,
- int howmany, int debug);
+extern int check_old_pass (pam_handle_t *pamh, const char *user,
+ const char *newpass, int debug);
+extern int save_old_pass (pam_handle_t *pamh, const char *user,
+ uid_t uid, const char *oldpass,
+ int howmany, int debug);
#endif /* __OPASSWD_H__ */
diff --git a/modules/pam_pwhistory/pam_pwhistory.c b/modules/pam_pwhistory/pam_pwhistory.c
index 9b58895..4c582bc 100644
--- a/modules/pam_pwhistory/pam_pwhistory.c
+++ b/modules/pam_pwhistory/pam_pwhistory.c
@@ -168,15 +168,15 @@ pam_sm_chauthtok (pam_handle_t *pamh, int flags, int argc, const char **argv)
if (spw == NULL)
return PAM_USER_UNKNOWN;
- retval = save_old_password (pamh, user, pwd->pw_uid, spw->sp_pwdp,
- options.remember, options.debug);
+ retval = save_old_pass (pamh, user, pwd->pw_uid, spw->sp_pwdp,
+ options.remember, options.debug);
if (retval != PAM_SUCCESS)
return retval;
}
else
{
- retval = save_old_password (pamh, user, pwd->pw_uid, pwd->pw_passwd,
- options.remember, options.debug);
+ retval = save_old_pass (pamh, user, pwd->pw_uid, pwd->pw_passwd,
+ options.remember, options.debug);
if (retval != PAM_SUCCESS)
return retval;
}
@@ -208,8 +208,8 @@ pam_sm_chauthtok (pam_handle_t *pamh, int flags, int argc, const char **argv)
if (options.debug)
pam_syslog (pamh, LOG_DEBUG, "check against old password file");
- if (check_old_password (pamh, user, newpass,
- options.debug) != PAM_SUCCESS)
+ if (check_old_pass (pamh, user, newpass,
+ options.debug) != PAM_SUCCESS)
{
pam_error (pamh,
_("Password has been already used. Choose another."));
diff --git a/modules/pam_tally2/pam_tally2.c b/modules/pam_tally2/pam_tally2.c
index c72d27a..d3d6779 100644
--- a/modules/pam_tally2/pam_tally2.c
+++ b/modules/pam_tally2/pam_tally2.c
@@ -844,7 +844,7 @@ pam_sm_acct_mgmt(pam_handle_t *pamh, int flags UNUSED,
/* static module data */
-struct pam_module _pam_tally_modstruct = {
+struct pam_module _pam_tally2_modstruct = {
MODULE_NAME,
#ifdef PAM_SM_AUTH
pam_sm_authenticate,
12 years, 2 months
[linux-pam] Fix SUBDIRS for --enable-static-modules mode
by Dmitry V. Levin
commit 9e85d7033d3c24f5fd63ecde172b92e61f864844
Author: Dmitry V. Levin <ldv(a)altlinux.org>
Date: Thu Jan 26 22:24:21 2012 +0000
Fix SUBDIRS for --enable-static-modules mode
There is no way to build "modules" subdirectory before "libpam" anyway.
In STATIC_MODULES mode, "libpam" subdirectory must be built twice to
produce a usable libpam.a without undefined references to multiple
_pam_*_modstruct symbols.
* Makefile.am: Use default SUBDIRS in STATIC_MODULES mode.
Makefile.am | 4 ----
1 files changed, 0 insertions(+), 4 deletions(-)
---
diff --git a/Makefile.am b/Makefile.am
index ca5f7f6..3db4e37 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -4,11 +4,7 @@
AUTOMAKE_OPTIONS = 1.9 gnu dist-bzip2 check-news
-if STATIC_MODULES
-SUBDIRS = modules libpam libpamc libpam_misc tests po conf doc examples xtests
-else
SUBDIRS = libpam tests libpamc libpam_misc modules po conf doc examples xtests
-endif
CLEANFILES = *~
12 years, 2 months