OSDN Git Service

Add more intelligent handling of the mke2fs.conf installation process
authorTheodore Ts'o <tytso@mit.edu>
Wed, 16 Jul 2008 17:39:32 +0000 (13:39 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Wed, 16 Jul 2008 19:07:56 +0000 (15:07 -0400)
For people who are compiling mke2fs for their own use outside of a
package manager, we need to make sure the system /etc/mke2fs.conf is
sufficiently up-to-date that it won't cause problems, but at the same
time we don't want to blow away any user-specific customizations.

So if /etc/mk2fs.conf exists, but does not mention ext4dev, we will
move it aside to /etc/mke2fs.conf.e2fsprogs-old and then install the
new mke2fs.conf.  If the /etc/mke2fs.conf file exists but does mention
ext4dev, we install the new mke2fs.conf file as
/etc/mke2fs.conf.e2fsprogs-new.  In both cases we print a warning
mesage to the user so they can manually update /etc/mke2fs.conf with
any changes if they so desire.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
misc/Makefile.in

index a8d1018..a81df8a 100644 (file)
@@ -343,7 +343,30 @@ install: all $(SMANPAGES) $(UMANPAGES) installdirs
                echo "  INSTALL_DATA $(man5dir)/$$i"; \
                $(INSTALL_DATA) $$i $(DESTDIR)$(man5dir)/$$i; \
        done
-       @if ! test -f $(DESTDIR)$(root_sysconfdir)/mke2fs.conf; then \
+       @if test -f $(DESTDIR)$(root_sysconfdir)/mke2fs.conf; then \
+               if cmp -s $(DESTDIR)$(root_sysconfdir)/mke2fs.conf \
+                       $(srcdir)/mke2fs.conf; then \
+                       true; \
+               else \
+                       if grep -q ext4dev $(DESTDIR)$(root_sysconfdir)/mke2fs.conf ; then \
+                               echo "  INSTALL_DATA $(root_sysconfdir)/mke2fs.conf.e2fsprogs-new"; \
+                               $(INSTALL_DATA) $(srcdir)/mke2fs.conf \
+                                       $(DESTDIR)$(root_sysconfdir)/mke2fs.conf.e2fsprogs-new; \
+                               echo "Warning: installing mke2fs.conf in $(DESTDIR)$(root_sysconfdir)/mke2fs.conf.e2fsprogs-new"; \
+                               echo "Check to see if you need to update your $(root_sysconfdir)/mke2fs.conf"; \
+                       else \
+                               echo "  INSTALL_DATA $(root_sysconfdir)/mke2fs.conf"; \
+                               mv $(DESTDIR)$(root_sysconfdir)/mke2fs.conf \
+                                  $(DESTDIR)$(root_sysconfdir)/mke2fs.conf.e2fsprogs-old; \
+                               $(INSTALL_DATA) $(srcdir)/mke2fs.conf \
+                                       $(DESTDIR)$(root_sysconfdir)/mke2fs.conf; \
+                               echo "Your mke2fs.conf is too old.  Backing up old version in"; \
+                               echo "$(DESTDIR)$(root_sysconfdir)/mke2fs.conf.e2fsprogs-old.  Please check to see"; \
+                               echo "if you have any local customizations that you wish to preserve."; \
+                       fi; \
+                       echo " "; \
+               fi; \
+       else \
                echo "  INSTALL_DATA $(root_sysconfdir)/mke2fs.conf"; \
                $(INSTALL_DATA) $(srcdir)/mke2fs.conf \
                        $(DESTDIR)$(root_sysconfdir)/mke2fs.conf; \