2006-03-29  David Weinehall  <tao@acc.umu.se>

	* Release 0.1.5.
	* NEWS: Updated for 0.1.5 release.

2006-03-25  David Weinehall  <tao@acc.umu.se>

	* po/sv.po, po/sv.UTF-8.po: Translation fixes.
	* THANKS: Removed e-mail addresses, since some people might not
	  want their e-mail address listed.  Added reasons why people
	  are listed instead.

2006-03-25  David Weinehall  <tao@acc.umu.se>

	* src/lsuser.c (main): User administrators are supposed to be
	  able to read administrative information for other users.
	* src/lsgroup.c (main): Swap behaviour of isgrpadmin variable;
	  zero for FALSE, and non-zero for true makes more sense.

2006-03-23  David Weinehall  <tao@acc.umu.se>

	* src/*: Final few doxygen tags.

2006-03-22  David Weinehall  <tao@acc.umu.se>

	* src/*: More doxygen tags.

2006-03-21  David Weinehall  <tao@acc.umu.se>

	* src/*: More doxygen tags.

2006-03-20  David Weinehall  <tao@acc.umu.se>

	* Doxyfile: New file.
	* src/*: Start fixing the doxygen tags for the code.

2006-03-19  David Weinehall  <tao@acc.umu.se>

	* src/sysutils.c (input_password): Added strlen check for
	  the check argument, otherwise an empty check string would
	  match any password.
	* src/libpasswd.c (set_passwd): Do not enforce minimum
	  password change interval for useradministrators.

2006-03-19  Ben Asselstine  <benasselstine@gmail.com>

	* src/gpasswd.c (parse_opt): Fix option parsing to accept
	  `-s' properly.
        * src/libpasswd.c (set_passwd): Don't require a group when
	  `-s' has been specified.

2006-03-19  David Weinehall  <tao@acc.umu.se>

	* src/nologin.c: New file.
	* src/Makefile.am: Build and install nologin as well.
	* man/nologin.8: New file.
	* man/sv/gpasswd.1: New file.
	* man/sv/lastlog.1: New file.
	* man/sv/wall.1: New file.
	* man/sv/nologin.8: New file.
	* man/sv/Makefile.am: Add the new manpages.
	* man/*, man/sv/*: Synchronise and harmonise =)
	* src/libpasswd.c (set_passwd): Output `\n' after the hash.

2006-03-18  David Weinehall  <tao@acc.umu.se>

	* src/lsage.c (args_doc[]): Explain attribute=value syntax.
	* src/lsage.c (struct arguments): Add `nargs' variable.
	* src/lsage.c (main): Add support for attribute=value syntax.
	* man/lsage.1: Updated to include attribute=value support.

2006-03-13  David Weinehall  <tao@acc.umu.se>

	* src/lsage.c (main): Fix inverted logic in permission check.
	* src/lsage.c (main): Drop privileges whenever possible.
	* man/lsage.1: Minor update.

2006-03-13  David Weinehall  <tao@acc.umu.se>

	* src/lsuser.c (main): Drop privileges whenever possible.
	* src/lsgroup.c (main): Drop privileges whenever possible.
	* man/lsuser.1: Minor update.
	* man/lsgroup.1: Minor update.
	* src/sysutils.h: Define fallback seteuid/setegid
	  if _POSIX_SAVED_IDS is not set.

2006-03-13  Ben Asselstine  <benasselstine@gmail.com>

	* src/lsgroup.c (main): Fix segmentation fault when reading admlist.

2006-03-12  David Weinehall  <tao@acc.umu.se>

	* po/sv.UTF-8.po: New file.
	* po/sv.po: Synced.
	* po/LINGUAS: Added sv.UTF-8.
	* po/POTFILES.in: Added some missing files.
	* src/lsgroup.c (doc[]): Rewrite help a little.
	* src/lsuser.c (doc[]): Rewrite help a little.
	* src/vipw.c (doc[]): Rewrite help a little.
	* src/wall.c (options[], main): Change description for banner option.
	* src/wall.c (main): Add a comment stating that "%H:%M"
	  is an ugly hack.
	* src/write.c (main): Change description for banner option.
	* src/sysutils.c (version): Update copyright information.
	* TODO: Updated with note about the localised time problem i wall.c.

2006-03-04  David Weinehall  <tao@acc.umu.se>

	* doc/timeline.txt: Updated a bit to match reality.

2006-03-04  David Weinehall  <tao@acc.umu.se>

	* src/cppw.c (args_doc): Mark string for translation.
	* src/add-shell.c (args_doc): Mark string for translation.
	* src/remove-shell.c (args_doc): Mark string for translation.

2006-03-04  Ben Asselstine  <benasselstine@gmail.com>

	* src/lsgroup.c (doc[]): List valid attributes.
	* src/lsgroup.c (args_doc[]): Explain attribute=value syntax.
	* src/lsgroup.c (struct arguments): Add `nargs' variable.
	* src/lsgroup.c (parse_opt): Make sure the last argument
	  is not an attribute=value pair.
	* src/lsgroup.c (main): Add support for attribute=value syntax.
	* man/lsgroup.1: Updated to include attribute=value support.
	* src/lsuser.c (doc[]): List valid attributes.
	* src/lsuser.c (args_doc[]): Explain attribute=value syntax.
	* src/lsuser.c (struct arguments): Add `nargs' variable.
	* src/lsuser.c (parse_opt): Make sure the last argument
	  is not an attribute=value pair.
	* src/lsuser.c (main): Add support for attribute=value syntax.
	* man/lsuser.1: Updated to include attribute=value support.

2006-03-04  David Weinehall  <tao@acc.umu.se>

	* src/lastlog.c (main): Slight alterations, to properly support
	  RFC 2822 even on systems where LC_TIME is set to something else
	  than "C".

2006-03-04  Ben Asselstine  <benasselstine@gmail.com>

	* src/lastlog.c (struct options[]): Add `rfc-2822' argument.
	* src/lastlog.c (struct arguments): Add `rfc2822' variable.
	* src/lastlog.c (parse_opt): Add support for `rfc-2822'.
        * src/lastlog.c (main): Add option to output dates in RFC 2822 format.
	* man/lastlog.1: Updated to include RFC 2822 option.
	* TODO: Updated.

2006-03-02  David Weinehall  <tao@acc.umu.se>

	* doc/timeline.txt: Updated.

2006-02-26  David Weinehall  <tao@acc.umu.se>

	* TODO: Updated.
	* doc/timeline.txt: Updated.
	* man/lastlog.1: Added note that the dates printed by lastlog might
	  not match that of other implementations of lastlog.

2006-02-25  Barry deFreese  <bddebian@comcast.net>

	* src/chage.c (struct option): Add `force' argument.
	* src/chage.c (struct arguments): Add `force' variable.
	* src/chage.c (parse_opt): Add support for `force'.
	* src/chage.c (main), src/chgroup.c (main), src/chuser.c (main):
	  Require `--force' option when specifying `ALL'.
	* src/sysutils.c (date_to_string):
	  Use asprintf instead of snprintf; simplifies allocation code a lot.
	* src/wall.c (main), src/write.c (main):
	  Use asprintf instead of malloc/snprintf/realloc; simplifies
	  allocation code a lot.

2006-02-20  David Weinehall  <tao@acc.umu.se>

	* TODO: Updated.

2006-02-16  David Weinehall  <tao@acc.umu.se>

	* ChangeLog: Just added whitespace to some old entries for
	  increased consistency.

2006-02-11  Jeff Bailey  <jbailey@raspberryginger.com>

	* tests/: New directory.

	* tests/Makefile.am: New file.

	* tests/group.base: New file.
	* tests/passwd.base: New file.
	* tests/shadow.base: Old file.
	  ...
	  Kidding.  It's a new file, too.
	* tests/.cvsignore: New file.

	* Makefile.am: Add tests to SUBDIRS.
	* configure.ac: Generate tests/Makefile.
	
2006-02-11  Jeff Bailey  <jbailey@raspberryginger.com>

	THIS CHANGE NOW RESPECTS THE CONFIGURE SETTINGS FOR SYSCONFDIR.
	You probably want to configure it with --sysconfdir=/etc now.

	* src/.cvsignore: Update to include all the binaries.

	* src/Makefile.am (AM_CPPFLAGS): Define SYSCONFDIR.

	* src/sysutils.h (PASSWD_FILE): Use SYSCONFDIR instead of "/etc"
	  (SHADOW_FILE): Likewise.
	  (GROUP_FILE): Likewise.
	  (SHELLS_FILE): Likewise.
	  (DEFAULT_SKEL): Likewise.
	  Remove GSHADOW_FILE definition, it can be found ...

	* src/gshadow.h (GSHADOW_FILE): ... here.
	  Use SYSCONFDIR instead of "/etc".

	* src/cppw.c: Use SYSCONFDIR instead of "/etc"

2006-02-06  David Weinehall  <tao@acc.umu.se>

	* src/rmgroup.c (struct option): Add missing "verbose" entry.
        * man/add-shell.8, man/chage.8, man/chfn.1, man/chgroup.8,
	  man/chgrpmem.1, man/chpasswd.8, man/chsh.1, man/chuser.8,
	  man/cppw.8, man/passwd.1, man/group.5, man/gshadow.5,
	  man/lastlog.1, man/lsage.1, man/lsgroup.1, man/lsuser.1,
	  man/mkgroup.8, man/mkgroup.default.5, man/mkuser.8,
	  man/mkuser.default.5, man/passwd.1, man/passwd.5,
	  man/remove-shell.8, man/rmgroup.8, man/rmuser.8,
	  man/shadow.5, man/vipw.8, man/wall.1: Minor fixes.
	* src/add-shell.c (struct option),
	  src/chage.c (struct option),
	  src/chfn.c (struct option),
	  src/chgroup.c (struct option),
	  src/chgrpmem.c (struct option),
	  src/chsh.c (struct argp_option),
	  src/chuser.c (struct option),
	  src/cppw.c (struct option),
	  src/lastlog.c (struct option),
	  src/lsage.c (struct option),
	  src/lsgroup.c (struct option),
	  src/lsuser.c (struct option),
	  src/mkgroup.c (struct option),
	  src/mkuser.c (struct option),
	  src/remove-shell.c (struct option),
	  src/rmgroup.c (struct option),
	  src/rmuser.c (struct option),
	  src/wall.c (struct option): Uppercase initial letter
	  in option descriptions.

2006-02-05  Barry deFreese  <bddebian@comcast.net>

	* man/wall.1, man/lastlog.1: New files.

2006-02-05  David Weinehall  <tao@acc.umu.se>

	* Release 0.1.4.
	* AUTHORS: Add Ben Asselstine.
	* NEWS: Updated for 0.1.4 release.
	* README: Minor updates.
	* src/Makefile.am: Fix typo.
	* src/Makefile.am: Don't build/install write.
	* src/Makefile.am: libpasswd.h needs to be listed too,
	  otherwise it's excluded from the dist target.
	* man/sv/chpasswd.8: Fix typo.
	* man/sv/chuser.8: Fix typo.

2006-02-04  Ben Asselstine  <benasselstine@gmail.com>

        * src/gpasswd.c, src/libpasswd.c, src/libpasswd.h,
	  man/gpasswd.1: New files.
	* src/passwd.c, man/passwd.1: Remove group password related stuff.
	* src/Makefile.am, man/Makefile.am: Adapt to passwd/gpasswd changes.
	* src/passwd.c: Added feature to print hash without changing
	  password.
	* TODO: Update TODO-list.

2006-02-04  David Weinehall  <tao@acc.umu.se>

	* src/chage.c (main), src/chfn.c (main), src/chgroup.c (main),
	  src/chsh.c (main), src/chuser.c (main), src/mkgroup.c (main),
	  src/mkuser.c (main), src/remove-shell.c (main),
	  src/rmgroup.c (main), src/rmuser.c (main): Copy the file
	  permissions to the new files in a (hopefully) race-free manner.
	* TODO: Update TODO-list.

2006-02-03  David Weinehall  <tao@acc.umu.se>

	* src/chgrpmem.c (main): Copy the file permissions to the
	  new files in a (hopefully) race-free manner.

2006-02-01  David Weinehall  <tao@acc.umu.se>

	* src/chgrpmem.c (main): Make it possible to set the adms and users
	  list to the empty list.
	* src/sysutils.c (remove_from_list): If we remove the only entry,
	  return an empty string, not NULL.

2006-01-31  Barry deFreese  <bddebian@comcast.net>

	* src/mkuser.c (main): Fix handling of GECOS information.

2006-01-31  David Weinehall  <tao@acc.umu.se>

	* src/lsgroup.c (main): Initialise gshadowread *before* using it.
	* TODO: Update according to latest changes.

2006-01-30  Barry deFreese  <bddebian@comcast.net>

	* src/chuser.c: Added support for forcing a non-listed shell.

2006-01-27  David Weinehall  <tao@acc.umu.se>

	* TODO: Updated to note that passwd shoulnd't accept -g.
	* src/lastlog.c (main): Fix compile error with gcc4.
	* src/lastlog.c (main, parse_opt): Implemented `-b/--before' option.
	* src/chage.c (parse_opt), src/chgrpmem.c (parse_opt),
	  src/lastlog.c (parse_opt): s/optarg/arg/ to fix various bugs.

2005-05-15  David Weinehall  <tao@acc.umu.se>

	* TODO: Updated to match implementation of tty_write,
	  add new TODO-items.
	* doc/CodingStyle: Added style guideline for comments.
	* doc/inputaudit.txt: added wall and write.
	* doc/security.txt: Added last, fixed typo (suid -> sgid),
	  added lastb symlink.
	* src/sysutils.c (tty_write): Implemented.
	* src/wall.c (send_message): Clear errors if it's EACCES.
	* src/wall.c (send_message): Form proper device entries.
	* src/wall.c (read_msg): New function; read message from
	  stdin and concatenate with banner.
	* src/wall.c (main): Minor cleanup.
	* src/wall.c (main): Allocate banner dynamically instead of
	  statically.  
	* src/wall.c (main): Added code to reopen a file as stdin.
	* src/write.c: New file.
	  | Far from functional...

2004-06-09  Barry deFreese  <bddebian@comcast.net>

	* src/sysutils.c (set_file_perm): New function.
	* src/cppw.c (main): Added check to continue even if
	  /etc/{passwd|group|shadow|gshadow} don't exist.

2004-06-07  David Weinehall  <tao@acc.umu.se>

	* src/chage.c (main): Fixed bug that caused aging information
	  to be lost for all users except the changed user.
	  | Bug reported by Barry deFreese.

2004-06-07  David Weinehall  <tao@acc.umu.se>

	* src/chage.c (parse_opt): Fixed bug in handling of `-E'-option;
	  an empty argument to `-E' means never, not now.
	  | Bug reported by Barry deFreese.
	* src/chage.c (main): Added missing check for non-existing users.
	  | Patch from Barry deFreese.
	* src/mkgroup.c (struct option): It's lastgid, not lastugd.
	  | Bug reported by Barry deFreese.
	* po/sv.po: Updated Swedish translation.

2004-06-06  David Weinehall  <tao@acc.umu.se>

	* src/lsgroup.c (main): Fixed memory-leak in `--attr' handling.
	* src/lsuser.c (main): Fixed memory-leak in `--attr' handling.
	* po/sv.po: Updated Swedish translation.
	* po/sv.po: Replaced the (C) with a real copyright-sign,
	  since it's available in ISO-8859-1.

2004-06-06  Barry deFreese  <bddebian@comcast.net>

	* src/sysutils.c (date_to_string): Changed to treat 0 as never.
	  | This fixes the aging misinterpretation in lsage and chage.
	* src/lsuser.c (main): Added code to handle `--gecos'.
	* TODO: Updated to reflect the fact that the lsage/chage bug
	  is fixed.

2004-06-05  David Weinehall  <tao@acc.umu.se>

	* src/chgroup.c (usage): Removed function.
	* src/chgroup.c (parse_opt): New function.
	* src/chgroup.c (main): Adapted to use argp instead of getopt.
	* src/chuser.c (usage): Removed function.
	* src/chuser.c (parse_opt): New function.
	* src/chuser.c (main): Adapted to use argp instead of getopt.
	* src/mkgroup.c (usage): Removed function.
	* src/mkgroup.c (parse_opt): New function.
	* src/mkgroup.c (main): Adapted to use argp instead of getopt.
	* src/mkuser.c (usage): Removed function.
	* src/mkuser.c (parse_opt): New function.
	* src/mkuser.c (main): Adapted to use argp instead of getopt.
	* src/chuser.c (main): Fixed a bug with incorrect restraints on
	  the user id.
	* src/mkuser.c (main): Fixed a bug with incorrect restraints on
	  the user id.
	* TODO: Updated to reflect the latest issues.
	* po/sv.po: Updated Swedish translation.

2004-06-04  David Weinehall  <tao@acc.umu.se>

	* src/rmuser.c: Minor cleanup.
	* src/rmgroup.c: Added `--verbose' option.

2004-06-04  Barry deFreese  <bddebian@comcast.net>

	* src/rmuser.c (usage): Removed function.
	* src/rmuser.c (parse_opt): New function.
	* src/rmuser.c (main): Adapted to use argp instead of getopt.
	* src/rmuser.c: Added `--verbose' option.

2004-06-03  David Weinehall  <tao@acc.umu.se>

	* src/lsgroup.c, src/lsuser.c, src/passwd.c: Minor cleanup.
	* src/sysutils.c (get_group_admins, is_group_locked,
	  is_user_locked, get_admgroups): Modified these functions
	  to be silent about non-existing groups/users, and let the
	  applications decide whether a warning should be printed or not.

2004-06-03  Barry deFreese  <bddebian@comcast.net>

	* src/lsgroup.c (usage): Removed function.
	* src/lsgroup.c (parse_opt): New function.
	* src/lsgroup.c (main): Adapted to use argp instead of getopt.
	* src/lsuser.c (usage): Removed function.
	* src/lsuser.c (parse_opt): New function.
	* src/lsuser.c (main): Adapted to use argp instead of getopt.
	* src/passwd.c (usage): Removed function.
	* src/passwd.c (parse_opt): New function.
	* src/passwd.c (main): Adapted to use argp instead of getopt.

2004-06-02  David Weinehall  <tao@acc.umu.se>

	* src/lsage.c: Minor cleanup.

2004-06-02  Barry deFreese  <bddebian@comcast.net>

	* src/lsage.c (usage): Removed function.
	* src/lsage.c (parse_opt): New function.
	* src/lsage.c (main): Adapted to use argp instead of getopt.

2004-05-31  David Weinehall  <tao@acc.umu.se>

	* etc/shells: Added /bin/posh.
	* src/chsh.c: Minor cleanup.
	* src/rmgroup.c: Minor cleanup.
	* src/wall.c (usage): Removed function.
	* src/wall.c (parse_opt): New function.
	* src/wall.c (main): Adapted to use argp instead of getopt.
	* src/chgrpmem.c (usage): Removed function.
	* src/chgrpmem.c (parse_opt): New function.
	* src/chgrpmem.c (main): Adapted to use argp instead of getopt.

2004-05-31  Barry deFreese  <bddebian@comcast.net>

	* src/rmgroup.c (usage): Removed function.
	* src/rmgroup.c (parse_opt): New function.
	* src/rmgroup.c (main): Adapted to use argp instead of getopt.
	* src/chsh.c (usage): Removed function.
	* src/chsh.c (parse_opt): New function.
	* src/chsh.c (main): Adapted to use argp instead of getopt.

2004-05-30  David Weinehall  <tao@acc.umu.se>

	* src/*.c: Use error_t instead of int for status.
	* src/chfn.c: Minor cleanup.
	* src/rmgroup.c: s/gr->gr_name/sg->sg_name/ inside the gshadow
	  loop.  Doh!

2004-05-30  Barry deFreese  <bddebian@comcast.net>

	* src/chfn.c (usage): Removed function.
	* src/chfn.c (parse_opt): New function.
	* src/chfn.c (main): Adapted to use argp instead of getopt.

2004-05-29  David Weinehall  <tao@acc.umu.se>

	* src/cppw.c, src/vipw.c, src/add-shell.c, src/remove-shell.c:
	  Minor cleanup.

2004-05-29  Barry deFreese  <bddebian@comcast.net>

	* src/add-shell.c (usage): Removed function.
	* src/add-shell.c (parse_opt): New function.
	* src/add-shell.c (main): Adapted to use argp instead of getopt.
	* src/remove-shell.c (usage): Removed function.
	* src/remove-shell.c (parse_opt): New function.
	* src/remove-shell.c (main): Adapted to use argp instead of getopt,
	  and getline instead of fgets.

2004-05-28  David Weinehall  <tao@acc.umu.se>

	* src/cppw.c, src/vipw.c: Minor cleanup.
	* src/wall.c: Minor cleanup.

2004-05-28  Barry deFreese  <bddebian@comcast.net>

	* src/cppw.c (usage): Removed function.
	* src/cppw.c (parse_opt): New function.
	* src/cppw.c (main): Adapted to use argp instead of getopt.
	* src/vipw.c (usage): Removed function.
	* src/vipw.c (parse_opt): New function.
	* src/vipw.c (main): Adapted to use argp instead of getopt.

2004-05-24  David Weinehall  <tao@acc.umu.se>

	* src/lastlog.c (usage): Removed function.
	* src/lastlog.c (parse_opt): New function.
	* src/lastlog.c (main): Adapted to use argp instead of getopt.
	* po/sv.po: Updated Swedish translation.
	* TODO: Removed some fixed items, added new things to think of.
	* README-alpha: Further describe the implications of running
	  this package on your system...
	* NEWS: Updated.
	* src/Makefile.am: Don't expect getopt* to be in src.
	* AUTHORS: Added Barry deFreese.

2004-05-23  David Weinehall  <tao@acc.umu.se>

	* src/chage.c: Adapted the argp-changes to fit the coding-style
	  of the rest of the programs.
	* src/passwd.c: Check for useradmin-privileges after
	  option-processing; we always want `--help' and `--version' to
	  be successful if at all possible.
	* src/wall.c: New file.
	  | Wall itself is completed, tty_write, however, is at the
	  | moment only a stub that needs to be implemented.
	* src/Makefile.am, po/POTFILES.in: Added wall.c.
	* src/Makefile.am (suidbins): Renamed to suid_root_bins.
	* src/Makefile.am (sgidbins): Renamed to sgid_shadow_bins.
	* src/Makefile.am (sgid_tty_bins): New target.
	* src/Makefile.am (install-exec-hook): Modified to act correctly
	  for suid_root_bins, sgid_shadow_bins, and sgid_tty_bins.
	* src/makefile.am (WARNINGS): Added -Wno-format-y2k, to silence
	  the totally bogus warning when using `%c' with strftime.
	* src/faillog.c (main): Use "%c %z" when printing information about
	  time of latest login.
	* src/sysutils.c, src/sysutils.h (get_host_name): New function.
	* src/chage.c (main): Remove unnecessary variable.
	* src/chage.c (main): Print the correct username information in
	  interactive mode.
	* src/chage.c (main): Fixed incorrect check for whether
	  interactive mode should be used or not.
	  | Bug reported by Barry deFreese.
	* src/sysutils.c, src/sysutils.h (tty_write): New function.
	  | Only a stub for the time being.
	* src/sysutils.c, src/sysutils.h (version): Altered to look
	  the way argp expects it.
	* src/sysutils.c, src/sysutils.h (set_author_information):
	  New function.

2004-05-23  Barry deFreese  <bddebian@comcast.net>

	* src/chage.c (usage): Removed function.
	* src/chage.c (parse_opt): New function.
	* src/chage.c (main): Adapted to use argp instead of getopt.

2004-05-22  David Weinehall  <tao@acc.umu.se>

	* src/sysutils.c, src/sysutils.h (get_all_uids): New function.
	* src/lastlog.c: Finished implementation.
	* doc/CodingStyle: Added blurb about not using GCC extensions.
	* TODO: Updated to reflect the fact that mkuser now sets a
	  default shell (the fix itself was made in v0.1.3).
	* src/faillog.c: Removed file.
	* src/Makefile.am, po/POTFILES.in, doc/timeline.txt,
	  doc/security.txt, README: Remove mentions of faillog.
	  | Rationale: The /var/log/faillog format is far from
	  | standardized and the PAM module that is supposed to keep
	  | the information in it up to date (pam_tally) is sub-par.
	  | We might change this decision later on, but for now,
	  | no faillog...
	* doc/timeline.txt: Made the list alphabetical...

2004-05-21  David Weinehall  <tao@acc.umu.se>

	* doc/security.txt: Added information about faillog and lastlog.
	* src/Makefile.am, po/POTFILES.in: Added faillog.c
	  and lastlog.c.
	* src/chage.c, src/chfn.c, src/chgrpmem.c, src/chsh.c,
	  src/lsage.c, src/lsgroup.c, src/lsuser.c,
	  src/mkgroup.c, src/mkuser.c (usage): Improved usage-information
	  to indicate when an argument is needed or optional.
	* src/lsgroup.c (main): `--attr' should have an optional argument,
	  not a required argument.
	* src/chfn.c, src/chage.c, src/chgroup.c, src/chuser.c,
	  src/cppw.c, src/lsage.c, src/lsgroup.c, lsuser.c,
	  src/mkgroup.c, src/passwd.c, src/rmgroup.c, src/rmuser.c,
	  src/vipw.c (main): Whitespace fixes.
	* src/passwd.c (main): Fixed incorrect short-options.
	* src/chgrpmem.c (main): Made short options work properly.
	* src/chage.c, src/chfn.c, src/chgroup.c, src/chuser.c,
	  src/cppw.c, src/lsuser.c, src/mkgroup.c, src/mkuser.c,
	  src/passwd.c, src/vipw.c (usage):
	  Made usage-information show options in alphabetical order.
	* src/faillog.c, src/lastlog.c: New files.
	* man/add-shell.c, man/sv/add-shell.c, man/remove-shell.c,
	  man/sv/remove-shell.c: Remove reference to short-options
	  for commands that don't have any.

2004-05-20  David Weinehall  <tao@acc.umu.se>

	* src/chgroup.c, src/chsh.c, src/chuser.c, src/passwd.c (usage):
	  Fixed incorrect usage-information.
	* man/mkuser.8, man/sv/mkuser.8, man/rmgroup.8: Fixed incorrect
	  usage-information.
	* man/sv/chsh.1: Fixed a typo.
	* man/Makefile.am, man/sv/Makefile.am: Added add-shell.8
	  and remove-shell.8.
	* man/add-shell.8, man/sv/add-shell.8, man/remove-shell.8,
	  man/sv/remove-shell.8: New files.
	* po/sv.po: Updated Swedish translation.
	* doc/CodingStyle: Updated to point out that manual-pages ARE
	  important, no matter what the GNU standards proclaim.
	* doc/timeline.txt: Updated.
	* NEWS: Updated.
	* configure.ac, Makefile.am, src/Makefile.am, etc/Makefile.am,
	  etc/pam.d/Makefile.am, man/Makefile.am, man/sv/Makefile.am:
	  Fixed copyright-notices.
	* doc/security.txt: Added add-shell and remove-shell.
	* doc/inputaudit.txt: Added add-shell and remove-shell.

2004-05-19  David Weinehall  <tao@acc.umu.se>

	* src/chage.c, src/chfn.c, src/chgroup.c, src/chgrpmem.c,
	  src/chsh.c, src/chuser.c, src/chsh.c, mkgroup.c, mkuser.c,
	  src/rmgroup.c, src/rmuser.c, src/vipw.c (main):
	  Fixed incorrect comments.
	* src/add-user.c, src/remove-user.c: New files.
	* src/Makefile.am, po/POTFILES.in: Added add-shell.c
	  and remove-shell.c.
	* po/POTFILES.in: Commented out chpasswd.c.
	* src/lsuser.c, src/lsgroup.c (main): Make sure these programs
	  work even if `/etc/shadow' or `/etc/gshadow' does not exist.

2004-05-19  Jeff Bailey  <jbailey@raspberryginger.com>

	* Makefile.am (release): New target for snapshots.

2004-05-18  David Weinehall  <tao@acc.umu.se>

	* man/*, man/sv/*: Updated with improved copyright-information
	  and authorship information.
	* src/chsh.c: Added `-l'/`--list-shells' to list valid shells.
	* README: Fixed typo.

2004-05-16  David Weinehall  <tao@acc.umu.se>

	* Release 0.1.3.
	* Merged some parts of Jeff Bailey's work on sysutils.
	* src/mkuser.c: Always set a shell even if none has been specified.
	* README-alpha: New file.

2004-05-15  David Weinehall  <tao@acc.umu.se>

	* src/passwd.c: Hopefully functionally complete now.
	* doc/timeline.txt: Updated.
	* doc/inputaudit.txt: New file.
	* po/sysutils.pot: Updated.
	* po/sv.po: Updated.

2004-05-15  David Weinehall  <tao@acc.umu.se>

	* More work to make things shiny and GNU.
	* src/passwd.c, src/chpasswd.c: New files.
	* doc/timeline.txt: Remove login-parts for the time being.
	* doc/security.txt, src/Makefile.am: changed security-policies
	  for lsage, lsgroup, and lsuser; they only need to be setgid
	  shadow rather than setuid root.

2004-05-14  David Weinehall  <tao@acc.umu.se>

	* Lots of work to make things GNU.

2004-05-13  David Weinehall  <tao@acc.umu.se>

	* Started the conversion from passwd-ng to GNU sysutils.
	* CodingStyle: New file.
	| Read this before submitting code!

2004-05-09  David Weinehall  <tao@acc.umu.se>

	* Release 0.1.2.
	* src/chuser.c: Fixed segmentation fault in chuser.
	* src/chuser.c: Fixed bug that caused GECOS-information to be lost
	  if either of `fname', `room', `wphone', `hphone', or `other'
	  were used.
	* src/passwd_ng.c: Fixed bug in get_admgroups logic.
	* po/sv.po: Updated Swedish translation.

2004-05-08  David Weinehall  <tao@acc.umu.se>

	* src/lsage.c: Fixed mistakenly inverted isadmin-check.
	* src/lsage.c: Fixed incorrect getopt_long-parameters;
	  `-a' accepts optional arguments.
	* src/mkgroup.c, src/mkuser.c: Fixed incorrect
	  getopt_long-parameters; `-f' and `-l' both require arguments.
	* src/*.c: Fixed a few typos.
	* src/lsage.c, src/lsgroup.c, src/lsuser.c: Fixed memory-leak.
	* src/chage.c: Fixed bug that caused some values to remain unchanged.
	* src/chage.c: Added interactive mode.
	* src/passwd_ng.c: Fixed leap-year calculation.
	* doc/timeline.txt: Updated timeline; down-prioritize
	  deluser and adduser, since they are inferior interfaces.
	* doc/timeline.txt: Push passwd and chpasswd to a later release.
	* src/chsh.c: Allow user-administrators to set non-existing or
	  existing, non-valid shells.
	* src/passwd_ng.c: Fixed bug in join_gecos.

2004-05-06  David Weinehall  <tao@acc.umu.se>

	* Release 0.1.1.
	* src/Makefile.am: Fixed installation of symlinks into wrong dir.
	* man/sv/chpasswd.8: Fixed typo found by lexgrog.

2004-05-05  David Weinehall  <tao@acc.umu.se>

	* man/Makefilme.am, man/sv/Makefile.am: Install symlinks for
	  cpgr.8, cpsp.8, cpsg.8, vigr.8, visp.8, and visg.8.

2004-05-03  David Weinehall  <tao@acc.umu.se>

	* configure.ac, man/Makefile.am, man/sv/Makefile.am:
	  Fixed for conditional inclusion of vipw manual.
	* man/lsage.1, man/sv/lsage.1, man/cppw.8, man/sv/cppw.8,
	  man/passwd.1, man/sv/passwd.1, man/sv/gshadow.5,
	  man/chgrpmem.1, man/sv/chgrpmem.1, man/chpasswd.8,
	  man/sv/chpasswd.8, man/chage.8, man/sv/chage.8: Minor fixes.

2004-04-28  David Weinehall  <tao@acc.umu.se>

	* src/chfn.c: Removed superfluous error-message.
	* man/*, man/sv/*: Various updates.

2004-04-25  David Weinehall  <tao@acc.umu.se>

	* src/lstat.c, src/malloc.c, src/realloc.c, src/stat.c,
	  src/strcspn.c, src/strspn.c: New files.

2004-04-24  David Weinehall  <tao@acc.umu.se>

	* TODO: Moved all FIXME-items here, and updated the list.
	* FIXME: Removed file.
	* configure.ac, Makefile.am, src/Makefile.am: Various cleanup.
	* src/passwd_ng.c: Removed email-address from copyright-information.
	* src/passwd_ng.c: New function; usage_help(), that displays
	  `--help' and `--version' + bug-report information.
	* src/*: Fixed all usage()-functions to use usage_help().
	* po/sv.po: Updated the Swedish translation.

2004-03-21  David Weinehall  <tao@acc.umu.se>

	* Added Automake and Autoconf-support.
	* intl: Added local copy of gettext to further improve portability.
	* src/gettext.h: New file.
	* AUTHORS: New file.
	* NEWS: New file.
	* ChangeLog: Renamed CHANGES to ChangeLog and reformatted it
	  to GNU-style.

2004-02-06  David Weinehall  <tao@acc.umu.se>

	* src/mkgroup.c, man/mkgroup.8, man/sv/mkgroup.8,
	  etc/mkgroup.default, man/mkgroup.default.5,
	  man/sv/mkgroup.default.5: New files.
	* src/mkuser.c, man/mkuser.8, man/sv/mkuser.8,
	  etc/mkuser.default, man/mkuser.default.5,
	  man/sv/mkuser.default.5: New files.
	* src/chuser.c, src/chgroup.c, src/chgrpmem.c:
	  Improved checking of indata.
	* src/Makefile, doc/security.txt: made lsuser and lsgroup
	  suid-binaries to allow users and group-administrators to
	  see their own admin-groups/group-administrators.
	* src/chuser.c: Fixed various bugs.
	* src/lsuser.c, src/lsgroup.c: Fixed erroneous use of access().
	* src/chsh.c: Fixed bug that caused chsh to write to the wrong file.
	* src/gshadow.c: Fixed bug that caused getsgnam to continue from
	  last position rather than restarting properly on a new call.
	* src/rmgroup.c: Fixed segmentation-fault.
	* src/passwd_ng.c: Fixed bugs in array_union() and array_cut() that
	  could cause data-corruption.
	* src/passwd_ng.c: Fixed inverted return-values in get_group_admins.
	* src/gshadow.c: Fixed bug that caused user- and admin-list to
	  be empty.
	* src/passwd_ng.c: Fixed various bugs in is_useradmin().
	* src/passwd_ng.c: Made various code abstractions.
	* src/misc.c: Added strjoine() and strjoinve(), that excludes
	  empty entries.
	* man/*: Fixed typos in various manual-pages.
	* src/Makefile: several improvements.
	* etc/shells: Added /bin/dash.
	* FIXME: Updated.
	* src/Makefile: Added -fno-strict-aliasing to CFLAGS, since we're
	  dealing with code casting to and from void **.
	* etc/pam.d/passwd: Added PAM-file for passwd (1).
	* man/passwd.1, man/sv/passwd.1: New files.
	* doc/timeline.txt: Updated the timeline, since we're deviating
	  by adding passwd and chpasswd ahead of schedule.

2003-01-12  David Weinehall  <tao@acc.umu.se>

	* Release 0.1.0.
	* Alpha release 1. Hoorah!
	* src/chuser.c: Fixed broken groups= and admgroups= code.
	* src/chfn.c: Fixed semi-serious bug where the wrong GECOS
	  field could be changed.
	* src/vipw.c: Fixed erroneous error-checking.
	* src/passwd_ng.c: Rewrote some functions in passwd_ng to work
	  without any extra allocation of memory.
	* src/*: Rewrote some string output to simplify translations.
	* doc/memaudit.txt: New file.
	* src/*: Audited memory allocations.
	* doc/retvalaudit.txt: New file.
	* src/* Audited return values.
	* man/sv/chgrpmem.1, man/sv/chgroup.8, man/sv/chuser.8: New files.
	* man/*: Fixed various typos.
	* Makefile: Minor changes.
	* src/Makefile: Added a few more -W flags to the compiler directives.
	* src/*: Fixed several warnings.
	* src/Makefile: Enabled -Werror, to avoid missing potential bugs.
	* Makefile: Added the -v flag to msgfmt.
	* doc/timeline.txt: Updated the timeline, since we're deviating
	  by adding gshadow-support ahead of schedule.

2002-12-31  David Weinehall  <tao@acc.umu.se>

	* Release 0.0.9.
	* src/chgrpmem.c, man/chgrpmem.1: New files.
	* src/chgroup.c, man/chgroup.8: New files.
	* src/chuser.c, man/chuser.8: New files.
	* src/rmgroup.c, src/rmuser.c, src/chage.c: Fixed a bug.
	* doc/timeline.txt: Updated the timeline, since we're deviating
	  by not having any Swedish manual-pages for chgrpmem,
	  chgroup, and chuser.
	* src/chage.c: Fixed to modified a copy spwd rather than the one
	  from fgetspent, for the sake of tidiness.
	* src/passwd_ng.c: Added framework for future features.
	* src/gshadow.c, src/gshadow.h: New files.
	| This should probably be a real library instead.
	* src/*: Removed all occurences of #ifdef HAVE_GSHADOW <...>
	  #endif /* HAVE_GSHADOW */.
	* src/passwd_ng.c: Fixed a bug in get_all_groups.
	* src/lsgroup.c, src/lsuser.c: Only list options that relate to
	  information in /etc/shadow and /etc/gshadow if the user has read
	  access for these files.
	* po/sv.po: Updated the Swedish translation.

2002-12-14  David Weinehall  <tao@acc.umu.se>

	* Release 0.0.8.
	* src/chfn.c, man/chfn.1, man/chfn.sv.1: New files.
	* src/chsh.c, man/chsh.1, man/chsh.sv.1: New files.
	* etc/Makefile: added etc/shells to the files to install.
	* src/lsage.c: Fixed several bugs.
	* src/Makefile: Added support for ctags.
	* Makefile: Fixed cvsclean target.
	* man/*: Made a lot of minor modifications.
	* Makefile: Improved archive target.
	* src/*: Make sure to abort if a non-privileged user tries to
	  execute a command that requires privileges, to ensure that the
	  error-messages are easy to understand.
	* src/*: Audited the code for possible exit without setting return
	  status properly.
	* po/sv.po: Updated the Swedish translation.

2002-12-12  David Weinehall  <tao@acc.umu.se>

	* Release 0.0.7.
	* Makefile: Fixed langtemplateclean target.
	* man/passwd.5, man/group.5, man/shadow.5, man/gshadow.5,
	  man/sv/passwd.5, man/sv/group.5, man/sv/shadow.5, man/sv/gshadow.5:
	  New files.
	* doc/timeline.txt: Updated the timeline, since we're deviating
	  by adding manual-pages for passwd, group, shadow,
	  and gshadow ahead of schedule.
	* src/chage.c, man/chage.8, man/chage.sv.8: New files.
	* src/rmuser.c, man/rmuser.8, man/rmuser.sv.8: New files.
	* src/rmgroup.c: Modified to handle removal of multiple groups
	  simultaneously.
	* src/rmgroup.c: Fixed serious bug which could cause loss of
	  the /etc/group file if an error occurs.
	* src/rmgroup.c: Fixed several memory-leaks.
	* src/rmgroup.c: Fixed bug that caused old group/gshadow files not
	  to be replaced after a change.
	* src/*: Added better comments to the code.
	* po/sv.po: Updated the Swedish translation.

2002-12-09  David Weinehall  <tao@acc.umu.se>

	* Release 0.0.6.
	* Makefile: Fixed installation.
	* man/rmgroup.sv.8, man/lsage.sv.1: New files.
	* po/sv.po: Updated the Swedish translation.

 -- David Weinehall <tao@acc.umu.se> 09 Dec, 2002

2002-12-08  David Weinehall  <tao@acc.umu.se>

	* Release 0.0.5.
	* The "Happy Birthday to Me!" release.
	* Makefile: Fixed an error.
	* src/lsage.c, man/lsage.1: New files.
	* src/passwd_ng.c: Added framework for future features.
	* doc/security.txt: New file.
	* FIXME: New file.

2002-12-06  David Weinehall  <tao@acc.umu.se>

	* Release 0.0.4.
	* Makefile, src/Makefile: Various improvements.
	* src/rmgroup.c, man/rmgroup.8: New files.
	* src/misc.c: Added malloc() and strdup()-paranoia.
	* src/passwd_ng.c, src/vipw.c, src/cppw.c, src/lsuser.c,
	  src/lsgroup.c, src/rmgroup.c: Moved a lot of error-messages 
	  to passwd_ng, to avoid unnecessary text-duplication.
	* src/passwd_ng.c: Added framework for future features.
	* po/sv.po: Updated the Swedish translation.

2002-12-05  David Weinehall  <tao@acc.umu.se>

	* Release 0.0.3.
	* src/vipw.c: More error-checking.
	* src/lsgroup.c, man/lsgroup.1, man/lsgroup.sv.1: New files.
	* src/lsuser.c, man/lsuser.1, man/lsuser.sv.1: New files.
	* po/sv.po: Updated the Swedish translation.

2002-12-04  David Weinehall  <tao@acc.umu.se>

	* Release 0.0.2.
	* Makefile: Removed the -C flag from msgfmt; while emitting useful
	  warnings, it doesn't work with older versions of msgfmt.
	* src/cppw.c: if (!init_locales()) should obviously be
	  if (init_locales()), since we don't want to abort when that call
	  succeeds.
	* src/vipw.c: Added missing init_locales().
	* src/Makefile: Be extra certain that install has the correct
	  ownership and rights for all installed files.
	* po/Makefile: Include templates.pot in the distributed source.
	* src/Makefile: Install locale-files in the correct location.
	* src/vipw.c: Fixed stupid bug with vipw failing suspend,
	  and added a error-message for another error-condition.
	* po/sv.po: Updated the Swedish translation.

2002-11-29  David Weinehall  <tao@acc.umu.se>

	* Initial version.

ChangeLog ends here
