mirror of
https://github.com/gentoo-mirror/guru.git
synced 2026-07-09 15:13:31 -04:00
www-apps/invidious: update for virtual/zlib
Signed-off-by: Anna (cybertailor) Vyalkova <cyber+gentoo@sysrq.in>
This commit is contained in:
167
www-apps/invidious/invidious-2025.09.13.0-r1.ebuild
Normal file
167
www-apps/invidious/invidious-2025.09.13.0-r1.ebuild
Normal file
@@ -0,0 +1,167 @@
|
||||
# Copyright 2022-2025 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
CRYSTAL_MAX_VER=1.16.3
|
||||
|
||||
inherit check-reqs shards systemd
|
||||
|
||||
MY_PV="2.$(ver_rs 1-2 '')"
|
||||
MOCKS_COMMIT="b55d58dea94f7144ff0205857dfa70ec14eaa872"
|
||||
MOCKS_P="${PN}-mocks-${MOCKS_COMMIT:0:7}"
|
||||
DESCRIPTION="Invidious is an alternative front-end to YouTube"
|
||||
HOMEPAGE="
|
||||
https://invidious.io/
|
||||
https://github.com/iv-org/invidious
|
||||
"
|
||||
IV_ORG="https://github.com/iv-org"
|
||||
NPM="https://registry.npmjs.org"
|
||||
SRC_URI="
|
||||
${IV_ORG}/${PN}/archive/refs/tags/v${MY_PV}.tar.gz -> ${P}.tar.gz
|
||||
${NPM}/video.js/-/video.js-7.12.1.tgz
|
||||
${NPM}/videojs-contrib-quality-levels/-/videojs-contrib-quality-levels-2.1.0.tgz
|
||||
${NPM}/videojs-http-source-selector/-/videojs-http-source-selector-1.1.6.tgz
|
||||
${NPM}/videojs-markers/-/videojs-markers-1.0.1.tgz
|
||||
${NPM}/videojs-mobile-ui/-/videojs-mobile-ui-0.6.1.tgz
|
||||
${NPM}/videojs-overlay/-/videojs-overlay-2.1.4.tgz
|
||||
${NPM}/videojs-share/-/videojs-share-3.2.1.tgz
|
||||
${NPM}/videojs-vr/-/videojs-vr-1.8.0.tgz
|
||||
${NPM}/videojs-vtt-thumbnails/-/videojs-vtt-thumbnails-0.0.13.tgz
|
||||
test? (
|
||||
${IV_ORG}/mocks/archive/${MOCKS_COMMIT}.tar.gz -> ${MOCKS_P}.tar.gz
|
||||
)
|
||||
"
|
||||
S="${WORKDIR}/${PN}-${MY_PV}"
|
||||
|
||||
LICENSE="AGPL-3 Apache-2.0 MIT"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64"
|
||||
IUSE="test"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
COMMON_DEPEND="
|
||||
dev-db/sqlite:3
|
||||
dev-libs/boehm-gc
|
||||
dev-libs/libpcre2:=
|
||||
dev-libs/libxml2:2=
|
||||
dev-libs/libyaml
|
||||
dev-libs/openssl:=
|
||||
virtual/zlib:=
|
||||
"
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
acct-user/invidious
|
||||
gnome-base/librsvg
|
||||
"
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
dev-crystal/athena-negotiation
|
||||
dev-crystal/http_proxy
|
||||
>=dev-crystal/kemal-1.6.0
|
||||
>=dev-crystal/protodec-0.1.5
|
||||
virtual/crystal-db[postgres,sqlite]
|
||||
test? (
|
||||
dev-crystal/spectator
|
||||
)
|
||||
"
|
||||
|
||||
DOCS=( {CHANGELOG,README}.md TRANSLATION )
|
||||
|
||||
CHECKREQS_MEMORY="2G"
|
||||
|
||||
CRYSTAL_DEFINES=( -Dskip_videojs_download )
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/fix-targets-in-shards.patch
|
||||
)
|
||||
|
||||
src_unpack() {
|
||||
local src depname destname js css
|
||||
|
||||
for src in ${A}; do
|
||||
if [[ ${src} == "${P}.tar.gz" ]]; then
|
||||
unpack ${src}
|
||||
elif [[ ${src} == "${MOCKS_P}.tar.gz" ]]; then
|
||||
unpack "${src}"
|
||||
mkdir -p "${S}"/mocks || die
|
||||
rmdir "${S}"/mocks || die
|
||||
mv mocks-${MOCKS_COMMIT} "${S}"/mocks || die
|
||||
else
|
||||
depname="${src%-*}"
|
||||
|
||||
case ${depname} in
|
||||
video.js)
|
||||
js="video.js" ;;
|
||||
*)
|
||||
js="${depname}.js" ;;
|
||||
esac
|
||||
|
||||
case ${depname} in
|
||||
video.js)
|
||||
css="video-js.css" ;;
|
||||
videojs-markers)
|
||||
css="videojs.markers.css" ;;
|
||||
*)
|
||||
css="${depname}.css" ;;
|
||||
esac
|
||||
|
||||
# Create the destination directory
|
||||
destname="${S}/assets/videojs/${depname}"
|
||||
mkdir -p "${destname}" || die
|
||||
|
||||
# Create a temporary directory
|
||||
mkdir -p "${WORKDIR}"/${depname} || die
|
||||
cd "${WORKDIR}"/${depname} || die
|
||||
|
||||
# Copy assets
|
||||
unpack ${src}
|
||||
cd package/dist || die
|
||||
mv ${js} ${destname} || die
|
||||
if [[ -f ${css} ]]; then
|
||||
mv ${css} ${destname} || die
|
||||
fi
|
||||
|
||||
cd "${WORKDIR}" || die
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
local datadir="${EPREFIX}/usr/share/invidious"
|
||||
sed -i src/invidious.cr \
|
||||
-e 's/\(CURRENT_BRANCH \) = .*/\1 = "master"/' \
|
||||
-e "s/\(CURRENT_COMMIT \) = .*/\1 = \"${COMMIT:0:7}\"/" \
|
||||
-e "s/\(CURRENT_VERSION\) = .*/\1 = \"${PV}\"/" \
|
||||
-e "s/\(ASSET_COMMIT\) = .*/\1 = \"${COMMIT:0:7}\"/" || die
|
||||
|
||||
# fix paths
|
||||
sed -i src/invidious.cr \
|
||||
-e "s|\(public_folder\) \"assets\"|\1 \"${datadir}/assets\"|" || die
|
||||
sed -i src/invidious/helpers/i18n.cr \
|
||||
-e "s|File.read(\"locales/|File.read(\"${datadir}/locales/|" || die
|
||||
sed -i src/invidious/database/base.cr \
|
||||
-e "s|config/sql|${datadir}/\0|g" || die
|
||||
|
||||
rm shard.lock || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dobin invidious
|
||||
einstalldocs
|
||||
|
||||
insinto /usr/share/invidious
|
||||
doins -r assets config locales
|
||||
|
||||
insinto /etc/invidious
|
||||
newins config/config.example.yml config.yml
|
||||
|
||||
systemd_dounit "${FILESDIR}"/invidious.service
|
||||
newinitd "${FILESDIR}"/invidious.initd ${PN}
|
||||
newconfd "${FILESDIR}"/invidious.confd ${PN}
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
elog "Follow the official instructions to set up Invidious Companion:"
|
||||
elog "https://docs.invidious.io/installation/#set-up-invidious-companion"
|
||||
}
|
||||
Reference in New Issue
Block a user