aboutsummaryrefslogtreecommitdiff
path: root/release
diff options
context:
space:
mode:
Diffstat (limited to 'release')
-rw-r--r--release/=announce-0.057
-rw-r--r--release/=announce-0.170
-rw-r--r--release/=announce-0.262
-rw-r--r--release/ChangeLog110
-rw-r--r--release/INSTALL-GRUB-MBR40
-rw-r--r--release/INSTALL-binary107
-rw-r--r--release/Makefile52
-rw-r--r--release/SETUP47
-rw-r--r--release/SOURCES.0.04
-rw-r--r--release/SOURCES.0.2110
-rw-r--r--release/bfloppy-special.copy1
-rw-r--r--release/bfloppy.boot14
-rw-r--r--release/bfloppy.copy11
-rw-r--r--release/bfloppy1-special.copy1
-rw-r--r--release/bfloppy1.copy7
-rw-r--r--release/bfloppy1.grub29
-rw-r--r--release/bfloppy2-special.copy2
-rw-r--r--release/bfloppy2.boot14
-rw-r--r--release/bfloppy2.copy4
-rw-r--r--release/checklist54
-rw-r--r--release/dist-README5
-rw-r--r--release/menu.lst27
-rwxr-xr-xrelease/mkemptyso.sh5
-rw-r--r--release/mkfsimage.sh412
-rwxr-xr-xrelease/mksmallso.sh48
-rw-r--r--release/release-steps8
-rw-r--r--release/rfloppy-special.copy3
-rw-r--r--release/rfloppy.copy175
-rw-r--r--release/rfloppy.group1
-rw-r--r--release/rfloppy.nss19
-rw-r--r--release/rfloppy.passwd1
-rw-r--r--release/servers.boot10
-rw-r--r--release/tool-Makefile141
33 files changed, 1275 insertions, 376 deletions
diff --git a/release/=announce-0.0 b/release/=announce-0.0
index 08d610ac..7aa1fa9f 100644
--- a/release/=announce-0.0
+++ b/release/=announce-0.0
@@ -6,17 +6,23 @@ anonymous FTP from prep.ai.mit.edu [18.159.0.42] in the file
This file contains complete source code for the following:
-Hurd servers: auth, crash, devio, devport, exec, ext2fs, fifo, fwd,
-ifsock, init, magic, new-fifo, nfs, null, pfinet, pflocal, proc,
-symlink, term, ufs.
+Hurd servers:
+
+ auth, crash, devio, devport, exec, ext2fs, fifo, fwd, ifsock, init,
+ magic, new-fifo, nfs, null, pfinet, pflocal, proc, symlink, term,
+ ufs.
-Hurd libraries: diskfs, fshelp, ihash, iohelp, netfs, pager, pipe,
-ports, ps, shouldbeinlibc, store, threads, trivfs.
+Hurd libraries:
+
+ diskfs, fshelp, ihash, iohelp, netfs, pager, pipe, ports, ps,
+ shouldbeinlibc, store, threads, trivfs.
-Hurd utilities, etc: boot, shd, ps, settrans, showtrans, sync, su,
-mount, fsysopts, storeinfo, login, w, uptime, hurdids, loginpr, sush,
-vmstat, portinfo, devprobe, reboot, halt, fsck, fsck.ufs, mkfs.ufs,
-clri.ufs, stati.ufs, getty, rc.
+Hurd utilities and other programs:
+
+ boot, shd, ps, settrans, showtrans, sync, su, mount, fsysopts,
+ storeinfo, login, w, uptime, hurdids, loginpr, sush, vmstat,
+ portinfo, devprobe, reboot, halt, fsck, fsck.ufs, mkfs.ufs, clri.ufs,
+ stati.ufs, getty, rc.
------
@@ -46,12 +52,12 @@ This release may be fetched by anonymous FTP from prep.ai.mit.edu
In that directory, you should find the following files:
-README
-SOURCES
-INSTALL-binary
-grub-boot.image (about 1.4 MB, not compressed)
-gnu-0.0.tar.gz (about 56.9 MB compressed)
-gnu-0.0-stripped.tar.gz (about 26.2 MB compressed)
+ README
+ SOURCES
+ INSTALL-binary
+ grub-boot.image (about 1.4 MB, not compressed)
+ gnu-0.0.tar.gz (about 56.9 MB compressed)
+ gnu-0.0-stripped.tar.gz (about 26.2 MB compressed)
SOURCES contains a complete list describing the sources for the
binaries found in the image. INSTALL-binary contains complete
@@ -78,13 +84,13 @@ in order to complete part of the installation instructions.
The following free software packages are found in this release:
-autoconf, automake, bash, bc, binutils, bison, cpio, cvs, diffutils,
-doschk, e2fsprogs, ed, emacs, fileutils, findutils, flex, from, gawk,
-gcal, gcc, gdb, gdbm, gettext, glibc, gmp, gperf, grep, grub, gzip,
-hello, hurd, indent, inetutils, less, mach, make, m4, miscfiles,
-ncurses, nethack, nvi, patch, ptx, rcs, readline, recode, sed,
-serverboot, sharutils, shellutils, tar, termcap, termutils, texinfo,
-textutils, time, wdiff.
+ autoconf, automake, bash, bc, binutils, bison, cpio, cvs, diffutils,
+ doschk, e2fsprogs, ed, emacs, fileutils, findutils, flex, from, gawk,
+ gcal, gcc, gdb, gdbm, gettext, glibc, gmp, gperf, grep, grub, gzip,
+ hello, hurd, indent, inetutils, less, mach, make, m4, miscfiles,
+ ncurses, nethack, nvi, patch, ptx, rcs, readline, recode, sed,
+ serverboot, sharutils, shellutils, tar, termcap, termutils, texinfo,
+ textutils, time, wdiff.
------
@@ -95,11 +101,10 @@ Here are md5sum checksums for the files mentioned in this message:
b5f888bab3eb193fe97a00a141324c9d INSTALL-binary
345dcd826747d7b11fc78f4db162d75b README
1a5744bb4ed3448045fa6d24153d65fe SOURCES
-
-
-
+f7b1bc428bc4ee29977a5b28f5762092 gnu-0.0-stripped.tar.gz
+24554c58e5c89f295176e17d21dbae8e gnu-0.0.tar.gz
8338c619d860b71bc4128c9c0fd39d63 grub-boot.image
-
+1fd18ccc4c81d051b83d28b13dc07ee2 hurd-0.0.tar.gz
-----
diff --git a/release/=announce-0.1 b/release/=announce-0.1
new file mode 100644
index 00000000..b33af968
--- /dev/null
+++ b/release/=announce-0.1
@@ -0,0 +1,70 @@
+
+
+I am pleased to announce version 0.1 of the GNU Hurd, available via
+anonymous FTP from prep.ai.mit.edu [18.159.0.42] in the file
+/pub/gnu/hurd-0.1.tar.gz (about 1.2 MB compressed). There is also a
+patch file of diffs from the 0.0 release in
+/pub/gnu/hurd-0.0-0.1-diff.gz (about 75 KB compressed).
+
+(The GNU Hurd, plus Mach, is a kernel, not an operating system. The
+GNU operating system, like the Unix operating system, consists of many
+components, including kernel, libraries, compilers, assembler, shell,
+parser generators, utilities, window system, editors, text formatters,
+and so on. The GNU project set out a decade ago to develop this
+system, and we've been writing various components of it ever since.)
+
+This release contains many bug fixes from version 0.0. Many thanks to
+all the people who are helping find bugs!
+
+The best way you can help find bugs is to try and compile and use on
+the Hurd as many programs as you can find and find out where bugs
+still exist. There are also unimplemented features, and your reports
+will help us to prioritize which things we work on.
+
+Brief description of important news:
+
+ This release contains several new utilities:
+ * e2os
+ which modifies the "creator OS" field of an ext2fs filesystem
+ * nfsd
+ which implements an NFS server. It's still relatively untested,
+ so people are invited to use it for non-critical things and
+ report on successes and failures.
+ * vminfo
+ prints the virtual memory map of a process
+
+ This release contains one new shared library, `hurdbugaddr' which is
+ only used internally to various Hurd servers and utilities.
+
+ Problems in version 0.1 that prevented ext2fs from working correctly
+ have all been fixed, and the source files that were accidentally
+ missing from 0.0 have been added.
+
+For more detailed news, see the NEWS file in the distribution.
+
+There is no binary release corresponding to this source release. A
+new binary release will probably be made together with the next source
+release.
+
+This release contains complete source code for the following:
+
+Hurd servers:
+
+ auth, crash, devio, devport, exec, ext2fs, fifo, fwd, ifsock, init,
+ magic, new-fifo, nfs, null, pfinet, pflocal, proc, symlink, term,
+ ufs.
+
+Hurd libraries:
+
+ diskfs, fshelp, ihash, iohelp, netfs, pager, pipe, ports, ps,
+ shouldbeinlibc, store, threads, trivfs, hurdbugaddr.
+
+Hurd utilities and other programs:
+
+ boot, shd, ps, settrans, showtrans, sync, su, mount, fsysopts,
+ storeinfo, login, w, uptime, hurdids, loginpr, sush, vmstat,
+ portinfo, devprobe, reboot, halt, fsck, fsck.ufs, mkfs.ufs, clri.ufs,
+ stati.ufs, getty, rc, e2os, vminfo, nfsd.
+
+
+Thomas Bushnell, n/BSG
diff --git a/release/=announce-0.2 b/release/=announce-0.2
new file mode 100644
index 00000000..2d67687a
--- /dev/null
+++ b/release/=announce-0.2
@@ -0,0 +1,62 @@
+I am pleased to announce version 0.2 of the GNU Hurd, available via
+anonymous FTP from prep.ai.mit.edu [18.159.0.42] in the file
+/pub/gnu/hurd-0.2.tar.gz (about 1.37 MB compressed).
+
+(The GNU Hurd, plus Mach, is a kernel, not an operating system. The
+GNU operating system, like the Unix operating system, consists of many
+components, including kernel, libraries, compilers, assembler, shell,
+parser generators, utilities, window system, editors, text formatters,
+and so on. The GNU project set out a decade ago to develop this
+system, and we've been writing various components of it ever since.)
+
+This release contains many bug fixes from version 0.1. Many thanks to
+all the people who are helping find bugs!
+
+The best way you can help find bugs is to try and compile and use on
+the Hurd as many programs as you can find and find out where bugs
+still exist. There are also unimplemented features, and your reports
+will help us to prioritize which things we work on.
+
+The system is vastly more reliable than it has been in the past.
+
+One important addition:
+
+ New programs addauth, rmauth, unsu, su, and setauth modify the uid
+ sets of running programs. Using addauth you can add root to your
+ emacs, write a file, and then use rmauth to take the uid back. (Of
+ course, passwords are required when necessary.) New program `ids'
+ will tell you what all the user ids are that a program has. Note
+ that in the Hurd a program can have several user ids all at once,
+ just like Unix supports having several group ids. Now that you can
+ dynamically change the ids of running programs, system
+ administration (among other things) becomes much easier.
+
+For more detailed news, see the NEWS file in the distribution.
+
+This release contains complete source code for the following:
+
+Hurd servers:
+
+ auth, crash, devport, exec, ext2fs, fifo, fwd, ifsock, init,
+ magic, new-fifo, nfs, null, pfinet, pflocal, proc, symlink, term,
+ ufs, storeio, firmlink.
+
+Hurd libraries:
+
+ diskfs, fshelp, ihash, iohelp, netfs, pager, pipe, ports, ps,
+ shouldbeinlibc, store, threads, trivfs, hurdbugaddr, ftpconn
+
+Hurd utilities and other programs:
+
+ boot, shd, ps, settrans, showtrans, sync, su, mount, fsysopts,
+ storeinfo, login, w, uptime, ids, sush, vmstat, portinfo, devprobe,
+ reboot, halt, fsck, fsck.ufs, mkfs.ufs, clri.ufs, stati.ufs, getty,
+ rc, e2os, vminfo, nfsd, mail.local, serverboot, MAKEDEV, loginpr,
+ addauth, rmauth, unsu, setauth, ftpcp, ftpdir.
+
+We are also making a complete GNU 0.2 binary release, which will
+include Hurd 0.2, glibc 2.0.4, gnumach 1.1.2, and many other
+programs. This binary release is announced separately.
+
+
+Thomas Bushnell, n/BSG
diff --git a/release/ChangeLog b/release/ChangeLog
deleted file mode 100644
index 5bea60d1..00000000
--- a/release/ChangeLog
+++ /dev/null
@@ -1,110 +0,0 @@
-Mon Aug 5 11:44:30 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
-
- * SETUP: Put `r' before BOOT_DEV in call to INSTALL-GRUB-MBR.
- Repair syntax of test to see if BOOT_DEV is valid.
-
- * Makefile (dist-links): Use correct pathnames for `ln' commands;
- use -f. Repair touch command to avoid {}.
-
-Wed Jul 31 13:15:38 1996 Miles Bader <miles@gnu.ai.mit.edu>
-
- * install-stripped (copy/copyattrs): New function.
- (copy/plaincopy, copy/objcopy, copy): Use copyattrs.
-
- * Makefile (install-tools): Copy from the right place. Make the
- installed install-stripped executable.
-
-Tue Jul 30 12:05:54 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
-
- * INSTALL-binary: Don't make stupid claims about avoiding use of
- cylinder zero.
-
-Mon Jul 29 14:47:53 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
-
- * checklist: Add cc to the list of symlinks to check.
-
-Thu Jul 25 23:22:47 1996 Miles Bader <miles@gnu.ai.mit.edu>
-
- * checklist: Add vmstat to the list of setuid programs.
-
-Thu Jul 18 18:27:14 1996 Miles Bader <miles@gnu.ai.mit.edu>
-
- * SETUP: Install grub with INSTALL-GRUB-MBR if desired.
-
- * INSTALL-GRUB-MBR: Fix quoting in last echo.
-
-Wed Jul 17 00:17:05 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
-
- * INSTALL-binary: Yet more changes.
-
-Tue Jul 16 23:41:09 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
-
- * Makefile (dist-files): boot-menu.grub -> menu.lst.
- (install-dist): Likewise; also put it in /boot/grub and don't
- bother with link in /etc.
- * menu.lst: Renamed from boot-menu.grub.
-
-Mon Jul 15 17:18:05 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
-
- * INSTALL-binary: Many changes.
-
- * boot-menu.grub: Rewritten; much nicer now.
-
-Mon Jul 15 15:58:46 1996 Miles Bader <miles@gnu.ai.mit.edu>
-
- * INSTALL-GRUB-MBR: Only read first block of disk as mbr.
- "in)" -> "in".
-
- (INSTALL-GRUB-MBR): New file.
- * Makefile (dist-files): Add INSTALL-GRUB-MBR.
- (install-dist): Install INSTALL-GRUB-MBR.
-
-Sun Jul 14 20:21:12 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
-
- * servers.boot: That's STATIC ufs.
-
-Sat Jul 13 18:06:03 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
-
- * SETUP: Make ptys too.
-
- * SETUP: Setup /servers/crash too.
-
- * COPYING.LIB: New file.
- * Makefile (install-dist): Install COPYING.LIB and COPYING.
- Fix commands to install most everything from $(srcdir).
-
- * boot-menu.grub: New file.
- * servers.boot: New file.
- * Makefile (dist-files): Add servers.boot and boot-menu.grub.
- (install-dist): Install servers.boot and boot-menu.grub.
- (dist-links): Create $(dist-root)/boot.
-
- * INSTALL-binary: Various changes.
-
-Fri Jul 12 15:18:25 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
-
- * install-stripped (makelocalhardlink): Only do cleverness if TO
- already exists. If it's not there, just make the link.
-
-Tue Jul 9 20:10:21 1996 Miles Bader <miles@gnu.ai.mit.edu>
-
- * INSTALL-binary: Changed.
-
-Tue Jul 9 18:03:45 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
-
- * INSTALL-binary: Various changes.
-
- * Makefile (install-dist): Depend on dist-links.
- (dist-links): New target.
-
- * SETUP: Put pflocal on /servers/socket/local (which will be a
- link to /servers/socket/1).
-
- * SETUP: Set root writable before doing anything else; offer to
- reboot the system when through.
-
-Mon Jul 8 17:47:58 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
-
- * INSTALL-binary: Various changes.
-
-
diff --git a/release/INSTALL-GRUB-MBR b/release/INSTALL-GRUB-MBR
deleted file mode 100644
index ce15ea77..00000000
--- a/release/INSTALL-GRUB-MBR
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/bin/bash
-# Install grub stage1 as the MBR, copying the dos partition table from the
-# existing MBR.
-
-DEV="$1"
-
-if [ ! "$DEV" -o ! -w "$DEV" ]; then
- echo 2>&1 "Usage: $0 DEVICE"
- exit 1
-fi
-
-case "$DEV" in
- *r?d[0-9])
- ;;
- *)
- echo "The device $DEV doesn't seem to be a whole-disk raw device; continue? [n] "
- read C
- case "$C" in
- [Yy]*)
- ;;
- *)
- echo 2>&1 "$0: Aborting";
- exit 2
- ;;
- esac
- ;;
-esac
-
-cd /tmp
-
-dd if="$DEV" of=mbr bs=512 count=1 \
-&& cp /boot/grub/stage1_ffs stage1 \
-&& dd if=mbr of=stage1 conv=notrunc bs=1 seek=446 skip=446 count=64 \
-&& dd if=stage1 of="$DEV" bs=512 count=1 \
-|| { echo 2>&1 "$0: Install failed!" ; exit 5 ; }
-
-rm mbr stage1
-
-echo "$0: /boot/grub/stage1_ffs installed in MBR"
-echo "$0: Don't forget to use the grub \`install=' command to install stage2"
diff --git a/release/INSTALL-binary b/release/INSTALL-binary
index e3416437..d13beb8c 100644
--- a/release/INSTALL-binary
+++ b/release/INSTALL-binary
@@ -1,6 +1,6 @@
-*- Text -*-
Instructions for bootstrapping the Hurd from binary images (i386).
-GNU Version 0.0
+GNU Version 0.2
This is the Hurd. Welcome.
@@ -15,10 +15,9 @@ Library General Public when distributing this binary snapshot. See
licenses.
If you have noticed that these steps are rather long and a bit too
-complex, you are right. But we didn't want to delay the release just
-in order to make the installation prettier. You can rest assured,
-however: Making it prettier and easier is one of our more important
-priorities.
+complex, you are right. One of our upcoming tasks is to develop a
+convenient package mechanism and more streamlined installation
+procedure.
Bug reports for programs in this distribution should be sent to the
maintainer of the program. For a complete list of which mailing lists
@@ -36,9 +35,6 @@ In addition, bug reports or requests for help in using the system as a
connected whole (as opposed to for particular programs) should be sent
to the hurd mailing lists.
-If any of these mailing address should fail, send your message to
-`tower@gnu.ai.mit.edu' and ask him to forward it properly.
-
STEP I:
@@ -50,10 +46,7 @@ file onto a fresh floppy with the command:
This is your `grub boot floppy', referred to below.
Unpack the binary distribution onto a fresh disk partition, which
-needs to be BSD FFS format. We have not prepared instructions for
-setting up the system from an existing Linux-based system because of
-time pressures. But all the tools and pieces should work for the more
-stalwart souls to try it.
+needs to be BSD FFS format or Linux ext2fs format.
Start with a system already running BSD:
@@ -66,15 +59,31 @@ Start with a system already running BSD:
entire Hurd image into it. Make sure you do this as root, and
remember to give tar the `p' option.
-If you do not have a system running BSD, you can install using the
-NetBSD boot floppies:
+Start with a system already running a GNU/Linux system:
+
+ Again, we suggest using a fresh disk. But you can also use an
+ existing partition. Make it big enough to hold the entire Hurd
+ binary image, and then some. Make sure you have a partition for
+ swap too. Extract the binary image onto the new partition using
+ tar; make sure you sue the `p' option to tar.
+
+ You need to set the "owning OS" field for this filesystem to "hurd";
+ otherwise you will not be able to use Hurd-related extensions on
+ it. (And using those extensions is required on the root
+ filesystem.) Run the command `e2os DEVICE hurd' after the
+ filesystem is unmounted in order to accomplish this.
+
+If you do not have a system running BSD or a GNU/Linux system, you can
+install using the NetBSD boot floppies. To do this, you do NOT need
+to install NetBSD; you will just be using their boot floppies
+briefly.
Unpack the entire Hurd image somewhere accessible by NFS. Then see
the instruction subroutine in this file labelled `Installing from
NetBSD boot floppies' and follow them.
-We plan to have our own boot floppies soon, which will make this all a
-fair bit easier.
+We plan to have our own boot floppies, which will make this all a fair
+bit easier.
@@ -91,6 +100,11 @@ name (this is a mach partition name), or comment out the line if you
don't want paging. Note that you don't have to do anything to
initialize swap partitions, unlike Linux.
+If your filesystem is an ext2fs filesystem (if you are starting with a
+system already running a GNU/Linux system, for example), then you also
+should change the reference to /hurd/ufs.static into a reference to
+/hurd/ext2fs.static.
+
(If you did STEP I using NetBSD boot floppies, then this file should
be /mnt/boot/servers.boot.)
@@ -126,17 +140,12 @@ and you may notice that pipes don't work.
In order to set up the translators for this to be a fully functional
Hurd system, say
- /bin/sh /SETUP disk
-
-where `disk' is the name of the disk to install the boot block on,
-without partition name, for example `sd0' or `hd0'. (If you give no
-arg, it will ask you for the device to install the boot block on in
-case you forgot. If you really don't want a boot block, just hit RET
-when it asks.)
+ /bin/sh /SETUP
This will set up some initial translators so that the system runs
-normally, and then offer to reboot the system. When it comes back up,
-boot it single-user again, so that you can do step V.
+normally, and then offer to reboot the system. When you get to the
+GRUB menu, do step V.
+
NOTE: Do NOT RUN BSD FSCK on a Hurd FFS!
@@ -157,10 +166,11 @@ NOTE: Do NOT RUN BSD FSCK on a Hurd FFS!
STEP V:
-Now boot from the floppy again. This time, select the "grub install"
-option. (If your disk isn't known as hd0 to grub, then you will need
-to edit the commands accordingly.) Reset your PC and take the floppy
-disk out of the drive. The hard disk should now boot successfully.
+Now boot from the floppy again. This time, select the option to
+install grub from the floppy. (If your disk isn't known as hd0 to
+grub, then you will need to edit the commands accordingly.) Reset
+your PC and take the floppy disk out of the drive. The hard disk
+should now boot successfully.
Select the single-user boot menu option, and proceed to STEP VI.
@@ -185,10 +195,8 @@ Say `./MAKEDEV dev1 dev2 dev3 ...'.
Supported devices are:
o any hard disk device you have; you must specify both unit number *and*
- partition. Something like `sd0a' or `rd1f' is called for. Unit
- number without any partition names the entire disk. (SETUP has
- already created a device for the entire disk holding your boot
- block, if you gave it that information.)
+ partition. Something like `sd0a' or `hd1f' is called for. Unit
+ number without any partition names the entire disk.
o floppy disk drives, give something like `fd0' or `fd1'.
o hardwired terminals, something like `com0' or `com1'.
@@ -223,25 +231,20 @@ nameserver to work properly.
You can mount a partition (say hd0a) by saying:
- settrans /mnt /hurd/ufs /dev/rhd0a
+ settrans /mnt /hurd/ufs /dev/hd0a
-The name `/dev/rhd0a' must have been created using `./MAKEDEV hd0a' in
+The name `/dev/hd0a' must have been created using `./MAKEDEV hd0a' in
the /dev directory.
(This is equivalent to Unixy `mount /dev/hd0a /mnt'.)
-
-(Note that you are using the *RAW* device here. In theory, it's
-irrelevant [and this is really only being used to get a name in a
-clever but strange way], but there are minor bugs in the non-raw
-versions, so don't try and use them.)
If it's a Linux ext2 format disk, just do
- settrans /mnt /hurd/ext2fs /dev/rhd0a
+ settrans /mnt /hurd/ext2fs /dev/hd0a
You can make it readonly thus:
- settrans /mnt /hurd/ufs -r /dev/rhd0a
+ settrans /mnt /hurd/ufs -r /dev/hd0a
For more information on settrans, see the end of this file.
@@ -261,7 +264,7 @@ automatically fscked, you'll have to make entries in /etc/fstab (see
A temporary mount (which lasts only until the filesystem program is
killed or the system is rebooted) can be accomplished by giving the -a
-option to settrans thus: `settrans -a /mnt /hurd/ufs /dev/rsd0a'.
+option to settrans thus: `settrans -a /mnt /hurd/ufs /dev/sd0a'.
(Note the placement of this option, as an arg to settrans, is
different from the -r options you might give to the filesystem.)
`showtrans' does not display these temporary mounts.
@@ -295,6 +298,16 @@ Edit resolv.conf to provide for name service appropriate to your
location.
+*** build a smaller kernel
+
+As an optional step, you can build a smaller kernel. The distributed
+kernel is quite large, because it includes a great many device
+drivers. If you fetch the gnumach distribution, you can build a
+kernel with only the device drivers you actually need. This will make
+bootstrapping faster, and also take less memory when the system is
+running, and result in a faster system in general.
+
+
Once you've completed these steps, you can reboot the system multi
user. Enjoy!
@@ -385,7 +398,7 @@ Subroutine: Installing from NetBSD boot floppies
If you do not have a system running BSD, the NetBSD 2-floppy install
set contains enough tools to make a new filesystem using newfs and
copy to it from nfs. You can fetch these floppies from ftp.netbsd.org
-in the directory /pub/NetBSD/arch/i386/floppies. The NetBSD install
+in the directory /pub/NetBSD/NetBSD-1.1/floppies. The NetBSD install
script will start automatically when you boot from the floppies, and
we suggest you use it in order to partition and set up your disk.
@@ -403,7 +416,7 @@ because your nfs server probably has more convenient editors than the
NetBSD boot floppies. The boot floppies have only ed.
A. Fetch the netbsd boot floppies from
- ftp://ftp.netbsd.org/pub/NetBSD/arch/i386/floppies. Put the
+ ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-1.1/i386/floppies. Put the
images onto floppy disks using the instructions found on the FTP
site.
@@ -449,8 +462,8 @@ K. Initialize the network with `ifconfig DEV MY-ADDR'. DEV was
if you want to see those messages again. (Sometimes ifconfig
says that something is "offline". Ignore it.)
-L. Mount the NFS server partition with the conveniente command
- `mount SERVER-ADDR:SERVER-DIR /mnt2'.
+L. Mount the NFS server partition with the convenient command
+ `mount -o -P SERVER-ADDR:SERVER-DIR /mnt2'.
M. Copy the Hurd onto your disk with the command
(cd /mnt2; tar cf - .) | (cd mnt; tar xfpv -)
diff --git a/release/Makefile b/release/Makefile
index 038c8974..e5d94e18 100644
--- a/release/Makefile
+++ b/release/Makefile
@@ -1,5 +1,5 @@
# Makefile for Hurd release tools
-# Copyright (C) 1996 Free Software Foundation, Inc.
+# Copyright (C) 1996, 1997 Free Software Foundation, Inc.
# Written by Michael I. Bushnell, p/BSG.
#
# This file is part of the GNU Hurd.
@@ -22,13 +22,16 @@ dir := release
makemode := misc
# Files that go into the root of binary distributions
-dist-files = INSTALL-binary dist-README SETUP INSTALL-GRUB-MBR servers.boot \
- menu.lst COPYING.LIB SOURCES.0.0
+dist-files = INSTALL-binary dist-README SETUP servers.boot bfloppy.boot \
+ menu.lst COPYING.LIB SOURCES.0.2
-# Tools for making images
-tool-files = tool-Makefile install-stripped
+# Files describing the contents of boot floppies
+floppy-copy = bfloppy.copy bfloppy-special.copy rfloppy.copy rfloppy-special.copy \
+ bfloppy1.copy bfloppy1-special.copy bfloppy2.copy bfloppy2-special.copy
-DIST_FILES = README $(dist-files) $(tool-files)
+scripts = mkfsimage.sh mksmallso.sh mkemptyso.sh
+
+DIST_FILES = README $(dist-files) $(floppy-copy) $(scripts)
include ../Makeconf
@@ -37,25 +40,46 @@ install-dist: dist-links
cp $(srcdir)/INSTALL-binary $(dist-root)/
cp $(srcdir)/dist-README $(dist-root)/README
cp $(srcdir)/SETUP $(dist-root)/SETUP
- cp $(srcdir)/SOURCES.0.0 $(dist-root)/SOURCES
- cp $(srcdir)/INSTALL-GRUB-MBR $(dist-root)/INSTALL-GRUB-MBR
+ cp $(srcdir)/SOURCES.0.2 $(dist-root)/SOURCES
cp $(srcdir)/servers.boot $(dist-root)/boot/servers.boot
cp $(srcdir)/menu.lst $(dist-root)/boot/grub/menu.lst
cp $(top_srcdir)/COPYING $(dist-root)/share/misc/COPYING
cp $(srcdir)/COPYING.LIB $(dist-root)/share/misc/COPYING.LIB
dist-links:
- mkdir -p $(dist-root)/boot
+ mkdir -p $(dist-root)/boot/grub
mkdir -p $(dist-root)/servers/socket
+ mkdir -p $(dist-root)/share/misc
touch $(dist-root)/servers/socket/1
touch $(dist-root)/servers/socket/2
ln -f $(dist-root)/servers/socket/1 $(dist-root)/servers/socket/local
ln -f $(dist-root)/servers/socket/2 $(dist-root)/servers/socket/inet
+ touch $(dist-root)/servers/exec
endif
-ifneq ($(tool-root),)
-install-tools:
- cp $(srcdir)/install-stripped $(tool-root)/
- chmod +x $(tool-root)/install-stripped
- cp $(srcdir)/tool-Makefile $(tool-root)/Makefile
+# Where to get files for the floppies from.
+bfloppy-src=$(firstword $(dist-root) /)
+
+# Boot floppies we generate
+boot-floppies = bfloppy1.ext2 bfloppy2.ext2 bfloppy.ext2 rfloppy.ext2.gz
+
+boot-floppies: $(boot-floppies)
+
+%.ext2.gz:
+ ./mkfsimage $@ --compress --owner=root.wheel \
+ $(bfloppy-src) --copy-rules=$(srcdir)/$*.copy \
+ $(srcdir) --copy-rules=$(srcdir)/$*-special.copy
+%.ext2:
+ ./mkfsimage $@ --owner=root.wheel \
+ $(bfloppy-src) --copy-rules=$(srcdir)/$*.copy \
+ $(srcdir) --copy-rules=$(srcdir)/$*-special.copy
+
+# floppy dependencies
+ifneq ($(no_deps),t)
+-include $(patsubst %,%.f_d, $(boot-floppies))
+
+%.ext2.f_d %.ext2.gz.f_d: mkfsimage
+ ./mkfsimage $(patsubst %.f_d,%,$@) --dependencies=$@ \
+ $(bfloppy-src) --copy-rules=$(srcdir)/$*.copy \
+ $(srcdir) --copy-rules=$(srcdir)/$*-special.copy
endif
diff --git a/release/SETUP b/release/SETUP
index 56da063e..9860f03a 100644
--- a/release/SETUP
+++ b/release/SETUP
@@ -1,20 +1,22 @@
#!/bin/bash
# Setup critical hurd translators
-BOOT_DEV="$1"
-if [ ! "$BOOT_DEV" ]; then
- echo "No device to install a boot loader was specified."
- echo "Here are some possible devices to use:"
- /bin/devprobe sd0 hd0 sd1 hd1
- echo -n "Boot device? [none] "
- read BOOT_DEV
-fi
-
-if [ "$BOOT_DEV" ]; then
- if /bin/devprobe -s "$BOOT_DEV"; then true; else
- echo 2>&1 "$0: $BOOT_DEV: No such device known"; exit 1
- fi
-fi
+PATH=/bin:/sbin
+
+# BOOT_DEV="$1"
+# if [ ! "$BOOT_DEV" ]; then
+# echo "No device to install a boot loader was specified."
+# echo "Here are some possible devices to use:"
+# /bin/devprobe sd0 hd0 sd1 hd1
+# echo -n "Boot device? [none] "
+# read BOOT_DEV
+# fi
+#
+# if [ "$BOOT_DEV" ]; then
+# if /bin/devprobe -s "$BOOT_DEV"; then true; else
+# echo 2>&1 "$0: $BOOT_DEV: No such device known"; exit 1
+# fi
+# fi
set -v
@@ -24,6 +26,7 @@ fsysopts / --writable
# Set up standard passive translators
/bin/settrans -c /servers/socket/local /hurd/pflocal
/bin/settrans -c /servers/crash /hurd/crash
+/bin/settrans -c /servers/password /hurd/password
# Setup crucial devices
cd /dev
@@ -31,14 +34,14 @@ cd /dev
set +v
-if test "$BOOT_DEV" && /bin/sh ./MAKEDEV "$BOOT_DEV"; then
- echo -n "Install grub as main boot record on $BOOT_DEV? [y] "
- read yn
- case "$yn" in
- "" | "[yY]*")
- /bin/sh /INSTALL-GRUB-MBR /dev/r$BOOT_DEV;;
- esac
-fi
+# if test "$BOOT_DEV" && /bin/sh ./MAKEDEV "$BOOT_DEV"; then
+# echo -n "Install grub as main boot record on $BOOT_DEV? [y] "
+# read yn
+# case "$yn" in
+# "" | "[yY]*")
+# /bin/sh /INSTALL-GRUB-MBR /dev/$BOOT_DEV;;
+# esac
+# fi
echo 'Hit ^C now for shell prompt or RET to reboot'
read response
diff --git a/release/SOURCES.0.0 b/release/SOURCES.0.0
index e75c176b..673f8dd1 100644
--- a/release/SOURCES.0.0
+++ b/release/SOURCES.0.0
@@ -2,7 +2,7 @@ Sources for binaries in Hurd version 0.0.
The following packages were built from the sources of the indicated
-version in ftp://prep.gnu.ai.edu/pub.gnu according to the provided
+version in ftp://prep.gnu.ai.edu/pub/gnu according to the provided
instructions without modification:
autoconf (2.10)
@@ -107,5 +107,5 @@ sh-utils (1.12m from alpha.gnu.ai.mit.edu)
[ copy libc's time/strftime.c into lib/strftime.c to fix a date bug. ]
make (3.74.5 from alpha.gnu.ai.mit.edu; unmodified)
gdb (Modified from Cygnus snapshot of 960526)
-mach4 (UK22, slighly hacked) [already includes `serverboot' program.]
+mach4 (UK22, slightly hacked) [already includes `serverboot' program.]
libc (1.93, with modifications)
diff --git a/release/SOURCES.0.2 b/release/SOURCES.0.2
new file mode 100644
index 00000000..4f50de84
--- /dev/null
+++ b/release/SOURCES.0.2
@@ -0,0 +1,110 @@
+Sources for binaries in GNU version 0.2.
+
+Typical configure line is
+
+../../src/foo-NN/configure --prefix= --cache-file=../config.cache i486-gnu
+
+autoconf (2.12)
+automake (1.0) (useless w/out perl)
+bash (2.0)
+bc (1.04)
+binutils (2.8.1)
+bison (1.25)
+cpio (2.4.2)
+cvs (1.9)
+ [ inhibit use of libc getopt by defining _LIBC in lib/getopt.c
+ and lib/getopt1.c immediately before it is tested. ]
+diffutils (2.7)
+doschk (1.1)
+e2fsprogs (1.08)
+ed (0.2)
+emacs (19.34b)
+emacs lisp manual (19-2.4.2)
+fileutils (3.16)
+findutils (4.1)
+ [ Comment out basename in find/defs.h and find/util.c.
+ Define _GNU_SOURCE at front of find/pred.c.
+ Define ARG_MAX to be 20480 before its first use. ]
+flex (2.5.4)
+from (special source)
+g77 (0.5.19.1)
+gawk (3.0.3)
+gcal (2.10)
+gcc (2.7.2.2) (includes patches from g77 0.5.19.1)
+gdb (gdb-gnu-5 special!)
+ [ texinfo subdir fails, so finish make by doing `make all-gdb'
+ gdb installs as `i486-gnu-gdb' by default, so perhaps just copy
+ by hand ]
+gettext (0.10)
+glibc (2.0.4)
+gmp (2.0.2)
+gnuchess (4.0.pl77) [ in src/Makefile, use 'prefix=' ]
+gnumach (1.1.3)
+gnugo (1.2)
+grep (2.0)
+grub (0.4)
+gzip (1.2.4)
+ [ Comment out basename in gzip.h and util.c. ]
+hello (1.3)
+hurd (0.2)
+indent (1.9.1)
+inetutils (1.3a)
+less (332)
+libg++ (2.7.2)
+lynx (2.7)
+ [ Set defaults appropriately for GNU in userdefs.h. ]
+ [ In WWW/Library/Implementation/HTTCP.c add #ifndef __GNU__ around
+ the sys_errlist test and #ifdef __GNU__ around the strerror case
+ in HTInetStatus. ]
+
+m4 (1.4)
+make (3.75) [ use latest getloadavg ]
+miscfiles (1.1)
+ncurses (1.9.9g)
+nethack (3.2.2)
+ [ In include/config.h:
+ define COMPRESS as "/bin/gzip"
+ define COMPRESS_EXTENSION as ".gz"
+ define HACKDIR as "/games/lib/nethackdir"
+ define SCORE_ON_BOTL
+
+ In include/unixconf.h:
+ define POSIX_JOB_CONTROL and POSIX_TYPES.
+
+ In include/system.h:
+ comment out declaration of random.
+
+ In src/Makefile: Change -O to -O2 in CFLAGS and add -g.
+ Use -lncurses for WINTTYLIB
+
+ In util/Makefile: Change -O to -O2 in CFLAGS and add -g.
+ Use bison for YACC and flex for LEX.
+
+ In Makefile: Change GAMEGRP to games.
+ Change GAMEDIR to /games/lib/$(GAME)dir.
+ Change SHELLDIR to /games.
+ ]
+nvi (1.71)
+patch (2.2) [ Comment out basename in backupfile.c. ]
+perl (5.003)
+ptx (0.4)
+readline (2.0)
+rcs (5.7)
+recode (3.4)
+sed (2.05) [ Change sed.c to include <errno.h> and also use
+ strerror instead sys_errlist in read_file(). ]
+sendmail (8.8.5) [ with special! patch ]
+sh-utils (1.16) [ use latest getloadavg.c ]
+sharutils (4.2)
+tar (1.12)
+termutils (2.0)
+texinfo (3.9)
+ [ Omit OCRNL from the expression in which it occurs in
+ info/terminal.c.
+ In util/install-info.c, replace guts of my_strerror with a call to
+ strerror. ]
+textutils (1.22)
+time (1.7)
+wdiff (0.5)
+
+
diff --git a/release/bfloppy-special.copy b/release/bfloppy-special.copy
new file mode 100644
index 00000000..69ae66d7
--- /dev/null
+++ b/release/bfloppy-special.copy
@@ -0,0 +1 @@
+rename boot/servers.boot copy bfloppy.boot
diff --git a/release/bfloppy.boot b/release/bfloppy.boot
new file mode 100644
index 00000000..3766920b
--- /dev/null
+++ b/release/bfloppy.boot
@@ -0,0 +1,14 @@
+# Boot script file for booting GNU Hurd from a boot floppy. Each line
+# specifies a file to be loaded by the boot loader (the first word), and
+# actions to be done with it.
+
+# First, the bootstrap filesystem. It needs several ports as arguments,
+# as well as the user flags from the boot loader.
+/hurd/ufs.static.gz --bootflags=${boot-args} --host-priv-port=${host-port} --device-master-port=${device-port} --exec-server-task=${exec-task} -Tgunzip:device ${root-device} $(task-create) $(prompt-task-resume)
+
+# Now the exec server; to load the dynamically-linked exec server program,
+# we have the boot loader in fact load and run ld.so, which in turn
+# loads and runs /hurd/exec. This task is created, and its task port saved
+# in ${exec-task} to be passed to the fs above, but it is left suspended;
+# the fs will resume the exec task once it is ready.
+/lib/ld.so.1.gz /hurd/exec $(exec-task=task-create)
diff --git a/release/bfloppy.copy b/release/bfloppy.copy
new file mode 100644
index 00000000..eb2796fb
--- /dev/null
+++ b/release/bfloppy.copy
@@ -0,0 +1,11 @@
+mkdir boot
+mkdir hurd
+mkdir lib
+mkdir boot/grub
+gzip objcopy boot/gnumach
+gzip objcopy boot/serverboot
+gzip objcopy lib/ld.so.1
+gzip objcopy hurd/ext2fs.static
+copy boot/grub/menu.lst
+copy boot/grub/stage1
+copy boot/grub/stage2
diff --git a/release/bfloppy1-special.copy b/release/bfloppy1-special.copy
new file mode 100644
index 00000000..c92545e1
--- /dev/null
+++ b/release/bfloppy1-special.copy
@@ -0,0 +1 @@
+rename boot/grub/menu.lst copy bfloppy1.grub
diff --git a/release/bfloppy1.copy b/release/bfloppy1.copy
new file mode 100644
index 00000000..312fe70c
--- /dev/null
+++ b/release/bfloppy1.copy
@@ -0,0 +1,7 @@
+mkdir boot
+mkdir boot/grub
+gzip objcopy boot/gnumach
+gzip objcopy boot/serverboot
+copy boot/grub/stage1
+copy boot/grub/stage2
+copy boot/grub/ffs_stage1_5
diff --git a/release/bfloppy1.grub b/release/bfloppy1.grub
new file mode 100644
index 00000000..1c7cd56d
--- /dev/null
+++ b/release/bfloppy1.grub
@@ -0,0 +1,29 @@
+# This is the amount grub waits before booting the default entry
+timeout= 5
+
+# Tell which entry to boot by default. Note that this is origin zero
+# from the beginning of the file.
+default= 0
+
+# Note that to GRUB, all hard disks are `hd' and all floppy disks are `fd'.
+# To Mach, SCSI disks are `sd' and IDE type disks are `hd'. Use
+# GRUB names in the `root' command and prefixing filenames. Use a
+# Mach name as the `root' arg for the kernel, and whenever running the Hurd.
+
+
+# These two entries are for SCSI disks
+# Entry 0:
+title= fd0
+root= (fd0)
+kernel= /boot/gnumach.gz root=fd0
+module= /boot/serverboot.gz
+pause= Insert boot-floppy #2 and hit RETURN...
+
+# Installation steps for GRUB hard disk boot blocks
+# Entry 4:
+title= Install grub from floppy onto hard disk
+install= (fd0)+1 (hd0) (hd0,a)/boot/grub/stage2 0x8000 p
+
+# Entry 5:
+title= Reinstall grub from hard disk to itself
+install= (hd0)/boot/grub/stage1 (hd0) (hd0,a)/boot/grub/stage2 0x8000 p
diff --git a/release/bfloppy2-special.copy b/release/bfloppy2-special.copy
new file mode 100644
index 00000000..f5c3d761
--- /dev/null
+++ b/release/bfloppy2-special.copy
@@ -0,0 +1,2 @@
+mkdir boot
+rename boot/servers.boot copy bfloppy2.boot
diff --git a/release/bfloppy2.boot b/release/bfloppy2.boot
new file mode 100644
index 00000000..943d76d4
--- /dev/null
+++ b/release/bfloppy2.boot
@@ -0,0 +1,14 @@
+# Boot script file for booting GNU Hurd from a boot floppy. Each line
+# specifies a file to be loaded by the boot loader (the first word), and
+# actions to be done with it.
+
+# First, the bootstrap filesystem. It needs several ports as arguments,
+# as well as the user flags from the boot loader.
+/hurd/ext2fs.static --sync=2 --bootflags=${boot-args} --host-priv-port=${host-port} --device-master-port=${device-port} --exec-server-task=${exec-task} -Tgunzip:device ${root-device} $(task-create) $(prompt-task-resume)
+
+# Now the exec server; to load the dynamically-linked exec server program,
+# we have the boot loader in fact load and run ld.so, which in turn
+# loads and runs /hurd/exec. This task is created, and its task port saved
+# in ${exec-task} to be passed to the fs above, but it is left suspended;
+# the fs will resume the exec task once it is ready.
+/lib/ld.so.1 /hurd/exec $(exec-task=task-create)
diff --git a/release/bfloppy2.copy b/release/bfloppy2.copy
new file mode 100644
index 00000000..78c9f95b
--- /dev/null
+++ b/release/bfloppy2.copy
@@ -0,0 +1,4 @@
+mkdir hurd
+mkdir lib
+objcopy lib/ld.so.1
+objcopy hurd/ext2fs.static
diff --git a/release/checklist b/release/checklist
index 2f5c7e7c..2e27a4b3 100644
--- a/release/checklist
+++ b/release/checklist
@@ -1,21 +1,61 @@
-Checklist for Hurd releases.
+Order for building binary distribution:
+
+1) Make tools on build machine
+* Build/install libc and header files from mach and hurd.
+* Build/install gcc (just LANGUAGES=c)
+* Build/install binutils.
+
+2) Make everything for release; install both on build machine and dist dir.
+* Build/install binutils again (now using new as and ld).
+* Build/install gcc again. (only one stage necessary).
+* Build/install libc again.
+* Build/install everything else.
+
+See `release-steps' for Hurd source release steps.
+
+Checklist for binary image filesystems
* Symlinks in /bin; esp. sh, awk, more, cc.
+* Symlink /lib/libtermcap.a -> /lib/libncurses.a, termcap_g.a,
+ curses_g.a, curses.a.
+* Symlink /lib/ld.so -> /lib/ld.so.1.
+* Symlink . -> /usr.
+* Make sure directories exist: /tmp, /var/run.
+* Touch /var/log/wtmp.
+* Check all symlinks to make sure they don't reference /gd4.
+* Don't use absolute symlinks--make them all relative.
* Build some static fileutils: ls, ln, cp, mv, chmod.
-* Make sure /i486-gnu contains hard links, not copies.
+* Make damn sure that we are only distributing the md5 libcrypt.
+* Make sure /include/obstack.h is from libc and not binutils.
+* Make sure there is no /include/i386.
+* Make sure there is no /i486-gnu.
* Make sure we are using Hurd versions of su and uptime, not sh-utils.
* Make sure we are using Hurd fsck, not e2fs.
* Make install-dist from release dir.
* Make sure there is only a stubby resolv.conf in the distribution.
* Make sure /etc/fstab has no active members
* Make sure nethack is clean
-o Source code for Hurd and libc must be released.
-* Make sure everything listed in SOURCES is on prep.
+* Make sure localtime is Factory
+* Source code for Hurd and libc must be released.
* Remove .stamp files from binary tree.
* Chown everything root.wheel, mode 755/644.
+* /tmp is 1777.
* Chown /games games.games.
* Check permissions on set[gu]id files in binary tree.
- (login, ps, w, vmstat, rsh, rlogin, games/lib/nethack/nethack)
+ (login, su, addauth, setauth, ids, ps, w, vmstat, vminfo, rsh, rlogin,
+ games/lib/nethack/nethack)
* Check each directory for bogus cruft files.
-* Especially delete .bash_history, .gnunfs*, and .stamp files.
-o Verify installation on bare machine.
+* Especially delete .bash_history, .gnunfs*, and .stamp files, *~, *.rej
+* Verify installation on bare machine.
+* Make sure everything listed in SOURCES is on prep.
+* Install release
+* Post announcement
+
+
+FSF Hurd machines need in addition to the INSTALL-binary installation:
+
+* our NFS translators
+* our kernel
+* sendmail.cf, /etc/aliases
+* /home/* symlinks
+* /etc/syslog.conf
diff --git a/release/dist-README b/release/dist-README
index 2ad479ca..afad66cf 100644
--- a/release/dist-README
+++ b/release/dist-README
@@ -2,7 +2,7 @@
This is the Hurd. Welcome.
-This is the complete GNU system, version 0.0.
+This is the complete GNU system, version 0.2.
This directory contains i386 binaries for the Hurd and various
programs built to run under it.
@@ -32,9 +32,6 @@ In addition, bug reports or requests for help in using the system as a
connected whole (as opposed to for particular programs) should be sent
to the hurd mailing lists.
-If any of these mailing address should fail, send your message to
-`tower@gnu.ai.mit.edu' and ask him to forward it properly.
-
The GNU system is free software. See the files /share/misc/COPYING
and /share/misc/COPYING.LIB.
diff --git a/release/menu.lst b/release/menu.lst
index 7686778a..00807dec 100644
--- a/release/menu.lst
+++ b/release/menu.lst
@@ -14,34 +14,37 @@ default= 0
# These two entries are for SCSI disks
# Entry 0:
title= hurd (sd0a multi-user)
-root= hd(0,a)
-kernel= /boot/kernel root=sd0a
+root= (hd0,a)
+kernel= /boot/gnumach root=sd0a
module= /boot/serverboot
# Entry 1:
title= hurd (sd0a single-user)
-root= hd(0,a)
-kernel= /boot/kernel root=sd0a -s
+root= (hd0,a)
+kernel= /boot/gnumach root=sd0a -s
module= /boot/serverboot
# These two entries are for RLL/IDE/ST-506/etc. disks
# Entry 2:
title= hurd (hd0a multi-user)
-root= hd(0,a)
-kernel= /boot/kernel root=hd0a
+root= (hd0,a)
+kernel= /boot/gnumach root=hd0a
module= /boot/serverboot
# Entry 3:
title= hurd (hd0a single-user)
-root= hd(0,a)
-kernel= /boot/kernel root=hd0a -s
+root= (hd0,a)
+kernel= /boot/gnumach root=hd0a -s
module= /boot/serverboot
-# Installation step for GRUB hard disk boot blocks
+# Installation steps for GRUB hard disk boot blocks
# Entry 4:
-title= grub install
-root= hd(0)
-install=hd(0,a)/boot/grub/stage2
+title= Install grub from floppy onto hard disk
+install= (fd0)+1 (hd0) (hd0,a)/boot/grub/stage2 0x8000 p
+
+# Entry 5:
+title= Reinstall grub from hard disk to itself
+install= (hd0)/boot/grub/stage1 (hd0) (hd0,a)/boot/grub/stage2 0x8000 p
diff --git a/release/mkemptyso.sh b/release/mkemptyso.sh
new file mode 100755
index 00000000..0260a48e
--- /dev/null
+++ b/release/mkemptyso.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+# args: $1 -- destination .so file
+SO=$1
+GCC=${GCC-i386-gnu-gcc}
+$GCC -nostdlib -shared -fPIC -x c /dev/null -Wl,-soname=`basename $SO` -o $SO
diff --git a/release/mkfsimage.sh b/release/mkfsimage.sh
new file mode 100644
index 00000000..07b142f0
--- /dev/null
+++ b/release/mkfsimage.sh
@@ -0,0 +1,412 @@
+#!/bin/sh
+# Make a filesystem image
+#
+# Copyright (C) 1997 Free Software Foundation, Inc.
+# Written by Miles Bader <miles@gnu.ai.mit.edu>
+# This file is part of the GNU Hurd.
+#
+# The GNU Hurd is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2, or (at
+# your option) any later version.
+#
+# The GNU Hurd is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
+#
+
+USAGE="\
+Usage: $0 [OPTION...] IMAGE-FILE SRC..."
+TRY="Try "\`"$0 --help' for more information"
+
+MAX_SIZE=1440 # size of floppy
+MIN_SIZE=500 # avoid lossage for compressed filesystems
+
+OWNER="`id -un`.`id -gn`"
+
+unset IMAGE SRCS COMPRESS SCRIPTS QUIET GEN_DEPS
+declare -a SRCS SCRIPTS
+
+NUM_SRCS=0
+NUM_SCRIPTS=0
+
+while :; do
+ case "$1" in
+ --compress) COMPRESS=yes; shift 1;;
+ --fstype=*) FSTYPE="`echo "$1" | sed 's/^--fstype=//'`"; shift 1;;
+ --fstype) FSTYPE="$2"; shift 2;;
+ --mkfs=*) MKFS="`echo "$1" | sed 's/^--mkfs=//'`"; shift 1;;
+ --mkfs) MKFS="$2"; shift 2;;
+ --fstrans=*) FSTRANS="`echo "$1" | sed 's/^--fstrans=//'`"; shift 1;;
+ --fstrans) FSTRANS="$2"; shift 2;;
+ --owner=*) OWNER="`echo "$1" | sed 's/^--owner=//'`"; shift 1;;
+ --owner) OWNER="$2"; shift 2;;
+ --max-size=*) MAX_SIZE="`echo "$1" | sed 's/^--max-size=//'`"; shift 1;;
+ --max-size) MAX_SIZE="$2"; shift 2;;
+ --quiet|-q|-s) QUIET=yes; shift 1;;
+ --copy=*|--copy-rules=*) SCRIPTS[NUM_SCRIPTS]="`echo "$1" | sed 's/^--[-a-z]*=//'`"; let NUM_SCRIPTS+=1; shift 1;;
+ --copy|--copy-rules) SCRIPTS[NUM_SCRIPTS]="$2"; let NUM_SCRIPTS+=1; shift 2;;
+ --dependencies=*) GEN_DEPS="`echo "$1" | sed 's/^--[-a-z]*=//'`"; shift 1;;
+ --dependencies) GEN_DEPS="$2"; shift 2;;
+
+ --version)
+ echo "STANDARD_HURD_VERSION_mkfsimage_"; exit 0;;
+ --help)
+ echo "$USAGE"
+ echo "Make a file-system image IMAGE-FILE from the files in SRC..."
+ echo ''
+ echo "\
+ --copy-rules=FILE Copy files in a manner described by FILE
+
+ --compress Compress the final image
+ --owner=USER[.GROUP] Make files owned by USER & GROUP (default "\`"$OWNER')
+ --max-size=KBYTES Maximum size of final image (default $MAX_SIZE)
+ --dependencies=DEPS Generate a make dependency rule into DEPS and exit
+
+ --fstype=TYPE Type of filesystem (TYPE may be "\`"ext2' or "\`"ufs')
+ --mkfs=PROGRAM Program to make an empty filesystem image
+ --fstrans=PROGRAM File system translator program
+
+ --help Display this help and exit
+ --version Output version information and exit
+
+If multiple SRCs are specified, then each occurrence of --files pertains only to
+the corresponding SRC.
+
+Each FILE named in a --copy-rules option contains lines of the form:
+
+ [gzip] [rename TARGET] COPY-OP NAME
+
+and says to copy NAME from the source tree to the destination, using the
+method specified by COPY-OP. A preceding "\`"rename TARGET"\'" says to give
+NAME a different name in the target tree, and a preceding "\`"gzip"\'" says
+to compress the result (appending .gz to the name). COPY-OP may be one of the
+following:
+
+ copy -- A plain copy, preserving symlinks
+ objcopy -- Copy using objcopy to strip any unneeded symbols
+ copytrans -- Copy a translator
+
+ touch -- Create an empty file in the destination, ignoring the source
+ mkdir -- Create an empty directory in the destination, ignoring the source
+ makedev -- Create the given device in the destination, ignoring the source
+ settrans -- Set a translator with the given arguments
+
+If both --mkfs and --fstrans are specified, no filesystem type need be given.
+If --fstype is not specified, an attempt is made to guess it based on the
+extension of IMAGE-FILE."
+ exit 0;;
+ -*)
+ echo 1>&2 "$0: $1: Unknown option"
+ echo 1>&2 "$TRY"
+ exit 64;;
+ '')
+ break;;
+ *)
+ case "${IMAGE+set}" in
+ set) SRCS[NUM_SRCS]="$1"; let 'NUM_SRCS += 1';;
+ *) IMAGE="$1";;
+ esac
+ shift
+ esac
+done
+
+case "${IMAGE+set}${SRCS[*]+set}" in
+ setset) ;;
+ *)
+ echo 1>&2 "$USAGE"
+ echo 1>&2 "$TRY"
+ exit 64;
+esac
+
+# Choose format
+if [ "${MKFS+set}" != set -o "${MKFS+set}" != set ]; then
+ if [ "${FSTYPE+set}" != set ]; then
+ case "$IMAGE" in
+ *.ext2|*.ext2.gz) FSTYPE=ext2;;
+ *.ufs|*.ext2.gz) FSTYPE=ufs;;
+ *) echo 1>&2 "$0: $IMAGE: Unknown filesystem type"; exit 1;;
+ esac
+ fi
+
+ case "$FSTYPE" in
+ ext2) MKFS="/sbin/mkfs.ext2 -ohurd"; MKFS_Q="-q"; FSTRANS=/hurd/ext2fs;;
+ ufs) MKFS="/sbin/mkfs.ufs --tracks=1 --sectors=80"; FSTRANS=/hurd/ufs;;
+ *) echo 1>&2 "$0: $IMAGE: Unknown filesystem type"; exit 1;;
+ esac
+fi
+
+case "$QUIET" in
+ yes) MKFS_Q="${MKFS_Q} >/dev/null"; ECHO=:;;
+ *) MKFS_Q=''; ECHO=echo;;
+esac
+export ECHO MKFS_Q
+
+case "$IMAGE" in *.gz) COMPRESS=yes;; esac
+
+IMAGE_TMP="${IMAGE}.new"
+IMAGE_GZIP_TMP="${IMAGE}.new.gz"
+MNT="/tmp/,mkfsimage-$$.mnt"
+ERROUT="/tmp/,mkfsimage-$$.errout"
+STAGE="/tmp/,mkfsimage-$$.stage"
+TRANS_LIST="/tmp/,mkfsimage-$$.trans"
+
+# Extra blocks that will be used by translators
+TRANS_BLOCKS=0
+
+if [ "$GEN_DEPS" ]; then
+ GEN_DEPS_TMP="$GEN_DEPS.new"
+ echo "$GEN_DEPS: ${SCRIPTS[*]}" >> "$GEN_DEPS_TMP"
+ echo "$IMAGE: \\" >> "$GEN_DEPS_TMP"
+fi
+
+trap "settrans 2>/dev/null -a $MNT; rm -rf $MNT $IMAGE_TMP $IMAGE_GZIP_TMP $ERROUT $STAGE $TRANS_LIST $GEN_DEPS_TMP" 0 1 2 3 15
+
+if [ ${#SRCS[@]} = 1 -a ${#SCRIPTS[@]} = 0 ]; then
+ # No staging directory
+ TREE="$1"
+else
+ # Multiple source trees, or selective copying -- copy using a staging directory.
+ # We record any translators in a file ($TRANS_LIST) for later, since we copy
+ # the staging dir to the final dir using tar, and it can't handle translators.
+
+ mkdir $STAGE || exit $?
+
+ SRC_NUM=0
+ while [ $SRC_NUM -lt ${#SRCS[@]} ]; do
+ SRC="${SRCS[SRC_NUM]}"
+ SCRIPT="${SCRIPTS[SRC_NUM]}"
+ let SRC_NUM+=1
+
+ if [ ! -d "$SRC" ]; then
+ echo 1>&2 "$0: $SRC: No such directory"
+ exit 24
+ fi
+ case "$SRC" in
+ /) PFX="/";;
+ *) PFX="$SRC/";;
+ esac
+
+ if [ ! "$GEN_DEPS" ]; then
+ eval $ECHO "'# Copying files from $SRC into staging directory $STAGE...'"
+ fi
+
+ if [ x"${SCRIPT}" != x ]; then
+ eval $ECHO "'# Using copy script $SCRIPT'"
+ (
+ if [ x"$SCRIPT" != x- ]; then
+ if [ ! -r "$SCRIPT" ]; then
+ echo 1>&2 "$0: $SCRIPT: No such file"
+ exit 25
+ fi
+ exec <"$SCRIPT"
+ fi
+
+ test "$GEN_DEPS" && echo " $SCRIPT \\" >> "$GEN_DEPS_TMP"
+
+ while read -a args; do
+ case $args in
+ gzip) gzip=yes; unset args[0]; args=(${args[@]});;
+ *) gzip=no;;
+ esac
+ case $args in
+ rename) dst="${args[1]}"; unset args[0] args[1]; args=(${args[@]});;
+ *) unset dst;;
+ esac
+
+ op="${args[0]}"
+ src="${args[1]}"
+
+ if echo "$src" | grep -q "[?*[]"; then
+ # For wildcards, use the most recent file matching that pattern
+ src="`(cd $SRC; ls -t1 $src | head -1)`"
+ fi
+
+ case ${dst+set} in
+ set)
+ # Destination patterns match files in the source tree (What
+ # else could we use? This may be useful for files that exist
+ # in the source, but which we want to use a different version
+ # of for this filesystem).
+ if echo "$dst" | grep -q "[?*[]"; then
+ dst="`(cd $SRC; ls -t1 $dst | head -1)`"
+ fi;;
+ *)
+ dst="$src";;
+ esac
+
+ # Pop op & src off of args
+ set -- "${args[@]}"; shift 2; unset args; args=("$@")
+
+ if [ "$GEN_DEPS" ]; then
+ case $op in
+ copy|objcopy)
+ echo " ${PFX}$src \\" >> "$GEN_DEPS_TMP";;
+ esac
+ continue
+ fi
+
+ case $op in
+ copy)
+ eval $ECHO "'cp -d ${PFX}$src $STAGE/$dst'"
+ cp -d ${PFX}$src $STAGE/$dst
+ ;;
+ objcopy)
+ eval $ECHO "'objcopy --strip-unneeded ${PFX}$src $STAGE/$dst'"
+ objcopy --strip-unneeded "${PFX}$src" "$STAGE/$dst"
+ ;;
+ symlink)
+ if echo "$args" | grep -q "[?*[]"; then
+ # symlink expansion is in the source tree, in the same
+ # directory as the file itself.
+ args="`(cd $PFX`dirname $dst`; ls -t1 $args | head -1)`"
+ fi
+ eval $ECHO "'ln -s $args $STAGE/$dst'"
+ ln -s $args $STAGE/$dst
+ ;;
+ mkdir)
+ eval $ECHO "'mkdir $STAGE/$dst'"
+ mkdir "$STAGE/$dst"
+ ;;
+ touch)
+ eval $ECHO "'touch $STAGE/$dst'"
+ touch "$STAGE/$dst"
+ ;;
+
+ makedev|settrans|copytrans)
+ # delay translators until later, as tar can't copy them.
+
+ case $op in
+ settrans|copytrans)
+ # We create the node on which translators will be put so
+ # that the owner gets set correctly; this isn't necessary for
+ # device because MAKEDEV does all the work needed, and doing so
+ # would cause problems with device names that are really
+ # categories.
+ touch "$STAGE/$dst";;
+ esac
+
+ # Accunt for space used by the translator block
+ TRANS_BLOCKS=$(($TRANS_BLOCKS + 1))
+
+ # Record the desired operation for a later pass
+ echo "$op $dst $src ${args[*]}" >> $TRANS_LIST
+ ;;
+
+ ''|'#')
+ ;;
+ *)
+ echo 1>&2 "$0: $op: Unknown operation"
+ ;;
+ esac
+
+ case $gzip in yes)
+ eval $ECHO "'gzip -v9 $STAGE/$dst'"
+ gzip -v9 "$STAGE/$dst";;
+ esac
+ done
+ ) || exit $?
+ else
+ eval $ECHO "'# Copying all files using tar'"
+ (cd $SRC; tar cf - .) | (cd $STAGE; tar -x --same-owner -p -f -)
+ fi
+ done
+ TREE="$STAGE"
+fi
+
+if [ "$GEN_DEPS" ]; then
+ echo "" >> "$GEN_DEPS_TMP" && mv "$GEN_DEPS_TMP" "$GEN_DEPS"
+ exit 0
+fi
+
+eval $ECHO "'# Changing file owners to $OWNER'"
+chown -R "$OWNER" $TREE
+
+# Size of source tree, plus 5% for overhead
+TREE_SIZE=$((($TRANS_BLOCKS + `du -s "$TREE" | sed 's/^\([0-9]*\).*/\1/'`) * 105 / 100))
+
+if [ "${COMPRESS-no}" = yes ]; then
+ # Add 10% to the filesystem size to leave some breathing room.
+ # Since unused filesystem space compresses very well, this shouldn't add
+ # much to the final size.
+ SIZE=$(($TREE_SIZE * 110 / 100))
+ test $SIZE -lt $MIN_SIZE && SIZE=$MIN_SIZE
+else
+ if [ $TREE_SIZE -gt $MAX_SIZE ]; then
+ echo 1>&2 "$0: $TREE: Too big (${TREE_SIZE}k) to fit in ${MAX_SIZE}k"
+ exit 10
+ fi
+ SIZE=$(($TREE_SIZE * 110 / 100))
+ test $SIZE -lt $MIN_SIZE && SIZE=$MIN_SIZE
+ test $SIZE -gt $MAX_SIZE && SIZE=$MAX_SIZE
+fi
+
+eval $ECHO "'# Zeroing disk image...'"
+rm -f $IMAGE_TMP
+if ! dd if=/dev/zero of=$IMAGE_TMP bs=${SIZE}k count=1 2>$ERROUT; then
+ sed -n "s@^dd:@$0@p" < $ERROUT 1>&2
+ exit 11
+fi
+
+eval $ECHO "'# Making filesystem...'"
+eval "$MKFS $MKFS_Q '$IMAGE_TMP'" || exit 12
+settrans -ac $MNT $FSTRANS $IMAGE_TMP || exit 13
+
+eval $ECHO "'# Copying $TREE into filesystem...'"
+(cd $TREE; tar cf - .) | (cd $MNT; tar -x --same-owner -p -f -)
+
+if [ -r "$TRANS_LIST" ]; then
+ # create any delayed translators
+ eval $ECHO "'# Creating translators...'"
+ cat "$TRANS_LIST" |
+ while read -a args; do
+ op="${args[0]}"
+ dst="${args[1]}"
+ src="${args[2]}"
+ set -- "${args[@]}"; shift 3; unset args; args=("$@")
+
+ case $op in
+ copytrans)
+ tr="`showtrans "${PFX}$src"`"
+ eval $ECHO "'settrans $MNT/$dst $tr'"
+ settrans "$MNT/$dst" $tr
+ ;;
+ settrans)
+ eval $ECHO "'settrans $MNT/$dst ${args[*]}'"
+ settrans "$MNT/$dst" "${args[@]}"
+ ;;
+ makedev)
+ dd="/`dirname $dst`"
+ eval $ECHO "'/sbin/MAKEDEV --devdir=$dd $MNT/$dst'"
+ /sbin/MAKEDEV --devdir=$dd "$MNT/$dst"
+ ;;
+ esac
+ done
+fi
+
+settrans -a $MNT
+
+case "$COMPRESS" in
+ yes)
+ case "$QUIET" in
+ yes)
+ gzip -9 $IMAGE_TMP
+ ;;
+ *)
+ eval $ECHO "'# Compressing disk image...'"
+ gzip -v9 $IMAGE_TMP 2>&1 | sed "s@$IMAGE_TMP\.gz@$IMAGE@g"
+ ;;
+ esac
+ mv $IMAGE_GZIP_TMP $IMAGE
+ ;;
+ *)
+ mv $IMAGE_TMP $IMAGE
+ ;;
+esac
+
+exit 0
diff --git a/release/mksmallso.sh b/release/mksmallso.sh
new file mode 100755
index 00000000..2f147bd0
--- /dev/null
+++ b/release/mksmallso.sh
@@ -0,0 +1,48 @@
+# Usage:
+# $1 : Destination merged, stripped, small shared library
+# $2 : lib*_pic.a files from which to produce the final small library
+# $3 : .so files that this library should depend on
+# ${4:$} : executables and shared libraries whos dependencies we care about
+
+while :; do
+ case "$1" in
+ -*) LDARGS="$1"; shift;;
+ *) break;;
+ esac
+done
+
+MERGED_SO="$1"; shift
+PIC_LIBS="$1"; shift
+DEPS="$1"; shift
+
+GCC=${GCC-gcc}
+LD=${LD-ld}
+OBJDUMP=${OBJDUMP-objdump}
+OBJCOPY=${OBJCOPY-objcopy}
+
+DEP_FLAGS_FILE=/tmp/,depflags.$$
+NEED_DSYMS_FILE=/tmp/,need.dyn.syms.$$
+HAVE_DSYMS_FILE=/tmp/,have.dyn.syms.$$
+MERGED_PIC_LIB=/tmp/,libmerged_pic.a.$$
+
+#trap "rm -f $DEP_FLAGS_FILE $MERGED_PIC_LIB $NEED_DSYMS_FILE $HAVE_DSYMS_FILE" 0
+
+
+$OBJDUMP --dynamic-syms "$@" 2>/dev/null \
+ | sed -n 's/^.*\*UND\*.* \([^ ]*\)$/\1/p' \
+ | sort -u > $NEED_DSYMS_FILE
+
+# 00000000 w F .text 00000000 syscall_device_write_request
+# 00000000 g F .text 0000056c __strtoq_internal
+$OBJDUMP --syms $PIC_LIBS 2>/dev/null \
+ | sed -n 's/^........ \(g \| w\) .. .* [0-9a-f]....... \([^ ]*\)$/\2/p' \
+ | sort -u > $HAVE_DSYMS_FILE
+
+# This had better be gnu diff...
+diff --unchanged-l='%L' --old-l= --new-l= $NEED_DSYMS_FILE $HAVE_DSYMS_FILE \
+ | sed 's/^/-u/' > $DEP_FLAGS_FILE
+
+$GCC $LDARGS -nostdlib -nostartfiles -shared -Wl,-soname=`basename $MERGED_SO` `cat $DEP_FLAGS_FILE` \
+ -o $MERGED_SO.uns $PIC_LIBS $DEPS \
+&& $OBJCOPY --strip-debug $MERGED_SO.uns $MERGED_SO \
+&& rm -f $MERGED_SO.uns
diff --git a/release/release-steps b/release/release-steps
new file mode 100644
index 00000000..5303017b
--- /dev/null
+++ b/release/release-steps
@@ -0,0 +1,8 @@
+
+Make tar file.
+Test compilation.
+Update README, including version number.
+Update INSTALL, including version number.
+Update NEWS.
+Write release announcement.
+README and release announcement should mention list of platforms.
diff --git a/release/rfloppy-special.copy b/release/rfloppy-special.copy
new file mode 100644
index 00000000..cf7ef22a
--- /dev/null
+++ b/release/rfloppy-special.copy
@@ -0,0 +1,3 @@
+rename etc/passwd copy rfloppy.passwd
+rename etc/group copy rfloppy.group
+rename etc/nsswitch.conf copy rfloppy.nss
diff --git a/release/rfloppy.copy b/release/rfloppy.copy
new file mode 100644
index 00000000..55beef92
--- /dev/null
+++ b/release/rfloppy.copy
@@ -0,0 +1,175 @@
+# Files on the hurd boot floppy root disk
+
+mkdir bin
+mkdir boot
+mkdir dev
+mkdir etc
+mkdir hurd
+mkdir lib
+mkdir sbin
+mkdir servers
+mkdir tmp
+mkdir mnt
+
+copy etc/protocols
+copy etc/services
+
+objcopy bin/bash
+objcopy bin/cat
+objcopy bin/chmod
+objcopy bin/chown
+objcopy bin/cp
+objcopy bin/dd
+objcopy bin/ed
+objcopy bin/devprobe
+objcopy bin/fsysopts
+objcopy bin/ftp
+objcopy bin/gzip
+objcopy bin/ln
+objcopy bin/ls
+objcopy bin/mv
+objcopy bin/rm
+objcopy bin/settrans
+objcopy bin/showtrans
+objcopy bin/sync
+copy bin/sh
+objcopy bin/tar
+objcopy bin/vmstat
+
+objcopy hurd/auth
+objcopy hurd/exec
+objcopy hurd/init
+objcopy hurd/nfs
+objcopy hurd/pfinet
+objcopy hurd/proc
+objcopy hurd/term
+objcopy hurd/ext2fs
+objcopy hurd/magic
+objcopy hurd/null
+objcopy hurd/pflocal
+objcopy hurd/storeio
+objcopy hurd/ufs
+
+copy sbin/MAKEDEV
+objcopy sbin/halt
+objcopy sbin/mkfs.ext2
+objcopy sbin/mkfs.ufs
+objcopy sbin/reboot
+objcopy sbin/fdisk
+objcopy sbin/swapon
+
+touch servers/exec
+mkdir servers/socket
+settrans servers/socket/1 /hurd/pflocal
+symlink servers/socket/local servers/socket/1
+touch servers/socket/2
+symlink servers/socket/inet servers/socket/2
+
+copy lib/ld.so
+objcopy lib/ld.so.1
+objcopy lib/libc-*.so
+copy lib/libc.so
+copy lib/libc.so.*
+copy lib/libcrypt.so
+copy lib/libcrypt.so.*
+objcopy lib/libcrypt-*.so
+copy lib/libdb.so
+copy lib/libdb.so.*
+objcopy lib/libdb-*.so
+copy lib/libdl.so
+copy lib/libdl.so.*
+objcopy lib/libdl-*.so
+objcopy lib/libdiskfs.so
+objcopy lib/libfshelp.so
+objcopy lib/libhurdbugaddr.so
+copy lib/libhurduser.so
+copy lib/libhurduser.so.*
+objcopy lib/libhurduser-*.so
+objcopy lib/libihash.so
+objcopy lib/libiohelp.so
+copy lib/libm.so
+copy lib/libm.so.*
+objcopy lib/libm-*.so
+copy lib/libmachuser.so
+copy lib/libmachuser.so.*
+objcopy lib/libmachuser-*.so
+objcopy lib/libnetfs.so
+copy lib/libnss_dns.so
+copy lib/libnss_dns.so.*
+objcopy lib/libnss_dns-*.so
+copy lib/libnss_files.so
+copy lib/libnss_files.so.*
+objcopy lib/libnss_files-*.so
+objcopy lib/libpager.so
+objcopy lib/libpipe.so
+objcopy lib/libports.so
+copy lib/libresolv.so
+copy lib/libresolv.so.*
+objcopy lib/libresolv-*.so
+objcopy lib/libshouldbeinlibc.so
+objcopy lib/libstore.so
+objcopy lib/libthreads.so
+objcopy lib/libtrivfs.so
+copy lib/libutil.so
+copy lib/libutil.so.*
+objcopy lib/libutil-*.so
+
+copy dev/MAKEDEV
+makedev dev/std
+makedev dev/fd0
+makedev dev/hd0
+makedev dev/hd0a
+makedev dev/hd0b
+makedev dev/hd0c
+makedev dev/hd0d
+makedev dev/hd0e
+makedev dev/hd0f
+makedev dev/hd0g
+makedev dev/hd0s1
+makedev dev/hd0s2
+makedev dev/hd0s3
+makedev dev/hd0s4
+makedev dev/hd0s5
+makedev dev/hd0s6
+makedev dev/hd1
+makedev dev/hd1a
+makedev dev/hd1b
+makedev dev/hd1c
+makedev dev/hd1d
+makedev dev/hd1e
+makedev dev/hd1f
+makedev dev/hd1g
+makedev dev/hd1s1
+makedev dev/hd1s2
+makedev dev/hd1s3
+makedev dev/hd1s4
+makedev dev/hd1s5
+makedev dev/hd1s6
+makedev dev/sd0
+makedev dev/sd0a
+makedev dev/sd0b
+makedev dev/sd0c
+makedev dev/sd0d
+makedev dev/sd0e
+makedev dev/sd0f
+makedev dev/sd0g
+makedev dev/sd0s1
+makedev dev/sd0s2
+makedev dev/sd0s3
+makedev dev/sd0s4
+makedev dev/sd0s5
+makedev dev/sd0s6
+makedev dev/sd1
+makedev dev/sd1a
+makedev dev/sd1b
+makedev dev/sd1c
+makedev dev/sd1d
+makedev dev/sd1e
+makedev dev/sd1f
+makedev dev/sd1g
+makedev dev/sd1s1
+makedev dev/sd1s2
+makedev dev/sd1s3
+makedev dev/sd1s4
+makedev dev/sd1s5
+makedev dev/sd1s6
diff --git a/release/rfloppy.group b/release/rfloppy.group
new file mode 100644
index 00000000..47b7278c
--- /dev/null
+++ b/release/rfloppy.group
@@ -0,0 +1 @@
+wheel::0:root
diff --git a/release/rfloppy.nss b/release/rfloppy.nss
new file mode 100644
index 00000000..31447c2a
--- /dev/null
+++ b/release/rfloppy.nss
@@ -0,0 +1,19 @@
+# /etc/nsswitch.conf
+#
+# Don't use name services that we can't provide (specifically, nis & db)
+#
+
+# defaults for hosts & networks are ok
+
+passwd: files
+group: files
+shadow: files
+aliases: files
+
+protocols: files
+services: files
+ethers: files
+rpc: files
+publickey: files
+
+netgroup: files
diff --git a/release/rfloppy.passwd b/release/rfloppy.passwd
new file mode 100644
index 00000000..a799e8f6
--- /dev/null
+++ b/release/rfloppy.passwd
@@ -0,0 +1 @@
+root::0:0:Lord of the Files:/:/bin/bash
diff --git a/release/servers.boot b/release/servers.boot
index 91beb152..9ba7f6a4 100644
--- a/release/servers.boot
+++ b/release/servers.boot
@@ -3,14 +3,12 @@
# First, the bootstrap filesystem. It needs several ports as arguments,
# as well as the user flags from the boot loader.
-/hurd/ufs.static --bootflags=${boot-args} --host-priv-port=${host-port} --device-master-port=${device-port} --exec-server-task=${exec-task} --machdev ${root-device} $(task-create) $(task-resume)
+/hurd/ext2fs.static --multiboot-command-line=${kernel-command-line} --host-priv-port=${host-port} --device-master-port=${device-port} --exec-server-task=${exec-task} -T typed ${root} $(task-create) $(task-resume)
+
# Now the exec server; to load the dynamically-linked exec server program,
# we have the boot loader in fact load and run ld.so, which in turn
# loads and runs /hurd/exec. This task is created, and its task port saved
-# in ${exec-task} to be passed to the fs above, but it is left suspended;
+# in ${exec-task} to be passed to the fs above, but it is left suspended;
# the fs will resume the exec task once it is ready.
-/lib/ld.so /hurd/exec $(exec-task=task-create)
-
-# default pager
-/dev/sd0b $(add-paging-file) $(default-pager)
+/lib/ld.so.1 /hurd/exec $(exec-task=task-create)
diff --git a/release/tool-Makefile b/release/tool-Makefile
index 375042e4..6a23b95a 100644
--- a/release/tool-Makefile
+++ b/release/tool-Makefile
@@ -1,27 +1,38 @@
# Makefile for hurd image frobnication.
-export GNUTARGET=elf32-i386
-export OBJCOPY=i386-gnu-objcopy
+export OBJCOPY=objcopy
-BF=bfloppy-image
-RF=rfloppy-image
+# Where we get programs from
+image-dir=/
+# Where we get libc
+libc-obj-dir = /gd4/hurd-native/build/glibc
-bfloppy-files = $(bfloppy-bootfs:%=hurd/%) $(bfloppy-bootprogs:%=boot/%) \
+smallso-LDFLAGS = -Wl,-rpath-link=/lib
+
+BF=bfloppy
+RF=rfloppy
+
+bfloppy-files = $(bfloppy-bootfs:%=hurd/%) $(bfloppy-bootprogs:%=boot/%.gz) \
lib/ld.so boot/servers.boot
bfloppy-bootfs = ufs
-bfloppy-bootprogs = kernel bootstrap
+bfloppy-bootprogs = gnumach serverboot
-$(BF)/boot/servers.boot: hurd-image/boot/floppy.boot
- -rm -f $@
+$(BF)/boot/servers.boot: bfloppy.boot
+ @-rm -f $@
@test -d $(@D) || mkdir -p $(@D)
cp $< $@
-$(BF)/%/: hurd-image/%/
+$(BF)/%/: $(image-dir)/%/
test -d $@ || mkdir -p $@
-$(BF)/%: hurd-image/%
- -rm -f $@
+$(addsuffix .gz, $(addprefix $(BF)/boot/, $(bfloppy-bootprogs))): \
+ $(BF)/boot/%.gz: $(image-dir)/boot/%
+ @-rm -f $@
@test -d $(@D) || mkdir -p $(@D)
- ln $< $@ || cp $< $@
+ $(OBJCOPY) --strip-unneeded $< | gzip -9 > $@
+$(BF)/%: $(image-dir)/%
+ @-rm -f $@
+ @test -d $(@D) || mkdir -p $(@D)
+ $(OBJCOPY) --strip-unneeded $< $@
$(BF): $(bfloppy-files:%=$(BF)/%)
$(BF).tar: $(bfloppy-files:%=$(BF)/%)
@@ -29,96 +40,54 @@ $(BF).tar: $(bfloppy-files:%=$(BF)/%)
cd $(BF); tar covf ../$@ $(^:$(BF)/%=%)
rfloppy-files = $(rfloppy-hurd:%=hurd/%) $(rfloppy-progs:%=bin/%) \
+ $(rfloppy-sprogs:%=sbin/%) \
$(rfloppy-solib:%=lib/%.so) hurd/exec \
lib/libc.so lib/libhurduser.so lib/libmachuser.so \
servers/exec servers/socket/1 \
- README tmp/ dev/MAKEDEV
-rfloppy-hurd = auth devio null init proc term
-rfloppy-progs = sh ls cat settrans # mkfs
+ README tmp/ mnt/ dev/MAKEDEV
+rfloppy-hurd = auth storeio null init proc term pfinet nfs ufs ext2fs
+rfloppy-progs = bash ls cat settrans
+rfloppy-sprogs = mkfs.ufs mkfs.ext2
rfloppy-solib = libtrivfs libthreads libshouldbeinlibc libports \
- libpager libioserver libihash libfshelp ld
-
-libc-satisfies = $(rfloppy-hurd:%=hurd/%) $(rfloppy-progs:%=bin/%) $(rfloppy-solib:%=lib/%.so)
-
-libc-obj-dir = /gd4/gnu/libc/i386
-smallso-LDFLAGS = -Wl,-rpath-link=/lib
+ libpager libiohelp libstore libihash libfshelp libnetfs ld
-libc-USERS =
-libc-DEPS =
+libc-satisfies = $(rfloppy-hurd:%=hurd/%) $(rfloppy-progs:%=bin/%) $(rfloppy-sprogs:%=sbin/%) $(rfloppy-solib:%=lib/%.so)
-$(RF)/lib/libc.so: hurd-image/lib/libc.so hurd-image/lib/libhurduser.so hurd-image/lib/libmachuser.so $(libc-satisfies:%=hurd-image/%)
+$(RF)/lib/libc.so: $(image-dir)/lib/libc.so $(image-dir)/lib/libhurduser.so $(image-dir)/lib/libmachuser.so $(libc-satisfies:%=$(image-dir)/%)
mksmallso $(smallso-LDFLAGS) \
- $@ $(libc-obj-dir)/libc_pic.a '-Lhurd-image/lib -lhurduser -lmachuser' \
+ $@ $(libc-obj-dir)/libc_pic.a '-L$(image-dir)/lib -lhurduser -lmachuser' \
$(filter-out $(firstword $^),$^)
-$(RF)/lib/libhurduser.so: $(RF)/lib/libc.so $(libc-satisfies:%=hurd-image/%)
- mksmallso $(smallso-LDFLAGS) $@ $(libc-obj-dir)/libhurduser_pic.a -Lhurd-image/lib -lmachuser $(filter-out $(firstword $^),$^)
+$(RF)/lib/libhurduser.so: $(RF)/lib/libc.so $(libc-satisfies:%=$(image-dir)/%)
+ mksmallso $(smallso-LDFLAGS) $@ $(libc-obj-dir)/hurd/libhurduser_pic.a -L$(image-dir)/lib -lmachuser $(filter-out $(firstword $^),$^)
-$(RF)/lib/libmachuser.so: $(RF)/lib/libc.so $(RF)/lib/libhurduser.so $(libc-satisfies:%=hurd-image/%)
- mksmallso $(smallso-LDFLAGS) $@ $(libc-obj-dir)/libmachuser_pic.a '' $(filter-out $(firstword $^),$^)
+$(RF)/lib/libmachuser.so: $(RF)/lib/libc.so $(RF)/lib/libhurduser.so $(libc-satisfies:%=$(image-dir)/%)
+ mksmallso $(smallso-LDFLAGS) $@ $(libc-obj-dir)/mach/libmachuser_pic.a '' $(filter-out $(firstword $^),$^)
-$(addprefix $(RF)/,$(rfloppy-hurd:%=hurd/%) $(rfloppy-progs:%=bin/%)): \
- $(RF)/%: hurd-image/%
+$(RF)/bin/%: $(image-dir)/bin/%
+ @-rm -f $@
@test -d $(@D) || mkdir -p $(@D)
- gzip -9v -c $< > $@.new
- chmod 555 $@.new
- mv -f $@.new $@
-
-$(RF)/%/: hurd-image/%/
- test -d $@ || mkdir -p $@
-$(RF)/%: hurd-image/%
- -rm -f $@
+ $(OBJCOPY) --strip-unneeded $< $@
+$(RF)/sbin/%: $(image-dir)/sbin/%
+ @-rm -f $@
@test -d $(@D) || mkdir -p $(@D)
- ln $< $@ || cp $< $@
+ $(OBJCOPY) --strip-unneeded $< $@
+$(RF)/hurd/%: $(image-dir)/hurd/%
+ @-rm -f $@
+ @test -d $(@D) || mkdir -p $(@D)
+ $(OBJCOPY) --strip-unneeded $< $@
+$(RF)/servers/%:
+ @test -d $(@D) || mkdir -p $(@D)
+ touch $@
+$(RF)/%/: $(image-dir)/%/
+ test -d $@ || mkdir -p $@
$(RF): $(rfloppy-files:%=$(RF)/%)
$(RF).tar: $(rfloppy-files:%=$(RF)/%)
rm -f $@
cd $(RF); tar covf ../$@ $(^:$(RF)/%=%)
-MOUNT_POINT = /mnt
-VND = vnd0
-VND_DEV = /dev/${VND}a
-VND_RDEV = /dev/r${VND}a
-MDEC = /usr/mdec
-
-floppy%-image.fs: /tmp/floppy%-image.fs; cp -f $< $@
-
-/tmp/floppy%-image.fs: floppy%-image.tar
- dd if=/dev/zero of=$@.new bs=10k count=144
- vnconfig -v -c ${VND_DEV} $@.new
- disklabel -w -B -b ${MDEC}/fdboot -s ${MDEC}/bootfd ${VND} floppy3
- newfs -O -m 0 -o space -i 5120 -c 80 ${VND_RDEV} floppy3
- mount ${VND_DEV} ${MOUNT_POINT}
- tar -f $< -C ${MOUNT_POINT} -xv
- df -i ${MOUNT_POINT}
- umount ${MOUNT_POINT}
- vnconfig -u ${VND_DEV} $@.new
- mv -f $@.new $@
-
-hurd-image.tar: hurd-image hurd-image.stamp
- tar cof $@ $<
-
-%.gz: %
- gzip -9v -c $< > $@.new
- mv -f $@.new $@
-
-%:: %.gz
- gunzip -c $< > $@.new
- mv -f $@.new $@
-
-
-instdirs := $(patsubst ../hurdinst/%,%,\
- $(filter-out ../hurdinst,\
- $(shell find ../hurdinst -type d -print \
- | sort -r)))
-
-hurd-image/%/.stamp: ../hurdinst/%
- @./install-stripped -N $@ $< $(@D)
- @echo $< `date` > $@
- @echo updated $(@D)/
-hurd-image.stamp: $(instdirs:%=hurd-image/%/.stamp); touch $@
-hurd-image: hurd-image.stamp
-
-
- \ No newline at end of file
+bfloppy.%: $(bfloppy-files:%=$(BF)/%)
+ mkfsimage -q $@ $(BF)
+rfloppy.%.gz: $(rfloppy-files:%=$(RF)/%)
+ mkfsimage --compress -q $@ $(RF)