ports/125823: [PATCH] Ports-mgmt/portupgrade does not use custom ECHO_MSG handler if defined
Trevor Johns
trevor at tjohns.net
Mon Jul 21 09:50:01 UTC 2008
>Number: 125823
>Category: ports
>Synopsis: [PATCH] Ports-mgmt/portupgrade does not use custom ECHO_MSG handler if defined
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Mon Jul 21 09:50:00 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator: Trevor Johns
>Release: 6.3-RELEASE
>Organization:
Google
>Environment:
FreeBSD timon.usc.edu 6.3-RELEASE FreeBSD 6.3-RELEASE #0: Wed Jan 16 04:18:52 UTC 2008 root at dessler.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386
>Description:
The ports-mgmt/portupgrade tool does not check to see if a given port has defined a custom value for the ECHO_MSG variable when outputing the reason that port has been marked as IGNORE.
Since the value used for ECHO_MSG influences the content of the IGNORE variable (for example, ECHO_MSG may be set to /usr/bin/printf, allowing escape codes in ECHO_MSG), blindly outputting the contents of IGNORE can cause ugly or unreadable output.
>How-To-Repeat:
Run portupgrade such that it would try to rebuild java/jdk16 without first downloading tzupdater-1_3_6-2008c.zip. The following will be output (note presence of "\n" in output):
** Port marked as IGNORE: java/jdk16:
:\n Due to licensing restrictions, certain files must be fetched manually.\n\n Please open http://java.sun.com/javase/downloads/index.jsp\n in a web browser and follow the \"Download\" link for\n \"JDK US DST Timezone Update Tool - 1_3_6\" to obtain the\n time zone update file, tzupdater-1_3_6-2008c.zip.\n\n Please place the downloaded file(s) in /usr/ports/distfiles \n and restart the build.\n\n
>Fix:
Patch attached with submission follows:
Fix portupgrade so that custom ECHO_MSG settings are taken into account.
Since ports that use this tend to be a bit more creative with their
formatting, this change also tries to correct for that behavior.
Patch by: Trevor Johns <trevor at tjohns.net>
Index: bin/portupgrade
===================================================================
RCS file: /cvsroot/portupgrade/pkgtools/bin/portupgrade,v
retrieving revision 1.61
diff -r1.61 portupgrade
1453c1453
< output = `cd #{portdir} && #{shelljoin(*cmdargs)} -V PKGNAME -V IGNORE -V NO_IGNORE 2>&1`.scan(/.*\n/)
---
> output = `cd #{portdir} && #{shelljoin(*cmdargs)} -V PKGNAME -V IGNORE -V NO_IGNORE -V ECHO_MSG 2>&1`.scan(/.*\n/)
1455c1455
< if output.size != 3
---
> if output.size != 4
1462a1463
> echo_msg = output[3].chomp
1465a1467,1470
> ignore = `#{echo_msg} "#{ignore}"`
> # Some packages ouptut a ':\n ' to try to look nice when using the normal
> # ports build process. That looks really bad here, so we undo that.
> ignore.slice!(0..2) if (ignore.match /^:\n /)
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list