From 64aeb747a464f1d636276c4582bee064086b182b Mon Sep 17 00:00:00 2001 From: "Mark D. Studebaker" Date: Tue, 23 Dec 2003 23:13:38 +0000 Subject: [PATCH] remove -o and -g args to install Date: Thu, 18 Dec 2003 22:42:36 +0100 From: Haakon Riiser To: sensors@Stimpy.netroedge.com Subject: lm_sensors 2.8.2 / DESTDIR / root The reason for this email is that I always try to avoid running Makefiles as root, even during 'make install'. Therefore, I always use the DESTDIR feature, when it's available. Until today, I always built i2c and lm_sensors by doing $ make $ make -i install DESTDIR=/foo $ cd /foo && su root && fix permissions/ownership && install The -i flag to make install is a kludge to avoid having to be root while installing to the DESTDIR, and it's only required because the files are installed with "-o root -g root". Using the -i flag is of course not a good idea, since more fatal errors can easily fly by undetected. Today, I upgraded to Linux 2.6.0, and tried a similar install procedure for lm_sensors, except that the make target is now "user" and the install target is "user_install". I now noticed that the DESTDIR variable is not used everywhere in "user_install", so I couldn't use the -i kludge anymore. Instead, I wrote a patch that removes the "-o root -g root" arguments to install everywhere, and I also tried to add DESTDIR to all files/directories installed. (The patch only applies to lm_sensors, not i2c, since only lm_sensors is required in Linux 2.6.0.) There's really no reason to say -o root -g root anyway, since if you do install directly with make install, you have to be logged in as root, and then the files will get the right ownership by default. Much of the point of installing to a temporary DESTDIR is that you don't have to be root, and that you can prepare the installation by hand. Fixing the ownership is trivial: chown -R root.root $DESTDIR git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@2189 7894878c-1315-0410-8ee3-d5d059ff63e0 --- Makefile | 5 ----- etc/Module.mk | 2 +- kernel/busses/Module.mk | 2 +- kernel/chips/Module.mk | 2 +- kernel/include/Module.mk | 2 +- lib/Module.mk | 8 ++++---- prog/detect/Module.mk | 4 ++-- prog/dump/Module.mk | 4 ++-- prog/eeprom/Module.mk | 2 +- prog/pwm/Module.mk | 2 +- prog/sensord/Module.mk | 4 ++-- prog/sensors/Module.mk | 6 +++--- prog/xeon/Module.mk | 2 +- 13 files changed, 20 insertions(+), 25 deletions(-) diff --git a/Makefile b/Makefile index 10298378..7778d524 100644 --- a/Makefile +++ b/Makefile @@ -121,11 +121,6 @@ LIBINCLUDEDIR := $(INCLUDEDIR)/sensors # manual pages will be installed. MANDIR := $(PREFIX)/man -# You should not need to change this. It defines the manual owner and group -# as which manual pages are installed. -MANOWN := root -MANGRP := root - MACHINE := $(shell uname -m) # Extra non-default programs to build; e.g., sensord diff --git a/etc/Module.mk b/etc/Module.mk index 76a7d648..389c30b4 100644 --- a/etc/Module.mk +++ b/etc/Module.mk @@ -29,7 +29,7 @@ ETCINSTALL := $(ETCDIR)/sensors.conf install-etc: $(MKDIR) $(DESTDIR)$(ETCDIR) if [ ! -e $(DESTDIR)$(ETCINSTALL) ] ; then \ - $(INSTALL) -o root -g root -m 644 $(ETCTARGET) $(DESTDIR)$(ETCINSTALL); \ + $(INSTALL) -m 644 $(ETCTARGET) $(DESTDIR)$(ETCINSTALL); \ fi user_install :: install-etc diff --git a/kernel/busses/Module.mk b/kernel/busses/Module.mk index 4f868b83..6093addb 100644 --- a/kernel/busses/Module.mk +++ b/kernel/busses/Module.mk @@ -105,7 +105,7 @@ all :: all-kernel-busses install-kernel-busses: all-kernel-busses if [ -n "$(KERNELBUSSESTARGETS)" ] ; then \ $(MKDIR) $(DESTDIR)$(MODPREF)/kernel/drivers/i2c/busses ; \ - $(INSTALL) -o root -g root -m 644 $(KERNELBUSSESTARGETS) $(DESTDIR)$(MODPREF)/kernel/drivers/i2c/busses ; \ + $(INSTALL) -m 644 $(KERNELBUSSESTARGETS) $(DESTDIR)$(MODPREF)/kernel/drivers/i2c/busses ; \ for i in $(KERNELBUSSESTARGETS) ; do \ $(RM) $(DESTDIR)$(MODPREF)/misc/`basename $$i` $(DESTDIR)$(MODPREF)/kernel/drivers/i2c/`basename $$i` \ $(DESTDIR)$(MODPREF)/kernel/drivers/i2c/`basename $$i`.gz $(DESTDIR)$(MODPREF)/kernel/drivers/i2c/busses/`basename $$i`.gz ; \ diff --git a/kernel/chips/Module.mk b/kernel/chips/Module.mk index ff11d0f1..8d06a37f 100644 --- a/kernel/chips/Module.mk +++ b/kernel/chips/Module.mk @@ -160,7 +160,7 @@ all :: all-kernel-chips install-kernel-chips: all-kernel-chips if [ -n "$(KERNELCHIPSTARGETS)" ] ; then \ $(MKDIR) $(DESTDIR)$(MODPREF)/kernel/drivers/i2c/chips ; \ - $(INSTALL) -o root -g root -m 644 $(KERNELCHIPSTARGETS) $(DESTDIR)$(MODPREF)/kernel/drivers/i2c/chips ; \ + $(INSTALL) -m 644 $(KERNELCHIPSTARGETS) $(DESTDIR)$(MODPREF)/kernel/drivers/i2c/chips ; \ for i in $(KERNELCHIPSTARGETS) ; do \ $(RM) $(DESTDIR)$(MODPREF)/misc/`basename $$i` $(DESTDIR)$(MODPREF)/kernel/drivers/sensors/`basename $$i` \ $(DESTDIR)$(MODPREF)/kernel/drivers/sensors/`basename $$i`.gz $(DESTDIR)$(MODPREF)/kernel/drivers/chips/`basename $$i`.gz ; \ diff --git a/kernel/include/Module.mk b/kernel/include/Module.mk index f5984890..a7e701c9 100644 --- a/kernel/include/Module.mk +++ b/kernel/include/Module.mk @@ -39,7 +39,7 @@ INCLUDEFILES += $(MODULE_DIR)/sensors.hd install-all-kernel-include: if [ -n "$(KERNELINCLUDEFILES)" ] ; then \ $(MKDIR) $(DESTDIR)$(SYSINCLUDEDIR) ; \ - $(INSTALL) -o root -g root -m 644 $(KERNELINCLUDEFILES) $(DESTDIR)$(SYSINCLUDEDIR) ; \ + $(INSTALL) -m 644 $(KERNELINCLUDEFILES) $(DESTDIR)$(SYSINCLUDEDIR) ; \ fi user_install :: install-all-kernel-include diff --git a/lib/Module.mk b/lib/Module.mk index 30da5dd9..980b4f29 100644 --- a/lib/Module.mk +++ b/lib/Module.mk @@ -110,7 +110,7 @@ install-lib: all-lib echo ' Run the following command: /sbin/ldconfig' ; \ echo '******************************************************************************' ; \ fi - $(INSTALL) -o root -g root -m 644 $(LIBTARGETS) $(DESTDIR)$(LIBDIR) + $(INSTALL) -m 644 $(LIBTARGETS) $(DESTDIR)$(LIBDIR) $(LN) $(LIBSHLIBNAME) $(DESTDIR)$(LIBDIR)/$(LIBSHSONAME) $(LN) $(LIBSHSONAME) $(DESTDIR)$(LIBDIR)/$(LIBSHBASENAME) @if [ "$(DESTDIR)$(LIBDIR)" != "/usr/lib" -a "$(DESTDIR)$(LIBDIR)" != "/lib" ] ; then \ @@ -132,9 +132,9 @@ install-lib: all-lib echo ' Add it and run /sbin/ldconfig for the userspace tools to work.' ; \ echo '******************************************************************************' ) ; \ fi - $(INSTALL) -o root -g root -m 644 $(LIBHEADERFILES) $(DESTDIR)$(LIBINCLUDEDIR) - $(INSTALL) -o $(MANOWN) -g $(MANGRP) -m 644 $(LIBMAN3FILES) $(DESTDIR)$(LIBMAN3DIR) - $(INSTALL) -o $(MANOWN) -g $(MANGRP) -m 644 $(LIBMAN5FILES) $(DESTDIR)$(LIBMAN5DIR) + $(INSTALL) -m 644 $(LIBHEADERFILES) $(DESTDIR)$(LIBINCLUDEDIR) + $(INSTALL) -m 644 $(LIBMAN3FILES) $(DESTDIR)$(LIBMAN3DIR) + $(INSTALL) -m 644 $(LIBMAN5FILES) $(DESTDIR)$(LIBMAN5DIR) user_install :: install-lib diff --git a/prog/detect/Module.mk b/prog/detect/Module.mk index c3886587..f465e90b 100644 --- a/prog/detect/Module.mk +++ b/prog/detect/Module.mk @@ -39,8 +39,8 @@ $(MODULE_DIR)/i2cdetect: $(MODULE_DIR)/i2cdetect.ro prog/dump/i2cbusses.ro $(CC) $(EXLDFLAGS) -o $@ $^ install-prog-detect: all-prog-detect - mkdir -p $(DESTDIR)$(SBINDIR) - $(INSTALL) -o root -g root -m 755 $(PROGDETECTSBININSTALL) $(DESTDIR)$(SBINDIR) + $(MKDIR) $(DESTDIR)$(SBINDIR) + $(INSTALL) -m 755 $(PROGDETECTSBININSTALL) $(DESTDIR)$(SBINDIR) user_install :: install-prog-detect clean-prog-detect: diff --git a/prog/dump/Module.mk b/prog/dump/Module.mk index 0d5a7423..ae1260de 100644 --- a/prog/dump/Module.mk +++ b/prog/dump/Module.mk @@ -44,8 +44,8 @@ $(MODULE_DIR)/i2cset: $(MODULE_DIR)/i2cset.ro $(MODULE_DIR)/i2cbusses.ro $(CC) $(EXLDFLAGS) -o $@ $^ install-prog-dump: all-prog-dump - mkdir -p $(DESTDIR)$(SBINDIR) - $(INSTALL) -o root -g root -m 755 $(PROGDUMPBININSTALL) $(DESTDIR)$(SBINDIR) + $(MKDIR) $(DESTDIR)$(SBINDIR) + $(INSTALL) -m 755 $(PROGDUMPBININSTALL) $(DESTDIR)$(SBINDIR) user_install :: install-prog-dump clean-prog-dump: diff --git a/prog/eeprom/Module.mk b/prog/eeprom/Module.mk index 79f1a4a2..954a1a49 100644 --- a/prog/eeprom/Module.mk +++ b/prog/eeprom/Module.mk @@ -24,7 +24,7 @@ PROGEEPROMTARGETS := $(MODULE_DIR)/decode-dimms.pl \ install-prog-eeprom: $(PROGEEPROMTARGETS) $(MKDIR) $(DESTDIR)$(BINDIR) - $(INSTALL) -o root -g root -m 755 $(PROGEEPROMTARGETS) $(DESTDIR)$(BINDIR) + $(INSTALL) -m 755 $(PROGEEPROMTARGETS) $(DESTDIR)$(BINDIR) user_install :: install-prog-eeprom diff --git a/prog/pwm/Module.mk b/prog/pwm/Module.mk index 69c96858..5061d3e4 100644 --- a/prog/pwm/Module.mk +++ b/prog/pwm/Module.mk @@ -23,7 +23,7 @@ PROGPWMTARGETS := $(MODULE_DIR)/fancontrol \ install-prog-pwm: $(PROGPWMTARGETS) $(MKDIR) $(DESTDIR)$(SBINDIR) - $(INSTALL) -o root -g root -m 755 $(PROGPWMTARGETS) $(DESTDIR)$(SBINDIR) + $(INSTALL) -m 755 $(PROGPWMTARGETS) $(DESTDIR)$(SBINDIR) user_install :: install-prog-pwm diff --git a/prog/sensord/Module.mk b/prog/sensord/Module.mk index ea5a1814..b1e848ca 100644 --- a/prog/sensord/Module.mk +++ b/prog/sensord/Module.mk @@ -45,8 +45,8 @@ user :: all-prog-sensord install-prog-sensord: all-prog-sensord $(MKDIR) $(DESTDIR)$(SBINDIR) $(DESTDIR)$(PROGSENSORDMAN1DIR) - $(INSTALL) -o root -g root -m 755 $(PROGSENSORDTARGETS) $(DESTDIR)$(SBINDIR) - $(INSTALL) -o $(MANOWN) -g $(MANGRP) -m 644 $(PROGSENSORDMAN1FILES) $(DESTDIR)$(PROGSENSORDMAN1DIR) + $(INSTALL) -m 755 $(PROGSENSORDTARGETS) $(DESTDIR)$(SBINDIR) + $(INSTALL) -m 644 $(PROGSENSORDMAN1FILES) $(DESTDIR)$(PROGSENSORDMAN1DIR) user_install :: install-prog-sensord clean-prog-sensord: diff --git a/prog/sensors/Module.mk b/prog/sensors/Module.mk index 6e0d247d..b811ff73 100644 --- a/prog/sensors/Module.mk +++ b/prog/sensors/Module.mk @@ -40,9 +40,9 @@ all-prog-sensors: $(PROGSENSORSTARGETS) user :: all-prog-sensors install-prog-sensors: all-prog-sensors - mkdir -p $(DESTDIR)$(BINDIR) $(DESTDIR)$(PROGSENSORSMAN1DIR) - $(INSTALL) -o root -g root -m 755 $(PROGSENSORSTARGETS) $(DESTDIR)$(BINDIR) - $(INSTALL) -o $(MANOWN) -g $(MANGRP) -m 644 $(PROGSENSORSMAN1FILES) $(DESTDIR)$(PROGSENSORSMAN1DIR) + $(MKDIR) $(DESTDIR)$(BINDIR) $(DESTDIR)$(PROGSENSORSMAN1DIR) + $(INSTALL) -m 755 $(PROGSENSORSTARGETS) $(DESTDIR)$(BINDIR) + $(INSTALL) -m 644 $(PROGSENSORSMAN1FILES) $(DESTDIR)$(PROGSENSORSMAN1DIR) user_install :: install-prog-sensors clean-prog-sensors: diff --git a/prog/xeon/Module.mk b/prog/xeon/Module.mk index 87410073..2f66aecc 100644 --- a/prog/xeon/Module.mk +++ b/prog/xeon/Module.mk @@ -22,7 +22,7 @@ PROGXEONTARGETS := $(MODULE_DIR)/decode-xeon.pl install-prog-xeon: $(PROGXEONTARGETS) $(MKDIR) $(DESTDIR)$(BINDIR) - $(INSTALL) -o root -g root -m 755 $(PROGXEONTARGETS) $(DESTDIR)$(BINDIR) + $(INSTALL) -m 755 $(PROGXEONTARGETS) $(DESTDIR)$(BINDIR) user_install :: install-prog-xeon