[arch-commits] Commit in pyalpm/repos/extra-x86_64 (PKGBUILD PKGBUILD memleak.patch)

Jelle van der Waa jelle at archlinux.org
Fri Jan 18 17:30:53 UTC 2019


    Date: Friday, January 18, 2019 @ 17:30:52
  Author: jelle
Revision: 344438

archrelease: copy trunk to extra-x86_64

Added:
  pyalpm/repos/extra-x86_64/PKGBUILD
    (from rev 344437, pyalpm/trunk/PKGBUILD)
  pyalpm/repos/extra-x86_64/memleak.patch
    (from rev 344437, pyalpm/trunk/memleak.patch)
Deleted:
  pyalpm/repos/extra-x86_64/PKGBUILD

---------------+
 PKGBUILD      |   65 +++++++++++++++++++++++++++++++-------------------------
 memleak.patch |   44 +++++++++++++++++++++++++++++++++++++
 2 files changed, 80 insertions(+), 29 deletions(-)

Deleted: PKGBUILD
===================================================================
--- PKGBUILD	2019-01-18 17:30:44 UTC (rev 344437)
+++ PKGBUILD	2019-01-18 17:30:52 UTC (rev 344438)
@@ -1,29 +0,0 @@
-# Maintainer : Rémy Oudompheng <remy at archlinux.org>
-
-pkgname=pyalpm
-pkgver=0.8.5
-pkgrel=1
-pkgdesc="Libalpm bindings for Python 3"
-arch=('x86_64')
-url="https://git.archlinux.org/pyalpm.git/"
-license=('GPL')
-makedepends=('git' 'python-pytest')
-depends=('python>=3.6' 'pacman>=5.0')
-source=("git+https://git.archlinux.org/pyalpm.git#commit=6b47d1655688fe2957ef52a16aeca8b474546df2")
-validpgpkeys=('E499C79F53C96A54E572FEE1C06086337C50773E')
-sha512sums=('SKIP')
-
-build() {
-  cd ${srcdir}/${pkgname}
-  python setup.py build
-}
-
-check() {
-  cd ${srcdir}/${pkgname}
-  PYTHONPATH="$PWD/build/lib.linux-$CARCH-3.7" pytest
-}
-
-package() {
-  cd ${srcdir}/${pkgname}
-  python setup.py install --root=${pkgdir}
-}

Copied: pyalpm/repos/extra-x86_64/PKGBUILD (from rev 344437, pyalpm/trunk/PKGBUILD)
===================================================================
--- PKGBUILD	                        (rev 0)
+++ PKGBUILD	2019-01-18 17:30:52 UTC (rev 344438)
@@ -0,0 +1,36 @@
+# Maintainer : Rémy Oudompheng <remy at archlinux.org>
+
+pkgname=pyalpm
+pkgver=0.8.5
+pkgrel=2
+pkgdesc="Libalpm bindings for Python 3"
+arch=('x86_64')
+url="https://git.archlinux.org/pyalpm.git/"
+license=('GPL')
+makedepends=('git' 'python-pytest')
+depends=('python>=3.6' 'pacman>=5.0')
+source=("git+https://git.archlinux.org/pyalpm.git#commit=6b47d1655688fe2957ef52a16aeca8b474546df2" "memleak.patch")
+validpgpkeys=('E499C79F53C96A54E572FEE1C06086337C50773E')
+sha512sums=('SKIP'
+            'b7dacb28bc13f5c9fb9c9295d1a3d323b7b7c0893d69b110f3036b73a4930e8463b5a19011b0e5996ff55157768376c2e53ab97c557afe29bbe3b5d0c8a1e027')
+
+prepare() {
+  cd ${srcdir}/${pkgname}
+  # Rever memleak patch
+  patch -NRp1 -i ${srcdir}/memleak.patch
+}
+
+build() {
+  cd ${srcdir}/${pkgname}
+  python setup.py build
+}
+
+check() {
+  cd ${srcdir}/${pkgname}
+  PYTHONPATH="$PWD/build/lib.linux-$CARCH-3.7" pytest
+}
+
+package() {
+  cd ${srcdir}/${pkgname}
+  python setup.py install --root=${pkgdir}
+}

Copied: pyalpm/repos/extra-x86_64/memleak.patch (from rev 344437, pyalpm/trunk/memleak.patch)
===================================================================
--- memleak.patch	                        (rev 0)
+++ memleak.patch	2019-01-18 17:30:52 UTC (rev 344438)
@@ -0,0 +1,44 @@
+From c02555c5d83e63b1a308e7c165d5615198e6d813 Mon Sep 17 00:00:00 2001
+From: Jelle van der Waa <jelle at vdwaa.nl>
+Date: Wed, 16 Jan 2019 09:30:28 +0100
+Subject: src: dealloc alpm_handle when object goes out of scope
+
+By default alpm_handle is leaked when Handle is out of scope since
+alpm_release is never called. Call alpm_release in tp_dealloc to
+actually free the alloc'd memory.
+---
+ src/handle.c | 11 +++++++++++
+ 1 file changed, 11 insertions(+)
+
+diff --git a/src/handle.c b/src/handle.c
+index 08853f0..5e196df 100644
+--- a/src/handle.c
++++ b/src/handle.c
+@@ -377,6 +377,16 @@ static PyMethodDef pyalpm_handle_methods[] = {
+   {NULL, NULL, 0, NULL},
+ };
+ 
++static void pyalpm_dealloc(PyObject* self) {
++  alpm_handle_t *handle = ALPM_HANDLE(self);
++  int ret = alpm_release(handle);
++  if (ret == -1) {
++    PyErr_Format(alpm_error, "unable to release alpm handle");
++  }
++  handle = NULL;
++  Py_TYPE(self)->tp_free((PyObject *)self);
++}
++
+ PyTypeObject AlpmHandleType = {
+   PyVarObject_HEAD_INIT(NULL, 0)
+   "alpm.Handle",       /*tp_name*/
+@@ -387,6 +397,7 @@ PyTypeObject AlpmHandleType = {
+   .tp_methods = pyalpm_handle_methods,
+   .tp_getset = pyalpm_handle_getset,
+   .tp_new = pyalpm_initialize,
++  .tp_dealloc = (destructor) pyalpm_dealloc,
+ };
+ 
+ /** Initializes Handle class in module */
+-- 
+cgit v1.2.1-1-g437b
+



More information about the arch-commits mailing list