summaryrefslogtreecommitdiff
path: root/debian/patches/bootshell0010-pull-code-from-livecd-XXX-document.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/bootshell0010-pull-code-from-livecd-XXX-document.patch')
-rw-r--r--debian/patches/bootshell0010-pull-code-from-livecd-XXX-document.patch261
1 files changed, 0 insertions, 261 deletions
diff --git a/debian/patches/bootshell0010-pull-code-from-livecd-XXX-document.patch b/debian/patches/bootshell0010-pull-code-from-livecd-XXX-document.patch
deleted file mode 100644
index 6c33ad06..00000000
--- a/debian/patches/bootshell0010-pull-code-from-livecd-XXX-document.patch
+++ /dev/null
@@ -1,261 +0,0 @@
-From 5b5aaa1031497a9a6d85e45ba2924d54f233d7ec Mon Sep 17 00:00:00 2001
-From: Justus Winter <4winter@informatik.uni-hamburg.de>
-Date: Mon, 9 Mar 2015 20:51:53 +0100
-Subject: [PATCH hurd 10/10] pull code from livecd XXX document
-
----
- bootshell/runsystem.scm | 206 +++++++++++++++++++++++++++++++++++++++---------
- 1 file changed, 170 insertions(+), 36 deletions(-)
-
-diff --git a/bootshell/runsystem.scm b/bootshell/runsystem.scm
-index befb07c..af6e943 100644
---- a/bootshell/runsystem.scm
-+++ b/bootshell/runsystem.scm
-@@ -115,27 +115,65 @@
- (proc->mark-important! p)
- (proc->mark-exec! p)))
-
--(define (bootstrap rootfs-args exec-args)
-- (log "Hurd server bootstrap: ")
-+(define (path->string x)
-+ (if (string? x) x (symbol->string x)))
-+
-+(define (start-active-translator path args)
-+ (log (path->string path) " ")
-+ (bind path (start-translator (task-create mach-task-self 0) args)))
-+
-+(define messages '())
-+(define (log . args)
-+ (set! messages (append messages args))
-+ (for-each display args))
-+(define (replay-log)
-+ (for-each display messages))
-+
-+(define rootfs-control MACH_PORT_NULL)
-
-+(define (traditional-first-stage)
- (log "rootfs ")
-- (let ((rootfs-control (bind-root (resume-translator rootfs-server-task
-+ (set! rootfs-control (bind-root (resume-translator rootfs-server-task '())))
-+ (log "/servers/exec ")
-+ (bind "/servers/exec" (resume-translator exec-server-task '())))
-+
-+(define (first-stage rootfs-device)
-+ (set! exec-server-task (task-create mach-task-self 0))
-+ (let
-+ ((rootfs-args
-+ `("rootfs"
-+ ,(make-arg "host-priv-port" rootfs-server-task host-priv)
-+ ,(make-arg "device-master-port" rootfs-server-task device-master)
-+ ,(make-arg "exec-server-task" rootfs-server-task exec-server-task)
-+ "-T" "typed" ,(string-append "device:" rootfs-device))))
-+ (log "rootfs ")
-+ (set! rootfs-control (bind-root (resume-translator rootfs-server-task
- rootfs-args)))
-- (startup-control (mach-port-allocate mach-task-self
-- MACH_PORT_RIGHT_RECEIVE))
-- (proc-task (task-create mach-task-self 0))
-- (auth-task (task-create mach-task-self 0))
-- ;; Projections for the cookies returned by bootstrap-*.
-- (:reply car) (:replyPoly cadr) (:server caddr))
-+ (log "/servers/exec ")
-+ (task-set-name exec-server-task "/hurd/exec")
-+ (task-suspend exec-server-task)
-+ (elf-exec exec-server-task
-+ `("/lib/ld.so.1" "/hurd/exec"
-+ ,(make-arg "device-master-port" exec-server-task device-master)))
-+ (bind "/servers/exec" (resume-translator exec-server-task '()))))
-+
-+(define (early-startup)
-+ (let ((startup-control (mach-port-allocate mach-task-self
-+ MACH_PORT_RIGHT_RECEIVE)))
- (start-handling-early-startup startup-control)
- (set-active-translator "/servers/startup" 0 0
-- (make-send-right startup-control))
-- (log "exec ")
-- (bind "/servers/exec" (resume-translator exec-server-task exec-args))
-+ (make-send-right startup-control))))
-+
-+(define (second-stage)
-+ (letport
-+ ((proc-task (task-create mach-task-self 0))
-+ (auth-task (task-create mach-task-self 0)))
-
- ;; Starting proc and auth is tricky, we need to do it simultaneously.
- (let ((pc (bootstrap-proc (start-translator proc-task '("/hurd/proc"))))
-- (ac (bootstrap-auth (start-translator auth-task '("/hurd/auth")))))
-+ (ac (bootstrap-auth (start-translator auth-task '("/hurd/auth"))))
-+ ;; Projections for the cookies returned by bootstrap-*.
-+ (:reply car) (:replyPoly cadr) (:server caddr))
- (log "proc ")
- (startup-procinit-reply (:reply pc) (:replyPoly pc) ESUCCESS
- mach-task-self (:server ac)
-@@ -159,26 +197,94 @@
- ;; Supply the proc server with a standard template.
- (proc->auth->set-std-execdata! (:server pc) (:server ac))
-
-+ ;; Neither the kernel nor our bootscript task have command line
-+ ;; arguments. Fix that.
-+ (frob-task (proc->pid->task (:server pc) 3)
-+ '(gnumach huhu lala XXX))
-+ (if (mach-port-valid? bootscript-task)
-+ (frob-task bootscript-task '(/hurd/runsystem.scm)))
-+ (frob-task mach-task-self '(/hurd/bootshell))
-+
- (mach-port-deallocate mach-task-self (:server pc))
-- (mach-port-deallocate mach-task-self (:server ac))))
-+ (mach-port-deallocate mach-task-self (:server ac)))))
-+
-+(define (run argv)
-+ (letport ((proc (getproc))
-+ (task (task-create mach-task-self 0))
-+ (child-proc (proc->task->proc proc task)))
-+ (task-set-name task (car argv))
-+ (_exec (file-name-lookup (car argv) O_EXEC 0)
-+ task argv MACH_PORT_NULL)
-+ (proc->mark-exec! child-proc)
-+ (proc->mark-important! child-proc)
-+ (proc->task->child! proc task)
-+ (copy-send-right task)))
-+
-+(define (start-hurd-console)
-+ (log "hurd-console ")
-+ (throw 'notyet) ;; XXX
-+ (run '(/bin/console
-+ --driver-path=/usr/lib/hurd/console ;; XXX
-+ --driver=current_vcs
-+ --driver=vga
-+ --driver=pc_kbd --keymap us
-+ --driver=pc_mouse --protocol=ps/2
-+ /dev/vcs))
-+
-+ ;; XXX
-+ (symlink 'tty1 '/dev/console)
-+ "/dev/tty1")
-+
-+(define (start-mach-console)
-+ (start-active-translator '/dev/console
-+ '(/hurd/term /dev/console device console))
-+ "/dev/console")
-
-- (log "console ")
-- (bind "/dev/console"
-- (start-translator (task-create mach-task-self 0)
-- '("/hurd/term" "/dev/console" "device" "console")))
-+(define (start-terminal)
-+ ;; XXX
-+ ;;(start-mach-console)
-+ (let ((device (catch (begin (log "failed: ")
-+ (log last-exception)
-+ (start-mach-console))
-+ (start-hurd-console))))
-+ (letport ((term (file-name-lookup device O_RDWR 0)))
-+ (bind-term term))
-
-- (letport ((term (file-name-lookup "/dev/console" O_RDWR 0)))
-- (bind-term term))
-+ ;; If we got the Hurd console running, it erased the screen.
-+ (if (string=? device "/dev/tty1")
-+ (begin
-+ (cat "/issue")
-+ (replay-log))))
-
- ;; If we made it this far, we can use libreadline!
-- (enable-readline)
-+ (enable-readline))
-
-+(define (run-stage stage)
-+ (stage))
-+
-+(define (run-init argv)
-+ (letport ((proc (getproc))
-+ (task (task-create mach-task-self 0))
-+ (child-proc (proc->task->proc proc task)))
-+ (proc->task->set-init-task! proc task)
-+ (task-set-name task (car argv))
-+
-+ ;; XXX this is roughly what console-run does
-+ ;;(tcsetpgrp 0 (proc->task->pid proc task))
-+ ;;(proc->setsid! child-proc)
-+ ;;(proc->make-login-coll! child-proc)
-+
-+ (proc->mark-exec! child-proc)
-+ (proc->mark-important! child-proc)
-+ (proc->task->child! child-proc mach-task-self)
-+ (_exec (file-name-lookup (car argv) O_EXEC 0)
-+ task argv MACH_PORT_NULL)
-+ (copy-send-right task)))
-+
-+(define (startup-standalone)
- ;; The standalone startup server watches essential servers, and
- ;; handles the system shutdown.
-- (log "startup ")
-- (bind "/servers/startup"
-- (start-translator (task-create mach-task-self 0)
-- '("/hurd/startup-standalone")))
-+ (start-active-translator '/servers/startup '(/hurd/startup-standalone))
-
- ;; Now that we have startup, register all servers to it.
- (letport
-@@ -193,19 +299,47 @@
- (get-essential-tasks))
- (map (lambda (c)
- (startup-request-notification startup (:port c) (:name c)))
-- (get-registered-tasks))))
--
-- (log "pflocal ")
-- (bind "/servers/socket/1"
-- (start-translator (task-create mach-task-self 0)
-- '("/hurd/pflocal")))
-+ (get-registered-tasks)))))
-
-+(define (bootstrap stages)
-+ (log "Hurd server bootstrap: ")
-+ (for-each run-stage stages)
- (log "done.\n"))
-
--(define (boot)
-+(define (boot!)
-+ (run-init '(/sbin/console-run --console=/dev/console -- /sbin/init -a)))
-+
-+(define (boot-demo . args)
- (catch (panic "Hurd bootstrap failed: " (car last-exception) "\n")
-- (bootstrap '() '()))
-+ (apply bootstrap args))
-+
-+ (shell
-+ (lambda (prefix)
-+ (prompt-append-prefix
-+ (string-append "runsystem@" (hostname) " " (getcwd) " ") prefix))))
-+
-+(define (traditional-boot)
-+ (boot-demo (list traditional-first-stage
-+ early-startup
-+ second-stage
-+ make-essential-devices ;; b/c livecd
-+ start-terminal
-+ startup-standalone
-+ boot!)))
-+
-+(define (boot)
-+ (let* ((disks
-+ (filter devprobe? '("hd0s1" "hd1" "hd2" "hd3" "sd0" "sd1" "sd2" "sd3")))
-+ (rootfs-device (car disks)))
-+
-+ (echo "Devices discovered: "
-+ (filter devprobe? '("hd0" "hd1" "hd2" "hd3" "sd0" "console" "eth0"))
-+ ". Root device: " rootfs-device ".")
-
-- (shell (lambda (prefix)
-- (prompt-append-prefix
-- (string-append "runsystem@" (hostname) " " (getcwd) " ") prefix))))
-+ (boot-demo (list
-+ (lambda () (first-stage rootfs-device))
-+ early-startup
-+ second-stage
-+ start-terminal
-+ startup-standalone
-+ boot!))))
---
-2.1.4
-