- 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
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=314799
3 changed files with 58 additions and 16 deletions

View file

@ -6088,7 +6088,13 @@ D4P_ENV= PKGNAME="${PKGNAME}" \
OPTIONS_MULTI="${OPTIONS_MULTI}" \
OPTIONS_SINGLE="${OPTIONS_SINGLE}" \
OPTIONS_RADIO="${OPTIONS_RADIO}" \
OPTIONS_GROUP="${OPTIONS_GROUP}"
OPTIONS_GROUP="${OPTIONS_GROUP}" \
DIALOG4PORTS="${DIALOG4PORTS}" \
PORTSDIR="${PORTSDIR}" \
MAKE="${MAKE}" \
D4PHEIGHT="${D4PHEIGHT}" \
D4PWIDTH="${D4PWIDTH}" \
D4PFULLSCREEN="${D4PFULLSCREEN}"
.if exists(${PKGHELP})
D4P_ENV+= PKGHELP="${PKGHELP}"
.endif
@ -6147,11 +6153,12 @@ do-config:
.endif
@TMPOPTIONSFILE=$$(mktemp -t portoptions); \
trap "${RM} -f $${TMPOPTIONSFILE}; exit 1" 1 2 3 5 10 13 15; \
${SETENV} ${D4P_ENV} ${DIALOG4PORTS} > $${TMPOPTIONSFILE} || { \
${SETENV} ${D4P_ENV} ${SH} ${PORTSDIR}/Tools/scripts/dialog4ports.sh $${TMPOPTIONSFILE} || { \
${RM} -f $${TMPOPTIONSFILE}; \
${ECHO_MSG} "===> Options unchanged"; \
exit 0; \
}; \
${ECHO_CMD}; \
if [ ! -e $${TMPOPTIONSFILE} ]; then \
${ECHO_MSG} "===> No user-specified options to save for ${PKGNAME}"; \
exit 0; \
@ -6183,21 +6190,13 @@ do-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
.if !target(config)
config: pre-config config-depend do-config
.if !defined(NO_DIALOG)
config: pre-config do-config
.else
config:
@${ECHO_MSG} "===> Skipping 'config' as NO_DIALOG is defined"
.endif
.endif # config
.if !target(config-recursive)

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

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