ABOUT THE ILMBASE LIBRARIES
----------------------------
Half is a class that encapsulates our 16-bit floating-point format.
IlmThread is a thread abstraction library for use with OpenEXR
and other software packages. It currently supports pthreads and
Windows threads.
Imath implements 2D and 3D vectors, 3x3 and 4x4 matrices, quaternions
and other useful 2D and 3D math functions.
Iex is an exception-handling library.
If you have questions about using the IlmBase libraries, you may want
to join our developer mailing list.
WWW: https://www.openexr.com/
===> The following configuration options are available for ilmbase-2.5.5_1:
DOCS=on: Build and/or install documentation
LARGE_STACK=off: Enable sys-dependent large stack optimizations
===> Use 'make config' to modify these settings
Affects: users of graphics/OpenEXR or graphics/ilmbase
Author: mandree@FreeBSD.org
Reason:
graphics/ilmbase was removed in favor of math/Imath 3.0.1,
and graphics/OpenEXR was updated to 3.0.1. Ports that depend on
OpenEXR and/or ilmbase according to INDEX were patched,
for ports where OpenEXR is an option that defaults to off, these
typical items needs to be changed - file bug reports in that case,
preferably with tested patches:
- The IlmBase parts Imath and half are now repackaged as Imath
- The IlmThread and Iex libraries are now part of OpenEXR
- Some header files were rearranged accordingly, into
${LOCALBASE}/include/OpenEXR vs. ${LOCALBASE}/include/Imath
- Some code needs a few #include statements added, often
#include <ImfHeader.h> or #include <ImfFrameBuffer.h>
- Some classes were removed, and the C++11 standard library
features need to be used, f. i. std::numeric_limits.
- Some code used Int64 or SInt64 should use uint64_t or int64_t.
Detailed porting hints are available here:
https://github.com/AcademySoftwareFoundation/Imath/blob/v3.0.1/docs/PortingGuide2-3.md
Port Moves
port moved to math/Imath on 2021-04-11 REASON: Ilmbase was split out into Imath and OpenEXR
math/Imath: new port (replaces graphics/ilmbase)
Patch series to update OpenEXR and ports that depend on ilmbase/OpenEXR
coming up.
---------------
Imath is a basic, light-weight, and efficient C++ representation of 2D and 3D
vectors and matrices and other simple but useful mathematical objects,
functions, and data types common in computer graphics applications, including
the "half" 16-bit floating-point type.
Imath also includes optional python bindings for all types and functions,
including optimized implementations of vector and matrix arrays.
Imath was originally developed at Industrial Light & Magic in the early 2000's
and was originally distributed as open source as a part of the OpenEXR project.
Imath continues to be maintained as a sub-project of OpenEXR, which is now a
project of the Academy Software Foundation. See the OpenEXR project's
GOVERNANCE.md for more information about how the project operates.
WWW: https://github.com/AcademySoftwareFoundation/Imath/
graphics/ilmbase: fix build ahead of CMake 3.20
The --target command-line argument is ignored when not applicable
in versions of CMake up to 3.20. In this port it has even gotten
separated from the target it is supposed to name -- and it
should never be necessary in FreeBSD ports **anyway** since
we generate a build system (ninja or make) and use that, rather
than building directly out of CMake.
Bumping PORTREVISION even though there shouldn't be a difference.
graphics/ilmbase, graphics/openexr: security update to v2.5.3
ChangeLog:
https://github.com/AcademySoftwareFoundation/openexr/releases/tag/v2.5.3
"Patch release with various bug/security fixes and build/install fixes, plus a
performance optimization:
* Various sanitizer/fuzz-identified issues related to handling of invalid input
* Fixes to misc compiler warnings [...]
* Read performance optimization (#782)
* Fix for building on non-glibc (#798)
* Fixes to tests"
The full name of shared libraries changed from *.25.0.1 to *.25.0.2
=> PORTREVISION bumps for all ports that use either ilmbase or openexr
coming up in separate commit to ease MFH.
All test builds of direct users succeeded on 12.1 amd64.
MFH: 2020Q3 (patchlevel update w/ security fixes)
Security: b1d6b383-dd51-11ea-a688-7b12871ef3ad
graphics/ilmbase: graphics/openexr: update to upstream release 2.5.1
Upstream release notes:
* A patch release that corrects the SO version for the v2.5 release,
which missed getting bumped in v2.5.0.
* This release also fixes an improper failure in IlmImfTest
when running on ARMv7 and AAarch64.
Bump PORTREVISION of all port directly requiring ilmbase or openexr
that are not marked BROKEN (shlib/.so file version bump).
Test build of all port directly depending on ilmbase or openexr
succeeded in poudriere in a 12.1-RELEASE amd64 jail.
graphics/ilmbase: graphics/openexr: update to v2.5.0
ChangeLog:
- https://github.com/AcademySoftwareFoundation/openexr/releases/tag/v2.5.0
* Bump PORTREVISION of all consumers except py-openimageio (BROKEN).
* cad/PrusaSlicer:
LIB_DEPENDS: remove version from libHalf.so
BUILD_DEPENDS+=qt5-buildtools as package (needed on bare metal builds)
USE_GL+=gl
USES+=pkgconfig (needed to find libHalf)
graphics/ilmbase: make LARGE_STACK option effective
Was broken since the port switched from GNU configure to cmake.
Found with broadening validation after Matthias Fechner hat
reported pkg-plist issues against graphics/openexr.
Bump PORTREVISION for those who set LARGE_STACK in /etc/make.conf
or similar.
ilmbase, openexr: Update to upstream release v2.4.1 (bugfixes)
Changelog
<https://github.com/AcademySoftwareFoundation/openexr/releases/tag/v2.4.1>:
Patch release with minor bug fixes.
Quoting Cary Phillips:
Various fixes for memory leaks and invalid memory accesses
Various fixes for integer overflow with large images.
Various cmake fixes for build/install of python modules.
ImfMisc.h is no longer installed, since it's a private header.
MFH: 2020Q1 (patchlevel/bugfixes but beware one private .h file removed)
Minor build fixes, includes WITH_DEBUG builds
- under WITH_DEBUG=yes builds, avoid renaming the libraries with _d suffix.
(else it breaks packaging, and we don't want separate lib names) [1]
- while here, avoid creating symlinks from cmake, this causes staging
violations due to cmake bug #17340, (poudriere testport)
see https://gitlab.kitware.com/cmake/cmake/issues/17340
- while here, fix "make test" target - it is a left over from 2.3's
gmake build. Use ctest instead.
No PORTREVISION bump necessary because each and every fixed bug would
cause a broken build and no install.
PR: 243274 [1]
Reported by: Marcin Cieslak [1]
graphics/ilmbase, graphics/openexr: upgrade to upstream v2.4.0
graphics/gstreamer1-plugins-openexr: switch from C++98 to C++11 to
match new OpenEXR headers and unbreak compilation.
Bump PORTREVISION of all ports depending directly on either, based
on assessing INDEX-12 (bump_portrevision.pl -l (shallow) used).
Release Notes:
https://github.com/AcademySoftwareFoundation/openexr/releases/tag/v2.4.0
The update was deliberately deferred until after 2020Q1, and should
not be MFH'd back to it.
Bump PORTREVISION for ports depending on the canonical version of GCC
as defined in Mk/bsd.default-versions.mk which has moved from GCC 8.3
to GCC 9.1 under most circumstances now after revision 507371.
This includes ports
- with USE_GCC=yes or USE_GCC=any,
- with USES=fortran,
- using Mk/bsd.octave.mk which in turn features USES=fortran, and
- with USES=compiler specifying openmp, nestedfct, c11, c++0x, c++11-lang,
c++11-lib, c++14-lang, c++17-lang, or gcc-c++11-lib
plus, everything INDEX-11 shows with a dependency on lang/gcc9 now.
PR: 238330
Simplify pthread + libtool workaround.
Improve upon r496818. Instead of setting both MAKE_ENV and patching ilmthread's
Makefile, just make sure PTHREAD_LIBS is set a configuration time. This is what
Debian does, and it achieves the same solution with fewer lines.
While here, add an explanation for why we need this.
PR: 236734
Approved by: mandree (maintainer)
Bump PORTREVISION for ports depending on the canonical version of GCC
defined via Mk/bsd.default-versions.mk which has moved from GCC 7.4 t
GCC 8.2 under most circumstances.
This includes ports
- with USE_GCC=yes or USE_GCC=any,
- with USES=fortran,
- using Mk/bsd.octave.mk which in turn features USES=fortran, and
- with USES=compiler specifying openmp, nestedfct, c11, c++0x, c++11-lang,
c++11-lib, c++14-lang, c++17-lang, or gcc-c++11-lib
plus, as a double check, everything INDEX-11 showed depending on lang/gcc7.
PR: 231590
Align *_DEPENDS and use paths for bash in my ports; fix var name.
On systems where bash is in $PATH but not in ${LOCALBASE}/bin/bash,
ilmbase would fail to build, and e2fsprogs might fail if the
BASHTESTS option was enabled.
Make sure that the _DEPENDS and the actual path handed to the configure or
test rig match to the letter, to avoid a time-of-check vs. time-of-use
discrepancy.
In e2fsprogs, the helper variable was also mistyped and would never
amend to BUILD_DEPENDS. Fix typo.
Check my other ports, but wiggle and xmlto [textproc/] seem unaffected.
Reported by: J R Matthews (direct email)
MFH: 2018Q4
Update ilmbase and openexr to 2.3.0, rename OpenEXR to openexr.
Release notes: <https://github.com/openexr/openexr/releases/tag/v2.3.0>
Adjust LIB_DEPENDS of all ports that require ilmbase or openexr to chase
the new lower-case spelling of the name, and to omit the version from the
library name to ease future maintenance.
Bump PORTREVISION of all ports that depend on ilmbase or openexr directly,
so that they all get rebuilt on upgrades.
Add patches to graphics/ampasCTL to keep it alive, with (a) ilmbase now
that its Iex::BaseExc class is no longer derived from std::string,
details were given upstream through https://github.com/ampas/CTL/issues/71
and (b) to unwind semicolon/;-lists in cmake that stem from openexr/
ilmbase pkg-config variables.
(Note ampasCTL is unmaintained as FreeBSD port, and upstream,
and I cannot run-time test it.)
Poudriere build tests on 11.2-RELEASE-p1 amd64 of ALL ports depending
directly or indirectly on ilmbase and/or openexr have passed without
regressions. Thus invoking due diligence, I believe I have done the
equivalent of an -exp run, and do not require approval for the dependency
chases to third-party ports.
Security update OpenEXR and ilmbase to 2.2.1.
While here, fix libIlmImfUtil_la_LDFLAGp so that when linking libIlmImfUtil,
the locally built libIlmImf gets precedence over the one in /usr/local,
to permit upgrades in a running system with the older version installed.
This changes the library's SONAME, so bump PORTREVISION of all dependees.
Unfortunately, this looks a bit too intrusive for an MFH to 2017Q4.
Security: CVE-2017-9110
Security: CVE-2017-9111
Security: CVE-2017-9112
Security: CVE-2017-9113
Security: CVE-2017-9114
Security: CVE-2017-9115
Security: CVE-2017-9116
Security: 803879e9-4195-11e7-9b08-080027ef73ec
Make ninja opt-out in cmake.mk
Using ninja instead of make (1) can lead to significant speed ups while
building.
Therefore switch from having the ninja generator opt-in to having it opt-out.
Previously cmake-ports that wanted to use ninja could set
CMAKE_NINJA=yes
now, ports that do not work with ninja can set
cmake:<existing args>,noninja
Note, that needing this should be an exception and most often points to a broken
cmake of the port.
The ports using cmake were modified
* removed USES=gmake, if ninja is used
* removed MAKE_ARGS, if ninja is used
* added the cmake-argument noninja if necessary
PR: 219629
PR: 213331
Exp-run by: antoine
Reviewed by: rakuco
Differential Revision: https://reviews.freebsd.org/D10748
Upgrade OpenEXR and ilmbase to 2.2.0.
GCC 4.2 in FreeBSD 8.X/9.X base is now too old to compile OpenEXR, so
GCC-based systems will upgrade to the default ports compiler (GCC 4.7
currently.)
Add two patches to OpenEXR to permit building it in a live system with
the older OpenEXR version installed. Bug report filed to upstream Github
at https://github.com/openexr/openexr/issues/130
Couple OpenEXR more tightly to ilmbase and require its exact .so
version.
Add UPDATING note, and bump PORTREVISION of all dependent ports.
Proto-STAGE hugin-devel, and mark it IGNORE because hugin is newer.
Approved by: portmgr (implicit for bumping PORTREVISION on unstaged ports)
- Switch to USES=cmake
- Use patch instead of USES pathfix
- Remove THREAD Option
- Remove obsolete REINPLACE and .la files, needed that works
graphics/nvidia-texture-tools ports/172108, remove from pkg-plist [1]
- Symlink libraries [1]
- Add patches files/patch-CMakeLists.txt and
files/patch-IlmThread__CMakeLists.txt for proper Cmake usage [1]
- Remove obsolete patch files/patch-configure
- All dependent ports builds fine, only graphics/hugin-devel have self
problem with build
Reviewed by: amdmi3@ [1]
graphics => ilmbase & OpenEXR: Fix == bashism in configure script
The latest versions of ilmbase and OpenEXR come with "== xyes" and
"== xno" in the configure script, potentially causing misconfiguration
as seen in DragonFly 3.6. Fix both in the post-patch target with sed.
Approved by: portmgr (bapt), maintainer AFK
-Repocopy devel/libtool15 -> libtool22 and libltdl15 -> libltdl22.
-Update libtool and libltdl to 2.2.6a.
-Remove devel/libtool15 and devel/libltdl15.
-Fix ports build with libtool22/libltdl22.
-Bump ports that depend on libltdl22 due to shared library version change.
-Explain what to do update in the UPDATING.
It has been tested with GNOME2, XFCE4, KDE3, KDE4 and other many wm/desktop
and applications in the runtime.
With help: marcus and kwm
Pointyhat-exp: a few times by pav
Tested by: pgollucci, "Romain Tartière" <romain@blogreen.org>, and
a few MarcusCom CVS users. Also, I might have missed a few.
Repocopy by: marcus
Approved by: portmgr
Update to 1.0.1.
[note]
The submitter suggested 'regression-test' target, but I *added* "regression"
target.
I consider that ports system should be supported generic 'regression test'
framework.
PR: ports/125091
Submitted by: Pedro F. Giffuni pfgshield-freebsd at yahoo dot com
Disable 'make test' on the build cluster, since it is failing with a
coredump, and hundreds of dependent packages can't be built because of it.
While here, turn threading on by default to try to fix graphics/blender
build. (Suggested by: submitter)
I am declaring a short mainter-timeout on this to unblock the package builds.
PR: ports/117412
Submitted by: beech
Hat: portmgr
Add IlmBase 1.0.0, has four ILM's basic libraries as known as Half,
IlmThread, Imath and Iex.
These libraries was separated from OpenEXR. So I'll make OpenEXR depend
on this port.