summaryrefslogtreecommitdiffstats
path: root/source/installer/sources/initrd/usr/lib/setup/INSURL
diff options
context:
space:
mode:
author Patrick J Volkerding <volkerdi@slackware.com>2018-06-06 22:19:01 +0000
committer Eric Hameleers <alien@slackware.com>2018-06-07 08:58:09 +0200
commit6e00c56127b4fa2328e596ac18647fb7f27b674d (patch)
treed9cb5f96f79880fb29e1875aa169336346d94989 /source/installer/sources/initrd/usr/lib/setup/INSURL
parentec4fd2d70a99a651f8498ce4c1ca8b38b9583c39 (diff)
downloadcurrent-6e00c56127b4fa2328e596ac18647fb7f27b674d.tar.gz
current-6e00c56127b4fa2328e596ac18647fb7f27b674d.tar.xz
Wed Jun 6 22:19:01 UTC 201820180606221901
a/bash-4.4.023-x86_64-1.txz: Upgraded. a/kernel-firmware-20180604_1fa9ce3-noarch-1.txz: Upgraded. a/kernel-generic-4.14.48-x86_64-1.txz: Upgraded. a/kernel-huge-4.14.48-x86_64-1.txz: Upgraded. a/kernel-modules-4.14.48-x86_64-1.txz: Upgraded. ap/cups-2.2.8-x86_64-1.txz: Upgraded. ap/ghostscript-fonts-std-8.11-noarch-3.txz: Rebuilt. Rebuilt this and many other font packages or packages with build scripts that call mkfontdir or mkfontscale to suppress any error messages caused by collisions if another package installation is writing files to the same font directories when those utilities are run. In that case, the other package will also be running mkfontdir/mkfontscale after the files are installed, so any issues will be cleaned up then. Last one out turn off the lights, so to speak. ap/sqlite-3.24.0-x86_64-1.txz: Upgraded. ap/terminus-font-4.40-noarch-3.txz: Rebuilt. d/kernel-headers-4.14.48-x86-1.txz: Upgraded. d/rust-1.26.2-x86_64-1.txz: Upgraded. k/kernel-source-4.14.48-noarch-1.txz: Upgraded. l/elfutils-0.171-x86_64-1.txz: Upgraded. l/harfbuzz-1.7.7-x86_64-1.txz: Upgraded. l/mozilla-nss-3.37.3-x86_64-1.txz: Upgraded. l/readline-7.0.005-x86_64-1.txz: Upgraded. x/dejavu-fonts-ttf-2.37-noarch-4.txz: Rebuilt. x/font-adobe-100dpi-1.0.3-noarch-3.txz: Rebuilt. x/font-adobe-75dpi-1.0.3-noarch-3.txz: Rebuilt. x/font-adobe-utopia-100dpi-1.0.4-noarch-3.txz: Rebuilt. x/font-adobe-utopia-75dpi-1.0.4-noarch-3.txz: Rebuilt. x/font-adobe-utopia-type1-1.0.4-noarch-3.txz: Rebuilt. x/font-arabic-misc-1.0.3-noarch-3.txz: Rebuilt. x/font-bh-100dpi-1.0.3-noarch-3.txz: Rebuilt. x/font-bh-75dpi-1.0.3-noarch-3.txz: Rebuilt. x/font-bh-lucidatypewriter-100dpi-1.0.3-noarch-3.txz: Rebuilt. x/font-bh-lucidatypewriter-75dpi-1.0.3-noarch-3.txz: Rebuilt. x/font-bh-ttf-1.0.3-noarch-3.txz: Rebuilt. x/font-bh-type1-1.0.3-noarch-3.txz: Rebuilt. x/font-bitstream-100dpi-1.0.3-noarch-3.txz: Rebuilt. x/font-bitstream-75dpi-1.0.3-noarch-3.txz: Rebuilt. x/font-bitstream-speedo-1.0.2-noarch-3.txz: Rebuilt. x/font-bitstream-type1-1.0.3-noarch-3.txz: Rebuilt. x/font-cronyx-cyrillic-1.0.3-noarch-3.txz: Rebuilt. x/font-cursor-misc-1.0.3-noarch-3.txz: Rebuilt. x/font-daewoo-misc-1.0.3-noarch-3.txz: Rebuilt. x/font-dec-misc-1.0.3-noarch-3.txz: Rebuilt. x/font-ibm-type1-1.0.3-noarch-3.txz: Rebuilt. x/font-isas-misc-1.0.3-noarch-3.txz: Rebuilt. x/font-jis-misc-1.0.3-noarch-3.txz: Rebuilt. x/font-micro-misc-1.0.3-noarch-3.txz: Rebuilt. x/font-misc-cyrillic-1.0.3-noarch-3.txz: Rebuilt. x/font-misc-ethiopic-1.0.3-noarch-3.txz: Rebuilt. x/font-misc-meltho-1.0.3-noarch-3.txz: Rebuilt. x/font-misc-misc-1.1.2-noarch-3.txz: Rebuilt. x/font-mutt-misc-1.0.3-noarch-3.txz: Rebuilt. x/font-schumacher-misc-1.1.2-noarch-3.txz: Rebuilt. x/font-screen-cyrillic-1.0.4-noarch-3.txz: Rebuilt. x/font-sony-misc-1.0.3-noarch-3.txz: Rebuilt. x/font-sun-misc-1.0.3-noarch-3.txz: Rebuilt. x/font-winitzki-cyrillic-1.0.3-noarch-3.txz: Rebuilt. x/font-xfree86-type1-1.0.4-noarch-3.txz: Rebuilt. x/liberation-fonts-ttf-2.00.1-noarch-3.txz: Rebuilt. x/libinput-1.11.0-x86_64-1.txz: Upgraded. x/sazanami-fonts-ttf-20040629-noarch-3.txz: Rebuilt. x/sinhala_lklug-font-ttf-20060929-noarch-3.txz: Rebuilt. x/tibmachuni-font-ttf-1.901b-noarch-3.txz: Rebuilt. x/ttf-indic-fonts-0.5.14-noarch-3.txz: Rebuilt. x/ttf-tlwg-0.6.4-noarch-3.txz: Rebuilt. x/urw-core35-fonts-otf-20170801_91edd6e_git-noarch-2.txz: Rebuilt. x/wqy-zenhei-font-ttf-0.8.38_1-noarch-6.txz: Rebuilt. xap/mozilla-firefox-60.0.2-x86_64-1.txz: Upgraded. This release contains security fixes and improvements. For more information, see: https://www.mozilla.org/security/known-vulnerabilities/firefox.html (* Security fix *) xap/x3270-3.3.12ga7-x86_64-5.txz: Rebuilt. isolinux/initrd.img: Rebuilt. kernels/*: Upgraded. usb-and-pxe-installers/usbboot.img: Rebuilt.
Diffstat (limited to 'source/installer/sources/initrd/usr/lib/setup/INSURL')
-rwxr-xr-xsource/installer/sources/initrd/usr/lib/setup/INSURL241
1 files changed, 241 insertions, 0 deletions
diff --git a/source/installer/sources/initrd/usr/lib/setup/INSURL b/source/installer/sources/initrd/usr/lib/setup/INSURL
new file mode 100755
index 000000000..4423406bc
--- /dev/null
+++ b/source/installer/sources/initrd/usr/lib/setup/INSURL
@@ -0,0 +1,241 @@
+#!/bin/sh
+TMP=/var/log/setup/tmp
+if [ ! -d $TMP ]; then
+ mkdir -p $TMP
+fi
+if [ -f $TMP/Punattended ]; then
+ eval $(grep "^REMOTE_URL=" $TMP/Punattended)
+ eval $(grep "^REMOTE_PATH=" $TMP/Punattended)
+fi
+
+# Return a package name that has been stripped of the dirname portion
+# and any of the valid extensions (only):
+pkgbase() {
+ PKGEXT=$(echo $1 | rev | cut -f 1 -d . | rev)
+ case $PKGEXT in
+ 'tgz' )
+ PKGRETURN=$(basename $1 .tgz)
+ ;;
+ 'tbz' )
+ PKGRETURN=$(basename $1 .tbz)
+ ;;
+ 'tlz' )
+ PKGRETURN=$(basename $1 .tlz)
+ ;;
+ 'txz' )
+ PKGRETURN=$(basename $1 .txz)
+ ;;
+ *)
+ PKGRETURN=$(basename $1)
+ ;;
+ esac
+ echo $PKGRETURN
+}
+
+package_name() {
+ STRING=$(pkgbase $1)
+ # Check for old style package name with one segment:
+ if [ "$(echo $STRING | cut -f 1 -d -)" = "$(echo $STRING | cut -f 2 -d -)" ]; then
+ echo $STRING
+ else # has more than one dash delimited segment
+ # Count number of segments:
+ INDEX=1
+ while [ ! "$(echo $STRING | cut -f $INDEX -d -)" = "" ]; do
+ INDEX=$(expr $INDEX + 1)
+ done
+ INDEX=$(expr $INDEX - 1) # don't include the null value
+ # If we don't have four segments, return the old-style (or out of spec) package name:
+ if [ "$INDEX" = "2" -o "$INDEX" = "3" ]; then
+ echo $STRING
+ else # we have four or more segments, so we'll consider this a new-style name:
+ NAME=$(expr $INDEX - 3)
+ NAME="$(echo $STRING | cut -f 1-$NAME -d -)"
+ echo $NAME
+ fi
+ fi
+}
+
+while [ 0 ]; do
+ rm -f $TMP/SeTDS $TMP/SeTmount
+ UPNRUN=$(cat $TMP/SeTupnrun)
+
+ cat << EOF > $TMP/tempmsg
+
+Good! We're all set on the local end, but now we need to know
+where to find the software packages to install. First, we need
+the URL of the ftp or http server where the Slackware sources
+are stored.
+URL examples are: 'ftp://192.168.0.1' ; 'http://172.16.10.31'
+
+EOF
+ if [ "$UPNRUN" = "0" ]; then
+ cat << EOF >> $TMP/tempmsg
+Since you're already running on the network, you should be able
+to use the hostname instead of an IP address if you wish.
+
+EOF
+ fi
+ echo "What is the URL of your FTP/HTTP server? " >> $TMP/tempmsg
+ dialog --title "ENTER URL OF FTP/HTTP SERVER" --inputbox \
+ "$(cat $TMP/tempmsg)" 15 70 $REMOTE_URL 2> $TMP/remote
+ if [ ! $? = 0 ]; then
+ rm -f $TMP/tempmsg $TMP/remote
+ exit
+ fi
+ REMOTE_URL="$(cat $TMP/remote)"
+ rm $TMP/remote
+
+ cat << EOF > $TMP/tempmsg
+
+ There must be a directory on the server with the Slackware
+ packages and files arranged in a tree like the FTP site.
+
+ The installation script needs to know the name of the
+ directory on your server that contains the series
+ subdirectories. For example, if your A series is found at
+ /slack/slackware/a, then you would respond: /slack/slackware
+
+ What is the Slackware source directory?
+EOF
+ dialog --title "SELECT SOURCE DIRECTORY" --inputbox "$(cat $TMP/tempmsg)" \
+ 17 65 $REMOTE_PATH 2> $TMP/slacksrc
+ if [ ! $? = 0 ]; then
+ rm -f $TMP/tempmsg $TMP/slacksrc
+ exit
+ fi
+ REMOTE_PATH="$(cat $TMP/slacksrc)"
+ rm $TMP/slacksrc
+
+ cat << EOF > $TMP/tempmsg
+
+In the next screen you should watch for possible errors.
+
+First, we'll download the PACKAGES.TXT from the parent of the
+directory that you entered before (which should be the root
+of the remote Slackware tree). If that succeeds, then we use
+PACKAGES.TXT to reconstruct a local cache of the package tree
+(should take a minute or less on an average system).
+After that, we're all set to go!
+
+Downloading PACKAGES.TXT at the Slackware root starts
+after you press OK.
+That file is several hundreds of KB in size so it may
+take some time to get here...
+
+EOF
+ dialog --title "DOWNLOAD INFORMATION" --msgbox "$(cat $TMP/tempmsg)" 20 70
+ rm -f $TMP/tempmsg
+
+ REMOTE_ROOT=$(dirname $REMOTE_PATH)
+ mkdir -p $TMP/treecache 2>/dev/null
+ chmod 700 $TMP/treecache
+ rm -rf $TMP/treecache/* 2>/dev/null
+ ln -sf $TMP/treecache /var/log/mount/
+ cd /var/log/mount/treecache
+ echo "Downloading PACKAGES.TXT ..." >> $TMP/wgetout
+ echo "URL: $REMOTE_URL$REMOTE_ROOT" > $TMP/wgetout
+ wget -q $REMOTE_URL$REMOTE_ROOT/PACKAGES.TXT > /dev/null 2>&1
+ RET=$?
+ if [ $RET != 0 ]; then
+ echo "> Download failed. Going to try one directory lower." >> $TMP/wgetout
+ REMOTE_ROOT=$REMOTE_PATH
+ echo "URL: $REMOTE_URL$REMOTE_ROOT" >> $TMP/wgetout
+ wget -q $REMOTE_URL$REMOTE_ROOT/PACKAGES.TXT > /dev/null 2>&1
+ RET=$?
+ [ $RET != 0 ] && echo "> Download failed again." >> $TMP/wgetout
+ fi
+ echo "" >> $TMP/wgetout
+
+ if [ -r /var/log/mount/treecache/PACKAGES.TXT ]; then
+ if head /var/log/mount/treecache/PACKAGES.TXT | grep -q "PACKAGES.TXT" ; then
+ echo "A Slackware 'PACKAGES.TXT' is available. Ready to continue!" >> $TMP/wgetout
+ DEFANSW="no"
+ fi
+ else
+ echo "No file 'PACKAGES.TXT' was found. Wrong URL?" >> $TMP/wgetout
+ DEFANSW="yes"
+ fi
+ echo "" >> $TMP/wgetout
+ echo "Do you want to try setting up FTP/HTTP again?" >> $TMP/wgetout
+ echo "" >> $TMP/wgetout
+ if [ "$DEFANSW" = "no" ]; then
+ dialog --title "DOWNLOAD RESULT" \
+ --defaultno --yesno "$(cat $TMP/wgetout)" 12 68
+ RET=$?
+ else
+ dialog --title "DOWNLOAD RESULT" \
+ --yesno "$(cat $TMP/wgetout)" 12 68
+ RET=$?
+ fi
+ if [ $RET = 1 ]; then
+ rm -f $TMP/wgetout
+ break
+ fi
+ rm -f $TMP/wgetout
+ #if [ "$UPNRUN" = "1" ]; then
+ # route del $LOCAL_NETWORK
+ # ifconfig $ENET_DEVICE down
+ #fi
+done
+
+if [ -r /var/log/mount/treecache/PACKAGES.TXT ]; then
+ echo "/var/log/mount/treecache/slackware" > $TMP/SeTDS
+ echo "-source_mounted" > $TMP/SeTmount
+ echo "/dev/null" > $TMP/SeTsource
+ echo "${REMOTE_URL},${REMOTE_ROOT}" > $TMP/SeTremotesvr
+
+ dialog --title "INITIALIZING PACKAGE TREE" --infobox \
+ "\nSetting up local cache for the FTP/HTTP server's package tree ..." 5 72
+
+ mkdir slackware isolinux 2>/dev/null
+ wget -q -P ./isolinux $REMOTE_URL$REMOTE_ROOT/isolinux/setpkg
+
+ # Create a local package tree with zero-byte package placeholders:
+ TOTALP=$(grep "PACKAGE NAME:" PACKAGES.TXT | wc -l)
+ (
+ NUMPKG=0
+ GAUGE=0
+ grep "PACKAGE " PACKAGES.TXT | while read REPLY ; do
+ case "$REPLY" in
+ "PACKAGE NAME:"*)
+ TEMP=$(echo $REPLY | cut -d: -f2)
+ PKGNAME=$(echo $TEMP)
+ PKGBASE=$(pkgbase $PKGNAME)
+ PKGSHRT=$(package_name $PKGNAME)
+ let NUMPKG=NUMPKG+1
+ if [ $(( ((100 * $NUMPKG)/$TOTALP)/5 )) -gt $(( $GAUGE/5 )) ]; then
+ GAUGE=$(( (100 * $NUMPKG)/$TOTALP ))
+ echo "$GAUGE"
+ fi
+ ;;
+ "PACKAGE LOCATION:"*)
+ TEMP=$(echo $REPLY | cut -d: -f2)
+ PKGDIR=$(echo $TEMP)
+ mkdir -p $PKGDIR
+ touch ${PKGDIR}/${PKGNAME}
+ ;;
+ "PACKAGE SIZE (compressed):"*)
+ TEMP=$(echo $REPLY | cut -d: -f2)
+ PKGSIZE=$(echo $TEMP)
+ echo "$PKGSIZE" 1> ${PKGDIR}/${PKGBASE}.size
+ ;;
+ *)
+ ;;
+ esac
+ done \
+ ) | dialog --title "INITIALIZING PACKAGE TREE" --gauge \
+ "\nProcessing ${TOTALP} Slackware packages..." 8 65
+
+ # Make sure we can select stuff from the package series:
+ dialog --title "INITIALIZING PACKAGE TREE" --infobox \
+ "\nRetrieving tagfile information for the package tree ..." 5 65
+
+ for series in $(ls -1 slackware) ; do
+ wget -q -P ./slackware/$series $REMOTE_URL$REMOTE_ROOT/slackware/$series/tagfile
+ wget -q -P ./slackware/$series $REMOTE_URL$REMOTE_ROOT/slackware/$series/maketag.ez
+ wget -q -P ./slackware/$series $REMOTE_URL$REMOTE_ROOT/slackware/$series/maketag
+ done
+else
+ dialog --title "REMOTE SERVER CONFIGURATION" --msgbox \
+ "\nFailed to configure for installation from remote server." 5 65
+fi