diff --git a/NOTES/MANIFEST b/NOTES/MANIFEST new file mode 100644 index 0000000..ad3e759 --- /dev/null +++ b/NOTES/MANIFEST @@ -0,0 +1,21 @@ +INSTALL Explains how to install the binary distribution. (Obsolete.) +MANIFEST This file. +README.beta Out of date notes. (Obsolete.) +README.src Out of date notes. (Obsolete.) +archives Shows the breakdown of how the GNO binary distribution + is currently shipped. +devel Directory containing notes intended for developers working + on the base distribution. +deviations Lists the ways in which GNO is known to deviate from + the POSIX specification and/or the BSD implementations + on which components of GNO are based. +headers These are some notes on how headers have changed from + v2.0.4 to v2.0.6 +notes.960227 Notes to Derek. Should be moved/updated. (Obsolete.) +status.bin This lists the status of the various programs in the base + distribution. +status.lib This lists the status of the routines in the libraries of + the base distribution. +status.usrman This lists the status of the files in the src/gno/usr.man + directory hierarchy. +update.usrman This is a script to help keep status.usrman current. diff --git a/NOTES/TO.DO b/NOTES/TO.DO deleted file mode 100644 index 89d8941..0000000 --- a/NOTES/TO.DO +++ /dev/null @@ -1,159 +0,0 @@ -******* -* soon -* -* $Id: TO.DO,v 1.8 1998/10/31 19:14:49 gdr-ftp Exp $ -* -******* - -When building the binary release, include all the system stuff like -GNOSnooper, et al. - -We need a namespace(5) manual page. Here is a "bugs" entry for it: - Apropos of building a bootable system, I've also encountered another - bug. One cannot use a "partition" defined in /etc/namespace as the - home directory for any user. For example, one cannot use "/root" as - root's home directory unless it is a real volume. The symptoms of - this are: - 1. You will get a error about "Device not found" - 2. The user's gshrc file will not have been sourced. - -Make the source *.shk archive on trenco use proper file types. - -The header files , , and -have conflicting definitions for FLUSHO. - -newuser, newuserv: - - update to use /home vice /user or maybe a conf file - - check out behavior of 'adduser', see if there's anything - missing - -vfscanf.c: - After a reasonable time, disable the assert calls. - -Finish index in kernel reference manual. - -in stack(3) man page, the user shouldn't have to allow for extra -bytes for _assertStack(3). Determine what is necessary. If the -number of bytes left is less than this value, then print out -an abbreviated error message rather than calling errx. - -Add implementations for Tilghman: - strftime(3) - -Create a src/gno/build.tools/mklink script for duplicating binary -files at user install time. Current packages that need this: - compress/zcat - sum/cksum - -As a group: - Update utmp.5, libutil (logout, logwtmp), last(1), login(1), who(1), - w(1), init(8), _PATH_UTMP ( and FAQ), rwho(1), users(1) - -Add to relevent util man pages: - .SH ATTRIBUTIONS - This command was ported from FreeBSD source code - for distribution with GNO/ME 2.0.6. - -stdio: - - add %b modifier to fprintf implementation (ORCA/C compatibility) - -stdlib/cvt.c: - - handle modes 0 and 1 correctly. - -Use result of _setModeEmulation(3) in appropriate calls. These include - chmod - - fchmod - - creat - done - open - done - stat - unnecessary - fstat - unnecessary - lstat - unnecessary - -check up on the type of nlink_t, used in stat(2) - -Write a test that handles: - - negative process numbers - - process numbers exceeding INT_MAX and UINT_MAX -the easiest way to do this is to repeatedly exec a program that prints -it's process number. Keep doing so until either the number wraps or -the machine crashes. - -libc/sys/exec.c: - buildCmd should single-quote strings containing whitespace. - If the string already has single quotes, then backspace them. - - buildPath should only return files of type S16, EXEC, or EXE. - - buildPath should use the mapPath facility. - - These functions should operate closer to GS/OS when possible. - Also need to reduce stack requirements. - - For the exec* functions, there should be a test for whether - or not the file is of type SRC and auxtype EXEC. If that - is the case, and if the first two characters of the file - are '#!', then the shell should be exec'd instead. (currently, - shell scripts cannot be exec'd) - - -NEED TO WRITE OR DUPLICATE MAN PAGES FOR ----------------------------------------- - login libc(3) - login_tty - regexp libc(3) - termcap libc(3) - queue 3 - tty 4 - grp 5 - passwd 5 - termcap 5 - ms 7 - man 7 - cron 8 - runover 8 (obsolete?) No, needed for single user mode. - dialup 8 - - -******* -* defer -******* - -investigate using dynamic libraries (RTLs) - -libc/sys/syscall.c: - for unlink, if file is open, then register a call to unlink - (non-recursive) the file via atexit(3) - [not practical?] - -libc/gen/environ.c: - Review routines. Force them to use GSString routines, reduce - stack usage (depend on dynamic allocation for parm blocks). - -libc/gen/err.c: - Use syslogd if not on a tty. - -libc/gen/tty.c: - review these routines - -do intro man pages: - 1 done - 2 review DEFINITIONS section - 3 done - 4 done - 5 done - 6 done - 7 done - 8 done - -Add locale implementation to libc. - -various man pages: - add note under COMPATIBILITY as to whether the routines - are thread-safe. If they write any globals or static - variables, they are not. - -Verify that the setdebug(2) macros in gno/gno.h are correct. - -Add implementations for execle; the final -envp can't appear in the prototype, but it can be found since it is -the last argument after the first NULL pointer. diff --git a/NOTES/archives b/NOTES/archives new file mode 100644 index 0000000..0eeceef --- /dev/null +++ b/NOTES/archives @@ -0,0 +1,24 @@ +$Id: archives,v 1.1 1999/01/09 21:28:35 gdr-ftp Exp $ + +A GNO "release" is shipped (so to speak) as a set of NuFX (*.shk) archives. +This is the breakdown of each NuFX archive: + + gnoboot.shk /gno.boot (entire volume) + gno.01.shk /kern + /initrc + /lib + gno.02.shk /bin (utils a-f) + gno.03.shk /bin (utils g-m) + gno.04.shk /bin (utils n-s) + gno.05.shk /bin (utils t-z) + gno.06.shk /usr/bin (utils a-f) + gno.07.shk /usr/bin (utils g-m) + gno.08.shk /usr/bin (utils n-s) + gno.09.shk /usr/bin (utils t-z) + gno.10.shk /usr/include + gno.11.shk /usr/man/man1 + gno.12.shk /usr/man/man2 + gno.13.shk /usr/man/man3 + gno.14.shk /usr/man/man[45678] + gno.15.shk /usr (remaining files) + gno.16.shk / (remaining files) diff --git a/NOTES/headers b/NOTES/headers index 643bc64..4667f02 100644 --- a/NOTES/headers +++ b/NOTES/headers @@ -1,9 +1,10 @@ -$Id: headers,v 1.1 1997/02/28 05:42:26 gdr Exp $ +$Id: headers,v 1.2 1999/01/09 21:28:35 gdr-ftp Exp $ A hash prefix indicates that it has passed the compile test. An "[Orca]" indicates that the file is modified from an Orca/C header rather than from either BSD or custom sources. +This file is probably out of date; feel free to submit corrections. # curses.h changed hash type from u_int to u_long # db.h various macros have changed. @@ -17,7 +18,7 @@ from either BSD or custom sources. # glob.h # gno/conf.h # gno/gno.h - gno/kerntool.h INCOMPLETE CHANGES -- OBSOLETE? + gno/kerntool.h INCOMPLETE CHANGES # gno/kvm.h # gno/proc.h # gno/sim.h @@ -44,7 +45,7 @@ from either BSD or custom sources. # sgtty.h # signal.h # stddef.h -# stdio.h [Orca] *** critical that __ORCAC_VERSION is correct +# stdio.h *** upgraded to BSD 4.4 (incompatible downward) # stdlib.h # string.h * check need for "const" in non-BSD, non-ORCA routines # sys/cdefs.h diff --git a/NOTES/new.syscalls b/NOTES/new.syscalls deleted file mode 100644 index f4c7144..0000000 --- a/NOTES/new.syscalls +++ /dev/null @@ -1,21 +0,0 @@ - System calls new in v2.0.6 - ========================== - - select $4303 - InstallNetDriver $4403 - socket $4503 - bind $4603 - connect $4703 - listen $4703 - accept $4903 - recvfrom $4A03 - sendto $4B03 - recv $4C03 - send $4D03 - getpeername $4E03 - getsockname $4F03 - getsockopt $5003 - setsockopt $5103 - shutdown $5203 - setreuid $5303 - setregid $5403 diff --git a/NOTES/status.bin b/NOTES/status.bin index 9b10b47..9b70823 100644 --- a/NOTES/status.bin +++ b/NOTES/status.bin @@ -11,7 +11,7 @@ * * * Devin Reade, 10 April 1998. * * * -* $Id: status.bin,v 1.17 1998/10/31 19:14:49 gdr-ftp Exp $ * +* $Id: status.bin,v 1.18 1999/01/09 21:28:35 gdr-ftp Exp $ * * * ************************************************************************* @@ -100,7 +100,7 @@ Program 204 Req Owner Source Man Compile Test Target Target [Note] Comments /bin/domainname /bin/du Y Y evan Y /bin/echo N Y dt -/bin/ed +/bin/ed N . mober . . . . . . # avail separately (trenco) /bin/edit Y Y Y /bin/egrep Y Y evan /bin/expr @@ -213,8 +213,8 @@ Program 204 Req Owner Source Man Compile Test Target Target [Note] Comments /usr/bin/apply N N /usr/bin/apropos N Y gdr Y T Y Y Y RI (man) /usr/bin/ar N N -/usr/bin/asml N Y gdr Y T Y Y Y RI -/usr/bin/assemble N Y gdr Y T Y Y Y RI +/usr/bin/asml N Y gdr Y T Y Y Y RI (compile) +/usr/bin/assemble N Y gdr Y T Y Y Y RI (compile) /usr/bin/at . . sr /usr/bin/aw30 Y . . Y . . . Y /usr/bin/awk N Y dave Y T T T Y RI @@ -227,9 +227,9 @@ Program 204 Req Owner Source Man Compile Test Target Target [Note] Comments /usr/bin/catrez N Y dave Y T Y Y Y RI /usr/bin/cclean N Y sonk /usr/bin/cksum N Y dave Y Y Y Y Y RI -/usr/bin/cmpl Y Y gdr Y T Y Y Y RI +/usr/bin/cmpl Y Y gdr Y T Y Y Y RI (compile) /usr/bin/coff N Y -/usr/bin/col +/usr/bin/col N . mober . . . . . . # avail separately (trenco) /usr/bin/colcrt N Y sr Y T Y Y Y RI /usr/bin/column N . mober /usr/bin/compile Y Y gdr Y T Y Y Y RI @@ -328,7 +328,7 @@ Program 204 Req Owner Source Man Compile Test Target Target [Note] Comments /usr/bin/yankit Y Y /usr/bin/zsh N Y lb # renamed to nosh /usr/games Y Y gdr dir - - - - Y -/usr/games/calendar N Y ma Y T Y Y Y +/usr/games/calendar N Y ma Y T Y Y Y RI /usr/games/wump Y /usr/include Y Y gdr dir - - - - Y /usr/lib Y Y gdr dir - - - - Y diff --git a/NOTES/status.lib b/NOTES/status.lib index 2a4c02f..8fee445 100644 --- a/NOTES/status.lib +++ b/NOTES/status.lib @@ -1,4 +1,4 @@ -$Id: status.lib,v 1.7 1998/10/31 19:14:49 gdr-ftp Exp $ +$Id: status.lib,v 1.8 1999/01/09 21:28:35 gdr-ftp Exp $ Key for Code Status column: R == reviewed @@ -81,7 +81,7 @@ syslogmt libc/gen/syslog.c T 3 sys/syslog.h tcnewpgrp libc/sys/trap.asm C 2 gno/gno.h tctpgrp libc/sys/trap.asm C 2 gno/gno.h vsprintmt libc/gno/sprintmt.c T 3 gno/gno.h -vyslogmt libc/gen/syslog.c T 3 sys/syslog.h +vsyslogmt libc/gen/syslog.c T 3 sys/syslog.h ~GNO_COMMAND libc/gno/gnocmd.asm C 3 na ~GNO_FREEARG libc/gno/parsearg.asm C 3 na ~GNO_PARSEARG libc/gno/parsearg.asm C 3 na @@ -370,6 +370,7 @@ umask libc/sys/syscall.c C 2 sys/stat.h ungetc libc/stdio/ungetc.c C 3 stdio.h unlink libc/sys/syscall.c T 2 unistd.h unsetenv libc/gen/environ.c T 3 stdlib.h +unvis libc/gen/unvis.c C 3 vis.h user_from_uid libc/gen/pwcache.c C 3 na utime libc/gen/utime.c T 3 sys/time.h utimes libc/gen/utime.c T 2 utime.h @@ -378,6 +379,7 @@ verrx libc/gen/err.c T 3 err.h vfork libc/sys/trap.asm C 2 unistd.h vfprintf libc/stdio/vfprintf.c C 3 stdio.h vfscanf libc/stdio/vfscanf.c C 3 stdio.h +vis libc/gen/vis.c C 3 vis.h vprintf libc/stdio/vprintf.c C 3 stdio.h vscanf libc/stdio/fscanf.c C 3 stdio.h vsnprintf libc/stdio/vsnprintf.c C 3 stdio.h @@ -439,10 +441,11 @@ BANK MODEL COMPLETE na na N N libc/gen/setjmp.asm 78 0 0 Y N libc/gen/siglist.c 78 0 0 Y Y libc/gen/sleep.c - na na Y N libc/gen/syslog.c + 78 0 0 Y N libc/gen/syslog.c na na Y N libc/gen/syslog2.asm [superceded by syslog.c] 78 0 0 Y N libc/gen/tty.c 78 0 0 Y Y libc/gen/utime.c + -1 0 0 Y N libc/gen/vis.c na na N N libc/gno/gnocmd.asm 78 0 0 (1) Y Y libc/gno/gnomisc.c diff --git a/NOTES/status.usrman b/NOTES/status.usrman new file mode 100644 index 0000000..4c14924 --- /dev/null +++ b/NOTES/status.usrman @@ -0,0 +1,194 @@ +# +# $Id: status.usrman,v 1.1 1999/01/09 21:28:35 gdr-ftp Exp $ +# +# This file shows a listing of all the man pages in /src/gno/usr.man +# and what their status is. The formatting should be checked on both +# a linux machine (that being what creates the online version of the +# documentation, and under GNO on the GS using nroff. +# +# In each of the fields, the following characters have the following +# meanings: +# 'y' means that the condition has been checked and found to +# be satisfactory. +# 'n' means that something is known to be wrong with meeting +# the condition, and it has not yet been fixed. There +# shouldn't be many if any of these; problems should be +# fixed as they are located. +# '.' is a space holder to ease in the translation of this file +# to HTML format, and indicates a condition that has not yet +# been checked. +# '-' in the mkso column indicates that no mkso entries are +# needed for this particular man page (ie: that the column +# is irrelevent). +# +# Verifying the man page can be done on both machines using the following +# command: +# nroff -man filename | more +# +# This file can be checked for consistency with the update.usrman script +# in the /src/gno/NOTES directory. +# +# Devin Reade, April 1998. +# +### Do not remove this line. ### +# +# formatting formatting mkso entries +# man page checked (linux) checked (IIgs) exist +# ---------------------------------------------------------------- +man1/intro.1 . y - +man2/accept.2 . y - +man2/access.2 . y - +man2/alarm.2 . y y +man2/bind.2 . y - +man2/chdir.2 . y y +man2/chmod.2 . y y +man2/close.2 . y - +man2/connect.2 . y - +man2/creat.2 . y - +man2/dup.2 . y y +man2/execve.2 . y y +man2/fcntl.2 . . . +man2/fork.2 . y y +man2/fsync.2 . y - +man2/getdtablesize.2 . y - +man2/getgid.2 . y y +man2/getlogin.2 . . . +man2/getpeername.2 . y - +man2/getpgrp.2 . y y +man2/getpid.2 . y y +man2/getsockname.2 . . . +man2/getsockopt.2 . . . +man2/gettimeofday.2 . . . +man2/getuid.2 . . . +man2/intro.2 . . - +man2/ioctl.2 . . . +man2/jobcontrol.2 . . . +man2/kernStatus.2 . . . +man2/kill.2 . . . +man2/listen.2 . . . +man2/lseek.2 . . . +man2/mkdir.2 . . . +man2/open.2 . . . +man2/pipe.2 . . . +man2/ports.2 . . . +man2/procsend.2 . . . +man2/read.2 . . . +man2/recv.2 . . . +man2/rename.2 . . . +man2/rmdir.2 . . . +man2/select.2 . . . +man2/semaphore.2 . . . +man2/send.2 . . . +man2/setdebug.2 . . . +man2/setpgid.2 . . . +man2/setregid.2 . . . +man2/setreuid.2 . . . +man2/setruid.2 . . . +man2/setuid.2 . . . +man2/shutdown.2 . . . +man2/sigblock.2 . . . +man2/signal.2 . . . +man2/sigpause.2 . . . +man2/sigsetmask.2 . . . +man2/socket.2 . . . +man2/stat.2 . . . +man2/statfs.2 . . . +man2/times.2 . . . +man2/truncate.2 . . . +man2/umask.2 . . . +man2/undocumented.2 . . . +man2/unlink.2 . . . +man2/utimes.2 . . . +man2/wait.2 . . . +man2/write.2 . . . +man3/GSString.3 . . . +man3/basename.3 . . . +man3/bcopy.3 . . . +man3/buildCmd.3 . . . +man3/buildEnv.3 . . . +man3/buildPath.3 . . . +man3/bzero.3 . . . +man3/clearerr.3 . . . +man3/crypt.3 . . . +man3/directory.3 . . . +man3/ecvt.3 . . . +man3/err.3 . . . +man3/exec.3 . . . +man3/execl.3 . . . +man3/exit.3 . . . +man3/fclose.3 . . . +man3/fflush.3 . . . +man3/fgetln.3 . . . +man3/fgets.3 . . . +man3/fnmatch.3 . . . +man3/fopen.3 . y . +man3/fputs.3 . . . +man3/fread.3 . . . +man3/fseek.3 . . . +man3/fsettext.3 . . . +man3/fts.3 . . . +man3/funopen.3 . . . +man3/getc.3 . . . +man3/getcwd.3 . . . +man3/getenv.3 . . . +man3/getgrent.3 . . . +man3/gethostname.3 . . . +man3/getopt.3 . . . +man3/getpass.3 . . . +man3/getpwent.3 . . . +man3/getsubopt.3 . . . +man3/getttyent.3 . . . +man3/index.3 . . . +man3/intro.3 . . - +man3/isRootPath.3 . . . +man3/isblank.3 . . . +man3/isinf.3 . . . +man3/mapErr.3 . . . +man3/mapMode.3 . . . +man3/mapPath.3 . . . +man3/mktemp.3 . . . +man3/needsgno.3 . . . +man3/parsearg.3 . . . +man3/pause.3 . . . +man3/popen.3 . . . +man3/printf.3 . . . +man3/progname.3 . . . +man3/psignal.3 . . . +man3/putc.3 . . . +man3/pwcache.3 . . . +man3/queue.3 . . . +man3/raise.3 . . . +man3/regex.3 . . . +man3/remove.3 . . . +man3/scandir.3 . . . +man3/scanf.3 . . . +man3/setbuf.3 . . . +man3/setjmp.3 . . . +man3/sleep.3 . . . +man3/sprintmt.3 . . . +man3/stack.3 . . . +man3/stdio.3 . . . +man3/strcasecmp.3 . . . +man3/strdup.3 . . . +man3/strerror.3 . . . +man3/strsep.3 . . . +man3/stty.3 . . . +man3/syslog.3 . . . +man3/tmpnam.3 . . . +man3/ttyname.3 . . . +man3/uname.3 . . . +man3/ungetc.3 . . . +man3/unvis.3 . . . +man3/utime.3 . . . +man3/vis.3 . . . +man4/intro.4 . . - +man4/tty.4 . . . +man5/intro.5 . . - +man5/utmp.5 . . . +man6/intro.6 . . - +man7/environ.7 . . . +man7/intro.7 . . - +man7/re.format.7 . . . +man8/init.8 . . . +man8/intro.8 . . - +man8/syslogd.8 . . . diff --git a/NOTES/update.usrman b/NOTES/update.usrman new file mode 100755 index 0000000..ed2193b --- /dev/null +++ b/NOTES/update.usrman @@ -0,0 +1,72 @@ +#! /usr/bin/perl +# +# This script is used to verify that the status.usrman file is current, +# at least with respect to which manpages are checked into the src/gno/usr.man +# directory hierarchy. +# +# Usage: update.usrman < status.usrman > output +# +# In other words, it doesn't update the status.usrman file directly; the +# output file would then have to be copied back to the original name, assuming +# that it is satisfactory. + +# +# Read the input file for existing entries. Don't modify these. +# +while (<>) { + chomp; + if (m,^(man\S+)(.*),) { + $entries{$1} = $2; + } else { + $header .= $_ . "\n"; + } +} + +# +# Now get the list of checked in files. We do this by parsing the CVS/Entries +# files directly. +# + +@chapters = ( '1', '2', '3', '4', '5', '6', '7', '8' ); +foreach $c (@chapters) { + + $file = "../usr.man/man$c/CVS/Entries"; + open(fp, "< $file") || die("couldn't open $file: $!"); + while () { + if (m,^/([^/]+\.$c)/,) { + $page = "man$c/$1"; + $cvs{$page} = ''; + } + } + close(fp); +} + +# +# Do some conchecks +# +@keylist_old = sort(keys(%entries)); +for $k (@keylist_old) { + defined($cvs{$k}) || + printf(stderr "Warning: page in input file but not checked in: %s\n", + $k); +} + +# +# Do some updates +# +@keylist_new = sort(keys(%cvs)); +for $k (@keylist_new) { + defined($entries{$k}) || ($entries{$k} = "\t\t.\t\t.\t\t."); +} + +# +# Now print out the result. +# +print $header; +@keylist = sort(keys(%entries)); +foreach $k (@keylist) { + if ($entries{$k} =~ m,^\s*$,) { + $entries{$k} = "\t\t.\t\t.\t\t."; + } + printf("%s%s\n", $k, $entries{$k}); +}