Commit Graph

74 Commits

Author SHA1 Message Date
reed 1b379e628e Fix the "Cannot chdir" error message to actually show the
problem directory name for lsbest and lsall.

For example:

# pkg_admin -d /usr/packages/DragonFly/1.4.0/i386/All lsbest 'gmake>0'
pkg_admin: Cannot chdir to /var/db/pkg: No such file or directory

Should show:
pkg_admin: Cannot chdir to /usr/packages/DragonFly/1.4.0/i386/All: No such file or directory
2006-03-06 20:00:10 +00:00
wiz f0f9d6a437 Add compat #ifdefs from pkgsrc, to make syncing easier between the
two versions.
2005-11-05 13:11:02 +00:00
dillo 75b9797969 Implement framework to store variable=value pairs about an installed package.
Use this in pkg_add to mark installed dependencies as automatically installed.

pkg_add: new flag -A: marks package as automatically installed.
pkg_admin: new commands set and unset to modify variable pairs for
	   installed packages.
pkg_info: report these variable pairs with -Q/-B.
	  new flag -u: report only manually installed packages (not
	  installed with pkg_add -A).
	  Error out if -a/-u and a package name is specified.

Joint work with Thomas Klausner.

As discussed on tech-pkg.
2005-11-03 21:16:41 +00:00
rillig b9387c8736 Never access argv[i+1] before you know that argv[i] != NULL. Approved
by wiz.
2005-03-11 22:52:04 +00:00
grant 16133f304b mdoc fixes: use Sq and Dq instead of ' " and '' 2005-02-26 14:09:57 +00:00
agc 6e58e2a640 Introduce a new abstraction in the C code, called MaxPathSize. All
previous occurrences of MAXPATHLEN and FILENAME_MAX have been changed
to use MaxPathSize instead.

If MAXPATHLEN is not defined, then assume a default value of 1024
(this is primarily for use on the Hurd).

The reason for this is that some older platforms define FILENAME_MAX
to be 14, although MAXPATHLEN is 1024. On BSD-derived systems,
FILENAME_MAX And MAXPATHLEN are both 1024.

Bump pkg_install version to 20041226.

These modifications have been tested so far on a NetBSD-current bulk
build.
2004-12-29 11:34:59 +00:00
wiz 513f71684b Use more markup. 2004-12-15 17:17:51 +00:00
wiz 25ac688cb9 Bump date for new -q. 2004-08-13 13:38:14 +00:00
wiz 8a623e1980 Sort options in SYNOPSIS. 2004-08-13 13:37:14 +00:00
wiz 6579bae669 Add all options to usage. 2004-08-13 13:37:04 +00:00
agc 50a555ad6a Add a -q switch to pkg_admin, which allows it to work in a quiet manner.
Fixes the change request in PR 26583, but in a different manner,
preserving existing behaviour and making the new behaviour dependent
upon a command line option.
2004-08-13 13:28:46 +00:00
kleink 48c51a151e Ensure readlink(2) result termination within buffer bounds. 2004-05-10 19:59:59 +00:00
wiz e3fc4b66c3 Spell the plural of suffix "suffixes", not "suffices".
Inspired by PR 24400 by Todd Vierling.
2004-02-13 17:56:17 +00:00
grant 47af3cdb37 no .Ek before .Bk. 2004-02-07 09:41:36 +00:00
seb fb913be01a Add missing flags from the synopsis.
Fix pasto in -S flag description.

Approved by wiz@.
2004-01-26 09:28:10 +00:00
agc 478a76b17a At package creation time, record the targets of symbolic links which
are installed as part of the package.

Enable the verification of the integrity of any symbolic links
in the package in "pkg_admin check".

Add a check to pkg_delete to verify the integrity of the symbolic link
before deletion, and to act in the same way as an MD5 failure if the
symbolic link has been modified since package creation time.

Bump version number.

Addresses PR 23048 from Klaus Klein.
2004-01-15 09:33:38 +00:00
wiz 137c968ad5 Initialize cnt; from Greg A. Woods in PR 22862. 2003-09-19 17:44:53 +00:00
agc 4fe63c7eb9 Let pkg_admin(1) have a -S argument - some vendors' xargs(1) don't pass
a null ("") argument properly (hi, Sun), so make -S a synonym for -s "".

Don't dump core if no command is given to pkg_admin(1).

Print usage message to stderr, not stdout, and use the program name by
which it was invoked.

Bump pkg_install version to 20030918.
2003-09-18 09:56:20 +00:00
jlam 1732738842 Update pkg_install to version 20030912. Changes from 200230907 are
adding two new options to pkg_admin(1) to simply using this utility to
list the bare package names that match patterns when looking in PKG_DBDIR:

      -b      Print only the basenames when matching package names for
              lsall and lsbest.

      -d lsdir
              Set lsdir as the path to the directory in which to find
              matching package names for lsall and lsbest.
2003-09-13 05:48:50 +00:00
jlam bfb9e5680c Allow the package entries in the pkgdbdir to be either directories or
symlinks to directories.  This gives the user more rope, but lets those
who know what they're doing to do what they want.
2003-09-08 22:11:12 +00:00
wiz 1b83dbb69f Sort options. 2003-09-08 08:57:42 +00:00
wiz 491ae8b74a Bump date for previous. 2003-09-08 07:14:29 +00:00
jlam 1bbe06780b Add new commands "add" and "delete" to pkg_admin(1):
add pkg ...
             For each listed package, write the absolute pathnames of the
             files listed in its +CONTENTS file together with the package
             they belong to into the package database.  This should be used
             only by pkg_view(1).

     delete pkg ...
             For each listed package, remove all file entries in the
             package database that belong to the package.  This should be
             used only by pkg_view(1).

These commands will be used by pkg_view(1) to keep the pkgdb.byfile.db
files for each view consistent with what's stored in each view.

Since we stole these names from the debug code, change the names of the
debug commands to "addkey" and "delkey".
2003-09-08 07:04:40 +00:00
jlam 1a174cde55 Merge src/usr.sbin/pkg_install on the pkgviews branch into the HEAD by
running:

        cd src/usr.sbin/pkg_install
        cvs update -Pd -A
        cvs update -Pd -j pkgviews-base -j pkgviews
2003-09-02 07:34:47 +00:00
agc 582cc64a31 Set the program name via setprogname(3). 2003-06-05 13:15:43 +00:00
grant 5cea86225d don't pass NULL as the 2nd arg to getcwd(), ala lib/path.c.
fixes 'pkg_admin lsall' and 'pkg_admin lsbest' on Solaris and probably
other platforms where getcwd() doesn't allocate a buffer when the 2nd
arg is NULL.

ok'd by simonb@
2003-04-17 13:32:21 +00:00
seb 3273d1bc8b Consistently check findmatchingname() return value for error condition.
Among other this fixes 'pkg_info -e whateverpkg' exit status when
/var/db/pkg is missing: it is now 1 and not 0.
2003-03-24 21:44:45 +00:00
agc 2c442ad8d2 Introduce a pkgdb_dump() function, which dumps the cache file of
(filename, package) pairs.

Modify calling functions to use pkgdb_dump() directly, rather than
sequences of
	pkgdb_open
	{ pkgdb_iter, pkgdb_retrieve }
	pkgdb_close
calls.

Remove the now unnecessary pkgdb_iter function.
2003-03-15 20:49:25 +00:00
agc 82e88920e0 Add a pkgdb_remove_pkg() function and use it in pkg_delete(1).
Bump lib/version.h due to added functionality.
2003-01-10 10:17:21 +00:00
agc 9d61d2fff1 Add an enumerated type which is used in pkgdb_open() to specify
read-only or read-write mode.

Modify the return value of pkgdb_open() to have a more logical boolean
value.
2003-01-05 21:49:51 +00:00
agc 1b535c4ef0 Use EXIT_FAILURE, rather than hardcoding a value of '1' in err(3) and
errx(3).

Plug a memory leak by modifying the signature of
_pkgdb_getPKGDB_FILE() to take a buffer and its size, and fill in that
buffer and return it.
2003-01-05 21:27:20 +00:00
wiz 5e977f5ead Ispell. Begin new sentences on a new line. 2002-09-26 01:41:51 +00:00
wiz 5dbdce59f0 Fix date. 2002-09-25 00:34:44 +00:00
uebayasi 6a49247a32 Sprinkle .Xrs to packages(7). 2002-09-24 03:18:00 +00:00
hubertf cebf43ab6e Add 'pmatch' keyword: pkg_admin pmatch pattern pkg
Will return true if 'pkg' matches 'pattern', false else.
Provides a command line interface to the pmatch() C function
to be used from shell scripts etc.
2002-08-04 20:50:55 +00:00
grant eda9e509bb sweep of errx/warnx, remove unnecessary trailing \n 2002-07-20 08:40:16 +00:00
yamt 5eb02a32ce - remove handling of PKG_ADD_BASE.
- don't search current directory if PKG_PATH is set.
- don't prefer local directories.
- constify and cleanup.
discussed on tech-pkg.
2002-07-19 19:04:33 +00:00
yamt 51111fe65d - make last arg of findmatchingname void*.
- move some duplicated functions into lib/.
2002-06-09 13:23:44 +00:00
yamt cc8d347c9a - free memory allocated by findbestmatchingname.
- use static buffer instead of "malloc and don't free"
  for dirname_of.
- fix indent.
2002-06-09 11:56:59 +00:00
agc 33ef3d651a Add a new packing list directive, @blddep, which notes the exact
version of the pre-requisite package which was used to build the
package. This is derived automatically from the list of pre-requisite
packages which is provided to pkg_create(1) in the -P argument.

Bump the version number to 20020305.

Versions of the pkg_install tools prior to 20020305, when adding a
binary package with embedded @blddep directives, will warn that the
directive is not recognised, but will continue to add the binary
package.
2002-03-05 13:01:19 +00:00
ross 2a76afae02 Generate <>& symbolically. I'm avoiding .../dist/... directories for now. 2002-02-08 01:36:18 +00:00
wiz b85170c751 Improve markup, sort section, sort SEE ALSO. 2002-02-02 01:31:16 +00:00
wiz d422b80ea9 Uppercase Dt argument. 2001-06-05 11:58:55 +00:00
hubertf dcdc94af10 Don't warn about @src being deprecated any longer - we add it per default
to each binary pkg again (via pkg_create -L) to assist DESTDIR builds.

Noted by Dan McMahill in private mail.
2001-04-17 10:42:11 +00:00
hubertf 5db44bee09 Include lsall and lsbest in usage message. 2001-04-14 00:01:28 +00:00
wiz 4058e24dfa Fix date, and improve markup. 2001-04-09 12:47:09 +00:00
wiz 2ba98ef9a1 Add -V option to all pkgtools, which reports the version of the pkgtools.
Document it. While there, fix the ordering of the option descriptions in
some man pages. Set version to 20010305.
2001-03-05 16:53:12 +00:00
hubertf 55a4568c92 Make usage message match that of other pkg_* programs:
* user lowercase "usage"
 * do not use __progname/getprogname() to make this build on old systems
   (the pkg_install pkg is intended to run on 1.4 and maybe 1.3 too...)
2001-02-21 13:12:47 +00:00
cgd 25bdbb661e convert to use getprogname() 2001-02-19 23:22:40 +00:00
jdolecek c7121de1da use getcwd() instead of getwd() - mainly to avoid link warning, this
particular usage is safe
2001-01-10 22:53:22 +00:00