# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 LUA_COMPAT=( luajit ) LUA_REQ_USE="lua52compat" WX_GTK_VER=3.2-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 meson lua-single wxwidgets xdg-utils git-r3 plocale DESCRIPTION="Advanced subtitle editor" HOMEPAGE="http://www.aegisub.org/ https://github.com/Aegisub/Aegisub" EGIT_REPO_URI="https://github.com/odrling/${PN^}.git https://github.com/vapoursynth/bestsource.git" EGIT_BRANCH="master" _depctrlver="0.6.3-alpha" _ffiexpver=b8897ead55b84ec4148e900882bff8336b38f939 _luajsonver=1.3.3 SRC_URI="dependencycontrol? ( https://github.com/TypesettingTools/DependencyControl/archive/v${_depctrlver}.tar.gz -> DependencyControl-${_depctrlver}.tar.gz https://github.com/TypesettingTools/ffi-experiments/archive/${_ffiexpver}.tar.gz -> ffi-experiments-${_ffiexpver}.tar.gz https://github.com/harningt/luajson/archive/${_luajsonver}.tar.gz -> luajson-${_luajsonver}.tar.gz )" # Submodules are used to pull bundled libraries. EGIT_SUBMODULES=() LICENSE="BSD MIT" SLOT="0" IUSE="+alsa +fonts debug +fftw openal oss portaudio pulseaudio spell +uchardet dependencycontrol test vapoursynth +bestsource" 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=" x11-libs/wxGTK:${WX_GTK_VER}[X,opengl,debug?] dev-lang/luajit:2[lua52compat] dev-libs/boost:=[icu,nls] 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-libs/libpulse ) spell? ( app-text/hunspell:= ) uchardet? ( app-i18n/uchardet ) >=dev-libs/openssl-1.0.1h-r2:0 fonts? ( media-fonts/amaranth ) vapoursynth? ( media-libs/vapoursynth ) bestsource? ( dev-libs/jansson ) " DEPEND="${RDEPEND} >=dev-build/meson-0.56.0 dev-util/intltool sys-devel/gettext virtual/pkgconfig dependencycontrol? ( dev-lua/moonscript ) " REQUIRED_USE="|| ( alsa openal oss portaudio pulseaudio )" PATCHES=( ) pkg_setup() { lua-single_pkg_setup } src_unpack() { default_src_unpack git-r3_src_unpack if use bestsource; then bestsource_rev=$(python -c 'import re; from pathlib import Path; f = Path("subprojects/bestsource.wrap"); re_match = re.search(r"revision *= *(.*)", f.read_text()); print(re_match.group(1))') git-r3_fetch "https://github.com/vapoursynth/bestsource.git" "${bestsource_rev}" git-r3_checkout "https://github.com/vapoursynth/bestsource.git" "${S}/subprojects/bestsource" 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 } plocale_find_changes 'po' '' '.po' plocale_for_each_disabled_locale remove_locale use dependencycontrol && sed -i 's|#!/bin/sh|#!/bin/bash|' "${WORKDIR}/ffi-experiments-${_ffiexpver}/BuildLua.sh" } src_configure() { setup-wxwidgets use dependencycontrol && \ EMESON_SOURCE="${WORKDIR}/ffi-experiments-${_ffiexpver}" \ BUILD_DIR="${WORKDIR}/ffi-experiments-build" \ meson_src_configure use bestsource && meson subprojects packagefiles --apply bestsource local emesonargs=( -Dalsa=$(usex alsa enabled disabled) -Dopenal=$(usex openal enabled disabled) -Dlibpulse=$(usex pulseaudio enabled disabled) -Dportaudio=$(usex portaudio enabled disabled) -Dvapoursynth=$(usex vapoursynth enabled disabled) -Dbestsource=$(usex bestsource enabled disabled) #-Doss=$(usex oss true false) -Dfftw3=$(usex fftw enabled disabled) -Dffms2=enabled -Dhunspell=$(usex spell enabled disabled) -Duchardet=$(usex uchardet enabled disabled) -Dsystem_luajit=true -Dlocal_boost=false -Dbuild_appimage=false -Dbuild_osx_bundle=false -Dtests=$(usex test true false) ) meson_src_configure } src_compile() { use dependencycontrol && BUILD_DIR="${WORKDIR}/ffi-experiments-build" meson_src_compile meson_src_compile } src_install() { meson_src_install if use dependencycontrol; then ffi_build="${WORKDIR}/ffi-experiments-build" automation_dir="/usr/share/aegisub/automation" insinto "$automation_dir/include/BM/BadMutex" doins "${ffi_build}/bad-mutex/libBadMutex.so" insinto "$automation_dir/include/BM" doins "${ffi_build}/bad-mutex/BadMutex.lua" insinto "$automation_dir/include/DM/DownloadManager" doins "${ffi_build}/download-manager/libDownloadManager.so" insinto "$automation_dir/include/DM" doins "${ffi_build}/download-manager/DownloadManager.lua" insinto "$automation_dir/include/PT/PreciseTimer" doins "${ffi_build}/precise-timer/libPreciseTimer.so" insinto "$automation_dir/include/PT" doins "${ffi_build}/precise-timer/PreciseTimer.lua" insinto "$automation_dir/include/requireffi" doins "${ffi_build}/requireffi/requireffi.lua" insinto "$automation_dir/include/l0" doins "${WORKDIR}/DependencyControl-${_depctrlver}/modules/DependencyControl.moon" doins -r "${WORKDIR}/DependencyControl-${_depctrlver}/modules/DependencyControl" insinto "$automation_dir/autoload" doins "${WORKDIR}/DependencyControl-${_depctrlver}/macros/l0.DependencyControl.Toolbox.moon" insinto "$automation_dir/include" doins "${WORKDIR}/luajson-${_luajsonver}/lua/json.lua" doins -r "${WORKDIR}/luajson-${_luajsonver}/lua/json" fi } pkg_preinst() { gnome2_icon_savelist } pkg_postinst() { gnome2_icon_cache_update xdg_desktop_database_update xdg_icon_cache_update } pkg_postrm() { gnome2_icon_cache_update xdg_desktop_database_update xdg_icon_cache_update }