mirror of
https://github.com/sheumann/hush.git
synced 2024-08-17 00:29:03 +00:00
332 lines
19 KiB
HTML
332 lines
19 KiB
HTML
<!--#include file="header.html" -->
|
|
|
|
<ul>
|
|
|
|
<li>
|
|
<p>We want to thank the following companies which are providing support for the BusyBox project:
|
|
<ul>
|
|
<li>AOE media, a <a href="http://www.aoemedia.com/typo3-development.html">
|
|
TYPO3 development agency</a> contributes financially.</li>
|
|
<li><a href="http://www.analog.com/en/">Analog Devices, Inc.</a> provided
|
|
a <a href="http://docs.blackfin.uclinux.org/doku.php?id=bf537_quick_start">
|
|
Blackfin development board</a> free of charge.
|
|
<a href="http://www.analog.com/blackfin">Blackfin</a>
|
|
is a NOMMU processor, and its availability for testing is invaluable.
|
|
If you are an embedded device developer,
|
|
please note that Analog Devices has entire Linux distribution available
|
|
for download for this board. Visit
|
|
<a href="http://blackfin.uclinux.org/">http://blackfin.uclinux.org/</a>
|
|
for more information.
|
|
</li>
|
|
</ul>
|
|
</p>
|
|
</li>
|
|
|
|
<li><b>29 November 2008 -- BusyBox 1.13.1 (stable), BusyBox 1.12.3 (stable)</b>
|
|
<p><a href="http://busybox.net/downloads/busybox-1.13.1.tar.bz2">BusyBox 1.13.1</a>.
|
|
(<a href="http://sources.busybox.net/index.py/branches/busybox_1_13_stable/">svn</a>,
|
|
<a href="http://busybox.net/downloads/fixes-1.13.1/">patches</a>,
|
|
<a href="http://busybox.net/fix.html">how to add a patch</a>)</p>
|
|
<p><a href="http://busybox.net/downloads/busybox-1.12.3.tar.bz2">BusyBox 1.12.3</a>.
|
|
(<a href="http://sources.busybox.net/index.py/branches/busybox_1_12_stable/">svn</a>,
|
|
<a href="http://busybox.net/downloads/fixes-1.12.3/">patches</a>,
|
|
<a href="http://busybox.net/fix.html">how to add a patch</a>)</p>
|
|
|
|
<p>Bug fix releases. 1.13.1 has fixes for ash, option parsing, id, init,
|
|
inotifyd, klogd, line editing and modprobe. 1.12.3 has fixes
|
|
for option parsing and line editing.
|
|
</p>
|
|
</li>
|
|
|
|
<li><b>10 November 2008 -- BusyBox 1.13.0 (unstable), BusyBox 1.12.2 (stable)</b>
|
|
<p><a href="http://busybox.net/downloads/busybox-1.13.0.tar.bz2">BusyBox 1.13.0</a>.
|
|
(<a href="http://sources.busybox.net/index.py/branches/busybox_1_13_stable/">svn</a>,
|
|
<a href="http://busybox.net/downloads/fixes-1.13.0/">patches</a>,
|
|
<a href="http://busybox.net/fix.html">how to add a patch</a>)</p>
|
|
<p><a href="http://busybox.net/downloads/busybox-1.12.2.tar.bz2">BusyBox 1.12.2</a>.
|
|
(<a href="http://sources.busybox.net/index.py/branches/busybox_1_12_stable/">svn</a>,
|
|
<a href="http://busybox.net/downloads/fixes-1.12.2/">patches</a>,
|
|
<a href="http://busybox.net/fix.html">how to add a patch</a>)</p>
|
|
|
|
<p>Sizes of busybox-1.12.2 and busybox-1.13.0 (with equivalent config, static uclibc build):<pre>
|
|
text data bss dec hex filename
|
|
778291 551 7856 786698 c010a busybox-1.12.2/busybox
|
|
778981 551 7852 787384 c03b8 busybox-1.13.0/busybox
|
|
</pre>
|
|
|
|
<p>New applets: blkid, devmem
|
|
|
|
<p>Changes since previous release:
|
|
<ul>
|
|
<li>mail applets: total overhaul. Vladimir as usual</li>
|
|
<li>ash: fix "while kill -0 $child; do true; done" looping forever</li>
|
|
<li>ash: fix NOEXEC mode - we were forgetting to pass environment</li>
|
|
<li>ash: fix a bug in standalone mode (corrupted getopt state)</li>
|
|
<li>ash: optionally support ">&file" and "&>file" redirections</li>
|
|
<li>awk: bitwise ops cast oprands and results to unsigned long, not signed. closes bug 4774</li>
|
|
<li>awk: fix typo in atan2 code. closes bug 5594</li>
|
|
<li>awk: improve handling of negative numbers in bitwise ops; fix handling of octal costants</li>
|
|
<li>awk: support hex constants</li>
|
|
<li>basename: fix error code (again)</li>
|
|
<li>cpio: emit TRAILER even when hard links were found. By Pascal Bellard (pascal.bellard AT ads-lu.com)</li>
|
|
<li>crontab: do not destroy STDIN_FILENO, editor may need it (crontab -e)</li>
|
|
<li>dc: support for bases 2 and 8, by Nate Case (ncase AT xes-inc.com)</li>
|
|
<li>dhcpc: treat "discover...select...discover..." loop the same way as "discover...discover...discover..."</li>
|
|
<li>dpkg: add dpkg -l PACKAGE_PATTERN. By Peter Korsgaard</li>
|
|
<li>fbset: fix mode matching code: original code may trigger false positive.</li>
|
|
<li>findfs: fix LUKS and FAT detection routines; do not exit if corrupted FAT fs makes us try to seek past the end</li>
|
|
<li>grep: fix 'echo aaa | grep -o a' + ENABLE_EXTRA_COMPAT case. By Natanael Copa</li>
|
|
<li>grep: fix EXTRA_COMPAT grep to honor -E and -i</li>
|
|
<li>gunzip: restore mtime</li>
|
|
<li>halt: reinstate -w even if !FEATURE_WTMP</li>
|
|
<li>hexdump: fix SEGV in hexdump -e ""</li>
|
|
<li>httpd: pass "Accept:" and "Accept-Language:" header to CGI scripts (Alina Friedrichsen)</li>
|
|
<li>hush: fix environment and memory leaks</li>
|
|
<li>hush: fix trashing of environment by local env vars: a=a; a=b cmd; - a was unset</li>
|
|
<li>id: improve compatibility with coreutils. By Tito Ragusa</li>
|
|
<li>inetd: fix a case when we have zero services</li>
|
|
<li>inetd: use config parser. by Vladimir</li>
|
|
<li>init: set stderr to NONBLOCK</li>
|
|
<li>insmod: fix detection of open failure</li>
|
|
<li>install: support -D</li>
|
|
<li>ip: fix ip route rejecting dotted quads as prefix</li>
|
|
<li>ip: route metric support (Natanael Copa)</li>
|
|
<li>iplink: accept shorthands for "address" keyword: "ip link set address 00:11:22:33:44:55"</li>
|
|
<li>kbd_mode: support -C TTY</li>
|
|
<li>kill[all[5]]: accept -s SIG too. By Steve Bennett (steveb AT workware.net.au)</li>
|
|
<li>klogd: handle many lines at once. By Steve Bennett (steveb AT workware.net.au)</li>
|
|
<li>less: support -I to be able to search case-insensitively</li>
|
|
<li>less: add optional line number toggle and resizing on window resize</li>
|
|
<li>libbb: do not reject floating point strings like ".15"</li>
|
|
<li>lineedit: fix bug 5824 "since rev 23530 fdisk and ed don't work any more"</li>
|
|
<li>lineedit: fix problems with empty commands in history</li>
|
|
<li>login: fix /etc/nologin handling</li>
|
|
<li>man: fix inconsistencies in handling $MANPATH</li>
|
|
<li>mdev: support match by major,minor. See bug 4714</li>
|
|
<li>modprobe-small: make insmod command line compatible</li>
|
|
<li>modprobe-small: support "blacklist" keyword in /etc/modules/MODULE_NAME</li>
|
|
<li>modprobe: fix a segfault when modprobe is called with no arguments at all</li>
|
|
<li>modutils/*: rewrite by Timo Teras (timo.teras AT iki.fi)</li>
|
|
<li>mount: fix "-o parm1 -o parm2" not accumulating</li>
|
|
<li>nmeter: 4k buffers are too small for /proc files, make them dynamically sized with 16k upper limit</li>
|
|
<li>ping: SO_RCVBUF must be bigger than packet size, otherwise large ping packets might fail to be received</li>
|
|
<li>route: fix for 64-bit BE machines by Seonghun Lim (wariua AT gmail.com)</li>
|
|
<li>rpm: fix incompatibilities which prevented rpm -i foo.src.rpm</li>
|
|
<li>runsvdir: support runsvdir-as-init</li>
|
|
<li>setarch: do not try to use non-existent data in argv[]</li>
|
|
<li>setfont: support -m and -C, support -m TEXTUAL_MAP (by Vladimir)</li>
|
|
<li>setup_environment: cd $HOME regardless of clear_env value</li>
|
|
<li>slattach: preserve speed in non-raw mode. By Matthieu Castet (matthieu.castet AT parrot.com)</li>
|
|
<li>start_stop_daemon: accept (and ignore) -R PARAM</li>
|
|
<li>sv: make default service dir configurable (Vladimir wants it)</li>
|
|
<li>sysctl: fix bug 3894 (by Kryzhanovskyy Maksym)</li>
|
|
<li>tar: fix bug 3844: non-root tar does not preserve perms</li>
|
|
<li>telnetd: handle emacs M-DEL and IAC-NOP. by Jim Cathey (jcathey AT ciena.com)</li>
|
|
<li>top: fix "top -d 1" (bug 5144)</li>
|
|
<li>top: optional SMP support by Vineet Gupta (vineetg76 AT gmail.com)</li>
|
|
<li>trylink: make messages less confusing</li>
|
|
<li>unzip: handle "central directory". needed for OpenOffice, gmail attachment .zips etc</li>
|
|
<li>vi: Rob's algorithm of reading and matching ESC sequences (nice work btw!)</li>
|
|
<li>vi: deal with EOF/error on stdin and with input NULs</li>
|
|
<li>vi: fix uninitialized last_search_pattern (bug 5794)</li>
|
|
<li>vi: handle chars 0x80, 0x81 etc correctly</li>
|
|
<li>volume identification: abolish /proc/partitions and /proc/cdroms scanning. It does not catch volume managers and such. Simply scan /dev/* for any block devices</li>
|
|
<li>watchdog: WDIOC_SETTIMEOUT accepts seconds, not milliseconds</li>
|
|
<li>watchdog: add -T option</li>
|
|
</ul>
|
|
<p>
|
|
The email address gpl@busybox.net is the recommended way to contact
|
|
the Software Freedom Law Center to report BusyBox license violations.
|
|
</p>
|
|
</li>
|
|
|
|
<li><b>28 September 2008 -- BusyBox 1.12.1 (stable), BusyBox 1.11.3 (stable)</b>
|
|
<p><a href="http://busybox.net/downloads/busybox-1.12.1.tar.bz2">BusyBox 1.12.1</a>.
|
|
(<a href="http://sources.busybox.net/index.py/branches/busybox_1_12_stable/">svn</a>,
|
|
<a href="http://busybox.net/downloads/fixes-1.12.1/">patches</a>,
|
|
<a href="http://busybox.net/fix.html">how to add a patch</a>)</p>
|
|
<p><a href="http://busybox.net/downloads/busybox-1.11.3.tar.bz2">BusyBox 1.11.3</a>.
|
|
(<a href="http://sources.busybox.net/index.py/branches/busybox_1_11_stable/">svn</a>,
|
|
<a href="http://busybox.net/downloads/fixes-1.11.3/">patches</a>,
|
|
<a href="http://busybox.net/fix.html">how to add a patch</a>)</p>
|
|
<p>
|
|
Bugfix-only releases for 1.11.x and 1.12.x branches.
|
|
</p>
|
|
</li>
|
|
|
|
<li><b>21 August 2008 -- BusyBox 1.12.0 (unstable), BusyBox 1.11.2 (stable)</b>
|
|
<p><a href="http://busybox.net/downloads/busybox-1.12.0.tar.bz2">BusyBox 1.12.0</a>.
|
|
(<a href="http://sources.busybox.net/index.py/branches/busybox_1_12_stable/">svn</a>,
|
|
<a href="http://busybox.net/downloads/fixes-1.12.0/">patches</a>,
|
|
<a href="http://busybox.net/fix.html">how to add a patch</a>)</p>
|
|
<p><a href="http://busybox.net/downloads/busybox-1.11.2.tar.bz2">BusyBox 1.11.2</a>.
|
|
(<a href="http://sources.busybox.net/index.py/branches/busybox_1_11_stable/">svn</a>,
|
|
<a href="http://busybox.net/downloads/fixes-1.11.2/">patches</a>,
|
|
<a href="http://busybox.net/fix.html">how to add a patch</a>)</p>
|
|
|
|
<p>Sizes of busybox-1.11.2 and busybox-1.12.0 (with equivalent config, static uclibc build):<pre>
|
|
text data bss dec hex filename
|
|
829687 617 7052 837356 cc6ec busybox-1.11.2/busybox
|
|
822961 594 6832 830387 cabb3 busybox-1.12.0/busybox
|
|
</pre>
|
|
|
|
<p>New applets: rdev (Grant Erickson), setfont, showkey (both by Vladimir)
|
|
|
|
<p>Most significant changes since previous release (please report any regression):
|
|
<ul>
|
|
<li>ash: bash compat: "shift $BIGNUM" is equivalent to "shift 1"</li>
|
|
<li>ash: dont allow e.g. exec <&10 to attach to script's fd! </li>
|
|
<li>ash: fix a bug where redirection fds were not closed afterwards. optimize close+fcntl(DUPFD) into dup2</li>
|
|
<li>ash: fix segfault in "command -v"</li>
|
|
<li>ash: fix very weak $RANDOM generator</li>
|
|
<li>ash: prevent exec NN>&- from closing fd used for script reading</li>
|
|
<li>ash: teach ash about 123>file. It could take only 0..9 before</li>
|
|
<li>hush: fix a case where "$@" must expand to no word at all</li>
|
|
<li>hush: fix mishandling of a'b'c=fff as assignments. They are not</li>
|
|
<li>hush: fix non-detection of builtins and applets in "v=break; ...; $v; ..." case</li>
|
|
<li>hush: fix "while false; ..." exitcode; add testsuites</li>
|
|
<li>hush: support "case...esac" statements (~350 bytes of code)</li>
|
|
<li>hush: support "break [N]" and "continue [N]" statements</li>
|
|
<li>hush: support "for if in do done then; do echo $if; done" case</li>
|
|
<li>hush: support "for v; do ... done" syntax (implied 'in "$@"')</li>
|
|
<li>hush: support $_NUMBERS variable names</li>
|
|
<li>libbb: unified config parser (by Vladimir). This change affected many applets</li>
|
|
</ul>
|
|
|
|
<p>Other changes:
|
|
<ul>
|
|
<li>libbb: dump: do not use uninitialized memory (closes bug 4364)</li>
|
|
<li>libbb: fix bb_strtol[l]'s check for "-" (closes bug 4174)</li>
|
|
<li>libbb: fix --help to not affect "test --help"</li>
|
|
<li>libbb: fix mishandling of "all argv are opts" in getopt32()</li>
|
|
<li>libbb: getopt32() should not ever touch argv[0] (even read)</li>
|
|
<li>libbb: introduce and use xrealloc_vector</li>
|
|
<li>libbb: [x]fopen_for_{read,write} introduced and used (by Vladimir)</li>
|
|
<li>lineedit: fix use-after-free</li>
|
|
<li>libunarchive: refactor handling of archived files. "tar f file.tar.lzma" now works too</li>
|
|
<li>bb_strtoXXX: close bug 4174 (potential use of buf[-1])</li>
|
|
<li>open_transformer: don't leak file descriptor</li>
|
|
<li>open_transformer: fix bug of calling exit instead of _exit</li>
|
|
<li>arp: without -H type, assume "ether" (closes bug 4564)</li>
|
|
<li>ar: reuse existing ar unpacking code</li>
|
|
<li>awk: fix a case with multiple -f options. Simplify -f file reading. </li>
|
|
<li>build system: introduce and use FAST_FUNC: regparm on i386, otherwise no-op</li>
|
|
<li>bunzip2: fix an uncompression error (by Rob Landley rob AT landley.net)</li>
|
|
<li>b[un]zip2, g[un]zip: unlink destination if -f is given (closes bug 3854)</li>
|
|
<li>comm: almost total rewrite</li>
|
|
<li>cpio: fix -m to actually work as expected (by Pascal Bellard)</li>
|
|
<li>cpio: internalize archive_xread_all_eof, add a few paranoia checks for corrupted cpio files</li>
|
|
<li>cpio: make long opts depend only on ENABLE_GETOPT_LONG</li>
|
|
<li>cpio: on unpack, limit filename length to 8k</li>
|
|
<li>cpio: support some long options</li>
|
|
<li>crond: use execlp instead of execl</li>
|
|
<li>cut: fix buffer overflow (closes bug 4544)</li>
|
|
<li>envdir: fix "envdir" (no params at all) and "envdir dir" cases</li>
|
|
<li>findfs: make it use setuid-ness of busybox binary</li>
|
|
<li>fsck: use getmntent_r instead of open-coded parsing (by Vladimir)</li>
|
|
<li>fuser: a bit of safety in scanf</li>
|
|
<li>grep: option to use GNU regex matching instead of POSIX one. This fixes problems with NULs in files being scanned, but costs +800 bytes</li>
|
|
<li>halt: signal init regardless of ENABLE_INIT</li>
|
|
<li>httpd: add homedir directive specially for (and by) Walter Harms wharms AT bfs.de</li>
|
|
<li>ifupdown: /etc/network/interfaces can have comments with leading blanks</li>
|
|
<li>ifupdown: fixes for custom MAC address (by Wade Berrier wberrier AT gmail.com)</li>
|
|
<li>ifupdown: fixes for shutdown of DHCP-managed interfaces (by Wade Berrier wberrier AT gmail.com)</li>
|
|
<li>inetd: do not trash errno in signal handlers; in CHLD handler, stop looping through services when pid is found</li>
|
|
<li>insmod: users report that "|| defined(__powerpc__)" is missing</li>
|
|
<li>install: do not chown intermediate directories with install -d (by Natanael Copa)</li>
|
|
<li>install: fix long option not taking params (closes bug 4584)</li>
|
|
<li>lpd,lpr: send/receive ACKs after filenames, not only after file bodies</li>
|
|
<li>ls: fix a bug where we may use uninintialized variable</li>
|
|
<li>man: add handling of "man links", by Ivana Varekova varekova AT redhat.com</li>
|
|
<li>man: fix a case when a full pathname to manpage is given</li>
|
|
<li>man: fix inverted cat/man bool variable</li>
|
|
<li>man: fix missed NULL termination of an array</li>
|
|
<li>man: mimic "no manual entry for 'bogus'" message and exitcode</li>
|
|
<li>man: support cat pages too (by Jason Curl jcurlnews AT arcor.de)</li>
|
|
<li>man: teach it to use .lzma if requested by .config</li>
|
|
<li>mdev: check for "/block/" substring for block dev detection</li>
|
|
<li>mdev: do not complain if mdev.conf does not exist</li>
|
|
<li>mdev: if device was moved at creation, at removal correctly remove it from moved location and also remove symlinks to it</li>
|
|
<li>mdev: support for serializing hotplug</li>
|
|
<li>mdev, init: use shared code for fd sanitization</li>
|
|
<li>mkdir: fix "uname 0222; mkdir -p foo/bar" case (by Doug Graham dgraham AT nortel.com)</li>
|
|
<li>modprobe: support for /etc/modprobe.d (by Timo Teras)</li>
|
|
<li>modprobe: use buffering line reads (fgets()) instead of reads()</li>
|
|
<li>modutils: optional modprobe-small (by Vladimir), 15kb smaller than standard one</li>
|
|
<li>mount: support for "-o mand" and "[no]relatime"</li>
|
|
<li>mount: support nfs mount option "nordiplus" (by Octavian Purdila opurdila AT ixiacom.com)</li>
|
|
<li>mount: support "relatime" / "norelatime"</li>
|
|
<li>mount: testsuite for "-o mand"</li>
|
|
<li>msh: fix "while... continue; ..." (closes bug 3884)</li>
|
|
<li>mv: fix a case when we move dangling symlink across mountpoints</li>
|
|
<li>netstat: optional -p support (by L. Gabriel Somlo somlo AT cmu.edu)</li>
|
|
<li>nmeter: fix read past the end of a buffer (closes bug 4594)</li>
|
|
<li>od, hexdump: fix bug where xrealloc may move pointer, leaving other pointers dangling (closes bug 4104)</li>
|
|
<li>pidof/killall: allow find_pid_by_name to find running processes started as scripts_with_name_longer_than_15_bytes.sh (closes bug 4054)</li>
|
|
<li>printf: do not print garbage on "%Ld" (closes bug 4214)</li>
|
|
<li>printf: fix %b, fix several bugs in %*.*, fix compat issues with aborting too early, support %zd; expand testsuite</li>
|
|
<li>printf: protect against bogus format specifiers (closes bug 4184)</li>
|
|
<li>sendmail: updates from Vladimir:</li>
|
|
<li>sendmail: do not discard all headers</li>
|
|
<li>sendmail: do not ignore CC; accept to: and cc: case-insensitively. +20 bytes</li>
|
|
<li>sendmail: fixed mail recipient address</li>
|
|
<li>sendmail: fixed SEGV if sender address is missed</li>
|
|
<li>sendmail: use HOSTNAME instead of HOST when no server is explicitly specified</li>
|
|
<li>sleep: if FANCY && DESKTOP, support fractional seconds, minutes, hours and so on (coreutils compat)</li>
|
|
<li>ssd: CLOSE_EXTRA_FDS in MMU case too</li>
|
|
<li>ssd: do not stat -x EXECUTABLE, it is not needed anymore</li>
|
|
<li>ssd: fix -a without -x case</li>
|
|
<li>ssd: use $PATH</li>
|
|
<li>tar: fix handling of tarballs with symlinks with size field != 0</li>
|
|
<li>tar: handle autodetection for tiny .tar.gz files too, simplify autodetection</li>
|
|
<li>taskset: fix some careless code in both fancy and non-fancy cases. -5 bytes for fancy, +5 for non-fancy</li>
|
|
<li>tee: fix infinite looping on open error (echo asd | tee "")</li>
|
|
<li>tee: "-" is a name for stdout, handle it that way</li>
|
|
<li>telnetd: fix issue file printing</li>
|
|
<li>test: fix parser to prefer binop over unop, as coreutils does</li>
|
|
<li>testsuite: uniformly use $ECHO with -n -e</li>
|
|
<li>time: don't segfault with no arguments</li>
|
|
<li>touch: support -r REF_FILE if ENABLE_DESKTOP (needed for blackfin compile)</li>
|
|
<li>tr: fix "access past the end of a string" bug 4354</li>
|
|
<li>tr: fix "tr [=" case (closes bug 4374)</li>
|
|
<li>tr: fix yet another access past the end of a string (closes bug 4374)</li>
|
|
<li>unlzma: fix memory leak (by Pascal Bellard)</li>
|
|
<li>vi: fix reversed checks for underflow</li>
|
|
<li>vi: using array data after it fell out of scope is stupid</li>
|
|
<li>xargs: fix -e default to match newer GNU xargs, add SUS mandated -E (closes bug 4414)</li>
|
|
<li>other fixes and code size reductions in many applets</li>
|
|
</ul>
|
|
</p>
|
|
|
|
<li><b>12 July 2008 -- BusyBox 1.11.1 (stable)</b>
|
|
<p><a href="http://busybox.net/downloads/busybox-1.11.1.tar.bz2">BusyBox 1.11.1</a>.
|
|
(<a href="http://sources.busybox.net/index.py/branches/busybox_1_11_stable/">svn</a>,
|
|
<a href="http://busybox.net/downloads/fixes-1.11.1/">patches</a>,
|
|
<a href="http://busybox.net/fix.html">how to add a patch</a>)</p>
|
|
<p>
|
|
Bugfix-only release for 1.11.x branch. It contains fixes for awk,
|
|
bunzip2, cpio, ifupdown, ip, man, start-stop-daemon, uname and vi.
|
|
</p>
|
|
</li>
|
|
|
|
<li><b>11 July 2008 -- HOWTO is updated</b>
|
|
<p>
|
|
<a href="http://busybox.net/~vda/HOWTO/i486-linux-uclibc/HOWTO.txt">
|
|
"How to build static busybox for i486-linux-uclibc"</a> is updated
|
|
and tested on a fresh Fedora 9 install. Please report if it doesn't
|
|
work for you.
|
|
</p>
|
|
</li>
|
|
|
|
|
|
|
|
<li><b>Old News</b><p>
|
|
Click here to read <a href="oldnews.html">older news</a>
|
|
</p>
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
<!--#include file="footer.html" -->
|
|
|