From ed2f9b744d57f946e3bd257beaa275c74bcd2755 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 18 Mar 2019 18:50:17 -0400 Subject: CI: AppImage support - Add a script for building a Calamares AppImage file (this is useful in *some* limited contexts, not a general way to distribute Calamares since it's much more efficient to use installed libs). - Add example config files for this AppImage build. - Download the linuxdeploy tools if they are missing - Document script flags some more --- data/config-appimage/branding/default/squid.png | Bin 0 -> 10796 bytes data/config-appimage/modules/displaymanager.conf | 28 ++++++++++ data/config-appimage/modules/finished.conf | 21 ++++++++ data/config-appimage/modules/keyboard.conf | 16 ++++++ data/config-appimage/modules/locale.conf | 31 ++++++++++++ data/config-appimage/modules/users.conf | 62 +++++++++++++++++++++++ data/config-appimage/modules/welcome.conf | 46 +++++++++++++++++ data/config-appimage/settings.conf | 35 +++++++++++++ 8 files changed, 239 insertions(+) create mode 100644 data/config-appimage/branding/default/squid.png create mode 100644 data/config-appimage/modules/displaymanager.conf create mode 100644 data/config-appimage/modules/finished.conf create mode 100644 data/config-appimage/modules/keyboard.conf create mode 100644 data/config-appimage/modules/locale.conf create mode 100644 data/config-appimage/modules/users.conf create mode 100644 data/config-appimage/modules/welcome.conf create mode 100644 data/config-appimage/settings.conf (limited to 'data') diff --git a/data/config-appimage/branding/default/squid.png b/data/config-appimage/branding/default/squid.png new file mode 100644 index 000000000..dbe615c18 Binary files /dev/null and b/data/config-appimage/branding/default/squid.png differ diff --git a/data/config-appimage/modules/displaymanager.conf b/data/config-appimage/modules/displaymanager.conf new file mode 100644 index 000000000..8f8e9c704 --- /dev/null +++ b/data/config-appimage/modules/displaymanager.conf @@ -0,0 +1,28 @@ +# Configure one or more display managers (e.g. SDDM) +# with a "best effort" approach. +--- +#The DM module attempts to set up all the DMs found in this list, in that precise order. +#It also sets up autologin, if the feature is enabled in globalstorage. +#The displaymanagers list can also be set in globalstorage, and in that case it overrides anything set up here. +displaymanagers: + - slim + - sddm + - lightdm + - gdm + - mdm + - lxdm + - kdm + +#Enable the following settings to force a desktop environment in your displaymanager configuration file: +#defaultDesktopEnvironment: +# executable: "startkde" +# desktopFile: "plasma" + +#If true, try to ensure that the user, group, /var directory etc. for the +#display manager are set up correctly. This is normally done by the distribution +#packages, and best left to them. Therefore, it is disabled by default. +basicSetup: false + +#If true, setup autologin for openSUSE. This only makes sense on openSUSE +#derivatives or other systems where /etc/sysconfig/displaymanager exists. +sysconfigSetup: false diff --git a/data/config-appimage/modules/finished.conf b/data/config-appimage/modules/finished.conf new file mode 100644 index 000000000..29e5e49b4 --- /dev/null +++ b/data/config-appimage/modules/finished.conf @@ -0,0 +1,21 @@ +# Configuration for the "finished" page, which is usually shown only at +# the end of the installation (successful or not). +--- +# The finished page can hold a "restart system now" checkbox. +# If this is false, no checkbox is shown and the system is not restarted +# when Calamares exits. +restartNowEnabled: true + +# Initial state of the checkbox "restart now". Only relevant when the +# checkbox is shown by restartNowEnabled. +restartNowChecked: false + +# If the checkbox is shown, and the checkbox is checked, then when +# Calamares exits from the finished-page it will run this command. +# If not set, falls back to "shutdown -r now". +restartNowCommand: "systemctl -i reboot" + +# When the last page is (successfully) reached, send a DBus notification +# to the desktop that the installation is done. This works only if the +# user as whom Calamares is run, can reach the regular desktop session bus. +notifyOnFinished: false diff --git a/data/config-appimage/modules/keyboard.conf b/data/config-appimage/modules/keyboard.conf new file mode 100644 index 000000000..ee97c3939 --- /dev/null +++ b/data/config-appimage/modules/keyboard.conf @@ -0,0 +1,16 @@ +# NOTE: you must have ckbcomp installed and runnable +# on the live system, for keyboard layout previews. +--- +# The name of the file to write X11 keyboard settings to +# The default value is the name used by upstream systemd-localed. +# Relative paths are assumed to be relative to /etc/X11/xorg.conf.d +xOrgConfFileName: "/etc/X11/xorg.conf.d/00-keyboard.conf" + +# The path to search for keymaps converted from X11 to kbd format +# Leave this empty if the setting does not make sense on your distribution. +convertedKeymapPath: "/lib/kbd/keymaps/xkb" + +# Write keymap configuration to /etc/default/keyboard, usually +# found on Debian-related systems. +# Defaults to true if nothing is set. +#writeEtcDefaultKeyboard: true diff --git a/data/config-appimage/modules/locale.conf b/data/config-appimage/modules/locale.conf new file mode 100644 index 000000000..8ae016279 --- /dev/null +++ b/data/config-appimage/modules/locale.conf @@ -0,0 +1,31 @@ +--- +# This settings are used to set your default system time zone. +# Time zones are usually located under /usr/share/zoneinfo and +# provided by the 'tzdata' package of your Distribution. +# +# Distributions using systemd can list available +# time zones by using the timedatectl command. +# timedatectl list-timezones +# +# The starting timezone (e.g. the pin-on-the-map) when entering +# the locale page can be set through keys *region* and *zone*. +# If either is not set, defaults to America/New_York. +# +region: "Europe" +zone: "Amsterdam" + + +# Enable only when your Distribution is using an +# custom path for locale.gen +#localeGenPath: "PATH_TO/locale.gen" + +# GeoIP based Language settings: +# +# GeoIP need an working Internet connection. +# +geoipUrl: "https://geoip.kde.org/v1/calamares" + +# GeoIP style. Leave commented out for the "legacy" interpretation. +# This setting only makes sense if geoipUrl is set, enabliing geoIP. +geoipStyle: "json" + diff --git a/data/config-appimage/modules/users.conf b/data/config-appimage/modules/users.conf new file mode 100644 index 000000000..64b3aac43 --- /dev/null +++ b/data/config-appimage/modules/users.conf @@ -0,0 +1,62 @@ +# Configuration for the one-user-system user module. +# +# Besides these settings, the user module also places the following +# keys into the globalconfig area, based on user input in the view step. +# +# - hostname +# - username +# - password (obscured) +# - autologinUser (if enabled, set to username) +# +# These globalconfig keys are set when the jobs for this module +# are created. +--- +# Used as default groups for the created user. +# Adjust to your Distribution defaults. +defaultGroups: + - users + - lp + - video + - network + - storage + - wheel + - audio + +# Some Distributions require a 'autologin' group for the user. +# Autologin causes a user to become automatically logged in to +# the desktop environment on boot. +# Disable when your Distribution does not require such a group. +autologinGroup: autologin +# You can control the initial state for the 'autologin checkbox' in UsersViewStep here. +# Possible values are: true to enable or false to disable the checkbox by default +doAutologin: true + +# When set to a non-empty string, Calamares creates a sudoers file for the user. +# /etc/sudoers.d/10-installer +# Remember to add sudoersGroup to defaultGroups. +# +# If your Distribution already sets up a group of sudoers in its packaging, +# remove this setting (delete or comment out the line below). Otherwise, +# the setting will be duplicated in the /etc/sudoers.d/10-installer file, +# potentially confusing users. +sudoersGroup: wheel + +# Setting this to false , causes the root account to be disabled. +setRootPassword: true +# You can control the initial state for the 'root password checkbox' in UsersViewStep here. +# Possible values are: true to enable or false to disable the checkbox by default. +# When enabled the user password is used for the root account too. +# NOTE: doReusePassword requires setRootPassword to be enabled. +doReusePassword: true + +# These are optional password-requirements that a distro can enforce +# on the user. The values given in this sample file disable each check, +# as if the check was not listed at all. +passwordRequirements: + minLength: -1 # Password at least this many characters + maxLength: -1 # Password at most this many characters + libpwquality: + - minlen=0 + - minclass=0 + +userShell: /bin/bash diff --git a/data/config-appimage/modules/welcome.conf b/data/config-appimage/modules/welcome.conf new file mode 100644 index 000000000..8dae3e957 --- /dev/null +++ b/data/config-appimage/modules/welcome.conf @@ -0,0 +1,46 @@ +# Configuration for the welcome module. The welcome page +# displays some information from the branding file. +# Which parts it displays can be configured through +# the show* variables. +# +# In addition to displaying the welcome page, this module +# can check requirements for installation. +--- +# Display settings for various buttons on the welcome page. +showSupportUrl: true +showKnownIssuesUrl: true +showReleaseNotesUrl: true + +# Requirements checking. These are general, generic, things +# that are checked. They may not match with the actual requirements +# imposed by other modules in the system. +requirements: + # Amount of available disk, in GB. Floating-point is allowed here. + # Note that this does not account for *usable* disk, so it is possible + # to pass this requirement, yet have no space to install to. + requiredStorage: 5.5 + + # Amount of available RAM, in GB. Floating-point is allowed here. + requiredRam: 1.0 + + # To check for internet connectivity, Calamares does a HTTP GET + # on this URL; on success (e.g. HTTP code 200) internet is OK. + internetCheckUrl: http://google.com + + # List conditions to check. Each listed condition will be + # probed in some way, and yields true or false according to + # the host system satisfying the condition. + # + # This sample file lists all the conditions that are known. + check: + - ram + - power + - internet + - root + - screen + # List conditions that **must** be satisfied (from the list + # of conditions, above) for installation to proceed. + # If any of these conditions are not met, the user cannot + # continue past the welcome page. + required: + - ram diff --git a/data/config-appimage/settings.conf b/data/config-appimage/settings.conf new file mode 100644 index 000000000..54026cd6e --- /dev/null +++ b/data/config-appimage/settings.conf @@ -0,0 +1,35 @@ +# Configuration file for Calamares +# Syntax is YAML 1.2 +--- +modules-search: [ usr/lib/calamares/modules ] + +# YAML: list of maps of string:string key-value pairs. +#instances: +#- id: owncloud +# module: webview +# config: owncloud.conf + +# Sequence section. This section describes the sequence of modules, both +# viewmodules and jobmodules, as they should appear and/or run. +sequence: +- show: + - welcome + - locale + - keyboard + - users + - summary +- exec: + - locale + - keyboard + - users + - displaymanager + - networkcfg +- show: + - finished + +branding: default + +prompt-install: false +# OEM mode +dont-chroot: true +disable-cancel: false -- cgit v1.2.2