diff --git a/graphics/inkscape/Makefile b/graphics/inkscape/Makefile index 71ac0f370219..d45cf668e54b 100644 --- a/graphics/inkscape/Makefile +++ b/graphics/inkscape/Makefile @@ -3,7 +3,7 @@ PORTNAME= inkscape PORTVERSION= 0.48.4 -PORTREVISION= 6 +PORTREVISION= 7 CATEGORIES= graphics gnome MASTER_SITES= SF MASTER_SITE_SUBDIR=${PORTNAME:tl}/${PORTNAME:tl}/${PORTVERSION} diff --git a/graphics/inkscape/files/patch-beohm-gc-7.4 b/graphics/inkscape/files/patch-beohm-gc-7.4 new file mode 100644 index 000000000000..b610d097490b --- /dev/null +++ b/graphics/inkscape/files/patch-beohm-gc-7.4 @@ -0,0 +1,54 @@ +--- src/gc-core.h.old 2013-12-31 01:22:38.976653890 +0400 ++++ src/gc-core.h 2013-12-31 01:22:48.525653608 +0400 +@@ -57,7 +57,7 @@ + CleanupFunc *old_func, + void **old_data); + int (*general_register_disappearing_link)(void **p_ptr, +- void *base); ++ const void *base); + int (*unregister_disappearing_link)(void **p_ptr); + std::size_t (*get_heap_size)(); + std::size_t (*get_free_bytes)(); +--- src/gc.cpp.old 2013-12-31 01:23:50.462651778 +0400 ++++ src/gc.cpp 2013-12-31 01:40:37.718622017 +0400 +@@ -70,8 +70,8 @@ + return base + debug_base_fixup(); + } + +-int debug_general_register_disappearing_link(void **p_ptr, void *base) { +- char *real_base=reinterpret_cast(base) - debug_base_fixup(); ++int debug_general_register_disappearing_link(void **p_ptr, const void *base) { ++ char *real_base=const_cast(reinterpret_cast(base)) - debug_base_fixup(); + return GC_general_register_disappearing_link(p_ptr, real_base); + } + +@@ -90,7 +90,7 @@ + } + } + +-int dummy_general_register_disappearing_link(void **, void *) { return false; } ++int dummy_general_register_disappearing_link(void **, const void *) { return false; } + + int dummy_unregister_disappearing_link(void **/*link*/) { return false; } + +@@ -112,7 +112,11 @@ + &GC_malloc_atomic_uncollectable, + &GC_base, + &GC_register_finalizer_ignore_self, ++#if (GC_MAJOR_VERSION >= 7 && GC_MINOR_VERSION >= 4) + &GC_general_register_disappearing_link, ++#else ++ (int (*)(void**, const void*))(&GC_general_register_disappearing_link), ++#endif + &GC_unregister_disappearing_link, + &GC_get_heap_size, + &GC_get_free_bytes, +@@ -202,7 +206,7 @@ + die_because_not_initialized(); + } + +-int stub_general_register_disappearing_link(void **, void *) { ++int stub_general_register_disappearing_link(void **, const void *) { + die_because_not_initialized(); + return 0; + } diff --git a/graphics/inkscape/files/patch-configure b/graphics/inkscape/files/patch-configure index 55c8269c3692..c4f5d1426460 100644 --- a/graphics/inkscape/files/patch-configure +++ b/graphics/inkscape/files/patch-configure @@ -1,5 +1,5 @@ ---- configure.orig 2013-10-16 22:37:30.000000000 +0200 -+++ configure 2013-10-16 22:37:37.000000000 +0200 +--- configure.orig 2014-07-10 22:35:29.000000000 +0200 ++++ configure 2014-07-10 22:46:14.000000000 +0200 @@ -7498,7 +7498,7 @@ cc_vers_all=`expr $cc_vers_major '*' 1000000 + $cc_vers_minor '*' 1000 + $cc_vers_patch` @@ -9,3 +9,19 @@ fi fi +@@ -8961,10 +8961,11 @@ + #include + extern unsigned GC_version; + int main(void){ +- unsigned min = ((6 << 16) | (4 << 8) | 0); +- printf("%d.%d.%d ",GC_version >> 16, (GC_version >> 8) & 0xFF, GC_version & 0xFF); +- if (GC_version>=min) return 0; +- return 1; ++ printf("%d.%d.%d ", GC_VERSION_MAJOR, GC_VERSION_MINOR, GC_VERSION_MICRO); ++ if (GC_VERSION_MAJOR >= 6 && GC_VERSION_MINOR >= 4) ++ return 0; ++ else ++ return 1; + } + _ACEOF + if ac_fn_cxx_try_run "$LINENO"; then :