[csw-devel] SF.net SVN: gar:[21567] csw/mgar/pkg/git/trunk

bdwalton at users.sourceforge.net bdwalton at users.sourceforge.net
Sun Jul 28 19:30:45 CEST 2013


Revision: 21567
          http://gar.svn.sourceforge.net/gar/?rev=21567&view=rev
Author:   bdwalton
Date:     2013-07-28 17:30:43 +0000 (Sun, 28 Jul 2013)
Log Message:
-----------
git/trunk: update the tr workaround patch

Modified Paths:
--------------
    csw/mgar/pkg/git/trunk/Makefile

Added Paths:
-----------
    csw/mgar/pkg/git/trunk/files/0007-Avoid-difference-in-tr-semantics-between-System-V-an.patch

Removed Paths:
-------------
    csw/mgar/pkg/git/trunk/files/0007-t0008-ignores-Work-around-broken-solaris-tr.patch

Modified: csw/mgar/pkg/git/trunk/Makefile
===================================================================
--- csw/mgar/pkg/git/trunk/Makefile	2013-07-28 15:35:53 UTC (rev 21566)
+++ csw/mgar/pkg/git/trunk/Makefile	2013-07-28 17:30:43 UTC (rev 21567)
@@ -117,7 +117,7 @@
 # to the selection of available utf8 locales.
 PATCHFILES_isa-sparcv8 += 0005-Force-en_US.UTF-8-for-a-git-svn-test.patch
 PATCHFILES += 0006-Patch-out-a-few-usr-share-references.patch
-PATCHFILES += 0007-t0008-ignores-Work-around-broken-solaris-tr.patch
+PATCHFILES += 0007-Avoid-difference-in-tr-semantics-between-System-V-an.patch
 
 fdirs = $(bindir_install) $(mandir) $(libexecdir_install)
 define _git_files

Added: csw/mgar/pkg/git/trunk/files/0007-Avoid-difference-in-tr-semantics-between-System-V-an.patch
===================================================================
--- csw/mgar/pkg/git/trunk/files/0007-Avoid-difference-in-tr-semantics-between-System-V-an.patch	                        (rev 0)
+++ csw/mgar/pkg/git/trunk/files/0007-Avoid-difference-in-tr-semantics-between-System-V-an.patch	2013-07-28 17:30:43 UTC (rev 21567)
@@ -0,0 +1,90 @@
+From b1ceadb4298a86763b059ac5c9136f4a7e9bb6f2 Mon Sep 17 00:00:00 2001
+From: Ben Walton <bwalton at opencsw.org>
+Date: Sun, 28 Jul 2013 14:09:19 +0200
+Subject: [PATCH] Avoid difference in tr semantics between System V and BSD
+
+Solaris' tr (both /usr/bin/ and /usr/xpg4/bin) uses the System V
+semantics for tr whereby string1's length is truncated to the length
+of string2 if string2 is shorter. The BSD semantics, as used by GNU tr
+see string2 padded to the length of string1 using the final character
+in string2. POSIX explicitly doesn't specify the correct behavior
+here, making both equally valid.
+
+This difference means that Solaris' native tr implementations produce
+different results for tr ":\t\n" "\0" than GNU tr. This breaks a few
+tests in t0008-ignores.sh.
+
+Possible fixes for this are to make string2 be "\0\0\0" or "[\0*]".
+
+Instead, use perl to perform these transliterations which means we
+don't need to worry about the difference at all. Since we're replacing
+tr with perl, we also use perl to replace the sed invocations used to
+transform the files.
+
+Replace four identical transforms with a function named
+broken_c_unquote. Replace the other two identical transforms with a
+fuction named broken_c_unquote_verbose.
+
+Signed-off-by: Ben Walton <bdwalton at gmail.com>
+---
+ t/t0008-ignores.sh | 30 ++++++++++++++++++------------
+ 1 file changed, 18 insertions(+), 12 deletions(-)
+
+diff --git a/t/t0008-ignores.sh b/t/t0008-ignores.sh
+index 9c1bde1..e455eb4 100755
+--- a/t/t0008-ignores.sh
++++ b/t/t0008-ignores.sh
+@@ -37,6 +37,14 @@ test_stderr () {
+ 	test_cmp "$HOME/expected-stderr" "$HOME/stderr"
+ }
+ 
++broken_c_unquote () {
++	perl -pe 's/^"//; s/\\//; s/"$//; tr/\n/\0/' "$@"
++}
++
++broken_c_unquote_verbose () {
++	perl -pe 's/	"/	/; s/\\//; s/"$//; tr/:\t\n/\0/' "$@"
++}
++
+ stderr_contains () {
+ 	regexp="$1"
+ 	if grep "$regexp" "$HOME/stderr"
+@@ -517,12 +525,11 @@ cat <<-EOF >expected-verbose
+ 	$global_excludes:2:!globaltwo	b/globaltwo
+ EOF
+ 
+-sed -e 's/^"//' -e 's/\\//' -e 's/"$//' stdin | \
+-	tr "\n" "\0" >stdin0
+-sed -e 's/^"//' -e 's/\\//' -e 's/"$//' expected-default | \
+-	tr "\n" "\0" >expected-default0
+-sed -e 's/	"/	/' -e 's/\\//' -e 's/"$//' expected-verbose | \
+-	tr ":\t\n" "\0" >expected-verbose0
++broken_c_unquote stdin >stdin0
++
++broken_c_unquote expected-default >expected-default0
++
++broken_c_unquote_verbose expected-verbose >expected-verbose0
+ 
+ test_expect_success '--stdin' '
+ 	expect_from_stdin <expected-default &&
+@@ -606,12 +613,11 @@ cat <<-EOF >expected-verbose
+ 	$global_excludes:2:!globaltwo	../b/globaltwo
+ EOF
+ 
+-sed -e 's/^"//' -e 's/\\//' -e 's/"$//' stdin | \
+-	tr "\n" "\0" >stdin0
+-sed -e 's/^"//' -e 's/\\//' -e 's/"$//' expected-default | \
+-	tr "\n" "\0" >expected-default0
+-sed -e 's/	"/	/' -e 's/\\//' -e 's/"$//' expected-verbose | \
+-	tr ":\t\n" "\0" >expected-verbose0
++broken_c_unquote stdin >stdin0
++
++broken_c_unquote expected-default >expected-default0
++
++broken_c_unquote_verbose expected-verbose >expected-verbose0
+ 
+ test_expect_success '--stdin from subdirectory' '
+ 	expect_from_stdin <expected-default &&
+-- 
+1.8.3.1
+

Deleted: csw/mgar/pkg/git/trunk/files/0007-t0008-ignores-Work-around-broken-solaris-tr.patch
===================================================================
--- csw/mgar/pkg/git/trunk/files/0007-t0008-ignores-Work-around-broken-solaris-tr.patch	2013-07-28 15:35:53 UTC (rev 21566)
+++ csw/mgar/pkg/git/trunk/files/0007-t0008-ignores-Work-around-broken-solaris-tr.patch	2013-07-28 17:30:43 UTC (rev 21567)
@@ -1,39 +0,0 @@
-From 4e0185d4697173873aa407ae318fa484e2f206ac Mon Sep 17 00:00:00 2001
-From: Ben Walton <bwalton at opencsw.org>
-Date: Sun, 16 Jun 2013 00:53:50 +0200
-Subject: [PATCH] t0008-ignores: Work around broken solaris tr
-
-The tr provided by solaris (both /usr/bin/ and /usr/xpg4/bin) fails
-to handle the \0 as the substitution. Replace tr with an
-equivalent perl invocation.
-
-Signed-off-by: Ben Walton <bwalton at opencsw.org>
----
- t/t0008-ignores.sh | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/t/t0008-ignores.sh b/t/t0008-ignores.sh
-index 9c1bde1..bd6817b 100755
---- a/t/t0008-ignores.sh
-+++ b/t/t0008-ignores.sh
-@@ -522,7 +522,7 @@ sed -e 's/^"//' -e 's/\\//' -e 's/"$//' stdin | \
- sed -e 's/^"//' -e 's/\\//' -e 's/"$//' expected-default | \
- 	tr "\n" "\0" >expected-default0
- sed -e 's/	"/	/' -e 's/\\//' -e 's/"$//' expected-verbose | \
--	tr ":\t\n" "\0" >expected-verbose0
-+	perl -pne 's/[:\t\n]/\0/g' >expected-verbose0
- 
- test_expect_success '--stdin' '
- 	expect_from_stdin <expected-default &&
-@@ -611,7 +611,7 @@ sed -e 's/^"//' -e 's/\\//' -e 's/"$//' stdin | \
- sed -e 's/^"//' -e 's/\\//' -e 's/"$//' expected-default | \
- 	tr "\n" "\0" >expected-default0
- sed -e 's/	"/	/' -e 's/\\//' -e 's/"$//' expected-verbose | \
--	tr ":\t\n" "\0" >expected-verbose0
-+	perl -pne 's/[:\t\n]/\0/g' >expected-verbose0
- 
- test_expect_success '--stdin from subdirectory' '
- 	expect_from_stdin <expected-default &&
--- 
-1.8.1.4
-

This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.



More information about the devel mailing list