summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIlya Tumaykin <itumaykin@gmail.com>2016-06-04 20:51:57 +0300
committerPatrice Clement <monsieurp@gentoo.org>2016-06-28 17:38:17 +0000
commit856366c5b4b00916caa4263b9970d29d0b9838e8 (patch)
tree5376b488b17dc858e73fbc93a89312bd1d3a2584
parentprofiles: mask test USE for aegisub on x86 (diff)
downloadgentoo-856366c5b4b00916caa4263b9970d29d0b9838e8.tar.gz
gentoo-856366c5b4b00916caa4263b9970d29d0b9838e8.tar.bz2
gentoo-856366c5b4b00916caa4263b9970d29d0b9838e8.zip
media-video/aegisub: verbump to 3.2.2_p20160518
Major revamp of the ebuild and the patchset: - EAPI=6; - add testing support; - remove ffmpeg USE and depend on ffmpegsource unconditionally (otherwise aegisub can only open blank 'videos' without any video); - cleanup dependencies; - update the patchset (all changes were submitted upstream); - update LICENSE. Package-Manager: portage-2.3.0_rc1 Signed-off-by: Patrice Clement <monsieurp@gentoo.org>
-rw-r--r--media-video/aegisub/Manifest1
-rw-r--r--media-video/aegisub/aegisub-3.2.2_p20160518.ebuild138
-rw-r--r--media-video/aegisub/files/3.2.2_p20160518/aegisub-3.2.2_p20160518-fix-system-luajit-build.patch121
-rw-r--r--media-video/aegisub/files/3.2.2_p20160518/aegisub-3.2.2_p20160518-respect-compiler-flags.patch53
-rw-r--r--media-video/aegisub/files/3.2.2_p20160518/aegisub-3.2.2_p20160518-support-system-gtest.patch75
5 files changed, 388 insertions, 0 deletions
diff --git a/media-video/aegisub/Manifest b/media-video/aegisub/Manifest
index d977b38f821c..2db679d59bf5 100644
--- a/media-video/aegisub/Manifest
+++ b/media-video/aegisub/Manifest
@@ -1,2 +1,3 @@
DIST aegisub-3.2.2.tar.xz 5252052 SHA256 c55e33945b82d8513c02ea6e782f0d72c726adcd3707e95b8c0022f6151e6885 SHA512 54f825e52f238fef8d5cc31c37436e21355aee27883347f905271e5d2a8ff2a77e1b67d5aef38b0f8468bd0bad851fe944e02de27ec96310b902fbe5b1086722 WHIRLPOOL fe948edbb01f11385e14d1912b73942605df18325fcd95f4284a3c2edb73778d90d73038ac4a062e211fd56879590040e3c558fe1e361ec9fe2eee6a5c016448
DIST aegisub-3.2.2_p20160306.tar.gz 7436713 SHA256 1b70f67c3b3d6ecce482bc1f4beb1ceffd4c523aa060556658e403ea98fcc58c SHA512 815775b64b1ad5cd09eda6106561a8a0d4dc129d4c2e08e057eab881289526a7b67bab2f4d2f48748ef2015ea21f2839ed8f84d168bf9127c62c9a35caa1abd5 WHIRLPOOL caaa6b1d69c7e4d1da4abfd0382d263585c5216d9ed5e63f515d8bce98b2e0dad2848552f3f097a8db9e39dad5d2c00d3b752f0407490d0d2c777aaa8fc6dc38
+DIST aegisub-3.2.2_p20160518.tar.gz 7438734 SHA256 744318ce8be1afb21fbd6b0ce6d407a6f42c442db0df10c7cf89692a5bc8ca31 SHA512 8d8775ba0a12735a9756b9abfd65c89519dae4e21afcaedbd18985d1c1021975b1ae909b3bef1121b707c626e1711d56f1823f3b4746eab49e8386536a5e84e6 WHIRLPOOL 0d46799009c72cac1d6df89f4ffe5110d904e671175380e20605683b6a2f3ccdd46855cf98ebac8f0088c7a928b82547557afc8214b2fce85aed759aa5e9e4ab
diff --git a/media-video/aegisub/aegisub-3.2.2_p20160518.ebuild b/media-video/aegisub/aegisub-3.2.2_p20160518.ebuild
new file mode 100644
index 000000000000..861014418874
--- /dev/null
+++ b/media-video/aegisub/aegisub-3.2.2_p20160518.ebuild
@@ -0,0 +1,138 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+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 fdo-mime flag-o-matic gnome2-utils l10n wxwidgets 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"
+
+# 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="
+ 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:=
+ 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? ( dev-libs/uchardet )
+"
+DEPEND="${RDEPEND}
+ dev-util/intltool
+ sys-devel/gettext
+ virtual/pkgconfig
+ oss? ( virtual/os-headers )
+ test? (
+ ~dev-cpp/gtest-1.7.0
+ dev-lua/busted
+ dev-lua/luarocks
+ )
+"
+
+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"
+)
+
+pkg_pretend() {
+ 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
+}
+
+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"
+
+ 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_preinst() {
+ gnome2_icon_savelist
+}
+
+pkg_postinst() {
+ fdo-mime_desktop_database_update
+ gnome2_icon_cache_update
+}
+
+pkg_postrm() {
+ fdo-mime_desktop_database_update
+ gnome2_icon_cache_update
+}
diff --git a/media-video/aegisub/files/3.2.2_p20160518/aegisub-3.2.2_p20160518-fix-system-luajit-build.patch b/media-video/aegisub/files/3.2.2_p20160518/aegisub-3.2.2_p20160518-fix-system-luajit-build.patch
new file mode 100644
index 000000000000..42b57e5fcf45
--- /dev/null
+++ b/media-video/aegisub/files/3.2.2_p20160518/aegisub-3.2.2_p20160518-fix-system-luajit-build.patch
@@ -0,0 +1,121 @@
+See http://devel.aegisub.org/ticket/1904
+and http://devel.aegisub.org/ticket/1913
+and http://devel.aegisub.org/ticket/1922
+
+diff --git a/Makefile.inc.in b/Makefile.inc.in
+index d8b3f4a..52e4cf6 100644
+--- a/Makefile.inc.in
++++ b/Makefile.inc.in
+@@ -9,6 +9,7 @@ HAVE_OPENAL = @with_openal@
+ HAVE_OSS = @with_oss@
+ HAVE_PORTAUDIO = @with_portaudio@
+ HAVE_UCHARDET = @with_uchardet@
++SYSTEM_LUAJIT = @with_system_luajit@
+
+ ##############
+ # BUILD OUTPUT
+diff --git a/automation/Makefile b/automation/Makefile
+index 5483dbd..1231aab 100644
+--- a/automation/Makefile
++++ b/automation/Makefile
+@@ -12,10 +12,16 @@ DATA_AUTOMATION_INSTALLED = $(addprefix $(DESTDIR)$(P_DATA)/automation/, $(DATA_
+ $(DESTDIR)$(P_DATA)/automation/%: $(d)%
+ $(MKDIR_INSTALL)
+
+-aegisub-lua_OBJ := $(d)tests/aegisub.o $(TOP)lib/libaegisub.a $(TOP)lib/libluabins.a $(LIBS_LUA)
++aegisub-lua_OBJ := $(d)tests/aegisub.o $(TOP)lib/libaegisub.a $(TOP)lib/libluabins.a
+ aegisub-lua_CPPFLAGS := $(CPPFLAGS_BOOST) $(CFLAGS_LUA) -I$(TOP)libaegisub/include -I$(TOP)src $(CXXFLAGS_WX)
+ aegisub-lua_LIBS := $(LIBS_WX) $(LIBS_BOOST) $(LIBS_ICU) $(LIBS_PTHREAD)
+
++ifeq (no, $(SYSTEM_LUAJIT))
++aegisub-lua_OBJ += $(LIBS_LUA)
++else
++aegisub-lua_LIBS += $(LIBS_LUA)
++endif
++
+ PROGRAM += $(d)aegisub-lua
+
+ test-automation: $(PROGRAM)
+diff --git a/configure.ac b/configure.ac
+index 1649efc..81b1413 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -429,13 +429,15 @@ AS_IF([test $with_system_luajit = no],
+ [AC_SUBST([LUAJIT_CFLAGS], ['-I$(TOP)vendor/luajit/include'])
+ AC_SUBST([LUAJIT_LIBS], ['$(TOP)vendor/luajit/src/libluajit.a'])])
+
++AC_SUBST(with_system_luajit)
++
+ # We also need a Lua binary to run part of the build system
+ # Which version doesn't matter as the scripts are portable between them
+-AC_CHECK_PROGS([LUA], [lua luajit lua5.3 lua-5.3 lua5.2 lua-5.2 lua5.1 lua-5.1])
++AC_PATH_PROGS([LUA], [luajit lua lua5.3 lua-5.3 lua5.2 lua-5.2 lua5.1 lua-5.1])
+
+ # If the user doesn't have an installed copy of Lua, just use the one built
+ # as part of building LuaJIT
+-AS_IF([test -z $LUA], [LUA="$srcdir/vendor/luajit/src/host/minilua"])
++AS_IF([test -z $LUA], [LUA='$(TOP)vendor/luajit/src/host/minilua'])
+
+ ######################################################
+ # Debugging support
+diff --git a/header.mk b/header.mk
+index 613b38f..a9ce1d7 100644
+--- a/header.mk
++++ b/header.mk
+@@ -13,7 +13,10 @@ subdirs := \
+ tests \
+ tools \
+ vendor/luabins \
+- vendor/luajit
++
++ifeq (no, $(SYSTEM_LUAJIT))
++subdirs += vendor/luajit
++endif
+
+ subdirs := $(addprefix $(TOP),$(addsuffix /Makefile,$(subdirs)))
+
+diff --git a/src/Makefile b/src/Makefile
+index 0ee6c84..1a6f015 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -6,7 +6,7 @@ src_CPPFLAGS := -I$(d) -I.. -I$(d)include -I$(TOP)libaegisub/include -I$(TOP)bui
+ $(CFLAGS_PTHREAD) $(CFLAGS_FFTW3) $(CFLAGS_ICU) $(CPPFLAGS_BOOST)
+ src_CXXFLAGS := $(CXXFLAGS_WX)
+ src_LIBS := $(LIBS_GL) $(LIBS_PTHREAD) $(LIBS_WX) $(LIBS_FREETYPE) \
+- $(LIBS_LIBASS) $(LIBS_FONTCONFIG) $(LIBS_FFTW3) $(LIBS_BOOST) $(LIBS_ICU)
++ $(LIBS_LIBASS) $(LIBS_FONTCONFIG) $(LIBS_FFTW3) $(LIBS_BOOST) $(LIBS_ICU)
+ src_PCH := $(d)agi_pre.h
+ src_INSTALLNAME := $(AEGISUB_COMMAND)
+
+@@ -111,11 +111,16 @@ src_OBJ := \
+ $(d)video_provider_yuv4mpeg.o \
+ $(d)video_slider.o \
+ $(d)visual_feature.o \
+- $(LIBS_LUA) \
+ $(TOP)lib/libaegisub.a \
+ $(TOP)lib/libluabins.a \
+ $(TOP)lib/libresrc.a \
+
++ifeq (no, $(SYSTEM_LUAJIT))
++src_OBJ += $(LIBS_LUA)
++else
++src_LIBS += $(LIBS_LUA)
++endif
++
+ ifeq (yes, $(BUILD_DARWIN))
+ src_OBJ += $(d)font_file_lister_coretext.o
+ src_OBJ += $(subst .mm,.o,$(wildcard $(d)osx/*.mm))
+diff --git a/tools/Makefile b/tools/Makefile
+index de6166a..e3d108a 100644
+--- a/tools/Makefile
++++ b/tools/Makefile
+@@ -12,6 +12,8 @@ repack-thes-dict_CPPFLAGS := -I$(TOP) -I$(TOP)libaegisub/include $(CFLAGS_ICU)
+
+ PROGRAM += $(d)repack-thes-dict
+
+-$(TOP)tools/respack.lua: $(shell command -v "$(BIN_LUA)")
++ifeq (no, $(SYSTEM_LUAJIT))
++$(TOP)tools/respack.lua: $(BIN_LUA)
++endif
+
+ include $(TOP)Makefile.target
diff --git a/media-video/aegisub/files/3.2.2_p20160518/aegisub-3.2.2_p20160518-respect-compiler-flags.patch b/media-video/aegisub/files/3.2.2_p20160518/aegisub-3.2.2_p20160518-respect-compiler-flags.patch
new file mode 100644
index 000000000000..90e57f178dc4
--- /dev/null
+++ b/media-video/aegisub/files/3.2.2_p20160518/aegisub-3.2.2_p20160518-respect-compiler-flags.patch
@@ -0,0 +1,53 @@
+See http://devel.aegisub.org/ticket/1899
+and http://devel.aegisub.org/ticket/1900
+
+diff --git a/configure.ac b/configure.ac
+index 1649efc..2f4470b 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -133,20 +133,17 @@ AS_IF([test x$build_darwin != xyes], [
+ AC_ARG_ENABLE(compiler-flags, AS_HELP_STRING([--disable-compiler-flags],[Disable *all* additional compiler flags. [no]]))
+
+ AS_IF([test x$enable_compiler_flags != xno], [
+- CFLAGS="$CFLAGS -Wall -Wextra -Wno-unused-parameter -std=gnu99 -pipe -g"
+- CXXFLAGS="$CXXFLAGS -Wall -Wextra -Wno-unused-parameter -fno-strict-aliasing -pipe -g"
++ CFLAGS="$CFLAGS -Wall -Wextra -Wno-unused-parameter"
++ CXXFLAGS="$CXXFLAGS -Wall -Wextra -Wno-unused-parameter -fno-strict-aliasing"
++ AC_C_FLAG([-std=gnu99])
+ AC_CXX_FLAG([-std=c++11])
+- AC_CXX_FLAG([-Wno-c++11-narrowing])
+ AC_C_FLAG([-Wno-unused-local-typedefs])
+ AC_CXX_FLAG([-Wno-unused-local-typedefs])
+
+ # -O* messes with debugging.
+ AS_IF([test x$enable_debug = xyes], [
+- CFLAGS="$CFLAGS -O0"
+- CXXFLAGS="$CXXFLAGS -O0"
+- ], [
+- CFLAGS="$CFLAGS -O3"
+- CXXFLAGS="$CXXFLAGS -O3"
++ CFLAGS="$CFLAGS -O0 -g"
++ CXXFLAGS="$CXXFLAGS -O0 -g"
+ ])
+ ])
+
+diff --git a/src/Makefile b/src/Makefile
+index 0ee6c84..cad213b 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -188,14 +188,13 @@ endif
+ #####################
+ # SOURCE-LEVEL CFLAGS
+ #####################
+-$(d)MatroskaParser.o_FLAGS := -Wno-sometimes-uninitialized
+ $(d)audio_player.o_FLAGS := $(CFLAGS_ALSA) $(CFLAGS_PORTAUDIO) $(CFLAGS_LIBPULSE) $(CFLAGS_OPENAL)
+ $(d)audio_provider_factory.o_FLAGS := $(CFLAGS_FFMS2)
+ $(d)auto4_base.o_FLAGS := $(CFLAGS_FREETYPE)
+ $(d)charset_detect.o_FLAGS := -D_X86_
+ $(d)font_file_lister_fontconfig.o_FLAGS := $(CFLAGS_FONTCONFIG)
+ $(d)subtitles_provider.o_FLAGS := $(CFLAGS_LIBASS)
+-$(d)subtitles_provider_libass.o_FLAGS := $(CFLAGS_LIBASS) -Wno-c++11-narrowing
++$(d)subtitles_provider_libass.o_FLAGS := $(CFLAGS_LIBASS)
+ $(d)text_file_reader.o_FLAGS := -D_X86_
+ $(d)video_provider_manager.o_FLAGS := $(CFLAGS_FFMS2)
+ $(d)auto4_lua.o_FLAGS := $(CFLAGS_LUA)
diff --git a/media-video/aegisub/files/3.2.2_p20160518/aegisub-3.2.2_p20160518-support-system-gtest.patch b/media-video/aegisub/files/3.2.2_p20160518/aegisub-3.2.2_p20160518-support-system-gtest.patch
new file mode 100644
index 000000000000..8209ac5ec7c3
--- /dev/null
+++ b/media-video/aegisub/files/3.2.2_p20160518/aegisub-3.2.2_p20160518-support-system-gtest.patch
@@ -0,0 +1,75 @@
+commit 83f868ea8decbbe97891631fe142e84c883ee33d
+Author: Ilya Tumaykin <itumaykin@gmail.com>
+Date: Wed Jun 1 20:00:37 2016 +0300
+
+Allow to build and run tests with a system copy of gtest (googletest)
+
+Also add LIBS_UCHARDET to the mix only when uchardet is requested.
+
+Closes #1923
+
+Bug: http://devel.aegisub.org/ticket/1923
+---
+
+diff --git a/tests/Makefile b/tests/Makefile
+index 8c30c1d..c5bf049 100644
+--- a/tests/Makefile
++++ b/tests/Makefile
+@@ -1,24 +1,45 @@
+ include $(dir $(lastword $(MAKEFILE_LIST)))../header.mk
+
++WITH_SYSTEM_GTEST ?= no
++
++ifeq (no, $(WITH_SYSTEM_GTEST))
+ GTEST_ROOT ?= $(TOP)vendor/googletest
+ GTEST_FILE := ${GTEST_ROOT}/src/gtest-all
++GTEST_CPPFLAGS := -I$(GTEST_ROOT) -I$(GTEST_ROOT)/include
++GTEST_CXXFLAGS := $(CFLAGS_PTHREAD)
++GTEST_LIBS := $(LIBS_PTHREAD)
++else
++GTEST_CPPFLAGS := $(shell gtest-config --cppflags)
++GTEST_CXXFLAGS := $(shell gtest-config --cxxflags)
++GTEST_LIBS := $(shell gtest-config --libs)
++endif
+
+ run_PCH := $(d)support/tests_pre.h
+ run_CPPFLAGS := -I$(TOP)libaegisub/include -I$(TOP) -I$(d)support \
+- -I$(GTEST_ROOT) -I$(GTEST_ROOT)/include $(CPPFLAGS_BOOST) $(CFLAGS_LUA)
+-run_CXXFLAGS := -Wno-unused-value -Wno-sign-compare
+-run_LIBS := $(LIBS_BOOST) $(LIBS_ICU) $(LIBS_UCHARDET) $(LIBS_PTHREAD)
++ $(CPPFLAGS_BOOST) $(CFLAGS_ICU) $(CFLAGS_LUA) $(GTEST_CPPFLAGS)
++run_CXXFLAGS := -Wno-unused-value -Wno-sign-compare $(GTEST_CXXFLAGS)
++run_LIBS := $(LIBS_BOOST) $(LIBS_ICU) $(GTEST_LIBS)
+ run_OBJ := \
+ $(subst .cpp,.o,$(wildcard $(d)tests/*.cpp)) \
+ $(d)support/main.o \
+ $(d)support/util.o \
+- $(TOP)lib/libaegisub.a \
+- $(GTEST_FILE).o
++ $(TOP)lib/libaegisub.a
+
++ifeq (yes, $(HAVE_UCHARDET))
++run_LIBS += $(LIBS_UCHARDET)
++endif
++
++ifeq (no, $(WITH_SYSTEM_GTEST))
++run_OBJ += $(GTEST_FILE).o
+ # This bit of goofiness is to make it only try to build the tests if google
+ # test can be found and silently skip it if not, by using $(wildcard) to check
+ # for file existence
+ PROGRAM += $(subst $(GTEST_FILE).cc,$(d)run,$(wildcard $(GTEST_FILE).cc))
++test: $(subst $(GTEST_FILE).cc,test-libaegisub,$(wildcard $(GTEST_FILE).cc))
++else
++PROGRAM += $(d)run
++test: test-libaegisub
++endif
+
+ ifeq (yes, $(BUILD_DARWIN))
+ run_LIBS += -framework ApplicationServices -framework Foundation
+@@ -31,6 +52,4 @@ gtest_filter ?= *
+ test-libaegisub: $(d)run $(d)data
+ cd $(TOP)tests; ./run --gtest_filter="$(gtest_filter)"
+
+-test: $(subst $(GTEST_FILE).cc,test-libaegisub,$(wildcard $(GTEST_FILE).cc))
+-
+ include $(TOP)Makefile.target