Subject: pkg/16113: pkgsrc does not use strict patch options
To: None <gnats-bugs@gnats.netbsd.org>
From: None <dogcow@babymeat.com>
List: netbsd-bugs
Date: 03/28/2002 19:39:23
>Number:         16113
>Category:       pkg
>Synopsis:       pkgsrc does not use strict patch options
>Confidential:   no
>Severity:       serious
>Priority:       low
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Mar 28 19:40:00 PST 2002
>Closed-Date:
>Last-Modified:
>Originator:     
>Release:        NetBSD 1.5.1
>Organization:
	
>Environment:
	
System: NetBSD fartmangler 1.5.3_ALPHA NetBSD 1.5.3_ALPHA (NETEGON) #7: Tue Feb 12 11:11:11 PST 2002 notroot@egon.redback.com:/netbsd15/nbsrc152/sys-1.5.3/arch/i386/compile/NETEGON i386


>Description:
patch(1) on NetBSD is sloppier than gnu patch, and is happy to allow fuzz
in patches (even when you pass it -F0). Many such patches will work on
NetBSD, but fail on zoularis. I'm not sure whether I'd call this a bug in
patch(1) or in pkgsrc development - but if and when NetBSD moves to gnu
patch-2.5.4, pkgsrc will suddenly start failing.

	
>How-To-Repeat:
an example is cross/binutils.

on NetBSD:

p0 root@egon: /usr/pkgsrc/cross/binutils 3080 % make patch
=> Checksum OK for binutils-2.9.1.tar.gz.
work.i386 -> /var/tmp/pkgsrc/cross/binutils/work.i386
===> Extracting for cross-binutils-2.9.1.2
===> Required installed package libtool-base>=1.4.20010614nb8: libtool-base-1.4.20010614nb8 found
===> Patching for cross-binutils-2.9.1.2
===> Applying NetBSD patches for cross-binutils-2.9.1.2
/usr/bin/find /var/tmp/pkgsrc/cross/binutils/work.i386/binutils-2.9.1 -name configure -print | /usr/bin/xargs /usr/bin/touch
/usr/bin/find /var/tmp/pkgsrc/cross/binutils/work.i386/binutils-2.9.1 -name Makefile.in -print | /usr/bin/xargs /usr/bin/touch

On Solaris/Zoularis:

pts/2 root@turbid: /usr/pkgsrc/cross/binutils 195 % bmake patch
=> Checksum OK for binutils-2.9.1.tar.gz.
work.sparc -> /tmp/pkgsrc/cross/binutils/work.sparc
===> Extracting for cross-binutils-2.9.1.2
===> Required installed package libtool-base>=1.4.20010614nb8: libtool-base-1.4.20010614nb8 found
===> Patching for cross-binutils-2.9.1.2
===> Applying SunOS patches for cross-binutils-2.9.1.2
1 out of 1 hunk FAILED -- saving rejects to file ./ld/configure.tgt.rej
Patch /usr/pkgsrc/cross/binutils/patches/patch-msixtyeightk failed
*** Error code 1

Stop.
bmake: stopped in /usr/pkgsrc/cross/binutils
*** Error code 1

Stop.

(the same behavior will happen in NetBSD if you force it to use
pkgsrc/devel/patch.)

	
>Fix:
Make pkgsrc developers (or bulk pkgsrc builders) use gnu patch when building;
this'll sniff out more errors.
	
>Release-Note:
>Audit-Trail:
>Unformatted: