FreeBSD Bugzilla – Attachment 68385 Details for
Bug 100555
[patch] bsd.port.mk - DESTDIR support
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
destdir_mk.diff
destdir_mk.diff (text/plain), 44.70 KB, created by
Gabor Kovesdan
on 2006-07-19 17:20:14 UTC
(
hide
)
Description:
destdir_mk.diff
Filename:
MIME Type:
Creator:
Gabor Kovesdan
Created:
2006-07-19 17:20:14 UTC
Size:
44.70 KB
patch
obsolete
>diff -Nur /usr/ports/Mk/bsd.apache.mk ../Mk/bsd.apache.mk >--- /usr/ports/Mk/bsd.apache.mk Tue Jun 20 06:58:12 2006 >+++ ../Mk/bsd.apache.mk Sat Jul 15 22:39:38 2006 >@@ -175,7 +175,7 @@ > --${SUEXEC_CONFARGS}-safepath="${SUEXEC_SAFEPATH}" \ > --${SUEXEC_CONFARGS}-logfile="${SUEXEC_LOGFILE}" > .if ${USE_APACHE:Mcommon2*} != "" >-CONFIGURE_ARGS+= --${SUEXEC_CONFARGS}-bin="${PREFIX}/sbin/suexec" >+CONFIGURE_ARGS+= --${SUEXEC_CONFARGS}-bin="${DESTDIR}${PREFIX}/sbin/suexec" > .endif > > . if defined(WITH_SUEXEC_UMASK) >diff -Nur /usr/ports/Mk/bsd.emacs.mk ../Mk/bsd.emacs.mk >--- /usr/ports/Mk/bsd.emacs.mk Tue May 16 19:11:20 2006 >+++ ../Mk/bsd.emacs.mk Sat Jul 15 22:39:38 2006 >@@ -236,8 +236,8 @@ > > # find where emacsen is installed > # look for it in PREEFIX first and fall back to LOCALBASE then >-.if exists(${PREFIX}/bin/${EMACS_NAME}-${EMACS_VER}) >-EMACS_BASE?= ${PREFIX} >+.if exists(${DESTDIR}${PREFIX}/bin/${EMACS_NAME}-${EMACS_VER}) >+EMACS_BASE?= ${DESTDIR}${PREFIX} > .else > EMACS_BASE?= ${LOCALBASE} > .endif >diff -Nur /usr/ports/Mk/bsd.gnome.mk ../Mk/bsd.gnome.mk >--- /usr/ports/Mk/bsd.gnome.mk Wed Jul 5 04:18:08 2006 >+++ ../Mk/bsd.gnome.mk Sat Jul 15 22:39:38 2006 >@@ -106,13 +106,13 @@ > GNOME_HTML_DIR?= ${PREFIX}/share/doc > GCONF_CONFIG_OPTIONS?= merged > GCONF_CONFIG_DIRECTORY?=etc/gconf/gconf.xml.defaults >-GCONF_CONFIG_SOURCE?=xml:${GCONF_CONFIG_OPTIONS}:${PREFIX}/${GCONF_CONFIG_DIRECTORY} >+GCONF_CONFIG_SOURCE?=xml:${GCONF_CONFIG_OPTIONS}:${DESTDIR}${PREFIX}/${GCONF_CONFIG_DIRECTORY} > GNOME_LOCALSTATEDIR?= ${PREFIX}/share/gnome > gnomeprefix_CONFIGURE_ENV=GTKDOC="false" >-gnomeprefix_CONFIGURE_ARGS=--localstatedir=${GNOME_LOCALSTATEDIR} \ >- --datadir=${PREFIX}/share/gnome \ >- --with-html-dir=${GNOME_HTML_DIR} \ >- --with-help-dir=${PREFIX}/share/gnome/help \ >+gnomeprefix_CONFIGURE_ARGS=--localstatedir=${DESTDIR}${GNOME_LOCALSTATEDIR} \ >+ --datadir=${DESTDIR}${PREFIX}/share/gnome \ >+ --with-html-dir=${DESTDIR}${GNOME_HTML_DIR} \ >+ --with-help-dir=${DESTDIR}${PREFIX}/share/gnome/help \ > --disable-gtk-doc \ > --with-gconf-source=${GCONF_CONFIG_SOURCE} > gnomeprefix_USE_GNOME_IMPL=gnomehier >@@ -725,10 +725,10 @@ > > gnome-pre-su-install: > .if defined(_USE_GNOME) && ${_USE_GNOME:Mgnomeprefix}!="" && !defined(NO_MTREE) >- @${MTREE_CMD} ${MTREE_ARGS:S/${MTREE_FILE}/${GNOME_MTREE_FILE}/} ${PREFIX}/ >/dev/null >+ @${MTREE_CMD} ${MTREE_ARGS:S/${MTREE_FILE}/${GNOME_MTREE_FILE}/} ${DESTDIR}${PREFIX}/ >/dev/null > .endif > .if defined(GCONF_SCHEMAS) >- @${MKDIR} ${PREFIX}/etc/gconf/gconf.xml.defaults/ >+ @${MKDIR} ${DESTDIR}${PREFIX}/etc/gconf/gconf.xml.defaults/ > .else > @${DO_NADA} > .endif >diff -Nur /usr/ports/Mk/bsd.mail.mk ../Mk/bsd.mail.mk >--- /usr/ports/Mk/bsd.mail.mk Sat Jan 21 18:37:01 2006 >+++ ../Mk/bsd.mail.mk Sat Jul 15 22:39:38 2006 >@@ -51,9 +51,9 @@ > .endif > > .if defined(QMAIL_SLAVEPORT) >-QMAIL_DEPENDS= ${QMAIL_PREFIX}/bin/qmail-send:${PORTSDIR}/mail/qmail-${QMAIL_SLAVEPORT:L} >+QMAIL_DEPENDS= ${DESTDIR}${QMAIL_PREFIX}/bin/qmail-send:${PORTSDIR}/mail/qmail-${QMAIL_SLAVEPORT:L} > .else >-QMAIL_DEPENDS= ${QMAIL_PREFIX}/bin/qmail-send:${PORTSDIR}/mail/qmail >+QMAIL_DEPENDS= ${DESTDIR}${QMAIL_PREFIX}/bin/qmail-send:${PORTSDIR}/mail/qmail > .endif > > .if defined(USE_QMAIL) || defined(USE_QMAIL_RUN) >diff -Nur /usr/ports/Mk/bsd.openssl.mk ../Mk/bsd.openssl.mk >--- /usr/ports/Mk/bsd.openssl.mk Thu May 25 17:17:34 2006 >+++ ../Mk/bsd.openssl.mk Sat Jul 15 22:39:38 2006 >@@ -59,10 +59,10 @@ > .endif > > .if defined(WITH_OPENSSL_BASE) >-OPENSSLBASE= /usr >-OPENSSLDIR= /etc/ssl >+OPENSSLBASE= ${DESTDIR}/usr >+OPENSSLDIR= ${DESTDIR}/etc/ssl > >-.if !exists(/usr/lib/libcrypto.so) >+.if !exists(${DESTDIR}/usr/lib/libcrypto.so) > check-depends:: > @${ECHO_CMD} "Dependency error: this port requires the OpenSSL library, which is part of" > @${ECHO_CMD} "the FreeBSD crypto distribution but not installed on your" >@@ -98,7 +98,7 @@ > .endif > MAKE_ARGS+= OPENSSL_CFLAGS="${OPENSSL_CFLAGS}" > .endif >-OPENSSLRPATH= /usr/lib:${LOCALBASE}/lib >+OPENSSLRPATH= ${DESTDIR}$/usr/lib:${LOCALBASE}/lib > > .else > >diff -Nur /usr/ports/Mk/bsd.port.mk ../Mk/bsd.port.mk >--- /usr/ports/Mk/bsd.port.mk Tue Jul 18 06:12:51 2006 >+++ ../Mk/bsd.port.mk Wed Jul 19 17:40:51 2006 >@@ -472,7 +472,7 @@ > # If this is set to a list of files, these files will be > # automatically added to ${SUB_FILES}, some %%VAR%%'s will > # automatically be expanded, they will be installed in >-# ${PREFIX}/etc/rc.d and added to the packing list. >+# ${DESTDIR}${PREFIX}/etc/rc.d and added to the packing list. > # USE_RCORDER - List of rc.d startup scripts to be called early in the boot > # process. This acts exactly like USE_RC_SUBR except that > # scripts are installed in /etc/rc.d. >@@ -492,15 +492,31 @@ > # Various directory definitions and variables to control them. > # You rarely need to redefine any of these except WRKSRC and NO_WRKSUBDIR. > # >+# DESTDIR - The path to the environment we are installing to. Define >+# this if you want to install packages into a jail >+# or into an another FreeBSD environment mounted >+# elsewhere than /. ${PREFIX} is relative to >+# ${DESTDIR}. E.g. setting DESTDIR=/bla PREFIX=/opt will >+# result packages installed under /bla/opt and registered >+# under /bla/var/db/pkg. >+# Default: not set (means /) >+# > # X11BASE - Where X11 ports install things. >+# Default: ${DESTDIR}/usr/X11R6 >+# X11BASE_REL - Same as X11BASE, but relative to DESTDIR > # Default: /usr/X11R6 > # LOCALBASE - Where non-X11 ports install things. >+# Default: ${DESTDIR}/usr/local >+# LOCALBASE_REL - Same as LOCALBASE, but relative to DESTDIR > # Default: /usr/local > # LINUXBASE - Where Linux ports install things. >+# Default: ${DESTDIR}/compat/linux >+# LINUXBASE_REL - Same as LINUXBASE, but relative to DESTDIR > # Default: /compat/linux > # PREFIX - Where *this* port installs its files. >-# Default: ${X11BASE} if USE_X_PREFIX is set, ${LINUXBASE} if >-# USE_LINUX_PREFIX is set, otherwise ${LOCALBASE} >+# Default: ${X11BASE_REL} if USE_X_PREFIX is set, >+# ${LINUXBASE_REL} if USE_LINUX_PREFIX is set, >+# otherwise ${LOCALBASE_REL} > # MASTERDIR - Where the port finds patches, package files, etc. Define > # this is you have two or more ports that share most of the > # files. >@@ -567,7 +583,7 @@ > # installs its own manpage links so they will show up > # correctly in ${PLIST}.) > # MANPREFIX - The directory prefix for ${MAN<sect>} and ${MLINKS}. >-# Default: ${PREFIX} >+# Default: ${DESTDIR}${PREFIX} > # MAN<sect>PREFIX > # - If manual pages of some sections install in different > # locations than others, use these. >@@ -854,7 +870,7 @@ > # rest of PLIST, so ${PLIST_SUB} substitutions also > # apply here. It is recommended that you use > # %%PREFIX%% for ${PREFIX}, %%LOCALBASE%% for >-# ${LOCALBASE} and %%X11BASE%% for ${X11BASE}. >+# ${LOCALBASE_REL} and %%X11BASE%% for ${X11BASE_REL}. > # Default: %%PREFIX%%/lib > # USE_LDCONFIG - If set to "yes", it replaces the old variable INSTALLS_SHLIB. > # Otherwise, it can be set to a list of directories to be added to >@@ -868,14 +884,14 @@ > # Note: that should only be used on 64-bit architectures. > # > # DOCSDIR - Name of the directory to install the packages docs in. >-# Default: ${PREFIX}/share/doc/${PORTNAME} >+# Default: ${DESTDIR}${PREFIX}/share/doc/${PORTNAME} > # EXAMPLESDIR - Name of the directory to install the packages examples in. >-# Default: ${PREFIX}/share/examples/${PORTNAME} >+# Default: ${DESTDIR}${PREFIX}/share/examples/${PORTNAME} > # DATADIR - Name of the directory to install the packages shared data in. >-# Default: ${PREFIX}/share/${PORTNAME} >+# Default: ${DESTDIR}${PREFIX}/share/${PORTNAME} > # > # DESKTOPDIR - Name of the directory to install ${DESKTOP_ENTRIES} in. >-# Default: ${PREFIX}/share/applications >+# Default: ${DESTDIR}${PREFIX}/share/applications > # DESKTOP_ENTRIES > # - List of desktop entry files to generate and install in > # ${DESKTOPDIR}. The format is >@@ -944,9 +960,9 @@ > # it attempts to apply them. > # PKG_DBDIR - Where package installation is recorded; this directory > # must not contain anything else. >-# Default: /var/db/pkg >+# Default: ${DESTDIR}/var/db/pkg > # PORT_DBDIR - Where port configuration options are recorded. >-# Default: /var/db/ports >+# Default: ${DESTDIR}/var/db/ports > # NO_PKG_REGISTER > # - Don't register a port installation as a package. > # FORCE_PKG_REGISTER >@@ -1022,6 +1038,7 @@ > CHGRP?= /usr/bin/chgrp > CHMOD?= /bin/chmod > CHOWN?= /usr/sbin/chown >+CHROOT?= /usr/sbin/chroot > COMM?= /usr/bin/comm > CP?= /bin/cp > CPIO?= /usr/bin/cpio >@@ -1094,6 +1111,30 @@ > # Kludge for pre-3.0 systems > MACHINE_ARCH?= i386 > >+# Check the compatibility layer for amd64/ia64 >+ >+.if ${ARCH} == "amd64" || ${ARCH} =="ia64" >+.if exists(/usr/lib32) >+HAVE_COMPAT_IA32_LIBS?= YES >+.endif >+.if !defined(HAVE_COMPAT_IA32_KERN) >+HAVE_COMPAT_IA32_KERN!= if ${SYSCTL} -a compat.ia32.maxvmem >/dev/null 2>&1; then echo YES; fi >+.endif >+.endif >+ >+.if defined(IA32_BINARY_PORT) && ${ARCH} != "i386" >+.if ${ARCH} == "amd64" || ${ARCH} == "ia64" >+.if !defined(HAVE_COMPAT_IA32_KERN) >+IGNORE= you need a kernel with compiled-in IA32 compatibility to use this port. >+.elif !defined(HAVE_COMPAT_IA32_LIBS) >+IGNORE= you need the 32-bit libraries installed under /usr/lib32 to use this port. >+.endif >+.else >+IGNORE= you have to use i386 (or compatible) platform to use this port. >+.endif >+.endif >+ >+ > # Get the operating system type > .if !defined(OPSYS) > OPSYS!= ${UNAME} -s >@@ -1106,8 +1147,14 @@ > > # Get __FreeBSD_version > .if !defined(OSVERSION) >+.if exists(${DESTDIR}/usr/include/sys/param.h) >+OSVERSION!= ${AWK} '/^\#define __FreeBSD_version/ {print $$3}' < ${DESTDIR}/usr/include/sys/param.h >+.elif exists(${DESTDIR}/usr/src/sys/sys/param.h) >+OSVERSION!= ${AWK} '/^\#define __FreeBSD_version/ {print $$3}' < ${DESTDIR}/usr/src/sys/sys/param.h >+.else > OSVERSION!= ${SYSCTL} -n kern.osreldate > .endif >+.endif > > # Get the object format. > .if !defined(PORTOBJFORMAT) >@@ -1177,7 +1224,7 @@ > .endif > > # where 'make config' records user configuration options >-PORT_DBDIR?= /var/db/ports >+PORT_DBDIR?= ${DESTDIR}/var/db/ports > > LDCONFIG_DIR= libdata/ldconfig > LDCONFIG32_DIR= libdata/ldconfig32 >@@ -1264,9 +1311,15 @@ > # tree we are and thus can't go relative. They can, of course, be overridden > # by individual Makefiles or local system make configuration. > PORTSDIR?= /usr/ports >-LOCALBASE?= ${DESTDIR}/usr/local >-X11BASE?= ${DESTDIR}/usr/X11R6 >-LINUXBASE?= ${DESTDIR}/compat/linux >+LOCALBASE?= /usr/local >+X11BASE?= /usr/X11R6 >+LINUXBASE?= /compat/linux >+LOCALBASE_REL:= ${LOCALBASE} >+X11BASE_REL:= ${X11BASE} >+LINUXBASE_REL:= ${LINUXBASE} >+LOCALBASE:= ${DESTDIR}${LOCALBASE_REL} >+X11BASE:= ${DESTDIR}${X11BASE_REL} >+LINUXBASE:= ${DESTDIR}${LINUXBASE_REL} > DISTDIR?= ${PORTSDIR}/distfiles > _DISTDIR?= ${DISTDIR}/${DIST_SUBDIR} > INDEXDIR?= ${PORTSDIR} >@@ -1311,22 +1364,64 @@ > USE_XLIB= yes > .endif > .if defined(USE_X_PREFIX) >-PREFIX?= ${X11BASE} >+PREFIX?= ${X11BASE_REL} > .elif defined(USE_LINUX_PREFIX) >-PREFIX?= ${LINUXBASE} >+PREFIX?= ${LINUXBASE_REL} > NO_MTREE= yes > .else >-PREFIX?= ${LOCALBASE} >+PREFIX?= ${LOCALBASE_REL} > .endif > > .if defined(USE_LINUX_PREFIX) >-LDCONFIG_CMD?= ${LINUXBASE}/sbin/ldconfig -r ${LINUXBASE} >+.if !defined(DESTDIR) >+LDCONFIG_CMD?= ${LINUXBASE_REL}/sbin/ldconfig -r ${LINUXBASE_REL} >+.else >+LDCONFIG_CMD?= ${CHROOT} ${DESTDIR} ${LINUXBASE_REL}/sbin/ldconfig -r ${LINUXBASE_REL} >+.endif > LDCONFIG_PLIST_EXEC_CMD?= ${LDCONFIG_CMD} > LDCONFIG_PLIST_UNEXEC_CMD?= ${LDCONFIG_CMD} > .else >-LDCONFIG_CMD?= ${LDCONFIG} -m ${LDCONFIG_RUNLIST} >+.if !defined(DESTDIR) >+LDCONFIG_CMD?= ${LDCONFIG} -m ${LDCONFIG_RUNLIST} > LDCONFIG_PLIST_EXEC_CMD?= ${LDCONFIG} -m ${LDCONFIG_PLIST} > LDCONFIG_PLIST_UNEXEC_CMD?= ${LDCONFIG} -R >+.else >+LDCONFIG_CMD?= ${CHROOT} ${DESTDIR} ${LDCONFIG} -m ${LDCONFIG_RUNLIST} >+LDCONFIG_PLIST_EXEC_CMD?= ${CHROOT} ${DESTDIR} ${LDCONFIG} -m ${LDCONFIG_PLIST} >+LDCONFIG_PLIST_UNEXEC_CMD?= ${CHROOT} ${DESTDIR} ${LDCONFIG} -R >+.endif >+.endif >+ >+# These do some path checks if DESTDIR is set correctly. >+# You can force skipping these test by defining IGNORE_PATH_CHECKS >+.if !defined(IGNORE_PATH_CHECKS) >+.if (${PREFIX:C,(^.).*,\1,} != "/") >+.BEGIN: >+ @${ECHO_MSG} "PREFIX must be defined as an absolute path so that when 'make'" >+ @${ECHO_MSG} "is invoked in the work area PREFIX points to the right place." >+ @${FALSE} >+.endif >+.if defined(DESTDIR) >+.if (${DESTDIR:C,(^.).*,\1,} != "/") >+.if ${DESTDIR} == "/" >+.BEGIN: >+ @${ECHO_MSG} "You can't set DESTDIR to /. Please re-run make with" >+ @${ECHO_MSG} "DESTDIR unset." >+ @${FALSE} >+.else >+.BEGIN: >+ @${ECHO_MSG} "DESTDIR must be defined as an absolute path so that when 'make'" >+ @${ECHO_MSG} "is invoked in the work area DESTDIR points to the right place." >+ @${FALSE} >+.endif >+.endif >+.if (${DESTDIR:C,^.*(/)$$,\1,} == "/") >+.BEGIN: >+ @${ECHO_MSG} "DESTDIR can't have a trailing slash. Please remove the trailing" >+ @${ECHO_MSG} "slash and re-run 'make'" >+ @${FALSE} >+.endif >+.endif > .endif > > PKGCOMPATDIR?= ${LOCALBASE}/lib/compat/pkg >@@ -1381,8 +1476,8 @@ > SITE_PERL?= ${LOCALBASE}/${SITE_PERL_REL} > > .if ${PERL_LEVEL} < 500600 >-PERL5= /usr/bin/perl${PERL_VERSION} >-PERL= /usr/bin/perl >+PERL5= ${DESTDIR}/usr/bin/perl${PERL_VERSION} >+PERL= ${DESTDIR}/usr/bin/perl > .else > PERL5= ${LOCALBASE}/bin/perl${PERL_VERSION} > PERL= ${LOCALBASE}/bin/perl >@@ -1496,8 +1591,8 @@ > BUILD_WRKSRC?= ${WRKSRC} > INSTALL_WRKSRC?=${WRKSRC} > >-PLIST_SUB+= OSREL=${OSREL} PREFIX=%D LOCALBASE=${LOCALBASE} X11BASE=${X11BASE} >-SUB_LIST+= PREFIX=${PREFIX} LOCALBASE=${LOCALBASE} X11BASE=${X11BASE} \ >+PLIST_SUB+= OSREL=${OSREL} PREFIX=%D LOCALBASE=${LOCALBASE_REL} X11BASE=${X11BASE_REL} >+SUB_LIST+= PREFIX=${PREFIX} LOCALBASE=${LOCALBASE_REL} X11BASE=${X11BASE_REL} \ > DATADIR=${DATADIR} DOCSDIR=${DOCSDIR} EXAMPLESDIR=${EXAMPLESDIR} > > PLIST_REINPLACE+= dirrmtry >@@ -1838,10 +1933,10 @@ > PL_BUILD?= Build > CONFIGURE_ARGS+= \ > create_packlist=0 \ >- install_path=lib="${PREFIX}/${SITE_PERL_REL}" \ >- install_path=arch="${PREFIX}/${SITE_PERL_REL}/${PERL_ARCH}" \ >- install_path=script="${PREFIX}/bin" \ >- install_path=bin="${PREFIX}/bin" \ >+ install_path=lib="${DESTDIR}${PREFIX}/${SITE_PERL_REL}" \ >+ install_path=arch="${DESTDIR}${PREFIX}/${SITE_PERL_REL}/${PERL_ARCH}" \ >+ install_path=script="${DESTDIR}${PREFIX}/bin" \ >+ install_path=bin="${DESTDIR}${PREFIX}/bin" \ > install_path=libdoc="${MAN3PREFIX}/man/man3" \ > install_path=bindoc="${MAN1PREFIX}/man/man1" > .elif defined(PERL_CONFIGURE) >@@ -1986,7 +2081,7 @@ > NONEXISTENT?= /nonexistent > > # Miscellaneous overridable commands: >-GMAKE?= gmake >+GMAKE?= ${LOCALBASE}/bin/gmake > XMKMF?= xmkmf -a > .if exists(/sbin/md5) > MD5?= /sbin/md5 >@@ -1995,8 +2090,8 @@ > .endif > .if exists(/sbin/sha256) > SHA256?= /sbin/sha256 >-.elif exists(${LOCALBASE}/sbin/sha256) >-SHA256?= ${LOCALBASE}/sbin/sha256 >+.elif exists(${LOCALBASE_REL}/sbin/sha256) >+SHA256?= ${LOCALBASE_REL}/sbin/sha256 > .else > SHA256?= NO > .endif >@@ -2007,7 +2102,7 @@ > > MAKE_FLAGS?= -f > MAKEFILE?= Makefile >-MAKE_ENV+= PREFIX=${PREFIX} LOCALBASE=${LOCALBASE} X11BASE=${X11BASE} MOTIFLIB="${MOTIFLIB}" LIBDIR="${LIBDIR}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" MANPREFIX="${MANPREFIX}" >+MAKE_ENV+= DESTDIR=${DESTDIR} PREFIX=${PREFIX} LOCALBASE=${LOCALBASE_REL} X11BASE=${X11BASE_REL} MOTIFLIB="${MOTIFLIB}" LIBDIR="${LIBDIR}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" MANPREFIX="${MANPREFIX}" > > .if ${OSVERSION} < 500016 > PTHREAD_CFLAGS?= -D_THREAD_SAFE >@@ -2101,7 +2196,7 @@ > > # Figure out where the local mtree file is > .if !defined(MTREE_FILE) && !defined(NO_MTREE) >-.if ${PREFIX} == ${X11BASE} || defined(USE_X_PREFIX) >+.if ${PREFIX} == ${X11BASE_REL} || defined(USE_X_PREFIX) > # User may have specified non-standard PREFIX for installing a port that > # uses X > .if ${X_WINDOW_SYSTEM:L} == xfree86-3 >@@ -2177,23 +2272,38 @@ > .if ${OSVERSION} < 491101 && ${PKGORIGIN} != "sysutils/pkg_install" > EXTRACT_DEPENDS+= ${LOCALBASE}/sbin/pkg_info:${PORTSDIR}/sysutils/pkg_install > .endif >-PKG_CMD?= ${LOCALBASE}/sbin/pkg_create >-PKG_ADD?= ${LOCALBASE}/sbin/pkg_add >-PKG_DELETE?= ${LOCALBASE}/sbin/pkg_delete >-PKG_INFO?= ${LOCALBASE}/sbin/pkg_info >-PKG_VERSION?= ${LOCALBASE}/sbin/pkg_version >+.if !defined(DESTDIR) >+PKG_CMD?= ${LOCALBASE_REL}/sbin/pkg_create >+PKG_ADD?= ${LOCALBASE_REL}/sbin/pkg_add >+PKG_DELETE?= ${LOCALBASE_REL}/sbin/pkg_delete >+PKG_INFO?= ${LOCALBASE_REL}/sbin/pkg_info >+PKG_VERSION?= ${LOCALBASE_REL}/sbin/pkg_version >+.else >+PKG_CMD?= ${LOCALBASE_REL}/sbin/pkg_create >+PKG_ADD?= ${CHROOT} ${DESTDIR} ${LOCALBASE_REL}/sbin/pkg_add >+PKG_DELETE?= ${CHROOT} ${DESTDIR} ${LOCALBASE_REL}/sbin/pkg_delete >+PKG_INFO?= ${CHROOT} ${DESTDIR} ${LOCALBASE_REL}/sbin/pkg_info >+.endif > .else >+.if !defined(DESTDIR) > PKG_CMD?= /usr/sbin/pkg_create > PKG_ADD?= /usr/sbin/pkg_add > PKG_DELETE?= /usr/sbin/pkg_delete > PKG_INFO?= /usr/sbin/pkg_info > PKG_VERSION?= /usr/sbin/pkg_version >+.else >+PKG_CMD?= /usr/sbin/pkg_create >+PKG_ADD?= ${CHROOT} ${DESTDIR} /usr/sbin/pkg_add >+PKG_DELETE?= ${CHROOT} ${DESTDIR} /usr/sbin/pkg_delete >+PKG_INFO?= ${CHROOT} ${DESTDIR} /usr/sbin/pkg_info >+PKG_VERSION?= ${CHROOT} ${DESTDIR} /usr/sbin/pkg_version >+.endif > .endif > > # Does the pkg_create tool support conflict checking? > # XXX Slow? > .if !defined(PKGINSTALLVER) >-PKGINSTALLVER!= ${PKG_INFO} -P 2>/dev/null | ${SED} -e 's/.*: //' >+PKGINSTALLVER!= ${CHROOT} ${DESTDIR} ${PKG_INFO} -P 2>/dev/null | ${SED} -e 's/.*: //' > .endif > .if ${PKGINSTALLVER} < 20030417 > DISABLE_CONFLICTS= YES >@@ -2220,7 +2330,7 @@ > .endif > .endif > # where pkg_add records its dirty deeds. >-PKG_DBDIR?= /var/db/pkg >+PKG_DBDIR?= ${DESTDIR}/var/db/pkg > > MOTIFLIB?= -L${X11BASE}/lib -lXm -lXp > >@@ -2714,10 +2824,10 @@ > PKGLATESTFILE= ${PKGLATESTREPOSITORY}/${LATEST_LINK}${PKG_SUFX} > > .if defined(PERL_CONFIGURE) >-CONFIGURE_ARGS+= CC="${CC}" CCFLAGS="${CFLAGS}" PREFIX="${PREFIX}" \ >- INSTALLPRIVLIB="${PREFIX}/lib" INSTALLARCHLIB="${PREFIX}/lib" >+CONFIGURE_ARGS+= CC="${CC}" CCFLAGS="${CFLAGS}" PREFIX="${DESTDIR}${PREFIX}" \ >+ INSTALLPRIVLIB="${DESTDIR}${PREFIX}/lib" INSTALLARCHLIB="${DESTDIR}${PREFIX}/lib" > CONFIGURE_SCRIPT?= Makefile.PL >-MAN3PREFIX?= ${PREFIX}/lib/perl5/${PERL_VERSION} >+MAN3PREFIX?= ${DESTDIR}${PREFIX}/lib/perl5/${PERL_VERSION} > .undef HAS_CONFIGURE > .endif > >@@ -2743,16 +2853,17 @@ > WRKDIR=${WRKDIR} WRKSRC=${WRKSRC} PATCHDIR=${PATCHDIR} \ > SCRIPTDIR=${SCRIPTDIR} FILESDIR=${FILESDIR} \ > PORTSDIR=${PORTSDIR} DEPENDS="${DEPENDS}" \ >- PREFIX=${PREFIX} LOCALBASE=${LOCALBASE} X11BASE=${X11BASE} >+ PREFIX=${PREFIX} LOCALBASE=${LOCALBASE} X11BASE=${X11BASE} \ >+ DESTDIR=${DESTDIR} > > .if defined(BATCH) > SCRIPTS_ENV+= BATCH=yes > .endif > > .if ${PREFIX} == /usr >-MANPREFIX?= /usr/share >+MANPREFIX?= ${DESTDIR}/usr/share > .else >-MANPREFIX?= ${PREFIX} >+MANPREFIX?= ${DESTDIR}${PREFIX} > .endif > > .for sect in 1 2 3 4 5 6 7 8 9 >@@ -2830,9 +2941,9 @@ > .if defined(_MANPAGES) > > .if defined(NOMANCOMPRESS) >-__MANPAGES:= ${_MANPAGES:S%^${PREFIX}/%%} >+__MANPAGES:= ${_MANPAGES:S%^${DESTDIR}${PREFIX}/%%} > .else >-__MANPAGES:= ${_MANPAGES:S%^${PREFIX}/%%:S%$%.gz%} >+__MANPAGES:= ${_MANPAGES:S%^${DESTDIR}${PREFIX}/%%:S%$%.gz%} > .endif > > .if ${MANCOMPRESSED} == "yes" >@@ -2847,16 +2958,16 @@ > INFO_PATH?= info > .endif > >-DOCSDIR?= ${PREFIX}/share/doc/${PORTNAME} >-EXAMPLESDIR?= ${PREFIX}/share/examples/${PORTNAME} >-DATADIR?= ${PREFIX}/share/${PORTNAME} >- >-PLIST_SUB+= DOCSDIR="${DOCSDIR:S,^${PREFIX}/,,}" \ >- EXAMPLESDIR="${EXAMPLESDIR:S,^${PREFIX}/,,}" \ >- DATADIR="${DATADIR:S,^${PREFIX}/,,}" >+DOCSDIR?= ${DESTDIR}${PREFIX}/share/doc/${PORTNAME} >+EXAMPLESDIR?= ${DESTDIR}${PREFIX}/share/examples/${PORTNAME} >+DATADIR?= ${DESTDIR}${PREFIX}/share/${PORTNAME} >+ >+PLIST_SUB+= DOCSDIR="${DOCSDIR:S,^${DESTDIR}${PREFIX}/,,}" \ >+ EXAMPLESDIR="${EXAMPLESDIR:S,^${DESTDIR}${PREFIX}/,,}" \ >+ DATADIR="${DATADIR:S,^${DESTDIR}${PREFIX}/,,}" > >-DESKTOPDIR?= ${PREFIX}/share/applications >-_DESKTOPDIR_REL= ${DESKTOPDIR:S,^${PREFIX}/,,}/ >+DESKTOPDIR?= ${DESTDIR}${PREFIX}/share/applications >+_DESKTOPDIR_REL= ${DESKTOPDIR:S,^${DESTDIR}${PREFIX}/,,}/ > > .if ${_DESKTOPDIR_REL} == ${DESKTOPDIR}/ > # DESKTOPDIR is not beneath PREFIX >@@ -3016,7 +3127,7 @@ > @cd ${.CURDIR} && ${SETENV} CURDIR=${.CURDIR} DISTNAME=${DISTNAME} \ > DISTDIR=${DISTDIR} WRKDIR=${WRKDIR} WRKSRC=${WRKSRC} \ > PATCHDIR=${PATCHDIR} SCRIPTDIR=${SCRIPTDIR} \ >- FILESDIR=${FILESDIR} PORTSDIR=${PORTSDIR} PREFIX=${PREFIX} \ >+ FILESDIR=${FILESDIR} PORTSDIR=${PORTSDIR} DESTDIR=${DESTDIR} PREFIX=${PREFIX} \ > DEPENDS="${DEPENDS}" BUILD_DEPENDS="${BUILD_DEPENDS}" \ > RUN_DEPENDS="${RUN_DEPENDS}" X11BASE=${X11BASE} \ > CONFLICTS="${CONFLICTS}" \ >@@ -3500,7 +3611,11 @@ > done; \ > if [ -n "$${conflicts_with}" ]; then \ > ${ECHO_MSG}; \ >- ${ECHO_MSG} "===> ${PKGNAME} conflicts with installed package(s): "; \ >+ if [ -z "${DESTDIR}" ] ; then \ >+ ${ECHO_MSG} "===> ${PKGNAME} conflicts with installed package(s): "; \ >+ else \ >+ ${ECHO_MSG} "===> ${PKGNAME} conflicts with installed package(s) in ${DESTDIR}: "; \ >+ fi; \ > for entry in $${conflicts_with}; do \ > ${ECHO_MSG} " $${entry}"; \ > done; \ >@@ -3628,9 +3743,13 @@ > .if !target(check-already-installed) > check-already-installed: > .if !defined(NO_PKG_REGISTER) && !defined(FORCE_PKG_REGISTER) >+.if !defined(DESTDIR) > @${ECHO_MSG} "===> Checking if ${PKGORIGIN} already installed" >- @${MKDIR} ${PKG_DBDIR} >- @already_installed=`${PKG_INFO} -q -O ${PKGORIGIN}`; \ >+.else >+ @${ECHO_MSG} "===> Checking if ${PKGORIGIN} already installed in ${DESTDIR}" >+.endif >+ @${MKDIR} ${PKG_DBDIR}; \ >+ already_installed=`${PKG_INFO} -q -O ${PKGORIGIN}`; \ > if [ -n "$${already_installed}" ]; then \ > for p in $${already_installed}; do \ > prfx=`${PKG_INFO} -q -p $${p} 2> /dev/null | ${SED} -ne '1s|^@cwd ||p'`; \ >@@ -3642,12 +3761,20 @@ > fi; \ > fi; \ > done; \ >- fi; \ >- if [ -d ${PKG_DBDIR}/${PKGNAME} -o -n "$${found_package}" ]; then \ >+ fi >+ @if [ -d ${PKG_DBDIR}/${PKGNAME} -o -n "$${found_package}" ]; then \ > if [ -d ${PKG_DBDIR}/${PKGNAME} ]; then \ >+ if [ -z "${DESTDIR}" ] ; then \ > ${ECHO_CMD} "===> ${PKGNAME} is already installed"; \ >+ else \ >+ ${ECHO_CMD} "===> ${PKGNAME} is already installed in ${DESTDIR}"; \ >+ fi; \ > else \ >+ if [ -z "${DESTDIR}" ] ; then \ > ${ECHO_CMD} "===> An older version of ${PKGORIGIN} is already installed ($${found_package})"; \ >+ else \ >+ ${ECHO_CMD} "===> An older version of ${PKGORIGIN} is already installed in ${DESTDIR} ($${found_package})"; \ >+ fi; \ > fi; \ > ${ECHO_CMD} " You may wish to \`\`make deinstall'' and install this port again"; \ > ${ECHO_CMD} " by \`\`make reinstall'' to upgrade it properly."; \ >@@ -3672,12 +3799,12 @@ > > .if !target(install-mtree) > install-mtree: >- @${MKDIR} ${PREFIX} >+ @${MKDIR} ${DESTDIR}${PREFIX} > @if [ `${ID} -u` != 0 ]; then \ >- if [ -w ${PREFIX}/ ]; then \ >+ if [ -w ${DESTDIR}${PREFIX}/ ]; then \ > ${ECHO_MSG} "Warning: not superuser, you may get some errors during installation."; \ > else \ >- ${ECHO_MSG} "Error: ${PREFIX}/ not writable."; \ >+ ${ECHO_MSG} "Error: ${DESTDIR}${PREFIX}/ not writable."; \ > ${FALSE}; \ > fi; \ > fi >@@ -3688,9 +3815,9 @@ > ${ECHO_CMD} "Copy it from a suitable location (e.g., /usr/src/etc/mtree) and try again."; \ > exit 1; \ > else \ >- ${MTREE_CMD} ${MTREE_ARGS} ${PREFIX}/ >/dev/null; \ >+ ${MTREE_CMD} ${MTREE_ARGS} ${DESTDIR}${PREFIX}/ >/dev/null; \ > if [ ${MTREE_FILE} = "/etc/mtree/BSD.local.dist" ]; then \ >- cd ${PREFIX}/share/nls; \ >+ cd ${DESTDIR}${PREFIX}/share/nls; \ > ${LN} -shf C POSIX; \ > ${LN} -shf C en_US.US-ASCII; \ > fi; \ >@@ -3707,11 +3834,21 @@ > .if defined(USE_LDCONFIG) || defined(USE_LDCONFIG32) || defined(INSTALLS_SHLIB) > .if defined(USE_LDCONFIG) > .if !defined(INSTALL_AS_USER) >+.if !defined(DESTDIR) > @${ECHO_MSG} "===> Running ldconfig" > ${LDCONFIG} -m ${USE_LDCONFIG} > .else >+ @${ECHO_MSG} "===> Running ldconfig in ${DESTDIR}" >+ ${CHROOT} ${DESTDIR} ${LDCONFIG} -m ${USE_LDCONFIG} >+.endif >+.else >+.if !defined(DESTDIR) > @${ECHO_MSG} "===> Running ldconfig (errors are ignored)" > -${LDCONFIG} -m ${USE_LDCONFIG} >+.else >+ @${ECHO_MSG} "===> Running ldconfig in ${DESTDIR} (errors are ignored)" >+ ${CHROOT} ${DESTDIR} -${LDCONFIG} -m ${USE_LDCONFIG} >+.endif > .endif > .if ${USE_LDCONFIG:L} != "${PREFIX}/lib" > @${ECHO_MSG} "===> Installing ldconfig configuration file" >@@ -3728,11 +3865,21 @@ > .endif > .if defined(USE_LDCONFIG32) > .if !defined(INSTALL_AS_USER) >+.if !defined(DESTDIR) > @${ECHO_MSG} "===> Running ldconfig" > ${LDCONFIG} -32 -m ${USE_LDCONFIG32} > .else >+ @${ECHO_MSG} "===> Running ldconfig in ${DESTDIR}" >+ ${CHROOT} ${DESTDIR} ${LDCONFIG} -32 -m ${USE_LDCONFIG32} >+.endif >+.else >+.if !defined(DESTDIR) > @${ECHO_MSG} "===> Running ldconfig (errors are ignored)" > -${LDCONFIG} -32 -m ${USE_LDCONFIG32} >+.else >+ @${ECHO_MSG} "===> Running ldconfig in ${DESTDIR} (errors are ignored)" >+ ${CHROOT} ${DESTDIR} -${LDCONFIG} -32 -m ${USE_LDCONFIG32} >+.endif > .endif > @${ECHO_MSG} "===> Installing 32-bit ldconfig configuration file" > .if defined(NO_LDCONFIG_MTREE) >@@ -3748,10 +3895,18 @@ > # This can be removed once, all ports have been converted to USE_LDCONFIG. > .if defined(INSTALLS_SHLIB) > .if !defined(INSTALL_AS_USER) >+.if !defined(DESTDIR) > @${ECHO_MSG} "===> Running ldconfig" >+.else >+ @${ECHO_MSG} "===> Running ldconfig in ${DESTDIR}" >+.endif > ${LDCONFIG_CMD} > .else >+.if !defined(DESTDIR) > @${ECHO_MSG} "===> Running ldconfig (errors are ignored)" >+.else >+ @${ECHO_MSG} "===> Running ldconfig in ${DESTDIR} (errors are ignored)" >+.endif > -${LDCONFIG_CMD} > .endif > .endif >@@ -3786,7 +3941,7 @@ > | ${XARGS} -0 -J % ${FIND} % -prune ! -type l -type f -print0 2> /dev/null \ > | ${XARGS} -0 -n 1 ${OBJDUMP} -R 2> /dev/null > ${WRKDIR}/.PLIST.objdump; \ > if \ >- ! ${AWK} -v audit="$${PORTS_AUDIT}" -f ${PORTSDIR}/Tools/scripts/security-check.awk \ >+ ! ${AWK} -v audit="$${PORTS_AUDIT}" -v destdir="${DESTDIR}" -f ${PORTSDIR}/Tools/scripts/security-check.awk \ > ${WRKDIR}/.PLIST.flattened ${WRKDIR}/.PLIST.objdump ${WRKDIR}/.PLIST.setuid ${WRKDIR}/.PLIST.writable; \ > then \ > www_site=$$(cd ${.CURDIR} && ${MAKE} ${__softMAKEFLAGS} www-site); \ >@@ -3853,30 +4008,57 @@ > ${GREP} '^etc/rc.d/' ${TMPPLIST} > ${WRKDIR}/.PLIST.startup; \ > if [ -s ${WRKDIR}/.PLIST.setuid -o -s ${WRKDIR}/.PLIST.network -o -s ${WRKDIR}/.PLIST.writable ]; then \ > if [ -n "$$PORTS_AUDIT" ]; then \ >- ${ECHO_MSG} "===> SECURITY REPORT (PARANOID MODE): "; \ >+ if [ -z "${DESTDIR}" ] ; then \ >+ ${ECHO_MSG} "===> SECURITY REPORT (PARANOID MODE): "; \ >+ else \ >+ ${ECHO_MSG} "===> SECURITY REPORT FOR ${DESTDIR} (PARANOID MODE): "; \ >+ fi; \ > else \ >- ${ECHO_MSG} "===> SECURITY REPORT: "; \ >+ if [ -z "${DESTDIR}" ] ; then \ >+ ${ECHO_MSG} "===> SECURITY REPORT: "; \ >+ else \ >+ ${ECHO_MSG} "===> SECURITY REPORT FOR ${DESTDIR}: "; \ >+ fi; \ > fi; \ > if [ -s ${WRKDIR}/.PLIST.setuid ] ; then \ >- ${ECHO_MSG} " This port has installed the following binaries which execute with"; \ >- ${ECHO_MSG} " increased privileges."; \ >+ if [ -z "${DESTDIR}" ] ; then \ >+ ${ECHO_MSG} " This port has installed the following binaries,"; \ >+ else \ >+ ${ECHO_MSG} " This port has installed the following binaries into ${DESTDIR},"; \ >+ fi; \ >+ ${ECHO_MSG} " which execute with increased privileges."; \ > ${CAT} ${WRKDIR}/.PLIST.setuid; \ > ${ECHO_MSG}; \ > fi; \ > if [ -s ${WRKDIR}/.PLIST.network ] ; then \ >- ${ECHO_MSG} " This port has installed the following files which may act as network"; \ >- ${ECHO_MSG} " servers and may therefore pose a remote security risk to the system."; \ >+ if [ -z "${DESTDIR}" ] ; then \ >+ ${ECHO_MSG} " This port has installed the following files, which may act as network"; \ >+ ${ECHO_MSG} " servers and may therefore pose a remote security risk to the system."; \ >+ else \ >+ ${ECHO_MSG} " This port has installed the following files into ${DESTDIR}, which may"; \ >+ ${ECHO_MSG} " act as network servers and may therefore pose a remote security risk to"; \ >+ ${ECHO_MSG} " the system."; \ >+ fi; \ > ${CAT} ${WRKDIR}/.PLIST.network; \ > ${ECHO_MSG}; \ > if [ -s ${WRKDIR}/.PLIST.startup ] ; then \ >- ${ECHO_MSG} " This port has installed the following startup scripts which may cause"; \ >- ${ECHO_MSG} " these network services to be started at boot time."; \ >+ if [ -z "${DESTDIR}" ] ; then \ >+ ${ECHO_MSG} " This port has installed the following startup scripts,"; \ >+ else \ >+ ${ECHO_MSG} " This port has installed the following startup scripts into ${DESTDIR},"; \ >+ fi; \ >+ ${ECHO_MSG} " which may cause these network services to be started at boot time."; \ > ${SED} s,^,${PREFIX}/, < ${WRKDIR}/.PLIST.startup; \ > ${ECHO_MSG}; \ > fi; \ > fi; \ > if [ -s ${WRKDIR}/.PLIST.writable ] ; then \ >- ${ECHO_MSG} " This port has installed the following world-writable files/directories."; \ >+ if [ -z "${DESTDIR}" ] ; then \ >+ ${ECHO_MSG} " This port has installed the following world-writable files/directories."; \ >+ else \ >+ ${ECHO_MSG} " This port has installed the following world-writable files/directories"; \ >+ ${ECHO_MSG} " into ${DESTDIR}."; \ >+ fi; \ > ${CAT} ${WRKDIR}/.PLIST.writable; \ > ${ECHO_MSG}; \ > fi; \ >@@ -4018,7 +4200,11 @@ > build-message: > @${ECHO_MSG} "===> Building for ${PKGNAME}" > install-message: >+.if !defined(DESTDIR) > @${ECHO_MSG} "===> Installing for ${PKGNAME}" >+.else >+ @${ECHO_MSG} "===> Installing for ${PKGNAME} into ${DESTDIR}" >+.endif > package-message: > @${ECHO_MSG} "===> Building package for ${PKGNAME}" > >@@ -4100,14 +4286,22 @@ > ${SU_CMD} "${MAKE} ${__softMAKEFLAGS} ${.TARGET}" > @${ECHO_MSG} "===> Returning to user credentials" > .else >+.if !defined(DESTDIR) > @${ECHO_MSG} "===> Deinstalling for ${PKGORIGIN}" >+.else >+ @${ECHO_MSG} "===> Deinstalling for ${PKGORIGIN} from ${DESTDIR}" >+.endif > @found_names=`${PKG_INFO} -q -O ${PKGORIGIN}`; \ > for p in $${found_names}; do \ > check_name=`${ECHO_CMD} $${p} | ${SED} -e 's/-[^-]*$$//'`; \ > if [ "$${check_name}" = "${PKGBASE}" ]; then \ > prfx=`${PKG_INFO} -q -p $${p} 2> /dev/null | ${SED} -ne '1s|^@cwd ||p'`; \ > if [ "x${PREFIX}" = "x$${prfx}" ]; then \ >- ${ECHO_MSG} "===> Deinstalling $${p}"; \ >+ if [ -z "${DESTDIR}" ] ; then \ >+ ${ECHO_MSG} "===> Deinstalling $${p}"; \ >+ else \ >+ ${ECHO_MSG} "===> Deinstalling $${p} from ${DESTDIR}"; \ >+ fi; \ > ${PKG_DELETE} -f $${p}; \ > else \ > ${ECHO_MSG} "===> $${p} has a different PREFIX: $${prfx}, skipping"; \ >@@ -4115,7 +4309,11 @@ > fi; \ > done; \ > if [ -z "$${found_names}" ]; then \ >- ${ECHO_MSG} "===> ${PKGBASE} not installed, skipping"; \ >+ if [ -z "${DESTDIR}" ] ; then \ >+ ${ECHO_MSG} "===> ${PKGBASE} not installed, skipping"; \ >+ else \ >+ ${ECHO_MSG} "===> ${PKGBASE} not installed in ${DESTDIR}, skipping"; \ >+ fi; \ > fi > @${RM} -f ${INSTALL_COOKIE} ${PACKAGE_COOKIE} > .endif >@@ -4133,17 +4331,29 @@ > ${SU_CMD} "${MAKE} ${__softMAKEFLAGS} ${.TARGET}" > @${ECHO_MSG} "===> Returning to user credentials" > .else >+.if !defined(DESTDIR) > @${ECHO_MSG} "===> Deinstalling for ${PKGORIGIN}" >+.else >+ @${ECHO_MSG} "===> Deinstalling for ${PKGORIGIN} from ${DESTDIR}" >+.endif > @deinstall_names=`${PKG_INFO} -q -O ${PKGORIGIN}`; \ > if [ -n "$${deinstall_names}" ]; then \ > for d in $${deinstall_names}; do \ >- ${ECHO_MSG} "===> Deinstalling $${d}"; \ >+ if [ -z "${DESTDIR}" ] ; then \ >+ ${ECHO_MSG} "===> Deinstalling $${d}"; \ >+ else \ >+ ${ECHO_MSG} "===> Deinstalling $${d} from ${DESTDIR}"; \ >+ fi; \ > ${PKG_DELETE} -f $${d}; \ > done; \ > else \ >- ${ECHO_MSG} "===> ${PKGORIGIN} not installed, skipping"; \ >- fi >- @${RM} -f ${INSTALL_COOKIE} ${PACKAGE_COOKIE} >+ if [ -z "${DESTDIR}" ] ; then \ >+ ${ECHO_MSG} "===> ${PKGORIGIN} not installed, skipping"; \ >+ else \ >+ ${ECHO_MSG} "===> ${PKGORIGIN} not installed in ${DESTDIR}, skipping"; \ >+ fi; \ >+ fi; \ >+ ${RM} -f ${INSTALL_COOKIE} ${PACKAGE_COOKIE} > .endif > .endif > >@@ -4534,16 +4744,24 @@ > if [ X${USE_PACKAGE_DEPENDS} != "X" ]; then \ > subpkgfile=`(cd $$dir; ${MAKE} $$depends_args -V PKGFILE)`; \ > if [ -r "$${subpkgfile}" -a "$$target" = "${DEPENDS_TARGET}" ]; then \ >- ${ECHO_MSG} "===> Installing existing package $${subpkgfile}"; \ >- ${PKG_ADD} $${subpkgfile}; \ >+ if [ -z "${DESTDIR}" ] ; then \ >+ ${ECHO_MSG} "===> Installing existing package $${subpkgfile}"; \ >+ ${PKG_ADD} $${subpkgfile}; \ >+ else \ >+ ${ECHO_MSG} "===> Installing existing package $${subpkgfile} into ${DESTDIR}"; \ >+ ${PKG_ADD} -C ${DESTDIR} $${subpkgfile}; \ >+ fi; \ > else \ > (cd $$dir; ${MAKE} -DINSTALLS_DEPENDS $$target $$depends_args) ; \ > fi; \ > else \ > (cd $$dir; ${MAKE} -DINSTALLS_DEPENDS $$target $$depends_args) ; \ >- fi ; \ >- ${ECHO_MSG} "===> Returning to build of ${PKGNAME}"; \ >- >+ fi; \ >+ if [ -z "${DESTDIR}" ] ; then \ >+ ${ECHO_MSG} "===> Returning to build of ${PKGNAME}"; \ >+ else \ >+ ${ECHO_MSG} "===> Returning to build of ${PKGNAME} for ${DESTDIR}"; \ >+ fi; > > .for deptype in EXTRACT PATCH FETCH BUILD RUN > ${deptype:L}-depends: >@@ -4565,7 +4783,11 @@ > ${ECHO_MSG} "Error: ${NONEXISTENT} exists. Please remove it, and restart the build."; \ > ${FALSE}; \ > else \ >- ${ECHO_MSG} "===> ${PKGNAME} depends on file: $$prog - found"; \ >+ if [ -z "${DESTDIR}" ] ; then \ >+ ${ECHO_MSG} "===> ${PKGNAME} depends on file: $$prog - found"; \ >+ else \ >+ ${ECHO_MSG} "===> ${PKGNAME} depends on file in ${DESTDIR}: $$prog - found"; \ >+ fi; \ > if [ ${_DEPEND_ALWAYS} = 1 ]; then \ > ${ECHO_MSG} " (but building it anyway)"; \ > notfound=1; \ >@@ -4574,7 +4796,11 @@ > fi; \ > fi; \ > else \ >- ${ECHO_MSG} "===> ${PKGNAME} depends on file: $$prog - not found"; \ >+ if [ -z "${DESTDIR}" ] ; then \ >+ ${ECHO_MSG} "===> ${PKGNAME} depends on file: $$prog - not found"; \ >+ else \ >+ ${ECHO_MSG} "===> ${PKGNAME} depends on file in ${DESTDIR}: $$prog - not found"; \ >+ fi; \ > notfound=1; \ > fi; \ > else \ >@@ -4584,7 +4810,11 @@ > esac; \ > if [ "$$pkg" != "" ]; then \ > if ${PKG_INFO} "$$prog" > /dev/null 2>&1 ; then \ >- ${ECHO_MSG} "===> ${PKGNAME} depends on package: $$prog - found"; \ >+ if [ -z "${DESTDIR}" ] ; then \ >+ ${ECHO_MSG} "===> ${PKGNAME} depends on package: $$prog - found"; \ >+ else \ >+ ${ECHO_MSG} "===> ${PKGNAME} depends on package in ${DESTDIR}: $$prog - found"; \ >+ fi; \ > if [ ${_DEPEND_ALWAYS} = 1 ]; then \ > ${ECHO_MSG} " (but building it anyway)"; \ > notfound=1; \ >@@ -4592,7 +4822,11 @@ > notfound=0; \ > fi; \ > else \ >- ${ECHO_MSG} "===> ${PKGNAME} depends on package: $$prog - not found"; \ >+ if [ -z "${DESTDIR}" ] ; then \ >+ ${ECHO_MSG} "===> ${PKGNAME} depends on package: $$prog - not found"; \ >+ else \ >+ ${ECHO_MSG} "===> ${PKGNAME} depends on package in ${DESTDIR}: $$prog - not found"; \ >+ fi; \ > notfound=1; \ > fi; \ > if [ $$notfound != 0 ]; then \ >@@ -4606,7 +4840,11 @@ > fi; \ > fi; \ > elif ${WHICH} "$$prog" > /dev/null 2>&1 ; then \ >- ${ECHO_MSG} "===> ${PKGNAME} depends on executable: $$prog - found"; \ >+ if [ -z "${PREFIX}" ] ; then \ >+ ${ECHO_MSG} "===> ${PKGNAME} depends on executable: $$prog - found"; \ >+ else \ >+ ${ECHO_MSG} "===> ${PKGNAME} depends on executable in ${DESTDIR}: $$prog - found"; \ >+ fi; \ > if [ ${_DEPEND_ALWAYS} = 1 ]; then \ > ${ECHO_MSG} " (but building it anyway)"; \ > notfound=1; \ >@@ -4614,7 +4852,11 @@ > notfound=0; \ > fi; \ > else \ >- ${ECHO_MSG} "===> ${PKGNAME} depends on executable: $$prog - not found"; \ >+ if [ -z "${DESTDIR}" ] ; then \ >+ ${ECHO_MSG} "===> ${PKGNAME} depends on executable: $$prog - not found"; \ >+ else \ >+ ${ECHO_MSG} "===> ${PKGNAME} depends on executable in ${DESTDIR}: $$prog - not found"; \ >+ fi; \ > notfound=1; \ > fi; \ > fi; \ >@@ -4650,18 +4892,34 @@ > else \ > dir=$${dir%%:*}; \ > fi; \ >- ${ECHO_MSG} -n "===> ${PKGNAME} depends on shared library: $$lib"; \ >- if ${LDCONFIG} -r | ${GREP} -vwF -e "${PKGCOMPATDIR}" | ${GREP} -qwE -e "-l$$pattern"; then \ >- ${ECHO_MSG} " - found"; \ >- if [ ${_DEPEND_ALWAYS} = 1 ]; then \ >- ${ECHO_MSG} " (but building it anyway)"; \ >- notfound=1; \ >+ if [ -z "${DESTDIR}" ] ; then \ >+ ${ECHO_MSG} -n "===> ${PKGNAME} depends on shared library: $$lib"; \ >+ if ${LDCONFIG} -r | ${GREP} -vwF -e "${PKGCOMPATDIR}" | ${GREP} -qwE -e "-l$$pattern"; then \ >+ ${ECHO_MSG} " - found"; \ >+ if [ ${_DEPEND_ALWAYS} = 1 ]; then \ >+ ${ECHO_MSG} " (but building it anyway)"; \ >+ notfound=1; \ >+ else \ >+ notfound=0; \ >+ fi; \ > else \ >- notfound=0; \ >+ ${ECHO_MSG} " - not found"; \ >+ notfound=1; \ > fi; \ > else \ >- ${ECHO_MSG} " - not found"; \ >- notfound=1; \ >+ ${ECHO_MSG} -n "===> ${PKGNAME} depends on shared library in ${DESTDIR}: $$lib"; \ >+ if ${CHROOT} ${DESTDIR} ${LDCONFIG} -r | ${GREP} -vwF -e "${PKGCOMPATDIR}" | ${GREP} -qwE -e "-l$$pattern"; then \ >+ ${ECHO_MSG} " - found"; \ >+ if [ ${_DEPEND_ALWAYS} = 1 ]; then \ >+ ${ECHO_MSG} " (but building it anyway)"; \ >+ notfound=1; \ >+ else \ >+ notfound=0; \ >+ fi; \ >+ else \ >+ ${ECHO_MSG} " - not found"; \ >+ notfound=1; \ >+ fi; \ > fi; \ > if [ $$notfound != 0 ]; then \ > ${ECHO_MSG} "===> Verifying $$target for $$lib in $$dir"; \ >@@ -4697,7 +4955,11 @@ > (cd $$dir; ${MAKE} $$target $$depends_args) ; \ > fi \ > done >- @${ECHO_MSG} "===> Returning to build of ${PKGNAME}" >+ @if [ -z "${DESTDIR}" ] ; then \ >+ ${ECHO_MSG} "===> Returning to build of ${PKGNAME}"; \ >+ else \ >+ ${ECHO_MSG} "===> Returning to build of ${PKGNAME} for ${DESTDIR}"; \ >+ fi > .endif > .else > @${DO_NADA} >@@ -5196,14 +5458,14 @@ > @if ${ECHO_CMD} "${x}"| ${AWK} '$$1 ~ /(\*|\||\[|\]|\?|\{|\}|\$$)/ { exit 1};'; then \ > if [ ! -e ${DOCSDIR}/${x} ]; then \ > ${ECHO_CMD} ${DOCSDIR}/${x} | \ >- ${SED} -e 's,^${PREFIX}/,,' >> ${TMPPLIST}; \ >+ ${SED} -e 's,^${DESTDIR}${PREFIX}/,,' >> ${TMPPLIST}; \ > fi;fi > .endfor > @${FIND} -P ${PORTDOCS:S/^/${DOCSDIR}\//} ! -type d 2>/dev/null | \ >- ${SED} -ne 's,^${PREFIX}/,,p' >> ${TMPPLIST} >+ ${SED} -ne 's,^${DESTDIR}${PREFIX}/,,p' >> ${TMPPLIST} > @${FIND} -P -d ${PORTDOCS:S/^/${DOCSDIR}\//} -type d 2>/dev/null | \ >- ${SED} -ne 's,^${PREFIX}/,@dirrm ,p' >> ${TMPPLIST} >- @${ECHO_CMD} "@dirrm ${DOCSDIR:S,^${PREFIX}/,,}" >> ${TMPPLIST} >+ ${SED} -ne 's,^${DESTDIR}${PREFIX}/,@dirrm ,p' >> ${TMPPLIST} >+ @${ECHO_CMD} "@dirrm ${DOCSDIR:S,^${DESTDIR}${PREFIX}/,,}" >> ${TMPPLIST} > .else > @${DO_NADA} > .endif >@@ -5214,10 +5476,10 @@ > # Process GNU INFO files at package install/deinstall time > .if defined(INFO) > .for i in ${INFO} >- install-info --quiet ${PREFIX}/${INFO_PATH}/$i.info ${PREFIX}/${INFO_PATH}/dir >+ install-info --quiet ${DESTDIR}${PREFIX}/${INFO_PATH}/$i.info ${DESTDIR}${PREFIX}/${INFO_PATH}/dir > @${ECHO_CMD} "@unexec install-info --quiet --delete %D/${INFO_PATH}/$i.info %D/${INFO_PATH}/dir" \ > >> ${TMPPLIST} >- @${LS} ${PREFIX}/${INFO_PATH}/$i.info* | ${SED} -e s:${PREFIX}/::g >> ${TMPPLIST} >+ @${LS} ${DESTDIR}${PREFIX}/${INFO_PATH}/$i.info* | ${SED} -e s:${DESTDIR}${PREFIX}/::g >> ${TMPPLIST} > @${ECHO_CMD} "@exec install-info --quiet %D/${INFO_PATH}/$i.info %D/${INFO_PATH}/dir" \ > >> ${TMPPLIST} > @if [ "`${DIRNAME} $i`" != "." ]; then \ >@@ -5226,7 +5488,7 @@ > .endfor > .if (${PREFIX} != "/usr") > @${ECHO_CMD} "@unexec if [ -f %D/${INFO_PATH}/dir ]; then if sed -e '1,/Menu:/d' %D/${INFO_PATH}/dir | grep -q '^[*] '; then true; else rm %D/${INFO_PATH}/dir; fi; fi" >> ${TMPPLIST} >-.if (${PREFIX} != ${LOCALBASE} && ${PREFIX} != ${X11BASE} && ${PREFIX} != ${LINUXBASE}) >+.if (${PREFIX} != ${LOCALBASE_REL} && ${PREFIX} != ${X11BASE_REL} && ${PREFIX} != ${LINUXBASE_REL}) > @${ECHO_CMD} "@unexec rmdir %D/info 2> /dev/null || true" >> ${TMPPLIST} > .endif > .endif >@@ -5237,7 +5499,7 @@ > # deinstall-time > .if !target(add-plist-post) > add-plist-post: >-.if (${PREFIX} != ${LOCALBASE} && ${PREFIX} != ${X11BASE} && ${PREFIX} != ${LINUXBASE} && ${PREFIX} != "/usr") >+.if (${PREFIX} != ${LOCALBASE_REL} && ${PREFIX} != ${X11BASE_REL} && ${PREFIX} != ${LINUXBASE_REL} && ${PREFIX} != "/usr") > @${ECHO_CMD} "@unexec rmdir %D 2> /dev/null || true" >> ${TMPPLIST} > .else > @${DO_NADA} >@@ -5261,12 +5523,12 @@ > @${ECHO_CMD} "@cwd ${PREFIX}" >> ${TMPPLIST} > .if (${OSVERSION} >= 700007 || ( ${OSVERSION} < 700000 && ${OSVERSION} >= 600101 )) > @for i in ${USE_RC_SUBR}; do \ >- ${INSTALL_SCRIPT} ${WRKDIR}/$${i} ${PREFIX}/etc/rc.d/$${i%.sh}; \ >+ ${INSTALL_SCRIPT} ${WRKDIR}/$${i} ${DESTDIR}${PREFIX}/etc/rc.d/$${i%.sh}; \ > ${ECHO_CMD} "etc/rc.d/$${i%.sh}" >> ${TMPPLIST}; \ > done > .else > @for i in ${USE_RC_SUBR}; do \ >- ${INSTALL_SCRIPT} ${WRKDIR}/$${i} ${PREFIX}/etc/rc.d/$${i%.sh}.sh; \ >+ ${INSTALL_SCRIPT} ${WRKDIR}/$${i} ${DESTDIR}${PREFIX}/etc/rc.d/$${i%.sh}.sh; \ > ${ECHO_CMD} "etc/rc.d/$${i%.sh}.sh" >> ${TMPPLIST}; \ > done > .endif >@@ -5320,9 +5582,13 @@ > fi > @${RM} -rf ${PKG_DBDIR}/${PKGNAME} > .endif >- @if [ ! -d ${PKG_DBDIR}/${PKGNAME} ]; then \ >- ${ECHO_MSG} "===> Registering installation for ${PKGNAME}"; \ >- ${MKDIR} ${PKG_DBDIR}/${PKGNAME}; \ >+.if !exists(${PKG_DBDIR}/${PKGNAME}) >+.if !defined(DESTDIR) >+ @${ECHO_MSG} "===> Registering installation for ${PKGNAME}" >+.else >+ @${ECHO_MSG} "===> Registering installation for ${PKGNAME} in ${DESTDIR}" >+.endif >+ @${MKDIR} ${PKG_DBDIR}/${PKGNAME}; \ > ${PKG_CMD} ${PKG_ARGS} -O ${PKGFILE} > ${PKG_DBDIR}/${PKGNAME}/+CONTENTS; \ > ${CP} ${DESCR} ${PKG_DBDIR}/${PKGNAME}/+DESC; \ > ${ECHO_CMD} ${COMMENT:Q} > ${PKG_DBDIR}/${PKGNAME}/+COMMENT; \ >@@ -5345,8 +5611,8 @@ > ${ECHO_CMD} ${PKGNAME} >> ${PKG_DBDIR}/$$dep/+REQUIRED_BY; \ > fi; \ > fi; \ >- done; \ >- fi >+ done >+.endif > .if !defined(NO_MTREE) > @if [ -f ${MTREE_FILE} ]; then \ > ${CP} ${MTREE_FILE} ${PKG_DBDIR}/${PKGNAME}/+MTREE_DIRS; \ >diff -Nur /usr/ports/Mk/bsd.port.subdir.mk ../Mk/bsd.port.subdir.mk >--- /usr/ports/Mk/bsd.port.subdir.mk Sat Jan 28 03:11:05 2006 >+++ ../Mk/bsd.port.subdir.mk Sat Jul 15 22:39:39 2006 >@@ -48,10 +48,10 @@ > > .if !defined(NOPRECIOUSMAKEVARS) > .if !defined(ARCH) >-ARCH!= /usr/bin/uname -p >+ARCH!= ${DESTDIR}/usr/bin/uname -p > .endif > .if !defined(OSREL) >-OSREL!= /usr/bin/uname -r | sed -e 's/[-(].*//' >+OSREL!= ${DESTDIR}/usr/bin/uname -r | sed -e 's/[-(].*//' > .endif > .if !defined(OSVERSION) > .if exists(/sbin/sysctl) >@@ -61,23 +61,23 @@ > .endif > .endif > .if !defined(PORTOBJFORMAT) >-PORTOBJFORMAT!= test -x /usr/bin/objformat && /usr/bin/objformat || echo aout >+PORTOBJFORMAT!= test -x ${DESTDIR}/usr/bin/objformat && ${DESTDIR}/usr/bin/objformat || echo aout > .endif > .endif > >-ID?= /usr/bin/id >+ID?= ${DESTDIR}/usr/bin/id > UID!= ${ID} -u >-LOCALBASE?= ${DESTDIR}/usr/local >+LOCALBASE?= ${DESTDIR}${LOCALBASE_REL} > .if exists(${LOCALBASE}/sbin/pkg_info) > PKG_INFO?= ${LOCALBASE}/sbin/pkg_info > .else >-PKG_INFO?= /usr/sbin/pkg_info >+PKG_INFO?= ${DESTDIR}/usr/sbin/pkg_info > .endif >-SED?= /usr/bin/sed >+SED?= ${DESTDIR}/usr/bin/sed > PKGINSTALLVER!= ${PKG_INFO} -P 2>/dev/null | ${SED} -e 's/.*: //' > > .if !defined(OPSYS) >-OPSYS!= /usr/bin/uname -s >+OPSYS!= ${DESTDIR}/usr/bin/uname -s > .endif > > ECHO_MSG?= echo >diff -Nur /usr/ports/Mk/bsd.python.mk ../Mk/bsd.python.mk >--- /usr/ports/Mk/bsd.python.mk Fri Jun 23 05:35:14 2006 >+++ ../Mk/bsd.python.mk Sat Jul 15 22:39:39 2006 >@@ -404,7 +404,7 @@ > @${ECHO} "Legal values are: 2.7 (default), 2.8, 2.9, 3.2" > @${FALSE} > .endif >-ZOPEBASEDIR?= ${PREFIX}/${SZOPEBASEDIR} >+ZOPEBASEDIR?= ${DESTDIR}${PREFIX}/${SZOPEBASEDIR} > ZOPEPRODUCTDIR?= Products > .endif > >diff -Nur /usr/ports/Mk/bsd.ruby.mk ../Mk/bsd.ruby.mk >--- /usr/ports/Mk/bsd.ruby.mk Wed Jul 5 04:18:09 2006 >+++ ../Mk/bsd.ruby.mk Sat Jul 15 22:39:39 2006 >@@ -113,7 +113,7 @@ > RUBY_VER?= ${RUBY_DEFAULT_VER} > > .if defined(RUBY) >-.if !exists(${RUBY}) >+.if !exists(${DESTDIR}${RUBY}) > IGNORE= cannot install: you set the variable RUBY to "${RUBY}", but it does not seem to exist. Please specify an already installed ruby executable. > .endif > >@@ -122,7 +122,7 @@ > IGNORE= cannot install: you set the variable RUBY to "${RUBY}", but it failed to include rbconfig. Please specify a properly installed ruby executable. > .endif > >-_RUBY_CONFIG= ${RUBY} -r rbconfig -e 'C = Config::CONFIG' -e >+_RUBY_CONFIG= ${DESTDIR}${RUBY} -r rbconfig -e 'C = Config::CONFIG' -e > > RUBY_VERSION!= ${_RUBY_CONFIG} 'puts VERSION' > RUBY_SUFFIX?= # empty >diff -Nur /usr/ports/Mk/bsd.scons.mk ../Mk/bsd.scons.mk >--- /usr/ports/Mk/bsd.scons.mk Fri Jul 14 00:10:39 2006 >+++ ../Mk/bsd.scons.mk Tue Jul 18 17:41:15 2006 >@@ -57,7 +57,7 @@ > SCONS_ENV?= CCFLAGS="${CCFLAGS}" CXXFLAGS="${CXXFLAGS}" \ > LINKFLAGS="${LINKFLAGS}" PKGCONFIGDIR="${PKGCONFIGDIR}" \ > CPPPATH="${CPPPATH}" LIBPATH="${LIBPATH}" PREFIX="${PREFIX}" \ >- CC="${CC}" CXX="${CXX}" >+ DESTDIR="${DESTDIR}" CC="${CC}" CXX="${CXX}" > SCONS_ARGS?= > SCONS_BUILDENV?= > SCONS_TARGET?=
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 100555
: 68385 |
68386
Working