www-apps/misskey: New package

Experimental, but works.

Signed-off-by: tastytea <tastytea@tastytea.de>
This commit is contained in:
tastytea 2022-05-14 17:30:50 +02:00
parent 8217f0f5c1
commit f6e3ac8dba
Signed by: tastytea
SSH Key Fingerprint: SHA256:FBkvrOlhq5use1XEttyUGT4bUTDVA1ar9SgIc9P03cM
9 changed files with 213 additions and 0 deletions

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>gentoo@tastytea.de</email>
<name>tastytea</name>
</maintainer>
</pkgmetadata>

View File

@ -0,0 +1,11 @@
# Copyright 2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit acct-group
DESCRIPTION="Group for Misskey"
KEYWORDS="~amd64"
ACCT_GROUP_ID=-1

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>gentoo@tastytea.de</email>
<name>tastytea</name>
</maintainer>
</pkgmetadata>

View File

@ -0,0 +1,15 @@
# Copyright 2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit acct-user
DESCRIPTION="User for Misskey"
KEYWORDS="~amd64"
ACCT_USER_ID=-1
ACCT_USER_HOME="/opt/misskey"
ACCT_USER_GROUPS=( ${PN} )
acct-user_add_deps

View File

@ -1,3 +1,7 @@
# tastytea <tastytea@tastytea.de> (2022-05-13)
# Very experimental, use at your own risk. 💣
www-apps/misskey
# tastytea <tastytea@tastytea.de> (2022-03-26)
# Ebuild is in a bad state, I will soon not use it anymore. Removal on
# 2022-04-30 or a bit later.

View File

@ -0,0 +1,3 @@
DIST misskey-12.110.1-deps.tar 117708800 BLAKE2B 30309191d9684b3a80e95441aff52ab0af1838fce2ce1f9d66fbc88aea915aa92ec1f719d80cbe4c3bdc95dd75c2cf0375e2808b25b566d3e7a59d1f10796407 SHA512 ceb401bdf1be02fb231d18a5051bfa445eeda752d1ff43a7c310ba93710bc58a8fbb08b355ee97f17e14a86eea0663ac0ab683c9b4db6e11c9bd4150228804a6
DIST misskey-12.110.1.tar.gz 4804680 BLAKE2B 1f8bcb6c61ca3fa80fd07e1a6704fbb365d0d3aee0e919869f2cfcecaea6e3ca68179239b7c2de89809de10134851da4180556b0a844a1613cfb3e1f64b01bee SHA512 99070019eb8eae8dce28657f9f53ad00b02759b9991d141d00718374c7fb206d05e2a2c351824a4ac04b6a95c1cb1086220ed9de8ee0deb1795e4b5de3cc507f
DIST misskey-assets-12.110.1.tar.gz 40471635 BLAKE2B 5305b5b316aa9d27f860e0e2c86f55eeb4140fd76c9cc7a753f78f93c509a10237033ec2109d2e806605f302d3fc9e9b916d2967053a4bce9b2cdea14df5885b SHA512 b4de7d8ab43f27e14372bb7246be4b032b142f22913ceaaa01e7631a1f702ba77ccf25482038cf2341f7a0ae92d54a1200bb654cac1d409b1ddcc113513b3f16

View File

@ -0,0 +1,18 @@
#!/sbin/openrc-run
name=misskey
description="Misskey daemon"
command="/usr/bin/npm"
command_args="start"
command_user="misskey"
supervisor="supervise-daemon"
supervise_daemon_args=" -d /opt/misskey/misskey -e NODE_ENV=\"production\""
pidfile="/run/${RC_SVCNAME}.pid"
depend() {
need net
use logger
}

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>gentoo@tastytea.de</email>
<name>tastytea</name>
</maintainer>
<longdescription lang="ja">
Misskeyはオープンソースの分散型マイクロブログプラットフォームプ
ロジェクトです。ドライブ、リアクションなどの豊富な機能や、高いカ
スタマイズ性を備えたUIを持つことが特徴です。
</longdescription>
<longdescription lang="en">
Misskey is an open-source and distributed platform for
microblogging. It features an abundance of features such as
Drive or Reactions as well as a very high UI customizability.
</longdescription>
<upstream>
<doc lang="ja">https://misskey-hub.net/docs/misskey.html</doc>
<doc lang="en">https://misskey-hub.net/en/docs/misskey.html</doc>
<bugs-to>https://github.com/misskey-dev/misskey/issues</bugs-to>
</upstream>
<use>
<flag name="nginx">Make init script depend on nginx</flag>
</use>
</pkgmetadata>

View File

@ -0,0 +1,120 @@
# Copyright 2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# TODO: systemd support, ffmpeg USE-flags, postgresql USE-flags,
# nginx USE-flags, bundle node_modules/cypress deps
EAPI=7
inherit savedconfig
# NOTE: update for each bump
MY_COMMIT_ASSETS="0179793ec891856d6f37a3be16ba4c22f67a81b5"
DESCRIPTION="An interplanetary microblogging platform"
HOMEPAGE="https://misskey-hub.net/"
SRC_URI="
https://github.com/misskey-dev/misskey/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz
https://github.com/misskey-dev/assets/archive/${MY_COMMIT_ASSETS}.tar.gz -> ${PN}-assets-${PV}.tar.gz
https://tastytea.de/files/gentoo/${P}-deps.tar
"
# NOTE: To generate the (incomplete) deps archive:
# echo 'yarn-offline-mirror "./npm-cache"' >> .yarnrc
# echo 'cache=./npm_cache' >> .npmrc
# yarn install
# tar -caf ${P}-deps.tar npm-cache
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64"
IUSE="nginx"
REQUIRED_USE="savedconfig"
RESTRICT="network-sandbox"
COMMON_DEPEND="
net-libs/nodejs:0/16
sys-apps/yarn
"
BDEPEND="
${COMMON_DEPEND}
dev-lang/nasm
virtual/pkgconfig
"
RDEPEND="
${COMMON_DEPEND}
acct-user/misskey
dev-db/postgresql
dev-db/redis
media-video/ffmpeg
nginx? ( www-servers/nginx )
"
src_unpack() {
default
mv --no-target-directory assets-${MY_COMMIT_ASSETS} ${P}/${PN}-assets \
|| die "Could not move assets"
mv npm-cache ${P}/ || die "Could not move npm cache"
}
src_prepare() {
yarn config set yarn-offline-mirror $(realpath ./npm-cache) \
|| die "Setting up npm offline cache failed"
npm config set cache $(realpath ./npm-cache) \
|| die "Setting up npm offline cache failed"
restore_config .config/default.yml
if [[ ! -f .config/default.yml ]]; then
eerror "Edit .config/example.yml and save it to the location mentioned above"
die "No config file found"
fi
default
}
src_compile() {
# this still downloads stuff 🙃
yarn --offline install || die "dependency installation failed"
NODE_ENV=production yarn --offline build || die "build failed"
}
src_install() {
rm -rf npm-cache || die "Deleting cache failed"
insinto opt/misskey/misskey
insopts -o misskey -g misskey
doins -r .
# insopts doesn't affect directories
chown --recursive misskey:misskey "${ED}"/opt/misskey/misskey
chmod o= "${ED}"/opt/misskey/misskey
newinitd ${FILESDIR}/${PN}.initd ${PN}
if use nginx; then
sed -i 's/use logger$/use logger nginx/' "${ED}"/etc/init.d/${PN} \
|| die "Could not modify OpenRC init script"
fi
}
pkg_postinst() {
elog "Run emerge --config ${CATEGORY}/${PN} to initialise the PostgreSQL database"
elog "Run 'su -c \"yarn migrate\" misskey' in ${EROOT}/opt/misskey/misskey and restart the service to apply changes"
if use nginx; then
einfo "An nginx example config can be found at <https://misskey-hub.net/en/docs/admin/nginx.html>"
fi
}
pkg_config() {
einfo "Initialising PostgreSQL database"
echo -n "password for misskey user: "
read MY_PASSWORD
echo "create database misskey; create user misskey with encrypted password '${MY_PASSWORD}'; grant all privileges on database misskey to misskey; \q" \
| su -lc psql postgres || die "database creation failed"
cd "${EROOT}/opt/misskey/misskey"
yarn run init || die "database initialisation failed"
ewarn "When you first start Misskey you will be asked to add an admin account via the web interface, and registrations are enabled."
ewarn "Do not expose the web interface to the public until after you configured your instance\!"
}