diff options
author | Felix Kauselmann | 2018-07-31 16:51:41 +0200 |
---|---|---|
committer | Felix Kauselmann | 2018-07-31 16:51:41 +0200 |
commit | 625a0810b0ac343d81f03c1624e51520884ab976 (patch) | |
tree | 73e08d0ec324e6f1cd1e69c57eaab55335a6f298 | |
parent | e2a5e38051add86810e1f33f070c10cdafda3066 (diff) | |
download | aur-625a0810b0ac343d81f03c1624e51520884ab976.tar.gz |
Unbundle openjpeg
-rw-r--r-- | .SRCINFO | 7 | ||||
-rw-r--r-- | PKGBUILD | 18 | ||||
-rw-r--r-- | openjpeg.patch | 118 |
3 files changed, 135 insertions, 8 deletions
@@ -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 @@ -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_" ] + } |