v2 that actually works on 32 bit arch as well, and removes unnecessary
things (vim, rsync, ripgrep etc).

The script is tested on both 64 and 32 bit and it looks useful to people.

Let me know,
Thanks,
Milos
From 18e47dcbab42a597f6a7f2caca8168c1a9a7653b Mon Sep 17 00:00:00 2001
From: Milos Nikic <[email protected]>
Date: Sun, 22 Mar 2026 16:02:32 -0700
Subject: [PATCH v2] adding a small setup instructions and script for quick dev
 env.

---
 contributing/developer-workflows.mdwn | 64 +++++++++++++++++++++++++++
 1 file changed, 64 insertions(+)

diff --git a/contributing/developer-workflows.mdwn b/contributing/developer-workflows.mdwn
index 6e94661a..370c9713 100644
--- a/contributing/developer-workflows.mdwn
+++ b/contributing/developer-workflows.mdwn
@@ -101,6 +101,70 @@ send my patches to the mailing list via:
 # Using vim-figitive
 vim users can use vim-fugitive, which is similiar to Magit.
 
+<a id="quick-start-script" name="quick-start-script"></a>
+# Quick Start Build Script
+
+If you are starting with a fresh Debian GNU/Hurd image, compiling MiG, GNU Mach, and the Hurd requires specific dependencies and a strict build order.
+
+The following script automates this process. It installs the necessary packages, clones the upstream repositories, and builds them in the correct sequence.
+
+Save this script as `setup-hurd.sh`, make it executable with `chmod +x setup-hurd.sh`, and run it:
+```
+#!/bin/bash
+set -e
+
+# Set up directory structure
+WORKDIR="$HOME/dev/hurd/upstream"
+GNU_PREFIX="$HOME/gnu"
+MIG_REPO="https://git.savannah.gnu.org/git/hurd/mig.git";
+MACH_REPO="https://git.savannah.gnu.org/git/hurd/gnumach.git";
+HURD_REPO="git://git.savannah.gnu.org/hurd/hurd.git"
+
+echo "==> Updating APT and installing base development tools..."
+sudo apt update
+sudo apt install -y git build-essential autoconf automake m4 bison flex texinfo xorriso libparted-dev pkg-config ncurses-term
+
+mkdir -p "$WORKDIR"
+cd "$WORKDIR"
+
+echo "==> Cloning MiG, GNU Mach, and Hurd..."
+[ ! -d "mig" ] && git clone "$MIG_REPO"
+[ ! -d "gnumach" ] && git clone "$MACH_REPO"
+[ ! -d "hurd" ] && git clone "$HURD_REPO"
+
+echo "==> Building and installing MiG..."
+cd "$WORKDIR/mig"
+autoreconf --install
+rm -rf build && mkdir build && cd build
+mkdir -p "$GNU_PREFIX"
+TARGET_CPPFLAGS="-I$GNU_PREFIX/include" ../configure --prefix="$GNU_PREFIX"
+make -j$(nproc)
+make install
+
+# Persist PATH update
+if ! grep -q "$GNU_PREFIX/bin" ~/.bashrc; then
+    echo "export PATH=\"$GNU_PREFIX/bin:\$PATH\"" >> ~/.bashrc
+fi
+export PATH="$GNU_PREFIX/bin:$PATH"
+
+echo "==> Building GNU Mach..."
+cd "$WORKDIR/gnumach"
+autoreconf --install
+rm -rf build && mkdir build && cd build
+../configure --prefix=
+make gnumach.gz
+
+echo "==> Building Hurd..."
+cd "$WORKDIR/hurd"
+autoreconf -fi
+rm -rf build && mkdir build && cd build
+../configure
+make -j$(nproc)
+
+echo -e "\n All done. If this is your first run, do:"
+echo "source ~/.bashrc"
+```
+
 # Develop the Debian way
 
 You can develop the GNU/Hurd via Debian GNU/Hurd.  This [Hurd wiki
-- 
2.53.0

Reply via email to