# ChangeLog for sys-libs/pam
# Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/sys-libs/pam/ChangeLog,v 1.363 2015/07/23 09:34:56 ago Exp $

  23 Jul 2015; Agostino Sarubbo <ago@gentoo.org> pam-1.2.1.ebuild:
  Stable for sparc, wrt bug #553302

  23 Jul 2015; Agostino Sarubbo <ago@gentoo.org> pam-1.2.1.ebuild:
  Stable for ppc, wrt bug #553302

  17 Jul 2015; Markus Meier <maekke@gentoo.org> pam-1.2.1.ebuild:
  arm stable, bug #553302

  17 Jul 2015; Mikle Kolyada <zlogene@gentoo.org> pam-1.2.1.ebuild:
  ia64 stable wrt bug #553302

  15 Jul 2015; Mikle Kolyada <zlogene@gentoo.org> pam-1.2.1.ebuild:
  x86 stable wrt bug #553302

  15 Jul 2015; Jeroen Roovers <jer@gentoo.org> pam-1.2.1.ebuild:
  Stable for HPPA (bug #553302).

  14 Jul 2015; Tobias Klausmann <klausman@gentoo.org> pam-1.2.1.ebuild:
  Stable on alpha, bug 553302

  14 Jul 2015; Jeroen Roovers <jer@gentoo.org> pam-1.2.1.ebuild:
  Stable for PPC64 (bug #553302).

  13 Jul 2015; Mikle Kolyada <zlogene@gentoo.org> pam-1.2.1.ebuild:
  amd64 stable wrt bug #553302

*pam-1.2.1-r1 (13 Jul 2015)

  13 Jul 2015; Mike Frysinger <vapier@gentoo.org> +pam-1.2.1-r1.ebuild:
  Add support for using filesystem caps instead of setuid w/unix_chkpwd; fix by
  Samuel Tan via Chromium OS.

*pam-1.2.1 (07 Jul 2015)

  07 Jul 2015; Mike Frysinger <vapier@gentoo.org> +pam-1.2.1.ebuild:
  Version bump #553302 by Agostino Sarubbo.

  21 May 2015; Mike Frysinger <vapier@gentoo.org> pam-1.2.0.ebuild:
  Unset $BROWSER to avoid random xml build failures #549684 by Juergen Rose.

*pam-1.2.0 (17 May 2015)

  17 May 2015; Mike Frysinger <vapier@gentoo.org> +pam-1.2.0.ebuild:
  Version bump #549120 by teidakankan.

  17 May 2015; Mike Frysinger <vapier@gentoo.org>
  files/pam-1.1.8-CVE-2013-7041.patch, files/pam-1.1.8-CVE-2014-2583.patch:
  add urls to gentoo reports

*pam-1.1.8-r3 (17 May 2015)

  17 May 2015; Mike Frysinger <vapier@gentoo.org>
  +files/pam-1.1.8-CVE-2013-7041.patch, +files/pam-1.1.8-CVE-2014-2583.patch,
  +pam-1.1.8-r3.ebuild:
  Respect USE=pie #459784 by Agostino Sarubbo.  Change ISA dir to "." #464016 by
  Michał Górny.  Fix from upstream for password case checks #493432 by Agostino
  Sarubbo.  Fix from upstream for timestamp handling #505604 by Agostino
  Sarubbo.  Install docs to the right path #533332 by Chris Mayo.

  27 Oct 2014; Mike Frysinger <vapier@gentoo.org> pam-1.1.8-r2.ebuild:
  Mark arm64/m68k/s390/sh stable.

  15 Sep 2014; Agostino Sarubbo <ago@gentoo.org> pam-1.1.8-r2.ebuild:
  Stable for sparc, wrt bug #512012

  13 Sep 2014; Markus Meier <maekke@gentoo.org> pam-1.1.8-r2.ebuild:
  arm stable, bug #512012

  25 Aug 2014; Agostino Sarubbo <ago@gentoo.org> pam-1.1.8-r2.ebuild:
  Stable for alpha, wrt bug #512012

  23 Aug 2014; Agostino Sarubbo <ago@gentoo.org> pam-1.1.8-r2.ebuild:
  Stable for ia64, wrt bug #512012

  21 Aug 2014; Agostino Sarubbo <ago@gentoo.org> pam-1.1.8-r2.ebuild:
  Stable for ppc64, wrt bug #512012

  07 Aug 2014; Jeroen Roovers <jer@gentoo.org> pam-1.1.8-r2.ebuild:
  Stable for HPPA (bug #512012).

  28 Jul 2014; Agostino Sarubbo <ago@gentoo.org> pam-1.1.8-r2.ebuild:
  Stable for ppc, wrt bug #512012

  23 Jul 2014; Agostino Sarubbo <ago@gentoo.org> pam-1.1.8-r2.ebuild:
  Stable for x86, wrt bug #512012

  22 Jul 2014; Agostino Sarubbo <ago@gentoo.org> pam-1.1.8-r2.ebuild:
  Stable for amd64, wrt bug #512912

  19 Jun 2014; Michał Górny <mgorny@gentoo.org> pam-1.1.8-r2.ebuild:
  Update dependencies to require guaranteed EAPI=5 or multilib ebuilds, bug
  #513718.

  03 Jun 2014; Michał Górny <mgorny@gentoo.org> pam-1.1.8-r2.ebuild:
  Add missing MULTILIB_USEDEP on flex.

*pam-1.1.8-r2 (30 May 2014)

  30 May 2014; Michał Górny <mgorny@gentoo.org> +pam-1.1.8-r2.ebuild:
  Enable multilib support.

*pam-1.1.8-r1 (08 May 2014)

  08 May 2014; Mike Frysinger <vapier@gentoo.org>
  +files/pam-1.1.8-doc-install.patch, +pam-1.1.8-r1.ebuild:
  Fix docs install #473650 by Martin von Gagern.

  18 Jan 2014; Mike Frysinger <vapier@gentoo.org> pam-1.1.6-r2.ebuild,
  pam-1.1.8.ebuild:
  Add arm64 love.

  21 Dec 2013; Diego E. Pettenò <flameeyes@gentoo.org> -pam-1.1.7.ebuild:
  Remove old.

*pam-1.1.8 (20 Dec 2013)

  20 Dec 2013; Diego E. Pettenò <flameeyes@gentoo.org> +pam-1.1.8.ebuild:
  Version bump, sorry for the delay.

*pam-1.1.7 (12 Sep 2013)

  12 Sep 2013; Diego E. Pettenò <flameeyes@gentoo.org> +pam-1.1.7.ebuild,
  -pam-1.1.6-r4.ebuild:
  Version bump.

  05 Jun 2013; Mike Frysinger <vapier@gentoo.org> metadata.xml:
  Add upstream CPE tag (security info) from ChromiumOS.

  01 Mar 2013; Agostino Sarubbo <ago@gentoo.org> pam-1.1.6-r2.ebuild:
  Stable for sh, wrt bug #454664

*pam-1.1.6-r4 (28 Feb 2013)

  28 Feb 2013; Diego E. Pettenò <flameeyes@gentoo.org> +pam-1.1.6-r4.ebuild,
  -pam-1.1.6-r3.ebuild:
  Fix build on non-multilib systems, should close bug #459536.

*pam-1.1.6-r3 (27 Feb 2013)

  27 Feb 2013; Diego E. Pettenò <flameeyes@gentoo.org> +pam-1.1.6-r3.ebuild:
  Add new ebuild using autotools-utils to muse moving to multilib.

  20 Feb 2013; Agostino Sarubbo <ago@gentoo.org> pam-1.1.6-r2.ebuild:
  Stable for s390, wrt bug #454664

  06 Feb 2013; Agostino Sarubbo <ago@gentoo.org> pam-1.1.6-r2.ebuild:
  Stable for sparc, wrt bug #454664

  06 Feb 2013; Jeroen Roovers <jer@gentoo.org> pam-1.1.6-r2.ebuild:
  Stable for HPPA (bug #454664).

  04 Feb 2013; Agostino Sarubbo <ago@gentoo.org> pam-1.1.6-r2.ebuild:
  Stable for alpha, wrt bug #454664

  03 Feb 2013; Agostino Sarubbo <ago@gentoo.org> pam-1.1.6-r2.ebuild:
  Stable for ia64, wrt bug #454664

  03 Feb 2013; Agostino Sarubbo <ago@gentoo.org> pam-1.1.6-r2.ebuild:
  Stable for arm, wrt bug #454664

  31 Jan 2013; Agostino Sarubbo <ago@gentoo.org> pam-1.1.6-r2.ebuild:
  Stable for ppc, wrt bug #454664

  31 Jan 2013; Agostino Sarubbo <ago@gentoo.org> pam-1.1.6-r2.ebuild:
  Stable for ppc64, wrt bug #454664

*pam-1.1.6-r2 (31 Jan 2013)

  31 Jan 2013; Diego E. Pettenò <flameeyes@gentoo.org> +pam-1.1.6-r2.ebuild,
  -pam-1.1.6-r1.ebuild:
  Revbump (to stable as well) to make sure that the sepermit path is correct at
  install time. Thanks Agostino for catching the brainfreeze there. Also only
  install the tmpfiles.d file if selinux USE flag is enabled. Remove redundant
  disable-dependency-tracking.

  30 Jan 2013; Agostino Sarubbo <ago@gentoo.org> pam-1.1.6-r1.ebuild:
  Stable for x86, wrt bug #454664

  30 Jan 2013; Agostino Sarubbo <ago@gentoo.org> pam-1.1.6-r1.ebuild:
  Stable for amd64, wrt bug #454664

*pam-1.1.6-r1 (30 Jan 2013)

  30 Jan 2013; Diego E. Pettenò <flameeyes@gentoo.org> +pam-1.1.6-r1.ebuild,
  -pam-1.1.6.ebuild:
  Finally close bug #451068 by using /run/sepermit directly, and installing a
  tmpfiles.d file for it to be re-created at boot time.

  07 Oct 2012; Diego E. Pettenò <flameeyes@gentoo.org>
  +files/Linux-PAM-1.1.6+glibc-2.16.patch, pam-1.1.6.ebuild:
  Add a patch to fix building with USE=selinux and glibc 2.16. Thanks to Anarchy
  for report and patch.

  17 Aug 2012; Diego E. Pettenò <flameeyes@gentoo.org>
  +files/Linux-PAM-1.1.6-destdir.patch, pam-1.1.6.ebuild:
  Restore documentation install and fix installation of pam_namespace.

*pam-1.1.6 (17 Aug 2012)

  17 Aug 2012; Diego E. Pettenò <flameeyes@gentoo.org> +pam-1.1.6.ebuild:
  Version bump. Documentation is not installed right now.

  16 Jul 2012; Jory A. Pratt <anarchy@gentoo.org>
  files/Linux-PAM-1.1.5+glibc-2.16.patch:
  Additional fixup for glibc-2.16

  05 Jul 2012; Diego E. Pettenò <flameeyes@gentoo.org>
  +files/Linux-PAM-1.1.5+glibc-2.16.patch, -pam-1.1.3.ebuild, pam-1.1.5.ebuild:
  Add patch to build with glibc 2.16. Thanks to Stevan Bajić in bug #424920 for
  the patch. Also remove old version.

  04 May 2012; Jeff Horelick <jdhore@gentoo.org> pam-1.1.5.ebuild:
  dev-util/pkgconfig -> virtual/pkgconfig

  25 Nov 2011; Kacper Kowalik <xarthisius@gentoo.org> pam-1.1.5.ebuild:
  ppc64 stable wrt #388431

  06 Nov 2011; Brent Baude <ranger@gentoo.org> pam-1.1.5.ebuild:
  Marking pam-1.1.5 ppc for bug 388431

  31 Oct 2011; Diego E. Pettenò <flameeyes@gentoo.org> -pam-1.1.4.ebuild,
  pam-1.1.5.ebuild:
  Remove 1.1.4 version; change HOMEPAGE for 1.1.5.

  29 Oct 2011; Raúl Porcel <armin76@gentoo.org> pam-1.1.5.ebuild:
  alpha/arm/ia64/m68k/s390/sh/sparc/x86 stable wrt #388431

  28 Oct 2011; Jeroen Roovers <jer@gentoo.org> pam-1.1.5.ebuild:
  Stable for HPPA (bug #388431).

  27 Oct 2011; Markos Chandras <hwoarang@gentoo.org> pam-1.1.5.ebuild:
  Stable on amd64 wrt bug #388431

*pam-1.1.5 (25 Oct 2011)

  25 Oct 2011; Diego E. Pettenò <flameeyes@gentoo.org> +pam-1.1.5.ebuild:
  Version bump.

  23 Oct 2011; Raúl Porcel <armin76@gentoo.org> pam-1.1.4.ebuild:
  alpha/ia64/m68k/s390/sh/sparc stable wrt #386325

  17 Oct 2011; Markus Meier <maekke@gentoo.org> pam-1.1.4.ebuild:
  arm stable, bug #386325

  13 Oct 2011; Pawel Hajdan jr <phajdan.jr@gentoo.org> pam-1.1.4.ebuild:
  x86 stable wrt bug #386325

  11 Oct 2011; Jeroen Roovers <jer@gentoo.org> pam-1.1.4.ebuild:
  Stable for HPPA (bug #386325).

  09 Oct 2011; Markos Chandras <hwoarang@gentoo.org> pam-1.1.4.ebuild:
  Stable on amd64 wrt bug #386325

*pam-1.1.4 (02 Sep 2011)

  02 Sep 2011; Diego E. Pettenò <flameeyes@gentoo.org> -pam-1.1.3-r1.ebuild,
  -files/Linux-PAM-1.1.3-nis.patch, +pam-1.1.4.ebuild:
  Version bump; remove 1.1.3-r1 since the patch is integrated with .4 and that
  is going to be the stable candidate. Closes bug #381485.

  14 Jun 2011; Diego E. Pettenò <flameeyes@gentoo.org> pam-1.1.3-r1.ebuild:
  Drop REQUIRED_USE as selinux support is still built fine without nis.

  14 Jun 2011; Diego E. Pettenò <flameeyes@gentoo.org>
  files/Linux-PAM-1.1.3-nis.patch:
  Improve patch to avoid warnings and build failures with USE=nis; thanks to
  Justin in bug #371555.

  13 Jun 2011; Diego E. Pettenò <flameeyes@gentoo.org> pam-1.1.3.ebuild:
  Remove autotools inherit from old ebuild.

*pam-1.1.3-r1 (13 Jun 2011)

  13 Jun 2011; Diego E. Pettenò <flameeyes@gentoo.org> +pam-1.1.3-r1.ebuild,
  +files/Linux-PAM-1.1.3-nis.patch:
  Patch Linux-PAM to implement --disable-nis; wire it to the nis USE flag
  (disabled by default), and make sure that if using glibc, either libtirpc
  (preferred) or an older glibc is used with that USE flag; note that selinux
  support seems to require rpc support as well (needs to be tested, forcing the
  requirement to avoid breaking setup for now).

  07 Apr 2011; Ulrich Mueller <ulm@gentoo.org> pam-1.1.3.ebuild:
  Don't PROVIDE virtual/pam and add blocker against openpam, bug 358903.

  30 Dec 2010; Diego E. Pettenò <flameeyes@gentoo.org> pam-1.1.3.ebuild:
  Remove the libtool workarounds as it can from time to time cause rpath
  issues. Bug #350138 by Dan Wallis.

  12 Dec 2010; Diego E. Pettenò <flameeyes@gentoo.org> pam-1.1.3.ebuild,
  -files/Linux-PAM-1.1.3-intralinking.patch:
  Move the intralinking patch on the mirrors, I shouldn't have been able to
  commit this in the first place.

  12 Dec 2010; Diego E. Pettenò <flameeyes@gentoo.org> pam-1.1.3.ebuild,
  +files/Linux-PAM-1.1.3-intralinking.patch:
  Hack pam ebuild so that it can properly build when using ROOT (as experienced
  with ChromiumOS build systems).

  20 Nov 2010; Diego E. Pettenò <flameeyes@gentoo.org>
  -files/Linux-PAM-0.99.8.1-xtests.patch, -files/Linux-PAM-1.1.0-uclibc.patch,
  -pam-1.1.1-r2.ebuild, -files/Linux-PAM-1.1.1+berkdb-5.patch,
  -files/Linux-PAM-1.1.1-gentoodb.patch,
  -files/Linux-PAM-1.1.1-pam_tally2-mode.patch,
  -files/Linux-PAM-1.1.1-xcrypt.patch:
  Cleanup old version and required patches.

  20 Nov 2010; Raúl Porcel <armin76@gentoo.org> pam-1.1.3.ebuild:
  ia64/m68k/s390/sh/sparc stable wrt #343399

  11 Nov 2010; Diego E. Pettenò <flameeyes@gentoo.org> -pam-1.1.2.ebuild,
  pam-1.1.3.ebuild:
  Remove old version no longer needed, fix up the lsof syntax to check for
  services that need to be restarted.

  07 Nov 2010; Constanze Hausner <constanze@gentoo.org> pam-1.1.3.ebuild:
  Added condition for tallylog elog-output, see bug #344499

  03 Nov 2010; Markus Meier <maekke@gentoo.org> pam-1.1.3.ebuild:
  arm stable, bug #343399

  01 Nov 2010; Jeroen Roovers <jer@gentoo.org> pam-1.1.3.ebuild:
  Stable for HPPA PPC (bug #343399).

  01 Nov 2010; Mark Loeser <halcy0n@gentoo.org> pam-1.1.3.ebuild:
  Stable for ppc64; bug #343399

  01 Nov 2010; Tobias Klausmann <klausman@gentoo.org> pam-1.1.3.ebuild:
  Stable on alpha, bug #343399

  01 Nov 2010; Pawel Hajdan jr <phajdan.jr@gentoo.org> pam-1.1.3.ebuild:
  x86 stable wrt security bug #343399

  31 Oct 2010; Markos Chandras <hwoarang@gentoo.org> pam-1.1.3.ebuild:
  Stable on amd64 wrt bug #343399

*pam-1.1.3 (30 Oct 2010)

  30 Oct 2010; Diego E. Pettenò <flameeyes@gentoo.org>
  -files/Linux-PAM-1.0.2-noyp.patch, -pam-1.1.0.ebuild,
  -files/Linux-PAM-1.1.0-debug.patch, -files/Linux-PAM-1.1.0-nonls.patch,
  -files/Linux-PAM-1.1.0-xcrypt.patch, +pam-1.1.3.ebuild:
  Cleanup old version no longer relevant (and remove four patches); version
  bump with security fixes (bug #343399), also don't require autotools
  rebuild any longer since all our patches are merged.

  25 Oct 2010; Jeroen Roovers <jer@gentoo.org> pam-1.1.2.ebuild:
  Stable for HPPA (bug #341121).

  24 Oct 2010; Markus Meier <maekke@gentoo.org> pam-1.1.2.ebuild:
  arm stable, bug #341121

  24 Oct 2010; Brent Baude <ranger@gentoo.org> pam-1.1.2.ebuild:
  stable ppc, bug 341121

  22 Oct 2010; Christian Faulhammer <fauli@gentoo.org> pam-1.1.2.ebuild:
  stable x86, bug 341121

  22 Oct 2010; Diego E. Pettenò <flameeyes@gentoo.org> pam-1.1.1-r2.ebuild,
  pam-1.1.2.ebuild:
  Fix spelling error, thanks to Brant Gurganus in bug #342099.

  16 Oct 2010; Markos Chandras <hwoarang@gentoo.org> pam-1.1.2.ebuild:
  Stable on amd64 wrt bug #341121

  13 Sep 2010; Joseph Jezak <josejx@gentoo.org> pam-1.1.1-r2.ebuild:
  Marked ppc stable for bug #329931.

  06 Sep 2010; Brent Baude <ranger@gentoo.org> pam-1.1.1-r2.ebuild:
  Marking pam-1.1.1-r2 ppc64 for bug 329931

  05 Sep 2010; Raúl Porcel <armin76@gentoo.org> pam-1.1.1-r2.ebuild:
  alpha/ia64/m68k/s390/sh/sparc stable wrt #329931

*pam-1.1.2 (31 Aug 2010)

  31 Aug 2010; Diego E. Pettenò <flameeyes@gentoo.org> +pam-1.1.2.ebuild:
  Version bump; back to two patches rather than six as upstream merged them.

  21 Aug 2010; Markus Meier <maekke@gentoo.org> pam-1.1.1-r2.ebuild:
  arm stable, bug #329931

  01 Aug 2010; Diego E. Pettenò <flameeyes@gentoo.org> pam-1.1.1-r2.ebuild:
  Add a 'few' more messages at postinst, one warning against common problems
  with long-running software, and and the other about the bugged pam_tally2.

  31 Jul 2010; Markos Chandras <hwoarang@gentoo.org> pam-1.1.1-r2.ebuild:
  Stable on amd64 wrt bug #329931

  27 Jul 2010; Christian Faulhammer <fauli@gentoo.org> pam-1.1.1-r2.ebuild:
  stable x86, bug 329931

  26 Jul 2010; Diego E. Pettenò <flameeyes@gentoo.org> pam-1.1.1-r2.ebuild,
  +files/Linux-PAM-1.1.1-pam_tally2-mode.patch:
  Add patch per bug #329885 Thanks to Hugo Mildenberger.

  22 May 2010; Justin Lecher <jlec@gentoo.org> pam-1.1.1-r2.ebuild:
  Removed ebeep in EAPI=3 ebuilds

  18 May 2010; Diego E. Pettenò <flameeyes@gentoo.org> pam-1.1.1-r2.ebuild,
  +files/Linux-PAM-1.1.1+berkdb-5.patch:
  Add patch to fix building with Berkeley DB 5.0, closes bug #319831. Thanks
  to Lars Wendler for reporting.

  26 Apr 2010; Diego E. Pettenò <flameeyes@gentoo.org>
  -files/Linux-PAM-0.99.7.0-disable-regenerate-man.patch, -pam-1.0.4.ebuild,
  -files/Linux-PAM-1.0.4-fix-tests.patch, pam-1.1.0.ebuild,
  +files/Linux-PAM-1.1.0-xcrypt.patch, -pam-1.1.1.ebuild,
  -pam-1.1.1-r1.ebuild, pam-1.1.1-r2.ebuild,
  +files/Linux-PAM-1.1.1-xcrypt.patch:
  Cleanup old ebuilds and files; add patches to disable libxcrypt automagic
  dependency (bug #317195).

*pam-1.1.1-r2 (06 Apr 2010)

  06 Apr 2010; Jonathan Callen <abcd@gentoo.org> +pam-1.1.1-r2.ebuild:
  Bump to EAPI=3, add prefix keywords in revbump

*pam-1.1.1-r1 (10 Mar 2010)

  10 Mar 2010; Diego E. Pettenò <flameeyes@gentoo.org>
  +pam-1.1.1-r1.ebuild, +files/Linux-PAM-1.1.1-gentoodb.patch, metadata.xml:
  Merge back pam_userdb support into the main PAM ebuild. This time link
  against the shared, installed libraries of Berkeley DB, even though they
  might not be available at boot. Describe berkdb and cracklib USE flags in
  the metadata file.

  24 Jan 2010; Raúl Porcel <armin76@gentoo.org> pam-1.1.0.ebuild:
  ia64/s390/sh/sparc stable wrt #284087

  06 Jan 2010; Ulrich Mueller <ulm@gentoo.org> pam-1.0.4.ebuild,
  pam-1.1.0.ebuild, pam-1.1.1.ebuild:
  Fix LICENSE, "PAM" is the same as "|| ( BSD GPL-2 )".

  27 Dec 2009; Tobias Klausmann <klausman@gentoo.org> pam-1.1.0.ebuild:
  Stable on alpha, bug #284087

  17 Dec 2009; Diego E. Pettenò <flameeyes@gentoo.org>
  +files/Linux-PAM-1.1.0-uclibc.patch, pam-1.1.1.ebuild:
  Add patch to restore building on uClibc.

*pam-1.1.1 (16 Dec 2009)

  16 Dec 2009; Diego E. Pettenò <flameeyes@gentoo.org> +pam-1.1.1.ebuild:
  Version bump, some patches were merged in. Caution to uClibc users since
  the NIS/YP patch doesn't apply, as upstream changed that code quite a bit,
  it should be fixed but be wary anyway.

  26 Nov 2009; Markus Meier <maekke@gentoo.org> pam-1.1.0.ebuild:
  amd64 stable, bug #284087

  20 Oct 2009; Markus Meier <maekke@gentoo.org> pam-1.1.0.ebuild:
  arm stable, bug #284087

  27 Sep 2009; nixnut <nixnut@gentoo.org> pam-1.1.0.ebuild:
  ppc stable #284087

  22 Sep 2009; Jeroen Roovers <jer@gentoo.org> pam-1.1.0.ebuild:
  Stable for HPPA (bug #284087).

  16 Sep 2009; Christian Faulhammer <fauli@gentoo.org> pam-1.1.0.ebuild:
  stable x86, bug 284087

  14 Sep 2009; Tom Gall <tgall@gentoo.org> pam-1.1.0.ebuild:
  stable on ppc64, bug #284087

  21 Jun 2009; Diego E. Pettenò <flameeyes@gentoo.org> pam-1.1.0.ebuild:
  Use a different alternative to avoid applying the disable-regenerate-man
  for now: download the doc tarball and merge it in. This increses the
  downloaded data by 500k and also installs quite a bit more documentation,
  but also solves bug #206166 in a nice way, provide the full documentation
  set and so on. If upstream will provide a --disable-regenerate-doc in the
  future, then I'll add the doc USE flag to disable the extra download, for
  now this will work out, I think.

  21 Jun 2009; Diego E. Pettenò <flameeyes@gentoo.org> pam-1.1.0.ebuild:
  Restore the patch to disable man regeneration, comment it so that there is
  a bug reference too; also comment the xtests patch. Fix the warning for
  broken setups, removing pam_timestamp (which is present again).

  21 Jun 2009; Diego E. Pettenò <flameeyes@gentoo.org> pam-1.1.0.ebuild,
  +files/Linux-PAM-1.1.0-nonls.patch:
  Add a patch to fix building with nls USE flag disabled, see bug #274856.

  20 Jun 2009; Diego E. Pettenò <flameeyes@gentoo.org> pam-1.0.4.ebuild,
  pam-1.1.0.ebuild:
  Shut up a few QA warnings.

*pam-1.1.0 (20 Jun 2009)

  20 Jun 2009; Diego E. Pettenò <flameeyes@gentoo.org> +pam-1.1.0.ebuild,
  +files/Linux-PAM-1.1.0-debug.patch:
  Version bump to new release. Some of the interesting changes: the debug
  USE flag is properly set up this time, we don't patch man regeneration any
  longer (should be fixed upsteram), don't touch the modules' README files
  until install phase, don't error out on pam_timestamp usage, this PAM
  version fixes it. Also drop the update warnings on the split PAM modules.

  20 Jun 2009; Diego E. Pettenò <flameeyes@gentoo.org> -pam-1.0.1.ebuild:
  Remove old version.

  27 Mar 2009; Raúl Porcel <armin76@gentoo.org> pam-1.0.4.ebuild:
  m68k stable, thanks to kolla for testing

  18 Mar 2009; Brent Baude <ranger@gentoo.org> pam-1.0.4.ebuild:
  Marking pam-1.0.4 ppc for bug 261108

  08 Mar 2009; Diego E. Pettenò <flameeyes@gentoo.org> pam-1.0.4.ebuild:
  Remove epam, closes bug #212323.

  07 Mar 2009; Markus Meier <maekke@gentoo.org> pam-1.0.4.ebuild:
  amd64 stable, bug #261108

  06 Mar 2009; Raúl Porcel <armin76@gentoo.org> pam-1.0.4.ebuild:
  alpha/arm/ia64/s390/sh/x86 stable wrt #261108

  05 Mar 2009; Jeroen Roovers <jer@gentoo.org> pam-1.0.4.ebuild:
  Stable for HPPA (bug #261108).

  05 Mar 2009; Ferris McCormick <fmccor@gentoo.org> pam-1.0.4.ebuild:
  Sparc stable --- Bug #261108 --- tests now fixed and pass.

  05 Mar 2009; Diego E. Pettenò <flameeyes@gentoo.org>
  +files/Linux-PAM-1.0.4-fix-tests.patch, -files/other.pamd,
  -files/system-auth.pamd.epam, -pam-0.99.8.1-r1.ebuild, pam-1.0.4.ebuild:
  Fix tests on architectures where pointers have a size different from 8.
  Remove old version.

  04 Mar 2009; Brent Baude <ranger@gentoo.org> pam-1.0.4.ebuild:
  Marking pam-1.0.4 ppc64 for bug 261108

  04 Mar 2009; Peter Alfredsen <loki_val@gentoo.org> pam-1.0.4.ebuild:
  Fix for libtool-1.5*, bug 261167.

  03 Mar 2009; Diego E. Pettenò <flameeyes@gentoo.org>
  pam-0.99.8.1-r1.ebuild:
  De-keyword all arches but mips.

*pam-1.0.4 (03 Mar 2009)

  03 Mar 2009; Diego E. Pettenò <flameeyes@gentoo.org>
  -pam-0.99.9.0.ebuild, -pam-1.0.2.ebuild, -pam-1.0.3.ebuild,
  +pam-1.0.4.ebuild:
  Version bump, cleanup old versions. pam-1.0.4 is stable candidate.

*pam-1.0.3 (10 Dec 2008)

  10 Dec 2008; Diego E. Pettenò <flameeyes@gentoo.org> +pam-1.0.3.ebuild:
  Version bump.

  31 Aug 2008; Diego Pettenò <flameeyes@gentoo.org>
  +files/Linux-PAM-1.0.2-noyp.patch, pam-1.0.2.ebuild:
  Add a patch that checks if the system includes support for NIS. This way
  Linux-PAM 1.0.x can build on uClibc systems. Closes bug #235431.

*pam-1.0.2 (30 Aug 2008)

  30 Aug 2008; Diego Pettenò <flameeyes@gentoo.org> +pam-1.0.2.ebuild:
  Version bump, minor fixes.

  23 Aug 2008; Doug Goldstein <cardoe@gentoo.org> metadata.xml:
  add GLEP 56 USE flag desc from use.local.desc

  31 Jul 2008; Diego Pettenò <flameeyes@gentoo.org> pam-1.0.1.ebuild:
  Some very basic fixes to the econf call: set all the directories at the
  top, provide htmldir as well as docdir (bug #2333360)

  23 Jul 2008; Diego Pettenò <flameeyes@gentoo.org> pam-1.0.1.ebuild:
  Remove --enable-docdir option and use --docdir instead so that
  documentation is installed properly as we want it to be. Thanks to Afrever
  Frehtes Taifersar Arahesis in bug #230774.

  04 Jul 2008; <ricmm@gentoo.org> pam-1.0.1.ebuild:
  Add ~mips, bug #230743

  02 Jul 2008; Diego Pettenò <flameeyes@gentoo.org> pam-1.0.1.ebuild:
  Don't stop on pam_radius usage, but suggest to install the package
  instead, as it's now available.

  21 Jun 2008; Thomas Anderson <gentoofan23@gentoo.org> pam-1.0.1.ebuild:
  amd64 stable, bug #225901

  14 Jun 2008; Tobias Klausmann <klausman@gentoo.org> pam-1.0.1.ebuild:
  Stable on alpha, bug #225901

  14 Jun 2008; nixnut <nixnut@gentoo.org> pam-1.0.1.ebuild:
  Stable on ppc wrt bug 225901

  13 Jun 2008; Raúl Porcel <armin76@gentoo.org> pam-1.0.1.ebuild:
  ia64/sparc stable wrt #225901

  13 Jun 2008; Jeroen Roovers <jer@gentoo.org> pam-1.0.1.ebuild:
  Stable for HPPA (bug #225901).

  12 Jun 2008; Brent Baude <ranger@gentoo.org> pam-1.0.1.ebuild:
  stable ppc64, bug 225905

  11 Jun 2008; Christian Faulhammer <opfer@gentoo.org> pam-1.0.1.ebuild:
  stable x86, bug 225901

*pam-1.0.1 (18 Apr 2008)

  18 Apr 2008; Diego Pettenò <flameeyes@gentoo.org>
  -files/Linux-PAM-1.0.0-set-item.patch, -pam-0.99.9.0-r1.ebuild,
  -pam-0.99.10.0.ebuild, -pam-1.0.0-r1.ebuild, -pam-1.0.0-r2.ebuild,
  +pam-1.0.1.ebuild:
  Version bump, no functional changes but I can do some spring cleaning, and
  it has sr locale support.

  14 Apr 2008; Diego Pettenò <flameeyes@gentoo.org> pam-1.0.0-r2.ebuild:
  Re-add ~ppc, that was added after I copied the ebuild to -r2.

*pam-1.0.0-r2 (14 Apr 2008)

  14 Apr 2008; Diego Pettenò <flameeyes@gentoo.org> +pam-1.0.0-r2.ebuild:
  Revision bump to remove .la files, we don't support static libpam so it's
  unneeded.

  14 Apr 2008; Diego Pettenò <flameeyes@gentoo.org> pam-1.0.0-r1.ebuild:
  Override default sepermitlockdir definition so that it doesn't end in
  /var/lib/run. See bug #217590.

  12 Apr 2008; Tobias Scherbaum <dertobi123@gentoo.org> pam-1.0.0-r1.ebuild:
  Added ~ppc, bug #212437

*pam-1.0.0-r1 (10 Apr 2008)

  10 Apr 2008; Diego Pettenò <flameeyes@gentoo.org>
  +files/Linux-PAM-1.0.0-set-item.patch, -pam-1.0.0.ebuild,
  +pam-1.0.0-r1.ebuild:
  Revision bump to fix bug #216702 and workaround autoconf bug in #217154.

*pam-1.0.0 (05 Apr 2008)

  05 Apr 2008; Diego Pettenò <flameeyes@gentoo.org> +pam-1.0.0.ebuild:
  Version bump to latest release, first 1.x version. Hopefully a stable
  candidate.

  17 Mar 2008; Santiago M. Mola <coldwind@gentoo.org> pam-0.99.10.0.ebuild:
  Re-keyworded ~amd64 wrt bug #210770

  06 Mar 2008; Raúl Porcel <armin76@gentoo.org> pam-0.99.10.0.ebuild:
  Add ~alpha/~ia64 wrt #210770

  05 Mar 2008; Ferris McCormick <fmccor@gentoo.org> pam-0.99.10.0.ebuild:
  Add ~sparc for testing --- Bug #210770 (correct version this time).

  05 Mar 2008; Ferris McCormick <fmccor@gentoo.org> pam-0.99.9.0-r1.ebuild:
  ~sparc for testing --- Bug #210770 --- pam still works for me.

  04 Mar 2008; Brent Baude <ranger@gentoo.org> pam-0.99.10.0.ebuild:
  keyworded ~arch for ppc64, bug 210770

  04 Mar 2008; Christian Faulhammer <opfer@gentoo.org> pam-0.99.10.0.ebuild:
  keyword ~x86 for bug 210770

  03 Mar 2008; Jeroen Roovers <jer@gentoo.org> pam-0.99.10.0.ebuild:
  Marked ~hppa (bug #210770 again).

  03 Mar 2008; Jeroen Roovers <jer@gentoo.org> pam-0.99.9.0-r1.ebuild:
  Marked ~hppa (bug #210770).

*pam-0.99.10.0 (01 Mar 2008)

  01 Mar 2008; Diego Pettenò <flameeyes@gentoo.org> +pam-0.99.10.0.ebuild:
  Version bump.

*pam-0.99.9.0-r1 (19 Feb 2008)

  19 Feb 2008; Diego Pettenò <flameeyes@gentoo.org>
  +pam-0.99.9.0-r1.ebuild:
  New revision that works with the new sys-auth/pambase (and requires it).

  10 Feb 2008; Diego Pettenò <flameeyes@gentoo.org> pam-0.99.8.1-r1.ebuild,
  pam-0.99.9.0.ebuild:
  Remove dependency over pwdb, pam_pwdb is no more present in PAM 0.99, so the
  dependency was bogus.

  01 Feb 2008; Robin H. Johnson <robbat2@gentoo.org> pam-0.99.8.1-r1.ebuild,
  pam-0.99.9.0.ebuild:
  Bug #208389, cosmetic fix for empty /etc/pam.d during early install.

  15 Jan 2008; Diego Pettenò <flameeyes@gentoo.org>
  -files/system-auth.pamd.0.78, -pam-0.78-r5.ebuild:
  Remove pam 0.78.

  13 Jan 2008; Joshua Kinard <kumba@gentoo.org> pam-0.99.9.0.ebuild:
  Marked unstable on mips.

  13 Jan 2008; Joshua Kinard <kumba@gentoo.org> pam-0.99.8.1-r1.ebuild:
  Stable on mips.

  01 Jan 2008; Diego Pettenò <flameeyes@gentoo.org> pam-0.99.9.0.ebuild:
  Check for /etc/pam.d files in $ROOT, add missing flex build-time dependency.
  Fixes bug #203929.

  20 Dec 2007; Diego Pettenò <flameeyes@gentoo.org> pam-0.78-r5.ebuild:
  Remove pam_console USE flag so that it's always disabled.

  24 Nov 2007; Diego Pettenò <flameeyes@gentoo.org> pam-0.99.9.0.ebuild:
  Don't suggest using sys-auth/pam_console anymore, also link the upgrade
  guide when a module is used that has been removed.

  23 Nov 2007; Markus Rothe <corsair@gentoo.org> pam-0.99.9.0.ebuild:
  Stable on ppc64; bug #199693

  21 Nov 2007; nixnut <nixnut@gentoo.org> pam-0.99.9.0.ebuild:
  Stable on ppc wrt bug 199693

  21 Nov 2007; Jeroen Roovers <jer@gentoo.org> pam-0.99.9.0.ebuild:
  Stable for HPPA (bug #199693).

  20 Nov 2007; Raúl Porcel <armin76@gentoo.org> pam-0.99.9.0.ebuild:
  alpha/ia64/sparc stable wrt #199693

  20 Nov 2007; Wulf C. Krueger <philantrop@gentoo.org> pam-0.99.9.0.ebuild:
  Marked stable on amd64 as per bug 199693.

  19 Nov 2007; Dawid Węgliński <cla@gentoo.org> pam-0.99.9.0.ebuild:
  Stable on x86 (bug #199693)

  15 Nov 2007; Diego Pettenò <flameeyes@gentoo.org> pam-0.78-r5.ebuild:
  Drop keywords for all arches but mips, see bug 199193.

  11 Nov 2007; Diego Pettenò <flameeyes@gentoo.org>
  +files/Linux-PAM-0.99.8.1-xtests.patch, pam-0.99.8.1-r1.ebuild,
  pam-0.99.9.0.ebuild:
  Build xtests directory only during make check, finally should fix bug #194275.

  10 Nov 2007; Diego Pettenò <flameeyes@gentoo.org> pam-0.99.8.1-r1.ebuild,
  pam-0.99.9.0.ebuild:
  Depend on glibc 2.4 when tests are enabled, or the tests fail to build. The
  test flag is masked on all the architectures where glibc 2.4 is masked.

  06 Nov 2007; Raúl Porcel <armin76@gentoo.org> pam-0.99.8.1-r1.ebuild:
  alpha stable wrt #196409, thanks to Tobias Klausmann

  01 Nov 2007; Diego Pettenò <flameeyes@gentoo.org> pam-0.99.8.1-r1.ebuild,
  pam-0.99.9.0.ebuild:
  Fix grammar, thanks Mike.

  28 Oct 2007; Olivier Crête <tester@gentoo.org> pam-0.99.8.1-r1.ebuild:
  Stable on amd64 for bug #196409

  28 Oct 2007; nixnut <nixnut@gentoo.org> pam-0.99.8.1-r1.ebuild:
  Stable on ppc wrt bug 196409

  24 Oct 2007; Dawid Węgliński <cla@gentoo.org> pam-0.99.8.1-r1.ebuild:
  Stable on x86 for bug #196409

  24 Oct 2007; Raúl Porcel <armin76@gentoo.org> pam-0.99.8.1-r1.ebuild:
  ia64/sparc stable wrt #196409

  23 Oct 2007; Markus Rothe <corsair@gentoo.org> pam-0.99.8.1-r1.ebuild:
  Stable on ppc64; bug #196409

  20 Oct 2007; Jeroen Roovers <jer@gentoo.org> pam-0.99.8.1-r1.ebuild:
  Stable for HPPA (bug #196409).

*pam-0.99.9.0 (19 Oct 2007)

  19 Oct 2007; Diego Pettenò <flameeyes@gentoo.org> -pam-0.99.8.1.ebuild,
  +pam-0.99.9.0.ebuild:
  Version bump, and remove old version non-stable-target.

*pam-0.99.8.1-r1 (18 Sep 2007)

  18 Sep 2007; Robin H. Johnson <robbat2@gentoo.org>
  +pam-0.99.8.1-r1.ebuild:
  Bug #189669, fix non-deterministic inclusion of libaudit. USE=audit is
  masked on alpha, arm, hppa, ppc64, s390, sh until they have keyworded it per
  bug #184563.

*pam-0.99.8.1 (26 Jul 2007)

  26 Jul 2007; Diego Pettenò <flameeyes@gentoo.org>
  -files/Linux-PAM-0.99.8.0-setlocale.patch, -pam-0.99.8.0-r2.ebuild,
  +pam-0.99.8.1.ebuild:
  Version bump, remove old version and merged patches.

  12 Jul 2007; Diego Pettenò <flameeyes@gentoo.org>
  files/system-auth.pamd.epam:
  Fix typo.

*pam-0.99.8.0-r2 (12 Jul 2007)

  12 Jul 2007; Diego Pettenò <flameeyes@gentoo.org>
  files/system-auth.pamd.epam, -pam-0.99.8.0-r1.ebuild,
  +pam-0.99.8.0-r2.ebuild:
  use_authtok does not have a fallback, so disable that pam_unix call and
  replace with a clean one when not using pam_cracklib.

  12 Jul 2007; Diego Pettenò <flameeyes@gentoo.org> pam-0.78-r5.ebuild:
  Block the split modules to avoid collisions.

  12 Jul 2007; Diego Pettenò <flameeyes@gentoo.org>
  -files/Linux-PAM-0.99.6.3-berkdb.patch, -files/system-auth.pamd.0.99,
  -pam-0.99.7.1.ebuild, -pam-0.99.8.0.ebuild, pam-0.99.8.0-r1.ebuild:
  Don't report pam_chroot as deprecated, as it's now in portage (thanks Ali
  Polatel, hawking). Remove previous 0.99 series, before stabling Linux-PAM we
  need to give time to pam_chroot to settle down a bit at least.

  10 Jul 2007; Diego Pettenò <flameeyes@gentoo.org>
  -files/pam-0.78-inttypes.patch, -files/pam-0.78-xauth-path.patch,
  -files/README.pam_console, -files/pam_env.conf, pam-0.78-r5.ebuild:
  Bump patchlevel, and use patches and extra files from the patchset.

  10 Jul 2007; Diego Pettenò <flameeyes@gentoo.org> -pam-0.78-r3.ebuild:
  Remove old version.

  10 Jul 2007; Diego Pettenò <flameeyes@gentoo.org>
  -files/pam.d-0.99/other, -files/pam.d-0.99/system-auth, +files/other.pamd,
  -files/pam.d/other, -files/pam.d/system-auth,
  +files/system-auth.pamd.0.78, +files/system-auth.pamd.0.99,
  pam-0.78-r3.ebuild, pam-0.78-r5.ebuild, pam-0.99.7.1.ebuild,
  pam-0.99.8.0.ebuild, pam-0.99.8.0-r1.ebuild:
  Reduce the pamd installation code, remove two directories too.

*pam-0.99.8.0-r1 (10 Jul 2007)

  10 Jul 2007; Diego Pettenò <flameeyes@gentoo.org>
  +files/system-auth.pamd.epam, +pam-0.99.8.0-r1.ebuild:
  Add a cracklib USE flag to enable/disable pam_cracklib module building.
  Thanks to the EPAM "syntax", the configuration file installed is updated as
  needed for etc-update.

  08 Jul 2007; Diego Pettenò <flameeyes@gentoo.org> pam-0.99.7.1.ebuild,
  pam-0.99.8.0.ebuild:
  Fix logic of the upgrade path.

  08 Jul 2007; Diego Pettenò <flameeyes@gentoo.org>
  +files/Linux-PAM-0.99.8.0-setlocale.patch, pam-0.99.8.0.ebuild:
  Fix missing locale.h include when nls USE flag is turned off. Thanks
  Christian Heim (phreak) for reporting in bug #184618.

*pam-0.99.8.0 (08 Jul 2007)

  08 Jul 2007; Diego Pettenò <flameeyes@gentoo.org> +pam-0.99.8.0.ebuild:
  Version bump, a similar patch to mine to disable pam_userdb has been merged,
  which makes it easier to split pam_userdb.

  05 Jul 2007; Diego Pettenò <flameeyes@gentoo.org> pam-0.99.7.1.ebuild:
  Fix typo, thanks Jakub.

  04 Jul 2007; Diego Pettenò <flameeyes@gentoo.org> pam-0.99.7.1.ebuild:
  Add some more explicit warnings and errors when using deprecated modules,
  and die if the system is configured to use pam_stack or other modules that
  are no more built and installed, to avoid breaking login on the box.

  02 Jul 2007; Piotr Jaroszyński <peper@gentoo.org> pam-0.99.7.1.ebuild:
  (QA) RESTRICT clean up.

  13 Jun 2007; Raúl Porcel <armin76@gentoo.org> pam-0.99.7.1.ebuild:
  Add ~alpha #152713

  12 May 2007; Joshua Kinard <kumba@gentoo.org> pam-0.78-r5.ebuild:
  Stable on mips.

  26 Mar 2007; Raúl Porcel <armin76@gentoo.org> pam-0.78-r5.ebuild:
  ia64 stable wrt bug 150859

  14 Feb 2007; Chris Gianelloni <wolf31o2@gentoo.org> pam-0.78-r5.ebuild:
  Stable on alpha wrt bug #150859.

  31 Jan 2007; Markus Rothe <corsair@gentoo.org> pam-0.78-r5.ebuild:
  Stable on ppc64; bug #150859

  28 Jan 2007; Joseph Jezak <josejx@gentoo.org> pam-0.78-r5.ebuild:
  Marked ppc stable for bug #150859.

  27 Jan 2007; Jeroen Roovers <jer@gentoo.org> pam-0.78-r5.ebuild:
  Stable for HPPA (bug #150859).

  26 Jan 2007; Jeroen Roovers <jer@gentoo.org> pam-0.99.7.1.ebuild:
  Marked ~hppa (bug #152713).

*pam-0.99.7.1 (24 Jan 2007)

  24 Jan 2007; Diego Pettenò <flameeyes@gentoo.org> -pam-0.99.7.0.ebuild,
  +pam-0.99.7.1.ebuild:
  Version bump, closes security breach, see bug #163631.

  23 Jan 2007; Steve Dibb <beandog@gentoo.org> pam-0.78-r5.ebuild:
  amd64 stable, bug 150859

  23 Jan 2007; Gustavo Zacarias <gustavoz@gentoo.org> pam-0.99.7.0.ebuild:
  Keyworded ~sparc wrt #152713

  23 Jan 2007; Gustavo Zacarias <gustavoz@gentoo.org> pam-0.78-r5.ebuild:
  Stable on sparc wrt #150859

  23 Jan 2007; Christian Faulhammer <opfer@gentoo.org> pam-0.78-r5.ebuild:
  stable x86, bug #150859

  23 Jan 2007; Diego Pettenò <flameeyes@gentoo.org> pam-0.78-r3.ebuild,
  pam-0.78-r5.ebuild:
  Use toolchain-funcs's gen_usr_ldscript. See bug #144529.

*pam-0.99.7.0 (23 Jan 2007)

  23 Jan 2007; Diego Pettenò <flameeyes@gentoo.org>
  -files/Linux-PAM-0.99.6.3-linking.patch,
  -files/Linux-PAM-0.99.6.3-selinux.patch,
  +files/Linux-PAM-0.99.7.0-disable-regenerate-man.patch,
  pam-0.78-r3.ebuild, pam-0.78-r5.ebuild, -pam-0.99.6.3-r2.ebuild,
  +pam-0.99.7.0.ebuild:
  Version bump, fix linking for all modules (huge patch), disable manpage
  regeneration, cuts down the dependencies over docbook stuff, use
  mirror://kernel.

  05 Jan 2007; Diego Pettenò <flameeyes@gentoo.org> pam-0.78-r3.ebuild,
  pam-0.78-r5.ebuild:
  Convert to use elog.

  04 Jan 2007; Diego Pettenò <flameeyes@gentoo.org> pam-0.78-r3.ebuild,
  -pam-0.99.6.3-r1.ebuild:
  Cleanup.

  24 Nov 2006; Markus Rothe <corsair@gentoo.org> pam-0.99.6.3-r1.ebuild,
  pam-0.99.6.3-r2.ebuild:
  Added ~ppc64; bug #152713

*pam-0.99.6.3-r2 (24 Nov 2006)

  24 Nov 2006; Diego Pettenò <flameeyes@gentoo.org>
  +files/Linux-PAM-0.99.6.3-selinux.patch, +pam-0.99.6.3-r2.ebuild:
  Add patch to fix linking on selinux systems. Thanks to Stephen Bennett for
  reporting in bug #156124.

  30 Oct 2006; Diego Pettenò <flameeyes@gentoo.org> pam-0.99.6.3-r1.ebuild:
  Use /usr/lib directory even on non-multilib systems.

  29 Oct 2006; Mike Kelly <pioto@gentoo.org> pam-0.99.6.3-r1.ebuild:
  Add support for the vim-syntax USE flag. Bug #152275.

  29 Oct 2006; Diego Pettenò <flameeyes@gentoo.org> pam-0.99.6.3-r1.ebuild:
  Finally remove the pam_userdb manpage, and rewrite the warning at the end of
  the ebuild as the ebuild is going to be unmasked relatively soon.

  26 Oct 2006; Diego Pettenò <flameeyes@gentoo.org> pam-0.99.6.3-r1.ebuild:
  Remove pam_userdb manpage.

  26 Oct 2006; Diego Pettenò <flameeyes@gentoo.org> ChangeLog:
  Regenerate digest (bug #152838).

  24 Oct 2006; Luca Barbato <lu_zero@gentoo.org> pam-0.99.6.3-r1.ebuild:
  Marked ~ppc

  18 Oct 2006; Diego Pettenò <flameeyes@gentoo.org>
  +files/Linux-PAM-0.99.6.3-linking.patch, pam-0.99.6.3-r1.ebuild:
  Add patch to fix correct linking to libraries.

  04 Oct 2006; Diego Pettenò <flameeyes@gentoo.org> -pam-0.99.5.0.ebuild,
  -pam-0.99.5.0-r1.ebuild, -pam-0.99.6.3.ebuild:
  Remove previous versions.

  04 Oct 2006; Diego Pettenò <flameeyes@gentoo.org> pam-0.99.6.3-r1.ebuild:
  Forwardport also README for single modules.

  04 Oct 2006; Diego Pettenò <flameeyes@gentoo.org> pam-0.99.6.3-r1.ebuild:
  Re-add selinux useflag, forwardporting from 0.99.5.0-r1.

  04 Oct 2006; Diego Pettenò <flameeyes@gentoo.org> pam-0.99.6.3-r1.ebuild:
  Add elibc_FreeBSD to IUSE, and add missing dependencies on some other
  docbook-xml-dtd packages.

*pam-0.99.6.3-r1 (04 Oct 2006)

  04 Oct 2006; Diego Pettenò <flameeyes@gentoo.org>
  +pam-0.99.6.3-r1.ebuild:
  New revision that always disable berkdb.

  03 Oct 2006; Diego Pettenò <flameeyes@gentoo.org>
  +files/Linux-PAM-0.99.6.3-berkdb.patch, pam-0.99.6.3.ebuild:
  Add a patch to disable berkdb support on request, and add berkdb useflag.

*pam-0.99.6.3 (03 Oct 2006)

  03 Oct 2006; Diego Pettenò <flameeyes@gentoo.org> +pam-0.99.6.3.ebuild:
  Update to a recent version, by reverting the change in 0.99.5.0-r1 (fedora
  patches, selinux useflag, berkdb, dependencies check). Berkeley DB support
  should be moved out of this ebuild, and disabled here; selinux useflag has
  to be added back by selinux team; the dependencies check should be outside
  the scope of this single ebuild.

  06 Sep 2006; Chris PeBenito <pebenito@gentoo.org> pam-0.78-r5.ebuild:
  Fix gcc 4.1 compile issue with SELinux patch.

  07 Jul 2006; Diego Pettenò <flameeyes@gentoo.org> pam-0.99.5.0-r1.ebuild:
  Fix dependecies, use econf and emake for berkdb copy, don't use the
  deprecated gnuconfig eclass.

  07 Jul 2006; Martin Schlemmer <azarah@gentoo.org> pam-0.99.5.0-r1.ebuild:
  Move removing unneeded modules before dependency check.

  04 Jul 2006; Martin Schlemmer <azarah@gentoo.org> pam-0.99.5.0-r1.ebuild:
  Fix ghostscript depend.

  01 Jul 2006; Martin Schlemmer <azarah@gentoo.org> pam-0.99.5.0.ebuild,
  pam-0.99.5.0-r1.ebuild:
  Set /sbin/unix_chkpwd suid, else user programs cannot auth.

  01 Jul 2006; Martin Schlemmer <azarah@gentoo.org> +files/pam.d-0.99/other,
  +files/pam.d-0.99/system-auth, pam-0.99.5.0.ebuild,
  pam-0.99.5.0-r1.ebuild:
  Use try_first_pass instead of likeauth, as it seems missing from pam-0.99's
  pam_unix module.

  01 Jul 2006; Martin Schlemmer <azarah@gentoo.org> Manifest:
  Repoman booboo on Manifest.

*pam-0.99.5.0-r1 (01 Jul 2006)

  01 Jul 2006; Martin Schlemmer <azarah@gentoo.org> +pam-0.99.5.0-r1.ebuild:
  Build pam_userdb against internal db again. Add module checks that no
  dependencies are in /usr lib back. Enable building of documentation. Varios
  patches from Fedora.

*pam-0.99.5.0 (28 Jun 2006)

  28 Jun 2006; Diego Pettenò <flameeyes@gentoo.org>
  -files/Linux-PAM-0.99.3.0-prelude.patch, -pam-0.99.4.0.ebuild,
  +pam-0.99.5.0.ebuild:
  Bump to latest version, prelude is now fixed upstream.

  20 Jun 2006; Stefan Schweizer <genstef@gentoo.org> pam-0.99.4.0.ebuild:
  Add ~x86

  19 Jun 2006; Diego Pettenò <flameeyes@gentoo.org>
  -files/pam-0.99.3.0-parallel-make.patch, -pam-0.99.3.0.ebuild,
  pam-0.99.4.0.ebuild:
  Remove 0.99.3.0, mark ~amd64 (under package.mask) the new version.

*pam-0.99.4.0 (09 Jun 2006)

  09 Jun 2006; Diego Pettenò <flameeyes@gentoo.org> +pam-0.99.4.0.ebuild:
  Bump to latest version, still masked.

  23 May 2006; Diego Pettenò <flameeyes@gentoo.org>
  +files/pam-0.99.3.0-parallel-make.patch, pam-0.99.3.0.ebuild:
  Add patch from Martin Schlemmer (azarah) to fix bug #134100 (parallel make
  issues).

  21 Apr 2006; Diego Pettenò <flameeyes@gentoo.org> files/pam_env.conf:
  Remove extra spurious \. Thanks to Allan Gottlieb in bug #70670.

  21 Apr 2006; Diego Pettenò <flameeyes@gentoo.org>
  files/README.pam_console:
  Fix path for pam_console_apply. Thanks to Thomas Petersen in bug #107970.

  21 Apr 2006; Diego Pettenò <flameeyes@gentoo.org> pam-0.78-r3.ebuild,
  pam-0.78-r5.ebuild:
  Move DESCRIPTION after inherit line. Thanks to Alexandru Toma in bug #114010.

  21 Apr 2006; Diego Pettenò <flameeyes@gentoo.org>
  -files/pam-0.77-console-reset.patch, -pam-0.77-r6.ebuild,
  -pam-0.77-r8.ebuild, -pam-0.78-r2.ebuild, -pam-0.78-r4.ebuild:
  Drop old versions.

  21 Apr 2006; Diego Pettenò <flameeyes@gentoo.org> pam-0.99.3.0.ebuild:
  Tweak dependencies a bit.

*pam-0.99.3.0 (21 Apr 2006)

  21 Apr 2006; Diego Pettenò <flameeyes@gentoo.org>
  +files/Linux-PAM-0.99.3.0-prelude.patch, +pam-0.99.3.0.ebuild:
  Add first try to get a newer version of Linux-PAM in the tree, version
  0.99.3.0. Notable regression: no RedHat patches, thus no pam_stack.so. This
  might change in future revision. Not for production systems.

*pam-0.78-r5 (05 Mar 2006)

  05 Mar 2006; Chris PeBenito <pebenito@gentoo.org> +pam-0.78-r5.ebuild:
  Bump to add SELinux seuser support.

*pam-0.78-r4 (25 Jan 2006)

  25 Jan 2006; Diego Pettenò <flameeyes@gentoo.org>
  +files/pam-0.78-xauth-path.patch, +pam-0.78-r4.ebuild:
  Add patch to fix xauth path (bug #111307).

  12 Jan 2006; Diego Pettenò <flameeyes@gentoo.org>
  +files/pam-0.78-inttypes.patch, pam-0.78-r3.ebuild:
  Add patch to fix building on ppc64 with GCC4, by replacing __u8 and __u32
  with standard types uint8_t and uint32_t. Closes bug #107430.

*pam-0.78-r3 (26 Oct 2005)

  26 Oct 2005; Chris PeBenito <pebenito@gentoo.org> +pam-0.78-r3.ebuild:
  Add fix for CAN-2005-2977. This is specific to the SELinux users. See bug
  #109485.

  09 Oct 2005; Diego Pettenò <flameeyes@gentoo.org> metadata.xml:
  Add pam-bugs email address as maintainer.

  23 Aug 2005; Diego Pettenò <flameeyes@gentoo.org> pam-0.78-r2.ebuild:
  Don't use cp -a.

  09 Aug 2005; Aaron Walker <ka0ttic@gentoo.org> pam-0.78-r2.ebuild:
  Stable on mips.

  01 Aug 2005; Martin Schlemmer <azarah@gentoo.org> files/pam.d/system-auth:
  Add some password sanity checking to system-auth.

  28 Jul 2005; Seemant Kulleen <seemant@gentoo.org> -pam-0.77.ebuild,
  -pam-0.77-r1.ebuild, -pam-0.77-r2.ebuild, -pam-0.77-r3.ebuild,
  -pam-0.77-r4.ebuild, -pam-0.77-r7.ebuild, -pam-0.78.ebuild,
  -pam-0.78-r1.ebuild:
  clean out cruft ebuilds

  19 Jul 2005; Bryan Østergaard <kloeri@gentoo.org> pam-0.78-r2.ebuild:
  Stable on alpha.

  09 Jul 2005; Joseph Jezak <josejx@gentoo.org> pam-0.78-r2.ebuild:
  Marked ppc stable.

  08 Jul 2005; Rene Nussbaumer <killerfox@gentoo.org> pam-0.78-r2.ebuild:
  Stable on hppa.

  08 Jul 2005; Gustavo Zacarias <gustavoz@gentoo.org> pam-0.78-r2.ebuild:
  Stable on sparc

  08 Jul 2005; Gregorio Guidi <greg_g@gentoo.org> files/README.pam_console,
  pam-0.78-r2.ebuild:
  Tweak documentation for pam_console (#31877).

  07 Jul 2005; Markus Rothe <corsair@gentoo.org> pam-0.78-r2.ebuild:
  Stable on ppc64

  07 Jul 2005; Diego Pettenò <flameeyes@gentoo.org> pam-0.78-r2.ebuild:
  Make glib stuff dependant on pam_console useflag. See bug #98190.

  06 Jul 2005; Danny van Dyk <kugelfang@gentoo.org> pam-0.78-r2.ebuild:
  Marked stable on amd64.

  04 Jul 2005; Martin Schlemmer <azarah@gentoo.org> pam-0.78-r2.ebuild:
  Add --host to glib/db's configure lines, bug #88439.

  30 Jun 2005; Diego Pettenò <flameeyes@gentoo.org> pam-0.77.ebuild,
  pam-0.77-r1.ebuild, pam-0.77-r2.ebuild, pam-0.77-r3.ebuild,
  pam-0.77-r4.ebuild, pam-0.77-r6.ebuild, pam-0.77-r7.ebuild,
  pam-0.77-r8.ebuild, pam-0.78.ebuild, pam-0.78-r1.ebuild,
  pam-0.78-r2.ebuild:
  Doesn't count on ${P} for patches as the package is going to be renamed.

  27 Jun 2005; Martin Schlemmer <azarah@gentoo.org> pam-0.78-r2.ebuild:
  Add /usr/lib specifically again, as at least here ldd does not return lib64
  in output.

  27 Jun 2005; Martin Schlemmer <azarah@gentoo.org> pam-0.78-r2.ebuild:
  Update cracklib dependencies, bug #85679.

  21 Jun 2005; Danny van Dyk <kugelfang@gentoo.org> pam-0.77-r6.ebuild:
  Fixed BUG #96385 by changing hardcoded libdir in pam_cracklib's Makefile to
  $(get_libdir).

  24 May 2005; Diego Pettenò <flameeyes@gentoo.org> files/pam.d/other,
  files/pam.d/system-auth:
  Removed full path from pam.d files, to fix AMD64 issues.

  22 May 2005; Diego Pettenò <flameeyes@gentoo.org> -files/pam.d/rexec,
  -files/pam.d/rlogin, -files/pam.d/rsh:
  Removed pam.d files for rexec, rlogin and rsh, as they are installed by
  netkit-rsh.

  20 May 2005; Diego Pettenò <flameeyes@gentoo.org> pam-0.78.ebuild,
  pam-0.78-r1.ebuild, pam-0.78-r2.ebuild:
  Use new pam eclass for new dopamd/newpamd functions. Fixes #86823.

  16 May 2005; Diego Pettenò <flameeyes@gentoo.org> pam-0.77.ebuild,
  pam-0.77-r1.ebuild, pam-0.77-r2.ebuild, pam-0.77-r3.ebuild,
  pam-0.77-r4.ebuild, pam-0.77-r6.ebuild, pam-0.77-r7.ebuild,
  pam-0.77-r8.ebuild, pam-0.78.ebuild, pam-0.78-r1.ebuild:
  Converted to use toolchain-funcs instead of gcc eclass.

  28 Apr 2005; Martin Schlemmer <azarah@gentoo.org> pam-0.77.ebuild,
  pam-0.77-r1.ebuild, pam-0.77-r2.ebuild, pam-0.77-r3.ebuild,
  pam-0.77-r4.ebuild, pam-0.77-r6.ebuild, pam-0.77-r7.ebuild,
  pam-0.77-r8.ebuild:
  Only add the virtual to the >=0.78 series, as we want to use it for the
  'include' directive to have bsd support.

  28 Apr 2005; Martin Schlemmer <azarah@gentoo.org> pam-0.77.ebuild,
  pam-0.77-r1.ebuild, pam-0.77-r2.ebuild, pam-0.77-r3.ebuild,
  pam-0.77-r4.ebuild, pam-0.77-r6.ebuild, pam-0.77-r7.ebuild,
  pam-0.77-r8.ebuild, pam-0.78.ebuild, pam-0.78-r1.ebuild,
  pam-0.78-r2.ebuild:
  Add virtual.

  25 Mar 2005; Jeremy Huddleston <eradicator@gentoo.org> pam-0.78-r2.ebuild:
  Use proper toolchain compiler.

  23 Mar 2005; Martin Schlemmer <azarah@gentoo.org> pam-0.78-r2.ebuild:
  Do not care about sandbox in /usr check for module dependencies. Add message
  to warn about restarting sshd.

  13 Mar 2005; Martin Schlemmer <azarah@gentoo.org> pam-0.78-r2.ebuild:
  Tweak dependency test to hopefully fix bug #84836

  09 Mar 2005; Martin Schlemmer <azarah@gentoo.org> pam-0.78-r2.ebuild:
  Do not check for gcc dir when we check if modules are link to libs in /usr.

*pam-0.78-r2 (09 Mar 2005)

  09 Mar 2005; Martin Schlemmer <azarah@gentoo.org> +pam-0.78-r2.ebuild:
  Compile glib internal to fix the -fPIC issues.

*pam-0.78-r1 (07 Mar 2005)

  07 Mar 2005; Martin Schlemmer <azarah@gentoo.org> +pam-0.78-r1.ebuild:
  Do not link cracklib and pwdb static, bug #83899. Add /dev/dri/\* to
  console.perms, bug #55833. Add NIS patche from Peter S. Mazinger
  <ps.m@gmx.net>.

  26 Feb 2005; Martin Schlemmer <azarah@gentoo.org> pam-0.78.ebuild:
  Use econf and some tweaking to fix some man pages installing into /man, bug
  #83389.

*pam-0.78 (25 Feb 2005)

  25 Feb 2005; Martin Schlemmer <azarah@gentoo.org>
  files/README.pam_console, +files/pam.d/other, +files/pam.d/system-auth,
  +pam-0.78.ebuild:
  Add patch from bug #80566 (by Mark Loeser <halcyon@whiterapid.com>). Added
  workaround from bug #80604 (by Roland Bar <roland@pinguin.tv>). Force
  locales to default, bug #70471 (by Alessandro Guido <devnull@box.it>). Fix
  sound perms on pam_console_reset, bug #55305. Add patch for bug #62059 (by
  Jason Fritcher <jkf@wolfnet.org>). Add pam_chroot, pam_console and
  pam_timestamp USE flags for these optional modules

*pam-0.77-r7 (04 Feb 2005)

  04 Feb 2005; Martin Schlemmer <azarah@gentoo.org> +pam-0.77-r7.ebuild:
  Update static patches to not reference /usr/lib, etc directly.

*pam-0.77-r6 (03 Feb 2005)

  03 Feb 2005; Martin Schlemmer <azarah@gentoo.org> +pam-0.77-r6.ebuild:
  Fix missing '|| die' at the patch section.  Fix patch not applying.

*pam-0.77-r5 (02 Feb 2005)

  02 Feb 2005; Martin Schlemmer <azarah@gentoo.org> +pam-0.77-r5.ebuild:
  Fix permission borkage, bug #74040 (added to stable for all, as its a
  serious bug), thanks to Ulrich Mueller <ulm@kph.uni-mainz.de>.

*pam-0.77-r4 (13 Dec 2004)

  13 Dec 2004; Martin Schlemmer <azarah@gentoo.org> files/pam_env.conf,
  +pam-0.77-r4.ebuild:
  Fix DISPLAY not set for ssh -X.

*pam-0.77-r3 (08 Nov 2004)

  08 Nov 2004; Martin Schlemmer <azarah@gentoo.org> +files/pam_env.conf,
  +pam-0.77-r1.ebuild, +pam-0.77-r3.ebuild:
  Install again pam.d files for rexec, rlogin and rsh. Update
  /etc/security/pam_env.conf to allow su to export DISPLAY and XAUTHORITY if
  needed, bug #69925.

*pam-0.77-r2 (31 Oct 2004)

  31 Oct 2004; Martin Schlemmer <azarah@gentoo.org>
  +files/pam-0.77-console-reset.patch, +pam-0.77-r2.ebuild, pam-0.77.ebuild:
  Fix pam_console_apply -r segfaulting if a group used in
  /etc/security/console.perms are missing, bug #50315

  01 Sep 2004; Travis Tilley <lv@gentoo.org> pam-0.77-r1.ebuild:
  made pam use $(get_libdir) for installing to lib64/lib32

  13 Aug 2004; Robin H. Johnson <robbat2@gentoo.org> pam-0.77-r1.ebuild:
  fix bug #58626, need a newer autoconf.

  30 Jun 2004; Aron Griffis <agriffis@gentoo.org> pam-0.77-r1.ebuild:
  stable on alpha and ia64

  27 Jun 2004; Aron Griffis <agriffis@gentoo.org> pam-0.75-r10.ebuild,
  pam-0.75-r11.ebuild, pam-0.75-r7.ebuild, pam-0.75-r8.ebuild,
  pam-0.75-r9.ebuild, pam-0.77-r1.ebuild, pam-0.77.ebuild:
  QA - fix use invocation

  02 Jun 2004; Travis Tilley <lv@gentoo.org> pam-0.77-r1.ebuild:
  stable on amd64

  12 May 2004; Alexander Gabert <pappy@gentoo.org> pam-0.75-r11.ebuild:
  changed hardened-gcc logic to use flag logic

  26 Apr 2004; Michael McCabe <randy@gentoo.org> pam-0.77-r1.ebuild:
  Marked stable on s390

  16 Apr 2004; Michael Sterrett <mr_bones_@gentoo.org> pam-0.75-r11.ebuild:
  move inherit to the right place

*pam-0.77-r1 (26 Mar 2004)

  26 Mar 2004; Paul de Vrieze <pauldv@gentoo.org> pam-0.77-r1.ebuild:
  Fix pam_userdb building

  09 Mar 2004; <agriffis@gentoo.org> pam-0.77.ebuild:
  stable on alpha and ia64

  07 Mar 2004; Joshua Kinard <kumba@gentoo.org> pam-0.77.ebuild:
  Marked stable on mips.

  09 Feb 2004; <gustavoz@gentoo.org> pam-0.77.ebuild:
  stable on sparc

  09 Feb 2004; Guy Martin <gmsoft@gentoo.org> pam-0.75-r11.ebuild,
  pam-0.77.ebuild:
  Marked stable on hppa. Removed arm keywords to commit.

  06 Feb 2004; Martin Schlemmer <azarah@gentoo.org> pam-0.77.ebuild:
  Bump to stable for x86.

  03 Feb 2004; Bartosch Pixa <darkspecter@gentoo.org> pam-0.77.ebuild:
  set ppc in keywords

  18 Jan 2004; Chris PeBenito <pebenito@gentoo.org> pam-0.77.ebuild:
  Fix SELinux patch so that it compiles correctly on a system that does not have
  a prexisting PAM install.

  22 Dec 2003; Joshua Kinard <kumba@gentoo.org> pam-0.77.ebuild:
  Added a small gnuconfig block to the berkdb build bit, because pam-0.77 pulls in
  db-4.1.x in most cases, and 4.1.x can't detect a mips64 system properly.

  21 Dec 2003; Brad House <brad_mssw@gentoo.org> pam-0.77.ebuild:
  mark stable on amd64

  15 Dec 2003; Martin Schlemmer <azarah@gentoo.org> pam-0.77.ebuild:
  Mark unstable for all.

  09 Dec 2003; Chris PeBenito <pebenito@gentoo.org> pam-0.77.ebuild:
  Update SELinux patch in patch tarball.

  10 Nov 2003; Martin Schlemmer <azarah@gentoo.org> pam-0.77.ebuild:
  Add a 'return 0' to pkg_setup() to make sure it returns the correct value.

*pam-0.77 (10 Nov 2003)

  10 Nov 2003; Martin Schlemmer <azarah@gentoo.org> pam-0.77.ebuild:
  New version. The bulk of the work was done by Donny Davies
  <woodchip@gentoo.org>.  I just added all the gentoo patches, as well
  as made the db stuff link to our own version of db, and not ndbm. I
  also (in gentoo patches) made pam_pwdb, pam_radius and pam_crack link
  to static versions of libraries, and split new pwdb as an new version
  of our existing sys-libs/pwdb.  Other cleanups.

  28 Oct 2003; Chris PeBenito <pebenito@gentoo.org> pam-0.75-r11.ebuild,
  files/pam-0.75-selinux.diff.bz2:
  Add new API SELinux patch

  08 Oct 2003; Alexander Gabert <pappy@gentoo.org> pam-0.75-r11.ebuild:
  added hardened-gcc lcrypt dependency again

  11 Aug 2003; Luke-Jr <luke-jr@gentoo.org> pam-0.75-r10.ebuild,
  pam-0.75-r11.ebuild, pam-0.75-r7.ebuild, pam-0.75-r8.ebuild,
  pam-0.75-r9.ebuild:
  Changed LICENSE to "BSD | GPL-2"

  01 Jul 2003; Olivier Crete <tester@tester.ca> pam-0.75-r11.ebuild:
  Configure finds db4

  18 May 2003; Tavis Ormandy <taviso@gentoo.org> pam-0.75-r11.ebuild:
  If glib was compiled with ccc, we need -lots.

  20 Feb 2003; Zach Welch <zwelch@gentoo.org> pam-0.75-r11.ebuild :
  Added arm to keywords.

  09 Feb 2003; Guy Martin <gmsoft@gentoo.org> pam-0.75-r11.ebuild :
  Added hppa to keywords.

  08 Jan 2003; Martin Schlemmer <azarah@gentoo.org> pam-0.75-r11.ebuild :
  Mark stable.

*pam-0.75-r11 (25 Dec 2002)

  15 Mar 2003; Jan Seidel <tuxus@gentoo.org> :
  Added mips to KEYWORDS

  07 Jan 2003; Martin Holzer <mholzer@gentoo.org> pam-0.75-r11.ebuild :
  Corrected Homepage.

  25 Dec 2002; Martin Schlemmer <azarah@gentoo.org> pam-0.75-r11.ebuild :

  Add pam-0.75-pam_console_apply-use-correct-device.patch.bz2 to fix a
  problem where pam_console_apply and co did not use the correct device
  if devfsd was not used, closing bug #12207.  The patch was created by
  Sam Yates <sam@quux.dropbear.id.au>.

  16 Dec 2002; Martin Schlemmer <azarah@gentoo.org> pam-0.75-r10.ebuild :

  Change DEPEND to only depend on db3 or greater, per request from Donny ...
  this is for db4 support in future ...

  06 Dec 2002; Rodney Rees <manson@gentoo.org> : changed sparc ~sparc keywords
 
  05 Dec 2002; Martin Schlemmer <azarah@gentoo.org> pam-0.75-r10.ebuild :

  Fix bison syntax for bison-1.50 or later, thanks to Redhat.  Added
  pam-0.75-pam_console-bison.fixes.patch for this.

  26 Oct 2002; Martin Schlemmer <azarah@gentoo.org> pam-0.75-r10.ebuild :

  Add pam-0.75-pam_userdb-use-db3.patch to get pam_userdb to link to
  db3 or db4 if present, rather than libndbm, as that causes unresolved
  symbols.

*pam-0.75-r10 (26 Oct 2002)

  26 Oct 2002; Martin Schlemmer <azarah@gentoo.org> pam-0.75-r10.ebuild :

  Generate the linker scripts in /usr/lib to fix bug #4411.

*pam-0.75-r9 (24 Oct 2002)

  18 Jan 2003; Jan Seidel <tuxus@gentoo.org> :
  Added mips to keywords

  24 Oct 2002; Martin Schlemmer <azarah@gentoo.org> pam-0.75-r9.ebuild :

  Another snag in the problem with gcc3 linking static libs in /usr/lib
  before dynamic ones in /lib (bug #4411).  Seems like c++ stuff do not
  link properly with libpam.so, but rather with libpam.a, and as pam
  must be dynamic to load its modules, it breaks auth for a few critical
  things (like gdm and kdm).  This is not tested, but the urgency demands
  a solution.  This release just do not install static libs for pam until
  the gcc/binutils issue can be resolved.

*pam-0.75-r8 (13 Oct 2002)

  13 Oct 2002; Martin Schlemmer <azarah@gentoo.org> pam-0.75-r8.ebuild :

  Add pam-0.75-pam_console-fix-fullpath-in-file-classes.patch to fix a small
  compat problem between pam-login and pam_console.so.  pam_console.so expects
  PAM_TTY to be set by login without prefixing "/dev/" it seems, which
  pam-login did.  This should close bug #6612.

  Synced with Mandrake and Redhat for latest patches.

  05 Aug 2002; M.Schlemmer <azarah@gentoo.org> ${P}-pam_group-confile.patch :
  Fixes the config file location of pam_group.so.  This resolves bug #6010.

  31 Jul 2002; M.Schlemmer <azarah@gentoo.org> ${P}-pam_wheel-segfault.patch :
  Fix a segfault in pam_wheel.so if "use_uid" was not given as parameter.
  This resolves bug #5686.

*pam-0.75-r7 (31 Jul 2002)

  31 Jul 2002; M.Schlemmer <azarah@gentoo.org> pam-0.75-r7.ebuild :
  Update some patches.  Ebuild cleanups, as well as some compiler
  fixes.


  15 Jul 2002; Mark Guertin <gerk@gentoo.org>
  Added ppc to keywords

  11 Apr 2002; Spider <spider@gentoo.org>
  Update all glib dependencies to use glib-1.2*  in preparation of unmasking the glib-2.0.1 packages


  04 Apr 2002; M.Schlemmer <azarah@gentoo.org> pam-0.75-r6.ebuild :

  Add module build checking back as we do not want some module to 
  silently fail and lock the user out of his system.

*pam-0.75-r6 (04 Apr 2002)

  04 Apr 2002; Jared H. Hudson <jhhudso@gentoo.org> pam-0.75-r6.ebuild :

  Made changes to make it compile without berkdb being defined as a use
  item.

*pam-0.75-r5 (03 Apr 2002)

  03 Apr 2002; Geert Bevin <gbevin@gentoo.org> pam-0.75-r5.ebuild :

  Made changes to make it compile the pwdb module successfully with gcc3.

*pam-0.75-r2 (17 Feb 2002)

  17 Feb 2002; Bruce A. Locke <blocke@shivan.org> pam-0.75-r2.ebuild :

  Part 1 of PAM revamp.  Ebuild is masked out...  FOR DEVELOPER TESTING ONLY
