summaryrefslogtreecommitdiffstats
path: root/setup2hd/setup.liveslak.tpl
diff options
context:
space:
mode:
author Eric Hameleers <alien@slackware.com>2020-10-05 15:34:46 +0200
committer Eric Hameleers <alien@slackware.com>2020-10-05 15:34:46 +0200
commit70b689e6bf00338f55ae2daf1c2d0c2d972e00e8 (patch)
tree37dfca537a833973a2443133391f06c57d348e41 /setup2hd/setup.liveslak.tpl
parent9abd86d3b8c45e32bce75bb6db402868e34631b6 (diff)
downloadliveslak-70b689e6bf00338f55ae2daf1c2d0c2d972e00e8.tar.gz
liveslak-70b689e6bf00338f55ae2daf1c2d0c2d972e00e8.tar.xz
setup2hd: add option to install regular Slackware via network mirror
The setup2hd script is a modified Slackware installer. For liveslak I had originally removed all the usual SOURCE selections and only allowed for the installation of the Live OS to harddisk. However, requests were sent to also support a regular installation of Slackware using the Live ISO. That is why I have now re-added all the Slackware network install choices (via NFS, HTTP, FTP or Samba mirror). I still left out the Slackware installation using local media; the Live ISO does not contain regular Slackware packages so that would not make sense.
Diffstat (limited to '')
-rw-r--r--setup2hd/setup.liveslak.tpl173
1 files changed, 173 insertions, 0 deletions
diff --git a/setup2hd/setup.liveslak.tpl b/setup2hd/setup.liveslak.tpl
new file mode 100644
index 0000000..396412b
--- /dev/null
+++ b/setup2hd/setup.liveslak.tpl
@@ -0,0 +1,173 @@
+ # Liveslak installation routine:
+ if [ "$MAINSELECT" = "INSTALL" ]; then
+ if [ ! -r $TMP/SeTnative ]; then
+ dialog --backtitle "@CDISTRO@ Linux Setup (Live Edition)" \
+ --title "CANNOT INSTALL SOFTWARE YET" --msgbox "\
+\n\
+Before you can install software, complete the following tasks:\n\
+\n\
+1. Set up your target Linux partition(s).\n\
+\n\
+You may also optionally remap your keyboard and set up your\n\
+swap partition(s). \n\
+\n\
+Press ENTER to return to the main menu." 16 68
+ continue
+ fi
+
+ # --------------------------------------------- #
+ # Slackware Live Edition - install to disk: #
+ # --------------------------------------------- #
+
+ # Buy us some time while we are calculating disk usage:
+ dialog --backtitle "@CDISTRO@ Linux Setup (Live Edition)" \
+ --title "WELCOME TO @UDISTRO@ LIVE (@LIVEDE@)" --infobox \
+ "\nCalculating disk usage, please be patient ..." 5 65
+
+ ACT_MODS=$(ls -rt --indicator-style=none /mnt/live/modules/ |wc -l)
+ TOT_MODS=$(find /mnt/livemedia/@LIVEMAIN@/ -type f -name "*.sxz" |wc -l)
+ DU_LIVE=$(du -s /mnt/live/modules/ 2>/dev/null |tr -s '\t' ' ' |cut -f1 -d' ')
+ PARTFREE=$(df -P -BM $T_PX |tail -1 |tr -s '\t' ' ' |cut -d' ' -f4)
+ PARTFREE=${PARTFREE%M}
+
+ # Warn when it looks we have insufficient room:
+ if [ $PARTFREE -lt $(($DU_LIVE/1024)) ]; then
+ dialog --backtitle "@CDISTRO@ Linux Setup (Live Edition)" \
+ --title "WELCOME TO @UDISTRO@ LIVE (@LIVEDE@)" --yesno \
+ "\nAvailable space: $PARTFREE MB\nRequired space: $(($DU_LIVE/1024))\nIt looks like your hard drive partition is too small.\nDo you want to continue?" 10 65
+ retval=$?
+ if [ $retval = 1 ]; then
+ umount $T_PX
+ exit 1
+ fi
+ else
+ dialog --backtitle "@CDISTRO@ Linux Setup (Live Edition)" \
+ --title "WELCOME TO @UDISTRO@ LIVE (@LIVEDE@)" --msgbox \
+ "\nAvailable space: $PARTFREE MB\nRequired space: $(($DU_LIVE/1024)) MB\nIt looks like you're good to go!" 10 65
+ fi
+
+ (
+ # Install the Live OS by rsyncing the readonly overlay to the harddisk:
+ rsync -HAXav --whole-file --checksum-choice=none --inplace --progress --no-inc-recursive \
+ /mnt/@LIVEMAIN@fs/ $T_PX/ \
+ | awk '{ if (index($0, "to-chk=") > 0) { split($0, pieces, "to-chk="); split(pieces[2], term, ")"); split(term[1], division, "/"); print (1-(division[1]/division[2]))*100 }; fflush(); }' \
+ | sed --unbuffered 's/^\([0-9]*\).*/\1/'
+ ) | dialog --backtitle "@CDISTRO@ Linux Setup (Live Edition)" \
+ --title "INSTALLING @UDISTRO@ LIVE (@LIVEDE@) TO DISK" --gauge \
+ "\nProcessing ${TOT_MODS} @CDISTRO@ Live modules ($(( $DU_LIVE/1024 )) MB)" 8 65
+
+ #
+ # Live OS Post Install routine. If you want, you can override this routine
+ # by (re-)defining this function "live_post_install()" in a file called
+ # "/usr/share/@LIVEMAIN@/setup2hd.@DISTRO@".
+ #
+
+ live_post_install () {
+ # Re-use some of the custom configuration from 0099-@DISTRO@_zzzconf-*.sxz
+ # (some of these may not be present but the command will not fail):
+ dialog --backtitle "@CDISTRO@ Linux Setup (Live Edition)" \
+ --title "POST-INSTALL @UDISTRO@ LIVE (@LIVEDE@) DATA" --infobox \
+ "\nCopying Live modifications to hard disk ..." 5 65
+ sleep 1 # It's too fast...
+ # Do not overwrite a custom keymap:
+ if [ ! -f $T_PX/etc/rc.d/rc.keymap ]; then
+ unsquashfs -f -dest $T_PX \
+ /mnt/livemedia/@LIVEMAIN@/system/0099*zzzconf*.sxz \
+ /etc/rc.d/rc.keymap
+ fi
+ unsquashfs -f -dest $T_PX \
+ /mnt/livemedia/@LIVEMAIN@/system/0099*zzzconf*.sxz \
+ /etc/X11/xdm/liveslak-xdm \
+ /etc/X11/xorg.conf.d/30-keyboard.conf \
+ /etc/inittab \
+ /etc/skel \
+ /etc/profile.d/lang.sh \
+ /etc/rc.d/rc.font \
+ /etc/rc.d/rc.gpm \
+ /etc/slackpkg \
+ /etc/vconsole.conf
+ # Point xdm to the custom /etc/X11/xdm/liveslak-xdm/xdm-config:
+ sed -i ${T_PX}/etc/rc.d/rc.4 -e 's,bin/xdm -nodaemon,& -config /etc/X11/xdm/liveslak-xdm/xdm-config,'
+ # Remove the marker file from the filesystem root:
+ rm -f ${T_PX}/@MARKER@
+
+ # ---------------------
+ # Set up a user account,
+ dialog --title "@UDISTRO@ (@LIVEDE@) USER CREATION" \
+ --backtitle "@CDISTRO@ Linux Setup (Live Edition)" \
+ --msgbox "You will first get the chance to create your user account, \
+and set its password.\nYour account will be added to sudoers and suauth.\n\n\
+Next you will be asked to set root's password." 9 55
+ # This will set UFULLNAME, UACCOUNT and USHELL variables:
+ SeTuacct 2>&1 1> $TMP/tempresult
+ if [ $? = 0 ]; then
+ # User filled out the form, so let's get the results for
+ # UFULLNAME, UACCOUNT and USHELL:
+ source $TMP/tempresult
+ rm -f $TMP/tempresult
+ # Set a password for the new account:
+ UPASS=$(SeTupass $UACCOUNT)
+ # Create the account and set the password:
+ chroot ${T_PX} /usr/sbin/useradd -c "$UFULLNAME" -g users -G wheel,audio,cdrom,floppy,plugdev,video,power,netdev,lp,scanner,kmem,dialout,games,disk,input -u 1000 -d /home/${UACCOUNT} -m -s ${USHELL} ${UACCOUNT}
+ echo "${UACCOUNT}:${UPASS}" | chroot ${T_PX} /usr/sbin/chpasswd
+ unset UPASS
+
+ # Configure suauth:
+ cat <<EOT >${T_PX}/etc/suauth
+root:${UACCOUNT}:OWNPASS
+root:ALL EXCEPT GROUP wheel:DENY
+EOT
+ chmod 600 ${LIVE_ROOTDIR}/etc/suauth
+
+ # Configure sudoers:
+ chmod 640 ${T_PX}/etc/sudoers
+ sed -i ${T_PX}/etc/sudoers -e 's/# *\(%wheel\sALL=(ALL)\sALL\)/\1/'
+ chmod 440 ${T_PX}/etc/sudoers
+ fi # End user creation
+ # ---------------------------
+
+ if [ "$(cat $T_PX/etc/shadow | grep 'root:' | cut -f 2 -d :)" = "" ]; then
+ # There is no root password yet:
+ UPASS=$(SeTupass root)
+ echo "root:${UPASS}" | chroot ${T_PX} /usr/sbin/chpasswd
+ unset UPASS
+ fi
+
+ cat << EOF > $TMP/tempmsg
+
+ @CDISTRO@ Live Edition (@LIVEDE@) has been installed to your hard drive!
+ We installed the ${ACT_MODS} active modules (out of ${TOT_MODS} available).
+ The following configuration was copied from the Live OS to your harddisk:
+ - console font
+ - default runlevel
+ - keyboard layout
+ - language setting
+ After finishing system configuration and before rebooting, you can add any further Live modules from /@LIVEMAIN@/addons/ and /@LIVEMAIN@/optional/ to your hard drive, using a command similar to this:
+ # unsquashfs -f -dest $T_PX /mnt/livemedia/@LIVEMAIN@/addons/mymodule.sxz
+
+EOF
+ dialog --backtitle "@CDISTRO@ Linux Setup (Live Edition)" \
+ --title "POST INSTALL HINTS AND TIPS" --msgbox "`cat $TMP/tempmsg`" \
+ 20 65
+ rm $TMP/tempmsg
+
+ MAINSELECT="CONFIGURE"
+ } # END live_post_install() function
+
+
+ if [ -f /usr/share/@LIVEMAIN@/setup2hd.@DISTRO@ ]; then
+ # If the setup2hd post-configuration file exists, source it.
+ # The file should re-define the live_post_install() function.
+ . /usr/share/@LIVEMAIN@/setup2hd.@DISTRO@
+ fi
+
+ # Now, execute the function - either our own built-in version
+ # or the re-defined function from the custom setup2hd.@DISTRO@ file.
+ live_post_install
+
+ # --------------------------------------------- #
+ # Slackware Live Edition - end install to disk: #
+ # --------------------------------------------- #
+
+ fi
+ # End liveslak installation routine.