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