[inkscape] Fix build with new Poppler and GC (Sandro Mani, #1097945)
Lubomir Rintel
lkundrak at fedoraproject.org
Thu May 15 12:18:41 UTC 2014
commit e1ffb850d69c973d843424f04154a479ad3754e7
Author: Lubomir Rintel <lkundrak at v3.sk>
Date: Thu May 15 14:18:12 2014 +0200
Fix build with new Poppler and GC (Sandro Mani, #1097945)
inkscape-0.48.4-gc-7.4.patch | 68 +++++++++++++++++++++++++++
inkscape-0.48.4-poppler-0.26.patch | 90 ++++++++++++++++++++++++++++++++++++
inkscape.spec | 10 ++++-
3 files changed, 167 insertions(+), 1 deletions(-)
---
diff --git a/inkscape-0.48.4-gc-7.4.patch b/inkscape-0.48.4-gc-7.4.patch
new file mode 100644
index 0000000..fbbfe67
--- /dev/null
+++ b/inkscape-0.48.4-gc-7.4.patch
@@ -0,0 +1,68 @@
+diff -rupN inkscape-0.48.4/configure.ac inkscape-0.48.4-new/configure.ac
+--- inkscape-0.48.4/configure.ac 2012-12-15 17:50:19.205918190 +0100
++++ inkscape-0.48.4-new/configure.ac 2014-05-15 00:29:24.076377009 +0200
+@@ -263,7 +263,7 @@ if test "x$gc_ok" = "xyes" && test "x$cr
+ # include <gc.h>
+ #endif
+ #include <stdio.h>
+- extern unsigned GC_version;
++ unsigned GC_version = GC_get_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);
+diff -rupN inkscape-0.48.4/src/gc-core.h inkscape-0.48.4-new/src/gc-core.h
+--- inkscape-0.48.4/src/gc-core.h 2012-02-14 04:22:17.670697000 +0100
++++ inkscape-0.48.4-new/src/gc-core.h 2014-05-15 00:28:40.838404308 +0200
+@@ -57,7 +57,7 @@ struct Ops {
+ 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)();
+diff -rupN inkscape-0.48.4/src/gc.cpp inkscape-0.48.4-new/src/gc.cpp
+--- inkscape-0.48.4/src/gc.cpp 2012-02-14 04:22:17.670697000 +0100
++++ inkscape-0.48.4-new/src/gc.cpp 2014-05-15 00:28:40.839404331 +0200
+@@ -70,8 +70,8 @@ void *debug_base(void *ptr) {
+ return base + debug_base_fixup();
+ }
+
+-int debug_general_register_disappearing_link(void **p_ptr, void *base) {
+- char *real_base=reinterpret_cast<char *>(base) - debug_base_fixup();
++int debug_general_register_disappearing_link(void **p_ptr, const void *base) {
++ char *real_base=const_cast<char *>(reinterpret_cast<const char *>(base)) - debug_base_fixup();
+ return GC_general_register_disappearing_link(p_ptr, real_base);
+ }
+
+@@ -90,7 +90,7 @@ void dummy_register_finalizer(void *, Cl
+ }
+ }
+
+-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 @@ Ops enabled_ops = {
+ &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 @@ void stub_register_finalizer_ignore_self
+ 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/inkscape-0.48.4-poppler-0.26.patch b/inkscape-0.48.4-poppler-0.26.patch
new file mode 100644
index 0000000..921c1b4
--- /dev/null
+++ b/inkscape-0.48.4-poppler-0.26.patch
@@ -0,0 +1,90 @@
+diff -rupN inkscape-0.48.4/src/extension/internal/pdfinput/pdf-parser.cpp inkscape-0.48.4-new/src/extension/internal/pdfinput/pdf-parser.cpp
+--- inkscape-0.48.4/src/extension/internal/pdfinput/pdf-parser.cpp 2012-12-13 18:00:46.726633000 +0100
++++ inkscape-0.48.4-new/src/extension/internal/pdfinput/pdf-parser.cpp 2014-05-15 00:06:39.247501345 +0200
+@@ -861,7 +861,7 @@ void PdfParser::opSetExtGState(Object ar
+ isolated = knockout = gFalse;
+ if (!obj4.dictLookup(const_cast<char*>("CS"), &obj5)->isNull()) {
+ #if defined(POPPLER_NEW_COLOR_SPACE_API) || defined(POPPLER_NEW_ERRORAPI)
+- blendingColorSpace = GfxColorSpace::parse(&obj5, NULL);
++ blendingColorSpace = GfxColorSpace::parse(&obj5, NULL, NULL);
+ #else
+ blendingColorSpace = GfxColorSpace::parse(&obj5);
+ #endif
+@@ -1085,9 +1085,9 @@ void PdfParser::opSetFillColorSpace(Obje
+ res->lookupColorSpace(args[0].getName(), &obj);
+ #if defined(POPPLER_NEW_COLOR_SPACE_API) || defined(POPPLER_NEW_ERRORAPI)
+ if (obj.isNull()) {
+- colorSpace = GfxColorSpace::parse(&args[0], NULL);
++ colorSpace = GfxColorSpace::parse(&args[0], NULL, NULL);
+ } else {
+- colorSpace = GfxColorSpace::parse(&obj, NULL);
++ colorSpace = GfxColorSpace::parse(&obj, NULL, NULL);
+ }
+ #else
+ if (obj.isNull()) {
+@@ -1120,9 +1120,9 @@ void PdfParser::opSetStrokeColorSpace(Ob
+ res->lookupColorSpace(args[0].getName(), &obj);
+ #if defined(POPPLER_NEW_COLOR_SPACE_API) || defined(POPPLER_NEW_ERRORAPI)
+ if (obj.isNull()) {
+- colorSpace = GfxColorSpace::parse(&args[0], NULL);
++ colorSpace = GfxColorSpace::parse(&args[0], NULL, NULL);
+ } else {
+- colorSpace = GfxColorSpace::parse(&obj, NULL);
++ colorSpace = GfxColorSpace::parse(&obj, NULL, NULL);
+ }
+ #else
+ if (obj.isNull()) {
+@@ -1213,7 +1213,7 @@ void PdfParser::opSetFillColorN(Object a
+ }
+ #if defined(POPPLER_NEW_COLOR_SPACE_API) || defined(POPPLER_NEW_ERRORAPI)
+ if (args[numArgs-1].isName() &&
+- (pattern = res->lookupPattern(args[numArgs-1].getName(), NULL))) {
++ (pattern = res->lookupPattern(args[numArgs-1].getName(), NULL, NULL))) {
+ state->setFillPattern(pattern);
+ builder->updateStyle(state);
+ }
+@@ -1273,7 +1273,7 @@ void PdfParser::opSetStrokeColorN(Object
+ }
+ #if defined(POPPLER_NEW_COLOR_SPACE_API) || defined(POPPLER_NEW_ERRORAPI)
+ if (args[numArgs-1].isName() &&
+- (pattern = res->lookupPattern(args[numArgs-1].getName(), NULL))) {
++ (pattern = res->lookupPattern(args[numArgs-1].getName(), NULL, NULL))) {
+ state->setStrokePattern(pattern);
+ builder->updateStyle(state);
+ }
+@@ -1711,7 +1711,7 @@ void PdfParser::opShFill(Object args[],
+ GBool savedState = gFalse;
+
+ #if defined(POPPLER_NEW_COLOR_SPACE_API) || defined(POPPLER_NEW_ERRORAPI)
+- if (!(shading = res->lookupShading(args[0].getName(), NULL))) {
++ if (!(shading = res->lookupShading(args[0].getName(), NULL, NULL))) {
+ return;
+ }
+ #else
+@@ -2727,7 +2727,7 @@ void PdfParser::doImage(Object *ref, Str
+ }
+ if (!obj1.isNull()) {
+ #if defined(POPPLER_NEW_COLOR_SPACE_API) || defined(POPPLER_NEW_ERRORAPI)
+- colorSpace = GfxColorSpace::parse(&obj1, NULL);
++ colorSpace = GfxColorSpace::parse(&obj1, NULL, NULL);
+ #else
+ colorSpace = GfxColorSpace::parse(&obj1);
+ #endif
+@@ -2816,7 +2816,7 @@ void PdfParser::doImage(Object *ref, Str
+ }
+ }
+ #if defined(POPPLER_NEW_COLOR_SPACE_API) || defined(POPPLER_NEW_ERRORAPI)
+- maskColorSpace = GfxColorSpace::parse(&obj1, NULL);
++ maskColorSpace = GfxColorSpace::parse(&obj1, NULL, NULL);
+ #else
+ maskColorSpace = GfxColorSpace::parse(&obj1);
+ #endif
+@@ -3007,7 +3007,7 @@ void PdfParser::doForm(Object *str) {
+ transpGroup = gTrue;
+ if (!obj1.dictLookup(const_cast<char*>("CS"), &obj3)->isNull()) {
+ #if defined(POPPLER_NEW_COLOR_SPACE_API) || defined(POPPLER_NEW_ERRORAPI)
+- blendingColorSpace = GfxColorSpace::parse(&obj3, NULL);
++ blendingColorSpace = GfxColorSpace::parse(&obj3, NULL, NULL);
+ #else
+ blendingColorSpace = GfxColorSpace::parse(&obj3);
+ #endif
diff --git a/inkscape.spec b/inkscape.spec
index 8297938..7fdf2e8 100644
--- a/inkscape.spec
+++ b/inkscape.spec
@@ -1,6 +1,6 @@
Name: inkscape
Version: 0.48.4
-Release: 13%{?dist}
+Release: 14%{?dist}
Summary: Vector-based drawing program using SVG
Group: Applications/Productivity
@@ -16,6 +16,9 @@ Patch0: inkscape-0.48.2-types.patch
#Patch9: inkscape-0.48.3.1-hugexml.patch
Patch10: inkscape-0.48.4-spuriouscomma.h
Patch11: inkscape-0.48.4-freetype.patch
+# https://bugzilla.redhat.com/show_bug.cgi?id=1097945
+Patch12: inkscape-0.48.4-poppler-0.26.patch
+Patch13: inkscape-0.48.4-gc-7.4.patch
%if 0%{?fedora} && 0%{?fedora} < 18
%define desktop_vendor fedora
@@ -134,6 +137,8 @@ graphics in W3C standard Scalable Vector Graphics (SVG) file format.
#%patch9 -p0 -b .hugexml
%patch10 -p0 -b .spuriouscomma
%patch11 -p0 -b .freetype
+%patch12 -p1 -b .poppler
+%patch13 -p1 -b .gc
# https://bugs.launchpad.net/inkscape/+bug/314381
# A couple of files have executable bits set,
@@ -237,6 +242,9 @@ fi
%changelog
+* Thu May 15 2014 Lubomir Rintel <lkundrak at v3.sk> - 0.48.4-14
+- Fix build with new Poppler and GC (Sandro Mani, #1097945)
+
* Wed May 14 2014 Jon Ciesla <limburgher at gmail.com> - 0.48.4-13
- poppler rebuild.
More information about the scm-commits
mailing list