Browse Source

Switch to casper and Calamares-based OEM install

merge-requests/1/head
Matthias Klumpp 3 years ago
parent
commit
07c08c5ce5
  1. 21
      auto/config
  2. 4
      config/bootloaders/isolinux.live/live.cfg.in
  3. 4
      config/bootloaders/isolinux.oem/live.cfg.in
  4. 75
      config/includes.chroot.oem/home/user/.bashrc
  5. 22
      config/includes.chroot.oem/home/user/.profile
  6. 90
      config/includes.chroot.oem/var/lib/pureos-oem/di-preseed.cfg.in
  7. 12
      config/includes.chroot.oem/var/lib/pureos-oem/grub/grub.cfg
  8. 1
      config/includes.chroot.oem/var/lib/pureos-oem/grub/loopback.cfg

21
auto/config

@ -117,12 +117,8 @@ EOF
;;
esac
rm -f config/hooks/normal/004-setup-oem.hook.chroot
rm -rf config/includes.chroot
rm -rf config/bootloaders/isolinux
cp -r config/bootloaders/isolinux.live/ config/bootloaders/isolinux
cp -f config/bootloaders/live.cfg.in config/bootloaders/isolinux/
;;
"oem")
@ -133,11 +129,10 @@ EOF
FLAVOR_PRETTY="GNOME OEM"
# create package config for GNOME (OEM)
cat > config/package-lists/desktop.list.chroot <<EOF
pureos-minimal
pureos-desktop
linux-image-$kernel_flavour
calamares-pureos-oem
grub-pc
parted
python3-parted
EOF
;;
@ -150,16 +145,16 @@ EOF
;;
esac
rm -f config/hooks/normal/004-setup-oem.hook.chroot
cp config/hooks.oem/004-setup-oem.hook.chroot config/hooks/normal/
rm -rf config/includes.chroot
cp -r config/includes.chroot.oem config/includes.chroot
rm -rf config/bootloaders/isolinux/
cp -r config/bootloaders/isolinux.oem config/bootloaders/isolinux
;;
esac
# include the live tools
cat > config/package-lists/live.list.chroot <<EOF
casper
EOF
# Configure bootloader
sed -e s/@VERSION@/"$VERSION_PRETTY"/g config/bootloaders/splash.svg.in > config/bootloaders/splash.svg
mv -f config/bootloaders/splash.svg config/bootloaders/isolinux/
@ -168,6 +163,7 @@ IMAGE_FILENAME=pureos-${dist_version}-${FLAVOR}_${CURRENT_DATE}
lb config noauto \
--distribution "$dist" \
--mode pureos \
--binary-images iso-hybrid \
--archive-areas "main" \
--mirror-bootstrap $PUREOS_REPO \
@ -182,6 +178,7 @@ lb config noauto \
--firmware-binary true \
--firmware-chroot true \
--initsystem systemd \
--initramfs casper \
--iso-application "PureOS GNU/Linux" \
--iso-publisher "Purism" \
--iso-volume "PureOS $dist_version $FLAVOR_PRETTY" \

4
config/bootloaders/live.cfg.in → config/bootloaders/isolinux.live/live.cfg.in

@ -1,12 +1,12 @@
label live-@FLAVOUR@
menu label ^Start PureOS Live
menu label ^Test or install PureOS
menu default
linux @LINUX@
initrd @INITRD@
append @APPEND_LIVE@
label live-@FLAVOUR@-failsafe
menu label Start PureOS Live (^failsafe)
menu label Test or install PureOS (^failsafe)
linux @LINUX@
initrd @INITRD@
append @APPEND_LIVE_FAILSAFE@

4
config/bootloaders/isolinux.oem/live.cfg.in

@ -1,12 +1,12 @@
label live-@FLAVOUR@
menu label ^Install PureOS OEM and erase disk
menu label ^Install PureOS OEM
menu default
linux @LINUX@
initrd @INITRD@
append @APPEND_LIVE@
label live-@FLAVOUR@-failsafe
menu label Install PureOS OEM and erase disk (^failsafe)
menu label Install PureOS OEM (^failsafe)
linux @LINUX@
initrd @INITRD@
append @APPEND_LIVE_FAILSAFE@

75
config/includes.chroot.oem/home/user/.bashrc

@ -1,75 +0,0 @@
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples
# If not running interactively, don't do anything
[ -z "$PS1" ] && return
# don't put duplicate lines in the history. See bash(1) for more options
# don't overwrite GNU Midnight Commander's setting of `ignorespace'.
export HISTCONTROL=$HISTCONTROL${HISTCONTROL+,}ignoredups
# ... or force ignoredups and ignorespace
export HISTCONTROL=ignoreboth
# append to the history file, don't overwrite it
shopt -s histappend
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1400
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then
debian_chroot=$(cat /etc/debian_chroot)
fi
# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
xterm-color) color_prompt=yes;;
esac
# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes
if [ -n "$force_color_prompt" ]; then
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
# We have color support; assume it's compliant with Ecma-48
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
# a case would tend to support setf rather than setaf.)
color_prompt=yes
else
color_prompt=
fi
fi
# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
#if [ -f ~/.bash_aliases ]; then
# . ~/.bash_aliases
#fi
# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
eval "`dircolors -b`"
alias ls='ls --color=auto'
#alias dir='dir --color=auto'
#alias vdir='vdir --color=auto'
#alias grep='grep --color=auto'
#alias fgrep='fgrep --color=auto'
#alias egrep='egrep --color=auto'
fi
# run PureOS OEM setup
sudo /var/lib/pureos-oem/install-pureos-oem.py

22
config/includes.chroot.oem/home/user/.profile

@ -1,22 +0,0 @@
# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.
# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
PATH="$HOME/.local/bin:$PATH"
fi

90
config/includes.chroot.oem/var/lib/pureos-oem/di-preseed.cfg.in

@ -1,90 +0,0 @@
## Options for PureOS OEM Installation on first boot
d-i netcfg/enable boolean false
d-i clock-setup/utc-auto boolean true
d-i clock-setup/utc boolean true
d-i clock-setup/ntp boolean true
d-i apt-setup/cdrom/set-first boolean true
d-i apt-setup/cdrom/set-double boolean false
d-i apt-setup/cdrom/set-next boolean false
d-i apt-setup/cdrom/set-failed boolean false
# we won't have an internet connection, so we disable
# mirror selection.
# A mirror will be set by the late_command preseed at the end
d-i apt-setup/use_mirror boolean false
d-i mirror/country string manual
d-i mirror/http/hostname string repo.puri.sm
d-i mirror/http/directory string /pureos
d-i mirror/http/proxy string
d-i netcfg/get_hostname string librem
d-i netcfg/get_hostname seen false
d-i pkgsel/install-language-support boolean false
d-i pkgsel/update-policy select none
d-i partman/default_filesystem string ext4
d-i partman-auto/disk string %TARGET_DISK%
d-i partman-lvm/device_remove_lvm boolean true
d-i partman-md/device_remove_md boolean true
d-i partman-lvm/confirm boolean true
d-i partman-lvm/confirm_nooverwrite boolean true
d-i partman-auto-lvm/guided_size string max
d-i partman-auto/method string crypto
d-i partman-auto/choose_recipe select root-pureos
d-i partman-auto-lvm/new_vg_name string crypt
d-i partman/early_command \
string sed -i.bak 's/-f $id\/skip_erase/-d $id/g' /lib/partman/lib/crypto-base.sh
d-i partman-auto/expert_recipe string \
root-pureos :: \
1000 2000 2100 ext4 \
$primary{ } \
method{ keep } \
use_filesystem{ } filesystem{ ext4 } \
label{ rescue } \
. \
800 800 800 ext4 \
$primary{ } $bootable{ } \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext4 } \
mountpoint{ /boot } \
. \
2000 2000 2000 linux-swap \
$lvmok{ } lv_name{ swap } \
method{ swap } format{ } \
in_vg { crypt } \
. \
1000 1000 1000000000 ext4 \
$lvmok{ } lv_name{ root } \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext4 } \
mountpoint{ / } \
in_vg { crypt } \
.
d-i partman-basicfilesystems/no_mount_point boolean false
d-i partman-partitioning/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
user-setup-udeb passwd/root-login boolean false
user-setup-udeb user-setup/encrypt-home boolean true
d-i popularity-contest/participate boolean false
d-i hw-detect/load_firmware boolean false
d-i grub-installer/only_debian boolean true
d-i grub-installer/with_other_os boolean true
d-i grub-installer/choose_bootdev string %TARGET_DISK%
d-i finish-install/reboot_in_progress note
#grub-pc ucf/changeprompt string install the package maintainer's version
d-i preseed/late_command string cp /cdrom/purism/50_custom /target/etc/grub.d/50_custom; \
chmod a+x /target/etc/grub.d/50_custom; \
echo "GRUB_DISABLE_OS_PROBER=true" >> /target/etc/default/grub; \
echo -e "#\n\ndeb https://repo.puri.sm/pureos/ green main" > /target/etc/apt/sources.list; \
in-target update-grub;

12
config/includes.chroot.oem/var/lib/pureos-oem/grub/grub.cfg

@ -1,12 +0,0 @@
set default=0
set timeout=0
insmod tga
set color_normal=light-gray/black
set color_highlight=white/light-blue
menuentry "Initial Setup" {
set isofile="/pureos.iso"
linux /vmlinuz video=vesa:ywrap,mtrr vga=788 quiet iso-scan/filename=${isofile} auto=true file=/hd-media/di-preseed.cfg
initrd /initrd.gz
}

1
config/includes.chroot.oem/var/lib/pureos-oem/grub/loopback.cfg

@ -1 +0,0 @@
source /boot/grub/grub.cfg
Loading…
Cancel
Save