--------------------------------------------------------------------- before 1.0 | -----------/ - segfault on SIG in static binary 1. When upgrading, spkg may accidently delete files from the new package install because of the symlinked directory issue - say docs were installed to /usr/share/doc/$name, but the new packages installs them to /usr/doc/$name. One way to fix it is by reiterating the list of installed files before doinst.sh is run, and reinstall files if they do not exist. (What pkgtools does is install the package again as a third step unless "-no-paranoia" is set). This will require path normalization for package database and some hacks to make it work even with broken package databases. (or just that hack) 2. Another issue with upgrading is that when the new package is corrupt or unacceptable for some reason (say, tar is containing symlinks), the script at var/log/scripts of the old package is still renamed to the new package name. (this may be false report) [test] Automatic testuite [doc] Update documentation [doc] Write article Spkg 1.0 should have somewhere a list of important differences in behaviour from official pkgtools. Here's a short list: 1. spkg does not support the -preserve or -copy options of removepkg. 2. When spkg cannot overwrite a file during install/upgrade it keeps a copy as $(name)-##$(operation)## 3. spkg will not allow installing several different version of a package at the same system. 4. The errorlevels given by installpkg and spkg -i are incompatible. 5. installpkg allows non-root user to install as long as they have write access to the database. 6. Because pkgtools use gzip, a .tgz file doesn't have to be a .tar.gz file to work. .tar.Z or .tar.zip, if renamed to .tgz will work just as well. --------------------------------------------------------------------- post 1.0 | ---------/ list files that can't be removed in removed_packages/package.leftovers ??? -- why not just do grep on output from spkg? spkg -d --copy=dir package ??? - --verify command for checking fs against package database (what files changed after installation, missing files, etc.) - --check command for checking validity of slack packages (check for suid binaries and other rights based checks for files, enforcing slackware packages policy) [untgz] using blockbuf as writebuf can speedup things slightly on the user side (approx. by some 5%) extend install/doinst.sh: exit 0 #!REMOVE! code code code (until next block or end) #!UPGRADE! code code code