NetBSD Problem Report #42922

From sdrake@xnet.co.nz  Fri Mar  5 02:01:50 2010
Return-Path: <sdrake@xnet.co.nz>
Received: from mail.netbsd.org (mail.netbsd.org [204.152.190.11])
	by www.NetBSD.org (Postfix) with ESMTP id 06A8163B11D
	for <gnats-bugs@gnats.NetBSD.org>; Fri,  5 Mar 2010 02:01:49 +0000 (UTC)
Message-Id: <alpine.LNX.2.00.1003051451490.15565@vqena.qenxr.bet.am>
Date: Fri, 5 Mar 2010 14:53:06 +1300 (NZDT)
From: Steven Drake <sdrake@xnet.co.nz>
To: gnats-bugs@NetBSD.org
Subject: netpgp needs feature test macros to compile under glibc.

>Number:         42922
>Category:       pkg
>Synopsis:       netpgp needs feature test macros to compile under glibc.
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    agc
>State:          closed
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Mar 05 02:05:00 +0000 2010
>Closed-Date:    Fri Mar 05 16:43:46 +0000 2010
>Last-Modified:  Sun Mar 07 01:40:03 +0000 2010
>Originator:     Steven Drake
>Release:        netpgp-20100212
>Organization:
>Environment:
System: Linux idran 2.6.30 #2 PREEMPT Sun Aug 9 18:32:44 NZST 2009 i686 pentium4 i386 GNU/Linux
Architecture: pentium4
Machine: i686
C library: GNU C Library stable release version 2.10.1
C compiler: cc (GCC) 4.4.1

>Description:
To compile netpgp under glibc the following glibc feature test macros need to
be defined:

_XOPEN_SOURCE for strptime(3)
_BSD_SOURCE for strdup(3) and strcasecmp(3)

>How-To-Repeat:
cd security/netpgp ; bmake

libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../../include -I/tmp/pkgsrc/security/netpgp/work.idran/.buildlink/include -Werror -Wall -Wpointer-arith -O2 -pipe -march=i586 -mtune=generic -MT libnetpgp_la-netpgp.lo -MD -MP -MF .deps/libnetpgp_la-netpgp.Tpo -c netpgp.c  -fPIC -DPIC -o .libs/libnetpgp_la-netpgp.o
cc1: warnings being treated as errors
netpgp.c: In function 'get_duration':
netpgp.c:339: error: implicit declaration of function 'strptime'
netpgp.c:339: error: comparison between pointer and integer
netpgp.c:342: error: comparison between pointer and integer
...............

>Fix:
The blow patch to the netpgp source:

--- configure.ac.orig	2010-03-04 20:10:40.920418350 +1300
+++ configure.ac	2010-03-04 20:11:34.736424527 +1300
@@ -86,6 +86,14 @@ AC_SEARCH_LIBS([gzopen], [z])
 AC_SEARCH_LIBS([BZ2_bzDecompress], [bz2])
 AC_SEARCH_LIBS([RSA_public_encrypt], [crypto])

+# glibc feature_test_macros(7)
+case $host in
+*-gnu)
+	AC_DEFINE([_XOPEN_SOURCE], [1], [Needed for strptime(3) under glibc2])
+	AC_DEFINE([_BSD_SOURCE], [1], [Needed for strdup(3) and strcasecmp(3) under glibc2])
+	;;
+esac
+
 # Initialize the testsuite
 #
 AC_CONFIG_TESTDIR([tests])

>Release-Note:

>Audit-Trail:

Responsible-Changed-From-To: pkg-manager->agc
Responsible-Changed-By: obache@NetBSD.org
Responsible-Changed-When: Fri, 05 Mar 2010 05:06:23 +0000
Responsible-Changed-Why:
Over to maintainer.


From: "Alistair G. Crooks" <agc@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/42922 CVS commit: src/crypto/external/bsd/netpgp/dist
Date: Fri, 5 Mar 2010 16:01:11 +0000

 Module Name:	src
 Committed By:	agc
 Date:		Fri Mar  5 16:01:10 UTC 2010

 Modified Files:
 	src/crypto/external/bsd/netpgp/dist: TODO configure configure.ac tst
 	src/crypto/external/bsd/netpgp/dist/include: netpgp.h
 	src/crypto/external/bsd/netpgp/dist/src/lib: compress.c create.c
 	    create.h crypto.c crypto.h fastctype.c fastctype.h keyring.c
 	    keyring.h memory.h misc.c netpgp.c netpgpdefs.h netpgpsdk.h
 	    openssl_crypto.c packet-parse.c packet-parse.h packet-print.c
 	    packet-show.c packet-show.h packet.h reader.c readerwriter.h
 	    signature.c signature.h ssh2pgp.c symmetric.c types.h validate.c
 	    validate.h version.h writer.c writer.h
 	src/crypto/external/bsd/netpgp/dist/src/netpgp: Makefile netpgp.1
 	src/crypto/external/bsd/netpgp/dist/src/netpgpkeys: netpgpkeys.c
 	src/crypto/external/bsd/netpgp/dist/src/netpgpverify: Makefile verify.c

 Log Message:
 Update netpgp to version 1.99.20/20100304 - portability improvements, and bug fixes:

 	Changes to 1.99.20/20100304

 	+ move args to some functions around to be consistent
 	+ use uint*_t where appropriate
 	+ fix bug in verify memory
 	+ add documentation to manual pages to show how to do combined
 	  signing/encryption and decryption/verification
 	+ make verification of ascii-armoured memory work the same as binary
 	+ eliminate use of strdup(3), strcasecmp(3), and strptime(3). NetBSD/pkgsrc
 	  PR 42922 applies - need to define _XOPEN_SOURCE and _BSD_SOURCE for
 	  newer linux platforms with glibc 2.10.1. solved a bit differently, by
 	  implementing strdup(3) and strcasecmp(3) independently, and using regexps
 	  to avoid calling strptime(3).


 To generate a diff of this commit:
 cvs rdiff -u -r1.31 -r1.32 src/crypto/external/bsd/netpgp/dist/TODO
 cvs rdiff -u -r1.23 -r1.24 src/crypto/external/bsd/netpgp/dist/configure
 cvs rdiff -u -r1.24 -r1.25 src/crypto/external/bsd/netpgp/dist/configure.ac
 cvs rdiff -u -r1.19 -r1.20 src/crypto/external/bsd/netpgp/dist/tst
 cvs rdiff -u -r1.15 -r1.16 \
     src/crypto/external/bsd/netpgp/dist/include/netpgp.h
 cvs rdiff -u -r1.14 -r1.15 \
     src/crypto/external/bsd/netpgp/dist/src/lib/compress.c \
     src/crypto/external/bsd/netpgp/dist/src/lib/packet-show.c
 cvs rdiff -u -r1.22 -r1.23 \
     src/crypto/external/bsd/netpgp/dist/src/lib/create.c
 cvs rdiff -u -r1.8 -r1.9 src/crypto/external/bsd/netpgp/dist/src/lib/create.h \
     src/crypto/external/bsd/netpgp/dist/src/lib/netpgpsdk.h
 cvs rdiff -u -r1.20 -r1.21 \
     src/crypto/external/bsd/netpgp/dist/src/lib/crypto.c
 cvs rdiff -u -r1.16 -r1.17 \
     src/crypto/external/bsd/netpgp/dist/src/lib/crypto.h \
     src/crypto/external/bsd/netpgp/dist/src/lib/signature.h
 cvs rdiff -u -r1.1 -r1.2 \
     src/crypto/external/bsd/netpgp/dist/src/lib/fastctype.c \
     src/crypto/external/bsd/netpgp/dist/src/lib/fastctype.h
 cvs rdiff -u -r1.27 -r1.28 \
     src/crypto/external/bsd/netpgp/dist/src/lib/keyring.c
 cvs rdiff -u -r1.21 -r1.22 \
     src/crypto/external/bsd/netpgp/dist/src/lib/keyring.h
 cvs rdiff -u -r1.5 -r1.6 src/crypto/external/bsd/netpgp/dist/src/lib/memory.h
 cvs rdiff -u -r1.26 -r1.27 src/crypto/external/bsd/netpgp/dist/src/lib/misc.c \
     src/crypto/external/bsd/netpgp/dist/src/lib/packet-print.c \
     src/crypto/external/bsd/netpgp/dist/src/lib/version.h
 cvs rdiff -u -r1.40 -r1.41 \
     src/crypto/external/bsd/netpgp/dist/src/lib/netpgp.c
 cvs rdiff -u -r1.7 -r1.8 \
     src/crypto/external/bsd/netpgp/dist/src/lib/netpgpdefs.h \
     src/crypto/external/bsd/netpgp/dist/src/lib/ssh2pgp.c \
     src/crypto/external/bsd/netpgp/dist/src/lib/types.h \
     src/crypto/external/bsd/netpgp/dist/src/lib/writer.h
 cvs rdiff -u -r1.19 -r1.20 \
     src/crypto/external/bsd/netpgp/dist/src/lib/openssl_crypto.c
 cvs rdiff -u -r1.29 -r1.30 \
     src/crypto/external/bsd/netpgp/dist/src/lib/packet-parse.c
 cvs rdiff -u -r1.11 -r1.12 \
     src/crypto/external/bsd/netpgp/dist/src/lib/packet-parse.h
 cvs rdiff -u -r1.6 -r1.7 \
     src/crypto/external/bsd/netpgp/dist/src/lib/packet-show.h
 cvs rdiff -u -r1.18 -r1.19 \
     src/crypto/external/bsd/netpgp/dist/src/lib/packet.h \
     src/crypto/external/bsd/netpgp/dist/src/lib/writer.c
 cvs rdiff -u -r1.30 -r1.31 \
     src/crypto/external/bsd/netpgp/dist/src/lib/reader.c \
     src/crypto/external/bsd/netpgp/dist/src/lib/validate.c
 cvs rdiff -u -r1.9 -r1.10 \
     src/crypto/external/bsd/netpgp/dist/src/lib/readerwriter.h \
     src/crypto/external/bsd/netpgp/dist/src/lib/symmetric.c
 cvs rdiff -u -r1.25 -r1.26 \
     src/crypto/external/bsd/netpgp/dist/src/lib/signature.c
 cvs rdiff -u -r1.12 -r1.13 \
     src/crypto/external/bsd/netpgp/dist/src/lib/validate.h
 cvs rdiff -u -r1.8 -r1.9 \
     src/crypto/external/bsd/netpgp/dist/src/netpgp/Makefile
 cvs rdiff -u -r1.9 -r1.10 \
     src/crypto/external/bsd/netpgp/dist/src/netpgp/netpgp.1
 cvs rdiff -u -r1.7 -r1.8 \
     src/crypto/external/bsd/netpgp/dist/src/netpgpkeys/netpgpkeys.c
 cvs rdiff -u -r1.7 -r1.8 \
     src/crypto/external/bsd/netpgp/dist/src/netpgpverify/Makefile
 cvs rdiff -u -r1.3 -r1.4 \
     src/crypto/external/bsd/netpgp/dist/src/netpgpverify/verify.c

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

From: "Alistair G. Crooks" <agc@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/42922 CVS commit: pkgsrc/security/netpgp
Date: Fri, 5 Mar 2010 16:20:05 +0000

 Module Name:	pkgsrc
 Committed By:	agc
 Date:		Fri Mar  5 16:20:05 UTC 2010

 Modified Files:
 	pkgsrc/security/netpgp: DESCR Makefile distinfo

 Log Message:
 Update netpgp to version 1.99.20/20100304 - portability improvements, and bug fixes:

         Changes to 1.99.20/20100304

         + move args to some functions around to be consistent
         + use uint*_t where appropriate
         + fix bug in verify memory
         + add documentation to manual pages to show how to do combined
           signing/encryption and decryption/verification
         + make verification of ascii-armoured memory work the same as binary
 	+ eliminate use of strdup(3), strcasecmp(3), and strptime(3).
 	  NetBSD/pkgsrc PR 42922 applies - need to define
 	  _XOPEN_SOURCE and _BSD_SOURCE for newer linux platforms with
 	  glibc 2.10.1.  solved a bit differently, by implementing
 	  strdup(3) and strcasecmp(3) independently, and using regexps
 	  to avoid calling strptime(3).


 To generate a diff of this commit:
 cvs rdiff -u -r1.1.1.1 -r1.2 pkgsrc/security/netpgp/DESCR
 cvs rdiff -u -r1.7 -r1.8 pkgsrc/security/netpgp/Makefile
 cvs rdiff -u -r1.6 -r1.7 pkgsrc/security/netpgp/distinfo

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

State-Changed-From-To: open->closed
State-Changed-By: agc@NetBSD.org
State-Changed-When: Fri, 05 Mar 2010 16:43:46 +0000
State-Changed-Why:
changes added to both src and pkgsrc, done somewhat differently, since i
personally don't like the definitions that we're being forced to add for
newer glibc on linux - it would be great if someone could apply some
common sense in that area. ok, i've exhaled now.

thanks for the problem report - please can you report back that these
changes fix things for you on newer linux - previous testing on linux
has been done with various versions of rhel, so i've been immune to this.


From: Steven Drake <sdrake@xnet.co.nz>
To: gnats-bugs@NetBSD.org
Cc: agc@NetBSD.org, pkgsrc-bugs@netbsd.org, gnats-admin@netbsd.org, 
    agc@NetBSD.org
Subject: Re: pkg/42922 (netpgp needs feature test macros to compile under
 glibc.)
Date: Sun, 7 Mar 2010 14:30:42 +1300 (NZDT)

 On Fri, 5 Mar 2010, agc@NetBSD.org wrote:
 > i personally don't like the definitions that we're being forced to add for
 > newer glibc on linux

 What I found surprising is that there is no autoconf macro designed to
 workout what c macros if any are needed and to define them in config.h
 e.g. "AC_GLIBC(strdup) ..."

 > thanks for the problem report - please can you report back that these
 > changes fix things for you on newer linux - previous testing on linux
 > has been done with various versions of rhel, so i've been immune to this.

 I tested netpgp-20100212 and it complied without any problems.

 -- 
 Steven

>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.