Subject: pkg/21493: gnupg-1.2.2 uses GNU-specific sed in autotools
To: None <gnats-bugs@gnats.netbsd.org>
From: None <aaron@frye.com>
List: netbsd-bugs
Date: 05/07/2003 15:24:46
>Number:         21493
>Category:       pkg
>Synopsis:       gnupg-1.2.2's acinclude.m4 has GNU-specific sed scripts
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed May 07 22:26:00 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator:     Aaron J. Grier
>Release:        1.4.3A
>Organization:
	Frye Electronics
>Environment:
	
System: NetBSD aaron 1.4.3A NetBSD 1.4.3A (aaron) #0: Wed Sep 19 16:01:19 PDT 2001 aaron@aaron:/amd/kaben2/usr/mirrors/NetBSD/src/sys/arch/i386/compile/aaron i386


>Description:
	while attempting to upgrade to gnupg-1.2.2 via pkgsrc on my
	decrepit 1.4.3A a.out system, the compile failed due to
	missing symbols in the mpi assembly routines.  to make a long
	story short, the scripts provided with gnupg use GNU-specific
	sed scripts for parsing the output of nm, which caused detection
	of symbol prefixes to fail, which caused bad assembly to be
	generated which caused missing symbols on the final link.
>How-To-Repeat:
	build gnupg on any system which still uses prefixed symbols, IE
	a.out.
>Fix:
	de-GNU the one-liner sed scripts as shipped with gnupg with the
	following patch:

--- acinclude.m4.orig	Tue May  6 19:59:47 2003
+++ acinclude.m4	Tue May  6 20:00:29 2003
@@ -588,7 +588,7 @@
 
 EOF
         # Now generate the symbol file.
-        sed 's/^.* _\?\(.*\)$/extern char \1;/' < "$ac_nlist" >> conftest.c
+        sed 's/^.* _\{0,1\}\(.*\)$/extern char \1;/' < "$ac_nlist" >> conftest.c
 
         cat <<EOF >> conftest.c
 #if defined (__STDC__) && __STDC__
@@ -610,7 +610,7 @@
 changequote([,])dnl
 {
 EOF
-        sed 's/^_\?\(.*\) _\?\(.*\)$/  {"\1", (__ptr_t) \&\2},/' < "$ac_nlist" >> conftest.c
+        sed 's/^_\{0,1\}/\(.*\) _\{0,1\}\(.*\)$/  {"\1", (__ptr_t) \&\2},/' < "$ac_nlist" >> conftest.c
         cat <<\EOF >> conftest.c
   {0, (__ptr_t) 0}
 };
>Release-Note:
>Audit-Trail:
>Unformatted: