diff -Nru libwacom-2.1.0/data/isdv4-5019.tablet libwacom-2.2.0/data/isdv4-5019.tablet --- libwacom-2.1.0/data/isdv4-5019.tablet 1970-01-01 00:00:00.000000000 +0000 +++ libwacom-2.2.0/data/isdv4-5019.tablet 2022-03-25 06:04:16.000000000 +0000 @@ -0,0 +1,22 @@ +# Fujitsu LIFEBOOK T935 +# Sensor Type: EMR +# Features: Touch (Integrated) +# HW Resolution: 29576 x 16724 (2540 x 2540 lpi) +# +# Autogenerated from sysinfo.hEgTzdfzP1 +# https://github.com/linuxwacom/wacom-hid-descriptors/issues/210#issue-1164063876 + +[Device] +Name=ISDv4 5019 +ModelName= +DeviceMatch=usb:056a:5019 +Class=ISDV4 +Width=12 +Height=7 +IntegratedIn=Display;System +Styli=0xfffff;0xffffe; + +[Features] +Stylus=true +Touch=true +Buttons=0 diff -Nru libwacom-2.1.0/data/isdv4-51d0.tablet libwacom-2.2.0/data/isdv4-51d0.tablet --- libwacom-2.1.0/data/isdv4-51d0.tablet 1970-01-01 00:00:00.000000000 +0000 +++ libwacom-2.2.0/data/isdv4-51d0.tablet 2022-03-25 06:04:16.000000000 +0000 @@ -0,0 +1,22 @@ +# Lenovo ThinkPad X1 Titanium Gen 1 +# Sensor Type: AES +# Features: Touch (Integrated), Tilt +# HW Resolution: 28493 x 18996 (2540 x 2540 lpi) +# +# Autogenerated from sysinfo.cMlxVzQx6k +# https://github.com/linuxwacom/wacom-hid-descriptors/issues/205#issue-1140341746 + +[Device] +Name=ISDv4 51d0 +ModelName= +DeviceMatch=usb:056a:51d0 +Class=ISDV4 +Width=11 +Height=7 +IntegratedIn=Display;System +Styli=@isdv4-aes; + +[Features] +Stylus=true +Touch=true +Buttons=0 diff -Nru libwacom-2.1.0/data/isdv4-5276.tablet libwacom-2.2.0/data/isdv4-5276.tablet --- libwacom-2.1.0/data/isdv4-5276.tablet 2022-02-11 05:01:46.000000000 +0000 +++ libwacom-2.2.0/data/isdv4-5276.tablet 2022-03-25 06:04:16.000000000 +0000 @@ -3,8 +3,8 @@ # Features: Touch (Integrated), Tilt # HW Resolution: 30159 x 18850 (2540 x 2540 lpi) # -# Autogenerated from sysinfo.gO13VjL2Ut -# From private bug report +# Autogenerated from sysinfo.hm61PxhoDt +# https://github.com/linuxwacom/wacom-hid-descriptors/issues/202#issue-1132947621 [Device] Name=ISDv4 5276 diff -Nru libwacom-2.1.0/data/wacom-one.tablet libwacom-2.2.0/data/wacom-one.tablet --- libwacom-2.1.0/data/wacom-one.tablet 2022-02-11 05:01:46.000000000 +0000 +++ libwacom-2.2.0/data/wacom-one.tablet 2022-03-25 06:04:16.000000000 +0000 @@ -6,7 +6,7 @@ Name=Wacom One Pen Display 13 ModelName=DTC133 Class=PenDisplay -DeviceMatch=usb:056a:03a6 +DeviceMatch=usb:056a:03a6;usb:056a:03bd Width=11 Height=6 # No pad buttons, so no layout diff -Nru libwacom-2.1.0/debian/changelog libwacom-2.2.0/debian/changelog --- libwacom-2.1.0/debian/changelog 2022-02-18 13:50:21.000000000 +0000 +++ libwacom-2.2.0/debian/changelog 2022-04-01 06:58:28.000000000 +0000 @@ -1,3 +1,9 @@ +libwacom (2.2.0-1) unstable; urgency=medium + + * New upstream release. + + -- Timo Aaltonen Fri, 01 Apr 2022 09:58:28 +0300 + libwacom (2.1.0-2) unstable; urgency=medium * rules: Bump test timeout. (Closes: #1005966) diff -Nru libwacom-2.1.0/.github/actions/meson/action.yml libwacom-2.2.0/.github/actions/meson/action.yml --- libwacom-2.1.0/.github/actions/meson/action.yml 2022-02-11 05:01:46.000000000 +0000 +++ libwacom-2.2.0/.github/actions/meson/action.yml 2022-03-25 06:04:16.000000000 +0000 @@ -32,7 +32,7 @@ - run: | ${{inputs.meson_precmd}} meson setup ${{inputs.builddir}} ${{inputs.srcdir}} ${{inputs.meson_args}} ${{inputs.meson_precmd}} meson configure ${{inputs.builddir}} - ${{inputs.ninja_precmd}} ninja -C ${{inputs.builddir}} ${{inputs.ninja_args}} + ${{inputs.ninja_precmd}} ninja --verbose -C ${{inputs.builddir}} ${{inputs.ninja_args}} if [[ -z "${{inputs.meson_skip_test}}" ]]; then ${{inputs.meson_precmd}} meson test -C ${{inputs.builddir}} --print-errorlogs ${{inputs.meson_test_args}}; fi diff -Nru libwacom-2.1.0/.github/workflows/main.yml libwacom-2.2.0/.github/workflows/main.yml --- libwacom-2.1.0/.github/workflows/main.yml 2022-02-11 05:01:46.000000000 +0000 +++ libwacom-2.2.0/.github/workflows/main.yml 2022-03-25 06:04:16.000000000 +0000 @@ -3,7 +3,7 @@ on: [ push, pull_request ] env: - CFLAGS: "-Werror -Wall -Wextra -Wno-error=sign-compare -Wno-error=unused-parameter -Wno-error=missing-field-initializers" + CFLAGS: "-Werror -Wno-error=missing-field-initializers" UBUNTU_PACKAGES: libgudev-1.0-dev libxml++2.6-dev valgrind tree python3-pip python3-setuptools libevdev2 PIP_PACKAGES: meson ninja libevdev pyudev pytest yq diff -Nru libwacom-2.1.0/libwacom/libwacom-database.c libwacom-2.2.0/libwacom/libwacom-database.c --- libwacom-2.1.0/libwacom/libwacom-database.c 2022-02-11 05:01:46.000000000 +0000 +++ libwacom-2.2.0/libwacom/libwacom-database.c 2022-03-25 06:04:16.000000000 +0000 @@ -181,7 +181,7 @@ } static WacomMatch * -libwacom_match_from_string(WacomDevice *device, const char *matchstr) +libwacom_match_from_string(const char *matchstr) { char *name = NULL; int vendor_id, product_id; @@ -678,8 +678,7 @@ guint i; guint nmatches = 0; for (i = 0; string_list[i]; i++) { - WacomMatch *m = libwacom_match_from_string(device, - string_list[i]); + WacomMatch *m = libwacom_match_from_string(string_list[i]); if (!m) { DBG("'%s' is an invalid DeviceMatch in '%s'\n", string_list[i], path); diff -Nru libwacom-2.1.0/meson.build libwacom-2.2.0/meson.build --- libwacom-2.1.0/meson.build 2022-02-11 05:01:46.000000000 +0000 +++ libwacom-2.2.0/meson.build 2022-03-25 06:04:16.000000000 +0000 @@ -1,5 +1,5 @@ project('libwacom', 'c', - version: '2.1.0', + version: '2.2.0', license: 'MIT/Expat', default_options: [ 'c_std=gnu99', 'warning_level=2' ], meson_version: '>= 0.51.0') @@ -7,9 +7,9 @@ dir_bin = get_option('prefix') / get_option('bindir') dir_data = get_option('prefix') / get_option('datadir') / 'libwacom' dir_etc = get_option('prefix') / get_option('sysconfdir') / 'libwacom' -dir_src = meson.source_root() / 'libwacom' -dir_src_data= meson.source_root() / 'data' -dir_test = meson.source_root() / 'test' +dir_src = meson.current_source_dir() / 'libwacom' +dir_src_data= meson.current_source_dir() / 'data' +dir_test = meson.current_source_dir() / 'test' dir_sys_udev= get_option('prefix') / 'lib' / 'udev' dir_udev = get_option('udev-dir') @@ -44,8 +44,8 @@ '-Wredundant-decls', '-Wincompatible-pointer-types', '-Wformat=2', + '-Wsign-compare', '-Wmissing-declarations', - '-fvisibility=hidden', ) add_project_arguments(cflags, language: 'c') @@ -97,6 +97,7 @@ '-DDATADIR="@0@"'.format(dir_data), '-DETCDIR="@0@"'.format(dir_etc), ], + gnu_symbol_visibility: 'hidden', install: true) dep_libwacom = declare_dependency(link_with: lib_libwacom) @@ -120,7 +121,7 @@ test('files-in-git', find_program('test/check-files-in-git.sh'), - args: [meson.source_root()], + args: [meson.current_source_dir()], suite: ['all']) # This is a generic pytest invocation. If we end up with more than one @@ -128,7 +129,7 @@ pytest = find_program('pytest-3', required: false) if pytest.found() test('pytests', pytest, - workdir: meson.source_root(), + workdir: meson.current_source_dir(), env: ['LIBWACOM_DATA_DIR=@0@'.format(dir_src_data)]) endif @@ -209,7 +210,7 @@ doc_config = configuration_data() doc_config.set('PACKAGE_NAME', meson.project_name()) doc_config.set('PACKAGE_VERSION', meson.project_version()) - doc_config.set('TOPSRCDIR', meson.source_root()) + doc_config.set('TOPSRCDIR', meson.current_source_dir()) doxyfile = configure_file(input: 'doc/doxygen.conf.in', output: 'doxygen.conf', @@ -227,7 +228,7 @@ dep_libxml = dependency('libxml-2.0', required : false) dep_dl = cc.find_library('dl') - tests_cflags = ['-DTOPSRCDIR="@0@"'.format(meson.source_root())] + tests_cflags = ['-DTOPSRCDIR="@0@"'.format(meson.current_source_dir())] test_load = executable('test-load', 'test/test-load.c', @@ -289,8 +290,8 @@ pytest = find_program('pytest-3', 'pytest') test('pytest', pytest, - args: [meson.source_root()], - env: ['MESON_SOURCE_ROOT=@0@'.format(meson.source_root())], + args: [meson.current_source_dir()], + env: ['MESON_SOURCE_ROOT=@0@'.format(meson.current_source_dir())], suite: ['all']) endif diff -Nru libwacom-2.1.0/NEWS libwacom-2.2.0/NEWS --- libwacom-2.1.0/NEWS 2022-02-11 05:01:46.000000000 +0000 +++ libwacom-2.2.0/NEWS 2022-03-25 06:04:16.000000000 +0000 @@ -1,3 +1,9 @@ +libwacom 2.2: +- New Devices: + - Lenovo X1 Yoga Gen6, X1 Titanium Gen1 + - Fujitsu Lifebook T935 + - Wacom One Pen Display 13 + libwacom 2.1: - New Devices: - Dell Latitude 5290 diff -Nru libwacom-2.1.0/test/test_data_files.py libwacom-2.2.0/test/test_data_files.py --- libwacom-2.1.0/test/test_data_files.py 2022-02-11 05:01:46.000000000 +0000 +++ libwacom-2.2.0/test/test_data_files.py 2022-03-25 06:04:16.000000000 +0000 @@ -69,3 +69,18 @@ except KeyError: pass + + +def test_button_evcodes(tabletfile): + config = configparser.ConfigParser(strict=True) + # Don't convert to lowercase + config.optionxform = lambda option: option + config.read(tabletfile) + + try: + nbuttons = int(config['Features']['Buttons']) + str = config['Buttons']['EvdevCodes'] + codes = [c for c in str.split(";") if c] # drop empty strings from trailing semicolons + assert len(codes) == nbuttons, "Number of buttons mismatches the EvdevCodes" + except KeyError: + pass diff -Nru libwacom-2.1.0/test/test-dbverify.c libwacom-2.2.0/test/test-dbverify.c --- libwacom-2.1.0/test/test-dbverify.c 2022-02-11 05:01:46.000000000 +0000 +++ libwacom-2.2.0/test/test-dbverify.c 2022-03-25 06:04:16.000000000 +0000 @@ -135,7 +135,7 @@ } static int -compare_databases(WacomDeviceDatabase *orig, WacomDeviceDatabase *new) +compare_databases(WacomDeviceDatabase *new) { int i, rc; WacomDevice **devs_new, **n; @@ -249,7 +249,7 @@ g_assert(db_new); db_old = db; - rc = compare_databases(db_old, db_new); + rc = compare_databases(db_new); libwacom_database_destroy(db_new); libwacom_database_destroy(db_old);