Date: Thursday, April 6, 2023 @ 12:08:36
Author: felixonmars
Revision: 1438630
archrelease: copy trunk to community-staging-any
Added:
python-pg8000/repos/community-staging-any/
python-pg8000/repos/community-staging-any/PKGBUILD
(from rev 1438629, python-pg8000/trunk/PKGBUILD)
python-pg8000/repos/community-staging-any/keys/
----------+
PKGBUILD | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 74 insertions(+)
Copied: python-pg8000/repos/community-staging-any/PKGBUILD (from rev 1438629,
python-pg8000/trunk/PKGBUILD)
===================================================================
--- community-staging-any/PKGBUILD (rev 0)
+++ community-staging-any/PKGBUILD 2023-04-06 12:08:36 UTC (rev 1438630)
@@ -0,0 +1,74 @@
+# Maintainer: Chih-Hsuan Yen <[email protected]>
+# Contributor: quomoow <[email protected]>
+
+pkgname=python-pg8000
+# https://github.com/tlocke/pg8000#release-notes
+pkgver=1.29.4
+pkgrel=2
+pkgdesc="Pure-Python PostgreSQL database driver, DB-API compatible"
+arch=(any)
+url='https://github.com/tlocke/pg8000'
+license=(BSD)
+makedepends=(python-setuptools python-build python-installer
python-versioningit python-wheel)
+checkdepends=(python-pytest python-pytest-mock python-pytest-benchmark
+ python-pytz postgresql)
+depends=(python python-scramp python-dateutil)
+source=("https://files.pythonhosted.org/packages/source/p/pg8000/pg8000-$pkgver.tar.gz"{,.asc})
+sha256sums=('76d2aa1757a30bc71e0307dae18c374e336a69123e6b046e206a96611fa2a330'
+ 'SKIP')
+validpgpkeys=(
+ 'D5681B7EC7292511C4CC1450892B00AB699851E8' # Tony Locke
<[email protected]>, proven by https://keybase.io/tlocke
+)
+
+build() {
+ cd pg8000-$pkgver
+ python -m build --wheel --no-isolation
+}
+
+check() {
+ cd pg8000-$pkgver
+
+ export PGDATA="$srcdir/postgres-testdata"
+ export PGHOST=127.0.0.1
+ export PGPORT=$((49152+$RANDOM%10000))
+
+ # See https://github.com/tlocke/pg8000#tests about database initialization
steps for testing
+ initdb --username=postgres --auth=trust
+ openssl req -subj "/CN=self-signed" -nodes -x509 -newkey rsa:4096 -days 1
-keyout "$PGDATA/self-signed.key" -out "$PGDATA/self-signed.crt"
+ cat <<EOF >> "$PGDATA/postgresql.conf"
+ssl = on
+ssl_cert_file = 'self-signed.crt'
+ssl_key_file = 'self-signed.key'
+password_encryption = 'scram-sha-256'
+EOF
+
+ pg_ctl start -o "-k '' -h $PGHOST -p $PGPORT" -l "$srcdir/postgresql.log"
+ # Change the password for postgres after password_encryption is specified,
so that the role has a valid SCRAM secret
+ psql -U postgres -c "
+ CREATE EXTENSION hstore;
+ ALTER ROLE postgres PASSWORD 'pw';
+ "
+
+ # should overwrite pg_hba.conf, or unexpected matches may happen against
existing entries
+ cat <<EOF > "$PGDATA/pg_hba.conf"
+host pg8000_md5 all 127.0.0.1/32 md5
+host pg8000_gss all 127.0.0.1/32 gss
+host pg8000_password all 127.0.0.1/32 password
+host pg8000_scram_sha_256 all 127.0.0.1/32 scram-sha-256
+host all all 127.0.0.1/32 trust
+EOF
+ pg_ctl reload
+ # Upstream tests require LANG=en_GB.UTF-8 or LANG=C.UTF-8 :/
+ #
https://github.com/tlocke/pg8000/blob/1.19.2/test/native/test_typeconversion.py#L455-L458
+ # test_readme: skipped as many tests need a postgresql instance listening on
the default port
+ # localhost:5432, which may cause conflicts until devtools supports a
separate network namespace [1]
+ # [1] https://gitlab.archlinux.org/archlinux/devtools/-/issues/72
+ PYTHONPATH="$PWD" LANG=C.UTF-8 pytest test -k 'not test_readme'
+ pg_ctl stop
+}
+
+package() {
+ cd pg8000-$pkgver
+ python -m installer --destdir="$pkgdir" dist/*.whl
+ install -Dm644 LICENSE -t "$pkgdir"/usr/share/licenses/$pkgname
+}