[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[patch] generalize rootskel



This patch generalizes code splitting Linux specific stuff.


It is not kfreebsd specific, and does not enable building rootskel on kfreebsd.

It should not produce regressions on Linux (even if I didn't test it).

Please note that this is the generic part of the GNU/kFreeBSD rootskel work.
In the next days I hope to propose another patch enabling a working
rootskel on GNU/kFreeBSD.



Cheers,
Luca Favatella
Index: debian/changelog
===================================================================
--- debian/changelog	(revision 59356)
+++ debian/changelog	(working copy)
@@ -2,6 +2,9 @@
 
   * Only build rootskel-bootfloppy on Linux architectures.
 
+  [ Luca Favatella ]
+  * Generalize code splitting Linux specific stuff.
+
  -- Colin Watson <cjwatson@debian.org>  Tue, 14 Jul 2009 15:43:38 +0100
 
 rootskel (1.79) unstable; urgency=low
Index: src/lib/debian-installer-startup.d/Makefile
===================================================================
--- src/lib/debian-installer-startup.d/Makefile	(.../trunk/packages/rootskel)	(revision 59351)
+++ src/lib/debian-installer-startup.d/Makefile	(.../branches/d-i/kfreebsd/packages/rootskel)	(revision 59356)
@@ -19,8 +19,7 @@
 	S02module-params \
 	S10syslog \
 	S20templates \
-	S35term \
-	S37speakup
+	S35term
 
 ifeq ($(DEB_HOST_ARCH_OS),linux)
   ifneq (,$(filter i386 amd64,$(DEB_HOST_ARCH_CPU)))
@@ -58,6 +57,8 @@
 	S99signal-status
   endif
 
+  files += \
+	S37speakup
 endif
 
 include ../../../Makefile.inc
Index: src/lib/debian-installer.d/Makefile
===================================================================
--- src/lib/debian-installer.d/Makefile	(.../trunk/packages/rootskel)	(revision 59351)
+++ src/lib/debian-installer.d/Makefile	(.../branches/d-i/kfreebsd/packages/rootskel)	(revision 59356)
@@ -15,7 +15,6 @@
 endif
 
 files += \
-	S20speakup \
 	S30term \
 	S60frontend \
 	S65theme \
@@ -33,6 +32,7 @@
   endif
 
   files += \
+	S20speakup \
 	S40term-linux \
 	S70menu-linux
 else
Index: src/lib/debian-installer/Makefile
===================================================================
--- src/lib/debian-installer/Makefile	(.../trunk/packages/rootskel)	(revision 59351)
+++ src/lib/debian-installer/Makefile	(.../branches/d-i/kfreebsd/packages/rootskel)	(revision 59356)
@@ -22,14 +22,12 @@
 	exit-command \
 	menu
 
-ifeq ($(DEB_HOST_ARCH_OS),linux)
-  ifeq ($(DEB_HOST_ARCH_CPU),s390)
-    files += \
+ifeq ($(DEB_HOST_ARCH),s390)
+  files += \
 	detect-console:detect-console-linux-s390
-  else
-    files += \
-	detect-console:detect-console-linux
-  endif
+else
+  files += \
+	detect-console:detect-console-$(DEB_HOST_ARCH_OS)
 endif
 
 include ../../../Makefile.inc
Index: src/etc/fstab
===================================================================
--- src/etc/fstab	(.../trunk/packages/rootskel)	(revision 59351)
+++ src/etc/fstab	(.../branches/d-i/kfreebsd/packages/rootskel)	(revision 59356)
@@ -1,3 +0,0 @@
-none		/dev/pts	devpts	defaults        0	0
-none		/proc		proc	defaults        0	0
-none		/sys		sysfs	noauto		0	0
Index: src/etc/fstab-linux
===================================================================
--- src/etc/fstab-linux	(.../trunk/packages/rootskel)	(revision 0)
+++ src/etc/fstab-linux	(.../branches/d-i/kfreebsd/packages/rootskel)	(revision 59356)
@@ -0,0 +1,3 @@
+none		/dev/pts	devpts	defaults        0	0
+none		/proc		proc	defaults        0	0
+none		/sys		sysfs	noauto		0	0
Index: src/etc/Makefile
===================================================================
--- src/etc/Makefile	(.../trunk/packages/rootskel)	(revision 59351)
+++ src/etc/Makefile	(.../branches/d-i/kfreebsd/packages/rootskel)	(revision 59356)
@@ -1,3 +1,5 @@
+DEB_HOST_ARCH_OS ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_OS 2>/dev/null)
+
 dir = etc
 
 # backward compatibility
@@ -4,7 +6,7 @@
 subdirs_empty = rcS.d
 
 files = \
-	fstab \
+	fstab:fstab-$(DEB_HOST_ARCH_OS) \
 	group \
 	inittab \
 	modules.conf \
Index: src/sbin/init
===================================================================
--- src/sbin/init	(.../trunk/packages/rootskel)	(revision 59351)
+++ src/sbin/init	(.../branches/d-i/kfreebsd/packages/rootskel)	(revision 59356)
@@ -1,30 +0,0 @@
-#!/bin/sh -e
-# Set up filesystem as root and pivot into it.
-export PATH
-. /lib/debian-installer/init-debug
-debugshell "just booted"
-
-echo "Setting up filesystem, please wait ..."
-
-mount /proc
-umount initrd 2>/dev/null || true
-if mount -t tmpfs -o size=100M tmpfs /mnt ; then
-	:
-elif mount -t shm shm mnt; then
-	:
-else
-	mount -t ramfs ramfs /mnt
-fi
-umount /proc
-cp -a $(ls -1 / | grep -v '\(lost+found\|mnt\|proc\)') /mnt
-cd /mnt
-pivot_root . initrd
-mkdir -p /proc
-mount /proc
-mkdir -p /sys
-mount /sys
-/lib/debian-installer/start-udev
-
-# Close all open files on the initrd, and run busybox init.
-debugshell "before init"
-exec /usr/sbin/chroot . /bin/busybox init < /dev/console > /dev/console 2>&1
Index: src/sbin/reopen-console
===================================================================
--- src/sbin/reopen-console	(.../trunk/packages/rootskel)	(revision 59351)
+++ src/sbin/reopen-console	(.../branches/d-i/kfreebsd/packages/rootskel)	(revision 59356)
@@ -1,61 +0,0 @@
-#!/bin/sh
-
-# In order to give proper access to the tty, we need to locate the device
-# corresponding to the console we are actually using.
-
-NL="
-"
-
-console=
-if ! [ -f /var/run/console-device ]; then
-	# If the kernel emitted a "handover" message, then it's the one
-	console="$(dmesg -s 65535 |
-		sed -n -e 's/.*\] console handover: boot \[.*\] -> real \[\(.*\)\]$/\1/p')"
-
-	# Except if it is the wrong type...
-	if [ "$console" ] && [ "$(console-type)" = serial ] && \
-	   expr "$console" : "tty[0-9]" >/dev/null; then
-		console=
-	fi
-
-	consoles=
-	if [ -z "$console" ]; then
-		# Retrieve all enabled consoles from boot log; ignore those
-		# for which no device file exists
-		for cons in $(dmesg -s 65535 |
-			sed -n -e 's/.*\] console \[\(.*\)\] enabled/\1/p')
-		do
-			if [ -e "/dev/$cons" ]; then
-				consoles="${consoles:+$consoles$NL}$cons"
-			fi
-		done
-		# Only one console? Then we are good.
-		if [ $(echo "$consoles" | wc -l) -eq 1 ]; then
-			console="$consoles"
-		fi
-	fi
-
-	if [ -z "$console" ]; then
-		# Locate the last enabled console present on the command line
-		for arg in $(cat /proc/cmdline); do
-			case $arg in
-			    console=*)
-				arg=${arg#console=}
-				cons=${arg%%,*}
-				if echo "$consoles" | grep -q "^$cons$"; then
-					console=$cons
-				fi
-				;;
-			esac
-		done
-	fi
-
-	if [ -z "$console" ]; then
-		# Still nothing? Default to /dev/console.
-		console=console
-	fi
-	echo /dev/$console > /var/run/console-device
-fi
-
-# Some other session may have it as ctty. Steal it from them
-exec /sbin/steal-ctty $(cat /var/run/console-device) "$@"
Index: src/sbin/init-linux
===================================================================
--- src/sbin/init-linux	(.../trunk/packages/rootskel)	(revision 0)
+++ src/sbin/init-linux	(.../branches/d-i/kfreebsd/packages/rootskel)	(revision 59356)
@@ -0,0 +1,30 @@
+#!/bin/sh -e
+# Set up filesystem as root and pivot into it.
+export PATH
+. /lib/debian-installer/init-debug
+debugshell "just booted"
+
+echo "Setting up filesystem, please wait ..."
+
+mount /proc
+umount initrd 2>/dev/null || true
+if mount -t tmpfs -o size=100M tmpfs /mnt ; then
+	:
+elif mount -t shm shm mnt; then
+	:
+else
+	mount -t ramfs ramfs /mnt
+fi
+umount /proc
+cp -a $(ls -1 / | grep -v '\(lost+found\|mnt\|proc\)') /mnt
+cd /mnt
+pivot_root . initrd
+mkdir -p /proc
+mount /proc
+mkdir -p /sys
+mount /sys
+/lib/debian-installer/start-udev
+
+# Close all open files on the initrd, and run busybox init.
+debugshell "before init"
+exec /usr/sbin/chroot . /bin/busybox init < /dev/console > /dev/console 2>&1

Property changes on: src/sbin/init-linux
___________________________________________________________________
Added: svn:executable
   + *

Index: src/sbin/reopen-console-linux
===================================================================
--- src/sbin/reopen-console-linux	(.../trunk/packages/rootskel)	(revision 0)
+++ src/sbin/reopen-console-linux	(.../branches/d-i/kfreebsd/packages/rootskel)	(revision 59356)
@@ -0,0 +1,61 @@
+#!/bin/sh
+
+# In order to give proper access to the tty, we need to locate the device
+# corresponding to the console we are actually using.
+
+NL="
+"
+
+console=
+if ! [ -f /var/run/console-device ]; then
+	# If the kernel emitted a "handover" message, then it's the one
+	console="$(dmesg -s 65535 |
+		sed -n -e 's/.*\] console handover: boot \[.*\] -> real \[\(.*\)\]$/\1/p')"
+
+	# Except if it is the wrong type...
+	if [ "$console" ] && [ "$(console-type)" = serial ] && \
+	   expr "$console" : "tty[0-9]" >/dev/null; then
+		console=
+	fi
+
+	consoles=
+	if [ -z "$console" ]; then
+		# Retrieve all enabled consoles from boot log; ignore those
+		# for which no device file exists
+		for cons in $(dmesg -s 65535 |
+			sed -n -e 's/.*\] console \[\(.*\)\] enabled/\1/p')
+		do
+			if [ -e "/dev/$cons" ]; then
+				consoles="${consoles:+$consoles$NL}$cons"
+			fi
+		done
+		# Only one console? Then we are good.
+		if [ $(echo "$consoles" | wc -l) -eq 1 ]; then
+			console="$consoles"
+		fi
+	fi
+
+	if [ -z "$console" ]; then
+		# Locate the last enabled console present on the command line
+		for arg in $(cat /proc/cmdline); do
+			case $arg in
+			    console=*)
+				arg=${arg#console=}
+				cons=${arg%%,*}
+				if echo "$consoles" | grep -q "^$cons$"; then
+					console=$cons
+				fi
+				;;
+			esac
+		done
+	fi
+
+	if [ -z "$console" ]; then
+		# Still nothing? Default to /dev/console.
+		console=console
+	fi
+	echo /dev/$console > /var/run/console-device
+fi
+
+# Some other session may have it as ctty. Steal it from them
+exec /sbin/steal-ctty $(cat /var/run/console-device) "$@"

Property changes on: src/sbin/reopen-console-linux
___________________________________________________________________
Added: svn:executable
   + *

Index: src/sbin/Makefile
===================================================================
--- src/sbin/Makefile	(.../trunk/packages/rootskel)	(revision 59351)
+++ src/sbin/Makefile	(.../branches/d-i/kfreebsd/packages/rootskel)	(revision 59356)
@@ -1,3 +1,6 @@
+
+DEB_HOST_ARCH_OS ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_OS 2>/dev/null)
+
 dir = sbin
 
 files_exec = \
@@ -4,18 +7,26 @@
 	debian-installer \
 	debian-installer-startup \
 	shutdown \
-	init \
-	reopen-console \
-	console-type \
+	init:init-$(DEB_HOST_ARCH_OS) \
+	reopen-console:reopen-console-$(DEB_HOST_ARCH_OS) \
 	steal-ctty
 
+ifeq ($(DEB_HOST_ARCH_OS),linux)
+  files_exec += \
+	console-type
+endif
+
 console-type: console-type.c
 	gcc -Os -Wall console-type.c -o console-type
 
 steal-ctty: steal-ctty.c
 	gcc -Os -Wall steal-ctty.c -o steal-ctty
 
+ifeq ($(DEB_HOST_ARCH_OS),linux)
 build: console-type steal-ctty
+else
+build: steal-ctty
+endif
 
 clean:
 	rm -f console-type steal-ctty
Index: src/Makefile
===================================================================
--- src/Makefile	(.../trunk/packages/rootskel)	(revision 59351)
+++ src/Makefile	(.../branches/d-i/kfreebsd/packages/rootskel)	(revision 59356)
@@ -14,7 +14,9 @@
 	proc \
 	sys
 
-files_exec = \
+ifeq ($(DEB_HOST_ARCH_OS),linux)
+  files_exec = \
 	init
-     
+endif
+
 include ../Makefile.inc

Reply to: