summaryrefslogtreecommitdiff
path: root/media-video/aegisub
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2025-01-23 06:45:02 +0000
committerV3n3RiX <venerix@koprulu.sector>2025-01-23 06:45:02 +0000
commitc78477d222e1ceb9516a9bbbadbba0b5c1ce11db (patch)
tree5187cbad4740387edb2c1cca0942036a0fdccd88 /media-video/aegisub
parent564687d289b862b8b079569a45a2d39d7b8c3585 (diff)
gentoo auto-resync : 23:01:2025 - 06:45:02
Diffstat (limited to 'media-video/aegisub')
-rw-r--r--media-video/aegisub/Manifest4
-rw-r--r--media-video/aegisub/aegisub-3.4.2.ebuild145
-rw-r--r--media-video/aegisub/files/3.4.2/Fix-build-without-pch.patch386
-rw-r--r--media-video/aegisub/files/3.4.2/git_version.h5
4 files changed, 540 insertions, 0 deletions
diff --git a/media-video/aegisub/Manifest b/media-video/aegisub/Manifest
index 1f9645f9f044..d7477f0afba6 100644
--- a/media-video/aegisub/Manifest
+++ b/media-video/aegisub/Manifest
@@ -15,11 +15,15 @@ AUX 3.3.3/aegisub-3.3.3-support-system-gtest.patch 2932 BLAKE2B e05519e4734f7532
AUX 3.4.0/Fix-build-without-pch.patch 6586 BLAKE2B 9a7df7afc364179686c0f1cda9683f57e10c05349b19ebbec4f7d918abe2d188c4463000cca50a676f13aae779ebc9d726fe0972d8c27b84904b8bb1c7085d1d SHA512 0f3746ebc5612885e13f9bc82aff1da9037be0d9aaa3c547656dde3ca51b783dd80a9593c320094b6e94b9db7425b727e96513ca49052aadaa89953a9c05a70e
AUX 3.4.0/Use-generated-git-version.patch 626 BLAKE2B 8a4aa53e21988270ce4e7a6e61d2691c1830a89963e877a57260fb9e3dc73d2165b0713bd6d7c01323aa25428a1226ef43732143746f5f6bf98931600a7f6f3e SHA512 f44eaa0cef348488ce81982b5f104a89acaf7ad0e26b7308cee0e392dcfe6262bd456aa725a4b13be9f9268ae82c457f041a4b616af35da65aa3be85f5999dca
AUX 3.4.0/git_version.h 175 BLAKE2B 9d4981a93e5d000533d30e24a9d89407b148162795bac3f42f012a538c3d1bfb22376e29e2016319e214535210f60b5ced2b07753e55caa89c15d3416a827283 SHA512 9d38a05064df1dcaf53e7e7d7d2aba291a14a955072a12980a0b8340dfc907f8718ebbd2f916ed15e1ca0525b7168b18afb81d328981e6e7d7a2f898e9f3bece
+AUX 3.4.2/Fix-build-without-pch.patch 11782 BLAKE2B 68d51698309a0ed7267025f90d8be5884562a9e00d8ed732325ac8eac0dceebf03dd40720bd27cbcfcd2a7515ad596b801a7f4b3950df0b65a79a894d5bec6a6 SHA512 49a60480b29cd52bcb7b4bdffb629fee6d490181428504fa4d752ea982c4a2a03c856fbea19c4567c4cf36294cf85e29807f1122a69d182218e6a747436c02ad
+AUX 3.4.2/git_version.h 175 BLAKE2B b9d60e5d47311056a2dd40f710fddb6b82e65fad33d2ef1868f009c2394fc39b6d3f3bc552a0b119712f444972eaa08b40259539e4f20efb602baaba02b2dd59 SHA512 78a3ccb7593d64e5d609465b899a4705bbfdabd2343035cac9324ec623b8d3085d7c67eb8af9a797e49b1286a12f01083e12e46e5c378d06d833730cf7bab1d3
AUX 9999/git_version.h 175 BLAKE2B 3f6378c56734ad13cb1b7bc9d09675ed133b93b436fd7d1459152573856a163c5e19533debb4862da38360dadee88c4628c987b07ce1907ccbc7485288415cb1 SHA512 c1f3a2f6d5c51517377450e54292bfb7404ca8f9bdad4ae3a12324d5f8c020338a1cf2e2290845478c63c91f5f380175615645890bbbd8b448be5393f6507399
DIST aegisub-3.3.3.tar.gz 6580314 BLAKE2B b6a6b6d9a805fb1aec943f00452e5f074c050d7d8970e0fa57da54a7a3c12b86241eafafd957577625bcce395c9f909fe60a22c9d76fcf8f018a4ea03921dacf SHA512 19e44667ad8742560559387c15f6c00339194cd26e1140624c63f34c6b4da6bb0b80be0f636a2d1cd0b15f1598e0580218d648e0622635b12eeaad3a40df9abc
DIST aegisub-3.4.0.tar.gz 6294724 BLAKE2B 6ab466a33082107f509675eb062a679c68da5b3ec9d97847d0c50ad43d717ff50efcb4fb59a2e8c23f57e893de846b651b7a80a117f047734e6d54ccf6522ef3 SHA512 364f56aece74b14f37d796e364ffcc5b9d8ab5816f8e118b7f44d2d4e3bdf8afa0731c36995269dd953d2f532e7a905729bcbfa907c672a8eb91b68565c1ade0
+DIST aegisub-3.4.2.tar.gz 6602618 BLAKE2B 38b2d2d0bb5dd4d3a7fe9e16bfe47f36120bc54d6b60dfa796906ce5699f584c350faf2e0de55879c32aa13ea87ae96d5365071082920d777d8ae4a4aea04361 SHA512 225f97a59feda2ddd7a65e967c19eb074c2f961cbdfbd5e743e4b622f8fb54ec85b679e5b9f30333965e98a19bf6b56cd54cc10417f67771c9661999483dacca
EBUILD aegisub-3.3.3-r1.ebuild 3969 BLAKE2B 2f179f41f1c5cd57635d08472499c6eb4bbd8b4ed8c7020ed43d1e02ede8422a33d81418ceee50f9e2604c8a816a1ef3b9bb93577785464dedbaf3fbf9ef847c SHA512 bea0bc450338b5c17d4f3f07382f49474920e60c5e7cebaf42ab81df1b3b21582955ef8680cf07bad37a94e085507575cfd37afc4608572dbab729d280cfe8dc
EBUILD aegisub-3.3.3.ebuild 3915 BLAKE2B e23ce10ea46e06315826b446d3f4f00368271432e9ad3d235c7d413c69cf83bebf65e43de5354bb5f52cce57be10963346d6c3abf42713ea10f4a66924d7fad3 SHA512 ddf52ad9a4bb353a048a6c5b406173d6389a65ab1fd5e5765acf785e0f48dcd57f7397ffcafe1153a928e9e225e9bbef76fa1b44d30577f93bf296fecc54e224
EBUILD aegisub-3.4.0.ebuild 3647 BLAKE2B b7377ae8b078f42b5bf99f1f482ef77dc22b74537cac5e0439e67d84af5c431a46e38c7dd65ebafc005e20b99e371f9591bafdb317f3b2769cac06f999e81e90 SHA512 217339bd72e40d203acbe0d6777ba09198a174486fcd7d342b053c110f76ca0df1ce6086cf44054e8684e544b85ff4b2f2801fd130111bddfeb2019e7d7e271f
+EBUILD aegisub-3.4.2.ebuild 3815 BLAKE2B c14273fc81894a540f20a3c58497c6504464851b6592080aec885e410ca15a9fe7f8d933607cc936e3e5a129625160c836b4925af0f3c3321d9cf1318642620b SHA512 16dae334bbadcf78ff34726723ba5a5631a33972a11915fba8b2a02df07ae7e8789f6c3a8f467af27563ceac20402cec88a66f2855216cc038ae48447f5b3547
EBUILD aegisub-9999.ebuild 3650 BLAKE2B aa75a999b286547a612ad8d605d98827f59932264234948ff2b93b67632c86c154c89bd6fcddd0820d864dda096431353bf556b7bc9ee28f903e0bb5d31d1fe5 SHA512 760ea2114054dd890a59a8084019248a230d919280ef0985443f3671295940ceab6a7dab03598da915854aa93aa468a06770f1b447996a9e58f707ee668c4d0d
MISC metadata.xml 510 BLAKE2B 46c0880517c62df4ec49e282a69c5841dedd832e2350fccc74328da7af8dca4a70f084d868de0699b87b9a399b564ab622c34469cbbc54b53290959bce1213bc SHA512 b518855b2e19d26985d1340b87e33c53b9bfd3f0f84159841c999ea6481eb50f81b933bb6c4f7e307cd144e6f34008364e8e6d40179dd50fc73ac8052b072eee
diff --git a/media-video/aegisub/aegisub-3.4.2.ebuild b/media-video/aegisub/aegisub-3.4.2.ebuild
new file mode 100644
index 000000000000..84c85dd0f0f5
--- /dev/null
+++ b/media-video/aegisub/aegisub-3.4.2.ebuild
@@ -0,0 +1,145 @@
+# Copyright 1999-2025 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.2-gtk3
+PLOCALES="ar be 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 tr uk_UA vi zh_CN zh_TW"
+
+inherit meson flag-o-matic lua-single plocale wxwidgets xdg-utils vcs-snapshot toolchain-funcs
+
+DESCRIPTION="Advanced subtitle editor"
+HOMEPAGE="http://www.aegisub.org/ https://github.com/TypesettingTools/Aegisub"
+
+if [[ ${PV} == *9999 ]]; then
+ EGIT_REPO_URI="https://github.com/TypesettingTools/${PN^}.git"
+ # Submodules are used to pull bundled libraries.
+ EGIT_SUBMODULES=()
+ inherit git-r3
+else
+ SRC_URI="https://github.com/TypesettingTools/Aegisub/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+LICENSE="BSD MIT"
+SLOT="0"
+IUSE="+alsa debug +fftw openal 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-libs/libpulse )
+ 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 portaudio pulseaudio )"
+
+BUILD_DIR="${WORKDIR}/${P}-build"
+
+PATCHES=(
+"${FILESDIR}/3.4.2/Fix-build-without-pch.patch"
+)
+
+aegisub_check_compiler() {
+ if [[ ${MERGE_TYPE} != "binary" ]] && ! test-flag-CXX -std=c++20; then
+ die "Your compiler lacks C++20 support."
+ 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
+ sed -i "s|#ifdef WITH_UPDATE_CHECKER| #if WITH_UPDATE_CHECKER == 1|g" "${S}"/src/dialog_version_check.cpp \
+ "${S}"/src/command/app.cpp "${S}"/src/main.cpp || die
+ use test || sed -i "s|subdir('tests')||g" "${S}"/meson.build || die
+
+ mkdir "${BUILD_DIR}" || die
+ cp "${FILESDIR}/${PV}"/git_version.h "${BUILD_DIR}"/git_version.h || die
+}
+
+src_configure() {
+ tc-export PKG_CONFIG
+ use debug && EMESON_BUILDTYPE=debug
+ setup-wxwidgets
+ local emesonargs=(
+ -Denable_update_checker=false
+ -Dffms2=enabled
+ -Dsystem_luajit=true
+ $(meson_feature alsa)
+ $(meson_feature fftw fftw3)
+ $(meson_feature openal)
+ $(meson_feature portaudio)
+ $(meson_feature pulseaudio libpulse)
+ $(meson_feature spell hunspell)
+ $(meson_feature uchardet)
+ )
+ meson_src_configure
+}
+
+src_test() {
+ meson_src_test 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.4.2/Fix-build-without-pch.patch b/media-video/aegisub/files/3.4.2/Fix-build-without-pch.patch
new file mode 100644
index 000000000000..08506c667cef
--- /dev/null
+++ b/media-video/aegisub/files/3.4.2/Fix-build-without-pch.patch
@@ -0,0 +1,386 @@
+From 0f268eda235d41f33c778f595d5e6781ba8f38e2 Mon Sep 17 00:00:00 2001
+From: arch1t3cht <arch1t3cht@gmail.com>
+Date: Tue, 21 Jan 2025 21:29:34 +0100
+Subject: [PATCH] Allow building without PCHs on Linux
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+It seems that Aegisub used to be able to be built without precompiled
+headers, but this broke with the meson port since there the PCHs are
+needed to include acconf.h. (On the old build system(s), the feature
+flags were passed directly as defines to the compiler on Visual Studio,
+and acconf.h was forcibly included via -include acconf.h with autoconf.)
+
+Some distributions (gentoo in particular) disable PCHs by default for
+meson due to various bugs, and PCHs can also be quite a headache with
+language servers (I ended up running an sed one-liner after every
+configure to replace -include-pch in my compile_commands.json with the
+respective -include).
+
+Since meson doesn't seem to be able to forcibly include headers for
+every source file, just pass the config as a set of preprocessor
+defines when b_pch is disabled. If it's enabled, stick to acconf.h to
+not bloat the compiler command lines too much.
+
+For now this only works on Linux, Windows will need extra work due to
+windows.h being annoying, but there isn't as much of a need to build
+without PCHs there anyway.
+
+The added includes were mostly taken from TypesettingTools/Aegisub#241
+and TypesettingTools/Aegisub#223.
+
+Co-authored-by: Ștefan Talpalaru <stefantalpalaru@yahoo.com>
+Co-authored-by: Nick Sarnie <sarnex@gentoo.org>
+---
+
+diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
+index fbef59e0e..31bae4f84 100644
+--- a/.github/workflows/ci.yml
++++ b/.github/workflows/ci.yml
+@@ -43,25 +43,25 @@ jobs:
+ name: Ubuntu 22 Debug,
+ os: ubuntu-22.04,
+ buildtype: debugoptimized,
+- args: ''
++ args: -Db_pch=false
+ }
+ - {
+ name: Ubuntu 22 Release,
+ os: ubuntu-22.04,
+ buildtype: release,
+- args: ''
++ args: -Db_pch=false
+ }
+ - {
+ name: Ubuntu 24 Debug,
+ os: ubuntu-24.04,
+ buildtype: debugoptimized,
+- args: ''
++ args: -Db_pch=false
+ }
+ - {
+ name: Ubuntu 24 Release,
+ os: ubuntu-24.04,
+ buildtype: release,
+- args: ''
++ args: -Db_pch=false
+ }
+ - {
+ name: macOS Debug,
+diff --git a/libaegisub/ass/uuencode.cpp b/libaegisub/ass/uuencode.cpp
+index 893268d07..b2e0df60f 100644
+--- a/libaegisub/ass/uuencode.cpp
++++ b/libaegisub/ass/uuencode.cpp
+@@ -17,6 +17,7 @@
+ #include <libaegisub/ass/uuencode.h>
+
+ #include <algorithm>
++#include <cstring>
+
+ // Despite being called uuencoding by ass_specs.doc, the format is actually
+ // somewhat different from real uuencoding. Each 3-byte chunk is split into 4
+diff --git a/libaegisub/audio/provider_dummy.cpp b/libaegisub/audio/provider_dummy.cpp
+index 01a6ae5b4..41b9c9cb2 100644
+--- a/libaegisub/audio/provider_dummy.cpp
++++ b/libaegisub/audio/provider_dummy.cpp
+@@ -18,6 +18,7 @@
+
+ #include "libaegisub/fs.h"
+
++#include <cstring>
+ #include <random>
+
+ /*
+diff --git a/libaegisub/common/cajun/reader.cpp b/libaegisub/common/cajun/reader.cpp
+index 6f32d2ff4..5068dfe90 100644
+--- a/libaegisub/common/cajun/reader.cpp
++++ b/libaegisub/common/cajun/reader.cpp
+@@ -8,6 +8,7 @@ Author: Terry Caton
+
+ #include "libaegisub/cajun/reader.h"
+
++#include <algorithm>
+ #include <boost/interprocess/streams/bufferstream.hpp>
+ #include <cassert>
+
+diff --git a/libaegisub/common/calltip_provider.cpp b/libaegisub/common/calltip_provider.cpp
+index de693e637..d0188cbbb 100644
+--- a/libaegisub/common/calltip_provider.cpp
++++ b/libaegisub/common/calltip_provider.cpp
+@@ -19,6 +19,7 @@
+ #include "libaegisub/ass/dialogue_parser.h"
+
+ #include <algorithm>
++#include <cstring>
+
+ namespace {
+ struct proto_lit {
+diff --git a/libaegisub/common/mru.cpp b/libaegisub/common/mru.cpp
+index be12812b6..ef41535c1 100644
+--- a/libaegisub/common/mru.cpp
++++ b/libaegisub/common/mru.cpp
+@@ -22,6 +22,8 @@
+ #include "libaegisub/option.h"
+ #include "libaegisub/option_value.h"
+
++#include <algorithm>
++
+ namespace {
+ std::string_view mru_names[] = {
+ "Audio",
+diff --git a/libaegisub/common/option.cpp b/libaegisub/common/option.cpp
+index 0a1f8c8b3..9b33a3807 100644
+--- a/libaegisub/common/option.cpp
++++ b/libaegisub/common/option.cpp
+@@ -25,6 +25,7 @@
+ #include "libaegisub/log.h"
+ #include "libaegisub/option_value.h"
+
++#include <algorithm>
+ #include <boost/interprocess/streams/bufferstream.hpp>
+ #include <cassert>
+ #include <memory>
+diff --git a/libaegisub/common/thesaurus.cpp b/libaegisub/common/thesaurus.cpp
+index 25011b4e6..e5c141e34 100644
+--- a/libaegisub/common/thesaurus.cpp
++++ b/libaegisub/common/thesaurus.cpp
+@@ -19,6 +19,7 @@
+ #include "libaegisub/line_iterator.h"
+ #include "libaegisub/split.h"
+
++#include <algorithm>
+ #include <boost/interprocess/streams/bufferstream.hpp>
+
+ namespace agi {
+diff --git a/libaegisub/include/libaegisub/lua/ffi.h b/libaegisub/include/libaegisub/lua/ffi.h
+index 17cf0088d..29902f77a 100644
+--- a/libaegisub/include/libaegisub/lua/ffi.h
++++ b/libaegisub/include/libaegisub/lua/ffi.h
+@@ -17,6 +17,7 @@
+ #include <libaegisub/type_name.h>
+
+ #include <cstdlib>
++#include <cstring>
+ #include <lua.hpp>
+
+ namespace agi::lua {
+diff --git a/libaegisub/lua/modules/unicode.cpp b/libaegisub/lua/modules/unicode.cpp
+index 9ee64b114..d6d84a97b 100644
+--- a/libaegisub/lua/modules/unicode.cpp
++++ b/libaegisub/lua/modules/unicode.cpp
+@@ -18,6 +18,8 @@
+
+ #include <unicode/unistr.h>
+
++#include <cstring>
++
+ namespace {
+ char *wrap(void (*fn)(icu::UnicodeString&), const char *str, char **err) {
+ auto ustr = icu::UnicodeString::fromUTF8(str);
+diff --git a/libaegisub/meson.build b/libaegisub/meson.build
+index 7689d31ae..7755b0d39 100644
+--- a/libaegisub/meson.build
++++ b/libaegisub/meson.build
+@@ -86,7 +86,9 @@ libaegisub_c_pch = ['include/lagi_pre_c.h']
+
+ libaegisub_inc = include_directories('include')
+
+-libaegisub = static_library('aegisub', libaegisub_src, acconf,
++libaegisub = static_library('aegisub', libaegisub_src, aegisub_order_dep,
++ c_args: aegisub_defines,
++ cpp_args: aegisub_defines,
+ include_directories: [libaegisub_inc, deps_inc],
+ cpp_pch: libaegisub_cpp_pch,
+ c_pch: libaegisub_c_pch,
+diff --git a/meson.build b/meson.build
+index f0e56521c..82c92c724 100644
+--- a/meson.build
++++ b/meson.build
+@@ -377,7 +377,23 @@ if not get_option('csri').disabled() and host_machine.system() == 'windows'
+ deps += csri_sp.get_variable('csri_dep')
+ endif
+
+-acconf = configure_file(output: 'acconf.h', configuration: conf)
++aegisub_order_dep = []
++aegisub_defines = []
++
++if get_option('b_pch')
++ # Write the feature flags into a configure_file to not bloat the compiler args too much
++ aegisub_order_dep += configure_file(output: 'acconf.h', configuration: conf)
++else
++ # Manually pass the feature flags as compiler args
++ foreach key : conf.keys()
++ aegisub_defines += '-D@0@=@1@'.format(key, conf.get(key))
++ endforeach
++
++ if host_machine.system() == 'windows'
++ # This is also part of all the PCHs
++ aegisub_defines += '-DWIN32_LEAN_AND_MEAN'
++ endif
++endif
+
+ subdir('automation')
+ subdir('libaegisub')
+@@ -389,7 +405,9 @@ subdir('tests')
+ aegisub_cpp_pch = ['src/include/agi_pre.h']
+ aegisub_c_pch = ['src/include/agi_pre_c.h']
+
+-aegisub = executable('aegisub', aegisub_src, version_h, acconf, resrc,
++aegisub = executable('aegisub', aegisub_src, version_h, resrc, aegisub_order_dep,
++ c_args: aegisub_defines,
++ cpp_args: aegisub_defines,
+ link_with: [libresrc, libaegisub],
+ include_directories: [libaegisub_inc, libresrc_inc, version_inc, deps_inc, include_directories('src')],
+ cpp_pch: aegisub_cpp_pch,
+diff --git a/src/ass_parser.h b/src/ass_parser.h
+index 9cf6f5017..c621059b6 100644
+--- a/src/ass_parser.h
++++ b/src/ass_parser.h
+@@ -13,6 +13,7 @@
+ // OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+ #include <memory>
++#include <string>
+
+ class AssAttachment;
+ class AssFile;
+diff --git a/src/ass_style.cpp b/src/ass_style.cpp
+index 33c93b8f3..559cb337c 100644
+--- a/src/ass_style.cpp
++++ b/src/ass_style.cpp
+@@ -40,6 +40,7 @@
+ #include <libaegisub/format.h>
+ #include <libaegisub/split.h>
+
++#include <algorithm>
+ #include <boost/lexical_cast.hpp>
+ #include <wx/intl.h>
+
+diff --git a/src/audio_timing_dialogue.cpp b/src/audio_timing_dialogue.cpp
+index fd15582b1..38b1617c0 100644
+--- a/src/audio_timing_dialogue.cpp
++++ b/src/audio_timing_dialogue.cpp
+@@ -39,9 +39,12 @@
+ #include "selection_controller.h"
+ #include "utils.h"
+
++#include <list>
++
+ #include <libaegisub/ass/time.h>
+
+ #include <boost/range/algorithm.hpp>
++
+ #include <wx/pen.h>
+
+ namespace {
+diff --git a/src/base_grid.h b/src/base_grid.h
+index 2f28a21dc..017d8b35c 100644
+--- a/src/base_grid.h
++++ b/src/base_grid.h
+@@ -32,6 +32,8 @@
+ #include <memory>
+ #include <string>
+ #include <vector>
++#include <wx/brush.h>
++#include <wx/scrolbar.h>
+ #include <wx/window.h>
+
+ namespace agi {
+diff --git a/src/command/command.h b/src/command/command.h
+index c90b230a0..b9582630b 100644
+--- a/src/command/command.h
++++ b/src/command/command.h
+@@ -17,6 +17,7 @@
+ /// @ingroup command
+
+ #include <map>
++#include <memory>
+ #include <string>
+ #include <vector>
+
+diff --git a/src/dialog_colorpicker.cpp b/src/dialog_colorpicker.cpp
+index 3430c48bd..4ba6f7f8c 100644
+--- a/src/dialog_colorpicker.cpp
++++ b/src/dialog_colorpicker.cpp
+@@ -38,6 +38,7 @@
+
+ #include <libaegisub/scoped_ptr.h>
+
++#include <algorithm>
+ #include <memory>
+ #include <vector>
+
+diff --git a/src/frame_main.cpp b/src/frame_main.cpp
+index 58a8a3d0f..d20bc44fb 100644
+--- a/src/frame_main.cpp
++++ b/src/frame_main.cpp
+@@ -67,6 +67,7 @@
+ #include <wx/sizer.h>
+ #include <wx/statline.h>
+ #include <wx/sysopt.h>
++#include <wx/toolbar.h>
+
+ enum {
+ ID_APP_TIMER_STATUSCLEAR = 12002
+diff --git a/src/main.h b/src/main.h
+index de65b65da..35b7be1c9 100644
+--- a/src/main.h
++++ b/src/main.h
+@@ -31,6 +31,8 @@
+
+ #include "aegisublocale.h"
+
++#include <vector>
++
+ #ifndef wxUSE_EXCEPTIONS
+ #error wxWidgets is compiled without exceptions support. Aegisub requires exceptions support in wxWidgets to run safely.
+ #endif
+diff --git a/src/preferences.cpp b/src/preferences.cpp
+index 1b0033b05..ccc52a905 100644
+--- a/src/preferences.cpp
++++ b/src/preferences.cpp
+@@ -47,6 +47,7 @@
+
+ #include <wx/checkbox.h>
+ #include <wx/combobox.h>
++#include <wx/dc.h>
+ #include <wx/event.h>
+ #include <wx/listctrl.h>
+ #include <wx/msgdlg.h>
+diff --git a/src/spline_curve.cpp b/src/spline_curve.cpp
+index b1a799a0f..8020e5bd3 100644
+--- a/src/spline_curve.cpp
++++ b/src/spline_curve.cpp
+@@ -35,6 +35,7 @@
+ #include "spline_curve.h"
+ #include "utils.h"
+
++#include <algorithm>
+ #include <limits>
+
+ SplineCurve::SplineCurve(Vector2D p1) : p1(p1), type(POINT) { }
+diff --git a/src/utils.cpp b/src/utils.cpp
+index 0a307f10c..5929d6171 100644
+--- a/src/utils.cpp
++++ b/src/utils.cpp
+@@ -41,6 +41,7 @@
+ #ifdef __UNIX__
+ #include <unistd.h>
+ #endif
++#include <algorithm>
+ #include <map>
+ #include <unicode/locid.h>
+ #include <unicode/unistr.h>
+diff --git a/src/video_frame.h b/src/video_frame.h
+index 2a47ed69c..c57c92dc2 100644
+--- a/src/video_frame.h
++++ b/src/video_frame.h
+@@ -14,6 +14,7 @@
+ //
+ // Aegisub Project http://www.aegisub.org/
+
++#include <stddef.h>
+ #include <vector>
+
+ class wxImage;
diff --git a/media-video/aegisub/files/3.4.2/git_version.h b/media-video/aegisub/files/3.4.2/git_version.h
new file mode 100644
index 000000000000..f03726ff0de6
--- /dev/null
+++ b/media-video/aegisub/files/3.4.2/git_version.h
@@ -0,0 +1,5 @@
+#define BUILD_GIT_VERSION_NUMBER 342
+#define BUILD_GIT_VERSION_STRING "3.4.2"
+#define TAGGED_RELEASE 0
+#define INSTALLER_VERSION "0.0.0"
+#define RESOURCE_BASE_VERSION 0, 0, 0