I’m currently preparing a qemu image for the Hurd which allows testing the capabilities of the Hurd with as little effort as possible.

Work in progress. These are my in-development notes.

For that I want to use:

  • An up to date debian image (no longer online, but I have a copy here).
  • My Hurd Intro,
  • Translators from hurd-extras and the incubator, and naturally
  • a lot of apt-get update; apt-get upgrade and apt-get dist-upgrade :) (all worked flawlessly).

Working

Generally

# ssh with public key
apt-get install random-egd
ssh-keygen 

# build tools
apt-get install build-essential

StoreIO

# mount an iso image
mount foo.iso bar -t iso9660fs
# see myfile as device
settrans foo /hurd/storeio myfile
# so that means I can pack a complete chroot (300MB) into a file with storeio and ext2fs — giselher

# nfs mount anywhere (TODO: check this with antrik)
mount server:/home /home -t nfs
settrans /home /hurd/nfs server:/home

In Progress

Hurdextras

hg clone <hurdextras repo>

httpfs

# pkg-config is needed to avoid “PKG_CHECK_MODULES syntax error near unexpected token `HTTPFS,'”
# pkg-config must be installed before you run autoreconf.
apt-get install autoconf autoconf-archive libxml2-dev pkg-config
autoreconf -i -f
./configure
make
make install

settrans -ac gnu /usr/local/httpfs www.gnu.org/
# (breaks, because libxml2 needs pthreads → work to do.)
# (what we need: pthreads in translators. → see the [work of Barry](https://savannah.gnu.org/task/?func=detailitem&item_id=5487))
# check: for i in `objdump -x /usr/local/bin/httpfs |grep NEEDED| sed s/.*NEEDED//`; do echo $i; objdump -x /usr/lib/$i | grep pthread; objdump -x /lib/$i | grep pthread; done

Tarfs

apt-get install zip libz-dev libbz2-dev
git clone git://git.sv.gnu.org/hurd/incubator.git tarfs
cd tarfs/
git checkout tarfs/master
cd tarfs
make
make install
# works, though with warnings.

settrans -ca new /hurd/tarfs -cz test/intro.tar.gz
cp repos/intro/README new/
settrans -g new
tar -tf test/intro.tar.gz
# works

tar -cf test/intro.tar repos/intro 
settrans -ac t /hurd/tarfs test/intro.tar
# (settrans: /hurd/tarfs: Translator died :( ⇒ more work to do )

nsmux

git clone git://git.sv.gnu.org/hurd/incubator.git nsmux
cd nsmux/
git checkout -b nsmux origin/nsmux

apt-get install autoconf autoconf-archive
autoreconf -i -f
./configure
make
make install

cd ../..
mkdir test
touch test/hello
settrans -ca test2 /usr/local/bin/nsmux test
# tar -cvf test/intro.tar repos/hurd_intro 
cat test2/hello
cat test2/hello,,hello
# Hello, World!

clisp

git clone git://git.sv.gnu.org/hurd/incubator.git clisp
cd clisp/
git checkout -b clisp origin/clisp

apt-get install texi2html
make
make install

debugging Translators

rpctrace