make uninstall failed:

rmdir: failed to remove `/etc/sasl2/': Directory not empty

Fix this by following the conventions already present in
src/Makefile.am of installing with MKDIR_P, and cleaning up
any directory in a builtroot while allowing the directory to
still exist if non-empty in an installed system.

Reported by Dave Allan.

* tools/Makefile.am (install-sysconfig, install-initscript)
(install-systemd): Use MKDIR_P.
(uninstall-sysconfig, uninstall-initscript, uninstall-systemd):
Also remove directories.
* daemon/Makefile.am (install-data-local, install-data-polkit)
(install-logrotate, install-sysconfig, install-sysctl)
(install-init-redhat, install-init-upstart, install-init-systemd)
(install-data-sasl): Use MKDIR_P.
(uninstall-data-polkit, uninstall-sysconfig, uninstall-sysctl)
(uninstall-init-redhat, uninstall-init-upstart)
(uninstall-init-systemd): Also remove directory.
(uninstall-logrotate): New rule.
(uninstall-local): Add uninstall-logrotate.
(uninstall-data-sasl): Allow for non-empty directory.
---

Big enough that I will wait for review instead of using the
build-breaker rule.

 daemon/Makefile.am |   48 ++++++++++++++++++++++++++++++++----------------
 tools/Makefile.am  |   10 ++++++----
 2 files changed, 38 insertions(+), 20 deletions(-)

diff --git a/daemon/Makefile.am b/daemon/Makefile.am
index 22a9d38..73a6e1f 100644
--- a/daemon/Makefile.am
+++ b/daemon/Makefile.am
@@ -173,23 +173,24 @@ endif
 install-data-local: install-init-redhat install-init-systemd 
install-init-upstart \
                install-data-sasl install-data-polkit \
                install-logrotate install-sysctl
-       mkdir -p $(DESTDIR)$(localstatedir)/log/libvirt
-       mkdir -p $(DESTDIR)$(localstatedir)/run/libvirt
-       mkdir -p $(DESTDIR)$(localstatedir)/lib/libvirt
+       $(MKDIR_P) $(DESTDIR)$(localstatedir)/log/libvirt \
+                  $(DESTDIR)$(localstatedir)/run/libvirt \
+                  $(DESTDIR)$(localstatedir)/lib/libvirt

 uninstall-local:: uninstall-init-redhat uninstall-init-systemd 
uninstall-init-upstart \
                uninstall-data-sasl uninstall-data-polkit \
-               uninstall-sysctl
+               uninstall-logrotate uninstall-sysctl
        rmdir $(DESTDIR)$(localstatedir)/log/libvirt || :
        rmdir $(DESTDIR)$(localstatedir)/run/libvirt || :
        rmdir $(DESTDIR)$(localstatedir)/lib/libvirt || :

 if HAVE_POLKIT
 install-data-polkit::
-       mkdir -p $(DESTDIR)$(policydir)
+       $(MKDIR_P) $(DESTDIR)$(policydir)
        $(INSTALL_DATA) $(srcdir)/$(policyfile) 
$(DESTDIR)$(policydir)/org.libvirt.unix.policy
 uninstall-data-polkit::
        rm -f $(DESTDIR)$(policydir)/org.libvirt.unix.policy
+       rmdir $(DESTDIR)$(policydir) || :
 else
 install-data-polkit::
 uninstall-data-polkit::
@@ -228,41 +229,54 @@ libvirtd.uml.logrotate: libvirtd.uml.logrotate.in
            mv $@-t $@

 install-logrotate: $(LOGROTATE_CONFS)
-       mkdir -p $(DESTDIR)$(localstatedir)/log/libvirt/qemu/
-       mkdir -p $(DESTDIR)$(localstatedir)/log/libvirt/lxc/
-       mkdir -p $(DESTDIR)$(localstatedir)/log/libvirt/uml/
-       mkdir -p $(DESTDIR)$(sysconfdir)/logrotate.d/
+       $(MKDIR_P) $(DESTDIR)$(localstatedir)/log/libvirt/qemu/ \
+                  $(DESTDIR)$(localstatedir)/log/libvirt/lxc/ \
+                  $(DESTDIR)$(localstatedir)/log/libvirt/uml/ \
+                  $(DESTDIR)$(sysconfdir)/logrotate.d/
        $(INSTALL_DATA) libvirtd.logrotate 
$(DESTDIR)$(sysconfdir)/logrotate.d/libvirtd
        $(INSTALL_DATA) libvirtd.qemu.logrotate 
$(DESTDIR)$(sysconfdir)/logrotate.d/libvirtd.qemu
        $(INSTALL_DATA) libvirtd.lxc.logrotate 
$(DESTDIR)$(sysconfdir)/logrotate.d/libvirtd.lxc
        $(INSTALL_DATA) libvirtd.uml.logrotate 
$(DESTDIR)$(sysconfdir)/logrotate.d/libvirtd.uml

+uninstall-logrotate:
+       rm -f $(DESTDIR)$(sysconfdir)/logrotate.d/libvirtd \
+             $(DESTDIR)$(sysconfdir)/logrotate.d/libvirtd.qemu \
+             $(DESTDIR)$(sysconfdir)/logrotate.d/libvirtd.lxc \
+             $(DESTDIR)$(sysconfdir)/logrotate.d/libvirtd.uml
+       rmdir $(DESTDIR)$(localstatedir)/log/libvirt/qemu || :
+       rmdir $(DESTDIR)$(localstatedir)/log/libvirt/lxc || :
+       rmdir $(DESTDIR)$(localstatedir)/log/libvirt/uml || :
+       rmdir $(DESTDIR)$(sysconfdir)/logrotate.d || :
+
 install-sysconfig:
-       mkdir -p $(DESTDIR)$(sysconfdir)/sysconfig
+       $(MKDIR_P) $(DESTDIR)$(sysconfdir)/sysconfig
        $(INSTALL_DATA) $(srcdir)/libvirtd.sysconf \
          $(DESTDIR)$(sysconfdir)/sysconfig/libvirtd
 uninstall-sysconfig:
        rm -f $(DESTDIR)$(sysconfdir)/sysconfig/libvirtd
+       rmdir $(DESTDIR)$(sysconfdir)/sysconfig || :

 install-sysctl:
-       mkdir -p $(DESTDIR)$(sysconfdir)/sysctl.d
+       $(MKDIR_P) $(DESTDIR)$(sysconfdir)/sysctl.d
        $(INSTALL_DATA) $(srcdir)/libvirtd.sysctl \
          $(DESTDIR)$(sysconfdir)/sysctl.d/libvirtd

 uninstall-sysctl:
        rm -f $(DESTDIR)$(sysconfdir)/sysctl.d/libvirtd
+       rmdir $(DESTDIR)$(sysconfdir)/sysctl.d || :

 if LIBVIRT_INIT_SCRIPT_RED_HAT

 BUILT_SOURCES += libvirtd.init

 install-init-redhat: install-sysconfig libvirtd.init
-       mkdir -p $(DESTDIR)$(sysconfdir)/rc.d/init.d
+       $(MKDIR_P) $(DESTDIR)$(sysconfdir)/rc.d/init.d
        $(INSTALL_SCRIPT) libvirtd.init \
          $(DESTDIR)$(sysconfdir)/rc.d/init.d/libvirtd

 uninstall-init-redhat: uninstall-sysconfig
        rm -f $(DESTDIR)$(sysconfdir)/rc.d/init.d/libvirtd
+       rmdir $(DESTDIR)$(sysconfdir)/rc.d/init.d || :
 else
 install-init-redhat:
 uninstall-init-redhat:
@@ -272,12 +286,13 @@ endif # LIBVIRT_INIT_SCRIPT_RED_HAT
 if LIBVIRT_INIT_SCRIPT_UPSTART

 install-init-upstart: install-sysconfig
-       mkdir -p $(DESTDIR)$(sysconfdir)/event.d
+       $(MKDIR_P) $(DESTDIR)$(sysconfdir)/event.d
        $(INSTALL_SCRIPT) libvirtd.upstart \
          $(DESTDIR)$(sysconfdir)/event.d/libvirtd

 uninstall-init-upstart: uninstall-sysconfig
        rm -f $(DESTDIR)$(sysconfdir)/event.d/libvirtd
+       rmdir $(DESTDIR)$(sysconfdir)/event.d || :
 else
 install-init-upstart:
 uninstall-init-upstart:
@@ -291,12 +306,13 @@ SYSTEMD_UNIT_DIR = /lib/systemd/system
 BUILT_SOURCES += libvirtd.service

 install-init-systemd: install-sysconfig libvirtd.service
-       mkdir -p $(DESTDIR)$(SYSTEMD_UNIT_DIR)
+       $(MKDIR_P) $(DESTDIR)$(SYSTEMD_UNIT_DIR)
        $(INSTALL_SCRIPT) libvirtd.service \
          $(DESTDIR)$(SYSTEMD_UNIT_DIR)/libvirtd.service

 uninstall-init-systemd: uninstall-sysconfig
        rm -f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/libvirtd.service
+       rmdir $(DESTDIR)$(SYSTEMD_UNIT_DIR) || :
 else
 install-init-systemd:
 uninstall-init-systemd:
@@ -346,12 +362,12 @@ $(srcdir)/libvirtd.8.in: libvirtd.pod.in
 # the WITH_LIBVIRTD conditional
 if HAVE_SASL
 install-data-sasl:
-       mkdir -p $(DESTDIR)$(sysconfdir)/sasl2/
+       $(MKDIR_P) $(DESTDIR)$(sysconfdir)/sasl2/
        $(INSTALL_DATA) $(srcdir)/libvirtd.sasl 
$(DESTDIR)$(sysconfdir)/sasl2/libvirt.conf

 uninstall-data-sasl:
        rm -f $(DESTDIR)$(sysconfdir)/sasl2/libvirt.conf
-       rmdir $(DESTDIR)$(sysconfdir)/sasl2/
+       rmdir $(DESTDIR)$(sysconfdir)/sasl2/ || :
 else
 install-data-sasl:
 uninstall-data-sasl:
diff --git a/tools/Makefile.am b/tools/Makefile.am
index 25f0ffe..6705546 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -153,23 +153,24 @@ install-data-local: install-init install-systemd
 uninstall-local: uninstall-init uninstall-systemd

 install-sysconfig:
-       mkdir -p $(DESTDIR)$(sysconfdir)/sysconfig
+       $(MKDIR_P) $(DESTDIR)$(sysconfdir)/sysconfig
        $(INSTALL_DATA) $(srcdir)/libvirt-guests.sysconf \
          $(DESTDIR)$(sysconfdir)/sysconfig/libvirt-guests

 uninstall-sysconfig:
        rm -f $(DESTDIR)$(sysconfdir)/sysconfig/libvirt-guests
+       rmdir $(DESTDIR)$(sysconfdir)/sysconfig ||:

 EXTRA_DIST += libvirt-guests.init.sh

 install-initscript: libvirt-guests.init
-       mkdir -p $(DESTDIR)$(sysconfdir)/rc.d/init.d
+       $(MKDIR_P) $(DESTDIR)$(sysconfdir)/rc.d/init.d
        $(INSTALL_SCRIPT) libvirt-guests.init \
          $(DESTDIR)$(sysconfdir)/rc.d/init.d/libvirt-guests

 uninstall-initscript:
        rm -f $(DESTDIR)$(sysconfdir)/rc.d/init.d/libvirt-guests
-
+       rmdir $(DESTDIR)$(sysconfdir)/rc.d/init.d ||:


 if LIBVIRT_INIT_SCRIPT_RED_HAT
@@ -201,12 +202,13 @@ SYSTEMD_UNIT_DIR = /lib/systemd/system

 if LIBVIRT_INIT_SCRIPT_SYSTEMD
 install-systemd: libvirt-guests.service install-initscript install-sysconfig
-       mkdir -p $(DESTDIR)$(SYSTEMD_UNIT_DIR)
+       $(MKDIR_P) $(DESTDIR)$(SYSTEMD_UNIT_DIR)
        $(INSTALL_SCRIPT) libvirt-guests.service \
          $(DESTDIR)$(SYSTEMD_UNIT_DIR)/libvirt-guests.service

 uninstall-systemd: uninstall-initscript uninstall-sysconfig
        rm -f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/libvirt-guests.service
+       rmdir $(DESTDIR)$(SYSTEMD_UNIT_DIR) ||:

 BUILT_SOURCES += libvirt-guests.service

-- 
1.7.7.3

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to