FIX: Do not use packages with non-empry PKG_FAIL_REASON for building
a dependency graph if there are ones without such marker. This
unbreaks rare failures of bulk builds.
Changes in dependency graph generation. Old algorithm leads to too
many failures caused by weak [BUILD_]DEPENDS in pkgsrc. Old
algorithm is available using "distbb -m1".
rmd160 and sha512 checksums are generated for packages in pkg_summary(5).
A number of sanity checks and tips for packagers have been
implemented which are a part of final report.
stage_report has been renamed to stage_send_report
New script pkg_summary2build_deps for building dependency graph
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
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.56.0, by Aleksey Cheusov, Sun, 28 Aug 2011 12:05:00 +0300
pkg_cmp_summary:
- New option -O was added for specifying fields for
output without using them for comparison
Version 0.55.0, by Aleksey Cheusov, Sat, 27 Aug 2011 20:14:53 +0300
pkg_lint_summary:
- New option -f option was added that checks files in PLIST
fields given on input and warns about files common for several
packages.
- New option -p option was added for specifying prefix directory
used by option -l.
- New option -n was added that analyses PLIST and CONFLICTS
fields in input summaries and outputs unregistered conflicts.
- New option -s was added that checks OPSYS, OS_VERSION and
MACHINE_ARCH fields given on input and warns if they differ from
that of running system (uname -srm).
pkg_cmp_summary:
- New options -a and -A were added for specifying fields for
comparing in addition to package versions.
- New option -E was added. It works together with -A and changes
its output.
- Options -c and -b were reimplemented using more generic -a.
- Examples section was added to pkg_cmp_summary.1
pkg_bin_summary:
- New option -e option was added for effectively using
pkg_bin_summary with xargs (xargs -r is not portable).
- New option -k was added for enriching binary package summaries
with checksums using algorithms supported by digest(1)
pkg_digger_backend:
- Mixed -1|-3|-9 options are now handled correctly.
pkg_summary2leaves:
- When no files are given as arguments (stdin),
pkg_summary2leaves outputs an error message.
Regression tests have been reorganized. One test - one file.
Some manual pages were updated and improved.
Problem analysis from Anthony:
On Wednesday, at 23:52, Anthony Mallet wrote:
> # rm -rf ~tmp && mkdir ~/tmp
> # pkg_add -K ~/tmp/var/db/pkg -p ~/tmp /usr/pkgsrc/packages/All/digest-20080510.tgz
> # pkg_add -U -K ~/tmp/var/db/pkg -p ~/tmp /usr/pkgsrc/packages/All/digest-20080510.tgz
> pkg_delete: Couldn't remove package directory in `/home/tho/tmp/var/db/pkg/digest-20080510'
> Also, the dir var/db/pkg/digest-20080510.xxxxxxx is never cleaned.
>
> The problem apparently is that pkg_delete finds some stalled NFS entries
> (.nfs*) in the var/db/pkg/digest-20080510 dir, so it does not delete the
> directory. Is this due to pkg_add not correctly closing file descriptors before
> exec'ing pkg_delete? For instance, I really don't understand the logic in
> check_already_installed() (add/perform.c:375) regarding the open() of +CONTENTS
> which is almost never closed (and never used as well...). Shouldn't this be
> closed before running pkg_delete?
ktrace shows that the +CONTENTS file is open() by pkg_add, I believe this is in
check_already_installed(), add/perform.c:381. Then pkg_delete is run and when
it comes to deleting the pkgdir entry, it finds that .nfs file and aborts.
Bump version to 20110805
Allow "@" as a character for directories in "${WRKSRC}". This stop bogus
warnings for the "phpmyadmin" package which contains directory names
like "locale/sr@latin/LC_MESSAGES".
Change suggested by Thomas Klausner in private e-mail.
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.
pkg_micro_src_summary:
- support for PSS_SLAVES=nnn was added
pkg_digger:
- workaround for buggy shells (set -e; if eval false; ...)
Regression tests were updated
Fix for "Package xxx is not found" problem:
0 > nih -y install editors/emacs22
...
0 > nih -y install editors/emacs20 emacs-
Package editors/emacs20 is not found
1 >
(This avoids false positive reports in some circumstances, such as a pair
of depends on e.g. foo-2.0 and 2.0.3, and also for more complicated forms
of version numbers.)