Major flaws of the new make deinstall code

Oliver Eikemeier eikemeier at fillmore-labs.com
Tue Jul 15 08:09:48 PDT 2003


Joe Marcus Clarke wrote:

> --- /usr/ports/Mk/bsd.port.mk	Sat Jul 12 15:01:17 2003
> +++ bsd.port.mk	Mon Jul 14 15:00:02 2003
> @@ -3012,7 +3012,7 @@
>  		@already_installed=`${PKG_INFO} -q -O ${PKGORIGIN} 2> /dev/null`; \
>  		if [ -n "$${already_installed}" ]; then \
>  				for p in $${already_installed}; do \
> -						prfx=`${PKG_INFO} -q -p $${p} 2> /dev/null | ${SED} -e 's|^@cwd ||'`; \
> +						prfx=`${PKG_INFO} -q -p $${p} 2> /dev/null | ${HEAD} -n 1 | ${SED} -e 's|^@cwd ||'`; \
>  						if [ "x${PREFIX}" = "x$${prfx}" ]; then \
>  								df=`${PKG_INFO} -q -f $${p} 2> /dev/null | ${GREP} -v "^@" | ${COMM} -12 - ${TMPPLIST}`; \
>  								if [ -n "$${df}" ]; then \
> @@ -3403,7 +3403,7 @@
>  	for p in $${found_names}; do \
>  			check_name=`${ECHO} $${p} | ${SED} -e 's/-[^-]*$$//'`; \
>  			if [ "$${check_name}" = "${PKGBASE}" ]; then \
> -					prfx=`${PKG_INFO} -q -p $${p} 2> /dev/null | ${SED} -e 's|^@cwd ||'`; \
> +					prfx=`${PKG_INFO} -q -p $${p} 2> /dev/null | ${HEAD} -n 1 | ${SED} -e 's|^@cwd ||'`; \
>  					if [ "x${PREFIX}" = "x$${prfx}" ]; then \
>  							${ECHO_MSG} "===>   Deinstalling $${p}"; \
>  							${PKG_DELETE} -f $${p}; \

You could use
  ${SED} -ne '1 s|^@cwd ||p'
instead of
  ${HEAD} -n 1 | ${SED} -e 's|^@cwd ||'

Regards
    Oliver




More information about the freebsd-ports mailing list