======================================================================
Version 0.16.0, by Aleksey Cheusov, Mon, 27 May 2024 23:21:05 +0400

  System-wide NIH config defaults to @SYSCONFDIR@/nih.conf.
  User's NIH config defaults to $HOME/.nihrc.
  Directory for history files defaults to @VARBASE@/cache/nih/history.
  Binary packages cache directory defaults to @VARBASE@/cache/nih/packages.
  pkg_summary(5) directory defaults to @VARBASE@/cache/nih/summary
  Obsolete ~/.nih directory

  nih:
    - Fix "nih history" on Linux.
    - On Y/n question consider <RET> as "No".
    - update man page for "refresh" subcommand.
    - Allow "history", "status" and other commands to unprivileged user.
    - Create tiny bin_summary only once at the time of "nih refresh -b".
    - Add support for unprivileged use of subcomands "search", "info", "list".

  nih install:
    - Add option -W.

  nih clean-cache:
    - Fix help message.

  nih remove:
    - Fix issue when binary repository is not available.

  nih deps:
    - Fix help message (mark -b as the default).

  nih.conf:
    - Add example for getting URL to packages from pkg_install.conf(5).

  nih.default.conf:
    - Update REPOSITORY to https://cdn.NetBSD.org ...
    - Add new formatter "show_summary_NPC".
    - Adapt show_summary_BC formatter for rpm package numbers.

  nih mark:
    - Show error message when no PKGBASEs were specified.

  pkg_status:
    - Improve temporary directory removal.

  pkg_update_plan:
    - Add option -W for ignoring warnings.

======================================================================
Version 0.15.2, by Aleksey Cheusov, Fri,  1 Dec 2023 15:15:10 +0400

  Fix default REPOSITORY for Darwin

  First, try to download SHA512.bz2, and then SHA512.gz

======================================================================
Version 0.15.1, by Aleksey Cheusov, Thu, 30 Nov 2023 01:40:06 +0400

  Fix "nih -h" and "nih -V" broken in nih-0.15.0

  Update man page and TODO

======================================================================
Version 0.15.0, by Aleksey Cheusov, Mon, 27 Nov 2023 16:32:18 +0400

  nih remove:
    - now this command works correctly without external package
      repository

  nih leaf:
    - new option "-u" for printing user-installed leaf packages

  nih status:
    - option -s has been renamed to "-p"

  Primary extension for pkg_summary(5) is now "gz"

  Updates in man.1

  nih.default.conf:
    - update default URLs to package repositories

  root Makefile:
    - +PKG_DBDIR defaults to ${PREFIX}/pkgdb

======================================================================
Version 0.14.1, by Aleksey Cheusov, Sat,  7 Nov 2015 02:23:23 +0300

  Fix in pkg_update_plan (nih install)

======================================================================
Version 0.14.0, by Aleksey Cheusov, Thu,  5 Nov 2015 23:45:38 +0300

  All messages shown to user are sent to stderr

  nih:
    - CACHEDIR is initialized in nih.default.conf (thanks to wiz@).
    - IPv4-only for download is not the default anymore (thanks to gdt@).
    - Binary package checksums are kept in pkg_summary.txt.
    - Preliminary support for multiple repositories.
    - Clean-ups for function "fetch".
      It just runs either fetch_wget or fetch_ftp and does nothing else.
    - Atomic update for pkg_inst_summary.txt was implemented
      (thanks to wiz@ for pointing out!).

  nih history:
    - Option -p was introduced.

  nih list:
    - Fix: bug in -f (unexpected line: `Updating pkg_inst_summary...`).

  nih remove:
    - "nih remove" without arguments uninstalls leaf packages.
      This is correct according to the documentation.
      "nih install" works the same way (thanks to wiz@ for the report).

  nih install:
    - Missing dependencies are fixed in a different way.
      When nih finds the missing dependency it tries to install
      the dependency and then update the installed package.
      This is more correct way to fix consequences of 'pkg_delete -f'.
    - Fix: the rule "do not change PKGPATHs of installed packages"
      was broken in 0.13.0 (thanks to wiz@ for the report!).
    - Fix: packages are no longer installed as a dependency by mistake.
    - Fix: flag "automatic" is unset correctly
      ("pkg_add -UD" does not change it).
    - Fix: "fake" package creation.
    - New option -w was added for ignoring non-existing package.
    - New option -f was added for getting package list from a file.
    - If "package could not be found", nih exits with non-zero status.
    - Configuration variables yes_install and yes_remove_pkgs were removed.
      New option -Y was added as a replacement (See NIH_OPTS for details).
    - Unnecessary variable "cksums" was removed.
    - Better explanation for update plan build failures.

  pkg_update_plan:
    - New option -w was added for the same purpose as in "nih install".
    - Man page was updated.

  nih.1:
    - A number of typos were fixed (thanks to wiz@).
    - All configuration variables were documented.

======================================================================
Version 0.13.0, by Aleksey Cheusov, Sun, 30 Nov 2014 03:55:27 +0300

  NIH_<subcommand>_OPTS variables were introduced. With their help one
  can configure EVERYTHING from config file.

  NIH_OPTS config variable was also introduced.

  nih mark:
    - new option -n was added.

  nih install:
    - Option -D doesn't remove temporary directory.
    - New options -v and -V were added.
    - NO_REQPROV_CHECK and NO_REQPROV_CHECK config variables were
      removed.  Use NIH_INSTALL_OPTS instead.

  nih uninstall:
    - does not need "nih refresh -b".
      Thanks to Andrey N. Oktyabrski for the report!

  Fixed:
    - Finding a correct dependency now works correctly if dependency
      is ambiguous.
    - Unicity problem in "nih install PKGNAME" was fixed.
    - Analysing file conflicts now works correctly with files
      containing a space character.
    - Fix in saving ~/.nih/installed_* files
    - Check for version emptyness in "fake packages" was added.

======================================================================
Version 0.12.0, by Aleksey Cheusov, Tue, 14 Jan 2014 03:22:19 +0300

  Most important parts of pkg_grep_summary, a part of
  pkgtools/pkg_summary-utils, was reimplemented in C. As a result
  "nih {search,info,meta,leaf,install,remove,deps}" should work faster.

  nih install:
    - if pkg_update_plan(1) fails, nih(1) exits with pkg_update_plan's
      exit status.
    - packages to be installed or removed are output in sorted order.

  nih {search,meta,info}:
    - "nih meta" now defaults to -1 mode (internally).
    - documentation for -1|-3|-9 ads added for "nih {info,meta}" commands
    - "nih info" now defaults to -3 mode.
    - "nih {search,meta,info}" now work correctly with -{o,i} options
      if ~/.nih/pkg_summary.txt is absent.
    - new option -l was added to "nih {search,info}" that outputs
      package file list.

  Summary for installed packages is cached in
  ~/.nih/pkg_inst_summary.txt. "nih {refresh,search,info,meta,deps,list} -i"
  use this file and update it when necessary.

  nih refresh:
    - Option -P was added for fully rescanning pkgsrc tree.
    - The default value for PKGSRCDIR is not determined at build time
      anymore.  As a result "nih refresh -p" does not try to access
      /tree/pkgsrc used by bouyer@ who builds official NetBSD binary
      packages. Now PKGSRCDIR defaults to /usr/pkgsrc.
    - "nih refresh -p" shows progress counter (the number of scanned
      packages) unless -m is in PSS_OPTIONS.
    - option -i was added that updates summaries for installed
      packages (~/.nih/pkg_inst_summary.txt).

  nih remove:
    - does not try to create $CACHEDIR and "cd" to it.

  nih list:
    - was completely reimplemented and simplified.
    - new option -p was added that outputs pkgsrc tree packages.

  nih deps:
    - new options -b and -p were added for working with binary
      repository and pkgsrc scanned packages
      (pkg_summary.txt ad pkg_src_summary.txt respectively)
    - option -1 was added that outputs direct dependencies or dependents.

  nih/config:
    - better conversion from "uname -r" to repository URL.
    - REPOSITORY for SunOS defaults to smartos.org.

  Support for summaries with no PKGPATH, e.g., compat50-5.1.tgz, was
  added.

  Option -I for "list", "deps', "meta", "info" and "search" was
  renamed to -i. Option -I is supported for backward compatibility.

  package_search.pdf was updated, fixed and improved.

======================================================================
Version 0.11.0, by Aleksey Cheusov, Fri,  8 Mar 2013 15:56:56 +0300

  nih install:
    - Order of packages does matter
      ("nih install emacs- editors/emacs22" is correct)
    - Option -P and new config variable NO_REQPROV_CHECK were added
    - Option -L and new config variable NO_REMOVE_LEAVES were added
    - "Nothing to be done" message is output if everything is up-to-date
    - Download failures and cksum failures are handled differently
    - Handling CONFLICTS between installed packages and packages to
      install are handled differently. Now package splits and similar
      problems are resolved with a help of "fake" packages. Fake
      packages are always marked for updates.
      New option -f for "nih list" was added in order to list them
    - Improvemed download progress messages

  nih uninstall:
    - Option -L was added, see "nih install -L"
    - Options -p and -P were added. See "nih install"

  nih leaf:
    - Command was reimplemented and simplified
    - Option -t option was removed
      pkg_status doesn't have -ltRn options anymore
    - Option -r was added

  nih search:
    - Option -I uses pkg_digger_installed provided by pkg_summary-utils

  pkg_update_plan:
    - Fixes in error messages

  nih search|meta|info:
    - Option -p was added. With a help of it one may search in
      pkgsrc packages offline. Also see "nih refresh -p" and man page

  Now nih works correctly if REPOSITORY is a directory

  Fixes for shell's "trap" command.

======================================================================
Version 0.10.1, by Aleksey Cheusov, Sun, 26 Aug 2012 18:38:19 +0300

  Fix gawk warning message appeared on Linux and other systems

  nih install:
     - commands like 'nih install _ package-' now works correctly
     - much better messages are output when update plan failed to build
     - option -p was added in order to skip REQUIRES/PROVIDES checks

  'nih status -Aa' doesn't output status of uninstalled packages

  Fixes and improvements in nih.1

======================================================================
Version 0.10.0, by Aleksey Cheusov, Tue, 15 Nov 2011 23:52:35 +0300

  A lot of improvements and grammar fixes in manual page
  by Nikolai Krot.

  Support for marker "keep" was implemented.
  (nih mark -k|-K, nih list -k, nih install).
  "keep" marker means that a package can't be updated by "nih update"
  command.  This marker is particularly useful to mark packages that
  the user compiled manually from pkgsrc.
  Original idea belongs to Debian APT.

  nih install:
    - Options -r and -R options were added
      for installing dependencies or dependent packages.
      Sometimes they may fix mysterious segfaults.
    - Support for package suffix `/' was added that means "remove
      update". See the manual page for details.
    - A virtual package "_" was implemented that means "all packages"
      for which update is available".
    - Fixed: bug in REQUIRES/PROVIDES problem resolver.  Now packages
      that solve REQUIRES/PROVIDES problems are marked as installed by
      user.  Thanks to Jan Smydke for the report.
    - Library files including system libraries that packages require
      through REQUIRES field are also checked during update plan
      generation.

  fix: $CACHEDIR/All directory is created only when it is really necessary.

======================================================================
Version 0.9.1, by Aleksey Cheusov, Sat, 10 Sep 2011 00:46:02 +0300

  fix in nih deps: option -t now works correctly

  fix: ~/.nih/config has higher priority than @sysconfdir@/nih/config
       Thanks to Jan Smydke for the report!

  fix: Create "$CACHEDIR/All" on startup.
       Thanks to Zafer Aydogan for the report.

  nih.default.conf:
    - REPOSITORY defaults to ftp://ftp.NetBSD.org/...

  Default nih.conf:
    - One more example of use

======================================================================
Version 0.9.0, by Aleksey Cheusov, Sun, 28 Aug 2011 15:29:01 +0300

  Support for "try_out" marker was added. New options for subcommands:
  nih install -t, nih remove -t, nih list -t and nih mark -t/-T.
  See manual page for details.

  nih install:
    - after downloading binary packages it checks for common files in
      PLIST fields. If unregistered conflicts are detected, nih exits
      with error. This can be disabled using NO_PLIST_CHECK variable.
    - New option -a was added for running pkg_add(8) directly.

  nih history:
    - "automatic" and "try_out" flags are registered and output.
    - outputs a warning message if NO_INSTALLED_COPY is set.

  nih install|remove:
    - New option -l was added for keeping auto-removable leaf
      packages.

  nih verify:
    - New option -s was added for comparing running OS and OS packages
      were built for.

  nih:
    - New global option -s was added for specifying path to
      pkg_summary(5).

  ~/.nih/installed_* files are compressed by bzip2 at creation time.

======================================================================
Version 0.8.0, by Aleksey Cheusov, Sat, 30 Jul 2011 13:38:05 +0300

  nih remove:
    - FIX: -n now works correctly
      Affected versions: 0.7.1-0.7.2

  nih install:
    - FIX: "nih install -n" doesn't change "automatic" flag anymore
    - new suboption -k for continuing download after failures
    - BUILD_DATE field is included to installed_*.txt files

  New command "nih audit" for checking packages for vulnerabilities

  New command "nih history"

  nih mark:
    - new suboption -A and -U, synonyms to -u and -a respectively
    - if neither -a, -A, -u or -U were specified, markers are output.

  nih list:
    - new suboption -b for outputting packages in the repository
    - new suboption -r for outputting raw package summaries

  nih meta:
    - new suboption -r for outputting raw package summaries

  nih refresh:
    - error message is output when download fails

  Minor improvements in "nih -h" and manual page

  Path to ftp(1) defaults to /usr/bin/ftp on NetBSD, FreeBSD, OpenBSD
  and DragonFlyBSD.  On other systems it defaults to tnftp from
  pkgsrc.

  FTP_OPTIONS and WGET_OPTIONS default to "-4" for using IPv4 only.

  New configuration variable IGNORE_CKSUMS was added in order to
  ignore SHA512.txt absent in some repositories.

======================================================================
Version 0.7.2, by Aleksey Cheusov, Mon, 13 Jun 2011 22:44:31 +0300

  Fix for "Package xxx is not found" problem:

       0 > nih -y install editors/emacs20
       ...
       0 > nih -y install editors/emacs22 emacs-
       Package editors/emacs22 is not found
       1 >

======================================================================
Version 0.7.1, by Aleksey Cheusov, Tue, 17 May 2011 00:19:50 +0300

  Subcommand "list" was implemented. See manual page for details.

  Output format of "install|update", "meta" and "list" subcommands can
  be changed by user in configure file.

  "pkg install" and "pkg_update_summary".
  Prefixes was replaced with suffixes.
    prefix -    =>   suffix -
    (none)      =>   suffix -- (remove with dependent packages)
    prefix +    =>   suffix +
    prefix ?    =>   suffix _
    prefix *    =>   (removed)

  Clean-ups in "nih install" output. New default format of the output.

  Fix: "nih clean-cache" fails if there are no binaries in cache
  directory.

  Program pkg_status becomes a part of pkgnih. pkg_status package is
  no longer needed.

  "nih remove" was reimplemented using "nih install" =>
  "pkg_delete -A" is not used anymore =>
  automatically installed leaf packages are removed correctly.

  Thanks to Zafer Aydogan for his testing and a lot of suggestions!

======================================================================
Version 0.6.4, by Aleksey Cheusov, Tue,  5 Apr 2011 01:03:20 +0300

  @prefix@/sbin/pkg_add is used instead of just pkg_add.
  This fixes a problem under NetBSD (with default PATH) where
  /usr/sbin/pkg_add doesn't support flag -D needed by nih.

  ~/.nih is created in the very beginning.
  This fixes 'cd: ~/.nih: No such file or directory' problem
  on fresh systems.

======================================================================
Version 0.6.3, by Aleksey Cheusov, Sat,  2 Apr 2011 00:51:22 +0300

  pkg_update_plan:
    - Better algorithm for resolving devendencies.  First, DEPENDS and
      CONFLICTS are analysed. Then PROVIDES/REQUIRES.  This fixes the
      problem with multiple packages with different name that PROVIDES
      the same shared library.
    - Fix (unicity problem)
    - Better error message for "l:" failures

  nih:
    - Fix (package with highest version per (PKGPATH, PKGBASE) was not
      detected correctly in some situations)

======================================================================
Version 0.6.2, by Aleksey Cheusov, Sun, 20 Mar 2011 16:14:28 +0200

  Workaround for buggy /bin/sh on DragonFly and FreeBSD<=7.n.
  On these systems  the following code
    set -e; if eval false; then ...; fi; echo ok
  doesn't work properly. Due to this problem nih almost always fails.
  On these two platforms you also need pkg_online-client>=0.12.1
  for 'nih search -o', 'nih info -o' and 'nih meta -o'.

  Another bug was fixed in pkg_update_plan. It caused "unicity
  problem" when package upgrade is requested.

  'pkg_add -D' is used for installing packages in order to temporarily
  (during installation process) ignore unsatisfied dependencies.

======================================================================
Version 0.6, by Aleksey Cheusov, Mon, 14 Mar 2011 15:18:05 +0200

  Bug in handling flag "automatic" was fixed in pkg_update_plan(1).
  Update pkgnih to 0.6 is recomended!

  etc/nih/conf:
   - Default settings have been moved from share/examples/nih/nih.conf
     to lib/nih/nih.default.conf. Almost empty nih.conf is installed
     to share/examples/nih/nih.conf. Please update your existing
     etc/nih/config according to share/examples/nih/nih.conf.
   - Two new variables were added to nih config file: FTP_OPTIONS and
     WGET_OPTIONS for specifying extra arguments for ftp(1) or
     wget(1) commands.
   - variable PKG_SUMMARY_URL has been renamed to REPOSITORY
   - Default value for variable REPOSITORY is correct for DragonFlyBSD
     and Minix.

  New command "nih meta" was implemented that outputs meta packages.
  See the manual page for details.

  Since this release "nih install" accepts file names of binary
  packages in additiona to PKGBASEs, PKGNAMEs and PKGPATHs, for
  example
       # nih install    /path/to/file/binary-1.2.3.tgz
       # nih install   +/path/to/file/binary-1.2.3.tgz
       # nih install '*'/path/to/file/binary-1.2.3.tgz
       # nih install '?'/path/to/file/binary-1.2.3.tgz

  Manual page for pkg_update_plan was added.

  nih.1 was updated

  "nih install" uses field FILE_NAME if it is provided by
  pkg_summary.txt

======================================================================
Version 0.5, by Aleksey Cheusov, Wed, 16 Feb 2011 23:38:20 +0200

  Yet another bug in pkg_update_plan introduced in 0.3.0
  was fixed (packages were marked as auto-removable incorrectly).

  Better algorithm for detecting potential problem was
  implemented. Now it checks PROVIDES/REQUIRES consistency and uses
  this information for automatically resolving problems.

  Also, packages with unchanged version but inconsistent changes in
  CONFLICTS/DEPENDS/PROVIDES/REQUIRES are now handled correctly.

  Minor fixes and updates in documentation.

======================================================================
Version 0.4.1, by Aleksey Cheusov, Sun, 13 Feb 2011 00:54:56 +0200

  Fix bug in pkg_update_plan introduced in 0.4

======================================================================
Version 0.4, by Aleksey Cheusov, Fri, 11 Feb 2011 16:40:36 +0200

  Fix bug in pkg_update_plan
  (extra -pkgname were needed for upgrade).

  nih status:
    - New option -B was added for considering packages different
      if their BUILD_DATE differ.

  nih install:
    - New option -B was added for considering packages different
      if their BUILD_DATE differ.
    - New option -D was added for debugging purposes.

======================================================================
Version 0.3.1, by Aleksey Cheusov, Sun, 16 Jan 2011 23:01:21 +0200

  Fix in generating an "update plan".

  Command "nih info" was added. It shows an information about packages
  in the repository or about installed packages. See a manual page for
  details.

  nih clean-cache:
    - New option -i was added that takes into account
      ~/.nih/installed_*.txt files.

  nih deps:
    - Option -z has been replaced with -I. By default, pkg_summary.txt
      is analysed, not installed packages just like in "nih search"
      and "nih info".

  "nih verify", "nih status -s" and other commands that don't require
  pkg_summary.txt now work normally without "nih refresh" and even
  without binary repository (without pkg_summary.txt) at all.  Thanks
  to Andrey N. Oktyabrski for pointing out about these problem.

  Unless NO_SUMMARY_COPY variable is set in configuration file,
  downloaded pkg_summary.txt and SHA512.txt files are copied to
  "pkg_summary_YYYYMMDD_hhmm.txt" and "SHA512_YYYYMMDD_hhmm.txt"
  respectively, thus allowing to restore and use them in the future.

  Unless NO_INSTALLED_COPY variable is set in configuration file,
  ~/.nih/installed_YYYYMMDD_hhmm.txt file containing a list of
  installed packages before removal/installation is created thus
  allowing to restore the previus state of the system.

  yes_* variables were introduced in config file for always answering
  "Yes" to particular questions.

  fix: "nih search -r" without -3|-9 options doesn't fail with strange
  error messages anymore.

  Minor fixes in nih.conf

======================================================================
Version 0.2.0, by Aleksey Cheusov, Mon,  3 Jan 2011 19:01:56 +0200

  First publicly available release.
