diff options
-rw-r--r-- | .SRCINFO | 9 | ||||
-rw-r--r-- | .gitignore | 5 | ||||
-rw-r--r-- | PKGBUILD | 24 | ||||
-rw-r--r-- | fix_audio_cache.patch | 41 |
4 files changed, 67 insertions, 12 deletions
@@ -1,7 +1,7 @@ pkgbase = aegisub-ttools-meson-git pkgdesc = A general-purpose subtitle editor with ASS/SSA support (TypesettingTools fork, meson branch) - pkgver = 3.2.2.r440.9ebfbf456 - pkgrel = 1 + pkgver = 3.2.2.r441.8b0aaaf7e + pkgrel = 2 url = http://www.aegisub.org arch = x86_64 license = GPL @@ -12,8 +12,6 @@ pkgbase = aegisub-ttools-meson-git makedepends = lua makedepends = mesa makedepends = meson - depends = gcc-libs - depends = glibc depends = boost-libs depends = fontconfig depends = icu @@ -28,8 +26,11 @@ pkgbase = aegisub-ttools-meson-git depends = uchardet provides = aegisub conflicts = aegisub + conflicts = aegisub-git source = aegisub-ttools::git+https://github.com/TypesettingTools/Aegisub.git#branch=meson + source = fix_audio_cache.patch sha256sums = SKIP + sha256sums = 5771cca865098c69a7fe269c30999c84a3a0f90ed0b55c80ec8df61975702a93 pkgname = aegisub-ttools-meson-git diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000000..ecdba67ebdb4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +*.log +src/ +pkg/ +*.pkg.tar* +aegisub-ttools/ @@ -2,23 +2,31 @@ pkgname=aegisub-ttools-meson-git _srcname=aegisub-ttools -pkgver=3.2.2.r440.9ebfbf456 -pkgrel=1 +pkgver=3.2.2.r441.8b0aaaf7e +pkgrel=2 pkgdesc='A general-purpose subtitle editor with ASS/SSA support (TypesettingTools fork, meson branch)' arch=('x86_64') url='http://www.aegisub.org' license=('GPL' 'BSD') -depends=('gcc-libs' 'glibc' 'boost-libs' +depends=('boost-libs' 'fontconfig' 'icu' 'libgl' 'wxgtk3' 'zlib' 'libass.so' # optional by the build system, but don't make much sense to exclude 'alsa-lib' 'libffms2.so' 'fftw' 'hunspell' 'uchardet' + # 'gcc-libs' 'glibc' # part of 'base' # 'luajit' # Arch's luajit isn't compiled in 5.2 mode - ) # I think it depends on something else here too, but not sure what + ) makedepends=('boost' 'git' 'intltool' 'lua' 'mesa' 'meson') provides=('aegisub') -conflicts=('aegisub') -source=("$_srcname::git+https://github.com/TypesettingTools/Aegisub.git#branch=meson") -sha256sums=('SKIP') +conflicts=('aegisub' 'aegisub-git') +source=("$_srcname::git+https://github.com/TypesettingTools/Aegisub.git#branch=meson" + "fix_audio_cache.patch") +sha256sums=('SKIP' + '5771cca865098c69a7fe269c30999c84a3a0f90ed0b55c80ec8df61975702a93') + +# TODO check libiconv dep +# "had to install libiconv manually though since it's not listed as a dependency +# I believe it's an optional dependency +# meson still configures with it" pkgver() { cd "$_srcname" @@ -32,7 +40,7 @@ prepare() { cd "$_srcname" - #patch -p1 < ../fix_version.patch + patch -p1 < ../fix_audio_cache.patch arch-meson builddir -Dportaudio=disabled -Dopenal=disabled } diff --git a/fix_audio_cache.patch b/fix_audio_cache.patch new file mode 100644 index 000000000000..f91247d315c1 --- /dev/null +++ b/fix_audio_cache.patch @@ -0,0 +1,41 @@ +From 1c6999b33a1b66b46143266ba9f842a32e837484 Mon Sep 17 00:00:00 2001 +From: Myaamori <myaamori1993@gmail.com> +Date: Thu, 21 May 2020 05:11:15 +0100 +Subject: [PATCH] Fix mutation while iterating corrupting linked list in + block_cache.h + +--- + src/block_cache.h | 11 +++++++++-- + 1 file changed, 9 insertions(+), 2 deletions(-) + +diff --git a/src/block_cache.h b/src/block_cache.h +index f2ebfa261..4025dac11 100644 +--- a/src/block_cache.h ++++ b/src/block_cache.h +@@ -91,7 +91,6 @@ class DataBlockCache { + size -= (ba.size() - std::count(ba.begin(), ba.end(), nullptr)) * factory.GetBlockSize(); + + ba.clear(); +- age.erase(mb.position); + } + + public: +@@ -150,8 +150,16 @@ + } + + // Remove old entries until we're under the max size +- for (auto it = age.rbegin(); size > max_size && it != age.rend(); ) +- KillMacroBlock(**it++); ++ auto it = age.end(); ++ while (size > max_size) { ++ if (it == age.begin()) ++ break; ++ it--; ++ KillMacroBlock(**it); ++ } ++ ++ while (it != age.end()) ++ it = age.erase(it); + } + + /// @brief Obtain a data block from the cache |