Date: Sunday, October 3, 2021 @ 17:22:25 Author: jelle Revision: 1027211
archrelease: copy trunk to community-staging-x86_64 Added: pgadmin4/repos/community-staging-x86_64/ pgadmin4/repos/community-staging-x86_64/PKGBUILD (from rev 1027210, pgadmin4/trunk/PKGBUILD) pgadmin4/repos/community-staging-x86_64/config_distro.py (from rev 1027210, pgadmin4/trunk/config_distro.py) pgadmin4/repos/community-staging-x86_64/config_local.py (from rev 1027210, pgadmin4/trunk/config_local.py) pgadmin4/repos/community-staging-x86_64/flask-security-compat.patch (from rev 1027210, pgadmin4/trunk/flask-security-compat.patch) pgadmin4/repos/community-staging-x86_64/flask2-compat.patch (from rev 1027210, pgadmin4/trunk/flask2-compat.patch) pgadmin4/repos/community-staging-x86_64/pgAdmin4.desktop (from rev 1027210, pgadmin4/trunk/pgAdmin4.desktop) pgadmin4/repos/community-staging-x86_64/pgadmin4-python-de-vendor-venv-paths.patch (from rev 1027210, pgadmin4/trunk/pgadmin4-python-de-vendor-venv-paths.patch) --------------------------------------------+ PKGBUILD | 145 +++++++++++++++++++++++++++ config_distro.py | 2 flask-security-compat.patch | 30 +++++ flask2-compat.patch | 14 ++ pgAdmin4.desktop | 11 ++ pgadmin4-python-de-vendor-venv-paths.patch | 33 ++++++ 6 files changed, 235 insertions(+) Copied: pgadmin4/repos/community-staging-x86_64/PKGBUILD (from rev 1027210, pgadmin4/trunk/PKGBUILD) =================================================================== --- community-staging-x86_64/PKGBUILD (rev 0) +++ community-staging-x86_64/PKGBUILD 2021-10-03 17:22:25 UTC (rev 1027211) @@ -0,0 +1,145 @@ +# Maintainer: Levente Polyak <anthraxx[at]archlinux[dot]org> +# Maintainer: Jerome Leclanche <jer...@leclan.ch> + +pkgname=pgadmin4 +pkgver=4.30 +pkgrel=2 +pkgdesc='Comprehensive design and management interface for PostgreSQL' +url='https://www.pgadmin.org/' +arch=('x86_64') +license=('custom') +depends=('qt5-base' 'postgresql-libs' 'hicolor-icon-theme' 'python' + 'libxcrypt' 'libcrypt.so' 'glibc' 'gcc-libs' + 'python-blinker' 'python-flask' 'python-flask-login' + 'python-flask-migrate' 'python-flask-sqlalchemy' 'python-flask-wtf' + 'python-passlib' 'python-pytz' 'python-simplejson' 'python-six' + 'python-speaklater' 'python-sqlparse' 'python-wtforms' 'python-psutil' + 'python-jinja' 'python-paramiko' 'python-psycopg2' 'python-bcrypt' + 'python-cryptography' 'python-sqlalchemy1.3' 'python-testtools' + 'python-webencodings' 'python-werkzeug' 'python-dateutil' + 'python-flask-gravatar' 'python-flask-mail' 'python-flask-principal' + 'python-flask-paranoid' 'python-sshtunnel' 'python-flask-security-too' + 'python-werkzeug' 'python-flask-compress' 'python-ldap3' 'python-cryptography' + 'python-flask-babelex' 'python-gssapi') +makedepends=('python-setuptools' 'python-sphinx' 'python-extras' 'python-fixtures' + 'python-html5lib' 'python-pbr' 'python-mimeparse' 'python-pyrsistent' + 'imagemagick') +source=(https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v${pkgver}/source/${pkgname}-${pkgver}.tar.gz{,.asc} + pgAdmin4.desktop + config_distro.py + config_local.py + pgadmin4-python-de-vendor-venv-paths.patch + flask-security-compat.patch + flask2-compat.patch) +validpgpkeys=('E8697E2EEF76C02D3A6332778881B2A8210976F2') # Package Manager (Package Signing Key) <packa...@pgadmin.org> +sha512sums=('7ce12f65ce9dbfe4af9e92dd7f9327a05be8b8436ef495a0634043158417f3af5f457b88ee5422ede59f517c197668094454c6d7b7c33e255068479ce6ec13d9' + 'SKIP' + 'b19dda3331585010c759099eb09f4db288ce4cd3d36882b56748e1e3756dc7bee2899d7438d496280498ec6a60f6e1ba90309d49fc599403f1fdc7e8817b6645' + '16d00dc2095904a6b12da7039458f632873829ad98d4d7653eac5804032ba92097ccae4488d56467d0ea9bd64e2654a3dead73eb7924c947ff1737ff6e3b4745' + 'cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e' + 'a8c1a3762469b02b745da4e3b30f7534ad6bb94e91d43f7e63604fef24f638e09575e2c9336e753e5b6dbe167c55bb49fb6247a16431415318479eb3a3712adc' + '8b23686674c12f1bbba9ded22425874adb5f6802f2e1f7e381c07208251301f0bb56622a0440e5609c5dcc5461f50fe08c7dcab4405878e9662de6faf782a39b' + '5eb39b2926adc7fe715a2b1b3f2165bd84a9fab3f8afda1ddaaba557ad1d41a4aa8d279387699b7148a86c7af4782d5b6b7f50f89972ef3507d14795c006a65c') + +prepare() { + cd ${pkgname}-${pkgver} + + patch -Np1 < ../pgadmin4-python-de-vendor-venv-paths.patch + patch -NRp1 < ../flask-security-compat.patch + patch -NRp1 < ../flask2-compat.patch + + local PYTHONVERSION="$(python -c 'import sys; print(f"{sys.version_info.major}.{sys.version_info.minor}")')" + sed -E "s|/usr/pgadmin4/web|/usr/lib/pgadmin4/web|g; + s|/usr/pgadmin4/lib/python[0-9\\.]+|/usr/lib/python${PYTHONVERSION}|g" \ + -i runtime/ConfigWindow.ui + sed "s|##PYTHONVERSION##|${PYTHONVERSION}|g" -i runtime/Server.cpp + + sed -E -i requirements.txt \ + -e '/blinker>?=/d' \ + -e '/extras>?=/d' \ + -e '/Flask>?=/d' \ + -e '/Flask-Login>?=/d' \ + -e '/Flask-Migrate>?=/d' \ + -e '/Flask-SQLAlchemy>?=/d' \ + -e '/Flask-WTF>?=/d' \ + -e '/pycrypto>?=/d' \ + -e '/passlib>?=/d' \ + -e '/pytz>?=/d' \ + -e '/simplejson>?=/d' \ + -e '/six>?=/d' \ + -e '/speaklater>?=/d' \ + -e '/sqlparse>?=/d' \ + -e '/WTForms>?=/d' \ + -e '/psutil>?=/d' \ + -e '/psycopg2>?=/d' \ + -e '/python-dateutil>?=/d' \ + -e '/SQLAlchemy>?=/d' \ + -e '/Flask-Gravatar>?=/d' \ + -e '/Flask-Mail>?=/d' \ + -e '/Flask-Principal>?=/d' \ + -e '/Flask-Paranoid>?=/d' \ + -e '/htmlmin>?=/d' \ + -e '/Flask-Security-Too>?=/d' \ + -e '/Flask-HTMLmin>?=/d' \ + -e '/Flask-Compress>?=/d' \ + -e '/sshtunnel>?=/d' \ + -e '/Werkzeug>?=/d' \ + -e '/ldap3>?=/d' \ + -e '/bcrypt>?<?=/d' \ + -e '/cryptography>?<?=/d' \ + -e '/Flask-BabelEx>?<?=/d' \ + -e '/gssapi>?<?=/d' \ + -e '/^#.*/d' \ + -e '/^$/d' + if [[ -s requirements.txt ]]; then + echo "ERROR: requirements.txt must be empty:" + cat requirements.txt + exit 1 + fi +} + +build() { + export LANG=en_US.UTF-8 + export LC_ALL=en_US.UTF-8 + export PGADMIN_PYTHON_DIR=/usr + + cd ${pkgname}-${pkgver} + convert +set date:create +set date:modify runtime/pgAdmin4.{ico,png} + # override doctree directory + make docs SPHINXOPTS='-d /tmp/' + + cd runtime + export CFLAGS+=" ${CPPFLAGS}" + export CXXFLAGS+=" ${CPPFLAGS}" + qmake CONFIG+=release + make +} + +package() { + cd ${pkgname}-${pkgver} + + install -Dm 755 runtime/pgAdmin4 "${pkgdir}/usr/lib/pgadmin4/runtime/pgAdmin4" + cp -a docs web "${pkgdir}/usr/lib/pgadmin4" + install -Dm 644 "${srcdir}"/config_{distro,local}.py -t "${pkgdir}/usr/lib/pgadmin4/web" + + install -Dm 644 runtime/pgAdmin4-0.png "${pkgdir}/usr/share/icons/hicolor/256x256/apps/pgAdmin4.png" + install -Dm 644 runtime/pgAdmin4-1.png "${pkgdir}/usr/share/icons/hicolor/48x48/apps/pgAdmin4.png" + install -Dm 644 runtime/pgAdmin4-2.png "${pkgdir}/usr/share/icons/hicolor/32x32/apps/pgAdmin4.png" + install -Dm 644 runtime/pgAdmin4-3.png "${pkgdir}/usr/share/icons/hicolor/16x16/apps/pgAdmin4.png" + install -Dm 644 "${srcdir}/pgAdmin4.desktop" -t "${pkgdir}/usr/share/applications" + + install -D /dev/stdin "${pkgdir}/usr/bin/pgadmin4" <<END +#!/bin/sh +cd /usr/lib/pgadmin4 +exec runtime/pgAdmin4 "\$@" +END + install -D /dev/stdin "${pkgdir}/usr/bin/pgadmin4-server" <<END +#!/bin/sh +cd /usr/lib/pgadmin4 +python web/pgAdmin4.py "\$@" +END + + install -Dm 644 LICENSE -t "${pkgdir}/usr/share/licenses/${pkgname}" +} + +# vim: ts=2 sw=2 et: Copied: pgadmin4/repos/community-staging-x86_64/config_distro.py (from rev 1027210, pgadmin4/trunk/config_distro.py) =================================================================== --- community-staging-x86_64/config_distro.py (rev 0) +++ community-staging-x86_64/config_distro.py 2021-10-03 17:22:25 UTC (rev 1027211) @@ -0,0 +1,2 @@ +SERVER_MODE = False +HELP_PATH = "/usr/lib/pgadmin4/docs/en_US/_build/html/" Copied: pgadmin4/repos/community-staging-x86_64/config_local.py (from rev 1027210, pgadmin4/trunk/config_local.py) =================================================================== Copied: pgadmin4/repos/community-staging-x86_64/flask-security-compat.patch (from rev 1027210, pgadmin4/trunk/flask-security-compat.patch) =================================================================== --- community-staging-x86_64/flask-security-compat.patch (rev 0) +++ community-staging-x86_64/flask-security-compat.patch 2021-10-03 17:22:25 UTC (rev 1027211) @@ -0,0 +1,30 @@ +diff -aur pgadmin4-4.30/web/pgadmin/browser/__init__.py pgadmin4-4.30.old/web/pgadmin/browser/__init__.py +--- pgadmin4-4.30/web/pgadmin/browser/__init__.py 2021-10-03 19:00:39.757955280 +0200 ++++ pgadmin4-4.30.old/web/pgadmin/browser/__init__.py 2021-10-03 18:59:22.220450894 +0200 +@@ -30,7 +30,7 @@ + from flask_security.signals import reset_password_instructions_sent + from flask_security.utils import config_value, do_flash, get_url, \ + get_message, slash_url_suffix, login_user, send_mail, logout_user +-from flask_security.views import _security, view_commit, _ctx ++from flask_security.views import _security, _commit, _ctx + from werkzeug.datastructures import MultiDict + + import config +@@ -1039,7 +1039,7 @@ + has_error = True + + if request.json is None and not has_error: +- after_this_request(view_commit) ++ after_this_request(_commit) + do_flash(*get_message('PASSWORD_CHANGE')) + + old_key = get_crypt_key()[1] +@@ -1205,7 +1205,7 @@ + has_error = True + + if not has_error: +- after_this_request(view_commit) ++ after_this_request(_commit) + do_flash(*get_message('PASSWORD_RESET')) + login_user(user) + return redirect(get_url(_security.post_reset_view) or Copied: pgadmin4/repos/community-staging-x86_64/flask2-compat.patch (from rev 1027210, pgadmin4/trunk/flask2-compat.patch) =================================================================== --- community-staging-x86_64/flask2-compat.patch (rev 0) +++ community-staging-x86_64/flask2-compat.patch 2021-10-03 17:22:25 UTC (rev 1027211) @@ -0,0 +1,14 @@ +diff -aur pgadmin4-4.30/web/pgadmin/browser/utils.py pgadmin4-4.30.old/web/pgadmin/browser/utils.py +--- pgadmin4-4.30/web/pgadmin/browser/utils.py 2021-10-03 19:12:11.176725436 +0200 ++++ pgadmin4-4.30.old/web/pgadmin/browser/utils.py 2021-10-03 19:04:26.747074705 +0200 +@@ -13,9 +13,8 @@ + + import flask + from flask import render_template, current_app +-from flask.views import View, MethodViewType ++from flask.views import View, MethodViewType, with_metaclass + from flask_babelex import gettext +-from six import with_metaclass + + from config import PG_DEFAULT_DRIVER + from pgadmin.utils.ajax import make_json_response, precondition_required,\ Copied: pgadmin4/repos/community-staging-x86_64/pgAdmin4.desktop (from rev 1027210, pgadmin4/trunk/pgAdmin4.desktop) =================================================================== --- community-staging-x86_64/pgAdmin4.desktop (rev 0) +++ community-staging-x86_64/pgAdmin4.desktop 2021-10-03 17:22:25 UTC (rev 1027211) @@ -0,0 +1,11 @@ +[Desktop Entry] +Encoding=UTF-8 +Name=pgAdmin 4 +Exec=/usr/lib/pgadmin4/runtime/pgAdmin4 +Icon=pgAdmin4 +Type=Application +Categories=Application;Development;Database; +MimeType=text/html +DocPath=/usr/lib/pgadmin4/docs/en_US/_build/html/index.html +Comment=PostgreSQL Tools +Keywords=database;db;sql;query;administration;development; Copied: pgadmin4/repos/community-staging-x86_64/pgadmin4-python-de-vendor-venv-paths.patch (from rev 1027210, pgadmin4/trunk/pgadmin4-python-de-vendor-venv-paths.patch) =================================================================== --- community-staging-x86_64/pgadmin4-python-de-vendor-venv-paths.patch (rev 0) +++ community-staging-x86_64/pgadmin4-python-de-vendor-venv-paths.patch 2021-10-03 17:22:25 UTC (rev 1027211) @@ -0,0 +1,33 @@ +From 3edbde6534e3e819e47075c196c533d88cdbf786 Mon Sep 17 00:00:00 2001 +From: anthraxx <leve...@leventepolyak.net> +Date: Wed, 19 Dec 2018 01:10:25 +0100 +Subject: [PATCH] python: de-vendor venv paths + +--- + runtime/Server.cpp | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/runtime/Server.cpp b/runtime/Server.cpp +index f053cbb00..fd120f36a 100644 +--- a/runtime/Server.cpp ++++ b/runtime/Server.cpp +@@ -131,11 +131,11 @@ Server::Server(quint16 port, QString key, QString logFileName) + add_to_path(pythonHome, venvPath.canonicalFilePath()); + #else + // Build (and canonicalise) the virtual environment path +- QFileInfo venvBinPath(app_dir + "/../venv/bin"); +- QFileInfo venvLibPath(app_dir + "/../venv/lib/python"); +- QFileInfo venvDynLibPath(app_dir + "/../venv/lib/python/lib-dynload"); +- QFileInfo venvSitePackagesPath(app_dir + "/../venv/lib/python/site-packages"); +- QFileInfo venvPath(app_dir + "/../venv"); ++ QFileInfo venvBinPath("/usr/bin"); ++ QFileInfo venvLibPath("/usr/lib/python##PYTHONVERSION##"); ++ QFileInfo venvDynLibPath("/usr/lib/python##PYTHONVERSION##/lib-dynload"); ++ QFileInfo venvSitePackagesPath("/usr/lib/python##PYTHONVERSION##/site-packages"); ++ QFileInfo venvPath("/usr/lib/python##PYTHONVERSION##"); + + // Prepend the bin directory to the path + add_to_path(path_env, venvBinPath.canonicalFilePath(), true); +-- +2.27.0 +