Hi, I started working on the documentation we discussed during the meeting on #debian-boot; here's a minimum set of instructions that you can use to build everything. I'm sure this is enough for experienced people, so it probably makes sense to post this asap so everybody can get ready to try Frans' script as soon as it's ready. I never used the wiki page, so when I tried to past this in the DebianInstallerGUIBuild I created, the result was a disaster. Please review it and poin out mistakes/things which need to explain better ciao, Davide ==================== Goal ---- We basically want to build gtk+-directfb wich is gtk+ with gdk-directfb backend; once available we'll use it to compile gtk.so. To determine the set of libraries necessary to build gtk+-directfb and gtk.so I set up a minimal sid chroot and started grabbing libs until directfb stopped complaining about missing dependencies: this means that it might not be necessary to really rebuild everything in case some of the libs are already installed on your system, but I'll cover the worst case. Here are the needed ingredients: DirectFB atk cairodfb gdk-directfb glib gtk+ libic libpixregion pango slim Since gdk-directfb is not part of the standard gtk+ tree, we'll have to patch gtk+ with a compatible version of gdk-directfb. At the time of this writing, the last version of gdk-directfb is declared compatible with gtk+_2.7.2, so we want to build gtk+_2.7.2-directfb even if gtk+_2.8.4 is already out. Downloading the souces ---------------------- The pages containing all the sources are the following: http://www.gtk.org/ http://www.directfb.org/ Let's check out everything first: cvs -d:pserver:anonymous@anoncvs.gnome.org:/cvs/gnome login cvs -d:pserver:anonymous@anoncvs.gnome.org:/cvs/gnome -z3 co -r GLIB_2_7_2 glib cvs -d:pserver:anonymous@anoncvs.gnome.org:/cvs/gnome -z3 co atk cvs -d:pserver:anonymous@anoncvs.gnome.org:/cvs/gnome -z3 co -r PANGO_1_9_0 pango cvs -d:pserver:anonymous@anoncvs.gnome.org:/cvs/gnome -z3 co -r GTK_2_7_2 gtk+ cvs -d :pserver:anoncvs@cvs.cairographics.org:/cvs/cairo login cvs -d :pserver:anoncvs@cvs.cairographics.org:/cvs/cairo co slim cvs -d :pserver:anoncvs@cvs.cairographics.org:/cvs/cairo co libpixregion cvs -d :pserver:anoncvs@cvs.cairographics.org:/cvs/cairo co libic cvs -d:pserver:anonymous@cvs.directfb.org:/cvs/directfb login cvs -d:pserver:anonymous@cvs.directfb.org:/cvs/directfb -z3 co DirectFB cvs -d:pserver:anonymous@cvs.directfb.org:/cvs/directfb -z3 co cairodfb cvs -d:pserver:anonymous@cvs.directfb.org:/cvs/directfb -z3 co gdk-directfb Patching gtk+ ------------- Before building, we need to patch gtk+: mv gdk-directfb gtk+/gdk/directfb cd gtk+/gdk/directfb patch -b -p0 < ./gtk-directfb.patch Building the libs ----------------- Building the libs is a 2-steps process: the firs step will build the libs which will reside on your host and will be used to build the libs for the target and the gtk.so the second step will produce libs that can be copied in the target system The first pass will install its files into "d-i_build", the second into "d-i_final", both relative for example to ~/dfb/ 1st pass -------- export BUILDDIR=$(pwd)/d-i_build export LDFLAGS=-L$BUILDDIR/lib export LD_LIBRARY_PATH=$BUILDDIR/lib export PKG_CONFIG_PATH=$BUILDDIR/lib/pkgconfig HERE=$(pwd) for DIR in glib atk slim libpixregion libic cairodfb/libpixman cairodfb/cairo pango DirectFB gtk+ ; do cd $DIR echo "Pass1: ${DIR}" case $DIR in "DirectFB") sh autogen.sh --prefix=${BUILDDIR} --with-inputdrivers=keyboard,linuxinput,ps2mouse,serialmouse > pass1_autogen.log 2>&1 ;; "gtk+") sh autogen.sh --prefix=${BUILDDIR} --with-gdktarget=directfb > pass1_autogen.log 2>&1 ;; *) sh autogen.sh --prefix=${BUILDDIR} > pass1_autogen.log 2>&1 ;; esac make > pass1_make.log 2>&1 make install > pass1_make_install.log 2>&1 echo "${DIR} done (Pass1)" echo "" cd $HERE done 2nd pass -------- export BUILDDIR=$(pwd)/d-i_build export INSTALLDIR=$(pwd)/d-i_final export PKG_CONFIG_PATH=$BUILDDIR/lib/pkgconfig export LD_LIBRARY_PATH=$BUILDDIR/lib HERE=$(pwd) for DIR in glib atk slim libpixregion libic cairodfb/libpixman cairodfb/cairo pango DirectFB gtk+ ; do cd $DIR echo "Pass2: ${DIR}" case $DIR in "DirectFB") sh autogen.sh --prefix=/usr --sysconfdir=/etc --with-inputdrivers=keyboard,linuxinput,ps2mouse,serialmouse > pass2_autogen.log 2>&1 ;; "gtk+") sh autogen.sh --prefix=/usr --sysconfdir=/etc --with-gdktarget=directfb > pass2_autogen.log 2>&1 ;; *) sh autogen.sh --prefix=/usr --sysconfdir=/etc > pass2_autogen.log 2>&1 ;; esac make > pass2_make.log 2>&1 make install DESTDIR=$INSTALLDIR > pass2_make_install.log 2>&1 echo "${DIR} done (Pass2)" echo "" cd $HERE done
Attachment:
signature.asc
Description: Digital signature