diff options
author | Marek Szuba <marecki@gentoo.org> | 2020-12-09 22:17:42 +0100 |
---|---|---|
committer | Marek Szuba <marecki@gentoo.org> | 2020-12-09 22:32:28 +0100 |
commit | 680e0fcee66844ad0a0b9d4987a63fc583c64b9e (patch) | |
tree | a00762773c561d50075a6910e70447ed534fd939 /media-video | |
parent | sys-cluster/kube-scheduler: 1.20.0 bump (diff) | |
download | gentoo-680e0fcee66844ad0a0b9d4987a63fc583c64b9e.tar.gz gentoo-680e0fcee66844ad0a0b9d4987a63fc583c64b9e.tar.bz2 gentoo-680e0fcee66844ad0a0b9d4987a63fc583c64b9e.zip |
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@gentoo.org>
Diffstat (limited to 'media-video')
3 files changed, 187 insertions, 13 deletions
diff --git a/media-video/aegisub/aegisub-3.2.2_p20160518-r100.ebuild b/media-video/aegisub/aegisub-3.2.2_p20160518-r100.ebuild new file mode 100644 index 000000000000..fa12808a3cd6 --- /dev/null +++ b/media-video/aegisub/aegisub-3.2.2_p20160518-r100.ebuild @@ -0,0 +1,157 @@ +# Copyright 1999-2020 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 l10n lua-single 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? ( 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,threads] + 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" +) + +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 + } + + l10n_find_plocales_changes 'po' '' '.po' + l10n_for_each_disabled_locale_do 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/aegisub-9999.ebuild b/media-video/aegisub/aegisub-9999.ebuild index dedf8a1e8582..bcc8a14c9a32 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 000000000000..c441b8fe083b --- /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 + |