parent
84fa0fb4f6
commit
a45e710b66
1
.gitignore
vendored
1
.gitignore
vendored
@ -33,3 +33,4 @@ upower-0.9.5.tar.bz2
|
||||
/upower-0.99.9.tar.xz
|
||||
/upower-0.99.10.tar.xz
|
||||
/upower-0.99.11.tar.xz
|
||||
/upower-0.99.13.tar.xz
|
||||
|
@ -1,28 +0,0 @@
|
||||
From 694207d3f08bdd2095f01eee09eb523363800825 Mon Sep 17 00:00:00 2001
|
||||
From: Bastien Nocera <hadess@hadess.net>
|
||||
Date: Tue, 16 Jun 2020 14:04:25 +0200
|
||||
Subject: [PATCH] build: Use a newer libplist if available
|
||||
|
||||
---
|
||||
configure.ac | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index a96b794..5f08d91 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -202,8 +202,10 @@ if test x$with_backend = xlinux; then
|
||||
PKG_CHECK_MODULES(USB, [libusb-1.0 >= 1.0.0])
|
||||
AC_ARG_WITH(idevice, AS_HELP_STRING([--without-idevice],[Build without libimobiledevice]),
|
||||
with_idevice=$withval,with_idevice=yes)
|
||||
+ LIBPLIST_DEP=libplist
|
||||
+ PKG_CHECK_EXISTS(libplist-2.0, LIBPLIST_DEP=libplist-2.0)
|
||||
AS_IF([test "x$with_idevice" != "xno"],
|
||||
- [PKG_CHECK_MODULES(IDEVICE, libimobiledevice-1.0 >= 0.9.7 libplist >= 0.12, have_idevice=yes, have_idevice=no)],
|
||||
+ [PKG_CHECK_MODULES(IDEVICE, libimobiledevice-1.0 >= 0.9.7 $LIBPLIST_DEP, have_idevice=yes, have_idevice=no)],
|
||||
[have_idevice=no])
|
||||
AS_IF([test "x$have_idevice" = "xyes"],
|
||||
[AC_DEFINE(HAVE_IDEVICE, 1, [Define to 1 if iDevice is going to be built])])
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,76 +0,0 @@
|
||||
From 97185bae75b16bea48d532aa5511417e485b1c06 Mon Sep 17 00:00:00 2001
|
||||
From: Bastien Nocera <hadess@hadess.net>
|
||||
Date: Wed, 17 Jun 2020 10:51:09 +0200
|
||||
Subject: [PATCH] linux: Add support for iPhone XR, XS models
|
||||
|
||||
Modifying the udev serial to be acceptable as an hyphened UDID, as the
|
||||
usbmux stack expects.
|
||||
|
||||
Closes: #114
|
||||
---
|
||||
src/linux/up-device-idevice.c | 28 ++++++++++++++++++++++++++--
|
||||
1 file changed, 26 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/linux/up-device-idevice.c b/src/linux/up-device-idevice.c
|
||||
index a808269..d2fa0a1 100644
|
||||
--- a/src/linux/up-device-idevice.c
|
||||
+++ b/src/linux/up-device-idevice.c
|
||||
@@ -203,6 +203,28 @@ out:
|
||||
return G_SOURCE_CONTINUE;
|
||||
}
|
||||
|
||||
+static char *
|
||||
+get_device_uuid (GUdevDevice *native)
|
||||
+{
|
||||
+ const char *uuid;
|
||||
+ char *retval;
|
||||
+
|
||||
+ uuid = g_udev_device_get_property (native, "ID_SERIAL_SHORT");
|
||||
+ if (uuid == NULL)
|
||||
+ return NULL;
|
||||
+
|
||||
+ if (strlen (uuid) != 24)
|
||||
+ return g_strdup (uuid);
|
||||
+
|
||||
+ /* new style UDID: add hyphen between first 8 and following 16 digits */
|
||||
+ retval = g_malloc0 (24 + 1 + 1);
|
||||
+ memcpy (&retval[0], &uuid[0], 8);
|
||||
+ retval[8] = '-';
|
||||
+ memcpy (&retval[9], &uuid[8], 16);
|
||||
+
|
||||
+ return retval;
|
||||
+}
|
||||
+
|
||||
/**
|
||||
* up_device_idevice_coldplug:
|
||||
*
|
||||
@@ -213,7 +235,7 @@ up_device_idevice_coldplug (UpDevice *device)
|
||||
{
|
||||
UpDeviceIdevice *idevice = UP_DEVICE_IDEVICE (device);
|
||||
GUdevDevice *native;
|
||||
- const gchar *uuid;
|
||||
+ char *uuid;
|
||||
const gchar *model;
|
||||
UpDeviceKind kind;
|
||||
|
||||
@@ -223,7 +245,7 @@ up_device_idevice_coldplug (UpDevice *device)
|
||||
return FALSE;
|
||||
|
||||
/* Get the UUID */
|
||||
- uuid = g_udev_device_get_property (native, "ID_SERIAL_SHORT");
|
||||
+ uuid = get_device_uuid (native);
|
||||
if (uuid == NULL)
|
||||
return FALSE;
|
||||
|
||||
@@ -253,6 +275,8 @@ up_device_idevice_coldplug (UpDevice *device)
|
||||
g_source_set_name_by_id (idevice->priv->start_id,
|
||||
"[upower] up_device_idevice_start_poll_cb (linux)");
|
||||
|
||||
+ g_free (uuid);
|
||||
+
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
--
|
||||
2.26.2
|
||||
|
2
sources
2
sources
@ -1 +1 @@
|
||||
SHA512 (upower-0.99.11.tar.xz) = 67219a0beb98c97ac4512e4fe8ba83fc80a1035d1edb5367dda6911da50c672b047051f2f528e8703be29ab47547d92b6c71a7ef695226a1bdb5bc33e6d18803
|
||||
SHA512 (upower-0.99.13.tar.xz) = 5e72d3a67060e3053bc0753b5a2ab3b5fc5bc5e9d6e32165286c7d4c97d23441ef7c095af3af7a6f1f59841e63c1d46b2d90681abad22eb442047bd628d859d2
|
||||
|
@ -1,574 +0,0 @@
|
||||
From 4227d0c439aa8f812c702f7f169be545d3a139e1 Mon Sep 17 00:00:00 2001
|
||||
From: Bastien Nocera <hadess@hadess.net>
|
||||
Date: Tue, 19 Jan 2021 13:28:48 +0100
|
||||
Subject: [PATCH 1/2] linux: Remove support for CSR devices
|
||||
|
||||
Those devices date back from the mid-2000s. If they still work, and
|
||||
somebody is still interested in having them export their battery status,
|
||||
we would recommend moving this information to the appropriate kernel
|
||||
drivers.
|
||||
---
|
||||
rules/95-upower-csr.rules | 21 ---
|
||||
rules/Makefile.am | 1 -
|
||||
src/linux/Makefile.am | 2 -
|
||||
src/linux/up-backend.c | 8 -
|
||||
src/linux/up-device-csr.c | 344 --------------------------------------
|
||||
src/linux/up-device-csr.h | 56 -------
|
||||
6 files changed, 432 deletions(-)
|
||||
delete mode 100644 rules/95-upower-csr.rules
|
||||
delete mode 100644 src/linux/up-device-csr.c
|
||||
delete mode 100644 src/linux/up-device-csr.h
|
||||
|
||||
diff --git a/rules/95-upower-csr.rules b/rules/95-upower-csr.rules
|
||||
deleted file mode 100644
|
||||
index 7c5f560..0000000
|
||||
--- a/rules/95-upower-csr.rules
|
||||
+++ /dev/null
|
||||
@@ -1,21 +0,0 @@
|
||||
-##############################################################################################################
|
||||
-# Logitech Mice with CSR battery readouts
|
||||
-#
|
||||
-# These are properties defining the behavior:
|
||||
-# UPOWER_CSR_DUAL (Dual Receiver)
|
||||
-#
|
||||
-SUBSYSTEM!="usb", GOTO="up_csr_end"
|
||||
-
|
||||
-ATTR{idVendor}=="046d", ENV{UPOWER_VENDOR}="Logitech, Inc."
|
||||
-ATTR{idVendor}=="046d", ATTR{idProduct}=="c501", ENV{UPOWER_PRODUCT}="Mouse Receiver", ENV{UPOWER_BATTERY_TYPE}="mouse"
|
||||
-ATTR{idVendor}=="046d", ATTR{idProduct}=="c502", ENV{UPOWER_PRODUCT}="Dual Receiver", ENV{UPOWER_BATTERY_TYPE}="mouse", ENV{UPOWER_CSR_DUAL}="1"
|
||||
-ATTR{idVendor}=="046d", ATTR{idProduct}=="c504", ENV{UPOWER_PRODUCT}="Freedom Optical", ENV{UPOWER_BATTERY_TYPE}="mouse", ENV{UPOWER_CSR_DUAL}="1"
|
||||
-ATTR{idVendor}=="046d", ATTR{idProduct}=="c505", ENV{UPOWER_PRODUCT}="Elite Duo", ENV{UPOWER_BATTERY_TYPE}="keyboard"
|
||||
-ATTR{idVendor}=="046d", ATTR{idProduct}=="c506", ENV{UPOWER_PRODUCT}="MX700 Optical Mouse", ENV{UPOWER_BATTERY_TYPE}="mouse"
|
||||
-ATTR{idVendor}=="046d", ATTR{idProduct}=="c508", ENV{UPOWER_PRODUCT}="Optical TrackMan", ENV{UPOWER_BATTERY_TYPE}="mouse"
|
||||
-ATTR{idVendor}=="046d", ATTR{idProduct}=="c50e", ENV{UPOWER_PRODUCT}="MX1000 Laser Mouse", ENV{UPOWER_BATTERY_TYPE}="mouse"
|
||||
-ATTR{idVendor}=="046d", ATTR{idProduct}=="c510", ENV{UPOWER_PRODUCT}="Click! Mouse", ENV{UPOWER_BATTERY_TYPE}="mouse"
|
||||
-ATTR{idVendor}=="046d", ATTR{idProduct}=="c512", ENV{UPOWER_PRODUCT}="Keyboard+Mouse Receiver", ENV{UPOWER_BATTERY_TYPE}="keyboard"
|
||||
-ATTR{idVendor}=="046d", ATTR{idProduct}=="c702", ENV{UPOWER_PRODUCT}="Presenter", ENV{UPOWER_BATTERY_TYPE}="mouse"
|
||||
-
|
||||
-LABEL="up_csr_end"
|
||||
diff --git a/rules/Makefile.am b/rules/Makefile.am
|
||||
index 5262d9e..1d71d24 100644
|
||||
--- a/rules/Makefile.am
|
||||
+++ b/rules/Makefile.am
|
||||
@@ -3,7 +3,6 @@
|
||||
udevrules_DATA = \
|
||||
95-upower-wup.rules \
|
||||
95-upower-hid.rules \
|
||||
- 95-upower-csr.rules \
|
||||
95-upower-hidpp.rules
|
||||
|
||||
EXTRA_DIST = \
|
||||
diff --git a/src/linux/Makefile.am b/src/linux/Makefile.am
|
||||
index aec0b31..82f60fd 100644
|
||||
--- a/src/linux/Makefile.am
|
||||
+++ b/src/linux/Makefile.am
|
||||
@@ -29,8 +29,6 @@ endif
|
||||
libupshared_la_SOURCES = \
|
||||
up-device-supply.c \
|
||||
up-device-supply.h \
|
||||
- up-device-csr.c \
|
||||
- up-device-csr.h \
|
||||
up-device-unifying.c \
|
||||
up-device-unifying.h \
|
||||
up-device-hid.c \
|
||||
diff --git a/src/linux/up-backend.c b/src/linux/up-backend.c
|
||||
index 04e6f2f..e17a946 100644
|
||||
--- a/src/linux/up-backend.c
|
||||
+++ b/src/linux/up-backend.c
|
||||
@@ -38,7 +38,6 @@
|
||||
#include "sysfs-utils.h"
|
||||
|
||||
#include "up-device-supply.h"
|
||||
-#include "up-device-csr.h"
|
||||
#include "up-device-unifying.h"
|
||||
#include "up-device-wup.h"
|
||||
#include "up-device-hid.h"
|
||||
@@ -147,13 +146,6 @@ up_backend_device_new (UpBackend *backend, GUdevDevice *native)
|
||||
g_object_unref (device);
|
||||
#endif /* HAVE_IDEVICE */
|
||||
|
||||
- /* see if this is a CSR mouse or keyboard */
|
||||
- device = UP_DEVICE (up_device_csr_new ());
|
||||
- ret = up_device_coldplug (device, backend->priv->daemon, G_OBJECT (native));
|
||||
- if (ret)
|
||||
- goto out;
|
||||
- g_object_unref (device);
|
||||
-
|
||||
/* try to detect a HID UPS */
|
||||
device = UP_DEVICE (up_device_hid_new ());
|
||||
ret = up_device_coldplug (device, backend->priv->daemon, G_OBJECT (native));
|
||||
diff --git a/src/linux/up-device-csr.c b/src/linux/up-device-csr.c
|
||||
deleted file mode 100644
|
||||
index 63442d8..0000000
|
||||
--- a/src/linux/up-device-csr.c
|
||||
+++ /dev/null
|
||||
@@ -1,344 +0,0 @@
|
||||
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
|
||||
- *
|
||||
- * Copyright (C) 2005-2010 Richard Hughes <richard@hughsie.com>
|
||||
- * Copyright (C) 2004 Sergey V. Udaltsov <svu@gnome.org>
|
||||
- *
|
||||
- * This program is free software; you can redistribute it and/or modify
|
||||
- * it under the terms of the GNU General Public License as published by
|
||||
- * the Free Software Foundation; either version 2 of the License, or
|
||||
- * (at your option) any later version.
|
||||
- *
|
||||
- * This program is distributed in the hope that it will be useful,
|
||||
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
- * GNU General Public License for more details.
|
||||
- *
|
||||
- * You should have received a copy of the GNU General Public License
|
||||
- * along with this program; if not, write to the Free Software
|
||||
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
- *
|
||||
- */
|
||||
-
|
||||
-#ifdef HAVE_CONFIG_H
|
||||
-# include "config.h"
|
||||
-#endif
|
||||
-
|
||||
-#include <string.h>
|
||||
-#include <math.h>
|
||||
-
|
||||
-#include <glib.h>
|
||||
-#include <glib/gstdio.h>
|
||||
-#include <glib/gprintf.h>
|
||||
-#include <glib/gi18n-lib.h>
|
||||
-#include <glib-object.h>
|
||||
-#include <gudev/gudev.h>
|
||||
-#include <libusb.h>
|
||||
-
|
||||
-#include "sysfs-utils.h"
|
||||
-#include "up-types.h"
|
||||
-#include "up-device-csr.h"
|
||||
-
|
||||
-#define UP_DEVICE_CSR_REFRESH_TIMEOUT 30L
|
||||
-
|
||||
-/* Internal CSR registers */
|
||||
-#define CSR_P6 0
|
||||
-#define CSR_P0 1
|
||||
-#define CSR_P4 2
|
||||
-#define CSR_P5 3
|
||||
-#define CSR_P8 4
|
||||
-#define CSR_P9 5
|
||||
-#define CSR_PB0 6
|
||||
-#define CSR_PB1 7
|
||||
-
|
||||
-struct UpDeviceCsrPrivate
|
||||
-{
|
||||
- gboolean is_dual;
|
||||
- guint bus_num;
|
||||
- guint dev_num;
|
||||
- gint raw_value;
|
||||
- libusb_context *ctx;
|
||||
- libusb_device *device;
|
||||
-};
|
||||
-
|
||||
-G_DEFINE_TYPE_WITH_PRIVATE (UpDeviceCsr, up_device_csr, UP_TYPE_DEVICE)
|
||||
-
|
||||
-static gboolean up_device_csr_refresh (UpDevice *device);
|
||||
-
|
||||
-/**
|
||||
- * up_device_csr_poll_cb:
|
||||
- **/
|
||||
-static gboolean
|
||||
-up_device_csr_poll_cb (UpDeviceCsr *csr)
|
||||
-{
|
||||
- UpDevice *device = UP_DEVICE (csr);
|
||||
-
|
||||
- g_debug ("Polling: %s", up_device_get_object_path (device));
|
||||
- up_device_csr_refresh (device);
|
||||
-
|
||||
- /* always continue polling */
|
||||
- return TRUE;
|
||||
-}
|
||||
-
|
||||
-/**
|
||||
- * up_device_csr_find_device:
|
||||
- **/
|
||||
-static libusb_device *
|
||||
-up_device_csr_find_device (UpDeviceCsr *csr)
|
||||
-{
|
||||
- libusb_device *curr_device = NULL;
|
||||
- libusb_device **devices = NULL;
|
||||
- guint8 bus_num;
|
||||
- guint8 dev_num;
|
||||
- guint i;
|
||||
- ssize_t cnt;
|
||||
-
|
||||
- g_debug ("Looking for: [%03d][%03d]", csr->priv->bus_num, csr->priv->dev_num);
|
||||
-
|
||||
- /* try to find the right device */
|
||||
- cnt = libusb_get_device_list (csr->priv->ctx, &devices);
|
||||
- if (cnt < 0) {
|
||||
-/* need to depend on > libusb1-1.0.9 for libusb_strerror()
|
||||
- g_warning ("failed to get device list: %s", libusb_strerror (cnt));
|
||||
- */
|
||||
- g_warning ("failed to get device list: %d", (int)cnt);
|
||||
- goto out;
|
||||
- }
|
||||
- if (devices == NULL) {
|
||||
- g_warning ("failed to get device list");
|
||||
- goto out;
|
||||
- }
|
||||
- for (i=0; devices[i] != NULL; i++) {
|
||||
-
|
||||
- bus_num = libusb_get_bus_number (devices[i]);
|
||||
- dev_num = libusb_get_device_address (devices[i]);
|
||||
- if (bus_num == csr->priv->bus_num &&
|
||||
- dev_num == csr->priv->dev_num) {
|
||||
- curr_device = libusb_ref_device (devices[i]);
|
||||
- break;
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- libusb_free_device_list (devices, TRUE);
|
||||
-out:
|
||||
- return curr_device;
|
||||
-}
|
||||
-
|
||||
-/**
|
||||
- * up_device_csr_coldplug:
|
||||
- *
|
||||
- * Return %TRUE on success, %FALSE if we failed to get data and should be removed
|
||||
- **/
|
||||
-static gboolean
|
||||
-up_device_csr_coldplug (UpDevice *device)
|
||||
-{
|
||||
- UpDeviceCsr *csr = UP_DEVICE_CSR (device);
|
||||
- GUdevDevice *native;
|
||||
- gboolean ret = FALSE;
|
||||
- const gchar *type;
|
||||
- const gchar *native_path;
|
||||
- const gchar *vendor;
|
||||
- const gchar *product;
|
||||
-
|
||||
- /* get the type */
|
||||
- native = G_UDEV_DEVICE (up_device_get_native (device));
|
||||
- type = g_udev_device_get_property (native, "UPOWER_BATTERY_TYPE");
|
||||
- if (type == NULL)
|
||||
- goto out;
|
||||
-
|
||||
- /* which one? */
|
||||
- if (g_strcmp0 (type, "mouse") == 0)
|
||||
- g_object_set (device, "type", UP_DEVICE_KIND_MOUSE, NULL);
|
||||
- else if (g_strcmp0 (type, "keyboard") == 0)
|
||||
- g_object_set (device, "type", UP_DEVICE_KIND_KEYBOARD, NULL);
|
||||
- else {
|
||||
- g_debug ("not a recognised csr device");
|
||||
- goto out;
|
||||
- }
|
||||
-
|
||||
- /* get what USB device we are */
|
||||
- native_path = g_udev_device_get_sysfs_path (native);
|
||||
- csr->priv->bus_num = sysfs_get_int (native_path, "busnum");
|
||||
- csr->priv->dev_num = sysfs_get_int (native_path, "devnum");
|
||||
-
|
||||
- /* get correct bus numbers? */
|
||||
- if (csr->priv->bus_num == 0 || csr->priv->dev_num == 0) {
|
||||
- g_warning ("unable to get bus or device numbers");
|
||||
- goto out;
|
||||
- }
|
||||
-
|
||||
- /* try to get the usb device */
|
||||
- csr->priv->device = up_device_csr_find_device (csr);
|
||||
- if (csr->priv->device == NULL) {
|
||||
- g_debug ("failed to get device %p", csr);
|
||||
- goto out;
|
||||
- }
|
||||
-
|
||||
- /* get optional quirk parameters */
|
||||
- ret = g_udev_device_has_property (native, "UPOWER_CSR_DUAL");
|
||||
- if (ret)
|
||||
- csr->priv->is_dual = g_udev_device_get_property_as_boolean (native, "UPOWER_CSR_DUAL");
|
||||
- g_debug ("is_dual=%i", csr->priv->is_dual);
|
||||
-
|
||||
- /* prefer UPOWER names */
|
||||
- vendor = g_udev_device_get_property (native, "UPOWER_VENDOR");
|
||||
- if (vendor == NULL)
|
||||
- vendor = g_udev_device_get_property (native, "ID_VENDOR");
|
||||
- product = g_udev_device_get_property (native, "UPOWER_PRODUCT");
|
||||
- if (product == NULL)
|
||||
- product = g_udev_device_get_property (native, "ID_PRODUCT");
|
||||
-
|
||||
- /* hardcode some values */
|
||||
- g_object_set (device,
|
||||
- "vendor", vendor,
|
||||
- "model", product,
|
||||
- "power-supply", FALSE,
|
||||
- "is-present", TRUE,
|
||||
- "is-rechargeable", TRUE,
|
||||
- "state", UP_DEVICE_STATE_DISCHARGING,
|
||||
- "has-history", TRUE,
|
||||
- NULL);
|
||||
-
|
||||
- /* coldplug */
|
||||
- ret = up_device_csr_refresh (device);
|
||||
- if (!ret)
|
||||
- goto out;
|
||||
-
|
||||
- /* set up a poll */
|
||||
- up_daemon_start_poll (G_OBJECT (device), (GSourceFunc) up_device_csr_poll_cb);
|
||||
-out:
|
||||
- return ret;
|
||||
-}
|
||||
-
|
||||
-/**
|
||||
- * up_device_csr_refresh:
|
||||
- *
|
||||
- * Return %TRUE on success, %FALSE if we failed to refresh or no data
|
||||
- **/
|
||||
-static gboolean
|
||||
-up_device_csr_refresh (UpDevice *device)
|
||||
-{
|
||||
- gboolean ret = FALSE;
|
||||
- UpDeviceCsr *csr = UP_DEVICE_CSR (device);
|
||||
- libusb_device_handle *handle = NULL;
|
||||
- guint8 buf[80];
|
||||
- guint addr;
|
||||
- gdouble percentage;
|
||||
- gint retval;
|
||||
-
|
||||
- /* ensure we still have a device */
|
||||
- if (csr->priv->device == NULL) {
|
||||
- g_warning ("no device!");
|
||||
- goto out;
|
||||
- }
|
||||
-
|
||||
- /* open USB device */
|
||||
- retval = libusb_open (csr->priv->device, &handle);
|
||||
- if (retval < 0) {
|
||||
- g_warning ("could not open device: %i", retval);
|
||||
- goto out;
|
||||
- }
|
||||
-
|
||||
- /* For dual receivers C502, C504 and C505, the mouse is the
|
||||
- * second device and uses an addr of 1 in the value and index
|
||||
- * fields' high byte */
|
||||
- addr = csr->priv->is_dual ? 1<<8 : 0;
|
||||
-
|
||||
- /* get the charge */
|
||||
- retval = libusb_control_transfer (handle, 0xc0, 0x09, 0x03|addr, 0x00|addr,
|
||||
- buf, 8, UP_DEVICE_CSR_REFRESH_TIMEOUT);
|
||||
- if (retval < 0) {
|
||||
- g_warning ("failed to write to device: %i", retval);
|
||||
- goto out;
|
||||
- }
|
||||
-
|
||||
- /* ensure we wrote 8 bytes */
|
||||
- if (retval != 8) {
|
||||
- g_warning ("failed to write to device, wrote %i bytes", retval);
|
||||
- goto out;
|
||||
- }
|
||||
-
|
||||
- /* is a C504 receiver busy? */
|
||||
- if (buf[CSR_P0] == 0x3b && buf[CSR_P4] == 0) {
|
||||
- g_warning ("receiver busy");
|
||||
- goto out;
|
||||
- }
|
||||
-
|
||||
- /* get battery status */
|
||||
- csr->priv->raw_value = buf[CSR_P5] & 0x07;
|
||||
- g_debug ("charge level: %d", csr->priv->raw_value);
|
||||
- if (csr->priv->raw_value != 0) {
|
||||
- percentage = (100.0 / 7.0) * csr->priv->raw_value;
|
||||
- g_object_set (device, "percentage", percentage, NULL);
|
||||
- g_debug ("percentage=%f", percentage);
|
||||
- }
|
||||
-
|
||||
- /* reset time */
|
||||
- g_object_set (device, "update-time", (guint64) g_get_real_time () / G_USEC_PER_SEC, NULL);
|
||||
-
|
||||
- /* success */
|
||||
- ret = TRUE;
|
||||
-out:
|
||||
- if (handle != NULL)
|
||||
- libusb_close (handle);
|
||||
- return ret;
|
||||
-}
|
||||
-
|
||||
-/**
|
||||
- * up_device_csr_init:
|
||||
- **/
|
||||
-static void
|
||||
-up_device_csr_init (UpDeviceCsr *csr)
|
||||
-{
|
||||
- gint retval;
|
||||
- csr->priv = up_device_csr_get_instance_private (csr);
|
||||
-
|
||||
- csr->priv->raw_value = -1;
|
||||
- retval = libusb_init (&csr->priv->ctx);
|
||||
- if (retval < 0)
|
||||
- g_warning ("could not initialize libusb: %i", retval);
|
||||
-}
|
||||
-
|
||||
-/**
|
||||
- * up_device_csr_finalize:
|
||||
- **/
|
||||
-static void
|
||||
-up_device_csr_finalize (GObject *object)
|
||||
-{
|
||||
- UpDeviceCsr *csr;
|
||||
-
|
||||
- g_return_if_fail (object != NULL);
|
||||
- g_return_if_fail (UP_IS_DEVICE_CSR (object));
|
||||
-
|
||||
- csr = UP_DEVICE_CSR (object);
|
||||
- g_return_if_fail (csr->priv != NULL);
|
||||
-
|
||||
- if (csr->priv->ctx != NULL)
|
||||
- libusb_exit (csr->priv->ctx);
|
||||
- up_daemon_stop_poll (object);
|
||||
-
|
||||
- G_OBJECT_CLASS (up_device_csr_parent_class)->finalize (object);
|
||||
-}
|
||||
-
|
||||
-/**
|
||||
- * up_device_csr_class_init:
|
||||
- **/
|
||||
-static void
|
||||
-up_device_csr_class_init (UpDeviceCsrClass *klass)
|
||||
-{
|
||||
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
||||
- UpDeviceClass *device_class = UP_DEVICE_CLASS (klass);
|
||||
-
|
||||
- object_class->finalize = up_device_csr_finalize;
|
||||
- device_class->coldplug = up_device_csr_coldplug;
|
||||
- device_class->refresh = up_device_csr_refresh;
|
||||
-}
|
||||
-
|
||||
-/**
|
||||
- * up_device_csr_new:
|
||||
- **/
|
||||
-UpDeviceCsr *
|
||||
-up_device_csr_new (void)
|
||||
-{
|
||||
- return g_object_new (UP_TYPE_DEVICE_CSR, NULL);
|
||||
-}
|
||||
-
|
||||
diff --git a/src/linux/up-device-csr.h b/src/linux/up-device-csr.h
|
||||
deleted file mode 100644
|
||||
index 65e7f35..0000000
|
||||
--- a/src/linux/up-device-csr.h
|
||||
+++ /dev/null
|
||||
@@ -1,56 +0,0 @@
|
||||
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
|
||||
- *
|
||||
- * Copyright (C) 2008 David Zeuthen <davidz@redhat.com>
|
||||
- * Copyright (C) 2008 Richard Hughes <richard@hughsie.com>
|
||||
- *
|
||||
- * This program is free software; you can redistribute it and/or modify
|
||||
- * it under the terms of the GNU General Public License as published by
|
||||
- * the Free Software Foundation; either version 2 of the License, or
|
||||
- * (at your option) any later version.
|
||||
- *
|
||||
- * This program is distributed in the hope that it will be useful,
|
||||
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
- * GNU General Public License for more details.
|
||||
- *
|
||||
- * You should have received a copy of the GNU General Public License
|
||||
- * along with this program; if not, write to the Free Software
|
||||
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
- *
|
||||
- */
|
||||
-
|
||||
-#ifndef __UP_DEVICE_CSR_H__
|
||||
-#define __UP_DEVICE_CSR_H__
|
||||
-
|
||||
-#include <glib-object.h>
|
||||
-#include "up-device.h"
|
||||
-
|
||||
-G_BEGIN_DECLS
|
||||
-
|
||||
-#define UP_TYPE_DEVICE_CSR (up_device_csr_get_type ())
|
||||
-#define UP_DEVICE_CSR(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), UP_TYPE_DEVICE_CSR, UpDeviceCsr))
|
||||
-#define UP_DEVICE_CSR_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), UP_TYPE_DEVICE_CSR, UpDeviceCsrClass))
|
||||
-#define UP_IS_DEVICE_CSR(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), UP_TYPE_DEVICE_CSR))
|
||||
-#define UP_IS_DEVICE_CSR_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), UP_TYPE_DEVICE_CSR))
|
||||
-#define UP_DEVICE_CSR_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), UP_TYPE_DEVICE_CSR, UpDeviceCsrClass))
|
||||
-
|
||||
-typedef struct UpDeviceCsrPrivate UpDeviceCsrPrivate;
|
||||
-
|
||||
-typedef struct
|
||||
-{
|
||||
- UpDevice parent;
|
||||
- UpDeviceCsrPrivate *priv;
|
||||
-} UpDeviceCsr;
|
||||
-
|
||||
-typedef struct
|
||||
-{
|
||||
- UpDeviceClass parent_class;
|
||||
-} UpDeviceCsrClass;
|
||||
-
|
||||
-GType up_device_csr_get_type (void);
|
||||
-UpDeviceCsr *up_device_csr_new (void);
|
||||
-
|
||||
-G_END_DECLS
|
||||
-
|
||||
-#endif /* __UP_DEVICE_CSR_H__ */
|
||||
-
|
||||
--
|
||||
2.29.2
|
||||
|
||||
|
||||
From 64582256a8c75127c3de23f5542c8467e2e9484a Mon Sep 17 00:00:00 2001
|
||||
From: Bastien Nocera <hadess@hadess.net>
|
||||
Date: Tue, 19 Jan 2021 13:31:25 +0100
|
||||
Subject: [PATCH 2/2] build: Remove libusb dependency in Linux
|
||||
|
||||
As the last user, the CSR support code, was removed.
|
||||
---
|
||||
configure.ac | 1 -
|
||||
src/Makefile.am | 2 --
|
||||
src/linux/Makefile.am | 1 -
|
||||
3 files changed, 4 deletions(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 5f08d91..9db579f 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -199,7 +199,6 @@ AC_SUBST(BACKEND, "$with_backend")
|
||||
have_idevice=no
|
||||
if test x$with_backend = xlinux; then
|
||||
PKG_CHECK_MODULES(GUDEV, [gudev-1.0 >= 147])
|
||||
- PKG_CHECK_MODULES(USB, [libusb-1.0 >= 1.0.0])
|
||||
AC_ARG_WITH(idevice, AS_HELP_STRING([--without-idevice],[Build without libimobiledevice]),
|
||||
with_idevice=$withval,with_idevice=yes)
|
||||
LIBPLIST_DEP=libplist
|
||||
diff --git a/src/Makefile.am b/src/Makefile.am
|
||||
index 3400139..81f5566 100644
|
||||
--- a/src/Makefile.am
|
||||
+++ b/src/Makefile.am
|
||||
@@ -69,7 +69,6 @@ upowerd_CPPFLAGS = \
|
||||
|
||||
upowerd_LDADD = \
|
||||
-lm \
|
||||
- $(USB_LIBS) \
|
||||
$(GIO_LIBS) \
|
||||
$(GIO_UNIX_LIBS) \
|
||||
$(UPOWER_LIBS)
|
||||
@@ -94,7 +93,6 @@ endif
|
||||
if BACKEND_TYPE_LINUX
|
||||
upowerd_LDADD += \
|
||||
linux/libupshared.la \
|
||||
- $(USB_LIBS) \
|
||||
$(GUDEV_LIBS) \
|
||||
$(IDEVICE_LIBS) \
|
||||
$(NULL)
|
||||
diff --git a/src/linux/Makefile.am b/src/linux/Makefile.am
|
||||
index 82f60fd..5f3475d 100644
|
||||
--- a/src/linux/Makefile.am
|
||||
+++ b/src/linux/Makefile.am
|
||||
@@ -7,7 +7,6 @@ AM_CPPFLAGS = \
|
||||
-DG_LOG_DOMAIN=\"UPower-Linux\" \
|
||||
-DPACKAGE_SYSCONF_DIR=\""$(sysconfdir)"\" \
|
||||
-I$(top_srcdir)/libupower-glib \
|
||||
- $(USB_CFLAGS) \
|
||||
$(GIO_CFLAGS) \
|
||||
$(GIO_UNIX_CFLAGS) \
|
||||
$(GUDEV_CFLAGS) \
|
||||
--
|
||||
2.29.2
|
||||
|
14
upower.spec
14
upower.spec
@ -1,15 +1,11 @@
|
||||
%global commit 93cfe7c8d66ed486001c4f3f55399b7a
|
||||
Summary: Power Management Service
|
||||
Name: upower
|
||||
Version: 0.99.11
|
||||
Release: 11%{?dist}
|
||||
Version: 0.99.13
|
||||
Release: 1%{?dist}
|
||||
License: GPLv2+
|
||||
URL: http://upower.freedesktop.org/
|
||||
Source0: https://gitlab.freedesktop.org/upower/upower/uploads/%{commit}/%{name}-%{version}.tar.xz
|
||||
Source0: https://gitlab.freedesktop.org/upower/upower/uploads/177df5b9f9b76f25a2ad9da41aa0c1fa/upower-0.99.13.tar.xz
|
||||
|
||||
Patch0: 0001-linux-Add-support-for-iPhone-XR-XS-models.patch
|
||||
Patch1: 0001-build-Use-a-newer-libplist-if-available.patch
|
||||
Patch2: upower-no-usb-dep.patch
|
||||
|
||||
BuildRequires: make
|
||||
BuildRequires: sqlite-devel
|
||||
@ -127,6 +123,10 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.la
|
||||
%{_datadir}/gtk-doc/html/UPower/*
|
||||
|
||||
%changelog
|
||||
* Mon Aug 23 2021 Benjamin Berg <bberg@redhat.com> - 0.99.13-1
|
||||
- Update to 0.99.13
|
||||
Resolves: #1994639
|
||||
|
||||
* Tue Aug 10 2021 Mohan Boddu <mboddu@redhat.com> - 0.99.11-11
|
||||
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
|
||||
Related: rhbz#1991688
|
||||
|
Loading…
Reference in New Issue
Block a user