Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
####### # # E-scripts on Hurd. # # Note 1: use the eev command (defined in eev.el) and the # ee alias (in my .zshrc) to execute parts of this file. # Executing this file as a whole makes no sense. # An introduction to eev can be found here: # # (find-eev-quick-intro) # http://angg.twu.net/eev-intros/find-eev-quick-intro.html # # Note 2: be VERY careful and make sure you understand what # you're doing. # # Note 3: If you use a shell other than zsh things like |& # and the for loops may not work. # # Note 4: I always run as root. # # Note 5: some parts are too old and don't work anymore. Some # never worked. # # Note 6: the definitions for the find-xxxfile commands are on my # .emacs. # # Note 7: if you see a strange command check my .zshrc -- it may # be defined there as a function or an alias. # # Note 8: the sections without dates are always older than the # sections with dates. # # This file is at <http://angg.twu.net/e/hurd.e> # or at <http://angg.twu.net/e/hurd.e.html>. # See also <http://angg.twu.net/emacs.html>, # <http://angg.twu.net/.emacs[.html]>, # <http://angg.twu.net/.zshrc[.html]>, # <http://angg.twu.net/escripts.html>, # and <http://angg.twu.net/>. # ####### # «.hurd-install-guide» (to "hurd-install-guide") # «.HIG.info» (to "HIG.info") # «.HIG-mke2fs» (to "HIG-mke2fs") # «.HIG-tarball» (to "HIG-tarball") # «.HIG-prepboot» (to "HIG-prepboot") # «.HIG-firstboots» (to "HIG-firstboots") # «.gnumach_crosscomp» (to "gnumach_crosscomp") # «.gnumach_cvs» (to "gnumach_cvs") # «.gnumach_from_linux» (to "gnumach_from_linux") # «.hurd-install-easy» (to "hurd-install-easy") # «.mke2fs» (to "mke2fs") # «.updating_hurd_debs» (to "updating_hurd_debs") # «.dpkg-cross» (to "dpkg-cross") # «.help-hurd» (to "help-hurd") # «.debian-hurd» (to "debian-hurd") # «.edrx_hurd» (to "edrx_hurd") # «.colortext» (to "colortext") # «.hurd_logo_mf» (to "hurd_logo_mf") # «.cross-install_localrep» (to "cross-install_localrep") # «.fsmunoz-template» (to "fsmunoz-template") # «.oskit-mach» (to "oskit-mach") # «.keymap» (to "keymap") # «.ioctls» (to "ioctls") # «.emptyhurd_newdpkg» (to "emptyhurd_newdpkg") # «.fromlinux-apt.conf» (to "fromlinux-apt.conf") # «.emptyhurd_apt.conf» (to "emptyhurd_apt.conf") # «.emptyhurd_newapt» (to "emptyhurd_newapt") # «.sparse_super» (to "sparse_super") # «.hhg» (to "hhg") # «.ppp-tun0» (to "ppp-tun0") # «.live-2013» (to "live-2013") # (find-deblistsw3 "debian-hurd-0008/msg00229.html") # To do, urgently: adapt my use of the cross-install script to let it # use the local mirror of dists/sid; learn to use apt-move and let # cross-install fetch the missing packages from a remote place. # (find-es "apache" "apt-http-local") # (to "cross-install_localrep") ##### # # Neal Walfield's installation guide (more up-to-date that Matthew Vernon's) # 2001oct21 # ##### # «hurd-install-guide» (to ".hurd-install-guide") # (find-shttpw3 "www.walfield.org/papers/hurd-installation-guide/") # (find-shttpw3 "www.walfield.org/papers/hurd-installation-guide/english/hurd-install-guide.html") # (code-c-d "HIG" "/usr/src/hurd-installation-guide/" "hurd-install-guide") #* rm -Rv /usr/src/hurd-installation-guide/ cd /usr/src/ tar -xvzf $S/http/www.walfield.org/papers/hurd-installation-guide/hurd-installation-guide-latest.tar.gz cd /usr/src/hurd-installation-guide/ # (find-HIGfile "english/hurd-install-guide.texi") # (find-HIGfile "") #* # «HIG.info» (to ".HIG.info") # Install the texinfo version of the guide: cd /usr/src/hurd-installation-guide/english/ patch -p0 hurd-install-guide.texi <<'%%%' 4a5,8 > @dircategory The Hurd > @direntry > * Hurd-install-guide: (hurd-install-guide). The Hurd Installation Guide. > @end direntry %%% make hurd-install-guide.info gzip -c9 < hurd-install-guide.info > /usr/share/info/hurd-install-guide.info.gz # (find-texinode "Installing Dir Entries") # (find-es "dpkg" "install-info") # (find-man "8 install-info" "--section regexp title") install-info --remove hurd-install-guide install-info --section "The Hurd" "The Hurd" \ /usr/share/info/hurd-install-guide.info.gz # (find-node "(dir)Top" "Hurd-install-guide") #* # «HIG-mke2fs» (to ".HIG-mke2fs") # (find-HIGnode "Real Estate") umount /gnu # If it doesn't have bad blocks (i.e., if "dumpe2fs -b" outputs # nothing) then it should be safe to omit the "-c" in mke2fs. dumpe2fs -b /dev/hda2 mke2fs -o hurd /dev/hda2 mount /gnu #:* # «HIG-tarball» (to ".HIG-tarball") # (find-HIGnode "Cross Install") # (find-sftpfile "alpha.gnu.org/gnu/hurd/contrib/marcus/") # anonftp ftp://alpha.gnu.org/gnu/hurd/contrib/marcus/ cd $S/ftp/alpha.gnu.org/gnu/hurd/contrib/marcus/ tar --same-owner -xvzpf gnu-20011016.tar.gz -C /gnu #* # «HIG-prepboot» (to ".HIG-prepboot") # (find-HIGnode "Booting the Hurd") # (find-HIGnode "Booting the Hurd" "find /boot/gnumach.gz") # (find-es "grub" "menu.lst" "GNU/Hurd without serverboot") # Copy the new Hurd boot files to my partition in /dev/hda1, where # they can be fetched by Grub without BIOS problems. # mkdir /hda1/boot/hurd-new/ cd /gnu/ cp -v boot/gnumach.gz hurd/ext2fs.static lib/ld.so.1 /hda1/boot/hurd-new/ #* # «HIG-firstboots» (to ".HIG-firstboots") # (find-HIGnode "Native Install") # # The first boots: # 1) I booted in single-user mode, then typed: # export TERM=mach (but things should work even without this) # ./native-install # 2 (for tzconfig: Americas) # Sao (same: select "Sao_Paulo" (same TZ as Rio)) # reboot # 2) I booted in single-user mode again, and typed: # export TERM=mach (things should work even without this) # ./native-install # cd /dev/ # ./MAKEDEV hd0 # ./MAKEDEV hd0s2 # cd /etc/ # cp -v fstab fstab.orig # echo /dev/hd0s2 / rw 1 1 > fstab # reboot # It should be possible to just type ". root/1" and ". root/2" instead... cat > /gnu/root/1 <<'---' set -v export TERM=mach ./native-install # reboot --- cat > /gnu/root/2 <<'---' set -v export TERM=mach ./native-install cd /dev/ ./MAKEDEV hd0 ./MAKEDEV hd0s2 cd /etc/ cp -v fstab fstab.orig echo /dev/hd0s2 / rw 1 1 > fstab # reboot --- # Copy some "Packages" files - apt will need them to get the list of # debs that we want to install - and that we must use Linux to fetch. mkdir /gnu/snarf cd /snarf/ cp -Pv \ ftp/ftp.debian.org/debian/dists/sid/main/binary-hurd-i386/Packages* \ ftp/alpha.gnu.org/pub/gnu/hurd/debian/dists/unstable/main/binary-hurd-i386/Packages* \ /gnu/snarf/ ln -snf . /gnu/gnu cat > /gnu/root/3 <<'---' set -v cd /gnu/etc/apt/ if [ ! -e sources.list.orig ]; then cp -v sources.list sources.list.orig fi # (find-fline "/etc/apt/sources.list") cat > sources.list <<'%%%' deb file:/snarf/ftp/ftp.debian.org/debian sid main deb file:/snarf/ftp/alpha.gnu.org/pub/gnu/hurd/debian unstable main %%% # It is ok to remove bsdutils, type "Yes, do as I say!" apt-get -f install apt-get update --- cat > /gnu/root/4 <<'---' apt-get -f install apt-get update apt-get --print-uris --download-only -y install \ base-files base-passwd bash debianutils diff dpkg e2fsprogs \ fileutils findutils grep gzip hostname hurd ncurses-base ncurses-bin \ perl-base sed shellutils tar textutils \ \ dpkg-dev build-essential screen emacs20 expect tcl8.3 zsh30 \ man gdb um-pppd minicom \ | tee ~/o perl -nle "m%^'file:/snarf/ftp/(.*)'% && print \$1" < ~/o > ~/o2 --- # (find-fline "$SSIDMB/Packages") # (find-Package "$SSIDMB/Packages" "um-pppd") # (find-gnuavailable "um-pppd") # (find-gnuavailable "minicom") #* # On Linux: get the debs from the list in /gnu/root/o2 # (find-fline "/gnu/root/o") # (find-fline "/gnu/root/o2") for i in $(</gnu/root/o2); do psne ftp://$i -c; done #* # Copy the debs to /gnu/root/debs/ mkdir /gnu/root/debs/ cd /snarf/ftp/ for i in $(</gnu/root/o2); do cp -v $i /gnu/root/debs/; done # (find-fline "/gnu/root/debs/") cat > /gnu/root/5 <<'---' cd /root/debs/ dpkg -i *.deb --- #* # This block is to copy my personal stuff. Other people won't probably # be very interested in it. makeLedrxtgz cp -v ~/TH/L/edrx.tgz /gnu/root/ cd ~/tmp/ cp -v lua_4.0.orig.tar.gz lua_4.0-0.3.diff.gz lua_4.0-0.3.dsc /gnu/root/ # (find-angg "run-prep") cat > /gnu/root/6 <<'---' mkdir /root/edrx/ cd /root/edrx/ tar -xvzf ../edrx.tgz mkdir tmp/ cp -v ../lua_4.0* tmp/ HOME=`pwd` ./run-prep hurd_links # ~/edrx/run-zsh screen # run-prep eev # run-prep lua --- #* # (to "keymap") cd / cp -aPv snarf/ftp/alpha.gnu.org/gnu/hurd/contrib/marcus/keymap.tar.gz /gnu/ #* # (find-fline "/gnu/root/edrx/") # (find-fline "/gnu/root/edrx/NOTES") ##### # # Cross-compiling gnumach (to get rid of the buggy kd_setleds message) # 2001nov05 # ##### # «gnumach_crosscomp» (to ".gnumach_crosscomp") # (to ".gnumach_from_linux") # (to ".gnumach_cvs") # anonftp $FDEBIAN/pool/main/g/gnumach/ # apt-get install gcc-i386-gnu mig-i386-gnu #* pdsc $SDEBIAN/pool/main/g/gnumach/gnumach_20011013-1.dsc cd /usr/src/gnumach-20011013/ find * | sort | grep '\.[chsS]$' > .files.chS ./configure --build=i386-pc-linux-gnu --host=i386-gnu \ --enable-floppy --enable-ide --enable-ne2000 |& tee oc make |& tee om cd /usr/src/gnumach-20011013/ patch -p0 i386/i386at/kd.c <<'%%%' 2389c2389 < printf("kd_setleds1: unexpected state (%d)\n", kd_ack); --- > /* printf("kd_setleds1: unexpected state (%d)\n", kd_ack); */ %%% make |& tee om2 cd /usr/src/gnumach-20011013/ gzip -c9 < kernel > /hda1/boot/hurd-new/gnumach-edrx.gz laf kernel* laf /hda1/boot/hurd-new/ #* cd /usr/src/gnumach-20011013/ glimpseindex -H . -F < .files.chS # etags $(<.files.chS) # cd /usr/src/gnumach-20011013/ glimpse -H . kd_setleds # cd /usr/src/gnumach-20011013/ grep floppy $(find * | grep configure) #* # (find-gnumachfile "i386/i386at/kd.c" "kd_setleds1: unexpected state") # (find-gnumachfile "i386/linux/configure" "--enable-ide") # (find-gnumachfile "i386/linux/Drivers.in" "floppy") # (find-gnumachfile "Makefile.in" "install-kernel:") # (find-gnumachfile "Makefile" "install-kernel:") # (find-gnumachfile "om2" "-o kernel ") # (find-gnumachfile "debian/rules") # (find-gnumachfile "configure.in") # (find-gnumachfile "configure") # (find-gnumachfile "i386/i386at/com.c" "Tty %x was stuck") ##### # # gnumach from the cvs # 2000nov27 # ##### # «gnumach_cvs» (to ".gnumach_cvs") #* # On twu: rm -Rv ~/tmp/gnumach/ mkdir ~/tmp/gnumach/ cd ~/tmp/gnumach/ # Password: [enter] cvs -d :pserver:anoncvs@subversions.gnu.org:/cvs login cvs -d :pserver:anoncvs@subversions.gnu.org:/cvs checkout gnumach tar -cvzf ~/tmp/gnumach-cvs.tgz * laf ~/tmp/gnumach-cvs.tgz # rm -R ~/tmp/gnumach/ #* # On angg.popolvuh: cd ~/tmp anonftp angg.twu.net 'cd ~/tmp/' 'get gnumach-cvs.tgz' module=gnumach #* ##### # # gnumach: recompiling from Linux # 2000nov02 # ##### # «gnumach_from_linux» (to ".gnumach_from_linux") # (find-fline "~/00nov04.popmail" "gnumach_1.2-5.diff.gz") # (find-deblistsw3 "debian-hurd-0009/msg00168.html") # (find-deblistsw3 "debian-hurd-0011/msg00286.html") # (find-deblistsw3 "debian-hurd-0011/msg00288.html") # (find-gnumachfile "debian/rules") # (find-gnumachfile "om") #* rm -Rv /usr/src/gnumach-1.2/ # pdsc $SDEBIAN/dists/woody/main/source/base/gnumach_1.2-7.dsc cd /usr/src/ dpkg-source -sn -x $SDEBIAN/dists/woody/main/source/base/gnumach_1.2-7.dsc cd /usr/src/gnumach-1.2/ MIG=i386-gnu-mig CC=i386-gnu-gcc \ ./configure --enable-floppy --enable-ide --enable-ne2000 \ i386-pc-gnu --prefix=/gnu \ |& tee oc make |& tee om mkdir -p debian/tmp (pfx=`cd debian/tmp && pwd` \ && make install-kernel prefix=$pfx \ ) |& tee om2 strip --strip-all debian/tmp/boot/gnumach gzip -9fq debian/tmp/boot/gnumach cp -v oc ~/tmp/gnumach-oc cp -v om ~/tmp/gnumach-om cp -v om2 ~/tmp/gnumach-om2 #* # Copy it to a grubbable place. # (find-es "grub" "menu.lst") mount /hda1 -o remount,rw cp -v /usr/src/gnumach-1.2/debian/tmp/boot/gnumach.gz \ /hda1/boot/grub/gnumach-edrx.gz #* # Ok, this works, but here I'm running "configure" and "make" by hand. # How can I make "debian/rules" do that for me, and generate a # package? Would dpkg-buildpackage work for that? The naive way of # running it, below, breaks in the "./configure" stage; maybe there's # some parameter missing. # (find-gnumachfile "debian/") # (find-gnumachfile "debian/rules") #* rm -Rv /usr/src/gnumach-1.2/ cd /usr/src/ dpkg-source -sn -x $SDEBIAN/dists/woody/main/source/base/gnumach_1.2-7.dsc cd /usr/src/gnumach-1.2/ dpkg-buildpackage -ahurd-i386 |& tee odbp cp -v odbp ~/tmp/gnumach-odbp #* # (find-fline "~/tmp/gnumach-odbp") # (find-fline "~/tmp/gnumach-odbp" "`hurd-i386-unknown' not recognized") # (find-fline "~/tmp/gnumach-oc") # (find-fline "~/tmp/gnumach-om") # (find-fline "~/tmp/gnumach-om2") # (code-c-d "gnumach" "/usr/src/gnumach-1.2/") # (find-gnumachfile "") # (find-gnumachfile "debian/") # (find-gnumachfile "NEWS") # (find-gnumachfile "README") # (find-gnumachfile "i386/") # (find-gnumachfile "i386/README-Drivers") dpkg-architecture -ahurd-i386 #* pdsc $SDEBIAN/dists/woody/main/source/base/hurd_20001030.dsc cd /usr/src/hurd-20001030/ DEB_BUILD_ARCH=i386 \ DEB_BUILD_GNU_CPU=i386 \ DEB_BUILD_GNU_SYSTEM=linux \ DEB_BUILD_GNU_TYPE=i386-linux \ DEB_HOST_ARCH=hurd-i386 \ DEB_HOST_GNU_CPU=i386 \ DEB_HOST_GNU_SYSTEM=gnu \ DEB_HOST_GNU_TYPE=i386-gnu \ debian/rules binary |& tee odrb #* dpkg-buildpackage -ahurd-i386 will set them for you. ##### # # the hurd: recompiling from Linux # 2000sep15 # ##### #* pdsc $SDEBIAN/dists/woody/main/source/base/hurd_20001030.dsc cd /usr/src/hurd-20001030/ dpkg-buildpackage -ahurd-i386 |& tee odb #* # Oops, not so easy... # (find-hurdfile "") # (find-hurdfile "INSTALL") # (find-hurdfile "INSTALL-cross") # (find-hurdfile "debian/") # (find-hurdfile "debian/rules") # This is just a quick way to test architecture names: # (eeman "dpkg-buildpackage" "-aarchitecture") # (find-fline "/usr/bin/dpkg-buildpackage") # (find-fline "/usr/bin/dpkg-architecture" "hurd") #* pdsc $SDEBIAN/dists/woody/main/source/x11/bdfresize_1.4-1.dsc cd /usr/src/bdfresize-1.4/ dpkg-buildpackage -ahurd-i386 #* ##### # # The Hurd: kernel # 2000may25 # ##### # (find-fline "$SDEBIAN/ls-lR.i" "potato/main/source/base/hurd_") # (find-fline "$SDEBIAN/ls-lR.i" "woody/main/source/base/hurd_") # (code-c-d "hurd" "/usr/src/hurd-20000726/") # (code-c-d "gnumach" "/usr/src/gnumach-1.2/") # (code-c-d "grub" "/usr/src/grub-0.5.93.1/") #* # pdsc $SDEBIAN/dists/woody/main/source/base/hurd_20000130.dsc # cd /usr/src/hurd-20000130/ pdsc $SDEBIAN/dists/woody/main/source/base/hurd_20000726.dsc cd /usr/src/hurd-20000726/ DEB_BUILD_GNU_TYPE=i386-pc-linux-gnu \ DEB_HOST_GNU_TYPE=i386-gnu \ debian/rules binary |& tee odrb2 #* # (find-hurdfile "odrb2") # (find-hurdfile "pfinet/linux-inet/ip.c") # (find-hurdfile "pfinet/linux-inet/ip.c" 523) # (find-hurdfile "pfinet/linux-inet/ip.c" 532) # (find-hurdfile "pfinet/linux-inet/ip.c" 542) # Seems that "dpkg-buildpackage -ahurd-i386" should work, but it # doesn't... # (find-hurdfile "doc/") # (find-hurdfile "doc/navigating") # (find-hurdfile "doc/hurd.texi" "libtrivfs") # (find-gvldifile "") # (find-gstatus "libc0.2") # (find-fline "/gnu/usr/info/" "hurd.info") # (find-vldifile "m4.postinst") # (find-fline "/usr/sbin/install-info") # (eeman "8 install-info") ##### # # Installing the Hurd docs on Linux # 2000jul29 # ##### # (find-gvldifile "hurd.postinst" "install-info") rm -v /usr/info/hurd.info* cd /gnu/usr/info/ cp -v hurd.info*.gz /usr/info/ install-info --quiet --section "Hurd" "The Hurd" /usr/info/hurd.info.gz #* # Or: # (find-hurdfile "doc/") # (find-hurdfile "doc/Makefile") # (find-node "(make)Quick Reference" "`$(@D)'") # (find-hurdfile "doc/Makefile" "stamp-version") # (find-hurdfile "Makeconf" "hurd-version") cd /usr/src/hurd-20000726/doc/ rm -v hurd.info* echo '@set VERSION 0.2' > version.texi echo '@set VERSION 0.2' > version.texi.new makeinfo hurd.texi gzip hurd.info* rm -v /usr/info/hurd.info* cp -v hurd.info* /usr/info/ #* # (find-hurdfile "odrb2") # (find-hurdnode "Top" "Server Bootstrap\n") # (find-hurdnode "Recursive Bootstrap" "`reboot'") # (find-hurdnode "Trivfs Library") #* echo | sendemail -s 'subscribe edrx@inx.com.br' \ help-hurd-request@prep.ai.mit.edu ##### # # Running apt on the Hurd from Linux, using a special apt.conf # 2001nov22 # ##### # «fromlinux-apt.conf» (to ".fromlinux-apt.conf") # (find-deblistsw3 "debian-hurd/2001/debian-hurd-200111/msg00078.html") lynx http://lists.debian.org/debian-hurd/2001/debian-hurd-200111/msg00078.html # I am almost sure that this needs a recent version of apt to run # (e.g. a woody box). ##### # # chroot emptyhurd: using another apt.conf (does not work very well) # 2001aug15 # ##### # «emptyhurd_apt.conf» (to ".emptyhurd_apt.conf") # (find-angg ".zshrc" "hurd") # (find-angg "LUA/emptydeb.lua" "e-scripts") #* # Download the Packages files. # (find-angg ".zshrc" "hurd") # (find-fline "$SSIDMB/Packages") psne $FSIDMB/Packages.gz cd $SSIDMB/ mv -iv Packages.gz.1 Packages.gz zcat Packages.gz > Packages; touch -r Packages.gz Packages psne $FALPHASIDMB/Packages.gz cd $SALPHASIDMB/ mv -iv Packages.gz.1 Packages.gz zcat Packages.gz > Packages; touch -r Packages.gz Packages #* psne $FDEBIAN/dists/sid/Contents-hurd-i386.gz # Prepare a fake environment in /tmp/EH/ where apt will think that # there are no packages (except for libc6, that will have to be hacked # in by force); the architecture for apt will be set to hurd-i386 and # sources.list will point to the "main" hurd section of ftp.debian.org # and to the alpha.gnu.org repository. # (find-man "5 apt.conf") # (find-man "8 apt-get" "--config-file") # (find-fline "/usr/doc/apt/examples/configure-index.gz" " Architecture") # (find-fline "/usr/doc/apt/examples/configure-index.gz" "// Directory layout") rm -Rv /tmp/EH/ mkdir /tmp/EH/ cd /tmp/EH/ && ( # Start of the "cd /tmp/EH/ &&" block mkdir -p etc/apt/ cat > etc/apt/sources.list <<'---' deb file:/snarf/ftp/ftp.debian.org/debian sid main deb file:/snarf/ftp/alpha.gnu.org/pub/gnu/hurd/debian unstable main --- cat > etc/apt/apt.conf <<'---' APT::Architecture "hurd-i386"; Dir::State "/tmp/EH/var/state/apt/"; Dir::State::status "/tmp/EH/var/lib/dpkg/status"; Dir::Cache "/tmp/EH/var/cache/apt/"; Dir::Etc "/tmp/EH/etc/apt/"; Dir::Etc::sourcelist "/tmp/EH/etc/apt/sources.list"; Dir::Etc::main "/tmp/EH/etc/apt/apt.conf"; --- mkdir -p var/cache/apt/archives/partial/ mkdir -p var/lib/dpkg/ ( cd var/lib/dpkg/ mkdir -p alternatives info updates methods/{mnt,disk,floppy} echo -e "Package: libc6\nStatus: install ok installed\nVersion: 9:9\n" \ > status touch available ) mkdir -p var/state/apt/lists/partial/ # End of the "cd /tmp/EH/ &&" block ) #:* rm -Rv /tmp/EH/var/lib/dpkg/ cd /gnu/ cp -aPv var/lib/dpkg/ /tmp/EH/ #* # Now for something more aggressive... We want to make apt say which # extra packages to download, but if we have just untarred the tarball # and we haven't run "native-install" on the Hurd yet then apt will # complain about unconfigured packages; we will play a trick to make # it think that all packages in /tmp/EH/ were configured. cd /tmp/EH/var/lib/dpkg/ if [ ! -e status.orig ]; then cp -v status status.orig; fi sed 's/Status: install ok .*/Status: install ok installed/g' \ < status.orig > status.new mv -v status.new status #* # Status: install ok installed # cd /tmp/EH/var/lib/dpkg/info/ && ( # for i in *.preinst *.postinst *.prerm *.postrm; do # echo $i; echo '#!/bin/sh' > $i; chmod 755 $i # done # ) # (find-fline "/gnu/") # (find-fline "/gnu/native-install") # (find-fline "/tmp/EH/var/lib/dpkg/") # (find-fline "/var/lib/dpkg/status") alias APT-GET="LD_LIBRARY_PATH=/usr/src/apt-0.5.3/build/bin: \ /usr/src/apt-0.5.3/build/bin/apt-get -c /tmp/EH/etc/apt/apt.conf" APT-GET -f install #* # Run apt-get on the new environment and tell it to install the base # packages and a few extras; but make it just print the URIs and do # nothing concrete. We will use the list of URIs that it will spit out # to generate a list of URLs of .debs to download. # # Note: I'm using a recent apt-get because potato's version of apt-get # insists on using /etc/apt/source.list. # # (to "emptyhurd_newapt") alias APT-GET="LD_LIBRARY_PATH=/usr/src/apt-0.5.3/build/bin: \ /usr/src/apt-0.5.3/build/bin/apt-get -c /tmp/EH/etc/apt/apt.conf" APT-GET -f install APT-GET update APT-GET --print-uris --download-only -y install \ base-files base-passwd bash bsdutils debianutils diff dpkg e2fsprogs \ fileutils findutils grep gzip hostname hurd ncurses-base ncurses-bin \ perl-base sed shellutils tar textutils \ \ dpkg-dev build-essential screen emacs20 expect tcl8.3 zsh30 \ | tee ~/o # (find-fline "~/o") #* # Process the output of "APT-GET --print-uris" to get a sequence of # download commands. # cat ~/o | grep "^'" | awk '{print $1}' | cut -b18- | tr -d "'" | tee ~/o2 cat ~/o2 | awk '{printf "psne ftp://%s -c\n", $1}' | tee ~/o3 sed 's,ftp://ftp.debian.org/debian,$FDEBIAN_SF,g' < ~/o3 | tee ~/o4 cp ~/o2 ~/tmp/hurd-debs #* # (find-fline "~/o2") # (find-fline "~/tmp/hurd-debs") # (find-fline "~/o3") # (find-fline "~/o4") rm -Rv /tmp/hurd-easy/ mkdir /tmp/hurd-easy/ for i in $(cat ~/tmp/hurd-debs); do cp -v $S/ftp/$i /tmp/hurd-easy/ done #* ##### # # chroot emptyhurd: trying to use the newest versions of dpkg and apt # 2001aug07 # ##### # (code-c-d "dpkg" "/usr/src/dpkg-1.9.16/") # (code-c-d "apt" "/usr/src/apt-0.5.3/") # (find-dpkgfile "") # (find-dpkgfile "debian/") # (find-dpkgfile "debian/control") # (find-aptfile "") # (find-aptfile "debian/control") #* # «emptyhurd_newdpkg» (to ".emptyhurd_newdpkg") pdsc $SDEBIAN/pool/main/d/dpkg/dpkg_1.9.16.dsc debian/rules binary |& tee odrb #* # «emptyhurd_newapt» (to ".emptyhurd_newapt") pdsc $SDEBIAN/pool/main/a/apt/apt_0.5.3.dsc cd /usr/src/apt-0.5.3/ find * | sort > .files egrep '\.(c|cc|h)$' .files > .files.ch etags $(<.files.ch) debian/rules binary |& tee odrb #* cd /usr/src/ ls *apt*deb ls *dpkg*deb #* ##### # # Mattew Vernon's "The easy guide to installing Hurd on a Linux box" # 2000jul01 # ##### # «hurd-install-easy» (to ".hurd-install-easy") # (find-shttpw3 "www.pick.ucam.org/~mcv21/hurd.html") # (find-shttpw3 "www.gnu.org/software/hurd/easy.html") # Convert easy.html to a txt that we can link to more easily: lynx $S/http/www.gnu.org/software/hurd/easy.html -dump > ~/tmp/hurd-easy.txt # Or execute this... lynx $S/http/www.gnu.org/software/hurd/easy.html # (find-fline "~/tmp/hurd-easy.txt") # (find-fline "~/tmp/hurd-easy.txt" "the packages you need") # (find-fline "~/tmp/hurd-easy.txt" "chmod +x cross-install") # (find-fline "~/tmp/hurd-easy.txt" "untar the tarball") #* # «mke2fs» (to ".mke2fs") # Format a partition with "-o hurd". # (find-fline "~/tmp/hurd-easy.txt" "mke2fs -o") # I'm using /dev/hda2 as my Hurd partition. # Beware: currently Hurd can only use partitions with less that 1GB. # (find-fline "/etc/fstab" "/gnu") # /dev/hda2 /gnu ext2 defaults 0 2 # Prepare to clean it... umount /gnu # If it doesn't have bad blocks (i.e., if "dumpe2fs -b" outputs # nothing) then it should be safe to omit the "-c" in mke2fs. dumpe2fs -b /dev/hda2 # Now sparse_super is the default... (to "sparse_super") # mke2fs -c -O sparse_super -o hurd /dev/hda2 # mke2fs -O sparse_super -o hurd /dev/hda2 # (find-HIGnode "Real Estate") mke2fs -o hurd /dev/hda2 mount /gnu #* # Prepare to install the base packages. # The list of packages in the version of the easy guide that I have is # slightly wrong; this one is fixed, as it was taken from the # "cross-install" script itself. # (find-fline "~/tmp/hurd-easy.txt" "the packages you need") # (find-fline "$S/http/www.debian.org/ports/hurd/extra-files/") # (find-fline "$S/http/www.debian.org/ports/hurd/extra-files/cross-install" "plist=") # Detect which packages are missing and which have many versions # (find-fline "$SDEBIAN/dists/sid/main/binary-hurd-i386/") plist=(adduser ae base-files base-passwd bash bsdutils debconf libterm-stool-perl libterm-slang-perl debianutils diff dpkg-ftp dpkg-mountable dpkg e2fsprogs fileutils findutils gettext-base gnumach grep grub gzip hostname hurd inetutils libc0.2 libgdbmg1 libncurses5 libnet-perl libreadline4 libstdc++2.10 libwrap0 mawk ncurses-base ncurses-bin passwd libdb2 perl-base perl perl-modules sed shellutils slang1 syslogd tar tcpd textutils libncurses4 less ed) # For repeated packages the "echo" in the loop below will give two or # more package names in the same line; for the missing packages we # should get some sort of globbing error from the shell. cd $SDEBIAN/dists/sid/main/binary-hurd-i386/ for i in $plist; do echo */${i}_* done #* # To get the missing packages do something like this: # cd $SDEBIAN/dists/sid/main/binary-hurd-i386/ # anonftp $FDEBIAN/dists/sid/main/binary-hurd-i386/ \ # 'mget base/dpkg-ftp_*' \ # 'mget base/libwrap0_*' \ # ... # Here I'm using my "anonftp" script, but it should be trivial to # change that to something more standard; wget's manpage says that it # can deal with "*"s in file names, but I have never tried that... # (find-fline "~/EXPECT/anonftp") #* # Note that in this block we need the variable "plist" defined above. rm -Rv /tmp/hurd-easy/ mkdir /tmp/hurd-easy/ # cd $SDEBIAN/dists/sid/main/binary-hurd-i386/ # for i in $plist; do # cp -v ${i}_* /tmp/hurd-easy/ # done # for i in $(cat ~/tmp/hurd-debs); do cp -v $S/ftp/$i /tmp/hurd-easy/ done mkdir /tmp/hurd-easy/partial/ # cp -v $SSIDMB/Packages.gz /tmp/hurd-easy/partial/ cd /tmp/hurd-easy/ dpkg-scanpackages . /dev/null > partial/Packages gzip -c6 < partial/Packages > partial/Packages.gz cd $S/http/www.debian.org/ports/hurd/extra-files/ for i in cross-install native-install dpkg-hurd; do cp -v $i /tmp/hurd-easy/$i chmod +x /tmp/hurd-easy/$i done patch -p0 cross-install <<'%%%' 142c142 < dpkg-mountable dpkg e2fsprogs --- > apt dpkg e2fsprogs %%% # (find-fline "~/tmp/hurd-easy.txt" "chmod +x cross-install") # (find-fline "/tmp/hurd-easy/cross-install" "# CONFIGURATION") # umount /dev/hda2 mount /dev/hda2 /hda2 cd /tmp/hurd-easy/ ./cross-install /gnu |& tee ~/tmp/ohurd-easy #* cp -v /tmp/hurd-easy/install.log ~/tmp/ohurd-easy.install.log # (find-fline "/tmp/hurd-easy/") # (find-fline "/tmp/hurd-easy/cross-install") # (find-fline "/tmp/hurd-easy/cross-install" "Installing necessary packages") # (find-fline "/tmp/hurd-easy/cross-install" "cross_install() {") # (find-fline "~/tmp/ohurd-easy") # (find-fline "~/tmp/ohurd-easy.install.log") # (find-fline "/tmp/hurd-easy/cross-install" "Installing necessary packages,") # Note that ~/tmp/ohurd-easy.install.log will now contains a series of # dpkg-hurd errors and warnings that the cross-install script will # ignore if they match a certain regexp: # (find-fline "/tmp/hurd-easy/cross-install" "Installing necessary packages,") # (find-fline "/tmp/hurd-easy/cross-install" "errors=`grep -v 'trying to") #* sort ~/tmp/ohurd-easy.install.log #* # (find-fline "~/tmp/hurd-easy.txt" "single-user") # (find-fline "~/tmp/hurd-easy.txt" "./native-install") # (find-fline "/gnu/native-install") # (find-fline "/gnu/") # I haven't tested the stuff below for a while. I gave up running the # MAKEDEVs because I couldn't mount my usual Linux home partition from # the Hurd (because it's >1GB, it seems), and if it's just a matter of # remembering to do a "./native-install" after the first boot then I # can do it without auxiliary scripts. I'll test this again when I # have moved my /home to another partition. cat > /gnu/tmp1.sh <<'---' # source me after running native-install! set -v #./native-install export TERM=mach cd /dev ls > /tmp/olsdev ./MAKEDEV hd0 ./MAKEDEV hd0s1 hd0s2 hd0s3 hd0s5 hd0s6 ./MAKEDEV hd2 ./MAKEDEV hd2s1 hd2s2 hd2s5 hd2s6 ./MAKEDEV hd3 ./MAKEDEV hd3s1 hd3s2 hd3s5 hd3s6 hd3s8 ./MAKEDEV fd0 ls -lAF cd / # (find-fline "~/tmp/hurd-easy.txt" "settrans /linux") mkdir /hdd8 #settrans /hdd8 /hurd/ext2fs /dev/hd3s8 # Didn't work because /dev/hdd8 was too large (>1GB)... # /sbin/reboot set +v --- #* # Now we have to install Grub to boot the Hurd. # But I moved my Grub notes to another file... # (find-es "grub" "grub") # Problems: kbleds and shift in the first boot; the translator I # called to handle the linux partition complained about bad partition # sizes (mm, it was the 1GB problem). ##### # # Adding more packages to make the Hurd usable # 2000sep08 # ##### # «updating_hurd_debs» (to ".updating_hurd_debs") # Note that the difficult part here is to install new .debs on the # Hurd from Linux without resorting to updating the "oplist" variable # in the "cross-install" script and reinstalling everything again... # If this works then it will become slightly easier to cross-compile # .debs in Linux and install them on the Hurd. # Note also that the following message from Igor Khavkine gives a # script to download with wget the missing files: # (find-deblistsw3 "debian-hurd-0007/msg00151.html") # Oops - it seems that the usual install scripts are able to do that # also, but I haven't used this feature (33.6KBPS modem -> can't take # many risks). # (find-node "(wget)FTP Options" "`--retr-symlinks'") # I'm still using an "anonftp"-based solution for that; see above. #cd $SSIDMB #anonftp $FSIDMB \ # 'mget devel/libncurses5-dev_*' \ # 'mget text/texinfo_*' \ # 'mget text/texi2html_*' \ # quit # (find-angg ".zshrc" "hurd") # (find-fline "/tmp/hurd-easy/cross-install" "${dpkghurd} --unpack") #* ( cd $SSIDMB dpkgihurd \ utils/bsdmainutils_* \ editors/emacsen-common_* \ editors/emacs20_* \ cd $SSIDMB dpkgihurd \ doc/info_* \ doc/pinfo_* \ cd $SSIDMB dpkgihurd \ libs/libdb2_* \ text/groff_* \ doc/man-db_* \ doc/manpages_* \ cd $SSIDMB dpkgihurd \ misc/screen_* \ cd $SSIDMB dpkgihurd \ interpreters/cpp_* \ devel/binutils_* \ devel/gcc_* \ cd $SSIDMB dpkgihurd \ utils/file_* \ utils/patch_* \ devel/bison_* \ devel/make_* \ cd $SSIDMB dpkgihurd \ interpreters/m4_* \ devel/autoconf_* \ devel/automake_* \ cd $SSIDMB dpkgihurd \ devel/debhelper_* \ utils/cpio_* \ cd $SSIDMB dpkgihurd \ utils/sharutils_* \ libs/libbz2_* \ utils/bzip2_* \ devel/dpkg-awk_* \ cd $SSIDMB dpkgihurd \ devel/libstdc++2.9-dev_* \ devel/g++_* \ cd $SSIDMB dpkgihurd \ devel/gnumach-dev_* \ devel/hurd-dev_* \ devel/libc0.2-dev_* \ devel/mig_* \ devel/dpkg-hurd-dev_* \ devel/libstdc++2.9-dev_* \ cd $SSIDMB dpkgihurd \ devel/gdb_* \ cd $SSIDMB dpkgihurd \ devel/libncurses5-dev_* \ text/texinfo_* \ text/texi2html_* \ ) |& tee ~/o # # The messages that don't get filtered off by the grep below are errors. # (find-fline "/tmp/hurd-easy/cross-install" "errors=`grep -v 'trying to") # grep -v 'trying to overwrite\|but is unpacked but not configured\|Preparing to replace\|Unpacking\|pre-dependency problem\|Selecting previously deselected package\|pre-depends on\|overriding problem because --force enabled\|(Reading database ...\| package architecture (hurd-i386) does not match system\|is not installed.\|but has never been configured.\|dpkg-deb: building package' ~/o #* # (find-gvldifile "") # (find-gstatus "") # (find-status "make") # (find-angg ".zshrc" "hurd") # (find-fline "/gnu/dpkg-hurd") # (find-fline "/gnu/") #* ##### # # Downloading new versions of Hurd .debs # 2000aug10 # ##### # I know that there are some more standard ways to do that, but I # haven't learned them yet, and the trick of storing lists as Python # code is very neat... note: even with the nice trick this is VERY # messy and depends on other misterious tricks that I use (ls-lR.i). # You have been warned. # (find-es "debian-net" "ls-lR.i") # (find-fline "$SDEBIAN/ls-lR.i.hurd") #* (echo 'updict = {' grep binary-hurd-i386 $SDEBIAN/ls-lR.i.hurd \ | perl -nle 'm:^[ 0-9]+[^ ]+hurd-i386/([^ ]+)(| ->.*)$: && print $1' \ | perl -nle 'm:^([^_]+)_(.+)$: && print " \"$1\": \"$2\","' echo '}' ) > /tmp/updict.py (echo 'heredict = {' cd $SSIDMB find * -type f | sort \ | perl -nle 'm:^([^_]+)_(.+)$: && print " \"$1\": \"$2\","' echo '}' ) > /tmp/heredict.py python -c ' execfile("/tmp/heredict.py") execfile("/tmp/updict.py") for pkgname in heredict.keys(): upv = updict[pkgname] herev = heredict[pkgname] if upv != herev: print pkgname, herev, upv ' | sort \ | tee /tmp/hurd-changes # Then we do something with /tmp/hurd-changes, possibly by awking it, # then editing the result and then sh'ing or eev'ing it. awk '{ print $1 "_" $3 }' < /tmp/hurd-changes #* ##### # # The web-hurd mailing list # 2000sep15 # ##### echo subscribe | sendemail -s 'subscribe' \ web-hurd-request@gnu.org echo 'confirm 767836' | sendemail \ web-hurd-request@gnu.org # (find-shttpw3 "mail.gnu.org/pipermail/web-hurd/") # (find-shttpw3 "mail.gnu.org/pipermail/web-hurd/2000-September.txt") # (find-shttpw3 "mail.gnu.org/pipermail/web-hurd/2000-August.txt") # (find-shttpw3 "mail.gnu.org/pipermail/web-hurd/1998-June.txt") #* cd $S/http/mail.gnu.org/pipermail/web-hurd/ cat 1998-June.txt \ 2000-August.txt \ 2000-September.txt \ > /tmp/w-h.txt mutt -R -f /tmp/w-h.txt #* ##### # # dpkg-cross # 2000jun17 # ##### # «dpkg-cross» (to ".dpkg-cross") # (find-status "dpkg-cross") # (find-vldifile "dpkg-cross.list") # (find-fline "/usr/doc/dpkg-cross/") # (code-c-d "dcrossdoc" "/usr/doc/dpkg-cross/") # (find-dcrossdocfile "README.Debian.gz" "Hurd") # (find-dcrossdocfile "README.Debian.gz" "dpkg-buildpackage -ahurd-i386") # (find-fline "/etc/dpkg/cross-compile" "crossroot-hurd-i386 = /gnu") # (find-vldifile "dpkg-cross.preinst" "dpkg-divert") # (find-vldifile "dpkg-cross.postinst") # (find-vldifile "dpkg-cross.prerm") # (find-vldifile "dpkg-cross.postrm" "dpkg-divert") # (find-fline "/usr/bin/dpkg-cross") # (find-fline "/usr/bin/dpkg-shlibdeps") # (find-fline "/usr/bin/dpkg-cross-convert") # (find-dcrossdocfile "") # (find-dcrossdocfile "changelog.gz") # (find-dcrossdocfile "copyright") # (find-dcrossdocfile "README.Debian.gz") # (find-dcrossdocfile "README.Debian.gz" "dpkg-divert") # (find-dcrossdocfile "README.Debian.gz" "Ok, to summarize:") # (find-dcrossdocfile "README.Debian.gz" "2) dpkg-cross") # (find-dcrossdocfile "README.Debian.gz" "3) dpkg-buildpackage") # (find-fline "/usr/bin/dpkg-buildpackage") # (find-fline "/usr/bin/dpkg-buildpackage.orig") # (eeman "1 dpkg-cross") # (eeman "1 dpkg-cross-convert") # (eeman "5 cross-compile") # (find-fline "/etc/dpkg/") # (find-fline "/etc/dpkg/cross-compile" "crossroot-hurd-i386 = /gnu") # ? ##### # # The help-hurd list # 2000jul27 # ##### # «help-hurd» (to ".help-hurd") # (find-hurdfile "INSTALL" "help-hurd-request@prep.ai.mit.edu") # (code-c-d "gnulists" "$S/http/ftp-mailing-list-archives.gnu.org/") # (find-gnulistsfile "mailing-lists/help-hurd/") mkdir /tmp/help-hurd/ cp -iv $S/http/ftp-mailing-list-archives.gnu.org/mailing-lists/help-hurd/* \ /tmp/help-hurd/ cd /tmp/help-hurd/ gzip -dv *.gz # Then we can run grep and mutt on the resulting files... ##### # # # ##### # (find-hurdfile "doc/navigating") http://john-edwin-tobey.org/Hurd/ lynx http://john-edwin-tobey.org/Hurd/ # (find-hurdfile "") # (find-hurdfile "odrb") # (find-hurdfile "debian/rules") # (find-hurdfile "debian/rules" "configure --build=") # (find-hurdfile "debian/rules" "DEB_BUILD_GNU_TYPE") pdsc $SDEBIAN/dists/potato/main/source/base/gnumach_1.2-2.dsc pdsc $SDEBIAN/dists/potato/main/source/base/grub_0.5.93.1.dsc # (find-hurdfile "") # (find-gnumachfile "") # (find-grubfile "") # (find-fline "$SDEBIAN/indices/Packages-Master-hurd-i386") # (find-fline "$SDEBIAN/ls-lR.i0") cd $SDEBIAN/indices/ grep-dctrl -F Description -i hurd Packages-Master-hurd-i386 ##### # # old notes about grub # 2000jul01 # ##### # The rest of this block is obsolete. # I haven't been able to configure freebsd's rootdev, # it always complains about not finding what it wants in "wd0s1`". cat > $EEG <<'---' debug cat (hd2,2,a)/.cshrc cat (hd2,a)/COPYRIGHT testload (hd2,a)/kernel testload (hd1,a)/kernel testload (hd3,a)/kernel testload (hd0,0)/boot/grub/freebsdkernel quit --- eeg grub #* # Not evident from the documentation: "install" takes the file like # menu.lst from the current filesystem? And where does it put it? # (eeman "8 grub") # (find-node "(grub)Top") # (find-node "(grub)Automated install" "install (hd0,1)/boot/grub/stage1") # (find-node "(grub)Installation under UNIX" "/sbin/grub --batch") # (find-fline "/usr/share/doc/grub/menu.lst") # (find-node "(grub)Commands") # (find-node "(grub)Commands" "`root DEVICE [HDBIAS]'") # (find-node "(grub)Commands" "`install ") # (find-node "(grub)Device syntax") # (find-node "(grub)Filename syntax") # (find-es "bsd" "bsd_partitions") # (find-fline "/hdd9/") # Partition check: # hda: hda1 hda2 hda3 hda4 < hda5 hda6 > # hdc: hdc1 hdc2 hdc3 hdc4 < hdc5 hdc6 > # hdd: hdd1 hdd2 hdd3! hdd4 < hdd5 hdd6 hdd7 hdd8 > < hdd9 hdd10 hdd11 hdd12 > # (find-fline "/usr/share/doc/grub/menu.lst" "# For booting FreeBSD") #* cat > $EEG <<'---' root (hd0,0) help install testload (hd0,0)/boot/grub/vmlinuz # kernel (hd0,0)/boot/grub/vmlinuz root=/dev/hdd8 vga=1 install /boot/grub/stage1 (hd0) /boot/grub/stage2 p /boot/grub/menu.lst quit --- eeg grub #* # (find-node "(multiboot)Top") # (find-node "(grub)Top") # (find-node "(grub)Boot floppy") # (find-node "(grub)Automated install") ##### # # debian-hurd@lists.debian.org # 2000jul02 # ##### # «debian-hurd» (to ".debian-hurd") # (find-shttpw3 "www.debian.org/MailingLists/subscribe" "REQUEST@") echo -n | sendemail -s 'subscribe' \ debian-hurd-REQUEST@lists.debian.org sleep 20 fetchmail # (find-fline "$MAIL") # (find-fline "$MAIL" "CONFIRM s070222374727926") echo -n | sendemail -s 'CONFIRM s110409042430705' \ debian-hurd-request@lists.debian.org sleep 20 fetchmail ##### # # mig # 2000jul20 # ##### # (find-status "mig-i386-gnu") # (find-vldifile "mig-i386-gnu.list") # (find-fline "/usr/doc/mig-i386-gnu/") # (find-fline "/usr/bin/i386-gnu-mig") # (find-fline "/usr/i386-gnu/") # (find-fline "/usr/i386-gnu/bin/mig") # (find-status "gcc-i386-gnu") # (find-vldifile "gcc-i386-gnu.list") # (find-vldifile "" "gcc-i386-gnu.list") # (find-fline "/usr/doc/gcc-i386-gnu/") # (find-fline "/usr/lib/gcc-lib/") # (find-fline "/usr/lib/gcc-lib/i386-gnu/2.95.2/") # (find-fline "$SDEBIAN/ls-lR.i" "make-cross") ##### # # colortext-0.3 # 2000jul27 # ##### # «colortext» (to ".colortext") # (code-c-d "ct" "/gnu/usr/src/colortext-0.3/") #* rm -Rv /gnu/usr/src/colortext-0.3/ cd /gnu/usr/src/ tar -xvzf $S/http/stekt.oulu.fi/~tosi/gnu/colortext-0.3.tar.gz cd /gnu/usr/src/colortext-0.3/ #* # (find-ctfile "") # (find-ctfile "README") ##### # # Copying my home stuff to my Hurd # 2001may19 # ##### # «edrx_hurd» (to ".edrx_hurd") # (find-es "escripts" "copy_of_edrxs_home") #* rm -Rv /gnu/root/.* rm -Rv /gnu/root/* #* makeLedrxtgz cp -v ~/TH/L/edrx.tgz /gnu/root/ cd /gnu/root/ tar -xvzf edrx.tgz #* ##### # # procfs # ##### #* rm -Rv /gnu/usr/src/procfs/ cd /gnu/usr/src/ tar -xvzf $S/ftp/walfield.org/pub/people/neal/hurd/procfs/procfs-03022000.tar.gz cd /gnu/usr/src/procfs/ #* "Luckily, gdb can be attached to the Hurd servers, and so you can easily debug them." ##### # # the hurd logo in metafont format # 2000dec12 # ##### # «hurd_logo_mf» (to ".hurd_logo_mf") # (find-fline "$S/http/www.gnu.org/graphics/hurd.mf") # (find-es "tex" "docs") # About the \font command: xdvi +445 $SCTAN/systems/knuth/tex/texbook.dvi & #* cd /tmp/ rm -v hurd* cp -v $S/http/www.gnu.org/graphics/hurd.mf . patch -p0 hurd.mf <<'%%%' 3c3 < mode=localfont; --- > %mode=localfont; %%% cat > hurdlogo.tex <<'---' \nopagenumbers \font\hurdfont=hurd at 400pt \font\hurdfontbig=hurd at 1600pt {\par \hurdfontbig \#} \hurdfont \par GNU \par HURD \bye --- tex hurdlogo.tex #xdvi hurdlogo.dvi & rexdvi hurdlogo.dvi & #* Suggestions for a FAQ: Explain how to shut down Point to minimal installation instructions Tell more about the keyboard problem on the first installation VTs, colorterm, basic course on "screen" How to debug a second Hurd on top of a running Hurd # (find-fline "$SPOTATO/main/source/devel/" "mig") # (code-c-d "mig" "/usr/src/mig-1.1/") # (find-migfile "") pdsc $SDEBIAN/dists/woody/main/source/devel/mig_1.1-1.dsc cd /usr/src/mig-1.1/ pdsc $SDEBIAN/dists/potato/main/source/devel/mig_1.0.2-1.dsc pdsc $SDEBIAN/dists/potato/main/source/devel/mig-i386-gnu_1.0-2.dsc anonftp ftp://ftp.debian.org/debian/ \ 'mget dists/sid/main/binary-hurd-i386/editors/emacs20_*' \ 'quit' cd $SDEBIAN/dists/sid/main/binary-hurd-i386/editors/ wget ftp://nautilus/tmp/dists/sid/main/binary-hurd-i386/editors/emacs20_20.3-5.deb inx-down # (find-status "emacs20") # (find-node "(/hdc5/info/hurd)Top") # (find-fline "$S/http/www.debian.org/ports/hurd/extra-files/") # (find-shttpw3 "www.gnu.org/software/hurd/easy.html" "chmod +x cross-install") # (find-shttpw3 "www.gnu.org/software/hurd/easy.html" "shadowconfig off") # (find-shttpw3 "hurddocs.sourceforge.net/howto/development.html") # (find-shttpw3 "duff.kuicr.kyoto-u.ac.jp/~okuji/") # (find-shttpw3 "f77.nop.or.jp/") # (find-shttpw3 "f77.nop.or.jp/doc/XFree86-3.3.3.1.html") # (find-shttpw3 "kt.linuxcare.com/KC/debian-hurd/") # (find-shttpw3 "members.xoom.com/_XMCM/mseaborn/comp/wishlist.html") # (find-shttpw3 "www.debian.org/Lists-Archives/debian-hurd-0006/threads.html") # (find-shttpw3 "www.debian.org/ports/hurd/hurd-doc") # (find-shttpw3 "www.debian.org/ports/hurd/hurd-install") # (find-shttpw3 "www.gnu.org/software/hurd/") # (find-shttpw3 "www.gnu.org/software/hurd/easy.html") # (find-shttpw3 "www.gnu.org/software/hurd/faq/faq-1.html") # (find-shttpw3 "www.gnu.org/software/hurd/faq/faq-2.html") # (find-shttpw3 "www.gnu.org/software/hurd/faq/faq-3.html") # (find-shttpw3 "www.gnu.org/software/hurd/faq/faq-4.html") # (find-shttpw3 "www.gnu.org/software/hurd/faq/faq-5.html") # (find-shttpw3 "www.gnu.org/software/hurd/faq/faq-6.html") # (find-shttpw3 "www.gnu.org/software/hurd/faq/faq-7.html") # (find-shttpw3 "www.gnu.org/software/hurd/faq/faq.html") # (find-shttpw3 "www.gnu.org/software/hurd/hurd-paper.html") # (find-shttpw3 "www.memo.cx/gnuhurdguide/") # (find-shttpw3 "www.memo.cx/gnuhurdguide/hguide1.html") # (find-shttpw3 "www.pick.ucam.org/~mcv21/hurd.html") # (find-shttpw3 "www.serv.net/~sand/hurd/console.html") # (find-shttpw3 "www.serv.net/~sand/hurd/e2fsck.html") # (find-shttpw3 "www.serv.net/~sand/hurd/install.html") ##### # # messy notes about testing cross-install with a local deb repository # 2000dec17 # ##### # «cross-install_localrep» (to ".cross-install_localrep") # Examples (from kov?): # ./cross_install --download ftp.debian.org /hurd # ./cross-install --download http://127.0.0.1/ /hurd # Warning: this block is not working well. rm -Rv /tmp/hurd-easy/ mkdir /tmp/hurd-easy/ cd $SDEBIAN/dists/sid/main/binary-hurd-i386/ for i in $plist; do cp -v ${i}_* /tmp/hurd-easy/ done #* # (find-es "apt" "rebuilding-the-Packages-file") cd $SDEBIAN/ (dpkg-scanpackages dists/sid/main/binary-hurd-i386 /dev/null \ > dists/sid/main/binary-hurd-i386/Packages ) |& tee ~/o cd $SDEBIAN/dists/sid/main/binary-hurd-i386/ gzip -c9 < Packages > Packages.gz #* rm -Rv /tmp/hurd-easy/ mkdir /tmp/hurd-easy/ rm -Rv /tmp/gnu/ mkdir /tmp/gnu/ mkdir /tmp/gnu/lost+found/ cd $S/http/www.debian.org/ports/hurd/extra-files/ for i in cross-install native-install dpkg-hurd; do cp -v $i /tmp/hurd-easy/$i chmod +x /tmp/hurd-easy/$i done # (find-fline "~/tmp/hurd-easy.txt" "chmod +x cross-install") # (find-fline "/tmp/hurd-easy/cross-install" "# CONFIGURATION") # (find-fline "/tmp/hurd-easy/cross-install" "wget") cd /tmp/hurd-easy/ ./cross-install --download http://127.0.0.1/debian/ /tmp/gnu \ |& tee ~/tmp/ohurd-easy #* cp -v /tmp/hurd-easy/install.log ~/tmp/ohurd-easy.install.log #* # (find-fline "/tmp/hurd-easy/partial/Packages.gz") zcat /tmp/hurd-easy/partial/Packages.gz | awk -vp=libreadline4 ' BEGIN { print p } $0 ~ "^Package:" { package = $2 } $0 ~ "^Filename:" && p == package { print $2 }' #* cd $SSIDMB anonftp $FSIDMB \ 'mget base/libreadline4_*' \ quit lynx http://127.0.0.1/debian/dists/sid/main/binary-hurd-i386/ psne http://www.debian.org/ports/hurd/extra-files/cross-install ##### # # Making a template from fsmunoz's page # 2000dec22 # ##### # «fsmunoz-template» (to ".fsmunoz-template") # (find-angg "TH/Htmllib.tcl" "templates") # (find-shttpfile "fsmunoz.freeshell.org/hurd/") # (find-shttpfile "fsmunoz.freeshell.org/hurd/index.html") # (find-shttpw3 "fsmunoz.freeshell.org/hurd/index.html") # (find-shttpfile "fsmunoz.freeshell.org/hurd/index.t.html") # (find-shttpw3 "fsmunoz.freeshell.org/hurd/index.t.html") # (find-shttpfile "fsmunoz.freeshell.org/hurd/index.th.html") # (find-shttpfile "fsmunoz.freeshell.org/hurd/Makefile") # (find-angg "TH/Generate") # (find-angg "TH/Htmllib.tcl" "templates") # (find-angg "TH/Htmllib.tcl") #* cp $S/http/fsmunoz.freeshell.org/hurd/index.t.html /tmp/tmpl.html expect ~/TH/Generate /tmp/o ' # debug 1 process_template [readfile /tmp/tmpl.html] puts [GRAYBAR Hello world] ' #* # (find-shttpfile "fsmunoz.freeshell.org/hurd/index.th.html") # (find-shttpfile "fsmunoz.freeshell.org/hurd/index.t.html") # (find-shttpfile "fsmunoz.freeshell.org/hurd/Makefile") cd $S/http/fsmunoz.freeshell.org/hurd/ make #* # (find-fline "$S/http/www.debian.org/ports/hurd/extra-files/cross-install" "plist=") A=(adduser ae base-files base-passwd bash bsdutils debianutils diff dpkg-ftp dpkg-mountable dpkg e2fsprogs fileutils findutils gettext-base gnumach grep grub gzip hostname hurd inetutils libc0.2 libgdbmg1 libncurses5 libnet-perl libreadline4 libstdc++2.9 libstdc++2.10 libwrap0 mawk ncurses-base ncurses-bin passwd libdb2 perl-5.005-base perl-base sed shellutils slang1 syslogd tar tcpd textutils perl-5.005 libncurses4 less ed) cd $SDEBIAN/ egrep "/($(echo $A | tr '+ ' '.|'))_" ls-lR.i.hurd \ | nolinks \ | tee ~/o #* function dl () { if [[ ! -e $SDEBIAN/$1 ]]; then echo $1; fi } set +v dl dists/sid/main/binary-hurd-i386/base/ae_962-26.deb dl dists/sid/main/binary-hurd-i386/base/base-passwd_3.2.0.deb dl dists/sid/main/binary-hurd-i386/base/bash_2.04-9.deb dl dists/sid/main/binary-hurd-i386/base/bsdutils_4.4.1.1.deb dl dists/sid/main/binary-hurd-i386/base/dpkg-mountable_0.8.deb dl dists/sid/main/binary-hurd-i386/base/dpkg_1.7.2.0.deb dl dists/sid/main/binary-hurd-i386/base/e2fsprogs_1.19-1.deb dl dists/sid/main/binary-hurd-i386/base/findutils_4.1-40.0.deb dl dists/sid/main/binary-hurd-i386/base/grep_2.4.2-1.deb dl dists/sid/main/binary-hurd-i386/base/grub_0.5.95.deb dl dists/sid/main/binary-hurd-i386/base/gzip_1.2.4-33.deb dl dists/sid/main/binary-hurd-i386/base/hostname_2.07.deb dl dists/sid/main/binary-hurd-i386/base/libc0.2_2.2-3.deb dl dists/sid/main/binary-hurd-i386/base/libncurses5_5.0-7.deb dl dists/sid/main/binary-hurd-i386/base/libstdc++2.10_2.95.2-18.deb dl dists/sid/main/binary-hurd-i386/base/libstdc++2.9_2.91.66-1.2.deb dl dists/sid/main/binary-hurd-i386/base/libwrap0_7.6-5.deb dl dists/sid/main/binary-hurd-i386/base/mawk_1.3.3-5.deb dl dists/sid/main/binary-hurd-i386/base/ncurses-bin_5.0-7.deb dl dists/sid/main/binary-hurd-i386/base/perl-5.005-base_5.005.03-7.1.deb dl dists/sid/main/binary-hurd-i386/base/sed_3.02-6.deb dl dists/sid/main/binary-hurd-i386/base/slang1_1.4.1-1.deb dl dists/sid/main/binary-hurd-i386/base/syslogd_1.3.2-9.deb dl dists/sid/main/binary-hurd-i386/base/tar_1.13.17-2.deb dl dists/sid/main/binary-hurd-i386/base/tcpd_7.6-5.deb dl dists/sid/main/binary-hurd-i386/base/textutils_2.0-3.deb dl dists/sid/main/binary-hurd-i386/editors/ed_0.2-18.deb dl dists/sid/main/binary-hurd-i386/interpreters/perl-5.005_5.005.03-7.1.deb dl dists/sid/main/binary-hurd-i386/libs/libdb2_2.7.7-2.2.deb dl dists/sid/main/binary-hurd-i386/net/inetutils_1.3.2-9.deb dl dists/sid/main/binary-hurd-i386/oldlibs/libncurses4_4.2-3.4.deb dl dists/sid/main/binary-hurd-i386/text/less_358-1.deb #* cd $SDEBIAN/ mv -v dists/sid/main/binary-hurd-i386/base/base-passwd* ~/tmp/oldhurd/ mv -v dists/sid/main/binary-hurd-i386/base/bash* ~/tmp/oldhurd/ mv -v dists/sid/main/binary-hurd-i386/base/dpkg* ~/tmp/oldhurd/ mv -v dists/sid/main/binary-hurd-i386/base/findutils* ~/tmp/oldhurd/ mv -v dists/sid/main/binary-hurd-i386/base/libc0.2* ~/tmp/oldhurd/ mv -v dists/sid/main/binary-hurd-i386/base/libncurses5* ~/tmp/oldhurd/ mv -v dists/sid/main/binary-hurd-i386/base/libstdc++2.10* ~/tmp/oldhurd/ mv -v dists/sid/main/binary-hurd-i386/base/libwrap0* ~/tmp/oldhurd/ mv -v dists/sid/main/binary-hurd-i386/base/ncurses-bin* ~/tmp/oldhurd/ mv -v dists/sid/main/binary-hurd-i386/base/tcpd* ~/tmp/oldhurd/ mv -v dists/sid/main/binary-hurd-i386/libs/libdb2* ~/tmp/oldhurd/ psnedebfrom $FDEBIAN_MAIN <<'---' dists/sid/main/binary-hurd-i386/base/base-passwd_3.2.0.deb dists/sid/main/binary-hurd-i386/base/bash_2.04-9.deb dists/sid/main/binary-hurd-i386/base/dpkg_1.7.2.0.deb dists/sid/main/binary-hurd-i386/base/findutils_4.1-40.0.deb dists/sid/main/binary-hurd-i386/base/libc0.2_2.2-3.deb dists/sid/main/binary-hurd-i386/base/libncurses5_5.0-7.deb dists/sid/main/binary-hurd-i386/base/libstdc++2.10_2.95.2-18.deb dists/sid/main/binary-hurd-i386/base/libwrap0_7.6-5.deb dists/sid/main/binary-hurd-i386/base/ncurses-bin_5.0-7.deb dists/sid/main/binary-hurd-i386/base/tcpd_7.6-5.deb dists/sid/main/binary-hurd-i386/libs/libdb2_2.7.7-2.2.deb --- ##### # # oskit-mach # 2001may09 # ##### # «oskit-mach» (to ".oskit-mach") # (find-es "oskit" "oskit-200102") # (find-deblistsw3 "debian-hurd-0103/msg00408.html") # (find-deblistsw3 "debian-hurd-0104/msg00033.html") # (find-deblistsw3 "debian-hurd-0104/msg00049.html") mkdir ~/mach/ cd ~/mach/ export CVSROOT=:pserver:anoncvs@subversions.gnu.org:/cvs # hit enter when you are asked for a password cvs login cvs -z3 checkout gnumach cvs co -d oskit-mach -r oskit-branch gnumach # (eeman "1 cvs" "-d CVS_root_directory") # (eeman "1 cvs" "-z compression-level") # (eeman "1 cvs" "-r") # (find-fline "~/tmp/" "oskit") #* rm -Rv /usr/src/gnumach/ rm -Rv /usr/src/oskit-mach/ cd /usr/src/ tar -xvzf ~/tmp/oskit-mach.tgz #* # (find-gnumachfile "") # (find-oskmachfile "") ##### # # keymap # 2001may19 # ##### # «keymap» (to ".keymap") # (find-fline "$S/ftp/alpha.gnu.org/gnu/hurd/contrib/marcus/keymap.tar.gz") #* rm -Rv /usr/src/keymap-hurd/ mkdir /usr/src/keymap-hurd/ cd /usr/src/keymap-hurd/ tar -xvzf $S/ftp/alpha.gnu.org/gnu/hurd/contrib/marcus/keymap.tar.gz #* # (code-c-d "keymaphurd" "/usr/src/keymap-hurd/") # (find-keymaphurdfile "") # (find-keymaphurdfile "set_key.c") # (find-gnumachfile "i386/i386at/kd.h") # (find-gnumachfile "i386/i386at/") # (find-gnumachfile "") ##### # # ioctls and RPC calls # 2001may19 # ##### # «ioctls» (to ".ioctls") #* # (find-es "anatocc" "glibc-src") cd /usr/src/glibc-2.1.3/glibc-2.1.3/ grep ioctl .files for i in $(grep ioctl .files); do echo "# (find-glibcfile \"$i\")" done | tee ~/o #* # (find-glibcfile "hurd/hurd/ioctl.h") # (find-glibcfile "hurd/hurdioctl.c") # (find-glibcfile "sysdeps/mach/hurd/bits/ioctls.h") # (find-glibcfile "sysdeps/mach/hurd/ioctl.c") # (find-glibcfile "include/sys/ioctl.h") # (find-glibcfile "misc/sys/ioctl.h") # (find-glibcfile "sysdeps/generic/bits/ioctl-types.h") # (find-glibcfile "sysdeps/generic/bits/ioctls.h") # (find-glibcfile "sysdeps/generic/ioctl.c") # (find-glibcfile "sysdeps/unix/bsd/bsd4.4/bits/ioctls.h") # (find-glibcfile "sysdeps/unix/ioctls-tmpl.c") # (find-glibcfile "sysdeps/unix/ioctls.awk") # (find-glibcfile "sysdeps/unix/snarf-ioctls") # (find-glibcfile "sysdeps/unix/sysv/linux/alpha/bits/ioctls.h") # (find-glibcfile "sysdeps/unix/sysv/linux/bits/ioctl-types.h") # (find-glibcfile "sysdeps/unix/sysv/linux/bits/ioctls.h") # (find-glibcfile "sysdeps/unix/sysv/linux/mips/bits/ioctl-types.h") # (find-glibcfile "sysdeps/unix/sysv/linux/powerpc/bits/ioctl-types.h") # (find-glibcfile "sysdeps/unix/sysv/linux/powerpc/ioctl.c") # (find-glibcfile "sysdeps/unix/sysv/linux/scsi/scsi_ioctl.h") # (find-glibcfile "sysdeps/unix/sysv/linux/sparc/bits/ioctls.h") #* # (find-node "(hurd)Ports Library") <marcus> edrx: That's really a convoluted beast, and not what you should look at first, but for the curious: sysdepds/mach/hurd/ioctl.c, ioctls.h and ioctl-types.h, as well as hurd/hurdioctl.c <marcus> Basically, there is a standard encoding of a ioctl in a 32 bit int. <marcus> The encoding tells ioctl(), which message number and in/out parameter exist. <marcus> functions that don't fit into this standard encoding (too many parameters, violation of ioctl() protocol) are overridden in hurd/hurdioctl.c <marcus> ioctl() parses the ioctl number and composes a Mach msg from it. ##### # # sparse_super # 2001oct15 # ##### # «sparse_super» (to ".sparse_super") # A mail in the debian-hurd list says to use "-O sparse_super" to # avoid a certain bug (but that "mke2fs -o hurd" should be using "-O # sparse_super" by default, and it seems that newer versions will have # that fixed) #* pdsc $SDEBIAN/pool/main/e/e2fsprogs/e2fsprogs_1.18-3.dsc cd /usr/src/e2fsprogs-1.18/ #* # (code-c-d "e2fsp" "/usr/src/e2fsprogs-1.18/") # (find-e2fspfile "RELEASE-NOTES" "sparse_superblock features enabled by") ##### # # The Hurd Hacking Guide # 2001nov14 # ##### # «hhg» (to ".hhg") # (find-shttpw3 "www.8ung.at/shell/hhg.html") # (to "HIG.info") #* rm -Rv /usr/src/hhg/ mkdir /usr/src/hhg/ cd /usr/src/hhg/ zcat < $S/http/www.8ung.at/shell/hhg.texi.gz > hhg.texi makeinfo hhg.texi gzip -c9 < hhg.info > /usr/share/info/hhg.info.gz install-info --remove hhg install-info --section "The Hurd" "The Hurd" \ /usr/share/info/hhg.info.gz #* # (find-fline "/usr/src/hhg/hhg.texi") # (find-node "(dir)Top" "hhg") # (find-node "(hhg)Top") # (find-node "(hhg)A Short Overview of Hurd and Mach" "community") ##### # # PPP on the Hurd # 2001nov22 # ##### # «ppp-tun0» (to ".ppp-tun0") # (find-deblistsw3 "debian-hurd/2001/debian-hurd-200111/msg00111.html") # From a message by Neal Walfield (2001nov21): > But I have a little probleme: I can't make a device /dev/tun0 (or N) > with ./MAKEDEV tun0 in /dev like it's said in the ppp man pages. Well, the man pages are BSD centric. In the Hurd, pfinet will automatically create the tunnel device for you. Just run settrans -acpfg /servers/socket/2 /hurd/pfinet -i tun0 and then take a look in /dev. ##### # # Hurd LiveUSB 2013 # 2013nov28 # ##### # «live-2013» (to ".live-2013") # http://www.archhurd.org/ # http://files.archhurd.org/livecd/i686-core-2011-08-17.iso # https://www.gnu.org/software/hurd/ * (eepitch-shell2) * (eepitch-kill) * (eepitch-shell2) cd /sda5/torrents/ wget http://files.archhurd.org/livecd/i686-core-2011-08-17.iso * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) ISO=/sda5/torrents/i686-core-2011-08-17.iso laf -h $ISO sudo dd if=$ISO of=/dev/sdb bs=4M; sync mkdir /tmp/loop/ sudo mount -o ro,loop $ISO /tmp/loop # (find-fline "/tmp/loop/") # (find-es "pendrive" "repartition-1") # (find-es "live" "unetbootin") mkdir /tmp/pen/ sudo mount -o uid=$UID /dev/sdb1 /tmp/pen/ # (find-fline "/tmp/pen/") sudo \ unetbootin rootcheck=no method=diskimage isofile=$ISO sudo umount /tmp/pen sync * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) ISO=/sda5/torrents/i686-core-2011-08-17.iso qemu -cdrom $ISO pdsc $SDEBIAN/pool/main/h/hurd/hurd_20011016-1.dsc dpkg-buildpackage -ahurd-i386 |& tee odb # (find-hurdfile "") # (find-gnumachfile "i386/i386at/com.c" "Tty %x was stuck") # (find-fline "/gnu/root/NOTES") Tty 17a6c0 was stuck https://mhatta.medium.com/gnu-hurd-strikes-back-4021433d506d # Local Variables: # coding: utf-8-unix # End: