- Remove prompt for dialog4ports. Dialog4Ports is a

required part of ports 'make config' now. This is seen
  as not much different than any other dependency.
- Allow dialog4ports to work with INSTALL_AS_USER
  by building and using the port's WRKDIR version
  through a Tools/scripts wrapper
- Add NO_DIALOG for 'config' as well.
- Fix D4P environment variables not passing to dialog4ports:
  D4PHEIGHT, D4PWIDTH, D4PFULLSCREEN

Reviewed by:	miwi, bapt, rum1cro@yandex.ru
Tested by:	miwi, bapt, rum1cro@yandex.ru
Tested by:	bdrewery (small exp-run)
Requested by:	many
This commit is contained in:
Bryan Drewery
2013-03-21 02:55:32 +00:00
parent b58b585ea9
commit becd92b496
3 changed files with 58 additions and 16 deletions
+15 -16
View File
@@ -6088,7 +6088,13 @@ D4P_ENV= PKGNAME="${PKGNAME}" \
D4P_ENV= PKGNAME="${PKGNAME}" \
PORT_OPTIONS="${PORT_OPTIONS}" \
ALL_OPTIONS="${ALL_OPTIONS}" \
OPTIONS_MULTI="${OPTIONS_MULTI}" \
OPTIONS_MULTI="${OPTIONS_MULTI}" \
OPTIONS_SINGLE="${OPTIONS_SINGLE}" \
OPTIONS_RADIO="${OPTIONS_RADIO}" \
OPTIONS_GROUP="${OPTIONS_GROUP}" \
DIALOG4PORTS="${DIALOG4PORTS}" \
PORTSDIR="${PORTSDIR}" \
MAKE="${MAKE}" \
D4PHEIGHT="${D4PHEIGHT}" \
D4PWIDTH="${D4PWIDTH}" \
D4PFULLSCREEN="${D4PFULLSCREEN}"
@@ -6147,11 +6153,12 @@ do-config:
@(optionsdir=${OPTIONSFILE}; optionsdir=$${optionsdir%/*}; \
${MKDIR} $${optionsdir} 2> /dev/null) || \
(${ECHO_MSG} "===> Cannot create $${optionsdir}, check permissions"; exit 1)
.endif
.endif
@TMPOPTIONSFILE=$$(mktemp -t portoptions); \
trap "${RM} -f $${TMPOPTIONSFILE}; exit 1" 1 2 3 5 10 13 15; \
${SETENV} ${D4P_ENV} ${SH} ${PORTSDIR}/Tools/scripts/dialog4ports.sh $${TMPOPTIONSFILE} || { \
${RM} -f $${TMPOPTIONSFILE}; \
${ECHO_MSG} "===> Options unchanged"; \
exit 0; \
}; \
${ECHO_CMD}; \
@@ -6183,21 +6190,13 @@ do-config:
fi; \
${RM} -f $${TMPOPTIONSFILE}
@cd ${.CURDIR} && ${MAKE} sanity-config
.endif
.endif # do-config
.if !target(config-depend)
config-depend:
.if !exists(${DIALOG4PORTS}) && !defined(NO_DIALOG)
@echo -n "dialog4ports isn't installed, do you want to install it now? [Y/n] "; \
read answer; \
case $$answer in \
[Nn]|[Nn][Oo]) \
exit 1; \
esac; \
cd ${PORTSDIR}/ports-mgmt/dialog4ports; ${MAKE} install clean
.endif
.endif
.endif # do-config
.if !target(config)
.if !defined(NO_DIALOG)
config: pre-config do-config
.else
config:
@${ECHO_MSG} "===> Skipping 'config' as NO_DIALOG is defined"
.endif
+37
View File
@@ -0,0 +1,37 @@
#! /bin/sh
# $FreeBSD$
# Maintainer: portmgr@FreeBSD.org
set -e
if [ -z "${DIALOG4PORTS}" -o -z "${PORTSDIR}" -o -z "${MAKE}" ]; then
echo "DIALOG4PORTS, MAKE and PORTSDIR required in environment." >&2
exit 1
fi
: ${DIALOGPORT:=ports-mgmt/dialog4ports}
: ${DIALOGNAME:=dialog4ports}
OPTIONSFILE="$1"
if ! [ -e $DIALOG4PORTS ]; then
# If INSTALL_AS_USER is set then just build and use the WRKDIR version
if [ -n "${INSTALL_AS_USER}" ]; then
if ! [ -d "${PORTSDIR}/${DIALOGPORT}" ]; then
echo "===> Skipping 'config' as ${DIALOGPORT} is not checked out" >&2
exit 1
fi
DIALOG4PORTS=$(${MAKE} -C ${PORTSDIR}/${DIALOGPORT} -V DIALOG4PORTS)
if ! [ -e "${DIALOG4PORTS}" ]; then
echo "===> Building ${DIALOGNAME} as it is required for the config dialog"
${MAKE} -C ${PORTSDIR}/${DIALOGPORT} -D NO_DIALOG clean build
fi
else
# Build+install through su-install as normal
echo "===> Building/installing ${DIALOGNAME} as it is required for the config dialog"
${MAKE} -C ${PORTSDIR}/${DIALOGPORT} -D NO_DIALOG clean install
# Need to clean again as it can't run twice in 1 call above
${MAKE} -C ${PORTSDIR}/${DIALOGPORT} -D NO_DIALOG clean
fi
fi
exec $DIALOG4PORTS > $OPTIONSFILE
+6
View File
@@ -24,6 +24,12 @@ MAKE_JOBS_SAFE= yes
.include <bsd.port.pre.mk>
## This is used by 'make config' via Tools/scripts/dialog4ports.sh
## Use caution in changing
.if !exists(${DIALOG4PORTS})
DIALOG4PORTS= ${WRKSRC}/dialog4ports
.endif
.if ${OSVERSION} < 900030
DISTFILES= ${PORTNAME}-${PORTVERSION}${EXTRACT_SUFX} \
${DIALOGNAME}.tgz:dialog