summaryrefslogtreecommitdiffstats
path: root/source/l/openexr
diff options
context:
space:
mode:
Diffstat (limited to 'source/l/openexr')
-rw-r--r--source/l/openexr/openexr.CVE-2017-9110-to-9116.patch82
-rwxr-xr-xsource/l/openexr/openexr.SlackBuild49
-rw-r--r--source/l/openexr/openexr.url1
3 files changed, 24 insertions, 108 deletions
diff --git a/source/l/openexr/openexr.CVE-2017-9110-to-9116.patch b/source/l/openexr/openexr.CVE-2017-9110-to-9116.patch
deleted file mode 100644
index 98c03a997..000000000
--- a/source/l/openexr/openexr.CVE-2017-9110-to-9116.patch
+++ /dev/null
@@ -1,82 +0,0 @@
---- a/IlmImf/ImfDwaCompressor.cpp
-+++ b/IlmImf/ImfDwaCompressor.cpp
-@@ -2377,7 +2377,12 @@ DwaCompressor::uncompress
-
- const char *dataPtr = inPtr + NUM_SIZES_SINGLE * sizeof(Int64);
-
-- if (inSize < headerSize + compressedSize)
-+ /* Both the sum and individual sizes are checked in case of overflow. */
-+ if (inSize < (headerSize + compressedSize) ||
-+ inSize < unknownCompressedSize ||
-+ inSize < acCompressedSize ||
-+ inSize < dcCompressedSize ||
-+ inSize < rleCompressedSize)
- {
- throw Iex::InputExc("Error uncompressing DWA data"
- "(truncated file).");
-diff --git a/IlmImf/ImfHuf.cpp b/IlmImf/ImfHuf.cpp
-index a375d05..97909a5 100644
---- a/IlmImf/ImfHuf.cpp
-+++ b/IlmImf/ImfHuf.cpp
-@@ -822,7 +822,7 @@ hufEncode // return: output size (in bits)
- }
-
-
--#define getCode(po, rlc, c, lc, in, out, oe) \
-+#define getCode(po, rlc, c, lc, in, out, ob, oe)\
- { \
- if (po == rlc) \
- { \
-@@ -835,6 +835,8 @@ hufEncode // return: output size (in bits)
- \
- if (out + cs > oe) \
- tooMuchData(); \
-+ else if (out - 1 < ob) \
-+ notEnoughData(); \
- \
- unsigned short s = out[-1]; \
- \
-@@ -895,7 +897,7 @@ hufDecode
- //
-
- lc -= pl.len;
-- getCode (pl.lit, rlc, c, lc, in, out, oe);
-+ getCode (pl.lit, rlc, c, lc, in, out, outb, oe);
- }
- else
- {
-@@ -925,7 +927,7 @@ hufDecode
- //
-
- lc -= l;
-- getCode (pl.p[j], rlc, c, lc, in, out, oe);
-+ getCode (pl.p[j], rlc, c, lc, in, out, outb, oe);
- break;
- }
- }
-@@ -952,7 +954,7 @@ hufDecode
- if (pl.len)
- {
- lc -= pl.len;
-- getCode (pl.lit, rlc, c, lc, in, out, oe);
-+ getCode (pl.lit, rlc, c, lc, in, out, outb, oe);
- }
- else
- {
-diff --git a/IlmImf/ImfPizCompressor.cpp b/IlmImf/ImfPizCompressor.cpp
-index 46c6fba..8b3ee38 100644
---- a/IlmImf/ImfPizCompressor.cpp
-+++ b/IlmImf/ImfPizCompressor.cpp
-@@ -573,6 +573,12 @@ PizCompressor::uncompress (const char *inPtr,
- int length;
- Xdr::read <CharPtrIO> (inPtr, length);
-
-+ if (length > inSize)
-+ {
-+ throw InputExc ("Error in header for PIZ-compressed data "
-+ "(invalid array length).");
-+ }
-+
- hufUncompress (inPtr, length, _tmpBuffer, tmpBufferEnd - _tmpBuffer);
-
- //
diff --git a/source/l/openexr/openexr.SlackBuild b/source/l/openexr/openexr.SlackBuild
index a99d238d3..6305eae95 100755
--- a/source/l/openexr/openexr.SlackBuild
+++ b/source/l/openexr/openexr.SlackBuild
@@ -27,7 +27,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=openexr
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-3}
+BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -79,41 +79,38 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \+
-# Patch security issues:
-zcat $CWD/openexr.CVE-2017-9110-to-9116.patch.gz | patch -p1 --verbose || exit 1
-
-CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS" \
-./configure \
- --prefix=/usr \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --disable-static \
- --build=$ARCH-slackware-linux || exit 1
-
-make $NUMJOBS || make || exit 1
-make install DESTDIR=$PKG || exit 1
-
-# Don't ship .la files:
-rm -f $PKG/{,usr/}lib${LIBDIRSUFFIX}/*.la
+# Configure, build, and install:
+mkdir cmake-build
+cd cmake-build
+ cmake \
+ -DCMAKE_C_FLAGS="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS="$SLKCFLAGS" \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DLIB_SUFFIX="$LIBDIRSUFFIX" \
+ -DDOC_INSTALL_DIR="doc" \
+ -DMAN_INSTALL_DIR=/usr/man \
+ .. || exit 1
+ make $NUMJOBS || make || exit 1
+ make install DESTDIR=$PKG || exit 1
+cd ..
find $PKG | xargs file | grep -e "executable" -e "shared object" \
| grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
cp -a \
- AUTHORS COPYING* INSTALL LICENSE NEWS README* \
+ CHANGES* CODE_OF_CONDUCT* CONTRIBUTING* CONTRIBUTORS* GOVERNANCE* INSTALL* LICENSE* README* SECURITY* \
$PKG/usr/doc/$PKGNAM-$VERSION
-mv $PKG/usr/share/doc/OpenEXR-$VERSION/*.pdf $PKG/usr/doc/$PKGNAM-$VERSION/
-rm -rf $PKG/usr/share/doc
-# If there's a ChangeLog, installing at least part of the recent history
+mv $PKG/usr/share/doc/OpenEXR/* $PKG/usr/doc/$PKGNAM-$VERSION
+rmdir $PKG/usr/share/doc/OpenEXR $PKG/usr/share/doc $PKG/usr/share
+
+# If there's a CHANGES file, installing at least part of the recent history
# is useful, but don't let it get totally out of control:
-if [ -r ChangeLog ]; then
+if [ -r CHANGES ]; then
DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION)
- cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
- touch -r ChangeLog $DOCSDIR/ChangeLog
+ cat CHANGES | head -n 1000 > $DOCSDIR/CHANGES
+ touch -r CHANGES $DOCSDIR/CHANGES
fi
mkdir -p $PKG/install
diff --git a/source/l/openexr/openexr.url b/source/l/openexr/openexr.url
new file mode 100644
index 000000000..1fa6596a1
--- /dev/null
+++ b/source/l/openexr/openexr.url
@@ -0,0 +1 @@
+https://github.com/AcademySoftwareFoundation/openexr