Generate a hwdb instead of udev rules
We only use the rules/hwdb to enable auto-suspend. So, instead of shipping our own rules, we can just use the existing autosuspend rules and ship a hwdb that sets the appropriate flag. Closes: #336
This commit is contained in:
parent
16095a21fd
commit
55a2bb5536
5 changed files with 20 additions and 17 deletions
|
@ -147,17 +147,20 @@ print_driver (const FpDeviceClass *cls)
|
||||||
g_hash_table_insert (printed, key, (void *) cls->id);
|
g_hash_table_insert (printed, key, (void *) cls->id);
|
||||||
|
|
||||||
if (num_printed == 0)
|
if (num_printed == 0)
|
||||||
g_print ("# %s\n", cls->full_name);
|
{
|
||||||
|
if (cls != &whitelist)
|
||||||
|
g_print ("\n# Supported by libfprint driver %s\n", cls->id);
|
||||||
|
else
|
||||||
|
g_print ("\n# Known unsupported devices\n");
|
||||||
|
}
|
||||||
|
|
||||||
g_print ("SUBSYSTEM==\"usb\", ATTRS{idVendor}==\"%04x\", ATTRS{idProduct}==\"%04x\", ATTRS{dev}==\"*\", TEST==\"power/control\", ATTR{power/control}=\"auto\"\n",
|
g_print ("usb:v%04Xp%04X*\n",
|
||||||
entry->vid, entry->pid);
|
entry->vid, entry->pid);
|
||||||
g_print ("SUBSYSTEM==\"usb\", ATTRS{idVendor}==\"%04x\", ATTRS{idProduct}==\"%04x\", ENV{LIBFPRINT_DRIVER}=\"%s\"\n",
|
|
||||||
entry->vid, entry->pid, cls->full_name);
|
|
||||||
num_printed++;
|
num_printed++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (num_printed > 0)
|
if (num_printed > 0)
|
||||||
g_print ("\n");
|
g_print (" ID_AUTOSUSPEND=1\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
|
@ -295,19 +295,19 @@ libfprint_private_dep = declare_dependency(
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
udev_rules = executable('fprint-list-udev-rules',
|
udev_hwdb = executable('fprint-list-udev-hwdb',
|
||||||
'fprint-list-udev-rules.c',
|
'fprint-list-udev-hwdb.c',
|
||||||
dependencies: libfprint_private_dep,
|
dependencies: libfprint_private_dep,
|
||||||
link_with: libfprint_drivers,
|
link_with: libfprint_drivers,
|
||||||
install: false)
|
install: false)
|
||||||
|
|
||||||
if get_option('udev_rules')
|
if get_option('udev_rules')
|
||||||
custom_target('udev-rules',
|
custom_target('udev-rules',
|
||||||
output: '60-@0@-autosuspend.rules'.format(versioned_libname),
|
output: '60-autosuspend-@0@.hwdb'.format(versioned_libname),
|
||||||
capture: true,
|
capture: true,
|
||||||
command: [ udev_rules ],
|
command: [ udev_hwdb ],
|
||||||
install: true,
|
install: true,
|
||||||
install_dir: udev_rules_dir)
|
install_dir: udev_hwdb_dir)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
supported_devices = executable('fprint-list-supported-devices',
|
supported_devices = executable('fprint-list-supported-devices',
|
||||||
|
|
|
@ -175,11 +175,11 @@ drivers_type_func += '}'
|
||||||
root_inc = include_directories('.')
|
root_inc = include_directories('.')
|
||||||
|
|
||||||
if get_option('udev_rules')
|
if get_option('udev_rules')
|
||||||
udev_rules_dir = get_option('udev_rules_dir')
|
udev_hwdb_dir = get_option('udev_hwdb_dir')
|
||||||
|
|
||||||
if udev_rules_dir == 'auto'
|
if udev_hwdb_dir == 'auto'
|
||||||
udev_dep = dependency('udev')
|
udev_dep = dependency('udev')
|
||||||
udev_rules_dir = udev_dep.get_pkgconfig_variable('udevdir') + '/rules.d'
|
udev_hwdb_dir = udev_dep.get_pkgconfig_variable('udevdir') + '/hwdb.d'
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
|
@ -10,8 +10,8 @@ option('udev_rules',
|
||||||
description: 'Whether to create a udev rules file',
|
description: 'Whether to create a udev rules file',
|
||||||
type: 'boolean',
|
type: 'boolean',
|
||||||
value: true)
|
value: true)
|
||||||
option('udev_rules_dir',
|
option('udev_hwdb_dir',
|
||||||
description: 'Installation path for udev rules',
|
description: 'Installation path for udev hwdb',
|
||||||
type: 'string',
|
type: 'string',
|
||||||
value: 'auto')
|
value: 'auto')
|
||||||
option('gtk-examples',
|
option('gtk-examples',
|
||||||
|
|
|
@ -169,8 +169,8 @@ foreach test_name: unit_tests
|
||||||
endforeach
|
endforeach
|
||||||
|
|
||||||
# Run udev rule generator with fatal warnings
|
# Run udev rule generator with fatal warnings
|
||||||
test('udev-rules',
|
test('udev-hwdb',
|
||||||
udev_rules,
|
udev_hwdb,
|
||||||
env: envs)
|
env: envs)
|
||||||
|
|
||||||
gdb = find_program('gdb', required: false)
|
gdb = find_program('gdb', required: false)
|
||||||
|
|
Loading…
Reference in a new issue