Package: pdf2djvu
Version: 0.7.12-2
Severity: normal
Tags: patch
User: [email protected]
Usertags: origin-ubuntu quantal ubuntu-patch
Dear Maintainer,
We are using this patch in Ubuntu to handle the changes in libpoppler's
API version 19 to version 25/26. Please consider for Debian.
* Track changes to libpoppler25 API.
* Disable tests/test-nfkc.sh which tests ligature handling
but libpoppler25 now always decomposes such ligatures.
Thanks for considering the patch.
-apw
-- System Information:
Debian Release: wheezy/sid
APT prefers precise-updates
APT policy: (500, 'precise-updates'), (500, 'precise-security'), (500,
'precise-proposed'), (500, 'precise'), (100, 'precise-backports')
Architecture: amd64 (x86_64)
Kernel: Linux 3.2.0-26-generic (SMP w/2 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
diff -Nru pdf2djvu-0.7.12/debian/patches/series pdf2djvu-0.7.12/debian/patches/series
--- pdf2djvu-0.7.12/debian/patches/series 1970-01-01 01:00:00.000000000 +0100
+++ pdf2djvu-0.7.12/debian/patches/series 2012-06-14 20:49:01.000000000 +0100
@@ -0,0 +1,2 @@
+track_libpoppler25_api.patch
+track_libpoppler23_api_disable_tests.patch
diff -Nru pdf2djvu-0.7.12/debian/patches/track_libpoppler23_api_disable_tests.patch pdf2djvu-0.7.12/debian/patches/track_libpoppler23_api_disable_tests.patch
--- pdf2djvu-0.7.12/debian/patches/track_libpoppler23_api_disable_tests.patch 1970-01-01 01:00:00.000000000 +0100
+++ pdf2djvu-0.7.12/debian/patches/track_libpoppler23_api_disable_tests.patch 2012-06-14 20:51:53.000000000 +0100
@@ -0,0 +1,19 @@
+Description: Track libpoppler25 API changes -- disable broken tests
+ Disable tests/test-nfkc.sh which tests ligature handling
+ but libpoppler25 now always decomposes such ligatures.
+Author: Andy Whitcroft <[email protected]>
+Last-Update: 2012-06-14
+Index: pdf2djvu-0.7.12/tests/test-nfkc.sh
+===================================================================
+--- pdf2djvu-0.7.12.orig/tests/test-nfkc.sh 2012-06-14 20:49:18.147169287 +0100
++++ pdf2djvu-0.7.12/tests/test-nfkc.sh 2012-06-14 20:49:32.683241358 +0100
+@@ -8,6 +8,9 @@
+
+ . ./common.sh
+
++echo "$0: DISABLED -- libpoppler25 always expands ligatures"
++exit 0
++
+ test_pdf2djvu
+ djvused -e print-pure-txt "$djvu_file" | grep '^fluorografia *$' > /dev/null
+ test_pdf2djvu --no-nfkc
diff -Nru pdf2djvu-0.7.12/debian/patches/track_libpoppler25_api.patch pdf2djvu-0.7.12/debian/patches/track_libpoppler25_api.patch
--- pdf2djvu-0.7.12/debian/patches/track_libpoppler25_api.patch 1970-01-01 01:00:00.000000000 +0100
+++ pdf2djvu-0.7.12/debian/patches/track_libpoppler25_api.patch 2012-06-14 20:51:59.000000000 +0100
@@ -0,0 +1,129 @@
+Description: Track libpoppler25 API changes
+ Track changes to libpoppler25 API:
+ .
+ startDoc now takes a PDFDoc not its XRef.
+ processLink no longer takes a Catalog as argument.
+ setErrorFunction -> setErrorCallback conversion.
+Author: Andy Whitcroft <[email protected]>
+Last-Update: 2012-06-14
+Index: pdf2djvu-0.7.12/pdf-backend.hh
+===================================================================
+--- pdf2djvu-0.7.12.orig/pdf-backend.hh 2012-01-21 23:16:50.000000000 +0000
++++ pdf2djvu-0.7.12/pdf-backend.hh 2012-06-14 17:09:54.717895364 +0100
+@@ -115,13 +115,13 @@
+ pdf::splash::OutputDevice(monochrome ? splashModeMono1 : splashModeRGB8, 4, gFalse, paper_color)
+ { }
+
+- void processLink(pdf::link::Link *link, pdf::Catalog *catalog)
++ void processLink(pdf::link::Link *link)
+ {
+- this->drawLink(link, catalog);
++ this->drawLink(link);
+ }
+
+- virtual void drawLink(pdf::link::Link *link, pdf::Catalog *catalog);
+- virtual void drawLink(pdf::link::Link *link, const std::string &border_color, pdf::Catalog *catalog) { }
++ virtual void drawLink(pdf::link::Link *link);
++ virtual void drawLink(pdf::link::Link *link, const std::string &border_color) { }
+ std::vector<std::string> link_border_colors;
+ protected:
+ static void convert_path(gfx::State *state, pdf::splash::Path &splash_path);
+Index: pdf2djvu-0.7.12/pdf-backend.cc
+===================================================================
+--- pdf2djvu-0.7.12.orig/pdf-backend.cc 2012-01-21 23:16:50.000000000 +0000
++++ pdf2djvu-0.7.12/pdf-backend.cc 2012-06-14 17:17:47.536239955 +0100
+@@ -32,11 +32,10 @@
+ * ======================
+ */
+
+-static void poppler_error_handler(int pos, char *message, va_list args)
++static void poppler_error_handler (void *data, ErrorCategory category,
++ int pos, char *msg)
+ {
+- std::string format;
+- std::string expanded_message = string_vprintf(message, args);
+- const char *c_message = expanded_message.c_str();
++ const char *c_message = msg;
+ if (pos >= 0)
+ {
+ error_log <<
+@@ -61,7 +60,7 @@
+ Cwd cwd(argv0_dir_name);
+ #endif
+ globalParams = new GlobalParams();
+- setErrorFunction(poppler_error_handler);
++ setErrorCallback(poppler_error_handler, NULL);
+ }
+
+ void pdf::Environment::set_antialias(bool value)
+@@ -394,7 +393,7 @@
+ * ===============================================
+ */
+
+-void pdf::Renderer::drawLink(pdf::link::Link *link, pdf::Catalog *catalog)
++void pdf::Renderer::drawLink(pdf::link::Link *link)
+ {
+ std::string border_color;
+ if (this->link_border_colors.size())
+@@ -402,7 +401,7 @@
+ border_color = this->link_border_colors.back();
+ this->link_border_colors.pop_back();
+ }
+- this->drawLink(link, border_color, catalog);
++ this->drawLink(link, border_color);
+ }
+
+
+Index: pdf2djvu-0.7.12/pdf2djvu.cc
+===================================================================
+--- pdf2djvu-0.7.12.orig/pdf2djvu.cc 2012-01-21 23:16:50.000000000 +0000
++++ pdf2djvu-0.7.12/pdf2djvu.cc 2012-06-14 17:52:25.198542541 +0100
+@@ -327,6 +327,13 @@
+ }
+
+ public:
++ PDFDoc *doc;
++ void startDoc(PDFDoc *docA)
++ {
++ doc = docA;
++ pdf::Renderer::startDoc(docA);
++ }
++
+ pdf::Bool needNonText()
+ {
+ return !config.no_render;
+@@ -499,13 +506,14 @@
+ );
+ }
+
+- void drawLink(pdf::link::Link *link, pdf::Catalog *catalog)
++ void drawLink(pdf::link::Link *link)
+ {
+- pdf::Renderer::drawLink(link, catalog); /* just call the inherited method */
++ pdf::Renderer::drawLink(link); /* just call the inherited method */
+ }
+
+- void drawLink(pdf::link::Link *link, const std::string &border_color, pdf::Catalog *catalog)
++ void drawLink(pdf::link::Link *link, const std::string &border_color)
+ {
++ pdf::Catalog *catalog = doc->getCatalog();
+ sexpr::GCLock gc_lock;
+ if (!config.hyperlinks.extract)
+ return;
+@@ -1387,13 +1395,13 @@
+ debug(0)++;
+ }
+ out1.reset(new pdf::Renderer(paper_color, config.monochrome));
+- out1->startDoc(doc->getXRef());
++ out1->startDoc(doc.get());
+ outm.reset(new MutedRenderer(paper_color, config.monochrome, *page_files));
+- outm->startDoc(doc->getXRef());
++ outm->startDoc(doc.get());
+ if (!config.monochrome)
+ {
+ outs.reset(new MutedRenderer(paper_color, config.monochrome, *page_files));
+- outs->startDoc(doc->getXRef());
++ outs->startDoc(doc.get());
+ }
+ }
+ assert(doc.get() != NULL);