diff options
author | Julian Andres Klode <jak@debian.org> | 2017-09-09 20:36:04 +0200 |
---|---|---|
committer | Julian Andres Klode <jak@debian.org> | 2017-09-09 21:07:31 +0200 |
commit | 96b4580561cd2a8d1467143d67d2a612f0ddc75a (patch) | |
tree | f5b66586835dbf895ac63fa606f4303ffc135d7c /apt-pkg/cdrom.h | |
parent | 8d23827be3043daf7fed1b86da1d41578889eaeb (diff) |
Directly link against libudev on Linux systems
We previously dlopen()ed it, but it seems painful to do that
without any real gain, except for possibly not having libudev
in the address space and not having code #ifdefed for Linux.
The latter means that we are a bit more likely to break stuff
for non-Linux systems now if we play with udev, but at least
we don't end up with it silently breaking because of a libudev
ABI break.
The existing function pointers in the struct were renamed and
kept for compat purposes.
Fixes Debian/apt#48
Also adjust prepare-release to strip [linux-any] from build-depends
for travis.
Diffstat (limited to 'apt-pkg/cdrom.h')
-rw-r--r-- | apt-pkg/cdrom.h | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/apt-pkg/cdrom.h b/apt-pkg/cdrom.h index 7425c09c1..6bc2b34f9 100644 --- a/apt-pkg/cdrom.h +++ b/apt-pkg/cdrom.h @@ -99,22 +99,23 @@ struct CdromDevice /*{{{*/ class pkgUdevCdromDevices /*{{{*/ { void * const d; + protected: - // libudev dlopen structure - void *libudev_handle; - struct udev* (*udev_new)(void); - int (*udev_enumerate_add_match_property)(struct udev_enumerate *udev_enumerate, const char *property, const char *value); - int (*udev_enumerate_scan_devices)(struct udev_enumerate *udev_enumerate); - struct udev_list_entry* (*udev_enumerate_get_list_entry)(struct udev_enumerate *udev_enumerate); - struct udev_device* (*udev_device_new_from_syspath)(struct udev *udev, const char *syspath); - struct udev* (*udev_enumerate_get_udev)(struct udev_enumerate *udev_enumerate); - const char* (*udev_list_entry_get_name)(struct udev_list_entry *list_entry); - const char* (*udev_device_get_devnode)(struct udev_device *udev_device); - struct udev_enumerate *(*udev_enumerate_new) (struct udev *udev); - struct udev_list_entry *(*udev_list_entry_get_next)(struct udev_list_entry *list_entry); - const char* (*udev_device_get_property_value)(struct udev_device *udev_device, const char *key); - int (*udev_enumerate_add_match_sysattr)(struct udev_enumerate *udev_enumerate, const char *property, const char *value); - // end libudev dlopen + // old libudev dlopen structure, not used anymore, but can't break ABI + void *_padding; + struct _padding *(*_padding__new)(void); + int (*_padding__enumerate_add_match_property)(struct _padding_enumerate *_padding_enumerate, const char *property, const char *value); + int (*_padding__enumerate_scan_devices)(struct _padding_enumerate *_padding_enumerate); + struct _padding_list_entry *(*_padding__enumerate_get_list_entry)(struct _padding_enumerate *_padding_enumerate); + struct _padding_device *(*_padding__device_new_from_syspath)(struct _padding *_padding, const char *syspath); + struct _padding *(*_padding__enumerate_get__padding)(struct _padding_enumerate *_padding_enumerate); + const char *(*_padding__list_entry_get_name)(struct _padding_list_entry *list_entry); + const char *(*_padding__device_get_devnode)(struct _padding_device *_padding_device); + struct _padding_enumerate *(*_padding__enumerate_new)(struct _padding *_padding); + struct _padding_list_entry *(*_padding__list_entry_get_next)(struct _padding_list_entry *list_entry); + const char *(*_padding__device_get_property_value)(struct _padding_device *_padding_device, const char *key); + int (*_padding__enumerate_add_match_sysattr)(struct _padding_enumerate *_padding_enumerate, const char *property, const char *value); + // end lib_padding dlopen public: pkgUdevCdromDevices(); |