Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package upower for openSUSE:Factory checked 
in at 2023-08-09 17:23:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/upower (Old)
 and      /work/SRC/openSUSE:Factory/.upower.new.11712 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "upower"

Wed Aug  9 17:23:59 2023 rev:84 rq:1102812 version:1.90.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/upower/upower.changes    2023-07-06 
18:28:31.539091511 +0200
+++ /work/SRC/openSUSE:Factory/.upower.new.11712/upower.changes 2023-08-09 
17:24:04.936942844 +0200
@@ -1,0 +2,17 @@
+Sat Jul 15 14:51:51 UTC 2023 - Dirk Müller <dmuel...@suse.com>
+
+- update to 1.90.2:
+  * Note that this is the last release of UPower with lid
+    handling. OS components that rely on the lid status
+    should get it from logind instead.
+  * Fix wireless devices not disappearing from Settings when
+    disconnected
+  * Require a newer libgudev to avoid bugs related to newline
+    stripping when reading sysfs attributes
+  * Add installed-tests files for use with gnome-desktop-testing
+  * Fix integration test to work with system installed upower
+    binary and under jhbuild
+- add skip-tests-install.patch to skip installation of test-only 
+  assets
+
+-------------------------------------------------------------------

Old:
----
  upower-v1.90.1.tar.bz2

New:
----
  skip-tests-install.patch
  upower-v1.90.2.tar.bz2

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

Other differences:
------------------
++++++ upower.spec ++++++
--- /var/tmp/diff_new_pack.u5dneH/_old  2023-08-09 17:24:05.512946430 +0200
+++ /var/tmp/diff_new_pack.u5dneH/_new  2023-08-09 17:24:05.516946455 +0200
@@ -23,13 +23,15 @@
 %endif
 
 Name:           upower
-Version:        1.90.1
+Version:        1.90.2
 Release:        0
 Summary:        Power Device Enumeration Framework
 License:        GPL-2.0-or-later
 Group:          System/Daemons
 URL:            https://upower.freedesktop.org/
 Source:         
https://gitlab.freedesktop.org/upower/upower/-/archive/v%{version}/upower-v%{version}.tar.bz2
+# PATCH-FIX-OPENSUSE: Skip installation of test-only dependencies
+Patch1:         skip-tests-install.patch
 BuildRequires:  gobject-introspection-devel >= 0.9.9
 BuildRequires:  gtk-doc >= 1.11
 BuildRequires:  intltool
@@ -103,7 +105,7 @@
 %lang_package
 
 %prep
-%setup -q -n %{name}-v%{version}
+%autosetup -p1 -n %{name}-v%{version}
 
 %build
 %meson \

++++++ skip-tests-install.patch ++++++
Index: upower-v1.90.2/src/meson.build
===================================================================
--- upower-v1.90.2.orig/src/meson.build
+++ upower-v1.90.2/src/meson.build
@@ -120,7 +120,7 @@ test(
 
 # On Linux, we can run the additional integration test;
 # defined here as we would have a circular dependency otherwise.
-if os_backend == 'linux' and gobject_introspection.found()
+if false and os_backend == 'linux' and gobject_introspection.found()
     env = environment()
     env.prepend('top_builddir', join_paths(meson.project_build_root()))
     env.prepend('LD_LIBRARY_PATH', join_paths(meson.project_build_root(), 
'libupower-glib'))

++++++ upower-v1.90.1.tar.bz2 -> upower-v1.90.2.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/upower-v1.90.1/.gitlab-ci.yml 
new/upower-v1.90.2/.gitlab-ci.yml
--- old/upower-v1.90.1/.gitlab-ci.yml   2023-07-04 15:51:22.000000000 +0200
+++ new/upower-v1.90.2/.gitlab-ci.yml   2023-07-06 10:52:27.000000000 +0200
@@ -37,6 +37,7 @@
   rules:
     - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
     - if: $CI_PIPELINE_SOURCE == 'push'
+    - if: $CI_PIPELINE_SOURCE == 'schedule'
 
 stages:
   - check-source
@@ -59,6 +60,14 @@
 
 build:
   stage: build
+  before_script:
+    - git clone https://gitlab.gnome.org/GNOME/libgudev.git
+    - cd libgudev
+    - dnf install -y 'dnf-command(builddep)'
+    - dnf builddep -y libgudev
+    - meson _build -Dprefix=/usr
+    - ninja -C _build install
+    - cd ..
   script:
     - meson _build -Dintrospection=enabled -Dman=true -Dgtk-doc=true 
-Didevice=enabled
     - ninja -C _build
@@ -115,6 +124,11 @@
     - meson _build -Dprefix=/usr
     - ninja -C _build install
     - cd ..
+    - cd libgudev
+    - dnf builddep -y libgudev
+    - meson _build -Dprefix=/usr
+    - ninja -C _build install
+    - cd ..
   script:
     - meson _build -Dintrospection=enabled -Dman=true -Dgtk-doc=true 
-Didevice=enabled
     - ninja -C _build
@@ -132,6 +146,13 @@
 
 check_abi:
   stage: test
+  before_script:
+    - cd libgudev
+    - dnf install -y 'dnf-command(builddep)'
+    - dnf builddep -y libgudev
+    - meson _build -Dprefix=/usr
+    - ninja -C _build install
+    - cd ..
   script:
     - check-abi --suppr .ci/upower.suppr --parameters="-Dman=false 
-Dgtk-doc=false -Didevice=enabled"  ${LAST_ABI_BREAK} $(git rev-parse HEAD)
   except:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/upower-v1.90.1/NEWS new/upower-v1.90.2/NEWS
--- old/upower-v1.90.1/NEWS     2023-07-04 15:51:22.000000000 +0200
+++ new/upower-v1.90.2/NEWS     2023-07-06 10:52:27.000000000 +0200
@@ -1,3 +1,18 @@
+Version 1.90.2
+--------------
+Released: 2023-07-06
+
+Note that this is the last release of UPower with lid handling. OS components
+that rely on the lid status should get it from logind instead. See:
+https://www.freedesktop.org/software/systemd/man/org.freedesktop.login1.html
+
+- Fix wireless devices not disappearing from Settings when disconnected
+- Require a newer libgudev to avoid bugs related to newline stripping
+  when reading sysfs attributes
+- Add installed-tests files for use with gnome-desktop-testing
+- Fix integration test to work with system installed upower binary and
+  under jhbuild
+
 Version 1.90.1
 --------------
 Released: 2023-07-04
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/upower-v1.90.1/meson.build 
new/upower-v1.90.2/meson.build
--- old/upower-v1.90.1/meson.build      2023-07-04 15:51:22.000000000 +0200
+++ new/upower-v1.90.2/meson.build      2023-07-06 10:52:27.000000000 +0200
@@ -1,5 +1,5 @@
 project('upower', 'c',
-    version: '1.90.1',
+    version: '1.90.2',
     license: 'GPLv2+',
     default_options: [
         'buildtype=debugoptimized',
@@ -69,7 +69,7 @@
 
 
 if os_backend == 'linux'
-  gudev_dep = dependency('gudev-1.0', version: '>= 235')
+  gudev_dep = dependency('gudev-1.0', version: '>= 238')
   idevice_dep = dependency('libimobiledevice-1.0',
                            version : '>= 0.9.7',
                            required : get_option('idevice'))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/upower-v1.90.1/src/linux/integration-test.py 
new/upower-v1.90.2/src/linux/integration-test.py
--- old/upower-v1.90.1/src/linux/integration-test.py    2023-07-04 
15:51:22.000000000 +0200
+++ new/upower-v1.90.2/src/linux/integration-test.py    2023-07-06 
10:52:27.000000000 +0200
@@ -102,22 +102,26 @@
         builddir = os.getenv('top_builddir', '.')
         if os.access(os.path.join(builddir, 'src', 'upowerd'), os.X_OK):
             cls.daemon_path = os.path.join(builddir, 'src', 'upowerd')
+            cls.upower_path = os.path.join(builddir, 'tools', 'upower')
             print('Testing binaries from local build tree')
             cls.local_daemon = True
         elif os.environ.get('UNDER_JHBUILD', False):
             jhbuild_prefix = os.environ['JHBUILD_PREFIX']
             cls.daemon_path = os.path.join(jhbuild_prefix, 'libexec', 
'upowerd')
+            cls.upower_path = os.path.join(jhbuild_prefix, 'bin', 'upower')
             print('Testing binaries from JHBuild')
             cls.local_daemon = False
         else:
             print('Testing installed system binaries')
             cls.daemon_path = None
+            cls.upower_path = shutil.which('upower')
             with 
open('/usr/share/dbus-1/system-services/org.freedesktop.UPower.service') as f:
                 for line in f:
                     if line.startswith('Exec='):
                         cls.daemon_path = line.split('=', 1)[1].strip()
                         break
             assert cls.daemon_path, 'could not determine daemon path from 
D-BUS .service file'
+            assert cls.upower_path, 'could not determine upower path'
             cls.local_daemon = False
 
         # fail on CRITICALs on client side
@@ -321,6 +325,11 @@
         else:
             self.fail(message or 'timed out waiting for ' + str(condition))
 
+    def wait_for_mainloop(self):
+        ml = GLib.MainLoop()
+        GLib.timeout_add(100, ml.quit)
+        ml.run()
+
     #
     # Actual test cases
     #
@@ -2463,6 +2472,7 @@
 
         self.testbed.add_from_file(os.path.join(edir, 
'tests/steelseries-headset.device'))
         card = 
'/sys/devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5:1.0/sound/card1'
+        self.wait_for_mainloop()
 
         devs = self.proxy.EnumerateDevices()
         self.assertEqual(len(devs), 1)
@@ -2486,24 +2496,40 @@
         intf = '/sys/devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5:1.3'
         self.testbed.set_attribute(intf, 'wireless_status', 'connected')
 
+        num_devices = 0
+
         self.start_daemon()
 
         devs = self.proxy.EnumerateDevices()
-        self.assertEqual(len(devs), 1)
+        num_devices = len(devs)
+        self.assertEqual(num_devices, 1)
         headset_up = devs[0]
         self.assertEqual(self.get_dbus_dev_property(headset_up, 'Percentage'), 
69.0)
 
+        client = UPowerGlib.Client.new()
+
+        def device_added_cb(client, device):
+            nonlocal num_devices
+            num_devices += 1
+        def device_removed_cb(client, path):
+            nonlocal num_devices
+            num_devices -= 1
+
+        client.connect('device-added', device_added_cb)
+        client.connect('device-removed', device_removed_cb)
+
         self.testbed.set_attribute(intf, 'wireless_status', 'disconnected')
         self.testbed.uevent(intf, 'change')
+        self.wait_for_mainloop()
 
-        devs = self.proxy.EnumerateDevices()
-        self.assertEqual(len(devs), 0)
+        self.assertEqual(num_devices, 0)
 
         self.testbed.set_attribute(intf, 'wireless_status', 'connected')
         self.testbed.uevent(intf, 'change')
+        self.wait_for_mainloop()
 
+        self.assertEqual(num_devices, 1)
         devs = self.proxy.EnumerateDevices()
-        self.assertEqual(len(devs), 1)
         headset_up = devs[0]
         self.assertEqual(self.get_dbus_dev_property(headset_up, 'Percentage'), 
69.0)
 
@@ -2514,9 +2540,8 @@
         self.testbed.add_from_file(os.path.join(edir, 
'tests/usb-headset.device'))
         bat = 
'/sys/devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8:1.3/0003:046D:0A87.0004/power_supply/hidpp_battery_0'
 
-        upower_path = os.path.dirname(os.path.dirname(self.daemon_path)) + 
'/tools/upower'
         self.start_daemon()
-        process = subprocess.Popen([upower_path, '-m'])
+        process = subprocess.Popen([self.upower_path, '-m'])
 
         for i in range(10):
             # Replace daemon
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/upower-v1.90.1/src/linux/up-backend.c 
new/upower-v1.90.2/src/linux/up-backend.c
--- old/upower-v1.90.1/src/linux/up-backend.c   2023-07-04 15:51:22.000000000 
+0200
+++ new/upower-v1.90.2/src/linux/up-backend.c   2023-07-06 10:52:27.000000000 
+0200
@@ -148,7 +148,8 @@
        return ret;
 }
 
-static void
+/* Returns TRUE if the added_device should be visible */
+static gboolean
 update_added_duplicate_device (UpBackend *backend,
                               UpDevice  *added_device)
 {
@@ -159,7 +160,7 @@
 
        other_device = find_duplicate_device (backend, added_device);
        if (!other_device)
-               return;
+               return TRUE;
 
        if (UP_IS_DEVICE_BLUEZ (added_device))
                bluez_device = added_device;
@@ -189,15 +190,19 @@
                        g_object_get (G_OBJECT (added_device), "serial", 
&serial, NULL);
                        g_debug ("Device %s is a duplicate, but we don't know 
if most interesting",
                                 serial);
-                       return;
+                       return TRUE;
                }
 
                unreg_device = tested_device;
        }
 
        g_object_get (G_OBJECT (unreg_device), "serial", &serial, NULL);
-       up_device_unregister (unreg_device);
+       if (up_device_is_registered (unreg_device)) {
+               g_signal_emit (backend, signals[SIGNAL_DEVICE_REMOVED], 0, 
unreg_device);
+               up_device_unregister (unreg_device);
+       }
        g_debug ("Hiding duplicate device %s", serial);
+       return unreg_device != added_device;
 }
 
 static void
@@ -211,7 +216,8 @@
                return;
 
        /* Re-add the old duplicate device that got hidden */
-       up_device_register (other_device);
+       if (up_device_register (other_device))
+               g_signal_emit (backend, signals[SIGNAL_DEVICE_ADDED], 0, 
other_device);
 }
 
 static gboolean
@@ -278,7 +284,8 @@
                return;
 
        g_debug ("emitting device-removed: %s", g_dbus_object_get_object_path 
(bus_object));
-       g_signal_emit (backend, signals[SIGNAL_DEVICE_REMOVED], 0, UP_DEVICE 
(object));
+       if (up_device_is_registered (UP_DEVICE (object)))
+               g_signal_emit (backend, signals[SIGNAL_DEVICE_REMOVED], 0, 
UP_DEVICE (object));
 
        g_object_unref (object);
 }
@@ -308,8 +315,8 @@
                                 NULL);
        if (device) {
                g_debug ("emitting device-added: %s", 
g_dbus_object_get_object_path (bus_object));
-               update_added_duplicate_device (backend, device);
-               g_signal_emit (backend, signals[SIGNAL_DEVICE_ADDED], 0, 
device);
+               if (update_added_duplicate_device (backend, device))
+                       g_signal_emit (backend, signals[SIGNAL_DEVICE_ADDED], 
0, device);
        }
 }
 
@@ -389,7 +396,8 @@
 
                        object = G_DBUS_OBJECT (up_device_get_native (device));
                        g_debug ("emitting device-removed: %s", 
g_dbus_object_get_object_path (object));
-                       g_signal_emit (backend, signals[SIGNAL_DEVICE_REMOVED], 
0, device);
+                       if (up_device_is_registered (device))
+                               g_signal_emit (backend, 
signals[SIGNAL_DEVICE_REMOVED], 0, device);
                }
        }
 
@@ -403,6 +411,7 @@
                           GParamSpec *pspec,
                           gpointer    user_data)
 {
+       UpBackend *backend = user_data;
        g_autofree char *path = NULL;
        gboolean disconnected;
 
@@ -412,10 +421,14 @@
                      NULL);
        if (disconnected) {
                g_debug("Device %s became disconnected, hiding device", path);
-               up_device_unregister (UP_DEVICE (gobject));
+               if (up_device_is_registered (UP_DEVICE (gobject))) {
+                       g_signal_emit (backend, signals[SIGNAL_DEVICE_REMOVED], 
0, gobject);
+                       up_device_unregister (UP_DEVICE (gobject));
+               }
        } else {
                g_debug ("Device %s became connected, showing device", path);
-               up_device_register (UP_DEVICE (gobject));
+               if (up_device_register (UP_DEVICE (gobject)))
+                       g_signal_emit (backend, signals[SIGNAL_DEVICE_ADDED], 
0, gobject);
        }
 }
 
@@ -423,10 +436,10 @@
 udev_device_added_cb (UpBackend *backend, UpDevice *device)
 {
        g_debug ("Got new device from udev enumerator: %p", device);
-       update_added_duplicate_device (backend, device);
        g_signal_connect (device, "notify::disconnected",
                          G_CALLBACK (up_device_disconnected_cb), backend);
-       g_signal_emit (backend, signals[SIGNAL_DEVICE_ADDED], 0, device);
+       if (update_added_duplicate_device (backend, device))
+               g_signal_emit (backend, signals[SIGNAL_DEVICE_ADDED], 0, 
device);
 }
 
 static void
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/upower-v1.90.1/src/meson.build 
new/upower-v1.90.2/src/meson.build
--- old/upower-v1.90.1/src/meson.build  2023-07-04 15:51:22.000000000 +0200
+++ new/upower-v1.90.2/src/meson.build  2023-07-06 10:52:27.000000000 +0200
@@ -142,4 +142,21 @@
              timeout: 80,
             )
     endforeach
+
+    install_data( [
+        'linux/integration-test.py',
+        'linux/output_checker.py',
+      ],
+      install_dir: get_option('prefix') / get_option('libexecdir') / 'upower'
+    )
+    install_subdir('linux/tests/',
+      install_dir: get_option('prefix') / get_option('libexecdir') / 'upower'
+    )
+
+    configure_file(
+      input: 'upower-integration.test.in',
+      output: 'upower-integration.test',
+      install_dir: get_option('datadir') / 'installed-tests' / 'upower',
+      configuration: cdata
+    )
 endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/upower-v1.90.1/src/up-device.c 
new/upower-v1.90.2/src/up-device.c
--- old/upower-v1.90.1/src/up-device.c  2023-07-04 15:51:22.000000000 +0200
+++ new/upower-v1.90.2/src/up-device.c  2023-07-06 10:52:27.000000000 +0200
@@ -429,16 +429,17 @@
        return object_path;
 }
 
-void
+gboolean
 up_device_register (UpDevice *device)
 {
        g_autofree char *computed_object_path = NULL;
 
        if (g_dbus_interface_skeleton_get_object_path 
(G_DBUS_INTERFACE_SKELETON (device)) != NULL)
-               return;
+               return FALSE;
        computed_object_path = up_device_compute_object_path (device);
        g_debug ("Exported UpDevice with path %s", computed_object_path);
        up_device_export_skeleton (device, computed_object_path);
+       return TRUE;
 }
 
 void
@@ -453,6 +454,12 @@
        }
 }
 
+gboolean
+up_device_is_registered (UpDevice *device)
+{
+       return g_dbus_interface_skeleton_get_object_path 
(G_DBUS_INTERFACE_SKELETON (device)) != NULL;
+}
+
 /**
  * up_device_refresh:
  *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/upower-v1.90.1/src/up-device.h 
new/upower-v1.90.2/src/up-device.h
--- old/upower-v1.90.1/src/up-device.h  2023-07-04 15:51:22.000000000 +0200
+++ new/upower-v1.90.2/src/up-device.h  2023-07-06 10:52:27.000000000 +0200
@@ -72,7 +72,8 @@
 gboolean        up_device_refresh_internal     (UpDevice       *device,
                                                 UpRefreshReason reason);
 void            up_device_unregister           (UpDevice       *device);
-void            up_device_register             (UpDevice       *device);
+gboolean        up_device_register             (UpDevice       *device);
+gboolean        up_device_is_registered        (UpDevice       *device);
 
 G_END_DECLS
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/upower-v1.90.1/src/upower-integration.test.in 
new/upower-v1.90.2/src/upower-integration.test.in
--- old/upower-v1.90.1/src/upower-integration.test.in   1970-01-01 
01:00:00.000000000 +0100
+++ new/upower-v1.90.2/src/upower-integration.test.in   2023-07-06 
10:52:27.000000000 +0200
@@ -0,0 +1,3 @@
+[Test]
+Type=session
+Exec=@libexecdir@/upower/integration-test.py

Reply via email to