Bootstrappable Debian

Bootstrappable Debian

Wookey

Debconf 11, July 2011

What’s this about

Nomenclature

Basics

Why should we care?

What currently happens

Why crossing helps

Cycle analysis

How that was done

xdeb —generate-graph —apt-source | sccmap | gvpr -f make_strict.g | gvpr -f colour_nodes.g

Examples

Statistics - Squeeze

Statistics - Ubuntu (maverick/natty)

Mechanism

How intrusive is this?

Typical patch (debhelper) (krb5)

+ifneq (,$(filter stage1,$(DEB_BUILD_OPTIONS)))
+   LDAP_DEP=
+   export DH_OPTIONS=-Nkrb5-kdc-ldap
+else
+   LDAP_DEP=--with-ldap
+endif

-    --enable-shared --with-ldap --without-tcl \
+    --enable-shared  --without-tcl $(LDAP_DEP)\

+ifneq (,$(filter stage1,$(DEB_BUILD_OPTIONS)))
    mv $(CURDIR)/debian/tmp/usr/lib/libkdb_ldap* \
            $(CURDIR)/debian/tmp/usr/lib/krb5/
    rm -f $(CURDIR)/debian/tmp/usr/lib/krb5/libkdb_ldap*.so
+endif

Typical patch (CDBS) (poppler)

+export DH_OPTIONS = -Nlibpoppler-qt2 -Nlibpoppler-qt-dev
-Nlibpoppler-qt4-3 -Nlibpoppler-qt4-dev
+
+DEB_ARCH_PACKAGES := libpoppler5 libpoppler-dev libpoppler-glib4 \
+ libpoppler-glib-dev poppler-utils poppler-dbg
+
+ifneq (,$(filter stage1,$(DEB_BUILD_OPTIONS)))
+# disable gtk stuff to minimize Build-Depends
+DEB_CONFIGURE_EXTRA_FLAGS +=                   \
+       --enable-libjpeg                        \
+       --disable-openjpeg                      \
+       --enable-poppler-glib                   \
+       --disable-poppler-qt                    \
+       --disable-poppler-qt4                   \
+       --enable-a4-paper                       \
+       --disable-gtk-doc                       \
+       --disable-gtk-test

Automated bootstrap

Continuous integration

Bootstrapping spec

cross debug tag

New docs appearing

Auto crossbuilder

What do I need from you