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.)
Key features:
- several packages can be built at the same time on different
machines or chroots
- good design ;-)
- flexibility
- compactness
- no limit on a number of "slave" machines and/or chroots
- fault tolerance, e.g. failures of slave hosts is not a problem
- nice logging
This is a package manager for pkgsrc.
Available commands:
nih help - Display help message
nih refresh - Download pkg_summary and SHA512 files
nih install - Install or update packages
nih uninstall - Uninstall packages
nih verify - Verify packages integrity
nih status - Show status of installed packages
nih info - Show information about packages
nih meta - Output available or installed meta packages
nih search - Powerful search in packages
nih leaf - Output or remove autoinstalled leaf packages
nih list - List packages
nih mark - Mark packages
nih deps - Show dependencies
nih clean-cache - Clean-up cache directory with binaries
Every separate field (PKGPATH, PKGNAME, COMMENT etc.) may be queried
separately and multiple fields may be queried too. A lot of search
strategies are available. Set of fields and search strategies may
very depending on your server configuration. Search in multiple
"repositories" is supported too, e.g. search in binary repository
or in pkgsrc source tree.
Communication protocol is a well known dictionary protocol described
in RFC-2229. Server may run dictd or any other dictionary protocol
server. For dictd see http://www.dict.org and
http://sourceforge.net/projects/dict
pkg_online has minimal amount of things specific to pkgsrc and can
easily be adapted to any other packageing systems.
Of course it is based on pkg_summary-utils ;-)
pkg_list_all_pkgs - list (in PKGPATH form) all packages in pkgsrc tree
pkg_src_summary - create a full pkg_src_summary
for given (in PKGPATH form) packages
pkg_bin_summary - creates a summary for binary or installed packages
pkg_micro_src_summary - create a micro pkg_src_summary
for given (in PKGPATH form) packages
pkg_cmp_summary - compare two summary files, i.e. packages
are compared by their versions
pkg_grep_summary - grep the summary using AWK expression
pkg_digger - very powerful package searcher
pkg_digger_backend - pkg_summary.txt backend for pkg_digger
pkg_update_summary - updates pkg_summary(5) by analysing the
modification
time of binary packages and pkg_summary(5) file
pkg_update_src_summary - efficiently updates pkg_src_summary for all
packages in pkgsrc tree
pkg_summary4view - convert a summary file to human readable format
pkg_refresh_summary - output an information about latest/newest version
of packages
pkg_cleanup_distdir - remove old unused distfiles
pkg_uniq_summary - filter out repeated package summaries
pkg_summary2deps - summary to dependency graph converter
pkg_subgraph_deps - analyses dependency graph given on input
pkg_lint_summary - sanity checks for summaries
pkg_summary2leaves - output leaf packages
20110306
Moving to SF.net
Check for mark_as_automatic_installed() return code
20110301
pkgin can now upgrade pkg_install with user's approval
20110228
url_stat's size is declared as off_t, will be > SSIZE_MAX on
32 bits systems. Added a fix for this.
20110227
Added -P, print package version instead of globs in sd, srd, sfd
Added warning for repositories with 0-lenght FILE_SIZE
Added -V (verbosity) flag
Moved integer flags to uint8_t
-D provides the previous behaviour of creating patches in $WRKDIR/.newpatches
-d dir specifies the directory where the patches will be created.
Requested by Aleksey Cheusov for read-only pkgsrc checkouts.
Fix minor bugs while here.
Bump version.
20110207
Replaced naive repository arch check by MACHINE_ARCH check
20110206
Bump to SQLite 3.7.5
20110205
Added statvfs64 support
Redirect stderr to logfile while pkg_{add,delete}
20110204
Feature request: -F / force-reinstall
Feature request: PR 43049
Generated repositories.conf for NetBSD, DragonFly BSD and MINIX
20110130
Merged 0.4.0 to HEAD
MINIX patches from Gautam are now upstream
Re-added download-only
Makefile.in / configure.ac cleanup
Integrated some of bapt's patches
- chroot
- bandwidth calculation
20110122
pkgin 0.4.0
SQLite "Amalgamation" version is now part of the tree,
No more databases/sqlite3 dependency needed
It is based on ancient bsd.prefs.mk and not works as expected for SUA,
because all SUA (5.2, 6.0 and 6.1) have libc.so.5.2 (and also old version).
Moreover shlibname base OS version was introduced to speed up to avoid invoking
`uname', but in this script, `uname' always will be invoked.
Smarter pkgdiff, doesn't create chunks that are added automatically
by the pkgsrc infrastructure (configure:exit instead of regenerate,
Makefile: localedir).
mkpatches: patch file names now contain the path to the file and its name
per discussion on tech-pkg June 2010.
Also, the files are created directly in the patches/ directory; backups
are saved as patches/patch-foo.orig.
patchdiff: now compares patches/patch-foo with patches/patch-foo.orig;
if they only differ in non-essential parts, patchdiff reinstates the
original patch to keep commits less noisy.
- Go back to manual installation to avoid problems on unprivileged
NetBSD installation. This fixes PR pkg/44415 by Hauke Fath.
- Don't install "rpm2pkg.cat8" any more as it is not really useful.
- Major overhaul of the source code to make maintenance and support
for new compression formats easier.
- Use "liblzma" instead of "xzcat" for dealing with LZMA compressed RPMs.
Drop unnecessary dependences on "gettext-lib" and Berkeley DB. Neither
of them have been necessary when this package stopped depending on the
"rpm" package.
Approved by Thomas Klausner.
- Use "xzcat" instead of "lzcat". This package now doesn't depend on the
"archivers/xz" package under NetBSD-current because "xzcat" is part of
the base distribution.
Set PKGNAME_REQD to give underlying make processes a chance to set
options derived from the package name. For example, the appropriate
version of Python can be derived from the package name (so, when
building py25-foo, use python-2.5, not python-2.6). Specifically,
MAKE_SET_VARS='PKGNAME_REQD=${pkg}-*'
From Alan Barret via pkgsrc-users@.
Sometimes, the set of packages to be replaced ($REPLACE_TODO) does not
have any members which are installed (and hence in $TSORTED). This
caused the loop over $TSORTED to not find any packages to replace.
The check for not having found one was missing, resulting in the last
package in TSORTED being replaced. Because $REPLACE_TODO is still
non-empty, this repeats.
This patch adds an abort when no packages in $TSORTED are in
$REPLACE_TODO. Analysis and patch from Ian D. Leroux on
pkgsrc-users@.
NetBSD-current after last weekends xorg imports.
Remove Xmu files from xorg file list, they are in xorg.libXmu list.
Bump version to 0.61 and depend on it in bl3.mk.
all depending packages have their dependencies satisfied by the new
package. Essentially, split off this particular behavior as a special
case of -f, so that -f works as before, unforced works as before, and
one can give -D to override exactly this check, leaving all other
checks intact.
The -D flag is in support of make replace, as the workflow for make
replace is that inter-package dependencies are sometimes violated (but
then one must replace the depending packages, which is what
pkg_rolling-replace does via the unsafe_depends flags).
Bump PKGTOOLS_VERSION.
Add missing break statement in option parsing of "pkg_add -C", riding
the version bump.
Discussed extensively on tech-pkg@ over the summer.
OK pkgsrc-pmc@.
- Fix a fundamental problem which meant that the package included links
for builtin components that "pkgsrc" will not use because they are too old.
- Remove NetBSD specific "pixman" hack that is no longer necessary.
- Add a nasty hack to deal with the "pixman" issue under NetBSD 5.1*
(and 5.0?) which provides an old version of "libpixman" with a higher
major number than the package in "pkgsrc".
- Use "@pkgdir" instead of "@exec mkdir ..." to create empty directories.
- Don't add "@dirrm" lines for empty directories as they are now deleted
automatically.
Based on a suggestion by Thomas Klausner in private e-mail.
Always treat symbolic links like file when generating the package list.
A long time ago "pkg_install" didn't like symbolic links which is why
"rpm2pkg" created "@exec" and "@unexec" lines in the package list.
This does however cause false positive reported by the "CHECK_FILES" check.
This should fix a part of PR pkg/41191.
- Avoid handling RPMs with uncompress data via "lzcat -f".
- Improve handling of LZMA compression via "lzcat":
- Fail early if the child process fails to start "lzcat".
- Don't try to kill the chld process blindly when we close the parent
end of the pipe. Check first whether it already terminated which
is the normal case.
Handling of RPM files with LZMA compression is now tested.
- Implement a minimal parser for the RPM header section and use it to
skip to the data section instead of searching for BZip2 or GZip
magic headers.
- Add untested support for LZMA compression. It currently uses "lzcat"
from the "xz" package which is what "pkgsrc" itself uses to handle
".lzma" files.
to trigger/signal a rebuild for the transition 5.10.1 -> 5.12.1.
The list of packages is computed by finding all packages which end
up having either of PERL5_USE_PACKLIST, BUILDLINK_API_DEPENDS.perl,
or PERL5_PACKLIST defined in their make setup (tested via
"make show-vars VARNAMES=..."), minus the packages updated after
the perl package update.
sno@ was right after all, obache@ kindly asked and he@ led the
way. Thanks!
- Remove pkg_install version check and rebuild if outdated. pkgsrc is
supposed to do that for us. Addresses PR pkg/38323.
- Don't bother to explicitly builddigest. pkgsrc DTRT nowadays when
PKGSRC_COMPILER includes ccache/distcc.
diff version must uses spaces to separate the filename and timestamp (that
or somepeople do cut-n-pasting of patches).
2) add the comma "," to the pattern used to match line numbers, to match POSIX.
- Recognize -C for pkg_add like the rest of the tools do
- Do the existing check for pkg_add -f, it makes the combination of
-f and -U a bit less surprising
- Fix option handling for CHECK_VULNERABILITIES (from spz@)
- Make end-of-life check the default. pkg_install.conf(5) can be used to
override the default. The existing admin -e & co continue to work as
before.
- Explicitly call make create-usergroup if USERGROUP_PHASE is specified
and DESTDIR is active
- If the current user is not root, don't use su.
- Skip lines starting with # in the limited bulk build list.
- Fix detection of BZip2/GZip signature which would have failed if the
signature was located behind a prefix of the signature.
- Increase I/O buffer size so that "rpm2pkg" will usually find the data
section after only one read(2) system call.
- Don't use the original "rpm" libraries. All we need to do is to identify
a file as an RPM file and afterwards find the BZip2 or GZip compressed
section at the end of the file.
- Use C99's "stdbool.h" instead of home-grown defines.
Solaris (and, I suspect, other autoconf-using architectures). En detail:
20100123:
Many cleanups from stacktic
- Replaced strstr's with str{n}cmp when possible
- #ifdef'ed PROVIDES
- Queries are now const chars
20100102:
Solaris 10 support
Mac OS X support
Many cleanups from stacktic
20100101:
Many fixes by stacktic :
- Added -n (no-flag)
- Various memleaks fixed
- pkgname comparison fix
- Cleaned up trailing spaces
- Got rid of recursion !
20091206:
Added -l status flags
20091203:
autoconf support
percentage redraw fix (jmcneill)
variables cleanups (PKG_SYSCONFDIR, VARBASE) (sketch)
auto-lookup for SUMEXTS, removed options.mk (sketch)
opensolaris fixes (sketch)
repositories.conf variables substitution (tuxillo)
impact mutex (Johannes Hofmann)
SunOS 5.8 support (Mikhail T.)
If /usr/ucb/lib/cpp is in the path before gnu cpp this could break things
but that is not an expected situation. The only executable in /usr/ucb/lib
is cpp, so there is no other reason to add it to the path.
This should fix PR#42624
This is just a simple version bump so that ${OS_VERSION} can be removed from
the DISTNAME as this package now depends on 'pkgtools/osabi'
Update BUILDLINK_API_DEPENDS.x11-links to match.
This is a dummy-package which is made a dependence for packages which are
tightly bound to a specific version of an operating system, e.g. LKMs or
sysutils/lsof. Such binary packages are not backwards compatible with other
versions of the OS.
The version number of this package should be similar to the operating system
version (`uname -r' output).
Extract dependencies of libarchive from the pkgconfig file and thereby
drop knowledge of the needed libraries.
At least some versions of HP-UX are known to not support %zu, add a
workaround. This is using the black list approach for now.
Recognize xz as compression type for pkg_create.
The first time an error is hit while fetching packages, try to reget
from the same position. This works around the server closing the
connection while fetching dependencies.
- Try to detect common forms of pkgdb corruption and issue a warning in
that case.
- Refactor the pkg_vulnerabilities logic to use the compression support
from libarchive. This reduces the amount zlib/bzip2 interaction to the
linkage.
* Do not force the install target to take a full package name. pkg_add will
automatically pick the latest version.
* When building a package as part of makeroot, make sure it actually gets
installed. This is to fix a regression with the switch to USE_DESTDIR=yes.
Otherwise these packages will get rebuilt later on when needed.
* It is common for calls to mktemp to have 6 placeholders in the template,
not 4. Make it so.
* include python/extension.mk and PYSITELIB in PLIST instead of hard coded python2.5.
* PKGLOCALEDIR are handled automatically, no need to use in PLIST.
* icontains *.desktop, so include desktop-file-utils/desktopdb.mk.
Bump PKGREVISION.
- Restore PKG_PREFIX in pkg_delete (PR 42731)
- Ensure that the current pkg_install version is at least as new as
the version used to build the package
- Add option '-D' to tune "USE_DESTDIR=" and set this defaultly to 'NO'
- Add option '-j' to tune "MAKE_JOBS=" (Default: unset)
- Fix an issue with packages with missing origin
- Solaris 10 support
- Mac OS X support
- Added -l status flags
- autoconf support
- percentage redraw fix (jmcneill)
- variables cleanups (PKG_SYSCONFDIR, VARBASE) (sketch)
- auto-lookup for SUMEXTS, removed options.mk (sketch)
- opensolaris fixes (sketch)
- repositories.conf variables substitution (tuxillo)
- impact mutex (Johannes Hofmann)
- SunOS 5.8 support (Mikhail T.)
Plus many cleanups from stacktic@
- Replaced strstr's with str{n}cmp when possible
- #ifdef'ed PROVIDES
- Queries are now const chars
- Added -n (no-flag)
- Various memleaks fixed
- pkgname comparison fix
- Cleaned up trailing spaces
- Got rid of recursion !
- Refactor man pages:
- Move description of environmental variables into pkg_install.conf(5)
- Remove a bunch of dead references
- Avoid using hard-coded path names that can easily be overridden by
the user.
- Refactor pkgdb related logic, so that -K behaves consistently.
- Add some helper functions to isolate more places from the pkgdb
layout.
- Sync license list.
- Handle PKG_REFCOUNT_DBDIR consistently as option too.
- Utilize connection cache from libfetch.
- Add helper target for cat pages updates.
1.) Update list to remove duplicates and add missing entries for recent
versions of NetBSD-current. The necessary changes were supplied
by Bernd Ernesti.
2.) Include the operating system version number in the package version
to force a re-build of the package if the operating system is
updated (which might change the X11 distribution as well.
This should fix PR pkg/42492.
Change approved by Thomas Klausner.
typos and incorrect entries and also adds a brief line on SHLIB_MAJOR,
SHLIB_MINOR and SHLIB_TEENY, the latter addresses PR bin/39693
No functionality change, no PKGREVISION bump
Set TZ=UTC before calling diff to ensure everyone uses the same timezone
to avoid spurious diffs in metadata, such as:
< clock/clock.c.orig 1993-06-29 01:11:39.000000000 -0400
---
> clock/clock.c.orig 1993-06-29 03:11:39.000000000 -0200
Changes:
Added 3 new features:
1) Fetch only
2) Keep going after error (skip package)
3) Log output of make steps
Modified verbosity to report what's failed and what succeeds.
Do not overwrite a string with itself using snprintf. This breaks
setting the pkgdb directory internally on Linux. Explicitly check
if the string is the same and otherwise just use xstrdup.
Detect X.org even if "imake" is not installed. The package now works as
expected under Mac OS X Snow Leopard.
No regressions under NetBSD/amd64 5.0_STABLE with native X.org.
- Cleanup configure.ac to not check for headers and functions not used
- Always use nbcompat/db.h on !NetBSD (PR 41865)
- Don't bother setting termwidth in pkg_info, it is never used.