pkgsrc-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
pkg/34752: devel/glibmm (2006Q[23]+HEAD) broken on 64bit
>Number: 34752
>Category: pkg
>Synopsis: devel/glibmm (2006Q[23]+HEAD) broken on 64bit
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: pkg-manager
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Sun Oct 08 08:00:01 +0000 2006
>Originator: Martin S. Weber
>Release: NetBSD 4.99.1
>Organization:
Entropie Regensburg
>Environment:
pkgsrc 2006Q2 ("then")
pkgsrc 2006Q3 (up-to-date).
pkgsrc HEAD as of today...
System: NetBSD helios.entropie.net 4.99.1 NetBSD 4.99.1 (GENERIC) #0: Mon Aug
28 18:03:18 CEST 2006
root%helios.entropie.net@localhost:/usr/obj/sys/arch/sparc64/compile/GENERIC
sparc64
Architecture: sparc64
Machine: sparc64
>Description:
devel/glibmm does not compile on sparc64 because of a clashing definition of
two methods. The problematic
methods are: set_time(time_t) and set_time(GTime) (c++ error: failed to
overload blah blah).
This is no problem on 32bit platforms because GTime is defined as "gint32"
while time_t is long on x86.
On 64bit (I only have a sparc to look) time_t is an int and GTime still is a
gint32, so they clash.
This has been reported for pkgsrc-2006Q2 for amd64 and sparc64 on pkgsrc-users
already:
http://mail-index.netbsd.org/pkgsrc-users/2006/09/07/0010.html (rhialto:
compile error, amd64)
http://mail-index.netbsd.org/pkgsrc-users/2006/09/07/0012.html (rhialto: source
extracts)
http://mail-index.netbsd.org/pkgsrc-users/2006/09/07/0014.html (rhialto: first
fix)
http://mail-index.netbsd.org/pkgsrc-users/2006/09/07/0014.html (myself:
observed on sparc64)
Note that both HEAD and 2006Q3 are affected...
>How-To-Repeat:
on amd64, sparc64 ... cd $PKGSRCDIR/devel/glibmm && make
>Fix:
First, for 64bitties the suggested fix by rhialto will work fine, but I'm not
sure of the impact on 32bitties because
for them GTime and time_t are distinct types. So I've chosen to enable the fix
only in the 64bit case.
That said, apply:
---((--
Index: distinfo
===================================================================
RCS file: /cvsroot/pkgsrc/devel/glibmm/distinfo,v
retrieving revision 1.10
diff -u -r1.10 distinfo
--- distinfo 24 Sep 2006 16:43:47 -0000 1.10
+++ distinfo 8 Oct 2006 07:56:42 -0000
@@ -3,3 +3,4 @@
SHA1 (glibmm-2.12.1.tar.bz2) = cc00d6cb84600f231fe61a4f538a1c039e4de3d4
RMD160 (glibmm-2.12.1.tar.bz2) = aafaa3e8b96b009d0c57b8b53c5cacf5b42e0b60
Size (glibmm-2.12.1.tar.bz2) = 2350209 bytes
+SHA1 (patch-aa) = d37e16a2961933b6bde0693a1c2aac17344c5cb7
---))--
and unpack:
---((--
# This is a shell archive. Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file". Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
# patches
# patches/patch-aa
#
echo c - patches
mkdir -p patches > /dev/null 2>&1
echo x - patches/patch-aa
sed 's/^X//' >patches/patch-aa << 'END-of-patches/patch-aa'
X--- glib/glibmm/date.h.orig 2006-09-21 21:47:43.000000000 +0200
X+++ glib/glibmm/date.h 2006-10-08 09:22:59.000000000 +0200
X@@ -25,6 +25,12 @@
X
X
X #undef G_DISABLE_DEPRECATED //So we can use deprecated functions in our
deprecated methods.
X+
X+//following deprecates set_time(GTime) because of clash with set_time(time_t)
on 64bit archs
X+//the single set_time(GTime) is the only to be affected at all. (nbsd pkgsrc
2006-10-08)
X+#ifdef _LP64
X+#define GLIBMM_DISABLE_DEPRECATED
X+#endif
X
X #include <glibmm/ustring.h>
X
END-of-patches/patch-aa
exit
---))--
>Unformatted:
Home |
Main Index |
Thread Index |
Old Index