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