Package: openexr / 1.6.1-8

Metadata

Package Version Patches format
openexr 1.6.1-8 3.0 (quilt)

Patch series

view the series file
Patch File delta Description
fix_gcc4.3_ftbfs.diff | (download)

exrenvmap/main.cpp | 2 2 + 0 - 0 !
exrmaketiled/main.cpp | 2 2 + 0 - 0 !
2 files changed, 4 insertions(+)

---
CVE 2009 1720 1.diff | (download)

IlmImf/ImfPreviewImage.cpp | 5 5 + 0 - 0 !
1 file changed, 5 insertions(+)

---
CVE 2009 1720 2.diff | (download)

IlmImf/ImfPizCompressor.cpp | 4 4 + 0 - 0 !
IlmImf/ImfPxr24Compressor.cpp | 4 4 + 0 - 0 !
IlmImf/ImfRleCompressor.cpp | 4 4 + 0 - 0 !
IlmImf/ImfZipCompressor.cpp | 4 4 + 0 - 0 !
4 files changed, 16 insertions(+)

---
CVE 2009 1721.diff | (download)

IlmImf/ImfAutoArray.h | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

---
nonlinuxlargestack.diff | (download)

IlmImf/ImfAutoArray.h | 6 5 + 1 - 0 !
1 file changed, 5 insertions(+), 1 deletion(-)

 bug#680509: openexr: ftbfs on non-linux (or
	when disabling large stacks)
Date: Fri, 06 Jul 2012 14:59:37 +0200
Reply-To: Pino Toscano <pino@debian.org>, 680509@bugs.debian.org
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="===============1502726251752548908=="
To: Debian Bug Tracking System <submit@bugs.debian.org>
X-Debian-PR-Message: report 680509
X-Debian-PR-Package: src:openexr
X-Debian-PR-Keywords: patch
X-Debian-PR-Source: openexr
X-Mailer: reportbug 6.4
Archived-At: <http://permalink.gmane.org/gmane.linux.debian.devel.phototools/4727>

This is a multi-part MIME message sent by reportbug.


--===============1502726251752548908==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Source: openexr
Version: 1.6.1-5
Severity: serious
Tags: patch
Justification: fails to build from source (but built successfully in the past)

Hi,

most probably due to GCC 4.7, openexr does not compile when large
stacks are disabled, which is done by default on any non-Linux
architecture (see also configure.ac).
The problem can also be seen in a recent rebuild on hurd-i386[1],
or just when trying to compile it on e.g. kfreebsd; for example on
kfreebsd-amd64:

|  g++ -DHAVE_CONFIG_H -I. -I. -I../config -I/usr/include/OpenEXR -I.. -I../config -D_FORTIFY_SOURCE=2 -pipe -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -c ImfHuf.cpp  -fPIC -DPIC -o .libs/ImfHuf.o
| In file included from ImfHuf.cpp:50:0:
| ./ImfAutoArray.h: In instantiation of 'Imf::AutoArray<T, size>::AutoArray() [with T = int; int size = 65537]':
| ImfHuf.cpp:298:34:   required from here
| ./ImfAutoArray.h:60:39: error: 'memset' was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
| In file included from /usr/include/string.h:642:0,
|                  from ImfHuf.cpp:52:
| /usr/include/x86_64-kfreebsd-gnu/bits/string3.h:77:1: note: 'void* memset(void*, int, size_t)' declared here, later in the translation unit
| In file included from ImfHuf.cpp:50:0:
| ./ImfAutoArray.h: In instantiation of 'Imf::AutoArray<T, size>::AutoArray() [with T = long unsigned int*; int size = 65537]':
| ImfHuf.cpp:299:38:   required from here
| ./ImfAutoArray.h:60:39: error: 'memset' was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
| In file included from /usr/include/string.h:642:0,
|                  from ImfHuf.cpp:52:
| /usr/include/x86_64-kfreebsd-gnu/bits/string3.h:77:1: note: 'void* memset(void*, int, size_t)' declared here, later in the translation unit
| In file included from ImfHuf.cpp:50:0:
| ./ImfAutoArray.h: In instantiation of 'Imf::AutoArray<T, size>::AutoArray() [with T = long unsigned int; int size = 65537]':
| ImfHuf.cpp:361:36:   required from here
| ./ImfAutoArray.h:60:39: error: 'memset' was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
| In file included from /usr/include/string.h:642:0,
|                  from ImfHuf.cpp:52:
| /usr/include/x86_64-kfreebsd-gnu/bits/string3.h:77:1: note: 'void* memset(void*, int, size_t)' declared here, later in the translation unit
| In file included from ImfHuf.cpp:50:0:
| ./ImfAutoArray.h: In instantiation of 'Imf::AutoArray<T, size>::AutoArray() [with T = Imf::{anonymous}::HufDec; int size = 16384]':
| ImfHuf.cpp:1050:37:   required from here
| ./ImfAutoArray.h:60:39: error: 'memset' was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
| In file included from /usr/include/string.h:642:0,
|                  from ImfHuf.cpp:52:
| /usr/include/x86_64-kfreebsd-gnu/bits/string3.h:77:1: note: 'void* memset(void*, int, size_t)' declared here, later in the translation unit
| make[3]: *** [ImfHuf.lo] Error 1

Attached there is a patch that fixes the issue, by including <cstring>
in ImfAutoArray.h only with no large stacks enabled, and making sure
to call memset from the std namespace.
(Note: it seems openexr 1.7.0 will no more memset() the data array
in the "no large stacks" implementation.)

[1] https://buildd.debian.org/status/fetch.php?pkg=openexr&arch=hurd-i386&ver=1.6.1-5%2Bb1&stamp=1337862561

Thanks,
-- 
Pino

--===============1502726251752548908==
20_autoreconf.diff | (download)

config/OpenEXRConfig.h.in | 115 93 + 22 - 0 !
config/OpenEXRConfig.h.in.in | 76 76 + 0 - 0 !
configure.ac | 11 6 + 5 - 0 !
m4/threads.m4 | 2 1 + 1 - 0 !
4 files changed, 176 insertions(+), 28 deletions(-)

 use dh-autoreconf
   * Non-maintainer upload.
   * Run dh-autoreconf to update config.* to build on ppc64el and
     update configure.ac and m4 to work with that. Closes: #759719