commit: 9d1346c5d73d98ed3b982e33cf2afe7ef4596621 Author: James Le Cuirot <chewi <AT> gentoo <DOT> org> AuthorDate: Tue Jun 17 22:50:30 2025 +0000 Commit: James Le Cuirot <chewi <AT> gentoo <DOT> org> CommitDate: Tue Jun 17 22:50:30 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9d1346c5
net-misc/sunshine: Drop old 0.23.1 Bug: https://bugs.gentoo.org/956631 Signed-off-by: James Le Cuirot <chewi <AT> gentoo.org> net-misc/sunshine/Manifest | 10 - .../sunshine/files/sunshine-0.22.0-nvcodec.patch | 27 -- net-misc/sunshine/files/sunshine-0.23.1-amf.patch | 17 - net-misc/sunshine/files/sunshine-boost-1.86.patch | 150 -------- net-misc/sunshine/files/sunshine-boost-1.87.patch | 100 ------ net-misc/sunshine/files/sunshine-cross-cbs.patch | 59 ---- .../sunshine/files/sunshine-custom-ffmpeg.patch | 162 --------- net-misc/sunshine/files/sunshine-find-npm.patch | 92 ----- net-misc/sunshine/files/sunshine-miniupnpc.patch | 43 --- net-misc/sunshine/sunshine-0.23.1.ebuild | 381 --------------------- 10 files changed, 1041 deletions(-) diff --git a/net-misc/sunshine/Manifest b/net-misc/sunshine/Manifest index 7366fb1b756a..455f2ae3f992 100644 --- a/net-misc/sunshine/Manifest +++ b/net-misc/sunshine/Manifest @@ -1,22 +1,12 @@ DIST LizardByte-build-deps-1ac1b57c6d96dceb646170d1c2f0a35703c4c50e.tar.gz 29094 BLAKE2B 8c79353150c764da40821463e0fd682a2f9c17154691c08801a13dd4c1f51ec292a214a4a931506e978ac36247aaa9aa827d15a6e39a253fb4b7dcd899b850ea SHA512 cd6869bbd562dbe4f5797fc28113bf0eb5eaa12f2622b99fc54d2ed04bc3bfc50c9f3fb54529fec03963439a6d745626dca77531b4d968f4554359e0dcf2e8b6 -DIST LizardByte-build-deps-2aafe061cd52a944cb3b5f86d1f25e9ad2a19bec.tar.gz 24171 BLAKE2B bcc8f1829eae4ba85a9cbdaca7876a4a52c979f3b8ef0f0a56876fcb171025544bd1997455c2b8fff59564deca433366ae03f14cbb0929f78c87f991b269156f SHA512 892184ec0ff321b2b7e2000dc605d1162955cb04ff259f6032f124f1ff50a1fe485e2cf2c0b735788f8615c9aba87ca040205599cb4b91881daa462a53340bd7 -DIST LizardByte-tray-4d8b798cafdd11285af9409c16b5f792968e0045.tar.gz 1068346 BLAKE2B 6da778c6dc1efb1147363de239a4170dad23288322285b847ed86837b316162bce861b848b8371ea8562efbfa0d36dc6921e8a36da0a05740e3f6aa1da29fae1 SHA512 9c6535a6a3ba4489b5af0821a8c42bbb706259c10d70237bd3d3b31283a7e8ad0e3c2326a34c229d899389156909c36252a931ea47eef8daeb8b7c54b26e92cb DIST LizardByte-tray-d45306e686c90a18f5792a1541783d7bc8555bc6.tar.gz 1083704 BLAKE2B a7fd4e029a8fc531122312483e21373739eb3a5d11b9048259b7a57313bbb0bbfe695e5873b02be4cfb40c68b989e68338ccd2a6cce9f018f574ac0de779efef SHA512 b4e4ab0c6d239aaa41dbe09ad818b7bfc80578c5119bd324943fa5e850c004995d228a6241639b2f91ef6bc84417ac9cd4a4af87d6529a313bc37a0bf80544c4 -DIST Simple-Web-Server-27b41f5ee154cca0fce4fe2955dd886d04e3a4ed.tar.bz2 63258 BLAKE2B e80a6cd92825038ca75b973281b676584f9e488b45b1f9c6ed526236c0a7188b97ae2bba9d7b5557893452dd1ba8778faff2ade840cc169d20b4cf0e51fc8394 SHA512 2eba1d8bd53bb3e29e51a72000918b44730f73b4df26824f25cb6a4860dd21f8aaa7f77124fb500ffe9601ebeca66d1c21a06cad239ed27481e9cae088afbd44 DIST Simple-Web-Server-4abe3491582b56c0b18fc35278aad33b2db29cdc.tar.bz2 63446 BLAKE2B 0a07d4b3f198ad8c24e42a8a01df86c9386eab1bf28388851d5d7c09fbe28a28023a03c07202aef18b16ae2ff0398a61f0770595e13a11251611903dba293e5e SHA512 400eea353f7004ae5a7c59cb1f9f102bb3636cf1ab5ea24b07d8895c7b22d8a9b6a433740fbc295ca037b995492ab3b1620c13e1bc490b39c2cc3629ac5b2de2 -DIST ffmpeg-6.1.1.tar.xz 10458600 BLAKE2B 77827ff92b47c773ed82e7b7793dbb135c370fe23501169cb1eab08ff5ede77cfd5b397e8fb1d38756812cc82277898fd5c74b7d8495842556570c0c5570daeb SHA512 fca3f8635f29182e3ae0fe843a8a53614e4b47e22c11508df3ff7cdbafbb4b5ee0d82d9b3332871f7c1032033b1cad2f67557d7c5f7f7d85e2adadca122965d5 DIST ffmpeg-7.1.1.tar.xz 11019500 BLAKE2B 85d1850bfa39ec28d358b5454daa7c1cf8580af73a6f83e7c070ea94db40ad485adbaeb89e886e0b3908e0f1765bd9f2b40ddd838e33e0a76e5b286917535310 SHA512 42486e485c8fc6f3ec61598a1a7cb40360535762b3fcf28c10d7c6840bc55afe3334434912746e69eef862d3cedf45a02953bde73d38547d2d9a7a38a65e123a DIST inputtino-8065aeb46e5e5980e700d9c1f1be3c4f7ec29630.tar.gz 80517 BLAKE2B 45931bb168aa685c1a7fbd2ec86f50c514aebe327d44e65b8834f064126a01df2ee5256954bf0f83fb6df9efaa700f2a13f1d7503c6f0a93e26472af64231b2d SHA512 c6c0d3f3b1bf1a932d8d61a2afb3f133439f173710236b9beee5dcd49c67ea4473d658ff7eb0cf86e949aa5c24aed7a7305a0f6ffed7c686cde8e616320c2a5f DIST libdisplaydevice-2025.411.113543.tar.gz 121203 BLAKE2B f5cd0c14dd01b3e0af0c33bb94bbcc6fdb367b7582145fc0189f1ce7fd3e013060ef72c028861d56ded8e917c0f16aebdc90372abecff43941cd24d98118488b SHA512 f5cf62f022cd0ba5972ee30f76d1917fc760a12342c473df2c853630317367e7c2ad0c6e63a278c01c5642abf1504a6ed46a6bd0567a0e84f6220b34136b0807 -DIST moonlight-common-c-cbd0ec1b25edfb8ee8645fffa49ff95b6e04c70e.tar.gz 148691 BLAKE2B 2650e48ef5d08b5e4a901e0b394364335503cd717ae75b4ecf5329395f39d3312a9bbfe08137d2b7697f7b1672749d148e100fbaa5c7f87d190ab8157f158639 SHA512 f1d7848138b85a88abf798774f12f6491e19ae5e7699715b0454bfccc184439fba0ebf7e05327fd649e320e5d1ad610c57fe71190f92cf2248c8f974f9d79aaf DIST moonlight-common-c-d3d3e6cf015cd032ce02718246b52aabd1e12294.tar.gz 150660 BLAKE2B a752157fb50e7994f62b83421a56d46e168b542e2a34f99d4b3d2af8c44489a46f4caa4b2938410c48e8c3940348ed4ff02d2f118d66afc276f2c0008f28ab02 SHA512 00d8a80125065db623f1f4a2c1da8df599ec3e0bc90d044af04ce1ccc10af469e9e2f8bd7c397b7f01e118d039be72e5b5e28640d3eab8f0ff5061a9cbec1de9 -DIST moonlight-enet-04e27590670a87a7cd40f5a05cda97467e4e25a3.tar.gz 86434 BLAKE2B 8a5535843e4c650b945882abac1542bf8c79dc420607b88433d239aa5a17380f02e77bb8f1fcbe45dcb8ef894e6c9b4d940f4d3b34b956ce42d86f6a8ca5227a SHA512 6d2e9447e546489365b1fb563ed52664a91981717a3a3a9faa9600ab62be5ac09bd24ee9dd505833d31981ce6222f5ef430268a9f92aa83fa288b5b8d681e2aa DIST moonlight-enet-44c85e16279553d9c052e572bcbfcd745fb74abf.tar.gz 86750 BLAKE2B e378708d7bcc055a1f9f29f07fe974be18ea054b86c5d8c8f578d63ac20143440058498b5adcaedec1ed6914f0a941992c6762fb1798226eac89fbd714d822c7 SHA512 7be5a8080ef3bc897a88a31571d55faaba1ba92c3651ba8d487f46fece0f79832b08c9abc701757b50b4a899ee973ad346f4f0d9f6bc104f34303dd04c09b503 DIST nanors-19f07b513e924e471cadd141943c1ec4adc8d0e0.tar.gz 194695 BLAKE2B 6b9294c602252aa4e78c87786fdf8586886f2ab798f7c9c190e51af8c15ec3e3da34e8f3ebfae104b3a190dcde830159224384653c858a031e5e36ddb5f9a3b0 SHA512 3b6999babc3db7981ffc7db4655cf15d66fcdb12c2b553f6db1b4e8705a16b689997b2038cfa634f979f55370a26f8ff1c36a0d8ace08e3e4192e7f369748c82 -DIST nanors-e9e242e98e27037830490b2a752895ca68f75f8b.tar.gz 194694 BLAKE2B 1effd7c0884ffd38b63d61a7872337797529ef2012f9de0950088a5004cb32a2fb2c14bcab2ec6719968864e5e6b9a67e96afa39466e2071bf4a0cd752ae4b29 SHA512 548be25650619a6c31944cd7a745fd40d5bc5008f2d7f91e0207a10b923764cb88fd2ddcb71eaed7c4863ec89b34d61011b666e292da071ac3b4429e4d7dd027 -DIST sunshine-0.23.1.tar.gz 24503568 BLAKE2B 0c589f38a7d638c49af6385def2676de04af422f85d37228988bd7c822ffc006dbac0a1695e01527ac7a1d5ee28103cff00d78a97d57f61247772a6e6cc1fe18 SHA512 7a9150baf4ecdad1035666993c60744390e227ebeaf467447c53675dc0aecc7031cd9c9b253fbbbbac072f5592c3690c6acfde41f38d441497a17157417f1e16 DIST sunshine-2025.122.141614.tar.gz 24363526 BLAKE2B 129cc51263138d3114129ff5b23c23ea2623b443b10e1678ae31ec6cf25244b5607d797220d17207732bd738acd011418bee4e059ae69f69f9585f81b75bc2e1 SHA512 cdaa24bb38bf7bbbbf8736066290b36a47f1b34ca8864329b4e504a3df27b6d1cd272649643f69de8834b6aa30d11a3260cbb2a9cfa38c46ef9aad7b4dd3ca9e -DIST sunshine-assets-0.23.1.tar.xz 1269348 BLAKE2B 36dd00fbf4bb1bfa213d53fd9dc78ed1fee9e12efcfb138dbd54932c3f19447d832da506175a982be7564408e06b0699b0b7cb4b9811ab81b47e30681c915bab SHA512 9fe9e0ee29864faa0f67dd4d501d116be1476f2c7ec688646b91eb87cb38e9e9d2baecb8335df29075fd3f60bf05b900c20dcb8406306d68a62c30ff55d1b7aa DIST sunshine-assets-2025.122.141614.tar.xz 1333740 BLAKE2B 2593b1af1cf2405dd7bfbcbde09ca361af99db8cafc40e4d938257f96671b070940f8744df7a79a46820bfa56650f80101d5490d1e2008aa918be436de95184e SHA512 cc4dede6c258008585b7dd53df370a5a8f1b6fd9dc109404df766afee6c469c387f41d7f3fae8abffea8917ea93eed7faf95f8e688192ec5c339dbaa198a4191 -DIST wlr-protocols-2b8d43325b7012cc3f9b55c08d26e50e42beac7d.tar.bz2 19708 BLAKE2B fe20f21ee8282d7afcdbb8f3863e50b217fb71e7814f404f288b0d09d30c9e30135769b12342d9e9126a8cb2ab35d6ced0c5562807d274b1d97224f5f3d02511 SHA512 7935b5089820304aa8cb0e1a8f4e0db6ccd5285973a3f3554ccc935dd88e379eb03c3b2dd199da97b6ff8dfbbbf124ca65fb1c12821a168d34bd7e26d8514edb DIST wlr-protocols-ffb89ac790096f6e6272822c8d5df7d0cc6fcdfa.tar.bz2 19875 BLAKE2B 1150fc20a55bf034d622aef1729aebb72677da542fba96a2d732486b87404143406902b63bbcbb6ffc1ec7b4bd8b1916d791c3b8b954e9810ae81358a423a01e SHA512 6712a9b6fbbed588470a9b5e71653d168a63ad285e18eb1ba32c030704475d56a8de0a52b192a379ffa49e79879a5b4976f275ecbf6dd2a96822f7e03b04eeb1 diff --git a/net-misc/sunshine/files/sunshine-0.22.0-nvcodec.patch b/net-misc/sunshine/files/sunshine-0.22.0-nvcodec.patch deleted file mode 100644 index bc7681beedf0..000000000000 --- a/net-misc/sunshine/files/sunshine-0.22.0-nvcodec.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 36b5a18ffd0cdf379b579db91bfaacc46e8c4757 Mon Sep 17 00:00:00 2001 -From: James Le Cuirot <[email protected]> -Date: Sun, 18 Feb 2024 10:25:25 +0000 -Subject: [PATCH] Be less strict about the nv-codec-headers version - -Using the bundled version is awkward. Restrict the major version only -and deal with any issues later. ---- - src/nvenc/nvenc_base.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/nvenc/nvenc_base.cpp b/src/nvenc/nvenc_base.cpp -index b9eba5a..e11c4e2 100644 ---- a/src/nvenc/nvenc_base.cpp -+++ b/src/nvenc/nvenc_base.cpp -@@ -11,7 +11,7 @@ - // - NV_ENC_*_VER definitions where the value inside NVENCAPI_STRUCT_VERSION() was increased - // - Incompatible struct changes in nvEncodeAPI.h (fields removed, semantics changed, etc.) - // - Test both old and new drivers with all supported codecs --#if NVENCAPI_VERSION != MAKE_NVENC_VER(12U, 0U) -+#if NVENCAPI_MAJOR_VERSION != 12 - #error Check and update NVENC code for backwards compatibility! - #endif - --- -2.43.0 - diff --git a/net-misc/sunshine/files/sunshine-0.23.1-amf.patch b/net-misc/sunshine/files/sunshine-0.23.1-amf.patch deleted file mode 100644 index b08fcc1e2515..000000000000 --- a/net-misc/sunshine/files/sunshine-0.23.1-amf.patch +++ /dev/null @@ -1,17 +0,0 @@ -https://bugs.gentoo.org/950686 -https://github.com/LizardByte/Sunshine/commit/7dd836dab63e15db54f18ed2b64cb394aa30c308#diff-6b2f0a449fdefd8930e23ef0dcd752beec69242e1303d77653f047c5e0766385 - -diff --git a/src/config.cpp b/src/config.cpp -index 6a9e1cec..366e2b2a 100644 ---- a/src/config.cpp -+++ b/src/config.cpp -@@ -100,6 +100,9 @@ namespace config { - #define AMF_VIDEO_ENCODER_CABAC 1 - #define AMF_VIDEO_ENCODER_CALV 2 - #else -+ #ifdef _GLIBCXX_USE_C99_INTTYPES -+ #undef _GLIBCXX_USE_C99_INTTYPES -+ #endif - #include <AMF/components/VideoEncoderAV1.h> - #include <AMF/components/VideoEncoderHEVC.h> - #include <AMF/components/VideoEncoderVCE.h> diff --git a/net-misc/sunshine/files/sunshine-boost-1.86.patch b/net-misc/sunshine/files/sunshine-boost-1.86.patch deleted file mode 100644 index 374e8b5ab004..000000000000 --- a/net-misc/sunshine/files/sunshine-boost-1.86.patch +++ /dev/null @@ -1,150 +0,0 @@ -diff --git a/src/platform/common.h b/src/platform/common.h -index 007f7ece..e3827d33 100644 ---- a/src/platform/common.h -+++ b/src/platform/common.h -@@ -23,6 +23,14 @@ extern "C" { - - using namespace std::literals; - -+#if BOOST_VERSION < 108600 -+#include <boost/process.hpp> -+namespace bp = boost::process; -+#else -+#include <boost/process/v1.hpp> -+namespace bp = boost::process::v1; -+#endif -+ - struct sockaddr; - struct AVFrame; - struct AVBufferRef; -@@ -39,7 +47,11 @@ namespace boost { - namespace filesystem { - class path; - } -+#if BOOST_VERSION < 108600 - namespace process { -+#else -+ namespace process::inline v1 { -+#endif - class child; - class group; - template <typename Char> -@@ -585,8 +597,8 @@ namespace platf { - bool - needs_encoder_reenumeration(); - -- boost::process::child -- run_command(bool elevated, bool interactive, const std::string &cmd, boost::filesystem::path &working_dir, const boost::process::environment &env, FILE *file, std::error_code &ec, boost::process::group *group); -+ bp::child -+ run_command(bool elevated, bool interactive, const std::string &cmd, boost::filesystem::path &working_dir, const bp::environment &env, FILE *file, std::error_code &ec, bp::group *group); - - enum class thread_priority_e : int { - low, -diff --git a/src/platform/linux/misc.cpp b/src/platform/linux/misc.cpp -index 980c0804..1eed6c76 100644 ---- a/src/platform/linux/misc.cpp -+++ b/src/platform/linux/misc.cpp -@@ -15,7 +15,6 @@ - // lib includes - #include <arpa/inet.h> - #include <boost/asio/ip/address.hpp> --#include <boost/process.hpp> - #include <dlfcn.h> - #include <fcntl.h> - #include <ifaddrs.h> -@@ -40,7 +39,6 @@ - - using namespace std::literals; - namespace fs = std::filesystem; --namespace bp = boost::process; - - window_system_e window_system; - -@@ -269,7 +267,7 @@ namespace platf { - auto working_dir = boost::filesystem::path(std::getenv("HOME")); - std::string cmd = R"(xdg-open ")" + url + R"(")"; - -- boost::process::environment _env = boost::this_process::environment(); -+ bp::environment _env = boost::this_process::environment(); - std::error_code ec; - auto child = run_command(false, false, cmd, working_dir, _env, nullptr, ec, nullptr); - if (ec) { -diff --git a/src/process.cpp b/src/process.cpp -index 89dc4dc5..678a48f6 100644 ---- a/src/process.cpp -+++ b/src/process.cpp -@@ -40,7 +40,6 @@ - - namespace proc { - using namespace std::literals; -- namespace bp = boost::process; - namespace pt = boost::property_tree; - - proc_t proc; -@@ -131,7 +130,7 @@ namespace proc { - // If the cmd path is not an absolute path, resolve it using our PATH variable - boost::filesystem::path cmd_path(parts.at(0)); - if (!cmd_path.is_absolute()) { -- cmd_path = boost::process::search_path(parts.at(0)); -+ cmd_path = bp::search_path(parts.at(0)); - if (cmd_path.empty()) { - BOOST_LOG(error) << "Unable to find executable ["sv << parts.at(0) << "]. Is it in your PATH?"sv; - return boost::filesystem::path(); -diff --git a/src/process.h b/src/process.h -index c8754992..771af105 100644 ---- a/src/process.h -+++ b/src/process.h -@@ -11,8 +11,6 @@ - #include <optional> - #include <unordered_map> - --#include <boost/process.hpp> -- - #include "config.h" - #include "platform/common.h" - #include "rtsp.h" -@@ -68,7 +66,7 @@ namespace proc { - KITTY_DEFAULT_CONSTR_MOVE_THROW(proc_t) - - proc_t( -- boost::process::environment &&env, -+ bp::environment &&env, - std::vector<ctx_t> &&apps): - _app_id(0), - _env(std::move(env)), -@@ -99,7 +97,7 @@ namespace proc { - private: - int _app_id; - -- boost::process::environment _env; -+ bp::environment _env; - std::vector<ctx_t> _apps; - ctx_t _app; - std::chrono::steady_clock::time_point _app_launch_time; -@@ -107,8 +105,8 @@ namespace proc { - // If no command associated with _app_id, yet it's still running - bool placebo {}; - -- boost::process::child _process; -- boost::process::group _process_group; -+ bp::child _process; -+ bp::group _process_group; - - file_t _pipe; - std::vector<cmd_t>::const_iterator _app_prep_it; -diff --git a/src/system_tray.cpp b/src/system_tray.cpp -index c34c3d75..e684ec83 100644 ---- a/src/system_tray.cpp -+++ b/src/system_tray.cpp -@@ -33,7 +33,11 @@ - // lib includes - #include "tray/tray.h" - #include <boost/filesystem.hpp> -+#if BOOST_VERSION < 108600 - #include <boost/process/environment.hpp> -+#else -+ #include <boost/process/v1/environment.hpp> -+#endif - - // local includes - #include "confighttp.h" diff --git a/net-misc/sunshine/files/sunshine-boost-1.87.patch b/net-misc/sunshine/files/sunshine-boost-1.87.patch deleted file mode 100644 index ba871fcab26b..000000000000 --- a/net-misc/sunshine/files/sunshine-boost-1.87.patch +++ /dev/null @@ -1,100 +0,0 @@ -diff --git a/src/rtsp.cpp b/src/rtsp.cpp -index 0180fbee..da20d134 100644 ---- a/src/rtsp.cpp -+++ b/src/rtsp.cpp -@@ -90,8 +90,8 @@ namespace rtsp_stream { - - class socket_t: public std::enable_shared_from_this<socket_t> { - public: -- socket_t(boost::asio::io_service &ios, std::function<void(tcp::socket &sock, launch_session_t &, msg_t &&)> &&handle_data_fn): -- handle_data_fn { std::move(handle_data_fn) }, sock { ios } {} -+ socket_t(boost::asio::io_context &io_context, std::function<void(tcp::socket &sock, launch_session_t &, msg_t &&)> &&handle_data_fn): -+ handle_data_fn { std::move(handle_data_fn) }, sock { io_context } {} - - /** - * @brief Queues an asynchronous read to begin the next message. -@@ -440,7 +440,7 @@ namespace rtsp_stream { - return -1; - } - -- next_socket = std::make_shared<socket_t>(ios, [this](tcp::socket &sock, launch_session_t &session, msg_t &&msg) { -+ next_socket = std::make_shared<socket_t>(io_context, [this](tcp::socket &sock, launch_session_t &session, msg_t &&msg) { - handle_msg(sock, session, std::move(msg)); - }); - -@@ -454,7 +454,7 @@ namespace rtsp_stream { - template <class T, class X> - void - iterate(std::chrono::duration<T, X> timeout) { -- ios.run_one_for(timeout); -+ io_context.run_one_for(timeout); - } - - void -@@ -499,7 +499,7 @@ namespace rtsp_stream { - } - - // Queue another asynchronous accept for the next incoming connection -- next_socket = std::make_shared<socket_t>(ios, [this](tcp::socket &sock, launch_session_t &session, msg_t &&msg) { -+ next_socket = std::make_shared<socket_t>(io_context, [this](tcp::socket &sock, launch_session_t &session, msg_t &&msg) { - handle_msg(sock, session, std::move(msg)); - }); - acceptor.async_accept(next_socket->sock, [this](const auto &ec) { -@@ -591,8 +591,8 @@ namespace rtsp_stream { - } - } - -- if (all && !ios.stopped()) { -- ios.stop(); -+ if (all && !io_context.stopped()) { -+ io_context.stop(); - } - } - -@@ -627,8 +627,8 @@ namespace rtsp_stream { - std::chrono::steady_clock::time_point raised_timeout; - int _slot_count; - -- boost::asio::io_service ios; -- tcp::acceptor acceptor { ios }; -+ boost::asio::io_context io_context; -+ tcp::acceptor acceptor { io_context }; - - std::shared_ptr<socket_t> next_socket; - }; -diff --git a/src/stream.cpp b/src/stream.cpp -index df5b3d96..0b304e23 100644 ---- a/src/stream.cpp -+++ b/src/stream.cpp -@@ -340,10 +340,10 @@ namespace stream { - std::thread audio_thread; - std::thread control_thread; - -- asio::io_service io; -+ asio::io_context io_context; - -- udp::socket video_sock { io }; -- udp::socket audio_sock { io }; -+ udp::socket video_sock { io_context }; -+ udp::socket audio_sock { io_context }; - - control_server_t control_server; - }; -@@ -1159,7 +1159,7 @@ namespace stream { - auto &message_queue_queue = ctx.message_queue_queue; - auto broadcast_shutdown_event = mail::man->event<bool>(mail::broadcast_shutdown); - -- auto &io = ctx.io; -+ auto &io = ctx.io_context; - - udp::endpoint peer; - -@@ -1664,7 +1664,7 @@ namespace stream { - audio_packets->stop(); - - ctx.message_queue_queue->stop(); -- ctx.io.stop(); -+ ctx.io_context.stop(); - - ctx.video_sock.close(); - ctx.audio_sock.close(); diff --git a/net-misc/sunshine/files/sunshine-cross-cbs.patch b/net-misc/sunshine/files/sunshine-cross-cbs.patch deleted file mode 100644 index e6173597e476..000000000000 --- a/net-misc/sunshine/files/sunshine-cross-cbs.patch +++ /dev/null @@ -1,59 +0,0 @@ -From 40654399bd090dda20750b184eb6b15bc615a5dc Mon Sep 17 00:00:00 2001 -From: James Le Cuirot <[email protected]> -Date: Sun, 25 Feb 2024 16:24:25 +0000 -Subject: [PATCH] Fix cross-compiling and don't treat x86 as the default case - -If you set arch-specific CFLAGS, then ffmpeg's configure script may -fail when it tries to use these flags against the build host's compiler. - -Also use CMAKE_SYSTEM_PROCESSOR to set up cross-compiling without -relying on any custom variables. ffmpeg normalises its --arch option and -will accept just about any string that you'll likely throw at it. - -diff --git a/cmake/ffmpeg_cbs.cmake b/cmake/ffmpeg_cbs.cmake -index 573bec0..4a75e1a 100644 ---- a/cmake/ffmpeg_cbs.cmake -+++ b/cmake/ffmpeg_cbs.cmake -@@ -30,23 +30,30 @@ if (WIN32) - set(LEADING_SH_COMMAND sh) - endif () - --if (CROSS_COMPILE_ARM) -- set(FFMPEG_EXTRA_CONFIGURE -- --arch=aarch64 -- --enable-cross-compile) -+string(TOLOWER ${CMAKE_SYSTEM_PROCESSOR} arch) -+ -+if (${arch} STREQUAL "aarch64" OR ${arch} STREQUAL "arm64") - set(CBS_ARCH_PATH arm) --elseif (CROSS_COMPILE_PPC) -- set(FFMPEG_EXTRA_CONFIGURE -- --arch=powerpc64le -- --enable-cross-compile) -+elseif (${arch} STREQUAL "ppc64le") - set(CBS_ARCH_PATH ppc) --else () -+elseif (${arch} STREQUAL "amd64" OR ${arch} STREQUAL "x86_64") - set(CBS_ARCH_PATH x86) -+else () -+ message(FATAL_ERROR "Unsupported system processor:" ${CMAKE_SYSTEM_PROCESSOR}) -+endif () -+ -+if (CMAKE_CROSSCOMPILING) -+ set(FFMPEG_EXTRA_CONFIGURE --arch=${arch} --enable-cross-compile) - endif () - - # The generated config.h needs to have `CONFIG_CBS_` flags enabled (from `--enable-bsfs`) - execute_process( - COMMAND ${LEADING_SH_COMMAND} ./configure -+ --cc=${CMAKE_C_COMPILER} -+ --cxx=${CMAKE_CXX_COMPILER} -+ --ar=${CMAKE_AR} -+ --ranlib=${CMAKE_RANLIB} -+ --optflags=${CMAKE_C_FLAGS} - --disable-all - --disable-autodetect - --disable-iconv --- -2.43.2 - diff --git a/net-misc/sunshine/files/sunshine-custom-ffmpeg.patch b/net-misc/sunshine/files/sunshine-custom-ffmpeg.patch deleted file mode 100644 index 172ae3ff7d59..000000000000 --- a/net-misc/sunshine/files/sunshine-custom-ffmpeg.patch +++ /dev/null @@ -1,162 +0,0 @@ -From 20c589554a1b10dad206619e11d143c420aa6c82 Mon Sep 17 00:00:00 2001 -From: James Le Cuirot <[email protected]> -Date: Mon, 1 Jan 2024 11:17:08 +0000 -Subject: [PATCH 1/2] Allow a custom FFmpeg build to be provided using CMake - options - ---- - cmake/dependencies/common.cmake | 90 ++++++++++++++++++--------------- - 1 file changed, 50 insertions(+), 40 deletions(-) - -diff --git a/cmake/dependencies/common.cmake b/cmake/dependencies/common.cmake -index 29bed10..d43a6e0 100644 ---- a/cmake/dependencies/common.cmake -+++ b/cmake/dependencies/common.cmake -@@ -20,53 +20,63 @@ pkg_check_modules(MINIUPNP miniupnpc REQUIRED) - include_directories(SYSTEM ${MINIUPNP_INCLUDE_DIRS}) - - # ffmpeg pre-compiled binaries --if(WIN32) -- if(NOT CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64") -- message(FATAL_ERROR "Unsupported system processor:" ${CMAKE_SYSTEM_PROCESSOR}) -+if(NOT DEFINED FFMPEG_PREPARED_BINARIES) -+ if(WIN32) -+ if(NOT CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64") -+ message(FATAL_ERROR "Unsupported system processor:" ${CMAKE_SYSTEM_PROCESSOR}) -+ endif() -+ set(FFMPEG_PLATFORM_LIBRARIES mfplat ole32 strmiids mfuuid vpl) -+ set(FFMPEG_PREPARED_BINARIES "${CMAKE_SOURCE_DIR}/third-party/build-deps/ffmpeg/windows-x86_64") -+ elseif(APPLE) -+ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") -+ set(FFMPEG_PREPARED_BINARIES "${CMAKE_SOURCE_DIR}/third-party/build-deps/ffmpeg/macos-x86_64") -+ elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") -+ set(FFMPEG_PREPARED_BINARIES "${CMAKE_SOURCE_DIR}/third-party/build-deps/ffmpeg/macos-aarch64") -+ elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "powerpc") -+ message(FATAL_ERROR "PowerPC is not supported on macOS") -+ else() -+ message(FATAL_ERROR "Unsupported system processor:" ${CMAKE_SYSTEM_PROCESSOR}) -+ endif() -+ elseif(UNIX) -+ set(FFMPEG_PLATFORM_LIBRARIES va va-drm va-x11 vdpau X11) -+ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") -+ list(APPEND FFMPEG_PLATFORM_LIBRARIES mfx) -+ set(FFMPEG_PREPARED_BINARIES "${CMAKE_SOURCE_DIR}/third-party/build-deps/ffmpeg/linux-x86_64") -+ set(CPACK_DEB_PLATFORM_PACKAGE_DEPENDS "libmfx1,") -+ set(CPACK_RPM_PLATFORM_PACKAGE_REQUIRES "intel-mediasdk >= 22.3.0,") -+ elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") -+ set(FFMPEG_PREPARED_BINARIES "${CMAKE_SOURCE_DIR}/third-party/build-deps/ffmpeg/linux-aarch64") -+ elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "ppc64le" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "ppc64") -+ set(FFMPEG_PREPARED_BINARIES "${CMAKE_SOURCE_DIR}/third-party/build-deps/ffmpeg/linux-powerpc64le") -+ else() -+ message(FATAL_ERROR "Unsupported system processor:" ${CMAKE_SYSTEM_PROCESSOR}) -+ endif() - endif() -- set(FFMPEG_PLATFORM_LIBRARIES mfplat ole32 strmiids mfuuid vpl) -- set(FFMPEG_PREPARED_BINARIES "${CMAKE_SOURCE_DIR}/third-party/build-deps/ffmpeg/windows-x86_64") --elseif(APPLE) -- if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") -- set(FFMPEG_PREPARED_BINARIES "${CMAKE_SOURCE_DIR}/third-party/build-deps/ffmpeg/macos-x86_64") -- elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") -- set(FFMPEG_PREPARED_BINARIES "${CMAKE_SOURCE_DIR}/third-party/build-deps/ffmpeg/macos-aarch64") -- elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "powerpc") -- message(FATAL_ERROR "PowerPC is not supported on macOS") -- else() -- message(FATAL_ERROR "Unsupported system processor:" ${CMAKE_SYSTEM_PROCESSOR}) -+ if(EXISTS "${FFMPEG_PREPARED_BINARIES}/lib/libhdr10plus.a") -+ set(HDR10_PLUS_LIBRARY -+ "${FFMPEG_PREPARED_BINARIES}/lib/libhdr10plus.a") - endif() --elseif(UNIX) -- set(FFMPEG_PLATFORM_LIBRARIES va va-drm va-x11 vdpau X11) -- if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") -- list(APPEND FFMPEG_PLATFORM_LIBRARIES mfx) -- set(FFMPEG_PREPARED_BINARIES "${CMAKE_SOURCE_DIR}/third-party/build-deps/ffmpeg/linux-x86_64") -- set(CPACK_DEB_PLATFORM_PACKAGE_DEPENDS "libmfx1,") -- set(CPACK_RPM_PLATFORM_PACKAGE_REQUIRES "intel-mediasdk >= 22.3.0,") -- elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") -- set(FFMPEG_PREPARED_BINARIES "${CMAKE_SOURCE_DIR}/third-party/build-deps/ffmpeg/linux-aarch64") -- elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "ppc64le" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "ppc64") -- set(FFMPEG_PREPARED_BINARIES "${CMAKE_SOURCE_DIR}/third-party/build-deps/ffmpeg/linux-powerpc64le") -- else() -- message(FATAL_ERROR "Unsupported system processor:" ${CMAKE_SYSTEM_PROCESSOR}) -- endif() --endif() --set(FFMPEG_INCLUDE_DIRS -- "${FFMPEG_PREPARED_BINARIES}/include") --if(EXISTS "${FFMPEG_PREPARED_BINARIES}/lib/libhdr10plus.a") -- set(HDR10_PLUS_LIBRARY -- "${FFMPEG_PREPARED_BINARIES}/lib/libhdr10plus.a") --endif() --set(FFMPEG_LIBRARIES -+ set(FFMPEG_LIBRARIES -+ "${FFMPEG_PREPARED_BINARIES}/lib/libavcodec.a" -+ "${FFMPEG_PREPARED_BINARIES}/lib/libavutil.a" -+ "${FFMPEG_PREPARED_BINARIES}/lib/libcbs.a" -+ "${FFMPEG_PREPARED_BINARIES}/lib/libSvtAv1Enc.a" -+ "${FFMPEG_PREPARED_BINARIES}/lib/libswscale.a" -+ "${FFMPEG_PREPARED_BINARIES}/lib/libx264.a" -+ "${FFMPEG_PREPARED_BINARIES}/lib/libx265.a" -+ ${HDR10_PLUS_LIBRARY} -+ ${FFMPEG_PLATFORM_LIBRARIES}) -+else() -+ set(FFMPEG_LIBRARIES - "${FFMPEG_PREPARED_BINARIES}/lib/libavcodec.a" - "${FFMPEG_PREPARED_BINARIES}/lib/libavutil.a" - "${FFMPEG_PREPARED_BINARIES}/lib/libcbs.a" -- "${FFMPEG_PREPARED_BINARIES}/lib/libSvtAv1Enc.a" - "${FFMPEG_PREPARED_BINARIES}/lib/libswscale.a" -- "${FFMPEG_PREPARED_BINARIES}/lib/libx264.a" -- "${FFMPEG_PREPARED_BINARIES}/lib/libx265.a" -- ${HDR10_PLUS_LIBRARY} - ${FFMPEG_PLATFORM_LIBRARIES}) -+endif() -+ -+set(FFMPEG_INCLUDE_DIRS -+ "${FFMPEG_PREPARED_BINARIES}/include") - - # platform specific dependencies - if(WIN32) --- -2.43.2 - -From 53cd96560114dd700c943db63723e340100446a3 Mon Sep 17 00:00:00 2001 -From: James Le Cuirot <[email protected]> -Date: Mon, 1 Jan 2024 13:34:20 +0000 -Subject: [PATCH 2/2] Move numa from general PLATFORM_LIBRARIES to - FFMPEG_PLATFORM_LIBRARIES - -It's only needed if libx265 was built with NUMA support. This support -may be disabled in a custom FFmpeg build. ---- - cmake/compile_definitions/linux.cmake | 1 - - cmake/dependencies/common.cmake | 2 +- - 2 files changed, 1 insertion(+), 2 deletions(-) - -diff --git a/cmake/compile_definitions/linux.cmake b/cmake/compile_definitions/linux.cmake -index b6d1990..ec668f7 100644 ---- a/cmake/compile_definitions/linux.cmake -+++ b/cmake/compile_definitions/linux.cmake -@@ -252,7 +252,6 @@ list(APPEND PLATFORM_TARGET_FILES - list(APPEND PLATFORM_LIBRARIES - Boost::dynamic_linking - dl -- numa - pulse - pulse-simple) - -diff --git a/cmake/dependencies/common.cmake b/cmake/dependencies/common.cmake -index d43a6e0..bddee03 100644 ---- a/cmake/dependencies/common.cmake -+++ b/cmake/dependencies/common.cmake -@@ -38,7 +38,7 @@ if(NOT DEFINED FFMPEG_PREPARED_BINARIES) - message(FATAL_ERROR "Unsupported system processor:" ${CMAKE_SYSTEM_PROCESSOR}) - endif() - elseif(UNIX) -- set(FFMPEG_PLATFORM_LIBRARIES va va-drm va-x11 vdpau X11) -+ set(FFMPEG_PLATFORM_LIBRARIES numa va va-drm va-x11 vdpau X11) - if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") - list(APPEND FFMPEG_PLATFORM_LIBRARIES mfx) - set(FFMPEG_PREPARED_BINARIES "${CMAKE_SOURCE_DIR}/third-party/build-deps/ffmpeg/linux-x86_64") --- -2.43.2 - diff --git a/net-misc/sunshine/files/sunshine-find-npm.patch b/net-misc/sunshine/files/sunshine-find-npm.patch deleted file mode 100644 index ab25b4527b78..000000000000 --- a/net-misc/sunshine/files/sunshine-find-npm.patch +++ /dev/null @@ -1,92 +0,0 @@ -From 66740900522f42564a2b0bd4e8a435ed24a61725 Mon Sep 17 00:00:00 2001 -From: James Le Cuirot <[email protected]> -Date: Sun, 12 May 2024 17:26:14 +0100 -Subject: [PATCH] Unify asset building and use find_program to find NPM (#2522) - ---- - cmake/targets/common.cmake | 33 +++++++++++++++++++++------------ - cmake/targets/unix.cmake | 6 ------ - cmake/targets/windows.cmake | 6 ------ - 3 files changed, 21 insertions(+), 24 deletions(-) - -diff --git a/cmake/targets/common.cmake b/cmake/targets/common.cmake -index ee79528c..941ef0b7 100644 ---- a/cmake/targets/common.cmake -+++ b/cmake/targets/common.cmake -@@ -3,18 +3,6 @@ - - add_executable(sunshine ${SUNSHINE_TARGET_FILES}) - --# Homebrew build fails the vite build if we set these environment variables --# this block must be before the platform specific code --if(${SUNSHINE_BUILD_HOMEBREW}) -- set(NPM_SOURCE_ASSETS_DIR "") -- set(NPM_ASSETS_DIR "") -- set(NPM_BUILD_HOMEBREW "true") --else() -- set(NPM_SOURCE_ASSETS_DIR ${SUNSHINE_SOURCE_ASSETS_DIR}) -- set(NPM_ASSETS_DIR ${CMAKE_BINARY_DIR}) -- set(NPM_BUILD_HOMEBREW "") --endif() -- - # platform specific target definitions - if(WIN32) - include(${CMAKE_MODULE_PATH}/targets/windows.cmake) -@@ -49,6 +37,27 @@ endif() - - target_compile_options(sunshine PRIVATE $<$<COMPILE_LANGUAGE:CXX>:${SUNSHINE_COMPILE_OPTIONS}>;$<$<COMPILE_LANGUAGE:CUDA>:${SUNSHINE_COMPILE_OPTIONS_CUDA};-std=c++17>) # cmake-lint: disable=C0301 - -+# Homebrew build fails the vite build if we set these environment variables -+if(${SUNSHINE_BUILD_HOMEBREW}) -+ set(NPM_SOURCE_ASSETS_DIR "") -+ set(NPM_ASSETS_DIR "") -+ set(NPM_BUILD_HOMEBREW "true") -+else() -+ set(NPM_SOURCE_ASSETS_DIR ${SUNSHINE_SOURCE_ASSETS_DIR}) -+ set(NPM_ASSETS_DIR ${CMAKE_BINARY_DIR}) -+ set(NPM_BUILD_HOMEBREW "") -+endif() -+ -+#WebUI build -+find_program(NPM npm REQUIRED) -+add_custom_target(web-ui ALL -+ WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" -+ COMMENT "Installing NPM Dependencies and Building the Web UI" -+ COMMAND "$<$<BOOL:${WIN32}>:cmd;/C>" "${NPM}" install -+ COMMAND "${CMAKE_COMMAND}" -E env "SUNSHINE_BUILD_HOMEBREW=${NPM_BUILD_HOMEBREW}" "SUNSHINE_SOURCE_ASSETS_DIR=${NPM_SOURCE_ASSETS_DIR}" "SUNSHINE_ASSETS_DIR=${NPM_ASSETS_DIR}" "$<$<BOOL:${WIN32}>:cmd;/C>" "${NPM}" run build # cmake-lint: disable=C0301 -+ COMMAND_EXPAND_LISTS -+ VERBATIM) -+ - # tests - if(BUILD_TESTS) - add_subdirectory(tests) -diff --git a/cmake/targets/unix.cmake b/cmake/targets/unix.cmake -index 5527a987..047a0b3d 100644 ---- a/cmake/targets/unix.cmake -+++ b/cmake/targets/unix.cmake -@@ -1,8 +1,2 @@ - # unix specific target definitions - # put anything here that applies to both linux and macos -- --#WebUI build --add_custom_target(web-ui ALL -- WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" -- COMMENT "Installing NPM Dependencies and Building the Web UI" -- COMMAND sh -c \"npm install && SUNSHINE_BUILD_HOMEBREW=${NPM_BUILD_HOMEBREW} SUNSHINE_SOURCE_ASSETS_DIR=${NPM_SOURCE_ASSETS_DIR} SUNSHINE_ASSETS_DIR=${NPM_ASSETS_DIR} npm run build\") # cmake-lint: disable=C0301 -diff --git a/cmake/targets/windows.cmake b/cmake/targets/windows.cmake -index e429feaa..341d7c2e 100644 ---- a/cmake/targets/windows.cmake -+++ b/cmake/targets/windows.cmake -@@ -4,9 +4,3 @@ set(CMAKE_FIND_LIBRARY_SUFFIXES ".dll") - find_library(ZLIB ZLIB1) - list(APPEND SUNSHINE_EXTERNAL_LIBRARIES - Wtsapi32.lib) -- --#WebUI build --add_custom_target(web-ui ALL -- WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" -- COMMENT "Installing NPM Dependencies and Building the Web UI" -- COMMAND cmd /C "npm install && set \"SUNSHINE_SOURCE_ASSETS_DIR=${NPM_SOURCE_ASSETS_DIR}\" && set \"SUNSHINE_ASSETS_DIR=${NPM_ASSETS_DIR}\" && npm run build") # cmake-lint: disable=C0301 --- -2.44.0 - diff --git a/net-misc/sunshine/files/sunshine-miniupnpc.patch b/net-misc/sunshine/files/sunshine-miniupnpc.patch deleted file mode 100644 index 3847724eedc5..000000000000 --- a/net-misc/sunshine/files/sunshine-miniupnpc.patch +++ /dev/null @@ -1,43 +0,0 @@ -https://bugs.gentoo.org/934173 -https://github.com/LizardByte/Sunshine/pull/2746 - -From 850f656676d30ffb47028e865982e56be161d179 Mon Sep 17 00:00:00 2001 -From: James Le Cuirot <[email protected]> -Date: Sun, 23 Jun 2024 16:21:23 +0100 -Subject: [PATCH] fix(upnp): Support miniupnpc API version 18 (release 2.2.8) - ---- - src/upnp.cpp | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/src/upnp.cpp b/src/upnp.cpp -index 2743ebae..e6ec057b 100644 ---- a/src/upnp.cpp -+++ b/src/upnp.cpp -@@ -109,7 +109,11 @@ namespace upnp { - IGDdatas data; - urls_t urls; - std::array<char, INET6_ADDRESS_STRLEN> lan_addr; -+#if (MINIUPNPC_API_VERSION >= 18) -+ auto status = UPNP_GetValidIGD(device.get(), &urls.el, &data, lan_addr.data(), lan_addr.size(), nullptr, 0); -+#else - auto status = UPNP_GetValidIGD(device.get(), &urls.el, &data, lan_addr.data(), lan_addr.size()); -+#endif - if (status != 1 && status != 2) { - BOOST_LOG(debug) << "No valid IPv6 IGD: "sv << status_string(status); - return false; -@@ -331,7 +335,11 @@ namespace upnp { - std::array<char, INET6_ADDRESS_STRLEN> lan_addr; - - urls_t urls; -+#if (MINIUPNPC_API_VERSION >= 18) -+ auto status = UPNP_GetValidIGD(device.get(), &urls.el, &data, lan_addr.data(), lan_addr.size(), nullptr, 0); -+#else - auto status = UPNP_GetValidIGD(device.get(), &urls.el, &data, lan_addr.data(), lan_addr.size()); -+#endif - if (status != 1 && status != 2) { - BOOST_LOG(error) << status_string(status); - mapped = false; --- -2.45.2 - diff --git a/net-misc/sunshine/sunshine-0.23.1.ebuild b/net-misc/sunshine/sunshine-0.23.1.ebuild deleted file mode 100644 index f801bd7db728..000000000000 --- a/net-misc/sunshine/sunshine-0.23.1.ebuild +++ /dev/null @@ -1,381 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# These don't necessarily have to align with the upstream release. -BUILD_DEPS_COMMIT="2aafe061cd52a944cb3b5f86d1f25e9ad2a19bec" -ENET_COMMIT="04e27590670a87a7cd40f5a05cda97467e4e25a3" -MOONLIGHT_COMMIT="cbd0ec1b25edfb8ee8645fffa49ff95b6e04c70e" -NANORS_COMMIT="e9e242e98e27037830490b2a752895ca68f75f8b" -TRAY_COMMIT="4d8b798cafdd11285af9409c16b5f792968e0045" -SWS_COMMIT="27b41f5ee154cca0fce4fe2955dd886d04e3a4ed" -WLRP_COMMIT="2b8d43325b7012cc3f9b55c08d26e50e42beac7d" -FFMPEG_VERSION="6.1.1" - -# To make the assets tarball: -# PV= -# EGIT_OVERRIDE_COMMIT_LIZARDBYTE_SUNSHINE=v$PV ebuild sunshine-9999.ebuild clean compile -# XZ_OPT=-9 tar --xform="s:^:Sunshine-$PV/:" -Jcf /var/cache/distfiles/sunshine-assets-$PV.tar.xz -C /var/tmp/portage/net-misc/sunshine-9999/work/sunshine-9999 assets/ - -if [[ ${PV} = 9999* ]]; then - inherit git-r3 -else - SRC_URI=" - https://github.com/LizardByte/Sunshine/archive/refs/tags/v${PV}.tar.gz - -> ${P}.tar.gz - https://github.com/LizardByte/build-deps/archive/${BUILD_DEPS_COMMIT}.tar.gz - -> LizardByte-build-deps-${BUILD_DEPS_COMMIT}.tar.gz - https://github.com/cgutman/enet/archive/${ENET_COMMIT}.tar.gz - -> moonlight-enet-${ENET_COMMIT}.tar.gz - https://github.com/moonlight-stream/moonlight-common-c/archive/${MOONLIGHT_COMMIT}.tar.gz - -> moonlight-common-c-${MOONLIGHT_COMMIT}.tar.gz - https://github.com/sleepybishop/nanors/archive/${NANORS_COMMIT}.tar.gz - -> nanors-${NANORS_COMMIT}.tar.gz - https://github.com/LizardByte/tray/archive/${TRAY_COMMIT}.tar.gz - -> LizardByte-tray-${TRAY_COMMIT}.tar.gz - https://gitlab.com/eidheim/Simple-Web-Server/-/archive/${SWS_COMMIT}/Simple-Web-Server-${SWS_COMMIT}.tar.bz2 - https://gitlab.freedesktop.org/wlroots/wlr-protocols/-/archive/${WLRP_COMMIT}/wlr-protocols-${WLRP_COMMIT}.tar.bz2 - https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.xz - https://dev.gentoo.org/~chewi/distfiles/${PN}-assets-${PV}.tar.xz - " - KEYWORDS="~amd64 ~arm64" - S="${WORKDIR}/Sunshine-${PV}" -fi - -inherit cmake fcaps flag-o-matic systemd toolchain-funcs udev xdg - -DESCRIPTION="Self-hosted game stream host for Moonlight" -HOMEPAGE="https://github.com/LizardByte/Sunshine" -LICENSE="GPL-3" -SLOT="0" -IUSE="cuda debug libdrm svt-av1 trayicon vaapi wayland X x264 x265" - -# Strings for CPU features in the useflag[:configure_option] form -# if :configure_option isn't set, it will use 'useflag' as configure option -ARM_CPU_FEATURES=( - cpu_flags_arm_thumb:armv5te - cpu_flags_arm_v6:armv6 - cpu_flags_arm_thumb2:armv6t2 - cpu_flags_arm_neon:neon - cpu_flags_arm_vfp:vfp - cpu_flags_arm_vfpv3:vfpv3 - cpu_flags_arm_v8:armv8 - cpu_flags_arm_asimddp:dotprod - cpu_flags_arm_i8mm:i8mm -) -ARM_CPU_REQUIRED_USE=" - arm64? ( cpu_flags_arm_v8 ) - cpu_flags_arm_v8? ( cpu_flags_arm_vfpv3 cpu_flags_arm_neon ) - cpu_flags_arm_neon? ( - cpu_flags_arm_vfp - arm? ( cpu_flags_arm_thumb2 ) - ) - cpu_flags_arm_vfpv3? ( cpu_flags_arm_vfp ) - cpu_flags_arm_thumb2? ( cpu_flags_arm_v6 ) - cpu_flags_arm_v6? ( - arm? ( cpu_flags_arm_thumb ) - ) -" -PPC_CPU_FEATURES=( cpu_flags_ppc_altivec:altivec cpu_flags_ppc_vsx:vsx cpu_flags_ppc_vsx2:power8 ) -PPC_CPU_REQUIRED_USE=" - cpu_flags_ppc_vsx? ( cpu_flags_ppc_altivec ) - cpu_flags_ppc_vsx2? ( cpu_flags_ppc_vsx ) -" -X86_CPU_FEATURES_RAW=( 3dnow:amd3dnow 3dnowext:amd3dnowext aes:aesni avx:avx avx2:avx2 fma3:fma3 fma4:fma4 mmx:mmx - mmxext:mmxext sse:sse sse2:sse2 sse3:sse3 ssse3:ssse3 sse4_1:sse4 sse4_2:sse42 xop:xop ) -X86_CPU_FEATURES=( ${X86_CPU_FEATURES_RAW[@]/#/cpu_flags_x86_} ) -X86_CPU_REQUIRED_USE=" - cpu_flags_x86_avx2? ( cpu_flags_x86_avx ) - cpu_flags_x86_fma4? ( cpu_flags_x86_avx ) - cpu_flags_x86_fma3? ( cpu_flags_x86_avx ) - cpu_flags_x86_xop? ( cpu_flags_x86_avx ) - cpu_flags_x86_avx? ( cpu_flags_x86_sse4_2 ) - cpu_flags_x86_aes? ( cpu_flags_x86_sse4_2 ) - cpu_flags_x86_sse4_2? ( cpu_flags_x86_sse4_1 ) - cpu_flags_x86_sse4_1? ( cpu_flags_x86_ssse3 ) - cpu_flags_x86_ssse3? ( cpu_flags_x86_sse3 ) - cpu_flags_x86_sse3? ( cpu_flags_x86_sse2 ) - cpu_flags_x86_sse2? ( cpu_flags_x86_sse ) - cpu_flags_x86_sse? ( cpu_flags_x86_mmxext ) - cpu_flags_x86_mmxext? ( cpu_flags_x86_mmx ) - cpu_flags_x86_3dnowext? ( cpu_flags_x86_3dnow ) - cpu_flags_x86_3dnow? ( cpu_flags_x86_mmx ) -" - -CPU_FEATURES_MAP=( - ${ARM_CPU_FEATURES[@]} - ${PPC_CPU_FEATURES[@]} - ${X86_CPU_FEATURES[@]} -) -IUSE="${IUSE} - ${CPU_FEATURES_MAP[@]%:*}" - -CPU_REQUIRED_USE=" - ${ARM_CPU_REQUIRED_USE} - ${PPC_CPU_REQUIRED_USE} - ${X86_CPU_REQUIRED_USE} -" - -REQUIRED_USE=" - ${CPU_REQUIRED_USE} - || ( cuda libdrm wayland X ) -" - -CDEPEND=" - dev-libs/boost:=[nls] - dev-libs/libevdev - dev-libs/openssl:= - media-libs/opus - net-libs/miniupnpc:= - net-misc/curl - || ( - media-libs/libpulse - media-sound/apulse[sdk] - ) - libdrm? ( - sys-libs/libcap - x11-libs/libdrm - ) - svt-av1? ( <media-libs/svt-av1-3:= ) - trayicon? ( - dev-libs/libayatana-appindicator - x11-libs/libnotify - ) - vaapi? ( media-libs/libva:=[wayland?,X?] ) - wayland? ( dev-libs/wayland ) - X? ( x11-libs/libX11 ) - x264? ( media-libs/x264:= ) - x265? ( media-libs/x265:= ) -" - -RDEPEND=" - ${CDEPEND} - media-libs/mesa[vaapi?] - X? ( - x11-libs/libxcb - x11-libs/libXfixes - x11-libs/libXrandr - x11-libs/libXtst - ) -" - -DEPEND=" - ${CDEPEND} - media-libs/amf-headers - =media-libs/nv-codec-headers-12* - wayland? ( dev-libs/wayland-protocols ) -" - -BDEPEND=" - net-libs/nodejs[npm] - virtual/pkgconfig - cpu_flags_x86_mmx? ( || ( >=dev-lang/nasm-2.13 >=dev-lang/yasm-1.3 ) ) - cuda? ( dev-util/nvidia-cuda-toolkit ) - wayland? ( dev-util/wayland-scanner ) -" - -PATCHES=( - "${FILESDIR}"/${PN}-custom-ffmpeg.patch - "${FILESDIR}"/${PN}-0.22.0-nvcodec.patch - "${FILESDIR}"/${PN}-0.23.1-amf.patch - "${FILESDIR}"/${PN}-find-npm.patch - "${FILESDIR}"/${PN}-miniupnpc.patch - "${FILESDIR}"/${PN}-boost-1.86.patch - "${FILESDIR}"/${PN}-boost-1.87.patch -) - -# Make this mess a bit simpler. -CMAKE_IN_SOURCE_BUILD=1 - -# Make npm behave. -export npm_config_audit=false -export npm_config_color=false -export npm_config_foreground_scripts=true -export npm_config_loglevel=verbose -export npm_config_optional=false -export npm_config_progress=false -export npm_config_save=false - -src_unpack() { - if [[ ${PV} = 9999* ]]; then - local EGIT_REPO_URI="https://github.com/LizardByte/build-deps.git" - local EGIT_SUBMODULES=( '-*' ) - local EGIT_CHECKOUT_DIR=${WORKDIR}/build-deps - git-r3_src_unpack - - # Use upstream server like our ffmpeg package does, not GitHub. - local EGIT_REPO_URI="https://git.ffmpeg.org/ffmpeg.git" - local EGIT_SUBMODULES=( '-*' ) - local EGIT_CHECKOUT_DIR=${EGIT_CHECKOUT_DIR}/ffmpeg_sources/ffmpeg - local EGIT_COMMIT=$(git --git-dir=build-deps/.git rev-parse HEAD:ffmpeg_sources/ffmpeg) - local EGIT_BRANCH=release/$(ver_cut 1-2 ${FFMPEG_VERSION}) - git-r3_src_unpack - - local EGIT_REPO_URI="https://github.com/LizardByte/Sunshine.git" - local EGIT_SUBMODULES=( - third-party/{moonlight-common-c{,/enet},nanors,tray,Simple-Web-Server,wlr-protocols} - ) - unset EGIT_CHECKOUT_DIR EGIT_COMMIT EGIT_BRANCH - git-r3_src_unpack - - # This downloads things so must go in src_unpack to avoid the sandbox. - cd "${S}" || die - npm install || die - else - default - ln -snf build-deps-${BUILD_DEPS_COMMIT} build-deps || die - find moonlight-common-c-${MOONLIGHT_COMMIT} "${S}"/third-party build-deps/ffmpeg_sources \ - -mindepth 1 -type d -empty -delete || die - ln -snf ../enet-${ENET_COMMIT} moonlight-common-c-${MOONLIGHT_COMMIT}/enet || die - ln -snf ../../moonlight-common-c-${MOONLIGHT_COMMIT} "${S}"/third-party/moonlight-common-c || die - ln -snf ../../nanors-${NANORS_COMMIT} "${S}"/third-party/nanors || die - ln -snf ../../tray-${TRAY_COMMIT} "${S}"/third-party/tray || die - ln -snf ../../Simple-Web-Server-${SWS_COMMIT} "${S}"/third-party/Simple-Web-Server || die - ln -snf ../../wlr-protocols-${WLRP_COMMIT} "${S}"/third-party/wlr-protocols || die - ln -snf ../../ffmpeg-${FFMPEG_VERSION} build-deps/ffmpeg_sources/ffmpeg || die - fi -} - -src_prepare() { - # Apply CBS patch. - cd "${WORKDIR}"/build-deps || die - eapply "${FILESDIR}"/${PN}-cross-cbs.patch - - # Apply general ffmpeg patches. - cd "${WORKDIR}"/build-deps/ffmpeg_sources/ffmpeg || die - eapply "${WORKDIR}"/build-deps/ffmpeg_patches/ffmpeg/*.patch - - # Copy ffmpeg sources because CBS build applies extra patches. - cp -a ./ "${WORKDIR}"/ffmpeg-build || die - - cd "${S}" || die - CMAKE_USE_DIR="${WORKDIR}/build-deps" cmake_src_prepare - default_src_prepare() { :; } # Hack to avoid double patching! :( - CMAKE_USE_DIR="${S}" cmake_src_prepare -} - -src_configure() { - local myconf=( - --prefix="${S}"/third-party/ffmpeg - --cc="$(tc-getCC)" - --cxx="$(tc-getCXX)" - --ar="$(tc-getAR)" - --nm="$(tc-getNM)" - --strip="$(tc-getSTRIP)" - --ranlib="$(tc-getRANLIB)" - --pkg-config="$(tc-getPKG_CONFIG)" - --optflags="${CFLAGS}" - --disable-all - --disable-autodetect - --disable-error-resilience - --disable-everything - --disable-faan - --disable-iconv - --disable-network - --disable-optimizations - --disable-stripping - --enable-amf - --enable-avcodec - --enable-ffnvcodec - --enable-gpl - --enable-nvenc - --enable-static - --enable-swscale - --enable-v4l2_m2m - $(use_enable cuda) - $(use_enable cuda cuda_llvm) - $(use_enable svt-av1 libsvtav1) - $(use_enable vaapi) - $(use_enable x264 libx264) - $(use_enable x265 libx265) - $(usex svt-av1 --enable-encoder=libsvtav1 "") - $(usex vaapi --enable-encoder=h264_vaapi,hevc_vaapi,av1_vaapi "") - $(usex x264 --enable-encoder=libx264 "") - $(usex x265 --enable-encoder=libx265 "") - --enable-encoder=h264_amf,hevc_amf,av1_amf - --enable-encoder=h264_nvenc,hevc_nvenc,av1_nvenc - --enable-encoder=h264_v4l2m2m,hevc_v4l2m2m - ) - - # CPU features - for i in "${CPU_FEATURES_MAP[@]}" ; do - use ${i%:*} || myconf+=( --disable-${i#*:} ) - done - - # Try to get cpu type based on CFLAGS. - # Bug #172723 - # We need to do this so that features of that CPU will be better used - # If they contain an unknown CPU it will not hurt since ffmpeg's configure - # will just ignore it. - for i in $(get-flag mcpu) $(get-flag march) ; do - [[ ${i} = native ]] && i="host" # bug #273421 - myconf+=( --cpu=${i} ) - break - done - - # cross compile support - if tc-is-cross-compiler ; then - myconf+=( --enable-cross-compile --arch=$(tc-arch-kernel) --cross-prefix=${CHOST}- --host-cc="$(tc-getBUILD_CC)" ) - case ${CHOST} in - *mingw32*) - myconf+=( --target-os=mingw32 ) - ;; - *linux*) - myconf+=( --target-os=linux ) - ;; - esac - fi - - cd "${WORKDIR}"/ffmpeg-build || die - echo ./configure "${myconf[@]}" - ./configure "${myconf[@]}" || die - - local mycmakeargs=( - -DBUILD_SHARED_LIBS=no - -DCMAKE_INSTALL_PREFIX="${S}"/third-party/ffmpeg - ) - CMAKE_USE_DIR="${WORKDIR}/build-deps" cmake_src_configure - - local mycmakeargs=( - -DBUILD_TESTS=no - -DCMAKE_DISABLE_FIND_PACKAGE_Git=yes - -DFFMPEG_PLATFORM_LIBRARIES="$(usex svt-av1 SvtAv1Enc '');$(usex vaapi 'va;va-drm' '');$(usev x264);$(usev x265)" - -DFFMPEG_PREPARED_BINARIES="${S}"/third-party/ffmpeg - -DSUNSHINE_ASSETS_DIR=share/${PN} - -DSUNSHINE_ENABLE_CUDA=$(usex cuda) - -DSUNSHINE_ENABLE_DRM=$(usex libdrm) - -DSUNSHINE_ENABLE_VAAPI=$(usex vaapi) - -DSUNSHINE_ENABLE_WAYLAND=$(usex wayland) - -DSUNSHINE_ENABLE_X11=$(usex X) - -DSUNSHINE_ENABLE_TRAY=$(usex trayicon) - -DSUNSHINE_REQUIRE_TRAY=$(usex trayicon) - -DSUNSHINE_SYSTEM_WAYLAND_PROTOCOLS=yes - -DSYSTEMD_USER_UNIT_INSTALL_DIR=$(systemd_get_userunitdir) - -DUDEV_RULES_INSTALL_DIR=$(get_udevdir)/rules.d - ) - [[ ${PV} = 9999* ]] || mycmakeargs+=( -DNPM="${BROOT}"/bin/true ) - CMAKE_USE_DIR="${S}" cmake_src_configure -} - -src_compile() { - emake -C "${WORKDIR}"/ffmpeg-build V=1 - emake -C "${WORKDIR}"/ffmpeg-build V=1 install - CMAKE_USE_DIR="${WORKDIR}/build-deps" cmake_src_compile - CMAKE_USE_DIR="${WORKDIR}/build-deps" cmake_build install - CMAKE_USE_DIR="${S}" npm_config_offline=1 cmake_src_compile -} - -pkg_postinst() { - udev_reload - xdg_pkg_postinst - use libdrm && fcaps cap_sys_admin+p usr/bin/"$(readlink "${EROOT}"/usr/bin/${PN})" - - elog "At upstream's request, please report any issues to https://bugs.gentoo.org" - elog "rather than going directly to them." -} - -pkg_postrm() { - udev_reload - xdg_pkg_postrm -}
