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

Daniel P. Berrange berrange at redhat.com
Thu Sep 1 10:38:53 UTC 2011


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


Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the virt-tools-list mailing list