commit:     680e0fcee66844ad0a0b9d4987a63fc583c64b9e
Author:     Marek Szuba <marecki <AT> gentoo <DOT> org>
AuthorDate: Wed Dec  9 21:17:42 2020 +0000
Commit:     Marek Szuba <marecki <AT> gentoo <DOT> org>
CommitDate: Wed Dec  9 21:32:28 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=680e0fce

media-video/aegisub: migrate to lua-single.eclass

Only supports LuaJIT so rather simple, the only unusual thing was having
to patch luarocks invocatio in tests to ensure the use of the correct
Lua ABI. Builds, tests and installs fine.

Both the latest release and the live ebuild.

Closes: https://bugs.gentoo.org/752963
Signed-off-by: Marek Szuba <marecki <AT> gentoo.org>

 ....ebuild => aegisub-3.2.2_p20160518-r100.ebuild} | 85 +++++++++++++++-------
 media-video/aegisub/aegisub-9999.ebuild            | 29 ++++----
 ....2.2_p20160518-tests_luarocks_lua_version.patch | 14 ++++
 profiles/package.mask                              |  1 +
 4 files changed, 91 insertions(+), 38 deletions(-)

diff --git a/media-video/aegisub/aegisub-9999.ebuild 
b/media-video/aegisub/aegisub-3.2.2_p20160518-r100.ebuild
similarity index 50%
copy from media-video/aegisub/aegisub-9999.ebuild
copy to media-video/aegisub/aegisub-3.2.2_p20160518-r100.ebuild
index dedf8a1e858..fa12808a3cd 100644
--- a/media-video/aegisub/aegisub-9999.ebuild
+++ b/media-video/aegisub/aegisub-3.2.2_p20160518-r100.ebuild
@@ -1,31 +1,32 @@
 # Copyright 1999-2020 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
-EAPI=6
+EAPI=7
 
-WX_GTK_VER=3.0-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 uk_UA vi zh_CN zh_TW"
+LUA_COMPAT=( luajit )
+LUA_REQ_USE="lua52compat"
 
-inherit autotools gnome2-utils l10n wxwidgets xdg-utils git-r3
+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 l10n lua-single wxwidgets xdg-utils vcs-snapshot
 
 DESCRIPTION="Advanced subtitle editor"
 HOMEPAGE="http://www.aegisub.org/ https://github.com/Aegisub/Aegisub";
-EGIT_REPO_URI="https://github.com/${PN^}/${PN^}.git";
-# Submodules are used to pull bundled libraries.
-EGIT_SUBMODULES=()
+SRC_URI="https://github.com/Aegisub/Aegisub/archive/${COMMIT_ID}.tar.gz -> 
${P}.tar.gz"
 
 LICENSE="BSD MIT"
 SLOT="0"
-KEYWORDS=""
-IUSE="+alsa debug +fftw openal oss portaudio pulseaudio spell +uchardet"
-RESTRICT="test"
+KEYWORDS="~amd64 ~x86"
+IUSE="+alsa debug +fftw openal oss portaudio pulseaudio spell test +uchardet"
+RESTRICT="!test? ( 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="
+RDEPEND="${LUA_DEPS}
        x11-libs/wxGTK:${WX_GTK_VER}[X,opengl,debug?]
-       dev-lang/luajit:2[lua52compat]
        dev-libs/boost:=[icu,nls,threads]
        dev-libs/icu:=
        media-libs/ffmpegsource:=
@@ -43,18 +44,52 @@ RDEPEND="
        spell? ( app-text/hunspell:= )
        uchardet? ( app-i18n/uchardet )
 "
-DEPEND="${RDEPEND}
-       dev-util/intltool
+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="|| ( alsa openal oss portaudio pulseaudio )"
+REQUIRED_USE="${LUA_REQUIRED_USE}
+       || ( alsa openal oss portaudio pulseaudio )"
 
 PATCHES=(
-       "${FILESDIR}/${P}-git.patch"
+       "${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"
 )
 
+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
 
@@ -72,6 +107,12 @@ src_prepare() {
        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() {
@@ -92,14 +133,12 @@ src_configure() {
                $(use_with pulseaudio libpulse)
                $(use_with spell hunspell)
                $(use_with uchardet)
-               --disable-compiler-flags
        )
        econf "${myeconfargs[@]}"
 }
 
 src_compile() {
-       # Concurrent builds seem to break the build process.
-       emake -j1
+       emake WITH_SYSTEM_GTEST=$(usex test)
 }
 
 src_test() {
@@ -107,16 +146,12 @@ src_test() {
        emake test-libaegisub
 }
 
-pkg_preinst() {
-       gnome2_icon_savelist
-}
-
 pkg_postinst() {
-       gnome2_icon_cache_update
+       xdg_icon_cache_update
        xdg_desktop_database_update
 }
 
 pkg_postrm() {
-       gnome2_icon_cache_update
+       xdg_icon_cache_update
        xdg_desktop_database_update
 }

diff --git a/media-video/aegisub/aegisub-9999.ebuild 
b/media-video/aegisub/aegisub-9999.ebuild
index dedf8a1e858..bcc8a14c9a3 100644
--- a/media-video/aegisub/aegisub-9999.ebuild
+++ b/media-video/aegisub/aegisub-9999.ebuild
@@ -1,12 +1,15 @@
 # Copyright 1999-2020 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
-EAPI=6
+EAPI=7
+
+LUA_COMPAT=( luajit )
+LUA_REQ_USE="lua52compat"
 
 WX_GTK_VER=3.0-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 uk_UA vi zh_CN zh_TW"
 
-inherit autotools gnome2-utils l10n wxwidgets xdg-utils git-r3
+inherit autotools l10n lua-single wxwidgets xdg-utils git-r3
 
 DESCRIPTION="Advanced subtitle editor"
 HOMEPAGE="http://www.aegisub.org/ https://github.com/Aegisub/Aegisub";
@@ -23,9 +26,8 @@ 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="
+RDEPEND="${LUA_DEPS}
        x11-libs/wxGTK:${WX_GTK_VER}[X,opengl,debug?]
-       dev-lang/luajit:2[lua52compat]
        dev-libs/boost:=[icu,nls,threads]
        dev-libs/icu:=
        media-libs/ffmpegsource:=
@@ -43,18 +45,23 @@ RDEPEND="
        spell? ( app-text/hunspell:= )
        uchardet? ( app-i18n/uchardet )
 "
-DEPEND="${RDEPEND}
-       dev-util/intltool
+DEPEND="${RDEPEND}"
+BDEPEND="dev-util/intltool
        sys-devel/gettext
        virtual/pkgconfig
 "
 
-REQUIRED_USE="|| ( alsa openal oss portaudio pulseaudio )"
+REQUIRED_USE="${LUA_REQUIRED_USE}
+       || ( alsa openal oss portaudio pulseaudio )"
 
 PATCHES=(
        "${FILESDIR}/${P}-git.patch"
 )
 
+pkg_setup() {
+       lua-single_pkg_setup
+}
+
 src_prepare() {
        default_src_prepare
 
@@ -107,16 +114,12 @@ src_test() {
        emake test-libaegisub
 }
 
-pkg_preinst() {
-       gnome2_icon_savelist
-}
-
 pkg_postinst() {
-       gnome2_icon_cache_update
+       xdg_icon_cache_update
        xdg_desktop_database_update
 }
 
 pkg_postrm() {
-       gnome2_icon_cache_update
+       xdg_icon_cache_update
        xdg_desktop_database_update
 }

diff --git 
a/media-video/aegisub/files/3.2.2_p20160518/aegisub-3.2.2_p20160518-tests_luarocks_lua_version.patch
 
b/media-video/aegisub/files/3.2.2_p20160518/aegisub-3.2.2_p20160518-tests_luarocks_lua_version.patch
new file mode 100644
index 00000000000..c441b8fe083
--- /dev/null
+++ 
b/media-video/aegisub/files/3.2.2_p20160518/aegisub-3.2.2_p20160518-tests_luarocks_lua_version.patch
@@ -0,0 +1,14 @@
+Make sure 'luarocks path' outputs the paths for the Lua ABI version
+required by aegisub, not the one used internally by luarocks.
+
+--- a/automation/Makefile
++++ b/automation/Makefile
+@@ -19,7 +19,7 @@
+ PROGRAM += $(d)aegisub-lua
+ 
+ test-automation: $(PROGRAM)
+-      eval `luarocks path`; cd $(TOP)automation; ./aegisub-lua 
tests/busted.lua -p 'moon' tests/modules
++      eval `luarocks --lua-version 5.1 path`; cd $(TOP)automation; 
./aegisub-lua tests/busted.lua -p 'moon' tests/modules
+ 
+ test: test-automation
+ 

diff --git a/profiles/package.mask b/profiles/package.mask
index 4d755fe655f..c488d0933d3 100644
--- a/profiles/package.mask
+++ b/profiles/package.mask
@@ -575,6 +575,7 @@ gnome-base/orbit
 >=media-libs/libquvi-0.9.4-r100
 >=media-libs/libquvi-scripts-0.9.20131130-r100
 >=media-sound/aqualung-1.1-r100
+>=media-video/aegisub-3.2.2_p20160518-r100
 >=media-video/vlc-3.0.11.1-r100
 >=net-analyzer/rrdtool-1.7.2-r100
 >=net-analyzer/snort-2.9.16-r100

Reply via email to