I just got the following message: From: Derik van Zuetphen <dvanzuetphen@pironet-ndh.com> To: arensb+freebsd-ports@ooblick.com Subject: FreeBSD Port: coldsync-2.1.3_3 Hello, I just noticed that your Coldsync Port is broken on FreeBSD 4.6. Error message after make: Extracting for coldsync-2.1.3_3 >> Checksum OK for coldsync-2.1.3.tar.gz. ===> coldsync-2.1.3_3 depends on shared library: intl.2 - found ===> Patching for coldsync-2.1.3_3 ===> Applying FreeBSD patches for coldsync-2.1.3_3 /usr/bin/sed -i.bak -e 's,udi\.(\S+),udi.udi_\1,g;' -e 's,ur\.(\S+),ur.ucr_\1,g;' /usr/ports/palm/coldsync/work/coldsync-2.1.3/configure /usr/ports/palm/coldsync/work/coldsync-2.1.3/libpconn/PConnection_usb.c sed: 1: "s,udi\.(\S+),udi.udi_\1 ...": \1 not defined in the RE *** Error The problem lies in the post-patch target in the Makefile. The relevant lines are: ${REINPLACE_CMD} -e 's,udi\.(\S+),udi.udi_\1,g;' \ -e 's,ur\.(\S+),ur.ucr_\1,g;' \ I've confirmed under FreeBSD 4.4 that if REINPLACE_CMD is 'sed', then this will not work as expected, since by default sed wants "\(" and "\)" instead of "(" and ")", and doesn't understand "\S". This target does work as expected if REINPLACE_CMD is 'perl -p'. Fix: From the original message: To fix: Add a -E after the sed call in Makefile: % diff Makefile Makefile.orig 41c41 < ${REINPLACE_CMD} -E -e 's,udi\.(\S+),udi.udi_\1,g;' \ --- > ${REINPLACE_CMD} -e 's,udi\.(\S+),udi.udi_\1,g;' \ How-To-Repeat: % cd /usr/ports/palm/coldsync % make
State Changed From-To: open->closed Committed, thanks!