[svn-upgrade] Integrating new upstream version, shadow (4.0.15)

This commit is contained in:
nekral-guest 2007-10-07 11:47:22 +00:00
parent 24178ad677
commit 591830e43b
236 changed files with 9504 additions and 3729 deletions

386
ChangeLog
View File

@ -1,3 +1,389 @@
2006-03-13 Tomasz K這czko <kloczek@pld.org.pl>
* po/it.po:
updated for 4.0.15 (by Danilo Piazzalunga <danilopiazza@gmail.com>).
2006-03-12 Tomasz K這czko <kloczek@pld.org.pl>
* NEWS, po/nb.po:
updated for 4.0.15 (by Bj繪rn Steensrud <bjornst@powertech.no>).
* po/pt.po:
updated for 4.0.15 (by Miguel Figueiredo <mfigueiredo@gmail.com>).
* man/Makefile.am, NEWS, configure.in:
do not install translated man pages if shadow is configured with --disable-nls
(based patch submited by Mike Frysinger <vapier@gentoo.org>).
* NEWS, po/pt_BR.po:
updated for 4.0.15 (by Andre Luis Lopes <andrelop@debian.org>).
* po/fr.po:
updated for 4.0.15 (by Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>).
2006-03-11 Tomasz K這czko <kloczek@pld.org.pl>
* NEWS, configure.in, lib/pwauth.c:
added fixes for detect BSD's S/Key with updated the skeychallenge() function
for take a fourth argument in case BSD version
(patch submited by Mike Frysinger <vapier@gentoo.org>)
* README: added paragragraph about S/Key support.
* po/sk.po: updated for 4.0.15 (by Peter Mann <Peter.Mann@tuke.sk>).
* NEWS: newgrp: do not link with libselinux.
* NEWS, po/zh_CN.po:
updated for 4.0.15 (by Carlos Z.F. Liu <carlosliu@users.sourceforge.net>).
* po/ru.po: updated for 4.0.15 (by Yuri Kozlov <kozlov.y@gmail.com>).
* src/Makefile.am:
removed $(LIBSELINUX) from newgrp_LDADD (newgrp does not need to be linked
with SELinux libraries).
* man/ru/chsh.1, man/ru/expiry.1, man/ru/faillog.5, man/ru/faillog.8, man/ru/gpasswd.1, man/ru/groupadd.8, man/ru/groupdel.8, man/ru/groupmems.8, man/ru/groupmod.8, man/ru/groups.1, man/ru/grpck.8, man/ru/gshadow.5, man/ru/id.1, man/ru/lastlog.8, man/ru/limits.5, man/ru/login.1, man/ru/login.access.5, man/ru/login.defs.5, man/ru/logoutd.8, man/ru/newgrp.1, man/ru/newusers.8, man/ru/nologin.8, man/ru/passwd.1, man/ru/passwd.5, man/ru/porttime.5, man/ru/pw_auth.3, man/ru/pwck.8, man/ru/pwconv.8, man/ru/sg.1, man/ru/shadow.3, man/ru/shadow.5, man/ru/su.1, man/ru/suauth.5, man/ru/sulogin.8, man/ru/useradd.8, man/ru/userdel.8, man/ru/usermod.8, man/ru/vipw.8, NEWS, man/ru/Makefile.am, man/ru/chage.1, man/ru/chfn.1, man/ru/chpasswd.8:
ru man pages: added new nologin(8) and updated all other man pages
(by Yuri Kozlov <kozlov.y@gmail.com>).
2006-03-09 Tomasz K這czko <kloczek@pld.org.pl>
* NEWS, po/nl.po:
updated for 4.0.15 (by cobaco (aka Bart Cornelis) <cobaco@linux.be>).
* po/vi.po:
updated for 4.0.15 (by Clytie Siddall <clytie@riverland.net.au>).
* po/sv.po:
updated for 4.0.15 (by Daniel Nylander <po@danielnylander.se>).
2006-03-08 Tomasz K這czko <kloczek@pld.org.pl>
* po/eu.po: updated for 4.0.15 (by pi <pi@beobide.net>).
* po/ro.po: cleanups.
* NEWS, po/tl.po:
updated for 4.0.15 (by eric pareja <xenos@upm.edu.ph>).
* po/ro.po: updated for 4.0.15 (by Sorin B. <sorin@bonbon.net>).
* NEWS, po/es.po:
updated for 4.0.15 (by Ruben Porras <nahoo82@gmail.com>).
2006-03-07 Tomasz K這czko <kloczek@pld.org.pl>
* NEWS, po/da.po:
updated for 4.0.15 (by Claus Hindsgaul <claus.hindsgaul@gmail.com>).
* NEWS, man/fi/chsh.1, man/fi/su.1:
update fi chsh(1), su(1) man pages generated from XML files
(Tommi Vainikainen <thv+debian@iki.fi>).
* NEWS, po/fi.po:
updated for 4.0.15 (by Tommi Vainikainen <thv+debian@iki.fi>).
* NEWS, po/cs.po:
updated for 4.0.15 (by Miroslav Kure <kurem@upcase.inf.upol.cz>).
* NEWS, man/cs/Makefile.am, man/cs/expiry.1, man/cs/faillog.5, man/cs/faillog.8, man/cs/gpasswd.1, man/cs/groupadd.8, man/cs/groupdel.8, man/cs/logoutd.8, man/cs/nologin.8, man/cs/vipw.8:
added new cs man pages: expiry(1), faillog(5), faillog(8), gpasswd(1),
groupadd(8), groupdel(8), logoutd(8), nologin(8), vipw(8).
* NEWS: typo.
* src/useradd.c, NEWS, lib/getdef.h, man/login.defs.5, man/login.defs.5.xml, src/login.c, src/newusers.c:
default UMASK if not specified in login.defs is 022.
2006-03-06 Tomasz K這czko <kloczek@pld.org.pl>
* po/pl.po: updated for 4.0.15.
* NEWS, po/gl.po:
updated for 4.0.15 (by Jacobo Tarrio <jtarrio@trasno.net>).
* NEWS, configure.in: schedule release 4.0.15 to 13-03-2006.
2006-03-05 Tomasz K這czko <kloczek@pld.org.pl>
* NEWS: typo (s/onas Meurer/Jonas Meurer/)
* src/.cvsignore: added chgpasswd.
* po/sk.po, po/sq.po, po/sv.po, po/tl.po, po/tr.po, po/uk.po, po/vi.po, po/zh_CN.po, po/zh_TW.po, src/Makefile.am, src/chgpasswd.c, NEWS, po/POTFILES.in, po/bs.po, po/ca.po, po/cs.po, po/da.po, po/de.po, po/el.po, po/es.po, po/eu.po, po/fi.po, po/fr.po, po/gl.po, po/he.po, po/id.po, po/it.po, po/ja.po, po/ko.po, po/nb.po, po/nl.po, po/nn.po, po/pl.po, po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po:
chgpasswd: new tool (by onas Meurer <mejo@debian.org>).
* src/lastlog.c, po/bs.po, po/ca.po, po/cs.po, po/da.po, po/de.po, po/el.po, po/es.po, po/eu.po, po/fi.po, po/fr.po, po/gl.po, po/he.po, po/id.po, po/it.po, po/ja.po, po/ko.po, po/nb.po, po/nl.po, po/nn.po, po/pl.po, po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/sk.po, po/sq.po, po/sv.po, po/tl.po, po/tr.po, po/uk.po, po/vi.po, po/zh_CN.po, po/zh_TW.po:
s/Unexpected/unexpected/
* po/fr.po, po/gl.po, po/he.po, po/id.po, po/it.po, po/ja.po, po/ko.po, po/nb.po, po/nl.po, po/nn.po, po/pl.po, po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/sk.po, po/sq.po, po/sv.po, po/tl.po, po/tr.po, po/uk.po, po/vi.po, po/zh_CN.po, po/zh_TW.po, src/lastlog.c, NEWS, po/bs.po, po/ca.po, po/cs.po, po/da.po, po/de.po, po/el.po, po/es.po, po/eu.po, po/fi.po:
print the usage and exit if an additional argument is profided to
lastlog (merge 488_laslog_verify_arguments Debian patch).
2006-03-02 Tomasz K這czko <kloczek@pld.org.pl>
* man/chpasswd.8, man/chpasswd.8.xml:
fixed CAVEATS section (by Justin Pryzby <justinpryzby@users.sourceforge.net>)
2006-02-28 Tomasz K這czko <kloczek@pld.org.pl>
* man/passwd.1, man/passwd.1.xml:
fixed SYNOPSIS section (http://bugs.debian.org/352136).
2006-02-23 Tomasz K這czko <kloczek@pld.org.pl>
* po/ro.po: updated (by Sorin Batariuc <sorin@bonbon.net>).
2006-02-21 Tomasz K這czko <kloczek@pld.org.pl>
* NEWS, lib/Makefile.am, src/Makefile.am:
login, nologin, su: do not link with libselinux
(merge 490_link_selinux_only_when_needed Debian patch).
* NEWS, src/chage.c, src/chfn.c, src/chsh.c, src/passwd.c:
fixed confusing error message if /proc is not mounted
(http://bugs.debian.org/352494
patch Nicolas Fran癟ois <nicolas.francois@centraliens.net>)
* po/ro.po:
updated (commited http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=347755).
* NEWS, po/ca.po: updated (by Jordi Mallach <jordi@debian.org>).
2006-02-20 Tomasz K這czko <kloczek@pld.org.pl>
* man/gpasswd.1.xml, man/passwd.1.xml, man/passwd.5.xml, man/pwck.8.xml, man/sg.1.xml, man/useradd.8.xml:
cleanups.
* po/gl.po: updated (Jacobo Tarrio <jtarrio@trasno.net>).
* NEWS, po/pt.po:
updated (by Miguel Figueiredo <mfigueiredo@gmail.com>).
2006-02-15 Tomasz K這czko <kloczek@pld.org.pl>
* NEWS, po/it.po:
update (by Danilo Piazzalunga <danilopiazza@gmail.com>).
* po/vi.po: update (by Clytie Siddall <clytie@riverland.net.au>).
* po/sv.po: updated (by Daniel Nylander <yeager@lidkoping.net>).
2006-02-09 Tomasz K這czko <kloczek@pld.org.pl>
* po/fr.po: updated (by Christian Perrier <bubulle@kheops.frmug.org>).
* po/bs.po, po/ca.po, po/cs.po, po/da.po, po/de.po, po/el.po, po/es.po, po/fi.po, po/fr.po, po/gl.po, po/he.po, po/id.po, po/it.po, po/ja.po, po/ko.po, po/nb.po, po/nl.po, po/nn.po, po/pl.po, po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/sq.po, po/sv.po, po/tl.po, po/tr.po, po/uk.po, po/vi.po, po/zh_CN.po, po/zh_TW.po:
run "make update-po".
* po/pl.po: updated.
* po/sk.po: updated (by Peter Mann <Peter.Mann@tuke.sk>).
* po/eu.po: update (by ^pi^ <pi@beobide.net>).
2006-02-08 Tomasz K這czko <kloczek@pld.org.pl>
* NEWS, src/login.c:
merge 433_login_more_LOG_UNKFAIL_ENAB Debian patch:
- TOO MANY LOGIN... logged if PAM_MAXTRIES or failcount >= retries
(was onl test PAM_MAXTRIES),
- print to stderr (in addition to syslog) in case of maximum number of
tries exceeded,
- always prints the number of tries in the syslog entry.
- add special handling for PAM_ABORT
- add an entry to failog, as when USE_PAM is not defined. (#53164)
- changed pam_end to PAM_END. This is certainly was a mistake.
PAM_END is pam_close_seesion + pam_end. Here, the session is still not
open, we don't have to close it.
- a HAVE_PAM_FAIL_DELAY is missing
* po/ro.po: kill one fuzzy.
* po/ro.po, NEWS: updated (by Sorin B. <sorin@bonbon.net>).
* src/gpasswd.c: s/die/catch_signals/
* src/expiry.c, src/sulogin.c: s/catch/catch_signals/
* src/su.c: /su_catch_sig/chatch_signals/
2006-02-07 Tomasz K這czko <kloczek@pld.org.pl>
* src/id.c, src/groups.c, libmisc/getdate.y: lint code using CC=g++.
* NEWS, src/su.c:
fixed pam session support (patch from Topi Miettinen; fixed #57526, #55873,
#57532 Debian bugs).
* NEWS:
fixed pam session support (patch from Topi Miettinen; fixed #57526,
#55873, #57532 Debian bugs).
* NEWS, src/userdel.c:
user's group is already removed by update_groups(). remove_group()
is not needed (bug introduced in 4.0.14 on merge FC fixes). Fixed by Nicolas
Fran癟ois <nicolas.francois@centraliens.net>
* NEWS, src/useradd.c: allways remove group and gshadow databases lock,
Fixed by Nicolas Fran癟ois <nicolas.francois@centraliens.net>
(http://bugs.debian.org/348250)
* NEWS, src/userdel.c: fixed excess audit_logger() argument.
* NEWS, lib/prototypes.h:
corrected prototypes in lib/prototypes.h (thre is no audit_help_log(); added
audit_logger() prototype).
* src/login.c: fixed missing ";" in declaration.
* man/limits.5, man/limits.5.xml:
fixed example limits string (by Yuri Kozlov <kozlov.y@gmail.com>).
2006-02-06 Tomasz K這czko <kloczek@pld.org.pl>
* NEWS, po/ro.po, po/ru.po, po/sk.po, po/sq.po, po/sv.po, po/tl.po, po/tr.po, po/uk.po, po/vi.po, po/zh_CN.po, po/zh_TW.po, src/chage.c, po/bs.po, po/ca.po, po/cs.po, po/da.po, po/de.po, po/el.po, po/es.po, po/eu.po, po/fi.po, po/fr.po, po/gl.po, po/he.po, po/id.po, po/it.po, po/ja.po, po/ko.po, po/nb.po, po/nl.po, po/nn.po, po/pl.po, po/pt.po, po/pt_BR.po:
added missing \n on display password status if password must be chaged.
2006-02-04 Tomasz K這czko <kloczek@pld.org.pl>
* src/useradd.c, NEWS:
fixed allow non-unique UID (http://bugs.debian.org/351281).
2006-02-01 Tomasz K這czko <kloczek@pld.org.pl>
* po/cs.po: updated (by Miroslav Kure <kurem@upcase.inf.upol.cz>).
2006-01-27 Tomasz K這czko <kloczek@pld.org.pl>
* NEWS, po/vi.po:
updated (by Clytie Siddall <clytie@riverland.net.au>).
2006-01-26 Tomasz K這czko <kloczek@pld.org.pl>
* po/fr.po:
typo (fixed by Christian Perrier <bubulle@kheops.frmug.org>).
* po/sk.po: updated (by Peter Mann <Peter.Mann@tuke.sk>).
2006-01-25 Tomasz K這czko <kloczek@pld.org.pl>
* man/pl/grpck.8, man/pl/login.defs.5, man/pl/passwd.1, man/pl/pwck.8, man/de/passwd.1, man/es/login.1, man/es/vipw.8, man/fi/passwd.1, man/hu/passwd.1, man/id/login.1, man/it/grpck.8, man/it/pwck.8, man/ja/grpck.8, man/ja/passwd.1, man/ja/pwck.8, man/ko/login.1, man/ko/su.1:
fixes some issues that cause warnings when the manpages are
displayed (by Nicolas Fran癟ois <nicolas.francois@centraliens.net>).
2006-01-23 Tomasz K這czko <kloczek@pld.org.pl>
* NEWS, po/eu.po: updated (by pi <pi@beobide.net>).
* libmisc/addgrps.c, libmisc/xmalloc.c, src/groups.c:
fixes after linting code using CC=g++: cast {m,re}alloc() return value to
proper type.
2006-01-22 Tomasz K這czko <kloczek@pld.org.pl>
* man/chage.1, man/chage.1.xml, man/passwd.5, man/passwd.5.xml, man/su.1, man/su.1.xml, man/useradd.8, man/useradd.8.xml:
uniformity and grammar fixes (by Christine Spang <spangarang@twcny.rr.com>).
* NEWS, po/ru.po: updated (by Yuri Kozlov <kozlov.y@gmail.com>).
2006-01-20 Tomasz K這czko <kloczek@pld.org.pl>
* po/fr.po, NEWS:
updated (by Christian Perrier <bubulle@kheops.frmug.org>).
2006-01-18 Tomasz K這czko <kloczek@pld.org.pl>
* NEWS, libmisc/setupenv.c, src/chage.c, src/chsh.c, src/gpasswd.c, src/groupadd.c, src/groupdel.c, src/grpck.c, src/grpconv.c, src/grpunconv.c, src/login.c, src/newgrp.c, src/newusers.c, src/passwd.c, src/pwck.c, src/pwconv.c, src/usermod.c, src/vipw.c:
variouse code cleanups for make possible compilation of shadow with
-Wall -Werror (by Alexander Gattin <xrgtn@yandex.ru>).
* libmisc/age.c, libmisc/shell.c, src/login.c, src/newgrp.c, src/su.c, src/sulogin.c, src/userdel.c, NEWS, lib/prototypes.h:
move exit() outside libmisc/shell.c::shell() for handle shell() errors
on higher level (now is better visable where some programs exit with 126 and
127 exit codes); added new shell() parameter (char *const envp[]) which allow
fix preserving enviloment in su on using -p.
(patch by Alexander Gattin <xrgtn@yandex.ru>)
* NEWS, po/el.po:
updated (by Konstantinos Margaritis <markos@debian.org>).
2006-01-17 Tomasz K這czko <kloczek@pld.org.pl>
* lib/exitcodes.h: new #defines:
#define E_CMD_NOEXEC 126 /* can't run command/shell */
#define E_CMD_NOTFOUND 127 /* can't find command/shell to run */
2006-01-16 Tomasz K這czko <kloczek@pld.org.pl>
* man/passwd.1, man/passwd.1.xml:
fixes after reviewed for grammatical and other small errors that detract from the
polish of the content to native English speakers.
I also went ahead and changed all gender references to be a consistent
"his/her" (or equivalent) - the original had a mix of just "his", just
"her", and occasionally "his/her".
(by Christine Spang <spangarang@twcny.rr.com>).
* po/it.po: updated (by Danilo Piazzalunga <danilopiazza@gmail.com>).
2006-01-14 Tomasz K這czko <kloczek@pld.org.pl>
* NEWS: updated.
* libmisc/shell.c: remove DEBUG code.
* po/LINGUAS, po/gl.po, NEWS:
added new gl translation (by Jacobo Tarrio <jtarrio@trasno.net>).
2006-01-12 Tomasz K這czko <kloczek@pld.org.pl>
* po/eu.po: small update (by pi <pi@beobide.net>).
2006-01-10 Tomasz K這czko <kloczek@pld.org.pl>
* src/su.c: fixed compilation error.
2006-01-08 Tomasz K這czko <kloczek@pld.org.pl>
* po/sv.po: updated (by Daniel Nylander <yeager@lidkoping.net>)
http://bugs.debian.org/346449
2006-01-07 Tomasz K這czko <kloczek@pld.org.pl>
* NEWS, man/useradd.8, man/useradd.8.xml:
better document useradd -d option: will not add the user's home directory
if it does not already exist (http://bugs.debian.org/154996)
* man/su.1, man/su.1.xml, po/zh_CN.po, po/zh_TW.po, NEWS, po/bs.po, po/ca.po, po/cs.po, po/da.po, po/de.po, po/el.po, po/es.po, po/eu.po, po/fi.po, po/fr.po, po/he.po, po/id.po, po/it.po, po/ja.po, po/ko.po, po/nb.po, po/nl.po, po/nn.po, po/pl.po, po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/sk.po, po/sq.po, po/sv.po, po/tl.po, po/tr.po, po/uk.po, po/vi.po, src/su.c:
added handle -c,--command option for GNU su compliance (merge
437_su_-c_option Debian Patch).
* man/login.1, man/login.1.xml, man/passwd.1, man/passwd.1.xml, man/su.1, man/su.1.xml:
man pages cleanups.
(http://bugs.debian.org/341489)
* NEWS, man/Makefile.am, man/nologin.8, man/nologin.8.xml:
nologin(8) man pages added (merge 478_nologin.8.xml Debian patch).
* po/sk.po: updated (by Peter Mann <Peter.Mann@tuke.sk>)
http://bugs.debian.org/346376
2006-01-06 Tomasz K這czko <kloczek@pld.org.pl>
* po/id.po: updated (by Parlin Imanuel <parlin_i@yahoo.com>)
http://bugs.debian.org/345514
* NEWS, po/bs.po, po/ca.po, po/cs.po, po/da.po, po/de.po, po/el.po, po/es.po, po/eu.po, po/fi.po, po/fr.po, po/he.po, po/id.po, po/it.po, po/ja.po, po/ko.po, po/nb.po, po/nl.po, po/nn.po, po/pl.po, po/pt.po, po/pt_BR.po, po/ro.po, po/ru.po, po/sk.po, po/sq.po, po/sv.po, po/tl.po, po/tr.po, po/uk.po, po/vi.po, po/zh_CN.po, po/zh_TW.po, src/login.c:
added translate login prompt string (suggested by Evgeniy Dushistov).
2006-01-05 Tomasz K這czko <kloczek@pld.org.pl>
* NEWS, configure.in: start work on 4.1.0.
* po/sv.po: updated (by Daniel Nylander <yeager@lidkoping.net>).
http://bugs.debian.org/346017
2006-01-03 Tomasz K³oczko <kloczek@pld.org.pl>
* NEWS: correct 4.0.14 release date (03-01-2006).

View File

@ -150,6 +150,8 @@ SHELL = @SHELL@
STRIP = @STRIP@
U = @U@
USE_NLS = @USE_NLS@
USE_NLS_FALSE = @USE_NLS_FALSE@
USE_NLS_TRUE = @USE_NLS_TRUE@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
XMLCATALOG = @XMLCATALOG@

79
NEWS
View File

@ -1,4 +1,78 @@
$Id: NEWS,v 1.331 2006/01/03 16:45:47 kloczek Exp $
$Id: NEWS,v 1.382 2006/03/12 22:35:35 kloczek Exp $
shadow-4.0.14 -> shadow-4.0.15 13-03-2006
*** general:
- do not install translated man pages if shadow is configured with
--disable-nls
(based patch submited by Mike Frysinger <vapier@gentoo.org>),
- added fixes for detect BSD's S/Key with updated the skeychallenge()
function for take a fourth argument in case BSD version (patch submited by
Mike Frysinger <vapier@gentoo.org>),
- login: default UMASK if not specified in login.defs is 022 (pointed by
Peter Vrabec <pvrabec@redhat.com>),
- chgpasswd: new tool (by Jonas Meurer <mejo@debian.org>),
- lastlog: print the usage and exit if an additional argument is profided to
lastlog (merge 488_laslog_verify_arguments Debian patch),
- login, newgrp, nologin, su: do not link with libselinux (merge
490_link_selinux_only_when_needed Debian patch),
- chage, chfn, chsh, passwd: fixed confusing error message if /proc is not
mounted (http://bugs.debian.org/352494 patch Nicolas François
<nicolas.francois@centraliens.net>),
- login (merge 433_login_more_LOG_UNKFAIL_ENAB Debian patch):
- TOO MANY LOGIN... logged if PAM_MAXTRIES or failcount >= retries (was
onl test PAM_MAXTRIES),
- print to stderr (in addition to syslog) in case of maximum number of
tries exceeded,
- always prints the number of tries in the syslog entry.
- add special handling for PAM_ABORT
- add an entry to failog, as when USE_PAM is not defined. (#53164)
- changed pam_end to PAM_END. This is certainly was a mistake. PAM_END is
pam_close_seesion + pam_end. Here, the session is still not open, we
don't have to close it.
- a HAVE_PAM_FAIL_DELAY is missing,
- su: fixed pam session support (patch from Topi Miettinen; fixed #57526,
#55873, 57532 Debian bugs),
- userdel: user's group is already removed by update_groups().
remove_group() is not needed (bug introduced in 4.0.14 on merge FC fixes).
Fixed by Nicolas François <nicolas.francois@centraliens.net>,
- useradd: allways remove group and gshadow databases lock, Fixed by Nicolas
François <nicolas.francois@centraliens.net>
(http://bugs.debian.org/348250)
- auditing fixes:
- corrected prototypes in lib/prototypes.h (thre is no audit_help_log();
added audit_logger() prototype),
- useradd: fixed excess audit_logger() argument,
- chage: added missing \n on display password status if password must be
chaged,
- useradd: fixed allow non-unique UID (http://bugs.debian.org/351281),
- variouse code cleanups for make possible compilation of shadow with -Wall
-Werror (by Alexander Gattin <xrgtn@yandex.ru>),
- su: move exit() outside libmisc/shell.c::shell() for handle shell() errors
on higher level (now is better visable where some programs exit with 126
and 127 exit codes); added new shell() parameter (char *const envp[])
which allow fix preserving enviloment in su on using -p, (patch by
Alexander Gattin <xrgtn@yandex.ru>),
- su: added handle -c,--command option for GNU su compliance (merge
437_su_-c_option Debian patch),
- login: added translate login prompt string (suggested by Evgeniy
Dushistov),
- updated translations: ca, cs, da, el, es, eu, gl, fi, fr, it, nb, nl, pt,
pt_BR, ro, ru, sk, sv, tl, vi, zh_CN,
- new translations: gl.
*** documentation:
- ru man pages: added new nologin(8) and updated all other man pages (by
Yuri Kozlov <kozlov.y@gmail.com>),
- chsh(1), su(1): update fi translations generated from XML files
(Tommi Vainikainen <thv+debian@iki.fi>),
- expiry(1), faillog(5), faillog(8), gpasswd(1), groupadd(8), groupdel(8),
logoutd(8), nologin(8), vipw(8): added new cs man pages, (by Miroslav Kure
<kurem@upcase.inf.upol.cz>)
- login.defs(5): default UMASK if not specified in login.defs is 022
(pointed by Peter Vrabec <pvrabec@redhat.com>),
- useradd(8): better document that -d will not add the user's home directory
if it does not already exist (http://bugs.debian.org/154996),
- nologin(8) man pages added (merge 478_nologin.8.xml Debian patch).
shadow-4.0.13 -> shadow-4.0.14 03-01-2006
@ -36,7 +110,8 @@ shadow-4.0.13 -> shadow-4.0.14 03-01-2006
http://bugs.debian.org/11189),
- su, vipw: rewrited for use getopt_long(),
- su: log successful/failed through syslog (http://bugs.debian.org/190215),
- updated translations: ca, cs, da, eu, fi, fr, it, pl, pt, ru, sv, tl, vi.
- updated translations: ca, cs, da, eu, fi, fr, it, pl, pt, ru, sv, tl, vi,
- new translations: gl.
*** documentation:
- added es, ko vigr(8) and vipw(8), hu lastlog(8), ko vipw(8), zh_CN su(1),
zh_TW chpasswd(8) and su(1),

7
README
View File

@ -22,6 +22,13 @@ Mailing lists archives:
shadow@pld.org.pl - http://mail.pld.org.pl/mailman/pipermail/shadow/
shadow-commit@pld.org.pl - http://mail.pld.org.pl/mailman/pipermail/shadow-commit/
S/Key support:
Shadow can be builded with S/Key support using S/Key support from:
http://cvsweb.netbsd.org/bsdweb.cgi/src/lib/libskey/
and
http://rsync1.it.gentoo.org/gentoo/distfiles/skey-1.1.5.tar.bz2
Authors and contributors
========================

View File

@ -320,6 +320,9 @@
/* Define to support S/Key logins. */
#undef SKEY
/* Define to support newer BSD S/Key API */
#undef SKEY_BSD_STYLE
/* Define to 1 if the `S_IS*' macros in <sys/stat.h> do not work properly. */
#undef STAT_MACROS_BROKEN

76
configure vendored
View File

@ -462,7 +462,7 @@ ac_includes_default="\
# include <unistd.h>
#endif"
ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE LN_S YACC CPP EGREP U ANSI2KNR build build_cpu build_vendor build_os host host_cpu host_vendor host_os ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL LIBOBJS XSLTPROC XML_CATALOG_FILE XMLCATALOG ENABLE_REGENERATE_MAN_TRUE ENABLE_REGENERATE_MAN_FALSE LIBCRYPT LIBAUDIT LIBCRACK LIBSELINUX LIBPAM LIBSKEY LIBMD MKINSTALLDIRS USE_NLS MSGFMT GMSGFMT XGETTEXT MSGMERGE INTL_MACOSX_LIBS LIBICONV LTLIBICONV INTLLIBS LIBINTL LTLIBINTL POSUB LTLIBOBJS'
ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE LN_S YACC CPP EGREP U ANSI2KNR build build_cpu build_vendor build_os host host_cpu host_vendor host_os ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL LIBOBJS XSLTPROC XML_CATALOG_FILE XMLCATALOG ENABLE_REGENERATE_MAN_TRUE ENABLE_REGENERATE_MAN_FALSE LIBCRYPT LIBAUDIT LIBCRACK LIBSELINUX LIBPAM LIBSKEY LIBMD MKINSTALLDIRS USE_NLS MSGFMT GMSGFMT XGETTEXT MSGMERGE INTL_MACOSX_LIBS LIBICONV LTLIBICONV INTLLIBS LIBINTL LTLIBINTL POSUB USE_NLS_TRUE USE_NLS_FALSE LTLIBOBJS'
ac_subst_files=''
# Initialize some variables set by options.
@ -1822,7 +1822,7 @@ fi
# Define the identity of the package.
PACKAGE=shadow
VERSION=4.0.14
VERSION=4.0.15
cat >>confdefs.h <<_ACEOF
@ -23836,6 +23836,59 @@ cat >>confdefs.h <<\_ACEOF
#define SKEY 1
_ACEOF
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
#include <stdio.h>
#include <skey.h>
int
main ()
{
skeychallenge((void*)0, (void*)0, (void*)0, 0);
;
return 0;
}
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>conftest.er1
ac_status=$?
grep -v '^ *+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; } &&
{ ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
cat >>confdefs.h <<\_ACEOF
#define SKEY_BSD_STYLE 1
_ACEOF
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
fi
rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
@ -25721,6 +25774,16 @@ _ACEOF
if test "x$USE_NLS" = "xyes"; then
USE_NLS_TRUE=
USE_NLS_FALSE='#'
else
USE_NLS_TRUE='#'
USE_NLS_FALSE=
fi
ac_config_files="$ac_config_files Makefile po/Makefile.in doc/Makefile man/Makefile man/cs/Makefile man/de/Makefile man/es/Makefile man/fi/Makefile man/fr/Makefile man/hu/Makefile man/id/Makefile man/it/Makefile man/ja/Makefile man/ko/Makefile man/pl/Makefile man/pt_BR/Makefile man/ru/Makefile man/tr/Makefile man/zh_CN/Makefile man/zh_TW/Makefile libmisc/Makefile lib/Makefile src/Makefile contrib/Makefile etc/Makefile etc/pam.d/Makefile shadow.spec"
cat >confcache <<\_ACEOF
@ -25849,6 +25912,13 @@ echo "$as_me: error: conditional \"ENABLE_REGENERATE_MAN\" was never defined.
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
if test -z "${USE_NLS_TRUE}" && test -z "${USE_NLS_FALSE}"; then
{ { echo "$as_me:$LINENO: error: conditional \"USE_NLS\" was never defined.
Usually this means the macro was only invoked conditionally." >&5
echo "$as_me: error: conditional \"USE_NLS\" was never defined.
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
: ${CONFIG_STATUS=./config.status}
ac_clean_files_save=$ac_clean_files
@ -26512,6 +26582,8 @@ s,@INTLLIBS@,$INTLLIBS,;t t
s,@LIBINTL@,$LIBINTL,;t t
s,@LTLIBINTL@,$LTLIBINTL,;t t
s,@POSUB@,$POSUB,;t t
s,@USE_NLS_TRUE@,$USE_NLS_TRUE,;t t
s,@USE_NLS_FALSE@,$USE_NLS_FALSE,;t t
s,@LTLIBOBJS@,$LTLIBOBJS,;t t
CEOF

View File

@ -1,6 +1,6 @@
dnl Process this file with autoconf to produce a configure script.
AC_INIT
AM_INIT_AUTOMAKE(shadow, 4.0.14)
AM_INIT_AUTOMAKE(shadow, 4.0.15)
AC_CONFIG_HEADERS([config.h])
dnl Some hacks...
@ -324,10 +324,17 @@ if test "$with_skey" = "yes"; then
AC_CHECK_LIB(skey, skeychallenge, [LIBSKEY=-lskey],
[AC_MSG_ERROR([liskey missing. You can download S/Key source code from http://rsync1.it.gentoo.org/gentoo/distfiles/skey-1.1.5.tar.bz2])])
AC_DEFINE(SKEY, 1, [Define to support S/Key logins.])
AC_TRY_COMPILE([
#include <stdio.h>
#include <skey.h>
],[
skeychallenge((void*)0, (void*)0, (void*)0, 0);
],[AC_DEFINE(SKEY_BSD_STYLE, 1, [Define to support newer BSD S/Key API])])
fi
AM_GNU_GETTEXT_VERSION(0.12.1)
AM_GNU_GETTEXT([external], [need-ngettext])
AM_CONDITIONAL(USE_NLS, test "x$USE_NLS" = "xyes")
AC_CONFIG_FILES([
Makefile

View File

@ -128,6 +128,8 @@ SHELL = @SHELL@
STRIP = @STRIP@
U = @U@
USE_NLS = @USE_NLS@
USE_NLS_FALSE = @USE_NLS_FALSE@
USE_NLS_TRUE = @USE_NLS_TRUE@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
XMLCATALOG = @XMLCATALOG@

View File

@ -128,6 +128,8 @@ SHELL = @SHELL@
STRIP = @STRIP@
U = @U@
USE_NLS = @USE_NLS@
USE_NLS_FALSE = @USE_NLS_FALSE@
USE_NLS_TRUE = @USE_NLS_TRUE@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
XMLCATALOG = @XMLCATALOG@

View File

@ -137,6 +137,8 @@ SHELL = @SHELL@
STRIP = @STRIP@
U = @U@
USE_NLS = @USE_NLS@
USE_NLS_FALSE = @USE_NLS_FALSE@
USE_NLS_TRUE = @USE_NLS_TRUE@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
XMLCATALOG = @XMLCATALOG@

View File

@ -128,6 +128,8 @@ SHELL = @SHELL@
STRIP = @STRIP@
U = @U@
USE_NLS = @USE_NLS@
USE_NLS_FALSE = @USE_NLS_FALSE@
USE_NLS_TRUE = @USE_NLS_TRUE@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
XMLCATALOG = @XMLCATALOG@

View File

@ -6,7 +6,7 @@ DEFS =
lib_LTLIBRARIES = libshadow.la
libshadow_la_LDFLAGS = -version-info 0:0:0
libshadow_la_LIBADD = $(INTLLIBS) $(LIBCRYPT) $(LIBSKEY) $(LIBMD) $(LIBSELINUX)
libshadow_la_LIBADD = $(INTLLIBS) $(LIBCRYPT) $(LIBSKEY) $(LIBMD)
libshadow_la_SOURCES = \
commonio.c \

View File

@ -58,7 +58,7 @@ LTLIBRARIES = $(lib_LTLIBRARIES)
am__DEPENDENCIES_1 =
libshadow_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
$(am__DEPENDENCIES_1)
am_libshadow_la_OBJECTS = commonio.lo encrypt.lo fputsx.lo getdef.lo \
getpass.lo groupio.lo gshadow.lo lockpw.lo nscd.lo port.lo \
pwauth.lo pwio.lo sgetgrent.lo sgetpwent.lo sgroupio.lo \
@ -157,6 +157,8 @@ SHELL = @SHELL@
STRIP = @STRIP@
U = @U@
USE_NLS = @USE_NLS@
USE_NLS_FALSE = @USE_NLS_FALSE@
USE_NLS_TRUE = @USE_NLS_TRUE@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
XMLCATALOG = @XMLCATALOG@
@ -209,7 +211,7 @@ target_alias = @target_alias@
AUTOMAKE_OPTIONS = 1.0 foreign
lib_LTLIBRARIES = libshadow.la
libshadow_la_LDFLAGS = -version-info 0:0:0
libshadow_la_LIBADD = $(INTLLIBS) $(LIBCRYPT) $(LIBSKEY) $(LIBMD) $(LIBSELINUX)
libshadow_la_LIBADD = $(INTLLIBS) $(LIBCRYPT) $(LIBSKEY) $(LIBMD)
libshadow_la_SOURCES = \
commonio.c \
commonio.h \

View File

@ -1,4 +1,4 @@
/* $Id: exitcodes.h,v 1.7 2005/08/31 17:36:11 kloczek Exp $ */
/* $Id: exitcodes.h,v 1.8 2006/01/17 22:06:03 kloczek Exp $ */
/*
* Exit codes used by shadow programs
@ -11,3 +11,5 @@
#define E_SHADOW_NOTFOUND 15 /* not found shadow password file */
#define E_GROUP_NOTFOUND 16 /* not found group file */
#define E_GSHADOW_NOTFOUND 17 /* not found shadow group file */
#define E_CMD_NOEXEC 126 /* can't run command/shell */
#define E_CMD_NOTFOUND 127 /* can't find command/shell to run */

View File

@ -9,4 +9,7 @@ extern unsigned int getdef_unum (const char *, unsigned int);
extern char *getdef_str (const char *);
extern int putdef_str (const char *, const char *);
/* default UMASK value if not specified in /etc/login.defs */
#define GETDEF_DEFAULT_UMASK 022
#endif /* _GETDEF_H */

View File

@ -6,7 +6,7 @@
* Juha Virtanen, <jiivee@hut.fi>; November 1995
*/
/*
* $Id: prototypes.h,v 1.26 2006/01/02 23:32:51 kloczek Exp $
* $Id: prototypes.h,v 1.28 2006/02/07 16:36:30 kloczek Exp $
*
* Added a macro to work around ancient (non-ANSI) compilers, just in case
* someone ever tries to compile this with SunOS cc... --marekm
@ -82,13 +82,9 @@ extern int hushed (const struct passwd *);
/* audit_help.c */
#ifdef WITH_AUDIT
extern int audit_fd;
#endif
void audit_help_open (void);
void audit_help_log (const char *, ...)
#ifdef __GNUC__
__attribute__ ((format (printf, 1, 2)));
#else
;
extern void audit_help_open (void);
extern void audit_logger (int type, const char *pgname, const char *op,
const char *name, unsigned int id, int result);
#endif
/* limits.c */
@ -149,7 +145,7 @@ extern void setup (struct passwd *);
extern void setup_env (struct passwd *);
/* shell.c */
extern void shell (const char *, const char *);
extern int shell (const char *, const char *, char *const *);
/* strtoday.c */
extern long strtoday (const char *);

View File

@ -30,7 +30,7 @@
#include <config.h>
#ifndef USE_PAM
#ident "$Id: pwauth.c,v 1.19 2005/08/31 17:24:56 kloczek Exp $"
#ident "$Id: pwauth.c,v 1.20 2006/03/11 21:15:55 kloczek Exp $"
#include <sys/types.h>
#include <signal.h>
@ -123,6 +123,14 @@ pw_auth (const char *cipher, const char *user, int reason, const char *input)
* If there is no SKEY information we default to not using SKEY.
*/
# ifdef SKEY_BSD_STYLE
/*
* Some BSD updates to the S/KEY API adds a fourth parameter; the
* sizeof of the challenge info buffer.
*/
# define skeychallenge(s,u,c) skeychallenge(s,u,c,sizeof(c))
# endif
if (skeychallenge (&skey, user, challenge_info) == 0)
use_skey = 1;
#endif

View File

@ -162,6 +162,8 @@ SHELL = @SHELL@
STRIP = @STRIP@
U = @U@
USE_NLS = @USE_NLS@
USE_NLS_FALSE = @USE_NLS_FALSE@
USE_NLS_TRUE = @USE_NLS_TRUE@
VERSION = @VERSION@
XGETTEXT = @XGETTEXT@
XMLCATALOG = @XMLCATALOG@

View File

@ -9,7 +9,7 @@
#include <grp.h>
#include <errno.h>
#ident "$Id: addgrps.c,v 1.8 2005/08/31 17:24:57 kloczek Exp $"
#ident "$Id: addgrps.c,v 1.9 2006/01/23 09:46:30 kloczek Exp $"
#define SEP ",:"
/*
@ -33,7 +33,7 @@ int add_groups (const char *list)
i = 16;
for (;;) {
grouplist = malloc (i * sizeof (GETGROUPS_T));
grouplist = (gid_t *) malloc (i * sizeof (GETGROUPS_T));
if (!grouplist)
return -1;
ngroups = getgroups (i, grouplist);
@ -67,7 +67,7 @@ int add_groups (const char *list)
fprintf (stderr, _("Warning: too many groups\n"));
break;
}
tmp = realloc (grouplist, (ngroups + 1) * sizeof (GETGROUPS_T));
tmp = (gid_t *) realloc (grouplist, (ngroups + 1) * sizeof (GETGROUPS_T));
if (!tmp) {
free (grouplist);
return -1;

View File

@ -35,10 +35,11 @@
#include <errno.h>
#include "prototypes.h"
#include "defines.h"
#include "exitcodes.h"
#include <pwd.h>
#include <grp.h>
#ident "$Id: age.c,v 1.12 2005/08/31 17:24:57 kloczek Exp $"
#ident "$Id: age.c,v 1.13 2006/01/18 19:38:27 kloczek Exp $"
#ifndef PASSWD_PROGRAM
#define PASSWD_PROGRAM "/bin/passwd"
@ -125,7 +126,7 @@ int expire (const struct passwd *pw, const struct spwd *sp)
execl (PASSWD_PROGRAM, PASSWD_PROGRAM, pw->pw_name, (char *) 0);
err = errno;
perror ("Can't execute " PASSWD_PROGRAM);
_exit ((err == ENOENT) ? 127 : 126);
_exit (err == ENOENT ? E_CMD_NOTFOUND : E_CMD_NOEXEC);
} else if (pid == -1) {
perror ("fork");
exit (1);

View File

@ -1,7 +1,7 @@
/* A Bison parser, made by GNU Bison 2.0. */
/* A Bison parser, made by GNU Bison 2.1. */
/* Skeleton parser for Yacc-like parsing with Bison,
Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA. */
/* As a special exception, when this file is copied by Bison into a
Bison output file, you may use that output file without restriction.
@ -36,6 +36,9 @@
/* Identify Bison output. */
#define YYBISON 1
/* Bison version. */
#define YYBISON_VERSION "2.1"
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
@ -71,6 +74,7 @@
tZONE = 273
};
#endif
/* Tokens. */
#define tAGO 258
#define tDAY 259
#define tDAY_UNIT 260
@ -208,7 +212,7 @@
#define yycheck gd_yycheck
static int yylex ();
static int yyerror ();
static int yyerror (char *s);
#define EPOCH 1970
#define HOUR(x) ((x) * 60)
@ -277,14 +281,19 @@ static int yyRelYear;
# define YYERROR_VERBOSE 0
#endif
/* Enabling the token table. */
#ifndef YYTOKEN_TABLE
# define YYTOKEN_TABLE 0
#endif
#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
#line 172 "getdate.y"
typedef union YYSTYPE {
int Number;
enum _MERIDIAN Meridian;
} YYSTYPE;
/* Line 190 of yacc.c. */
#line 288 "getdate.c"
/* Line 196 of yacc.c. */
#line 297 "getdate.c"
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
# define YYSTYPE_IS_TRIVIAL 1
@ -295,18 +304,37 @@ typedef union YYSTYPE {
/* Copy the second part of user declarations. */
/* Line 213 of yacc.c. */
#line 300 "getdate.c"
/* Line 219 of yacc.c. */
#line 309 "getdate.c"
#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
# define YYSIZE_T __SIZE_TYPE__
#endif
#if ! defined (YYSIZE_T) && defined (size_t)
# define YYSIZE_T size_t
#endif
#if ! defined (YYSIZE_T) && (defined (__STDC__) || defined (__cplusplus))
# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
# define YYSIZE_T size_t
#endif
#if ! defined (YYSIZE_T)
# define YYSIZE_T unsigned int
#endif
#ifndef YY_
# if YYENABLE_NLS
# if ENABLE_NLS
# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
# define YY_(msgid) dgettext ("bison-runtime", msgid)
# endif
# endif
# ifndef YY_
# define YY_(msgid) msgid
# endif
#endif
#if ! defined (yyoverflow) || YYERROR_VERBOSE
# ifndef YYFREE
# define YYFREE free
# endif
# ifndef YYMALLOC
# define YYMALLOC malloc
# endif
/* The parser invokes alloca or malloc; define the necessary symbols. */
# ifdef YYSTACK_USE_ALLOCA
@ -315,6 +343,10 @@ typedef union YYSTYPE {
# define YYSTACK_ALLOC __builtin_alloca
# else
# define YYSTACK_ALLOC alloca
# if defined (__STDC__) || defined (__cplusplus)
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
# define YYINCLUDED_STDLIB_H
# endif
# endif
# endif
# endif
@ -322,13 +354,39 @@ typedef union YYSTYPE {
# ifdef YYSTACK_ALLOC
/* Pacify GCC's `empty if-body' warning. */
# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
# else
# if defined (__STDC__) || defined (__cplusplus)
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
# define YYSIZE_T size_t
# ifndef YYSTACK_ALLOC_MAXIMUM
/* The OS might guarantee only one guard page at the bottom of the stack,
and a page size can be as small as 4096 bytes. So we cannot safely
invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
to allow for a few compiler-allocated temporary stack slots. */
# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2005 */
# endif
# else
# define YYSTACK_ALLOC YYMALLOC
# define YYSTACK_FREE YYFREE
# ifndef YYSTACK_ALLOC_MAXIMUM
# define YYSTACK_ALLOC_MAXIMUM ((YYSIZE_T) -1)
# endif
# ifdef __cplusplus
extern "C" {
# endif
# ifndef YYMALLOC
# define YYMALLOC malloc
# if (! defined (malloc) && ! defined (YYINCLUDED_STDLIB_H) \
&& (defined (__STDC__) || defined (__cplusplus)))
void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
# endif
# endif
# ifndef YYFREE
# define YYFREE free
# if (! defined (free) && ! defined (YYINCLUDED_STDLIB_H) \
&& (defined (__STDC__) || defined (__cplusplus)))
void free (void *); /* INFRINGES ON USER NAME SPACE */
# endif
# endif
# ifdef __cplusplus
}
# endif
# endif
#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
@ -363,7 +421,7 @@ union yyalloc
# define YYCOPY(To, From, Count) \
do \
{ \
register YYSIZE_T yyi; \
YYSIZE_T yyi; \
for (yyi = 0; yyi < (Count); yyi++) \
(To)[yyi] = (From)[yyi]; \
} \
@ -413,7 +471,7 @@ union yyalloc
#define YYUNDEFTOK 2
#define YYMAXUTOK 273
#define YYTRANSLATE(YYX) \
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
@ -495,8 +553,8 @@ static const unsigned short int yyrline[] =
};
#endif
#if YYDEBUG || YYERROR_VERBOSE
/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
First, the terminals, then, starting at YYNTOKENS, nonterminals. */
static const char *const yytname[] =
{
@ -621,22 +679,6 @@ static const unsigned char yystos[] =
32
};
#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
# define YYSIZE_T __SIZE_TYPE__
#endif
#if ! defined (YYSIZE_T) && defined (size_t)
# define YYSIZE_T size_t
#endif
#if ! defined (YYSIZE_T)
# if defined (__STDC__) || defined (__cplusplus)
# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
# define YYSIZE_T size_t
# endif
#endif
#if ! defined (YYSIZE_T)
# define YYSIZE_T unsigned int
#endif
#define yyerrok (yyerrstatus = 0)
#define yyclearin (yychar = YYEMPTY)
#define YYEMPTY (-2)
@ -666,8 +708,8 @@ do \
goto yybackup; \
} \
else \
{ \
yyerror ("syntax error: cannot back up");\
{ \
yyerror (YY_("syntax error: cannot back up")); \
YYERROR; \
} \
while (0)
@ -746,7 +788,7 @@ do { \
if (yydebug) \
{ \
YYFPRINTF (stderr, "%s ", Title); \
yysymprint (stderr, \
yysymprint (stderr, \
Type, Value); \
YYFPRINTF (stderr, "\n"); \
} \
@ -794,13 +836,13 @@ yy_reduce_print (yyrule)
#endif
{
int yyi;
unsigned int yylno = yyrline[yyrule];
YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
unsigned long int yylno = yyrline[yyrule];
YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu), ",
yyrule - 1, yylno);
/* Print the symbols being reduced, and their result. */
for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
YYFPRINTF (stderr, "-> %s\n", yytname[yyr1[yyrule]]);
}
# define YY_REDUCE_PRINT(Rule) \
@ -829,7 +871,7 @@ int yydebug;
if the built-in stack extension method is used).
Do not make this value too large; the results are undefined if
SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
evaluated with infinite-precision integer arithmetic. */
#ifndef YYMAXDEPTH
@ -853,7 +895,7 @@ yystrlen (yystr)
const char *yystr;
# endif
{
register const char *yys = yystr;
const char *yys = yystr;
while (*yys++ != '\0')
continue;
@ -878,8 +920,8 @@ yystpcpy (yydest, yysrc)
const char *yysrc;
# endif
{
register char *yyd = yydest;
register const char *yys = yysrc;
char *yyd = yydest;
const char *yys = yysrc;
while ((*yyd++ = *yys++) != '\0')
continue;
@ -889,7 +931,55 @@ yystpcpy (yydest, yysrc)
# endif
# endif
#endif /* !YYERROR_VERBOSE */
# ifndef yytnamerr
/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
quotes and backslashes, so that it's suitable for yyerror. The
heuristic is that double-quoting is unnecessary unless the string
contains an apostrophe, a comma, or backslash (other than
backslash-backslash). YYSTR is taken from yytname. If YYRES is
null, do not copy; instead, return the length of what the result
would have been. */
static YYSIZE_T
yytnamerr (char *yyres, const char *yystr)
{
if (*yystr == '"')
{
size_t yyn = 0;
char const *yyp = yystr;
for (;;)
switch (*++yyp)
{
case '\'':
case ',':
goto do_not_strip_quotes;
case '\\':
if (*++yyp != '\\')
goto do_not_strip_quotes;
/* Fall through. */
default:
if (yyres)
yyres[yyn] = *yyp;
yyn++;
break;
case '"':
if (yyres)
yyres[yyn] = '\0';
return yyn;
}
do_not_strip_quotes: ;
}
if (! yyres)
return yystrlen (yystr);
return yystpcpy (yyres, yystr) - yyres;
}
# endif
#endif /* YYERROR_VERBOSE */
@ -1009,13 +1099,13 @@ yyparse (void)
#else
int
yyparse ()
;
#endif
#endif
{
register int yystate;
register int yyn;
int yystate;
int yyn;
int yyresult;
/* Number of tokens to shift before error messages enabled. */
int yyerrstatus;
@ -1033,12 +1123,12 @@ yyparse ()
/* The state stack. */
short int yyssa[YYINITDEPTH];
short int *yyss = yyssa;
register short int *yyssp;
short int *yyssp;
/* The semantic value stack. */
YYSTYPE yyvsa[YYINITDEPTH];
YYSTYPE *yyvs = yyvsa;
register YYSTYPE *yyvsp;
YYSTYPE *yyvsp;
@ -1070,9 +1160,6 @@ yyparse ()
yyssp = yyss;
yyvsp = yyvs;
yyvsp[0] = yylval;
goto yysetstate;
/*------------------------------------------------------------.
@ -1105,7 +1192,7 @@ yyparse ()
data in use in that stack, in bytes. This used to be a
conditional around just the two extra args, but that might
be undefined if yyoverflow is a macro. */
yyoverflow ("parser stack overflow",
yyoverflow (YY_("memory exhausted"),
&yyss1, yysize * sizeof (*yyssp),
&yyvs1, yysize * sizeof (*yyvsp),
@ -1116,11 +1203,11 @@ yyparse ()
}
#else /* no yyoverflow */
# ifndef YYSTACK_RELOCATE
goto yyoverflowlab;
goto yyexhaustedlab;
# else
/* Extend the stack our own way. */
if (YYMAXDEPTH <= yystacksize)
goto yyoverflowlab;
goto yyexhaustedlab;
yystacksize *= 2;
if (YYMAXDEPTH < yystacksize)
yystacksize = YYMAXDEPTH;
@ -1130,7 +1217,7 @@ yyparse ()
union yyalloc *yyptr =
(union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
if (! yyptr)
goto yyoverflowlab;
goto yyexhaustedlab;
YYSTACK_RELOCATE (yyss);
YYSTACK_RELOCATE (yyvs);
@ -1666,10 +1753,11 @@ yyreduce:
break;
default: break;
}
/* Line 1037 of yacc.c. */
#line 1673 "getdate.c"
/* Line 1126 of yacc.c. */
#line 1761 "getdate.c"
yyvsp -= yylen;
yyssp -= yylen;
@ -1708,12 +1796,36 @@ yyerrlab:
if (YYPACT_NINF < yyn && yyn < YYLAST)
{
YYSIZE_T yysize = 0;
int yytype = YYTRANSLATE (yychar);
const char* yyprefix;
char *yymsg;
YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
YYSIZE_T yysize = yysize0;
YYSIZE_T yysize1;
int yysize_overflow = 0;
char *yymsg = 0;
# define YYERROR_VERBOSE_ARGS_MAXIMUM 5
char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
int yyx;
#if 0
/* This is so xgettext sees the translatable formats that are
constructed on the fly. */
YY_("syntax error, unexpected %s");
YY_("syntax error, unexpected %s, expecting %s");
YY_("syntax error, unexpected %s, expecting %s or %s");
YY_("syntax error, unexpected %s, expecting %s or %s or %s");
YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
#endif
char *yyfmt;
char const *yyf;
static char const yyunexpected[] = "syntax error, unexpected %s";
static char const yyexpecting[] = ", expecting %s";
static char const yyor[] = " or %s";
char yyformat[sizeof yyunexpected
+ sizeof yyexpecting - 1
+ ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
* (sizeof yyor - 1))];
char const *yyprefix = yyexpecting;
/* Start YYX at -YYN if negative to avoid negative indexes in
YYCHECK. */
int yyxbegin = yyn < 0 ? -yyn : 0;
@ -1721,48 +1833,68 @@ yyerrlab:
/* Stay within bounds of both yycheck and yytname. */
int yychecklim = YYLAST - yyn;
int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
int yycount = 0;
int yycount = 1;
yyarg[0] = yytname[yytype];
yyfmt = yystpcpy (yyformat, yyunexpected);