Hello,

I've hack this patch to fulfill some needs that we had at O.S. Systems
doing Debian based distributions and would like to merge it at d-i to
allow others to use it too. Following patch adds possibility to
specify the debootstrap script to use and include or exclude packages
from base without need to use base_include or base_exclude files.

Does anyone has comments about it?
=== debian/base-installer.templates
==================================================================
--- debian/base-installer.templates     
(/upstream/trunk/packages/base-installer)       (revision 4217)
+++ debian/base-installer.templates     (/base-installer)       (revision 4217)
@@ -412,3 +412,17 @@
 # TRANSLATORS: <65 columns
 _Description: Install the base system
 
+Template: base-installer/script
+Type: string
+Description: Script to use when different of suite codename
+ For preseeding only; not translated.
+
+Template: base-installer/includes
+Type: string
+Description: Packages to be included in base installation
+ For preseeding only; not translated.
+
+Template: base-installer/excludes
+Type: string
+Description: Packages to be excluded in base installation
+ For preseeding only; not translated.
=== debian/postinst
==================================================================
--- debian/postinst     (/upstream/trunk/packages/base-installer)       
(revision 4217)
+++ debian/postinst     (/base-installer)       (revision 4217)
@@ -11,8 +11,6 @@
 DIRECTORY=
 COMPONENTS=
 DISTRIBUTION=
-INCLUDES=
-EXCLUDES=
 KERNEL=
 KERNEL_LIST=/tmp/available_kernels.txt
 KERNEL_MAJOR="$(uname -r | cut -d . -f 1,2)"
@@ -38,6 +36,14 @@
 SUBARCH="$(archdetect)"
 SUBARCH="${SUBARCH#*/}"
 
+# Set initial value to includes and excludes
+db_get base-installer/includes
+INCLUDES="$RET" || true
+
+db_get base-installer/excludes
+EXCLUDES="$RET" || true
+
+
 log() {
        logger -t base-installer "$@"
 }
@@ -125,11 +131,11 @@
                        COMPONENTS="*"
                fi
                if [ -s /cdrom/.disk/base_include ]; then
-                       INCLUDES=`grep -v '^#' /cdrom/.disk/base_include | tr 
'\n' , | sed 's/,$//'`
+                       INCLUDES="$INCLUDES,`grep -v '^#' 
/cdrom/.disk/base_include | tr '\n' , | sed 's/,$//'`"
                fi
                        
                if [ -s /cdrom/.disk/base_exclude ]; then
-                       EXCLUDES=`grep -v '^#' /cdrom/.disk/base_exclude | tr 
'\n' , | sed 's/,$//'`
+                       EXCLUDES="$EXCLUDES,`grep -v '^#' 
/cdrom/.disk/base_exclude | tr '\n' , | sed 's/,$//'`"
                fi
 
                # Sanity check: an error reading /cdrom/.disk/base_components 
can cause
@@ -193,6 +199,9 @@
                        export http_proxy
                fi
        fi
+
+       db_get base-installer/script
+       DEBOOTSTRAP_SCRIPT="$RET" || true
        
        # run the scripts found in hook directory before debootstrap
        partsdir="/usr/lib/base-installer.d"
@@ -232,13 +241,15 @@
                        --components="${COMPONENTS}" \
                        --debian-installer \
                        --resolve-deps \
+                       --print-debs \
                        ${include} ${exclude} \
                        ${keyring} \
                        ${DISTRIBUTION} /target \
                        "$PROTOCOL://$MIRROR$DIRECTORY" \
+                       ${DEBOOTSTRAP_SCRIPT} \
                        || debootstrap_failed=$?
        fi
-
+       exit 1
        if [ true = "$copied_fstab" ] ; then
                mv /target/etc/fstab.orig /target/etc/fstab
        fi
=== debian/changelog
==================================================================
--- debian/changelog    (/upstream/trunk/packages/base-installer)       
(revision 4217)
+++ debian/changelog    (/base-installer)       (revision 4217)
@@ -4,6 +4,15 @@
   * Handle the ARM sub-architectures iop32x, iop33x and ixp4xx.
   * Add a test suite entry for arm/iop32x based on the Thecus N2100.
 
+  [ Otavio Salvador ]
+  * Add facility to use a specific script by preseeding
+    base-installer/script. That's a very interesting feature for Custom
+    Debian Distributions and derivatives.
+  * Add facility to include and exclude packages from base by preseeding
+    base-installer/includes and base-installer/excludes. The previous way
+    of doing that, using base_include and base_include CD files still
+    works and the packages are added to the preseeded ones.
+
  -- Martin Michlmayr <[EMAIL PROTECTED]>  Fri, 11 Aug 2006 01:50:39 +0200
 
 base-installer (1.64) unstable; urgency=low

Property changes on: 
___________________________________________________________________
Name: svk:merge
 +48c42b26-1dd6-0310-b98f-a58d8bce7237:/trunk/packages/base-installer:39695
  a1877ced-7cdd-0310-a81f-9c9987c16c32:/base-installer/local:12

-- 
        O T A V I O    S A L V A D O R
---------------------------------------------
 E-mail: [EMAIL PROTECTED]      UIN: 5906116
 GNU/Linux User: 239058     GPG ID: 49A5F855
 Home Page: http://www.freedom.ind.br/otavio
---------------------------------------------
"Microsoft gives you Windows ... Linux gives
 you the whole house."

Reply via email to