Date: Sun, 26 Apr 2026 15:32:13 +0000 From: Alexey Dokuchaev <danfe@FreeBSD.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org Subject: git: ccd3e7a78854 - main - graphics/appleseed: try to unbreak the build against OpenImageIO 3.x Message-ID: <69ee2ffd.3f90f.6af3c9f7@gitrepo.freebsd.org>
index | next in thread | raw e-mail
The branch main has been updated by danfe: URL: https://cgit.FreeBSD.org/ports/commit/?id=ccd3e7a7885480e535aeacf193243f215b94cc82 commit ccd3e7a7885480e535aeacf193243f215b94cc82 Author: Alexey Dokuchaev <danfe@FreeBSD.org> AuthorDate: 2026-04-26 15:29:44 +0000 Commit: Alexey Dokuchaev <danfe@FreeBSD.org> CommitDate: 2026-04-26 15:29:44 +0000 graphics/appleseed: try to unbreak the build against OpenImageIO 3.x ... and other modern APIs (Boost and libstdc++). Now requires C++17. --- graphics/appleseed/Makefile | 26 ++++- graphics/appleseed/files/patch-oiio-cxx-std-14 | 4 +- graphics/appleseed/files/patch-oiiotexturesystem | 123 +++++++++++++++++++++ ...dering_final_texturecontrolledpixelrenderer.cpp | 9 ++ 4 files changed, 158 insertions(+), 4 deletions(-) diff --git a/graphics/appleseed/Makefile b/graphics/appleseed/Makefile index a9b98309da64..062301f55c59 100644 --- a/graphics/appleseed/Makefile +++ b/graphics/appleseed/Makefile @@ -13,8 +13,6 @@ WWW= https://appleseedhq.net/ LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE.txt -BROKEN= fails to build with Boost>=1.87 - LIB_DEPENDS= libboost_thread.so:devel/boost-libs \ liblz4.so:archivers/liblz4 \ libpng.so:graphics/png \ @@ -89,6 +87,30 @@ post-patch: ${WRKSRC}/src/appleseed/foundation/image/color.h @${REINPLACE_CMD} -e '/return Product/s,trt\.derived(),trt,' \ ${WRKSRC}/src/thirdparty/bcd/ext/eigen/Eigen/src/Core/Transpositions.h + @${REINPLACE_CMD} -e 's/impl->m_input->read_image(/&0, 0, 0, -1,/' \ + ${WRKSRC}/src/appleseed/foundation/image/genericprogressiveimagefilereader.cpp + @${REINPLACE_CMD} -e 's/clamp(/foundation::&/' \ + ${WRKSRC}/src/appleseed/renderer/kernel/lighting/lighttree.cpp \ + ${WRKSRC}/src/appleseed/renderer/kernel/shading/closures.cpp \ + ${WRKSRC}/src/appleseed/renderer/modeling/bsdf/glassbsdf.cpp \ + ${WRKSRC}/src/appleseed/renderer/modeling/environmentedf/hosekenvironmentedf.cpp \ + ${WRKSRC}/src/appleseed/renderer/modeling/environmentedf/preethamenvironmentedf.cpp \ + ${WRKSRC}/src/appleseed/renderer/modeling/input/texturesource.cpp \ + ${WRKSRC}/src/appleseed/renderer/modeling/postprocessingstage/colormappostprocessingstage.cpp \ + ${WRKSRC}/src/appleseed/renderer/utility/transformsequence.cpp \ + ${WRKSRC}/src/appleseed.studio/utility/widgetzoomhandler.cpp + @${REINPLACE_CMD} -e 's/TypeDesc::Type/Type/' \ + ${WRKSRC}/src/appleseed/renderer/kernel/rendering/final/texturecontrolledpixelrenderer.cpp \ + ${WRKSRC}/src/appleseed/renderer/kernel/rendering/rendererservices.cpp \ + ${WRKSRC}/src/appleseed/renderer/modeling/postprocessingstage/renderstamppostprocessingstage.cpp \ + ${WRKSRC}/src/appleseed/renderer/modeling/shadergroup/shaderparam.cpp \ + ${WRKSRC}/src/appleseed/renderer/modeling/shadergroup/shaderquery.cpp + @${REINPLACE_CMD} -e 's/using OSL::TypeDesc/&, OSL::TypeColor, OSL::TypeFloat, OSL::TypeInt, OSL::TypeString, OSL::TypeVector/' \ + ${WRKSRC}/src/appleseed/renderer/kernel/shading/closures.cpp + @${REINPLACE_CMD} -e '/OSL::ShadingSystem(/s,texturesystem,&->get(),' \ + ${WRKSRC}/src/appleseed/renderer/kernel/shading/oslshadingsystem.cpp + @${REINPLACE_CMD} -e 's/filesystem::path/bf::path/' \ + ${WRKSRC}/src/appleseed/renderer/modeling/project/projectfilewriter.cpp .include <bsd.port.mk> diff --git a/graphics/appleseed/files/patch-oiio-cxx-std-14 b/graphics/appleseed/files/patch-oiio-cxx-std-14 index e1459aef5764..2c54de738e37 100644 --- a/graphics/appleseed/files/patch-oiio-cxx-std-14 +++ b/graphics/appleseed/files/patch-oiio-cxx-std-14 @@ -4,7 +4,7 @@ ) set_target_properties (appleseed.studio PROPERTIES FOLDER "Applications") -+set_target_properties (appleseed.studio PROPERTIES CXX_STANDARD 14) ++set_target_properties (appleseed.studio PROPERTIES CXX_STANDARD 17) if (WIN32) set_target_properties (appleseed.studio PROPERTIES @@ -14,7 +14,7 @@ ) set_target_properties (appleseed PROPERTIES FOLDER "Core") -+set_target_properties (appleseed PROPERTIES CXX_STANDARD 14) ++set_target_properties (appleseed PROPERTIES CXX_STANDARD 17) if (USE_VISIBILITY_MAP) set_target_properties (appleseed PROPERTIES diff --git a/graphics/appleseed/files/patch-oiiotexturesystem b/graphics/appleseed/files/patch-oiiotexturesystem new file mode 100644 index 000000000000..f333cac5a371 --- /dev/null +++ b/graphics/appleseed/files/patch-oiiotexturesystem @@ -0,0 +1,123 @@ +--- src/appleseed/renderer/device/cpu/cpurenderdevice.cpp.orig ++++ src/appleseed/renderer/device/cpu/cpurenderdevice.cpp +@@ -69,12 +69,12 @@ + + RENDERER_LOG_DEBUG("creating oiio texture system..."); + m_texture_system = OIIOTextureSystemFactory::create(false); +- m_texture_system->attribute("automip", 0); +- m_texture_system->attribute("accept_untiled", 1); +- m_texture_system->attribute("accept_unmipped", 1); +- m_texture_system->attribute("gray_to_rgb", 1); +- m_texture_system->attribute("latlong_up", "y"); +- m_texture_system->attribute("flip_t", 1); ++ (*m_texture_system)->attribute("automip", 0); ++ (*m_texture_system)->attribute("accept_untiled", 1); ++ (*m_texture_system)->attribute("accept_unmipped", 1); ++ (*m_texture_system)->attribute("gray_to_rgb", 1); ++ (*m_texture_system)->attribute("latlong_up", "y"); ++ (*m_texture_system)->attribute("flip_t", 1); + + m_renderer_services = + new RendererServices( +@@ -116,7 +116,7 @@ + m_shading_system->release(); + delete m_renderer_services; + +- const string stats = m_texture_system->getstats(); ++ const string stats = (*m_texture_system)->getstats(); + const string modified_stats = prefix_all_lines(trim_both(stats), "oiio: "); + RENDERER_LOG_DEBUG("%s", modified_stats.c_str()); + +@@ -147,20 +147,20 @@ + pretty_size(texture_cache_size_bytes).c_str()); + const float texture_cache_size_mb = + static_cast<float>(texture_cache_size_bytes) / (1024 * 1024); +- m_texture_system->attribute("max_memory_MB", texture_cache_size_mb); ++ (*m_texture_system)->attribute("max_memory_MB", texture_cache_size_mb); + + // Set OIIO search paths. + string prev_oiio_search_path; +- m_texture_system->getattribute("searchpath", prev_oiio_search_path); ++ (*m_texture_system)->getattribute("searchpath", prev_oiio_search_path); + if (prev_oiio_search_path != project_search_paths) + { + RENDERER_LOG_INFO("setting oiio search paths to %s", project_search_paths.c_str()); +- m_texture_system->invalidate_all(true); +- m_texture_system->attribute("searchpath", project_search_paths); ++ (*m_texture_system)->invalidate_all(true); ++ (*m_texture_system)->attribute("searchpath", project_search_paths); + } + + // Also use the project search paths to look for OpenImageIO plugins. +- m_texture_system->attribute("plugin_searchpath", project_search_paths); ++ (*m_texture_system)->attribute("plugin_searchpath", project_search_paths); + + // Initialize OSL. + m_renderer_services->initialize(m_texture_store); +--- src/appleseed/renderer/kernel/texturing/oiiotexturesystem.cpp.orig ++++ src/appleseed/renderer/kernel/texturing/oiiotexturesystem.cpp +@@ -32,15 +32,18 @@ + namespace renderer + { + ++OIIOTextureSystem::OIIOTextureSystem(const bool shared) ++ : ts(OIIO::TextureSystem::create(shared)) {} ++ + void OIIOTextureSystem::release() + { +- OIIO::TextureSystem::destroy( +- reinterpret_cast<OIIO::TextureSystem*>(this)); ++ OIIO::TextureSystem::destroy(ts); ++ delete this; + } + + OIIOTextureSystem* OIIOTextureSystemFactory::create(const bool shared) + { +- return reinterpret_cast<OIIOTextureSystem*>(OIIO::TextureSystem::create(shared)); ++ return new OIIOTextureSystem(shared); + } + + } // namespace renderer +--- src/appleseed/renderer/kernel/texturing/oiiotexturesystem.h.orig ++++ src/appleseed/renderer/kernel/texturing/oiiotexturesystem.h +@@ -37,14 +37,15 @@ + { + + class OIIOTextureSystem +- : public OIIO::TextureSystem + { + public: ++ OIIOTextureSystem(const bool shared); ++ auto operator->() const noexcept { return ts.get(); } ++ auto get() const noexcept { return ts.get(); } + void release(); + + private: +- // Needed by gcc 8. +- void operator delete(void*) {} ++ std::shared_ptr<OIIO::TextureSystem> ts; + }; + + class OIIOTextureSystemFactory +--- src/appleseed/renderer/meta/tests/test_environmentedf.cpp.orig ++++ src/appleseed/renderer/meta/tests/test_environmentedf.cpp +@@ -195,7 +195,7 @@ TEST_SUITE(Renderer_Modeling_EnvironmentEDF) + , m_texture_system( + OIIOTextureSystemFactory::create(), + [](OIIOTextureSystem* object) { object->release(); }) +- , m_renderer_services(Base::m_project, *m_texture_system) ++ , m_renderer_services(Base::m_project, *m_texture_system->get()) + , m_shading_system( + OSLShadingSystemFactory::create(&m_renderer_services, m_texture_system.get()), + [](OSLShadingSystem* object) { object->release(); }) +--- src/appleseed/renderer/meta/tests/test_volume.cpp.orig ++++ src/appleseed/renderer/meta/tests/test_volume.cpp +@@ -96,7 +96,7 @@ TEST_SUITE(Renderer_Modeling_Volume) + , m_texture_system( + OIIOTextureSystemFactory::create(), + [](OIIOTextureSystem* object) { object->release(); }) +- , m_renderer_services(base.m_project, *m_texture_system) ++ , m_renderer_services(base.m_project, *m_texture_system->get()) + , m_shading_system( + OSLShadingSystemFactory::create(&m_renderer_services, m_texture_system.get()), + [](OSLShadingSystem* object) { object->release(); }) diff --git a/graphics/appleseed/files/patch-src_appleseed_renderer_kernel_rendering_final_texturecontrolledpixelrenderer.cpp b/graphics/appleseed/files/patch-src_appleseed_renderer_kernel_rendering_final_texturecontrolledpixelrenderer.cpp index 5f36bf4e1e28..16e40cfc654e 100644 --- a/graphics/appleseed/files/patch-src_appleseed_renderer_kernel_rendering_final_texturecontrolledpixelrenderer.cpp +++ b/graphics/appleseed/files/patch-src_appleseed_renderer_kernel_rendering_final_texturecontrolledpixelrenderer.cpp @@ -8,3 +8,12 @@ #include "OpenImageIO/typedesc.h" #include "foundation/platform/_endoiioheaders.h" +@@ -321,7 +322,7 @@ bool TextureControlledPixelRendererFactory::load_textu + { + // Create a new dedicated ImageCache instead of using the global ImageCache. + // This is to prevent errors during ImageBuf access if the file behind tex_path was overwritten on disk. +- ImageCache* image_cache = ImageCache::create(); ++ auto image_cache = ImageCache::create(); + std::unique_ptr<ImageBuf> texture(new ImageBuf(texture_path, 0, 0, image_cache)); + + // Force the read to immediately do the entire disk I/O for the file.home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69ee2ffd.3f90f.6af3c9f7>
