Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 28 Jul 2002 10:47:04 -0400 (EDT)
From:      Andrew &urger <arensb@ooblick.com>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   ports/41085: palm/coldsync broken under FreeBSD 4.5 and above
Message-ID:  <200207281447.g6SEl4R19756@baa.ooblick.com>

next in thread | raw e-mail | index | archive | help

>Number:         41085
>Category:       ports
>Synopsis:       palm/coldsync broken under FreeBSD 4.5 and above
>Confidential:   no
>Severity:       serious
>Priority:       low
>Responsible:    freebsd-ports
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Jul 28 08:00:05 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     Andrew &urger
>Release:        FreeBSD 4.4-RELEASE i386
>Organization:
>Environment:

	FreeBSD 4.6 (sorry, I don't have access to a machine that
explicitly exhibits the problem).
	REINPLACE_CMD in ports Makefiles should be 'sed' (not Perl).

>Description:

	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'.

>How-To-Repeat:

	% cd /usr/ports/palm/coldsync
	% make

>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;' \
>Release-Note:
>Audit-Trail:
>Unformatted:

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-ports" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200207281447.g6SEl4R19756>