Skip to content
Snippets Groups Projects
Commit 3a5ea67e authored by Leo's avatar Leo
Browse files

community/libwacom: upgrade to 0.33

parent 090a4212
No related branches found
No related tags found
No related merge requests found
# Contributor: Ivan Tham <pickfire@riseup.net>
# Maintainer: Ivan Tham <pickfire@riseup.net>
pkgname=libwacom
pkgver=0.32
pkgver=0.33
pkgrel=0
pkgdesc="Library to help implement Wacom tablet settings"
url="https://github.com/linuxwacom/libwacom/wiki"
arch="all"
license="MIT"
depends=""
makedepends="libgudev-dev libxml2-dev glib-dev"
checkdepends="bash findutils"
install=""
subpackages="$pkgname-dev $pkgname-doc"
source="https://github.com/linuxwacom/libwacom/releases/download/$pkgname-$pkgver/$pkgname-$pkgver.tar.bz2"
builddir="$srcdir"/$pkgname-$pkgver
source="https://github.com/linuxwacom/libwacom/releases/download/libwacom-$pkgver/libwacom-$pkgver.tar.bz2
fix-parsing-of-matching-strings-when-using-musl.patch
"
build() {
cd "$builddir"
./configure --prefix=/usr --disable-static
make
}
check() {
cd "$builddir"
make check
}
package() {
cd "$builddir"
make DESTDIR="$pkgdir" install
install -dm755 "$pkgdir"/usr/lib/udev/rules.d/
tools/generate-udev-rules
> "$pkgdir"/usr/lib/udev/rules.d/65-libwacom.rules
}
sha512sums="d7001bb355d4b269e61bf95f0b71621088e76d6894a4a1d002b6a0904a20dd75e0b4fb85368fd20ccafbbfbb1c7ff17150a39962554c8f27f9fcad48c397125b libwacom-0.32.tar.bz2"
sha512sums="de4d9cf3b5f4d87a159ba8ee617bafce9d13b67dc23d9dc67efd57317b0df2079dd0de328bc800de47f14ee49ea82bb842e34297cef23ba336c1ddca3afa826d libwacom-0.33.tar.bz2
5f3f87e21b94ece374e994f1daafc911baf7efa1dfad9e2ef41d86a9422a0d778525fffde775235aa8f8ea8d12e3d7130caf1981353a990784af9b0c0ddf8aa1 fix-parsing-of-matching-strings-when-using-musl.patch"
From ef7229064e88dfea3889c7d6cba80c1edc70470b Mon Sep 17 00:00:00 2001
From: Jason Gerecke <jason.gerecke@wacom.com>
Date: Wed, 17 Jul 2019 10:55:08 -0700
Subject: [PATCH] Fix parsing of match strings when using musl
Several tests fail when running on a system with the musl libc library
with the error "Duplicate match of 'usb:256c:006e' on device 'Huion H420'".
The root cause appears to be musl's handling of '%63c' in our format string.
Specifically, unlike glibc which interprets this to mean "read up to 63
characters", musl interprets it as "read exactly 63 characters".
This commit tweaks our format string to extract the first three required
fields and probe (with ':%n') to see if more data follows. In such a case
we can directly strdup the remainder of the string.
Ref: https://github.com/linuxwacom/libwacom/issues/85
Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
---
libwacom/libwacom-database.c | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/libwacom/libwacom-database.c b/libwacom/libwacom-database.c
index 61572ec..c34a4f6 100644
--- a/libwacom/libwacom-database.c
+++ b/libwacom/libwacom-database.c
@@ -147,14 +147,13 @@ make_match_string (const char *name, WacomBusType bus, int vendor_id, int produc
static gboolean
match_from_string(const char *str, WacomBusType *bus, int *vendor_id, int *product_id, char **name)
{
- int rc = 1;
- char busstr[64], namestr[64];
+ int rc = 1, len = 0;
+ char busstr[64];
- memset(namestr, 0, sizeof(namestr));
-
- rc = sscanf(str, "%63[^:]:%x:%x:%63c", busstr, vendor_id, product_id, namestr);
- if (rc == 4) {
- *name = g_strdup(namestr);
+ rc = sscanf(str, "%63[^:]:%x:%x:%n", busstr, vendor_id, product_id, &len);
+ if (len > 0) {
+ /* Grumble grumble scanf handling of %n */
+ *name = g_strdup(str+len);
} else if (rc == 3) {
*name = NULL;
} else {
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment