Files
guru/net-misc/megasync/megasync-9999.ebuild
Takuya Wakazono b1ad3296f0 net-misc/megasync: fix runtime dependency
dev-qt/qtquickcontrols{,2} is required as a runtime dependency. If this
is not present in an environment that has not done initial setup,
megasync will crash. This does not occur in environment that have
already done initial setup.

Closes: https://bugs.gentoo.org/936323
Signed-off-by: Takuya Wakazono <pastalian46@gmail.com>
2024-07-20 17:10:18 +09:00

177 lines
3.6 KiB
Bash

# Copyright 2023-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit cmake flag-o-matic qmake-utils xdg
DESCRIPTION="The official Qt-based program for syncing your MEGA account in your PC"
HOMEPAGE="
https://mega.io
https://github.com/meganz/MEGAsync
"
if [[ ${PV} == 9999 ]];then
inherit git-r3
EGIT_REPO_URI="https://github.com/meganz/MEGAsync"
EGIT_BRANCH="master"
EGIT_SUBMODULES=( '*' )
else
MEGA_SDK_REV="eb8dba09149e1aad0210c3591f3ef6e50022f714" # commit of src/MEGASync/mega submodule
MEGA_TAG_SUFFIX="Linux"
SRC_URI="
https://github.com/meganz/MEGAsync/archive/v${PV}_${MEGA_TAG_SUFFIX}.tar.gz -> ${P}.tar.gz
https://github.com/meganz/sdk/archive/${MEGA_SDK_REV}.tar.gz -> ${PN}-sdk-${PV}.tar.gz
"
KEYWORDS="~amd64 ~x86"
S="${WORKDIR}"/MEGAsync-${PV}_${MEGA_TAG_SUFFIX}
fi
LICENSE="MEGA"
SLOT="0"
IUSE="dolphin mediainfo nautilus nemo thumbnail thunar"
DEPEND="
dev-db/sqlite:3
dev-libs/crypto++:=
dev-libs/icu:=
dev-libs/libsodium:=
dev-libs/libuv:=
dev-libs/openssl:0=
dev-qt/qtconcurrent:5
dev-qt/qtcore:5
dev-qt/qtdbus:5
dev-qt/qtdeclarative:5
dev-qt/qtgui:5
dev-qt/qtnetwork:5
dev-qt/qtimageformats:5
dev-qt/qtsvg:5
dev-qt/qtwidgets:5
dev-qt/qtx11extras:5
net-dns/c-ares:=
net-misc/curl[ssl]
sys-libs/zlib
x11-libs/libxcb:=
dolphin? (
kde-apps/dolphin:5
kde-frameworks/kcoreaddons:5
kde-frameworks/kio:5
kde-frameworks/kwidgetsaddons:5
)
mediainfo? (
media-libs/libmediainfo
media-libs/libzen
)
nautilus? (
dev-libs/glib:2
>=gnome-base/nautilus-43
)
nemo? (
dev-libs/glib:2
gnome-extra/nemo
)
thumbnail? (
media-libs/freeimage
media-video/ffmpeg:=
)
thunar? ( xfce-base/thunar:= )
"
RDEPEND="
${DEPEND}
dev-qt/qtquickcontrols:5
dev-qt/qtquickcontrols2:5
"
BDEPEND="
dev-qt/linguist-tools:5
dolphin? ( kde-frameworks/extra-cmake-modules )
"
PATCHES=(
"${FILESDIR}/${PN}-4.10.0.0_ffmpeg6.patch"
"${FILESDIR}/${PN}-4.10.0.0_fix-build.patch"
"${FILESDIR}/${PN}-5.3.0.0-link-zlib.patch"
"${FILESDIR}/${PN}-5.3.0.0-fix-install-dir.patch"
"${FILESDIR}/${PN}-5.3.0.0-rename-libcryptopp.patch"
)
BUILD_DIR_DOLPHIN="${S}_dolphin"
dolphin_run() {
if use dolphin; then
cd "${S}/src/MEGAShellExtDolphin" || die
BUILD_DIR="${BUILD_DIR_DOLPHIN}" CMAKE_USE_DIR="${S}/src/MEGAShellExtDolphin" "$@"
fi
}
nautilus_run() {
if use nautilus; then
cd "${S}/src/MEGAShellExtNautilus" || die
"$@"
fi
}
nemo_run() {
if use nemo; then
cd "${S}/src/MEGAShellExtNemo" || die
"$@"
fi
}
thunar_run() {
if use thunar; then
cd "${S}/src/MEGAShellExtThunar" || die
"$@"
fi
}
src_prepare() {
if [[ ${PV} != 9999 ]]; then
rmdir src/MEGASync/mega || die
mv "${WORKDIR}/sdk-${MEGA_SDK_REV}" src/MEGASync/mega || die
fi
cmake_src_prepare
}
src_configure() {
# https://github.com/meganz/sdk/issues/2679
append-cppflags -DNDEBUG
local mycmakeargs=(
# build internal libs as static
-DBUILD_SHARED_LIBS=OFF
-DCMAKE_MODULE_PATH="${S}/src/MEGASync/mega/contrib/cmake/modules/packages"
-DENABLE_DESKTOP_UPDATE_GEN=OFF
-DUSE_FFMPEG=$(usex thumbnail)
-DUSE_FREEIMAGE=$(usex thumbnail)
-DUSE_MEDIAINFO=$(usex mediainfo)
-DUSE_PDFIUM=OFF
-DUSE_READLINE=OFF
)
cmake_src_configure
unset mycmakeargs
dolphin_run cmake_src_configure
nautilus_run eqmake5
nemo_run eqmake5
thunar_run eqmake5
}
src_compile() {
cmake_src_compile
dolphin_run cmake_src_compile
nautilus_run emake
nemo_run emake
thunar_run emake
}
src_install() {
cmake_src_install
dolphin_run cmake_src_install
nautilus_run emake INSTALL_ROOT="${D}" install
nemo_run emake INSTALL_ROOT="${D}" install
thunar_run emake INSTALL_ROOT="${D}" install
}