Package: release.debian.org Severity: normal User: [email protected] Usertags: freeze-exception
Please unblock package uwsgi In order to fix RC bug #680132 a binary package uwsgi-plugin-luajit had to be removed. Luajit will not be a part of Wheezy and uwsgi-plugin-luajit Build-Depends on libluajit-5.1-dev. I also removed uwsgi-plugin-luajit from dependencies for uwsgi-app-integration-plugins and all occurrences of luajit in debian/rules. I have also added an upstream patch for fixing an important memory leak. I am sending the diff with changes from 1.2.3+dfsg-1 and 1.2.3+dfsg-2 releases. unblock uwsgi/1.2.3+dfsg-2 -- System Information: Debian Release: wheezy/sid APT prefers testing APT policy: (990, 'testing'), (500, 'unstable'), (1, 'experimental') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 3.4-trunk-amd64 (SMP w/4 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash
diff --git a/debian/changelog b/debian/changelog index ba7fe87..61361fe 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,14 @@ +uwsgi (1.2.3+dfsg-2) unstable; urgency=low + + * Remove uwsgi-plugin-luajit binary package. (Closes: #680132) + - Remove libluajit-5.1-dev from Build-Depends. + - Remove uwsgi-plugin-luajit from dependencies for + uwsgi-app-integration-plugins. + - Remove all occurrences of luajit plugin in debian/rules. + * Include upstream patch to fix a memory leak in python uwsgi.workers(). + + -- Janos Guljas <[email protected]> Mon, 09 Jul 2012 03:32:09 +0200 + uwsgi (1.2.3+dfsg-1) unstable; urgency=low * New upstream release. diff --git a/debian/control b/debian/control index 153d813..029f5f7 100644 --- a/debian/control +++ b/debian/control @@ -15,7 +15,6 @@ Build-Depends: libjansson-dev, libldap2-dev, liblua5.1-0-dev, - libluajit-5.1-dev [i386 amd64 kfreebsd-i386 armel], libperl-dev, libpq-dev, libsqlite3-dev, @@ -169,7 +168,6 @@ Depends: ${misc:Depends}, uwsgi-plugin-jvm-openjdk-6 (= ${binary:Version}), uwsgi-plugin-jwsgi-openjdk-6 (= ${binary:Version}), uwsgi-plugin-lua5.1 (= ${binary:Version}), - uwsgi-plugin-luajit (= ${binary:Version}) [i386 amd64 kfreebsd-i386 armel], uwsgi-plugin-psgi (= ${binary:Version}), uwsgi-plugin-python (= ${binary:Version}), uwsgi-plugin-python3 (= ${binary:Version}), @@ -185,7 +183,7 @@ Description: plugins for integration of uWSGI and application This dependency package provides plugins for integration of uWSGI and application: * CGI, Erlang, Java (OpenJDK 6), JWSGI (OpenJDK 6), - Lua WSAPI (Lua 5.1/LuaJIT), Perl PSGI, Python WSGI (Python/Python 3), + Lua WSAPI (Lua 5.1), Perl PSGI, Python WSGI (Python/Python 3), Rack (Ruby 1.8/Ruby 1.9.1) Package: uwsgi-plugin-admin @@ -378,18 +376,6 @@ Description: Lua WSAPI plugin for uWSGI (Lua 5.1) This package provides Lua WSAPI plugin for uWSGI (linked with Lua 5.1 runtime). -Package: uwsgi-plugin-luajit -Architecture: i386 amd64 kfreebsd-i386 armel -Depends: ${shlibs:Depends}, ${misc:Depends}, uwsgi-core (= ${binary:Version}) -Description: Lua WSAPI plugin for uWSGI (LuaJIT) - uWSGI presents a complete stack for networked/clustered web applications, - implementing message/object passing, caching, RPC and process management. - It is designed to be fully modular. This means that different plugins can be - used in order to add compatibility with tons of different technology on top of - the same core. - . - This package provides Lua WSAPI plugin for uWSGI (linked with LuaJIT runtime). - Package: uwsgi-plugin-nagios Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, uwsgi-core (= ${binary:Version}) diff --git a/debian/patches/fixed-a-leak-in-uwsgi.workers.patch b/debian/patches/fixed-a-leak-in-uwsgi.workers.patch new file mode 100644 index 0000000..a6d2d2d --- /dev/null +++ b/debian/patches/fixed-a-leak-in-uwsgi.workers.patch @@ -0,0 +1,72 @@ +From: "roberto@quantal64" <roberto@quantal64> +Date: Sat, 2 Jun 2012 09:59:21 +0200 +Subject: fixed a leak in uwsgi.workers() + +--- + plugins/python/uwsgi_pymodule.c | 35 ++++++++++++++++++++++++++++------- + 1 file changed, 28 insertions(+), 7 deletions(-) + +diff --git a/plugins/python/uwsgi_pymodule.c b/plugins/python/uwsgi_pymodule.c +index 0fe1ce3..2a72aec 100644 +--- a/plugins/python/uwsgi_pymodule.c ++++ b/plugins/python/uwsgi_pymodule.c +@@ -2492,6 +2492,11 @@ PyObject *py_uwsgi_workers(PyObject * self, PyObject * args) { + goto clear; + } + ++ apps_tuple = PyDict_GetItemString(worker_dict, "apps"); ++ if (apps_tuple) { ++ Py_DECREF(apps_tuple); ++ } ++ + PyDict_Clear(worker_dict); + + zero = PyInt_FromLong(uwsgi.workers[i + 1].id); +@@ -2601,21 +2606,37 @@ PyObject *py_uwsgi_workers(PyObject * self, PyObject * args) { + apps_dict = PyDict_New(); + ua = &uwsgi.workers[i+1].apps[j]; + +- PyDict_SetItemString(apps_dict, "id", PyInt_FromLong(j)); ++ zero = PyInt_FromLong(j); ++ PyDict_SetItemString(apps_dict, "id", zero); ++ Py_DECREF(zero); + +- PyDict_SetItemString(apps_dict, "modifier1", PyInt_FromLong(ua->modifier1)); ++ zero = PyInt_FromLong(ua->modifier1); ++ PyDict_SetItemString(apps_dict, "modifier1", zero); ++ Py_DECREF(zero); + + zero = PyString_FromStringAndSize(ua->mountpoint, ua->mountpoint_len); + PyDict_SetItemString(apps_dict, "mountpoint", zero); + Py_DECREF(zero); + +- PyDict_SetItemString(apps_dict, "startup_time", PyInt_FromLong((long) ua->startup_time)); ++ zero = PyInt_FromLong((long) ua->startup_time); ++ PyDict_SetItemString(apps_dict, "startup_time", zero); ++ Py_DECREF(zero); + +- PyDict_SetItemString(apps_dict, "interpreter", PyInt_FromLong((long)ua->interpreter)); +- PyDict_SetItemString(apps_dict, "callable", PyInt_FromLong((long)ua->interpreter)); ++ zero = PyInt_FromLong((long)ua->interpreter); ++ PyDict_SetItemString(apps_dict, "interpreter", zero); ++ Py_DECREF(zero); + +- PyDict_SetItemString(apps_dict, "requests", PyLong_FromUnsignedLongLong(ua->requests)); +- PyDict_SetItemString(apps_dict, "exceptions", PyLong_FromUnsignedLongLong(ua->exceptions)); ++ zero = PyInt_FromLong((long)ua->callable); ++ PyDict_SetItemString(apps_dict, "callable", zero); ++ Py_DECREF(zero); ++ ++ zero = PyLong_FromUnsignedLongLong(ua->requests); ++ PyDict_SetItemString(apps_dict, "requests", zero); ++ Py_DECREF(zero); ++ ++ zero = PyLong_FromUnsignedLongLong(ua->exceptions); ++ PyDict_SetItemString(apps_dict, "exceptions", zero); ++ Py_DECREF(zero); + + if (ua->chdir) { + zero = PyString_FromString(ua->chdir); +-- +1.7.10.4 + diff --git a/debian/patches/series b/debian/patches/series index 98930e9..247fb83 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -3,3 +3,4 @@ 000000_03_strip_versions_from_jQuery_scripts_links_in_uwsgicc_templates.patch 000000_04_strip_uwsgi_shebang_from_examples.patch 110515_01_add_overriding_of_JVM_PATH_into_buildscript_of_jwsgi_plugin.patch +fixed-a-leak-in-uwsgi.workers.patch diff --git a/debian/rules b/debian/rules index fcc9abc..e55dbdd 100755 --- a/debian/rules +++ b/debian/rules @@ -69,7 +69,7 @@ PARTICULARLY_BUILT_UWSGI_PLUGIN_PKGS = \ $(UWSGI_PLUGIN_PYTHON_PKG_KINDS) \ greenlet-python \ jvm-openjdk-6 jwsgi-openjdk-6 \ - lua5.1 luajit \ + lua5.1 \ $(patsubst %,pyerl-%,$(UWSGI_PLUGIN_PYTHON_PKG_KINDS)) \ rack-ruby1.8 rack-ruby1.9.1 fiber @@ -161,7 +161,7 @@ clean:: for INSTANTIATED_TEMPLATE in $(call files_instantiated_in_debian_dir, \ uwsgi-plugin-, \ $(ORDINARILY_BUILT_UWSGI_PLUGIN_PKGS) \ - lua5.1 luajit rack-ruby1.8 rack-ruby1.9.1, \ + lua5.1 rack-ruby1.8 rack-ruby1.9.1, \ .$${TEMPLATE_TYPE} \ ); do \ if [ -f $(CURDIR)/debian/uwsgi-plugin.$${TEMPLATE_TYPE}.in ]; then \ @@ -370,8 +370,8 @@ debian/stamp-plugin-fiber: $(PLUGIN_NAME) touch $@ -# Build lua51_plugin.so/lua_luajit_plugin.so -debian/stamp-plugin-lua5.1 debian/stamp-plugin-luajit: +# Build lua51_plugin.so +debian/stamp-plugin-lua5.1: $(eval PLUGIN_NAME = $(call pkg_name_to_plugin_name, \ $(subst stamp-plugin-,,$(notdir $@)) \ )) @@ -503,7 +503,7 @@ install/uwsgi-plugin-fiber:: < $(CURDIR)/debian/uwsgi-plugin.install.in \ > $(CURDIR)/debian/$(cdbs_curpkg).install -install/uwsgi-plugin-lua5.1 install/uwsgi-plugin-luajit:: +install/uwsgi-plugin-lua5.1:: $(eval PLUGIN_NAME = $(call pkg_name_to_plugin_name, \ $(subst uwsgi-plugin-,,$(notdir $@)) \ ))

