Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Upgrade the bsd.port.mk patch to allow adding maintainer to PKG_CMD arguments and add an hypothetical WWW option (I hate for it to be in pkg-descr :))
Baptiste Daroussin committed 15 years ago
commit 9146fddbf4c37e12da79a46c9d7419561f457992
parent 5b15e75
1 file changed +400 -10
modified ports/bsd.port.mk.patch
@@ -1,6 +1,96 @@
-
--- /usr/ports/Mk/bsd.port.mk.prepkgng	2011-01-14 00:14:59.962893785 +0100
-
+++ /usr/ports/Mk/bsd.port.mk	2011-01-18 14:56:07.129210350 +0100
-
@@ -2476,8 +2476,15 @@
+
--- /usr/ports/Mk/bsd.port.mk.orig	2010-11-17 12:35:36.073216760 +0100
+
+++ /usr/ports/Mk/bsd.port.mk	2011-01-26 23:07:25.611297669 +0100
+
@@ -1,7 +1,7 @@
+
 #-*- mode: makefile; tab-width: 4; -*-
+
 # ex:ts=4
+
 #
+
-# $FreeBSD: ports/Mk/bsd.port.mk,v 1.654 2010/11/08 16:07:03 pav Exp $
+
+# $FreeBSD: ports/Mk/bsd.port.mk,v 1.666 2010/12/29 07:14:56 miwi Exp $
+
 #	$NetBSD: $
+
 #
+
 #	bsd.port.mk - 940820 Jordan K. Hubbard.
+
@@ -371,8 +371,7 @@
+
 #				  should not be used in Makefile.
+
 ##
+
 # USE_BISON		- Implies that the port uses bison in one way or another:
+
-#				  'yes' (backwards compatibility) - use bison for building
+
-#				  new features: 'build', 'run', 'both', implying build,
+
+#				  'build', 'run', 'both', implying build,
+
 #				  runtime, and both build/run dependencies
+
 ##
+
 # USE_IMAKE		- If set, this port uses imake.
+
@@ -551,6 +550,12 @@
+
 #				  pattern meta-characters "*", "?", "[", "]", and "!".
+
 #				  Example: apache*-1.2* apache*-1.3.[012345] apache-*+ssl_*
+
 #
+
+# CONFLICTS_BUILD
+
+#				- Check conflict prior to the build.
+
+#
+
+# CONFLICTS_INSTALL
+
+#				- Check conflict prior to the installation stage.
+
+#
+
 # Various directory definitions and variables to control them.
+
 # You rarely need to redefine any of these except WRKSRC and NO_WRKSUBDIR.
+
 #
+
@@ -603,6 +608,8 @@
+
 #				  Default: ${MASTERDIR}/files
+
 # PKGDIR		- A directory containing any package creation files.
+
 #				  Default: ${MASTERDIR}
+
+# SRC_BASE		- The root of the src tree.  (Some ports require this to get
+
+#				  kernel sources).  Default: /usr/src
+
 # UID_FILES		- A list of files containing information about registered UIDs.
+
 # 				  Note that files have decreasing priority.
+
 # GID_FILES		- A list of files containing information about registered GIDs.
+
@@ -834,7 +841,7 @@
+
 # FETCH_BINARY	- Path to ftp/http fetch command if not in $PATH.
+
 #				  Default: "/usr/bin/fetch"
+
 # FETCH_ARGS	- Arguments to ftp/http fetch command.
+
-#				  Default: "-ApRr"
+
+#				  Default: "-AFpr"
+
 # FETCH_CMD		- ftp/http fetch command.
+
 #				  Default: ${FETCH_BINARY} ${FETCH_ARGS}
+
 # FETCH_BEFORE_ARGS
+
@@ -1152,6 +1159,7 @@
+
 DISTDIR?=		${PORTSDIR}/distfiles
+
 _DISTDIR?=		${DISTDIR}/${DIST_SUBDIR}
+
 INDEXDIR?=		${PORTSDIR}
+
+SRC_BASE?=		/usr/src
+
 
+
 .include "${PORTSDIR}/Mk/bsd.commands.mk"
+
 
+
@@ -1545,7 +1553,7 @@
+
 .include "${PORTSDIR}/Mk/bsd.qt.mk"
+
 .endif
+
 
+
-.if defined(WANT_GECKO) || defined(USE_GECKO)
+
+.if defined(WANT_GECKO) || defined(USE_GECKO) || defined(USE_FIREFOX) || defined(USE_FIREFOX_BUILD) || defined(USE_SEAMONKEY) || defined(USE_SEAMONKEY_BUILD) || defined(USE_THUNDERBIRD) || defined(USE_THUNDERBIRD_BUILD)
+
 .include "${PORTSDIR}/Mk/bsd.gecko.mk"
+
 .endif
+
 
+
@@ -2040,13 +2048,6 @@
+
 .if defined(USE_BISON)
+
 _BISON_DEPENDS=	bison:${PORTSDIR}/devel/bison
+
 
+
-# XXX: backwards compatibility
+
-. if ${USE_BISON:L} == "yes"
+
-USE_BISON=	build
+
-pre-everything::
+
-	@${ECHO_MSG} "WARNING: USE_BISON=yes deprecated, use build/run/both"
+
-. endif
+
-
+
 . if ${USE_BISON:L} == "build"
+
 BUILD_DEPENDS+= ${_BISON_DEPENDS}
+
 . elif ${USE_BISON:L} == "run"
+
@@ -2313,7 +2314,7 @@
+
 
+
 .if exists(/usr/bin/fetch)
+
 FETCH_BINARY?=	/usr/bin/fetch
+
-FETCH_ARGS?=	-ApRr
+
+FETCH_ARGS?=	-AFpr
+
 FETCH_REGET?=	1
+
 .if !defined(DISABLE_SIZE)
+
 FETCH_BEFORE_ARGS+=	$${CKSIZE:+-S $$CKSIZE}
+
@@ -2475,8 +2476,15 @@
 
 DESCR?=			${PKGDIR}/pkg-descr
 PLIST?=			${PKGDIR}/pkg-plist
@@ -16,12 +106,18 @@
 PKGREQ?=		${PKGDIR}/pkg-req
 PKGMESSAGE?=	${PKGDIR}/pkg-message
 
-
@@ -2493,6 +2500,42 @@
+
@@ -2492,6 +2500,48 @@
 
 .if !defined(PKG_ARGS)
 PKG_ARGS=		-v -c -${COMMENT:Q} -d ${DESCR} -f ${TMPPLIST} -p ${PREFIX} -P "`cd ${.CURDIR} && ${MAKE} actual-package-depends | ${GREP} -v -E ${PKG_IGNORE_DEPENDS} | ${SORT} -u -t : -k 2`" ${EXTRA_PKG_ARGS} $${_LATE_PKG_ARGS}
+.if defined(PKGNG)
+PKG_ARGS+= -n ${PKGNAME}
+
+.if defined(MAINTAINER)
+
+PKG_ARGS+= -r ${MAINTAINER}
+
+.endif
+
+.if defined(WWW)
+
+PKG_ARGS+= -w ${WWW}
+
+.endif
+.if exists(${PKGMESSAGE})
+PKG_ARGS+= -M ${PKGMESSAGE}
+.endif
@@ -59,7 +155,255 @@
 .if !defined(NO_MTREE)
 PKG_ARGS+=		-m ${MTREE_FILE}
 .endif
-
@@ -5552,6 +5595,7 @@
+
@@ -2501,6 +2551,9 @@
+
 .if defined(CONFLICTS) && !defined(DISABLE_CONFLICTS)
+
 PKG_ARGS+=		-C "${CONFLICTS}"
+
 .endif
+
+.if defined(CONFLICTS_INSTALL) && !defined(DISABLE_CONFLICTS)
+
+PKG_ARGS+=		-C "${CONFLICTS_INSTALL}"
+
+.endif
+
 .endif
+
 .if defined(PKG_NOCOMPRESS)
+
 PKG_SUFX?=		.tar
+
@@ -3077,12 +3130,8 @@
+
 	@${FALSE}
+
 .endif
+
 _MLINKS=	${_MLINKS_PREPEND}
+
-# XXX 20040119 This next line should read:
+
-# .for lang in ${MANLANG:S%^%man/%:S%^man/""$%man%}
+
-# but there is currently a bug in make(1) that prevents the double-quote
+
-# substitution from working correctly.  Once that problem is addressed,
+
-# and has had a enough time to mature, this hack should be removed.
+
-.for lang in ${MANLANG:S%^%man/%:S%^man/""$%man%:S%^man/"$%man%}
+
+
+
+.for lang in ${MANLANG:S%^%man/%:S%^man/""$%man%}
+
 .for ___pmlinks in ${__pmlinks}
+
 .for __lang in ${lang}
+
 _MLINKS+=	${___pmlinks:S// /g}
+
@@ -3100,12 +3149,7 @@
+
 .endif
+
 .endfor
+
 
+
-# XXX 20040119 This next line should read:
+
-# .for manlang in ${MANLANG:S%^%man/%:S%^man/""$%man%}
+
-# but there is currently a bug in make(1) that prevents the double-quote
+
-# substitution from working correctly.  Once that problem is addressed,
+
-# and has had a enough time to mature, this hack should be removed.
+
-.for manlang in ${MANLANG:S%^%man/%:S%^man/""$%man%:S%^man/"$%man%}
+
+.for manlang in ${MANLANG:S%^%man/%:S%^man/""$%man%}
+
 
+
 .for sect in 1 2 3 4 5 6 7 8 9 L N
+
 # MAN${sect} is for man pages installed for all languages in MANLANG for a given
+
@@ -3411,9 +3455,9 @@
+
 .endif
+
 
+
 # Disable install
+
-.if defined(NO_INSTALL) && !target(install)
+
-install: build
+
-	@${TOUCH} ${TOUCH_FLAGS} ${INSTALL_COOKIE}
+
+.if defined(NO_INSTALL) && !target(do-install)
+
+do-install:
+
+	@${DO_NADA}
+
 .endif
+
 
+
 # Disable package
+
@@ -3442,8 +3486,6 @@
+
 
+
 # Pre-everything
+
 
+
-# XXX MCL suggests deprecating this in favor of something
+
-# less likely to be abused by overloading
+
 pre-everything::
+
 	@${DO_NADA}
+
 
+
@@ -3464,9 +3506,6 @@
+
 .endif
+
 .if defined(_OPTIONS_READ)
+
 	@${ECHO_MSG} "===>  Found saved configuration for ${_OPTIONS_READ}"
+
-.if ${OPTIONSFILE} != ${OPTIONSFILE}
+
-	@${ECHO_MSG} "===>  *** CAUTION *** Using wrong configuration file ${OPTIONSFILE}"
+
-.endif
+
 .endif
+
 
+
 
+
@@ -3756,6 +3795,11 @@
+
 	fi
+
 .endif
+
 
+
+.if !target(configure-autotools)
+
+configure-autotools:
+
+	@${DO_NADA}
+
+.endif
+
+
+
 .if !target(run-autotools)
+
 run-autotools:
+
 	@${DO_NADA}
+
@@ -3826,9 +3870,41 @@
+
 # Check conflicts
+
 
+
 .if !target(check-conflicts)
+
-check-conflicts:
+
-.if defined(CONFLICTS) && !defined(DISABLE_CONFLICTS)
+
-	@found=`${PKG_INFO} -I ${CONFLICTS:C/.+/'&'/} 2>/dev/null | ${AWK} '{print $$1}'`; \
+
+check-conflicts: check-build-conflicts check-install-conflicts
+
+.endif
+
+
+
+.if !target(check-build-conflicts)
+
+check-build-conflicts:
+
+.if ( defined(CONFLICTS) || defined(CONFLICTS_BUILD) ) && !defined(DISABLE_CONFLICTS) && !defined(DEFER_CONFLICTS_CHECK)
+
+	@found=`${PKG_INFO} -I ${CONFLICTS:C/.+/'&'/} ${CONFLICTS_BUILD:C/.+/'&'/} 2>/dev/null | ${AWK} '{print $$1}'`; \
+
+	conflicts_with=; \
+
+	for entry in $${found}; do \
+
+		if ${PKG_INFO} -e $${entry} ; then \
+
+			prfx=`${PKG_INFO} -q -p "$${entry}" 2> /dev/null | ${SED} -ne '1s/^@cwd //p'`; \
+
+			orgn=`${PKG_INFO} -q -o "$${entry}" 2> /dev/null`; \
+
+			if [ "/${PREFIX}" = "/$${prfx}" -a "/${PKGORIGIN}" != "/$${orgn}" ]; then \
+
+				conflicts_with="$${conflicts_with} $${entry}"; \
+
+			fi; \
+
+		fi; \
+
+	done; \
+
+	if [ -n "$${conflicts_with}" ]; then \
+
+		${ECHO_MSG}; \
+
+		${ECHO_MSG} "===>  ${PKGNAME} conflicts with installed package(s): "; \
+
+		for entry in $${conflicts_with}; do \
+
+			${ECHO_MSG} "      $${entry}"; \
+
+		done; \
+
+		${ECHO_MSG}; \
+
+		${ECHO_MSG} "      They will not build together."; \
+
+		${ECHO_MSG} "      Please remove them first with pkg_delete(1)."; \
+
+		exit 1; \
+
+	fi
+
+.endif
+
+.endif
+
+
+
+.if !target(identify-install-conflicts)
+
+identify-install-conflicts:
+
+.if ( defined(CONFLICTS) || defined(CONFLICTS_INSTALL) ) && !defined(DISABLE_CONFLICTS)
+
+	@found=`${PKG_INFO} -I ${CONFLICTS:C/.+/'&'/} ${CONFLICTS_INSTALL:C/.+/'&'/} 2>/dev/null | ${AWK} '{print $$1}'`; \
+
 	conflicts_with=; \
+
 	for entry in $${found}; do \
+
 		if ${PKG_INFO} -e $${entry} ; then \
+
@@ -3847,10 +3923,62 @@
+
 		done; \
+
 		${ECHO_MSG}; \
+
 		${ECHO_MSG} "      They install files into the same place."; \
+
+		${ECHO_MSG} "      You may want to stop build with Ctrl + C."; \
+
+		sleep 10; \
+
+	fi
+
+.endif
+
+.endif
+
+
+
+.if !target(check-install-conflicts)
+
+check-install-conflicts:
+
+.if ( defined(CONFLICTS) || defined(CONFLICTS_INSTALL) || ( defined(CONFLICTS_BUILD) && defined(DEFER_CONFLICTS_CHECK) ) ) && !defined(DISABLE_CONFLICTS) 
+
+.if defined(DEFER_CONFLICTS_CHECK)
+
+	@found=`${PKG_INFO} -I ${CONFLICTS:C/.+/'&'/} ${CONFLICTS_BUILD:C/.+/'&'/} ${CONFLICTS_INSTALL:C/.+/'&'/} 2>/dev/null | ${AWK} '{print $$1}'`; \
+
+	conflicts_with=; \
+
+	for entry in $${found}; do \
+
+		if ${PKG_INFO} -e $${entry} ; then \
+
+			prfx=`${PKG_INFO} -q -p "$${entry}" 2> /dev/null | ${SED} -ne '1s/^@cwd //p'`; \
+
+			orgn=`${PKG_INFO} -q -o "$${entry}" 2> /dev/null`; \
+
+			if [ "/${PREFIX}" = "/$${prfx}" -a "/${PKGORIGIN}" != "/$${orgn}" ]; then \
+
+				conflicts_with="$${conflicts_with} $${entry}"; \
+
+			fi; \
+
+		fi; \
+
+	done; \
+
+	if [ -n "$${conflicts_with}" ]; then \
+
+		${ECHO_MSG}; \
+
+		${ECHO_MSG} "===>  ${PKGNAME} conflicts with installed package(s): "; \
+
+		for entry in $${conflicts_with}; do \
+
+			${ECHO_MSG} "      $${entry}"; \
+
+		done; \
+
+		${ECHO_MSG}; \
+
 		${ECHO_MSG} "      Please remove them first with pkg_delete(1)."; \
+
 		exit 1; \
+
 	fi
+
-.endif  # CONFLICTS
+
+.else
+
+	@found=`${PKG_INFO} -I ${CONFLICTS:C/.+/'&'/} ${CONFLICTS_INSTALL:C/.+/'&'/} 2>/dev/null | ${AWK} '{print $$1}'`; \
+
+	conflicts_with=; \
+
+	for entry in $${found}; do \
+
+		if ${PKG_INFO} -e $${entry} ; then \
+
+			prfx=`${PKG_INFO} -q -p "$${entry}" 2> /dev/null | ${SED} -ne '1s/^@cwd //p'`; \
+
+			orgn=`${PKG_INFO} -q -o "$${entry}" 2> /dev/null`; \
+
+			if [ "/${PREFIX}" = "/$${prfx}" -a "/${PKGORIGIN}" != "/$${orgn}" ]; then \
+
+				conflicts_with="$${conflicts_with} $${entry}"; \
+
+			fi; \
+
+		fi; \
+
+	done; \
+
+	if [ -n "$${conflicts_with}" ]; then \
+
+		${ECHO_MSG}; \
+
+		${ECHO_MSG} "===>  ${PKGNAME} conflicts with installed package(s): "; \
+
+		for entry in $${conflicts_with}; do \
+
+			${ECHO_MSG} "      $${entry}"; \
+
+		done; \
+
+		${ECHO_MSG}; \
+
+		${ECHO_MSG} "      They install files into the same place."; \
+
+		${ECHO_MSG} "      Please remove them first with pkg_delete(1)."; \
+
+		exit 1; \
+
+	fi
+
+.endif # defined(DEFER_CONFLICTS_CHECK)
+
+.endif
+
 .endif
+
 
+
 # Install
+
@@ -3883,20 +4011,7 @@
+
 		fi; \
+
 	fi
+
 	@__softMAKEFLAGS='${__softMAKEFLAGS:S/'/'\''/g}'; \
+
-	_LATE_PKG_ARGS=""; \
+
-	if [ -f ${PKGINSTALL} ]; then \
+
-		_LATE_PKG_ARGS="$${_LATE_PKG_ARGS} -i ${PKGINSTALL}"; \
+
-	fi; \
+
-	if [ -f ${PKGDEINSTALL} ]; then \
+
-		_LATE_PKG_ARGS="$${_LATE_PKG_ARGS} -k ${PKGDEINSTALL}"; \
+
-	fi; \
+
-	if [ -f ${PKGREQ} ]; then \
+
-		_LATE_PKG_ARGS="$${_LATE_PKG_ARGS} -r ${PKGREQ}"; \
+
-	fi; \
+
-	if [ -f ${PKGMESSAGE} ]; then \
+
-		_LATE_PKG_ARGS="$${_LATE_PKG_ARGS} -D ${PKGMESSAGE}"; \
+
-	fi; \
+
-	if ${PKG_CMD} ${PKG_ARGS} ${PKGFILE}; then \
+
+	if ${PKG_CMD} -b ${PKGNAME} ${PKGFILE}; then \
+
 		if [ -d ${PACKAGES} ]; then \
+
 			cd ${.CURDIR} && eval ${MAKE} $${__softMAKEFLAGS} package-links; \
+
 		fi; \
+
@@ -4337,28 +4452,28 @@
+
 .endif
+
 _SANITY_SEQ=	${_CHROOT_SEQ} pre-everything check-makefile \
+
 				check-categories check-makevars check-desktop-entries \
+
-				check-conflicts check-depends check-deprecated \
+
+				check-depends identify-install-conflicts check-deprecated \
+
 				check-vulnerable check-license buildanyway-message \
+
 				options-message
+
 _FETCH_DEP=		check-sanity
+
 _FETCH_SEQ=		fetch-depends pre-fetch pre-fetch-script \
+
 				do-fetch post-fetch post-fetch-script
+
 _EXTRACT_DEP=	fetch
+
-_EXTRACT_SEQ=	extract-message checksum extract-depends pre-extract \
+
-				pre-extract-script do-extract \
+
+_EXTRACT_SEQ=	check-build-conflicts extract-message checksum extract-depends \
+
+				pre-extract pre-extract-script do-extract \
+
 				post-extract post-extract-script
+
 _PATCH_DEP=		extract
+
 _PATCH_SEQ=		ask-license patch-message patch-depends patch-dos2unix pre-patch \
+
 				pre-patch-script do-patch post-patch post-patch-script
+
 _CONFIGURE_DEP=	patch
+
 _CONFIGURE_SEQ=	build-depends lib-depends configure-message \
+
-				pre-configure pre-configure-script \
+
+				configure-autotools pre-configure pre-configure-script \
+
 				run-autotools do-configure post-configure post-configure-script
+
 _BUILD_DEP=		configure
+
 _BUILD_SEQ=		build-message pre-build pre-build-script do-build \
+
 				post-build post-build-script
+
 _INSTALL_DEP=	build
+
-_INSTALL_SEQ=	install-message run-depends lib-depends apply-slist pre-install \
+
+_INSTALL_SEQ=	install-message check-install-conflicts run-depends lib-depends apply-slist pre-install \
+
 				pre-install-script generate-plist check-already-installed
+
 _INSTALL_SUSEQ= check-umask install-mtree pre-su-install \
+
 				pre-su-install-script create-users-groups do-install \
+
@@ -5486,6 +5601,7 @@
 		fi; \
 	done
 
@@ -67,13 +411,13 @@
 ACTUAL-PACKAGE-DEPENDS?= \
 	if [ "${_LIB_RUN_DEPENDS}" != "  " ]; then \
 		origins=$$(for pkgname in ${PKG_DBDIR}/*; do \
-
@@ -5579,8 +5623,21 @@
+
@@ -5513,8 +5629,21 @@
 				shift 2; \
 			done; \
 		done; \
-		[ -z "$$packagelist" ] || ${AWK} -F '( |:)' 'BEGIN { pkgname="broken_contents" } /@pkgdep / { pkgname=$$2 } /@comment DEPORIGIN:/ { printf "%s:%s\n", pkgname, $$3; pkgname="broken_contents" }' $$packagelist; \
+		[ -z "$$packagelist" ] || ${AWK} -F '( |:)' 'BEGIN { pkgname="broken_contents" } /@pkgdep / { pkgname=$$3 } /@comment DEPORIGIN:/ { printf "%s:%s\n", pkgname, $$3; pkgname="broken_contents" }' $$packagelist; \
-
 	fi
+
+	fi
+.else
+ACTUAL-PACKAGE-DEPENDS?= \
+	if [ "${_LIB_RUN_DEPENDS}" != "  " ]; then \
@@ -85,12 +429,12 @@
+				${ECHO_CMD} $$pkg:$$origin; \
+			done; \
+		done; \
-
+	fi
+
 	fi
+.endif
 
 # Print out package names.
 
-
@@ -5993,6 +6050,7 @@
+
@@ -5927,6 +6056,7 @@
 	fi
 	@${RM} -rf ${PKG_DBDIR}/${PKGNAME}
 .endif
@@ -98,7 +442,15 @@
 	@if [ ! -d ${PKG_DBDIR}/${PKGNAME} ]; then \
 		${ECHO_MSG} "===>   Registering installation for ${PKGNAME}"; \
 		${MKDIR} ${PKG_DBDIR}/${PKGNAME}; \
-
@@ -6031,6 +6089,11 @@
+
@@ -5944,6 +6074,7 @@
+
 		fi; \
+
 		if [ -f ${PKGMESSAGE} ]; then \
+
 			${CP} ${PKGMESSAGE} ${PKG_DBDIR}/${PKGNAME}/+DISPLAY; \
+
+			${ECHO_CMD} "@display +DISPLAY" >> ${PKG_DBDIR}/${PKGNAME}/+CONTENTS; \
+
 		fi; \
+
 		for dep in `${PKG_INFO} -qf ${PKGNAME} | ${AWK} '/^@pkgdep / {print $$2}' | ${SORT} -u`; do \
+
 			if [ -d ${PKG_DBDIR}/$$dep -a -z `${ECHO_CMD} $$dep | ${GREP} -E ${PKG_IGNORE_DEPENDS}` ]; then \
+
@@ -5964,6 +6095,11 @@
 		${RM} -f /tmp/${PKGNAME}-required-by; \
 	fi
 .else
@@ -110,3 +462,41 @@
 	@${DO_NADA}
 .endif
 .endif
+
@@ -6004,10 +6140,6 @@
+
 .if !defined(OPTIONS)
+
 	@${ECHO_MSG} "===> No options to configure"
+
 .else
+
-.if ${OPTIONSFILE} != ${OPTIONSFILE}
+
-	@${ECHO_MSG} "===> Using wrong configuration file ${OPTIONSFILE}"
+
-	@exit 1
+
-.endif
+
 .if ${UID} != 0 && !defined(INSTALL_AS_USER)
+
 	@optionsdir=${OPTIONSFILE}; optionsdir=$${optionsdir%/*}; \
+
 	${ECHO_MSG} "===>  Switching to root credentials to create $${optionsdir}"; \
+
@@ -6035,7 +6167,7 @@
+
 		elif [ ! -z "$${withoutval}" ]; then \
+
 			val=off; \
+
 		else \
+
-			val=$$3; \
+
+			val=$${defaultval}; \
+
 		fi; \
+
 		DEFOPTIONS="$${DEFOPTIONS} $$1 \"$$2\" $${val}"; \
+
 		shift 3; \
+
@@ -6140,7 +6272,7 @@
+
 		elif [ ! -z "$${withoutval}" ]; then \
+
 			val=off; \
+
 		else \
+
-			val="$$3 (default)"; \
+
+			val="$${defaultval} (default)"; \
+
 		fi; \
+
 		${ECHO_MSG} "     $$1=$${val} \"$$2\""; \
+
 		shift 3; \
+
@@ -6333,7 +6465,7 @@
+
 		${ECHO_CMD} "@cwd ${DESKTOPDIR}" >> ${TMPPLIST}; \
+
 	fi; \
+
 	while [ $$# -gt 6 ]; do \
+
-		filename="$$4.desktop"; \
+
+		filename="`${ECHO_CMD} "$$4" | ${TR} -cd [:alnum:]`.desktop"; \
+
 		pathname="${DESKTOPDIR}/$$filename"; \
+
 		categories="$$5"; \
+
 		if [ -z "$$categories" ]; then \