101 lines
5.5 KiB
Diff
101 lines
5.5 KiB
Diff
From 135a54725b28dc114d10291c179e817ee2701a66 Mon Sep 17 00:00:00 2001
|
|
From: Lennart Poettering <lennart@amutable.com>
|
|
Date: Tue, 3 Mar 2026 21:07:57 +0100
|
|
Subject: [PATCH] parse_hwdb: introduce local variable for boolean syntax
|
|
|
|
(cherry picked from commit 4dbb0cd0bf17a45aef21b70c9ddf8013d68c6a2d)
|
|
|
|
Related: RHEL-72703
|
|
---
|
|
hwdb.d/parse_hwdb.py | 47 ++++++++++++++++++++++----------------------
|
|
1 file changed, 24 insertions(+), 23 deletions(-)
|
|
|
|
diff --git a/hwdb.d/parse_hwdb.py b/hwdb.d/parse_hwdb.py
|
|
index 1a56f40c46..3c81fa371f 100755
|
|
--- a/hwdb.d/parse_hwdb.py
|
|
+++ b/hwdb.d/parse_hwdb.py
|
|
@@ -147,6 +147,7 @@ def property_grammar():
|
|
mount_matrix = Group(mount_matrix_row + ';' + mount_matrix_row + ';' + mount_matrix_row)('MOUNT_MATRIX')
|
|
xkb_setting = Optional(Word(alphanums + '+-/@._'))
|
|
id_input_setting = Optional(Or((Literal('0'), Literal('1'))))
|
|
+ zero_one = Or((Literal('0'), Literal('1')))
|
|
|
|
# Although this set doesn't cover all of characters in database entries, it's enough for test targets.
|
|
name_literal = Word(printables + ' ')
|
|
@@ -156,13 +157,13 @@ def property_grammar():
|
|
('MOUSE_WHEEL_CLICK_ANGLE_HORIZONTAL', INTEGER),
|
|
('MOUSE_WHEEL_CLICK_COUNT', INTEGER),
|
|
('MOUSE_WHEEL_CLICK_COUNT_HORIZONTAL', INTEGER),
|
|
- ('ID_INPUT_3D_MOUSE', Or((Literal('0'), Literal('1')))),
|
|
- ('ID_AUTOSUSPEND', Or((Literal('0'), Literal('1')))),
|
|
+ ('ID_INPUT_3D_MOUSE', zero_one),
|
|
+ ('ID_AUTOSUSPEND', zero_one),
|
|
('ID_AUTOSUSPEND_DELAY_MS', INTEGER),
|
|
- ('ID_AV_PRODUCTION_CONTROLLER', Or((Literal('0'), Literal('1')))),
|
|
- ('ID_AV_LIGHTS', Or((Literal('0'), Literal('1')))),
|
|
- ('ID_PERSIST', Or((Literal('0'), Literal('1')))),
|
|
- ('ID_PDA', Or((Literal('0'), Literal('1')))),
|
|
+ ('ID_AV_PRODUCTION_CONTROLLER', zero_one),
|
|
+ ('ID_AV_LIGHTS', zero_one),
|
|
+ ('ID_PERSIST', zero_one),
|
|
+ ('ID_PDA', zero_one),
|
|
('ID_INPUT', id_input_setting),
|
|
('ID_INPUT_ACCELEROMETER', id_input_setting),
|
|
('ID_INPUT_JOYSTICK', id_input_setting),
|
|
@@ -176,12 +177,12 @@ def property_grammar():
|
|
('ID_INPUT_TOUCHPAD', id_input_setting),
|
|
('ID_INPUT_TOUCHSCREEN', id_input_setting),
|
|
('ID_INPUT_TRACKBALL', id_input_setting),
|
|
- ('ID_SIGNAL_ANALYZER', Or((Literal('0'), Literal('1')))),
|
|
- ('ID_MAKER_TOOL', Or((Literal('0'), Literal('1')))),
|
|
- ('ID_HARDWARE_WALLET', Or((Literal('0'), Literal('1')))),
|
|
- ('ID_SOFTWARE_RADIO', Or((Literal('0'), Literal('1')))),
|
|
- ('ID_MM_DEVICE_IGNORE', Or((Literal('0'), Literal('1')))),
|
|
- ('ID_NET_AUTO_LINK_LOCAL_ONLY', Or((Literal('0'), Literal('1')))),
|
|
+ ('ID_SIGNAL_ANALYZER', zero_one),
|
|
+ ('ID_MAKER_TOOL', zero_one),
|
|
+ ('ID_HARDWARE_WALLET', zero_one),
|
|
+ ('ID_SOFTWARE_RADIO', zero_one),
|
|
+ ('ID_MM_DEVICE_IGNORE', zero_one),
|
|
+ ('ID_NET_AUTO_LINK_LOCAL_ONLY', zero_one),
|
|
('POINTINGSTICK_SENSITIVITY', INTEGER),
|
|
('ID_INTEGRATION', Or(('internal', 'external'))),
|
|
('ID_INPUT_TOUCHPAD_INTEGRATION', Or(('internal', 'external'))),
|
|
@@ -193,25 +194,25 @@ def property_grammar():
|
|
('ACCEL_MOUNT_MATRIX', mount_matrix),
|
|
('ACCEL_LOCATION', Or(('display', 'base'))),
|
|
('PROXIMITY_NEAR_LEVEL', INTEGER),
|
|
- ('IEEE1394_UNIT_FUNCTION_MIDI', Or((Literal('0'), Literal('1')))),
|
|
- ('IEEE1394_UNIT_FUNCTION_AUDIO', Or((Literal('0'), Literal('1')))),
|
|
- ('IEEE1394_UNIT_FUNCTION_VIDEO', Or((Literal('0'), Literal('1')))),
|
|
+ ('IEEE1394_UNIT_FUNCTION_MIDI', zero_one),
|
|
+ ('IEEE1394_UNIT_FUNCTION_AUDIO', zero_one),
|
|
+ ('IEEE1394_UNIT_FUNCTION_VIDEO', zero_one),
|
|
('ID_VENDOR_FROM_DATABASE', name_literal),
|
|
('ID_MODEL_FROM_DATABASE', name_literal),
|
|
('ID_TAG_MASTER_OF_SEAT', Literal('1')),
|
|
- ('ID_INFRARED_CAMERA', Or((Literal('0'), Literal('1')))),
|
|
+ ('ID_INFRARED_CAMERA', zero_one),
|
|
('ID_CAMERA_DIRECTION', Or(('front', 'rear'))),
|
|
('SOUND_FORM_FACTOR', Or(('internal', 'webcam', 'speaker', 'headphone', 'headset', 'handset', 'microphone'))),
|
|
- ('ID_SYS_VENDOR_IS_RUBBISH', Or((Literal('0'), Literal('1')))),
|
|
- ('ID_PRODUCT_NAME_IS_RUBBISH', Or((Literal('0'), Literal('1')))),
|
|
- ('ID_PRODUCT_VERSION_IS_RUBBISH', Or((Literal('0'), Literal('1')))),
|
|
- ('ID_BOARD_VERSION_IS_RUBBISH', Or((Literal('0'), Literal('1')))),
|
|
- ('ID_PRODUCT_SKU_IS_RUBBISH', Or((Literal('0'), Literal('1')))),
|
|
- ('ID_CHASSIS_ASSET_TAG_IS_RUBBISH', Or((Literal('0'), Literal('1')))),
|
|
+ ('ID_SYS_VENDOR_IS_RUBBISH', zero_one),
|
|
+ ('ID_PRODUCT_NAME_IS_RUBBISH', zero_one),
|
|
+ ('ID_PRODUCT_VERSION_IS_RUBBISH', zero_one),
|
|
+ ('ID_BOARD_VERSION_IS_RUBBISH', zero_one),
|
|
+ ('ID_PRODUCT_SKU_IS_RUBBISH', zero_one),
|
|
+ ('ID_CHASSIS_ASSET_TAG_IS_RUBBISH', zero_one),
|
|
('ID_CHASSIS', name_literal),
|
|
('ID_SYSFS_ATTRIBUTE_MODEL', name_literal),
|
|
('ID_NET_NAME_FROM_DATABASE', name_literal),
|
|
- ('ID_NET_NAME_INCLUDE_DOMAIN', Or((Literal('0'), Literal('1')))),
|
|
+ ('ID_NET_NAME_INCLUDE_DOMAIN', zero_one),
|
|
)
|
|
fixed_props = [Literal(name)('NAME') - Suppress('=') - val('VALUE')
|
|
for name, val in props]
|