[virt-tools-list] [libosinfo 2/2] Add Udev support

Zeeshan Ali (Khattak) zeeshanak at gnome.org
Thu Sep 1 11:09:17 UTC 2011


On Thu, Sep 1, 2011 at 1:38 PM, Daniel P. Berrange <berrange at redhat.com> wrote:
> On Tue, Aug 30, 2011 at 09:30:16PM +0300, Zeeshan Ali (Khattak) wrote:
>> From: "Zeeshan Ali (Khattak)" <zeeshanak at gnome.org>
>>
>> If enabled, provide a udev rule to listen to insertion/removal of
>> ISO9660 media and sets some helpful (to apps) properties on the device
>> if media is bootable.
>> ---
>>  configure.ac            |    5 +++++
>>  data/95-osinfo.rules.in |   21 +++++++++++++++++++++
>>  data/Makefile.am        |   11 ++++++++++-
>>  libosinfo.spec.in       |    1 +
>>  4 files changed, 37 insertions(+), 1 deletions(-)
>>  create mode 100644 data/95-osinfo.rules.in
>>
>> diff --git a/configure.ac b/configure.ac
>> index 324c0a1..390e053 100644
>> --- a/configure.ac
>> +++ b/configure.ac
>> @@ -93,6 +93,11 @@ if test "x$enable_introspection" != "xno" ; then
>>  fi
>>  AM_CONDITIONAL([WITH_GOBJECT_INTROSPECTION], [test "x$enable_introspection" = "xyes"])
>>
>> +AC_ARG_ENABLE([udev],
>> +        AS_HELP_STRING([--enable-udev], [enable Udev support]),
>> +        [], [enable_udev=no])
>> +AM_CONDITIONAL([WITH_UDEV], [test "x$enable_udev" = "xyes"])
>> +
>>  AC_ARG_ENABLE([coverage],
>>          AS_HELP_STRING([--enable-coverage], [enable GCC code coverage]),
>>          [], [enable_coverage=no])
>> diff --git a/data/95-osinfo.rules.in b/data/95-osinfo.rules.in
>> new file mode 100644
>> index 0000000..0d5e5dd
>> --- /dev/null
>> +++ b/data/95-osinfo.rules.in
>> @@ -0,0 +1,21 @@
>> +# USB flash drives
>> +ACTION=="add|remove", \
>> + SUBSYSTEM=="block", \
>> + ENV{ID_FS_TYPE}=="iso9660", \
>> + IMPORT{program}="@bindir@/osinfo-detect -f env $tempnode"
>> +
>> +# CDROMs
>> +
>> +# Disk inserted
>> +ACTION=="change", \
>> + SUBSYSTEM=="block", \
>> + ENV{ID_FS_TYPE}=="iso9660", \
>> + IMPORT{program}="@bindir@/osinfo-detect -f env $tempnode"
>> +
>> +# Disk ejected
>> +ACTION=="change", \
>> + SUBSYSTEM=="block", \
>> + ENV{ID_FS_TYPE}!="iso9660", \
>> + OSINFO_BOOTABLE="", \
>> + OSINFO_INSTALLER=""
>> +
>> diff --git a/data/Makefile.am b/data/Makefile.am
>> index 657916a..566c611 100644
>> --- a/data/Makefile.am
>> +++ b/data/Makefile.am
>> @@ -1,11 +1,20 @@
>>
>>  SUBDIRS = devices oses hypervisors
>>
>> -EXTRA_DIST = usb.ids pci.ids
>> +EXTRA_DIST = usb.ids pci.ids 95-osinfo.rules.in
>>
>>  databasedir = $(pkgdatadir)/data/
>>  database_DATA = usb.ids pci.ids
>>
>> +if WITH_UDEV
>> +udevdir = /lib/udev/rules.d/
>> +udev_DATA = 95-osinfo.rules
>> +BUILT_SOURCES = 95-osinfo.rules
>> +
>> +95-osinfo.rules: 95-osinfo.rules.in
>> +     sed 's,\@bindir\@,$(exec_prefix)/bin,' 95-osinfo.rules.in > 95-osinfo.rules
>> +endif
>
> Can be simplified to
>
>     sed 's,\@bindir\@,$(exec_prefix)/bin,' $< > $@
>
>> diff --git a/libosinfo.spec.in b/libosinfo.spec.in
>> index 5d215ce..c91e897 100644
>> --- a/libosinfo.spec.in
>> +++ b/libosinfo.spec.in
>> @@ -28,6 +28,7 @@ BuildRequires: gobject-introspection-devel
>>  BuildRequires: gir-repository-devel
>>  %endif
>>  %endif
>> +Requires: udev
>
> We need to have a BuildRequires:  too, otherwise there's a (small)
> chance it won't be present when ./configure runs

  But there is no need for udev to be present at that (or any phase
during the build) phase. Even at runtime, the worse that will happen
is udev rule won't run on device insertion and we are not exactly
depending on that to happen.

-- 
Regards,

Zeeshan Ali (Khattak)
FSF member#5124




More information about the virt-tools-list mailing list