summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Kauselmann2018-07-31 16:51:41 +0200
committerFelix Kauselmann2018-07-31 16:51:41 +0200
commit625a0810b0ac343d81f03c1624e51520884ab976 (patch)
tree73e08d0ec324e6f1cd1e69c57eaab55335a6f298
parente2a5e38051add86810e1f33f070c10cdafda3066 (diff)
downloadaur-625a0810b0ac343d81f03c1624e51520884ab976.tar.gz
Unbundle openjpeg
-rw-r--r--.SRCINFO7
-rw-r--r--PKGBUILD18
-rw-r--r--openjpeg.patch118
3 files changed, 135 insertions, 8 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 5192f0c309d7..5a3b8ca2609e 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,9 +1,9 @@
# Generated by mksrcinfo v8
-# Mi Jul 25 21:07:28 UTC 2018
+# Di Jul 31 14:51:01 UTC 2018
pkgbase = libpdfium-nojs
pkgdesc = Open-source PDF rendering engine.
pkgver = 3440.r7.a1c1c63d34
- pkgrel = 1
+ pkgrel = 2
url = https://pdfium.googlesource.com/pdfium/
arch = x86_64
license = BSD
@@ -14,16 +14,19 @@ pkgbase = libpdfium-nojs
depends = freetype2
depends = lcms2
depends = libjpeg
+ depends = openjpeg2
provides = libpdfium
conflicts = libpdfium-bin
source = git+https://pdfium.googlesource.com/pdfium
source = git+https://chromium.googlesource.com/chromium/src/build.git
source = git+https://chromium.googlesource.com/chromium/buildtools.git
source = libpdfium.pc
+ source = openjpeg.patch
md5sums = SKIP
md5sums = SKIP
md5sums = SKIP
md5sums = 7fbbe2baf9a1fed80ad74278e901fa0e
+ md5sums = 18cb7ae314a40fec21949a5f87bb80d3
pkgname = libpdfium-nojs
diff --git a/PKGBUILD b/PKGBUILD
index 4665947d0c00..9dc824c13854 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -2,12 +2,12 @@
pkgname=libpdfium-nojs
pkgver=3440.r7.a1c1c63d34
-pkgrel=1
+pkgrel=2
pkgdesc="Open-source PDF rendering engine."
arch=('x86_64')
url="https://pdfium.googlesource.com/pdfium/"
license=('BSD')
-depends=('freetype2' 'lcms2' 'libjpeg')
+depends=('freetype2' 'lcms2' 'libjpeg' 'openjpeg2')
conflicts=('libpdfium-bin')
provides=('libpdfium')
makedepends=('git' 'python2' 'gn' 'ninja')
@@ -16,12 +16,14 @@ source=("git+https://pdfium.googlesource.com/pdfium"
"git+https://chromium.googlesource.com/chromium/src/build.git"
"git+https://chromium.googlesource.com/chromium/buildtools.git"
"libpdfium.pc"
+ "openjpeg.patch"
)
md5sums=('SKIP'
'SKIP'
'SKIP'
- '7fbbe2baf9a1fed80ad74278e901fa0e')
+ '7fbbe2baf9a1fed80ad74278e901fa0e'
+ '18cb7ae314a40fec21949a5f87bb80d3')
pkgver() {
@@ -38,8 +40,8 @@ prepare() {
cd "$srcdir/pdfium"
- ln -s $srcdir/build build
- ln -s $srcdir/buildtools buildtools
+ ln -sf $srcdir/build build
+ ln -sf $srcdir/buildtools buildtools
# Pdfium is developed alongside Chromium and does not provide releases
# Upstream recommends using Chromium's dev channels instead
@@ -61,7 +63,7 @@ prepare() {
# Use system provided icu library (unbundling)
mkdir -p "$srcdir/pdfium/third_party/icu"
- ln -s "$srcdir/build/linux/unbundle/icu.gn" "$srcdir/pdfium/third_party/icu/BUILD.gn"
+ ln -sf "$srcdir/build/linux/unbundle/icu.gn" "$srcdir/pdfium/third_party/icu/BUILD.gn"
# Download and decode shim header script needed to unbundle icu (gittiles is weird)
mkdir -p "$srcdir/pdfium/tools/generate_shim_headers/"
@@ -70,6 +72,10 @@ prepare() {
| base64 --decode > "$srcdir/pdfium/tools/generate_shim_headers/generate_shim_headers.py"
echo "Done."
+ # Unbundle openjpeg
+ cd "$srcdir"
+ patch -p2 < "$srcdir/openjpeg.patch"
+
# Patch BUILD.gn to build a shared library
cd "$srcdir/pdfium"
sed -i 's/jumbo_static_library("pdfium")/shared_library("pdfium")/g' BUILD.gn
diff --git a/openjpeg.patch b/openjpeg.patch
new file mode 100644
index 000000000000..3f5f490f346a
--- /dev/null
+++ b/openjpeg.patch
@@ -0,0 +1,118 @@
+description: build using system openjpeg
+author: Michael Gilbert <mgilbert@debian.org>
+
+--- a/third_party/pdfium/third_party/BUILD.gn
++++ b/third_party/pdfium/third_party/BUILD.gn
+@@ -366,39 +366,11 @@ config("fx_libopenjpeg_warnings") {
+ }
+ }
+
+-static_library("fx_libopenjpeg") {
+- configs -= [ "//build/config/compiler:chromium_code" ]
+- configs += [
+- "//build/config/compiler:no_chromium_code",
+- "//build/config/sanitizers:cfi_icall_generalize_pointers",
+- ":pdfium_third_party_config",
+-
+- # Must be after no_chromium_code for warning flags to be ordered correctly.
+- ":fx_libopenjpeg_warnings",
+- ]
+- sources = [
+- "libopenjpeg20/bio.c",
+- "libopenjpeg20/cio.c",
+- "libopenjpeg20/dwt.c",
+- "libopenjpeg20/event.c",
+- "libopenjpeg20/function_list.c",
+- "libopenjpeg20/image.c",
+- "libopenjpeg20/invert.c",
+- "libopenjpeg20/j2k.c",
+- "libopenjpeg20/jp2.c",
+- "libopenjpeg20/mct.c",
+- "libopenjpeg20/mqc.c",
+- "libopenjpeg20/openjpeg.c",
+- "libopenjpeg20/opj_clock.c",
+- "libopenjpeg20/pi.c",
+- "libopenjpeg20/sparse_array.c",
+- "libopenjpeg20/sparse_array.h",
+- "libopenjpeg20/t1.c",
+- "libopenjpeg20/t2.c",
+- "libopenjpeg20/tcd.c",
+- "libopenjpeg20/tgt.c",
+- "libopenjpeg20/thread.c",
+- ]
++pkg_config("libopenjpeg_from_pkgconfig") {
++ packages = [ "libopenjp2" ]
++}
++group("fx_libopenjpeg") {
++ public_configs = [ ":libopenjpeg_from_pkgconfig" ]
+ }
+
+ config("system_libpng_config") {
+--- a/third_party/pdfium/core/fxcodec/codec/codec_int.h
++++ b/third_party/pdfium/core/fxcodec/codec/codec_int.h
+@@ -15,7 +15,7 @@
+ #include <vector>
+
+ #include "core/fxcodec/jbig2/JBig2_Context.h"
+-#include "third_party/libopenjpeg20/openjpeg.h"
++#include <openjpeg-2.3/openjpeg.h>
+
+ class CPDF_ColorSpace;
+
+--- a/third_party/pdfium/core/fxcodec/codec/fx_codec_jpx_opj.cpp
++++ b/third_party/pdfium/core/fxcodec/codec/fx_codec_jpx_opj.cpp
+@@ -16,8 +16,6 @@
+ #include "core/fxcrt/fx_memory.h"
+ #include "core/fxcrt/fx_safe_types.h"
+ #include "third_party/base/ptr_util.h"
+-#include "third_party/libopenjpeg20/openjpeg.h"
+-#include "third_party/libopenjpeg20/opj_malloc.h"
+
+ namespace {
+
+@@ -513,7 +511,6 @@ bool CJPX_Decoder::Init(const unsigned c
+ m_Image = nullptr;
+ return false;
+ }
+- m_Image->pdfium_use_colorspace = !!m_ColorSpace;
+
+ if (!m_Parameters.nb_tile_to_decode) {
+ if (!opj_set_decode_area(m_Codec, m_Image, m_Parameters.DA_x0,
+@@ -550,7 +547,7 @@ bool CJPX_Decoder::Init(const unsigned c
+ // TODO(palmer): Using |opj_free| here resolves the crash described in
+ // https://crbug.com/737033, but ultimately we need to harmonize the
+ // memory allocation strategy across OpenJPEG and its PDFium callers.
+- opj_free(m_Image->icc_profile_buf);
++ free(m_Image->icc_profile_buf);
+ m_Image->icc_profile_buf = nullptr;
+ m_Image->icc_profile_len = 0;
+ }
+--- a/third_party/pdfium/core/fxcodec/codec/cjpx_decoder.h
++++ b/third_party/pdfium/core/fxcodec/codec/cjpx_decoder.h
+@@ -12,7 +12,7 @@
+
+ #include "core/fxcodec/codec/codec_int.h"
+ #include "core/fxcrt/unowned_ptr.h"
+-#include "third_party/libopenjpeg20/openjpeg.h"
++#include <openjpeg-2.3/openjpeg.h>
+
+ class CPDF_ColorSpace;
+
+--- a/third_party/pdfium/BUILD.gn
++++ b/third_party/pdfium/BUILD.gn
+@@ -21,7 +21,6 @@ config("pdfium_common_config") {
+ ldflags = []
+ include_dirs = [ "." ]
+ defines = [
+- "OPJ_STATIC",
+ "PNG_PREFIX",
+ "PNG_USE_READ_MACROS",
+ ]
+@@ -80,7 +79,6 @@ config("pdfium_core_config") {
+ if (is_linux) {
+ if (current_cpu == "x64") {
+ defines += [ "_FX_CPU_=_FX_X64_" ]
+- cflags += [ "-fPIC" ]
+ } else if (current_cpu == "x86") {
+ defines += [ "_FX_CPU_=_FX_X86_" ]
+ }