From 86ead0bcb82a858b180bb78bfb57dca989e8e5ac Mon Sep 17 00:00:00 2001 From: Andrew Brouwers Date: Mon, 27 Aug 2012 08:25:00 -0500 Subject: office/epdfview: Fix a couple of issues with a patch from LFS Signed-off-by: Robby Workman --- office/epdfview/epdfview-0.1.8-fixes-1.patch | 146 +++++++++++++++++++++++++++ office/epdfview/epdfview.SlackBuild | 4 +- office/epdfview/fix-glib_h-include.diff | 12 --- 3 files changed, 148 insertions(+), 14 deletions(-) create mode 100644 office/epdfview/epdfview-0.1.8-fixes-1.patch delete mode 100644 office/epdfview/fix-glib_h-include.diff diff --git a/office/epdfview/epdfview-0.1.8-fixes-1.patch b/office/epdfview/epdfview-0.1.8-fixes-1.patch new file mode 100644 index 0000000000..5e8ec288f2 --- /dev/null +++ b/office/epdfview/epdfview-0.1.8-fixes-1.patch @@ -0,0 +1,146 @@ +Submitted By: Ken Moffat +Date: 2012-08-22 +Initial Package Version: 0.1.8 +Upstream Status: Varies +Origin: Found at fedora. +Description: Three fixes found at fedora. For the first (only glib.h +can be included directly, with recent glib), we used to use a sed - but +the other two fixes need patches so I've put them all together. + + Second part is from upstream and fixes trashed colours +Upstream: http://trac.emma-soft.com/epdfview/changeset/367/trunk +Fixes bug: https://bugzilla.redhat.com/show_bug.cgi?id=745483 + + Third part is the most critical - from Jiri Popelka, found at +https://bugzilla.redhat.com/show_bug.cgi?id=841880 - looks as if fedora +haven't applied it yet. It solves building with cups-1.6. + +diff -Naur epdfview-0.1.8.orig/src/gtk/StockIcons.h epdfview-0.1.8/src/gtk/StockIcons.h +--- epdfview-0.1.8.orig/src/gtk/StockIcons.h 2011-05-28 11:24:57.000000000 +0100 ++++ epdfview-0.1.8/src/gtk/StockIcons.h 2012-08-22 20:06:08.728195806 +0100 +@@ -18,7 +18,7 @@ + #if !defined (__STOCK_ICONS_H__) + #define __STOCK_ICONS_H__ + +-#include ++#include + + G_BEGIN_DECLS + +diff -Naur epdfview-0.1.8.orig/src/PDFDocument.cxx epdfview-0.1.8/src/PDFDocument.cxx +--- epdfview-0.1.8.orig/src/PDFDocument.cxx 2011-05-28 11:25:01.000000000 +0100 ++++ epdfview-0.1.8/src/PDFDocument.cxx 2012-08-22 20:07:03.627913886 +0100 +@@ -20,6 +20,7 @@ + #include + #include + #include ++#include + #include "epdfview.h" + + using namespace ePDFView; +@@ -33,6 +34,24 @@ + static PageMode convertPageMode (gint pageMode); + static gchar *getAbsoluteFileName (const gchar *fileName); + ++namespace ++{ ++ void ++ convert_bgra_to_rgba (guint8 *data, int width, int height) ++ { ++ using std::swap; ++ ++ for (int y = 0; y < height; y++) ++ { ++ for (int x = 0; x < width; x++) ++ { ++ swap(data[0], data[2]); ++ data += 4; ++ } ++ } ++ } ++} ++ + /// + /// @brief Constructs a new PDFDocument object. + /// +@@ -650,6 +669,7 @@ + poppler_page_render (page, context); + cairo_destroy(context); + cairo_surface_destroy (surface); ++ convert_bgra_to_rgba(renderedPage->getData (), width, height); + #else // !HAVE_POPPLER_0_17_0 + // Create the pixbuf from the data and render to it. + GdkPixbuf *pixbuf = gdk_pixbuf_new_from_data (renderedPage->getData (), +diff -Naur epdfview-0.1.8.orig/src/PrintPter.cxx epdfview-0.1.8/src/PrintPter.cxx +--- epdfview-0.1.8.orig/src/PrintPter.cxx 2011-05-28 11:25:01.000000000 +0100 ++++ epdfview-0.1.8/src/PrintPter.cxx 2012-08-22 20:11:46.362436859 +0100 +@@ -22,6 +22,40 @@ + #include + #include "epdfview.h" + ++#if (CUPS_VERSION_MAJOR > 1) || (CUPS_VERSION_MINOR > 5) ++#define HAVE_CUPS_1_6 1 ++#endif ++ ++#ifndef HAVE_CUPS_1_6 ++inline int ippGetInteger (ipp_attribute_t *attr, int element) ++{ ++ return (attr->values[element].integer); ++} ++ ++inline const char * ippGetString (ipp_attribute_t *attr, ++ int element, ++ const char **language /*UNUSED*/) ++{ ++ return (attr->values[element].string.text); ++} ++ ++inline int ippSetOperation (ipp_t *ipp, ipp_op_t op) ++{ ++ if (!ipp) ++ return (0); ++ ipp->request.op.operation_id = op; ++ return (1); ++} ++ ++inline int ippSetRequestId (ipp_t *ipp, int request_id) ++{ ++ if (!ipp) ++ return (0); ++ ipp->request.any.request_id = request_id; ++ return (1); ++} ++#endif ++ + using namespace ePDFView; + + // Structures +@@ -380,8 +414,8 @@ + + ipp_t *request = ippNew (); + +- request->request.op.operation_id = IPP_GET_PRINTER_ATTRIBUTES; +- request->request.op.request_id = 1; ++ ippSetOperation(request, IPP_GET_PRINTER_ATTRIBUTES); ++ ippSetRequestId(request, 1); + + ippAddString (request, IPP_TAG_OPERATION, IPP_TAG_CHARSET, + "attributes-charset", NULL, "utf-8"); +@@ -403,7 +437,7 @@ + ippFindAttribute (answer, "printer-state", IPP_TAG_ZERO); + if ( NULL != state ) + { +- switch (state->values[0].integer) ++ switch (ippGetInteger (state, 0)) + { + case IPP_PRINTER_IDLE: + attributes->state = g_strdup (_("Idle")); +@@ -425,7 +459,7 @@ + ippFindAttribute (answer, "printer-location", IPP_TAG_ZERO); + if ( NULL != location ) + { +- attributes->location = g_strdup (location->values[0].string.text); ++ attributes->location = g_strdup (ippGetString (location, 0, NULL)); + } + + ippDelete (answer); diff --git a/office/epdfview/epdfview.SlackBuild b/office/epdfview/epdfview.SlackBuild index e7f7ef7f91..662fd95896 100644 --- a/office/epdfview/epdfview.SlackBuild +++ b/office/epdfview/epdfview.SlackBuild @@ -71,8 +71,8 @@ find . \ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ -exec chmod 644 {} \; -# Include glib.h instead of glib/gmacros.h -patch -p1 < $CWD/fix-glib_h-include.diff +# http://www.linuxfromscratch.org/patches/blfs/svn/epdfview-0.1.8-fixes-1.patch +patch -p1 < $CWD/epdfview-0.1.8-fixes-1.patch CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ diff --git a/office/epdfview/fix-glib_h-include.diff b/office/epdfview/fix-glib_h-include.diff deleted file mode 100644 index b45ee4f933..0000000000 --- a/office/epdfview/fix-glib_h-include.diff +++ /dev/null @@ -1,12 +0,0 @@ -diff -Nur epdfview-0.1.8.orig/src/gtk/StockIcons.h epdfview-0.1.8/src/gtk/StockIcons.h ---- epdfview-0.1.8.orig/src/gtk/StockIcons.h 2011-05-28 05:24:57.000000000 -0500 -+++ epdfview-0.1.8/src/gtk/StockIcons.h 2012-08-03 21:25:47.540948945 -0500 -@@ -18,7 +18,7 @@ - #if !defined (__STOCK_ICONS_H__) - #define __STOCK_ICONS_H__ - --#include -+#include - - G_BEGIN_DECLS - -- cgit v1.2.3