Subject: pkg/28617: ...pkgsrc/devel/pwlib, patch causes, rather than fixes, problem.
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: None <rkr@prometheus.olib.org>
List: pkgsrc-bugs
Date: 12/12/2004 02:51:01
>Number:         28617
>Category:       pkg
>Synopsis:       ...pkgsrc/devel/pwlib, patch causes, rather than fixes, problem.
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Dec 12 02:51:01 +0000 2004
>Originator:     Richard Rauch
>Release:        NetBSD 1.6
>Organization:
  "I probably don't know what I'm talking about."  http://www.olib.org/~rkr/
>Environment:
System: NetBSD prometheus 1.6 NetBSD 1.6 (GENERIC) #0: Sun Sep 8 19:43:40 UTC 2002 autobuild@tgm.daemon.org:/autobuild/i386/OBJ/autobuild/src/sys/arch/i386/compile/GENERIC i386
Architecture: i386
Machine: i386
>Description:
	I was building a program that caused pwlib to be
	rebuilt.  I ran into an error that caused the whole
	process to fail.  The problem is the entirety of one
	of the patch files which, for NetBSD/i386 1.6, seems
	to cause (rather than fix) a problem.

	The patch file is patches/patch-ba.  The patch is:


$NetBSD: patch-ba,v 1.2 2004/10/09 14:01:03 mjl Exp $

--- src/ptclib/pssl.cxx.orig    2004-10-09 13:31:30.000000000 +0200
+++ src/ptclib/pssl.cxx 2004-10-09 13:33:39.000000000 +0200
@@ -743,7 +743,7 @@
     DH_free(dh);
 }
 
-#ifdef __BEOS__
+#if defined(__BEOS__) || defined(__NetBSD__)
 // 2/21/04 Yuri Kiryanov - fix for compiler choke on BeOS for usage of
 // SSL function d2i_DHparams_bio below in PSSLDiffieHellman::Load
 #undef  d2i_DHparams_bio


	By commenting out the "|| defined(__NetBSD__)" (effectively disabling
	patch-ba), the problem went away.  The actual error was:

 [...]
lib/include -Os  -O2 -I/usr/pkg/include -felide-constructors -x c++ -c ../../ptclib/pssl.cxx -o /usr/wrkobj/devel/pwlib/work.i386/pwlib/lib/obj_NetBSD_x86_r/pssl.o
 c++ -DP_USE_PRAGMA -D_REENTRANT -fno-exceptions -Wall -I/usr/wrkobj/devel/pwlib/work.i386/pwlib/include -Os -O2 -I/usr/wrkobj/devel/pwlib/work.i386/.buildlink/include -felide-constructors -x c++ -c ../../ptclib/pssl.cxx  -fPIC -DPIC -o /usr/wrkobj/devel/pwlib/work.i386/pwlib/lib/obj_NetBSD_x86_r/.libs/pssl.o
../../ptclib/pssl.cxx: In member function `BOOL PSSLDiffieHellman::Load(const 
   PFilePath&, PSSLFileTypes)':
../../ptclib/pssl.cxx:778: error: invalid conversion from `char*(*)(...)' to `
   char*(*)()'
../../ptclib/pssl.cxx:778: error: invalid conversion from `char*(*)(...)' to `
   char*(*)()'
gmake[1]: *** [/usr/wrkobj/devel/pwlib/work.i386/pwlib/lib/obj_NetBSD_x86_r/pssl.o] Error 1
gmake[1]: Leaving directory `/usr/wrkobj/devel/pwlib/work.i386/pwlib/src/ptlib/unix'
gmake: *** [opt] Error 2
*** Error code 2

Stop.
make: stopped in /usr/pkgsrc/devel/pwlib
 [...]



	And, yes, that really *is* plain old 1.6.  I've watched the
	security advisories that I've seen announced, and have either
	fixed the particular cases or judged that they did not affect
	how that machine operates.  (^&

>How-To-Repeat:
	On promethues.olib.org (a-hah!),

	(cd /usr/pkgsrc/devel/pwlib && make)

	prometheus.olib.org has openssl-0.9.6m installed from pkgsrc.
	I assume that that is being used rather than the system
	headers.

>Fix:
	I fixed this by simply disabling that one patch.  It is now
	(slowly) completing the build.  It certainly seems to have got
	past the affected file for this PR, anyway.  (^&

	However, obviously mjl supplied that patch for a reason.  I
	assume, but have not tracked down, that the NetBSD OS branch
	of OpenSSL alters a function prototype relative to the
	openssl-0.9.6m from pkgsrc.