# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 inherit unpacker systemd tmpfiles MY_P="ONLYOFFICE-DocumentServer-"${PV}"" DESCRIPTION="Online office suite comprising viewers and editors for texts, spreadsheets and presentations (binary version)" HOMEPAGE="https://www.onlyoffice.com/" SRC_URI=" amd64? ( https://github.com/ONLYOFFICE/DocumentServer/releases/download/v"${PV}"/onlyoffice-documentserver_amd64.deb -> "${P}"_amd64.deb ) " S="${WORKDIR}" LICENSE="AGPL-3" SLOT="0" KEYWORDS="~amd64" RESTRICT="mirror strip test" DEPEND=" acct-group/ds acct-user/ds " RDEPEND="${DEPEND} app-admin/sudo dev-db/postgresql dev-db/redis net-misc/rabbitmq-server www-servers/nginx " QA_PREBUILT="*" src_prepare() { default sed -i 's|/var/www/onlyoffice|/usr/share/onlyoffice|g' \ etc/onlyoffice/documentserver/production-linux.json \ usr/lib/systemd/system/*.service usr/bin/*.sh || die rm -rf var/www/onlyoffice/documentserver/server/schema/{dameng,mysql} || die } src_install() { insinto /etc/logrotate.d/ doins etc/onlyoffice/documentserver/logrotate/ds.conf insinto /etc/nginx/conf.d/ newins "${FILESDIR}/nginx.conf" onlyoffice-documentserver.conf insinto /etc/onlyoffice/documentserver doins etc/onlyoffice/documentserver/{default.json,production-linux.json} insinto /etc/onlyoffice/documentserver/log4js doins etc/onlyoffice/documentserver/log4js/production.json insinto /usr/bin doins usr/bin/{documentserver-generate-allfonts.sh,documentserver-jwt-status.sh,documentserver-pluginsmanager.sh} insinto /usr/share/onlyoffice doins -r var/www/onlyoffice/documentserver keepdir /usr/share/onlyoffice/documentserver/fonts fperms +x /usr/bin/{documentserver-generate-allfonts.sh,documentserver-jwt-status.sh} fperms +x /usr/share/onlyoffice/documentserver/npm/json fperms +x /usr/share/onlyoffice/documentserver/server/DocService/docservice fperms +x /usr/share/onlyoffice/documentserver/server/FileConverter/bin/{docbuilder,x2t} fperms +x /usr/share/onlyoffice/documentserver/server/FileConverter/converter fperms +x /usr/share/onlyoffice/documentserver/server/Metrics/metrics fperms +x /usr/share/onlyoffice/documentserver/server/Metrics/node_modules/modern-syslog/build/Release/core.node fperms +x /usr/share/onlyoffice/documentserver/server/tools/{allfontsgen,allthemesgen,pluginsmanager} fowners ds:ds -R /usr/share/onlyoffice/documentserver local lib for lib in libPdfFile.so libXpsFile.so libDjVuFile.so libHtmlRenderer.so \ libkernel_network.so libDocxRenderer.so libdoctrenderer.so libHtmlFile2.so \ libUnicodeConverter.so libgraphics.so libFb2File.so libEpubFile.so libkernel.so libicudata.so.58 libicuuc.so.58; do dosym -r "/usr/share/onlyoffice/documentserver/server/FileConverter/bin/${lib}" "/usr/$(get_libdir)/${lib}" || die fperms +x "/usr/share/onlyoffice/documentserver/server/FileConverter/bin/${lib}" || die done # Generate an env.d entry insinto /etc/env.d/binutils cat <<-EOF >"${T}"/99onlyoffice NODE_ENV="production-linux" NODE_CONFIG_DIR="/etc/onlyoffice/documentserver" NODE_DISABLE_COLORS="1" APPLICATION_NAME="ONLYOFFICE" EOF doenvd "${T}"/99onlyoffice newinitd "${FILESDIR}/ds-converter.initd" ds-converter newinitd "${FILESDIR}/ds-docservice.initd" ds-docservice newinitd "${FILESDIR}/ds-metrics.initd" ds-metrics systemd_dounit usr/lib/systemd/system/ds-converter.service systemd_dounit usr/lib/systemd/system/ds-docservice.service systemd_dounit usr/lib/systemd/system/ds-metrics.service newtmpfiles "${FILESDIR}"/onlyoffice-documentserver.tmpfiles.conf onlyoffice-documentserver.conf } pkg_postinst() { tmpfiles_process onlyoffice-documentserver.conf einfo einfo "Execute the following command to setup for generate all fonts" einfo "> emerge --config =${CATEGORY}/${PF}" einfo einfo einfo "Execute the following commands to setup for PostgreSQL" einfo einfo "> sudo -i -u postgres psql -c \"CREATE USER onlyoffice WITH PASSWORD 'onlyoffice';\"" einfo "> sudo -i -u postgres psql -c \"CREATE DATABASE onlyoffice OWNER onlyoffice;\"" einfo "> psql -hlocalhost -Uonlyoffice -d onlyoffice -f ${EROOT}/usr/share/onlyoffice/documentserver/server/schema/postgresql/createdb.sql" einfo einfo "Fill in PORT, SERVER_NAME, SSL_CERT and SSL_KEY. in ${EROOT}/etc/nginx/sites-available/onlyoffice-documentserver" } pkg_config() { "${EROOT}/usr/bin/documentserver-generate-allfonts.sh" }