From cbd74112e0ee98461db58ac943daced1b668edb9 Mon Sep 17 00:00:00 2001 From: Sergey Poznyakoff Date: Mon, 16 Sep 2019 09:15:16 +0200 Subject: Add README and Makefile --- .gitignore | 6 +++ Makefile | 78 ++++++++++++++++++++++++++++++++ README | 115 +++++++++++++++++++++++++++++++++++++++++++++++ slackware-upgrade-system | 3 +- 4 files changed, 200 insertions(+), 2 deletions(-) create mode 100644 .gitignore create mode 100644 Makefile create mode 100644 README diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0fb737c --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +*~ +*.bak +*.tar +*.tar.[gx]z +.emacs* +tmp/ diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..09a5a8c --- /dev/null +++ b/Makefile @@ -0,0 +1,78 @@ +# Makefile for slackware-upgrade-system +# Copyright (C) 2019 Sergey Poznyakoff. +# +# Slackware-upgrade-system is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as published +# by the Free Software Foundation; either version 3, or (at your option) +# any later version. +# +# Slackware-upgrade-system is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with slackware-upgrade-system. If not, see +# . + +PACKAGE=slackupgrade +VERSION=0.1 + +SBINDIR=/sbin +MANDIR=/usr/man +MAN8DIR=$(MANDIR)/man8 + +help:; + @echo "Avalable targets:" + @echo "" + @echo "$$ make install" + @echo " Installs the program. Influential variables:" + @echo " SBINDIR - directory to install system binaries to ($(SBINDIR))" + @echo " MANDIR - toplevel directory for man page installation ($(MANDIR))" + @echo "" + @echo "$$ make install-sbin" + @echo " Installs only the slackware-upgrade-system script." + @echo "" + @echo "$$ make install-man" + @echo " Installs only the manpage." + @echo "" + @echo "$$ make dist" + @echo " Creates the distribution tarball." + +# ########################## +# Installation rules +# ########################## +install: install-sbin install-man + +install-sbin: + @if ! test -d $(DESTDIR)$(SBINDIR); then install -d $(DESTDIR)$(SBINDIR); fi + install slackware-upgrade-system $(DESTDIR)$(SBINDIR) + +install-man: + @if ! test -d $(DESTDIR)$(MAN8DIR); then install -d $(DESTDIR)$(MAN8DIR); fi + install -m 644 slackware-upgrade-system.8 $(DESTDIR)$(MAN8DIR) + +# ########################## +# Distribution tarball rules +# ########################## + +DISTDIR=$(PACKAGE)-$(VERSION) +DISTFILES=\ + slackware-upgrade-system\ + slackware-upgrade-system.8\ + Makefile\ + COPYING\ + README + +distdir: + test -d $(DISTDIR) || mkdir $(DISTDIR) + tar -c -f - $(DISTFILES) | tar -C $(DISTDIR) -x -f - + +dist: distdir + tar zcf $(DISTDIR).tar.gz $(DISTDIR) + rm -rf $(DISTDIR) + @s="$(DISTDIR).tar.gz created"; \ + echo "$$s" | sed -e s/./=/g; \ + echo "$$s"; \ + echo "$$s" | sed -e s/./=/g + diff --git a/README b/README new file mode 100644 index 0000000..657fec5 --- /dev/null +++ b/README @@ -0,0 +1,115 @@ +Overview +======== + +This package provides slackware-upgrade-system, a script that performs +a full upgrade of a Slackware distribution. + +Installation +============ + +Run "make install" as root. The slackware-upgrade-system will be +installed to /sbin, and its man page, slackware-upgrade-system.8, to +/usr/man/man8. These are most suitable locations for Slackware. To +install them elsewhere, use the following Makefile variables: + + SBINDIR - Directory to install slackware-upgrade-system to. + MANDIR - toplevel directory for man page installation (/usr/man). + MAN8DIR - directory for the man page installation ($(MANDIR)/man8). + +Usage +===== + +Before upgrade, please make sure you backup all sensitive data on your +system. When upgrading a remote machine, it advisable to have a KVM +console attached to it, so that you can intervene if the box refuses +to boot. + +Please read slackware-upgrade-system(8) to familiarize yourself with +the script and its options. + +Run slackware-upgrade-system in dry-run mode: + + slackware-upgrade-system -n + +This will look for the nearest next release available, create the list +of packages to be upgraded, installed and removed and will print the +results. This run will not touch any files on your filesystem +(excepting the slackware-upgrade-system logs, see below). Instead it +will verbosely print what would have been done during real upgrade. +Inspect its output to see if it actually does what you need. In +particular, the upgrade will most likely decide to remove some +packages during the upgrade. These are the packages that existed in +your current release, but have been removed in the next one, or the +packages you have installed from third-party sources. You may wish to +retain any of them or provide replacements, or reinstall them afterward. + +If you wish to retain any of them, create a list of packages to retain +and supply it to the script using the -k command line option (see the +man page for details). + +To provide a replacement, use the -p option. For example, when +upgrading from 14.1 to 14.2, the "procps" package will be removed. The +utilities it used to provide have been moved to the "procps-ng" +package. So, when upgrading from 14.1 to 14.2, it is a good idea to +use + + slackware-upgrade-system -p procps-ng + +For your information, the list of removed packages is left in file +/var/log/slackware-upgrade-system-

-.removed (see below). + +When you are finished with the dry run, proceed to the actual upgrade. +Run + + slackware-upgrade-system + +with any additional options you decided to give it after the dry run. +After completion, the script will create three files for your +consideration. In the discussion below,

stands for the original +Slackware version number, and stands for the new Slackware version +number (the version you upgraded to): + +/var/log/slackware-upgrade-system-

-.log + Log file. Contains detailed transcript of all actions performed + during the upgrade. + +/var/log/slackware-upgrade-system-

-.removed + A list of packages removed during the upgrade. A package is removed + if the new release does not provide a replacement for it. This may + not always be desirable, and you may reinstall some of them + afterward. + +/var/log/slackware-upgrade-system-

-.conffiles + A list of configuration file replacements created during the upgrade. + These are configuration files provided by the upgraded packages that + are left in the filesystem along with your current file versions. + They have the same names as the original files, but with the ".new" + suffix. Please revise these files. You may need to merge them with + your actual files, or move them over, or simply remove them. + +Before attempting to reboot your system, please make sure that the +bootloader has been updated for the new kernel. + +Special notes +============= + +We recommend to always upgrade to the next release, without skipping +release numbers (even though the script allows you to do so). For +example, instead of upgrading from 14.0 to 14.2, run two subsequent +upgrades. First, upgrade your system, to 14.1 and make sure everything +works as expected. Then, upgrade it to 14.2. + +License +======= +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 3, or (at your option) +any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along +with this program. If not, see . diff --git a/slackware-upgrade-system b/slackware-upgrade-system index 5979758..45401f6 100644 --- a/slackware-upgrade-system +++ b/slackware-upgrade-system @@ -84,8 +84,7 @@ Options are: -n dry-run mode: do nothing, print what would have been done -p PACKAGE install additional package -q quiet mode: suppress all messages, except errors - -s SERIES additionally install all packages from SERIES; - incompatible with -a + -s SERIES additionally install all packages from SERIES -v display messages about individual packages -y assume "yes" to all queries -- cgit v1.2.1