summaryrefslogtreecommitdiff
path: root/media-sound/supercollider
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2024-01-31 17:48:50 +0000
committerV3n3RiX <venerix@koprulu.sector>2024-01-31 17:48:50 +0000
commit88e6368ac393fb69b358b60fcedf125f4724172f (patch)
treef2511a593c9c60c29d08b5d8f9684d2666bc20b4 /media-sound/supercollider
parent0c7c7c833ab740636f5a76d53ebe5bb6e0e793a8 (diff)
gentoo auto-resync : 31:01:2024 - 17:48:49
Diffstat (limited to 'media-sound/supercollider')
-rw-r--r--media-sound/supercollider/Manifest5
-rw-r--r--media-sound/supercollider/files/supercollider-3.13.0-boost-1.84.patch110
-rw-r--r--media-sound/supercollider/files/supercollider-3.13.0-gcc-13.patch15
-rw-r--r--media-sound/supercollider/files/supercollider-3.13.0-no-ccache.patch169
-rw-r--r--media-sound/supercollider/supercollider-3.13.0.ebuild10
5 files changed, 306 insertions, 3 deletions
diff --git a/media-sound/supercollider/Manifest b/media-sound/supercollider/Manifest
index 9d4ea21cd56e..eb158883efbc 100644
--- a/media-sound/supercollider/Manifest
+++ b/media-sound/supercollider/Manifest
@@ -1,3 +1,6 @@
+AUX supercollider-3.13.0-boost-1.84.patch 3799 BLAKE2B 3c333d4b0b63d2c67167be6abe954a843cdd4c73b3cc28a9d7e011162dbb3ddf475ad75f03a780abb7cbf8a54ee0b308e02a7a752532f5f1c110a1e3d8152753 SHA512 1b530d60570729a0b4dd13fbb9059b45288d4ff71391db6290b5e686985ad749267252c15eb63c81bf7bc01ca1141c163e3c7e30e6de1fc43c7b26ed66ab20cf
+AUX supercollider-3.13.0-gcc-13.patch 416 BLAKE2B 8dc097605bebd61d739389f0390970ec882188625d3a5ecbc98eab59baa314e0da9f1ae5b77b2025ce4fee4761f10e5444250f757e8c17cadbf019bd40bc1c86 SHA512 91189e8fe03fca1fb3f75cee3fa5813bc24a99ca9dc1426bfd48276193517b81f47fbcb38a7953f0e2b49d0bee8f98d33bab15c6de0289cd8c83d70b4ae50702
+AUX supercollider-3.13.0-no-ccache.patch 6959 BLAKE2B 2b6bba13ff75c5e1557027586a4b01ac5e55e42c3c90756106dbba0d501fcbfc4cc3db9b000b05ecdfc2bbf645099b16e8129a5099d923a3b6a8dc202fd12423 SHA512 6d6e2d81ce43f47985e9539cfaffef571ff8b2f467ce1edceea3e42c319f13c6326beaa8a02aa4c527be2bcdb624f45674e4fad3ed330d2a2f7b64c4a94c2b83
DIST SuperCollider-3.13.0-Source.tar.bz2 18685091 BLAKE2B a5e57a17f93e40848b2044ee0791179f857d144eabb7f4d74580b2eebd49a31d6ec671a0526236c5b906aadeb455e5a7ad18cacb79ed214076d6bceca39ea2ae SHA512 a60a128f7646f077f91adae666fa4014529aa9df78cf0dfe5d68c9bd6447f008af7da2970b8736f3f29d0adbaf67bce680a8201fcbe7e1aba29c3499a57f89cd
-EBUILD supercollider-3.13.0.ebuild 3031 BLAKE2B 48c98047f3973b110c4bfe5e8bdadb3d2728ccd2702dab40eae2eaa664dc0626a6169a265edc39948ec64d48ae74f867497b3e9a8213beb1ec59bf83330bda8d SHA512 3b237ceab14054d0483f1fc5b8e2873caa85aa9bc4ceb63639961c7a2b188580b7719bf0794343fda25a400a674f56a7a342b83024215fb512a67205bd5468f6
+EBUILD supercollider-3.13.0.ebuild 3207 BLAKE2B ebdf20a4f3ac43e358b12e6d7fcd744ceda7538092884eca6c6430c3fdd9e7274a5109b53515c146b8bf12a4f82b33effb7c019e274be9665ca107aa19c0d785 SHA512 8c568661096a2302fe511397794be32e46a0012d79b5e64951bc205dcf64b64a8e87ffac2d1a6e16a6874589a0d622cb53c64115f4eadcd2b63bc6cde44fbd1d
MISC metadata.xml 1220 BLAKE2B d81b2a8d8b2961d02cc369074221f97c00da866464bd3d142dfe56dc6f926225438a584cdb87227bbee9c11037240ae1b4e48b4aecc7de91c29f1367b0feaab1 SHA512 1c5627589db83212a15f74e9ce32893c317a21bad2ba54b1ab202e32dd5097fb8207e412b03572aa3c24356ec2f04b2c2525fc019bdec01d65a87a02e9d8a4d4
diff --git a/media-sound/supercollider/files/supercollider-3.13.0-boost-1.84.patch b/media-sound/supercollider/files/supercollider-3.13.0-boost-1.84.patch
new file mode 100644
index 000000000000..d3b2340a3d61
--- /dev/null
+++ b/media-sound/supercollider/files/supercollider-3.13.0-boost-1.84.patch
@@ -0,0 +1,110 @@
+From 6e4e12826fd144c874c93c2efb669fbb119b831a Mon Sep 17 00:00:00 2001
+From: Andreas Sturmlechner <asturm@gentoo.org>
+Date: Tue, 30 Jan 2024 23:56:14 +0100
+Subject: [PATCH] Import boost_string_file.hpp from boost-1.83 and put it to
+ use immediately
+
+string_file.hpp was deprecated in boost-1.79.0 and removed in 1.84.0
+
+Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
+---
+ common/boost_string_file.hpp | 59 ++++++++++++++++++++++++++++++++++
+ lang/LangSource/PyrLexer.cpp | 2 +-
+ server/scsynth/SC_GraphDef.cpp | 2 +-
+ 3 files changed, 61 insertions(+), 2 deletions(-)
+ create mode 100644 common/boost_string_file.hpp
+
+diff --git a/common/boost_string_file.hpp b/common/boost_string_file.hpp
+new file mode 100644
+index 000000000..1ccb63de6
+--- /dev/null
++++ b/common/boost_string_file.hpp
+@@ -0,0 +1,59 @@
++// filesystem/string_file.hpp --------------------------------------------------------//
++
++// Copyright Beman Dawes 2015
++
++// Distributed under the Boost Software License, Version 1.0.
++// See http://www.boost.org/LICENSE_1_0.txt
++
++// Library home page: http://www.boost.org/libs/filesystem
++
++#ifndef BOOST_FILESYSTEM_STRING_FILE_HPP
++#define BOOST_FILESYSTEM_STRING_FILE_HPP
++
++#include <boost/filesystem/config.hpp>
++
++#include <cstddef>
++#include <limits>
++#include <string>
++#include <ios>
++#include <stdexcept>
++#include <boost/cstdint.hpp>
++#include <boost/filesystem/path.hpp>
++#include <boost/filesystem/fstream.hpp>
++#include <boost/filesystem/operations.hpp>
++
++#include <boost/filesystem/detail/header.hpp> // must be the last #include
++
++namespace boost {
++namespace filesystem {
++
++inline void save_string_file(path const& p, std::string const& str)
++{
++ filesystem::ofstream file;
++ file.exceptions(std::ios_base::failbit | std::ios_base::badbit);
++ file.open(p, std::ios_base::binary);
++ const std::size_t sz = str.size();
++ if (BOOST_UNLIKELY(sz > static_cast< boost::uintmax_t >((std::numeric_limits< std::streamsize >::max)())))
++ BOOST_FILESYSTEM_THROW(std::length_error("String size exceeds max write size"));
++ file.write(str.c_str(), static_cast< std::streamsize >(sz));
++}
++
++inline void load_string_file(path const& p, std::string& str)
++{
++ filesystem::ifstream file;
++ file.exceptions(std::ios_base::failbit | std::ios_base::badbit);
++ file.open(p, std::ios_base::binary);
++ const boost::uintmax_t sz = filesystem::file_size(p);
++ if (BOOST_UNLIKELY(sz > static_cast< boost::uintmax_t >((std::numeric_limits< std::streamsize >::max)())))
++ BOOST_FILESYSTEM_THROW(std::length_error("File size exceeds max read size"));
++ str.resize(static_cast< std::size_t >(sz), '\0');
++ if (sz > 0u)
++ file.read(&str[0], static_cast< std::streamsize >(sz));
++}
++
++} // namespace filesystem
++} // namespace boost
++
++#include <boost/filesystem/detail/footer.hpp>
++
++#endif // BOOST_FILESYSTEM_STRING_FILE_HPP
+diff --git a/lang/LangSource/PyrLexer.cpp b/lang/LangSource/PyrLexer.cpp
+index 7ebe3d726..06c1454ca 100644
+--- a/lang/LangSource/PyrLexer.cpp
++++ b/lang/LangSource/PyrLexer.cpp
+@@ -38,7 +38,7 @@
+
+ #include <boost/filesystem/path.hpp>
+ #include <boost/filesystem/operations.hpp>
+-#include <boost/filesystem/string_file.hpp>
++#include "boost_string_file.hpp"
+
+ #include "PyrParseNode.h"
+ #include "Bison/lang11d_tab.h"
+diff --git a/server/scsynth/SC_GraphDef.cpp b/server/scsynth/SC_GraphDef.cpp
+index 957aca193..5f8f15741 100644
+--- a/server/scsynth/SC_GraphDef.cpp
++++ b/server/scsynth/SC_GraphDef.cpp
+@@ -46,7 +46,7 @@
+ #include <string>
+
+ #include <boost/filesystem/operations.hpp> // recursive_directory_iterator
+-#include <boost/filesystem/string_file.hpp> // load_string_file
++#include "boost_string_file.hpp" // load_string_file
+
+ namespace bfs = boost::filesystem;
+
+--
+2.43.0
+
diff --git a/media-sound/supercollider/files/supercollider-3.13.0-gcc-13.patch b/media-sound/supercollider/files/supercollider-3.13.0-gcc-13.patch
new file mode 100644
index 000000000000..1ff8f5f92203
--- /dev/null
+++ b/media-sound/supercollider/files/supercollider-3.13.0-gcc-13.patch
@@ -0,0 +1,15 @@
+Gentoo-bug: https://bugs.gentoo.org/905127
+Upstream issue: https://github.com/supercollider/supercollider/issues/6021
+
+diff --git a/common/SC_PaUtils.cpp b/common/SC_PaUtils.cpp
+index e0f562c..9e45c63 100644
+--- a/common/SC_PaUtils.cpp
++++ b/common/SC_PaUtils.cpp
+@@ -3,6 +3,7 @@
+ #include "SC_PaUtils.hpp"
+ #include <cstring>
+ #include <cstdio>
++#include <cstdint>
+
+ #ifdef __APPLE__
+ # include <pa_mac_core.h>
diff --git a/media-sound/supercollider/files/supercollider-3.13.0-no-ccache.patch b/media-sound/supercollider/files/supercollider-3.13.0-no-ccache.patch
new file mode 100644
index 000000000000..ad3b03509e61
--- /dev/null
+++ b/media-sound/supercollider/files/supercollider-3.13.0-no-ccache.patch
@@ -0,0 +1,169 @@
+From bab60d91bd362fd1e46b79d64aaba747fe7c60fa Mon Sep 17 00:00:00 2001
+From: Andreas Sturmlechner <asturm@gentoo.org>
+Date: Wed, 31 Jan 2024 00:31:11 +0100
+Subject: [PATCH] Make ccache detection an option
+
+Arguably it should not even be enabled by default,
+but at least it should be optional.
+
+Consolidate ccache detection in one block.
+
+Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
+---
+ CMakeLists.txt | 122 +++++++++++++++++++++++++------------------------
+ 1 file changed, 62 insertions(+), 60 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index ad5ea5b49..73411ae9e 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -46,32 +46,6 @@ CONFIGURE_FILE(
+ "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
+ IMMEDIATE @ONLY)
+
+-# workaround for using ccache with Xcode generator
+-# thanks to Craig Scott: https://crascit.com/2016/04/09/using-ccache-with-cmake/
+-get_property(RULE_LAUNCH_COMPILE GLOBAL PROPERTY RULE_LAUNCH_COMPILE)
+-if(RULE_LAUNCH_COMPILE AND CMAKE_GENERATOR STREQUAL "Xcode")
+-
+- # find ccache
+- find_program(CCACHE_PROGRAM ccache)
+-
+- message(STATUS "Xcode and ccache detected: using ccache to speed up build process")
+-
+- # Set up wrapper scripts
+- set(SC_LAUNCH_C_SCRIPT "${CMAKE_BINARY_DIR}/launch-c")
+- set(SC_LAUNCH_CXX_SCRIPT "${CMAKE_BINARY_DIR}/launch-cxx")
+-
+- configure_file("cmake_modules/launch-c.in" launch-c)
+- configure_file("cmake_modules/launch-cxx.in" launch-cxx)
+- execute_process(COMMAND chmod a+rx "${SC_LAUNCH_C_SCRIPT}" "${SC_LAUNCH_CXX_SCRIPT}")
+-
+- # Set Xcode project attributes to route compilation and linking
+- # through our scripts
+- set(CMAKE_XCODE_ATTRIBUTE_CC "${SC_LAUNCH_C_SCRIPT}")
+- set(CMAKE_XCODE_ATTRIBUTE_CXX "${SC_LAUNCH_CXX_SCRIPT}")
+- set(CMAKE_XCODE_ATTRIBUTE_LD "${SC_LAUNCH_C_SCRIPT}")
+- set(CMAKE_XCODE_ATTRIBUTE_LDPLUSPLUS "${SC_LAUNCH_CXX_SCRIPT}")
+-endif()
+-
+ ADD_CUSTOM_TARGET(uninstall
+ "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake")
+
+@@ -147,44 +121,11 @@ endif()
+
+ add_definitions(-DBOOST_CHRONO_HEADER_ONLY -DBOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE)
+
+-
+-#############################################
+-# Detect CCache
+-
+-find_program(CCacheExectuable ccache)
+-if( CCacheExectuable )
+- # only used with >=cmake-3.4
+- set( CMAKE_C_COMPILER_LAUNCHER "${CCacheExectuable}" )
+- set( CMAKE_CXX_COMPILER_LAUNCHER "${CCacheExectuable}" )
+- if(NOT CMAKE_GENERATOR MATCHES "Xcode" AND (NOT CMAKE_GENERATOR MATCHES "Visual Studio")) # we already post a message when using Xcode or MSVC
+- message(STATUS "Found ccache at ${CCacheExectuable}: using ccache to speed up build process")
+- endif()
+-
+- # fix for Visual Studio adapted from https://github.com/ccache/ccache/wiki/MS-Visual-Studio#usage
+- # NOTE: there is an issue with ccache installed from chocolatey
+- # since chocolatey puts a "shim" as opposed to the actual executable in the PATH
+- # the solution is to add the path to the actual ccache executable earlier in the path
+- # e.g. in bash: export PATH=`echo c:/ProgramData/chocolatey/lib/ccache/tools/ccache*`:$PATH
+- if (MSVC)
+- message(STATUS "Found ccache at ${CCacheExectuable}: using ccache with MSVC to speed up build process")
+- file(COPY_FILE
+- ${CCacheExectuable} ${CMAKE_BINARY_DIR}/cl.exe
+- ONLY_IF_DIFFERENT)
+-
+- set(CMAKE_VS_GLOBALS
+- "CLToolExe=cl.exe"
+- "CLToolPath=${CMAKE_BINARY_DIR}"
+- "TrackFileAccess=false"
+- "UseMultiToolTask=true"
+- "DebugInformationFormat=OldStyle"
+- )
+- endif()
+-endif()
+-
+ #############################################
+ # Options
+ option(NOVA_SIMD "Build with nova-simd support." ON)
+ option(FINAL_BUILD "Build as single source file." OFF)
++option(USE_CCACHE "Use ccache if available." ON)
+
+ option(FFT_GREEN "Use internal 'Green' FFT lib rather than FFTW. (Not recommended.)" OFF)
+
+@@ -285,6 +226,67 @@ if(APPLE)
+ option(SC_VERIFY_APP "Run verify_app on the app bundle" OFF)
+ endif()
+
++#############################################
++# Detect CCache
++
++if(USE_CCACHE)
++ # workaround for using ccache with Xcode generator
++ # thanks to Craig Scott: https://crascit.com/2016/04/09/using-ccache-with-cmake/
++ get_property(RULE_LAUNCH_COMPILE GLOBAL PROPERTY RULE_LAUNCH_COMPILE)
++ if(RULE_LAUNCH_COMPILE AND CMAKE_GENERATOR STREQUAL "Xcode")
++
++ # find ccache
++ find_program(CCACHE_PROGRAM ccache)
++
++ message(STATUS "Xcode and ccache detected: using ccache to speed up build process")
++
++ # Set up wrapper scripts
++ set(SC_LAUNCH_C_SCRIPT "${CMAKE_BINARY_DIR}/launch-c")
++ set(SC_LAUNCH_CXX_SCRIPT "${CMAKE_BINARY_DIR}/launch-cxx")
++
++ configure_file("cmake_modules/launch-c.in" launch-c)
++ configure_file("cmake_modules/launch-cxx.in" launch-cxx)
++ execute_process(COMMAND chmod a+rx "${SC_LAUNCH_C_SCRIPT}" "${SC_LAUNCH_CXX_SCRIPT}")
++
++ # Set Xcode project attributes to route compilation and linking
++ # through our scripts
++ set(CMAKE_XCODE_ATTRIBUTE_CC "${SC_LAUNCH_C_SCRIPT}")
++ set(CMAKE_XCODE_ATTRIBUTE_CXX "${SC_LAUNCH_CXX_SCRIPT}")
++ set(CMAKE_XCODE_ATTRIBUTE_LD "${SC_LAUNCH_C_SCRIPT}")
++ set(CMAKE_XCODE_ATTRIBUTE_LDPLUSPLUS "${SC_LAUNCH_CXX_SCRIPT}")
++ endif()
++
++ find_program(CCacheExectuable ccache)
++ if( CCacheExectuable )
++ # only used with >=cmake-3.4
++ set( CMAKE_C_COMPILER_LAUNCHER "${CCacheExectuable}" )
++ set( CMAKE_CXX_COMPILER_LAUNCHER "${CCacheExectuable}" )
++ if(NOT CMAKE_GENERATOR MATCHES "Xcode" AND (NOT CMAKE_GENERATOR MATCHES "Visual Studio")) # we already post a message when using Xcode or MSVC
++ message(STATUS "Found ccache at ${CCacheExectuable}: using ccache to speed up build process")
++ endif()
++
++ # fix for Visual Studio adapted from https://github.com/ccache/ccache/wiki/MS-Visual-Studio#usage
++ # NOTE: there is an issue with ccache installed from chocolatey
++ # since chocolatey puts a "shim" as opposed to the actual executable in the PATH
++ # the solution is to add the path to the actual ccache executable earlier in the path
++ # e.g. in bash: export PATH=`echo c:/ProgramData/chocolatey/lib/ccache/tools/ccache*`:$PATH
++ if (MSVC)
++ message(STATUS "Found ccache at ${CCacheExectuable}: using ccache with MSVC to speed up build process")
++ file(COPY_FILE
++ ${CCacheExectuable} ${CMAKE_BINARY_DIR}/cl.exe
++ ONLY_IF_DIFFERENT)
++
++ set(CMAKE_VS_GLOBALS
++ "CLToolExe=cl.exe"
++ "CLToolPath=${CMAKE_BINARY_DIR}"
++ "TrackFileAccess=false"
++ "UseMultiToolTask=true"
++ "DebugInformationFormat=OldStyle"
++ )
++ endif()
++ endif()
++endif()
++
+ #############################################
+ # some default libraries
+
+--
+2.43.0
+
diff --git a/media-sound/supercollider/supercollider-3.13.0.ebuild b/media-sound/supercollider/supercollider-3.13.0.ebuild
index 3bba39d52c6d..2b8ee8636dd3 100644
--- a/media-sound/supercollider/supercollider-3.13.0.ebuild
+++ b/media-sound/supercollider/supercollider-3.13.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -8,6 +8,7 @@ inherit cmake flag-o-matic xdg
DESCRIPTION="Environment and programming language for real time audio synthesis"
HOMEPAGE="https://supercollider.github.io/"
SRC_URI="https://github.com/supercollider/supercollider/releases/download/Version-${PV}/SuperCollider-${PV}-Source.tar.bz2"
+S="${WORKDIR}/SuperCollider-${PV}-Source"
LICENSE="GPL-2 gpl3? ( GPL-3 )"
SLOT="0"
@@ -60,7 +61,11 @@ DEPEND="${RDEPEND}
vim? ( app-editors/vim )
"
-S="${WORKDIR}/SuperCollider-${PV}-Source"
+PATCHES=(
+ "${FILESDIR}/${P}-boost-1.84.patch" # bug 921595
+ "${FILESDIR}/${P}-gcc-13.patch" # bug 905127
+ "${FILESDIR}/${P}-no-ccache.patch" # bug 922095
+)
src_configure() {
local mycmakeargs=(
@@ -68,6 +73,7 @@ src_configure() {
-DINSTALL_HELP=ON
-DSYSTEM_BOOST=ON
-DSYSTEM_YAMLCPP=ON
+ -DUSE_CCACHE=OFF
-DSC_ABLETON_LINK=$(usex ableton-link)
-DSSE=$(usex cpu_flags_x86_sse)
-DSSE2=$(usex cpu_flags_x86_sse2)