[Libosinfo] [PATCH 3/3] debian: Add desktop installation script

Zeeshan Ali (Khattak) zeeshanak at gnome.org
Tue Jun 24 16:03:46 UTC 2014


On Tue, Jun 24, 2014 at 1:52 PM, Lasse Schuirmann
<lasse.schuirmann at gmail.com> wrote:
> This script needs an internet connection because of the following
> facts:
>  * Debian ISOs with different UIs have the same volume ID

Its not clear how the this point is relevant. AFAIK its only relevant
because of the following point.

>  * It seems not possible to install the UI that is present on the ISO

UI -> desktop. Also the sentence is a bit vague. IIRC the issue is
that choosing the default desktop always chooses GNOME and its not
always shipped on the ISO and hence is fetched from Internet during
installation.

> In order to get a desktop installation without questions asked an
> internet connection is needed.
> ---
>  data/install-scripts/debian.xml | 174 ++++++++++++++++++++++++++++++++++++++++
>  data/oses/debian.xml.in         |   1 +
>  2 files changed, 175 insertions(+)
>
> diff --git a/data/install-scripts/debian.xml b/data/install-scripts/debian.xml
> index e08b86b..2d4c3bc 100644
> --- a/data/install-scripts/debian.xml
> +++ b/data/install-scripts/debian.xml
> @@ -103,4 +103,178 @@ d-i finish-install/reboot_in_progress note
>        </xsl:stylesheet>
>      </template>
>    </install-script>
> +
> +  <!-- DESKTOP PROFILE -->
> +  <install-script id='http://debian.org/scripts/debian/desktop'>
> +    <profile>desktop</profile>
> +    <expected-filename>preseed.cfg</expected-filename>
> +    <can-pre-install-drivers>true</can-pre-install-drivers>
> +    <config>
> +      <!-- Localization options -->
> +      <param name="l10n-keyboard" policy="optional" value-map="http://libosinfo.fedorahosted.org/x11-keyboard"/>
> +      <param name="l10n-language" policy="optional"/>
> +      <param name="l10n-timezone" policy="optional"/>
> +
> +      <!-- User options -->
> +      <param name="user-login" policy="required"/>
> +      <param name="user-fullname" policy="optional"/>
> +      <!-- This MUST be nonempty. Can we enforce this? -->
> +      <param name="user-password" policy="required"/>
> +      <param name="admin-password" policy="required"/>
> +
> +      <!-- Misc -->
> +      <param name="hostname" policy="optional"/>
> +      <param name="domain" policy="optional"/>
> +      <param name="target-disk" policy="optional"/>
> +    </config>
> +    <injection-method>initrd</injection-method>
> +    <needs-internet-connection>true</needs-internet-connection>
> +    <template>
> +      <xsl:stylesheet
> +        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> +        version="1.0">
> +
> +        <xsl:output method="text"/>
> +
> +        <xsl:template name="target-disk">
> +          <xsl:choose>
> +            <xsl:when test="config/target-disk != ''">
> +              <xsl:value-of select="config/target-disk"/>
> +            </xsl:when>
> +            <xsl:otherwise>
> +              <xsl:text>/dev/vda</xsl:text>
> +            </xsl:otherwise>
> +          </xsl:choose>
> +        </xsl:template>
> +
> +        <xsl:template name="hostname">
> +          <xsl:choose>
> +            <xsl:when test="config/hostname != ''">
> +              <xsl:value-of select="config/hostname"/>
> +            </xsl:when>
> +            <xsl:otherwise>
> +              <xsl:value-of select="os/short-id"/>
> +            </xsl:otherwise>
> +          </xsl:choose>
> +        </xsl:template>
> +
> +        <xsl:template name="user-fullname">
> +          <xsl:choose>
> +            <xsl:when test="config/user-fullname != ''">
> +              <xsl:value-of select="config/user-fullname"/>
> +            </xsl:when>
> +            <xsl:otherwise>
> +              <xsl:value-of select="config/user-login"/>
> +            </xsl:otherwise>
> +          </xsl:choose>
> +        </xsl:template>
> +
> +        <xsl:template name="l10n-language">
> +          <xsl:choose>
> +            <xsl:when test="config/l10n-language != '' and config/l10n-language != 'C'">
> +              <xsl:value-of select="config/l10n-language"/>
> +            </xsl:when>
> +            <xsl:otherwise>
> +              <xsl:text>en_US</xsl:text>
> +            </xsl:otherwise>
> +          </xsl:choose>
> +        </xsl:template>
> +
> +        <xsl:template name="l10n-keyboard">
> +          <xsl:choose>
> +            <xsl:when test="config/l10n-keyboard != '' and config/l10n-keyboard != 'C'">
> +              <xsl:value-of select="config/l10n-keyboard"/>
> +            </xsl:when>
> +            <xsl:otherwise>
> +              <xsl:text>us</xsl:text>
> +            </xsl:otherwise>
> +          </xsl:choose>
> +        </xsl:template>
> +
> +        <xsl:template match="/command-line">
> +            <xsl:text> keyboard-configuration/xkb-keymap=</xsl:text>
> +            <xsl:call-template name="l10n-keyboard"/>
> +            <xsl:text> debconf/priority=critical</xsl:text>
> +        </xsl:template>
> +
> +<xsl:template match="/install-script-config">
> +# For inspiration and explanations see:
> +# http://sfxpt.wordpress.com/2013/06/09/get-the-debianubuntu-ready-and-customized-the-way-you-like-in-10-minutes/
> +
> +### Network
> +d-i netcfg/choose_interface select auto
> +d-i netcfg/get_hostname string <xsl:call-template name="hostname"/>
> +d-i netcfg/get_domain string <xsl:value-of select="config/domain"/>
> +d-i netcfg/disable_dhcp boolean false
> +
> +
> +### Localization
> +d-i debian-installer/locale string <xsl:call-template name="l10n-language"/>
> +d-i debian-installer/splash boolean false
> +d-i console-setup/ask_detect boolean false
> +
> +
> +### Time
> +d-i clock-setup/ntp boolean true
> +d-i clock-setup/utc boolean true
> +d-i time/zone select <xsl:value-of select="config/l10n-timezone"/>
> +
> +
> +### Account setup
> +
> +## Root
> +d-i passwd/root-login boolean true
> +d-i passwd/root-password password <xsl:value-of select="config/admin-password"/>
> +d-i passwd/root-password-again password <xsl:value-of select="config/admin-password"/>
> +
> +## User
> +d-i user-setup/allow-password-weak boolean true
> +d-i user-setup/encrypt-home boolean false
> +d-i passwd/user-fullname string <xsl:call-template name="user-fullname"/>
> +d-i passwd/username <xsl:value-of select="config/user-login"/>
> +d-i passwd/user-password password <xsl:value-of select="config/user-password"/>
> +d-i passwd/user-password-again password <xsl:value-of select="config/user-password"/>
> +
> +
> +### Partitioning
> +d-i partman-auto/disk string <xsl:call-template name="target-disk"/>
> +d-i partman-auto/method string regular
> +d-i partman-auto/choose_recipe select home
> +d-i partman/default_filesystem string ext4
> +d-i partman-auto/purge_lvm_from_device boolean true
> +# avoid any confirmation
> +d-i partman/choose_partition select finish
> +d-i partman/confirm_write_new_label boolean true
> +d-i partman/confirm_nooverwrite boolean true
> +d-i partman/confirm boolean true
> +
> +
> +### Apt
> +d-i apt-setup/security_host string
> +d-i apt-setup/services-select multiselect
> +d-i apt-setup/volatile_host string
> +d-i apt-setup/security_host string
> +
> +
> +### Software selection
> +tasksel tasksel/first multiselect desktop
> +
> +
> +### Bootloader
> +
> +## Dont use LILO
> +d-i lilo-installer/skip boolean true
> +
> +## GRUB settings
> +# Workaround for https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=666974
> +d-i grub-installer/only_debian boolean false
> +d-i grub-installer/bootdev string <xsl:call-template name="target-disk"/>
> +
> +
> +### Cleanup
> +d-i finish-install/reboot_in_progress note
> +</xsl:template>
> +      </xsl:stylesheet>
> +    </template>
> +  </install-script>
>  </libosinfo>
> diff --git a/data/oses/debian.xml.in b/data/oses/debian.xml.in
> index 1ecb2dd..dc97d81 100644
> --- a/data/oses/debian.xml.in
> +++ b/data/oses/debian.xml.in
> @@ -256,6 +256,7 @@
>
>      <installer>
>        <script id='http://debian.org/scripts/debian/jeos'/>
> +      <script id='http://debian.org/scripts/debian/desktop'/>
>      </installer>
>    </os>
>
> --
> 2.0.0
>
> _______________________________________________
> Libosinfo mailing list
> Libosinfo at redhat.com
> https://www.redhat.com/mailman/listinfo/libosinfo



-- 
Regards,

Zeeshan Ali (Khattak)
________________________________________
Befriend GNOME: http://www.gnome.org/friends/




More information about the Libosinfo mailing list