From 0cc8662868065d82d0b2147183fa0157b9481045 Mon Sep 17 00:00:00 2001 From: Federico Denkena Date: Sat, 13 Jan 2024 08:28:52 +0100 Subject: [PATCH] www-apps/invidious: bump to 2024-01-13 --- metadata/layout.conf | 8 +- .../md5-cache/www-apps/invidious-2024.01.13 | 16 ++ profiles/eapi | 1 + www-apps/invidious/Manifest | 16 ++ www-apps/invidious/files/invidious.confd | 2 + www-apps/invidious/files/invidious.initd | 27 +++ www-apps/invidious/files/invidious.service | 16 ++ .../invidious/invidious-2024.01.13.ebuild | 162 ++++++++++++++++++ www-apps/invidious/metadata.xml | 12 ++ 9 files changed, 259 insertions(+), 1 deletion(-) create mode 100644 metadata/md5-cache/www-apps/invidious-2024.01.13 create mode 100644 profiles/eapi create mode 100644 www-apps/invidious/Manifest create mode 100644 www-apps/invidious/files/invidious.confd create mode 100644 www-apps/invidious/files/invidious.initd create mode 100644 www-apps/invidious/files/invidious.service create mode 100644 www-apps/invidious/invidious-2024.01.13.ebuild create mode 100644 www-apps/invidious/metadata.xml diff --git a/metadata/layout.conf b/metadata/layout.conf index c2d9d35..e7f0fe0 100644 --- a/metadata/layout.conf +++ b/metadata/layout.conf @@ -1,3 +1,9 @@ -masters = gentoo +masters = gentoo guru +manifest-hashes = BLAKE2B SHA512 +manifest-required-hashes = BLAKE2B +update-changelog = false +cache-formats = md5-dict sign-commits = true sign-manifests = false + +eapis-banned = 0 1 2 3 4 5 6 7 diff --git a/metadata/md5-cache/www-apps/invidious-2024.01.13 b/metadata/md5-cache/www-apps/invidious-2024.01.13 new file mode 100644 index 0000000..aca2429 --- /dev/null +++ b/metadata/md5-cache/www-apps/invidious-2024.01.13 @@ -0,0 +1,16 @@ +BDEPEND=|| ( dev-lang/crystal dev-lang/crystal-bin ) || ( dev-util/shards dev-lang/crystal-bin ) >=dev-util/gshards-0.2 virtual/pkgconfig +DEFINED_PHASES=compile configure install prepare pretend setup test unpack +DEPEND=dev-db/sqlite:3 dev-libs/boehm-gc dev-libs/libevent:= dev-libs/libpcre2:= dev-libs/libxml2:2 dev-libs/libyaml dev-libs/openssl:= sys-libs/zlib:= dev-crystal/athena-negotiation =dev-crystal/protodec-0.1.5 test? ( dev-crystal/spectator ) +DESCRIPTION=Invidious is an alternative front-end to YouTube +EAPI=8 +HOMEPAGE=https://invidious.io/ https://github.com/iv-org/invidious +INHERIT=check-reqs shards systemd +IUSE=test debug doc +KEYWORDS=~amd64 +LICENSE=AGPL-3 Apache-2.0 MIT +RDEPEND=dev-db/sqlite:3 dev-libs/boehm-gc dev-libs/libevent:= dev-libs/libpcre2:= dev-libs/libxml2:2 dev-libs/libyaml dev-libs/openssl:= sys-libs/zlib:= acct-user/invidious gnome-base/librsvg +RESTRICT=!test? ( test ) +SLOT=0 +SRC_URI=https://github.com/iv-org/invidious/archive/1c0b4205d40781ff2d34d64dddf29e5dc89d1723.tar.gz -> invidious-2024.01.13.tar.gz https://registry.npmjs.org/video.js/-/video.js-7.12.1.tgz https://registry.npmjs.org/videojs-contrib-quality-levels/-/videojs-contrib-quality-levels-2.1.0.tgz https://registry.npmjs.org/videojs-http-source-selector/-/videojs-http-source-selector-1.1.6.tgz https://registry.npmjs.org/videojs-markers/-/videojs-markers-1.0.1.tgz https://registry.npmjs.org/videojs-mobile-ui/-/videojs-mobile-ui-0.6.1.tgz https://registry.npmjs.org/videojs-overlay/-/videojs-overlay-2.1.4.tgz https://registry.npmjs.org/videojs-share/-/videojs-share-3.2.1.tgz https://registry.npmjs.org/videojs-vr/-/videojs-vr-1.8.0.tgz https://registry.npmjs.org/videojs-vtt-thumbnails/-/videojs-vtt-thumbnails-0.0.13.tgz test? ( https://github.com/iv-org/mocks/archive/11ec372f72747c09d48ffef04843f72be67d5b54.tar.gz -> invidious-mocks-11ec372.tar.gz ) +_eclasses_=check-reqs 02ac7654b64f7acc7a8b1a35ad9d6ddc edo c0eb9cbe6b0bd01fcb4918f12598a4d3 toolchain-funcs e56c7649b804f051623c8bc1a1c44084 multilib c19072c3cd7ac5cb21de013f7e9832e0 flag-o-matic 78cf3cc2d5572fddf5e5e10c70f7c81a multiprocessing 30ead54fa2e2b5f9cd4e612ffc34d0fe crystal-utils 6d436eb766514d5a66964eefa5c39d0c shards 19e21a696fe66db90959968325a9c97f systemd c8b03e8df84486aa991d4396686e8942 +_md5_=dd5072cf9ff165f760cb9dc9a8213b1b diff --git a/profiles/eapi b/profiles/eapi new file mode 100644 index 0000000..45a4fb7 --- /dev/null +++ b/profiles/eapi @@ -0,0 +1 @@ +8 diff --git a/www-apps/invidious/Manifest b/www-apps/invidious/Manifest new file mode 100644 index 0000000..e4e1f6f --- /dev/null +++ b/www-apps/invidious/Manifest @@ -0,0 +1,16 @@ +AUX invidious.confd 77 BLAKE2B 69672da8104d0ab4717b9c235b2a61d8ca66ce495b1b9f7218d173aec9116b03b1835b6b5eefb61ae35ae4883931a44019eed5b21fa5b200ac1871fccf780958 SHA512 daf535a7276130e14f17aac41d1c3e35bb4964b9e4c632c51ebc7b0307f6168ae257fcce61f3da9e09854d9cd4e3ca9ccb00e907cc3f4aef0f86449a69ead6f8 +AUX invidious.initd 853 BLAKE2B 7f112a0187b44e95f981b8eb44b99c28f532853763ad3f4546710780816211cf90452c3050694f4c337f0036ab659178c60bb353c46bb3759005c97679042ee9 SHA512 15761eab10d2c8c5eb781e0b513e34a68bd8f757bfa8f5525dbfd7ead47d42e3f1706767e8e13c1546e0f94fe7e1b1238f1d00d99cfee0e4d282b487daeccabb +AUX invidious.service 308 BLAKE2B 742924a8d0926b0539baa8e633ada582ce8a1bd490b63c3f77236d24eacce0d582042d76bee61e3b55c4dc6b982b349d3da5053bad308961197daafcda7ddbd9 SHA512 d24848a8bf4d3fb8a54a36415af9ffa464ba0912f1e47bde10d20ee98bf738c4869d33297e022fccfe3195f9cec55d215aa2254ea872d312f37e0db45bb2e698 +DIST invidious-2024.01.13.tar.gz 3290546 BLAKE2B 6d2fe571dd2164fbbfdcaef376a7e32804322a9c6aa1dd8aa39e6da71fde8fbae31c26165fd91c0af36efac01351b0fc7618009087c749debfddf104637007bd SHA512 247557b2b2ce81f0486f5f2bf2c6fe55a88841429e69ee876fb6b2c907ff857b636f721f83ad25189fefe4f691e17b15ed9f402c5fae292d2aafaf251360ed96 +DIST invidious-mocks-11ec372.tar.gz 180392 BLAKE2B 899db54d4efdfc231d588155d52784d70a364c7382bd1652a3c384dc618435d646a50e957c1407f6ac7ade410e811438b23a16d9949e63f7791e34960bba1fc6 SHA512 7bc1aa17f555babaceca15fe51061400a6c8a9cb01ad15c5d22c155f3164aca7c6e49c8dcdbd894e1593c2c69d3ddaa201544b068510281e910b90a11a407e59 +DIST video.js-7.12.1.tgz 3511060 BLAKE2B 9ae5b1f6a0afab918b7dc3555fff2708963d4abb6c7903e13145b2d5393fb80e4ab6302c423b0ba15c805a624a23c25dd3db7865f1510c44cfc5d1d5ab1dbf54 SHA512 d0ec25eeae196e6e981d7f783fd595a90daf9e97de3723ad4cdc2e4c41282a8bd9a20a2a57631c3949ac40633811db60e2f19388fef816fe8755ad55e857917e +DIST videojs-contrib-quality-levels-2.1.0.tgz 18770 BLAKE2B f6c4789835379380bde941d032bb0afbc49d093eb9407308094afd0b9c1f25781f57d8f8db928e318eb270927574a5fd505f08af13f0baf55897723ec489b769 SHA512 76a19019b2fd00586e731922ed9874737908847d0f00f707121ea351d47268509578ebaa9c9ace62cff7c0db6ca240dd05d45fd83bb66a79e9bb86765da49946 +DIST videojs-http-source-selector-1.1.6.tgz 14270 BLAKE2B 232148058ced6926a6da669b443124a00489a5241c98d2b76a3e04dff818993a14a0edb1950db1adf86589fd3841e073b8cac23c142a7f276301c52b3b324359 SHA512 e9be4c98a4d3d9c567ae3b5d363e33d553bdd6e75b5e46644d803a2e50fc58dd9a1e51b6aea1539ad31a6f834ae279649246d19e6ddcdaad8875d2f78df7cb9a +DIST videojs-markers-1.0.1.tgz 209230 BLAKE2B edaba80942103a60a173089666f76f81e60d0ee7f6cb3de412fc93c0a3f286d995358953ada8446d54818111fc7b5e4d059d1b39f53fd3d652eb21ed84c81e62 SHA512 8f0de34616a7c27a3462075147dfb3e9c6dd98cb3f8de5dcae090cafa9a510ff977d937e8ac58d629d069cfbdd5eb05c9dbe8000d7431e59d74a622f79c13358 +DIST videojs-mobile-ui-0.6.1.tgz 15408 BLAKE2B 3c0040710b644000c35333ae5b50421444d34b96c28a3a7a75d18ba13676086a1629bc1039509db0b6d7238e7133e03bc0a2b8f1bce2c6ee88332107f4f3a2fc SHA512 1eda0312745839a9c7470c050560a14df0fcb09e00009e328616d9889ed9624fe4cd0bb43dae1018e7897adbf4c319dcbb79f07dc68196235a751ee7974bd93d +DIST videojs-overlay-2.1.4.tgz 26042 BLAKE2B 7c6279667bb0e7aef51af3e37c10aa791715ab4cafebbdfae8f8f427915579164c7b19b0965b10fb8e47e6ef51b4caadfd593ef53bc22da8e8cbcb75583674a1 SHA512 7a89dffa56b658764952f6995ed5f552da703517bc66ae475240578035fdcca38543da69322a3b2db60c0552a97a2e8172a38e81d3558add61ecd19eeb249edf +DIST videojs-share-3.2.1.tgz 487816 BLAKE2B 8edb19cff9eb4f29f42e48a3bec3a180d8d38faca3adce8fc2b5eee5dcd369291056d9c815b152bbc298313d53a9a96be9db0774a8c156393279da2a9507e97e SHA512 a24034320950b9a497c1ca57641c77cf45887684b1d366ed8545ff82bdb504a481237011ae4fcf0fe1ac32d79178a5b6985869b7e5aca8a4583327e6c2d26d9a +DIST videojs-vr-1.8.0.tgz 521483 BLAKE2B 21c49f7cecdc6561ee87a5cdc990d0af971a60cd07ab501a2a56cd357c75bdba3cb0652bdb124c6bc4190d4f9b5f632fa665b62976c5f7d5318df4f08dc9f554 SHA512 efbea05eab7c83afeb2de579ea79ff69470ed2c472fa68052130b0f1c22acd3ce5f77484d4f10afd013760daada6951f5398a06b2af1ed62ac5a10cea6c5cca7 +DIST videojs-vtt-thumbnails-0.0.13.tgz 440404 BLAKE2B 98bb2afb0a1b035210dc9bab3954c601a9b9e3e30300618d578c30ac4bed0c4d32b65a4a6156f871f8a3ba0820376d53369e478b543e2277751331b7ef37cf31 SHA512 ed519ca53445fa9a48b2cfcd899703915384d3693f1a8325b7152e990da3693a51d5989e61333e74fa299935ee6cbc4e8143f717bd6e4cb319567584b621e354 +EBUILD invidious-2024.01.13.ebuild 3944 BLAKE2B 91495dc6fa3790ddb884a10a014893225faea51aca86b630cea5391dc37d545a10353b72ef9dd909656b579573a4d9f1e368c9451bae9975ae8be5d421d470b9 SHA512 358afafe269612ab31328534848f28d9bcd49a1973ce71c0048dc263cb2a592732ea544302f696f96a39a215233401aa043758508ca28cc282087882e295fb8f +MISC metadata.xml 365 BLAKE2B 0c46ba579e88af2946ddc8ece081bc63f44d6f5bc0876d37fce28c0bf06057d2579e39580f602649d9f52b906de19536bc9410630b2ec55a4be09663d86493a2 SHA512 4a0236ca734eaa30b862215b02561c7d4e0a99445e53b792472cc6c2e4a5a715a5b3268ac51cc6d55e6cb7a0d748290e08e0123bc21e334ccbc4befa0755bdcb diff --git a/www-apps/invidious/files/invidious.confd b/www-apps/invidious/files/invidious.confd new file mode 100644 index 0000000..56ee01a --- /dev/null +++ b/www-apps/invidious/files/invidious.confd @@ -0,0 +1,2 @@ +# Path to the config file +#INVIDIOUS_CONFIG_FILE="/etc/invidious/config.yml" diff --git a/www-apps/invidious/files/invidious.initd b/www-apps/invidious/files/invidious.initd new file mode 100644 index 0000000..091a5c0 --- /dev/null +++ b/www-apps/invidious/files/invidious.initd @@ -0,0 +1,27 @@ +#!/sbin/openrc-run +# Copyright 2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +: ${INVIDIOUS_CONFIG_FILE:=/etc/invidious/config.yml} + +name="Invidious" +description="An alternative YouTube front-end" +command="/usr/bin/invidious" +command_user="invidious:invidious" +command_background=1 +pidfile="/run/invidious.pid" +output_log="/var/log/invidious.log" +error_log="${output_log}" + +# Invidious hard depends on PostgreSQL, and fails to start if PostgreSQL hasn't already started. +# So it will fail to start if started at boot (rc-update add invidious default). +# See: https://bugs.gentoo.org/916051 +# Using 'postgresql' as 'use' in the 'depend' function fixes this behaviour. +depend() { + use logger net postgresql +} + +start_pre() { + checkpath -fo invidious:invidious /var/log/invidious.log + export INVIDIOUS_CONFIG_FILE +} diff --git a/www-apps/invidious/files/invidious.service b/www-apps/invidious/files/invidious.service new file mode 100644 index 0000000..e42c405 --- /dev/null +++ b/www-apps/invidious/files/invidious.service @@ -0,0 +1,16 @@ +[Unit] +Description=Invidious (An alternative YouTube front-end) +After=syslog.target +After=network.target + +[Service] +RestartSec=2s +Type=simple +User=invidious +Group=invidious +Environment=INVIDIOUS_CONFIG_FILE="/etc/invidious/config.yml" +ExecStart=invidious +Restart=always + +[Install] +WantedBy=multi-user.target diff --git a/www-apps/invidious/invidious-2024.01.13.ebuild b/www-apps/invidious/invidious-2024.01.13.ebuild new file mode 100644 index 0000000..290d073 --- /dev/null +++ b/www-apps/invidious/invidious-2024.01.13.ebuild @@ -0,0 +1,162 @@ +# Copyright 2022-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit check-reqs shards systemd + +COMMIT="1c0b4205d40781ff2d34d64dddf29e5dc89d1723" +MOCKS_COMMIT="11ec372f72747c09d48ffef04843f72be67d5b54" +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/${COMMIT}.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}-${COMMIT}" + +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/libevent:= + dev-libs/libpcre2:= + dev-libs/libxml2:2 + dev-libs/libyaml + dev-libs/openssl:= + sys-libs/zlib:= +" +RDEPEND="${COMMON_DEPEND} + acct-user/invidious + gnome-base/librsvg +" +DEPEND="${COMMON_DEPEND} + dev-crystal/athena-negotiation + =dev-crystal/protodec-0.1.5 + test? ( + dev-crystal/spectator + ) +" + +DOCS=( {CHANGELOG,README}.md TRANSLATION ) + +CHECKREQS_MEMORY="2G" + +CRYSTAL_DEFINES=( + -Dskip_videojs_download + -Ddisable_quic +) + +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} +} diff --git a/www-apps/invidious/metadata.xml b/www-apps/invidious/metadata.xml new file mode 100644 index 0000000..f864dab --- /dev/null +++ b/www-apps/invidious/metadata.xml @@ -0,0 +1,12 @@ + + + + + + iv-org/invidious + + Federico Justus Denkena + federico.denkena@posteo.de + + +