From 26baf6bcc0b5db47b8cf5c55eece0614712b5180 Mon Sep 17 00:00:00 2001 From: hal9 Date: Fri, 11 Oct 2002 02:28:05 +0000 Subject: [PATCH] This is more on make install/uninstall, and should settle all outstanding issues. Install needs a non-root user, preferably user=privoxy. This is mostly the work of higuita (David Liete). Thanks. Needs testing, and maybe a few small loose ends, but should do a reasonable job otherwise. I also changed all == to = in the relevant sections only per Brian's win32 report. --- GNUmakefile.in | 77 +++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 60 insertions(+), 17 deletions(-) diff --git a/GNUmakefile.in b/GNUmakefile.in index 7c1225b0..fe5d15f6 100644 --- a/GNUmakefile.in +++ b/GNUmakefile.in @@ -1,6 +1,6 @@ # Note: Makefile is built automatically from Makefile.in # -# $Id: GNUmakefile.in,v 1.119 2002/09/23 03:42:41 hal9 Exp $ +# $Id: GNUmakefile.in,v 1.120 2002/10/10 20:39:27 dessent Exp $ # # Written by and Copyright (C) 2001 the SourceForge # Privoxy team. http://www.privoxy.org/ @@ -98,7 +98,7 @@ INSTALL_P = -m 0755 INSTALL_T = -m 0644 INSTALL_D = -m 0755 -d # install options for superuser install -INSTALL_S = -g @GROUP@ -o @USER@ +#INSTALL_S = -g @GROUP@ -o @USER@ ID = id -u LD = @CC@ RM = rm -f @@ -816,25 +816,25 @@ distclean: clobber tags: $(SRCS) $(HDRS) etags $(SRCS) $(HDRS) -CONF_DEST:=$(shell if [ "$(prefix)" == "/usr/local" ] && [ "$(CONF_BASE)" == "$(prefix)/etc" ];then \ +CONF_DEST:=$(shell if [ "$(prefix)" = "/usr/local" ] && [ "$(CONF_BASE)" = "$(prefix)/etc" ];then \ $(ECHO) "$(CONF_BASE)/privoxy";\ else\ $(ECHO) "$(CONF_BASE)";\ fi) -LOG_DEST:=$(shell if [ "$(prefix)" == "/usr/local" ] && [ "$(LOGS_DEST)" == "$(prefix)/var/log/privoxy" ];then \ +LOG_DEST:=$(shell if [ "$(prefix)" = "/usr/local" ] && [ "$(LOGS_DEST)" = "$(prefix)/var/log/privoxy" ];then \ $(ECHO) "/var/log/privoxy" ;\ else\ $(ECHO) "$(LOGS_DEST)";\ fi) -PID_DEST:=$(shell if [ "$(prefix)" == "/usr/local" ] && [ "$(PIDS_DEST)" == "$(prefix)/var/run" ];then \ +PID_DEST:=$(shell if [ "$(prefix)" = "/usr/local" ] && [ "$(PIDS_DEST)" = "$(prefix)/var/run" ];then \ $(ECHO) "/var/run" ;\ else\ $(ECHO) "$(PIDS_DEST)";\ fi) -check_doc:=$(shell if [ ! -d "$(SHARE_DEST)/doc" ] && [ "$(prefix)" == "/usr/local" ] && [ -d "$(prefix)/doc" ];then \ +check_doc:=$(shell if [ ! -d "$(SHARE_DEST)/doc" ] && [ "$(prefix)" = "/usr/local" ] && [ -d "$(prefix)/doc" ];then \ $(ECHO) "1";\ else\ $(ECHO) "0";\ @@ -857,16 +857,22 @@ install: CONF_DEST LOG_DEST PID_DEST check_doc all $(INSTALL) $(INSTALL_D) $(CONF_DEST)/templates # Install the DOCS and man page - if [ $(check_doc) == 0 ]; then \ + if [ $(check_doc) = 0 ]; then \ DOC=$(DOC_DEST) ;\ else \ DOC=$(prefix)/doc/privoxy ;\ fi;\ $(INSTALL) $(INSTALL_D) $$DOC ;\ $(INSTALL) $(INSTALL_D) $$DOC/user-manual ;\ + $(INSTALL) $(INSTALL_D) $$DOC/faq ;\ if [ -d "$(DOK_WEB_USEM)" ]; then \ $(INSTALL) $(INSTALL_T) $(DOK_WEB_USEM)/[^C]* $$DOC/user-manual;\ + $(INSTALL) $(INSTALL_T) $(DOK_WEB_USEM)/[^C]* $$DOC/faq;\ $(INSTALL) $(INSTALL_T) $(DOK_WEB_USEM)/../p_doc.css $$DOC;\ + $(INSTALL) $(INSTALL_T) AUTHORS $$DOC;\ + $(INSTALL) $(INSTALL_T) LICENSE $$DOC;\ + $(INSTALL) $(INSTALL_T) README $$DOC;\ + $(INSTALL) $(INSTALL_T) ChangeLog $$DOC;\ fi -$(GZIP_PROG) -c privoxy.1 > $(MAN_DEST)/privoxy.1.gz @@ -880,21 +886,46 @@ install: CONF_DEST LOG_DEST PID_DEST check_doc all $(MV) config config.base $(MV) config.updated config - # Install the config support files + # Install the config support files. Test for root install, and abort + # if there is no privoxy user, and no other user was enabled during + # configure. $(INSTALL) $(INSTALL_T) templates/[^C]* $(CONF_DEST)/templates - if [ `$(ID)` == 0 ] ;then\ - $(ECHO) -e "\n Superuser install, installing config files as $(USER),$(GROUP)" ;\ - INSTALL_CONF="$(INSTALL_T) -b $(INSTALL_S)" ;\ + if [ `$(ID)` = 0 ] ;then\ + if [ x$(USER) = x ]; then \ + if [ `$(ID) privoxy` ]; then \ + $(ECHO) -e "\n Setting user and group to privoxy";\ + INSTALL_CONF="$(INSTALL_T) -b -g privoxy -o privoxy" ;\ + else \ + $(ECHO) -e "******************************************************************" ;\ + $(ECHO) -e " WARNING! WARNING! installing config files as root!" ;\ + $(ECHO) -e " It is strongly recommended to run $(PROGRAM) as non-root user," ;\ + $(ECHO) -e " and to install the config files as that user!" ;\ + $(ECHO) -e " Please read INSTALL, and create a privoxy user!" ;\ + $(ECHO) -e "*******************************************************************" ;\ + exit 1 ;\ + fi ;\ + else \ + if [ x$(GROUP) = x ]; then \ + $(ECHO) -e "\n Superuser install, installing config files as $(USER),$(USER)" ;\ + INSTALL_CONF="$(INSTALL_T) -b -o $(USER) -g $(USER)" ;\ + else \ + $(ECHO) -e "\n Superuser install, installing config files as $(USER),$(GROUP)" ;\ + INSTALL_CONF="$(INSTALL_T) -b -o $(USER) -g $(GROUP)" ;\ + fi ;\ + fi ;\ else \ - if [ ! `$(ID) $(USER)` == `$(ID)` ] ;then \ + if [ ! `$(ID) $(USER)` = `$(ID)` ] ;then \ $(ECHO) -e "\n ** WARNING ** current install user different from configured user!! edit may fail.\n" ;\ fi ;\ INSTALL_CONF="$(INSTALL_T) -b " ;\ fi ;\ - $(INSTALL) $$INSTALL_CONF config default.action default.filter trust standard.action $(CONF_DEST) ;\ - if [ ! -s "$(CONF_DEST)\user.action" ] ; then \ + $(INSTALL) $$INSTALL_CONF config default.action default.filter standard.action $(CONF_DEST) ;\ + if [ ! -s "$(CONF_DEST)/user.action" ] ; then \ $(INSTALL) $$INSTALL_CONF user.action $(CONF_DEST) ;\ fi ;\ + if [ ! -s "$(CONF_DEST)/trust" ] ; then \ + $(INSTALL) $$INSTALL_CONF trust $(CONF_DEST) ;\ + fi ;\ # setup the logfiles # mode 0640 in the logs for privacy reasons @@ -903,7 +934,8 @@ install: CONF_DEST LOG_DEST PID_DEST check_doc all $(ECHO) -e "\n ** WARNING ** current install user different from configured user!! Loging may fail\n" -$(CHMOD) 0640 $(LOG_DEST)/logfile $(LOG_DEST)/jarfile - # Install the init scripts + # Install the init and logrotate scripts. Test for Slackware and Red Hat only. + # Install if dest is writable. if [ -f /etc/slackware-version ] && [ -d /etc/rc.d/ ] && [ -w /etc/rc.d/ ] ; then \ $(SED) 's+%PROGRAM%+$(PROGRAM)+' slackware/rc.privoxy.orig | \ $(SED) 's+%SBIN_DEST%+$(SBIN_DEST)+' | \ @@ -912,6 +944,10 @@ install: CONF_DEST LOG_DEST PID_DEST check_doc all $(SED) 's+%GROUP%+$(GROUP)+' >slackware/rc.privoxy ;\ $(INSTALL) $(INSTALL_P) slackware/rc.privoxy /etc/rc.d/ ;\ $(ECHO) -e "\n Dont forget to add the rc.privoxy to rc.local if you want it started at every boot" ;\ + elif [ -f /etc/redhat-release ] && [ -d /etc/rc.d/init.d/ ] && [ -w /etc/rc.d/init.d/ ] ; then \ + $(INSTALL) $(INSTALL_P) privoxy.init /etc/init.d/privoxy ;\ + $(MKDIR) /etc/logrotate.d/ ;\ + $(INSTALL) $(INSTALL_P) privoxy.logrotate /etc/logrotate.d/privoxy ;\ elif [ -d /etc/init.d ] && [ -w /etc/init.d ] ; then \ $(INSTALL) $(INSTALL_P) privoxy-generic.init /etc/init.d/privoxy ;\ else \ @@ -949,7 +985,7 @@ uninstall: CONF_DEST LOG_DEST PID_DEST check_doc -$(RM) $(PID_DEST)/privoxy.pid || $(RM) /var/run/privoxy.pid # final clean up of unused directories - if [ ! "$(prefix)" == "/usr/local" ] ;then \ + if [ ! "$(prefix)" = "/usr/local" ] ;then \ $(RMDIR) $(MAN_DEST) || $(ECHO) -e " $(MAN_DEST) is not empty, couldnt remove it\n" ;\ $(RMDIR) $(MAN_DIR) || $(ECHO) -e " $(MAN_DIR) is not empty, couldnt remove it\n" ;\ $(RMDIR) $(SHARE_DEST)/doc || $(ECHO) -e " $(SHARE_DEST)/doc is not empty, couldnt remove it\n" ;\ @@ -959,9 +995,11 @@ uninstall: CONF_DEST LOG_DEST PID_DEST check_doc $(RMDIR) $(LOG_DEST) || $(ECHO) -e " $(LOG_DEST) is not empty, couldnt remove it\n" ;\ $(RMDIR) $(prefix) || $(ECHO) -e " $(prefix) is not empty, couldnt remove it\n" ;\ fi - # init scripts + # init scripts and logrotate if [ -f /etc/slackware-version ] && [ -d /etc/rc.d/ ] && [ -w /etc/rc.d/ ] ; then \ $(RM) /etc/rc.d/rc.privoxy ;\ + elif [ -f /etc/redhat-release ] && [ -d /etc/rc.d/init.d/ ] && [ -w /etc/rc.d/init.d/ ] ; then \ + $(RM) /etc/rc.d/init.d/privoxy /etc/logrotate.d/privoxy;\ elif [ -d /etc/init.d ] && [ -w /etc/init.d ] ; then \ $(RM) /etc/init.d/privoxy ;\ else \ @@ -982,6 +1020,11 @@ coffee: ## end: # $Log: GNUmakefile.in,v $ +# Revision 1.120 2002/10/10 20:39:27 dessent +# +# +# Fixes for Win32 GUI build (added "$(DIR_PRIVOXY_SRC)/" to dependencies list) +# # Revision 1.119 2002/09/23 03:42:41 hal9 # This is higuita's make install/uninstall patch. Needs testing please!!! # -- 2.39.2