From 28a4da7d8f27c80f640f385e978f3f6548fce5db Mon Sep 17 00:00:00 2001 From: Marcin Deranek Date: Wed, 11 Jan 2023 15:20:48 +0100 Subject: Very early www-apps/paperless-ngx ebuild support --- acct-group/paperless/Manifest | 2 + acct-group/paperless/metadata.xml | 8 ++ acct-group/paperless/paperless-0.ebuild | 8 ++ acct-user/paperless/Manifest | 2 + acct-user/paperless/metadata.xml | 8 ++ acct-user/paperless/paperless-0.ebuild | 14 ++ www-apps/paperless-ngx/Manifest | 9 ++ .../paperless-ngx/files/paperless-consumer.service | 15 ++ .../files/paperless-scheduler.service | 15 ++ .../files/paperless-task-queue.service | 15 ++ .../files/paperless-webserver.service | 17 +++ www-apps/paperless-ngx/files/paperless.target | 7 + www-apps/paperless-ngx/files/paperless.tmpfiles | 7 + www-apps/paperless-ngx/metadata.xml | 16 +++ www-apps/paperless-ngx/paperless-ngx-1.11.3.ebuild | 154 +++++++++++++++++++++ 15 files changed, 297 insertions(+) create mode 100644 acct-group/paperless/Manifest create mode 100644 acct-group/paperless/metadata.xml create mode 100644 acct-group/paperless/paperless-0.ebuild create mode 100644 acct-user/paperless/Manifest create mode 100644 acct-user/paperless/metadata.xml create mode 100644 acct-user/paperless/paperless-0.ebuild create mode 100644 www-apps/paperless-ngx/Manifest create mode 100644 www-apps/paperless-ngx/files/paperless-consumer.service create mode 100644 www-apps/paperless-ngx/files/paperless-scheduler.service create mode 100644 www-apps/paperless-ngx/files/paperless-task-queue.service create mode 100644 www-apps/paperless-ngx/files/paperless-webserver.service create mode 100644 www-apps/paperless-ngx/files/paperless.target create mode 100644 www-apps/paperless-ngx/files/paperless.tmpfiles create mode 100644 www-apps/paperless-ngx/metadata.xml create mode 100644 www-apps/paperless-ngx/paperless-ngx-1.11.3.ebuild diff --git a/acct-group/paperless/Manifest b/acct-group/paperless/Manifest new file mode 100644 index 0000000..decfc00 --- /dev/null +++ b/acct-group/paperless/Manifest @@ -0,0 +1,2 @@ +EBUILD paperless-0.ebuild 145 BLAKE2B a6abf387dfec6a02c69d773d5a1e6ca6fc799e9a51445e4d143435424f35956b4848644bde15974b4b61ce232027339c83d8aa607d444c14f960e62f976d0709 SHA512 c73167128f79f446e34640f31858d4e1225b04926c5ec5d80550cbf858eac423e25510221e19508de7a4c4826b1a683faf1fb29bd820616fc7b1f7580fa6271c +MISC metadata.xml 255 BLAKE2B fec818e56877b2451e889c05ed95700632e02438bbe9ae515925548714246b19bdf3b141e0771f64b92483ade6734afe8828d0b177db1d76902c535871ea5551 SHA512 f5e088eef2af90b4f6129ca7ed31d833f61521a8fe6c60e5d5cb871601a85374bf330f445c298990760d51e5186ec8156a192ff30b42f8abc3cb82d329ccc803 diff --git a/acct-group/paperless/metadata.xml b/acct-group/paperless/metadata.xml new file mode 100644 index 0000000..1196209 --- /dev/null +++ b/acct-group/paperless/metadata.xml @@ -0,0 +1,8 @@ + + + + + marcin.deranek@slonko.net + Marcin Deranek + + diff --git a/acct-group/paperless/paperless-0.ebuild b/acct-group/paperless/paperless-0.ebuild new file mode 100644 index 0000000..b0c893b --- /dev/null +++ b/acct-group/paperless/paperless-0.ebuild @@ -0,0 +1,8 @@ +# Copyright 2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit acct-group + +ACCT_GROUP_ID=-1 diff --git a/acct-user/paperless/Manifest b/acct-user/paperless/Manifest new file mode 100644 index 0000000..99c3309 --- /dev/null +++ b/acct-user/paperless/Manifest @@ -0,0 +1,2 @@ +EBUILD paperless-0.ebuild 296 BLAKE2B d54b9973ba6b7440f4d716cbeb9259f2949f59f04fb58b39af1a4ba6e150f60771627afac8b9de6d46ff0e739f190570a41d83a71b4b44913233e9991f065e40 SHA512 8c159bd86b3f5aa76f858642509af44b451b3c06bb2a0363f16aae7f45cf07d7782ee15fc32bf50157c63856a8a19d0e678c1509c406ffebecb1c82aabf55c5e +MISC metadata.xml 255 BLAKE2B fec818e56877b2451e889c05ed95700632e02438bbe9ae515925548714246b19bdf3b141e0771f64b92483ade6734afe8828d0b177db1d76902c535871ea5551 SHA512 f5e088eef2af90b4f6129ca7ed31d833f61521a8fe6c60e5d5cb871601a85374bf330f445c298990760d51e5186ec8156a192ff30b42f8abc3cb82d329ccc803 diff --git a/acct-user/paperless/metadata.xml b/acct-user/paperless/metadata.xml new file mode 100644 index 0000000..1196209 --- /dev/null +++ b/acct-user/paperless/metadata.xml @@ -0,0 +1,8 @@ + + + + + marcin.deranek@slonko.net + Marcin Deranek + + diff --git a/acct-user/paperless/paperless-0.ebuild b/acct-user/paperless/paperless-0.ebuild new file mode 100644 index 0000000..e9f515c --- /dev/null +++ b/acct-user/paperless/paperless-0.ebuild @@ -0,0 +1,14 @@ +# Copyright 2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit acct-user + +DESCRIPTION="User for Paperless services" +ACCT_USER_ID=-1 +ACCT_USER_GROUPS=( paperless ) +ACCT_USER_HOME=/var/lib/paperless +ACCT_USER_HOME_PERMS=0700 + +acct-user_add_deps diff --git a/www-apps/paperless-ngx/Manifest b/www-apps/paperless-ngx/Manifest new file mode 100644 index 0000000..529428e --- /dev/null +++ b/www-apps/paperless-ngx/Manifest @@ -0,0 +1,9 @@ +AUX paperless-consumer.service 307 BLAKE2B db97750cb7db44cd99c4a26ab9cc3742edeb22da1126c526754a58159025720416116378b6e6bf453d80657c462ce366a8922f86729fded9e9163f4fcd352a29 SHA512 85875d092c758e54d6942dabd2348445fce36e1f0526d66fd669c0d5ed874b266df35bf52d5bb9c31b2c6a6d8ffc8e481527eff716ba71e4b14cebdeea1196ec +AUX paperless-scheduler.service 307 BLAKE2B 4abe32ad0cc4a565675dce7f01323343ff6c3fe2309049971764865acc3f8da20894ecb624137ecd2c367bc4972c55e554f7d5aabc5df4fd8fda6e8bfb8496fa SHA512 424d116d083c536bf979911700bf2bc5f66a415d2732b5e68c3bd9efd3ba0c18d78de3a885e2fe6c49613bae3be3cb8917d5d91d2dffa0c25e1764b78389b815 +AUX paperless-task-queue.service 306 BLAKE2B fb04b70fc9d3461dff1f4ba78a92f5e299f38d77c8bbae9f4449b52bfbb8d4b56dd50e8ced8126ba5224e316e1462590a0ccc227cd2219615430338a75a385e0 SHA512 a5f6ec9dd63d743dae42bad473c9147a66792b7b168521e9d1b7726d226829263fe5c4546ed1c1e9d8e86cf862581187fcf25b722e70f115c072c66b1bcde4f8 +AUX paperless-webserver.service 406 BLAKE2B e1f00059be8e814f9ab67e18ef790665f3eb8077c0d7ce5d25b371a908a24d9802643db95ae1090d99f7c0420b9e55271197351b32d816cb6cf6afafd0f17c90 SHA512 74531b12c30f7bfe30a7b74685107d03b38dd134703484107d4c4d6ce675c703fd6322fb6eeb0957bedeb51e649c13f05bf6ff7e24f38c85c73a8c5602b35e0f +AUX paperless.target 215 BLAKE2B 95b67ebfc166b888ee5aea32c5565002ae451a10c0d0851df79eeabf3a6e900c7112d447ccbc170bca771bf33e07261aa05f32a25e742ded0b10e6f31ee78870 SHA512 ae3d1dcc8f056f303a0c628c1aabb60e0c93f4006352c5d05a5ee673238c56085ccd2d95ff53555767d9a31a639cd571a26083aab274237cb9f8563ce50c25d6 +AUX paperless.tmpfiles 349 BLAKE2B 4a59f0a0c6a4abad23cba01e216909f45a7064e93911b8ba3e3b394f52379e41898b8c9e1246ba034bc8d2fe6dc83f5cad926e265a17da7c7093d997cfe8b4f3 SHA512 63af6e4359d5fa7bfc3f3669263a36f5d3b5f60c95cf6579d7324bb2116647bb447968b1bab5916e831918344b963d1026116e8cdfb57bce8063ed5ba119c9ea +DIST paperless-ngx-v1.11.3.tar.xz 13509448 BLAKE2B f9571a9f7f6c2fb29c4236077d8f9b23155cb3e28e49327a5bcefe2920deab0bccde8af94bf298a224186a1644b5aa773a28cead2f37abf4c3fa66d44d2b1f5f SHA512 c2bf0ef90c9df938f8165944737b6a4157f2d94ab577e13b8202b2c1372e2e34b213a57a535b19c88421acdb73dc04b9e633cc9cd4c857c1868809e08e79fd24 +EBUILD paperless-ngx-1.11.3.ebuild 4558 BLAKE2B 1c87e153c461394b77e4e9b39539b2e269bcb10c739c5b2c361a848cc18fa3c219649354c042c9e93a4b29d3d4896bcfd5002c8b0df6d9bf606e6882d56215e4 SHA512 5ad904c2dfb2f1035f946b35975a9e858240cdec898484465b49cdcdc13ae8f485a2672054c72fb1005f3ee7bcfb063ed1872d5349e437c6bb47fe6a0cb018b6 +MISC metadata.xml 573 BLAKE2B 79218091412e77fb365ddd854192ec4531d1a0f300e214b5284521c530c2628bb0ecbac970924ec0085075336b72d25feb3f445595d6d0719f8ee9152a597717 SHA512 d0c61fd7689cc9b8b8237b6e82943499351238e7650514a2b8fafba374be70eb29a607413a5fefcf99ac304bd47779d054ffd723f7adeff92f2e1a56d1db0841 diff --git a/www-apps/paperless-ngx/files/paperless-consumer.service b/www-apps/paperless-ngx/files/paperless-consumer.service new file mode 100644 index 0000000..a5b474f --- /dev/null +++ b/www-apps/paperless-ngx/files/paperless-consumer.service @@ -0,0 +1,15 @@ +[Unit] +Description=Paperless consumer service +Requires=redis.service +After=network.target +PartOf=paperless.target + +[Service] +User=paperless +Group=paperless +WorkingDirectory=/usr/share/paperless/src +ExecStart=/usr/bin/paperless-manage document_consumer +Restart=on-abort + +[Install] +WantedBy=multi-user.target diff --git a/www-apps/paperless-ngx/files/paperless-scheduler.service b/www-apps/paperless-ngx/files/paperless-scheduler.service new file mode 100644 index 0000000..59e0aa1 --- /dev/null +++ b/www-apps/paperless-ngx/files/paperless-scheduler.service @@ -0,0 +1,15 @@ +[Unit] +Description=Paperless scheduler service +Requires=redis.service +After=network.target +PartOf=paperless.target + +[Service] +User=paperless +Group=paperless +WorkingDirectory=/usr/share/paperless/src +ExecStart=celery --app paperless beat --loglevel INFO +Restart=on-abort + +[Install] +WantedBy=paperless.target diff --git a/www-apps/paperless-ngx/files/paperless-task-queue.service b/www-apps/paperless-ngx/files/paperless-task-queue.service new file mode 100644 index 0000000..0049813 --- /dev/null +++ b/www-apps/paperless-ngx/files/paperless-task-queue.service @@ -0,0 +1,15 @@ +[Unit] +Description=Paperless Celery Workers +Requires=redis.service +After=network.target +PartOf=paperless.target + +[Service] +User=paperless +Group=paperless +WorkingDirectory=/usr/share/paperless/src +ExecStart=celery --app paperless worker --loglevel INFO +Restart=on-abort + +[Install] +WantedBy=paperless.target diff --git a/www-apps/paperless-ngx/files/paperless-webserver.service b/www-apps/paperless-ngx/files/paperless-webserver.service new file mode 100644 index 0000000..2568805 --- /dev/null +++ b/www-apps/paperless-ngx/files/paperless-webserver.service @@ -0,0 +1,17 @@ +[Unit] +Description=Paperless webserver service +Requires=redis.service +After=network.target +Wants=network.target +PartOf=paperless.target + +[Service] +User=paperless +Group=paperless +EnvironmentFile=/etc/paperless.conf +WorkingDirectory=/usr/share/paperless/src +ExecStart=/usr/bin/gunicorn -c /usr/share/paperless/gunicorn.conf.py paperless.asgi:application +Restart=on-abort + +[Install] +WantedBy=paperless.target diff --git a/www-apps/paperless-ngx/files/paperless.target b/www-apps/paperless-ngx/files/paperless.target new file mode 100644 index 0000000..2281a12 --- /dev/null +++ b/www-apps/paperless-ngx/files/paperless.target @@ -0,0 +1,7 @@ +[Unit] +Description=Paperless services +After=network.target +Wants=paperless-webserver.service paperless-consumer.service paperless-scheduler.service paperless-task-queue.service + +[Install] +WantedBy=multi-user.target diff --git a/www-apps/paperless-ngx/files/paperless.tmpfiles b/www-apps/paperless-ngx/files/paperless.tmpfiles new file mode 100644 index 0000000..6d9934f --- /dev/null +++ b/www-apps/paperless-ngx/files/paperless.tmpfiles @@ -0,0 +1,7 @@ +f /etc/paperless.conf 0640 root paperless +d /var/lib/paperless 0770 paperless paperless +d /var/lib/paperless/consume 0770 paperless paperless +d /var/lib/paperless/data 0750 paperless paperless +d /var/lib/paperless/media 0750 paperless paperless +d /var/lib/paperless/tmp 0750 paperless paperless +d /var/lib/paperless/uploads 0750 paperless paperless diff --git a/www-apps/paperless-ngx/metadata.xml b/www-apps/paperless-ngx/metadata.xml new file mode 100644 index 0000000..a231852 --- /dev/null +++ b/www-apps/paperless-ngx/metadata.xml @@ -0,0 +1,16 @@ + + + + + marcin.deranek@slonko.net + Marcin Deranek + + + Enable support for Optical Character Recognition + Use remote Redis instance + + + https://github.com/paperless-ngx/paperless-ngx/issues + paperless-ngx/paperless-ngx + + diff --git a/www-apps/paperless-ngx/paperless-ngx-1.11.3.ebuild b/www-apps/paperless-ngx/paperless-ngx-1.11.3.ebuild new file mode 100644 index 0000000..246011a --- /dev/null +++ b/www-apps/paperless-ngx/paperless-ngx-1.11.3.ebuild @@ -0,0 +1,154 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +inherit systemd + +DESCRIPTION="Community supported paperless: scan, index and archive your physical documents" +HOMEPAGE="https://github.com/paperless-ngx/paperless-ngx" +SRC_URI="https://github.com/paperless-ngx/paperless-ngx/releases/download/v${PV}/paperless-ngx-v${PV}.tar.xz" +S="${WORKDIR}/${PN}" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="~amd64" +IUSE="mysql +ocr postgres remote-redis +sqlite" +REQUIRED_USE="|| ( mysql postgres sqlite )" + +ACCT_DEPEND=" + acct-group/paperless + acct-user/paperless +" +EXTRA_DEPEND=" + app-text/unpaper + dev-python/hiredis +" + +DEPEND=" + ${ACCT_DEPEND} + ${EXTRA_DEPEND} + app-text/poppler[utils] + app-text/pdfminer + dev-python/asgiref + dev-python/celery + >=dev-python/channels-3.0 + =dev-python/channels-redis-3.4.1 + =dev-python/dateparser-1.1 + >=dev-python/django-4.1 + dev-python/django-celery-results + dev-python/django-cors-headers + dev-python/django-extensions + >=dev-python/django-filter-22.1 + dev-python/django-redis + >=dev-python/djangorestframework-3.14 + dev-python/filelock + dev-python/imap-tools + >=dev-python/inotifyrecursive-0.3 + dev-python/langdetect + dev-python/pathvalidate + dev-python/pdf2image + dev-python/pikepdf + >=dev-python/pillow-9.3 + dev-python/python-dateutil + dev-python/python-dotenv + dev-python/python-gnupg + dev-python/python-magic + dev-python/pyzbar + dev-python/rapidfuzz + dev-python/redis-py + dev-python/tqdm + dev-python/uvicorn + >=dev-python/watchdog-2.1 + >=dev-python/whitenoise-6.2 + >=dev-python/whoosh-2.7 + media-gfx/imagemagick + media-gfx/optipng + media-libs/jbig2enc + www-servers/gunicorn + mysql? ( dev-python/mysqlclient ) + ocr? ( >=app-text/OCRmyPDF-14.0 ) + postgres? ( dev-python/psycopg:2 ) + !remote-redis? ( dev-db/redis ) +" +RDEPEND="${DEPEND}" +# dev-python/nltk - masked +# dev-python/requests - Tika +# tika +# sci-libs/scikit-learn (lots of deps) + +DOCS=( docker/imagemagick-policy.xml ) + +src_prepare() { + default + + sed \ + -e "s|#PAPERLESS_CONSUMPTION_DIR=../consume|PAPERLESS_CONSUMPTION_DIR=/var/lib/paperless/consume|" \ + -e "s|#PAPERLESS_DATA_DIR=../data|PAPERLESS_DATA_DIR=/var/lib/paperless/data|" \ + -e "s|#PAPERLESS_MEDIA_ROOT=../media|PAPERLESS_MEDIA_ROOT=/var/lib/paperless/media|" \ + -e "s|#PAPERLESS_STATICDIR=../static|PAPERLESS_STATICDIR=/usr/share/paperless/static|" \ + -e "s|#PAPERLESS_CONVERT_TMPDIR=/var/tmp/paperless|PAPERLESS_CONVERT_TMPDIR=/var/lib/paperless/tmp|" \ + -i "paperless.conf" || die "Cannot update paperless.conf" +} + +src_install() { + einstalldocs + + # Install service files + systemd_newunit "${FILESDIR}"/paperless-webserver.service paperless-webserver.service + systemd_newunit "${FILESDIR}"/paperless-scheduler.service paperless-scheduler.service + systemd_newunit "${FILESDIR}"/paperless-consumer.service paperless-consumer.service + systemd_newunit "${FILESDIR}"/paperless-task-queue.service paperless-task-queue.service + systemd_newunit "${FILESDIR}"/paperless.target paperless.target + if use remote-redis; then + sed -e '/redis\.service/d' -i *.service "${D}$(systemd_get_systemunitdir)"/*.service + fi + + # Install paperless files + insinto /usr/share/paperless + doins -r docs src static gunicorn.conf.py requirements.txt + + insinto /etc + doins paperless.conf + fowners root:paperless /etc/paperless.conf + fperms 640 /etc/paperless.conf + + insinto /usr/lib/tmpfiles.d + doins "${FILESDIR}"/paperless.tmpfiles + fperms 644 /usr/lib/tmpfiles.d/paperless.tmpfiles + + # Set directories + for dir in data media tmp; do + keepdir /var/lib/paperless/${dir} + fowners paperless:paperless /var/lib/paperless/${dir} + case "${dir}" in + data) fperms 700 /var/lib/paperless/${dir} ;; + *) fperms 750 /var/lib/paperless/${dir} ;; + esac + done + + # Main executable + fperms 755 "/usr/share/paperless/src/manage.py" + dosym -r "/usr/share/paperless/src/manage.py" "/usr/bin/paperless-manage" +} + +pkg_postinst() { + elog "To complete the installation of paperless, edit /etc/paperless.conf file and" + elog "* Create the database with" + elog "" + elog "sudo -u paperless paperless-manage migrate" + elog "" + elog "* Create a super user account with" + elog "" + elog "sudo -u paperless paperless-manage createsuperuser" + elog "" + elog "After each update of paperless, you should run migration with" + elog "" + elog "sudo -u paperless paperless-manage migrate" + elog "" + elog "Paperless services can be started together with" + elog "" + elog "sudo systemctl start paperless.target" +} -- cgit v1.2.3