History log of /freebsd-10.1-release/usr.sbin/pkg_install/lib/lib.h
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# 272461 02-Oct-2014 gjb

Copy stable/10@r272459 to releng/10.1 as part of
the 10.1-RELEASE process.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation

# 256281 10-Oct-2013 gjb

Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation


# 245828 22-Jan-2013 bapt

Use snprintf instead of strc* functions and add bounds checking when creating
pkgngpath

Submitted by: sbz, gahr


# 243554 26-Nov-2012 eadler

Provide an option to users to shoot themselves in the foot.

Reviewed by: bapt
Approved by: cperciva
MFC after: 1 month


# 243553 26-Nov-2012 eadler

Use modern license instead of being consistent with the other pkg_ tools
Use a more informative message
Fix some style(9) nits.
Bump version number
In pkg_add only warn users after the chroot is performed.

Submitted by: gavin, jilles
Reviewed by: beat, bapt
Approved by: cperciva
MFC after: 1 month


# 241830 22-Oct-2012 eadler

Warn users when using pkg tools if it looks like they
be be pkgng users.

Reviewed by: bapt (earlier version)
Reviewed by: kwm
Approved by: cperciva
MFC after: 3 days


# 240682 18-Sep-2012 bapt

if a file in plist starts with / then do not prefix it with "prefix" [1]
pkg info -g returns 1 if a file mismatch [2]
flush stdout in pkg info -g [3]
clean up quiet mode (-q | --quiet) output of pkg_version(1) [4]
fix missing error call in uname check added to pkg_version(1) [5]
fix pkg_add(1) fails to install with -C from bad path [6]
only resolve path from pkg_add(1) -p if the given prefix do not start with a '/' [7]

PR: bin/13128 [1]
bin/139015 [2]
bin/113702 [3]
bin/142570 [4]
bin/146857 [5]
bin/157543 [6]
Submitted by: cy [1]
Anton Yuzhaninov <citrin@citrin.ru> [2]
Ighighi <ighighi@gmail.com> [3]
"N.J. Mann" <njm@njm.me.uk> [4]
gcooper [5]
David Naylor <naylor.b.david@gmail.com> [6]
netchild [7]
MFC after: 2 weeks


# 240476 13-Sep-2012 jkim

Do not change owner, group, or mode when package database directory and
its contents are created with pkg_add(1). It may happen when the packing
list contains @owner, @group, or @mode.

Reported by: Donald Bostrom (dbostrom at niksun dot com)
Reviewed by: portmgr (bapt)


# 236336 30-May-2012 jpaetzel

Bump PKG_INSTALL_VERSION which should've been done in r236233

MFC after: 3 days
Pointed out by: bapt


# 228990 30-Dec-2011 uqs

Spelling fixes for usr.sbin/


# 222035 17-May-2011 flz

Backout libinstall.a -> libpkg commit.

Discussed with: erwin, brooks, bapt


# 206133 03-Apr-2010 flz

Bump PKG_INSTALL_VERSION to 20100403.


# 206043 01-Apr-2010 flz

Various fixes.

- Replace hardcoded INDEX version. [1]
- Fix a buffer overlap. [2]
- Remove empty package when fetching fails and -K is used. [3]
- Remove useless chmod2() after mkdtemp(3). [4]
- Replace mkdir(1) call with mkdir(2). [5]
- Get rid of some vsystem() calls.
- Switch from lstat(2) to open(2) in fexists().
- Try rename(2) in move_file() first.
- Bump PKG_INSTALL_VERSION to 20100401.

PR: bin/145101 [1], bin/139492 [2], bin/144919 [3]
bin/144920 [4], bin/144921 [5]
Submitted by: gcooper [1,2,3,4,5]


# 202844 22-Jan-2010 flz

- Add support for UPDATING remote fetching.
- Reorganize EXAMPLES section in pkg_updating(1).
- Style fixes.
- Bump PKG_INSTALL_VERSION to 20100122.

Submitted by: beat
MFC after: 1 week


# 196766 02-Sep-2009 flz

- Bump PKG_INSTALL_VERSION to 20090902 after dougb's changes.
- Change the comment to say that version must be changed when a
non-cosmetic change is made.


# 196706 31-Aug-2009 dougb

Add support for INDEX-9 [1]

While I'm here, strip off support for FreeBSD 5.x.

Submitted by: Alexey Shuvaev <shuvaev@physik.uni-wuerzburg.de> [1]


# 194497 19-Jun-2009 brian

When running pkg_add -r, check & install our dependencies for each
package rather than expecting our top level package to get all of
the dependencies correct.

Previously, the code depended on the top level package having all
of the pkgdep lines in +CONTENTS correct and in the right order,
but that doesn't always happen due to code such as this (in
security/gnutls/Makefile):

.if (defined(WITH_LZO) || exists(${LOCALBASE}/lib/liblzo2.so)) && !defined(WITHOUT_LZO)
LIB_DEPENDS+= lzo2:${PORTSDIR}/archivers/lzo2
....

With such conditional dependencies, my 'sophox-packages' package won't
install. The dependency tree looks like this:

sophox-packages
...
x11/gnome2
x11/gnome-applets
net/libgweather
devel/libsoup
security/gnutls
security/libgcrypt
security/libgpg-error
...
x11/gnome2
archivers/file-roller
archivers/gtar
archivers/lzop
archivers/lzo2
...

gnutls doesn't depend on lzo2 initially, but lzo2 is dragged into the
mix via other dependencies and is built by the initial 'make'. The
subsequent package generation for gnutls adds a pkgdep line for lzo2
to gnutls' +CONTENTS but the pkgdeps in sophox-packages' +CONTENTS
has gnutls *before* lzo2.

As a result, sophox-packages cannot install; gnutls fails because lzo2
is missing, 82 more packages fail because gnutls is missing and the
whole thing spirals into a super-confusing mess!

MFC after: 3 weeks


# 192382 19-May-2009 flz

Skip @pkgdep if there's no argument.

Submitted by: pav
MFC after: 1 week


# 186835 06-Jan-2009 flz

- Backout latest changes (follow symlinks: r186496, r186518).
- Bump PKG_INSTALL_VER to 20090106.


# 186518 27-Dec-2008 flz

Fix memory leaks introduced in last commit.
Bump version to 20081227.

Reported by: gcooper
Submitted by: Andrea Barberio <insomniac@slackware.it>
MFC after: 1 month


# 186496 25-Dec-2008 flz

Follow symlinks when deleting directories.
Bump PKG_INSTALL_VER to 20081225 (Merry Christmas \o/).

PR: bin/54446
Submitted by: Andrea Barberio <insomniac@slackware.it>
MFC after: 1 month


# 180361 08-Jul-2008 keramida

Enable the -n option of pkg_create(1).

The changes to make the option work are already in place, but I missed
the patch hunk that adds it to the getopt() option-handling loop.

Pointy hat: keramida
Approved by: flz
MFC after: 1 week


# 179760 12-Jun-2008 flz

- add: Keep dependent packages too if -K is specified.
- updating: terminating '\n' is not part of the package origin.
- bump PKG_INSTALL_VERSION to 20080612.

PR: bin/119368 [1], bin/124459 [2]
Submitted by: gcooper [1], Beat Gatzi <beat@chruetertee.ch> [2]
MFC after: 3 days


# 179433 30-May-2008 flz

- Add long options to pkg_install.
- Remove check for '-?' as it's not listed in authorized options.
- Bump PKG_INSTALL_VERSION to 20080530.


# 179373 28-May-2008 flz

Bump PKG_INSTALL_VERSION to 20080528.

X-MFC after: latest HEAD changes have been MFC'ed to RELENG_[67]


# 178753 03-May-2008 pav

- Restore functionality broken in previous commit; we need to be able to report
multiple installed packages with the same PKGORIGIN.

Reported by: marcus
MFC after: 1 month


# 178103 11-Apr-2008 pav

Optimize package registration/deregistration. Previously, when looking up the
package name for the origin of a dependency, all entries in /var/db/pkg were
traversed for each dependency of added/removed package. Now, gather all the
origins first, then do the lookup in a single pass over /var/db/pkg.

This should provide a major speedup for packages with hundreds of dependencies.

Submitted by: rdivacky (earlier version)
MFC after: 1 month


# 173514 10-Nov-2007 krion

Some code cleanups, including removing of stale getopt argument and
hardcoded +CONTENTS defines.

PR: bin/117855
Submitted by: Beat Gaetzi <beat@chruetertee.ch>
MFC after: 14 days


# 172723 17-Oct-2007 krion

Add whitespace.


# 172722 17-Oct-2007 krion

Update for INDEX-8 support.


# 167972 28-Mar-2007 njl

Make consistent with style(msmith). 4 spaces indent, tab for each 2 indents.


# 159554 12-Jun-2006 obrien

Allow variable amounts of verbosity.


# 157809 17-Apr-2006 krion

Add INDEX-7 and remove trailing spaces.

MFC after: 5 days


# 154145 09-Jan-2006 flz

Add -K option to pkg_add and pkg_info.
This option saves packages to PKGDIR (if defined or current directory by default)
as they are downloaded.
Silent a warning when -n is used and package has a +DISPLAY file.

Approved by: krion
MFC after: 1 week


# 147381 14-Jun-2005 krion

Implement @noinst field which has at the moment the same meaning and
function as @comment has. But will be valid only for files and not
for md5 sums, rcsid's and comments in the future.

Submitted by: flz
Approved by: re@ (scottl)


# 139676 04-Jan-2005 paul

Use INDEX-6 for versions of FreeBSD > 600000


# 136643 18-Oct-2004 obrien

Add a -q flag to pkg_version. It suppresses the output of <,=,>.
This makes it possible to "portupgrade `pkg_version -q -l '<'`".


# 131285 29-Jun-2004 eik

- pkg_add spawns itself as argv[0] when installing dependent packages, to
enable the use as a port on older systems

- use absolute paths in all calls to external programs, to account for strange
PATH settings

- use INDEX or INDEX-5 depending on FreeBSD version, to enable the use on
FreeBSD 4.x as a port.

- conditionalize all 4.x/5.x differences on __FreeBSD_version, so that the
pkg_install tools can be kept in sync on 4.x and 5.x

- Bump PKG_INSTALL_VERSION

Reviewed by: portmgr (bento run)
MFC after: 4 weeks


# 131280 29-Jun-2004 eik

- pkg_info: flag -r: (show packages this packages depends on (documentation change))

- pkg_info: new flag -j (show the requirements script)

- pkg_info: fix verbose output when used on packages

- better handling of corrupt entries in /var/db/pkg

- differ between corrupt entires and packages not installed

- various small fixes

PR: 56989, 57016, 57029, 26468


# 131275 29-Jun-2004 eik

- match package version numbers with relational operators

- use glob patterns when matching packages by origin

- csh-style {...} choices in glob matching

- pkg_info: new flag -E (list matching package names only)

- pkg_version: new flag -T (test if a given name matches a pattern)

- new flag -X (interpret pattern as an extended regular expression)

PR: 56961


# 131274 29-Jun-2004 eik

- complete rewrite of the version number parsing code, restoring compatibiliy of 5.x with 4.x and portupgrade

- parse version numbers of ports containing an underscore followed by a number correctly

- handle special strings pl, alpha, beta, pre and rc

PR: 56961


# 115325 26-May-2003 lioux

pkg_create incorrectly does not add trailing '\n' when it receives
either COMMENT or DESCR from the command line. When a port is
installed, one gets both +COMMENT and +DESCR files with a trailing
'\n' character. However, +COMMENT does not contain a trailing '\n'
when it is installed from a package due to this behavior of pkg_create.

Therefore, make sure it behaves exactly the same regardless of
where got its information; either command line or files. The modified
functions are used by pkg_create.

PR: 52097
Reviewed by: bento, kris,
portmgr, re,
Michael Nottebrock <michaelnottebrock@gmx.net>,
Martin Horcicka <horcicka@FreeBSD.cz>
Approved by: re (scottl)
MFC after: 1 week


# 113594 17-Apr-2003 kris

* Add explicit conflict-checking to the package tools. Packages can
register a list of other packages with which they conflict (via the
-C option to pkg_create), and they will refuse to install (unless -f is
specified) if one of the listed packages is already present.

* Update documentation for the new feature as well as fleshing out some
existing documentation.

* Bump PKG_INSTALL_VERSION so this feature can be tested for.

Submitted by: Sergey Matveychuk <sem@ciam.ru>
PR: bin/47145
MFC after: 2 weeks


# 108778 06-Jan-2003 jkh

Prevent buffer overflow in format_cmd() by properly tracking maximum
buffer size.
Reported by: Lionnel CHAPTAL <Lionnel.Chaptal@IPricot.com>
MFC after: 1 week


# 103149 09-Sep-2002 sobomax

Introduce notion of the package tools revision and allow to wrap all tools
included into pkg_install according to the content of /var/db/pkg_install.conf
file, which specifies version and alternative location of the tools. Format
of the said file is very simple: one line which specifies revision of the
alternative version of the tools and their location separated by space,
i.e.:

20030102 /usr/local/sbin

This would allow bsd.port.mk to install and use up to date version of tools
on older system from ports.

Also add new `-P' flag to pkg_info, which causes it to report currently
installed version of package tools.

Discussed with: will


# 98766 24-Jun-2002 markm

C replacement for the Perl5 code.

Submitted by: reg


# 96613 14-May-2002 sobomax

- Make use of DEPOROGINs (if there are any) when installing package;
- fix few bogosities here and there;
- move some common routines into the library.

MFC after: 2 weeks


# 96076 05-May-2002 sobomax

New feature: allow origins of all dependencies be recorded into package list
using new `@comment DEPORIGIN:...' directive. This would allow us to make
many neat things including:

- easier binary upgrades;
- source upgrades without using external tools by simply extending
bsd.port.mk and pkg_install tools;
- mixed-mode upgrades (source + binary);
- depreciate and deorbit silly +REQUIRED_BY files in the near future.

This feature is no-op until appropriate bsd.port.mk patch is committed, and
even when it is already committed packages generated will remain 100%
compatible with old set of pkg_install tools (module all those neat
features, of course).

MFC after: 6 days


# 96031 04-May-2002 sobomax

(forced)

Previous delta (pkg_info -O) is subject of:

MFC after: 1 week


# 96030 04-May-2002 sobomax

Add ability to query installed packages based on origin.


# 84750 10-Oct-2001 sobomax

- Introduce a notion of `packing list format version'. This allows making
non-backward compatible changes in the format of packing list and handle
them gracefully;
- fix a longstanding issue with symlinks handling. Instead of recording
checksum for the file symlink points to, record checksum for the value
returned by readlink(2). For backward compatibility increase packing list
format minor version number and provide a fallback to a previous behaviour,
if package in question was created with older version of pkg_* tools;

Submitted by: Alec Wolman <wolman@cs.washington.edu>, sobomax

- don't record MD5 checksum for device nodes, fifo's and other non-regular
files.

Submitted by: nbm
MFC in: 2 weeks


# 84745 10-Oct-2001 sobomax

WARNS=2 cleanup.

Tested on: i386, alpha
MFC after: 2 weeks


# 83663 19-Sep-2001 sobomax

Various fixes and improvements:
- fix harmless compiler's warnings (unused variables and missed prototype);
- before refusing to delete package because "there are packages installed
that require this package" check that packages in question is actually
installed;
- add new `-r' option to pkg_delete(8), which instructs it to delete not only
packages specified at command line, but all packages that depend on
specified packages as well.

MFC after: 2 weeks


# 81571 13-Aug-2001 obrien

Reduce private "lesser known" function redirection to improve clarity.

Approved by: jkh


# 81049 02-Aug-2001 sobomax

Cosmetics: replace dozen instances of "(tmp = getenv(PKG_DBDIR) ? tmp : DEF_LOG_DIR)"
with macro.

MFC after: 1 month


# 76504 12-May-2001 kris

Clean up some of the evil string handling in this code, replace
warnx()+exit() with errx() and replace a big if..then..else construct
to determine the package download directory with a lookup table.

Reviewed by: jkh
MFC after: 2 weeks


# 74699 23-Mar-2001 sobomax

- Add which(1)-like functionality into pkg_info;
- fix a harmless bug in match_installed() function introduced in my last
commit;
- uniformely reorder includes across files.

Submitted by: Garrett Rooney <rooneg@electricjellyfish.net>
Not objected by: jkh, -ports


# 74295 15-Mar-2001 sobomax

When creating a package sort dependencies in such a way that if dependency
A depends on dependency B then dependency A will be in all cases listed
before B, so ``pkg_add -r'' will fetch/install packages in the correct order.

Previously dependencies were sorted just by its names, which is why
``pkg_add -r'' never actually worked properly.

To be usefull, hovewer, this fix requires that all packages have been
rebuilt, so it will take some time until users would be able to feel
posititive improvements. For the same reasons it is desirable to propagate
these changes to the 4-stable package building cluster *before* 4.3 ports
freeze, so packages for 4.3-RELEASE would be properly prepared.

Prompted by: kris
Insanely appreciated by: obrien
Silently approved by: jkh, -ports


# 73134 27-Feb-2001 sobomax

- Merge recently added into pkg_info(1) regex/glob matching functionality into
pkg_delete(1) as well;
- add a new `-a' option for pkg_delete(1) to delete all installed packages;
- add a new `-i' option for pkg_delete(1) to request simple rm(1)-like
interactive confirmation before attempting to delete each package.

Silently approved by: jkh, -ports


# 66021 18-Sep-2000 sobomax

Fix symlink-to-a-dir handling in pkg_delete.

Reviewed by: -ports
Tested by: bento


# 62154 27-Jun-2000 des

Use libfetch instead of libftpio. This adds support for http and IPv6.


# 50479 27-Aug-1999 peter

$Id$ -> $FreeBSD$


# 49637 11-Aug-1999 billf

-Wall fixes. Ambigious if/elses, uninitialized values, missing headers,
missing prototypes, and empty format strings.


# 41866 16-Dec-1998 jkh

Make it possible to have separate install scripts as well as have
an on-delete script.

Submitted by: Rajesh Vaidheeswarran <rv@fore.com>


# 33427 16-Feb-1998 jkh

Eliminate the idea of nested "playpens" entirely - it just obfuscated
the code and, in at least one case, made it more dangerous to no gain.


# 30221 08-Oct-1997 charnier

Use err(3). Cosmetics in usage string and man page.


# 22997 22-Feb-1997 peter

Revert $FreeBSD$ to $Id$


# 21673 14-Jan-1997 jkh

Make the long-awaited change from $Id$ to $FreeBSD$

This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore. This update would have been
insane otherwise.


# 17338 30-Jul-1996 jkh

Add MD5 checksums to packing list for all files during pkg_create and use
later at pkg_delete time to verify that you're deleting what you added.
This, of course, does NOT cover the case where a file you still need
hasn't changed! That's a tougher problem to solve, and this provides
only the minimal amount of safety belt. MD5 checksums are stored in comment
fields, so packages produced with these tools are backwards compatible with
the older ones.


# 16549 20-Jun-1996 jkh

Make pkg_install understand and use libftpio instead of its own
copies of the ftp support routines. Also some cosmetic and minor
bug fixes I've been meaning to incorporate for awhile.


# 16179 07-Jun-1996 alex

Change min_free to return free space as an off_t instead of a size_t.


# 11780 25-Oct-1995 jkh

Bring forward my changes from 2.1


# 10309 26-Aug-1995 jkh

Use size_t properly in all fs size ops. This kills a bug
encountered by someone who had his /tmp on a partition with 3.7GB of
free space!
Spotted by: Francisco Rosich Viana <rosich@power.ci.uv.es>


# 9782 29-Jul-1995 ache

You can run pkg_info everywhere expect /var/db/pkg directory :-)
Running there you got any kind of strange errors from tar caused
by treating directories as tar files!
Fix it by adding new isfile(name) (check for reg. files) to simple fexists(name) calls.


# 8087 26-Apr-1995 jkh

Add code for dealing with URLs.


# 7999 22-Apr-1995 jkh

Export the min_free() function.


# 7996 22-Apr-1995 jkh

1. Add an new @option directive. You'll understand it better in a moment.
2. Fix a long-standing bug in pkg_add where the failure of one package in
a multipackage installation (pkg_add *.tgz) would blow you right out of
the water. Ick.


# 7937 19-Apr-1995 jkh

Add support for the ${PKG_DBDIR} environment variable. /var/db/pkg is the
default, and probably not something you'd ever change, but now it's
possible to do so for local/custom installations.


# 4996 05-Dec-1994 jkh

Many of John T. Kohl's patches from NetBSD. Thanks, John!
Submitted by: jkohl


# 4546 17-Nov-1994 jkh

Add a new basename_of() function.


# 3364 04-Oct-1994 jkh

Add the ability to verify that a package won't extract in the space
available. Thanks to Michael Elbel for pushing me in the right direction.


# 3198 29-Sep-1994 jkh

Don't let pkg_delete remove the recorded location until everything has
absolutely, positively been successfully removed.
Reviewed by:
Submitted by:
Obtained from:


# 2331 28-Aug-1994 jkh

Add @srcdir option for customizing creation of packages.
Submitted by: jkh


# 1550 25-May-1994 asami

The environment variable PKG_PREFIX is set to the first @cwd command
in the packing list, or the argument to -p if it is specified, before
the requirements/installation/deinstallation scripts are called. This
enables the scripts to be written to work on the final installation
destination, even if the user uses -p to override the package's default.


# 1547 25-May-1994 jkh

Add new find_plist() function.


# 1338 05-Apr-1994 jkh

Make y_or_n() pay attention to AutoAnswer global.


# 479 18-Sep-1993 jkh

Added code for doing % sequence expansion, added new @unexec command.


# 383 05-Sep-1993 jkh

Made staging area configurable rather than assuming /tmp (-t)


# 379 03-Sep-1993 jkh

Lots of misc tweaks, support for arbitrary separators in pkg_info, more
intelligent name handling in pkg_create. Most of these files are changed
because of rcsid's being different in my cvs tree and freefall's (foo).


# 328 25-Aug-1993 jkh

This commit was generated by cvs2svn to compensate for changes in r327,
which included commits to RCS files with non-trunk default branches.


# 327 25-Aug-1993 jkh

The release version of my package install suite. Please see man pages
for info.