Blob Blame History Raw
<?xml version="1.0"?>
<libosinfo version="0.0.1">
  <!-- Licensed under the GNU General Public License version 2 or later.
     See http://www.gnu.org/licenses/ for a copy of the license text -->
  <install-script id="http://ubuntu.com/ubuntu/preseed/jeos">
    <profile>jeos</profile>
    <expected-filename>preseed.cfg</expected-filename>
    <config>
      <param name="admin-password" policy="optional"/>
      <param name="user-login" policy="optional"/>
      <param name="user-password" policy="optional"/>
      <param name="user-realname" policy="optional"/>
      <param name="l10n-keyboard" policy="optional" value-map="http://x.org/x11-keyboard"/>
      <param name="l10n-timezone" policy="optional"/>
      <param name="l10n-language" policy="optional"/>
      <param name="target-disk" policy="optional"/>
      <param name="hostname" policy="optional"/>
    </config>
    <injection-method>initrd</injection-method>
    <template>
      <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
        <xsl:output method="text"/>
        <xsl:template match="/command-line">
          <xsl:text>file=/</xsl:text>
          <xsl:value-of select="script/expected-filename"/>
          <xsl:text> locale=</xsl:text>
          <xsl:value-of select="config/l10n-language"/>
          <xsl:text> keyboard-configuration/layoutcode=</xsl:text>
          <xsl:value-of select="config/l10n-keyboard"/>
          <xsl:text> hostname=</xsl:text>
          <xsl:call-template name="hostname"/>
          <xsl:text> priority=critical console-setup/ask_detect=false domain=unassigned-domain interface=auto</xsl:text>
        </xsl:template>
        <xsl:template name="target-disk">
          <xsl:choose>
            <xsl:when test="config/target-disk != ''">
              <xsl:value-of select="config/target-disk"/>
            </xsl:when>
            <xsl:otherwise>
              <!-- virtio -->
              <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:text>localhost</xsl:text>
            </xsl:otherwise>
          </xsl:choose>
        </xsl:template>
        <xsl:template name="user-fullname">
          <xsl:choose>
            <xsl:when test="config/user-realname != ''">
              <xsl:value-of select="config/user-realname"/>
            </xsl:when>
            <xsl:otherwise>
              <xsl:value-of select="config/user-login"/>
            </xsl:otherwise>
          </xsl:choose>
        </xsl:template>
        <xsl:template match="/install-script-config">
d-i debian-installer/locale string <xsl:value-of select="config/l10n-language"/>
d-i console-setup/ask_detect boolean false
d-i console-setup/layoutcode string <xsl:value-of select="config/l10n-keyboard"/>

d-i netcfg/choose_interface select auto
d-i netcfg/get_hostname string <xsl:call-template name="hostname"/>
d-i netcfg/get_domain string unassigned-domain
d-i netcfg/wireless_wep string

d-i clock-setup/utc boolean true
d-i time/zone string <xsl:value-of select="config/l10n-timezone"/>

d-i partman-auto/method string regular
d-i partman-auto/choose_recipe select home
d-i partman/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true

d-i passwd/root-login boolean true
<xsl:if test="config/user-login = '' or config/user-password = ''">
d-i passwd/make-user boolean false
</xsl:if>
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"/>

<xsl:if test="config/user-login != '' and config/user-password != ''">
d-i passwd/user-fullname string <xsl:call-template name="user-fullname"/>
d-i passwd/username string <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"/>
d-i user-setup/allow-password-weak boolean true
</xsl:if>

tasksel tasksel/first multiselect standard
d-i pkgsel/include/install-recommends boolean true
d-i pkgsel/include string openssh-server
<xsl:choose><xsl:when test="os/version &lt; 13.10"><xsl:if test="os/version = 12.04">
d-i pkgsel/include string python-software-properties
      </xsl:if><!-- Let's avoid installating python-software-properties
           for 12.10 as it'd raise an error during installation. --></xsl:when><xsl:otherwise>
d-i pkgsel/include string python3-software-properties
  </xsl:otherwise></xsl:choose>

d-i grub-installer/only_debian boolean true
d-i grub-installer/with_other_os boolean true

d-i apt-setup/security_host string
base-config apt-setup/security-updates boolean false

ubiquity ubiquity/summary note
ubiquity ubiquity/reboot boolean true

d-i finish-install/reboot_in_progress note

# Unfortunately we have to manually force the system to boot without splash screen as,
# otherwise, the splash would be loaded and the user would have to manually switch to
# VT[0-6]
d-i preseed/late_command string \
    in-target sed -i 's/\(GRUB_CMDLINE_LINUX_DEFAULT=\).*/\1\"\"/g' /etc/default/grub ; \
    in-target bash -c 'update-grub2' ;

<xsl:if test="os/version = 13.04">
ubiquity ubiquity/success_command string sed -i 's/eject -p -m.*/&amp; [ "$prompt" ] || return 0/' /etc/init.d/casper
</xsl:if>

# Create an osinfo-install-successful file in /root
d-i preseed/late_command string in-target \
    touch /root/osinfo-install-successful
        </xsl:template>
      </xsl:stylesheet>
    </template>
  </install-script>
</libosinfo>