
0.10.0 Dec 12, 2008
 * validate against installed package list when creating a list of obsolete
   packages and their dependencies so as to not try and remove uninstalled
   packages
 * translation updates
 * (libslapt) added slapt_write_rc_config (incorporating from gslapt)
 * (libslapt) added parsing of disabled sources (instead of ignoring what
    gslapt creates).
 * test updates
 * Added source priority support based on patch submitted by Ken Milmore
 * Added support for ikg extension (requested by Miguel Reynosso)
 * Fix for MD5 string length (Thanks to Boris Popov)

0.9.12e May 10, 2008
 * only accept content length instead of last modified date if url is NOT ftp.
   This enforces 404 errors for those sources that like to have custom 404
   pages.
 * make --ignore-dep ignore conflicts on upgrade
 * test updates
 * Romanian translation by Reteaua PTM.

0.9.12d Feb 22, 2008
 * Added download count notification while downloading packages (Sergio)
 * Fix for parsing dependencies that have a dash in the package name

0.9.12c Oct 27, 2007
 * updated russian translation from ru@li.org
 * allow version, list, available, installed, show, and search options to be
   run without write privileges to the working directory (thanks
   Anders Bjorklund and John Babiak)
 * compile time definition for SLACKWARE_EXTRA_TESTING_PASTURE_WORKAROUND
   (see package.c for comment)

0.9.12b Sep 18, 2007
 * Fixed message formatting for 'Need to get' translations.
 * Fixed message formatting of 'After unpacking' translations.
 * added slapt_regex_extract_match()
 * bug fix for detecting reverse dependencies when removing packages

0.9.12a Aug 18, 2007
 * added gnupg as explicit dependency
 * FAQ update mentioning GPGME troubleshooting.
 * Improved handling of GPGME errors
 * bug fix for segfault if gpg verification fails for an uncompressed
   checksums file.  Thanks to QliXed.

0.9.12 Jul 10, 2007
 * updated doc/libslapt.3 manpage
 * russian an ukrainian updates from sin
 * updated translations
 * rewind checksum file after verifying it
 * polish updates from Piotr
 * german updates by Manfred
 * added GPG signature verification via gpgme (thanks Pat Volkerding for
   adding gpgme to -current)
 * Updated downloading in libslapt for better notification.  This also resulted
   in some simplification in code.  Removed unused DEBUG ifdefs.  Removed
   deprecated translation strings.  Added error condition strings and
   slapt_strerror() function.  New translation strings.  Bumped to 0.9.12.
 * Wrapped generated slapt.h in ifndef guard
 * Added initial unit testing to tree
   (requires Check from http://check.sourceforge.net)
 * Individual package download size now represented by a float (Ricardo Garcia)
 * replaced useless strlen(constant) calls
 * Added shortcuts for update (u) and install (i) (thanks Piotr)
 * --show now shows the installed version if it is newer than the 
   newest available version (thanks Piotr)

0.9.11h Feb 26, 2007
 * Polish translation update from Lukasz
 * Do not consider the uncompressed size of the packages if download_only
   is specified (thanks Norbert).
 * honor exclude for /a/ packages during dist-upgrade (thanks Lukasz)
 * fixed non NULL exclude check (thanks Lukasz)
 * Sorting and searching should use the more precise strverscmp() rather than
   the less precise slapt_cmp_pkg_versions() (Piotr)

0.9.11g Nov 19, 2006
 * updated FAQ#18 "How can I download every package in a disk set?" with custom
   disk-set examples (Per).
 * Added FAQ entry describing CHECKSUMS.md5, PACKAGES.TXT, and package_data (Per)
 * fixed bug in incorrectly detecting requirements on package removal
 * added Turkish translation by Bekir SONAT 
 * updated download callback data structure making more informative
   download statistics possible.
 * updating package sort to also sort by location
 * extended configuration api
 * improved worst case lookup time for searching packages on package lists
   that are known to be sorted.
 * fixed crash bug in is_required_by (thanks to MacIver and Larhzu)

0.9.11f Oct 03, 2006
 * slack 11 release
 * added zenwalk example source
 * man page updates by Piotr
 * Makefile now uses the same Group ID of /usr/sbin on the system
   for Slack 11 compatibility (Thanks Ricardo Garcia).
 * fixed encoding issue with pt_PT

0.9.11e Jul 29, 2006
 * show disk space warning *after* showing how much is to be downloaded
 * suppress the warning when opening the ChangeLog.txt fails
   (for installed packages)
 * --remove-obsolete now works with --remove as well as --dist-upgrade
 * added support for downloading compressed ChangeLog.txt.gz
 * updated Polish translation with small updates from Lukasz Stlmach
 * updated documentation (thanks sky@hi.eclipse.co.uk)
 * updated German translation
 * updated FAQ
 * updated pt_PT translation
 * updated japanese translation

0.9.11d May 28, 2006
 * fixed regression in parsing versions in dependencies

0.9.11c May 25, 2006
 * added ChangeLog.txt downloading, --show now shows the changelog entry if present
 * updated patterns to fix version parsing problem with
   apache-1.3.35-i486-2_slack10.2
 * updated zh_CH translation from Yang
 * added http://www.slackware.com/~alien/slackbuilds/ to example.slapt-getrc
 * updated UK and RU translations from Sin
 * simplified Chinese translation by Yang
 * FAQ and FAQ.html updates from Piotr
 * added Japanese translation from S_A
 * updated Portugal translation from Miguel

0.9.11b Feb 19, 2006
 * Bulgarian translation updates from Victor
 * merged patch from Piotr for --config|-c and --download-only|-d shortcuts
 * improved version comparison, falling back on strverscmp rather than strcasecmp.
 * Polish translation updates from Piotr
 * moved previously hardcoded string "Excluding %s, use --ignore-dep to override\n" into translations
 * updated Vietnamese translation from Vu
 * fixed Indonesian translation

0.9.11a Dec 31, 2005
 * updated Bulgarian translation
 * fixed escape character bug (Dan Barber)
 * now preserves access and modification time of downloaded package
 * added Indonesian translation by Kemas Antonius
 * updated Portuguese_Portugal translation from Miguel
 * updated Polish translation from Piotr

0.9.11 Dec 2, 2005
 * added slapt_clean_description() to remove the package name from the
   package description.
 * try to install/upgrade essential packages first
   (glibc-solibs, sed, pkgtools) for dist-upgrade
 * Bulgarian translation by Victor Keranov
 * updated formatting of statistics when --show-stats|-S is in use
 * updated Russian and Unkrainian translations
 * made --install-set ignore excluded packages
 * added --prompt|-p option to always prompt (Kanedaaa)

0.9.10e Oct 14, 2005
 * removed duplicate slapt_add_exclude_to_transaction() calls
 * fixed hardcoded mirror setting in PACKAGES.TXT regression
 * updated Portuguese_Portugal translation from Miguel

0.9.10d Oct 02, 2005
 * added slapt_remove_exclude() to compliment slapt_add_exclude()
 * changed slapt_init_regex() to return slapt_regex_t *
 * changed slapt_init_transaction() to return slapt_transaction_t *
 * added libslapt.3 manpage
 * added reference to Stefano Stabellini's PACKAGES.TXT with dependency
   information to FAQ #10.
 * introduced --install-set option to install whole disk sets
 * fixed naming of data cache file for uncompressed PACKAGES.TXT
 * updated the package data download to save on disk i/o
 * created a doc/ directory for the man pages
 * added Russian and Unkrainian translations (and man pages) by sin of the DeepStyle team
 * updated files for 10.2
 * updated Vietnamese translation from Vu
 * updated Portuguese_Portugal translation from Miguel

0.9.10c Aug 31, 2005
 * French translation update by solsTiCe d'Hiver
 * added --no-upgrade so that packages (such as the kernel) can be installed
   side by side with an existing version.  This disables the check for --install
   arguments that automatically selects the package for upgrade.
 * added slapt_remove_source to compliment slapt_add_source 
 * updated withlibslapt make target, and the library naming convention 
   from libslapt-$(VERSION).so to libslapt.so.$(VERSION)
 * updated pt_PT translation from Miguel
 * updated prompting to better handling input for autoclean and transaction
   accepting.

0.9.10b Aug 09, 2005
 * updated download output 
 * updated output of --list, --available, --installed, and --search joining
   the package name and version (as suggested by chino)
 * added a slapt_cmp_pkgs macro to call slapt_cmp_versions
 * added --retry [num] option to retry failed downloads
   (thanks to Adam Kennedy and John Poplett)
 * translation updates
 * fixed bug trying to head file:// sources
 * merged patch from Ondrej Zary to speedup merging package data with md5sums
 * added slack-suggests containing gslapt

0.9.10a Jul 25, 2005
 * libslapt updates, moving console notification for [install|upgrade]pkg into
   slapt-get specific transaction handler.
 * support packages that end in .tlz and .tbz as well as the normal .tgz
 * data type, functions, and macros renamed with slapt_|SLAPT_ (libslapt)
 * support for compressed package data. --update now checks for PACKAGES.TXT.gz
   and CHECKSUMS.md5.gz, otherwise falls back on expected file names
 * handled CURLE_FTP_BAD_DOWNLOAD_RESUME and CURLE_PARTIAL_FILE errors
   the same way we handle CURLE_HTTP_RANGE_ERROR, unlink and retry
 * check before downloading package if existing file is larger than
   expected size, if so redownload.

0.9.10 Jul 14, 2005
 * limit mmap'd size for very large packages
 * updated Vi translation
 * updated find_or_requirement() to prefer installed packages
 * translation updates
 * moved header files into src/, updated Makefile
 * updated configuration parser to detect sources with spaces at the end
   and updated handling of sources without trailing slashes
 * check in update_pkg_cache() to make sure patch_pkgs is initialized

0.9.9m Jun 30, 2005
 * --dist-upgrade update so that only packages with different arches and the
   the same versions are reinstalled
 * improved speed of parsing installed directories
 * added Slovak translation by Erik Gyepes
 * added DESTDIR support to the makefile (thanks freerock)
 * removed lilo from default exclude list, added glibc.*
 * be quiet if a file doesn't exist when we test with verify_downloaded_pkg();
 * ignore case when comparing versions
 * updated vi translation from Vu
 * exit returning error code when disk space check fails
 * fixed bug where missing dep notification was incorrectly printed with
   multiple dependencies
 * fixed bug where packages w/o descriptions wouldn't show up in --available
   or --list
 * small updates

0.9.9l May 29, 2005
 * removed private search_exclude_transaction() in favor of
   get_exact_pkg(tran->exclude_pkgs,pkg) (libslapt)
 * made search_upgrade_transaction() public (libslapt)
 * fixed bug in remove_from_transaction() function (libslapt)
 * updated translations
 * updated example.slapt-getrc

0.9.9k May 18, 2005
 * added pkg_err_t typedef and api for error handling (libslapt)
   updated transaction code to show conflict and missing dependency
   notifications during the transaction handler.
 * fixed regression in slack-required file
 * code formatting updates
 * fixed a few warnings for gcc 4.0 support
 * added missing strings to translations, updated translations, added
   French translation by Verachten Bruno
 * give more notification when package sources fail to download
 * updated example.slapt-getrc with additional package sources
 * added exclude for x86_64 packages
 * removed unneeded strings from translations
 * removed hard limits on package name, version, location, and description,
   fixing issue with greater than limit location in installed package causing
   double free bug.  thanks to JP (jp dot guillemin at free dot fr) for the
   bug report.
 * when parsing meta entry for w/o conditionals, return newest installed version
   instead of newest available by default, fall back to newest available other-
   wise.
 * free locally created pkg list in purge_old_cached_pkgs()
 * added libcurl option CURLOPT_FOLLOWLOCATION so HTTP redirects are followed
 * initialized source in sources list [fixing valgrind warning]
 * updated FAQ

0.9.9j Apr 17, 2005
 * updated example.slapt-getrc
 * correctly set free_pkgs in pkg_lists within init_transaction and checked for
   it in free_transaction
 * use -fpic for library creation
 * updated withlibslapt make target 
 * added generate_suggestions() so that suggestions are properly detected
   after transaction has been created instead of checking multiple times
   if possible suggestions are present in the current transaction
 * fixed ignoring suggestion when there was only one suggestion
 * added copy_pkg() to package.[ch] instead of using memcpy() in the transaction
   code, so free_transaction() calls free_pkg() making all usage of pkg_info_t
   objects uniform
 * translation updates
 * fixed precision error in curl progress callback, d/l stats now report
   correct percentage
 * added queue_t struct to transaction_t so that installs/upgrades happen in
   the proper order, as discovered.
 * FAQ updates, also added "50. What about mirror fall back / fail-over ?"
 * added CURLOPT_FILETIME to libcurl calls so that ftp transfers have the
   modification date for checking whether the source is new or not (as 
   opposed to the file size).
 * added Slovenian translation by Emil Novak (emilnovak at gmail dot com)
 * added --available option to only show packages available from the current
   sources.  --list shows available and installed. --installed shows only
   the installed with a new output format.

0.9.9i Mar 06, 2005
 * set CURLOPT_HTTPAUTH to CURLAUTH_ANY for NTLM proxy users
 * fixed --remove bug
 * --list now properly shows installed packages
 * installed packages now parse out package location from /var/log/packages entry
 * added add_source() (libslapt)
 * add_deps_to_trans() returns early if passed pkg_info_t is NULL
 * configuration sources now dynamically created instead of static arrays
 * --search return installed packages as well
 * progress_cb for the progress callback is now part of rc_config structure (libslapt)
 * added public add_exclude() to configuration.c (libslapt)
 * init_regex now returns on failure
 * updated translations

0.9.9h Feb 12, 2005
 * removed hardcoded limits REQUIRED_LEN CONFLICTS_LEN SUGGESTS_LEN
 * added search_transaction_by_pkg() to make checks more specific
 * remove package by name-version now possible
 * updated example.slapt-getrc to point to 10.1 sources
 * make sure all dependencies for slapt-get are satisfied during dist-upgrade
 * ensure when removing a package and the packages it requires, the packages
   that are required are installed. thanks NIkkou (nibbana80 at wp dot pl)
 * improved version comparing
 * fixed bug when specifying specific versions of dependencies, thanks NIkkou
    (nibbana80 at wp dot pl)
 * simplified add_deps_to_trans()
 * updated sources in example.slapt-getrc (thanks Piotr Simon)
 * Makefile updates to symlink libslapt-$(VERSION).a to libslapt.a
 * documentation updates

0.9.9g Jan 30, 2005
 * fixed bug in search, installed packages did not show up when searching by
   package location
 * changed order of transaction, removes now happen first in case files in the
   packages to be removed are shared with those packages about to be installed
   or upgraded.
 * ensure that package removal doesn't happen when --download-only is specified
 * updated documentation
 * transaction report now reports sizes in kB or in MB
 * added check before downloading any packages that there is enough disk 
   space to accomodate both downloads and installed pkgs
 * added aaa_elflibs to the default exclude
 * fixed required_by() function for deep leveled recursive dependencies
 * moved package order so that package always follows it's dependencies
 * exclude suggestions from transaction report if they are already present in
   current transaction
 * fixed --no-dep bug that was excluding the requested package instead of
   installing it
 * fixed recursive dependency bug
 * upped the max size of package requires, suggests token can be ' ' or ',' now
 * moved exclude check for installed version of package about to be updated
   so that packages that where not being upgraded wouldn't show up excluded
 * removed redundant NULL check for available_pkgs and patch_pkgs, added
   free_pkg_list() calls for them in cases where it might not get freed
 * wrapped some open_file() calls in NULL check
 * changed leftover fopen() calls to open_file() wrapper
 * updated format for exclude and suggestions during transaction report
 * rewrote add_suggestion() to use a struct instead of long string
 * formatted transaction report so that package names wrap at 80 chars
 * moved slapt-get from /sbin to /usr/sbin
 * show packages excluded in transaction report when --remove-obsolete hits
   excluded packages
 * changed global_config unsigned integers to bool typedef
 * added bool free_pkgs member to pkg_list struct so all pkg_lists are free'd
   uniformly using free_pkg_list, even if their pkg list is pointers to pkg
   objects in other lists
 * made required, conflicts, and suggests into dynamically allocated strings
   for package objects, and upped their max size to 2048
 * inlined init_pkg()
 * added missing fclose() calls in read_rc_config() and read_head_cache()
 * added missing free for getline buffer in get_md5sum() and update_pkg_cache()
 * fixed exclude parsing regression, adding any trailing commas
 * added --compile script to FAQ, contributed by Piotr Simon
 * added missing free for tmp required_of_required_by pkg_list structure in
   required_by()
 * added missing free_regex() calls in parse_meta_entry()
 * deps of pkg that conflict are now set to remove just like when conflicts of
   requested pkg to install are detected
 * fixed bug where conflict of a dep might slip through and allow the requested
   package to successfully be installed
 * fixed segfault when cleaning up if EXCLUDE is not defined within slapt-getrc
 * removed bad use of strcspn() breaking using ROOT env var with slapt-get

0.9.9f Jan 12, 2005
 * all malloc and calloc calls are now wrapped in slapt_malloc and slapt_calloc
 * added a few missing free() calls, and a missing closedir() call in
   working_dir_init()
 * exclude now searches on package location, so you can exclude disk
   sets as well
 * rewrote "Why yet another package management tool for Slackware?" and
   "What about package dependencies?" in FAQ
 * added a 'Getting started' section to the README
 * misc code updates
 * if resume of pkg download is not supported by remote server or proxy,
   remove partial file and try again
 * ensured --remove-obsolete ignores excluded packages
 * updated translations
 * added --remove-obsolete option for dist-upgrade (see FAQ #9 and #28)
 * fixed bug in gen_short_pkg_description with installed packages that are
   missing a description, triggered by the new --search functionality looking
   at installed packages
 * added Vietnamese translation by vu nguyen (vncasper at yahoo dot com)
 * changed longopts and switch cases to use macros for the command line
   argument parsing
 * fixed bug (in -current with glibc 3.3.3) by adding a missing {0, 0, 0, 0}
   where unknown option to getopt_long_only caused segfaults
 * added cast to fix strpbrk() void pointer arith warning with gcc-3.4
 * updated FAQ
 * added alsa.* to default exclude
 * produce warning if slack-require information is too long
 * updated setlocale() call to set category to LC_ALL, thanks Piotr Simon
 * updated documentation

0.9.9e Dec 07, 2004
 * disabled default header of "Pragma: no-cache" for users behind web proxy
 * fixed pt_PT translation, missing \n
 * --upgrade now checks to see if there is multiple installed packages and
   uses the newest one
 * rewrote pkg_action_search()
 * --show now shows installed pkgs
 * get_installed_pkgs() now parses out the packages description as well
 * make --search show installed packages that aren't present in available
   package list from current sources
 * updated typedefs
 * renamed transaction to transaction_t for clarity
 * fixed bug in add_deps_to_trans() where check for exclude was catching
   on installed packages.  installed always satisfies dependency, even if
   excluded (which should only mean excluded from upgrading).
 * install make target now strips binary
 * added pt_PT translation by Miguel Santinho
 * updated documentation

0.9.9d Nov 19, 2004
 * added FAQ: 48. How can I search the contents of a package for a file or library?
 * added czech translation by Oto Petrik
 * made head_mirror_data clear_head_cache write_head_cache read_head_cache
   gen_filename_from_url gen_head_cache_filename get_md5sum non static
 * moved str_replace_chr to common.[ch]
 * during --dist-upgrade, dist-upgrade loop now happens before regular upgrade
 * updated --install target to assume package being requested is higher priority
   than existing installed package when there is a conflict
 * updated is_conflicted() to return the conflicted pkg;
 * added zlib as required to slack-required
 * --install no longer recursively install deps that where excluded
 * updated FAQ, updating #9 concerning dist-upgrade
 * added html version of FAQ, contributed by Piotr Simon
 * polish translation update by Piotr Simon
 * proper German translation contributed by Niklas Volbers
 * tightened the scope of some variables
 * --dist-upgrade now grabs the most up to date version of the
   required base package
 * changed requirement for glibc to glibc-solibs
 * documentation updates
 * misc code cleanups

0.9.9c Oct 13, 2004
 * updated src/transaction.c:add_deps_to_trans() for new get_pkg_dependencies
 * finally cleaned up get_pkg_dependencies, now --ignore-dep only ignores the
   broken dep, not all deps if one is broken
 * changed --disable-dep-check to --no-dep
 * changed --no-dep to --ignore-dep
 * merged Michel Hermier's purge_old_cached_pkgs() patch with some modifications
 * merged Michel Hermier's ask_yes_no() patch to common.[ch] and transation.c
 * added init_pkg_action_args() and free_pkg_action_args()
 * merged Michel Hermier's main.c patch cleaning up main
 * added support for debian style "or" conditional in slack-required
 * moved clean_pkg_dir() from configuration.[ch] to package.[ch]
 * fixed null short description from printing "null", prints "" instead
 * updated man page
 * translation updates
 * added --autoclean option to run purge_old_cached_pkgs() instead of automatically
   at the end of each transation (thanks Michel Hermier)
 * added purge_old_cached_pkgs() to be run at the end of each transaction
   (thanks Michel Hermier)
 * removed unneeded checks for WORKINGDIR_TOKEN_LEN and EXCLUDE_TOKEN_LEN in
   configuration parsing (thanks Peter Santoro)
 * added Greek translation by Savvas Efstratiadis
 * updated doinst.sh so that it doesn't try to do an in place file edit
   with sed as Slackware 8.1 and 9.1's sed doesn't support -i.
   Thanks to Peter Santoro.

0.9.9b Sep 22, 2004
 * searching packages now searches version string along with name,
   location, and description
 * updated makefile, doinst.sh generated script sed's slapt-getrc updating
   comment on /usr/doc/slapt-get*/ directory
 * added FAQ: 49. How can I downgrade a package?
 * added FAQ: 48. What is a meta package and how can I take advantage of it?
 * updated FAQ, added new Q: Will slapt-get break my system?
 * updated slack-desc with support entry pointing to slapt-get-user mailing list
 * updated documentation reflecting new location of the slapt-getrc file (thanks to Chris @ virtig01.net)
 * escaped + in package name within required_by(), fixing gtk+2 etc (thanks to Sergey Sukiyazov)
 * only add dependency if all it's dependencies where added (thanks to Sergey Sukiyazov)
 * updated encoding and translation of polish translation
 * updated man page
 * Brazilian Portuguese translation update
 * norwegian translation update
 * created german and french translations from babelfish (someone will have to update)
 * polish language update

0.9.9a Sep 06, 2004
 * preserve existing command line options when overriding configuration file
 * null terminated new working_dir string in configuration parsing (thanks Sean Donner)
 * updated makefile so that pkg permissions on /sbin are root:bin (thanks Jim Simmons)
 * fixed configuration overriding and parsing borkage (thanks to Sean Donner)

0.9.9 Sep 06, 2004
 * wrapped CURLOPT_FTP_USE_EPRT in ifdef for slack 9.0's curl libs
 * slack-suggests support (see FAQ)
 * added REG_ICASE to init_regex for case insensitive matching
 * print usage when given argument not caught by getopt
 * set CURLOPT_FTP_USE_EPRT to off
 * updated makefile, moved /etc/slapt-getrc to /etc/slapt-get/slapt-getrc
 * documentation updates
 * use libcurl's CURLOPT_FAILONERROR to fail on http codes > 300
 * now will not cache package source if no packages were parsed from the source
 * turned off EPSV for all libcurl operations... ftp.slackware.com doesn't support the EPSV command
 * moved working_dir_init out of read_rc_config() into main(), so that if the config
   file location is overridden, you don't get warnings about permissions on working
   directory

0.9.8k Aug 13, 2004
 * merged parent_deps into deps within lookup_pkg_dependencies() fixing more issues with recursive dependencies
 * fix for long package names that cause the regex to think it is a name and a version in one
   with --install and --show
 * added new linuxpackages.net mirror to example.slapt-getrc

0.9.8j Aug 08, 2004
 * updated get_installed_pkgs() to correctly work when ROOT environment variable is set
 * updated man page
 * added option to override slapt-getrc location via --config switch
 * makefile update, fixing libslapt symlink
 * translation updates
 * made sure missing package cache shows appropriate error and stops action
 * return code for failed --update now correctly returns 1 (fixing scripting issues with slapt-get)

0.9.8i Jul 31, 2004
 * added new linuxpackages mirror to example.slapt-getrc
 * fixed package source caching so that if a download did not finish the cache is invalidated
 * updated create_dir_structure() in common.c
 * made required_by() and lookup_pkg_dependencies() static in packages.c
 * removed unnecessary free in head_mirror_data

0.9.8h Jul 29, 2004
 * fixed endless recursion in is_required_by() when packages declare circular dependencies
 * fixed endless recursion in lookup_pkg_dependencies when --no-dep used to ignore dep errors
   on packages with circular dependencies
 * updated manpage
 * changed "/patches/PACKAGES.TXT" to macro PATCHES_LIST for quiet hack in download_data()
 * added audioslack packages sources to example.slapt-getrc
 * updated documentation
 * added cached notification when using -S switch
 * updated example.slapt-getrc
 * removed needless "Retrieving checksum list [%s]...\n" string from translations
 * now ftp package sources print "Cached" if cached
 * added check in download_data, silence error if url contains "/patches/PACKAGES.TXT"
   for failed download

0.9.8g Jul 21, 2004
 * updated slack-desc
 * default download progress now shows percentage instead of spinner
 * added new linuxpackages.net mirror to example.slapt-getrc
 * finally made a few private functions static
 * moved parse_excludes from package.[ch] to configuration.[ch]
 * updated documentation
 * added support for ftp source caching
 * translation updates
 * support for only downloading package data if newer than cached during --update
 * now caches package data for each individual package sourch per --update run
 * moved spinner and progress_callback from main.[ch] to curl.[ch]
 * moved is_conflicted from action.[ch] to transaction.[ch]
 * added swedish translation by Joel Bjurman (ypolt@lediga.st)
 * documentation updates

0.9.8f Jun 29, 2004
 * makefile update, autogenerated slapt-getrc.new is now bare bones with a
   pointer comment to /usr/doc/slapt-get*/example.slapt-getrc
 * updated example.slapt-getrc setting slackware-10.0 as default release source
 * initialized various integer values that needed it
 * /pasture support
 * makefile updates
 * fixed /testing/ and /extra/ support so that the download url's and md5
   checksums are detected/generated correctly

0.9.8e Jun 07, 2004
 * moved search_transaction() calls into add_[install,upgrade,exclude]_to_transaction()
 * updated doinstall make target
 * dist-upgrade will now reinstall if the package versions differ (vanilla
   version cmp not good enough since it ignores arch)... this fixes packages
   with same version as previous save for the arch not being upgraded
 * makefile updates... thanks to Piotr Simon (sajmon@tenboard.com)
 * updated slapt-getrc to reflect new linuxpackages.net URLs
 * added check for package name and version lengths in
   pkg_action_install() and pkg_action_show()
 * refactored working_dir_init()
 * cleaned up parse_meta_entry() and lookup_pkg_dependencies()
 * moved parse_exclude() from configuration.c to package.c
 * only show download statistics if we are going to download something, not for
   removes only
 * updated handle_transaction so that the size reported for existing
   downloaded data is never below zero
 * fixed translation msgid for checksum mismatch
 * updated translations (added entry for existing download and
   removed "cached copy")
 * transaction report now shows total download size with the amount of already
   downloaded (if some packages have already been downloaded or are incomplete)
 * changed return codes to named variables
 * refactored download_pkg, created verify_downloaded_pkg() and get_pkg_file_size()
 * removed unused head_request code
 * initialized size_u and size_c to 0 for pkg in init_pkg()
 * added FAQ concerning removing obsoleted packages
 * updated INSTALL guide with more explicit cvs directions
 * write package data to temp file during --update, merge into final package_data
   file upon successful download of all package data sources. Thanks go to
   Matthew Robinson (moo@ooo.com) for the idea.
 * renamed variables in update_pkg_cache() to designate files (_f)
 * removed legacy parse_file_list()
 * initialized global_config->no_prompt and global_config->re_install
 * moved create_dir_structure() and gen_md5_sum_of_file() and to common.[ch]
 * created gen_pkg_file_name() and gen_pkg_url() functions
 * tightened up scope on some variables
 * pkg_action_show no longer uses a temp pkg_info_t, just 2 char *
 * updated FAQ, added question about mirroring and bash tab completion
 * moved create_dir_structure from configuration.[ch] to curl.[ch]
 * get compressed and uncompressed information from package log in
   get_installed_pkgs(), and updated transaction handler.
   Transaction report now shows correct sizes for removing packages as well as
   upgrading when package uncompressed sizes differ.
 * documentation updates
 * added check in lookup_pkg_dependencies() to see if ignore failed dependencies
   (--no-dep) was set, if so, actually ignore.
 * moved add_deps_to_trans() to transaction.c from action.c
 * moved pkg_info_t creation into init_pkg() function
 * compartmentalized package list creation and modification into init_pkg_list()
   and add_pkg_to_pkg_list() functions
 * added src/common.c and include/common.h for file and regex operations
 * don't exclude package for upgrade when one of it's dependencies is present
   in the exclude list, but is already installed
 * code updates
 * updated man page

0.9.8d May 02, 2004
 * makefile updates
 * misc code updates
 * updated translations
 * added Italian translation by Francesco Gigli (jaramir@slack.it)
 * --show-stats | -S to show download stats, inspired by Alexandre Zia (alexandre@erbio.widesoft.com.br)
 * example source entries for extra and testing package sets
 * set default URL to official slackware ftp in example.slapt-getrc
 * updated cmp_pkg_versions() for special case where # of version parts !=
   (fixes 3.8.1p1-i486-1 to 3.8p1-i486-1)
   thanks to Francesco Gigli (jaramir@slack.it)
 * added alias for --simulate [-s], and --no-prompt [-y]
 * updated pt_BR translation
 * es and es_ES translations

0.9.8c Mar 17, 2004
 * updated dutch translation adding missing newlines
 * makefile updates
 * documentation updates
 * Dutch translation by Michiel H. (myself@mhil.net)
 * updated dep script in FAQ
 * misc code updates
 * doc updates
 * fixed segfault when slapt-getrc isn't present (return value from open() not checked)

0.9.8b Jan 20, 2004
 * documentation updates (FAQ)
 * makefile updates (permissions etc)
 * remove default user/pass combo so that it can be overriden within the
   slapt-getrc in the source url
 * fixed strncpy() call, length now uses MD5_STR_LEN macro
 * added Norwegian translation by Joran Kvalvaag (jk at nerdworks dot org)
 * added notice when dependency is present in excludes
 * don't consult re_install on dependency check (so when reinstalling pacakge a,
   dependencies b,c, and d aren't reinstalled as well)
 * translation updates

0.9.8a Jan 11, 2004
 * translation updates
 * merged --print-uris patch (cynepnynep@chat.ru)
 * initial transfer resume support
 * added md5 sum to pkg_info_t struct
 * added check for conflict string size, preventing overflow
 * updated update_pkg_cache to merge md5sum into package data
   this will speed up md5 lookups since they are now done during --update
 * rewrote get_md5sum()
 * /var/slapt-get/CHECKSUMS.md5 no longer present.
   MD5 sums integrated into /var/slapt-get/package_data
 * update_pkg_cache now queries everything on a server before moving on
   to the next package source.  This helps ensure that duplicate
   packages from multiple sources will be associated with the correct
   md5 checksums, etc.
 * made sure to null terminate strings of package structure elements in
   case assignment isn't made.
 * added check for correct size of package after download, return incomplete
   download instead of continuing and returning a failed md5 checksum
 * added check for empty md5 checksum with notification if so
 * added stat call at appropriate place in download_pkg() so that the file size
   was actually known when needed
 * documentation updates
 * removed redundant gettext msgid's

0.9.8 Dec 18, 2003
 * added slapt-get source to example slapt-getrc
 * updated source creation script, runs PACKAGESTXT and MD5 on all now
 * added --disable-dep-check to skip the dependency checking
 * added support for ROOT enviroment variable for location of packages logs 
   overriding /var/log/packages ("Keary Griffin" <keary@mindless.com>) (FAQ 34)
 * removed check for package existance in the installed pkg list (will now show duplicates)
 * honor --reinstall with upgrades ("Keary Griffin" <keary@mindless.com>)
 * --install now accepts {pkg}-{version} ("Keary Griffin" <keary@mindless.com>) (FAQ 35)
 * initial slack-conflicts support
 * fixed bug with --install {pkg}-{version}, now correctly maps to installed package,
   won't reinstall without --reinstall.
 * updated FAQ with ENV PATH sudo question
 * fixed bug in dist-upgrade dep check loop exiting early
 * cleaned up src/action.c, moved redundant code into add_deps_to_trans()
 * fully implemented slack-conflicts support
 * updated header files, including useful variable names in function definitions
 * silently perform md5 check, complain out loud only if not correct
 * updated translation template and translation files for slack-conflicts
 * --disable-dep-check now works with --remove as well
 * --show now accepts {pkg}-{version}

0.9.7h Dec 08, 2003
 * updated FAQ
 * updated example dropline exclude regex (Francesco Gigli <jaramir@aruba.it>)
 * initialize global_config->exclude_list if EXCLUDE commented out (Francesco Gigli <jaramir@aruba.it>)
 * updated FAQ
 * updated example.slapt-getrc
 * Polish translation updates by Paul Blazejowski <paulb at blazebox dot homeip dot net>
 * updated slack.it source entry in example.slapt-getrc
 * updated FAQ
 * updated example.slaptgetrc

0.9.7g Nov 23, 2003
 * updated break_down_pkg_version and cmp_pkg_versions for improved version checking

0.9.7f Nov 23, 2003
 * added staticinstall, withlibslaptinstall, staticpkg, and withlibslaptpkg make targets
 * updated error handling, cleaned up exits
 * fixed bug in cmp_pkg_versions when checking build versions, returning opposite than expected
 * updated Makefile
 * removed download_data callback and all callers passing it along

0.9.7e Nov 21, 2003
 * added debugging in transaction functions
 * updated cmp_pkg_versions, changed integer cmp to str cmp for version parts,
   fixing bug with versions containing letters in version parts, such as 0.9.7c.
 * fixed another occurrance of URL malformed, cmp_pkg_versions called with wrong
   pkg struct for dep in --upgrade
 * moved src/action.c:pkg_action_update to src/package.c:update_pkg_cache (libslapt)
 * download_data now gets passed callback function, as arg from download_pkg
   and get_mirror_data_from_source (libslapt)
 * makefile updates for libslapt
   added withlibslapt target to build slapt-get binary linked to libslapt
 * moved usage and version_info functions to action.c (libslapt)

0.9.7d Nov 18, 2003
 * documentation updates
 * added Brazilian Portuguese translation by Arnaldo de Moraes Pereira <arnaldo at sp-dhn dot com dot br>
 * fixed bug when installing package, comparing wrong package structure for version check (thanks Jim)
 * added another unofficial package source
 * Makefile updates (libslapt fix)
 * initialized list->excludes in parse_excludes (libslapt fix)
 * added get_pkg_by_details function
 * added remove_from_transaction function

0.9.7c Nov 13, 2003
 * updated Polish translation
 * added PKG_VER regex definition
 * updated cmp_pkg_versions to ignore arch and compare build if version parts are equal
 * Makefile updates
 * more Makefile updates, symlinking libslapt-$(VERSION).so to libslapt.so

0.9.7b Nov 10, 2003
 * removed --interactive option
 * download all pkgs before processing installs,upgrades, and removals in transaction
 * updated NLS template and en.po
 * updated MD5SUM regex
 * give transaction report prompt for every dist-upgrade (even if no removes or upgrades,
   must have installs, however)
 * updated regex for pkg names, versions, md5, etc
 * when looking up md5 checksum, use the pkg location as well as name and version 
   (in case of duplicate versions)
 * updated regex, yet again, for pkg names, versions, md5, etc
 * updated makefile to gen library files
 * added Polish translation by nixon & s1m0n
 * moved gettext mo files into standard slackware locale directory (/usr/share/locale)

0.9.7a Nov 05, 2003
 * added check for presence of pkg in trans before adding upgrade (during --install)
 * added check for presence of pkg in trans before adding remove (during --remove)
 * added example linuxpackages.net source lines for each slack version
 * added head_request function to return if the named file is the same as the remote file
 * updated is_excluded, to continue loop if regex compile fails
 * return dep failure if one of the deps is excluded
 * added is_excluded check before adding explicit package to upgrade (allowing name and
   version to be checked, instead of just the name during the initial upgrade check)
   This is useful for excluding versions that contain pre or beta with a regex in the
   exclude such as: [0-9\_\.\-]{1}pre[0-9\-\.\-]{1} or [0-9\_\.\-]{1}beta[0-9\-\.\-]{1}
 * changed default ftp user:pass to show slapt-get-user@software.jaos.org
 * added missing commands to uninstall make target

0.9.7 Nov 03, 2003
 * parse package require/dep from PACKAGES.TXT
 * show parsed require/dep data with --show
 * --list now shows pkg_name - pkg_vesion : pkg_description
 * get_newest_pkg now only takes 2 arguments, struct pkg_list and char pkg_name
 * resolves dependencies (recursively) and adds them to the transaction
   using lookup_pkg_dependencies and parse_dep_entry functions
 * make pkg now gzip's the manpage and strips the binary (thanks Jim)
 * added search_transaction function
 * exit on unknown command line switch instead of barking usage info
   and going on
 * added is_required_by function, so --remove pkg also prompts to remove
   packages (recursively) that require it
 * added get_exact_pkg function
 * EXCLUDE in slapt-getrc now supports POSIX and extended regex
   (see example.slapt-getrc or README/FAQ)
 * is_excluded() now takes a pkg_info_t type instead of char pkg name
 * updated documentation
 * added gettext support for easy translation/i18n support
 * --list, --show, and --search output now reports on installed status of pkg
 * dep failure causes package to go into exclude for current transaction
 * added faq concerning proxies
 * added check for installed pkgs when there is no dep conditional
 * added --no-dep to ignore dep check failures
 * bug fixes in dep code, logic updates

0.9.6g Oct 22, 2003
 * updated --help output
 * --interactive now applies to --install as well
 * added "static" make target, hopefully static linked slapt-get works with Slack8.1

0.9.6f Oct 20, 2003
 * download notification now prints out the version and pkg size
 * removed debugging print for dist-upgrade
 * do no unlink bad files (files that failed md5 checksum)
 * added source url to download notice

0.9.6d Oct 20, 2003
 * updated docs
 * reworked parse_packages_txt function
 * fixed possible buffer overflows in parse_packages_txt
 * added more buffer checks in config parser
 * search now searches a packages location field as well
 * --show pkg_name now shows pkg size and uncompressed size
 * transaction report now shows how much will be downloaded
   and how much disk space will be used.
 * --update now shows url for each source download
 * added --dist-upgrade for slackware release upgrades

0.9.6c Oct 15, 2003
 * patch data is now fetched from patches/PACKAGES.TXT instead of
   parsing patches/FILE_LIST
 * set curl user-agent as 'slapt-get'
 * retrieve extra/ package data

0.9.6b Oct 14, 2003
 * fixed bug when removing pkg by base pkg name and removepkg wouldn't find
   entry in /var/log/packages.  Thanks to DanB at mojolin dot com and
   tg at linuxpackages dot net.

0.9.6a Oct 14, 2003
 * fixed issue with allocated strings with --install and --remove
 * fixed --install pkgname --reinstall regression

0.9.6 Oct 13, 2003
 * removed needless check in get_md5sum looking for common slack mirror
   directories.
 * Prompt to upgrade before downloading (thanks kyotou)
 * updated FAQ with dropline question, and upgrade single package question
 * options can now be passed in in any order, so --no-prompt at the end now
   works
 * created struct pkg_list *get_available_and_update_pkgs(void) to search for
   updates and newer available at once, simplified --install and --upgrade
   part of roadmap to package action transactions.
 * implemented transaction engine
 * --interactive option to emulate old upgrade procedure, prompting for each
   upgrade.
 * multiple source support complete.  Linuxpackage integration should be
   working.  slapt-getrc syntax has changed.  Updated documentation
   appropriately.
 * trimmed out download_pkg_list, download_file_list, download_patches_list,
   and download_checksum_list.  Replaced those functions with single
   get_mirror_data_from_source.
 * merged in package update data from filelist into PACKAGES.TXT format,
   so single lookup returns all packages.
 * added excludes to transaction, now shows packages excluded/held back
 * removed more legacy functions since merging package data and updates...
   the new get_available_and_update_pkgs is now gone.
 * pkg_action_install() and pkg_action_remove() now take structure of
   packages for transaction

0.9.5e Oct 10, 2003
 * added a doinst.sh script (generated from the Makefile) to help 
   manage the slapt-getrc.

0.9.5d Oct 09, 2003
 * added initial slack-required for future dependency support
 * added lilo to example slapt-getrc exclude list
 * improved regex within package.h
 * fixed bug with packages containing more than 4 version parts (dvd+rw-tools)
 * moved regex_t stuff into sg_regex typedef
 * added extra error checking
 * formatting updates
 * actually call regfree() for all regex_t
 * introduced a DO_NOT_UNLINK_BAD_FILES macro within include/main.h
 * changed malloc back to calloc (src/package.c, line 423)
 * initial support for PACKAGE REQUIRED: data in PACKAGES.TXT
   this also means we can support LINUXPACKAGES as MIRROR
 * --no-md5 option to ignore md5 check sum of downloaded packages

0.9.5c Oct 04, 2003
 * removed bad free() in get_installed_pkgs()

0.9.5b Oct 02, 2003
 * yet another improvement to pkg version checking, xspace pointed
   out another example of how pkg versions might slip through cmp routine.

0.9.5 Oct 01, 2003
 * fixed pkg name so that slack-desc shows up... wasn't following
   new package naming convention.  Thanks Luke Yelavich <luke@audioslack.com>
 * bug fix... replaced strcmp with cmp_pkg_versions(char *,char *);
   now greater pkg versions are always correctly returned
   Thanks to xspace <xspace@digitalhigh.de>

0.9.4 Sep 29, 2003
 * downloads CHECKSUMS.md5 from mirror
 * md5 sum's each package after downloading (from CHECKSUMS.md5 data)
   utilizing openssl/evp.h
 * pre-download check... won't download twice if md5sum is good
 * error checking updates
 * more verbose messages during operation
 * fixed chdir/mkdir bug in working_dir
 * unlink faulty d/l files/pkgs (failed to d/l or checksum is bad)
 * fixed bug with ftp transfers... connections left open
   some ftp servers complain and deny access after so many connections
 * doc updates
 * install make target now creates /var/slapt-get

0.9.3 Sep 24, 2003
 * default make target doesn't build slack pkg
 * --dist-upgrade becomes target instead of option
 * merged dist-upgrade into --upgrade, --install also
   checks if available pkg is newer than installed
   dist-upgrade removed.
 * Added a FAQ to documentation
 * added error notification when commands fail

0.9.2 Sep 22, 2003
 * renamed to slapt-get
 * documentation updates

0.9 Sep 17, 2003
 * --re-install is now --reinstall
 * code updates

0.8 Sep 07, 2003
 * --remove target now accepts multiple arguments
  ( --remove pkg1 pkg2 pkg3 pkg4 )
 * --upgrade speed improvement (optimizations)
 * --dist-upgrade works for --upgrade
 * -ansi compatible now as well as -pedantic
 * introduced struct pkg_list, updated funcs returning pkg_list **
 * --upgrade now prompts before upgrading the package
 * --no-prompt option for overriding --upgrade prompt
 * --re-install option to install even if already installed
 * added EXCLUDE option in slapt-getrc (to exclude pkgs)
 * --ignore-excludes for --upgrade
 * is_excluded() returns false if EXCLUDE= not defined
 * added slackpkg make target

0.7: Aug 28, 2003 
 * now creates directories within WORKINGDIR for each packages location
  (patches/packages/kde, slackware/a/ for example)
 * --install target now accepts multiple arguments
  ( --install pkg1 pkg2 pkg3 pkg4 )
 * --simulate option (do not attempt to install, do not download)
 * --version option

0.6: Aug 27, 2003
 * fixed memory leaks
 * --download-only flag so install/upgrade command not ran

0.5:  Aug 26, 2003
 * --upgrade now works
 * install will install most recent version (including available updates)

0.4: Aug 24, 2003
 * now parsing PACKAGES.TXT instead of FILELIST.TXT
 * --show to show description of packages

0.3: Aug 22, 2003
 * --search with POSIX regular expressions

0.2: Aug 18, 2003
 * --list to list packages
 * --installed to view currently installed packages

0.1: Aug 15, 2003
 * initial version

