[arch-commits] Commit in pyalpm/repos (3 files)
Jelle van der Waa
jelle at archlinux.org
Thu May 20 15:48:11 UTC 2021
Date: Thursday, May 20, 2021 @ 15:48:10
Author: jelle
Revision: 415787
archrelease: copy trunk to staging-x86_64
Added:
pyalpm/repos/staging-x86_64/
pyalpm/repos/staging-x86_64/PKGBUILD
(from rev 415786, pyalpm/trunk/PKGBUILD)
pyalpm/repos/staging-x86_64/memleak.patch
(from rev 415786, pyalpm/trunk/memleak.patch)
---------------+
PKGBUILD | 33 +++++++++++++++++++++++++++++++++
memleak.patch | 44 ++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 77 insertions(+)
Copied: pyalpm/repos/staging-x86_64/PKGBUILD (from rev 415786, pyalpm/trunk/PKGBUILD)
===================================================================
--- staging-x86_64/PKGBUILD (rev 0)
+++ staging-x86_64/PKGBUILD 2021-05-20 15:48:10 UTC (rev 415787)
@@ -0,0 +1,33 @@
+# Maintainer : Rémy Oudompheng <remy at archlinux.org>
+
+pkgname=pyalpm
+pkgver=0.10.1
+pkgrel=1
+pkgdesc="Python 3 bindings for libalpm"
+arch=('x86_64')
+url="https://gitlab.archlinux.org/archlinux/pyalpm"
+license=('GPL')
+makedepends=('git' 'python-setuptools' 'python-pytest' 'python-pkgconfig' 'python-pytest-pacman')
+depends=('python' 'pacman')
+source=("git+https://gitlab.archlinux.org/archlinux/pyalpm.git#tag=$pkgver")
+validpgpkeys=('E499C79F53C96A54E572FEE1C06086337C50773E')
+sha512sums=('SKIP')
+
+prepare() {
+ cd "${pkgname}"
+}
+
+build() {
+ cd "${pkgname}"
+ python setup.py build
+}
+
+check() {
+ cd "${pkgname}"
+ PYTHONPATH="$PWD/build/lib.linux-$CARCH-3.9" pytest
+}
+
+package() {
+ cd "${pkgname}"
+ python setup.py install --root=${pkgdir}
+}
Copied: pyalpm/repos/staging-x86_64/memleak.patch (from rev 415786, pyalpm/trunk/memleak.patch)
===================================================================
--- staging-x86_64/memleak.patch (rev 0)
+++ staging-x86_64/memleak.patch 2021-05-20 15:48:10 UTC (rev 415787)
@@ -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