diff -pruN 0.11.0-15/debian/changelog 0.11.0-16/debian/changelog
--- 0.11.0-15/debian/changelog	2025-02-21 08:11:57.000000000 +0000
+++ 0.11.0-16/debian/changelog	2025-10-02 14:31:27.000000000 +0000
@@ -1,3 +1,10 @@
+libgetdata (0.11.0-16) unstable; urgency=medium
+
+  * Team upload.
+  * Fix FTBFS with NumPy 2.3 (Closes: #1114701)
+
+ -- Timo Röhling <roehling@debian.org>  Thu, 02 Oct 2025 16:31:27 +0200
+
 libgetdata (0.11.0-15) unstable; urgency=medium
 
   * Team upload
diff -pruN 0.11.0-15/debian/patches/numpy2.patch 0.11.0-16/debian/patches/numpy2.patch
--- 0.11.0-15/debian/patches/numpy2.patch	2025-02-21 06:17:40.000000000 +0000
+++ 0.11.0-16/debian/patches/numpy2.patch	2025-10-02 14:31:27.000000000 +0000
@@ -2,13 +2,18 @@ Description: Fix FTBFS on NumPy2
 Author: Mateus Rodrigues de Morais <mateus.morais@canonical.com>
 Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/libgetdata/+bug/2098512
 Bug-Debian: https://bugs.debian.org/1094712
-Last-Update: 2025-02-14
+Bug-Debian: https://bugs.debian.org/1114701
+Last-Update: 2025-10-02
 ---
-Index: libgetdata-0.11.0/bindings/python/pydirfile.c
-===================================================================
---- libgetdata-0.11.0.orig/bindings/python/pydirfile.c	2025-02-14 09:48:47.000000000 -0300
-+++ libgetdata-0.11.0/bindings/python/pydirfile.c	2025-02-14 10:00:20.701340159 -0300
-@@ -558,7 +558,7 @@
+ bindings/python/pydirfile.c | 32 ++++++++++++++++----------------
+ bindings/python/pygetdata.c | 24 ++++++++++++------------
+ 2 files changed, 28 insertions(+), 28 deletions(-)
+
+diff --git a/bindings/python/pydirfile.c b/bindings/python/pydirfile.c
+index a277125..edf057c 100644
+--- a/bindings/python/pydirfile.c
++++ b/bindings/python/pydirfile.c
+@@ -558,7 +558,7 @@ static PyObject *gdpy_dirfile_getcarray(struct gdpy_dirfile_t *self,
      if (!as_list) {
        dims[0] = (npy_intp)len;
        pyobj = PyArray_SimpleNew(1, dims, gdpy_npytype_from_type(return_type));
@@ -17,7 +22,7 @@ Index: libgetdata-0.11.0/bindings/python
      } else
        data = PyMem_Malloc((size_t)len * GD_SIZE(return_type));
  
-@@ -753,7 +753,7 @@
+@@ -753,7 +753,7 @@ static PyObject *gdpy_dirfile_carrays(struct gdpy_dirfile_t *self,
      } else if (!as_list) {
        dims[0] = (npy_intp)carrays[i].n;
        pydata = PyArray_SimpleNew(1, dims, gdpy_npytype_from_type(return_type));
@@ -26,7 +31,7 @@ Index: libgetdata-0.11.0/bindings/python
            carrays[i].n);
      } else
        pydata = gdpy_convert_to_pylist(carrays[i].d, return_type, carrays[i].n);
-@@ -1003,7 +1003,7 @@
+@@ -1003,7 +1003,7 @@ static PyObject *gdpy_dirfile_getdata(struct gdpy_dirfile_t *self,
      if (!as_list) {
        dims[0] = (npy_intp)num_samples;
        pyobj = PyArray_SimpleNew(1, dims, gdpy_npytype_from_type(return_type));
@@ -35,7 +40,7 @@ Index: libgetdata-0.11.0/bindings/python
      } else
        data = PyMem_Malloc((size_t)num_samples * GD_SIZE(return_type));
  
-@@ -1537,7 +1537,7 @@
+@@ -1537,7 +1537,7 @@ static PyObject *gdpy_dirfile_mcarrays(struct gdpy_dirfile_t *self,
      } else if (!as_list) {
        dims[0] = (npy_intp)carrays[i].n;
        pydata = PyArray_SimpleNew(1, dims, gdpy_npytype_from_type(return_type));
@@ -44,7 +49,7 @@ Index: libgetdata-0.11.0/bindings/python
            carrays[i].n);
      } else
        pydata = gdpy_convert_to_pylist(carrays[i].d, return_type, carrays[i].n);
-@@ -2310,7 +2310,7 @@
+@@ -2310,7 +2310,7 @@ static PyObject *gdpy_dirfile_putcarray(struct gdpy_dirfile_t *self,
  
    /* we only handle list or ndarray data */
    if (PyArray_Check(pyobj)) {
@@ -53,7 +58,7 @@ Index: libgetdata-0.11.0/bindings/python
        PyErr_SetString(PyExc_ValueError,
            "pygetdata.dirfile.put_carray() argument 2 must be one dimensional");
        PyMem_Free(field_code);
-@@ -2318,7 +2318,7 @@
+@@ -2318,7 +2318,7 @@ static PyObject *gdpy_dirfile_putcarray(struct gdpy_dirfile_t *self,
        return NULL;
      }
      have_ndarray = 1;
@@ -62,7 +67,7 @@ Index: libgetdata-0.11.0/bindings/python
    } else {
      if (!PyList_Check(pyobj)) {
        PyErr_SetString(PyExc_TypeError,
-@@ -2336,7 +2336,7 @@
+@@ -2336,7 +2336,7 @@ static PyObject *gdpy_dirfile_putcarray(struct gdpy_dirfile_t *self,
      void *data;
  
      if (have_ndarray) {
@@ -71,25 +76,25 @@ Index: libgetdata-0.11.0/bindings/python
  
        if (type == GD_UNKNOWN) {
          PyErr_SetString(PyExc_ValueError,
-@@ -2346,7 +2346,7 @@
+@@ -2346,7 +2346,7 @@ static PyObject *gdpy_dirfile_putcarray(struct gdpy_dirfile_t *self,
          return NULL;
        }
  
 -      if (!(PyArray_FLAGS(pyobj) & NPY_ALIGNED)) {
-+      if (!(PyArray_FLAGS((PyArrayObject*) pyobj) & NPY_ALIGNED)) {
++      if (!(PyArray_FLAGS((PyArrayObject*) pyobj) & NPY_ARRAY_ALIGNED)) {
          PyErr_SetString(PyExc_ValueError,
              "pygetdata.dirfile.put_carray() argument 2 must be aligned.");
          PyMem_Free(field_code);
-@@ -2354,7 +2354,7 @@
+@@ -2354,7 +2354,7 @@ static PyObject *gdpy_dirfile_putcarray(struct gdpy_dirfile_t *self,
          return NULL;
        }
  
 -      if (!(PyArray_FLAGS(pyobj) & NPY_C_CONTIGUOUS)) {
-+      if (!(PyArray_FLAGS((PyArrayObject*) pyobj) & NPY_C_CONTIGUOUS)) {
++      if (!(PyArray_FLAGS((PyArrayObject*) pyobj) & NPY_ARRAY_C_CONTIGUOUS)) {
          PyErr_SetString(PyExc_ValueError, "pygetdata.dirfile.put_carray()"
              " argument 2 must be C-style contiguous.");
          PyMem_Free(field_code);
-@@ -2362,7 +2362,7 @@
+@@ -2362,7 +2362,7 @@ static PyObject *gdpy_dirfile_putcarray(struct gdpy_dirfile_t *self,
          return NULL;
        }
  
@@ -98,7 +103,7 @@ Index: libgetdata-0.11.0/bindings/python
      } else {
        data = PyMem_Malloc(len * 16);
        type = gdpy_convert_from_pylist(pyobj, data, type, len);
-@@ -2477,7 +2477,7 @@
+@@ -2477,7 +2477,7 @@ static PyObject *gdpy_dirfile_putdata(struct gdpy_dirfile_t *self,
  
    /* we only handle list or ndarray data */
    if (PyArray_Check(pyobj)) {
@@ -107,7 +112,7 @@ Index: libgetdata-0.11.0/bindings/python
        PyErr_SetString(PyExc_ValueError,
            "pygetdata.dirfile.putdata() argument 2 must be one dimensional");
        PyMem_Free(field_code);
-@@ -2485,7 +2485,7 @@
+@@ -2485,7 +2485,7 @@ static PyObject *gdpy_dirfile_putdata(struct gdpy_dirfile_t *self,
        return NULL;
      }
      have_ndarray = 1;
@@ -116,7 +121,7 @@ Index: libgetdata-0.11.0/bindings/python
    } else {
      if (!PyList_Check(pyobj)) {
        PyErr_SetString(PyExc_TypeError,
-@@ -2503,7 +2503,7 @@
+@@ -2503,7 +2503,7 @@ static PyObject *gdpy_dirfile_putdata(struct gdpy_dirfile_t *self,
      void *data;
  
      if (have_ndarray) {
@@ -125,25 +130,25 @@ Index: libgetdata-0.11.0/bindings/python
  
        if (type == GD_UNKNOWN) {
          PyErr_SetString(PyExc_ValueError,
-@@ -2513,7 +2513,7 @@
+@@ -2513,7 +2513,7 @@ static PyObject *gdpy_dirfile_putdata(struct gdpy_dirfile_t *self,
          return NULL;
        }
  
 -      if (!(PyArray_FLAGS(pyobj) & NPY_ALIGNED)) {
-+      if (!(PyArray_FLAGS((PyArrayObject*) pyobj) & NPY_ALIGNED)) {
++      if (!(PyArray_FLAGS((PyArrayObject*) pyobj) & NPY_ARRAY_ALIGNED)) {
          PyErr_SetString(PyExc_ValueError,
              "pygetdata.dirfile.putdata() argument 2 must be aligned.");
          PyMem_Free(field_code);
-@@ -2521,7 +2521,7 @@
+@@ -2521,7 +2521,7 @@ static PyObject *gdpy_dirfile_putdata(struct gdpy_dirfile_t *self,
          return NULL;
        }
  
 -      if (!(PyArray_FLAGS(pyobj) & NPY_C_CONTIGUOUS)) {
-+      if (!(PyArray_FLAGS((PyArrayObject*) pyobj) & NPY_C_CONTIGUOUS)) {
++      if (!(PyArray_FLAGS((PyArrayObject*) pyobj) & NPY_ARRAY_C_CONTIGUOUS)) {
          PyErr_SetString(PyExc_ValueError, "pygetdata.dirfile.putdata()"
              " argument 2 must be C-style contiguous.");
          PyMem_Free(field_code);
-@@ -2529,7 +2529,7 @@
+@@ -2529,7 +2529,7 @@ static PyObject *gdpy_dirfile_putdata(struct gdpy_dirfile_t *self,
          return NULL;
        }
  
@@ -152,11 +157,11 @@ Index: libgetdata-0.11.0/bindings/python
      } else {
        data = PyMem_Malloc(ns * 16);
        type = gdpy_convert_from_pylist(pyobj, data, type, ns);
-Index: libgetdata-0.11.0/bindings/python/pygetdata.c
-===================================================================
---- libgetdata-0.11.0.orig/bindings/python/pygetdata.c	2025-02-14 10:17:35.175703942 -0300
-+++ libgetdata-0.11.0/bindings/python/pygetdata.c	2025-02-14 10:17:48.047942506 -0300
-@@ -600,40 +600,40 @@
+diff --git a/bindings/python/pygetdata.c b/bindings/python/pygetdata.c
+index 50c948d..0e3bf3c 100644
+--- a/bindings/python/pygetdata.c
++++ b/bindings/python/pygetdata.c
+@@ -600,40 +600,40 @@ int gdpy_npytype_from_type(gd_type_t type)
    switch(type)
    {
      case GD_UINT8:
