[virt-tools-list] [libosinfo 1/2] Create udev rules dir before installing rules file
Daniel P. Berrange
berrange at redhat.com
Fri Sep 16 08:55:51 UTC 2011
On Fri, Sep 16, 2011 at 08:46:25AM +0100, Richard W.M. Jones wrote:
> On Thu, Sep 15, 2011 at 06:07:03PM +0300, Zeeshan Ali (Khattak) wrote:
> > From: "Zeeshan Ali (Khattak)" <zeeshanak at gnome.org>
> >
> > ---
> > data/Makefile.am | 3 +++
> > 1 files changed, 3 insertions(+), 0 deletions(-)
> >
> > diff --git a/data/Makefile.am b/data/Makefile.am
> > index bd712d4..6fa12d4 100644
> > --- a/data/Makefile.am
> > +++ b/data/Makefile.am
> > @@ -16,6 +16,9 @@ BUILT_SOURCES = 95-osinfo.rules
> > # since it can easily fail (e.g if `make install` is run unprivileged) and its
> > # not a big deal if it does.
> > install-data-hook: 95-osinfo.rules
> > + -mkdir $(DESTDIR)/lib
> > + -mkdir $(DESTDIR)/lib/udev
> > + -mkdir $(DESTDIR)/lib/udev/rules.d
> > -cp 95-osinfo.rules $(DESTDIR)/lib/udev/rules.d/
>
> I would be writing:
>
> mkdir -p $(DESTDIR)/lib/udev/rules.d
> $(INSTALL) -m 0644 95-osinfo.rules $(DESTDIR)/lib/udev/rules.d/
> Also it's almost always a bad idea to use '-' to ignore errors,
> particularly so in this case.
>
> In fact I'd probably also define $(rulesdir), but I guess that's not
> so important here.
Actually we should define $(rulesdir), since that makes it easy to
override the location during make install. Since we can't install
into /lib/udev as non-root I think we need todo a little magic
work
udev_rulesdir = @udev_rulesdir@
mkdir -p $(DESTDIR)$(udev_rulesdir)
$(INSTALL) -m 0644 95-osinfo.rules $(DESTDIR)$(udev_rulesdir)
And in configure.ac we could add
AC_ARG_WITH([udev-rulesdir],
[AS_HELP_STRING([--with-udev-rulesdir],[UDev rules directory])],
[], [])
if test -z "$udev_rulesdir" ; then
if test "$prefix" = "/usr" ; then
udev_rulesdir=/lib/udev/rules.d
else
udev_rulesdir=$prefix/lib/udev/rules.d
fi
fi
AC_SUBST(udev_rulesdir)
This means that if someone does ./configure --prefix=/usr then they will
get the udev rules in the correct place, but if they do something like
./configure --prefix=/home/berrange/libosinfo, they will get the udev
rules in /home/berrange/libosinfo/lib/udev/rules.d, and they can also
use ./configure --with-udev-rulesdir=/some/where/else if they really
want to
Regards,
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