summaryrefslogtreecommitdiff
path: root/dev-games/openscenegraph
diff options
context:
space:
mode:
Diffstat (limited to 'dev-games/openscenegraph')
-rw-r--r--dev-games/openscenegraph/Manifest6
-rw-r--r--dev-games/openscenegraph/files/openscenegraph-3.6.5-boost-1.87.0.patch301
-rw-r--r--dev-games/openscenegraph/openscenegraph-3.6.5-r114.ebuild2
-rw-r--r--dev-games/openscenegraph/openscenegraph-3.6.5-r115.ebuild2
-rw-r--r--dev-games/openscenegraph/openscenegraph-3.6.5-r116.ebuild172
5 files changed, 479 insertions, 4 deletions
diff --git a/dev-games/openscenegraph/Manifest b/dev-games/openscenegraph/Manifest
index c709f40c6209..830cf9a52152 100644
--- a/dev-games/openscenegraph/Manifest
+++ b/dev-games/openscenegraph/Manifest
@@ -1,10 +1,12 @@
AUX openscenegraph-3.6.3-cmake.patch 993 BLAKE2B 3adb6691bb1c2e9cc4e88ef5c1e107bd429564248fd72c6f4d70c1622b2933273e02f294d5fd3b2529fdbbdef65cdba41db7b441b7334b6180995896b52f8212 SHA512 2905fa5031641f2d3a8cec46c32c1cbf8adfb34b7c460c22eaecca66f5cc0b73c2bda4ed68dca3bda12a5f49385c2257bd5b4f3271b13eb979298eeaefb45789
AUX openscenegraph-3.6.3-docdir.patch 2991 BLAKE2B 9d2d3bab0d8956f66b4b23a112dbd42cbf6dc60b8f423d71f1082700d19a04867232597fadd14a60c77a0add9e60b5ffb4a0db6811dd26d854afb04d208cf716 SHA512 fd1294e441007b488186dbd944c82d1f960f7a898bcc093d0a5edfb936c727f18ad289be8dec8cfa4fbba80965bb7992b6d3a4e2c0f690a7736c05cda49a2bea
+AUX openscenegraph-3.6.5-boost-1.87.0.patch 12571 BLAKE2B c9f2ed8ec754f3ee6b6cb30b22beb2d374199753c9b1f3918f7faae5da290e7700a7721e6bd351eb706b0120e5aafb3e24434f27d66fdbae1b2e1fb30e11c779 SHA512 8583c94f40160c235126ce9b0c774e2906d752a92408aae586f85f64df9a366e6611adc7260de050df8997fcf9a88c73ac63ea46b7264a3303ed9732c5778189
AUX openscenegraph-3.6.5-cmake_lua_version.patch 440 BLAKE2B 51a35309b01a096f9423ff64e66d62f99d3e26bd898db0b53c135dc99318b236a1b129211f51de9b1a29d054e0810aa4ff2a7c307dc4b4a606eb4075a60748d9 SHA512 a41c7a65b1cfd0dabc080f509cf288f575b3ec5d7666a4a889a8c3156e9d32559e1f802e23783c5c70376c82a24dd87813e9bfde0876085e0e3967b47852059a
AUX openscenegraph-3.6.5-openexr3.patch 2014 BLAKE2B ea9d75986ea68519ca9d5dab066273cb8a5eb8a492c96131240d023660c939d948276c459a617413ba55b80767a945bfec038ac4ada7ca6f46185aeccdc949a4 SHA512 6cd446c69d99b68da6bf39862cdc81d51be534ed35cea9f2858dc7771dd189a9ee5f5c1f76ea1247680b03eff5b7ec3f2331c2e9505c17d5a6a3f3cac4d2ed1e
AUX openscenegraph-3.6.5-remove-register-keyword.patch 4507 BLAKE2B e5b6ae132492198906db6e3490bb1c578f5294422e0bcf9b31d582187cf3de1dccc76189c0825a237f659ddaa0f956fa1d9f9e14e3bd85022d88d3918ea3cdc7 SHA512 874cf70b4c5e93d1f0b322e2c5c70cbddeda36a3e55c6ed4ecd14cfd3bb18c7bf7d841ba7d19375a2be06ece8d6550c673bb0e2aa2ecf3f7af2346403e3cabdc
AUX openscenegraph-3.6.5-use_boost_asio.patch 6995 BLAKE2B 0b0c0af9980b59e1cfd4cc5256720d0e69d5e3a65173c9364036e42efa34377beb00811fc4a0aee0cead870abe0c33feaaebe57c22cbefac43d4dcf65a1d19e1 SHA512 fa7c702eaf69c7b7890cf44e5293f9c8ea73ac441af1e4573dadd62f3ca797ccbbc2fbafd8c946a936192f7331fa16d8d4247de8b657db77791d5137207c23b6
DIST OpenSceneGraph-3.6.5.tar.gz 5780762 BLAKE2B 31ebeeae94eb6aff043788313946d5c08886f97d97cd5796e600918e137ef7f06839206b79b2f5649aac7f34037d4d79e18a5638152e150de931b7f7a7d3c38b SHA512 7002fa30a3bcf6551d2e1050b4ca75a3736013fd190e4f50953717406864da1952deb09f530bc8c5ddf6e4b90204baec7dbc283f497829846d46d561f66feb4b
-EBUILD openscenegraph-3.6.5-r114.ebuild 4546 BLAKE2B 9759ce89323a57eb48cddf1b195d7b6a3312abde1ca8347ec0281c3763efdc990e358f2a1e757ef10fcba3c11b090a414099c3111ea450711d70d76a16d29d87 SHA512 a04b1e62c206111a8bb04dce86562384e965ce0e0f25a03674311028759c048ff5a5717f8210b6d53e8e311117da72f190b69e8e72beba0f458975646aed9a72
-EBUILD openscenegraph-3.6.5-r115.ebuild 4546 BLAKE2B bfb89606922c73b09ccacec285b1113cfdc996c22d3049d17caaccaa7e7eaa2903b22ec2d1368c1e7d95b320bbd34237b0df5e2e89ef44ed3d81216e3a910f3a SHA512 514a681b125a96b5cb47ba09766f0c9767191c1a5f999ef1235c54a96b45306606d78c9ed0dd25d9340ad9c5b3ad09b9d86e9c507fa2d51d48c2739312113afa
+EBUILD openscenegraph-3.6.5-r114.ebuild 4547 BLAKE2B 5f56b11a9d5fb8cd392fc10ee9e63df5381bcfb26a9847b99c60f7b5b2652aa63bc925f5ff39910ade4ca34a7c0c03444779c474f13575014ae7fb8b6046d63e SHA512 6d727fc0faa407d11c5e31a53d3968b71f5d4409834a6eba97460d1d2332ae625931863f9de4735004914000c077797dfe1ef1a8522ec152ac5e86c39c6a240e
+EBUILD openscenegraph-3.6.5-r115.ebuild 4547 BLAKE2B 79788b4d0c3d9bb70f6330a481ab48c5dad0b9b59da7197748f630172dcc119fe21be05a94e712f6e5eb028dc37f6b514e71287c84e2f38233533797b2bd198f SHA512 00906dd98fed7dc6f4398c8feb7afedfb58f6d8a412f060c221906b13c93f89cc22a01b4b51081b84ad8bdfe8f5d7f4fca63a89ff02b1d4e880a653da3216392
+EBUILD openscenegraph-3.6.5-r116.ebuild 4594 BLAKE2B 0576aa845c71d637e01440377e3b9b1e80abad599f8f73b9c37a1a6529a6678f93b8a979e0a6aac2a850bf2d54c7af1ef6a9ffc6f39910cc8a6cb58b214d68ba SHA512 1ce4cdc30b929bfc156d54cfb1af3731453fd6600a1c7be1700d1c825c7615c72d211a1f50681ae6c8910c87b0b4e8ab6f6428e4d1dad7671e0769ed08a931c8
MISC metadata.xml 1821 BLAKE2B 2b9f8f3e71f190ba0f61a0e930e2a6fdb98ba8ef36838f2b88b74868ef41c25cc43bebcdbb3266208fac7ad13a1d73276543a145aa4f003c6e6937c6952f84f3 SHA512 693dba1413ccb84e8e2d1814cece3eac9fe506aaedaf61af4cb4b16301e4482be9409d874a1f392b095f443c37a19a4d97e2e271c84716dc7e192d001332e8a1
diff --git a/dev-games/openscenegraph/files/openscenegraph-3.6.5-boost-1.87.0.patch b/dev-games/openscenegraph/files/openscenegraph-3.6.5-boost-1.87.0.patch
new file mode 100644
index 000000000000..22e54593b981
--- /dev/null
+++ b/dev-games/openscenegraph/files/openscenegraph-3.6.5-boost-1.87.0.patch
@@ -0,0 +1,301 @@
+diff '--color=auto' -urNp openscenegraph-3.6.5-orig/src/osgPlugins/RestHttpDevice/connection.cpp openscenegraph-3.6.5-dwok/src/osgPlugins/RestHttpDevice/connection.cpp
+--- openscenegraph-3.6.5-orig/src/osgPlugins/RestHttpDevice/connection.cpp 2024-12-27 12:34:55.469783593 +0100
++++ openscenegraph-3.6.5-dwok/src/osgPlugins/RestHttpDevice/connection.cpp 2024-12-27 12:45:50.072697619 +0100
+@@ -10,16 +10,17 @@
+
+ #include "connection.hpp"
+ #include <vector>
+-#include <boost/bind.hpp>
++#include <boost/bind/bind.hpp>
++using namespace boost::placeholders;
+ #include "request_handler.hpp"
+ #include <osg/Notify>
+
+ namespace http {
+ namespace server {
+
+-connection::connection(asio::io_service& io_service,
++connection::connection(boost::asio::io_context& io_context,
+ request_handler& handler)
+- : socket_(io_service),
++ : socket_(io_context),
+ request_handler_(handler)
+ {
+ OSG_DEBUG << "RestHttpDevice :: connection::connection" << std::endl;
+@@ -29,7 +30,7 @@ connection::~connection()
+ {
+ OSG_DEBUG << "RestHttpDevice :: connection::~connection" << std::endl;
+ }
+-asio::ip::tcp::socket& connection::socket()
++boost::asio::ip::tcp::socket& connection::socket()
+ {
+ return socket_;
+ }
+@@ -38,10 +39,8 @@ void connection::start()
+ {
+ OSG_DEBUG << "RestHttpDevice :: connection::start" << std::endl;
+
+- socket_.async_read_some(asio::buffer(buffer_),
+- boost::bind(&connection::handle_read, shared_from_this(),
+- asio::placeholders::error,
+- asio::placeholders::bytes_transferred));
++ socket_.async_read_some(boost::asio::buffer(buffer_),
++ boost::bind(&connection::handle_read, shared_from_this(), _1, _2));
+ }
+
+ void connection::handle_read(const boost::system::error_code& e,
+@@ -56,23 +55,19 @@ void connection::handle_read(const boost
+ if (result)
+ {
+ request_handler_.handle_request(request_, reply_);
+- asio::async_write(socket_, reply_.to_buffers(),
+- boost::bind(&connection::handle_write, shared_from_this(),
+- asio::placeholders::error));
++ boost::asio::async_write(socket_, reply_.to_buffers(),
++ boost::bind(&connection::handle_write, shared_from_this(), _1));
+ }
+ else if (!result)
+ {
+ reply_ = reply::stock_reply(reply::bad_request);
+- asio::async_write(socket_, reply_.to_buffers(),
+- boost::bind(&connection::handle_write, shared_from_this(),
+- asio::placeholders::error));
++ boost::asio::async_write(socket_, reply_.to_buffers(),
++ boost::bind(&connection::handle_write, shared_from_this(), _1));
+ }
+ else
+ {
+- socket_.async_read_some(asio::buffer(buffer_),
+- boost::bind(&connection::handle_read, shared_from_this(),
+- asio::placeholders::error,
+- asio::placeholders::bytes_transferred));
++ socket_.async_read_some(boost::asio::buffer(buffer_),
++ boost::bind(&connection::handle_read, shared_from_this(), _1, _2));
+ }
+ }
+
+@@ -88,7 +83,7 @@ void connection::handle_write(const boos
+ {
+ // Initiate graceful connection closure.
+ boost::system::error_code ignored_ec;
+- socket_.shutdown(asio::ip::tcp::socket::shutdown_both, ignored_ec);
++ socket_.shutdown(boost::asio::ip::tcp::socket::shutdown_both, ignored_ec);
+ }
+
+ // No new asynchronous operations are started. This means that all shared_ptr
+diff '--color=auto' -urNp openscenegraph-3.6.5-orig/src/osgPlugins/RestHttpDevice/connection.hpp openscenegraph-3.6.5-dwok/src/osgPlugins/RestHttpDevice/connection.hpp
+--- openscenegraph-3.6.5-orig/src/osgPlugins/RestHttpDevice/connection.hpp 2024-12-27 12:34:55.469783593 +0100
++++ openscenegraph-3.6.5-dwok/src/osgPlugins/RestHttpDevice/connection.hpp 2024-12-27 12:40:08.523007514 +0100
+@@ -33,7 +33,7 @@ class connection
+ {
+ public:
+ /// Construct a connection with the given io_service.
+- explicit connection(asio::io_service& io_service,
++ explicit connection(boost::asio::io_context& io_context,
+ request_handler& handler);
+
+ /// Get the socket associated with the connection.
+diff '--color=auto' -urNp openscenegraph-3.6.5-orig/src/osgPlugins/RestHttpDevice/io_service_pool.cpp openscenegraph-3.6.5-dwok/src/osgPlugins/RestHttpDevice/io_service_pool.cpp
+--- openscenegraph-3.6.5-orig/src/osgPlugins/RestHttpDevice/io_service_pool.cpp 2024-12-27 12:34:55.469783593 +0100
++++ openscenegraph-3.6.5-dwok/src/osgPlugins/RestHttpDevice/io_service_pool.cpp 2024-12-27 12:48:08.654997383 +0100
+@@ -8,16 +8,18 @@
+ // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ //
+
+-#include "server.hpp"
++#include "io_service_pool.hpp"
+ #include <stdexcept>
+-#include <boost/bind.hpp>
++#include <boost/bind/bind.hpp>
++using namespace boost::placeholders;
++#include <boost/shared_ptr.hpp>
+ #include <boost/thread.hpp>
+
+ namespace http {
+ namespace server {
+
+ io_service_pool::io_service_pool(std::size_t pool_size)
+- : next_io_service_(0)
++ : next_io_context_(0)
+ {
+ if (pool_size == 0)
+ throw std::runtime_error("io_service_pool size is 0");
+@@ -26,9 +28,9 @@ io_service_pool::io_service_pool(std::si
+ // exit until they are explicitly stopped.
+ for (std::size_t i = 0; i < pool_size; ++i)
+ {
+- io_service_ptr io_service(new asio::io_service);
+- work_ptr work(new asio::io_service::work(*io_service));
+- io_services_.push_back(io_service);
++ io_context_ptr io_context(new boost::asio::io_context);
++ work_ptr work(new boost::asio::executor_work_guard<boost::asio::io_context::executor_type>(boost::asio::make_work_guard(*io_context)));
++ io_contexts_.push_back(io_context);
+ work_.push_back(work);
+ }
+ }
+@@ -36,31 +38,34 @@ io_service_pool::io_service_pool(std::si
+ void io_service_pool::run()
+ {
+ // Create a pool of threads to run all of the io_services.
+- std::vector<thread> threads;
+- for (std::size_t i = 0; i < io_services_.size(); ++i)
+- threads.emplace_back(thread(boost::bind(&asio::io_service::run,
+- io_services_[i])));
++ std::vector<boost::shared_ptr<boost::thread>> threads;
++ for (std::size_t i = 0; i < io_contexts_.size(); ++i)
++ {
++ boost::shared_ptr<boost::thread> thread(new boost::thread(
++ boost::bind(&boost::asio::io_context::run, io_contexts_[i])));
++ threads.push_back(thread);
++ }
+
+ // Wait for all threads in the pool to exit.
+ for (std::size_t i = 0; i < threads.size(); ++i)
+- threads[i].join();
++ threads[i]->join();
+ }
+
+ void io_service_pool::stop()
+ {
+ // Explicitly stop all io_services.
+- for (std::size_t i = 0; i < io_services_.size(); ++i)
+- io_services_[i]->stop();
++ for (std::size_t i = 0; i < io_contexts_.size(); ++i)
++ io_contexts_[i]->stop();
+ }
+
+-asio::io_service& io_service_pool::get_io_service()
++boost::asio::io_context& io_service_pool::get_io_context()
+ {
+ // Use a round-robin scheme to choose the next io_service to use.
+- asio::io_service& io_service = *io_services_[next_io_service_];
+- ++next_io_service_;
+- if (next_io_service_ == io_services_.size())
+- next_io_service_ = 0;
+- return io_service;
++ boost::asio::io_context& io_context = *io_contexts_[next_io_context_];
++ ++next_io_context_;
++ if (next_io_context_ == io_contexts_.size())
++ next_io_context_ = 0;
++ return io_context;
+ }
+
+ } // namespace server
+diff '--color=auto' -urNp openscenegraph-3.6.5-orig/src/osgPlugins/RestHttpDevice/io_service_pool.hpp openscenegraph-3.6.5-dwok/src/osgPlugins/RestHttpDevice/io_service_pool.hpp
+--- openscenegraph-3.6.5-orig/src/osgPlugins/RestHttpDevice/io_service_pool.hpp 2024-12-27 12:34:55.469783593 +0100
++++ openscenegraph-3.6.5-dwok/src/osgPlugins/RestHttpDevice/io_service_pool.hpp 2024-12-27 12:40:08.523007514 +0100
+@@ -16,8 +16,6 @@
+ #include <boost/noncopyable.hpp>
+ #include <boost/shared_ptr.hpp>
+
+-using namespace boost;
+-
+ namespace http {
+ namespace server {
+
+@@ -36,20 +34,20 @@ public:
+ void stop();
+
+ /// Get an io_service to use.
+- asio::io_service& get_io_service();
++ boost::asio::io_context& get_io_context();
+
+ private:
+- typedef boost::shared_ptr<asio::io_service> io_service_ptr;
+- typedef boost::shared_ptr<asio::io_service::work> work_ptr;
++ typedef boost::shared_ptr<boost::asio::io_context> io_context_ptr;
++ typedef boost::shared_ptr<boost::asio::executor_work_guard<boost::asio::io_context::executor_type>> work_ptr;
+
+ /// The pool of io_services.
+- std::vector<io_service_ptr> io_services_;
++ std::vector<io_context_ptr> io_contexts_;
+
+ /// The work that keeps the io_services running.
+ std::vector<work_ptr> work_;
+
+ /// The next io_service to use for a connection.
+- std::size_t next_io_service_;
++ std::size_t next_io_context_;
+ };
+
+ } // namespace server
+diff '--color=auto' -urNp openscenegraph-3.6.5-orig/src/osgPlugins/RestHttpDevice/ReaderWriterRestHttpDevice.cpp openscenegraph-3.6.5-dwok/src/osgPlugins/RestHttpDevice/ReaderWriterRestHttpDevice.cpp
+--- openscenegraph-3.6.5-orig/src/osgPlugins/RestHttpDevice/ReaderWriterRestHttpDevice.cpp 2024-12-27 12:34:55.469783593 +0100
++++ openscenegraph-3.6.5-dwok/src/osgPlugins/RestHttpDevice/ReaderWriterRestHttpDevice.cpp 2024-12-27 12:49:01.143868489 +0100
+@@ -35,6 +35,8 @@
+ #include <osgDB/FileNameUtils>
+ #include <osgDB/FileUtils>
+ #include "RestHttpDevice.hpp"
++#include <boost/bind/bind.hpp>
++using namespace boost::placeholders;
+
+
+
+diff '--color=auto' -urNp openscenegraph-3.6.5-orig/src/osgPlugins/RestHttpDevice/RestHttpDevice.cpp openscenegraph-3.6.5-dwok/src/osgPlugins/RestHttpDevice/RestHttpDevice.cpp
+--- openscenegraph-3.6.5-orig/src/osgPlugins/RestHttpDevice/RestHttpDevice.cpp 2024-12-27 12:34:55.469783593 +0100
++++ openscenegraph-3.6.5-dwok/src/osgPlugins/RestHttpDevice/RestHttpDevice.cpp 2024-12-27 12:48:44.131586152 +0100
+@@ -16,6 +16,8 @@
+ #include <osg/ValueObject>
+ #include <osgDB/FileUtils>
+ #include "request_handler.hpp"
++#include <boost/bind/bind.hpp>
++using namespace boost::placeholders;
+
+ namespace RestHttp {
+
+diff '--color=auto' -urNp openscenegraph-3.6.5-orig/src/osgPlugins/RestHttpDevice/server.cpp openscenegraph-3.6.5-dwok/src/osgPlugins/RestHttpDevice/server.cpp
+--- openscenegraph-3.6.5-orig/src/osgPlugins/RestHttpDevice/server.cpp 2024-12-27 12:34:55.469783593 +0100
++++ openscenegraph-3.6.5-dwok/src/osgPlugins/RestHttpDevice/server.cpp 2024-12-27 12:47:11.326045994 +0100
+@@ -9,7 +9,8 @@
+ //
+
+ #include "server.hpp"
+-#include <boost/bind.hpp>
++#include <boost/bind/bind.hpp>
++using namespace boost::placeholders;
+
+ namespace http {
+ namespace server {
+@@ -17,22 +18,21 @@ namespace server {
+ server::server(const std::string& address, const std::string& port,
+ const std::string& doc_root, std::size_t io_service_pool_size)
+ : io_service_pool_(io_service_pool_size),
+- acceptor_(io_service_pool_.get_io_service()),
++ acceptor_(io_service_pool_.get_io_context()),
+ new_connection_(new connection(
+- io_service_pool_.get_io_service(), request_handler_)),
++ io_service_pool_.get_io_context(), request_handler_)),
+ request_handler_(doc_root)
+ {
+ // Open the acceptor with the option to reuse the address (i.e. SO_REUSEADDR).
+- asio::ip::tcp::resolver resolver(io_service_pool_.get_io_service());
+- asio::ip::tcp::resolver::query query(address, port);
+- asio::ip::tcp::endpoint endpoint = *resolver.resolve(query);
++ boost::asio::ip::tcp::resolver resolver(io_service_pool_.get_io_context());
++ boost::asio::ip::tcp::resolver::results_type endpoints = resolver.resolve(address, port);
++ boost::asio::ip::tcp::endpoint endpoint = *endpoints.begin();
+ acceptor_.open(endpoint.protocol());
+- acceptor_.set_option(asio::ip::tcp::acceptor::reuse_address(true));
++ acceptor_.set_option(boost::asio::ip::tcp::acceptor::reuse_address(true));
+ acceptor_.bind(endpoint);
+ acceptor_.listen();
+ acceptor_.async_accept(new_connection_->socket(),
+- boost::bind(&server::handle_accept, this,
+- asio::placeholders::error));
++ boost::bind(&server::handle_accept, this, _1));
+ }
+
+ void server::run()
+@@ -54,10 +54,9 @@ void server::handle_accept(const boost::
+ OSG_DEBUG << "RestHttpDevice :: server::handle_accept" << std::endl;
+ new_connection_->start();
+ new_connection_.reset(new connection(
+- io_service_pool_.get_io_service(), request_handler_));
++ io_service_pool_.get_io_context(), request_handler_));
+ acceptor_.async_accept(new_connection_->socket(),
+- boost::bind(&server::handle_accept, this,
+- asio::placeholders::error));
++ boost::bind(&server::handle_accept, this, _1));
+ }
+ else
+ {
diff --git a/dev-games/openscenegraph/openscenegraph-3.6.5-r114.ebuild b/dev-games/openscenegraph/openscenegraph-3.6.5-r114.ebuild
index f1e25ba3592f..06525d8ef4b1 100644
--- a/dev-games/openscenegraph/openscenegraph-3.6.5-r114.ebuild
+++ b/dev-games/openscenegraph/openscenegraph-3.6.5-r114.ebuild
@@ -49,7 +49,7 @@ RDEPEND="
collada? ( dev-libs/collada-dom:= )
curl? ( net-misc/curl )
examples? (
- fltk? ( x11-libs/fltk:1[opengl] )
+ fltk? ( x11-libs/fltk:1=[opengl] )
fox? ( x11-libs/fox:1.6[opengl] )
glut? ( media-libs/freeglut )
sdl2? ( media-libs/libsdl2 )
diff --git a/dev-games/openscenegraph/openscenegraph-3.6.5-r115.ebuild b/dev-games/openscenegraph/openscenegraph-3.6.5-r115.ebuild
index ee7b9e55301c..4fa510fea12b 100644
--- a/dev-games/openscenegraph/openscenegraph-3.6.5-r115.ebuild
+++ b/dev-games/openscenegraph/openscenegraph-3.6.5-r115.ebuild
@@ -49,7 +49,7 @@ RDEPEND="
collada? ( dev-libs/collada-dom:= )
curl? ( net-misc/curl )
examples? (
- fltk? ( x11-libs/fltk:1[opengl] )
+ fltk? ( x11-libs/fltk:1=[opengl] )
fox? ( x11-libs/fox:1.6[opengl] )
glut? ( media-libs/freeglut )
sdl2? ( media-libs/libsdl2 )
diff --git a/dev-games/openscenegraph/openscenegraph-3.6.5-r116.ebuild b/dev-games/openscenegraph/openscenegraph-3.6.5-r116.ebuild
new file mode 100644
index 000000000000..6c16da00e7b7
--- /dev/null
+++ b/dev-games/openscenegraph/openscenegraph-3.6.5-r116.ebuild
@@ -0,0 +1,172 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+LUA_COMPAT=( lua5-1 )
+
+WX_GTK_VER="3.2-gtk3"
+inherit cmake flag-o-matic lua-single wxwidgets
+
+MY_PN="OpenSceneGraph"
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Open source high performance 3D graphics toolkit"
+HOMEPAGE="https://www.openscenegraph.com/"
+SRC_URI="https://github.com/${PN}/${MY_PN}/archive/${MY_P}.tar.gz"
+S="${WORKDIR}/${MY_PN}-${MY_P}"
+
+LICENSE="wxWinLL-3 LGPL-2.1"
+SLOT="0/161" # NOTE: CHECK WHEN BUMPING! Subslot is SOVERSION
+KEYWORDS="~amd64 ~arm64 ~hppa ~ppc64 x86"
+IUSE="
+ collada curl dicom debug doc egl examples ffmpeg fltk fox gdal
+ gif glut gstreamer jpeg las lua openexr openinventor osgapps pdf png
+ sdl sdl2 svg tiff truetype vnc wxwidgets xrandr +zlib
+"
+
+REQUIRED_USE="
+ dicom? ( zlib )
+ lua? ( ${LUA_REQUIRED_USE} )
+ openexr? ( zlib )
+ sdl2? ( sdl )
+"
+
+# TODO: FBX, GTA, NVTT, OpenVRML, Performer
+BDEPEND="
+ app-arch/unzip
+ virtual/pkgconfig
+ doc? ( app-text/doxygen[dot] )
+"
+# <ffmpeg-5 for bug #831486 / bug #834425 and
+# https://github.com/openscenegraph/OpenSceneGraph/issues/1111
+RDEPEND="
+ media-libs/mesa[egl(+)?]
+ virtual/glu
+ virtual/opengl
+ x11-libs/libSM
+ x11-libs/libXext
+ collada? ( dev-libs/collada-dom:= )
+ curl? ( net-misc/curl )
+ examples? (
+ fltk? ( x11-libs/fltk:1[opengl] )
+ fox? ( x11-libs/fox:1.6[opengl] )
+ glut? ( media-libs/freeglut )
+ sdl2? ( media-libs/libsdl2 )
+ wxwidgets? ( x11-libs/wxGTK:${WX_GTK_VER}[opengl,X] )
+ )
+ ffmpeg? ( <media-video/ffmpeg-5:= )
+ gdal? ( sci-libs/gdal:= )
+ gif? ( media-libs/giflib:= )
+ gstreamer? (
+ media-libs/gstreamer:1.0
+ media-libs/gst-plugins-base:1.0
+ )
+ jpeg? ( media-libs/libjpeg-turbo:= )
+ las? ( >=sci-geosciences/liblas-1.8.0 )
+ lua? ( ${LUA_DEPS} )
+ openexr? (
+ dev-libs/imath:=
+ >=media-libs/openexr-3:=
+ )
+ openinventor? ( media-libs/coin )
+ pdf? ( app-text/poppler[cairo] )
+ png? ( media-libs/libpng:0= )
+ sdl? ( media-libs/libsdl )
+ svg? (
+ gnome-base/librsvg
+ x11-libs/cairo
+ )
+ tiff? ( media-libs/tiff:= )
+ truetype? ( media-libs/freetype:2 )
+ vnc? ( net-libs/libvncserver )
+ xrandr? ( x11-libs/libXrandr )
+ zlib? ( sys-libs/zlib )
+"
+DEPEND="${RDEPEND}
+ dev-libs/boost
+ x11-base/xorg-proto
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.6.3-cmake.patch
+ "${FILESDIR}"/${PN}-3.6.3-docdir.patch
+ "${FILESDIR}"/${PN}-3.6.5-use_boost_asio.patch
+ "${FILESDIR}"/${PN}-3.6.5-cmake_lua_version.patch
+ "${FILESDIR}"/${PN}-3.6.5-openexr3.patch
+ "${FILESDIR}"/${PN}-3.6.5-remove-register-keyword.patch
+ "${FILESDIR}"/${PN}-3.6.5-boost-1.87.0.patch
+)
+
+pkg_setup() {
+ use lua && lua-single_pkg_setup
+}
+
+src_configure() {
+ if use examples && use wxwidgets; then
+ setup-wxwidgets unicode
+ fi
+
+ # Needed by FFmpeg
+ append-cppflags -D__STDC_CONSTANT_MACROS
+
+ local libdir=$(get_libdir)
+ local mycmakeargs=(
+ -DDYNAMIC_OPENSCENEGRAPH=ON
+ -DLIB_POSTFIX=${libdir/lib}
+ -DOPENGL_PROFILE=GL2 #GL1 GL2 GL3 GLES1 GLES3 GLES3
+ $(cmake_use_find_package collada COLLADA)
+ $(cmake_use_find_package curl CURL)
+ -DBUILD_DOCUMENTATION=$(usex doc)
+ $(cmake_use_find_package dicom DCMTK)
+ $(cmake_use_find_package egl EGL)
+ -DBUILD_OSG_EXAMPLES=$(usex examples)
+ $(cmake_use_find_package ffmpeg FFmpeg)
+ $(cmake_use_find_package gdal GDAL)
+ $(cmake_use_find_package gif GIFLIB)
+ $(cmake_use_find_package gstreamer GLIB)
+ $(cmake_use_find_package gstreamer GStreamer)
+ -DCMAKE_DISABLE_FIND_PACKAGE_GtkGl=ON
+ $(cmake_use_find_package jpeg JPEG)
+ -DCMAKE_DISABLE_FIND_PACKAGE_Jasper=ON
+ $(cmake_use_find_package las LIBLAS)
+ $(cmake_use_find_package lua Lua)
+ -DCMAKE_DISABLE_FIND_PACKAGE_OpenCascade=ON
+ $(cmake_use_find_package openexr OpenEXR)
+ $(cmake_use_find_package openinventor Inventor)
+ -DBUILD_OSG_APPLICATIONS=$(usex osgapps)
+ $(cmake_use_find_package pdf Poppler-glib)
+ $(cmake_use_find_package png PNG)
+ $(cmake_use_find_package sdl SDL)
+ $(cmake_use_find_package sdl2 SDL2)
+ $(cmake_use_find_package svg RSVG)
+ $(cmake_use_find_package tiff TIFF)
+ $(cmake_use_find_package truetype Freetype)
+ $(cmake_use_find_package vnc LibVNCServer)
+ -DOSGVIEWER_USE_XRANDR=$(usex xrandr)
+ $(cmake_use_find_package zlib ZLIB)
+ -DOSG_USE_LOCAL_LUA_SOURCE=OFF
+ )
+
+ if use examples; then
+ mycmakeargs+=(
+ $(cmake_use_find_package fltk FLTK)
+ $(cmake_use_find_package fox FOX)
+ $(cmake_use_find_package glut GLUT)
+ $(cmake_use_find_package wxwidgets wxWidgets)
+ )
+ fi
+
+ if use lua; then
+ mycmakeargs+=(
+ -DLUA_VERSION="$(lua_get_version)"
+ )
+ fi
+
+ cmake_src_configure
+}
+
+src_compile() {
+ cmake_src_compile
+ use doc && cmake_src_compile doc_openscenegraph doc_openthreads
+}