Subject: Patch files assuming old-style __NetBSD_Version__ which cause failures with 2.1
To: , <tech-pkg@netbsd.org>
From: David H.Gutteridge <dhgutteridge@sympatico.ca>
List: tech-pkg
Date: 09/04/2005 03:54:18
Hi all,

I don't know if this is already a known issue, but there are a bunch of
patch files in pkgsrc which were coded to conditionally substitute new
features in what was then the NetBSD-current branch (e.g. "2.0D"), and
when the version numbering scheme changed, they were not updated to match.
As a result, 2.1, which is __NetBSD_Version__ 201000000, is being taken to
have features it does not, causing compile failures and more subtle problems
in one case.

Most commonly, statvfs elements are being substituted for statfs, which
simply causes compile failures in packages like audio/xmms (which I've
filed a PR for, I haven't gotten an automated reply back yet so I can't
give a reference to its PR number).  In the case of Mozilla/Firebird/
Thunderbird, there's an assumption that DNS queries can use a thread-safe
resolver, which does compile, but I can attest empirically that it
causes some obnoxious behaviour in 2.1_RC3 (tons of hung DNS queries that
never resolve).

I grepped the pkgsrc tree for problems of this nature, and examined the
results by eye.  The following packages are adversely affected by this
problem.  The majority will not compile under 2.1 in their present state.

(The grep results I've gone through:)

archivers/arj/patches/patch-aa:+  #if defined(__QNXNTO__)||defined(__sco__)||defined(SUNOS)||defined(__INTERIX)||(defined(__NetBSD__) && (__NetBSD_Version__ > 200030000))
audio/gqmpeg/patches/patch-ab:+#if defined(__NetBSD__) && (__NetBSD_Version__ > 200030000)
audio/libcdaudio/patches/patch-aa:+#if (defined(__NetBSD__) && __NetBSD_Version__ >= 200040000) /* NetBSD 2.0D */
audio/snd/patches/patch-ah:+  #if (__NetBSD_Version__ >= 200040000) /* NetBSD 2.0D */
audio/xmms/patches/patch-aa:+#if (defined(__NetBSD__) && __NetBSD_Version__ >= 200040000) /* NetBSD 2.0D */
audio/tunepimp/patches/patch-ab:+#if defined(__NetBSD__) && (__NetBSD_Version__ >= 200040000) /* NetBSD 2.0D */
chat/centericq/patches/patch-aa:+#if defined(__sun__) || (defined(__NetBSD__) && (__NetBSD_Version__ >= 200040000))
comms/mgetty+sendfax/patches/patch-ah:+#if defined(__NetBSD__) && (__NetBSD_Version__ > 200030000)
devel/physfs/patches/patch-ac:+#if defined(__NetBSD__) && (__NetBSD_Version__ >= 200040000)
devel/pwlib/patches/patch-ad:+#if defined(__NetBSD__) && __NetBSD_Version__ > 200040000
devel/libaura/patches/patch-aa:+#if (__NetBSD_Version__ >= 200040000)
devel/libinstaller/patches/patch-aa:+#if (__NetBSD_Version__ >= 200040000)
emulators/pcemu/patches/patch-ac:+#if defined(SOLARIS) || (defined(__NetBSD__) && __NetBSD_Version__ >= 200040000)
graphics/blender/patches/patch-ab:+#if defined (__NetBSD__) && __NetBSD_Version__ >= 200040000 /* 2.0D */
ham/dpbox/patches/patch-af:+#if defined(__NetBSD__) && (__NetBSD_Version__ >= 200040000)
mail/exim/patches/patch-af:+#if __NetBSD_Version__ >= 200040000
mail/exim3/patches/patch-ah:+#if __NetBSD_Version__ >= 200040000
mail/postfix/patches/patch-ag:+#if (defined(__NetBSD__) && __NetBSD_Version__ >= 200040000) /* NetBSD 2.0D */
mail/thunderbird/patches/patch-br:+#if defined(__NetBSD_Version__) && __NetBSD_Version__ < 200060000
mail/sendmail812/patches/patch-ag:+#if defined(__NetBSD__) && (__NetBSD_Version__ > 200030000)
misc/gnuls/patches/patch-ac:+# if defined(__NetBSD__) && (__NetBSD_Version__ > 200030000)
misc/kdeutils3/patches/patch-ac:+#if __NetBSD_Version__ >= 200040000    /* 2.0D */
misc/openoffice/patches/patch-as:+# if __NetBSD_Version__ >= 200040000
misc/openoffice/patches/patch-at:+#  if __NetBSD_Version__ >= 200040000
misc/openoffice/patches/patch-au:+#  if __NetBSD_Version__ >= 200040000
multimedia/kdemultimedia3/patches/patch-ad:+# if __NetBSD_Version__ >= 200040000	 /* 2.0D */
multimedia/libmpeg3/patches/patch-ae:+# if __NetBSD_Version__ >= 200040000	/* 2.0D */
net/netatalk/patches/patch-ag:+#if defined(__svr4__) || (defined(__NetBSD__) && (__NetBSD_Version__ >= 200040000))
net/rdist6/patches/patch-ae:+#if __NetBSD_Version__ < 200060000
net/sharity-light/patches/patch-ab:+#if __NetBSD_Version__ >= 200040000
net/sharity-light/patches/patch-ad:+#if defined(__NetBSD__) && __NetBSD_Version__ >= 200040000
net/spegla/patches/patch-ab:+#if defined(Solaris) || (defined(__NetBSD__) && __NetBSD_Version__ >= 200040000)
parallel/mpi-ch/patches/patch-ca:+#if __NetBSD_Version__ >= 200040000
security/cfs/patches/patch-ag:+#if defined(__NetBSD_Version__) && __NetBSD_Version__ >= 200050000
sysutils/coreutils/patches/patch-ab:+# if defined(__NetBSD__) && (__NetBSD_Version__ > 200030000)
sysutils/coreutils/patches/patch-ac:+#if (defined(__NetBSD__) && (__NetBSD_Version__ > 200030000)) || defined(__INTERIX)
sysutils/dvd+rw-tools/patches/patch-aa:+#if __NetBSD_Version__ >= 200040000
sysutils/e2fsprogs/patches/patch-af:+#if defined(__NetBSD__) && __NetBSD_Version__ >= 200060000
sysutils/gkrellm/patches/patch-aa:+#if (defined(__NetBSD__) && __NetBSD_Version__ >= 200040000) /* NetBSD 2.0D */
sysutils/gkrellm1/patches/patch-ad:+#if defined(__NetBSD__) && (__NetBSD_Version__ >= 200040000) /* NetBSD 2.0D */
sysutils/vobcopy/patches/patch-aa:+#if !defined(__NetBSD__) || (__NetBSD_Version__ < 200040000)
sysutils/vobcopy/patches/patch-ab:+#if (defined(BSD) && (BSD >= 199306) && !defined(__NetBSD__)) ||(defined(__APPLE__) && defined(__GNUC__)) || (defined(__NetBSD__) && (__NetBSD_Version__ < 200040000))
sysutils/ntfsprogs/patches/patch-af:+#  if __NetBSD_Version__ >= 200040000
www/firefox/patches/patch-br:+#if defined(__NetBSD_Version__) && __NetBSD_Version__ < 200060000
www/mozilla/patches/patch-br:+#if defined(__NetBSD_Version__) && __NetBSD_Version__ < 200060000
x11/filerunner/patches/patch-ab:+#if defined(__NetBSD__) && (__NetBSD_Version__ >= 200040000) /* NetBSD 2.0D */

Regards,

Dave