summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcin Deranek <marcin.deranek@booking.com>2023-01-11 15:20:48 +0100
committerMarcin Deranek <marcin.deranek@booking.com>2023-01-11 15:20:48 +0100
commit28a4da7d8f27c80f640f385e978f3f6548fce5db (patch)
tree1ac3e29c1a1f7105e40b9a6332390c4cc95f9af2
parent39fbeae8e681fc40c5fb1e0d7ea40b28be9370ca (diff)
downloadportage-28a4da7d8f27c80f640f385e978f3f6548fce5db.tar.gz
portage-28a4da7d8f27c80f640f385e978f3f6548fce5db.tar.bz2
portage-28a4da7d8f27c80f640f385e978f3f6548fce5db.zip
Very early www-apps/paperless-ngx ebuild support
-rw-r--r--acct-group/paperless/Manifest2
-rw-r--r--acct-group/paperless/metadata.xml8
-rw-r--r--acct-group/paperless/paperless-0.ebuild8
-rw-r--r--acct-user/paperless/Manifest2
-rw-r--r--acct-user/paperless/metadata.xml8
-rw-r--r--acct-user/paperless/paperless-0.ebuild14
-rw-r--r--www-apps/paperless-ngx/Manifest9
-rw-r--r--www-apps/paperless-ngx/files/paperless-consumer.service15
-rw-r--r--www-apps/paperless-ngx/files/paperless-scheduler.service15
-rw-r--r--www-apps/paperless-ngx/files/paperless-task-queue.service15
-rw-r--r--www-apps/paperless-ngx/files/paperless-webserver.service17
-rw-r--r--www-apps/paperless-ngx/files/paperless.target7
-rw-r--r--www-apps/paperless-ngx/files/paperless.tmpfiles7
-rw-r--r--www-apps/paperless-ngx/metadata.xml16
-rw-r--r--www-apps/paperless-ngx/paperless-ngx-1.11.3.ebuild154
15 files changed, 297 insertions, 0 deletions
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 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>marcin.deranek@slonko.net</email>
+ <name>Marcin Deranek</name>
+ </maintainer>
+</pkgmetadata>
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 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>marcin.deranek@slonko.net</email>
+ <name>Marcin Deranek</name>
+ </maintainer>
+</pkgmetadata>
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 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>marcin.deranek@slonko.net</email>
+ <name>Marcin Deranek</name>
+ </maintainer>
+ <use>
+ <flag name="ocr">Enable support for Optical Character Recognition</flag>
+ <flag name="remote-redis">Use remote Redis instance</flag>
+ </use>
+ <upstream>
+ <bugs-to>https://github.com/paperless-ngx/paperless-ngx/issues</bugs-to>
+ <remote-id type="github">paperless-ngx/paperless-ngx</remote-id>
+ </upstream>
+</pkgmetadata>
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-4.0
+ >=dev-python/channels-redis-3.4.1
+ <dev-python/channels-redis-4.0
+ dev-python/concurrent-log-handler
+ >=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"
+}