Index: Mk/Scripts/qa.sh =================================================================== --- Mk/Scripts/qa.sh +++ Mk/Scripts/qa.sh @@ -1006,10 +1006,18 @@ return 0 } +reinplace() +{ + if [ -f ${REWARNFILE} ]; then + warn "Possible REINPLACE_CMD issues" + cat ${REWARNFILE} + fi +} + checks="shebang symlinks paths stripped desktopfileutils sharedmimeinfo" checks="$checks suidfiles libtool libperl prefixvar baselibs terminfo" checks="$checks proxydeps sonames perlcore no_arch gemdeps gemfiledeps flavors" -checks="$checks license depends_blacklist pkgmessage" +checks="$checks license depends_blacklist pkgmessage reinplace" ret=0 cd ${STAGEDIR} || exit 1 Index: Mk/bsd.port.mk =================================================================== --- Mk/bsd.port.mk +++ Mk/bsd.port.mk @@ -1032,6 +1032,7 @@ FLAVORS?= FLAVOR?= OVERLAYS?= +REWARNFILE?= ${WRKDIR}/reinplace_warnings.txt # Disallow forced FLAVOR as make argument since we cannot change it to the # proper default. .if empty(FLAVOR) && !empty(.MAKEOVERRIDES:MFLAVOR) @@ -1622,6 +1623,7 @@ PREFIX=${PREFIX} \ LINUXBASE=${LINUXBASE} \ LOCALBASE=${LOCALBASE} \ + REWARNFILE=${REWARNFILE} \ "STRIP=${STRIP}" \ TMPPLIST=${TMPPLIST} \ CURDIR='${.CURDIR}' \ @@ -2010,7 +2012,12 @@ # Macro for doing in-place file editing using regexps REINPLACE_ARGS?= -i.bak +.if defined(DEVELOPER) +REINPLACE_CMD?= ${SETENV} WRKSRC=${WRKSRC} REWARNFILE=${REWARNFILE} ${PORTSDIR}/Tools/scripts/sed_checked.sh +.else REINPLACE_CMD?= ${SED} ${REINPLACE_ARGS} +.endif +FRAMEWORK_REINPLACE_CMD?= ${SED} -i.bak # Names of cookies used to skip already completed stages EXTRACT_COOKIE?= ${WRKDIR}/.extract_done.${PORTNAME}.${PREFIX:S/\//_/g} Index: Tools/scripts/sed_checked.sh =================================================================== --- /dev/null +++ Tools/scripts/sed_checked.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +set -e +/usr/bin/sed -i.bak "$@" +for x in "${@}" ; do + if [ -f "${x}" ]; then + if cmp -s "${x}" "${x}".bak ; then + if [ ! -z "${REWARNFILE}" ]; then + echo sed failed: backup file same as original: ${x#${WRKSRC}/} >> ${REWARNFILE} + fi + fi + fi +done