summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--media-gfx/exact-image/Manifest1
-rw-r--r--media-gfx/exact-image/exact-image-1.0.2.ebuild94
-rw-r--r--media-gfx/exact-image/files/exact-image-1.0.2-gcc6.patch64
3 files changed, 159 insertions, 0 deletions
diff --git a/media-gfx/exact-image/Manifest b/media-gfx/exact-image/Manifest
index 242900902c3e..139b6188894f 100644
--- a/media-gfx/exact-image/Manifest
+++ b/media-gfx/exact-image/Manifest
@@ -1 +1,2 @@
DIST exact-image-0.8.1.tar.bz2 283660 BLAKE2B 49aa68640b785da59fd0e04d0a0892ad06adbc286a98bf908e60e77cfd273263e83dce3c9eb75c30f422c2b6eef2178dd0585aada63f992291abf298b369f3aa SHA512 0adc51c5a29415e236a963cfdaf8f5527e628e9a645e87d00c69a7185e60639cfcd9b1c2b4c3abe1826c5364f0c5d45a0ebb8923cfed53d041d1d36b2604b565
+DIST exact-image-1.0.2.tar.bz2 322174 BLAKE2B 67afefb4c5a52416459cd4ac6198012eb6d7895a73ea8363fae05286c7e7f62aa1a02166985f53b5638c7dc7b23b4dc1fb1c7b2272a9dc595ce329a7083ee1b9 SHA512 8ba5a198a236ddf5fa58f40c80f32ba9d300376c637a13a7acf3d2db7906fced373b33a7ecff9cff4d09d8b21de9ce1fb9f5bfb1f4522557bd01af0e3d6dcc65
diff --git a/media-gfx/exact-image/exact-image-1.0.2.ebuild b/media-gfx/exact-image/exact-image-1.0.2.ebuild
new file mode 100644
index 000000000000..7e5d51787a4d
--- /dev/null
+++ b/media-gfx/exact-image/exact-image-1.0.2.ebuild
@@ -0,0 +1,94 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit eutils multilib toolchain-funcs
+
+DESCRIPTION="A fast, modern and generic image processing library"
+HOMEPAGE="http://www.exactcode.de/site/open_source/exactimage/"
+SRC_URI="http://dl.exactcode.de/oss/${PN}/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="expat jpeg lua openexr php perl png ruby swig tiff truetype X"
+
+RDEPEND="x11-libs/agg[truetype]
+ sys-libs/zlib
+ expat? ( dev-libs/expat )
+ jpeg? ( virtual/jpeg )
+ lua? ( dev-lang/lua:= )
+ openexr? ( media-libs/openexr )
+ php? ( dev-lang/php:* )
+ perl? ( dev-lang/perl )
+ png? ( >=media-libs/libpng-1.2.43 )
+ ruby? ( dev-lang/ruby:* )
+ tiff? ( media-libs/tiff )
+ truetype? ( >=media-libs/freetype-2 )
+ X? (
+ x11-libs/libXext
+ x11-libs/libXt
+ x11-libs/libICE
+ x11-libs/libSM
+ )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ swig? ( dev-lang/swig )"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-gcc6.patch
+)
+
+src_prepare() {
+ default
+
+ # Respect user CFLAGS/CXXFLAGS.
+ sed -i \
+ -e '/C\(XX\)\?FLAGS =/s/-O2//' \
+ -e "\$aCFLAGS += ${CFLAGS}\nCXXFLAGS += ${CXXFLAGS}" \
+ Makefile || die
+
+ # Show commands. Use qualified CC/CXX.
+ sed -i \
+ -e '/^Q =/d' \
+ -e '/^\t@echo /d' \
+ -e "\$aCC:=$(tc-getCC)\nCXX:=$(tc-getCXX)" \
+ build/bottom.make || die
+
+ # The copied string fits exactly. Use memcpy to reflect that a null
+ # terminator is not needed.
+ sed -i \
+ -e 's/strcpy(\([^,]*\)\(,["a-zA-Z -]*\))/memcpy(\1\2, sizeof(\1))/' \
+ codecs/tga.cc || die
+}
+
+src_configure() {
+ # evas -> enlightenment overlay
+ # bardecode -> protected by custom license
+ # libungif -> not supported anymore
+ # python -> allegedly not python3, but python2 only
+
+ ./configure \
+ --prefix=/usr \
+ --libdir=/usr/$(get_libdir) \
+ $(use_with X x11) \
+ $(use_with truetype freetype) \
+ --without-evas \
+ $(use_with jpeg libjpeg) \
+ $(use_with tiff libtiff) \
+ $(use_with png libpng) \
+ --without-libgif \
+ --without-jasper \
+ $(use_with openexr) \
+ $(use_with expat) \
+ --without-lcms \
+ --without-bardecode \
+ $(use_with lua) \
+ $(use_with swig) \
+ --without-python \
+ $(use_with perl) \
+ --without-python \
+ $(use_with php) \
+ $(use_with ruby) || die
+}
diff --git a/media-gfx/exact-image/files/exact-image-1.0.2-gcc6.patch b/media-gfx/exact-image/files/exact-image-1.0.2-gcc6.patch
new file mode 100644
index 000000000000..10fb38d6d658
--- /dev/null
+++ b/media-gfx/exact-image/files/exact-image-1.0.2-gcc6.patch
@@ -0,0 +1,64 @@
+Bug: https://bugs.gentoo.org/600380
+
+--- a/bardecode/code25i.hh
++++ b/bardecode/code25i.hh
+@@ -21,6 +21,12 @@
+
+ #include "scanner_utils.hh"
+
++#if __cplusplus >= 201103L
++#define STATIC_CONST_DOUBLE static constexpr double
++#else
++#define STATIC_CONST_DOUBLE static const double
++#endif
++
+ namespace BarDecode
+ {
+ struct code25i_t
+@@ -31,11 +37,11 @@
+ static const int END_SEQUENCE = 0xD;
+ static const char no_entry = 0;
+
+- static const double n_lq = 15;
+- static const double n_hq = 5.3;
+- static const double w_lq = 5.2;
+- static const double w_hq = 1.5;
+- static const double tol = 0.2;
++ STATIC_CONST_DOUBLE n_lq = 15;
++ STATIC_CONST_DOUBLE n_hq = 5.3;
++ STATIC_CONST_DOUBLE w_lq = 5.2;
++ STATIC_CONST_DOUBLE w_hq = 1.5;
++ STATIC_CONST_DOUBLE tol = 0.2;
+
+ static const usize_t min_quiet_usize = 5;
+ //static const usize_t min_quiet_usize = 10;
+--- a/codecs/dcraw.h
++++ b/codecs/dcraw.h
+@@ -3958,22 +3958,22 @@
+ -2,+0,+0,-1,0,0x06, -2,+0,+0,+0,1,0x02, -2,+0,+0,+1,0,0x03,
+ -2,+1,-1,+0,0,0x04, -2,+1,+0,-1,1,0x04, -2,+1,+0,+0,0,0x06,
+ -2,+1,+0,+1,0,0x02, -2,+2,+0,+0,1,0x04, -2,+2,+0,+1,0,0x04,
+- -1,-2,-1,+0,0,0x80, -1,-2,+0,-1,0,0x01, -1,-2,+1,-1,0,0x01,
+- -1,-2,+1,+0,1,0x01, -1,-1,-1,+1,0,0x88, -1,-1,+1,-2,0,0x40,
++ -1,-2,-1,+0,0,(signed char) 0x80, -1,-2,+0,-1,0,0x01, -1,-2,+1,-1,0,0x01,
++ -1,-2,+1,+0,1,0x01, -1,-1,-1,+1,0,(signed char) 0x88, -1,-1,+1,-2,0,0x40,
+ -1,-1,+1,-1,0,0x22, -1,-1,+1,+0,0,0x33, -1,-1,+1,+1,1,0x11,
+ -1,+0,-1,+2,0,0x08, -1,+0,+0,-1,0,0x44, -1,+0,+0,+1,0,0x11,
+ -1,+0,+1,-2,1,0x40, -1,+0,+1,-1,0,0x66, -1,+0,+1,+0,1,0x22,
+ -1,+0,+1,+1,0,0x33, -1,+0,+1,+2,1,0x10, -1,+1,+1,-1,1,0x44,
+ -1,+1,+1,+0,0,0x66, -1,+1,+1,+1,0,0x22, -1,+1,+1,+2,0,0x10,
+ -1,+2,+0,+1,0,0x04, -1,+2,+1,+0,1,0x04, -1,+2,+1,+1,0,0x04,
+- +0,-2,+0,+0,1,0x80, +0,-1,+0,+1,1,0x88, +0,-1,+1,-2,0,0x40,
++ +0,-2,+0,+0,1,(signed char) 0x80, +0,-1,+0,+1,1,(signed char) 0x88, +0,-1,+1,-2,0,0x40,
+ +0,-1,+1,+0,0,0x11, +0,-1,+2,-2,0,0x40, +0,-1,+2,-1,0,0x20,
+ +0,-1,+2,+0,0,0x30, +0,-1,+2,+1,1,0x10, +0,+0,+0,+2,1,0x08,
+ +0,+0,+2,-2,1,0x40, +0,+0,+2,-1,0,0x60, +0,+0,+2,+0,1,0x20,
+ +0,+0,+2,+1,0,0x30, +0,+0,+2,+2,1,0x10, +0,+1,+1,+0,0,0x44,
+ +0,+1,+1,+2,0,0x10, +0,+1,+2,-1,1,0x40, +0,+1,+2,+0,0,0x60,
+- +0,+1,+2,+1,0,0x20, +0,+1,+2,+2,0,0x10, +1,-2,+1,+0,0,0x80,
+- +1,-1,+1,+1,0,0x88, +1,+0,+1,+2,0,0x08, +1,+0,+2,-1,0,0x40,
++ +0,+1,+2,+1,0,0x20, +0,+1,+2,+2,0,0x10, +1,-2,+1,+0,0,(signed char) 0x80,
++ +1,-1,+1,+1,0,(signed char) 0x88, +1,+0,+1,+2,0,0x08, +1,+0,+2,-1,0,0x40,
+ +1,+0,+2,+1,0,0x10
+ }, chood[] = { -1,-1, -1,0, -1,+1, 0,+1, +1,+1, +1,0, +1,-1, 0,-1 };
+ ushort (*brow[5])[4], *pix;