Package: debian-installer
Severity: wishlist
Tags: patch

This patch adds a netboot-gtk target for kfreebsd-amd64 (tested), and
enables graphical support in cdrom target (untested).

The mfsroot size needs to be increased to fit larger images in it, see
the comments I add to Makefile.  Note that the limit chosen for amd64
(64 MiB) derives from the NKPT value (44) I have requested to kFreeBSD
maintainers (see #596577).  A different limit might apply if a value
different than 44 is finally used.

This situation leaves kfreebsd-i386 out for netboot-gtk images, unless
a way to make them a few MiB smaller is found.

Aside from #596577, a few other bugs need to be fixed before this can
work:

#596578
#596586
#596588
#596590
#596595 (which depends on #596594)

(there's #596584 too, but the issues mentioned there are purely cosmetical)

-- System Information:
Debian Release: squeeze/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: kfreebsd-amd64 (x86_64)

Kernel: kFreeBSD 8.1-1-amd64
Locale: LANG=ca_AD.UTF-8, LC_CTYPE=ca_AD.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Index: config/kfreebsd-amd64.cfg
===================================================================
--- config/kfreebsd-amd64.cfg	(revision 64650)
+++ config/kfreebsd-amd64.cfg	(working copy)
@@ -1,4 +1,4 @@
-MEDIUM_SUPPORTED = cdrom netboot
+MEDIUM_SUPPORTED = cdrom netboot netboot-gtk
 MEDIUM_SUPPORTED_EXTRA = monolithic
 
 # The version of the kernel to use.
Index: config/kfreebsd-amd64/cdrom.cfg
===================================================================
--- config/kfreebsd-amd64/cdrom.cfg	(revision 64650)
+++ config/kfreebsd-amd64/cdrom.cfg	(working copy)
@@ -6,3 +6,8 @@
 MANIFEST-KERNEL = "kernel for use with mkisofs to build a CD"
 MANIFEST-INITRD = "initrd for use with mkisofs to build a CD"
 MANIFEST-DEBIAN_CD_INFO = "mkisofs config files for CD"
+
+# Add the gtk images.
+INITRD_GTK = dest/cdrom/gtk/initrd.gz
+
+EXTRATARGETS = build_cdrom_gtk
Index: config/kfreebsd-amd64/netboot-gtk.cfg
===================================================================
--- config/kfreebsd-amd64/netboot-gtk.cfg	(revision 0)
+++ config/kfreebsd-amd64/netboot-gtk.cfg	(revision 0)
@@ -0,0 +1,19 @@
+MEDIA_TYPE = netboot image
+
+NETBOOT_DIR_TARGETS = $(TEMP_INITRD) $(TEMP_KERNEL)
+NETBOOT_DIR_LINKS = grub2pxe
+
+TYPE = netboot/gtk
+
+TARGET = $(NETBOOT_DIR) $(NETBOOT_TAR) $(MINIISO)
+EXTRANAME = netboot/gtk/
+
+MANIFEST-NETBOOT_DIR = "PXE boot directory for tftp server (graphical installer)"
+MANIFEST-NETBOOT_TAR = "tarball of PXE boot directory (graphical installer)"
+MANIFEST-MINIISO = "not so tiny CD image that boots the graphical netboot installer"
+
+KEEP_GI_LANGS = 1
+
+# All images that include cdebconf should include symbols needed by these
+# plugins.
+EXTRAUDEBS += cdebconf-gtk-entropy
Index: pkg-lists/netboot/gtk/kfreebsd-amd64.cfg
===================================================================
--- pkg-lists/netboot/gtk/kfreebsd-amd64.cfg	(revision 0)
+++ pkg-lists/netboot/gtk/kfreebsd-amd64.cfg	(revision 0)
@@ -0,0 +1,14 @@
+# Disable Linux-specific drivers (see gtk-common)
+xserver-xorg-input-evdev-udeb -
+xserver-xorg-video-fbdev-udeb -
+
+# Enable generic drivers
+xserver-xorg-input-kbd-udeb
+xserver-xorg-input-mouse-udeb
+xserver-xorg-video-vesa-udeb
+
+# Revert switch from kbd-chooser to console-setup (see gtk-common)
+console-setup-udeb -
+console-setup-pc-ekmap -
+kbd-chooser
+console-keymaps-at
Index: Makefile
===================================================================
--- Makefile	(revision 64651)
+++ Makefile	(working copy)
@@ -126,8 +126,17 @@
   (cd $(TREE) && find . | cpio --quiet -o -H newc) > 
 endef
 
+# Limit on mfsroot size. It is determined by NKPT (in <machine/pmap.h).
+# On amd64, it can be increased by increasing this variable.  On i386,
+# this is a hard limit due to constraints of 4 GiB VM space.
+ifeq ($(DEB_HOST_ARCH),kfreebsd-i386)
+MFSROOT_LIMIT := 42m
+else ifeq ($(DEB_HOST_ARCH),kfreebsd-amd64)
+MFSROOT_LIMIT := 64m
+endif
+
 define mkfs.ufs1
-  sh -c 'makefs -t ffs -s 42m -f 3000 -o minfree=0,version=1 $$0 ${TREE}'
+  sh -c 'makefs -t ffs -s $(MFSROOT_LIMIT) -f 3000 -o minfree=0,version=1 $$0 ${TREE}'
 endef
 
 define e2fsck

Reply via email to