diff options
Diffstat (limited to 'files')
-rw-r--r-- | files/ChangeLog | 1521 | ||||
-rw-r--r-- | files/GPL | 340 | ||||
-rw-r--r-- | files/README | 74 | ||||
-rw-r--r-- | files/blacklist.new | 36 | ||||
-rw-r--r-- | files/core-functions.sh | 1351 | ||||
-rw-r--r-- | files/cutpkg.awk | 8 | ||||
-rw-r--r-- | files/dialog-functions.sh | 75 | ||||
-rw-r--r-- | files/filelist.awk | 28 | ||||
-rw-r--r-- | files/install-new.awk | 45 | ||||
-rw-r--r-- | files/mirrors-arm.sample | 78 | ||||
-rw-r--r-- | files/mirrors-s390.sample | 43 | ||||
-rw-r--r-- | files/mirrors-x86.sample | 370 | ||||
-rw-r--r-- | files/mirrors-x86_64.sample | 362 | ||||
-rw-r--r-- | files/pkglist.awk | 35 | ||||
-rw-r--r-- | files/post-functions.sh | 221 | ||||
-rw-r--r-- | files/slackpkg | 574 | ||||
-rw-r--r-- | files/slackpkg.8 | 339 | ||||
-rw-r--r-- | files/slackpkg.conf.5 | 338 | ||||
-rw-r--r-- | files/slackpkg.conf.new | 153 |
19 files changed, 5991 insertions, 0 deletions
diff --git a/files/ChangeLog b/files/ChangeLog new file mode 100644 index 0000000..774be50 --- /dev/null +++ b/files/ChangeLog @@ -0,0 +1,1521 @@ + +Sun Oct 10 07:48:13 UTC 2017 +--------------- + - Updated mirrors-x86*.sample to remove dead mirrors and clarify + intent to use mirrors.slackware.com + - Updated mirrors-arm.sample to sync with mozes' copy + - Add /usr/share/vim/ and /var/yp/ to search path for .new files + - Minor tweaks to default blacklist file + - Minor tweaks to manual pages + - Released as 2.82.2 (rworkman) + +Wed May 11 04:23:52 UTC 2016 +--------------- + - Updated mirrors-x86*.sample for Slackware 14.2. + - Released as 2.82.1-1 (yet another unauthorized volkerdi release) + +2014 Thu Jul 10 +--------------- + - Patched to respect the $ROOT environment variable to point to the + location to update (like installpkg does), and also to use the + $CONF environment variable to point to the slackpkg config file. + Thanks to Matteo Bernardini. + - Released as 2.82.0-13 (yet another unauthorized volkerdi release) + +2013 Sun Oct 20 +--------------- + - Corrected some typos in the slackpkg man page. + Thanks to sycamorex. + - Released as 2.82.0-12 (yet another unauthorized volkerdi release) + +2013 Fri Oct 11 +--------------- + - Verified and corrected the mirrors lists for x86 and x86_64. + - Changed version numbers from 14.0 to 14.1 in preparation for + the upcoming Slackware 14.1 release. + - Corrected a manpage bug in the file-search section. + - Released as 2.82.0-11 (yet another unauthorized volkerdi release) + +2013 Tue Sep 17 +--------------- + - Patched core-functions.sh to fix searching for qt, phonon, + and other packages in cases where package names overlap. + Thanks to Sébastien Ballet. + - Released as 2.82.0-10 (yet another unauthorized volkerdi release) + +2013 Wed May 22 +--------------- + - Set DOWNLOAD_ALL=on by default. This avoids issues where + components that are needed by slackpkg requires library + updates in a different package. Without downloading all + packages first failures are all too common. + - Released as 2.82.0-9 (yet another unauthorized volkerdi release) + +2012 Thu Aug 30 +--------------- + - Merged a few fixes to the mirror lists for x86 and x86_64. + Thanks to Jordan Clarke for the help! + - Released as 2.82.0-8 (yet another unauthorized volkerdi release) + +2012 Fri Aug 24 +--------------- + - Updated mirrors for Slackware 14.0 release. + Thanks to Jordan Clarke for the help! + - Released as 2.82.0-7 (yet another unauthorized volkerdi release) + +2012 Sun Jul 22 +--------------- + - Added support for the XFCE series + - Released as 2.82.0-6 (Clandestine release by volkerdi ;-) + +2011 Tue Apr 05 +--------------- + - Fixed regex bugs (packages with 'asc' in the name ignored by + clean-system). (Thanks David Somero) + - Released as 2.82.0-5 + +2011 Wed Mar 30 +--------------- + - Updated mirrors for Indonesia and Servia + (Thanks Willy Sudiarto and Branko Grubic) + - Better explanation about regex blacklisting in blacklist sample + file. (Thanks crocket and rworkman) + - Last ChangeLog date fixed, was Mar 23 and the correct is Mar 24 + - Released as 2.82.0-4 + +2011 Thu Mar 24 +--------------- + - Fixed ARCH string for ARMedslack. + (report and fix by Niels Horn) + - Updated mirrors file to include slackware 13.37 mirrors + (thanks volkerdi) + - Updated blacklist sample file to include new usage examples + - Released as 2.82.0 + +2011 Thu Feb 17 +--------------- + - Fixed problem in "search" function: + If the package name string matches the end of a previous + package name it will not be in the "search" package list + (reported by David Lee) + - Removed old checkblacklist function and all references to it + +2010 Sun Dec 05 +--------------- + - Some fixes in blacklist new function. The old one have problems + when making the install list (all blacklisted packages appears + as installables). + +2010 Fri Sep 10 +--------------- + - Change in blacklist function. Using a fresh new one. + Now blacklist is applied in package lists and not package-by-package. + This speeds package list generation and allow the use of regexp + on blacklist file. + +2010 Thu May 13 +--------------- + - Include 2010 on Copyright notices + - Added slackware 13.1 on mirrors file (x86, x86_64 and arm) + - Released as 2.81.1 + +2010 Sat May 01 +--------------- + - Use $TMPDIR/pkglist instead $WORKDIR/tmplist on many places. + This avoids problems when slackpkg does self-upgrade. + - Change CHECKSIZE default to "off" + - Fix CHECKSIZE to only check mountpoints. This avoids problems when + the system have networked or DVD/CDs mounted + (Thanks alienbob and vbatts) + - Change version number to 2.81.1 + - Released as 2.81.1beta1. Happy Workers Day! + +2010 Wed Apr 28 +--------------- + - Fix blacklist checking on 'slackpkg clean-system'. It was + checking if the package is blacklisted but didn't use this + information. + (Reported by Greg and Shuren) + - Change 2.81 release date on ChangeLog and README to 2010 *Fri* + Apr 23, not 2010 *Thu* Apr 23. + (Thanks gui_ap) + +2010 Fri Apr 23 +--------------- + - Fixed some typos in 'slackpkg help' + - Fixed 'update gpg' to use the unified getfile function + - Released as 2.81 + +2010 Tue Apr 20 +--------------- + - Unified download code. Function getfile is the only place + with download instructions and getpkg uses it. + - Added DOWNLOADER variable. You can choose between "curl" and "wget" + downloaders. + +2010 Mon Apr 19 +--------------- + - Now we can, before install or upgrade a package, verify + if the system have enough available space in its filesystems. + This can slowdown the upgrade/install process but can save a lot + of problems. + . Added CHECKSIZE on slackpkg.conf + . Added CHECKSIZE on slackpkg.conf manpage + . Added -checksize on usr/sbin/slackpkg + . Added havespace and checksize functions on core-functions.sh + - Released as slackpkg-2.81beta2 + +2010 Sun Apr 18 +--------------- + - Added DIALOG_MAXARGS variable. This is to set the max number of + characters that dialog can handle. If DIALOG_MAXARGS is unset we + use the traditional 19500 characters. Removing hints when + we reach DIALOG_MAXARGS *ISN'T A BUG* is a *FIX*. Without that, + upgrade from slackware-X to slackware-X+1 will be impossible. + . Added DIALOG_MAXARGS on slackpkg.conf + . Added DIALOG_MAXARGS on slackpkg.conf manpage + . Added -dialog_maxargs on usr/sbin/slackpkg + +2010 Tue Feb 16 +--------------- + - Fix x86 32bits regexp to not catch x86_64 packages + - Applied more patches from Grissiom: + . uniq in listpkgname function + . tell the user the ignored arguments + . respect only .sh functions on functions.d + - Split mirrors file by architecture. doinst.sh copy the + right file to right place. + - Change references to <piterpk@terra.com.br> to + <piterpunk@slackware.com> + +2009 Sat Dec 12 +--------------- + - Fix link problem with non-existent files + - Fix pkglist.awk to be compatible with new awk + (reported by rworkman) + - Now users can run "help" function + - Update man-pages with file-search, help and search + - Applied a lot of patches from Grissiom: + . Change mktemp creation test to be more "standard" + . Use parameter expansion instead "echo STRING | cut" in + some places + . Use MORECMD to show blacklist if needed + . Change all `command` to $(command) + . Check if lilo is installed before trying to run it + . Some minor formating changes + - Other minor formating changes + - Update version on many places to 2.81 + +2009 Tue Nov 24 +--------------- + - Move search code from /sbin/slackpkg to core-functions.sh + - Use spinning bar on search and file-search + - Move existing "search" function to "file-search" and create a + new "search", that looks for package's name + - Update usage and full_usage to reflect "search" and "file-search" + changes + - Update a lot of system checks to take care of file-search. + +2009 Mon Nov 23 +--------------- + - Add listpkgname function to create spkg, lpkg and dpkg files + - Change upgrade-all to use listpkgname function + - Enhance clean-system performance using listpkgname function + to list packages + - Put comments on some functions to be more useful + - Change usage function to show only the slackpkg's syntax + Old usage is now "slackpkg help", with a short description + of each slackpkg command. + +2009 Sun Nov 22 +--------------- + - Applied patch to link local files instead copying + The old way was really stupid, why copy a file that + already is there? + (Thanks Grissiom) + - Changed the way that slackpkg make the upgrade-all list + Now the list is created very faster than before + (Thanks Grissiom) + - Added spinning bar to sanity-check function + Good to give some feedback to user + - Move awk code from cutpkg function to cutpkg.awk + Now we have cutpkg function, to handle a single package name + and batchcutpkg to read many package names from stdin + This speed sanity-check function + - Deactivate spinning bar when tput command is not found + - Force cursor back to normal mode in cleanup function + (Thanks NaCl) + +2009 Thu Jul 30 +--------------- + - Change version number in manpages + - Released as 2.80.2 + +2009 Mon Jul 27 +--------------- + - Bumped version number to 2.80.2 + +2009 Sun Jul 26 +--------------- + - Changed [[:digit:]] references to [^-] in usr/sbin/slackpkg + that makes some packages don't be found by slackpkg. + (Thanks Niels Horn and Grissiom) + - Removing leading spaces or tabs in mirrors file. + (Thanks Luke, Max, Cezar Rangel and + other guys on slack-users-br list) + - Fix slackpkg.conf comments about BATCH mode. + (Thanks Bruce Hill and AlienBob) + - Fix Indonesian mirrors. + (Thanks Willy Sudiarto Raharjo) + - Fix some Polish mirrors. + (Thanks Dexen deVries) + - Fix some UK mirrors. + (Thanks Andrew Fielder) + +2009 Tue Jul 14 +--------------- + - Added ARMedslack mirrors + (Thanks MoZes) + - Fix in generate-template to honor USE_INCLUDES option + - Released as 2.80.1 + +2009 Wed Jul 08 +--------------- + - Updated the Slackpkg's mirrors file. + (Thanks DagMoller) + +2009 Thu Jun 18 +--------------- + - Merged some patches from Daniel Levai to enhance the config + merge options. + - Released as 2.80 + +2009 Thu Jun 11 +--------------- + - Fixed a circular check: new-config needs update and update + needs new-config. + +2009 Sun Jun 07 +--------------- + - Change in doinst.sh to remove old pkglist at slackpkg's + install. (Thanks Klein) + - Change in slackpkg to use most of time ${TMPDIR}/pkglist instead + ${WORKDIR}/pkglist. + - Released as 2.80beta3 + +2009 Wed Jun 03 +--------------- + - Change "tput cub1" to "tput sc" and "tput rc". This give back to + us the option of multi-character "spinning bars". + - Create function showmenu to handle aligned options in post-functions.sh + - Released as 2.80beta2 + +2009 Mon Jun 01 +--------------- + - Use cub1 instead "cub N" in spinning bar. cub1 is + supported by "linux" terminal. + (Thanks KynDer) + - Honors $PAGER variable if set. + (Thanks Daniel Levai) + - Added interactive merge option to post-functions.sh this makes + very easier to manage .new files. + (Thanks Daniel Levai) + - Changes on post-functions.sh to show aligned options in "(P)rompt" + and "(M)erge" functions. + +2009 Fri May 29 +--------------- + - Eliminate ARCH test when new-config is called + - Use $PRIORITY in search command + (Thanks Supergrilo) + +2009 Thu May 28 +--------------- + - Released as 2.80beta1 + +2009 Thu May 21 +--------------- + - Fix usage message formatting + - new-config can run with outdated slackpkg.conf. With that + you can use new-config to update the slackpkg.conf -;) + +2009 Tue May 19 +--------------- + - Released Slackware64! Congratulations to everyone in + Slackware Team! + - Fix a problem with rpm2tgz package (again?!?!?) + Thanks Niels Horn + - Added Slackware key configuration to x86_64 architecture + - Added remove-template, install-template and generate-template + to usage function + +2009 Mon May 04 +--------------- + - Fixed .new detection. (Thanks Stuart Winter) + - Renamed the "CHECKPKG" variable to "CHECKMD5" (and changed the + relevant command line options; this is more appropriate for what + the function does (it checks md5 sums of the packages), and it's + easier to tell the difference between it and CHECKGPG at a glance. + (Thanks Robby Workman) + - Added check to see if slackpkg.conf version matches slackpkg + version. + - More changes in install-new's ChangeLog.txt parsing + +2009 Sun May 03 +--------------- + - Added generate-template, remove-template, and install-template + commands. The first one creates a template with all official + slackware packages installed in the machine. The template is saved + in /etc/slackpkg/templates. You can copy this template to other + machines and install it with install-template. + - Added a spinning bar to give visual feedback of slackpkg "thinking". + - SPINNING is added to slackpkg.conf. It can enable (on) and + disable (off) the spinning bar. + - Added USE_INCLUDES to manage whether template includes should be + processed by slackpkg. + - ARCH now needs to be in the same format of "uname -m". + slackpkg can change it automagically. If you need to override what + slackpkg detects, set the variable in slackpkg.conf. + - MAIN is now handled internally by slackpkg. You can no longer change + this variable using slackpkg.conf. + - PKGMAIN is set by slackpkg to the appropriate value for your + ARCH port. + - SLACKKEY now can be set in slackpkg.conf. Usually slackpkg will + handle this automagically. + - FIRST, SECOND, THIRD, FOURTH, and FIFTH are replaced by a single + array: PRIORITY. The contents of those five variables now are + inside PRIORITY array. + - Added support to Slackintosh with the inclusion of "mac" series. + - Some changes in install-new's ChangeLog.txt parsing + - slackpkg.conf bumped to version 2.8 + - updated slackpkg and slackpkg.conf manpages + +2009 Sat May 02 +--------------- + - Released as slackpkg 2.71.1 + +2009 Sat Apr 25 +--------------- + - Fixed parsing of .t[blxg]z extension in packages + with tgz, tlz, tbz or txz inside file name. + (Thanks Erik Jan Tromp) + +2009 Thu Apr 23 +--------------- + - Released 2.71! + +2009 Sat Apr 18 +--------------- + - Removing source files in md5 package search + (Thanks Alan Hicks) + - Fixed problem in search function and packages with + letters, _ or . in RELEASE field. + (Thanks mrgobling) + - Released as 2.71beta5 (i think last one) + +2009 Wed Apr 15 +--------------- + - Fix problem in checking md5 of some packages + - Fix pkglist.awk script. The changes to support + tbz, tlz and txz brokes the local package list. + - 2.71beta4!! Man, we don't stop! + +2009 Fri Apr 10 +--------------- + - Now use CHECKSUMS.md5 as primary source of package + names. + - Check if FILELIST.TXT is newer than last update. + That will prevents you to accidentaly downgrade + your machine using an outdated mirror. + - Added a lot of new security checks + - check CHECKSUMS.md5 against CHECKSUMS.md5.asc + - check FILELIST.TXT against CHECKSUMS.md5 + - check all downloaded .asc against CHECKSUMS.md5 + (CHECKSUMS.md5.asc is excluded of this check) + +2009 Tue Apr 07 +--------------- + - Added support to other package extensions. + Now slackpkg can handle tgz, tbz, tlz and txz. + Of course, this depends on pkgtools with the + same capabilities. + +2009 Mon Mar 23 +--------------- + - Put findutils to be upgraded before glibc-solibs. + I think this is wrong. But for some strange reason + findutils brokes if glibc is upgraded first. + - Packaged and relased as 2.71beta3 (hope last) + +2009 Wed Mar 18 +--------------- + - Non root users can use "check-updates" command in slackpkg + - Show to user if using FILELIST.TXT or CHECKSUMS.md5 as package + lista source. + - Added ONLY_NEW_DOTNEW variable to slackpkg configuration file + (and -only_new_dotnew to command line). With that, only the + latest .new files will be checked by post-install function. + - Added ONLY_NEW_DOTNEW and PKGMAIN description on slackpkg.conf + man-page. + - Added "check-updates" on slackpkg man-page. + - Random fixes in both man-pages. + - Fix "check-updates" to be used without Slackware Project GPG + Key imported. (thanks guax) + +2009 Sat Mar 14 +--------------- + - Change update and getpkg functions to create a slackware + tree inside /var/cache/packages. + +2009 Fri Mar 06 +--------------- + - If FILELIST.TXT isn't found, use CHECKSUMS.md5 to the + same thing + - Fix some problems in parsing MANIFEST.bz2 files + - Release as first 2.71beta1 + +2008 Mon Dec 22 +--------------- + - Include check-updates option + - Fix problem with MORE env variable. Now slackpkg uses + MORECMD internally + +2008 Thu Dec 04 +--------------- + - Change version in man-pages (ok, put the version in man-pages + probably was the most stupid idea that i had). + - Released 2.70.5 + +2008 Mon Dec 01 +--------------- + - Update mirrors file for Slackware 12.2 (Thanks rworkman!) + - Change version to 2.70.5 (Thanks rworkman!) + +2008 Tue Nov 25 +--------------- + - Fix install-new.awk file to catch the return of + bluez-libs and bluez-utils + +2008 Fri Nov 21 +--------------- + - We are in Slackware main-tree!!! Big Thanks Patrick! + Big thanks to all our users! + +2008 Fri May 02 +--------------- + - Fix regexp in slackpkg.conf to x86 arch. It was missing + kernel-headers package + - Released 2.70.4 + +2008 Wed Apr 30 +--------------- + - Fix regexps to catch "fw" packages + - Released 2.70.3 + +2008 Tue Apr 08 +--------------- + - Added xbacklight, ntfs-3g, wqy-zenhei-font-ttf, + xf86-video-geode and ghostscript packages to install-new + list. + - Released 2.70.2 + +2008 Sat Mar 15 +--------------- + - Released 2.70.1 + +2008 Fri Mar 14 +--------------- + - Compressed man-pages + - Fix problem with somo proxys adding ^M at FILELIST.TXT + +2008 Tue Jan 29 +--------------- + - Released slackpkg 2.70 + - Happy Birthday Marina! + +2008 Mon Jan 28 +--------------- + - Fix problem with duplicated packages in package list + (reported by gar0t0) + - Fixed pattern matching problems with g++ and other packages + with special characters. (reported by gar0t0) + +2008 Tue Jan 22 +--------------- + - Better error handling in update from wrong mirrors + (problem reported by redhate) + +2008 Mon Jan 21 +--------------- + - Fixed install-new ChangeLog parsing problem. + Some packages are missing from install-new list. + +2008 Sat Jan 19 +--------------- + - Not released. Bugs everywhere + - slackpkg info doesn't work (info was using deprecated + PATTERN variable) (reported by redhate) + - slackpkg update corrupts file lists and package + information. Now all the files are first in TMPDIR + before goes to WORKDIR. (reported by redhate) + - slackpkg download isn't in new command line parser. + (reported by redhate) + - Fix all commands to doesn't work without a configured + mirror + - Fixed some format errors in "usage" + +2008 Fri Jan 18 +--------------- + - Fixed an error when checking GPG key. This is caused + by the "backticks" enhancement, reported by many and + fixed by rworkman, many thanks! + - No more bug reports in a week, time to release + +2008 Wed Jan 10 +--------------- + - Updated "mirrors" file + - Fixed stall on "search" (reported by The-spiki) + - Fixed misbehavior of "update gpg" (The-spiki, again. Thanks!) + - Added local:// as the same of file:// and cdrom:// + in mirrors definitions. (thanks rworkman!) + - Removed backticks `commmand` and using now $(command) + (thanks rworkman!) + - Fixed many en_BR bugs in docs and configuration files + (thanks again rworkman!) + +2008 Wed Jan 09 +--------------- + - A new command line parser, much better than the older one. + Now you can override slackpkg.conf configurations from + command line: + + slackpkg -checkpkg=off upgrade-all + + Will disable the checkpkg feature. Many slackpkg.conf + can be overrided using that. You can also specify a + different mirror, using -mirror=URL/ + - Additional check to see if "which" is there + - Added "new-config" option, it will search for .new files + and ask to user what to do with them. (suggested by X-Gizmo) + +2008 Wed Jan 07 +--------------- + - Added BATCH and DEFAULT_ANSWER options in slackpkg.conf, + you can use those two to make automated upgrades without + human intervention. (suggested by Clayton and many others). + +2008 Wed Jan 04 +--------------- + - Fixes in install-new.awk to catch more new packages + +2007 Sat Jun 09 +--------------- + - Removed "httpd" from the hardcoded list. It isn't needed. + - Released the 2.61 + +2007 Tue Jun 05 +--------------- + - Fixes in almost all slackpkg messages and in README file + (Thanks Robby Workman!) + - Included (I) to ignore duplicated files... well, this can + burn your computer... but who am I to don't let you do that? + (Thanks Robby Workman, again) + - Included httpd in hardcoded install-new files. + - Bumped the version number to 2.61 + +2007 Sun May 27 +--------------- + - Back to the xargs combo in dialog-functions. --file doesn't + works in slackware 10.1. + - Fix some bugs in file list generation. Some declarations + like: + local VAR=`something` + doens't works well in older bash (in 10.1). This bug + generates a lot of "dialog" bugs. I hope they are fixed + now. + - Better error handling in dialog-functions. Now we can + detect when dialog fails and print one error message. + +2007 Tue May 15 +--------------- + - Added one / before ${NAMEPKG} in check md5sum. It prevents + a match with vim and vim-gvim (and possible other packages) + and subsequent m5sum errors. + (Reported by Diniz Bortolotto) + - Swap some "ls" uses by -e to check if one file exists + - Changed the way of error treatment. Now we have: + . One log of what package gives error + . What error happens in each package + . Not install one package if the GPG signature + is OK but md5sum isn't (maybe a corrupted + package?) + . Shows all logged errors when slackpkg + ends. + +2007 Tue May 08 +--------------- + - Correct the release date of 2.52 + - Change version number to 2.60 instead 2.60beta + - Added one tip in slackpkg's man page telling about + slackpkg upgrade slackware + - Released slackpkg 2.60!! + +2007 Wed May 02 +--------------- + - Added fontconfig in the hardcoded install-new packages + - Make install-new to search only in the main slackware + series. No more /extra and /pasture packages + - Changes in dialog functions. To prevent some strange + errors we use grep -m1 to use only the first match + and --file in dialog to prevent bizarre xargs + errors (reported by many) + - Fixes in sanity-check function to discover + duplicated packages. (Thanks Sasha Alexandr) + +2007 Sat Mar 17 +--------------- + - Change VERSION to 2.52 instead 2.52beta + - Added a test do detect old slackpkg.conf versions + - Added hardcoded dialog and aaa_terminfo in install-new + - Released slackpkg 2.52!! + +2007 Mon Mar 12 +--------------- + - Changing NOGPG to CHECKGPG. Is more coherent with the other + options. Thanks Robby to point that. + - Many update and grammar fixes in documentation. + (Thanks again Robby Workman!) + +2007 Mon Jan 05 +--------------- + - Fix many errors in "install-new". It didn't found any + package with [A-Z] or [0-9] in his names. + - Still in "install-new", now we can detect more new packages, + the awk script is a lot better now. + - Correct the .tgz parsing in pkglist.awk, using \.tgz instead. + - Newer (and i hope, good) man-pages. + +2006 Wed Nov 08 +--------------- + - Fixed the "upgrade" package parsing. It was going wrong + with nn and glib packages. + (Reported by Ralph Alvy) + - Fixed "reinstall" it was ignoring the blacklist and given + wrong packages to reinstall. + - Now blacklist can handle directories beginning with a / and not + with ./ (very better, and this is the needed behavior). + - Accept the list of packages from a file + (e.g.: slackpkg upgrade /etc/slackpkg/files) + We accept relative (./something, ../something) and absolute + paths (/something). + - Release 2.51beta + +2006 Sun Oct 29 +--------------- + - Fixes to install/upgrade (it was broked when i change the + tmplist). Now it's OK + - Fixes in remove and reinstall, they are showing duplicated + entries in the list. Now it's OK + - Fix in download... it was total crazy! Now it's OK + - Added install-new.awk and improve the ChangeLog.txt parser + now we don't have any package hardcoded. + - Fix in upgrade-all to remove the unused variable NAME now we can use + the data in pkglist. + - Minor fix in clean-system. + - Change the variable's scope to "local" in many functions + +2006 Sat Oct 28 +--------------- + - Change the tmplist format to be the same as pkglist + - New functions to make the package list with that we now can: + - Handle multiple files in the command line. + (e.g.: slackpkg upgrade kernel x11 lsof) + - Use the package series as the pattern, without the + trailing / hack. + (e.g.: slackpkg remove a) + - "download" don't use the blacklist. The user now can + download one blacklisted package. + - Release slackpkg 2.5beta + +2006 Fri Oct 27 +--------------- + - A lot of job rebuilding (again) the package parser. This + is the logic that search for apropriate packages and see if + that packages are or not in blacklist. This is the harder + piece of slackpkg development. For now we made: + . a new pkglist.awk that creates a really new and + more featureful pkglist. The new slackpkg can't work + anymore with the old pkglist. + . One blacklist function that can match: + . directories + . package-names + . package-names with version + . package-names with version and arch + . package-names with version, arch and release. + . This fix a problem with some packages being override + by others with "similar" names. + (e.g.: k3b being override by k3b-i18n) + +2006 Thu Oct 26 +--------------- + - Create the WORKDIR variable and put all package and file lists + there. Now ppl that wants to mount / read-only can do that. + (Thanks to Trevor Caira) + - Added a little bit of sanity in slackpkg.conf. Now all options + uses "on" to be activated and "off" to be deactivated. No more + "1", "0", "On", "ON" and all the chaos that we had before. + (Thanks to Robby Workman) + - Added one FIFTH directory. Now people can use /testing as a + repository, too (of course this will break a lot of things) + - Added one MAIN variable. This is used instead slackware to + identify the main distro directory. + - Move /etc/slackpkg/filelist.awk to /usr/libexec/slackpkg. This + is the correct place to a executable. + +2006 Mon Aug 28 +--------------- + - Fixed a problem with upgrade-all when try to upgrade directly + from 10.2 to 11rc3. xargs can only handle 20k lines. + - Changed version to 2.09 + - Released 2.09 + +2006 Sat Aug 26 +--------------- + - Fixed a typo in ChangeLog.txt message + (Thanks Cameron Willians) + - Fixed two problems in install-new: + bug0: install-new duplicates packages + bug1: install-new doesn't catch lm_sensors package we wasn't + ready to handle packages with a _. + +2006 Wed Aug 23 +--------------- + - Fixes in blacklist.new, nothing more. + - Released a repackaged 2.08-3 + +2006 Fri Aug 18 +--------------- + - Fixed typos in manpages + - Changed version to slackpkg 2.08 + - Released 2.08 + +2006 Thu Aug 17 +--------------- + - Revert the "typo fix" and now "Formating" is "Formatting" again. + - A little fix in install-new to better handler the newer packages + - Big fixes in new priority check + +2006 Mon Aug 14 +--------------- + - Released 2.07 + +2006 Sun Aug 13 +--------------- + - Added another test to solve problems with "install-new" + and no ARCH match. + (Thanks to Ralph Alvy) + - Removed some debug messages + +2006 Fri Aug 11 +--------------- + - Solves the problem with -upgraded-$TIMESTAMP + packages in /var/log/packages. + (Thanks to Ralph Alvy and Ing Nicolo Chiellini) + - Added l/mm in install-new + +2006 Wed Aug 09 +--------------- + - Change in search function, now it uses the priority to + sort packages. + - Some fix in changes from yesterday and move the blacklist + and check to a separate function. + - Non-root users now can see the slackpkg help + (Thanks to Thomas) + - Changed slackpkg's doinst.sh to use the config function from + doinst.sh from other packages + (Thanks Ernani (idea) and Patrick (the function itself)) + - Put the ChangeLog in reverse order. Is very easier to see the + news now. + - Changed the version number to 2.07 + +2006 Tue Aug 08 +--------------- + - Changed the function that give priority and check the + blacklist in install, upgrade, reinstall, download and + upgrade-all + - Blacklist now supports blacklist entire directories. + +2006 Wed Aug 02 +--------------- + - Fixed a typo in "Formatting". Now is "Formating" -;) + (Thanx Devin J. Pohly) + +2006 Fri Jul 28 +--------------- + - Added xfsdump (hardcoded) in install-new + - Change the list generation in install-new to handle Renamed + and Split files. + - Change copyright notices to include 2006 + - Released slackpkg 2.06 + +2006 Thu Jun 08 +--------------- + - Added acl, attr and dmapi (hardcoded) in install-new + - Changed the list generation in sanity_check. We had problems + with non-standard package names. + (Thanx Rolando Roman) + - Released slackpkg 2.05 + +2006 Tue Jun 06 +--------------- + - A better message in sanity_check + - Fixes in the grepping of packages in sanity_check function + (Thanx Rolando Roman) + - Changed version to 2.05 + +2006 Thu Jun 01 +--------------- + - More modularized functions. Now upgrade and upgrade-all, remove and + clean-system, install and install-new shares the same code + - makelist now work for all commands + - Some sanity_checks, to saw if the machine have some doubled packages + +2006 Thu May 25 +--------------- + - Create a manpage for slackpkg.conf (probably full of typos) + - Changed versions to 2.04 + +2006 Wed May 24 +--------------- + - Fix some problems in install-new. If the package are ugraded before + added in slackware, the install-new only finds the old package. + +2006 Sat May 20 +--------------- + - Put -- in many "grep" to prevent using grep options as a + package pattern. + - Added DOWNLOAD_ALL in slackpkg.conf, with that you can download + all packages and after that install/upgrade all. + +2006 Thu May 18 +--------------- + - Fix a mistype in install-new + - Put dialog functions disabled by default. If you want, you can + try it using: chmod +x /usr/libexec/slackpkg/functions.d/dialog* + - Fix permissions to root.root + - Released version 2.03 + +2006 Mon May 16 +--------------- + - Fix errors in install-new list. + (Reported by rick276 and gar0t0, thanx!) + - Put one version warning in dialog functions + (Thanx coqui) + - Included install-new on the man-page and in README + +2006 Fri May 12 +--------------- + - Added install-new, it searches for packages added in slackware + distribution and install them. + +2006 Thu May 11 +--------------- + - Upgrade the mirrors list to include slackware 11.0. Well, + it is in pre-order, probably we need to upgrade soon + - More two patches from Marek + - One to show the diff between "something" and "something.new". + This make the life more easier + - Another to include dialog lists when you need to choose packages. + If you want to disable this feature, you can remove the + executable permission from: + /usr/libexec/slackpkg/functions.d/dialog-functions.sh + - Set the PATH in the beginning of slackpkg script to prevent + problems with . in the PATH + - Fix in filelist.awk, the ARCH upgrade brokes "search" function + (Thanks gar0t0) + - Move syntax checking from slackpkg to core-functions.sh + - To minimize the downloads, now slackpkg first download the + ChangeLog and, only if something changes, it download the rest + of files. + +2006 Wed May 10 +--------------- + - A new variable in slackpkg.conf (ARCH), with that we can use + slackpkg with the unofficial slackware ports, like + slackintosh and slamd64. This is VERY experimental. + (Inspired by a Carlos C patch, thanx!) + - Fix a typo in slackpkg (Thanx Chess Griffin) + - Include "readline" in upgrade-all first upgrades + +2005 Thu Oct 06 +--------------- + - Applied patch from Marek Wodzinski + - Updating file list, md5 sums etc (in 'slackpkg update' part) are + moved from main scipt to core-functions.sh into function + updatefilelists(). + (Thanx Marek!) + - showlist() now return list of packages in $SHOWLIST variable. + This is preparation for dialog function to really choose + for which packages we want to say 'yes'. + (Thanx Marek!) + - Don't copy/download .asc files if $NOGPG=1 + (Thanx Marek!) + - slackpkg number bumped to 1.99beta -:) + +2005 Sun Sep 12 +--------------- + - Correct one mirror typo (Thanx Daniel de Kok) + - Repackaged (1.5.2-2) + +2005 Sun Sep 11 +--------------- + - Correct removing temporary dirs. + - Better error handling + - Fix post-functions to not show the question when the only .new files + are rc.inet1.conf.new, shadow.new, group.new, passwd.new and + gshadow.new. + - Change version number to 1.5.2 + - Released slackpkg 1.5.2 + +2005 Wed Aug 17 +--------------- + - Fix some blacklist problems (problems AGAIN with the + signal) + - Updated mirrors file + (Thanks fizban) + - Change version number to 1.5.1 + - Released slackpkg 1.5.1 + +2005 Tue Aug 02 +--------------- + - Fix copyright notices (to include 2004 and 2005) + - Fix mirrors file + (Thanks fizban and Ivan Kalvachev) + +2005 Fri Jul 29 +--------------- + - Fix some errors creating temporary dirs on slackware 10.0 and + earlier. + (Thanks Sasha Shipka) + +2005 Fri Jul 22 +--------------- + - Correct a little problem in clean-system. When clean-system + don't found any package to clen, it already shows the "question". + Now it exits the program. + (Thanks mrgoblin) + - New mirrors list. Now including the (not released yet) + slackware 10.2. Now we are ready to the next slackware release -:) + (Thanks fizban) + - Released slackpkg 1.5.0! + +2005 Thu Jul 21 +--------------- + - Correct many typos and spelling errors + (Thanks fizban, amrit and mrgoblin for this help!) + - Don't run post-install if the action is clean-system + - Now, if something goes wrong when slackpkg run, in the end of + operation we will show a BIG WARNING. And no more reports about + that -;) + (Thanks amrit to help me with the message) + - Another fix with the "+" signal, now in remove option. + - Fix the default action in: + "Do you wish to xxxxxx selected packages (Y/n)?" + The default should be "Y", but is "n". Now it's corrected and + the default is "Y". + (Thanks gar0t0) + +2005 Wed Jul 20 +--------------- + - Correct tabulation errors in usage + (Thanks Steven E. Woorlard) + - Some problems with the "+" signal in upgrade-all. Solved Now. + (Thanks Sulamita Garcia) + - Wrong version number in slackpkg's now is 1.5.0 (unreleased) + . Put correct version in /usr/sbin/slackpkg + . Put correct version in slackpkg's man page + - Put new options and correct some small things in man page + - Same thing, but now in README + +2005 Tue Jul 19 +--------------- + - Changed number version to 1.4.99 is a beta release to slackpkg 1.5 + - Included two new options: + . clean-system (suggested by Steven E. Woolard) + Removes from the machine all packages removed + from slackware. It removes packages external of + distro, too. Keep your house clean, man! + . upgrade-all (suggested by Jaroslav Imrich) + Look all installed packages and keep it synced + with the mirror. The "true" way to get all distro + upgraded. + - Changes in "post-install" features. Now they are more closer to + the script in slackware's UPGRADE.TXT + +2005 Wed Jun 22 +--------------- + - Changed small problem with some "trash" temporary files. + - Released slackpkg 1.4.1 + +2005 Tue Jun 21 +--------------- + - Change the "remove" behavior, now it's remove not only one package, + but all packs with the same "beginning" (slackpkg remove kde, + removes all kde* packs). + (Thanks web-knows) + - Using now secure temporary files, created by mktemp. + (Thanks Larhzu) + - Changed version to 1.4.1 (security and bug fixes) + +2005 Thu Jan 27 +--------------- + - OK, i released 1.4 yesterday, but mrgoblin send to me some patches + a few minutes after send 1.4 + . I don't change the version number (is almost the same pack) + . Fixed many and many grammar errors in slackpkg program files + . Correct a small error in post-install + - Released 1.4 (again) + +2005 Tue Jan 25 +--------------- + - Forgot some "echo" debug messages. Now they are all removed and + the post-install really works. (thanks toledo) + - Don't run post-install when update/remove/search/blacklist + (thanks toledo) + - Added blacklist list option (thanks toledo, again!) + - Changed version number to 1.4 + +2005 Mon Jan 24 +--------------- + - Added post-install functions! -;) After upgrade/reinstall/whatever + your packages, now slackpkg searchs for NEW configuration files + (.new) and checks if your kernel is updated (and runs lilo). + +2005 Wed Jan 26 +--------------- + - include "info" in post-install's don't runs. + - redirect some warning and md5sum errors to /dev/null. + (thanks phrag) + - correct some typos in slackpkg's description + (thanks phrag) + - Released 1.4 + +2005 Tue Jan 11 +--------------- + - Finally solved some gpg errors. Some users had telled that error + to me but i can't reproduce. Yesterday i saw one machine with the + stupid error and made a fix -:) gpg don't works without .gnupg dir + and not create that dir -:( + +2004 Wed Dec 29 +--------------- + - Changed /usr/doc dir from 1.3 to 1.3.1 + - Removed many vim's backup files + - Released 1.3.1 + +2004 Mon Dec 20 +--------------- + - change all "/etc/slackpkg" to ${CONF}. Now is safe change the + configuration dir of slackpkg. + (Thanx toledo) + - added "How many" packages in package list. Is a little cosmetic + change but don't hurt. + (Thanx toledo) + +2004 Wed Nov 24 +--------------- + - fixed regexp to support ./pasture/package.tgz + Fixed /usr/libexec/slackpkg/core-functions.sh to support packages in + both ./somedir/ (eg. ./pasture/proftpd-1.2.10-i486-1.tgz) and ./ + somedir/seconddir/ instead of only second one. + (Thanx Marek Wodzinski) + - Changed version number to 1.3.1 + +2004 Fri Nov 12 +--------------- + - Some mirrors from Ireland are in the wrong place (Italy). It's + fixed now. + (Thanx Marek Januszewski) + - Changed number version on /usr/sbin/slackpkg, now is 1.3, not 1.2.2 + +2004 Mon Nov 01 +--------------- + - Massive updates in /etc/slackpkg/mirrors. Many mirrors included and + many deleted. + - Added "dummy" support to 10.1 mirrors... if it had 10.0 and an + updated current, we put one 10.1 entry... now we only needs to wait + new slackware releases -;) + (Thanx Jorge Arellano Cid) + +2004 Fri Oct 29 +--------------- + - Don't use temporary files to uncompress MANIFEST.bz2, now we are + using pipes, that approach drastically reduces the amount of disk + space needed to "slackpkg update" + (Thanx Maxim Krikun) + - Removed vi backup files from slackpkg package + - Changed version to 1.3 + +2004 Wed Oct 13 +--------------- + - Fixed error in install script. Removed de leading / in slackpkg's + configuration path. + (Thanx Valter Douglas Lisbôa Júnior) + - Fixed some problems when two (or more) packages had the same name, + version, etc... now slackpkg picks only the first pack. + (Thanx to Alexandre Pinaffi Andrucioli) + +2004 Mon Jun 21 +--------------- + - Updated "mirrors" file. Now we are ready to slackware 10.0!! + (Thanx Lorn!) + +2004 Tue Jun 15 +--------------- + - Changed version to 1.2.2 + +2004 Mon Jun 14 +--------------- + - Exclude "testing". Testing packages aren't to be installed + through automated tools. Testing needs more care from sysadmin + - Removed aaa_base from default blacklist (aaa_elflibs will stay + here). + +2004 Wed May 19 +--------------- + - Changed version to 1.2.1 + +2004 Thu May 06 +--------------- + - Fixed CRLF in slackpkg.conf.new and blacklist.new. + - Changed "usage" message. Now we have more information about + slackpkg use + +2004 Wed Apr 14 +--------------- + - Fixed another bug in regex. Problems with "+" again... + (reported by gar0t0, thanx!) + - Fixed typing and grammar errors in slackpkg.conf and blacklist. + (Thanx mRgOBLIN) + +2004 Tue Apr 13 +--------------- + - Fixed a bug in "parser". GPG checking now are better. + (Thanx mRgOBLIN) + - Added aaa_elflibs in default blacklist. + from volkerdi@slackware.com: + > A word of advice: you should ***NEVER*** upgradepkg aaa_elflibs. + > It's well-known that it can downgrade some shared libraries and + > lead to bugs + - Added aaa_base too... + +2004 Mon Apr 05 +--------------- + - Non-root can (again) use info and search. Changes in other places + change the behavior of slackpkg "parser"... + - Fixed a bug with "." and "+" in filenames. + +2004 Wed Mar 31 +--------------- + - Fixed one bug in "search" (yes, another bug!) (Thanx toledo, again) + - Change (again) the behavior of "Do you want to...". Now it's much + more logic, Y or y or <nothing> continues, any other key, quit. + +2004 Tue Mar 30 +--------------- + - Revert behavior of "Do you want to foobar those packages (Y/n)" back + to original. N or n quits, any other key continue + +2004 Fri Mar 26 +--------------- + - One more "error" message (isn't a error... it's more a info) + - Some cosmetic changes in other messages + - Another fix in "search" bug. (Thanx toledo) + +2004 Thu Mar 25 +--------------- + - Fixed some bugs added by the regex changes. + - Added a test to "first time running". Now slackpkg give some + tips to the user... + - Change the GPG download behavior. Now, if doesn't have the slackware + GPG key, the key will be downloaded in "slackpkg update" + +2004 Wed Mar 24 +--------------- + - Fixed many regex bugs and changes a lot of "greps". + - Fixed ls bugs -- changed to "ls -1" to stop multi column lists + - Added sed substitutions to fix problems with + in packagenames + - Altered awk script in info case statement to properly format output + when more than one result is returned + - Changed showlist function so that only Y/y will continue, any other + character will cleanup -- safeguards against a wrong key pressed + (all these fix cames from mRgOBLIN) + - Another feature to "non-root" users... now they can use "info" + +2004 Mon Mar 22 +--------------- + - Search function all overwrited by mRgOBLIN. The new function fixes + some bugs and add a feature, telling to the user what package needs + upgrade and the name of newer package version. + - Minor changes in some error messages + - Now "non-root" users can use "search" without install Slackware GPG + Key... + +2004 Thu Mar 18 +--------------- + - Put an error message when md5sum or gpg doesn't match. + (Thanx mRgOBLIN) + - Correct filelist.awk to fix some UGLY bugs in search function. + Now it's correct. + (Thanx mRgOBLIN, for the bug report and the tip of fix) + +2004 Mon Mar 01 +--------------- + - Added GPG function. Now slackpkg check all packages against its + .asc file. This option are enabled by default, if you doesn't like + that, you can change the configuration in /etc/slackpkg/slackpkg.conf + +2004 Thu Feb 26 +--------------- + - Fixed a bug with VIM package (yes, the bug affect only + vim package...) + - A little change in makelist function. Now we got our speed + back... when fixed duplicate packages the fix make slackpkg + more slow (4 minutes to make list for "slackpkg upgrade slackware"). + Now we doesn't have duplicated packages and have back our normal + speed (1 minute to "slackpkg upgrade slackware" list) + - Change version on all places to 1.03.1 + +2004 Tue Feb 18 +--------------- + - Now when we show a big package list, you can scroll with "more" + and can see all packages + - Bug fix! Something changed in FILELIST.TXT and slackpkg brokes + all package lists. Now it's ok. + (Thanx to chvt and Steven De Kock) + - New man-page provided by Rob. Thanx! + - Changed VERSION to 1.03 + +2004 Tue Feb 10 +--------------- + - We added a new system to make easy add new functions in slackpkg. + You only needs put your new function in a shell script and that + script under /usr/share/slackpkg/functions.d + + With that, if you want GPG checking (example), you only needs + add one checkgpg function and rewrite/change the getpkg. It's + a nice way of extend slackpkg. + + - Changed /usr/share to /usr/libexec. It makes more sense. + (Thanx thefallen) + - Fixed blacklist duplicate packages problem. Blacklist doesn't use + the default makelist function (now it uses). + (Thanx chvt for bug reports) + +2004 Thu Feb 06 +--------------- + - Corrected a little bug in makelist option. Some packages are + duplicated in the list. Now it's correct. + - Put "update" in "case-esac". It is the only option in a "if-fi" + +2004 Thu Feb 05 +--------------- + - Version are wrong in VERSION var. Now it's good. + - A lot of design changes. The "new" output style is a big mistake. + I am reverting slackpkg to the old one. + - We are splitting slackpkg in two parts. One with slackpkg functions + and other with the main program itself. It's really good. + - Put all options in a big "case-esac" instead multiple "if-fi" + +2004 Mon Feb 02 +--------------- + - A new "sleep" test to solve problems in Slackware 9.1 + - One tr -d "\r" to fix a bug in pkglist generation + (Thanx to Anatol) + - Added a new "clean" of tmp files in the slackpkg startup. It fixes + some ugly errors (slackpkg never-ends, slackpkg duplicate packages, + etc...) + (Thanx Lorn, toledo and gar0t0) + - Little changes in "info" now you will give an error if try to see + a "generic" info. "info" needs one package-name. + +2004 Fri Jan 30 +--------------- + - Put a spinning bar when making one slow action. Thanx to toledo!!! + The code for spinning bar works really fine, and now our users can + see: "something is happenning..." + - Edit a lot of small things in everywhere to use spinning bar. + - man-page, README and other docs are "updated". + - fixed some sleep problems in slackware 8.1/9.0, now our program call + an internal sleep function + +2004 Wed Jan 21 +--------------- + - Fixed "update" option. When we work with local dirs, the PACKAGES.TXT + are not "downloaded". + +2004 Mon Jan 19 +--------------- + - New option added! slackpkg info package can tell to you the + information about that package. + - Correct some small bugs in cutpkg (very small bugs... i can detect + they only now!!!) + - Changed update option to download PACKAGES.TXT too... + +2004 Fri Jan 17 +--------------- + - Changed the default wget to not show any info. Now we got a much more + cleaner output on screen. + - Corrected some bugs in new clean output system + +2004 Mon Jan 12 +--------------- + - Changed the ChangeLog file format. + - Corrected a bug in blacklist option. It's the same bug that happenned + in "download" option. The bug are reported by Toledo (again) + - Now slackpkg can "search" files in /extra and /pasture too + +Tue Nov 11 - Fixed a little problem with duplicated packages in reinstall + function. + - Corrected a bug in download option. It asks to "download" from + an empty line. Now it's fixed (bug report by Toledo) + +Mon Nov 10 - Changed version to 1.00 + . we have 1.00beta, 1.00beta1 and 1.00beta2 in internal tests + - Many, many changes in the backend... + . The package scan are completely rewroted. Now we can + make the package list 30% faster than old code. + . Now we have a lot of functions. The code are much more + flexible and readable + . Thanx to Jochem Kossen! + - New "download" function. + . Thanx to DaMouse! + - Some english typos corrected... (and some new introduced) + - Upgraded the man-page and README + +Thu Sep 25 - Updated man-page to show blacklist option + - Updated README to show blacklist option and to show the correct + release number. + - Correct the "usage" message to include blacklist option + - Ok, we remove kernel-* from blacklist and put in here a + message telling automated upgrade kernel-* isn't a good idea. + A lot of people tell me blacklist need to be empty... and i + approve that idea. + - Change the way of how detect packages that will be upgraded or + reinstalled. Old way thinks: package-1.2.3-i386-1 are the same + of package-1.2.3-i386-12345, now it's correct. + - Now slackpkg checks if the package is already in + /var/cache/packages before to download. If it's in cache, only + upgrade|install|reinstall, don't make a new download. + . Thanx Leandro Toledo + +Wed Sep 24 - Added "blacklist" command, to put packages in blacklist. + put all i18n packages manually is terrible. + + slackpkg blacklist kde-i18n + + will be help you (and me). + - Updated mirrors list. slackware 9.1 isn't out but we are + ready -:) (Thanx Cubano) + - Changed search function. Now, if we have one package installed + in your machine and one different in the MIRROR, the slackpkg + will tell to you to [ upgrade ]. Suggested by Nathan Morell + - Changed version to 0.99.1 + +Fri Sep 19 - Putting all kernel-packages in blacklist file. + It's a better idea upgrade kernel packages manually + Thanx to Buick_Sk. + +Mon Sep 15 - A warning telling to users DOESN'T USE ftp.slackware.com as your + default mirror. + - Merged a patch from pvg, making the package selection more + acurated, + - Changed version number to 0.99 + - Changed owner of some files and gzipped man-page. That makes + the package more "Slackware" compliant (Thanks Patrick) + - Leandro Toledo makes a patch with some fixes in CHECKSUMS.MD5 + download. + - Changed default package locations from /usr/local/packages to + /var/cache/packages. It's more compatible with FHS specifications + Thanx Patrick. + +Thu Aug 21 - Finally!!! One man page!!! Now slackpkg have a man-page and + you can type: man slackpkg to see more info. + . Thanx for William N. Zanatta for that manpage + - More syntax checkings... slackpkg have a lot of syntax checkings + +Wed Aug 20 - Changes in md5sum checking code. Original code are more + technical, but more complex. New code more clean. + +Tue Aug 19 - Changed version number to 0.98 + - Now we have md5sum check of packages. With that, is very + hard install a corrupt pack. + . Thanx for William N. Zanatta for that code + - Now we can install/upgrade/reinstall from a CD-ROM or other + dir in your HD. + - Some code cleanups using functions instead duplicate code. + - Corrected a bug in permissions check. Now, a normal user can + search for one (or more) files in packages. + +Fri Aug 01 - Updated mirrors file (now Slackware 9.0!!!) + . Thanx Cubano, Udontknow and gar0t0 + - Fixed problem with DELALL (old DELALL doesn't delete all, + delete only the last pack, now it works well and delete + really all) + . Thanx Isaque Galdino for the bug report and fix + - Deprecated MANIFEST.gz now the system only reads MANIFEST.bz2 + - Fixed a lot of typos (Udontknow) + - Check if the user is root before trying upgrade/install/remove + a package + +Thu Apr 10 - Added blacklist support with the packages that can't be + upgraded/installed/uninstalled. + . Thanx Gondim for that idea + - Changed version number to 0.96 + +Fri Apr 04 - Fix a bug with the kernel-sources package. Before that fix, + kernel-source are invisible to slackpkg + +Mon Mar 17 - Changed MANIFEST.gz to MANIFEST.bz2 (Patrick has changed that + and a lot of mirrors have changed too...) + - Fix a lock bug. + - Changed version number to 0.95 + +Wed Mar 12 - Changed FILELIST.TXT filter to exclude .asc files + - Changed version number to 0.94 + +Fri Feb 28 - Better "case" structure to select between + install|upgrade|reinstall + - Now we have an LOCK file. No more two slackpkg working at + same time. + - A trap and cleanup function to remove all garbage generated + by slackpkg. + +Fri Feb 14 - Change release number to 0.93 + - New install scripts, no more erased confs + - New option in slackpkg.conf, WGETFLAGS. Now you can specify + some wget confs with that option. + - New feature, reinstall. + install -> install new software + upgrade -> upgrade existing software with new version. + reinstall -> re-install already installed software + - Some upgrades in package lists generation. + +Wed Feb 5 - Change release number to 0.92 + - Correct search to know if other version (not in MANIFEST) of + software is installed. + - New tests to validate configuration files syntax + - No more default mirror. You really need to choice. + - Finally, a README file! + - Change slackpkg command location to /usr/sbin + +Thu Jan 23 - Change release number to 0.91 + - Add new function: search! Now you can search in slackware package + and find a "selected" file. + - More fixes in system messages... much more complete. + - New tests to validate command syntax before execution. + +Wed Jan 22 - Some feature fix in 0.90 + . Check if package can be installed/upgraded BEFORE download + . Cosmetic fix in some system messages. + +Tue Jan 21 - First public release 0.90 diff --git a/files/GPL b/files/GPL new file mode 100644 index 0000000..d60c31a --- /dev/null +++ b/files/GPL @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + 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 2 of the License, 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, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + <signature of Ty Coon>, 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/files/README b/files/README new file mode 100644 index 0000000..9ae6234 --- /dev/null +++ b/files/README @@ -0,0 +1,74 @@ + slackpkg - Automated Tool for Management of Slackware Linux Packages + --------------------------------------------------------------------- + Authors: Piter PUNK aka Roberto F Batista + <piterpunk@slackware.com> + Evaldo Gardenali aka UdontKnow + <evaldo@fasternet.com.br> + Robby Workman aka rworkman + <rworkman@slackware.com> + (since 2.82.2) + + Version: 0.93 released at Fri Feb 14 2003 + 0.94 released at Wed Mar 12 2003 + 0.95 released at Mon Mar 17 2003 + 0.96 released at Thu Apr 10 2003 + 0.97 released at Fri Aug 01 2003 + 0.98 released at Tue Aug 19 2003 + 0.99 released at Mon Sep 15 2003 + 0.99.1 released at Wed Sep 24 2003 + 1.00 released at Mon Nov 10 2003 + 1.02 released at Fri Jan 30 2004 + 1.02.1 released at Mon Feb 02 2004 + 1.02.2 released at Mon Feb 02 2004 + 1.03 released at Wed Feb 18 2004 + 1.03.1 released at Thu Feb 26 2004 + 1.1 released at Mon Mar 01 2004 + 1.2 released at Tue Mar 30 2004 + 1.2.1 released at Wed May 19 2004 + 1.2.2 released at Tue Jun 15 2004 + 1.3 released at Mon Nov 01 2004 + 1.3.1 released at Wed Dec 29 2004 + 1.4 released at Wed Jan 26 2005 + 1.4.1 released at Tue Jun 22 2005 + 1.5.0 released at Fri Jul 22 2005 + 1.5.1 released at Wed Aug 17 2005 + 1.5.2 released at Sun Sep 11 2005 + 2.03 released at Thu May 18 2006 + 2.04 released at Fri May 26 2006 + 2.05 released at Thu Jun 08 2006 + 2.06 released at Fri Jul 28 2006 + 2.07 released at Sun Aug 13 2006 + 2.08 released at Fri Aug 18 2006 + 2.09 released at Mon Aug 28 2006 + 2.52 released at Sat Mar 17 2007 + 2.60 released at Tue May 08 2007 + 2.61 released at Sat Jun 09 2007 + 2.70 released at Tue Jan 29 2008 + 2.70.1 released at Sat Mar 15 2008 + 2.70.2 released at Tue Apr 08 2008 + 2.70.3 released at Wed Apr 30 2008 + 2.70.4 released at Fri May 01 2008 + 2.70.5 released at Thu Dec 04 2008 + 2.71 released at Thu Apr 23 2009 + 2.71.1 released at Sat May 02 2009 + 2.80 released at Thu Jun 18 2009 + 2.80.1 released at Tue Jul 14 2009 + 2.80.2 released at Thu Jul 30 2009 + 2.81 released at Fri Apr 23 2010 + 2.81.1 released at Thu May 13 2010 + 2.82.0 released at Thu Mar 24 2011 + 2.82.1 released at Wed May 11 2016 + 2.82.2 released at Sun Oct 08 2017 + + Slackpkg is a tool for those who want to easily install or upgrade packages + via the network. With slackpkg, you can have a minimal installation of + Slackware Linux and install/upgrade only those packages you need most. + + You don't need to setup NFS or make dozens of CDs for all your computers; + all you need to do is to type one command and all the latest official + Slackware packages will be at your fingertips. + + For more information about slackpkg, see its man pages: + man 8 slackpkg + man 5 slackpkg.conf + diff --git a/files/blacklist.new b/files/blacklist.new new file mode 100644 index 0000000..d59a470 --- /dev/null +++ b/files/blacklist.new @@ -0,0 +1,36 @@ +# This is a blacklist file. Any packages listed here won't be +# upgraded, removed, or installed by slackpkg. +# +# The correct syntax is: +# +# To blacklist the package xorg-server-1.19.4-x86_64-1 the line will be: +# xorg-server +# +# DON'T put any space(s) before or after the package name or regexp. +# If you do this, the blacklist will NOT work. + +# +# Automated upgrade of kernel packages aren't a good idea (and you need to +# run "lilo" after upgrade). If you think the same, uncomment the lines +# below +# +#kernel-generic +#kernel-generic-smp +#kernel-huge +#kernel-huge-smp +#kernel-modules +#kernel-modules-smp +#kernel-source + +# +# aaa_elflibs should NOT be blacklisted! +# + +# You can blacklist using regular expressions. +# +# Don't use *full* regex here, because all of the following +# will be checked for the regex: series, name, version, arch, +# build and fullname. +# +# This one will blacklist all SBo packages: +#[0-9]+_SBo diff --git a/files/core-functions.sh b/files/core-functions.sh new file mode 100644 index 0000000..919bf80 --- /dev/null +++ b/files/core-functions.sh @@ -0,0 +1,1351 @@ + +#======================================================================== +# +# PROGRAM FUNCTIONS +# + +# Clean-up tmp and lock files +# +function cleanup() { + [ "$SPINNING" = "off" ] || tput cnorm + if [ -e $TMPDIR/error.log ]; then + echo -e " +\n============================================================================== +WARNING! WARNING! WARNING! WARNING! WARNING! +============================================================================== +One or more errors occurred while slackpkg was running: +" + cat $TMPDIR/error.log + echo -e " +==============================================================================" + fi + echo + if [ "$DELALL" = "on" ] && [ "$NAMEPKG" != "" ]; then + rm $CACHEPATH/$NAMEPKG &>/dev/null + fi + ( rm -f /var/lock/slackpkg.$$ && rm -rf $TMPDIR ) &>/dev/null + exit +} +trap 'cleanup' 2 14 15 # trap CTRL+C and kill + +# This create an spinning bar +spinning() { + local WAITFILE + local SPININTERVAL + local COUNT + + if [ "$SPIN" = "" ]; then + SPIN=( "|" "/" "-" "\\" ) + fi + COUNT=${#SPIN[@]} + + [ -n "$1" ] && WAITFILE=$1 || WAITFILE=/tmp/waitfile + [ -n "$2" ] && SPININTERVAL=$2 || SPININTERVAL=0.1 + + count=0 + tput civis + while [ -e $WAITFILE ] ; do + count=$(( count + 1 )) + tput sc + echo -n ${SPIN[$(( count % COUNT ))]} + tput rc + sleep $SPININTERVAL + done + tput cnorm +} + +# System setup +# +function system_setup() { + + # Set LOCAL if mirror isn't through network + # If mirror is through network, select the command to fetch + # files and packages from there. + # + MEDIA=${SOURCE%%:*} + if [ "$MEDIA" = "cdrom" ] || [ "$MEDIA" = "file" ] || \ + [ "$MEDIA" = "local" ]; then + SOURCE=/${SOURCE#${MEDIA}://} + LOCAL=1 + else + LOCAL=0 + if [ "$DOWNLOADER" = "curl" ]; then + DOWNLOADER="curl ${CURLFLAGS} -o" + else + DOWNLOADER="wget ${WGETFLAGS} -O" + fi + fi + + # Set MORECMD, EDITCMD and check BATCH mode + # + if [ "$BATCH" = "on" ] || [ "$BATCH" = "ON" ]; then + DIALOG=off + SPINNING=off + MORECMD=cat + EDITCMD=vi + if [ "$DEFAULT_ANSWER" = "" ]; then + DEFAULT_ANSWER=n + fi + else + if [ "${PAGER}" ]; then + MORECMD="${PAGER}" + else + MORECMD=more + fi + if [ "${EDITOR}" ]; then + EDITCMD="${EDITOR}" + else + EDITCMD=vi + fi + fi + + # Set ARCH, SLACKKEY and others by slackware port + # + if [ "$ARCH" = "" ]; then + ARCH=$(uname -m) + fi + case $ARCH in + i386|i486|i586|i686) + ARCH=[i]*[3456x]86[^_]* + SLACKKEY=${SLACKKEY:-"Slackware Linux Project <security@slackware.com>"} + PKGMAIN=${PKGMAIN:-slackware} + ;; + x86-64|x86_64|X86-64|X86_64) + ARCH=x86[_64]* + SLACKKEY=${SLACKKEY:-"Slackware Linux Project <security@slackware.com>"} + PKGMAIN=${PKGMAIN:-slackware64} + ;; + s390) + ARCH=s390 + # Slack390 didn't have signed packages + CHECKGPG=off + PKGMAIN=${PKGMAIN:-slackware} + ;; + arm*) + ARCH=arm[v5tel]* + SLACKKEY=${SLACKKEY:-"ARMedslack Security (ARMedslack Linux Project Security) <security@armedslack.org>"} + PKGMAIN=${PKGMAIN:-slackware} + ;; + powerpc|ppc) + ARCH=powerpc + SLACKKEY=${SLACKKEY:-"Slackintosh-Project Sign <slackdev@workaround.ch>"} + PKGMAIN=${PKGMAIN:-slackintosh} + ;; + *) + ARCH=none + ;; + esac + + # Sub %PKGMAIN with the correct $PKGMAIN value + # + MAIN=$PKGMAIN + for i in 0 1 2 3 4 ; do + if [ "${PRIORITY[$i]}" = "%PKGMAIN" ]; then + PRIORITY[$i]=$PKGMAIN + fi + done + + TEMPLATEDIR=$CONF/templates + if [ ! -d $TEMPLATEDIR ]; then + mkdir $TEMPLATEDIR + fi + + SLACKCFVERSION=$(grep "# v[0-9.]\+" $CONF/slackpkg.conf | cut -f2 -dv) + CHECKSUMSFILE=$WORKDIR/CHECKSUMS.md5 + KERNELMD5=$(md5sum /boot/vmlinuz 2>/dev/null) + DIALOG_MAXARGS=${DIALOG_MAXARGS:-19500} + echo "$0 $VERSION - Slackware Linux $SLACKWARE_VERSION" > $TMPDIR/timestamp +} + +# Syntax Checking +# +function system_checkup() { + + # Check slackpkg.conf version + # + SLCKCFVL=$( expr length $SLACKCFVERSION ) + if [ "$SLACKCFVERSION" != "$( echo $VERSION |cut -c1-$SLCKCFVL)" ] &&\ + [ "$CMD" != "new-config" ]; then + echo -e "\ +\nYour slackpkg.conf is outdated. Please, edit it using slackpkg.conf.new\n\ +as example or overwrite it with slackpkg.conf.new.\n\ +\nYou can use 'slackpkg new-config' to do that.\n" + cleanup + fi + + # Check if ARCH is set + # + if [ "$ARCH" = "none" ] && [ "$CMD" != "new-config" ]; then + echo -e "\ +\nThe ARCH values in slackpkg.conf are now different. You can remove\n\ +ARCH from there, and slackpkg you use your current ARCH or you can look\n\ +at slackpkg.conf.new or slackpkg.conf manual page to see the new valid\n\ +ARCH values\n" + cleanup + fi + + # Check if the config files are updated to the new slackpkg version + # + if [ "$WORKDIR" = "" ]; then + echo -e "\ +\nYou need to upgrade your slackpkg.conf.\n\ +This is a new slackpkg version and many changes happened in config files.\n\ +In ${CONF}/slackpkg.conf.new, there is a sample of the new configuration.\n\ +\nAfter updating your configuration file, run: slackpkg update\n" + cleanup + fi + + # Checking if another instance of slackpkg is running + # + if [ "$(ls /var/lock/slackpkg.* 2>/dev/null)" ] && \ + [ "$CMD" != "search" ] && \ + [ "$CMD" != "help" ] && \ + [ "$CMD" != "file-search" ]; then + echo -e "\ +\nAnother instance of slackpkg is running. If this is not correct, you can\n\ +remove /var/lock/slackpkg.* files and run slackpkg again.\n" + cleanup + else + ls /var/lock/slackpkg.* &>/dev/null || \ + touch /var/lock/slackpkg.$$ + fi + + # Checking if the we can create TMPDIR + # + if [ "$TMPDIR" = "FAILED" ]; then + echo -e "\ +\nA problem was encountered writing to slackpkg's temporary dir in /tmp.\n\ +Check to ensure you have permissions to write in /tmp and make sure the\n\ +filesystem is not out of free space. Run slackpkg again after correcting\n\ +the problem.\n" + cleanup + fi + + # Checking if is the first time running slackpkg + # + if ! [ -f ${WORKDIR}/pkglist ] && [ "$CMD" != "update" ]; then + if [ "$SOURCE" = "" ]; then + echo -e "\ +\nThis appears to be the first time you have run slackpkg.\n\ +Before you install|upgrade|reinstall anything, you need to uncomment\n\ +ONE mirror in ${CONF}/mirrors and run:\n\n\ +\t# slackpkg update\n\n\ +You can see more information about slackpkg functions in slackpkg manpage." + cleanup + elif [ "$CMD" != "new-config" ]; then + echo -e "\ +\nThe package list is missing.\n\ +Before you install|upgrade|reinstall anything you need to run:\n\n\ +\t# slackpkg update\n" + cleanup + fi + fi + + + # Checking if /etc/slackpkg/mirrors are in correct syntax. + # + if [ "$SOURCE" = "" ] ; then + echo -e "\ +\nYou do not have any mirror selected in ${CONF}/mirrors\n\ +Please edit that file and uncomment ONE mirror. Slackpkg\n\ +only works with ONE mirror selected.\n" + cleanup + else + COUNT=$(echo $SOURCE | wc -w | tr -d " ") + if [ "$COUNT" != "1" ]; then + echo -e "\n\ +Slackpkg only works with ONE mirror selected. Please edit your\n\ +${CONF}/mirrors and comment all but one line - two or more\n\ +mirrors uncommented is not valid syntax.\n" + cleanup + fi + fi + + # It will check if the mirror selected are ftp.slackware.com + # if set to "ftp.slackware.com" tell the user to choose another + # + if echo ${SOURCE} | grep "^ftp://ftp.slackware.com" &>/dev/null ; then + echo -e "\n\ +Please use one of the mirrors.\n\ +ftp.slackware.com should be reserved so that the\n\ +official mirrors can be kept up-to-date.\n" + cleanup + fi + + # Also check if the mirror selected is ftp://mirrors.slackware.com + # if set to "ftp://mirrors.slackware.com" tell the user to choose another + # + if echo ${SOURCE} | grep "^ftp://mirrors.slackware.com" &>/dev/null ; then + echo -e "\n\ +Please use http://mirrors.slackware.com instead.\n\ +ftp://mirrors.slackware.com does not handle redirects \n\ +to the closest mirror and is very slow.\n" + cleanup + fi + + # Checking if the user has the permissions to install/upgrade/update + # + if [ "$(id -u)" != "0" ] && \ + [ "$CMD" != "search" ] && \ + [ "$CMD" != "file-search" ] && \ + [ "$CMD" != "check-updates" ] && \ + [ "$CMD" != "info" ]; then + echo -e "\n\ +Only root can install, upgrade, or remove packages.\n\ +Please log in as root or contact your system administrator.\n" + cleanup + fi + + # Check if the "which" command is there + if ! which which 1>/dev/null 2>/dev/null ; then + echo -e "\n\ +No 'which' command found, please install it if you want to\n\ +use slackpkg.\n" + cleanup + fi + + # Check if we have md5sum in the PATH. Without md5sum, disables + # md5sum checks + # + if ! [ $(which md5sum 2>/dev/null) ]; then + CHECKMD5=off + elif ! [ -f ${WORKDIR}/CHECKSUMS.md5 ] && \ + [ "$CMD" != "update" ] && \ + [ "$CHECKMD5" = "on" ]; then + echo -e "\n\ +No CHECKSUMS.md5 found! Please disable md5sums checking\n\ +on your ${CONF}/slackpkg.conf or run slackpkg update\n\ +to download a new CHECKSUMS.md5 file.\n" + cleanup + fi + + # Check if awk is installed + # + if ! [ "$(which awk 2>/dev/null)" ]; then + echo -e "\n\ +awk package not found! Please install awk before you run slackpkg,\n\ +as slackpkg cannot function without awk.\n" + cleanup + fi + + # Check if tput is there + # + if ! which tput 1>/dev/null 2>/dev/null ; then + SPINNING=off + fi + + # Check if gpg is enabled but no GPG command are found. + # + if ! [ "$(which gpg 2>/dev/null)" ] && [ "${CHECKGPG}" = "on" ]; then + CHECKGPG=off + echo -e "\n\ +gpg package not found! Please disable GPG in ${CONF}/slackpkg.conf or install\n\ +the gnupg package.\n\n\ +To disable GPG, edit slackpkg.conf and change the value of the CHECKGPG \n\ +variable to "off" - you can see an example in the original slackpkg.conf.new\n\ +file distributed with slackpkg.\n" + sleep 5 + fi + + # Check if the Slackware GPG key are found in the system + # + GPGFIRSTTIME="$(gpg --list-keys \"$SLACKKEY\" 2>/dev/null \ + | grep -c "$SLACKKEY")" + if [ "$GPGFIRSTTIME" = "0" ] && \ + [ "$CMD" != "search" ] && \ + [ "$CMD" != "file-search" ] && \ + [ "$CMD" != "info" ] && \ + [ "$CMD" != "new-config" ] && \ + [ "$CMD" != "update" ] && \ + [ "$CMD" != "check-updates" ] && \ + [ "$CHECKGPG" = "on" ]; then + echo -e "\n\ +You need the GPG key of $SLACKKEY.\n\ +To download and install that key, run:\n\n\ +\t# slackpkg update gpg\n\n\ +You can disable GPG checking too, but it is not a good idea.\n\ +To disable GPG, edit slackpkg.conf and change the value of the CHECKGPG\n\ +variable to "off" - you can see an example in the original slackpkg.conf.new\n\ +file distributed with slackpkg.\n" + cleanup + fi + echo +} + +# Got the name of a package, without version-arch-release data +# +function cutpkg() { + echo ${1/%.t[blxg]z/} | awk -F- -f /usr/libexec/slackpkg/cutpkg.awk +} + +# The same, but reading packages from stdin +# +function batchcutpkg() { + awk -F- -f /usr/libexec/slackpkg/cutpkg.awk +} + +# Show the slackpkg usage +# +function usage() { + echo -e "\ +slackpkg - version $VERSION\n\ +\nUsage:\n\ +\tslackpkg [OPTIONS] {install|remove|search|file-search| +\t\t\t upgrade|reinstall|blacklist} {PATTERN|FILE} +\tslackpkg [OPTIONS] {generate-template|install-template|remove-template} +\t\t\t TEMPLATENAME +\tslackpkg [OPTIONS] info PACKAGE +\tslackpkg [OPTIONS] update [gpg] +\tslackpkg [OPTIONS] {clean-system|upgrade-all|install-new} +\tslackpkg [OPTIONS] {new-config|check-updates|help} +\nIf you need more information try to use 'slackpkg help' or look the\n\ +slackpkg's manpage. +" + cleanup +} + +function full_usage() { + echo -e "\ +slackpkg - version $VERSION\n\ +\nUsage: \tslackpkg update [gpg]\t\tdownload and update files and +\t\t\t\t\tpackage indexes +\tslackpkg check-updates\t\tcheck if there is any news on +\t\t\t\t\tSlackware's ChangeLog.txt +\tslackpkg install package\tdownload and install packages +\tslackpkg upgrade package\tdownload and upgrade packages +\tslackpkg reinstall package\tsame as install, but for packages +\t\t\t\t\talready installed +\tslackpkg remove package\t\tremove installed packages +\tslackpkg clean-system\t\tremove all packages which are not +\t\t\t\t\tpresent in the official Slackware +\t\t\t\t\tpackage set. Good to keep the house +\t\t\t\t\tin order +\tslackpkg upgrade-all\t\tsync all packages installed in your +\t\t\t\t\tmachine with the selected mirror. This +\t\t\t\t\tis the "correct" way to upgrade all of +\t\t\t\t\tyour machine. +\tslackpkg install-new\t\tinstall packages which are added to +\t\t\t\t\tthe official Slackware package set. +\t\t\t\t\tRun this if you are upgrading to another +\t\t\t\t\tSlackware version or using "current". +\tslackpkg blacklist\t\tBlacklist a package. Blacklisted +\t\t\t\t\tpackages cannot be upgraded, installed, +\t\t\t\t\tor reinstalled by slackpkg +\tslackpkg download\t\tOnly download (do not install) a package +\tslackpkg info package\t\tShow package information +\t\t\t\t\t(works with only ONE package) +\tslackpkg search package\t\tSearch packages that have a +\t\t\t\t\tselected name +\tslackpkg file-search file\tSearch for a specific file in the +\t\t\t\t\tentire package collection +\tslackpkg new-config\t\tSearch for new configuration files and +\t\t\t\t\task to user what to do with them. +\tslackpkg generate-template\tCreate a template with all +\t\t\t\t\tofficial Slackware packages installed +\t\t\t\t\tin your machine. +\tslackpkg install-template\tInstall selected template. +\tslackpkg remove-template\tRemove selected template. Be careful. +\tslackpkg help\t\t\tShow this screen. +\nYou can see more information about slackpkg usage and some examples +in slackpkg's manpage. You can use partial package names (such as xorg +instead of xorg-server, xorg-docs, etc), or even Slackware series +(such as "n","ap","xap",etc) when searching for packages. +" + cleanup +} + +# Verify if we have enough disk space to install selected package +# +function havespace() { + local DSIZE + local ASIZE + DSIZE=$(grep "^${1}" ${TMPDIR}/tempsize | \ + awk 'BEGIN { tot=0 } { tot+=$2 } END { print int(tot/1024)+1}') + ASIZE=$(df ${1} | awk '/% \// { print 0+$(NF-2) }') + if [ ${DSIZE} -gt ${ASIZE} ] ; then + ISOK=0 + fi +} + +function checksize() { + local i + local ISOK=1 + tar -tvf ${1} | tr -s ' ' | grep -v '^[dl]' | cut -f6,3 -d\ | \ + sed 's,[^/]*$,,' | awk ' + { size[$2]+=$1 } + END { + for (i in size) { + print "/"i,size[i] + } + }' > ${TMPDIR}/tempsize + + for i in $(tac /proc/mounts | grep "^/dev" |cut -f2 -d\ ); do + if grep -q "^${i}" ${TMPDIR}/tempsize ; then + havespace ${i} + grep -v "^${i}/" ${TMPDIR}/tempsize > ${TMPDIR}/tempsize.tmp + mv ${TMPDIR}/tempsize.tmp ${TMPDIR}/tempsize + fi + done + echo ${ISOK} +} + +# Verify if the package was corrupted by checking md5sum +# +function checkmd5() { + local MD5ORIGINAL + local MD5DOWNLOAD + + MD5ORIGINAL=$( grep -v "/source/" ${CHECKSUMSFILE} |\ + grep -m1 "/$(basename $1)$" | cut -f1 -d \ ) + MD5DOWNLOAD=$(md5sum ${1} | cut -f1 -d \ ) + if [ "$MD5ORIGINAL" = "$MD5DOWNLOAD" ]; then + echo 1 + else + echo 0 + fi +} + +# Verify the GPG signature of files/packages +# +function checkgpg() { + gpg --verify ${1}.asc ${1} 2>/dev/null && echo "1" || echo "0" +} + +# Found packages in repository. +# This function selects the package from the higher priority +# repository directories. +# +function givepriority { + local DIR + local ARGUMENT=$1 + local PKGDATA + + unset NAME + unset FULLNAME + unset PKGDATA + + for DIR in ${PRIORITY[@]} ; do + [ "$PKGDATA" ] && break + PKGDATA=( $(grep "^${DIR} ${ARGUMENT} " ${TMPDIR}/pkglist) ) + if [ "$PKGDATA" ]; then + NAME=${PKGDATA[1]} + FULLNAME=$(echo "${PKGDATA[5]}.${PKGDATA[7]}") + fi + done +} + +# Creates files with mirror package names (spkg), local package +# names (lpkg) and packages unique to one or other file (dpkg) +# +function listpkgname() { + cut -f2 -d\ ${TMPDIR}/pkglist | sort > ${TMPDIR}/spkg + cut -f2 -d\ ${TMPDIR}/tmplist | sort > ${TMPDIR}/lpkg + cat ${TMPDIR}/pkglist ${TMPDIR}/tmplist | \ + cut -f2-6 -d\ |sort | uniq -u | \ + cut -f1 -d\ | uniq > ${TMPDIR}/dpkg +} + +function applyblacklist() { + grep -vEw -f ${TMPDIR}/blacklist +} + +# Function to make install/reinstall/upgrade lists +# +function makelist() { + local ARGUMENT + local i + local VRFY + + INPUTLIST=$@ + + grep -vE "(^#|^[[:blank:]]*$)" ${CONF}/blacklist > ${TMPDIR}/blacklist + if echo $CMD | grep -q install ; then + ls -1 $ROOT/var/log/packages/* | awk -f /usr/libexec/slackpkg/pkglist.awk > ${TMPDIR}/tmplist + else + ls -1 $ROOT/var/log/packages/* | awk -f /usr/libexec/slackpkg/pkglist.awk | applyblacklist > ${TMPDIR}/tmplist + fi + cat ${WORKDIR}/pkglist | applyblacklist > ${TMPDIR}/pkglist + + touch ${TMPDIR}/waiting + + case "$CMD" in + clean-system) + echo -n "Looking for packages to remove. Please wait... " + ;; + upgrade-all) + echo -n "Looking for packages to upgrade. Please wait... " + ;; + install-new) + echo -n "Looking for NEW packages to install. Please wait... " + ;; + *-template) + echo -n "Looking for packages in \"$ARG\" template to ${CMD/%-template/}. Please wait..." + ;; + *) + echo -n "Looking for $(echo $INPUTLIST | tr -d '\\') in package list. Please wait... " + ;; + esac + + [ "$SPINNING" = "off" ] || spinning ${TMPDIR}/waiting & + + case "$CMD" in + download) + for ARGUMENT in $(echo $INPUTLIST); do + for i in $(grep -w -- "${ARGUMENT}" ${TMPDIR}/pkglist | cut -f2 -d\ | sort -u); do + LIST="$LIST $(grep " ${i} " ${TMPDIR}/pkglist | cut -f6,8 -d\ --output-delimiter=.)" + done + LIST="$(echo -e $LIST | sort -u)" + done + ;; + blacklist) + for ARGUMENT in $(echo $INPUTLIST); do + for i in $(cat ${TMPDIR}/pkglist ${TMPDIR}/tmplist | \ + grep -w -- "${ARGUMENT}" | cut -f2 -d\ | sort -u); do + grep -qx "${i}" ${CONF}/blacklist || LIST="$LIST $i" + done + done + ;; + install|upgrade|reinstall) + for ARGUMENT in $(echo $INPUTLIST); do + for i in $(grep -w -- "${ARGUMENT}" ${TMPDIR}/pkglist | cut -f2 -d\ | sort -u); do + givepriority $i + [ ! "$FULLNAME" ] && continue + + case $CMD in + 'upgrade') + VRFY=$(cut -f6 -d\ ${TMPDIR}/tmplist | \ + grep -x "${NAME}-[^-]\+-\(noarch\|fw\|${ARCH}\)-[^-]\+") + [ "${FULLNAME/%.t[blxg]z/}" != "${VRFY}" ] && \ + [ "${VRFY}" ] && \ + LIST="$LIST ${FULLNAME}" + ;; + 'install') + grep -q " ${NAME} " ${TMPDIR}/tmplist || \ + LIST="$LIST ${FULLNAME}" + ;; + 'reinstall') + grep -q " ${FULLNAME/%.t[blxg]z} " ${TMPDIR}/tmplist && \ + LIST="$LIST ${FULLNAME}" + ;; + esac + done + done + ;; + remove) + for ARGUMENT in $(echo $INPUTLIST); do + for i in $(cat ${TMPDIR}/pkglist ${TMPDIR}/tmplist | \ + grep -w -- "${ARGUMENT}" | cut -f6 -d\ | sort -u); do + PKGDATA=( $(grep -w -- "$i" ${TMPDIR}/tmplist) ) + [ ! "$PKGDATA" ] && continue + LIST="$LIST ${PKGDATA[5]}" + unset PKGDATA + done + done + ;; + clean-system) + listpkgname + for i in $(comm -2 -3 ${TMPDIR}/lpkg ${TMPDIR}/spkg) ; do + PKGDATA=( $(grep -- "^local $i " ${TMPDIR}/tmplist) ) + [ ! "$PKGDATA" ] && continue + LIST="$LIST ${PKGDATA[5]}" + unset PKGDATA + done + ;; + upgrade-all) + listpkgname + for i in $(comm -1 -2 ${TMPDIR}/lpkg ${TMPDIR}/dpkg | \ + comm -1 -2 - ${TMPDIR}/spkg) ; do + + givepriority ${i} + [ ! "$FULLNAME" ] && continue + + VRFY=$(cut -f6 -d\ ${TMPDIR}/tmplist | grep -x "${NAME}-[^-]\+-\(noarch\|fw\|${ARCH}\)-[^-]\+") + [ "${FULLNAME/%.t[blxg]z}" != "${VRFY}" ] && \ + [ "${VRFY}" ] && \ + LIST="$LIST ${FULLNAME}" + done + ;; + install-new) + for i in $(awk -f /usr/libexec/slackpkg/install-new.awk ${WORKDIR}/ChangeLog.txt |\ + sort -u ) dialog aaa_terminfo fontconfig \ + ntfs-3g ghostscript wqy-zenhei-font-ttf \ + xbacklight xf86-video-geode ; do + + givepriority $i + [ ! "$FULLNAME" ] && continue + + grep -q " ${NAME} " ${TMPDIR}/tmplist || \ + LIST="$LIST ${FULLNAME}" + done + ;; + install-template) + for i in $INPUTLIST ; do + givepriority $i + [ ! "$FULLNAME" ] && continue + grep -q " ${NAME} " ${TMPDIR}/tmplist || \ + LIST="$LIST ${FULLNAME}" + done + ;; + remove-template) + for i in $INPUTLIST ; do + givepriority $i + [ ! "$FULLNAME" ] && continue + grep -q " ${NAME} " ${TMPDIR}/tmplist && \ + LIST="$LIST ${FULLNAME}" + done + ;; + search|file-search) + # -- temporary file used to store the basename of selected + # packages. + + PKGNAMELIST=$(tempfile --directory=$TMPDIR) + + if [ "$CMD" = "file-search" ]; then + # Search filelist.gz for possible matches + for i in ${PRIORITY[@]}; do + if [ -e ${WORKDIR}/${i}-filelist.gz ]; then + PKGS="$(zegrep -w "${INPUTLIST}" ${WORKDIR}/${i}-filelist.gz | \ + cut -d\ -f 1 | awk -F'/' '{print $NF}')" + for FULLNAME in $PKGS ; do + NAME=$(cutpkg ${FULLNAME}) + grep -q "^${NAME}$" $PKGNAMELIST && continue + LIST="$LIST ${FULLNAME}" + echo "$NAME" >> $PKGNAMELIST + done + fi + done + else + for i in ${PRIORITY[@]}; do + PKGS=$(grep "^${i}.*${PATTERN}" \ + ${TMPDIR}/pkglist | cut -f6 -d\ ) + for FULLNAME in $PKGS ; do + NAME=$(cutpkg ${FULLNAME}) + + grep -q "^${NAME}$" $PKGNAMELIST && continue + LIST="$LIST ${FULLNAME}" + echo "$NAME" >> $PKGNAMELIST + done + done + fi + rm -f $PKGNAMELIST + ;; + esac + LIST=$(echo -e $LIST | tr \ "\n" | uniq ) + + rm ${TMPDIR}/waiting + + echo -e "DONE\n" +} + +# Function to count total of packages +# +function countpkg() { + local COUNTPKG=$(echo -e "$1" | wc -w) + + if [ "$COUNTPKG" != "0" ]; then + echo -e "Total package(s): $COUNTPKG\n" + fi +} + +function answer() { + if [ "$BATCH" = "on" ]; then + ANSWER="$DEFAULT_ANSWER" + echo $DEFAULT_ANSWER + else + read ANSWER + fi +} + +function searchlist() { + local i + local BASENAME + local RAWNAME + local STATUS + local INSTPKG + + for i in $1; do + if [ "$BASENAME" = "$(cutpkg ${i})" ]; then + continue + fi + # BASENAME is base package name + BASENAME="$(cutpkg ${i})" + + # RAWNAME is Latest available version + RAWNAME="${i/%.t[blxg]z/}" + + # Default is uninstalled + STATUS="uninstalled" + + # First is the package already installed? + # Amazing what a little sleep will do + # exclusion is so much nicer :) + INSTPKG=$(ls -1 $ROOT/var/log/packages | \ + grep -e "^${BASENAME}-[^-]\+-\(${ARCH}\|fw\|noarch\)-[^-]\+") + + # INSTPKG is local version + if [ ! "${INSTPKG}" = "" ]; then + + # If installed is it uptodate? + if [ "${INSTPKG}" = "${RAWNAME}" ]; then + STATUS=" installed " + echo "[${STATUS}] - ${INSTPKG}" + else + STATUS=" upgrade " + echo "[${STATUS}] - ${INSTPKG} --> ${RAWNAME}" + fi + else + echo "[${STATUS}] - ${RAWNAME}" + fi + done +} + +# Show the lists and asks if the user want to proceed with that action +# Return accepted list in $SHOWLIST +# +function showlist() { + local ANSWER + local i + + for i in $1; do echo $i; done | $MORECMD + echo + countpkg "$1" + echo -e "Do you wish to $2 selected packages (Y/n)? \c" + answer + if [ "$ANSWER" = "N" -o "$ANSWER" = "n" ]; then + cleanup + else + SHOWLIST="$1" + continue + fi +} + +function getfile() { + if [ "$LOCAL" = "1" ]; then + echo -e "\t\t\tLinking $1..." + if [ -e $1 ]; then + ln -s $1 $2 2>/dev/null + else + return 1 + fi + else + echo -e "\t\t\tDownloading $1..." + $DOWNLOADER $2 $1 + fi +} + +# Function to download the correct package and many "checks" +# +function getpkg() { + local ISOK="1" + local ERROR="" + local PKGNAME + local FULLPATH + local NAMEPKG + local CACHEPATH + + PKGNAME=( $(grep -m 1 -- "[[:space:]]${1/%.t[blxg]z/}[[:space:]]" ${TMPDIR}/pkglist) ) + NAMEPKG=${PKGNAME[5]}.${PKGNAME[7]} + FULLPATH=${PKGNAME[6]} + CACHEPATH=${TEMP}/${FULLPATH} + + # Create destination dir if it isn't there + if ! [ -d $CACHEPATH ]; then + mkdir -p $CACHEPATH + fi + + if ! [ -e ${CACHEPATH}/${NAMEPKG} ]; then + echo -e "\nPackage: $1" + # Check if the mirror are local, if is local, copy files + # to CACHEPATH else, download packages from remote host and + # put then in CACHEPATH + # + getfile ${SOURCE}${FULLPATH}/${NAMEPKG} \ + ${CACHEPATH}/${NAMEPKG} + if [ "$CHECKGPG" = "on" ]; then + getfile ${SOURCE}${FULLPATH}/${NAMEPKG}.asc \ + ${CACHEPATH}/${NAMEPKG}.asc + fi + + if ! [ -e ${CACHEPATH}/$1 ]; then + ERROR="Not found" + ISOK="0" + echo -e "${NAMEPKG}:\t$ERROR" >> $TMPDIR/error.log + fi + else + echo -e "\tPackage $1 is already in cache - not downloading" + fi + + # Check if we have sufficient disk space to install selected package + if [ "$CHECKSIZE" = "on" ] && [ "$ISOK" = "1" ]; then + ISOK=$(checksize ${CACHEPATH}/$1) + if [ "$ISOK" = "0" ]; then + ERROR="Insufficient disk space" + echo -e "${NAMEPKG}:\t$ERROR" >> $TMPDIR/error.log + fi + fi + + # If MD5SUM checks are enabled in slackpkg.conf, check the + # packages md5sum to detect if they are corrupt or not + # + if [ "$CHECKMD5" = "on" ] && [ "$ISOK" = "1" ]; then + ISOK=$(checkmd5 ${CACHEPATH}/$1) + if [ "$ISOK" = "0" ]; then + ERROR="md5sum" + echo -e "${NAMEPKG}:\t$ERROR" >> $TMPDIR/error.log + fi + if [ "$CHECKGPG" = "on" ] && [ "$ISOK" = "1" ]; then + ISOK=$(checkmd5 ${CACHEPATH}/$1.asc) + if [ "$ISOK" = "0" ]; then + ERROR="md5sum" + echo -e "${NAMEPKG}.asc:\t$ERROR" >> \ + $TMPDIR/error.log + fi + fi + fi + + # Check the package against its .asc. If you don't like this + # disable GPG checking in /etc/slackpkg/slackpkg.conf + # + if [ "$CHECKGPG" = "on" ] && [ "$ISOK" = "1" ]; then + ISOK=$(checkgpg ${CACHEPATH}/$1) + if [ "$ISOK" = "0" ]; then + ERROR="gpg" + echo -e "${NAMEPKG}:\t$ERROR" >> $TMPDIR/error.log + fi + fi + + if [ "$ISOK" = "1" ]; then + case $2 in + installpkg) + echo -e "\tInstalling ${1/%.t[blxg]z/}..." + ;; + upgradepkg) + echo -e "\tUpgrading ${1/%.t[blxg]z/}..." + ;; + *) + echo -e "\c" + ;; + esac + ( cd $CACHEPATH && $2 $1 ) + else + rm $CACHEPATH/$1 2>/dev/null + echo -e "\tERROR - Package not installed! $ERROR error!" + fi + + # If DELALL is checked, all downloaded files will be erased + # after installed/upgraded/reinstalled + # + if [ "$DELALL" = "on" ]; then + rm $CACHEPATH/$1 $CACHEPATH/${1}.asc 2>/dev/null + fi +} + +# Main logic to download and format package list, md5 etc. +# +function checkchangelog() +{ + if ! [ -e ${WORKDIR}/ChangeLog.txt ]; then + touch ${WORKDIR}/ChangeLog.txt + fi + + echo -e "\tDownloading..." + # + # Download ChangeLog.txt first of all and test if it's equal + # or different from our already existent ChangeLog.txt + # + getfile ${SOURCE}ChangeLog.txt $TMPDIR/ChangeLog.txt + if ! grep -q "[a-z]" $TMPDIR/ChangeLog.txt ; then + echo -e "\ +\nError downloading from $SOURCE.\n\ +Please check your mirror and try again." + cleanup + fi + + if diff --brief ${WORKDIR}/ChangeLog.txt $TMPDIR/ChangeLog.txt ; then + return 0 + else + return 1 + fi +} + +function updatefilelists() +{ + if checkchangelog ; then + echo -e "\ +\n\t\tNo changes in ChangeLog.txt between your last update and now.\n\ +\t\tDo you really want to download all other files (y/N)? \c" + answer + if [ "$ANSWER" != "Y" ] && [ "$ANSWER" != "y" ]; then + cleanup + fi + fi + echo + cp ${TMPDIR}/ChangeLog.txt ${WORKDIR}/ChangeLog.txt + + # + # Download MANIFEST, FILELIST.TXT and CHECKSUMS.md5 + # + + # That will be download MANIFEST.bz2 files + # + echo -e "\t\tList of all files" + for i in ${PRIORITY[@]} ; do + getfile ${SOURCE}${i}/MANIFEST.bz2 $TMPDIR/${i}-MANIFEST.bz2 && \ + DIRS="$DIRS $i" + done + + ISOK="1" + echo -e "\t\tChecksums" + getfile ${SOURCE}CHECKSUMS.md5 ${TMPDIR}/CHECKSUMS.md5 + getfile ${SOURCE}CHECKSUMS.md5.asc ${TMPDIR}/CHECKSUMS.md5.asc + if ! [ -e "${TMPDIR}/CHECKSUMS.md5" ]; then + echo -e "\ +\n\t\tWARNING: Your mirror appears incomplete and is missing the\n\ +\t\t CHECKSUMS.md5 file. We recommend you change your mirror\n\ +\t\t so that package integrity can be verified against \n\ +\t\t CHECKSUMS.md5.\n" + sleep 10 + else + if [ "$CHECKGPG" = "on" ]; then + ISOK=$(checkgpg ${TMPDIR}/CHECKSUMS.md5) + if [ "$ISOK" = "0" ]; then + rm $TMPDIR/CHECKSUMS.md5 + rm $TMPDIR/CHECKSUMS.md5.asc + echo -e "\ +\n\t\tERROR: Verification of the gpg signature on CHECKSUMS.md5\n\ +\t\t failed! This could mean that the file is out of date\n\ +\t\t or has been tampered with.\n" + cleanup + fi + elif [ "$SLACKKEY" != "" ]; then + echo -e "\ +\n\t\tWARNING: Without CHECKGPG, we can't check if this file is\n\ +\t\t signed by:\n\ +\n\t\t $SLACKKEY.\n\ +\n\t\t Enabling CHECKGPG is highly recommended for best\n\ +\t\t security.\n" + sleep 10 + fi + fi + + ISOK="1" + echo -e "\t\tPackage List" + getfile ${SOURCE}FILELIST.TXT ${TMPDIR}/FILELIST.TXT + if [ "$CHECKMD5" = "on" ]; then + CHECKSUMSFILE=${TMPDIR}/CHECKSUMS.md5 + ISOK=$(checkmd5 ${TMPDIR}/FILELIST.TXT) + fi + if [ "$ISOK" = "1" ]; then + if ! [ -e $WORKDIR/LASTUPDATE ]; then + echo "742868196" > $WORKDIR/LASTUPDATE + fi + LASTUPDATE=$(cat $WORKDIR/LASTUPDATE) + ACTUALDATE=$(date -d "$(head -1 $TMPDIR/FILELIST.TXT)" "+%s") + if [ $ACTUALDATE -lt $LASTUPDATE ]; then + echo -e "\ +\n\t\tFILELIST.TXT seems to be older than the last one.\n\ +\t\tDo you really want to continue (y/N)? \c" + answer + if [ "$ANSWER" != "Y" ] && [ "$ANSWER" != "y" ]; then + cleanup + fi + echo + fi + echo $ACTUALDATE > $WORKDIR/LASTUPDATE + else + rm $TMPDIR/FILELIST.TXT + fi + + if [ -e $TMPDIR/CHECKSUMS.md5 ]; then + FILELIST="$TMPDIR/CHECKSUMS.md5" + elif [ -e $TMPDIR/FILELIST.TXT ]; then + if [ "$ISOK" = "0" ]; then + echo -e "\ +\n\t\tERROR: CHECKSUMS.md5 signature doesn't match!\n\ +\t\t We strongly recommend that you change your mirror\n\ +\t\t to prevent security problems.\n" + cleanup + fi + sleep 10 + FILELIST="$TMPDIR/FILELIST.TXT" + else + echo -e "\ +\n\t\tERROR: No CHECKSUMS.md5 and no FILELIST.TXT.\n\ +\t\t We strongly recommend that you change your mirror\n\ +\t\t to prevent security problems.\n" + cleanup + fi + + # Download all PACKAGES.TXT files + # + echo -e "\t\tPackage descriptions" + for i in $DIRS; do + getfile ${SOURCE}${i}/PACKAGES.TXT $TMPDIR/${i}-PACKAGES.TXT + done + + # Format FILELIST.TXT + # + echo -e "\tFormatting lists to slackpkg style..." + echo -e "\t\tPackage List: using $( basename $FILELIST ) as source" + grep "\.t[blxg]z$" $FILELIST| \ + awk -f /usr/libexec/slackpkg/pkglist.awk |\ + sed -e 's/^M//g' > ${TMPDIR}/pkglist + cp ${TMPDIR}/pkglist ${WORKDIR}/pkglist + + # Create the slackware tree under TEMP directory + for i in $( cut -f7 -d\ ${WORKDIR}/pkglist | sort -u ) ; do + if ! [ -d ${TEMP}/${i} ]; then + mkdir -p ${TEMP}/${i} + fi + done + + # Format MANIFEST + # + + # bunzip and concatenate all MANIFEST files + # + MANFILES="" + for i in $DIRS; do + bunzip2 -c $TMPDIR/${i}-MANIFEST.bz2 | awk -f /usr/libexec/slackpkg/filelist.awk | \ + gzip > ${TMPDIR}/${i}-filelist.gz + done + cp ${TMPDIR}/*-filelist.gz ${WORKDIR}/ + + if [ -r ${WORKDIR}/filelist.gz ]; then + rm ${WORKDIR}/filelist.gz + ln -s ${WORKDIR}/${MAIN}-filelist.gz ${WORKDIR}/filelist.gz + fi + + # Concatenate PACKAGE.TXT files + # + echo -e "\t\tPackage descriptions" + for i in $DIRS; do + cat $TMPDIR/${i}-PACKAGES.TXT >> $TMPDIR/PACKAGES.TXT + done + cp $TMPDIR/PACKAGES.TXT ${WORKDIR}/PACKAGES.TXT + + if [ -e $TMPDIR/CHECKSUMS.md5 ]; then + cp $TMPDIR/CHECKSUMS.md5 $WORKDIR/CHECKSUMS.md5 2>/dev/null + fi + + if [ -e $TMPDIR/CHECKSUMS.md5.asc ]; then + cp $TMPDIR/CHECKSUMS.md5.asc \ + $WORKDIR/CHECKSUMS.md5.asc 2>/dev/null + fi +} + +function sanity_check() { + local REVNAME + local i + local FILES + local DOUBLEFILES + local ANSWER + + touch ${TMPDIR}/waiting + echo -e "Checking local integrity... \c" + + [ "$SPINNING" = "off" ] || spinning ${TMPDIR}/waiting & + + for i in $(ls -1 $ROOT/var/log/packages | \ + egrep -- "^.*-(${ARCH}|fw|noarch)-[^-]+-upgraded"); do + REVNAME=$(echo ${i} | awk -F'-upgraded' '{ print $1 }') + mv $ROOT/var/log/packages/${i} $ROOT/var/log/packages/${REVNAME} + mv $ROOT/var/log/scripts/${i} $ROOT/var/log/scripts/${REVNAME} + done + + ls -1 $ROOT/var/log/packages | egrep "^.*-(${ARCH}|fw|noarch)-[^-]+$" | \ + batchcutpkg | sort > $TMPDIR/list1 + cat $TMPDIR/list1 | uniq > $TMPDIR/list2 + FILES="$(diff $TMPDIR/list1 $TMPDIR/list2 | grep '<' | cut -f2 -d\ )" + if [ "$FILES" != "" ]; then + for i in $FILES ; do + grep -qx "${i}" ${CONF}/blacklist && continue + DOUBLEFILES="$DOUBLEFILES $i" + done + unset FILES + fi + + rm ${TMPDIR}/waiting + echo -e "DONE" + + if [ "$DOUBLEFILES" != "" ]; then + echo -e "\ +You have a broken $ROOT/var/log/packages - with two versions of the same package.\n\ +The list of packages duplicated in your machine are shown below, but don't\n\ +worry about this list - when you select your action, slackpkg will show a\n\ +better list:\n" + for i in $DOUBLEFILES ; do + ls -1 $ROOT/var/log/packages |\ + egrep -i -- "^${i}-[^-]+-(${ARCH}|fw|noarch)-" + done + echo -ne "\n\ +You can (B)lacklist, (R)emove, or (I)gnore these packages.\n\ +Select your action (B/R/I): " + read ANSWER + echo + case "$ANSWER" in + B|b) + showlist "$DOUBLEFILES" blacklist + blacklist_pkg + ;; + R|r) + for i in $DOUBLEFILES ; do + FILE=$(ls -1 $ROOT/var/log/packages |\ + egrep -i -- "^${i}-[^-]+-(${ARCH}|fw|noarch)-") + FILES="$FILES $FILE" + done + showlist "$FILES" remove + remove_pkg + ;; + *) + echo -e "\n\ +Okay - slackpkg won't do anything now, but please, do something to fix it.\n" + cleanup + ;; + esac + fi +} + +function blacklist_pkg() { + echo $SHOWLIST | tr ' ' "\n" >> ${CONF}/blacklist + + echo -e "\nPackages added to your blacklist.\n\ +If you want to remove those packages, edit ${CONF}/blacklist.\n" +} + +function remove_pkg() { + local i + + for i in $SHOWLIST; do + echo -e "\nPackage: $i" + echo -e "\tRemoving... " + removepkg $i + done +} + +function upgrade_pkg() { + local i + + if [ "$DOWNLOAD_ALL" = "on" ]; then + OLDDEL="$DELALL" + DELALL="off" + for i in $SHOWLIST; do + getpkg $i true + done + DELALL="$OLDDEL" + fi + for i in $SHOWLIST; do + getpkg $i upgradepkg Upgrading + done +} + +function install_pkg() { + local i + + if [ "$DOWNLOAD_ALL" = "on" ]; then + OLDDEL="$DELALL" + DELALL="off" + for i in $SHOWLIST; do + getpkg $i true + done + DELALL="$OLDDEL" + fi + for i in $SHOWLIST; do + getpkg $i installpkg Installing + done +} + +# +# Template related functions +# +include_includes() { + TEMPLATEFILE=$1 + COUNT=$((COUNT + 1)) + TMPFILE=$TMPDIR/$(basename $( echo $TEMPLATEFILE | cut -f1,2 -d. )).$COUNT.tmp + INCLUDELIST="$( grep "^#include" $TEMPLATEFILE | cut -d\ -f2 )" + if [ "$INCLUDELIST" != "" ]; then + for INCLUDE in $INCLUDELIST ; do + echo "#include $INCLUDE" \ + >> ${TMPFILE/.$COUNT/}.header + cat $INCLUDE > $TMPFILE + grep -v "^$" $TEMPLATEFILE | grep -v "^#" >> $TMPFILE + include_includes $TMPFILE + done + else + echo $TEMPLATEFILE + return + fi +} + +parse_template() { + if [ "$USE_INCLUDES" = "off" ]; then + touch $TMPDIR/$1.header + grep -v "^$" $1 | grep -v "^#" | sort -u > $TMPDIR/$1.tmp + else + TMPFILE=$(include_includes $1) + sort -u $TMPFILE > $TMPDIR/$1.tmp + if [ -e $TMPDIR/$1.tmp.header ]; then + sort -u $TMPDIR/$1.tmp.header > $TMPDIR/$1.header + fi + rm $TMPDIR/$1.[0-9]*.tmp $TMPDIR/$1.tmp.header 2>/dev/null + fi +} + +generate_template() { + if [ "$USE_INCLUDES" = "on" ]; then + ( + cd $TEMPLATEDIR + if [ "$(ls *.template 2>/dev/null)" != "" ]; then + echo -e "\tParsing actual template files:" + for i in *.template ; do + echo -e "\t\t$i" + parse_template $i + done + fi + ) + fi + + touch $TMPDIR/allheaders + + touch $TMPDIR/waiting + echo -e "\tGenerating slackware installed package list (this may take a while) \c" + [ "$SPINNING" = "off" ] || spinning ${TMPDIR}/waiting & + for i in $ROOT/var/log/packages/* ; do + PKGNAME=$( cutpkg $(basename $i)) + grep -q " $PKGNAME " ${WORKDIR}/pkglist && \ + echo $PKGNAME >> $TMPDIR/$TEMPLATE.work + done + rm $TMPDIR/waiting + echo " " + + echo -e "\tGenerating $TEMPLATE " + for TMPLATE in $( wc -l $TMPDIR/* | sort -r | \ + awk -F/ '/template.tmp/ { print $NF }'); do + if ! $( grep -q "^#include.*${TMPLATE/.tmp/}" \ + $TMPDIR/allheaders) ; then + diff -y $TMPDIR/$TEMPLATE.work $TMPDIR/$TMPLATE | \ + awk -vTMPDIR=$TMPDIR \ + '!/</ { print $1 > TMPDIR"/same" } + /</ { print $1 > TMPDIR"/notsame" }' + if $( diff -q $TMPDIR/$TMPLATE \ + $TMPDIR/same &>/dev/null ); then + echo "#include ${TMPLATE/.tmp/}" \ + >> $TMPDIR/$TEMPLATE.header + cat $TMPDIR/${TMPLATE/.tmp/}.header \ + >> $TMPDIR/allheaders 2>/dev/null + cat $TMPDIR/same >> $TMPDIR/allfiles + fi + fi + done + + if [ -e $TMPDIR/allfiles ]; then + sort -u $TMPDIR/allfiles > $TMPDIR/alluniqfiles + else + touch $TMPDIR/alluniqfiles + fi + if [ -e $TMPDIR/$TEMPLATE.header ]; then + cat $TMPDIR/$TEMPLATE.header > $TEMPLATEDIR/$TEMPLATE + fi + diff $TMPDIR/alluniqfiles $TMPDIR/$TEMPLATE.work |\ + awk '/>/ { print $2 }' >> $TEMPLATEDIR/$TEMPLATE +} diff --git a/files/cutpkg.awk b/files/cutpkg.awk new file mode 100644 index 0000000..62aaad7 --- /dev/null +++ b/files/cutpkg.awk @@ -0,0 +1,8 @@ +OFS="-" { + if ( NF > 3 ) { + NF=NF-3 + print $0 + } else { + print $0 + } +} diff --git a/files/dialog-functions.sh b/files/dialog-functions.sh new file mode 100644 index 0000000..042906c --- /dev/null +++ b/files/dialog-functions.sh @@ -0,0 +1,75 @@ +# Dialog functions +# Original functions from slackpkg modified by Marek Wodzinski (majek@mamy.to) +# +export DIALOG_CANCEL="1" +export DIALOG_ERROR="126" +export DIALOG_ESC="1" +export DIALOG_EXTRA="3" +export DIALOG_HELP="2" +export DIALOG_ITEM_HELP="2" +export DIALOG_OK="0" + +# Show the lists and asks if the user want to proceed with that action +# Return accepted list in $SHOWLIST +# +if [ "$DIALOG" = "on" ] || [ "$DIALOG" = "ON" ]; then + function showlist() { + if [ "$ONOFF" != "off" ]; then + ONOFF=on + fi + rm -f $TMPDIR/dialog.tmp + + if [ "$2" = "upgrade" ]; then + ls -1 $ROOT/var/log/packages > $TMPDIR/tmplist + for i in $1; do + BASENAME=$(cutpkg $i) + PKGFOUND=$(grep -m1 -e "^${BASENAME}-[^-]\+-\(noarch\|fw\|${ARCH}\)" $TMPDIR/tmplist) + echo "$i \"\" $ONOFF \"currently installed: $PKGFOUND\"" >>$TMPDIR/dialog.tmp + done + HINT="--item-help" + else + for i in $1; do + echo "$i \"\" $ONOFF" >>$TMPDIR/dialog.tmp + done + HINT="" + fi + + # This is needed because dialog have a limit of arguments. + # This limit is around 20k characters in slackware 10.x + # Empiric tests on slackware 13.0 got a limit around 139k. + # If we exceed this limit, dialog got a terrible error, to + # avoid that, if the number of arguments is bigger than + # DIALOG_MAXARGS we remove the hints. If even without hints + # we can't got less characters than DIALOG_MAXARGS we give an + # error message to the user ask him to not use dialog + if [ $(wc -c $TMPDIR/dialog.tmp | cut -f1 -d\ ) -ge $DIALOG_MAXARGS ]; then + mv $TMPDIR/dialog.tmp $TMPDIR/dialog2.tmp + awk '{ NF=3 ; print $0 }' $TMPDIR/dialog2.tmp > $TMPDIR/dialog.tmp + HINT="" + fi + cat $TMPDIR/dialog.tmp|xargs dialog --title $2 --backtitle "slackpkg $VERSION" $HINT --checklist "Choose packages to $2:" 19 70 13 2>$TMPDIR/dialog.out + case "$?" in + 0|123) + dialog --clear + ;; + 1|124|125|126|127) + dialog --clear + echo -e "DIALOG ERROR:\n-------------" >> $TMPDIR/error.log + cat $TMPDIR/dialog.out >> $TMPDIR/error.log + echo -e "------------- +If you want to continue using slackpkg, disable the DIALOG option in +/etc/slackpkg/slackpkg.conf and try again. + +Help us to make slackpkg a better tool - report bugs to the slackpkg +developers" >> $TMPDIR/error.log + cleanup + ;; + esac + SHOWLIST=$(cat $TMPDIR/dialog.out | tr -d \") + rm -f $TMPDIR/dialog.* + if [ -z "$SHOWLIST" ]; then + echo "No packages selected for $2, exiting." + cleanup + fi + } +fi diff --git a/files/filelist.awk b/files/filelist.awk new file mode 100644 index 0000000..291624b --- /dev/null +++ b/files/filelist.awk @@ -0,0 +1,28 @@ +BEGIN { + starting = 1 +} + +/^\|\|[[:blank:]]+Package:[[:blank:]]+.*-[[:alnum:]_]+-[[:alnum:]_.]+\.t[blxg]z$/ { + if( starting == 1 ) + starting = 0 + else + printf( "\n" ) + printf( "%s ", $3 ) + show = 1 +} + +/^\|\|[[:blank:]]+Package:[[:blank:]]+/ && !/t[blxg]z/ { + show = 0 +} + +/^[-bcdlps][-r][-w][-xsS][-r][-w][-xsS][-r][-w][-xtT][[:space:]]/ { + if( show == 1 ) { + printf( "%s ", $6 ) + } +} + + + +END { + printf( "\n" ) +} diff --git a/files/install-new.awk b/files/install-new.awk new file mode 100644 index 0000000..d2fd4ee --- /dev/null +++ b/files/install-new.awk @@ -0,0 +1,45 @@ +/^(a|ap|d|e|f|k|kde|kdei|l|mac|n|t|tcl|x|xap|xfce|y)\/([a-zA-Z0-9_\+.\-]+):.* ([Aa]dded|[Ss]plit|[Rr]enamed|[Mm]oved|[Nn]ame [Cc]hange|NAME CHANGE|[Ss]witched).*/ { + INPUT=$1 + fs=FS + FS="/" ; OFS="/" + $0=INPUT + FULLPACK=$NF + FS="-" ; OFS="-" + $0=FULLPACK + if ( NF > 3 ) { + NF=NF-3 + } else { + FS=":" ; OFS=":" + $0=$0 + $0=$1 + } + FS=fs + CONTINUE=no + print $0 +} + +/^(a|ap|d|e|f|k|kde|kdei|l|mac|n|t|tcl|x|xap|xfce|y)\/([a-zA-Z0-9_\+.\-]+): *$/ { + INPUT=$1 + fs=FS + FS="/" ; OFS="/" + $0=INPUT + FULLPACK=$NF + FS="-" ; OFS="-" + $0=FULLPACK + if ( NF > 3 ) { + NF=NF-3 + } else { + FS=":" + $0=$1 + } + FS=fs + CONTINUE=yes + NAME=$0 +} + +/^ *([Aa]dded|[Ss]plit|[Rr]enamed|[Mm]oved|[Nn]ame [Cc]hange|NAME CHANGE|[Ss]witched).*/ { + if ( CONTINUE==yes ) { + print NAME + } + CONTINUE=no +} diff --git a/files/mirrors-arm.sample b/files/mirrors-arm.sample new file mode 100644 index 0000000..8a42d7b --- /dev/null +++ b/files/mirrors-arm.sample @@ -0,0 +1,78 @@ +# mirrors - List of Slackware Linux mirrors. +# +# SlackPkg - An Automated packaging tool for Slackware Linux +# Copyright (C) 2003-2011 Roberto F. Batista, Evaldo Gardenali +# +# 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 2 of the License, 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, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# Project Page: http://slackpkg.org/ +# Roberto F. Batista (aka PiterPunk) piterpunk@slackware.com +# Evaldo Gardenali (aka UdontKnow) evaldogardenali@fasternet.com.br +# +# END OF LEGAL NOTICE +# +# +# You only need to select one mirror and uncomment it. +# ONLY ONE mirror can be uncommented. +# +# You can use a mirror not included in this file. Many people have mirrors +# in their local networks. +# +# Slackpkg only needs to point to the directory that contains +# "ChangeLog.txt", and don't forget the trailing slash. +# +#---------------------------------------------------------------- +# Local CD/DVD drive +#---------------------------------------------------------------- +#cdrom://media/cdrom/ +# +#---------------------------------------------------------------- +# Local Directory +#---------------------------------------------------------------- +#file://path/to/some/directory/ +# +#---------------------------------------------------------------- +# Local CD/DVD drive +#---------------------------------------------------------------- +#cdrom://media/cdrom/ +# +#---------------------------------------------------------------- +# Local Directory +#---------------------------------------------------------------- +#file://path/to/some/directory/ +# +#---------------------------------------------------------------- +# Slackware ARM x.x (for an assumed release of the hard float port) +#---------------------------------------------------------------- +#ftp://slackware.uk/slackwarearm/slackwarearm-x.x/ +#ftp://ftp.halifax.rwth-aachen.de/slackwarearm/slackwarearm-x.x/ +#ftp://ftp.slackware.pl/pub/slackwarearm/slackwarearm-x.x/ +#ftp://mirrors.vbi.vt.edu/linux/slackwarearm/slackwarearm-x.x/ +#ftp://mirror.slackbuilds.org/pub/slackwarearm/slackwarearm-x.x/ +# +#ftp://ftp.arm.slackware.com/slackwarearm/slackwarearm-x.x/ +# + +#---------------------------------------------------------------- +# Slackware ARM current +#---------------------------------------------------------------- +#ftp://slackware.uk/slackwarearm/slackwarearm-current/ +#ftp://ftp.halifax.rwth-aachen.de/slackwarearm/slackwarearm-current/ +#ftp://ftp.slackware.pl/pub/slackwarearm/slackwarearm-current/ +#ftp://mirrors.vbi.vt.edu/linux/slackwarearm/slackwarearm-current/ +#ftp://mirror.slackbuilds.org/pub/slackwarearm/slackwarearm-current/ +# +#ftp://ftp.arm.slackware.com/slackwarearm/slackwarearm-current/ + diff --git a/files/mirrors-s390.sample b/files/mirrors-s390.sample new file mode 100644 index 0000000..03cad82 --- /dev/null +++ b/files/mirrors-s390.sample @@ -0,0 +1,43 @@ +# mirrors - List of Slackware Linux mirrors. +# +# SlackPkg - An Automated packaging tool for Slackware Linux +# Copyright (C) 2003-2011 Roberto F. Batista, Evaldo Gardenali +# +# 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 2 of the License, 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, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# Project Page: http://slackpkg.org/ +# Roberto F. Batista (aka PiterPunk) piterpunk@slackware.com +# Evaldo Gardenali (aka UdontKnow) evaldogardenali@fasternet.com.br +# +# END OF LEGAL NOTICE +# +# +# You only need to select one mirror and uncomment them. Please, +# ONLY ONE mirror can be uncommented each time. +# +# You can include new mirrors in this file. Many people have mirrors +# in their local networks. Slackpkg only needs to point to the +# directory that contains "ChangeLog.txt", and don't forget the +# trailling slash. +# +#---------------------------------------------------------------- +# Local CD/DVD drive +#---------------------------------------------------------------- +#cdrom://media/cdrom/ +# +#---------------------------------------------------------------- +# Local Directory +#---------------------------------------------------------------- +#file://path/to/some/directory/ diff --git a/files/mirrors-x86.sample b/files/mirrors-x86.sample new file mode 100644 index 0000000..922bc17 --- /dev/null +++ b/files/mirrors-x86.sample @@ -0,0 +1,370 @@ +# mirrors - List of Slackware Linux mirrors. +# +# SlackPkg - An Automated packaging tool for Slackware Linux +# Copyright (C) 2003-2011 Roberto F. Batista, Evaldo Gardenali +# +# 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 2 of the License, 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, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# Project Page: http://slackpkg.org/ +# Roberto F. Batista (aka PiterPunk) piterpunk@slackware.com +# Evaldo Gardenali (aka UdontKnow) evaldogardenali@fasternet.com.br +# +# END OF LEGAL NOTICE +# +# +# You only need to select one mirror and uncomment it. +# ONLY ONE mirror can be uncommented. +# +# You can use a mirror not included in this file. Many people have mirrors +# in their local networks. A list of all official Slackware mirrors +# (not version-specific, so some mirrors may not have all files) is here: +# https://mirrors.slackware.com/mirrorlist/ +# +# Slackpkg only needs to point to the directory that contains +# "ChangeLog.txt", and don't forget the trailing slash. +# +#---------------------------------------------------------------- +# Local CD/DVD drive +#---------------------------------------------------------------- +# cdrom://media/cdrom/ +# +#---------------------------------------------------------------- +# Local Directory +#---------------------------------------------------------------- +# file://path/to/some/directory/ +# +#---------------------------------------------------------------- +# Slackware-14.2 +#---------------------------------------------------------------- +# USE MIRRORS.SLACKWARE.COM (DO NOT USE FTP - ONLY HTTP FINDS A NEARBY MIRROR) +# https://mirrors.slackware.com/slackware/slackware-14.2/ +# +# +# Here are some individual mirrors that can be used instead of the +# redirector at mirrors.slackware.com if necessary ; note that this +# list is not guaranteed to be up-to-date +# +# AUSTRALIA (AU) +# ftp://ftp.cc.swin.edu.au/slackware/slackware-14.2/ +# http://ftp.cc.swin.edu.au/slackware/slackware-14.2/ +# ftp://ftp.iinet.net.au/pub/slackware/slackware-14.2/ +# http://ftp.iinet.net.au/pub/slackware/slackware-14.2/ +# ftp://mirror.as24220.net/pub/slackware/slackware-14.2/ +# http://mirror.as24220.net/pub/slackware/slackware-14.2/ +# ftp://mirror.internode.on.net/.pub2/slackware/slackware-14.2/ +# http://mirror.internode.on.net/pub/slackware/slackware-14.2/ +# AUSTRIA (AT) +# http://gd.tuwien.ac.at/opsys/linux/freesoftware.com/slackware-14.2/ +# BELARUS (BY) +# ftp://mirror.datacenter.by/pub/slackware/slackware-14.2/ +# http://mirror.datacenter.by/pub/slackware/slackware-14.2/ +# BRAZIL (BR) +# ftp://ftp.slackware-brasil.com.br/slackware-14.2/ +# http://ftp.slackware-brasil.com.br/slackware-14.2/ +# BULGARIA (BG) +# ftp://mirrors.unixsol.org/slackware/slackware-14.2/ +# http://mirrors.unixsol.org/slackware/slackware-14.2/ +# CANADA (CA) +# ftp://mirror.csclub.uwaterloo.ca/slackware/slackware-14.2/ +# http://mirror.csclub.uwaterloo.ca/slackware/slackware-14.2/ +# ftp://mirror.its.dal.ca/slackware/slackware-14.2/ +# http://mirror.its.dal.ca/slackware/slackware-14.2/ +# CHINA (CN) +# http://mirrors.163.com/slackware/slackware-14.2/ +# http://mirrors.ustc.edu.cn/slackware/slackware-14.2/ +# COSTA RICA (CR) +# ftp://mirrors.ucr.ac.cr/slackware/pub/slackware/slackware-14.2/ +# http://mirrors.ucr.ac.cr/slackware/pub/slackware/slackware-14.2/ +# CZECH REPUBLIC (CZ) +# ftp://odysseus.linux.cz/pub/linux/slackware/slackware-14.2/ +# http://odysseus.linux.cz/pub/linux/slackware/slackware-14.2/ +# DENMARK (DK) +# ftp://mirrors.dotsrc.org/slackware/slackware-14.2/ +# https://mirrors.dotsrc.org/slackware/slackware-14.2/ +# FINLAND (FI) +# ftp://elektroni.phys.tut.fi/slackware-14.2/ +# FRANCE (FR) +# ftp://nephtys.lip6.fr/pub/linux/distributions/slackware/slackware-14.2/ +# http://nephtys.lip6.fr/pub/linux/distributions/slackware/slackware-14.2/ +# GERMANY (DE) +# ftp://ftp.gwdg.de/pub/linux/slackware/slackware-13.2/ +# http://ftp.gwdg.de/pub/linux/slackware/slackware-14.2/ +# ftp://ftp.tu-chemnitz.de/pub/linux/slackware/slackware-14.2/ +# http://ftp.tu-chemnitz.de/pub/linux/slackware/slackware-14.2/ +# ftp://ftp.zimt.uni-siegen.de/pub/slackware/slackware-14.2/ +# http://ftp.zimt.uni-siegen.de/slackware/slackware-14.2/ +# ftp://sunsite.informatik.rwth-aachen.de/pub/comp/Linux/slackware/slackware-14.2/ +# http://sunsite.informatik.rwth-aachen.de/ftp/pub/comp/Linux/slackware/slackware-14.2/ +# GREECE (GR) +# ftp://ftp.cc.uoc.gr/mirrors/linux/slackware/slackware-14.2/ +# http://ftp.cc.uoc.gr/mirrors/linux/slackware/slackware-14.2/ +# ftp://ftp.otenet.gr/pub/linux/slackware/slackware-14.2/ +# http://ftp.otenet.gr/linux/slackware/slackware-14.2/ +# ftp://patroklos.noc.ntua.gr/pub/linux/slackware/slackware-14.2/ +# http://patroklos.noc.ntua.gr/pub/linux/slackware/slackware-14.2/ +# INDONESIA (ID) +# http://kambing.ui.ac.id/slackware/slackware-14.2/ +# https://repo.ukdw.ac.id/slackware/slackware-14.2/ +# IRELAND (IE) +# ftp://ftp.heanet.ie/mirrors/ftp.slackware.com/pub/slackware/slackware-14.2/ +# http://ftp.heanet.ie/mirrors/ftp.slackware.com/pub/slackware/slackware-14.2/ +# ITALY (IT) +# ftp://ba.mirror.garr.it/mirrors/Slackware/slackware-14.2/ +# http://ba.mirror.garr.it/mirrors/Slackware/slackware-14.2/ +# JAPAN (JP) +# ftp://ftp.nara.wide.ad.jp/pub/Linux/slackware/slackware-14.2/ +# http://ftp.nara.wide.ad.jp/pub/Linux/slackware/slackware-14.2/ +# ftp://ftp.kddilabs.jp/Linux/distributions/Slackware/slackware-14.2/ +# http://ftp.kddilabs.jp/Linux/distributions/Slackware/slackware-14.2/ +# ftp://riksun.riken.go.jp/Linux/slackware/slackware-14.2/ +# http://riksun.riken.go.jp/Linux/slackware/slackware-14.2/ +# NETHERLANDS (NL) +# ftp://ftp.nluug.nl/pub/os/Linux/distr/slackware/slackware-14.2/ +# http://ftp.nluug.nl/os/Linux/distr/slackware/slackware-14.2/ +# ftp://mirror.nl.leaseweb.net/slackware/slackware-14.2/ +# http://mirror.nl.leaseweb.net/slackware/slackware-14.2/ +# NORWAY (NO) +# ftp://ftp.slackware.no/slackware/slackware-14.2/ +# http://ftp.slackware.no/slackware/slackware-14.2/ +# POLAND (PL) +# ftp://ftp.pwr.wroc.pl/pub/linux/slackware/slackware-14.2/ +# http://ftp.pwr.wroc.pl/pub/linux/slackware/slackware-14.2/ +# ftp://ftp.slackware.pl/pub/slackware/slackware-14.2/ +# http://ftp.slackware.pl/pub/slackware/slackware-14.2/ +# ftp://sunsite.icm.edu.pl/vol/rzm1/linux-slackware/slackware-14.2/ +# http://sunsite.icm.edu.pl/packages/linux-slackware/slackware-14.2/ +# ftp://z-ftp.wcss.wroc.pl/pub/linux/slackware/slackware-14.2/ +# http://z-ftp.wcss.wroc.pl/pub/linux/slackware/slackware-14.2/ +# RUSSIA (RU) +# http://mirror.rol.ru/slackware/slackware-14.2/ +# ftp://mirror.yandex.ru/slackware/slackware-14.2/ +# http://mirror.yandex.ru/slackware/slackware-14.2/ +# SOUTH AFRICA (ZA) +# ftp://ftp.is.co.za/mirror/ftp.slackware.com/pub/slackware-14.2/ +# http://ftp.is.co.za/mirror/ftp.slackware.com/pub/slackware-14.2/ +# ftp://ftp.wa.co.za/pub/slackware/slackware-14.2/ +# http://ftp.wa.co.za/pub/slackware/slackware-14.2/ +# ftp://slackware.mirror.ac.za/slackware-14.2/ +# http://slackware.mirror.ac.za/slackware-14.2/ +# SWEDEN (SE) +# ftp://ftp.sunet.se/mirror/slackware.com/slackware-14.2/ +# http://ftp.sunet.se/mirror/slackware.com/slackware-14.2/ +# SWITZERLAND (CH) +# ftp://mirror.switch.ch/mirror/slackware/slackware-14.2/ +# http://mirror.switch.ch/ftp/mirror/slackware/slackware-14.2/ +# TAIWAN (TW) +# ftp://ftp.isu.edu.tw/pub/Linux/Slackware/slackware-14.2/ +# http://ftp.isu.edu.tw/pub/Linux/Slackware/slackware-14.2/ +# ftp://ftp.twaren.net/pub/Linux/Slackware/slackware-14.2/ +# http://ftp.twaren.net/Linux/Slackware/slackware-14.2/ +# TURKEY (TR) +# ftp://ftp.linux.org.tr/slackware/slackware-14.2/ +# http://ftp.linux.org.tr/slackware/slackware-14.2/ +# UKRAINE (UA) +# ftp://mirrors.mithril.org.ua/linux/slackware/slackware-14.2/ +# http://mirrors.mithril.org.ua/linux/slackware/slackware-14.2/ +# UNITED KINGDOM (UK) +# ftp://ftp.mirrorservice.org/sites/ftp.slackware.com/pub/slackware/slackware-14.2/ +# http://ftp.mirrorservice.org/sites/ftp.slackware.com/pub/slackware/slackware-14.2/ +# ftp://mirror.bytemark.co.uk/slackware/slackware-14.2/ +# http://mirror.bytemark.co.uk/slackware/slackware-14.2/ +# UNITED STATES (US) +# ftp://ftp.gtlib.gatech.edu/nv/ao2/lxmirror/ftp.slackware.com/slackware-14.2/ +# ftp://mirror.cs.princeton.edu/pub/mirrors/slackware/slackware-14.2/ +# ftp://mirrors.easynews.com/linux/slackware/slackware-14.2/ +# http://mirrors.easynews.com/linux/slackware/slackware-14.2/ +# ftp://mirrors.us.kernel.org/slackware/slackware-14.2/ +# http://mirrors.us.kernel.org/slackware/slackware-14.2/ +# ftp://mirrors.xmission.com/slackware/slackware-14.2/ +# http://mirrors.xmission.com/slackware/slackware-14.2/ +# https://mirror.slackbuilds.org/slackware/slackware-14.2/ +# http://slackware.cs.utah.edu/pub/slackware/slackware-14.2/ +# http://slackware.mirrors.pair.com/slackware-14.2/ +# ftp://slackware.mirrors.tds.net/pub/slackware/slackware-14.2/ +# http://slackware.mirrors.tds.net/pub/slackware/slackware-14.2/ +# ftp://spout.ussg.indiana.edu/linux/slackware/slackware-14.2/ +# http://spout.ussg.indiana.edu/linux/slackware/slackware-14.2/ +# ftp://teewurst.cc.columbia.edu/pub/linux/slackware/slackware-14.2/ +# http://teewurst.cc.columbia.edu/pub/linux/slackware/slackware-14.2/ +# +#---------------------------------------------------------------- +# Slackware-current +#---------------------------------------------------------------- +# USE MIRRORS.SLACKWARE.COM (DO NOT USE FTP - ONLY HTTP FINDS A NEARBY MIRROR) +# https://mirrors.slackware.com/slackware/slackware-current/ +# +# +# Here are some individual mirrors that can be used instead of the +# redirector at mirrors.slackware.com if necessary ; note that this +# list is not guaranteed to be up-to-date +# +# AUSTRALIA (AU) +# ftp://ftp.cc.swin.edu.au/slackware/slackware-current/ +# http://ftp.cc.swin.edu.au/slackware/slackware-current/ +# ftp://ftp.iinet.net.au/pub/slackware/slackware-current/ +# http://ftp.iinet.net.au/pub/slackware/slackware-current/ +# ftp://mirror.aarnet.edu.au/pub/slackware/slackware-current/ +# http://mirror.aarnet.edu.au/pub/slackware/slackware-current/ +# ftp://mirror.as24220.net/pub/slackware/slackware-current/ +# http://mirror.as24220.net/pub/slackware/slackware-current/ +# ftp://mirror.internode.on.net/.pub2/slackware/slackware-current/ +# http://mirror.internode.on.net/pub/slackware/slackware-current/ +# http://mirror.primusdatacentre.com.au/slackware/slackware-current/ +# AUSTRIA (AT) +# ftp://ftp.slackware.at/slackware-current/ +# http://ftp.slackware.at/data/slackware-current/ +# ftp://gd.tuwien.ac.at/opsys/linux/freesoftware.com/slackware-current/ +# http://gd.tuwien.ac.at/opsys/linux/freesoftware.com/slackware-current/ +# BELARUS (BY) +# ftp://mirror.datacenter.by/pub/slackware/slackware-current/ +# http://mirror.datacenter.by/pub/slackware/slackware-current/ +# BRAZIL (BR) +# ftp://ftp.slackware-brasil.com.br/slackware-current/ +# http://ftp.slackware-brasil.com.br/slackware-current/ +# BULGARIA (BG) +# ftp://mirrors.unixsol.org/slackware/slackware-current/ +# http://mirrors.unixsol.org/slackware/slackware-current/ +# CANADA (CA) +# ftp://mirror.csclub.uwaterloo.ca/slackware/slackware-current/ +# http://mirror.csclub.uwaterloo.ca/slackware/slackware-current/ +# ftp://mirror.its.dal.ca/slackware/slackware-current/ +# http://mirror.its.dal.ca/slackware/slackware-current/ +# CHINA (CN) +# http://mirror.bjtu.edu.cn/slackware/slackware-current/ +# http://mirrors.163.com/slackware/slackware-current/ +# http://mirrors.ustc.edu.cn/slackware/slackware-current/ +# COSTA RICA (CR) +# ftp://mirrors.ucr.ac.cr/slackware/pub/slackware/slackware-current/ +# http://mirrors.ucr.ac.cr/slackware/pub/slackware/slackware-current/ +# CZECH REPUBLIC (CZ) +# ftp://odysseus.linux.cz/pub/linux/slackware/slackware-current/ +# http://odysseus.linux.cz/pub/linux/slackware/slackware-current/ +# DENMARK (DK) +# ftp://mirrors.dotsrc.org/slackware/slackware-current/ +# https://mirrors.dotsrc.org/slackware/slackware-current/ +# FINLAND (FI) +# ftp://elektroni.phys.tut.fi/slackware-current/ +# FRANCE (FR) +# ftp://mirror.ovh.net/mirrors/ftp.slackware.com/slackware-current/ +# http://mirror.ovh.net/mirrors/ftp.slackware.com/slackware-current/ +# ftp://nephtys.lip6.fr/pub/linux/distributions/slackware/slackware-current/ +# http://nephtys.lip6.fr/pub/linux/distributions/slackware/slackware-current/ +# GERMANY (DE) +# ftp://ftp.fu-berlin.de/unix/linux/slackware/slackware-current/ +# ftp://ftp.gwdg.de/pub/linux/slackware/slackware-current/ +# http://ftp.gwdg.de/pub/linux/slackware/slackware-current/ +# ftp://ftp.tu-chemnitz.de/pub/linux/slackware/slackware-current/ +# http://ftp.tu-chemnitz.de/pub/linux/slackware/slackware-current/ +# ftp://ftp.zimt.uni-siegen.de/pub/slackware/slackware-current/ +# http://ftp.zimt.uni-siegen.de/slackware/slackware-current/ +# ftp://sunsite.informatik.rwth-aachen.de/pub/comp/Linux/slackware/slackware-current/ +# http://sunsite.informatik.rwth-aachen.de/ftp/pub/comp/Linux/slackware/slackware-current/ +# ftp://wrz1013.rz.uni-wuerzburg.de/pub/MIRROR/slackware/slackware-current/ +# http://wrz1013.rz.uni-wuerzburg.de/pub/MIRROR/slackware/slackware-current/ +# GREECE (GR) +# ftp://ftp.cc.uoc.gr/mirrors/linux/slackware/slackware-current/ +# http://ftp.cc.uoc.gr/mirrors/linux/slackware/slackware-current/ +# ftp://ftp.otenet.gr/pub/linux/slackware/slackware-current/ +# http://ftp.otenet.gr/linux/slackware/slackware-current/ +# ftp://patroklos.noc.ntua.gr/pub/linux/slackware/slackware-current/ +# http://patroklos.noc.ntua.gr/pub/linux/slackware/slackware-current/ +# INDONESIA (ID) +# http://kambing.ui.ac.id/slackware/slackware-current/ +# https://repo.ukdw.ac.id/slackware/slackware-current/ +# IRELAND (IE) +# ftp://ftp.heanet.ie/mirrors/ftp.slackware.com/pub/slackware/slackware-current/ +# http://ftp.heanet.ie/mirrors/ftp.slackware.com/pub/slackware/slackware-current/ +# ITALY (IT) +# ftp://ba.mirror.garr.it/mirrors/Slackware/slackware-current/ +# http://ba.mirror.garr.it/mirrors/Slackware/slackware-current/ +# JAPAN (JP) +# ftp://ftp.nara.wide.ad.jp/pub/Linux/slackware/slackware-current/ +# http://ftp.nara.wide.ad.jp/pub/Linux/slackware/slackware-current/ +# ftp://ftp.kddilabs.jp/Linux/distributions/Slackware/slackware-current/ +# http://ftp.kddilabs.jp/Linux/distributions/Slackware/slackware-current/ +# ftp://riksun.riken.go.jp/Linux/slackware/slackware-current/ +# http://riksun.riken.go.jp/Linux/slackware/slackware-current/ +# NETHERLANDS (NL) +# ftp://ftp.nluug.nl/pub/os/Linux/distr/slackware/slackware-current/ +# http://ftp.nluug.nl/os/Linux/distr/slackware/slackware-current/ +# ftp://mirror.nl.leaseweb.net/slackware/slackware-current/ +# http://mirror.nl.leaseweb.net/slackware/slackware-current/ +# NORWAY (NO) +# ftp://ftp.slackware.no/slackware/slackware-current/ +# http://ftp.slackware.no/slackware/slackware-current/ +# POLAND (PL) +# ftp://ftp.pwr.wroc.pl/pub/linux/slackware/slackware-current/ +# http://ftp.pwr.wroc.pl/pub/linux/slackware/slackware-current/ +# ftp://ftp.slackware.pl/pub/slackware/slackware-current/ +# http://ftp.slackware.pl/pub/slackware/slackware-current/ +# ftp://sunsite.icm.edu.pl/vol/rzm1/linux-slackware/slackware-current/ +# http://sunsite.icm.edu.pl/packages/linux-slackware/slackware-current/ +# ftp://z-ftp.wcss.wroc.pl/pub/linux/slackware/slackware-current/ +# http://z-ftp.wcss.wroc.pl/pub/linux/slackware/slackware-current/ +# RUSSIA (RU) +# http://mirror.rol.ru/slackware/slackware-current/ +# ftp://mirror.yandex.ru/slackware/slackware-current/ +# http://mirror.yandex.ru/slackware/slackware-current/ +# SOUTH AFRICA (ZA) +# ftp://ftp.is.co.za/mirror/ftp.slackware.com/pub/slackware-current/ +# http://ftp.is.co.za/mirror/ftp.slackware.com/pub/slackware-current/ +# ftp://ftp.wa.co.za/pub/slackware/slackware-current/ +# http://ftp.wa.co.za/pub/slackware/slackware-current/ +# ftp://slackware.mirror.ac.za/slackware-current/ +# http://slackware.mirror.ac.za/slackware-current/ +# SWEDEN (SE) +# ftp://ftp.sunet.se/mirror/slackware.com/slackware-current/ +# http://ftp.sunet.se/mirror/slackware.com/slackware-current/ +# SWITZERLAND (CH) +# ftp://mirror.switch.ch/mirror/slackware/slackware-current/ +# http://mirror.switch.ch/ftp/mirror/slackware/slackware-current/ +# TAIWAN (TW) +# ftp://ftp.isu.edu.tw/pub/Linux/Slackware/slackware-current/ +# http://ftp.isu.edu.tw/pub/Linux/Slackware/slackware-current/ +# ftp://ftp.twaren.net/pub/Linux/Slackware/slackware-current/ +# http://ftp.twaren.net/Linux/Slackware/slackware-current/ +# TURKEY (TR) +# ftp://ftp.linux.org.tr/slackware/slackware-current/ +# http://ftp.linux.org.tr/slackware/slackware-current/ +# UKRAINE (UA) +# ftp://ftp.linux.kiev.ua/pub/Linux/Slackware/slackware-current/ +# http://ftp.linux.kiev.ua/pub/Linux/Slackware/slackware-current/ +# ftp://mirrors.mithril.org.ua/linux/slackware/slackware-current/ +# http://mirrors.mithril.org.ua/linux/slackware/slackware-current/ +# UNITED KINGDOM (UK) +# ftp://ftp.mirrorservice.org/sites/ftp.slackware.com/pub/slackware/slackware-current/ +# http://ftp.mirrorservice.org/sites/ftp.slackware.com/pub/slackware/slackware-current/ +# ftp://mirror.bytemark.co.uk/slackware/slackware-current/ +# http://mirror.bytemark.co.uk/slackware/slackware-current/ +# ftp://slackware.mirrors.uk2.net/pub/slackware/slackware-current/ +# http://slackware.mirrors.uk2.net/slackware-current/ +# UNITED STATES (US) +# ftp://ftp.gtlib.gatech.edu/nv/ao2/lxmirror/ftp.slackware.com/slackware-current/ +# ftp://mirror.cs.princeton.edu/pub/mirrors/slackware/slackware-current/ +# ftp://mirrors.easynews.com/linux/slackware/slackware-current/ +# http://mirrors.easynews.com/linux/slackware/slackware-current/ +# ftp://mirrors.us.kernel.org/slackware/slackware-current/ +# http://mirrors.us.kernel.org/slackware/slackware-current/ +# ftp://mirrors.xmission.com/slackware/slackware-current/ +# http://mirrors.xmission.com/slackware/slackware-current/ +# https://mirror.slackbuilds.org/slackware/slackware-current/ +# http://slackware.cs.utah.edu/pub/slackware/slackware-current/ +# http://slackware.mirrors.pair.com/slackware-current/ +# ftp://slackware.mirrors.tds.net/pub/slackware/slackware-current/ +# http://slackware.mirrors.tds.net/pub/slackware/slackware-current/ +# ftp://spout.ussg.indiana.edu/linux/slackware/slackware-current/ +# http://spout.ussg.indiana.edu/linux/slackware/slackware-current/ +# ftp://teewurst.cc.columbia.edu/pub/linux/slackware/slackware-current/ +# http://teewurst.cc.columbia.edu/pub/linux/slackware/slackware-current/ diff --git a/files/mirrors-x86_64.sample b/files/mirrors-x86_64.sample new file mode 100644 index 0000000..aae06f1 --- /dev/null +++ b/files/mirrors-x86_64.sample @@ -0,0 +1,362 @@ +# mirrors - List of Slackware Linux mirrors. +# +# SlackPkg - An Automated packaging tool for Slackware Linux +# Copyright (C) 2003-2011 Roberto F. Batista, Evaldo Gardenali +# +# 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 2 of the License, 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, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# Project Page: http://slackpkg.org/ +# Roberto F. Batista (aka PiterPunk) piterpunk@slackware.com +# Evaldo Gardenali (aka UdontKnow) evaldogardenali@fasternet.com.br +# +# END OF LEGAL NOTICE +# +# +# You only need to select one mirror and uncomment it. +# ONLY ONE mirror can be uncommented. +# +# You can use a mirror not included in this file. Many people have mirrors +# in their local networks. A list of all official Slackware mirrors +# (not version-specific, so some mirrors may not have all files) is here: +# https://mirrors.slackware.com/mirrorlist/ +# +# Slackpkg only needs to point to the directory that contains +# "ChangeLog.txt", and don't forget the trailing slash. +# +#---------------------------------------------------------------- +# Local CD/DVD drive +#---------------------------------------------------------------- +# cdrom://media/cdrom/ +# +#---------------------------------------------------------------- +# Local Directory +#---------------------------------------------------------------- +# file://path/to/some/directory/ +# +#---------------------------------------------------------------- +# Slackware64-14.2 +#---------------------------------------------------------------- +# USE MIRRORS.SLACKWARE.COM (DO NOT USE FTP - ONLY HTTP FINDS A NEARBY MIRROR) +# https://mirrors.slackware.com/slackware/slackware64-14.2/ +# +# +# Here are some individual mirrors that can be used instead of the +# redirector at mirrors.slackware.com if necessary ; note that this +# list is not guaranteed to be up-to-date +# +# AUSTRALIA (AU) +# ftp://ftp.cc.swin.edu.au/slackware/slackware64-14.2/ +# http://ftp.cc.swin.edu.au/slackware/slackware64-14.2/ +# ftp://ftp.iinet.net.au/pub/slackware/slackware64-14.2/ +# http://ftp.iinet.net.au/pub/slackware/slackware64-14.2/ +# ftp://mirror.as24220.net/pub/slackware/slackware64-14.2/ +# http://mirror.as24220.net/pub/slackware/slackware64-14.2/ +# ftp://mirror.internode.on.net/.pub2/slackware/slackware64-14.2/ +# http://mirror.internode.on.net/pub/slackware/slackware64-14.2/ +# AUSTRIA (AT) +# http://gd.tuwien.ac.at/opsys/linux/freesoftware.com/slackware64-14.2/ +# BELARUS (BY) +# ftp://mirror.datacenter.by/pub/slackware/slackware64-14.2/ +# http://mirror.datacenter.by/pub/slackware/slackware64-14.2/ +# BRAZIL (BR) +# ftp://ftp.slackware-brasil.com.br/slackware64-14.2/ +# http://ftp.slackware-brasil.com.br/slackware64-14.2/ +# BULGARIA (BG) +# ftp://mirrors.unixsol.org/slackware/slackware64-14.2/ +# http://mirrors.unixsol.org/slackware/slackware64-14.2/ +# CANADA (CA) +# ftp://mirror.csclub.uwaterloo.ca/slackware/slackware64-14.2/ +# http://mirror.csclub.uwaterloo.ca/slackware/slackware64-14.2/ +# ftp://mirror.its.dal.ca/slackware/slackware64-14.2/ +# http://mirror.its.dal.ca/slackware/slackware64-14.2/ +# CHINA (CN) +# http://mirrors.163.com/slackware/slackware64-14.2/ +# http://mirrors.ustc.edu.cn/slackware/slackware64-14.2/ +# COSTA RICA (CR) +# ftp://mirrors.ucr.ac.cr/slackware/pub/slackware/slackware64-14.2/ +# http://mirrors.ucr.ac.cr/slackware/pub/slackware/slackware64-14.2/ +# CZECH REPUBLIC (CZ) +# ftp://odysseus.linux.cz/pub/linux/slackware/slackware64-14.2/ +# http://odysseus.linux.cz/pub/linux/slackware/slackware64-14.2/ +# DENMARK (DK) +# ftp://mirrors.dotsrc.org/slackware/slackware64-14.2/ +# https://mirrors.dotsrc.org/slackware/slackware64-14.2/ +# FINLAND (FI) +# ftp://elektroni.phys.tut.fi/slackware64-14.2/ +# FRANCE (FR) +# ftp://nephtys.lip6.fr/pub/linux/distributions/slackware/slackware64-14.2/ +# http://nephtys.lip6.fr/pub/linux/distributions/slackware/slackware64-14.2/ +# GERMANY (DE) +# ftp://ftp.gwdg.de/pub/linux/slackware/slackware64-14.2/ +# http://ftp.gwdg.de/pub/linux/slackware/slackware64-14.2/ +# ftp://ftp.tu-chemnitz.de/pub/linux/slackware/slackware64-14.2/ +# http://ftp.tu-chemnitz.de/pub/linux/slackware/slackware64-14.2/ +# ftp://sunsite.informatik.rwth-aachen.de/pub/comp/Linux/slackware/slackware64-14.2/ +# http://sunsite.informatik.rwth-aachen.de/ftp/pub/comp/Linux/slackware/slackware64-14.2/ +# GREECE (GR) +# ftp://ftp.cc.uoc.gr/mirrors/linux/slackware/slackware64-14.2/ +# http://ftp.cc.uoc.gr/mirrors/linux/slackware/slackware64-14.2/ +# ftp://ftp.otenet.gr/pub/linux/slackware/slackware64-14.2/ +# http://ftp.otenet.gr/linux/slackware/slackware64-14.2/ +# ftp://patroklos.noc.ntua.gr/pub/linux/slackware/slackware64-14.2/ +# http://patroklos.noc.ntua.gr/pub/linux/slackware/slackware64-14.2/ +# INDONESIA (ID) +# http://kambing.ui.ac.id/slackware/slackware64-14.2/ +# https://repo.ukdw.ac.id/slackware/slackware64-14.2/ +# IRELAND (IE) +# ftp://ftp.heanet.ie/mirrors/ftp.slackware.com/pub/slackware/slackware64-14.2/ +# http://ftp.heanet.ie/mirrors/ftp.slackware.com/pub/slackware/slackware64-14.2/ +# ITALY (IT) +# ftp://ba.mirror.garr.it/mirrors/Slackware/slackware64-14.2/ +# http://ba.mirror.garr.it/mirrors/Slackware/slackware64-14.2/ +# JAPAN (JP) +# ftp://ftp.nara.wide.ad.jp/pub/Linux/slackware/slackware64-14.2/ +# http://ftp.nara.wide.ad.jp/pub/Linux/slackware/slackware64-14.2/ +# ftp://ftp.kddilabs.jp/Linux/distributions/Slackware/slackware64-14.2/ +# http://ftp.kddilabs.jp/Linux/distributions/Slackware/slackware64-14.2/ +# ftp://riksun.riken.go.jp/Linux/slackware/slackware64-14.2/ +# http://riksun.riken.go.jp/Linux/slackware/slackware64-14.2/ +# NETHERLANDS (NL) +# ftp://ftp.nluug.nl/pub/os/Linux/distr/slackware/slackware64-14.2/ +# http://ftp.nluug.nl/os/Linux/distr/slackware/slackware64-14.2/ +# ftp://mirror.nl.leaseweb.net/slackware/slackware64-14.2/ +# http://mirror.nl.leaseweb.net/slackware/slackware64-14.2/ +# NORWAY (NO) +# ftp://ftp.slackware.no/slackware/slackware64-14.2/ +# http://ftp.slackware.no/slackware/slackware64-14.2/ +# POLAND (PL) +# ftp://ftp.pwr.wroc.pl/pub/linux/slackware/slackware64-14.2/ +# http://ftp.pwr.wroc.pl/pub/linux/slackware/slackware64-14.2/ +# ftp://ftp.slackware.pl/pub/slackware/slackware64-14.2/ +# http://ftp.slackware.pl/pub/slackware/slackware64-14.2/ +# ftp://sunsite.icm.edu.pl/vol/rzm1/linux-slackware/slackware64-14.2/ +# http://sunsite.icm.edu.pl/packages/linux-slackware/slackware64-14.2/ +# ftp://z-ftp.wcss.wroc.pl/pub/linux/slackware/slackware64-14.2/ +# http://z-ftp.wcss.wroc.pl/pub/linux/slackware/slackware64-14.2/ +# RUSSIA (RU) +# http://mirror.rol.ru/slackware/slackware64-14.2/ +# ftp://mirror.yandex.ru/slackware/slackware64-14.2/ +# http://mirror.yandex.ru/slackware/slackware64-14.2/ +# SOUTH AFRICA (ZA) +# ftp://ftp.is.co.za/mirror/ftp.slackware.com/pub/slackware64-14.2/ +# http://ftp.is.co.za/mirror/ftp.slackware.com/pub/slackware64-14.2/ +# ftp://ftp.wa.co.za/pub/slackware/slackware64-14.2/ +# http://ftp.wa.co.za/pub/slackware/slackware64-14.2/ +# ftp://slackware.mirror.ac.za/slackware64-14.2/ +# http://slackware.mirror.ac.za/slackware64-14.2/ +# SWEDEN (SE) +# ftp://ftp.sunet.se/mirror/slackware.com/slackware64-14.2/ +# http://ftp.sunet.se/mirror/slackware.com/slackware64-14.2/ +# SWITZERLAND (CH) +# ftp://mirror.switch.ch/mirror/slackware/slackware64-14.2/ +# http://mirror.switch.ch/ftp/mirror/slackware/slackware64-14.2/ +# TAIWAN (TW) +# ftp://ftp.isu.edu.tw/pub/Linux/Slackware/slackware64-14.2/ +# http://ftp.isu.edu.tw/pub/Linux/Slackware/slackware64-14.2/ +# ftp://ftp.twaren.net/pub/Linux/Slackware/slackware64-14.2/ +# http://ftp.twaren.net/Linux/Slackware/slackware64-14.2/ +# TURKEY (TR) +# ftp://ftp.linux.org.tr/slackware/slackware64-14.2/ +# http://ftp.linux.org.tr/slackware/slackware64-14.2/ +# UKRAINE (UA) +# ftp://mirrors.mithril.org.ua/linux/slackware/slackware64-14.2/ +# http://mirrors.mithril.org.ua/linux/slackware/slackware64-14.2/ +# UNITED KINGDOM (UK) +# ftp://ftp.mirrorservice.org/sites/ftp.slackware.com/pub/slackware/slackware64-14.2/ +# http://ftp.mirrorservice.org/sites/ftp.slackware.com/pub/slackware/slackware64-14.2/ +# ftp://mirror.bytemark.co.uk/slackware/slackware64-14.2/ +# http://mirror.bytemark.co.uk/slackware/slackware64-14.2/ +# UNITED STATES (US) +# ftp://ftp.gtlib.gatech.edu/nv/ao2/lxmirror/ftp.slackware.com/slackware64-14.2/ +# ftp://mirror.cs.princeton.edu/pub/mirrors/slackware/slackware64-14.2/ +# ftp://mirrors.easynews.com/linux/slackware/slackware64-14.2/ +# http://mirrors.easynews.com/linux/slackware/slackware64-14.2/ +# ftp://mirrors.us.kernel.org/slackware/slackware64-14.2/ +# http://mirrors.us.kernel.org/slackware/slackware64-14.2/ +# ftp://mirrors.xmission.com/slackware/slackware64-14.2/ +# http://mirrors.xmission.com/slackware/slackware64-14.2/ +# https://mirror.slackbuilds.org/slackware/slackware64-14.2/ +# http://slackware.cs.utah.edu/pub/slackware/slackware64-14.2/ +# http://slackware.mirrors.pair.com/slackware64-14.2/ +# ftp://slackware.mirrors.tds.net/pub/slackware/slackware64-14.2/ +# http://slackware.mirrors.tds.net/pub/slackware/slackware64-14.2/ +# ftp://spout.ussg.indiana.edu/linux/slackware/slackware64-14.2/ +# http://spout.ussg.indiana.edu/linux/slackware/slackware64-14.2/ +# ftp://teewurst.cc.columbia.edu/pub/linux/slackware/slackware64-14.2/ +# http://teewurst.cc.columbia.edu/pub/linux/slackware/slackware64-14.2/ +# +#---------------------------------------------------------------- +# Slackware64-current +#---------------------------------------------------------------- +# USE MIRRORS.SLACKWARE.COM (DO NOT USE FTP - ONLY HTTP FINDS A NEARBY MIRROR) +# https://mirrors.slackware.com/slackware/slackware64-current/ +# +# +# Here are some individual mirrors that can be used instead of the +# redirector at mirrors.slackware.com if necessary ; note that this +# list is not guaranteed to be up-to-date +# +# AUSTRALIA (AU) +# ftp://ftp.cc.swin.edu.au/slackware/slackware64-current/ +# http://ftp.cc.swin.edu.au/slackware/slackware64-current/ +# ftp://ftp.iinet.net.au/pub/slackware/slackware64-current/ +# http://ftp.iinet.net.au/pub/slackware/slackware64-current/ +# ftp://mirror.aarnet.edu.au/pub/slackware/slackware64-current/ +# http://mirror.aarnet.edu.au/pub/slackware/slackware64-current/ +# ftp://mirror.as24220.net/pub/slackware/slackware64-current/ +# http://mirror.as24220.net/pub/slackware/slackware64-current/ +# ftp://mirror.internode.on.net/.pub2/slackware/slackware64-current/ +# http://mirror.internode.on.net/pub/slackware/slackware64-current/ +# http://mirror.primusdatacentre.com.au/slackware/slackware64-current/ +# AUSTRIA (AT) +# ftp://ftp.slackware.at/slackware64-current/ +# http://ftp.slackware.at/data/slackware64-current/ +# ftp://gd.tuwien.ac.at/opsys/linux/freesoftware.com/slackware64-current/ +# http://gd.tuwien.ac.at/opsys/linux/freesoftware.com/slackware64-current/ +# BELARUS (BY) +# ftp://mirror.datacenter.by/pub/slackware/slackware64-current/ +# http://mirror.datacenter.by/pub/slackware/slackware64-current/ +# BRAZIL (BR) +# ftp://ftp.slackware-brasil.com.br/slackware64-current/ +# http://ftp.slackware-brasil.com.br/slackware64-current/ +# BULGARIA (BG) +# ftp://mirrors.unixsol.org/slackware/slackware64-current/ +# http://mirrors.unixsol.org/slackware/slackware64-current/ +# CANADA (CA) +# ftp://mirror.csclub.uwaterloo.ca/slackware/slackware64-current/ +# http://mirror.csclub.uwaterloo.ca/slackware/slackware64-current/ +# ftp://mirror.its.dal.ca/slackware/slackware64-current/ +# http://mirror.its.dal.ca/slackware/slackware64-current/ +# CHINA (CN) +# http://mirror.bjtu.edu.cn/slackware/slackware64-current/ +# http://mirrors.163.com/slackware/slackware64-current/ +# http://mirrors.ustc.edu.cn/slackware/slackware64-current/ +# COSTA RICA (CR) +# ftp://mirrors.ucr.ac.cr/slackware/pub/slackware/slackware64-current/ +# http://mirrors.ucr.ac.cr/slackware/pub/slackware/slackware64-current/ +# CZECH REPUBLIC (CZ) +# ftp://odysseus.linux.cz/pub/linux/slackware/slackware64-current/ +# http://odysseus.linux.cz/pub/linux/slackware/slackware64-current/ +# DENMARK (DK) +# ftp://mirrors.dotsrc.org/slackware/slackware64-current/ +# https://mirrors.dotsrc.org/slackware/slackware64-current/ +# FINLAND (FI) +# ftp://elektroni.phys.tut.fi/slackware64-current/ +# FRANCE (FR) +# ftp://mirror.ovh.net/mirrors/ftp.slackware.com/slackware64-current/ +# http://mirror.ovh.net/mirrors/ftp.slackware.com/slackware64-current/ +# ftp://nephtys.lip6.fr/pub/linux/distributions/slackware/slackware64-current/ +# http://nephtys.lip6.fr/pub/linux/distributions/slackware/slackware64-current/ +# GERMANY (DE) +# ftp://ftp.fu-berlin.de/unix/linux/slackware/slackware64-current/ +# ftp://ftp.gwdg.de/pub/linux/slackware/slackware64-current/ +# http://ftp.gwdg.de/pub/linux/slackware/slackware64-current/ +# ftp://ftp.tu-chemnitz.de/pub/linux/slackware/slackware64-current/ +# http://ftp.tu-chemnitz.de/pub/linux/slackware/slackware64-current/ +# ftp://sunsite.informatik.rwth-aachen.de/pub/comp/Linux/slackware/slackware64-current/ +# http://sunsite.informatik.rwth-aachen.de/ftp/pub/comp/Linux/slackware/slackware64-current/ +# ftp://wrz1013.rz.uni-wuerzburg.de/pub/MIRROR/slackware/slackware64-current/ +# http://wrz1013.rz.uni-wuerzburg.de/pub/MIRROR/slackware/slackware64-current/ +# GREECE (GR) +# ftp://ftp.cc.uoc.gr/mirrors/linux/slackware/slackware64-current/ +# http://ftp.cc.uoc.gr/mirrors/linux/slackware/slackware64-current/ +# ftp://ftp.otenet.gr/pub/linux/slackware/slackware64-current/ +# http://ftp.otenet.gr/linux/slackware/slackware64-current/ +# ftp://patroklos.noc.ntua.gr/pub/linux/slackware/slackware64-current/ +# http://patroklos.noc.ntua.gr/pub/linux/slackware/slackware64-current/ +# INDONESIA (ID) +# http://kambing.ui.ac.id/slackware/slackware64-current/ +# https://repo.ukdw.ac.id/slackware/slackware64-current/ +# IRELAND (IE) +# ftp://ftp.heanet.ie/mirrors/ftp.slackware.com/pub/slackware/slackware64-current/ +# http://ftp.heanet.ie/mirrors/ftp.slackware.com/pub/slackware/slackware64-current/ +# ITALY (IT) +# ftp://ba.mirror.garr.it/mirrors/Slackware/slackware64-current/ +# http://ba.mirror.garr.it/mirrors/Slackware/slackware64-current/ +# JAPAN (JP) +# ftp://ftp.nara.wide.ad.jp/pub/Linux/slackware/slackware64-current/ +# http://ftp.nara.wide.ad.jp/pub/Linux/slackware/slackware64-current/ +# ftp://ftp.kddilabs.jp/Linux/distributions/Slackware/slackware64-current/ +# http://ftp.kddilabs.jp/Linux/distributions/Slackware/slackware64-current/ +# ftp://riksun.riken.go.jp/Linux/slackware/slackware64-current/ +# http://riksun.riken.go.jp/Linux/slackware/slackware64-current/ +# NETHERLANDS (NL) +# ftp://ftp.nluug.nl/pub/os/Linux/distr/slackware/slackware64-current/ +# http://ftp.nluug.nl/os/Linux/distr/slackware/slackware64-current/ +# ftp://mirror.nl.leaseweb.net/slackware/slackware64-current/ +# http://mirror.nl.leaseweb.net/slackware/slackware64-current/ +# NORWAY (NO) +# ftp://ftp.slackware.no/slackware/slackware64-current/ +# http://ftp.slackware.no/slackware/slackware64-current/ +# POLAND (PL) +# ftp://ftp.pwr.wroc.pl/pub/linux/slackware/slackware64-current/ +# http://ftp.pwr.wroc.pl/pub/linux/slackware/slackware64-current/ +# ftp://ftp.slackware.pl/pub/slackware/slackware64-current/ +# http://ftp.slackware.pl/pub/slackware/slackware64-current/ +# ftp://sunsite.icm.edu.pl/vol/rzm1/linux-slackware/slackware64-current/ +# http://sunsite.icm.edu.pl/packages/linux-slackware/slackware64-current/ +# ftp://z-ftp.wcss.wroc.pl/pub/linux/slackware/slackware64-current/ +# http://z-ftp.wcss.wroc.pl/pub/linux/slackware/slackware64-current/ +# RUSSIA (RU) +# http://mirror.rol.ru/slackware/slackware64-current/ +# ftp://mirror.yandex.ru/slackware/slackware64-current/ +# http://mirror.yandex.ru/slackware/slackware64-current/ +# SOUTH AFRICA (ZA) +# ftp://ftp.is.co.za/mirror/ftp.slackware.com/pub/slackware64-current/ +# http://ftp.is.co.za/mirror/ftp.slackware.com/pub/slackware64-current/ +# ftp://ftp.wa.co.za/pub/slackware/slackware64-current/ +# http://ftp.wa.co.za/pub/slackware/slackware64-current/ +# ftp://slackware.mirror.ac.za/slackware64-current/ +# http://slackware.mirror.ac.za/slackware64-current/ +# SWEDEN (SE) +# ftp://ftp.sunet.se/mirror/slackware.com/slackware64-current/ +# http://ftp.sunet.se/mirror/slackware.com/slackware64-current/ +# SWITZERLAND (CH) +# ftp://mirror.switch.ch/mirror/slackware/slackware64-current/ +# http://mirror.switch.ch/ftp/mirror/slackware/slackware64-current/ +# TAIWAN (TW) +# ftp://ftp.isu.edu.tw/pub/Linux/Slackware/slackware64-current/ +# http://ftp.isu.edu.tw/pub/Linux/Slackware/slackware64-current/ +# ftp://ftp.twaren.net/pub/Linux/Slackware/slackware64-current/ +# http://ftp.twaren.net/Linux/Slackware/slackware64-current/ +# TURKEY (TR) +# ftp://ftp.linux.org.tr/slackware/slackware64-current/ +# http://ftp.linux.org.tr/slackware/slackware64-current/ +# UKRAINE (UA) +# ftp://mirrors.mithril.org.ua/linux/slackware/slackware64-current/ +# http://mirrors.mithril.org.ua/linux/slackware/slackware64-current/ +# UNITED KINGDOM (UK) +# ftp://ftp.mirrorservice.org/sites/ftp.slackware.com/pub/slackware/slackware64-current/ +# http://ftp.mirrorservice.org/sites/ftp.slackware.com/pub/slackware/slackware64-current/ +# ftp://mirror.bytemark.co.uk/slackware/slackware64-current/ +# http://mirror.bytemark.co.uk/slackware/slackware64-current/ +# UNITED STATES (US) +# ftp://ftp.gtlib.gatech.edu/nv/ao2/lxmirror/ftp.slackware.com/slackware64-current/ +# ftp://mirror.cs.princeton.edu/pub/mirrors/slackware/slackware64-current/ +# ftp://mirrors.easynews.com/linux/slackware/slackware64-current/ +# http://mirrors.easynews.com/linux/slackware/slackware64-current/ +# ftp://mirrors.us.kernel.org/slackware/slackware64-current/ +# http://mirrors.us.kernel.org/slackware/slackware64-current/ +# ftp://mirrors.xmission.com/slackware/slackware64-current/ +# http://mirrors.xmission.com/slackware/slackware64-current/ +# https://mirror.slackbuilds.org/slackware/slackware64-current/ +# http://slackware.cs.utah.edu/pub/slackware/slackware64-current/ +# http://slackware.mirrors.pair.com/slackware64-current/ +# ftp://slackware.mirrors.tds.net/pub/slackware/slackware64-current/ +# http://slackware.mirrors.tds.net/pub/slackware/slackware64-current/ +# ftp://spout.ussg.indiana.edu/linux/slackware/slackware64-current/ +# http://spout.ussg.indiana.edu/linux/slackware/slackware64-current/ +# ftp://teewurst.cc.columbia.edu/pub/linux/slackware/slackware64-current/ +# http://teewurst.cc.columbia.edu/pub/linux/slackware/slackware64-current/ diff --git a/files/pkglist.awk b/files/pkglist.awk new file mode 100644 index 0000000..5a0c18e --- /dev/null +++ b/files/pkglist.awk @@ -0,0 +1,35 @@ +!/source\// && !/\.asc$/ { + INPUT=$NF + fs=FS + FS="/" ; OFS="/" + $0=INPUT + if ( $2 != "var" ) { + DIR=$2 + FULLPACK=$NF + } else { + DIR="local" + FULLPACK=$NF".tgz" + } + NF=NF-1 + PATH=$0 + FS="-" ; OFS="-" + $0=FULLPACK + if ( NF > 3 ) { + SIZE=split($NF,RELEXT,".") + EXTENSION=RELEXT[SIZE] + LAST=length($NF)-4 + RELEASE=substr($NF,1,LAST) + ARCH=$(NF-1) + VERSION=$(NF-2) + NF=NF-3 + NAME=$0 + } else { + RELEASE=none + ARCH=none + VERSION=none + EXTENSION=tgz + NAME=$0 + } + FS=fs + print DIR" "NAME" "VERSION" "ARCH" "RELEASE" "NAME"-"VERSION"-"ARCH"-"RELEASE" "PATH" "EXTENSION +} diff --git a/files/post-functions.sh b/files/post-functions.sh new file mode 100644 index 0000000..c286e7a --- /dev/null +++ b/files/post-functions.sh @@ -0,0 +1,221 @@ +showdiff() { + BASENAME=$(basename $i .new) + FILEPATH=$(dirname $i) + FULLNAME="${FILEPATH}/${BASENAME}" + + if [ -e ${FULLNAME} ]; then + diff -u ${FULLNAME} ${FULLNAME}.new | $MORECMD + else + echo "file $FULLNAME doesn't exist" + fi +} + +showmenu() { + echo -e "$1 - \c" + tput sc + shift + while [ $# -gt 0 ]; do + echo -e "$1" + tput rc + shift + done +} + +mergenew() { + BASENAME=$(basename $i .new) + FILEPATH=$(dirname $i) + FULLNAME="${FILEPATH}/${BASENAME}" + + if [ -e "${FULLNAME}" ]; then + # in media res. we do the merging right away, but we later allow the user to redo it, if not satisfied with the results. + rm -f "${FULLNAME}.smerge" + echo "Enter '?' in the prompt (%) to display help." + cp -p "${FULLNAME}.new" "${FULLNAME}.smerge" # <- this is so that the installed merged file will have the same permissions as the .new file + sdiff -s -o "${FULLNAME}.smerge" "${FULLNAME}" "${FULLNAME}.new" + + GOEXM=0 + while [ $GOEXM -eq 0 ]; do + showmenu $i "(E)dit the merged file" "(I)nstall the merged file" "View a diff between the merged and the (N)ew file" "View a diff between the (O)ld and the merged file" "(R)edo the merge" "(V)iew the merged file" "(B)ack to previous menu, and delete the merged file" + read ANSWER + case "$ANSWER" in + E|e) + if [ -f "${FULLNAME}.smerge" ]; then + $EDITCMD "${FULLNAME}.smerge" + else + echo -e "Nothing was merged yet..." + fi + ;; + I|i) + if [ -f "${FULLNAME}.smerge" ]; then + if [ -e "${FULLNAME}" ]; then + mv "${FULLNAME}" "${FULLNAME}.orig" + fi + mv "${FULLNAME}.smerge" "${FULLNAME}" + rm -f "${FULLNAME}.new" + GOEXM=1 + GOEX=1 + else + echo -e "Nothing was merged yet..." + fi + ;; + N|n) + if [ -f "${FULLNAME}.smerge" ]; then + diff -u "${FULLNAME}.smerge" "${FULLNAME}.new" | $MORECMD + else + echo -e "Nothing was merged yet..." + fi + ;; + O|o) + if [ -f "${FULLNAME}.smerge" ]; then + diff -u "${FULLNAME}" "${FULLNAME}.smerge" | $MORECMD + else + echo -e "Nothing was merged yet..." + fi + ;; + R|r) + rm -f "${FULLNAME}.smerge" + echo "Enter '?' in the prompt (%) to display help." + cp -p "${FULLNAME}.new" "${FULLNAME}.smerge" # <- this is so that the installed merged file will have the same permissions as the .new file + sdiff -s -o "${FULLNAME}.smerge" "${FULLNAME}" "${FULLNAME}.new" + ;; + V|v) + if [ -f "${FULLNAME}.smerge" ]; then + $MORECMD "${FULLNAME}.smerge" + else + echo -e "Nothing was merged yet..." + fi + ;; + B|b) + rm -f "${FULLNAME}.smerge" + GOEXM=1 + ;; + esac + done + else + echo "file $FULLNAME doesn't exist" + fi +} + +overold() { + BASENAME=$(basename $i .new) + FILEPATH=$(dirname $i) + FULLNAME="${FILEPATH}/${BASENAME}" + + if [ -e ${FULLNAME} ]; then + mv ${FULLNAME} ${FULLNAME}.orig + fi + mv ${FULLNAME}.new ${FULLNAME} +} + +removeold() { + rm $i +} + +looknew() { + + # with ONLY_NEW_DOTNEW set, slackpkg will search only for + # .new files installed in actual slackpkg's execution + if [ "$ONLY_NEW_DOTNEW" = "on" ]; then + ONLY_NEW_DOTNEW="-cnewer $TMPDIR/timestamp" + else + ONLY_NEW_DOTNEW="" + fi + + echo -e "\nSearching for NEW configuration files" + FILES=$(find /etc /var/yp /usr/share/vim -name "*.new" ${ONLY_NEW_DOTNEW} \ + -not -name "rc.inet1.conf.new" \ + -not -name "group.new" \ + -not -name "passwd.new" \ + -not -name "shadow.new" \ + -not -name "gshadow.new" 2>/dev/null) + if [ "$FILES" != "" ]; then + echo -e "\n\ +Some packages had new configuration files installed. +You have four choices: + + (K)eep the old files and consider .new files later + + (O)verwrite all old files with the new ones. The + old files will be stored with the suffix .orig + + (R)emove all .new files + + (P)rompt K, O, R selection for every single file + +What do you want (K/O/R/P)?" + answer + case $ANSWER in + K|k) + break + ;; + O|o) + for i in $FILES; do + overold $i + done + break + ;; + R|r) + for i in $FILES; do + removeold $i + done + break + ;; + P|p) + echo "Select what you want file-by-file" + for i in $FILES; do + GOEX=0 + while [ $GOEX -eq 0 ]; do + echo + showmenu $i "(K)eep" "(O)verwrite" "(R)emove" "(D)iff" "(M)erge" + read ANSWER + case $ANSWER in + O|o) + overold $i + GOEX=1 + ;; + R|r) + removeold $i + GOEX=1 + ;; + D|d) + showdiff $1 + ;; + M|m) + mergenew $1 + ;; + K|k|*) + GOEX=1 + ;; + esac + done + done + break + ;; + *) + echo "OK! Your choice is nothing! slackpkg will Keep the old files for you to deal with later" + ;; + esac + else + echo -e "\t\tNo .new files found." + fi +} + +lookkernel() { + NEWKERNELMD5=$(md5sum /boot/vmlinuz 2>/dev/null) + if [ "$KERNELMD5" != "$NEWKERNELMD5" ]; then + if [ -x /sbin/lilo ]; then + echo -e "\n +Your kernel image was updated. We highly recommend you run: lilo +Do you want slackpkg to run lilo now? (Y/n)" + answer + if [ "$ANSWER" != "n" ] && [ "$ANSWER" != "N" ]; then + /sbin/lilo + fi + else + echo -e "\n +Your kernel image was updated and lilo is not found on your system. +You may need to adjust your boot manager (like GRUB) to boot appropriate +kernel." + fi + fi +} diff --git a/files/slackpkg b/files/slackpkg new file mode 100644 index 0000000..4fcdd61 --- /dev/null +++ b/files/slackpkg @@ -0,0 +1,574 @@ +#!/bin/sh +# +# SlackPkg - An Automated packaging tool for Slackware Linux +# Copyright (C) 2003-2011 Roberto F. Batista, Evaldo Gardenali +# +# 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 2 of the License, 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, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# Project Page: http://slackpkg.org/ +# Roberto F. Batista (aka PiterPunk) piterpunk@slackware.com +# Evaldo Gardenali (aka UdontKnow) evaldogardenali@fasternet.com.br +# + + +#======================================================================== +# +# LOAD CONFIGURATIONS +# + +# +# CONF = configuration directory +# SOURCE = A mirror of Slackware. Source can be sett by editing $CONF/mirrors +# +VERSION=@VERSION@ +PATH=/bin:/usr/bin:/sbin:/usr/sbin +SLACKWARE_VERSION=$(cat /etc/slackware-version | cut -f2 -d\ ) +CONF=${CONF:-/etc/slackpkg} +SOURCE=$(sed -e 's/^[[:blank:]]*//' $CONF/mirrors | grep -m1 -e "^\([a-z]\)") +. $CONF/slackpkg.conf +ERROR="" + +# Set temporary directory +# +TMPDIR=$(mktemp -p /tmp -d slackpkg.XXXXXX 2>/dev/null) +if [ $? -ne 0 ]; then + TMPDIR="/tmp/slackpkg.${RANDOM}" + mkdir -m 700 $TMPDIR || TMPDIR="FAILED" +fi + +# +# Load the slackpkg functions +# +. /usr/libexec/slackpkg/core-functions.sh + +#======================================================================== +# +# COMMAND LINE PARSING +# +if [ $# -eq 0 ]; then + usage +fi + +while [ -n "$1" ] ; do + case $1 in + -delall=on) + DELALL=on + shift + ;; + -delall=off) + DELALL=off + shift + ;; + -checkmd5=on) + CHECKMD5=on + shift + ;; + -checkmd5=off) + CHECKMD5=off + shift + ;; + -checkgpg=on) + CHECKGPG=on + shift + ;; + -checkgpg=off) + CHECKGPG=off + shift + ;; + -checksize=on) + CHECKSIZE=on + shift + ;; + -checksize=off) + CHECKSIZE=off + shift + ;; + -postinst=on) + POSTINST=on + shift + ;; + -postinst=off) + POSTINST=off + shift + ;; + -onoff=on) + ONOFF=on + shift + ;; + -onoff=off) + ONOFF=off + shift + ;; + -download_all=on) + DOWNLOAD_ALL=on + shift + ;; + -download_all=off) + DOWNLOAD_ALL=off + shift + ;; + -dialog=on) + DIALOG=on + shift + ;; + -dialog=off) + DIALOG=off + shift + ;; + -dialog_maxargs=*) + DIALOG_MAXARGS=$(echo $1 | cut -f2 -d=) + shift + ;; + -batch=on) + BATCH=on + shift + ;; + -batch=off) + BATCH=off + shift + ;; + -only_new_dotnew=on) + ONLY_NEW_DOTNEW=on + shift + ;; + -only_new_dotnew=off) + ONLY_NEW_DOTNEW=off + shift + ;; + -use_includes=on) + USE_INCLUDES=on + shift + ;; + -use_includes=off) + USE_INCLUDES=off + shift + ;; + -spinning=on) + SPINNING=on + shift + ;; + -spinning=off) + SPINNING=off + shift + ;; + -default_answer=y|-default_answer=yes) + DEFAULT_ANSWER=y + shift + ;; + -default_answer=n|-default_answer=no) + DEFAULT_ANSWER=n + shift + ;; + -mirror=*) + SOURCE=$(echo $1 | cut -f2 -d=) + shift + ;; + install|reinstall|upgrade|remove|blacklist|download) + CMD=$1 + shift + if [ -n "$1" ]; then + if echo $1 | egrep -q "^\.{0,2}/" ; then + if [ -e $1 ]; then + INPUTLIST=$(cat $1 | tr "\n" " ") + else + echo -e "The file $1 doesn't exist.\n" + cleanup + fi + else + # + # Sanitize the argument. We have some problems with dots + # and plus (.+) + # + #INPUTLIST="$(echo $@ | sed -e 's/\+/\\\+/g' -e 's/\./\\\./g')" + INPUTLIST="$@" + fi + elif [ "$CMD" != "blacklist" ]; then + usage + fi + shift $# + ;; + update) + CMD=$1 + shift + if [ "$1" = "gpg" ]; then + UPARG="$1" + shift + fi + ;; + install-new|upgrade-all|clean-system|new-config|check-updates|help) + CMD=$1 + shift + if [ -n "$1" ]; then + echo -e "\n$CMD: Ignoring extra arguments: $@" >&2 >&1 + shift $# + fi + ;; + generate-template|install-template|remove-template|search|file-search|info) + CMD=$1 + shift + if [ -n "$1" ]; then + ARG=$1 + shift + else + usage + fi + + if [ -n "$1" ]; then + echo -e "\n$CMD: Ignoring extra arguments: $@" >&2 >&1 + shift $# + fi + ;; + *) + echo -e "\n$1: Unknown option.\n" + usage + ;; + esac +done + +#======================================================================== +# +# SYSTEM SETUP +# +system_setup + +#======================================================================== +# +# SYNTAX CHECKING +# +system_checkup + +#======================================================================== +# +# READ EXTRA FUNCTIONS +# + +# If you want a new function or need a rewrite of an existing +# feature, you can put your new function in a shell script under +# /usr/libexec/slackpkg/functions.d/ +# +# Remember - the new function scripts need to be executable +# +for i in /usr/libexec/slackpkg/functions.d/*.sh; do + if [ -x $i ]; then + . $i + fi +done + +#======================================================================== +# +# MAIN PROGRAM +# + +# +# A *BIG* case with all slackpkg commands -:) +# +case "$CMD" in + help) + full_usage + ;; + check-updates) + if checkchangelog 1>/dev/null 2>/dev/null ; then + echo "No updated packages since last check." + else + echo "Updated packages are available since last check." + fi + ;; + update) + # If you are using "slackpkg update gpg" OR the system + # doesn't have Slackware GPG key, download and install + # the key + # + if [ "$UPARG" = "gpg" ] || [ "$GPGFIRSTTIME" = "0" ]; then + # + # Creates .gnupg directory if doesn't exist + # without this dir, gpg got an error. + # + if ! [ -e ~/.gnupg ]; then + mkdir ~/.gnupg + fi + getfile ${SOURCE}GPG-KEY $TMPDIR/gpgkey + gpg --yes --batch --delete-key "$SLACKKEY" &>/dev/null + gpg --import $TMPDIR/gpgkey &>/dev/null && \ + echo -e "\t\t\tSlackware Linux Project's GPG key added" + if [ "$UPARG" = "gpg" ]; then + cleanup + fi + fi + echo "Updating the package lists..." + updatefilelists + ;; + install) + makelist $INPUTLIST + if [ -n "$LIST" ]; then + showlist "$LIST" $CMD + install_pkg + else + echo -e "No packages match the pattern for install. Try:" + echo -e "\n\t$0 reinstall|upgrade $2\n" + POSTINST=off + fi + ;; + reinstall) + makelist $INPUTLIST + if [ -n "$LIST" ]; then + showlist "$LIST" $CMD + install_pkg + else + echo -e "No packages match the pattern for reinstall. Try:" + echo -e "\n\t$0 install|upgrade $2\n" + POSTINST=off + fi + ;; + upgrade) + sanity_check + makelist $INPUTLIST + if [ -n "$LIST" ]; then + showlist "$LIST" $CMD + upgrade_pkg + else + echo -e "No packages match the pattern for upgrade. Try:" + echo -e "\n\t$0 install|reinstall $2\n" + POSTINST=off + fi + ;; + download) + makelist $INPUTLIST + DELALL="off" + if ! [ "$LIST" = "" ]; then + showlist "$LIST" $CMD + for i in $SHOWLIST; do + getpkg $i true + done + else + echo -e "No packages match the pattern for download." + POSTINST=off + fi + ;; + remove) + makelist $INPUTLIST + if [ "$LIST" = "" ]; then + echo -e "The file(s) $INPUTLIST can't be removed - package not installed.\n" + cleanup + fi + showlist "$LIST" $CMD + remove_pkg + ;; + clean-system) + makelist $INPUTLIST + if [ -n "$LIST" ]; then + showlist "$LIST" remove + remove_pkg + else + echo -e "No packages match the pattern for clean-system\n" + POSTINST=off + fi + ;; + upgrade-all) + sanity_check + makelist $INPUTLIST + if ! [ -n "${LIST}" ]; then + echo -e "No packages match the pattern for upgrade. Try:" + echo -e "\n\t$0 install|reinstall $2\n" + POSTINST=off + else + showlist "$LIST" upgrade + if [ "$DOWNLOAD_ALL" = "on" ]; then + OLDDEL="$DELALL" + DELALL="off" + for i in $SHOWLIST; do + getpkg $i true + done + DELALL="$OLDDEL" + fi + FOUND="" + FOUND=$(echo $SHOWLIST | tr -s ' ' "\n" | grep "slackpkg-[0-9]") + if [ "$FOUND" != "" ]; then + getpkg $FOUND upgradepkg Upgrading + echo -e "slackpkg was upgraded - you will need start the upgrade process again...\n" + cleanup + exit 0 + fi + for i in pkgtools glibc-solibs aaa_elflibs readline sed; do + FOUND="" + FOUND=$(echo $SHOWLIST | tr -s ' ' "\n" | grep "${i}-[0-9]") + if [ "$FOUND" != "" ]; then + getpkg $FOUND upgradepkg Upgrading + fi + done + upgrade_pkg + fi + ;; + install-new) + makelist ${INPUTLIST} + if ! [ -n "${LIST}" ]; then + echo -e "No packages match the pattern for install. Try:" + echo -e "\n\t$0 upgrade|reinstall $2\n" + POSTINST=off + else + showlist "$LIST" install + install_pkg + fi + ;; + blacklist) + # + # If blacklist is called without package name, list + # all blacklisted packages + if [ "$INPUTLIST" = "" ]; then + echo -e "Packages in blacklist:\n" + grep -e "^\([a-z]\)" $CONF/blacklist | $MORECMD + cleanup + fi + + makelist ${INPUTLIST} + for i in $LIST; do + BASENAME=$(cutpkg $i) + BLACKLIST="$BLACKLIST $BASENAME" + done + BLACKLIST=$(echo $BLACKLIST | tr ' ' "\n") + if [ "$BLACKLIST" = "" ]; then + echo -e "No packages match the pattern." + cleanup + else + showlist "$BLACKLIST" $CMD + fi + + blacklist_pkg + ;; + file-search) + PATTERN=$(echo $ARG | sed -e 's/\+/\\\+/g' -e 's/\./\\\./g' -e 's/ /\|/g') + makelist $PATTERN + + if [ "$LIST" = "" ]; then + echo -e "No packages contains \"$PATTERN\" file." + else + echo -e "The list below shows the packages that contains \"$PATTERN\" file.\n" + searchlist "$LIST" + echo -e "\nYou can search specific packages using \"slackpkg search package\".\n" + fi + ;; + search) + PATTERN=$(echo $ARG | sed -e 's/\+/\\\+/g' -e 's/\./\\\./g' -e 's/ /\|/g') + makelist $PATTERN + + if [ "$LIST" = "" ]; then + echo -e "No package name matches the pattern." + else + echo -e "The list below shows all packages with name matching \"$PATTERN\".\n" + searchlist "$LIST" + echo -e "\nYou can search specific files using \"slackpkg file-search file\".\n" + fi + ;; + info) + PATTERN=$(echo $ARG | sed -e 's/\+/\\\+/g' -e 's/\./\\\./g') + NAME=$(cutpkg $PATTERN) + awk -F: "/PACKAGE NAME:.* ${NAME}-[^-]+-(${ARCH}|fw|noarch)-[^-]+/,/^$/ { + found=1 + if (\$1 ~ /"$NAME"/) { + print \$PATTERN + } else { + print \$0 + } + } + END { + if ( found != 1 ) { + print \"No packages found! Try:\n\n\tslackpkg search $PATTERN\n\nand choose one (and ONLY one package).\n\" + } + }" ${WORKDIR}/PACKAGES.TXT 2>/dev/null + ;; + new-config) + POSTINST=on + ;; + generate-template) + TEMPLATE=$ARG.template + if [ -e $TEMPLATEDIR/$TEMPLATE ]; then + echo -e "\ +\"$TEMPLATE\" already exists!\n\ +\nDo you want to overwrite $TEMPLATE (y/N)? \c" + answer + if [ "$ANSWER" = "Y" -o "$ANSWER" = "y" ]; then + rm $TEMPLATEDIR/$TEMPLATE + echo + else + cleanup + fi + fi + generate_template $ARG + ;; + install-template) + TEMPLATE=$ARG.template + if [ -e $TEMPLATEDIR/$TEMPLATE ]; then + ( cd $TEMPLATEDIR + parse_template $TEMPLATE + ) + INPUTLIST=$(cat ${TMPDIR}/${TEMPLATE}.tmp | tr "\n" " ") + else + echo -e "$ARG template not found!" + cleanup + fi + + makelist $INPUTLIST + if [ -n "$LIST" ]; then + showlist "$LIST" $CMD + install_pkg + else + echo -e "All packages from $ARG template are already installed" + POSTINST=off + fi + ;; + remove-template) + TEMPLATE=$ARG.template + if [ -e $TEMPLATEDIR/$TEMPLATE ]; then + ( cd $TEMPLATEDIR + parse_template $TEMPLATE + ) + INPUTLIST=$(cat ${TMPDIR}/${TEMPLATE}.tmp | tr "\n" " ") + else + echo -e "$ARG template not found!" + cleanup + fi + + makelist $INPUTLIST + if [ "$LIST" = "" ]; then + echo -e "The template $ARG can't be removed - it isn't installed.\n" + cleanup + fi + showlist "$LIST" $CMD + remove_pkg + ;; + *) + usage + ;; +esac + +# +# Executes the post-install. This is the default +# Before runs post-install, check if the slackpkg option is +# remove, search, update, blacklist, info or clean-system. +# That options don't change configurations files and, if +# someone remove the kernel, i hope he knows what is doing. +# +for i in check-updates remove search file-search update blacklist info \ + clean-system download generate-template remove-template; do + if [ "$CMD" = "$i" ]; then + POSTINST=off + fi +done + +if [ "$POSTINST" != "off" ]; then + lookkernel + looknew +fi + +cleanup diff --git a/files/slackpkg.8 b/files/slackpkg.8 new file mode 100644 index 0000000..16c463d --- /dev/null +++ b/files/slackpkg.8 @@ -0,0 +1,339 @@ +.TH SLACKPKG 8 "Oct 2017" slackpkg-2.82.2 "" +.SH NAME +.B slackpkg +\- Automated tool for managing Slackware Linux packages + +.SH SYNOPSIS +.B slackpkg +.B [OPTIONS] +.B {install|remove|search|upgrade|reinstall|blacklist} +.BI { PATTERN | FILE } + +.B slackpkg [OPTIONS] {clean-system|upgrade-all|install-new} + +.B slackpkg +.B [OPTIONS] +.B {search|file-search} +.BI { PATTERN | FILE } + +.B slackpkg +.B [OPTIONS] +.B {generate-template|install-template|remove-template} +.I TEMPLATENAME + +.B slackpkg [OPTIONS] info +.I PACKAGE + +.B slackpkg [OPTIONS] update [gpg] + +.B slackpkg [OPTIONS] {new-config|check-updates} + +.B slackpkg [OPTIONS] help + +.SH DESCRIPTION +Slackpkg is a tool for those who want to easily install or upgrade +packages via the network. With slackpkg, you can have a minimal +installation of Slackware Linux and install/upgrade only those packages +you need most. + +You don't need to setup NFS or make dozens of CDs for all your +computers; all you need to do is to type one command and all of +the latest official Slackware packages will be at your fingertips. + +.SH INSTRUCTIONS +Slackpkg has many features. It can search for specific files, remove +all third-party packages in your system, install packages added to +Slackware since your last update, show package descriptions, etc. + +Before you do anything, you will need to uncomment one mirror in +/etc/slackpkg/mirrors file and run: + +.in +5 +# slackpkg update +.in + +The "update" action will download and format the list of files and +packages in Slackware. Every time this list is changed, the update +needs to be run. + +The main features of Slackpkg are the ones directly related to +package management: install, upgrade, and remove packages. +To do any of these tasks, the Slackpkg syntax is: + +.in +5 +# slackpkg [OPTIONS] <action> {PATTERN|FILE} +.in + +.I OPTIONS +can be one or more of the many configuration options listed in +/etc/slackpkg/slackpkg.conf. There are equivalent command line options +for most of the configuration directives found in slackpkg.conf - see the +.B slackpkg.conf(5) +man-page to see what options are available. + +.I PATTERN +can be a package name or just part of package name. It can also +be a software series (like kde, a, ap, ...). +.br + +.I FILE +is a file with a list of +.I PATTERNs +inside: either one per line, +or several per line with spaces as separators. + +Slackpkg can be used to upgrade the whole distribution. +.br +The usual way is to do: + +.in +5 +# slackpkg update +.br +# slackpkg install-new +.br +# slackpkg upgrade-all +.br +# slackpkg clean-system +.in + +Another feature of Slackpkg is the ability to work with templates, which can +make it much easier to create different machines with the same contents of +packages. The basic steps are as follows: + +.RS +5 +.IP \(bu 2 +Install one machine +.IP \(bu 2 +Run "slackpkg generate-template TEMPLATENAME" +.IP \(bu 2 +Copy /etc/slackpkg/templates/TEMPLATENAME.template to the same directory on +the other machine +.IP \(bu 2 +Run "slackpkg install-template TEMPLATENAME" on the other machine +.RE + +.I TEMPLATENAME +is the name of your template. + +Following this manual page, you can find what each of these (and other) +actions does. + +.SH ACTIONS +.TP 5 +.B help +.br +Show slackpkg's actions and a short description of them. Useful if you need +to know a little about slackpkg. The information here, on man-page is much +more complete. + +.TP 5 +.B update +.br +update will download the latest package lists from a Slackware mirror +(or your CD). It's a good idea to run + +.in +5 +# slackpkg update +.in + +before attempting to upgrade, install, or search for packages. +.br +If you need to update Slackware's GPG key, run + +.in +5 +# slackpkg update gpg +.in + +The GPG key doesn't change. This should be a "one time" command - run it +once and forget it... + +.TP 5 +.B check-updates +.br +Verify if there is any update to ChangeLog.txt. This is good to be used from +cron to alert the sysadmin about updates. + +.TP 5 +.B file-search +.br +You can search the official Slackware packages for any file in the Slackware +distribution. Do you need a strange library? Use file-search to find it. + +.in +5 +# slackpkg file-search filename +.in + +All packages with matching "filename" will be shown, thus you can see whether +the packages are installed or not; if not, you can download and install them +with other slackpkg actions. + +.TP 5 +.B search +.br +You can search for any package distributed in Slackware. + +.in +5 +# slackpkg search pattern +.in + +All packages names that matches with "pattern" will be shown. +Like file-search, you can see whether the packages are installed or not; if +not, you can download and install them with other slackpkg actions. + +.TP 5 +.B install +.br +Installation of a package is very simple. Just use a command like this: + +.in +5 +# slackpkg install package +.in + +and the package will be downloaded and installed. +.br +You can't use the "install" option to install an already installed package, +but you may reinstall or upgrade it. + +.TP 5 +.B upgrade +.br +upgrade installs the most recent official version of the specified package(s). + +upgrade will not attempt to install new packages (use the install +function for that purpose; the latest official version of the package +will be installed). +.TP 5 +.B reinstall +.br +In case you mistakenly corrupt something, the reinstall option will allow +you to reinstall the same version of a package that is currently installed. + +.TP 5 +.B remove +.br +With remove, you can remove certain installed packages. As an example: + +.in +5 +# slackpkg remove kde +.in + +will remove all packages with "kde" in their name. + +.TP 5 +.B blacklist +.br +With this action, you can "blacklist" certain packages. +.br +Blacklisted packages will not be installed, upgraded, or removed by slackpkg. +If you want to remove some package from the black list, please edit +/etc/slackpkg/blacklist. + +.TP 5 +.B download +.br +This action tells slackpkg to download the packages, but not to install them. +They will be placed in /var/cache/packages, and you can +install/upgrade/reinstall them later (or burn them to CD). + +.TP 5 +.B info +.br +This action prints information about the package(s): compressed and +uncompressed size, description, etcetera... + +.TP 5 +.B clean-system +.br +This action removes all of the packages that don't belong to a standard +Slackware installation. With this option, you can clean up your system, +removing third-party packages as well as any packages that were removed +from the official Slackware package set. +.br +If you have some third party (or custom built) packages that you would like +to keep, you can temporarily add them to the list of blacklisted packages +before you run the 'clean-system' action. + +.TP 5 +.B upgrade-all +.br +This action upgrades every package installed on the system to the version in +the official Slackware tree; this is the "good" way to upgrade the entire +system. +.br +Remember to use the "install-new" action before you use "upgrade-all." + +.TP 5 +.B install-new +This action installs any new packages that are added to the official +Slackware package set. Run this if you are upgrading your system to +another Slackware version or if you are using -current. +.br +If you want to install all uninstalled Slackware packages onto your system, +use the following command instead of the install-new action: + +.in +5 +# slackpkg install slackware. +.in +.TP 5 +.B new-config +This action searches for .new configuration files and ask the user what to +do with those files. +.br +new-config is very useful when you perform an upgrade and leave the +configuration files to be reviewed later. Instead of a manual search, +diff, and replace; you can use the new-config action. +.br +new-config searches /etc and /usr/share/vim for new config files. +.TP 5 +.B generate-template +This action creates a new template with all official packages that are +installed in your system. The template is stored at /etc/slackpkg/templates +.TP 5 +.B install-template +This action install the required template in the system. The template must +be in /etc/slackpkg/templates. If the template "includes" other templates, +all of them need to be in /etc/slackpkg/templates. You can disable the +"includes" in slackpkg.conf or in command-line. +.TP 5 +.B remove-template +This action remove all packages that are part of selected template. Be +careful, this can put your machine in an unusable state. The "include" +handling can be activated/deactivated in slackpkg.conf or with the +appropriate option in command-line. + +.SH FILES +.TP 5 +.B /etc/slackpkg/mirrors +File to specify the location from which to download packages +.TP 5 +.B /etc/slackpkg/slackpkg.conf +General configuration of slackpkg +.TP 5 +.B /etc/slackpkg/blacklist +List of packages to skip +.TP 5 +.B /etc/slackpkg/templates +Contains all template files +.TP 5 +.B /usr/libexec/slackpkg +Contains slackpkg core and additional functions +.TP 5 +.B /var/lib/slackpkg +Slackpkg internal use - Formatted package lists, copy of +ChangeLog.txt, list of files, etcetera... + +.SH "SEE ALSO" +.BR slackpkg.conf (5), +.BR installpkg (8), +.BR upgradepkg (8), +.BR explodepkg (8), +.BR makepkg (8), +.BR pkgtool (8). + +.SH AUTHORS +.TP 5 +Piter PUNK aka Roberto F Batista +<piterpk AT terra DOT com DOT br> +.TP 5 +Evaldo Gardenali aka UdontKnow +<evaldo AT fasternet DOT com DOT br> diff --git a/files/slackpkg.conf.5 b/files/slackpkg.conf.5 new file mode 100644 index 0000000..5af259a --- /dev/null +++ b/files/slackpkg.conf.5 @@ -0,0 +1,338 @@ +.TH SLACKPKG.CONF 5 "Oct 2017" slackpkg-2.82.2 "" +.SH NAME +.B slackpkg.conf +\- Configuration data for slackpkg + +.SH DESCRIPTION + +The slackpkg.conf file contains information for +.B slackpkg +(8), an automated tool for managing Slackware Linux packages. + +The slackpkg.conf file is a sequence of shell script variables, and each +variable controls one aspect of slackpkg. Comments begin with the # +character and end at end of the line, and comments may appear anywhere +inside the slackpkg.conf file. If some variable appears more than once +in the file, slackpkg will use the value that was defined last. + +Many variables can be overridden by options passed to slackpkg on the command +line. If you need to override the value of +.B VARIABLE +, pass +.B -variable=value +on the command line just before the slackpkg action. Multiple variables may +be overridden. + +EXAMPLE: slackpkg -batch=on -default_answer=y upgrade-all + +For configuration options that have only two states, possible values are +either "on" or "off" unless otherwise indicated. + +The different configuration options are: + +.TP 5 +.B ARCH +.br +Chooses the system architecture. Usually Slackpkg can find the correct +value using "uname -m". The valid values are: + +.ds title MACHINE\t\tVALID ARCH VALUES +.ds arm ARM\t\t\tarm +.ds x86 x86 (32bits)\ti386, i486, i586 and i686 +.ds x86_64 x86 (64bits)\tx86_64 +.ds ppc PowerPC\t\tpowerpc +.ds s390 S/390\t\t390 +.in +5 +.B \*[title] +.br +\*[arm] +.br +\*[x86] +.br +\*[x86_64] +.br +\*[ppc] +.br +\*[s390] +.in + +The default value of +.B ARCH +depends on your architecture. + +.TP 5 +.B SLACKKEY +.br +Slackpkg checks the package signature file (.asc) against the GPG signature +of the project. Different ports of Slackware can have different signatures, +and Slackpkg tries to find the correct one based on the architecture of your +system. If the automatically-detected +.B SLACKKEY +isn't correct, you can change it using this option. + +The default value of +.B SLACKKEY +depends on your Slackware port. + +.TP 5 +.B TEMP +.br +Defines the location to which slackpkg will download the packages before +installing/upgrading them. + +The default value of +.B TEMP +is /var/cache/packages. + +.TP 5 +.B WORKDIR +.br +Defines the directory for package lists, file lists, and other information +used by slackpkg as it works. Do not change the value of this variable +unless you know what you are doing. + +The default value of +.B WORKDIR +is /var/lib/slackpkg. + +.TP 5 +.B WGETFLAGS +.br +Selects special options for wget. If you need to use multiple options, +remember to put them between double quotes. + +The default value of +.B WGETFLAGS +is "\--passive-ftp" + +.TP 5 +.B DELALL +.br +If set to "on", all downloaded files will be removed after slackpkg performs +install or upgrade (this does NOT have any impact when slackpkg is run with +"download"). If set to "off", the files will be kept in the directory +defined in +.B TEMP +(as described above). + +The default value of +.B DELALL +is "on". +.br +From command line, you can use -delall=value. + +.TP 5 +.B CHECKMD5 +.br +Enables (on) or disables (off) the checking of MD5 checksums of all downloaded +packages before installing or upgrading them. + +The default value of +.B CHECKMD5 +is "on". +.br +From command line, you can use -checkmd5=value. + +.TP 5 +.B CHECKGPG +.br +Enables (on) or disables (off) the check of GPG signature for each package +before install or upgrade. + +The default value of +.B CHECKGPG +is "on". +.br +From command line, you can use -checkgpg=value. + +.TP 5 +.B CHECKSIZE +.br +Enables (on) or disables (off) the check of available disk space for each +package before install or upgrade. + +The default value of +.B CHECKSIZE +is "off". +.br +From command line, you can use -checksize=value. + +.TP 5 +.B PKGMAIN +.br +Defines the main distribution directory. Usually, you don't need to worry +about this variable, as Slackpkg tries to find it based on your architecture. +However, if you need to change it, then include this variable in your +slackpkg.conf. This should always be the directory which contains the +Slackware package set series (A, AP, D, E, F, ...). + +Default: depends on Slackware port + +.TP 5 +.B PRIORITY +.br +This array selects the priority at which directories on the mirror will have +when slackpkg looks for packages. If a package is found in more than one +place, the package in first directory gets priority, then second, then third, +then fourth and finally, the package found in last listed directory. You can +use %PKGMAIN to use the contents of PKGMAIN variable. + +Default values (in order): patches %PKGMAIN extra pasture testing + +.TP 5 +.B POSTINST +.br +Enables (on) or disables (off) slackpkg's post-installation features, such +as checking for new (*.new) configuration files and new kernel images, and +prompts you for what it should do. + +The default value of +.B POSTINST +is "on". +.br +From command line, you can use -postinst=value. + +.TP 5 +.B ONLY_NEW_DOTNEW +.br +When +.B POSTINST +is set to "on", slackpkg will search for all .new files inside /etc and +prompt the user for what to do with them. However, some users prefer to +see only the .new files installed in slackpkg's last execution, so if +this applies to you, set +.B ONLY_NEW_DOTNEW +to "on". + +The default value of +.B ONLY_NEW_DOTNEW +is "off". Only change this if you know what are you doing... +.br +From command line, you can use -only_new_dotnew=value. + +.TP 5 +.B ONOFF +.br +The +.B ONOFF +variable sets the initial behavior of the dialog interface. +If you set this to "on" then all packages will be selected by default. +If you prefer the opposite option (all unchecked), then set this to "off". + +The default value of +.B ONOFF +is "on". +.br +From command line, you can use -onoff=value. + +.TP 5 +.B DOWNLOAD_ALL +.br +If this variable is set to "on", all files will be downloaded before the +requested operation (install or upgrade) is performed. If set to "off", +then the files will be downloaded and the operation (install/upgrade) performed +one by one. + +The default value of +.B DOWNLOAD_ALL +is "off". +.br +From command line, you can use -download_all=value. + +.TP 5 +.B DIALOG +.br +Enables (on) or disables (off) the dialog interface. + +The default value of +.B DIALOG +is "on". +.br +From command line, you can use -dialog=value. + +.TP 5 +.B DIALOG_MAXARGS +.br +Set the max number of characters that will be send to "dialog". If this number +is reached in upgrade, slackpkg removes the information about current installed +version of each package. If even without this information the number is reached +again, slackpkg returns an error to the user. + +If +.B DIALOG_MAXARGS +is unset, 19500 is the default value. +.br +From command line, you can use -dialog_maxargs=value. + +.TP 5 +.B BATCH +.br +Enables (on) or disables (off) the non-interactive mode. When run in batch +mode, slackpkg will not prompt the user for anything; instead, all questions +will get +.B DEFAULT_ANSWER +(see below). +.br +If you perform an upgrade using this mode, you will need to run +"slackpkg new-config" later to find and merge .new files. + +The default value of +.B BATCH +is "off". +.br +From command line, you can use -batch=value. + +.TP 5 +.B DEFAULT_ANSWER +.br +This is the default answer to questions when slackpkg prompts the user for +some information. This is used only in non-interactive mode (when +.B BATCH +is "yes" or the user turns batch mode on via the command line); otherwise, +this variable has no effect. +.br +Valid values are "y" or "n". + +The default value of +.B DEFAULT_ANSWER +is "n". +.br +From command line, you can use -default_answer=value. + +.TP 5 +.B USE_INCLUDES +.br +Slackpkg templates can include other templates. This reduces the package +duplication in many templates, but it can be a problem if you want to remove +only a specific template. You can disable the #include parsing by setting +this option to "off". + +The default value of +.B USE_INCLUDES +is "on". +.br +From command line, you can use -use_includes=value. + +.TP 5 +.B SPINNING +.br +When Slackpkg is doing an activity that takes some time, it gives visual +feedback with a spinning bar. If you don't like the spinning bar, it can be +disabled by setting this option to "off". + +The default value of +.B SPINNING +is "on". +.br +From command line, you can use -spinning=value. + +.SH FILES +.TP 5 +.B /etc/slackpkg/slacpkg.conf + +.SH "SEE ALSO" +.BR slackpkg (8) +.BR pkgtool (8) +.BR installpkg (8) +.BR upgradepkg (8) +.BR removepkg (8) diff --git a/files/slackpkg.conf.new b/files/slackpkg.conf.new new file mode 100644 index 0000000..9eae0ab --- /dev/null +++ b/files/slackpkg.conf.new @@ -0,0 +1,153 @@ +# +# slackpkg.conf - Configuration for SlackPkg +# v2.8 +# + +# +# SlackPkg - An Automated packaging tool for Slackware Linux +# Copyright (C) 2003-2011 Roberto F. Batista, Evaldo Gardenali +# +# 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 2 of the License, 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, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# Project Page: http://slackpkg.org/ +# Roberto F. Batista (aka PiterPunk) piterpunk@slackware.com +# Evaldo Gardenali (aka UdontKnow) evaldogardenali@fasternet.com.br +# + +# For configuration options that have only two states, possible values are +# either "on" or "off" + +# Remember, the only official Slackware ports are x86, s390 and arm, and +# slackpkg developers don't have s390 boxes for testing. If you are +# testing/using other architectures and have suggestions or patches, +# please let me know (piterpunk@slackware.com) +# +# Select the architecture of your system. Valid values are: +# i#86 (where # is 3, 4, 5 or 6) +# x86_64 +# s390 +# arm* (* can be v4, v5tejl, and other ARM versions) +# powerpc +# +# The line is commented because slackpkg will try to find your +# architecture automagically. If you want to override what slackpkg +# finds, put the value after the = and uncomment this line +#ARCH= + +# The default PKGMAIN is "slackware", but some derived distros use other +# names as the main directory. PKGMAIN is the place with the slackware +# package series (a, ap, n, ... ). +# +# Usually slackpkg can automagically discover this variable. If you want +# to override the discovered variable, then uncomment this line and change +# it to reflect the correct value of PKGMAIN +#PKGMAIN=slackware + +# Slackware packages are signed by project key. Slackpkg uses this key +# to check if the packages downloaded are valid, so remember to set +# CHECKGPG to "on". +# +# Usually slackpkg can automagically discover this variable. If you want +# to override the discovered variable, then uncomment this line and edit +# as needed +#SLACKKEY="Slackware Linux Project <security@slackware.com>" + +# Downloaded files will be in directory below: +TEMP=/var/cache/packages + +# Package lists, file lists, and others will be at WORKDIR: +WORKDIR=/var/lib/slackpkg + +# Special options for wget (default is WGETFLAGS="--passive-ftp") +WGETFLAGS="--passive-ftp" + +# If DELALL is "on", all downloaded files will be removed after install. +DELALL=on + +# If CHECKMD5 is "on", the system will check the md5sums of all packages before +# install/upgrade/reinstall is performed. +CHECKMD5=on + +# If CHECKGPG is "on", the system will verify the GPG signature of each package +# before install/upgrade/reinstall is performed. +CHECKGPG=on + +# If CHECKSIZE is "on", the system will check if we have sufficient disk +# space to install selected package. This make upgrade/install safer, but slow +# upgrade/install process. +CHECKSIZE=off + +# PRIORITY sets the download priority. slackpkg will try to found the +# package first in the first value, then the second one, through all +# values in list. +# +# Default value: patches %PKGMAIN extra pasture testing +PRIORITY=( patches %PKGMAIN extra pasture testing ) + +# Enables (on) or disables (off) slackpkg's post-installation features, such +# as checking for new (*.new) configuration files and new kernel images, and +# prompts you for what it should do. Default=on +POSTINST=on + +# Post-installation features, by default, search all of /etc for .new files. +# This is the safe option: with it, you won't have any unmerged .new files +# to cause problems. Even so, some people prefer that only the .new files +# installed by the current slackpkg session be checked. +# If this is your case, change ONLY_NEW_DOTNEW to "on". +# Default=off +ONLY_NEW_DOTNEW=off + +# The ONOFF variable sets the initial behavior of the dialog interface. +# If you set this to "on" then all packages will be selected by default. +# If you prefer the opposite option (all unchecked), then set this to "off". +ONOFF=on + +# If this variable is set to "on", all files will be downloaded before the +# requested operation (install or upgrade) is performed. If set to "off", +# then the files will be downloaded and the operation (install/upgrade) +# performed one by one. Default=on +DOWNLOAD_ALL=on + +# Enables (on) or disables (off) the dialog interface in slackpkg. Default=on +DIALOG=on + +# Enables (on) or disables (off) the non-interactive mode. If set to "on", +# slackpkg will run without asking the user anything, and answer all questions +# with DEFAULT_ANSWER. If you do any upgrades using this mode, you'll need to +# run "slackpkg new-config" later to find and merge any .new files. +BATCH=off + +# Default answer to slackpkg questions. Can be "y" or "n". +DEFAULT_ANSWER=n + +# Slackpkg allows a template to "include" the packages specified in another +# template. This option enables (on) or disables (off) the parsing of +# any "#include" directives in template files. Default=on +USE_INCLUDES=on + +# Enables a spinning bar as visual feedback when slackpkg is making its +# internal lists and some other operations. Default=on +SPINNING=on + +# Max number of characters that "dialog" command can handle. +# If unset, this variable will be 19500 (the number that works on +# Slackware 10.2) +DIALOG_MAXARGS=139000 + +# +# The MIRROR is set from /etc/slackpkg/mirrors +# You only need to uncomment the selected mirror. +# Uncomment one mirror only. +# |