From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jan Nieuwenhuizen Subject: Helping with Guix on Hurd: my notes Date: Sat, 18 Feb 2017 08:22:34 +0100 Message-ID: <871suwvu85.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:53295) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cezM5-0005u1-5z for guix-devel@gnu.org; Sat, 18 Feb 2017 02:22:54 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cezM1-0005TP-9f for guix-devel@gnu.org; Sat, 18 Feb 2017 02:22:53 -0500 List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: guix-devel@gnu.org Hi, I have just successfully built ./pre-inst-env guix package -i hello --keep-failed on Debian/Hurd. Find my notes below. --janneke --8<---------------cut here---------------start------------->8--- * Help with Hurd -*- mode:= org -*- In his talk @FOSDEM'17 https://fosdem.org/2017/schedule/event/guixhurd/ https://fosdem.org/2017/schedule/event/guixhurd/attachments/slides/1850= /export/events/attachments/guixhurd/slides/1850/guix_to_hurd_fosdem_2017.pdf Manolis sends out a call for help to get Hurd supported in Guix. A lot of work has been done. Some bigger things remains, and there is also a lot of small, simple things to be fixed. So, get involved! * Setup Guix build environment on Debian/Hurd ** Get Hurd image from Debian *** Entry: https://www.debian.org/ports/hurd/hurd-install *** Next: https://people.debian.org/~sthibault/hurd-i386/ wget http://people.debian.org/~sthibault/hurd-i386/debian-hurd.img.tar.gz tar xzf debian-hurd.img.tar.gz *** Boot it qemu-system-i386 -enable-kvm -drive file=3Ddebian-hurd-20170115.img,cache= =3Dwriteback -m 1G -net user,hostfwd=3Dtcp:127.0.0.1:2223-:22 -net nic *** Create additional storage qemu-img create -f raw gnu.img 30G fdisk gnu.img mkfs.ext2 /dev/hd1s1 *** Setup fstab: TRAMP /ssh:root@hurd#2223:/etc/fstab # /etc/fstab: static file system information. # # /dev/hd0s1 / ext2 defaults 0 1 /dev/hd0s5 none swap sw 0 0 /dev/hd1s1 /gnu ext4 defaults 0 0 /dev/hd2 /media/cdrom0 iso9660 noauto 0 0 /gnu/tmp /tmp none defaults,bind 0 0 qemu-system-i386 -enable-kvm -drive file=3Ddebian-hurd-20170115.img,cache= =3Dwriteback -m 1G -net user,hostfwd=3Dtcp:127.0.0.1:2223-:22 -net nic -dri= ve file=3Dgnu.img *** [@hurd] Create user addgroup janneke adduser janneke janneke adduser janneke sudo passwd janneke *** [@GuixSD]: Add to .ssh/config Host hurd HostName localhost Port 2223 ForwardAgent yes *** Build bootstrap binaries git checkout core-updates git show HEAD | head commit 7ca72ec44bf52d459f1fbd994037b792999fe0eb ./pre-inst-env guix build --target=3Di586-pc-gnu bootstrap-tarballs /gnu/store/7kxdhs1404n7pz66m2g8hv6hvymh8ing-bootstrap-tarballs-0 hurd:g= nu/ for i in /gnu/store/7kxdhs1404n7pz66m2g8hv6hvymh8ing-bootstrap-tarballs= -0/*; \ do echo $i; guix hash $i; done scp -r /gnu/store/7kxdhs1404n7pz66m2g8hv6hvymh8ing-bootstrap-tarballs-0= hurd:var/hurd/gnu/ *** [@hurd] Prepare to build Guix **** Checkout Guix sudo apt-get install git mkdir src cd src git config --global url."git+ssh://git.sv.gnu.org/srv/git/".insteadOf g= nu: git clone gnu:guix.git cd guix git remote add phant0mas git@github.com:Phant0mas/guix-on-hurd.git git fetch phant0mas git checkout wip-hurd-native **** Add Debian build dependencies sudo apt-get install build-essential dh-autoreconf dh-systemd autotools-dev= graphviz guile-2.0-dev guile-json help2man libgcrypt20-dev libsqlite3-dev = libbz2-dev texinfo **** Add Hurd bootstrap binaries mkdir -p gnu/packages/bootstrap/i586-gnu tar xf ~/var/hurd/7kxdhs1404n7pz66m2g8hv6hvymh8ing-bootstrap-tarballs-0/sta= tic-binaries-0-i586-pc-gnu.tar.xz --strip=3D2 -C gnu/packages/bootstrap/i58= 6-gnu ./bin/{xz,tar,mkdir,bash} cp ~/var/hurd/7kxdhs1404n7pz66m2g8hv6hvymh8ing-bootstrap-tarballs-0/guile-s= tatic-stripped-2.0.13-i586-pc-gnu.tar.xz gnu/packages/bootstrap/i586-gnu/gu= ile-2.0.12.tar.xz ./configure --with-courage --localstatedir=3D/var make *** Prepare to start guix-daemon, as root groupadd --system guixbuild for i in `seq -w 1 10`; do useradd -g guixbuild -G guixbuild \ -d /var/empty -s `which nologin` \ -c "Guix build user $i" --system \ guixbuilder$i; done sudo ./pre-inst-env guix archive --authorize < hydra.gnu.org.pub mkdir /var/guix * Do it ** [@GuixSD] Start qemu: additional resources: 4G of memory, 30G storage: qemu-system-i386 -enable-kvm -drive file=3Ddebian-hurd-20170115.img,cache= =3Dwriteback -m 4G -net user,hostfwd=3Dtcp:127.0.0.1:2223-:22 -net nic -dri= ve file=3Dgnu.img,cache=3Dwriteback ** [@Hurd] Start daemon sudo ./pre-inst-env guix-daemon --build-users-group=3Dguixbuild & ** [@Hurd] build package ./pre-inst-env guix package -i hello --keep-failed --8<---------------cut here---------------end--------------->8--- --=20 Jan Nieuwenhuizen | GNU LilyPond http://lilypond.org Freelance IT http://JoyofSource.com | Avatar=C2=AE http://AvatarAcademy.nl= =20=20