Hello Samuel,

On Mon, Dec 30, 2024 at 01:39:16AM +0100, Samuel Thibault wrote:
> Notably libc0.3 is apparently not marked as required any
> more, and thus not unpacked by crosshurd, so programs are deemed to
> fail. There were a few other issues, which I have now fixed in crosshurd
> version 1.7.62. I have also added a salsa CI. It now ends up on
> "Existing system found, exitting." because /proc is indeed already a
> directory, probably we want another test for checking whether
> native-install already got executed. There are probably more issues in
> the native-install script, but that should be much easier to debug now.

Version 1.7.62 never reached the archive. Perhaps this was intended.
I have taken the version in Salsa, was able to boot and run native-install,
and with the modification in the attached patch got to the stage of configuring
packages. During package configuration some packages fail, which I assumed was
related to the state of unstable, or some issue resolving dependencies?

Best regards,
João
diff -ruN crosshurd-master/README.gnu crosshurd-master_mod/README.gnu
--- crosshurd-master/README.gnu	2024-12-30 01:35:20.000000000 +0100
+++ crosshurd-master_mod/README.gnu	2025-04-05 17:42:25.387046580 +0200
@@ -28,10 +28,39 @@
 Not all packages downloaded by apt will be installed, only Priority: required
 ones will be.
 
-5) Setup grub to boot from the new partition. If you don't know how
-to do this, go out and grab some of Philip's CDs and start with them.
-Explaining grub is out of scope of this README. Make sure not to pass
---readonly to ext2fs.static.
+5) Setup grub to boot from the new partition.
+For a hurd-i386 installation on the first partition of the hd0 disk, you could
+add the following to the file /etc/grub.d/40_custom
+
+ menuentry "Debian GNU/Hurd" {
+	set root='hd0,msdos1'
+	echo	'Loading GNU Mach ...'
+	multiboot	/boot/gnumach-1.8-486-up.gz root=part:1:device:hd0
+	echo	'Loading the Hurd ...'
+	module	/hurd/pci-arbiter.static pci-arbiter \
+		--host-priv-port='${host-port}' --device-master-port='${device-port}' \
+		--next-task='${acpi-task}' \
+		'$(pci-task=task-create)' '$(task-resume)'
+	module	/hurd/acpi.static acpi \
+		--next-task='${disk-task}' \
+		'$(acpi-task=task-create)'
+	module	/hurd/rumpdisk.static rumpdisk \
+		--next-task='${fs-task}' \
+		'$(disk-task=task-create)'
+	module	/hurd/ext2fs.static ext2fs \
+		--multiboot-command-line='${kernel-command-line}' \
+		--exec-server-task='${exec-task}' -T typed '${root}' \
+		'$(fs-task=task-create)'
+	module	/hurd/exec.static exec '$(exec-task=task-create)'
+ }
+
+Following this create a grub configuration file:
+
+	grub-mkconfig > /boot/grub/grub.cfg
+
+And then install to your disk, for example:
+
+	grub-install /dev/sda
 
 6) On the first boot, run :
 
diff -ruN crosshurd-master/makehurddir.sh crosshurd-master_mod/makehurddir.sh
--- crosshurd-master/makehurddir.sh	2024-12-30 01:35:20.000000000 +0100
+++ crosshurd-master_mod/makehurddir.sh	2025-04-05 17:15:29.164576029 +0200
@@ -42,7 +42,15 @@
 	for i in *.deb ; do \
 		if [ -z "${i##libc0.3_*}" ] || \
 		   [ -z "${i##libcrypt*}" ] || \
+		   [ -z "${i##libc-bin*}" ] || \
 		   [ -z "${i##libtinfo*}" ] || \
+		   [ -z "${i##libbsd0*}" ] || \
+		   [ -z "${i##libmd0*}" ] || \
+		   [ -z "${i##libacl1*}" ] || \
+		   [ -z "${i##libattr*}" ] || \
+		   [ -z "${i##libpcre*}" ] || \
+		   [ -z "${i##liblzma*}" ] || \
+		   [ -z "${i##libzstd*}" ] || \
 		   [ -z "${i##debianutils_*}" ] || \
 		   [ -z "${i##gnumach-image-*}" ] || \
 		   dpkg-deb --field $i Priority | grep ^required ; then \
diff -ruN crosshurd-master/native-install/native-install crosshurd-master_mod/native-install/native-install
--- crosshurd-master/native-install/native-install	2024-12-30 01:35:20.000000000 +0100
+++ crosshurd-master_mod/native-install/native-install	2025-04-05 16:31:09.120650192 +0200
@@ -37,12 +37,12 @@
 	if [ "$TERM" = "dumb" ] ; then
 	  export TERM=mach
 	fi
-	if [ -d /proc ] ; then 
+	if showtrans --silent /proc  ; then 
 		echo Existing system found, exitting.
 		exit 1
 	fi
 
-	if [ ! -e /dev/console ] ; then
+	if ! showtrans --silent /dev/console ; then
 
 		# Set up standard passive translators
 		echo
@@ -57,7 +57,7 @@
 		settrans -c /servers/crash-kill /hurd/crash --kill
 		settrans -c /servers/password /hurd/password
 	        settrans -c /servers/default-pager /hurd/proxy-defpager
-		chmod +x /servers/default-pager
+		#chmod +x /servers/default-pager
 
 		# Not functional yet:
 		settrans -c /servers/crash-dump-core /hurd/crash --dump-core
@@ -87,10 +87,10 @@
 	fi
 
 	# Make sure that the runsystem stuff will work
-	if [ -e /libexec/runsystem.gnu -a -e /libexec/runsystem ] ; then
-	  echo Removing /libexec/runsystem again, so the Hurd package can
+	if [ -e /usr/libexec/runsystem.gnu -a -e /usr/libexec/runsystem ] ; then
+	  echo Removing /usr/libexec/runsystem again, so the Hurd package can
 	  echo take care about it.
-	  rm /libexec/runsystem
+	  rm /usr/libexec/runsystem
 	fi
   ;;
   Linux)
@@ -123,14 +123,14 @@
 cp /usr/share/base-passwd/group.master /etc/group
 
 # Make sure /etc/shadow is available
-/sbin/shadowconfig on
+/usr/sbin/shadowconfig on
 
 debs=`for i in /var/cache/apt/archives/*.deb ; do
 case $i in
   /var/cache/apt/archives/dpkg_*.deb) ;;
   *) echo $i ;;
 esac ; done`
-ssd=`which start-stop-daemon || echo /sbin/start-stop-daemon`
+ssd=`which start-stop-daemon || echo /usr/sbin/start-stop-daemon`
 
 # install dpkg and libc
 dpkg --force-depends -i /var/cache/apt/archives/gawk_*.deb
@@ -175,12 +175,12 @@
 
 case "${system}" in
   GNU)
-	echo I just make sure that /libexec/runsystem is properly updated.
-	if [ ! -e /libexec/runsystem -a -e /libexec/runsystem.gnu ] ; then
+	echo I just make sure that /usr/libexec/runsystem is properly updated.
+	if [ ! -e /usr/libexec/runsystem -a -e /usr/libexec/runsystem.gnu ] ; then
 	  echo WHOA! We\'re in deep trouble. The Hurd package did not update
-	  echo the link in /libexec/runsystem. For now, I am making a link
+	  echo the link in /usr/libexec/runsystem. For now, I am making a link
 	  echo manually, but please report this.
-	  ln -s runsystem.gnu /libexec/runsystem
+	  ln -s runsystem.gnu /usr/libexec/runsystem
 	fi
 
 	# fstab stuff
diff -ruN crosshurd-master/packages/gnu crosshurd-master_mod/packages/gnu
--- crosshurd-master/packages/gnu	2024-12-30 01:35:20.000000000 +0100
+++ crosshurd-master_mod/packages/gnu	2025-04-05 16:35:47.174028984 +0200
@@ -3,4 +3,5 @@
 libparted2
 libuuid1
 libc0.3
+libc-bin
 inetutils-tools

Reply via email to