Import libfetch from pkgsrc, which remains authoritive.

libfetch is a high-level interface for retreiving and uploading files
using URLs. Currently implemented are local file access, FTP, HTTP and
basic HTTPS support, upload only for local files and FTP.
Import pkg_install-20080916. Major changes include:
- vulnerability check backend moved into lib for reuse in pkg_add
- add pkg_install.conf parsing for common configuration of the various
  pkg_install components
- fix crashes related to uninitialised PLIST structures
- check explicitly if the required files in pkgdb are present, fixing
  issues with ~empty left-over directories
- improve hardlink handling in pkg_create using the libarchive link
  resolver
- pkg_delete with -P overwrite now updates the pkgdb correctly
- silence warning about empty /var/db/pkg, it provides no value
- pkg_info uses libfetch for remote locations and works without
  temporary files, speeding up operation a lot
pkg_install-20081002:
Explicitly cast time_t values to long before printing them.
Reported by bjs.
Update to libfetch-2.17. Fix a bug in the line buffering code to not
drop output if the server actually send more than one line.
Import libfetch-2.19 from pkgsrc:
- fix bug in URL quoting
- man page improvements
- remove passive mode flag, add flag to force active mode and fallback
from passive to active on syntax errors automatically
Update to libfetch 2.20: Allow HTTP auth to be provided in URL.
Import pkg_install-20090201. From the branch merge in pkgsrc:
- DB support is always included from libnbcompat if needed
- pkg_view and linkfarm are not installed any more; they are not moved
into the attic yet, so they can easily be installed as separte package
- common configuration file to customise the behavior of various
components; this supersedes the old audit-packages.conf
- support for PKSC7 signatures (using X509 certs) and GPG signatures for
packages in a secure way. See pkg_admin(8) for how to create them and
pkg_install.conf(5) for the options to use them
- audit-packages and download-vulnerability-list are wrapper scripts
  around pkg_admin. They try to mimic the classic options if used
  sanely.
  "pkg_admin audit" is now an order of magnitude faster than before
- pkg_add uses libarchive and libfetch instead of external ftp and tar:
  - progress bar is currently missing for downloads
  - "pkg_add -" is no longer supported
  - no adhoc check for conficts between dependencies and already
    installed packages
  - "pkg_add -s" has been replaced with an option in pkg_install.conf,
    verification of plain detached GPG signatures is no longer supported
  - optional check for vulnerabilities before adding a package
  - if /var and /usr/pkg are on different fileystems it is twice as fast
    now
  - conflicts due to overlapping plists are checked before installation
  - pkg_add no longer plays with the process limits
  - pkg_add and pkg_delete have a new destdir option; scripts have to
    either be modified to use PKG_DESTDIR or should be disabled
- pkg_add -u for now can't be used to update to the exact same version
- internal "rm -rf" and "mkdir_p" code
- all memory allocation failures are not explicitly fatal
- if a file is not removed due to a failed checksum, still remove the
  entry from pkgdb
Import pkg_install-20090214:
- pkg_add:
  - doesn't crash on missing +BUILD_INFO
  - for -u skip the package it will update when l oking for conflicts
  - don't fail in libarchive when trying to use directories as packages
- pkg_admin:
  - stricter argument checking for audit family of commands
  - fetch-pkg-vulnerabilities -u will only update if the remove file
    is newer
- pkg_delete:
  - fix PKG_METADATA_DIR passed to deinstall script
  - when using -d, ignore @dirrm
  - fix -d code to unregister the correct pkgdb entry
- pkg_info:
  - fix crashes on incomplete packages
Update to libfetch-2.22:
- Support for conditional fetch
- Allow correctly overwriting fetchRestartCalls from signal handlers by
  making it volatile
- Explicitly document that the size of struct url can increase.
Import pkg_install-20090225:
- improve diagnostic for audit-packages wrapper
- new pkg_delete code:
  - topologocial ordering of packages
  - bails out before removing anything if it knows that it will run into
    problems later
  - new option -A: remove automatic installed packages that are no
    longer used (e.g. pkg_add foo; pkg_delete -A foo should not alter
    the list of installed packages)
- less chatty pkg_info for -Q
Import pkg_install-20090228:
- pkg_add:
  - more consistent PKG_PATH processing
  - support setting PKG_PATH in pkg_install.conf(5)
  - don't crash when installing package with conflicts
  - fix updating packages with explicit +PRESERVE
  - document the rules for finding packages more clearly
- pkg_info:
  - don't complain about PKG_PATH, it is not used
  - sync documentation with reality
Import pkg_install-20090302:
- plug some file descriptor leaks
- add pkg_info -r
Import pkg_install-20090307: Fix a file descriptor leak in pkg_add.
Import libfetch-2.23:
Don't leak file descriptors when iterating local directories or checking
for if-modified-since on local files.
Import pkg_install-20090309:
Fix double free in pkg_info.
Reimport libfetch-2.23 from pkgsrc, at least one change was lost.
Import pkg_install-20090406:
Remove premature return that broke dependency tracking for pkg_add -u.
Fixes PR 41143.
Import pkg_install-20090424:
Make pkg_delete -d the default behavior, remove the option.
Remove pkg_create -R support (reorder @dirrm entries).
Introduce new plist command @pkgdir, which makes pkg_add add
this directory if it doesn't exist already and pkg_delete remove it
only if no other package has a @pkgdir entry for it. Otherwise
directories are pruned when the last file or directory in them is
removed. @dirrm is now a pure hint, if the directory doesn't exist, it
will be silently skipped.
Import pkg_install-20090425:
Add logic to evaluate license conditions. As frontend for pkgsrc,
pkg_admin gets two new commands (check-license and
check-single-license), which can be used to evaluate a given condition.
pkg_add will be changed to honour licenses at a later point.
Import pkg_install-20090513:
- Make compression type selection in pkg_create optionally explicit.
- PREV_PKGPATH / SUPERSEDES