From dce5d0d1da24641670b607933804b524e2347980 Mon Sep 17 00:00:00 2001 From: Eric Hameleers Date: Mon, 23 Jan 2017 14:33:46 +0100 Subject: Make it obvious that some scripts are templates and cannot be used as-is. This affects: - pxeserver - setup2hd Both have been renamed with extension '.tpl' as indication that they are templates. The 'make_slackware_live.sh' script performs a series of substitutions on them to produce the actual scripts inside the ISO. --- setup2hd | 415 --------------------------------------------------------------- 1 file changed, 415 deletions(-) delete mode 100755 setup2hd (limited to 'setup2hd') diff --git a/setup2hd b/setup2hd deleted file mode 100755 index 8bd7eed..0000000 --- a/setup2hd +++ /dev/null @@ -1,415 +0,0 @@ -#!/bin/sh -# -# Copyright 1993,1994,1999 Patrick Volkerding, Moorhead, Minnesota USA -# Copyright 2001, 2003, 2004 Slackware Linux, Inc., Concord, CA -# Copyright 2006, 2007 Patrick Volkerding, Sebeka, Minnesota USA -# All rights reserved. -# -# Redistribution and use of this script, with or without modification, is -# permitted provided that the following conditions are met: -# -# 1. Redistributions of this script must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED -# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO -# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; -# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF -# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# -# As always, bug reports, suggestions, etc: volkerdi@slackware.com -# -# Modifications 2016, 2017 by Eric Hameleers -# - -# The Slackware setup depends on english language settings because it -# parses program output like that of "fdisk -l". So, we need to override -# the Live user's local language settings here: -export LANG=C -export LC_ALL=C - -if [ ! -d /mnt/livemedia/@LIVEMAIN@/system ]; then - dialog --title "LIVE MEDIA NOT ACCESSIBLE" --msgbox "\ -\n\ -Before you can install software, complete the following tasks:\n\ -\n\ -1. Mount your Live media partition on /mnt/livemedia." 16 68 - exit 1 -fi -TMP=/var/log/setup/tmp -if [ ! -d $TMP ]; then - mkdir -p $TMP -fi -rm -f $TMP/SeT* -# If a keymap was set up, restore that data: -if [ -r $TMP/Pkeymap ]; then - cp $TMP/Pkeymap $TMP/SeTkeymap -fi -echo "on" > $TMP/SeTcolor # turn on color menus -PATH="$PATH:/usr/share/@LIVEMAIN@" -export PATH; -export COLOR=on -#echo -#echo -#echo "Probing disk partitions. (Hint: if your ATAPI CD-ROM causes timeouts" -#echo "during the probe process, try hitting the eject button)" -#echo -#sleep 5 -# -# Before probing, activate any LVM partitions -# that may exist from before the boot: -vgchange -ay 1> /dev/null 2> /dev/null -if probe -l 2> /dev/null | grep -E 'Linux$' 1> /dev/null 2> /dev/null ; then - probe -l 2> /dev/null | grep -E 'Linux$' | sort 1> $TMP/SeTplist 2> /dev/null -else - dialog --title "NO LINUX PARTITIONS DETECTED" \ - --msgbox "There don't seem to be any partitions on this machine of type \ -Linux. You'll need to make at least one of these to install Linux. \ -To do this, you'll need to leave 'setup', and make the partitions using \ -'cfdisk' (MBR partitions) or 'cgdisk' (GPT partitions). For more \ -information, read the 'setup' help file from the next menu." 10 64 -fi -if [ -d /sys/firmware/efi ]; then - if ! probe -l 2> /dev/null | grep "EFI System Partition" 1> /dev/null 2> /dev/null ; then - dialog --title "NO EFI SYSTEM PARTITION DETECTED" \ - --msgbox "This machine appears to be using EFI/UEFI, but no EFI System \ -Partition was found. You'll need to make an EFI System Partition in order \ -to boot from the hard drive. To do this, leave 'setup', and \ -use 'cgdisk' to make a 100MB partition of type EF00. For more information, \ -read the 'setup' help file from the next menu." 10 64 - fi -fi -T_PX="/setup2hd" -mkdir -p ${T_PX} -echo "$T_PX" > $TMP/SeTT_PX -ROOT_DEVICE="`mount | grep "on / " | cut -f 1 -d ' '`" -echo "$ROOT_DEVICE" > $TMP/SeTrootdev -if mount | grep /var/log/mount 1> /dev/null 2> /dev/null ; then # clear source - umount /var/log/mount # location -fi -# Anything mounted on /var/log/mount now is a fatal error: -if mount | grep /var/log/mount 1> /dev/null 2> /dev/null ; then - echo "Can't umount /var/log/mount. Reboot machine and run setup again." - exit -fi -# If the mount table is corrupt, the above might not do it, so we will -# try to detect Linux and FAT32 partitions that have slipped by: -if [ -d /var/log/mount/lost+found -o -d /var/log/mount/recycled \ - -o -r /var/log/mount/io.sys ]; then - echo "Mount table corrupt. Reboot machine and run setup again." - exit -fi -rm -f /var/log/mount 2> /dev/null -rmdir /var/log/mount 2> /dev/null -mkdir /var/log/mount 2> /dev/null - -while [ 0 ]; do - - dialog --title "@CDISTRO@ Linux Setup (version @SL_VERSION@)" \ ---menu \ -"Welcome to @CDISTRO@ Linux Setup (Live Edition).\n\ -Select an option below using the UP/DOWN keys and SPACE or ENTER.\n\ -Alternate keys may also be used: '+', '-', and TAB." 18 72 9 \ -"HELP" "Read the @CDISTRO@ Setup HELP file" \ -"KEYMAP" "Remap your keyboard if you're not using a US one" \ -"ADDSWAP" "Set up your swap partition(s)" \ -"TARGET" "Set up your target partitions" \ -"INSTALL" "Install @CDISTRO@ Live to disk" \ -"CONFIGURE" "Reconfigure your Linux system" \ -"EXIT" "Exit @CDISTRO@ Linux Setup" 2> $TMP/hdset - if [ ! $? = 0 ]; then - rm -f $TMP/hdset $TMP/SeT* - exit - fi - MAINSELECT="`cat $TMP/hdset`" - rm $TMP/hdset - - # Start checking what to do. Some modules may reset MAINSELECT to run the - # next item in line. - - if [ "$MAINSELECT" = "HELP" ]; then - SeTfdHELP - fi - - if [ "$MAINSELECT" = "KEYMAP" ]; then - SeTkeymap - if [ -r $TMP/SeTkeymap ]; then - MAINSELECT="ADDSWAP" - fi - fi - - if [ "$MAINSELECT" = "MAKE TAGS" ]; then - SeTmaketag - fi - - if [ "$MAINSELECT" = "ADDSWAP" ]; then - SeTswap - if [ -r $TMP/SeTswap ]; then - MAINSELECT="TARGET" - elif [ -r $TMP/SeTswapskip ]; then - # Go ahead to TARGET without swap space: - MAINSELECT="TARGET" - fi - fi - - if [ "$MAINSELECT" = "TARGET" ]; then - SeTpartitions - SeTEFI - SeTDOS - if [ -r $TMP/SeTnative ]; then - MAINSELECT="INSTALL" - fi - fi - - if [ "$MAINSELECT" = "INSTALL" ]; then - if [ ! -r $TMP/SeTnative ]; then - dialog --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 --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/@LIVEMAIN@fs/ |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 --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 --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 -Hav --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 --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 --title "POST-INSTALL @UDISTRO@ LIVE (@LIVEDE@) DATA" --infobox \ - "\nCopying Live modifications to hard disk ..." 5 65 - # 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/profile.d/lang.sh \ - /etc/rc.d/rc.font \ - /etc/rc.d/rc.gpm \ - /etc/slackpkg - # 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@ - - 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 --title "POST INSTALL HINTS AND TIPS" --msgbox "`cat $TMP/tempmsg`" \ - 20 65 - rm $TMP/tempmsg - - MAINSELECT="CONFIGURE" - } - - 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 - - if [ "$MAINSELECT" = "CONFIGURE" ]; then - # Patch (e)liloconfig on the target systems to remove hardcoded /mnt: - if [ -f /sbin/liloconfig -a -f $T_PX/sbin/liloconfig ]; then - cat /sbin/liloconfig > $T_PX/sbin/liloconfig - fi - if [ -f /usr/sbin/eliloconfig -a -f $T_PX/usr/sbin/eliloconfig ]; then - cat /usr/sbin/eliloconfig > $T_PX/usr/sbin/eliloconfig - fi - SeTconfig - REPLACE_FSTAB=Y - if [ -r $TMP/SeTnative ]; then - if [ -r $T_PX/etc/fstab ]; then - dialog --title "REPLACE /etc/fstab?" --yesno "You already have an \ -/etc/fstab on your install partition. If you were just adding software, \ -you should probably keep your old /etc/fstab. If you've changed your \ -partitioning scheme, you should use the new /etc/fstab. Do you want \ -to replace your old /etc/fstab with the new one?" 10 58 - if [ ! $? = 0 ]; then - REPLACE_FSTAB=N - fi - fi - if [ "$REPLACE_FSTAB" = "Y" ]; then - cat /dev/null > $T_PX/etc/fstab - if [ -r $TMP/SeTswap ]; then - cat $TMP/SeTswap > $T_PX/etc/fstab - fi - cat $TMP/SeTnative >> $T_PX/etc/fstab - if [ -r $TMP/SeTDOS ]; then - cat $TMP/SeTDOS >> $T_PX/etc/fstab - fi - printf "%-16s %-16s %-11s %-16s %-3s %s\n" "#/dev/cdrom" "/mnt/cdrom" "auto" "noauto,owner,ro,comment=x-gvfs-show" "0" "0" >> $T_PX/etc/fstab - printf "%-16s %-16s %-11s %-16s %-3s %s\n" "/dev/fd0" "/mnt/floppy" "auto" "noauto,owner" "0" "0" >> $T_PX/etc/fstab - printf "%-16s %-16s %-11s %-16s %-3s %s\n" "devpts" "/dev/pts" "devpts" "gid=5,mode=620" "0" "0" >> $T_PX/etc/fstab - printf "%-16s %-16s %-11s %-16s %-3s %s\n" "proc" "/proc" "proc" "defaults" "0" "0" >> $T_PX/etc/fstab - printf "%-16s %-16s %-11s %-16s %-3s %s\n" "tmpfs" "/dev/shm" "tmpfs" "defaults" "0" "0" >> $T_PX/etc/fstab - fi - dialog --title "SETUP COMPLETE" --msgbox "System configuration \ -and installation is complete. \ -\n\nYou may now reboot your system." 7 55 - fi - fi - - if [ "$MAINSELECT" = "EXIT" ]; then - break - fi - -done # end of main loop -sync - -chmod 755 $T_PX -if [ -d $T_PX/tmp ]; then - chmod 1777 $T_PX/tmp -fi -if mount | grep /var/log/mntiso 1> /dev/null 2> /dev/null ; then - umount -f /var/log/mntiso -fi -if mount | grep /var/log/mount 1> /dev/null 2> /dev/null ; then - umount /var/log/mount -fi -# Anything mounted on /var/log/mount now is a fatal error: -if mount | grep /var/log/mount 1> /dev/null 2> /dev/null ; then - exit -fi -# If the mount table is corrupt, the above might not do it, so we will -# try to detect Linux and FAT32 partitions that have slipped by: -if [ -d /var/log/mount/lost+found -o -d /var/log/mount/recycled \ - -o -r /var/log/mount/io.sys ]; then - exit -fi -rm -f /var/log/mount 2> /dev/null -rmdir /var/log/mount 2> /dev/null -mkdir /var/log/mount 2> /dev/null -chmod 755 /var/log/mount - -# An fstab file is indicative of an OS installation, rather than -# just loading the "setup" script and selecting "EXIT" -if [ -f ${T_PX}/etc/fstab ]; then - # umount CD: - if [ -r $TMP/SeTCDdev ]; then - if mount | grep iso9660 > /dev/null 2> /dev/null ; then - umount `mount | grep iso9660 | cut -f 1 -d ' '` - fi - eject -s `cat $TMP/SeTCDdev` - # Tell the user to remove the disc, if one had previously been mounted - # (it should now be ejected): - dialog \ - --clear \ - --title "@CDISTRO@ Linux Setup is complete" "$@" \ - --msgbox "\nPlease remove the installation disc.\n" 7 40 - fi - # Offer to reboot or drop to shell: - dialog \ - --title "@CDISTRO@ Linux Setup is complete" "$@" \ - --yesno \ - "\nWould you like to reboot your system?\n\n\n\ -If you choose \"No\", you will be dropped to a shell.\n" 11 50 - retval=$? - if [ $retval = 1 ]; then - clear - echo - echo "You may now reboot your system once you are ready." - echo "You can issue the 'reboot' command; or if your system has" - echo "a keyboard attached, you can use the key combination: control+alt+delete" - echo - else - touch /reboot - fi -fi - -# Fix the date: -fixdate - -# final cleanup -rm -f $TMP/tagfile $TMP/SeT* $TMP/tar-error $TMP/unsquash_output $TMP/unsquash_error $TMP/PKGTOOL_REMOVED -rm -f /var/log/mount/treecache -rmdir /var/log/mntiso 2>/dev/null -rm -rf $TMP/treecache -rm -rf $TMP/pkgcache -rmdir ${T_PX}/tmp/orbit-root 2> /dev/null - -# If the OS had been installed and the user elected to reboot: -if [ -f /reboot ]; then - clear - echo "** Starting reboot **" - sleep 1 - reboot -fi - -# end slackware setup script -- cgit v1.2.3