1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-10-22 20:41:26 +00:00

* r1.455 introduced a change that uses su(1) to install the port if

built by non-root.  However, sometimes it is desirable to install the
  port as a non-privileged user.  Introduce the INSTALL_AS_USER variable
  to specify this behaviour. [1]

* Change SU to SU_CMD to allow other su-like commands to be used to
  perform the privilege escalation when installing as non-root
  (e.g. sudo) [2]

* Add support for USE_GCC=3.3 and 3.4 [3]

* Add support for the dns [4] and polish [5] categories, and the xfce
  virtual category [6]

* Use the pkg_install port on systems older than OSREVISION=460102, so
  they have the benefits of the advanced install/deinstall logic. [7]

PR:		ports/55091 [1], ports/55308 [3], ports/50444 [4],
		ports/53797 [5]
Submitted by:	dinoex [1], fjoe [2], Ulrich Spoerlein <q@uni.de> [3],
		Kimura Fuyuki <fuyuki@hadaly.org> [4],
		Aleksander Fafula <alex@fafula.com> [5], oliver [6],
		marcus [7]
This commit is contained in:
Kris Kennaway 2003-08-15 22:57:58 +00:00
parent 221d366d75
commit e549c662d1
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=87013

View File

@ -739,6 +739,8 @@ FreeBSD_MAINTAINER= portmgr@FreeBSD.org
# the port still works with it.
# USE_PACKAGE_DEPENDS - Install dependencies from existing packages instead
# of building the port from scratch.
# INSTALL_AS_USER - Define this to install as the current user, intended
# for systems where you have no root access.
#
# End of the list of all variables that need to be defined in a port.
# Most port authors should not need to understand anything after this point.
@ -798,7 +800,7 @@ SED?= /usr/bin/sed
SETENV?= /usr/bin/env
SH?= /bin/sh
STRIP_CMD?= /usr/bin/strip
SU?= /usr/bin/su
SU_CMD?= /usr/bin/su root -c
TAIL?= /usr/bin/tail
TEST?= test # Shell builtin
TR?= /usr/bin/tr
@ -1347,6 +1349,16 @@ CC= gcc32
CXX= g++32
BUILD_DEPENDS+= gcc32:${PORTSDIR}/lang/gcc32
.endif
.if defined(USE_GCC) && ${USE_GCC} == 3.3 && ${OSVERSION} < 501103
CC= gcc33
CXX= g++33
BUILD_DEPENDS+= gcc33:${PORTSDIR}/lang/gcc33
.endif
.if defined(USE_GCC) && ${USE_GCC} == 3.4 # Not yet available in any OSVERSION
CC= gcc34
CXX= g++34
BUILD_DEPENDS+= gcc34:${PORTSDIR}/lang/gcc34
.endif
.if defined(USE_GETOPT_LONG)
.if ${OSVERSION} < 500041
@ -1690,10 +1702,19 @@ PORTDIRNAME?= ${_PORTDIRNAME}
PKGORIGIN?= ${PKGCATEGORY}/${PORTDIRNAME}
.endif
.if ${OSVERSION} < 460102 && ${PKGORIGIN} != "sysutils/pkg_install" \
&& exists(${LOCALBASE}/sbin/pkg_info)
BUILD_DEPENDS+= ${LOCALBASE}/sbin/pkg_info:${PORTSDIR}/sysutils/pkg_install
PKG_CMD?= ${LOCALBASE}/sbin/pkg_create
PKG_ADD?= ${LOCALBASE}/sbin/pkg_add
PKG_DELETE?= ${LOCALBASE}/sbin/pkg_delete
PKG_INFO?= ${LOCALBASE}/sbin/pkg_info
.else
PKG_CMD?= /usr/sbin/pkg_create
PKG_ADD?= /usr/sbin/pkg_add
PKG_ADD?= /usr/sbin/pkg_add
PKG_DELETE?= /usr/sbin/pkg_delete
PKG_INFO?= /usr/sbin/pkg_info
.endif
# Does the pkg_create tool support conflict checking?
PKGINSTALLVER!= ${PKG_INFO} -P 2>/dev/null | ${SED} -e 's/.*: //'
@ -2170,17 +2191,18 @@ maintainer:
VALID_CATEGORIES+= accessibility afterstep archivers astro audio \
benchmarks biology cad chinese comms converters databases \
deskutils devel editors elisp emulators finance french ftp \
deskutils devel dns editors elisp emulators finance french ftp \
games german gnome graphics haskell hebrew hungarian \
ipv6 irc japanese java kde korean lang linux \
mail math mbone misc multimedia net news \
offix palm parallel perl5 picobsd plan9 portuguese print python \
offix palm parallel perl5 picobsd plan9 polish portuguese print python \
ruby russian \
scheme science security shells sysutils \
tcl76 tcl80 tcl81 tcl82 tcl83 tcl84 textproc \
tk42 tk80 tk82 tk83 tk84 tkstep80 \
ukrainian vietnamese windowmaker www \
x11 x11-clocks x11-fm x11-fonts x11-servers x11-toolkits x11-wm zope
x11 x11-clocks x11-fm x11-fonts x11-servers x11-toolkits x11-wm xfce \
zope
check-categories:
.for cat in ${CATEGORIES}
@ -3005,7 +3027,6 @@ delete-package-list: delete-package-links-list
.if !target(check-already-installed)
check-already-installed:
.if !defined(NO_PKG_REGISTER) && !defined(FORCE_PKG_REGISTER)
.if ${OSVERSION} >= 460102
@${ECHO_MSG} "===> Checking if ${PKGORIGIN} already installed"
@already_installed=`${PKG_INFO} -q -O ${PKGORIGIN} 2> /dev/null`; \
if [ -n "$${already_installed}" ]; then \
@ -3020,7 +3041,6 @@ check-already-installed:
fi; \
done; \
fi;
.endif
@if [ -d ${PKG_DBDIR}/${PKGNAME} -o -n "$${found_package}" ]; then \
if [ -d ${PKG_DBDIR}/${PKGNAME} ]; then \
${ECHO_CMD} "===> ${PKGNAME} is already installed"; \
@ -3238,7 +3258,7 @@ ${target}: ${${target:U}_COOKIE}
.if !exists(${${target:U}_COOKIE})
.if ${UID} != 0 && defined(_${target:U}_SUSEQ)
.if ${UID} != 0 && defined(_${target:U}_SUSEQ) && !defined(INSTALL_AS_USER)
.if defined(USE_SUBMAKE)
${${target:U}_COOKIE}: ${_${target:U}_DEP}
@cd ${.CURDIR} && ${MAKE} ${__softMAKEFLAGS} ${_${target:U}_SEQ}
@ -3247,7 +3267,7 @@ ${${target:U}_COOKIE}: ${_${target:U}_DEP} ${_${target:U}_SEQ}
.endif
@echo "===> Switching to root credentials for '${target}' target"
@cd ${.CURDIR} && \
${SU} root -c "${MAKE} ${__softMAKEFLAGS} ${_${target:U}_SUSEQ}"
${SU_CMD} "${MAKE} ${__softMAKEFLAGS} ${_${target:U}_SUSEQ}"
@echo "===> Returning to user credentials"
@${TOUCH} ${TOUCH_FLAGS} ${.TARGET}
.elif defined(USE_SUBMAKE)
@ -3403,7 +3423,6 @@ reinstall:
.if !target(deinstall)
deinstall:
@${ECHO_MSG} "===> Deinstalling for ${PKGORIGIN}"
.if ${OSVERSION} >= 460102
@found_names=`${PKG_INFO} -q -O ${PKGORIGIN} 2> /dev/null`; \
for p in $${found_names}; do \
check_name=`${ECHO} $${p} | ${SED} -e 's/-[^-]*$$//'`; \
@ -3420,13 +3439,6 @@ deinstall:
if [ -z "$${found_names}" ]; then \
${ECHO_MSG} "===> ${PKGBASE} not installed, skipping"; \
fi
.else
@if ${PKG_INFO} -e ${PKGNAME}; then \
${PKG_DELETE} -f ${PKGNAME}; \
else \
${ECHO_MSG} "===> ${PKGNAME} not installed, skipping"; \
fi
.endif
@${RM} -f ${INSTALL_COOKIE} ${PACKAGE_COOKIE}
.endif
@ -3436,7 +3448,6 @@ deinstall:
.if !target(deinstall-all)
deinstall-all:
.if ${OSVERSION} >= 460102
@${ECHO_MSG} "===> Deinstalling for ${PKGORIGIN}"
@deinstall_names=`${PKG_INFO} -q -O ${PKGORIGIN} 2> /dev/null`; \
if [ -n "$${deinstall_names}" ]; then \
@ -3449,7 +3460,6 @@ deinstall-all:
fi
@${RM} -f ${INSTALL_COOKIE} ${PACKAGE_COOKIE}
.endif
.endif
# Cleaning up
@ -4063,7 +4073,7 @@ PACKAGE-DEPENDS-LIST?= \
# Print out package names.
package-depends:
.if ${OSVERSION} >= 460102
.if ${OSVERSION} >= 460102 || exists(${LOCALBASE}/sbin/pkg_info)
@${PACKAGE-DEPENDS-LIST} | ${AWK} '{print $$1":"$$3}'
.else
@${PACKAGE-DEPENDS-LIST} | ${AWK} '{print $$1}'