summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Sarnie <sarnex@gentoo.org>2022-12-22 19:03:48 -0500
committerNick Sarnie <sarnex@gentoo.org>2022-12-22 19:05:02 -0500
commitc42bd08f89e86a4e78ba5fa8b5acdb1c20ecf201 (patch)
tree262378d18c4d89d6bd2b21831adbea6c482b7d21 /media-video/aegisub
parentsys-devel/gcc: add 10.4.1_p20221222 (diff)
downloadgentoo-c42bd08f89e86a4e78ba5fa8b5acdb1c20ecf201.tar.gz
gentoo-c42bd08f89e86a4e78ba5fa8b5acdb1c20ecf201.tar.bz2
gentoo-c42bd08f89e86a4e78ba5fa8b5acdb1c20ecf201.zip
media-video/aegisub: Fix boost 1.8.1 build
Closes: https://bugs.gentoo.org/887053 Signed-off-by: Nick Sarnie <sarnex@gentoo.org>
Diffstat (limited to 'media-video/aegisub')
-rw-r--r--media-video/aegisub/aegisub-3.2.2_p20160518-r105.ebuild161
-rw-r--r--media-video/aegisub/files/3.2.2_p20160518/aegisub-3.2.2_p20160518-fix-boost-181-build.patch56
2 files changed, 217 insertions, 0 deletions
diff --git a/media-video/aegisub/aegisub-3.2.2_p20160518-r105.ebuild b/media-video/aegisub/aegisub-3.2.2_p20160518-r105.ebuild
new file mode 100644
index 000000000000..f9b435cd6a74
--- /dev/null
+++ b/media-video/aegisub/aegisub-3.2.2_p20160518-r105.ebuild
@@ -0,0 +1,161 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+LUA_COMPAT=( luajit )
+LUA_REQ_USE="lua52compat"
+
+WX_GTK_VER=3.0
+PLOCALES="ar bg ca cs da de el es eu fa fi fr_FR gl hu id it ja ko nl pl pt_BR pt_PT ru sr_RS sr_RS@latin uk_UA vi zh_CN zh_TW"
+COMMIT_ID="b118fe7e7a5c37540e2f0aa75af105e272bad234"
+
+inherit autotools flag-o-matic lua-single plocale wxwidgets xdg-utils vcs-snapshot
+
+DESCRIPTION="Advanced subtitle editor"
+HOMEPAGE="http://www.aegisub.org/ https://github.com/Aegisub/Aegisub"
+SRC_URI="https://github.com/Aegisub/Aegisub/archive/${COMMIT_ID}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+alsa debug +fftw openal oss portaudio pulseaudio spell test +uchardet"
+RESTRICT="test"
+
+# aegisub bundles luabins (https://github.com/agladysh/luabins).
+# Unfortunately, luabins upstream is practically dead since 2010.
+# Thus unbundling luabins isn't worth the effort.
+RDEPEND="${LUA_DEPS}
+ x11-libs/wxGTK:${WX_GTK_VER}[X,opengl,debug?]
+ dev-libs/boost:=[icu,nls]
+ dev-libs/icu:=
+ media-libs/ffmpegsource:=
+ media-libs/fontconfig
+ media-libs/freetype
+ media-libs/libass:=[fontconfig]
+ sys-libs/zlib
+ virtual/libiconv
+ virtual/opengl
+ alsa? ( media-libs/alsa-lib )
+ fftw? ( >=sci-libs/fftw-3.3:= )
+ openal? ( media-libs/openal )
+ portaudio? ( =media-libs/portaudio-19* )
+ pulseaudio? ( media-sound/pulseaudio )
+ spell? ( app-text/hunspell:= )
+ uchardet? ( app-i18n/uchardet )
+"
+DEPEND="${RDEPEND}"
+# luarocks is only used as a command-line tool so there is no need to enforce
+# LUA_SINGLE_USEDEP on it. On the other hand, this means we must use version
+# bounds in order to make sure we use a version migrated to Lua eclasses.
+BDEPEND="dev-util/intltool
+ sys-devel/gettext
+ virtual/pkgconfig
+ test? (
+ ${RDEPEND}
+ >=dev-cpp/gtest-1.8.1
+ >=dev-lua/luarocks-3.4.0-r100
+ $(lua_gen_cond_dep '
+ dev-lua/busted[${LUA_USEDEP}]
+ ')
+ )
+"
+
+REQUIRED_USE="${LUA_REQUIRED_USE}
+ || ( alsa openal oss portaudio pulseaudio )"
+
+PATCHES=(
+ "${FILESDIR}/${PV}/${P}-fix-system-luajit-build.patch"
+ "${FILESDIR}/${PV}/${P}-respect-compiler-flags.patch"
+ "${FILESDIR}/${PV}/${P}-support-system-gtest.patch"
+ "${FILESDIR}/${PV}/${P}-fix-icu59-build.patch"
+ "${FILESDIR}/${PV}/${P}-fix-icu62-build.patch"
+ "${FILESDIR}/${PV}/${P}-fix-boost170-build.patch"
+ "${FILESDIR}/${PV}/${P}-fix-makefile-for-make4.3.patch"
+ "${FILESDIR}/${PV}/${P}-tests_luarocks_lua_version.patch"
+ "${FILESDIR}/${PV}/${P}-avoid-conveying-positional-parameters-to-source-builtin.patch"
+ "${FILESDIR}/${PV}/${P}-luaL_Reg-not-luaL_reg.patch"
+ "${FILESDIR}/${PV}/${P}-ffmpegsource-2.40-compat2.patch"
+ "${FILESDIR}/${PV}/${P}-fix-boost-181-build.patch"
+)
+
+aegisub_check_compiler() {
+ if [[ ${MERGE_TYPE} != "binary" ]] && ! test-flag-CXX -std=c++11; then
+ die "Your compiler lacks C++11 support. Use GCC>=4.7.0 or Clang>=3.3."
+ fi
+}
+
+pkg_pretend() {
+ aegisub_check_compiler
+}
+
+pkg_setup() {
+ aegisub_check_compiler
+ lua-single_pkg_setup
+}
+
+src_prepare() {
+ default_src_prepare
+
+ # Remove tests that require unavailable uuid Lua module.
+ rm automation/tests/modules/lfs.moon || die
+
+ remove_locale() {
+ rm "po/${1}.po" || die
+ }
+
+ plocale_find_changes 'po' '' '.po'
+ plocale_for_each_disabled_locale remove_locale
+
+ # See http://devel.aegisub.org/ticket/1914
+ config_rpath_update "${S}"/config.rpath
+
+ eautoreconf
+
+ cat <<- EOF > build/git_version.h || die
+ #define BUILD_GIT_VERSION_NUMBER 8897
+ #define BUILD_GIT_VERSION_STRING "${PV}"
+ #define TAGGED_RELEASE 0
+ EOF
+}
+
+src_configure() {
+ # Prevent access violations from OpenAL detection. See Gentoo bug 508184.
+ use openal && export agi_cv_with_openal="yes"
+
+ setup-wxwidgets
+ local myeconfargs=(
+ --disable-update-checker
+ --with-ffms2
+ --with-system-luajit
+ $(use_enable debug)
+ $(use_with alsa)
+ $(use_with fftw fftw3)
+ $(use_with openal)
+ $(use_with oss)
+ $(use_with portaudio)
+ $(use_with pulseaudio libpulse)
+ $(use_with spell hunspell)
+ $(use_with uchardet)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+ emake WITH_SYSTEM_GTEST=$(usex test)
+}
+
+src_test() {
+ emake test-automation
+ emake test-libaegisub
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_desktop_database_update
+}
diff --git a/media-video/aegisub/files/3.2.2_p20160518/aegisub-3.2.2_p20160518-fix-boost-181-build.patch b/media-video/aegisub/files/3.2.2_p20160518/aegisub-3.2.2_p20160518-fix-boost-181-build.patch
new file mode 100644
index 000000000000..ac264bc70676
--- /dev/null
+++ b/media-video/aegisub/files/3.2.2_p20160518/aegisub-3.2.2_p20160518-fix-boost-181-build.patch
@@ -0,0 +1,56 @@
+diff --git a/libaegisub/include/libaegisub/lua/utils.h b/libaegisub/include/libaegisub/lua/utils.h
+index c5a65d6e4..f4921d582 100644
+--- a/libaegisub/include/libaegisub/lua/utils.h
++++ b/libaegisub/include/libaegisub/lua/utils.h
+@@ -87,7 +87,10 @@ int exception_wrapper(lua_State *L) {
+
+ template<typename T>
+ void set_field(lua_State *L, const char *name, T value) {
+- push_value(L, value);
++ if constexpr(std::is_convertible<T, std::string>::value)
++ push_value(L, static_cast<std::string>(value));
++ else
++ push_value(L, value);
+ lua_setfield(L, -2, name);
+ }
+
+diff --git a/src/auto4_lua.cpp b/src/auto4_lua.cpp
+index 245689679..6d479b2c3 100644
+--- a/src/auto4_lua.cpp
++++ b/src/auto4_lua.cpp
+@@ -115,7 +115,8 @@ namespace {
+ int get_translation(lua_State *L)
+ {
+ wxString str(check_wxstring(L, 1));
+- push_value(L, _(str).utf8_str());
++ const char* val = static_cast<const char*>( _(str).utf8_str());
++ push_value(L, val);
+ return 1;
+ }
+
+diff --git a/src/command/video.cpp b/src/command/video.cpp
+index fb2bcb0ba..77e3e9ca7 100644
+--- a/src/command/video.cpp
++++ b/src/command/video.cpp
+@@ -475,7 +475,7 @@ static void save_snapshot(agi::Context *c, bool raw) {
+ // If where ever that is isn't defined, we can't save there
+ if ((basepath == "\\") || (basepath == "/")) {
+ // So save to the current user's home dir instead
+- basepath = wxGetHomeDir().c_str();
++ basepath = static_cast<const char*>(wxGetHomeDir().c_str());
+ }
+ }
+ // Actual fixed (possibly relative) path, decode it
+diff --git a/src/dialog_attachments.cpp b/src/dialog_attachments.cpp
+index 38ff53027..e30339f81 100644
+--- a/src/dialog_attachments.cpp
++++ b/src/dialog_attachments.cpp
+@@ -161,7 +161,7 @@ void DialogAttachments::OnExtract(wxCommandEvent &) {
+
+ // Multiple or single?
+ if (listView->GetNextSelected(i) != -1)
+- path = wxDirSelector(_("Select the path to save the files to:"), to_wx(OPT_GET("Path/Fonts Collector Destination")->GetString())).c_str();
++ path = static_cast<const char*>(wxDirSelector(_("Select the path to save the files to:"), to_wx(OPT_GET("Path/Fonts Collector Destination")->GetString())).c_str());
+ else {
+ path = SaveFileSelector(
+ _("Select the path to save the file to:"),