Subject: CVS commit: pkgsrc/mk/install
To: None <pkgsrc-changes@NetBSD.org>
From: Johnny C. Lam <jlam@netbsd.org>
List: pkgsrc-changes
Date: 04/25/2006 19:54:39
Module Name: pkgsrc
Committed By: jlam
Date: Tue Apr 25 19:54:39 UTC 2006
Modified Files:
pkgsrc/mk/install: bsd.pkginstall.mk deinstall dirs files install
Log Message:
First try at fixing a deficiency in the package +INSTALL scripts,
where they don't verify that any pre-existing config files and
directories have the correct permissions. For example, if you are
upgrading a package to a newer version and the config files and
directories used by the package need to have different permissions
than in previous versions of the package, then the new package may
fail to work because it can't access pre-existing files and directories.
This commit improves on this by doing the following:
(1) Teach the +FILES and +DIRS scriptlets two new actions "PERMS" and
"CHECK-PERMS". "PERMS" fixes permissions on existing files and
directories. "CHECK-PERMS" will verify those same bits and warn
the user when they are wrong. The "CHECK-PERMS" actions for the
two scriptlets are run immediately after the "ADD" actions.
(2) Add a new variable PKG_CONFIG_PERMS that controls whether the
"PERMS" action will automatically fix permissions. PKG_CONFIG_PERMS
is only consulted if PKG_CONFIG is "yes". PKG_CONFIG_PERMS can
be set in the shell environment when running pkg_add, e.g.:
export PKG_CONFIG=yes
export PKG_CONFIG_PERMS=yes
pkg_add /path/to/binary/package.tgz
The default value of PKG_CONFIG_PERMS embedded into the +INSTALL
script may also be set in /etc/mk.conf. This value defaults to
"no", so that by default, the +INSTALL script will not modify or
destroy any existing configuration files or directories.
The +INSTALL script will now always warn you if there are files or
directories whose permissions differ from what the package is expecting
to use, and if PKG_CONFIG_PERMS is set to "yes", then it will go ahead
and fix those permissions for you automatically.
To generate a diff of this commit:
cvs rdiff -r1.47 -r1.48 pkgsrc/mk/install/bsd.pkginstall.mk
cvs rdiff -r1.39 -r1.40 pkgsrc/mk/install/deinstall
cvs rdiff -r1.10 -r1.11 pkgsrc/mk/install/dirs pkgsrc/mk/install/files
cvs rdiff -r1.45 -r1.46 pkgsrc/mk/install/install
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.