Hello community,

here is the log from the commit of package libgpiod for openSUSE:Factory 
checked in at 2019-10-30 14:48:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libgpiod (Old)
 and      /work/SRC/openSUSE:Factory/.libgpiod.new.2990 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libgpiod"

Wed Oct 30 14:48:01 2019 rev:7 rq:743965 version:1.4.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/libgpiod/libgpiod.changes        2019-06-13 
23:06:41.323182197 +0200
+++ /work/SRC/openSUSE:Factory/.libgpiod.new.2990/libgpiod.changes      
2019-10-30 14:48:06.170200416 +0100
@@ -1,0 +2,13 @@
+Wed Oct 30 07:44:00 UTC 2019 - Guillaume GARDET <[email protected]>
+
+- Update to v1.4.1 (Bug fixes release):
+  * fix GCC8 warnings when building python bindings
+  * fix a bug in gpioinfo where lines used by the kernel without any consumer
+    string were reported as unused
+  * fix a bug in line::event_get_fd() in C++ bindings where the exception
+    wouldn't be throws in error cases due to a missing 'throw' keyword
+  * fix a couple bugs in the test-suite
+  * disable a failing assertion in the test-suite that stopped working after
+  linux v5.2.7
+
+-------------------------------------------------------------------

Old:
----
  libgpiod-1.4.tar.gz

New:
----
  libgpiod-1.4.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libgpiod.spec ++++++
--- /var/tmp/diff_new_pack.og3K2A/_old  2019-10-30 14:48:07.158201466 +0100
+++ /var/tmp/diff_new_pack.og3K2A/_new  2019-10-30 14:48:07.158201466 +0100
@@ -28,7 +28,7 @@
 %endif
 
 Name:           libgpiod
-Version:        1.4
+Version:        1.4.1
 Release:        0
 Summary:        Tools for interacting with the linux GPIO character device
 License:        LGPL-2.1-or-later

++++++ libgpiod-1.4.tar.gz -> libgpiod-1.4.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libgpiod-1.4/NEWS new/libgpiod-1.4.1/NEWS
--- old/libgpiod-1.4/NEWS       2019-06-06 15:18:00.000000000 +0200
+++ new/libgpiod-1.4.1/NEWS     2019-08-07 12:08:52.000000000 +0200
@@ -1,3 +1,16 @@
+libgpiod v1.4.1
+===============
+
+Bug fixes:
+- fix GCC8 warnings when building python bindings
+- fix a bug in gpioinfo where lines used by the kernel without any consumer
+  string were reported as unused
+- fix a bug in line::event_get_fd() in C++ bindings where the exception
+  wouldn't be throws in error cases due to a missing 'throw' keyword
+- fix a couple bugs in the test-suite
+- disable a failing assertion in the test-suite that stopped working after
+  linux v5.2.7
+
 libgpiod v1.4
 =============
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libgpiod-1.4/bindings/cxx/line.cpp 
new/libgpiod-1.4.1/bindings/cxx/line.cpp
--- old/libgpiod-1.4/bindings/cxx/line.cpp      2019-06-06 15:18:00.000000000 
+0200
+++ new/libgpiod-1.4.1/bindings/cxx/line.cpp    2019-08-07 12:08:52.000000000 
+0200
@@ -183,8 +183,8 @@
        int ret = ::gpiod_line_event_get_fd(this->_m_line);
 
        if (ret < 0)
-               ::std::system_error(errno, ::std::system_category(),
-                                   "unable to get the line event file 
descriptor");
+               throw ::std::system_error(errno, ::std::system_category(),
+                                         "unable to get the line event file 
descriptor");
 
        return ret;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libgpiod-1.4/bindings/python/gpiodmodule.c 
new/libgpiod-1.4.1/bindings/python/gpiodmodule.c
--- old/libgpiod-1.4/bindings/python/gpiodmodule.c      2019-06-06 
15:18:00.000000000 +0200
+++ new/libgpiod-1.4.1/bindings/python/gpiodmodule.c    2019-08-07 
12:08:52.000000000 +0200
@@ -103,7 +103,9 @@
        return ret;
 }
 
-static int gpiod_LineEvent_init(void)
+static int gpiod_LineEvent_init(PyObject *Py_UNUSED(ignored0),
+                               PyObject *Py_UNUSED(ignored1),
+                               PyObject *Py_UNUSED(ignored2))
 {
        PyErr_SetString(PyExc_NotImplementedError,
                        "Only gpiod.Line can create new LineEvent objects.");
@@ -121,7 +123,8 @@
 PyDoc_STRVAR(gpiod_LineEvent_get_type_doc,
 "Event type of this line event (integer).");
 
-PyObject *gpiod_LineEvent_get_type(gpiod_LineEventObject *self)
+PyObject *gpiod_LineEvent_get_type(gpiod_LineEventObject *self,
+                                  PyObject *Py_UNUSED(ignored))
 {
        int rv;
 
@@ -136,7 +139,8 @@
 PyDoc_STRVAR(gpiod_LineEvent_get_sec_doc,
 "Seconds value of the line event timestamp (integer).");
 
-PyObject *gpiod_LineEvent_get_sec(gpiod_LineEventObject *self)
+PyObject *gpiod_LineEvent_get_sec(gpiod_LineEventObject *self,
+                                 PyObject *Py_UNUSED(ignored))
 {
        return Py_BuildValue("I", self->event.ts.tv_sec);
 }
@@ -144,7 +148,8 @@
 PyDoc_STRVAR(gpiod_LineEvent_get_nsec_doc,
 "Nanoseconds value of the line event timestamp (integer).");
 
-PyObject *gpiod_LineEvent_get_nsec(gpiod_LineEventObject *self)
+PyObject *gpiod_LineEvent_get_nsec(gpiod_LineEventObject *self,
+                                  PyObject *Py_UNUSED(ignored))
 {
        return Py_BuildValue("I", self->event.ts.tv_nsec);
 }
@@ -153,7 +158,8 @@
 "Line object representing the GPIO line on which this event\n"
 "occurred (gpiod.Line object).");
 
-gpiod_LineObject *gpiod_LineEvent_get_source(gpiod_LineEventObject *self)
+gpiod_LineObject *gpiod_LineEvent_get_source(gpiod_LineEventObject *self,
+                                            PyObject *Py_UNUSED(ignored))
 {
        Py_INCREF(self->source);
        return self->source;
@@ -221,7 +227,9 @@
        .tp_repr = (reprfunc)gpiod_LineEvent_repr,
 };
 
-static int gpiod_Line_init(void)
+static int gpiod_Line_init(PyObject *Py_UNUSED(ignored0),
+                          PyObject *Py_UNUSED(ignored1),
+                          PyObject *Py_UNUSED(ignored2))
 {
        PyErr_SetString(PyExc_NotImplementedError,
                        "Only gpiod.Chip can create new Line objects.");
@@ -241,7 +249,8 @@
 "\n"
 "Get the GPIO chip owning this line.");
 
-static PyObject *gpiod_Line_owner(gpiod_LineObject *self)
+static PyObject *gpiod_Line_owner(gpiod_LineObject *self,
+                                 PyObject *Py_UNUSED(ignored))
 {
        Py_INCREF(self->owner);
        return (PyObject *)self->owner;
@@ -252,7 +261,8 @@
 "\n"
 "Get the offset of the GPIO line.");
 
-static PyObject *gpiod_Line_offset(gpiod_LineObject *self)
+static PyObject *gpiod_Line_offset(gpiod_LineObject *self,
+                                  PyObject *Py_UNUSED(ignored))
 {
        if (gpiod_ChipIsClosed(self->owner))
                return NULL;
@@ -265,7 +275,8 @@
 "\n"
 "Get the name of the GPIO line.");
 
-static PyObject *gpiod_Line_name(gpiod_LineObject *self)
+static PyObject *gpiod_Line_name(gpiod_LineObject *self,
+                                PyObject *Py_UNUSED(ignored))
 {
        const char *name;
 
@@ -284,7 +295,8 @@
 "\n"
 "Get the consumer string of the GPIO line.");
 
-static PyObject *gpiod_Line_consumer(gpiod_LineObject *self)
+static PyObject *gpiod_Line_consumer(gpiod_LineObject *self,
+                                    PyObject *Py_UNUSED(ignored))
 {
        const char *consumer;
 
@@ -303,7 +315,8 @@
 "\n"
 "Get the direction setting of this GPIO line.");
 
-static PyObject *gpiod_Line_direction(gpiod_LineObject *self)
+static PyObject *gpiod_Line_direction(gpiod_LineObject *self,
+                                     PyObject *Py_UNUSED(ignored))
 {
        PyObject *ret;
        int dir;
@@ -326,7 +339,8 @@
 "\n"
 "Get the active state setting of this GPIO line.");
 
-static PyObject *gpiod_Line_active_state(gpiod_LineObject *self)
+static PyObject *gpiod_Line_active_state(gpiod_LineObject *self,
+                                        PyObject *Py_UNUSED(ignored))
 {
        PyObject *ret;
        int active;
@@ -349,7 +363,8 @@
 "\n"
 "Check if this line is used by the kernel or other user space process.");
 
-static PyObject *gpiod_Line_is_used(gpiod_LineObject *self)
+static PyObject *gpiod_Line_is_used(gpiod_LineObject *self,
+                                   PyObject *Py_UNUSED(ignored))
 {
        if (gpiod_ChipIsClosed(self->owner))
                return NULL;
@@ -365,7 +380,8 @@
 "\n"
 "Check if this line represents an open-drain GPIO.");
 
-static PyObject *gpiod_Line_is_open_drain(gpiod_LineObject *self)
+static PyObject *gpiod_Line_is_open_drain(gpiod_LineObject *self,
+                                         PyObject *Py_UNUSED(ignored))
 {
        if (gpiod_ChipIsClosed(self->owner))
                return NULL;
@@ -381,7 +397,8 @@
 "\n"
 "Check if this line represents an open-source GPIO.");
 
-static PyObject *gpiod_Line_is_open_source(gpiod_LineObject *self)
+static PyObject *gpiod_Line_is_open_source(gpiod_LineObject *self,
+                                          PyObject *Py_UNUSED(ignored))
 {
        if (gpiod_ChipIsClosed(self->owner))
                return NULL;
@@ -469,7 +486,8 @@
 "\n"
 "Check if this user has ownership of this line.");
 
-static PyObject *gpiod_Line_is_requested(gpiod_LineObject *self)
+static PyObject *gpiod_Line_is_requested(gpiod_LineObject *self,
+                                        PyObject *Py_UNUSED(ignored))
 {
        if (gpiod_ChipIsClosed(self->owner))
                return NULL;
@@ -485,7 +503,8 @@
 "\n"
 "Read the current value of this GPIO line.");
 
-static PyObject *gpiod_Line_get_value(gpiod_LineObject *self)
+static PyObject *gpiod_Line_get_value(gpiod_LineObject *self,
+                                     PyObject *Py_UNUSED(ignored))
 {
        gpiod_LineBulkObject *bulk_obj;
        PyObject *vals, *ret;
@@ -547,7 +566,8 @@
 "\n"
 "Release this GPIO line.");
 
-static PyObject *gpiod_Line_release(gpiod_LineObject *self)
+static PyObject *gpiod_Line_release(gpiod_LineObject *self,
+                                   PyObject *Py_UNUSED(ignored))
 {
        gpiod_LineBulkObject *bulk_obj;
        PyObject *ret;
@@ -605,7 +625,8 @@
 "\n"
 "Read a single line event from this GPIO line object.");
 
-static gpiod_LineEventObject *gpiod_Line_event_read(gpiod_LineObject *self)
+static gpiod_LineEventObject *gpiod_Line_event_read(gpiod_LineObject *self,
+                                                   PyObject 
*Py_UNUSED(ignored))
 {
        gpiod_LineEventObject *ret;
        int rv;
@@ -639,7 +660,8 @@
 "\n"
 "Get the event file descriptor number associated with this line.");
 
-static PyObject *gpiod_Line_event_get_fd(gpiod_LineObject *self)
+static PyObject *gpiod_Line_event_get_fd(gpiod_LineObject *self,
+                                        PyObject *Py_UNUSED(ignored))
 {
        int fd;
 
@@ -733,7 +755,7 @@
        },
        {
                .ml_name = "request",
-               .ml_meth = (PyCFunction)gpiod_Line_request,
+               .ml_meth = (PyCFunction)(void (*)(void))gpiod_Line_request,
                .ml_flags = METH_VARARGS | METH_KEYWORDS,
                .ml_doc = gpiod_Line_request_doc,
        },
@@ -763,7 +785,7 @@
        },
        {
                .ml_name = "event_wait",
-               .ml_meth = (PyCFunction)gpiod_Line_event_wait,
+               .ml_meth = (PyCFunction)(void (*)(void))gpiod_Line_event_wait,
                .ml_flags = METH_VARARGS | METH_KEYWORDS,
                .ml_doc = gpiod_Line_event_wait_doc,
        },
@@ -811,7 +833,8 @@
        return gpiod_ChipIsClosed(line->owner);
 }
 
-static int gpiod_LineBulk_init(gpiod_LineBulkObject *self, PyObject *args)
+static int gpiod_LineBulk_init(gpiod_LineBulkObject *self,
+                              PyObject *args, PyObject *Py_UNUSED(ignored))
 {
        PyObject *lines, *iter, *next;
        Py_ssize_t i;
@@ -911,7 +934,8 @@
 "\n"
 "Convert this LineBulk to a list");
 
-static PyObject *gpiod_LineBulk_to_list(gpiod_LineBulkObject *self)
+static PyObject *gpiod_LineBulk_to_list(gpiod_LineBulkObject *self,
+                                       PyObject *Py_UNUSED(ignored))
 {
        PyObject *list;
        Py_ssize_t i;
@@ -1079,7 +1103,8 @@
 "of each value in the returned list corresponds with the index of the line\n"
 "in this gpiod.LineBulk object.");
 
-static PyObject *gpiod_LineBulk_get_values(gpiod_LineBulkObject *self)
+static PyObject *gpiod_LineBulk_get_values(gpiod_LineBulkObject *self,
+                                          PyObject *Py_UNUSED(ignored))
 {
        int rv, vals[GPIOD_LINE_BULK_MAX_LINES];
        struct gpiod_line_bulk bulk;
@@ -1196,7 +1221,8 @@
 "\n"
 "Release all lines held by this LineBulk object.");
 
-static PyObject *gpiod_LineBulk_release(gpiod_LineBulkObject *self)
+static PyObject *gpiod_LineBulk_release(gpiod_LineBulkObject *self,
+                                       PyObject *Py_UNUSED(ignored))
 {
        struct gpiod_line_bulk bulk;
 
@@ -1293,7 +1319,7 @@
        if (gpiod_LineBulkOwnerIsClosed(self))
                return NULL;
 
-       list = gpiod_LineBulk_to_list(self);
+       list = gpiod_LineBulk_to_list(self, NULL);
        if (!list)
                return NULL;
 
@@ -1324,7 +1350,7 @@
        },
        {
                .ml_name = "request",
-               .ml_meth = (PyCFunction)gpiod_LineBulk_request,
+               .ml_meth = (PyCFunction)(void (*)(void))gpiod_LineBulk_request,
                .ml_doc = gpiod_LineBulk_request_doc,
                .ml_flags = METH_VARARGS | METH_KEYWORDS,
        },
@@ -1348,7 +1374,7 @@
        },
        {
                .ml_name = "event_wait",
-               .ml_meth = (PyCFunction)gpiod_LineBulk_event_wait,
+               .ml_meth = (PyCFunction)(void 
(*)(void))gpiod_LineBulk_event_wait,
                .ml_doc = gpiod_LineBulk_event_wait_doc,
                .ml_flags = METH_VARARGS | METH_KEYWORDS,
        },
@@ -1402,7 +1428,8 @@
        gpiod_OPEN_BY_NUMBER,
 };
 
-static int gpiod_Chip_init(gpiod_ChipObject *self, PyObject *args)
+static int gpiod_Chip_init(gpiod_ChipObject *self,
+                          PyObject *args, PyObject *Py_UNUSED(ignored))
 {
        int rv, how = gpiod_OPEN_LOOKUP;
        PyThreadState *thread;
@@ -1468,7 +1495,8 @@
 "Close the associated gpiochip descriptor. The chip object must no longer\n"
 "be used after this method is called.\n");
 
-static PyObject *gpiod_Chip_close(gpiod_ChipObject *self)
+static PyObject *gpiod_Chip_close(gpiod_ChipObject *self,
+                                 PyObject *Py_UNUSED(ignored))
 {
        if (gpiod_ChipIsClosed(self))
                return NULL;
@@ -1482,7 +1510,8 @@
 PyDoc_STRVAR(gpiod_Chip_enter_doc,
 "Controlled execution enter callback.");
 
-static PyObject *gpiod_Chip_enter(gpiod_ChipObject *chip)
+static PyObject *gpiod_Chip_enter(gpiod_ChipObject *chip,
+                                 PyObject *Py_UNUSED(ignored))
 {
        Py_INCREF(chip);
        return (PyObject *)chip;
@@ -1491,7 +1520,8 @@
 PyDoc_STRVAR(gpiod_Chip_exit_doc,
 "Controlled execution exit callback.");
 
-static PyObject *gpiod_Chip_exit(gpiod_ChipObject *chip)
+static PyObject *gpiod_Chip_exit(gpiod_ChipObject *chip,
+                                PyObject *Py_UNUSED(ignored))
 {
        return PyObject_CallMethod((PyObject *)chip, "close", "");
 }
@@ -1501,7 +1531,8 @@
 "\n"
 "Get the name of the GPIO chip");
 
-static PyObject *gpiod_Chip_name(gpiod_ChipObject *self)
+static PyObject *gpiod_Chip_name(gpiod_ChipObject *self,
+                                PyObject *Py_UNUSED(ignored))
 {
        if (gpiod_ChipIsClosed(self))
                return NULL;
@@ -1514,7 +1545,8 @@
 "\n"
 "Get the label of the GPIO chip");
 
-static PyObject *gpiod_Chip_label(gpiod_ChipObject *self)
+static PyObject *gpiod_Chip_label(gpiod_ChipObject *self,
+                                 PyObject *Py_UNUSED(ignored))
 {
        if (gpiod_ChipIsClosed(self))
                return NULL;
@@ -1527,7 +1559,8 @@
 "\n"
 "Get the number of lines exposed by this GPIO chip.");
 
-static PyObject *gpiod_Chip_num_lines(gpiod_ChipObject *self)
+static PyObject *gpiod_Chip_num_lines(gpiod_ChipObject *self,
+                                     PyObject *Py_UNUSED(ignored))
 {
        if (gpiod_ChipIsClosed(self))
                return NULL;
@@ -1726,7 +1759,7 @@
 "Get all lines exposed by this Chip.");
 
 static gpiod_LineBulkObject *
-gpiod_Chip_get_all_lines(gpiod_ChipObject *self)
+gpiod_Chip_get_all_lines(gpiod_ChipObject *self, PyObject *Py_UNUSED(ignored))
 {
        gpiod_LineBulkObject *bulk_obj;
        struct gpiod_line_bulk bulk;
@@ -1966,7 +1999,9 @@
        .tp_methods = gpiod_Chip_methods,
 };
 
-static int gpiod_ChipIter_init(gpiod_ChipIterObject *self)
+static int gpiod_ChipIter_init(gpiod_ChipIterObject *self,
+                              PyObject *Py_UNUSED(ignored0),
+                              PyObject *Py_UNUSED(ignored1))
 {
        self->iter = gpiod_chip_iter_new();
        if (!self->iter) {
@@ -2034,7 +2069,8 @@
        .tp_iternext = (iternextfunc)gpiod_ChipIter_next,
 };
 
-static int gpiod_LineIter_init(gpiod_LineIterObject *self, PyObject *args)
+static int gpiod_LineIter_init(gpiod_LineIterObject *self,
+                              PyObject *args, PyObject *Py_UNUSED(ignored))
 {
        gpiod_ChipObject *chip_obj;
        int rv;
@@ -2120,7 +2156,7 @@
 "  name\n"
 "    Name of the line to find (string).");
 
-static gpiod_LineObject *gpiod_Module_find_line(PyObject *self GPIOD_UNUSED,
+static gpiod_LineObject *gpiod_Module_find_line(PyObject *Py_UNUSED(self),
                                                PyObject *args)
 {
        gpiod_LineObject *line_obj;
@@ -2178,7 +2214,8 @@
 "\n"
 "Get the API version of the library as a human-readable string.");
 
-static PyObject *gpiod_Module_version_string(void)
+static PyObject *gpiod_Module_version_string(PyObject *Py_UNUSED(ignored0),
+                                            PyObject *Py_UNUSED(ignored1))
 {
        return PyUnicode_FromFormat("%s", gpiod_version_string());
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libgpiod-1.4/configure.ac 
new/libgpiod-1.4.1/configure.ac
--- old/libgpiod-1.4/configure.ac       2019-06-06 15:18:00.000000000 +0200
+++ new/libgpiod-1.4.1/configure.ac     2019-08-07 12:08:52.000000000 +0200
@@ -8,7 +8,7 @@
 
 AC_PREREQ(2.61)
 
-AC_INIT([libgpiod], 1.4)
+AC_INIT([libgpiod], 1.4.1)
 AC_SUBST(EXTRA_VERSION, [])
 
 AC_DEFINE_UNQUOTED([GPIOD_VERSION_STR],
@@ -32,7 +32,7 @@
 # NOTE: this version only applies to the core C library.
 AC_SUBST(ABI_VERSION, [3.1.1])
 # Have a separate ABI version for C++ bindings:
-AC_SUBST(ABI_CXX_VERSION, [1.2.0])
+AC_SUBST(ABI_CXX_VERSION, [1.3.0])
 
 AC_CONFIG_AUX_DIR([autostuff])
 AC_CONFIG_MACRO_DIRS([m4])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libgpiod-1.4/tests/gpiod-test.c 
new/libgpiod-1.4.1/tests/gpiod-test.c
--- old/libgpiod-1.4/tests/gpiod-test.c 2019-06-06 15:18:00.000000000 +0200
+++ new/libgpiod-1.4.1/tests/gpiod-test.c       2019-08-07 12:08:52.000000000 
+0200
@@ -311,8 +311,11 @@
        msg("cleaning up");
 
        free(globals.pipebuf);
+       if (globals.toolpath)
+               free(globals.toolpath);
 
-       gpio_mockup_unref(globals.mockup);
+       if (globals.mockup)
+               gpio_mockup_unref(globals.mockup);
 }
 
 static void event_lock(void)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libgpiod-1.4/tests/mockup/gpio-mockup.c 
new/libgpiod-1.4.1/tests/mockup/gpio-mockup.c
--- old/libgpiod-1.4/tests/mockup/gpio-mockup.c 2019-06-06 15:18:00.000000000 
+0200
+++ new/libgpiod-1.4.1/tests/mockup/gpio-mockup.c       2019-08-07 
12:08:52.000000000 +0200
@@ -120,7 +120,8 @@
         * Then see if we can freely load and unload it. If it's already
         * loaded - no problem, we'll remove it next anyway.
         */
-       rv = kmod_module_probe_insert_module(ctx->module, 0,
+       rv = kmod_module_probe_insert_module(ctx->module,
+                                            KMOD_PROBE_IGNORE_LOADED,
                                             "gpio_mockup_ranges=-1,4",
                                             NULL, NULL, NULL);
        if (rv)
@@ -304,11 +305,7 @@
        if (!ctx->chips)
                goto err_remove_module;
 
-       for (i = 0; i < num_chips; i++) {
-               ctx->chips[i] = malloc(sizeof(struct gpio_mockup_chip));
-               if (!ctx->chips[i])
-                       goto err_free_chips;
-       }
+       ctx->num_chips = num_chips;
 
        pfd.fd = udev_monitor_get_fd(monitor);
        pfd.events = POLLIN | POLLPRI;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libgpiod-1.4/tests/tests-event.c 
new/libgpiod-1.4.1/tests/tests-event.c
--- old/libgpiod-1.4/tests/tests-event.c        2019-06-06 15:18:00.000000000 
+0200
+++ new/libgpiod-1.4.1/tests/tests-event.c      2019-08-07 12:08:52.000000000 
+0200
@@ -200,8 +200,12 @@
 
        TEST_ASSERT_EQ(ev.event_type, GPIOD_LINE_EVENT_FALLING_EDGE);
 
-       rv = gpiod_line_get_value(line);
-       TEST_ASSERT_EQ(rv, 1);
+       /*
+        * The assertion below was commented out after it stopped working
+        * with kernel past v5.2.7 due to upstream commit 223ecaf140b1.
+        */
+       //rv = gpiod_line_get_value(line);
+       //TEST_ASSERT_EQ(rv, 0);
 }
 TEST_DEFINE(event_get_value_active_low,
            "events - mixing events and gpiod_line_get_value() (active-low 
flag)",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libgpiod-1.4/tools/gpioinfo.c 
new/libgpiod-1.4.1/tools/gpioinfo.c
--- old/libgpiod-1.4/tools/gpioinfo.c   2019-06-06 15:18:00.000000000 +0200
+++ new/libgpiod-1.4.1/tools/gpioinfo.c 2019-08-07 12:08:52.000000000 +0200
@@ -119,8 +119,12 @@
                     : prinfo(&of, 12, "unnamed");
                printf(" ");
 
-               consumer ? prinfo(&of, 12, "\"%s\"", consumer)
-                        : prinfo(&of, 12, "unused");
+               if (!gpiod_line_is_used(line))
+                       prinfo(&of, 12, "unused");
+               else
+                       consumer ? prinfo(&of, 12, "\"%s\"", consumer)
+                                : prinfo(&of, 12, "kernel");
+
                printf(" ");
 
                prinfo(&of, 8, "%s ", direction == GPIOD_LINE_DIRECTION_INPUT


Reply via email to