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

Re: GTK DBF - Automatic build infrastructure



ok, i've put my hands on your installer branch: it's tricky understanding how all those scripts work togheter bot today i should be able to work on it and i'll try to prepare an appropriate tarball that allows to create working CDROMs.

ciao

attilio

Frans Pop wrote:
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}



Reply to: