diff options
-rw-r--r-- | Makefile | 4 | ||||
-rw-r--r-- | NEWS | 10 | ||||
-rw-r--r-- | conf/14.2-15.0.repl | 10 | ||||
-rw-r--r-- | slackupgrade | 42 |
4 files changed, 50 insertions, 16 deletions
@@ -16,13 +16,13 @@ # <http://www.gnu.org/licenses/>. PACKAGE = slackupgrade -VERSION = 2.1 +VERSION = 2.3 SBINDIR = /sbin MANDIR = /usr/man MAN8DIR = $(MANDIR)/man8 CONFDIR = /etc/$(PACKAGE) -CONFFILES = conf/14.0-14.1.repl conf/14.1-14.2.repl +CONFFILES = conf/14.0-14.1.repl conf/14.1-14.2.repl conf/14.2-15.0.repl help:; @echo "Avalable targets:" @@ -1,8 +1,16 @@ -slackupgrade -- history of user-visible changes. 2020-03-28 +slackupgrade -- history of user-visible changes. 2022-04-30 See the end of file for copying conditions. Please send slackupgrade bug reports to <gray+slackupgrade@gnu.org.ua> +Version 2.3, 2022-04-30 + +* Support for Slackware 15.0 + +Version 2.2, 2020-03-29 + +* Fix the -k option. + Version 2.1, 2020-03-28 * Bugfix in the 14.1-14.2 replacement map. diff --git a/conf/14.2-15.0.repl b/conf/14.2-15.0.repl new file mode 100644 index 0000000..4bb2170 --- /dev/null +++ b/conf/14.2-15.0.repl @@ -0,0 +1,10 @@ +aaa_elflibs aaa_libraries +ash dash +glibc-solibs aaa_glibc-solibs +man man-db +mailx s-nail +python python2 +qt qt5 +slocate mlocate +tetex texlive +openldap-client openldap diff --git a/slackupgrade b/slackupgrade index f00e20b..b7eb5c1 100644 --- a/slackupgrade +++ b/slackupgrade @@ -94,7 +94,8 @@ function tempdir_create() { } function tempdir_remove() { - rm -rf $tempdir $onexit_remove_list + rm -rf $tempdir + dropfile $onexit_remove_list } function usage() { @@ -165,7 +166,7 @@ function abend() { function package_file_name() { pkg=$(awk -vname=$1 '$1==name { print $2 }' $avail_index) if [ -z "$pkg" ]; then - error "package $name not found in index (should not happen!)" + error "package $1 not found in index (should not happen!)" else echo $pkg fi @@ -285,7 +286,7 @@ function getfile() { # Removes FILE, if it has been downloaded from the remote repository, function dropfile() { if [ -n "$remote" ] || [ $strip_series -eq 1 ]; then - rm $1 + rm "$@" fi } @@ -426,7 +427,7 @@ function abspath() { eval $name=$val ;; esac -} +} # ########## # Main @@ -548,7 +549,7 @@ onexit_remove $checksums announce=$(tail +13 $checksums | \ sed -n -r\ - -e 's/^[0-9a-fA-F]+[[:space:]]+(\.\/ANNOUNCE\.[[:digit:]_]+)$/\1/p') + -e 's/^[0-9a-fA-F]+[[:space:]]+(\.\/ANNOUNCE\.[[:digit:]_.]+)$/\1/p') if [ -z "$announce" ]; then abend "ANNOUNCE not found in $rooturl" fi @@ -624,26 +625,26 @@ else fi # Create $remove_report and the list of installation candidates. -if [ -f "$SLACKUPGRADE_CONFDIR/$VERSION-$newversion.repl" ]; then - info "reading $SLACKUPGRADE_CONFDIR/$VERSION-$newversion.repl" +replace_file="$SLACKUPGRADE_CONFDIR/$VERSION-$newversion.repl" +rename_file=rename.list +if [ -f "$replace_file" ]; then + info "reading $replace_file" # Update candidates and save the replacement map in a temporary. awk '{ sub(/#.*$/,""); sub(/[[:space:]]+$/,"") } /\\$/ { sub(/\\$/,""); p = p $0; next } NF == 0 { if (p) print p; p = ""; next } { print p $0; p="" }' \ - $SLACKUPGRADE_CONFDIR/$VERSION-$newversion.repl | \ + $replace_file | \ sort +0 -1 | \ - tee rename.$$ | \ + tee rename.list | \ join - remove.list | \ cut -d ' ' -f 2- | \ tr ' ' '\n' | \ cat - candidates.$$ | \ sort -u > candidates # Use the temporary to remove the original package names from the report. - awk '{print $1}' rename.$$ | \ + awk '{print $1}' rename.list | \ comm -13 - remove.list > $remove_report - # Clean up - rm rename.$$ else cp remove.list $remove_report mv candidates.$$ candidates @@ -769,6 +770,10 @@ if [ -n "$remote" ]; then # number of dependencies. pkg_names="$pkg_names aaa_elflibs wget" fi + +if [ -f $rename_file ]; then + pkg_names=$(echo "$pkg_names" | tr ' ' '\n' | sort | join -j 1 -a 1 - rename.list | cut -d ' ' -f 2- | sort | tr '\n' ' ') +fi pkg_re='^('$(echo "$pkg_names" | sed -r -e 's/ +/|/g')')$' pkg_files= @@ -784,7 +789,14 @@ do done info "installing essential packages" -upgrade_local $pkg_files +for pkg in $pkg_files +do + upgrade_local --install-new $pkg + case $(basename $pkg) in + aaa_*) + ldconfig + esac +done if [ -n "$remote" ]; then # Until now we have been using whatever downloader that is available @@ -806,6 +818,10 @@ do prev=$s fi upgrade_package $pkg --install-new + case $(basename $pkg) in + aaa_*) + ldconfig + esac done if [ -s remove.list ]; then |