diff options
author | Nick Sarnie <sarnex@gentoo.org> | 2021-01-10 19:22:15 -0500 |
---|---|---|
committer | Nick Sarnie <sarnex@gentoo.org> | 2021-01-10 19:23:43 -0500 |
commit | 816dd08c61d368ee4f3e82a3bccde83a86bf9de6 (patch) | |
tree | 43239954caf1584390ed5dd2cfab82c20c6c5248 /media-video | |
parent | profiles/package.mask: mask games-fps/duke3d-demodata (diff) | |
download | gentoo-816dd08c61d368ee4f3e82a3bccde83a86bf9de6.tar.gz gentoo-816dd08c61d368ee4f3e82a3bccde83a86bf9de6.tar.bz2 gentoo-816dd08c61d368ee4f3e82a3bccde83a86bf9de6.zip |
media-video/aegisub: Fix build with dash
Closes: https://bugs.gentoo.org/764881
Package-Manager: Portage-3.0.12, Repoman-3.0.2
Signed-off-by: Nick Sarnie <sarnex@gentoo.org>
Diffstat (limited to 'media-video')
2 files changed, 205 insertions, 0 deletions
diff --git a/media-video/aegisub/aegisub-3.2.2_p20160518-r101.ebuild b/media-video/aegisub/aegisub-3.2.2_p20160518-r101.ebuild new file mode 100644 index 000000000000..4f54947828cf --- /dev/null +++ b/media-video/aegisub/aegisub-3.2.2_p20160518-r101.ebuild @@ -0,0 +1,158 @@ +# Copyright 1999-2021 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" + "${FILESDIR}/${PV}/${P}-avoid-conveying-positional-parameters-to-source-builtin.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/files/3.2.2_p20160518/aegisub-3.2.2_p20160518-avoid-conveying-positional-parameters-to-source-builtin.patch b/media-video/aegisub/files/3.2.2_p20160518/aegisub-3.2.2_p20160518-avoid-conveying-positional-parameters-to-source-builtin.patch new file mode 100644 index 000000000000..bc0a669fda63 --- /dev/null +++ b/media-video/aegisub/files/3.2.2_p20160518/aegisub-3.2.2_p20160518-avoid-conveying-positional-parameters-to-source-builtin.patch @@ -0,0 +1,47 @@ +commit c663944bb4a9040e49811037fc3984d2d15764be +Author: Kerin Millar <kfm@plushkava.net> +Date: Sun Jan 10 22:52:26 2021 +0000 + + Don't convey positional parameters to the . builtin + + To do so is a bashism; POSIX makes no provision for it. Fortunately, there + is no need to begin with. The srcdir variable is already defined at the + point that build/version.sh is sourced from the configure script and, thus, + does not need to be passed. + + As version.sh is only ever sourced, that would be a valid fix in and as of + itself. However, because version.sh has the executable bit set, there is an + implication that the original author may have intended for it to be so; for + testing purposes, perhaps. So as to continue to support this potential use + case, have the script retain the ability to assign the value of $1 to + srcdir, provided that srcdir is empty and provided that at least one + positional parameter was specified. + + Signed-off-by: Kerin Millar <kfm@plushkava.net> + Closes: https://bugs.gentoo.org/764881 + +diff --git a/build/version.sh b/build/version.sh +index 8cea0a3f3..614c74615 100755 +--- a/build/version.sh ++++ b/build/version.sh +@@ -1,4 +1,6 @@ +-srcdir="$1" ++if [ -z "$srcdir" ] && [ $# -gt 0 ]; then ++ srcdir=$1 ++fi + + # If no git repo try to read from the existing git_version.h, for building from tarballs + if ! test -d "${srcdir}/.git"; then +diff --git a/configure.ac b/configure.ac +index 1d8c93067..d50541f40 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -117,7 +117,7 @@ PKG_PROG_PKG_CONFIG([pkgconfig_required_version]) + # Developers only + ################# + AC_MSG_CHECKING([for version]) +-. $srcdir/build/version.sh "$srcdir" ++. $srcdir/build/version.sh + AC_MSG_RESULT([$BUILD_GIT_VERSION_STRING $VERSION_SOURCE]) + + AC_MSG_CHECKING([for build date]) |