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

GTK DBF - Automatic build infrastructure



Hi all,

I've managed to set up a basic infrastructure in installer/build to allow 
daily builds of a "graphical mini.iso" with 2.6 kernel for i386.
The changes are currently in a personal branch [1] in the repository.

This build target (make build_gtk-miniiso) allows us to combine:
- official udebs
- unofficial udebs build from stuff not yet in debian (which may require
  unofficial debs to be installed on the system)
- not yet packaged stuff from tarballs; these are automatically downloaded
  and unpacked into the initrd during the build

I have managed to build an iso, it boots, but fails to start the graphical 
environment as I don't have all the correct components.
So, I now need your help to fill in this build system.

Currently we have:
- the official cdebconf-gkt-udeb (that is probably not compiled against
  the correct libs)
- the unofficial debs and udebs build by Davide
- the unofficial images built by Attilio and Eugeniy

What I would like to get:
- clear instructions how to build the graphical installer in the wiki
  this should include instructions and links how to build stuff that
  is not yet officially in Debian
- as much stuff (debs/udebs) packaged as possible (officially or
  unofficially)
- d-i specific stuff (configuration files, graphics) in a special
  rootskel-gtk udeb (basic work done; needs content)
- separate tarballs for everything else; by separate I mean not one huge
  tarball containing all libs, fonts etc, but separate tarballs that each
  contain roughly the same as a udeb would and that can be easily replaced
  or dropped when new things become available

I propose we set up an IRC meeting to discuss this further.
I volunteer myself to coordinate this and to do the actual daily builds 
and publish the resulting images.

When we have this working for i386, it should be fairly straightforward to 
port it to other architectures.

Cheers,
FJP

[1] http://svn.debian.org/wsvn/d-i/people/fjp/installer/build/?rev=0&sc=0
Most important new/changed files below that:
- Makefile
- pkg-lists/gtk-miniiso/*
- config/i386/gtk-miniiso.cfg

The full diff against the current build tree (excluding what I have for 
the rootskel-gtk udeb) is attached, but I suggest you don't try to use it 
yourself yet.

diff -Nur -x '\.svn' -x '*~' /home/fjp/projects/d-i/svn/installer/build/config/i386/gtk-miniiso.cfg ./config/i386/gtk-miniiso.cfg
--- /home/fjp/projects/d-i/svn/installer/build/config/i386/gtk-miniiso.cfg	1970-01-01 01:00:00.000000000 +0100
+++ ./config/i386/gtk-miniiso.cfg	2005-09-23 23:43:24.000000000 +0200
@@ -0,0 +1,30 @@
+FLAVOUR_SUPPORTED = ""
+
+#MEDIA_TYPE = netboot image
+MEDIA_TYPE = image
+
+# Let's see if we can overrule the default kernelversion and only build 2.6
+KERNELVERSION = 2.6.12-1-386
+KERNELMAJOR = 2.6
+INITRD_FS = initramfs
+
+TEMP_GTK-TARBALLS = $(TEMP)/gtk-tb
+GTK-TARBALL-SOURCE = "http://d-i.alioth.debian.org/gtk-frontend/";
+
+UDEB_LISTS = $(TEMP_UDEB_LIST) tmp/gtk-miniiso/udeb.list
+TARGET = $(TEMP_GTK-TARBALLS) $(TEMP_INITRD) $(TEMP_KERNEL) $(TEMP_NETBOOT_DIR) $(MINIISO)
+EXTRANAME = $(MEDIUM)/
+
+BOOT_SCREEN_DIR = $(NETBOOT_PATH)/boot-screens/
+
+MANIFEST-MINIISO = "not so tiny CD image that boots the graphical netboot installer"
+
+# Add contents of gtk tarballs to tree
+$(TEMP_GTK-TARBALLS):
+	@echo "# Getting temporary GTK tarballs..."
+	mkdir -p $(TEMP_GTK-TARBALLS)
+	wget "$(GTK-TARBALL-SOURCE)" -O $(TEMP)/gtk-index
+	for gtk_tb in `sed -n 's/.*a href="\(.*\.tgz\)".*/\1/p' $(TEMP)/gtk-index` ; do \
+		tb=`echo $$gtk_tb | sed "s:^.*/::"` ; \
+		wget $(GTK-TARBALL-SOURCE)$$gtk_tb -O $(TEMP_GTK-TARBALLS)/$$tb ; \
+	done
diff -Nur -x '\.svn' -x '*~' /home/fjp/projects/d-i/svn/installer/build/config/i386.cfg ./config/i386.cfg
--- /home/fjp/projects/d-i/svn/installer/build/config/i386.cfg	2005-09-04 13:46:42.000000000 +0200
+++ ./config/i386.cfg	2005-09-22 13:03:41.000000000 +0200
@@ -1,4 +1,4 @@
-MEDIUM_SUPPORTED = cdrom netboot floppy hd-media #monolithic
+MEDIUM_SUPPORTED = cdrom netboot floppy hd-media gtk-miniiso #monolithic
 
 # The version of the kernel to use.
 KERNELVERSION = 2.4.27-2-386
diff -Nur -x '\.svn' -x '*~' /home/fjp/projects/d-i/svn/installer/build/Makefile ./Makefile
--- /home/fjp/projects/d-i/svn/installer/build/Makefile	2005-09-18 14:43:56.000000000 +0200
+++ ./Makefile	2005-09-23 18:18:11.000000000 +0200
@@ -496,6 +496,13 @@
 	# Tree target ends here. Whew!
 	@touch $@
 
+ifdef GTK-TARBALL-SOURCE
+	@echo "# Unpacking temporary GTK tarballs into tree..."
+	for gtk_tb in $(TEMP_GTK-TARBALLS)/*.tgz ; do \
+		tar xz --directory $(TREE) -f $$gtk_tb ; \
+	done
+endif
+
 # Get the list of udebs to install.
 # HACK Alert: pkg-lists/ is still sorted by TYPE instead of a dir hierarchy.
 UDEBS = $(shell set -e; get-packages udeb update >&2; pkg-list $(TYPE) "$(DRIVER_FOR)" $(KERNEL_FLAVOUR) $(KERNELMAJOR) "$(SUBARCH)" $(KERNELIMAGEVERSION)) $(EXTRAS)
diff -Nur -x '\.svn' -x '*~' /home/fjp/projects/d-i/svn/installer/build/pkg-lists/gtk-miniiso/common ./pkg-lists/gtk-miniiso/common
--- /home/fjp/projects/d-i/svn/installer/build/pkg-lists/gtk-miniiso/common	1970-01-01 01:00:00.000000000 +0100
+++ ./pkg-lists/gtk-miniiso/common	2005-09-23 02:10:35.000000000 +0200
@@ -0,0 +1,22 @@
+#include "base"
+#include "kernel"
+
+# Other udebs that are needed for netboot install
+localechooser
+choose-mirror
+net-retriever
+download-installer
+cdebconf-newt-udeb
+cdebconf-text-udeb
+installation-locale
+di-utils-terminfo
+preseed-common
+initrd-preseed
+network-preseed
+
+nano-udeb
+
+save-logs
+mountfloppy
+
+libfribidi0-udeb
diff -Nur -x '\.svn' -x '*~' /home/fjp/projects/d-i/svn/installer/build/pkg-lists/gtk-miniiso/i386.cfg ./pkg-lists/gtk-miniiso/i386.cfg
--- /home/fjp/projects/d-i/svn/installer/build/pkg-lists/gtk-miniiso/i386.cfg	1970-01-01 01:00:00.000000000 +0100
+++ ./pkg-lists/gtk-miniiso/i386.cfg	2005-09-23 13:13:36.000000000 +0200
@@ -0,0 +1,41 @@
+#include "discover"
+#include "isa-pnp-modules"
+
+console-keymaps-at
+console-keymaps-usb
+
+bogl-bterm-udeb
+
+usb-discover
+nic-modules-${kernel:Version}
+socket-modules-${kernel:Version}
+nic-extra-modules-${kernel:Version}
+usb-modules-${kernel:Version}
+input-modules-${kernel:Version}
+kbd-chooser
+
+# This is needed for proper display of utf-8.
+fb-modules-${kernel:Version}
+
+# In case they need to load a driver floppy.
+floppy-retriever
+floppy-modules-${kernel:Version}
+fat-modules-${kernel:Version}
+
+# Netboot over pcmcia is unlikely, but one never knows, and this makes
+# pcmcia network interfaces available, as well as making sure pcmcia is
+# available in netboot installs at all.
+nic-pcmcia-modules-${kernel:Version}
+pcmcia-modules-${kernel:Version}
+pcmcia-cs-udeb
+
+dhcp-client-udeb
+hw-detect
+ethdetect
+netcfg
+
+#include "acpi-modules"
+
+# Needed for graphical installer
+##cdebconf-gtk-udeb
+#include "mouse-modules"
diff -Nur -x '\.svn' -x '*~' /home/fjp/projects/d-i/svn/installer/build/pkg-lists/kernel_specific/2.6/mouse-modules ./pkg-lists/kernel_specific/2.6/mouse-modules
--- /home/fjp/projects/d-i/svn/installer/build/pkg-lists/kernel_specific/2.6/mouse-modules	1970-01-01 01:00:00.000000000 +0100
+++ ./pkg-lists/kernel_specific/2.6/mouse-modules	2005-09-23 02:13:26.000000000 +0200
@@ -0,0 +1 @@
+mouse-modules-${kernel:Version}

Attachment: pgpTmKyPUKKdB.pgp
Description: PGP signature


Reply to: