2001-12-29 Yann Droneaud Release 0.1.698 * configure.ac: bump version to 0.1.698 undefine FBGETTY_UNSTABLE * NEWS: updated * src/issue.c: (output_exec): handle job control save terminal settings ignore job control signals handle foreground/background switch, in both child and father check first if a change is needed before doing it [HAVE_WAITPID]: use waitpid() [DEBUG_JOB_CONTROL]: be more verbose in case of error * configure.ac: added check for ctermid(), wait() and waitpid() * src/init.c: (open_ctty): ioctl(TIOCSCTTY) (check_ctty): close the openned tty (close_ctty): new function (detach_ctty): new function (save_ctty): new function (init): use all new functions cleanned (ctty)[!HAVE_CTERMID]: new constant (get_ctty)[!HAVE_CTERMID]: new macro, return ctty. (get_ctty)[HAVE_CTERMID]: new macro, call ctermid(). (check_ctty): use get_ctty() (detach_ctty): use get_ctty() 2001-12-28 Yann Droneaud * NEWS: updated * README: updated * src/issue.c: include (longtags): added speed and baud tags (alias for 'b') (SPEED): new macro (bauds): new array (print_baud): new function (print_special): added tag 'b', call print_baud * src/vt.c: (vt_handler_install): use STDIN_FILENO instead of fgoptions->tty_fd (vt_handler_init): likewise... (vt_handler): ... (vt_handler_restore): likewise failed ioctl()'s are no more fatal. * src/errors.c: (fgcleanup): set fgoptions->tty_fd to -1 if closed. * src/init.c: (check_ctty): new function (open_ctty)[TIOCNOTTY]: use it. 2001-12-27 Yann Droneaud Second Test release: 0.1.698test2 * configure.ac: bump version to 0.1.698test2 * src/prompt.c: (get_login_name): remove leading space and minus from login name remove ending space too handle line editing control char: CKILL CWERASE CREPRINT CTRL('l') * configure.ac: more checks on secure exec related flags more complete configuration summary `id` calls are now reported like autoconf check and report error if failed BUILD_USER and BUILD_HOSTNAME are now computed outside their AC_DEFINE_UNQUOTED BUILD_USER and BUILD_HOSTNAME are defined if no error. * contrib/convertissue.sh: smarter error reporting * configure.default: added --sysconfdir=/etc --localstatedir=/var as default configuration for fbgetty added --config-cache to make configure using cache by default * contrib/README: (patch-fbv): Updated 2001-12-25 Maciej Korzeń * contrib/patch-fbv: Updated for fbv-0.95 2001-12-23 Yann Droneaud Fixed a memory leak * src/prompt.c: (refresh_screen): fb_var and fb_fix are no more malloc()'ed * src/prompt.c: (refresh_screen): more refresh_screen_yield() check framebuffer != NULL before munmap() * src/main.c: (main): support for mtrace() 2001-12-23 Yann Droneaud Test Release 0.1.698test * NEWS: updated * configure.ac: version 0.1.698test * include/fbgetty/generated/Makefile.am: added some dependancies to options.h * configure.ac: added check for setgroups() and initgroups() revert to version 2.52e * src/issue.c: (output_exec): set the supplementary groups if username but no groupname specified * contrib/rawtoissue.sh: copyrighted * contrib/convertissue.sh: new file, can help people to translate issue for fbgetty * contrib/README: updated * ChangeLog.1: new file, contains entries up to late 2000 * ChangeLog: moved entries before 2001 to ChangeLog.1 2001-12-22 Yann Droneaud * configure.ac: make some "if test" constructs more portable * contrib/rawtoissue.sh: "if test $# == 0" corrected to "if test $# = 0" Reported by Christian Kurz * configure.ac: added check for syslog() and vsyslog() * src/linux_logo.c: (display_logo)[!LOGO_ENABLE]: defined a foo function, to make gcc -ansi happy 2001-12-17 Yann Droneaud * src/main.c: (main): simpler EMPTY_LOGIN_REFRESH_SCREEN behavior * include/fbgetty/global.h: (TRUE): defined as not FALSE * src/prompt.c: cosmetics changes (get_login_name): moved the login_allocated incrementation after the successfull realloc() some comments added (refresh_screen_check): check pollfd.revents instead of pollfd.events in_refresh is now a 'real' boolean (refresh_screen_state): new function (refresh_screen_acquire): new function (refresh_screen): use new functions (do_prompt): check refresh_screen_check() before printf() and fflush(stdout) (do_prompt): add a check for fgoptions->login_prompt[0] != '\0' 2001-12-15 Yann Droneaud * include/fbgetty/options.h: some cosmetics changes [FBGETTY_UNSTABLE]: add the PACKAGE_VERSION to the default prompt. * include/fbgetty/global.h: some cosmetics changes TRUE: defined as (1 == 1) FALSE: defined as (1 != 1) 2001-12-04 Yann Droneaud * src/prompt.c: (get_login_name)[FB_GETTY_DEBUG]: use a for() loop instead a while * src/main.c: (main): call utmp_update() and refresh_screen() [EMPTY_LOGIN_REFRESH_SCREEN]: refresh screen if the login_name is empty [EMPTY_LOGIN_REFRESH_SCREEN]: loop until login_name is not empty * src/init.c: (init): removed utmp_update(), refresh_screen() code to main.c 2001-11-19 Yann Droneaud * src/prompt.c: (get_login_name): removed ioctl(STDIN_FILENO, TCFLSH, 0) allocate login_name by 32 bytes chunks * src/init.c: (init): ioctl(STDIN_FILENO, TCFLSH, 0) * src/prompt.c: (get_login_name)[NORMAL_PARANOIA]: disable echo after reading login name * src/init.c: (init): use TCSANOW instead of TCSAFLUSH in tcsetattr() (open_ctty): unified dup2(), dup() and open() code for duplicating standard fd * src/issue.c: (output_exec): setting up handler for SIGCHLD did not depend on USE_SECURE_MODE * src/errors.c: (fgcleanup): splitted free()'ing memory and closing files check * src/init.c: (init): moved opening controlling tty to open_ctty() function call open_ctty(), then call do_vhangup() and reopen tty with open_ctty() (init): in fork() code call _exit() instead of fgexit() (open_ctty): new function, close current controlling tty and open the new one. try to open "/dev/tty", if this succeed, try to detach from the controlling tty with ioctl(TIOCNOTTY) (open_ctty)[!HAVE_DUP2]: no need to close(i) do more call ioctl(TIOCSCTTY), could be reenable if needed * src/issue.c: (output_exec): use _exit() instead of fgexit() * configure.ac: added check for vhangup() removed sys/wait.h from AC_CHECK_HEADERS() list commented out check for login_tty() and libutil, will be wiped out in future release 2001-11-11 Yann Droneaud * src/options.c: (compile): print a more complete report. * src/init.c: (init): in case of FBIOPUT_CON2FBMAP failed, do not exit, just disable framebuffer use (init): support frambuffer device old and new minor scheme, in any linux version 2001-10-28 Yann Droneaud * configure.ac: added check for functions dup() dup2() fcntl() * src/issue.c: added issue_include_verbatim() (longtags): added "cat", "dump", "include_verbatim" alias for issue_include_verbatim() (issue_include_verbatim): new function (issue_ftime): updated for sysinfos changes (print_special): likewise * src/prompt.c: (refresh_screen): updated for get_sysinfos() changes * include/fbgetty/sysinfos.h: * src/sysinfos.c: sysinfos is now the structure itself, no more a pointer to an allocated block new prototype get_sysinfos() (get_sysinfos): updated 2001-10-21 Yann Droneaud * src/utmp.c: (setutxent): try to open the utmp file readonly (utmpx_entry): staticly allocated (getutxent): adapted for the change of utmpx_entry (endutxent): likewise (updwtmpx): changed a label unlock_return to updwtmpx_unlock_return * src/init.c: (init): init the terminal mode (termios) * TODO: removed an entry (verbatim_include) * README: version updated, tags updated Language and issue file clarification * configure.ac: version 0.1.698 * NEWS: updated 2001-09-15 Yann Droneaud * src/issue.c: (output_exec): restoring SIGCHLD handler is not depending of USE_SECURE_MODE * src/init.c: (init): new variable pgrp rewrote a bit the tcgetpgrp()/tcsetpgrp() code, use pgid instead of pid (init): in case of pgid != pid, utpdate pgid after setpgid() call * src/issue.c: (output_exec): no need to exit if username or groupname are invalid, just leave the function. (output_exec): change the tty_device mode before leaving root privilege (output_exec): set handler for SIGCHLD before fork'ing 2001-09-07 Yann Droneaud * src/init.c: (setup_devices): own devices before changing permissions on it (init): likewise... * src/errors.c: (fgcleanup): close devices only if they are not std fd (> 2) moved call to free(fgoptions_free(fgoptions)), only free the structure when leaving (fgexit): call free(fgoptions_free(fgoptions)) 2001-09-07 Yann Droneaud fbgetty-0.1.69 released The secure exec feature is more powerful (request from Debian maintainer) * README: updated * NEWS: updated * configure.ac: upgraded for autoconf-2.52e added options for the new secure exec configuration more detailled configuration summary ia64 is now recognized id is used to compute uid and gid for --with-exec-user hostname is used with flag -f to get the fqdn version updated to 0.1.69 add check for pwd.h grp.h getpwnam() getgrnam() * include/fbgetty/global.h: (PACKAGE_NICKNAME): new codename * src/issue.c: include and (output_exec): new variable exec_uid and exec_gid call setgid() before setuid(), for the setgid() to work [SECURE_USER & SECURE_GROUP]: set exec_uid and exec_gid to the defined values [SECURE_USERNAME]: struct passwd *pw use getpwnam() to determine exec_uid and exec_gid [SECURE_GROUPNAME]: struct group *gr use getgrnam() to determine exec_gid 2001-09-06 Yann Droneaud fbgetty-0.1.6 released * NEWS: updated * Makefile.am: (EXTRA_DIST): removed README-test * README-test: removed * docs/Makefile.am: (EXTRA_DIST): added fbgetty-and-color.txt * docs/fbgetty-and-color.txt: new file * configure.ac: added check for alloca() added check for netdb.h added check for gethostbyname() * include/fbgetty/options.h: update default prompt for release * include/fbgetty/Makefile.am: (EXTRA_DIST): added alloca.h * src/getopt.c: updated from glibc-2.2.4 * src/getopt1.c: ... * src/alloca.c: new file, extracted from bison-1.28a (CVS snapshot) * include/fbgetty/getopt.h: updated from glibc-2.2.4 * include/fbgetty/alloca.h: new file, extracted from gettext-0.10.37/lib/system.h * examples/test/issue: updated for new features * src/issue.c: (issue_verbatim): new function, print the argument of @verbatim= * src/options.c: (merge_options): handle changes in merge_option_list[], only use char * and int while() -> for() (merge_option_list): pointer and integer are now separated (merge_option_ptr): renamed to ... (merge_option_str): this one, handle only string (char *) while() converted to for() (merge_option_int): while() converted to for() (parse_binary): if argument is NULL, assume it's true --clear-screen is equivalent to --clear-screen=yes * src/issue.c: (read_var_name): support variable/argument delimited: $TERM $"TERM" ${TERM} (print_special): print fqdn * src/options.c: (parse_options): handle full language specification eg: fr_FR for issue file, first try "issue.fr_FR" second, "issue.fr" last "issue" * src/issue.c: (print_special): updated to the new sysinfos_t structure * include/fbgetty/sysinfos.h: (sysinfos): stored the data inside the structure, element are no more malloc()'ed added fqdn, broken_time removed date, time * src/sysinfos.c: (printf_time): new function (get_sysinfos): adapted to the new sysinfos_t structure get fqdn with gethostbyname() (free_sysinfos): adapted to the new sysinfos_t structure: only need to free() the structure, not the element in it * src/issue.c: (print_escape): moved escape to char conversion to (convert_escape): this new function (output_long): rewrote while() loop in for() use i instead of index since index() is a function (this make gdb happy) (read_var_name): support string var_name: "var name with \"space\" inside" * README: sync with manpage 2001-08-29 Yann Droneaud * BUGS: Updated for the Bug Tracking System * THANKS: thanks tuxfamily 2001-08-26 Yann Droneaud * configure.ac: added some check for size type and system capabilities * src/utmp.c: (utmp_update): utx is no more malloc()'ed * src/vt.c: removed many global variable, them became local to functions * src/options.c: (parse_options): st is no more malloc()'ed * src/init.c: include stdarg.h (setup_devices): new function, use to own device with devfs pathname or old ... (init): st is allocated locally in the function [__linux__]: own vcs devices 2001-07-29 Yann Droneaud * src/options.c: (merge_an_option): duplicated in merge_option_int() and merge_option_ptr() (merge_option_int): specialized for integer (int) (merge_option_ptr): specialized for pointer (void *) (merge_options): rewrote to manipulate pointer more correctly I hope, this will fix ia64 alignment problems. call merge_option_int() and merge_option_ptr() instead of merge_an_option() (parse_environment): rewrote to reduce number of cast, removed ptr variable. 2001-07-27 Yann Droneaud * src/prompt.c (get_login_name): initialize 'c' 2001-07-26 Yann Droneaud * src/prompt.c: (get_login_name): rewrote, this function was completely broken 'eof' was not tested again the good value 2001-07-21 Yann Droneaud fbgetty release 0.1.6test * Makefile.am: (EXTRA_DIST): added README-test * README-test: new file, only for test release 2001-07-21 Yann Droneaud * src/options.c: (version): use PACKAGE_AUTHOR for displaying author name and email 2001-07-21 Yann Droneaud * docs/fbgetty.texi: updated with mailing lists 2001-07-21 Yann Droneaud * NEWS: Updated 2001-07-20 Yann Droneaud * README: added new section: Tips some tips about display ascii arts files. * contrib/Makefile.am: added rawtoissue.sh * contrib/README: added rawtoissue.sh description * contrib/rawtoissue.sh: new file 2001-07-20 Yann Droneaud * docs/fbgetty.8: corrected %u and %U description 2001-07-20 Yann Droneaud Corrected problems with signedness and endianess on other architecture than x86 * src/options.c (parse_environment): cast ptr to (unsigned int *) in options_leds() call * src/issue.c: (parse_issue): changed 'c' from 'char' to 'int'. (The same bug again and again, see 1999-03-17 entry) * src/prompt.c: (get_login_name): changed 'c' form 'int' to 'char' (this was the only place i cannot use a int because of endianess problems) new eof variable, used to indiquate End Of File condition 2001-07-14 Yann Droneaud * configure.in: updated for autoconf 2.50c (CVS snapshot) moved to ... * configure.ac: to this 2001-07-14 Yann Droneaud Rewrote VT code, to mask/unmask signal, restore vt handler correctly Corrected bug that disable vt_handler when a program failed in issue (fgexit() was calling restore_default_vt_handling()) * src/prompt.c (refresh_screen_check): call vt_isactive() instead of is_vt_active() * src/options.c: (fgoptions_init): added FGINIT_INT(master) * src/main.c: (main): set fgoptions->master to FALSE call vt_handler_restore() instead of restore_default_vt_handling() put a return 0, at the end of fonction (for warning removing) * src/init.c: (init): set fgoptions->master to TRUE after creating session/processs group and openning tty call vt_handler_init() instead of install_vt_handler() * include/fbgetty/generated/fgoptions.h: added variable 'master', use to handle fbgetty subprocessing in fbgetty main process, it's set to TRUE, in fork'ed process, it's set to FALSE, then in fgcleanup() do not reset vt switch, only release memory * src/errors.c: (fgcleanup): only call vt_handler_restore() if fgoptions->master == TRUE call vt_handler_restore() instead of restore_default_vt_handling() * src/vt.c: (is_vt_active): renamed to (vt_isactive): this (install_vt_handler): removed, splitted in vt_handler_init() and vt_handler_install() (vt_handler_init): new function, replace install_vt_handler() (vt_handler_install): new function (vt_handler): unblock SIGUSR1 only during screen_refresh() call vt_handler_install() after screen_refresh() to be sure vt switching is ok if state in unknown, call vt_handler_init() (this case should never occured) (restore_default_vt_handling): renamed to (vt_handler_restore): this * include/fbgetty/vt.h: removed install_vt_handler() renamed is_vt_active() to vt_isactive() renamed restore_default_vt_handling() to vt_handler_restore() add new prototype vt_handler_init() * src/vt.c: (install_vt_handler): block SIGUSR1 during vt switch setup use fgoptions->tty_fd instead of STDOUT_FILENO 2001-07-14 Yann Droneaud * src/init.c: (init): corrected session and process group support to work in any case (especially when running traced by strace) 2001-07-11 Yann Droneaud Found a new trick: offsetof(), it's used to simplify the options.h generation. fbgetty could be cross compiled again. It's also faster: no need to compile, run, compile, run. * include/fbgetty/generated/Makefile.am: updated preprocess fgoptions.h then call awk to generate options.h * include/fbgetty/generated/fgoptions.h: updated include fbgetty/global.h This file is now preprocessed before parsed by fgoptions.awk * include/fbgetty/generated/fgoptions.awk: new file generate options.h from fgoptions.h * include/fbgetty/generated/fgoptions.c: deleted, supersed by fboptions.awk * configure.in: check for CPP 2001-07-11 Yann Droneaud updated version to 0.1.6test (missed update for automake) 2001-07-07 Yann Droneaud Changed emails and fbgetty homepage Changed author email Updated version to 0.1.6test 2001-07-07 Yann Droneaud * examples/test/issue.taglist: corrected \@users -> \@user \@Users -> \@users 2001-07-07 Yann Droneaud Now screen refresh does not block vt switching. * src/vt.c: (install_vt_handler): use local variable allocated in stack instead of malloc'ed them (vt_handler): call install_vt_handler() after refresh_screen() to prevent changes * src/init.c: (init): removed vt get state code (duplicated in src/vt.c) * src/prompt.c: (get_login_name): check for errno = EINTR when read() is interrupted by a signal * src/vt.c: (install_vt_handler): sa_new.sa_flags = SA_RESTART. * include/fbgetty/prompt.h: (refresh_screen_check): added prototype (refresh_screen_check): likewise. * src/prompt.c: (refresh_screen_yield): new function, release screen (refresh_screen_check): new function, check if we could write (refresh_screen): handle concurrency, use screen_yield(), screen_check() (in_refresh): new variable, if set, a refresh is in processing (do_prompt): use refresh_screen_check() * src/issue.c: (parse_issue): while scanning issue, check if we can output: call refresh_screen_check() * src/vt.c: (vt_handler): set vt_active before calling any other function. (is_vt_active): new function (install_vt_handler): use sigaction instead of signal (restore_default_vt_handling): likewise (install_vt_handler): use strerror(errno) instead of %m (restore_default_vt_handling): likewise (vt_handler): unblock SIGUSR1 2001-07-07 Yann Droneaud * src/init.c: (init): use POSIX S_ISCHR instead of BSD bitmask test 2001-07-07 Yann Droneaud * src/options.c: removed some unuseful ## (parse_options): moved show_error checking before all other option check. (option_string): free *ptr if not NULL (fix a memory leak) (parse_cmdline): rewrote getopt loop to do{}while in switch(option){} use continue instead of break to skip end of loop check. in case of error, return directly (help): change print(...) to fprint(stdout, ...), fix problem with glibc-2 and gcc-3.0 (version): likewise 2001-06-25 Yann Droneaud * examples/test/Makefile.am: (noinst_DATA): added issue.taglist * src/kbd.c: (leds_parse): changed a while loop to a for() one moved set definition in function toplevel (init_kbd): only do setup if masks are not 0 * src/init.c: (init): free fgoptions->fb_device before setting it to NULL. (init): switched some printf from %m to %s, strerror(errno) 2001-06-23 Yann Droneaud * configure.in: (AM_INIT_AUTOMAKE): updated version to 0.1.6pre * src/options.c: (option_leds): use new leds_parse() prototype ptr in now unsigned. (parse_environment): remove duplicated error code (parse_cmdline): likewise. * include/fbgetty/generated/fgoptions.h: (VARIABLE leds): now unsigned * include/fbgetty/kbd.h: (kbd_opt): mask is now unsigned (leds_parse): added mask argument * src/kbd.c: (leds_opts): changed opt.value to unsigned char (kbd_opt): mask is now unsigned (leds_parse): added an argument, return the mask in this. return 0 or -1. * include/fbgetty/kbd.h: (FBGETTY_KBD_LEDS_SET): moved ... * src/kbd.c: (FBGETTY_KBD_LEDS_SET): ... here * include/fbgetty/kbd.h: (FBGETTY_KBD_LEDS_UNSET): moved ... * src/kbd.c: (FBGETTY_KBD_LEDS_UNSET): ... here * include/fbgetty/kbd.h: (FBGETTY_KBD_LEDS): moved ... * src/kbd.c: (FBGETTY_KBD_LEDS): ... here * include/fbgetty/kbd.h: (FBGETTY_KBD_LEDS_MASK): moved ... * src/kbd.c: (FBGETTY_KBD_LEDS_UNSET_MASK): ... here * include/fbgetty/kbd.h: (FBGETTY_KBD_LEDS_UNSET_SHIFT): moved ... * src/kbd.c: (FBGETTY_KBD_LEDS_UNSET_SHIFT): ... here 2001-06-23 Yann Droneaud Changed version to 0.1.6pre gettext support dropped for 0.1.6 version, scheduled for 0.2 * configure.in: Removed gettext support (AC_ARG_WITH(translations...): removed (ALL_LINGUAS): likewise (AM_GNU_GETTEXT): ... (AC_CONFIG_LINK): ... (AC_CONFIG_FILES): removed po/Makefile.in and int/Makefile * Makefile.am: (SUBDIRS): removed intl and @POSUB@ * NEWS: updated 2001-06-10 Yann Droneaud * include/fbgetty/global.h: updated fbgetty URL * README: idem * AUTHORS: ... * packages/fbgetty.lsm.in: ... 2001-06-03 Yann Droneaud * src/options.c: (dump_config): use fgexit() instead of cleanup() and exit() (help): likewise (usage): ... (version): ... (compile): ... * src/init.c: (init): ... * src/main.c: (main): * src/signal.c: (leave): * src/issue.c: (output_exec): * src/prompt.c: (do_prompt): use print_special() and print_escape() instead of output_special() and output_escape(). * include/fbgetty/issue.h: (print_escape): added prototype (print_special): likewise 2001-06-02 Yann Droneaud * src/issue.c: (longtags): changed the "version" entry to 'v' instead of 'r' close bug reported by Benoit Plessis * src/init.c: (init): call utmp_update() instead of update_utmp(). * include/fbgetty/utmp.h: changed prototype for update_utmp() to utmp_update(). * include/fbgetty/issue.h: removed prototypes of output_*() functions (EXEC_DELIMITER): moved to src/issue.c * src/issue.c: (output_special): rewritted, now take a FILE * instead of int moved code to print_special() (print_special): new function, code taken from output_special (output_escape): rewritted, now take a FILE * instead of int moved code to print_escape() Now handle octal and hexadecimal (print_escape): new function, code taken from output_escape (convert_hex_char): new function used in output_escape convert a hex [0-9a-f] char to number (convert_oct_char): new function used in output_escape convert a oct [0-7] char to number (isodigit): new function, do the same job as isxdigit() use by convert_oct_char() (parse_issue): use the new functions prototypes (isodigit): added a missing semicolon (output_escape): added missing parameter to convert_*_char() function call (EXEC_DELIMITER): moved from include/fbgetty/issue.h * src/options.c: (help): added keyboard option description * src/issue.c: (ISSUE_INCLUDE): removed (ISSUE_COLOR): removed (longtags): changed tag "users" to "user" and tag "Users" to "users" * README: updated to reflect above changed 2001-05-25 Yann Droneaud Added preliminary support for gettext in the package * configure.in: added gettext support link config.h in topbuilddir from include/config.h (for gettext) added copyright notice * Makefile.am: (SUBDIRS): added po/ intl/ * include/fbgetty/generated/Makefile.am: updated rules to be more portable 2001-05-05 Yann Droneaud * src/options.c: (parse_options): use _PATH_DEV instead of hardcoded "/dev" 2001-04-16 Yann Droneaud * src/utmp.c: (utmpxname): new function (setutxent): new function (getutxent): new function (endutxent): ... (utmpx_file_lock): new function (utmp_file_unlock): ... (updwtmpx): removed lock code moved to above function 2001-04-15 Yann Droneaud * configure.in: added check for utmpx header and function * src/utmp.c: (update_utmp): moved updwtmp() emulation code to updwtmpx() function renamed to utmp_update (utmp_update): new (from utmp_update) updated to use XPG User Accounting Database Functions (UTMPX/WTMPX) (updwtmpx): new function, defined only if the host don't have the function updated, integrate much of GLIBC updwtmp_file() function 2001-04-07 Yann Droneaud * include/fbgetty/options.h: (LOGIN_PROMPT): added a space between PACKAGE and VERSION * src/issue.c: (LONGTAG_ARG_MAX): corrected (remember 2^8 is not equal to 256) 2001-04-05 Yann Droneaud Started development of 0.1.6 branch * NEWS: updated version to 0.1.6dev * configure.in: updated version to 0.1.6dev * include/fbgetty/options.h: (LOGIN_PROMPT): use PACKAGE and VERSION instead of hardcoded version 2001-04-05 Yann Droneaud fbgetty-0.1.5 released * Makefile.am: (EXTRA_DIST): removed README-test * README-test: deleted * include/fbgetty/global.h: (PACKAGE_NICKNAME): changed * include/fbgetty/Makefile.am: (EXTRA_DIST): removed fb.h * README: updated version * configure.in: updated version to 0.1.5 removed AC_CONFIG_COMMANDS corrected sparc check added some message at end of configuration * include/fbgetty/options.h: (LOGIN_PROMPT): updated for release 2001-04-03 Yann Droneaud * src/options.c: (env_options): use now OFFSET_ (merge_list): likewise ... (ENV_LEDS): new type of environment variable (option_leds): new function (env_string): renamed to ... (option_string): here (env_integer): renamed to ... (option_integer): here (env_binary): renamed to ... (option_binary): here (parse_cmdline): use option_... functions (parse_environment): likewise (merge_int): replaced (merge_str): replaced (merge_an_option): new function, replace above. (fgoptions_options): replaced (fgoptions_arguments): replaced (fgoptions_environment): replaced (fgoptions_parsed[]): new array, replace above variables (FGOPTIONS_OPTIONS): new, index in the array (FGOPTIONS_ARGUMENTS): likewise (FGOPTIONS_ENVIRONMENT): ... (fgoptions_options): new, compatibility define (fgoptions_arguments): likewise (fgoptions_environment): ... 2001-04-02 Yann Droneaud * include/fbgetty/generated/fgoptions.c: use macro with variable numbers of argument (the file must be compiled with GCC) (OUTPUT): . (LINE): ... (PRINT_STRING): new macro (PRINT_ARG): new macro (NEWLINE): new macro 2001-03-31 Yann Droneaud * src/options.c: updated for unsetleds/setleds to leds change: (merge_list): removed old entries added the one for leds (parse_cmdline): save the return of leds_parse in fgoptions_options->leds according to the new scheme (dump_config): print leds (fgoptions_init): init just leds field * include/fbgetty/kbd.h: Updated prototypes new macros: FBGETTY_KBD_LEDS FBGETTY_KBD_LEDS_SET FBGETTY_KBD_LEDS_UNSET * src/kbd.c (leds_parse): rewritted to use only one config variable (unsetleds and setleds merged in leds) * include/fbgetty/generated/Makefile.am: new file * include/fbgetty/options.h: removed the definition of fbgetty_options_t include generated/options.h instead. * include/fbgetty/generated/fgoptions.h: new file, used by include/fbgetty/generated/fgoptions.c * include/fbgetty/generated/fgoptions.c: new file * config/Makefile.am: (AUTOMAKE_OPTIONS): added 2001-03-13 Yann Droneaud * src/kbd.c: (leds_parse): set setleds and unsetleds to 0 * src/options.c: (merge_options): new function, use a list of option to merge, replace all merge_str(), merge_int() (merge_list): new array of option to merge (merge_fgoptions_str): removed macro (merge_fgoptions_int): removed macro (merge_str): changed to use the offset in structure instead of the 3 pointers to the same field (merge_int): likewise * src/main.c: (main): use parse_options() * include/fbgetty/options.h: added prototypes for fgoptions_create() and foptions_init() renamed parse_command_line() to parse_options() * src/options.c: (parse_command_line): splitted in parse_cmdline() and parse_options() (parse_cmdline): new function (parse_options): likewise moved show_* variable to toplevel. Declared them as static. * src/main.c: (main): call fgoptions_create() 2001-03-12 Yann Droneaud * src/options.c: (fgoptions_create): new function: allocate fgoption structures (fgoptions_init): init/reset a fgoption structure (parse_command_line): use fgoptions_create() (parse_command_line): rewritted parsing of non option argument (variable definition and argument) * include/fbgetty/options.h: (ISSUE_REFRESH): default to TRUE * src/vt.c: (restore_default_vt_handling): check if tty_fd is != -1 * include/fbgetty/global.h: (FALSE): define it as 0 (TRUE): define it as 1 * src/options.c: (env_binary): use parse_binary() (parse_binary): new function (parse_command_line): rewritted --clear-screen option code removed --no-clear-screen * README: Corrected option descriptions Added short description about --clear-screen 2001-02-26 Yann Droneaud Environment options are now parsed ala getopt_long * src/options.c: (parse_command_line): moved all getopt_long data to toplevel moved all fgoption_* ptr to toplevel, declared them as static (env_options): new data, contain environment name, type and ptr (env_string): new function (env_integer): new function (env_binary): ... (parse_environment): new function, walk trough env_options[], call env_{strings|integer|binary} (parse_command_line): call parse environment instead of using many if (getenv(...) != NULL) 2001-02-25 Yann Droneaud * configure.in: (AC_CONFIG_FILES): added packages/fbgetty.lsm * packages/fbgetty.lsm.in: updated * src/init.c: (init): check the return of tcgetpgrp() before calling tcsetpgrp() * configure.in: (AC_CONFIG_FILES): added contrib * contrib/: new directory * contrib/Makefile.am: new file * contrib/README: likewise * contrib/patch-fbv: likewise, provided by Joel Friedman * src/issue.c: (isissuetoken): new function (isarg): new function (isexecarg): new function (output_long): use isarg instead of isname (output_exec): use isexecarg instead of isname * src/init.c: call do_vhangup() * src/signal.c: (do_vhangup): new function * src/init.c: (init): added some code to handle correctly session/process group * src/issue.c: (isname): use ispunct() to handle more punctiation characters (output_exec): wait one 1s instead of 10s * examples/Makefile.am: Added issue.fbv * examples/README: updated * examples/issue.linux_logo: updated to new syntax * examples/issue.fortune: likewise * examples/issue.fbv: new file, submitted by Joel Friedman * examples/test: new subdir * examples/Makefile.am: (SUBDIRS): added subdir * examples/test/Makefile.am: new * examples/test/test.sh: new * examples/test/issue.3: new * examples/test/issue.2: new * examples/test/issue.1: new * examples/test/issue: new 2001-02-24 Yann Droneaud * configure.in: added check for strtok() use of AC_LIBOBJ() instead of setting directly LIBOBJS changed name of options : exec_group -> exec_gid exec_user -> exec_uid Moved check for valid uid/gid option at the start of the script * TODO: updated * NEWS: updated * src/options.c: (parse_command_line): added fgoptions_options as argument to leds_parse() * src/kbd.c: (leds_parse): added an fbgetty_options_t arguments to the function * include/fbgetty/kbd.h: likewise * src/init.c: (init): use init_kbd() instead of setkbd()/unsetkbd() * src/kbd.c: (init_kbd): new function * src/options.c: (parse_command_line): removed --set-kbd= and --unset-kbd= replaced by --keyboard= (and --kbd=) according to new syntax use led_parse() according to new scheme * src/kbd.c: (kbd_opt): new function, replace setkbd() and unsetkbd() (leds_parse): new behavior set directly masks in fgoptions according to the new syntax (-num,+caps) * include/fbgetty/kbd.h: (FBGETTY_LEDS_CAP): renamed as FBGETTY_LEDS_CAPS 2001-02-23 Yann Droneaud * src/options.c: (usage): corrected spelling SECONDES -> SECONDS * src/init.c: (init): call setkbd,unsetkbd * include/fbgetty/options.h: (fbgetty_options_t): added setleds and unsetleds member * src/options.c: (parse_command_line): added support for --set-kbd= and --unset-kbd= merge option setleds, unsetleds * src/Makefile.am: (fbgetty_SOURCES): added kbd.c * src/kbd.c: new file (leds_parse): new function (setkbd): new function (unsetkbd): new function * include/fbgetty/kbd.h: new file * include/fbgetty/Makefile.am: (EXTRA_DIST): added kbd.h * src/options.c: (OPTION_LONG): new macro, used to define long option value in the struct option (OPTION_CLEAR): use OPTION_LONG() (OPTION_VERSION): likewise (OPTION_COMPILE): ... (OPTION_HELP): ... (OPTION_DUMP): ... (OPTION_SETKBD): new option (OPTION_UNSETKBD): likewise * README: added description for (set|unset)-kbd options * configure.in: added test for canonicalize_file_name * src/options.c: (parse_command_line): added call to canonicalize_filename() * src/Makefile.am: (fbgetty_SOURCES): added canonicalize.c 2001-02-21 Yann Droneaud * configure.in: (AC_CONFIG_FILES): removed scripts/* Corrected architecture determination code Disable warning messages Removed debug code (set > log) (AC_INIT): Added package name,version,author according to autoconf 2.49 new syntax Added AC_PREREQ(2.49) * docs/Makefile.am: (man_MANS): removed MAKEDEV.fb.8 * docs/MAKEDEV.fb.8: removed * Makefile.am: (SUBDIRS): removed scripts * scripts/: removed * scripts/MAKEDEV.fb.in: removed * scripts/issueconv.in: removed * docs/fbgetty.8: updated a little * docs/fbgetty.texi: updated a little * README: Updated * include/fbgetty/Makefile.am: (EXTRA_DIST): added forgotted headers * NEWS: updated * src/issue.c: (output_long): read the full tag (name + arguments) before looking up the long tag table increment tag_argc if strlen(argument) != 0 (open_issue): new function (print_issue): use open_issue() (issue_include): new function (islongarg): replaced by ... (isenvironment): replaced by ... (isname): this new function 2001-02-18 Yann Droneaud * src/options.c: (merge_fgoptions_str): strdup()'d the returned string only if it's not NULL 2001-02-17 Yann Droneaud * configure.in: added macros description * acconfig.h: removed * src/options.c: (merge_fgoptions_str): strdup()'d the returned string * src/Makefile.am: (fbgetty_SOURCES): added all new files (AUTOMAKE_OPTIONS): new variable, set it to "gnu nostdinc" * include/fbgetty/options.h: (fbgetty_options_t): changed issue_file to issue_filename * configure.in: updated version to 0.1.5test added AC_CONFIG_DIR changed test for libutil, login_tty() since this is not GLIBC specific added --disable-vt-refresh option added --disable-exec-support option added --with-exec-user= added --with-exec-group= * Makefile.am: (SUBDIRS): added config directory 2001-02-15 Yann Droneaud * src/issue.c: (output_special): rewritted to use the new sysinfos_t structure. * src/sysinfos.c: new file (get_sysinfos): new function, import code from issue.c added some others information (free_sysinfos): new function * src/prompt.c: (isenvironment): moved to issue.c (isarg): likewise (read_var_name): ... (output_long): ... (output_environment): ... (output_exec): ... (parse_issue): ... (print_issue): ... (output_special): ... (output_escape): ... * src/issue.c: new file 2001-02-14 Yann Droneaud * src/signal.c: (leave): call to cleanup() before exiting (install_signal): use sigaction instead of signal (this change was pending since the big bang) * src/errors.c: (cleanup): added call to restore_default_vt_handling() close framebuffer before tty. * src/prompt.c: (print_issue): remove parsing code, call parse_issue() instead. (parse_issue): import code from print_issue(). added support for long tags, call output_long() moved code to display environment variable, call output_environment() moved code to execute programm, call output_exec() (output_exec): new function (support for program arguments) use read_var_name() to read a name from the issue (output_environment): new function use read_var_name() to read a name from the issue (read_var_name): new function (isarg): new function, use with read_var_name() (isenvironment): likewise ... (output_long): new function 2001-02-13 Yann Droneaud Merge some changes made in cvs after 0.1.3 release but not integrated into 0.1.4 * src/vt.c: added support for macro USE_... added a pseudo support for FreeBSD (Yes, you can laugh). * src/prompt.c: added support for macro USE_... (output_special): change the output ouf user number (no more "0 users" or "-1 users") * src/main.c: (main): added support for USE_VT_SWITCHING macro when leaving close correctly the framebuffer (set it to NULL). * src/options.c: added option --dump-config (dump_config): new function (parse_command_line): import code from init.c * src/init.c: (init): moved filename completion (tty3 -> /dev/tty3) to options.c added support for USE_VT_SWITCHING macro the usual memory leaks corrections. * src/utmp.c (update_utmp): added some CPP conditionnal for __linux__ 2001-02-12 Yann Droneaud * src/prompt.c: (refresh_screen): free(fgoptions->fb_device) if mmap failed (refresh_screen): munmap framebuffer only if framebuffer is used (fix a debian reported bug xxxxxx) (output_escape): added support for splitted line in issue like this \ one. * include/fbgetty/errors.h: added prototypes: message() debug() added macro determining function name (__PRETTY_FUNCTION__/__func__/<>) * src/errors.c: (cleanup): new function. (fatal_error): rewritted to use my_vsyslog() (error): idem... (message): new function * src/my_syslog.c: new file (copied from libmy) (my_vsyslog): new function * src/init.c: (init): moved signal handling code to signal.c * src/signal.c: new file (install_signal): new function code copied from init.c * include/fbgetty/options.h: added prototypes: fgoptions_free() * src/options.c: (fgoptions_free): new function (used to free a fgoptions structure) (parse_command_line): use fgoptions_free(). 2001-01-02 Yann Droneaud * src/prompt.c: (get_login_name): don't delete more characters the login name contains set c to EOF if read failed See ChangeLog.1 for earlier changes.