[Libosinfo] [PATCH 14/16] opensuse, installer: Add DESKTOP script

Fabiano Fidêncio fabiano at fidencio.org
Wed Apr 27 17:12:54 UTC 2016


On Wed, Apr 27, 2016 at 2:03 PM, Fabiano Fidêncio <fidencio at redhat.com> wrote:
> The script has been tested and works as expected for the most recent
> releases of OpenSUSE (Leap 4.21 and Tumbleweed).
> A big thanks to Lasse Schuirmann, who had worked on a similar script,
> from which I got the chroot-scripts part, during his GSoC project.
>
> Co-author: Lasse Schuirmann <lasse.schuirmann at gmail.com>


Due to some last minutes changes while organizing this series, the
following patch must be squashed to this one:
[ffidenci at cat libosinfo]$ git diff
diff --git a/data/install-script/opensuse.org/autoinst-desktop.xml.in
b/data/install-script/opensuse.org/autoinst-desktop.xml.in
index 32943ce..d62560e 100644
--- a/data/install-script/opensuse.org/autoinst-desktop.xml.in
+++ b/data/install-script/opensuse.org/autoinst-desktop.xml.in
@@ -89,7 +89,7 @@
             <xsl:text>leap/</xsl:text>
           </xsl:if>
           <xsl:value-of select="os/version"/>
-          <xsl:text>/<xsl:text>
+          <xsl:text>/</xsl:text>
           <xsl:if test="not(contains(os/version, 'tumbleweed'))">
             <xsl:text>oss/</xsl:text>
           </xsl:if>


> ---
>  .../opensuse.org/autoinst-desktop.xml.in           | 333 +++++++++++++++++++++
>  1 file changed, 333 insertions(+)
>  create mode 100644 data/install-script/opensuse.org/autoinst-desktop.xml.in
>
> diff --git a/data/install-script/opensuse.org/autoinst-desktop.xml.in b/data/install-script/opensuse.org/autoinst-desktop.xml.in
> new file mode 100644
> index 0000000..32943ce
> --- /dev/null
> +++ b/data/install-script/opensuse.org/autoinst-desktop.xml.in
> @@ -0,0 +1,333 @@
> +<libosinfo version="0.0.1">
> +
> +  <!-- DESKTOP PROFILE -->
> +  <install-script id='http://opensuse.org/opensuse/autoyast/desktop'>
> +    <profile>desktop</profile>
> +    <expected-filename>autoinst.xml</expected-filename>
> +    <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"/>
> +
> +      <!-- Network options -->
> +      <param name="hostname" policy="optional"/>
> +      <param name="domain" policy="optional"/>
> +
> +      <!-- Account options -->
> +      <param name="admin-password" policy="optional"/>
> +      <param name="user-fullname" policy="optional"/>
> +      <param name="user-login" policy="required"/>
> +      <param name="user-password" policy="optional"/>
> +      <param name="avatar-location" policy="optional"/>
> +      <param name="avatar-disk" policy="optional"/>
> +    </config>
> +    <injection-method>disk</injection-method>
> +
> +    <template>
> +      <xsl:stylesheet
> +        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> +        version="1.0">
> +
> +        <xsl:output method="xml" indent="yes"/>
> +
> +        <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 name="network-device">
> +          <xsl:choose>
> +            <xsl:when test="contains(os/version, 'tumbleweed')">
> +              <xsl:text>ens3</xsl:text>
> +            </xsl:when>
> +            <xsl:otherwise>
> +              <xsl:text>eth0</xsl:text>
> +            </xsl:otherwise>
> +          </xsl:choose>
> +        </xsl:template>
> +
> +        <xsl:template name="repo-oss">
> +          <xsl:text> </xsl:text>
> +          <xsl:text>http://download.opensuse.org/</xsl:text>
> +          <xsl:if test="not(contains(os/version, 'tumbleweed'))">
> +            <xsl:text>distribution/leap/</xsl:text>
> +          </xsl:if>
> +          <xsl:value-of select="os/version"/>
> +          <xsl:text>/repo/oss/</xsl:text>
> +        </xsl:template>
> +
> +        <xsl:template name="repo-non-oss">
> +          <xsl:text>http://download.opensuse.org/</xsl:text>
> +          <xsl:if test="not(contains(os/version, 'tumbleweed'))">
> +            <xsl:text>distribution/leap/</xsl:text>
> +          </xsl:if>
> +          <xsl:value-of select="os/version"/>
> +          <xsl:text>/repo/non-oss/</xsl:text>
> +        </xsl:template>
> +
> +        <xsl:template name="repo-update-oss">
> +          <xsl:text>http://download.opensuse.org/update/</xsl:text>
> +          <xsl:if test="not(contains(os/version, 'tumbleweed'))">
> +            <xsl:text>leap/</xsl:text>
> +          </xsl:if>
> +          <xsl:value-of select="os/version"/>
> +          <xsl:text>/<xsl:text>
> +          <xsl:if test="not(contains(os/version, 'tumbleweed'))">
> +            <xsl:text>oss/</xsl:text>
> +          </xsl:if>
> +        </xsl:template>
> +
> +        <xsl:template name="repo-update-non-oss">
> +          <xsl:text>http://download.opensuse.org/update/leap/</xsl:text>
> +          <xsl:value-of select="os/version"/>
> +          <xsl:text>/non-oss/</xsl:text>
> +        </xsl:template>
> +
> +        <xsl:template match="/command-line">
> +            <xsl:text>autoyast=device://sda/</xsl:text>
> +            <xsl:value-of select="script/expected-filename"/>
> +        </xsl:template>
> +
> +        <xsl:template match="/install-script-config">
> +          <profile xmlns="http://www.suse.com/1.0/yast2ns" xmlns:config="http://www.suse.com/1.0/configns">
> +            <bootloader>
> +              <device_map config:type="list">
> +                <device_map_entry>
> +                  <firmware>hd0</firmware>
> +                  <linux>/dev/vda</linux>
> +                </device_map_entry>
> +              </device_map>
> +              <global>
> +                <activate>true</activate>
> +                <append> resume=/dev/vda1 splash=silent quiet showopts</append>
> +                <boot_boot>false</boot_boot>
> +                <boot_extended>false</boot_extended>
> +                <boot_mbr>false</boot_mbr>
> +                <boot_root>true</boot_root>
> +                <default>0</default>
> +                <distributor/>
> +                <failsafe_disabled>true</failsafe_disabled>
> +                <generic_mbr>true</generic_mbr>
> +                <gfxmode>auto</gfxmode>
> +                <os_prober>true</os_prober>
> +                <terminal>gfxterm</terminal>
> +                <timeout config:type="integer">8</timeout>
> +                <vgamode/>
> +              </global>
> +              <loader_type>grub2</loader_type>
> +            </bootloader>
> +            <firewall>
> +              <enable_firewall config:type="boolean">false</enable_firewall>
> +              <start_firewall config:type="boolean">false</start_firewall>
> +            </firewall>
> +            <general>
> +              <ask-list config:type="list"/>
> +              <mode>
> +                <confirm config:type="boolean">false</confirm>
> +                <final_reboot config:type="boolean">true</final_reboot>
> +              </mode>
> +              <proposals config:type="list"/>
> +              <signature-handling>
> +                <accept_file_without_checksum config:type="boolean">true</accept_file_without_checksum>
> +                <accept_non_trusted_gpg_key config:type="boolean">true</accept_non_trusted_gpg_key>
> +                <accept_unknown_gpg_key config:type="boolean">true</accept_unknown_gpg_key>
> +                <accept_unsigned_file config:type="boolean">true</accept_unsigned_file>
> +                <accept_verification_failed config:type="boolean">false</accept_verification_failed>
> +                <import_gpg_key config:type="boolean">true</import_gpg_key>
> +              </signature-handling>
> +              <storage>
> +                <partition_alignment config:type="symbol">align_optimal</partition_alignment>
> +                <start_multipath config:type="boolean">false</start_multipath>
> +              </storage>
> +            </general>
> +            <keyboard>
> +              <keyboard_values>
> +                <delay/>
> +                <discaps config:type="boolean">false</discaps>
> +                <numlock>bios</numlock>
> +                <rate/>
> +              </keyboard_values>
> +              <keymap><xsl:call-template name="l10n-keyboard"/></keymap>
> +            </keyboard>
> +            <language><xsl:call-template name="l10n-language"/></language>
> +          <networking>
> +            <managed config:type="boolean">false</managed>
> +            <interfaces  config:type="list">
> +              <interface>
> +                <bootproto>dhcp</bootproto>
> +                  <device><xsl:call-template name="network-device"/></device>
> +                  <startmode>auto</startmode>
> +                  <usercontrol>no</usercontrol>
> +                </interface>
> +            </interfaces>
> +          </networking>
> +          <partitioning config:type="list">
> +            <drive>
> +              <device>/dev/vda</device>
> +              <type config:type="symbol">CT_DISK</type>
> +              <use>all</use>
> +            </drive>
> +          </partitioning>
> +            <report>
> +              <errors>
> +                <log config:type="boolean">true</log>
> +                <show config:type="boolean">true</show>
> +                <timeout config:type="integer">0</timeout>
> +              </errors>
> +              <messages>
> +                <log config:type="boolean">true</log>
> +                <show config:type="boolean">true</show>
> +                <timeout config:type="integer">10</timeout>
> +              </messages>
> +              <warnings>
> +                <log config:type="boolean">true</log>
> +                <show config:type="boolean">true</show>
> +                <timeout config:type="integer">10</timeout>
> +              </warnings>
> +              <yesno_messages>
> +                <log config:type="boolean">true</log>
> +                <show config:type="boolean">true</show>
> +                <timeout config:type="integer">10</timeout>
> +              </yesno_messages>
> +            </report>
> +            <scripts>
> +              <chroot-scripts config:type="list">
> +                <script>
> +                  <chrooted config:type="boolean">true</chrooted>
> +                  <source>
> +pam-config -a --unix-nullok
> +pam-config -a --nullok
> +
> +<xsl:choose>
> +  <xsl:when test="config/user-password != ''">
> +useradd <xsl:value-of select='config/user-login'/>
> +passwd -d <xsl:value-of select='config/user-login'/>
> +  </xsl:when>
> +</xsl:choose>
> +
> +<xsl:choose>
> +  <xsl:when test="config/avatar-location != ''">
> +# Set user avatar
> +mkdir /mnt/unattended-media
> +mount <xsl:value-of select='config/avatar-disk'/> /mnt/unattended-media
> +cp /mnt/unattended-media<xsl:value-of select="config/avatar-location"/> /var/lib/AccountsService/icons/<xsl:value-of select="config/user-login"/>
> +umount /mnt/unattended-media
> +
> +echo "
> +[User]
> +Language=<xsl:value-of select="config/l10n-language"/>.UTF-8
> +XSession=gnome
> +Icon=/var/lib/AccountsService/icons/<xsl:value-of select="config/user-login"/>
> +" >> /var/lib/AccountsService/users/<xsl:value-of select="config/user-login"/>
> +  </xsl:when>
> +</xsl:choose>
> +
> +# Enable default OpenSUSE repos
> +zypper ar -f <xsl:call-template name="repo-oss"/> repo-oss
> +zypper ar -f <xsl:call-template name="repo-non-oss"/> repo-non-oss
> +zypper ar -f <xsl:call-template name="repo-update-oss"/> repo-update-oss
> +<xsl:if test="not(contains(os/version, 'tumbleweed'))">
> +  zypper ar -f <xsl:call-template name="repo-update-non-oss"/> repo-update-non-oss
> +</xsl:if>
> +                  </source>
> +                </script>
> +              </chroot-scripts>
> +            </scripts>
> +            <services-manager>
> +              <default_target>graphical</default_target>
> +              <services>
> +                <enable config:type="list">
> +                  <service>NetworkManager</service>
> +                </enable>
> +              </services>
> +            </services-manager>
> +            <software>
> +              <packages config:type="list">
> +                <package>autoyast2-installation</package>
> +                <package>gdm</package>
> +              </packages>
> +              <patterns config:type="list">
> +                <pattern>apparmor</pattern>
> +                <pattern>apparmor_opt</pattern>
> +                <pattern>console</pattern>
> +                <pattern>devel_basis</pattern>
> +                <pattern>enhanced_base</pattern>
> +                <pattern>enhanced_base_opt</pattern>
> +                <pattern>fonts</pattern>
> +                <pattern>gnome_basis</pattern>
> +                <pattern>gnome</pattern>
> +                <pattern>print_server</pattern>
> +                <pattern>sw_management</pattern>
> +                <pattern>yast2_basis</pattern>
> +                <pattern>yast2_install_wf</pattern>
> +              </patterns>
> +            </software>
> +            <sysconfig config:type="list">
> +              <sysconfig_entry>
> +                <sysconfig_key>DISPLAYMANAGER</sysconfig_key>
> +                <sysconfig_path>/etc/sysconfig/displaymanager</sysconfig_path>
> +                <sysconfig_value>gdm</sysconfig_value>
> +              </sysconfig_entry>
> +              <sysconfig_entry>
> +                <sysconfig_key>DEFAULT_WM</sysconfig_key>
> +                <sysconfig_path>/etc/sysconfig/windowmanager</sysconfig_path>
> +                <sysconfig_value>gnome</sysconfig_value>
> +              </sysconfig_entry>
> +            </sysconfig>
> +            <timezone>
> +              <hwclock>UTC</hwclock>
> +              <timezone><xsl:value-of select="config/l10n-timezone"/></timezone>
> +            </timezone>
> +            <user_defaults>
> +              <expire/>
> +              <group>100</group>
> +              <groups/>
> +              <home>/home</home>
> +              <inactive>-1</inactive>
> +              <no_groups config:type="boolean">true</no_groups>
> +              <shell>/bin/bash</shell>
> +              <skel>/etc/skel</skel>
> +              <umask>022</umask>
> +            </user_defaults>
> +            <users config:type="list">
> +              <user>
> +                <encrypted config:type="boolean">false</encrypted>
> +                <fullname>root</fullname>
> +                <gid>0</gid>
> +                <home>/root</home>
> +                <shell>/bin/bash</shell>
> +                <uid>0</uid>
> +                <user_password><xsl:value-of select="config/admin-password"/></user_password>
> +                <username>root</username>
> +              </user>
> +              <user>
> +                <encrypted config:type="boolean">false</encrypted>
> +                <fullname><xsl:value-of select="config/user-fullname"/></fullname>
> +                <user_password><xsl:value-of select="config/user-password"/></user_password>
> +                <username><xsl:value-of select="config/user-login"/></username>
> +              </user>
> +            </users>
> +          </profile>
> +        </xsl:template>
> +      </xsl:stylesheet>
> +    </template>
> +  </install-script>
> +</libosinfo>
> --
> 2.7.3
>
> _______________________________________________
> Libosinfo mailing list
> Libosinfo at redhat.com
> https://www.redhat.com/mailman/listinfo/libosinfo



-- 
Fabiano Fidêncio




More information about the Libosinfo mailing list