[arch-commits] Commit in uwsgi/repos (17 files)
Felix Yan
felixonmars at archlinux.org
Thu Dec 26 01:31:40 UTC 2019
Date: Thursday, December 26, 2019 @ 01:31:39
Author: felixonmars
Revision: 541781
archrelease: copy trunk to community-staging-x86_64
Added:
uwsgi/repos/community-staging-x86_64/
uwsgi/repos/community-staging-x86_64/PKGBUILD
(from rev 541777, uwsgi/trunk/PKGBUILD)
uwsgi/repos/community-staging-x86_64/archlinux.ini
(from rev 541777, uwsgi/trunk/archlinux.ini)
uwsgi/repos/community-staging-x86_64/emperor.ini
(from rev 541777, uwsgi/trunk/emperor.ini)
uwsgi/repos/community-staging-x86_64/emperor.uwsgi.service
(from rev 541777, uwsgi/trunk/emperor.uwsgi.service)
uwsgi/repos/community-staging-x86_64/emperor.uwsgi.socket
(from rev 541777, uwsgi/trunk/emperor.uwsgi.socket)
uwsgi/repos/community-staging-x86_64/fix-php74.patch
(from rev 541777, uwsgi/trunk/fix-php74.patch)
uwsgi/repos/community-staging-x86_64/php7.patch
(from rev 541777, uwsgi/trunk/php7.patch)
uwsgi/repos/community-staging-x86_64/tmpfilesd
(from rev 541777, uwsgi/trunk/tmpfilesd)
uwsgi/repos/community-staging-x86_64/uwsgi.install
(from rev 541777, uwsgi/trunk/uwsgi.install)
uwsgi/repos/community-staging-x86_64/uwsgi.logrotate
(from rev 541778, uwsgi/trunk/uwsgi.logrotate)
uwsgi/repos/community-staging-x86_64/uwsgi.sysusers
(from rev 541778, uwsgi/trunk/uwsgi.sysusers)
uwsgi/repos/community-staging-x86_64/uwsgi_at.service
(from rev 541779, uwsgi/trunk/uwsgi_at.service)
uwsgi/repos/community-staging-x86_64/uwsgi_at.socket
(from rev 541779, uwsgi/trunk/uwsgi_at.socket)
uwsgi/repos/community-staging-x86_64/uwsgi_fix_rpath.patch
(from rev 541779, uwsgi/trunk/uwsgi_fix_rpath.patch)
uwsgi/repos/community-staging-x86_64/uwsgi_ruby20_compatibility.patch
(from rev 541779, uwsgi/trunk/uwsgi_ruby20_compatibility.patch)
uwsgi/repos/community-staging-x86_64/uwsgi_trick_chroot.patch
(from rev 541779, uwsgi/trunk/uwsgi_trick_chroot.patch)
----------------------------------+
PKGBUILD | 208 +++++++++++++++++++++++++++++++++++++
archlinux.ini | 5
emperor.ini | 2
emperor.uwsgi.service | 16 ++
emperor.uwsgi.socket | 9 +
fix-php74.patch | 39 ++++++
php7.patch | 169 ++++++++++++++++++++++++++++++
tmpfilesd | 1
uwsgi.install | 9 +
uwsgi.logrotate | 10 +
uwsgi.sysusers | 1
uwsgi_at.service | 16 ++
uwsgi_at.socket | 9 +
uwsgi_fix_rpath.patch | 66 +++++++++++
uwsgi_ruby20_compatibility.patch | 42 +++++++
uwsgi_trick_chroot.patch | 16 ++
16 files changed, 618 insertions(+)
Copied: uwsgi/repos/community-staging-x86_64/PKGBUILD (from rev 541777, uwsgi/trunk/PKGBUILD)
===================================================================
--- community-staging-x86_64/PKGBUILD (rev 0)
+++ community-staging-x86_64/PKGBUILD 2019-12-26 01:31:39 UTC (rev 541781)
@@ -0,0 +1,208 @@
+# Maintainer: Daniel Wallace <danielwallace at gtmanfred dot com>
+# Maintainer: Sven-Hendrik Haase <svenstaro at gmail.com>
+# Contributor: Valentin Hăloiu <vially.ichb+aur at gmail.com>
+# Contributor: Angel Velasquez <angvp at archlinux.org>
+# Contributor: Kevin Zuber <uKev at knet.eu>
+# Contributor: Vsevolod Balashov <vsevolod at balashov.name>
+# Contributor: David Runge <dave at sleepmap.de>
+
+pkgbase=uwsgi
+pkgname=(uwsgi
+ uwsgi-plugin-rack
+ uwsgi-plugin-psgi
+ uwsgi-plugin-cgi
+ uwsgi-plugin-python2
+ uwsgi-plugin-python
+ uwsgi-plugin-pypy
+ uwsgi-plugin-php
+ uwsgi-plugin-lua51
+ uwsgi-plugin-jvm
+ uwsgi-plugin-mono
+ uwsgi-plugin-webdav
+ uwsgi-plugin-zabbix
+ uwsgi-plugin-notfound)
+pkgver=2.0.18
+pkgrel=7
+arch=(x86_64)
+url="http://projects.unbit.it/$pkgbase"
+license=(GPL2)
+backup=('etc/uwsgi/emperor.ini')
+conflicts=(python-$pkgbase)
+makedepends=(gcc python python2 ruby python2-greenlet python-greenlet php-embed curl libxml2 libyaml
+ perl lua51 pcre libedit openssl bzip2 gmp pam java-environment=7
+ jansson classpath pypy mono python2-gevent systemd)
+optdepends=('systemd: daemon scripts')
+source=("https://projects.unbit.it/downloads/$pkgbase-$pkgver.tar.gz"
+ uwsgiplugin.py::https://raw.githubusercontent.com/unbit/uwsgi/9787f6882c2475aa9873e400988160b17dd04545/plugins/systemd_logger/uwsgiplugin.py
+ archlinux.ini
+ tmpfilesd
+ uwsgi_at.service
+ uwsgi_at.socket
+ uwsgi_ruby20_compatibility.patch
+ fix-php74.patch
+ uwsgi_trick_chroot.patch
+ emperor.ini
+ emperor.uwsgi.service
+ emperor.uwsgi.socket
+ uwsgi.logrotate
+ uwsgi.sysusers)
+sha512sums=('6561703279bcc4a81311d033810ac066d0f113bab13b0942f3eef86cac29c584a6641b52476840d6895151aee5ed064ae2d03b18932cf7f47e62f4eeed76da61'
+ '68eef703de39cb336915e1e9c36b11c65c2d46482407b0234ca245df0e052952abb7dd85b0a1cd4507c78356a3b7a55424524b3aa0997b559b51e7b20eab5e16'
+ 'acfe9fb089d1905c3d736dbeaaef7eb1848b4ce8d1f585de653086cf7f90c166a1e493d0b62ba030a4bcf2eca9c919e0d6deea2ea1c0bcb8533d7cb040d2f67c'
+ '4def9dcd06cfc2c6ce554add9d9545a01f3bb2681f0a2a6fc4ba68f91011111803a955cc41b5e70832ca448b196109368fdf874e81b7ec0edee4b51f864e16f7'
+ 'c0c1a5c2d31cdb7e0dc878ea3d0b6025532fb640ae7cf4d5f1eed2f89987e625c8dc7844d367283ed560fb3ef37915e3e9199be2e1b06fc4586ca862a653b4b5'
+ 'fb51a4d102a1bc7d9f7d4c4f310ee65076bcfbc94b47e2dafdf9b20e99a661c5f938185dcf698437d81409376f0276b966f09b13c8a29462c48612df43c3f3ef'
+ '162ca1be96282b32e8e6be919b6315bfd08954c491056958985bf99e7f5bdad3511665f059329d6cb6ef5d222f9aa11d4dc43c72e6a963ab941ada959fe8d964'
+ '52a9c2e5d5c3841d22d4e87f46c7a1e9de0350bb2aca854b899d5729132156116ab4db4ca7d99d79aacf846812adf0db0c4f7cedf4575767266a713e622827a6'
+ 'bc30f8ec69abd14fb96ada5b36cf65811a7a63ee27e224fcb6ceabe9935c1f17379cd872149a17da3d590b8ff60fbe7f77140d777aaf06e25e83388f897f611d'
+ 'd54c84838ddb2f389e115ebb81aa2583705c9e330f020e6583b496f9c271ed236b6820c2a065f2b55a79adbf13e262b9ff2428124a8044b8fa20ca29ca4930ac'
+ '83a6859d729bf186236aaa7fb7433415f6b985f17e05b7ac571d8919bbf1fb9bd577b4f673d9787dea09752e3d8043f47ce3d9c7d5690faaa1365e477e6c9388'
+ '592c85270f43b37e9c51aae126533830515b96fff9fcae969ee865fe173bd0550c7729530d5ff1e44ffee43cd5c78c96688ce091c677a4196379e24983c0180e'
+ '937878372aa1556f6ba62ad7148d1681288c94d6cff609368a9e861dd4d4524330006a08ae5993441f7d3101170e3a0a681a4c8b3c2c13b364b8b1f81cf25117'
+ '9e9eab08199cf08810ec95b0697cd8817226986d1e3aeb54845c0140ea5887360580348f295060c0558fb2d6aaed26fec929ea36b28cfeaf2b3588ce40fec3df')
+
+prepare() {
+ cd $srcdir/$pkgbase-$pkgver
+ cp $srcdir/archlinux.ini buildconf/archlinux.ini
+ for patch in fix-php74.patch uwsgi_ruby20_compatibility.patch uwsgi_trick_chroot.patch; do
+ msg2 "Applying $patch"
+ patch -Np1 -i $srcdir/$patch
+ done
+ rm -rf plugins/ruby
+ mv plugins/ruby{19,}
+ sed -i 's:\(ruby\)19:\1:' plugins/ruby/uwsgiplugin.py
+
+ sed -i 's/--cflags mono-2/--cflags mono-2 glib-2.0/g' plugins/mono/uwsgiplugin.py
+
+ cp $srcdir/uwsgiplugin.py plugins/systemd_logger/uwsgiplugin.py
+}
+
+build() {
+ pushd $srcdir/$pkgbase-$pkgver
+
+ export UWSGICONFIG_LUAPC='lua51'
+
+ python uwsgiconfig.py --build archlinux
+ python uwsgiconfig.py --plugin plugins/python archlinux python
+ python uwsgiconfig.py --plugin plugins/greenlet archlinux greenlet
+ python uwsgiconfig.py --plugin plugins/gevent archlinux gevent
+ python uwsgiconfig.py --plugin plugins/asyncio archlinux asyncio
+ python2 uwsgiconfig.py --plugin plugins/python archlinux python2
+ python2 uwsgiconfig.py --plugin plugins/greenlet archlinux greenlet2
+ python2 uwsgiconfig.py --plugin plugins/gevent archlinux gevent2
+ python2 uwsgiconfig.py --plugin plugins/pypy archlinux pypy
+ python2 uwsgiconfig.py --plugin plugins/zabbix archlinux zabbix
+ python2 uwsgiconfig.py --plugin plugins/notfound archlinux notfound
+}
+
+package_uwsgi() {
+ pkgdesc="A fast, self-healing and developer/sysadmin-friendly application container server coded in pure C"
+ depends=(libxml2 jansson systemd-libs libcap pam pcre)
+ install=uwsgi.install
+ cd $srcdir/$pkgbase-$pkgver
+ install -Dm755 uwsgi $pkgdir/usr/bin/uwsgi
+ install -Dm644 $srcdir/uwsgi_at.service $pkgdir/usr/lib/systemd/system/uwsgi at .service
+ install -Dm644 $srcdir/uwsgi_at.socket $pkgdir/usr/lib/systemd/system/uwsgi at .socket
+ install -Dm644 $srcdir/emperor.uwsgi.service $pkgdir/usr/lib/systemd/system/emperor.uwsgi.service
+ install -Dm644 $srcdir/emperor.uwsgi.socket $pkgdir/usr/lib/systemd/system/emperor.uwsgi.socket
+ install -Dm644 $srcdir/emperor.ini $pkgdir/etc/uwsgi/emperor.ini
+ install -Dm644 $srcdir/tmpfilesd $pkgdir/usr/lib/tmpfiles.d/uwsgi.conf
+ install -Dm644 $srcdir/uwsgi.logrotate $pkgdir/etc/logrotate.d/uwsgi
+ install -Dm644 $srcdir/uwsgi.sysusers $pkgdir/usr/lib/sysusers.d/uwsgi.conf
+}
+
+package_uwsgi-plugin-cgi() {
+ depends=(uwsgi)
+ pkgdesc="CGI plugin"
+ install -Dm755 $pkgbase-$pkgver/cgi_plugin.so $pkgdir/usr/lib/uwsgi/cgi_plugin.so
+}
+
+package_uwsgi-plugin-rack() {
+ depends=(uwsgi ruby)
+ pkgdesc="Ruby rack plugin"
+ install -Dm755 $pkgbase-$pkgver/rack_plugin.so $pkgdir/usr/lib/uwsgi/rack_plugin.so
+ install -Dm755 $pkgbase-$pkgver/fiber_plugin.so $pkgdir/usr/lib/uwsgi/fiber_plugin.so
+ install -Dm755 $pkgbase-$pkgver/rbthreads_plugin.so $pkgdir/usr/lib/uwsgi/rbthreads_plugin.so
+}
+
+package_uwsgi-plugin-psgi() {
+ depends=(uwsgi perl)
+ pkgdesc="Perl psgi plugin"
+ install -Dm755 $pkgbase-$pkgver/psgi_plugin.so $pkgdir/usr/lib/uwsgi/psgi_plugin.so
+}
+
+package_uwsgi-plugin-python2() {
+ depends=(uwsgi python2-gevent python2-greenlet)
+ pkgdesc="Plugin for Python2 support"
+ install -Dm755 $pkgbase-$pkgver/python2_plugin.so $pkgdir/usr/lib/uwsgi/python2_plugin.so
+ install -Dm755 $pkgbase-$pkgver/greenlet2_plugin.so $pkgdir/usr/lib/uwsgi/greenlet2_plugin.so
+ install -Dm755 $pkgbase-$pkgver/gevent2_plugin.so $pkgdir/usr/lib/uwsgi/gevent2_plugin.so
+ install -Dm644 $pkgbase-$pkgver/uwsgidecorators.py $pkgdir/usr/lib/python2.7/site-packages/uwsgidecorators.py
+ python2 -m compileall $pkgdir/usr/lib/python2.7/site-packages/
+ python2 -O -m compileall $pkgdir/usr/lib/python2.7/site-packages/
+}
+
+package_uwsgi-plugin-python() {
+ depends=(uwsgi python python-greenlet)
+ pkgdesc="Plugin for Python support"
+ install -Dm755 $pkgbase-$pkgver/python_plugin.so $pkgdir/usr/lib/uwsgi/python_plugin.so
+ install -Dm755 $pkgbase-$pkgver/greenlet_plugin.so $pkgdir/usr/lib/uwsgi/greenlet_plugin.so
+ install -Dm755 $pkgbase-$pkgver/gevent_plugin.so $pkgdir/usr/lib/uwsgi/gevent_plugin.so
+ install -Dm755 $pkgbase-$pkgver/asyncio_plugin.so $pkgdir/usr/lib/uwsgi/asyncio_plugin.so
+ install -Dm644 $pkgbase-$pkgver/uwsgidecorators.py $pkgdir/usr/lib/python3.8/site-packages/uwsgidecorators.py
+ python -m compileall $pkgdir/usr/lib/python3.8/site-packages/
+ python -O -m compileall $pkgdir/usr/lib/python3.8/site-packages/
+}
+
+package_uwsgi-plugin-pypy() {
+ depends=(uwsgi pypy)
+ pkgdesc="Plugin for PyPy support"
+ install -Dm755 $pkgbase-$pkgver/pypy_plugin.so $pkgdir/usr/lib/uwsgi/pypy_plugin.so
+ install -Dm644 $pkgbase-$pkgver/uwsgidecorators.py $pkgdir/opt/pypy/site-packages/uwsgidecorators.py
+ pypy -m compileall $pkgdir/opt/pypy/site-packages/
+ pypy -O -m compileall $pkgdir/opt/pypy/site-packages/
+}
+
+package_uwsgi-plugin-lua51() {
+ depends=(uwsgi lua51)
+ pkgdesc="Plugin for Lua support"
+ install -Dm755 $pkgbase-$pkgver/lua_plugin.so $pkgdir/usr/lib/uwsgi/lua_plugin.so
+}
+
+package_uwsgi-plugin-php() {
+ depends=(uwsgi php-embed libyaml jansson)
+ pkgdesc="Plugin for PHP support"
+ install -Dm755 $pkgbase-$pkgver/php_plugin.so $pkgdir/usr/lib/uwsgi/php_plugin.so
+}
+
+package_uwsgi-plugin-jvm() {
+ depends=(uwsgi java-environment=7 classpath)
+ pkgdesc="Plugin for Jvm support"
+ install -Dm644 $pkgbase-$pkgver/plugins/jvm/uwsgi.jar $pkgdir/usr/share/java/uwsgi.jar
+ install -Dm755 $pkgbase-$pkgver/jvm_plugin.so $pkgdir/usr/lib/uwsgi/jvm_plugin.so
+}
+
+package_uwsgi-plugin-mono() {
+ depends=(uwsgi mono)
+ pkgdesc="Plugin for mono support"
+ install -Dm755 $pkgbase-$pkgver/plugins/mono/uwsgi.dll $pkgdir/usr/lib/mono/2.0/uwsgi.dll
+ install -Dm755 $pkgbase-$pkgver/mono_plugin.so $pkgdir/usr/lib/uwsgi/mono_plugin.so
+}
+
+package_uwsgi-plugin-webdav() {
+ depends=(uwsgi)
+ pkgdesc="Plugin for webdav support"
+ install -Dm755 $pkgbase-$pkgver/webdav_plugin.so $pkgdir/usr/lib/uwsgi/webdav_plugin.so
+}
+
+package_uwsgi-plugin-zabbix() {
+ depends=(uwsgi)
+ pkgdesc="Plugin for zabbix support"
+ install -Dm755 $pkgbase-$pkgver/zabbix_plugin.so $pkgdir/usr/lib/uwsgi/zabbix_plugin.so
+}
+
+package_uwsgi-plugin-notfound() {
+ depends=(uwsgi)
+ pkgdesc="Plugin for notfound support"
+ install -Dm755 $pkgbase-$pkgver/notfound_plugin.so $pkgdir/usr/lib/uwsgi/notfound_plugin.so
+}
Copied: uwsgi/repos/community-staging-x86_64/archlinux.ini (from rev 541777, uwsgi/trunk/archlinux.ini)
===================================================================
--- community-staging-x86_64/archlinux.ini (rev 0)
+++ community-staging-x86_64/archlinux.ini 2019-12-26 01:31:39 UTC (rev 541781)
@@ -0,0 +1,5 @@
+[uwsgi]
+plugin_dir = /usr/lib/uwsgi
+plugins = rack, rbthreads, fiber, psgi, lua, php, jvm, mono, cgi, webdav
+main_plugin = systemd_logger,pam
+inherit = base
Copied: uwsgi/repos/community-staging-x86_64/emperor.ini (from rev 541777, uwsgi/trunk/emperor.ini)
===================================================================
--- community-staging-x86_64/emperor.ini (rev 0)
+++ community-staging-x86_64/emperor.ini 2019-12-26 01:31:39 UTC (rev 541781)
@@ -0,0 +1,2 @@
+[uwsgi]
+emperor = /etc/uwsgi/vassals
Copied: uwsgi/repos/community-staging-x86_64/emperor.uwsgi.service (from rev 541777, uwsgi/trunk/emperor.uwsgi.service)
===================================================================
--- community-staging-x86_64/emperor.uwsgi.service (rev 0)
+++ community-staging-x86_64/emperor.uwsgi.service 2019-12-26 01:31:39 UTC (rev 541781)
@@ -0,0 +1,16 @@
+[Unit]
+Description=uWSGI Emperor
+After=syslog.target
+
+[Service]
+ExecStart=/usr/bin/uwsgi --ini /etc/uwsgi/emperor.ini
+ExecReload=/bin/kill -HUP $MAINPID
+ExecStop=/bin/kill -INT $MAINPID
+Restart=always
+Type=notify
+StandardError=syslog
+NotifyAccess=all
+KillSignal=SIGQUIT
+
+[Install]
+WantedBy=multi-user.target
Copied: uwsgi/repos/community-staging-x86_64/emperor.uwsgi.socket (from rev 541777, uwsgi/trunk/emperor.uwsgi.socket)
===================================================================
--- community-staging-x86_64/emperor.uwsgi.socket (rev 0)
+++ community-staging-x86_64/emperor.uwsgi.socket 2019-12-26 01:31:39 UTC (rev 541781)
@@ -0,0 +1,9 @@
+[Unit]
+Description=Socket for uWSGI Emperor
+
+[Socket]
+# Change this to your uwsgi application port or unix socket location
+ListenStream=/run/uwsgi/emperor.sock
+
+[Install]
+WantedBy=sockets.target
Copied: uwsgi/repos/community-staging-x86_64/fix-php74.patch (from rev 541777, uwsgi/trunk/fix-php74.patch)
===================================================================
--- community-staging-x86_64/fix-php74.patch (rev 0)
+++ community-staging-x86_64/fix-php74.patch 2019-12-26 01:31:39 UTC (rev 541781)
@@ -0,0 +1,39 @@
+From c4a2ad579a2fe5d357f2d6486c1afe84ef18a029 Mon Sep 17 00:00:00 2001
+From: Arne Welzel <arne.welzel at gmail.com>
+Date: Sun, 8 Dec 2019 12:59:45 +0100
+Subject: [PATCH] php: Properly zero initialize zend_file_handle
+
+In the PHP bugtracker [1], the stacktrace included a bogus pointer value
+being passed to `_efree`. The ASCII value of the pointer is "02.11.81"
+which heavily pointed at usage of non-initialized data.
+
+ #1 0x00007f8fe07e9e96 in _efree (ptr=0x30322e31312e3831) at /data/work/php-src-php-7.4.0RC6/Zend/zend_alloc.c:2549
+
+The solution is to use an open-coded version of`zend_stream_init_filename()` [2].
+Maybe we could actually use the above helper, but I'm not familiar enough
+with PHP/versions/compat, so the proposed change seems safer.
+
+Should fix #2096.
+
+[1] https://bugs.php.net/bug.php?id=78828
+[2] https://github.com/php/php-src/blob/bc6e4b6c574261188519a1e83ba49998ffbcb12b/Zend/zend_stream.c#L70
+---
+ plugins/php/php_plugin.c | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/plugins/php/php_plugin.c b/plugins/php/php_plugin.c
+index 72c390223..1690fb60c 100644
+--- a/plugins/php/php_plugin.c
++++ b/plugins/php/php_plugin.c
+@@ -1115,10 +1115,9 @@ int uwsgi_php_request(struct wsgi_request *wsgi_req) {
+
+ SG(request_info).path_translated = wsgi_req->file;
+
++ memset(&file_handle, 0, sizeof(zend_file_handle));
+ file_handle.type = ZEND_HANDLE_FILENAME;
+ file_handle.filename = real_filename;
+- file_handle.free_filename = 0;
+- file_handle.opened_path = NULL;
+
+ if (php_request_startup(TSRMLS_C) == FAILURE) {
+ uwsgi_500(wsgi_req);
Copied: uwsgi/repos/community-staging-x86_64/php7.patch (from rev 541777, uwsgi/trunk/php7.patch)
===================================================================
--- community-staging-x86_64/php7.patch (rev 0)
+++ community-staging-x86_64/php7.patch 2019-12-26 01:31:39 UTC (rev 541781)
@@ -0,0 +1,169 @@
+From 4d79e13acaf13acdf8f8a84cfa3fdda211f8aa81 Mon Sep 17 00:00:00 2001
+From: Unbit <info at unbit.it>
+Date: Tue, 29 Dec 2015 08:53:19 +0100
+Subject: [PATCH 12/12] official php7 support (beta) #1124
+
+---
+ plugins/php/common.h | 4 ++++
+ plugins/php/php_plugin.c | 20 ++++++++++++++++++++
+ plugins/php/session.c | 19 ++++++++++++++++++-
+ plugins/php/uwsgiplugin.py | 4 +++-
+ 4 files changed, 45 insertions(+), 2 deletions(-)
+
+diff --git a/plugins/php/common.h b/plugins/php/common.h
+index 8c1ed13..9bf1c06 100644
+--- a/plugins/php/common.h
++++ b/plugins/php/common.h
+@@ -3,7 +3,11 @@
+ #include "php_main.h"
+ #include "php_variables.h"
+
++#if (PHP_MAJOR_VERSION < 7)
+ #include "ext/standard/php_smart_str.h"
++#else
++#define UWSGI_PHP7
++#endif
+ #include "ext/standard/info.h"
+
+ #include "ext/session/php_session.h"
+diff --git a/plugins/php/php_plugin.c b/plugins/php/php_plugin.c
+index b1b6f7a..6d9e952 100644
+--- a/plugins/php/php_plugin.c
++++ b/plugins/php/php_plugin.c
+@@ -65,7 +65,11 @@ struct uwsgi_option uwsgi_php_options[] = {
+ };
+
+
++#ifdef UWSGI_PHP7
++static size_t sapi_uwsgi_ub_write(const char *str, size_t str_length TSRMLS_DC)
++#else
+ static int sapi_uwsgi_ub_write(const char *str, uint str_length TSRMLS_DC)
++#endif
+ {
+ struct wsgi_request *wsgi_req = (struct wsgi_request *) SG(server_context);
+
+@@ -111,7 +115,11 @@ static int sapi_uwsgi_send_headers(sapi_headers_struct *sapi_headers TSRMLS_DC)
+ return SAPI_HEADER_SENT_SUCCESSFULLY;
+ }
+
++#ifdef UWSGI_PHP7
++static size_t sapi_uwsgi_read_post(char *buffer, size_t count_bytes TSRMLS_DC)
++#else
+ static int sapi_uwsgi_read_post(char *buffer, uint count_bytes TSRMLS_DC)
++#endif
+ {
+ uint read_bytes = 0;
+
+@@ -235,7 +243,11 @@ PHP_MINIT_FUNCTION(uwsgi_php_minit) {
+ }
+
+ PHP_FUNCTION(uwsgi_version) {
++#ifdef UWSGI_PHP7
++ RETURN_STRING(UWSGI_VERSION);
++#else
+ RETURN_STRING(UWSGI_VERSION, 1);
++#endif
+ }
+
+ PHP_FUNCTION(uwsgi_worker_id) {
+@@ -321,7 +333,11 @@ PHP_FUNCTION(uwsgi_cache_get) {
+ if (value) {
+ char *ret = estrndup(value, valsize);
+ free(value);
++#ifdef UWSGI_PHP7
++ RETURN_STRING(ret);
++#else
+ RETURN_STRING(ret, 0);
++#endif
+ }
+ RETURN_NULL();
+ }
+@@ -425,7 +441,11 @@ PHP_FUNCTION(uwsgi_rpc) {
+ // here we do not free varargs for performance reasons
+ char *ret = estrndup(response, size);
+ free(response);
++#ifdef UWSGI_PHP7
++ RETURN_STRING(ret);
++#else
+ RETURN_STRING(ret, 0);
++#endif
+ }
+
+ clear:
+diff --git a/plugins/php/session.c b/plugins/php/session.c
+index 40f9ef7..2312b6b 100644
+--- a/plugins/php/session.c
++++ b/plugins/php/session.c
+@@ -12,21 +12,34 @@ PS_CLOSE_FUNC(uwsgi) {
+ PS_READ_FUNC(uwsgi) {
+ char *cache = PS_GET_MOD_DATA();
+ uint64_t valsize = 0;
+- char *value = uwsgi_cache_magic_get((char *)key, strlen(key), &valsize, NULL, cache);
++#ifdef UWSGI_PHP7
++ char *value = uwsgi_cache_magic_get(key->val, key->len , &valsize, NULL, cache);
++#else
++ char *value = uwsgi_cache_magic_get((char *)key, strlen((char *)key), &valsize, NULL, cache);
++#endif
+ if (!value) return FAILURE;
++#ifdef UWSGI_PHP7
++ *val = zend_string_init(value, valsize, 0);
++#else
+ char *new_val = emalloc(valsize);
+ memcpy(new_val, value, valsize);
+ free(value);
+ *val = new_val;
+ *vallen = valsize;
++#endif
+ return SUCCESS;
+
+ }
+
+ PS_WRITE_FUNC(uwsgi) {
+ char *cache = PS_GET_MOD_DATA();
++#ifdef UWSGI_PHP7
++ if (val->len == 0) return SUCCESS;
++ if (!uwsgi_cache_magic_set(key->val, key->len, val->val, val->len, 0, UWSGI_CACHE_FLAG_UPDATE, cache)) {
++#else
+ if (vallen == 0) return SUCCESS;
+ if (!uwsgi_cache_magic_set((char *)key, strlen(key), (char *)val, vallen, 0, UWSGI_CACHE_FLAG_UPDATE, cache)) {
++#endif
+ return SUCCESS;
+ }
+ return FAILURE;
+@@ -34,7 +47,11 @@ PS_WRITE_FUNC(uwsgi) {
+
+ PS_DESTROY_FUNC(uwsgi) {
+ char *cache = PS_GET_MOD_DATA();
++#ifdef UWSGI_PHP7
++ if (!uwsgi_cache_magic_del(key->val, key->len, cache)) {
++#else
+ if (!uwsgi_cache_magic_del((char *)key, strlen(key), cache)) {
++#endif
+ return SUCCESS;
+ }
+ return FAILURE;
+diff --git a/plugins/php/uwsgiplugin.py b/plugins/php/uwsgiplugin.py
+index e7ce425..45c58e5 100644
+--- a/plugins/php/uwsgiplugin.py
++++ b/plugins/php/uwsgiplugin.py
+@@ -12,6 +12,8 @@ if phpdir:
+
+ PHPPATH = os.environ.get('UWSGICONFIG_PHPPATH', PHPPATH)
+
++php_version = os.popen(PHPPATH + ' --version').read().rstrip().split('.')[0]
++
+ CFLAGS = [os.popen(PHPPATH + ' --includes').read().rstrip(), '-Wno-sign-compare']
+ LDFLAGS = os.popen(PHPPATH + ' --ldflags').read().rstrip().split()
+
+@@ -19,7 +21,7 @@ if ld_run_path:
+ LDFLAGS.append('-L%s' % ld_run_path)
+ os.environ['LD_RUN_PATH'] = ld_run_path
+
+-LIBS = [os.popen(PHPPATH + ' --libs').read().rstrip(), '-lphp5']
++LIBS = [os.popen(PHPPATH + ' --libs').read().rstrip(), '-lphp' + php_version]
+
+ phplibdir = os.environ.get('UWSGICONFIG_PHPLIBDIR')
+ if phplibdir:
+--
+2.6.4
+
Copied: uwsgi/repos/community-staging-x86_64/tmpfilesd (from rev 541777, uwsgi/trunk/tmpfilesd)
===================================================================
--- community-staging-x86_64/tmpfilesd (rev 0)
+++ community-staging-x86_64/tmpfilesd 2019-12-26 01:31:39 UTC (rev 541781)
@@ -0,0 +1 @@
+d /run/uwsgi 0775 root http - -
Copied: uwsgi/repos/community-staging-x86_64/uwsgi.install (from rev 541777, uwsgi/trunk/uwsgi.install)
===================================================================
--- community-staging-x86_64/uwsgi.install (rev 0)
+++ community-staging-x86_64/uwsgi.install 2019-12-26 01:31:39 UTC (rev 541781)
@@ -0,0 +1,9 @@
+post_update(){
+ echo "To use uwsgi at .socket and uwsgi at .service:"
+ echo "\tAll you need to do is put the name of your .ini file after the @ sign"
+ echo "\tYou can use either the .socket or .service, but if you use the .socket"
+ echo "\tuwsgi@<sameinifile>.service won't be started until the first time your http"
+ echo "\tserver touches the socket. You will also not need to specify the socket in"
+ echo "\tthe .ini file or in the .service file. Systemd will handle listening to"
+ echo "\tthe socket for you."
+}
Copied: uwsgi/repos/community-staging-x86_64/uwsgi.logrotate (from rev 541778, uwsgi/trunk/uwsgi.logrotate)
===================================================================
--- community-staging-x86_64/uwsgi.logrotate (rev 0)
+++ community-staging-x86_64/uwsgi.logrotate 2019-12-26 01:31:39 UTC (rev 541781)
@@ -0,0 +1,10 @@
+/var/log/uwsgi/*.log /var/log/uwsgi/*/*.log {
+ copytruncate
+ daily
+ rotate 7
+ compress
+ delaycompress
+ missingok
+ notifempty
+ su root uwsgi
+}
Copied: uwsgi/repos/community-staging-x86_64/uwsgi.sysusers (from rev 541778, uwsgi/trunk/uwsgi.sysusers)
===================================================================
--- community-staging-x86_64/uwsgi.sysusers (rev 0)
+++ community-staging-x86_64/uwsgi.sysusers 2019-12-26 01:31:39 UTC (rev 541781)
@@ -0,0 +1 @@
+g uwsgi 53 -
Copied: uwsgi/repos/community-staging-x86_64/uwsgi_at.service (from rev 541779, uwsgi/trunk/uwsgi_at.service)
===================================================================
--- community-staging-x86_64/uwsgi_at.service (rev 0)
+++ community-staging-x86_64/uwsgi_at.service 2019-12-26 01:31:39 UTC (rev 541781)
@@ -0,0 +1,16 @@
+[Unit]
+Description=uWSGI service unit
+After=syslog.target
+
+[Service]
+ExecStart=/usr/bin/uwsgi --ini /etc/uwsgi/%I.ini
+ExecReload=/bin/kill -HUP $MAINPID
+ExecStop=/bin/kill -INT $MAINPID
+Restart=always
+Type=notify
+StandardError=syslog
+NotifyAccess=all
+KillSignal=SIGQUIT
+
+[Install]
+WantedBy=multi-user.target
Copied: uwsgi/repos/community-staging-x86_64/uwsgi_at.socket (from rev 541779, uwsgi/trunk/uwsgi_at.socket)
===================================================================
--- community-staging-x86_64/uwsgi_at.socket (rev 0)
+++ community-staging-x86_64/uwsgi_at.socket 2019-12-26 01:31:39 UTC (rev 541781)
@@ -0,0 +1,9 @@
+[Unit]
+Description=Socket for uWSGI %I
+
+[Socket]
+# Change this to your uwsgi application port or unix socket location
+ListenStream=/run/uwsgi/%I.sock
+
+[Install]
+WantedBy=sockets.target
Copied: uwsgi/repos/community-staging-x86_64/uwsgi_fix_rpath.patch (from rev 541779, uwsgi/trunk/uwsgi_fix_rpath.patch)
===================================================================
--- community-staging-x86_64/uwsgi_fix_rpath.patch (rev 0)
+++ community-staging-x86_64/uwsgi_fix_rpath.patch 2019-12-26 01:31:39 UTC (rev 541781)
@@ -0,0 +1,66 @@
+diff --git a/plugins/jvm/uwsgiplugin.py b/plugins/jvm/uwsgiplugin.py
+index ac7eb3e..0911288 100644
+--- a/plugins/jvm/uwsgiplugin.py
++++ b/plugins/jvm/uwsgiplugin.py
+@@ -59,11 +59,6 @@ if "-framework JavaVM" in JVM_LIBPATH:
+
+ GCC_LIST = ['jvm_plugin']
+
+-if 'LD_RUN_PATH' in os.environ:
+- os.environ['LD_RUN_PATH'] += ':' + JVM_LIBPATH[0][2:]
+-else:
+- os.environ['LD_RUN_PATH'] = JVM_LIBPATH[0][2:]
+-
+ def post_build(config):
+ if os.system("javac %s/plugins/jvm/uwsgi.java" % os.getcwd()) != 0:
+ os._exit(1)
+diff --git a/plugins/php/uwsgiplugin.py b/plugins/php/uwsgiplugin.py
+index fb9e5bb..fd12c91 100644
+--- a/plugins/php/uwsgiplugin.py
++++ b/plugins/php/uwsgiplugin.py
+@@ -22,7 +22,6 @@ CFLAGS = [os.popen(PHPPATH + ' --includes').read().rstrip(), '-Wno-error=sign-co
+ LDFLAGS = os.popen(PHPPATH + ' --ldflags').read().rstrip().split()
+ if ld_run_path:
+ LDFLAGS.append('-L%s' % ld_run_path)
+- os.environ['LD_RUN_PATH'] = ld_run_path
+
+ LIBS = [os.popen(PHPPATH + ' --libs').read().rstrip(), '-lphp5']
+
+diff --git a/plugins/python/uwsgiplugin.py b/plugins/python/uwsgiplugin.py
+index c4f03e1..8d4b2e0 100644
+--- a/plugins/python/uwsgiplugin.py
++++ b/plugins/python/uwsgiplugin.py
+@@ -45,10 +45,8 @@ if not 'UWSGI_PYTHON_NOLIB' in os.environ:
+ else:
+ try:
+ LDFLAGS.append("-L%s" % sysconfig.get_config_var('LIBDIR'))
+- os.environ['LD_RUN_PATH'] = "%s" % (sysconfig.get_config_var('LIBDIR'))
+ except:
+ LDFLAGS.append("-L%s/lib" % sysconfig.PREFIX)
+- os.environ['LD_RUN_PATH'] = "%s/lib" % sysconfig.PREFIX
+
+ LIBS.append('-lpython%s' % get_python_version())
+ else:
+diff --git a/plugins/rack/uwsgiplugin.py b/plugins/rack/uwsgiplugin.py
+index 8dee214..2375bc9 100644
+--- a/plugins/rack/uwsgiplugin.py
++++ b/plugins/rack/uwsgiplugin.py
+@@ -44,7 +44,6 @@ LIBS = os.popen(RUBYPATH + " -e \"require 'rbconfig';print %s::CONFIG['LIBS']\""
+
+ if has_shared == 'yes':
+ LDFLAGS.append('-L' + libpath )
+- os.environ['LD_RUN_PATH'] = libpath
+ LIBS.append(os.popen(RUBYPATH + " -e \"require 'rbconfig';print '-l' + %s::CONFIG['RUBY_SO_NAME']\"" % rbconfig).read().rstrip())
+ else:
+ GCC_LIST.append("%s/%s" % (libpath, os.popen(RUBYPATH + " -e \"require 'rbconfig';print %s::CONFIG['LIBRUBY_A']\"" % rbconfig).read().rstrip()))
+diff --git a/plugins/ruby19/uwsgiplugin.py b/plugins/ruby19/uwsgiplugin.py
+index ecea48d..4f35984 100644
+--- a/plugins/ruby19/uwsgiplugin.py
++++ b/plugins/ruby19/uwsgiplugin.py
+@@ -40,6 +40,5 @@ LDFLAGS = os.popen(RUBYPATH + " -e \"require 'rbconfig';print %s::CONFIG['LDFLAG
+
+ libpath = os.popen(RUBYPATH + " -e \"require 'rbconfig';print %s::CONFIG['libdir']\"" % rbconfig).read().rstrip()
+ LDFLAGS.append('-L' + libpath )
+-os.environ['LD_RUN_PATH'] = libpath
+ LIBS = os.popen(RUBYPATH + " -e \"require 'rbconfig';print '-l' + %s::CONFIG['RUBY_SO_NAME']\"" % rbconfig).read().rstrip().split()
+
Copied: uwsgi/repos/community-staging-x86_64/uwsgi_ruby20_compatibility.patch (from rev 541779, uwsgi/trunk/uwsgi_ruby20_compatibility.patch)
===================================================================
--- community-staging-x86_64/uwsgi_ruby20_compatibility.patch (rev 0)
+++ community-staging-x86_64/uwsgi_ruby20_compatibility.patch 2019-12-26 01:31:39 UTC (rev 541781)
@@ -0,0 +1,42 @@
+diff --git a/plugins/rack/uwsgiplugin.py b/plugins/rack/uwsgiplugin.py
+index 2375bc9..b908417 100644
+--- a/plugins/rack/uwsgiplugin.py
++++ b/plugins/rack/uwsgiplugin.py
+@@ -10,13 +10,14 @@ except:
+ rbconfig = 'Config'
+
+ version = os.popen(RUBYPATH + " -e \"print RUBY_VERSION\"").read().rstrip()
+-v = version.split('.')
+
+ GCC_LIST = ['rack_plugin', 'rack_api']
+
+-if (v[0] == '1' and v[1] == '9') or v[0] >= '2':
++if version >= '1.9':
+ CFLAGS = os.popen(RUBYPATH + " -e \"require 'rbconfig';print RbConfig::CONFIG['CFLAGS']\"").read().rstrip().split()
+ CFLAGS.append('-DRUBY19')
++ if version >= '2.0':
++ CFLAGS.append('-DRUBY20')
+ CFLAGS.append('-Wno-unused-parameter')
+ rbconfig = 'RbConfig'
+ else:
+diff --git a/plugins/ruby19/uwsgiplugin.py b/plugins/ruby19/uwsgiplugin.py
+index 4f35984..156018f 100644
+--- a/plugins/ruby19/uwsgiplugin.py
++++ b/plugins/ruby19/uwsgiplugin.py
+@@ -10,13 +10,14 @@ except:
+ rbconfig = 'Config'
+
+ version = os.popen(RUBYPATH + " -e \"print RUBY_VERSION\"").read().rstrip()
+-v = version.split('.')
+
+ GCC_LIST = ['../rack/rack_plugin', '../rack/rack_api']
+
+-if v[0] == '1' and v[1] == '9':
++if version >= '1.9':
+ CFLAGS = os.popen(RUBYPATH + " -e \"require 'rbconfig';print RbConfig::CONFIG['CFLAGS']\"").read().rstrip().split()
+ CFLAGS.append('-DRUBY19')
++ if version >= '2.0':
++ CFLAGS.append('-DRUBY20')
+ CFLAGS.append('-Wno-unused-parameter')
+ rbconfig = 'RbConfig'
+ else:
Copied: uwsgi/repos/community-staging-x86_64/uwsgi_trick_chroot.patch (from rev 541779, uwsgi/trunk/uwsgi_trick_chroot.patch)
===================================================================
--- community-staging-x86_64/uwsgi_trick_chroot.patch (rev 0)
+++ community-staging-x86_64/uwsgi_trick_chroot.patch 2019-12-26 01:31:39 UTC (rev 541781)
@@ -0,0 +1,16 @@
+diff --git a/uwsgiconfig.py b/uwsgiconfig.py
+index e447123..4d55f2c 100644
+--- a/uwsgiconfig.py
++++ b/uwsgiconfig.py
+@@ -1129,10 +1129,7 @@ def build_plugin(path, uc, cflags, ldflags, libs, name = None):
+ except:
+ pass
+
+- if uc:
+- plugin_dest = uc.get('plugin_build_dir', uc.get('plugin_dir')) + '/' + name + '_plugin'
+- else:
+- plugin_dest = name + '_plugin'
++ plugin_dest = name + '_plugin'
+
+ shared_flag = '-shared'
+
More information about the arch-commits
mailing list