Teach the pkgsrc infrastructure to Just Know when the pkginstall

framework should be used.  This is implemented by creating a small
file mk/install/pkginstall.mk that guards the implementation makefile
mk/install/bsd.pkginstall.mk.  This guard file just checks whether
one of the pkginstall-related variables is non-empty, and if so, then
the implementation file is automatically included.  This completely
deprecates USE_PKGINSTALL, which no longer has any affect in pkgsrc.
This commit is contained in:
jlam 2005-12-29 06:18:53 +00:00
parent f0aa85ac53
commit 4ab7433a2c
3 changed files with 54 additions and 18 deletions

View file

@ -1,4 +1,4 @@
# $NetBSD: bsd.pkg.mk,v 1.1774 2005/12/05 22:07:07 rillig Exp $
# $NetBSD: bsd.pkg.mk,v 1.1775 2005/12/29 06:18:53 jlam Exp $
#
# This file is in the public domain.
#
@ -505,18 +505,7 @@ PLIST_SUBST+= OPSYS=${OPSYS:Q} \
#
.include "../../mk/alternatives.mk"
# CONF_DEPENDS notes a dependency where the config directory for the
# package matches the dependency's config directory. CONF_DEPENDS is
# only meaningful if ${PKG_INSTALLATION_TYPE} == "pkgviews".
#
CONF_DEPENDS?= # empty
.if !empty(CONF_DEPENDS)
USE_PKGINSTALL= yes
.endif
.if defined(USE_PKGINSTALL) && !empty(USE_PKGINSTALL:M[yY][eE][sS])
. include "../../mk/install/bsd.pkginstall.mk"
.endif
.include "../../mk/install/pkginstall.mk"
# Set INSTALL_FILE to be the name of any INSTALL file
.if !defined(INSTALL_FILE) && exists(${PKGDIR}/INSTALL)

View file

@ -1,10 +1,10 @@
# $NetBSD: bsd.pkginstall.mk,v 1.31 2005/12/29 03:44:38 jlam Exp $
# $NetBSD: bsd.pkginstall.mk,v 1.32 2005/12/29 06:18:53 jlam Exp $
#
# This Makefile fragment is included by bsd.pkg.mk to use the common
# INSTALL/DEINSTALL scripts. To use this Makefile fragment, simply:
# This Makefile fragment is included by mk/install/pkginstall.mk and is
# the implemenation file for the common INSTALL/DEINSTALL scripts
# framework. To use the pkginstall framework, simply set the relevant
# variables to customize the install scripts to the package.
#
# (1) Set the variables to customize the install scripts to the package, and
# (2) Set USE_PKGINSTALL to YES in the package Makefile.
.if defined(BSD_PKG_INSTALL_MK)
PKG_FAIL_REASON+= "[bsd.pkginstall.mk] Must not be included directly."

47
mk/install/pkginstall.mk Normal file
View file

@ -0,0 +1,47 @@
# $NetBSD: pkginstall.mk,v 1.1 2005/12/29 06:18:53 jlam Exp $
#
# This Makefile fragment is included by bsd.pkg.mk and determines whether
# or not the bsd.pkginstall.mk implementation file should be included.
#
# _PKGINSTALL_VARS is a list of the variables that, if non-empty, indicate
# that the pkginstall framework should be used. These variables
# should be extracted from bsd.pkginstall.mk and are typically the
# variables named in the INSTALL_<SCRIPT>_MEMBERS lists.
#
# The variables listed in _PKGINSTALL_VARS are documented in
# mk/install/bsd.pkginstall.mk.
#
_PKGINSTALL_VARS+= HEADER_EXTRA_TMPL
_PKGINSTALL_VARS+= DEINSTALL_PRE_TMPL DEINSTALL_EXTRA_TMPL \
DEINSTALL_TMPL
_PKGINSTALL_VARS+= INSTALL_TMPL INSTALL_EXTRA_TMPL \
INSTALL_POST_TMPL INSTALL_UNPACK_TMPL
_PKGINSTALL_VARS+= DEINSTALL_SRC INSTALL_SRC
_PKGINSTALL_VARS+= PKG_GROUPS PKG_USERS
_PKGINSTALL_VARS+= SPECIAL_PERMS
_PKGINSTALL_VARS+= CONF_FILES CONF_FILES_PERMS \
REQD_FILES REQD_FILES_PERMS \
RCD_SCRIPTS
_PKGINSTALL_VARS+= MAKE_DIRS MAKE_DIRS_PERMS \
REQD_DIRS REQD_DIRS_PERMS \
OWN_DIRS OWN_DIRS_PERMS
_PKGINSTALL_VARS+= PKG_SHELL
_PKGINSTALL_VARS+= FONTS_DIRS.ttf FONTS_DIRS.type1 FONTS_DIRS.x11
# CONF_DEPENDS notes a dependency where the config directory for the
# package matches the dependency's config directory. CONF_DEPENDS is
# only meaningful if PKG_INSTALLATION_TYPE is "pkgviews".
#
_PKGINSTALL_VARS+= CONF_DEPENDS
_USE_PKGINSTALL= no
.for _var_ in ${_PKGINSTALL_VARS}
. if !empty(${_var_})
_USE_PKGINSTALL= yes
. endif
.endfor
.if !empty(_USE_PKGINSTALL:M[yY][eE][sS])
. include "../../mk/install/bsd.pkginstall.mk"
.endif