X-Git-Url: http://www.privoxy.org/gitweb/?p=privoxy.git;a=blobdiff_plain;f=GNUmakefile.in;h=78b44aa8e7127fe7a6e662bf6704c61c10cc887e;hp=040d1d9ba79006335f0dcd4374d9b5f2829fd674;hb=668c12d3ddbe9632bb90b3dbf1bf9d60114ad6bb;hpb=110b778796093a44f7ae81b7db29acbbc68236c1 diff --git a/GNUmakefile.in b/GNUmakefile.in index 040d1d9b..78b44aa8 100644 --- a/GNUmakefile.in +++ b/GNUmakefile.in @@ -1,6 +1,6 @@ # Note: Makefile is built automatically from Makefile.in # -# $Id: GNUmakefile.in,v 1.120 2002/10/10 20:39:27 dessent Exp $ +# $Id: GNUmakefile.in,v 1.136 2002/12/28 04:10:21 david__schmidt Exp $ # # Written by and Copyright (C) 2001 the SourceForge # Privoxy team. http://www.privoxy.org/ @@ -53,12 +53,18 @@ SNAPVERSION = $(RPM_VERSION)-$(shell date "+%Y%m%d") DIR_PRIVOXY_ROOT := . DIR_PRIVOXY_SRC := $(DIR_PRIVOXY_ROOT)/src DIR_PRIVOXY_SRC_PCRE := $(DIR_PRIVOXY_ROOT)/pcre +DIR_PRIVOXY_SRC_JAVA := $(DIR_PRIVOXY_ROOT)/src/java DIR_PRIVOXY_OBJ := $(DIR_PRIVOXY_ROOT)/obj ############################################################################# -# Directories for "make install" +# "make install" settings ############################################################################# +# User and Group settings +USER = @USER@ +GROUP = @GROUP@ + +# PATHS set from configure prefix = @prefix@ exec_prefix = @exec_prefix@ CONF_BASE = @sysconfdir@ @@ -82,59 +88,67 @@ PIDS_DEST = $(VAR_DEST)/run # finally if $prefix=/usr/local and VAR_DEST=$prefix/var it # changes this to /var for storing the logs and pidfile -# used in source dir only, the install goes to $share_dest/doc/privoxy -DOK_WEB = doc/webserver/ +# Where to find docs. The install goes to $share_dest/doc/privoxy. +DOK_WEB = doc/webserver/ + +# Install usage should be compatible with install-sh. +INSTALL = @INSTALL@ + +# Permissions used during installation. +# Binaries (daemon, init scripts) +BIN_MODE = 0755 +# Files daemon writes to: *action, trust and logs. +RWD_MODE = 0660 +# Misc files, docs, etc. +RA_MODE = 0664 +# Directory +DIR_MODE = 0755 + +INSTALL_P = -m $(BIN_MODE) +INSTALL_T = -m $(RA_MODE) +INSTALL_D = -m $(DIR_MODE) -d +INSTALL_R = -m $(RWD_MODE) +# install options for superuser install +#INSTALL_S = -g -o ############################################################################# -# Build tools +# Build and Install tools ############################################################################# PROGRAM = privoxy@EXEEXT@ CC = @CC@ ECHO = echo GZIP_PROG = gzip -INSTALL = @INSTALL@ -INSTALL_P = -m 0755 -INSTALL_T = -m 0644 -INSTALL_D = -m 0755 -d -# install options for superuser install -#INSTALL_S = -g @GROUP@ -o @USER@ -ID = id -u +# id -u is not universal. FIXME: need to set from configure. Breaks on +# Solaris. +#ID = id -u +ID = id LD = @CC@ RM = rm -f RMDIR = rmdir MKDIR = ./mkinstalldirs STRIP_PROG = strip -SED = sed +CP = cp -f +SED = sed GREP = grep CAT = cat RPM = rpm -MV = mv +MV = mv TAR = tar LN = ln TOUCH = touch KILL = kill CHMOD = chmod CHOWN = chown -WDUMP = @WDUMP@ -dump -JADECAT = @JADECAT@ -JADEBIN = @JADEBIN@ +CHGRP = chgrp +GROUPS = groups DOC_STATUS = @DOC_STATUS@ # Note: Please make sure that -d ldp.dsl\#html stays the last option to # $(JADEBIN), because for some targets "-notoc" will be appended # to it (--> "ldp.dsl\#html-notoc"). -DB = $(JADEBIN) $(JADECAT) -i$(DOC_STATUS) -ihtml -t sgml -D.. -d ldp.dsl\#html -MAN2HTML = @MAN2HTML@ -G2H_CMD = groff -mandoc -Thtml TARGET_OS = @host@ PERL = perl DOC_DIR = doc/source -DOC_TMP = $(DOC_DIR)/tmp -DKPREFIX = @DKPREFIX@ - -#User Group paras -USER = @USER@ -GROUP = @GROUP@ # Program to do LF->CRLF # @@ -144,6 +158,8 @@ GROUP = @GROUP@ #DOSFILTER = $(SED) -e $$'s,$$,\r,' #DOSFILTER = gawk -v ORS='\r\n' '{print $0;}' DOSFILTER = $(PERL) -p -e 's/\n/\r\n/' +CVSROOT = :pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa +TMPDIR := $(shell mktemp -d /tmp/$(PROGRAM).XXXXXX) ############################################################################# # Setup for make distribution rh and suse for now @@ -155,16 +171,14 @@ RPM_BASE = @RPM_BASE@ ############################################################################# # We include these files in our distributions ############################################################################# +CONFIGS = config trust default.action standard.action user.action default.filter # take care that no CVS .cvsignore or other crappy files # are included here # and escape every '#' in the find. doh. -CONFIG_FILES = config trust \ - default.action \ - standard.action user.action \ - default.filter \ +CONFIG_FILES = $(CONFIGS) \ `find templates/ -type f | grep -v "CVS" | grep -v "\.\#" | grep -v ".*~" | grep -v ".cvsignore" | grep -v "TAGS"` -DOC_FILES = AUTHORS LICENSE README ChangeLog \ +DOC_FILES = AUTHORS LICENSE README ChangeLog INSTALL \ `find doc/text/ -type f | grep -v "CVS" | grep -v "\.\#" | grep -v ".*~" | grep -v ".cvsignore" | grep -v "TAGS"` \ `find doc/webserver/ -name "*.html" | grep -v "\(webserver\|team\)\/index\.html"` \ `find doc/webserver/ -name "*.css"` \ @@ -213,6 +227,10 @@ PCRE_SRC = @STATIC_PCRE_ONLY@$(DIR_PRIVOXY_SRC_PCRE)/get.c $(DIR_PRIVOXY_SRC PCRE_OBJS = @STATIC_PCRE_ONLY@$(PCRE_SRC:$(DIR_PRIVOXY_SRC_PCRE)/%.c=$(DIR_PRIVOXY_OBJ)/%.@OBJEXT@) PCRE_HDRS = @STATIC_PCRE_ONLY@$(DIR_PRIVOXY_SRC_PCRE)/config.h $(DIR_PRIVOXY_SRC_PCRE)/chartables.c $(DIR_PRIVOXY_SRC_PCRE)/internal.h $(DIR_PRIVOXY_SRC_PCRE)/pcre.h +ACTIVITY_SRC = @ACTIVITY_ONLY@$(DIR_PRIVOXY_SRC)/stats.c +ACTIVITY_OBJS = @ACTIVITY_ONLY@$(ACTIVITY_SRC:$(DIR_PRIVOXY_SRC)/%.c=$(DIR_PRIVOXY_OBJ)/%.@OBJEXT@) +ACTIVITY_HDRS = @ACTIVITY_ONLY@$(ACTIVITY_SRC:.c=.h) $(DIR_PRIVOXY_SRC)/ipc.h + # No REGEX (maybe because dynamically linked pcreposix): REGEX_SRC = @STATIC_PCRE_ONLY@REGEX_SRC = $(DIR_PRIVOXY_SRC_PCRE)/pcreposix.c @@ -229,9 +247,9 @@ SOCKET_LIB = @SOCKET_LIB@ # PThreads library, if needed. PTHREAD_LIB = @PTHREAD_ONLY@@PTHREAD_LIB@ -SRCS = $(C_SRC) $(W32_SRC) $(PCRS_SRC) $(PCRE_SRC) $(REGEX_SRC) -OBJS = $(C_OBJS) $(W32_OBJS) $(PCRS_OBJS) $(PCRE_OBJS) $(REGEX_OBJS) -HDRS = $(C_HDRS) $(W32_HDRS) $(PCRS_HDRS) $(PCRE_OBJS) $(REGEX_HDRS) +SRCS = $(C_SRC) $(W32_SRC) $(PCRS_SRC) $(PCRE_SRC) $(REGEX_SRC) $(ACTIVITY_SRC) +OBJS = $(C_OBJS) $(W32_OBJS) $(PCRS_OBJS) $(PCRE_OBJS) $(REGEX_OBJS) $(ACTIVITY_OBJS) +HDRS = $(C_HDRS) $(W32_HDRS) $(PCRS_HDRS) $(PCRE_OBJS) $(REGEX_HDRS) $(ACTIVITY_HDRS) LIBS = @LIBS@ $(W32_LIB) $(SOCKET_LIB) $(PTHREAD_LIB) @@ -270,7 +288,7 @@ all: $(PROGRAM) default.action suse-upload win-dist tarball-dist dok redhat-dok webserver clean clobber tags \ install conectiva-spec conectiva-dist conectiva-upload debian-dist \ debian-upload ensure-wdump ensure-jadebin ensure-dkprefix CONF_DEST LOG_DEST \ -PID_DEST check_doc install-strip +PID_DEST check_doc install-strip uninstall GROUP_T java-activity-console ############################################################################# @@ -283,6 +301,7 @@ $(DIR_PRIVOXY_OBJ)/%.o: $(DIR_PRIVOXY_SRC_PCRE)/%.c $(DIR_PRIVOXY_OBJ) $(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@ $(DIR_PRIVOXY_OBJ): + $(CHMOD) $(DIR_MODE) $(MKDIR) $(MKDIR) obj ############################################################################# @@ -667,6 +686,13 @@ tarball-upload: tarball-clean: $(RM) ../privoxy-$(VERSION)-$(CODE_STATUS)-src.tar.gz +############################################################################# +# java Activity Console +############################################################################# +java-activity-console: + javac -classpath $(DIR_PRIVOXY_SRC_JAVA):$(CLASSPATH) $(DIR_PRIVOXY_SRC)/java/org/privoxy/activityconsole/*.java + jar -cvfm ActivityConsole.jar $(DIR_PRIVOXY_SRC_JAVA)/org/privoxy/activityconsole/acon.manifest -C $(DIR_PRIVOXY_SRC_JAVA) org/privoxy/activityconsole + ############################################################################# # # Documentation @@ -840,46 +866,77 @@ check_doc:=$(shell if [ ! -d "$(SHARE_DEST)/doc" ] && [ "$(prefix)" = "/usr/loca $(ECHO) "0";\ fi) -install-strip: - $(MAKE) INSTALL_P='$(INSTALL_P) -s' install - -install: CONF_DEST LOG_DEST PID_DEST check_doc all - # - # FIXME: test this in all systems and with several options and report any bugs - # - - $(MKDIR) $(SBIN_DEST) $(prefix) $(CONF_DEST) $(SHARE_DEST) $(MAN_DEST) $(LOG_DEST) $(PID_DEST) - - # Install the executable binary - $(INSTALL) $(INSTALL_P) $(PROGRAM) $(SBIN_DEST) +# If USER is specified but no GROUP, assume there is a GROUP of same name. +GROUP_T:=$(shell if [ x$(GROUP) = x ] && [ x$(USER) != x ];then \ + $(ECHO) "$(USER)" ;\ + else\ + $(ECHO) "$(GROUP)";\ + fi) - $(INSTALL) $(INSTALL_D) $(CONF_DEST) - $(INSTALL) $(INSTALL_D) $(CONF_DEST)/templates +install-strip: + $(MAKE) install STRIP=-s - # Install the DOCS and man page - if [ $(check_doc) = 0 ]; then \ +# FIXME: Test USER and GROUP on Slack to make sure this works as +# intended. +# +# FIXME: id handling needs help, probably via configure, since 'id -u' is not +# universally reliable (eg Solaris). Group handling could be better. +# Perhaps the whole user/group validation should be done here, and simplified. +PROGRAM_V = Privoxy $(VERSION) +install: CONF_DEST LOG_DEST PID_DEST check_doc GROUP_T + @# Quick test for valid USER. + @if [ -n "$(USER)" ]; then \ + $(ID) $(USER) >/dev/null || exit 1;\ + fi + @# Test for valid group. FIXME. USER does not have to belong to GROUP + @# for file ownership purposes. +# if [ -n "$(GROUP_T)" ] && [ -n "$(USER)" ] && ! $(GROUPS) $(USER) | $(GREP) "\<$(GROUP_T)\>" >/dev/null; then \ +# $(ECHO) Group $(GROUP_T) for User $(USER) is invalid && exit 1 ;\ +# fi + + @$(ECHO) "Creating directories, and preparing $(PROGRAM_V) installation" + $(CHMOD) $(DIR_MODE) $(MKDIR) + @$(MKDIR) $(SBIN_DEST) $(prefix) $(CONF_DEST) $(CONF_DEST)/templates $(SHARE_DEST) \ + $(LOG_DEST) $(PID_DEST) + @# Install the executable binary, strip if invoked as install-strip + @test -n "$(STRIP)" &&\ + $(ECHO) Installing $(PROGRAM) stripped executable to $(SBIN_DEST) ||\ + $(ECHO) Installing $(PROGRAM) executable to $(SBIN_DEST) + $(INSTALL) $(INSTALL_P) $(STRIP) $(PROGRAM) $(SBIN_DEST) + + @# Install the DOCS and man page. install-sh only does one file at a time. + -@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 ;\ - $(INSTALL) $(INSTALL_D) $$DOC/images ;\ + $(MKDIR) $$DOC $$DOC/user-manual $$DOC/faq $$DOC/developer-manual \ + $$DOC/man-page $$DOC/images $(MAN_DEST) ;\ if [ -d "$(DOK_WEB)" ]; then \ - $(INSTALL) $(INSTALL_T) $(DOK_WEB)/user-manual/[^C]* $$DOC/user-manual;\ - $(INSTALL) $(INSTALL_T) $(DOK_WEB)/faq/[^C]* $$DOC/faq;\ - $(INSTALL) $(INSTALL_T) $(DOK_WEB)/images/*jpg $$DOC/images;\ - $(INSTALL) $(INSTALL_T) $(DOK_WEB)/p_doc.css $$DOC;\ + $(ECHO) Installing FAQ, Manual, and other docs to $$DOC;\ + for i in user-manual developer-manual faq; do \ + for ii in $(DOK_WEB)/$$i/*html; do \ + $(INSTALL) $(INSTALL_T) $$ii $$DOC/$$i;\ + done ;\ + done ;\ + for i in $(DOK_WEB)/images/*jpg; do \ + $(INSTALL) $(INSTALL_T) $$i $$DOC/images;\ + done ;\ + $(INSTALL) $(INSTALL_T) $(DOK_WEB)/man-page/*html $$DOC/man-page;\ + $(INSTALL) $(INSTALL_T) $(DOK_WEB)/privoxy-index.html $$DOC/index.html;\ $(INSTALL) $(INSTALL_T) AUTHORS $$DOC;\ $(INSTALL) $(INSTALL_T) LICENSE $$DOC;\ $(INSTALL) $(INSTALL_T) README $$DOC;\ $(INSTALL) $(INSTALL_T) ChangeLog $$DOC;\ + $(INSTALL) $(INSTALL_T) $(DOK_WEB)/p_doc.css $$DOC;\ fi - -$(GZIP_PROG) -c privoxy.1 > $(MAN_DEST)/privoxy.1.gz + @# Not all platforms support gzipped man pages. + @$(ECHO) Installing man page to $(MAN_DEST)/privoxy.1 + -$(INSTALL) $(INSTALL_T) privoxy.1 $(MAN_DEST)/privoxy.1 - # Change the Config file default directories acording to the configured ones - if [ -e config.base ] ; then \ + @# Change the config file default directories according to the configured ones + @$(ECHO) Rewriting config for this installation + @if [ -f config.base ] ; then \ $(CAT) config >config~ ;\ $(MV) config.base config ;\ fi @@ -888,124 +945,199 @@ install: CONF_DEST LOG_DEST PID_DEST check_doc all $(MV) config config.base $(MV) config.updated config - # 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\ - 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" ;\ + @# Install the config support files. Test for root install, and abort + @# if there is no privoxy user, and no other user or group was enabled + @# during configure. + @$(ECHO) Installing templates to $(CONF_DEST)/templates + @for i in `find templates -type f`; do \ + $(INSTALL) $(INSTALL_T) $$i $(CONF_DEST)/templates ;\ + done + + @# FIXME: group/user validation is overly convoluted. + @# If superuser install ... we require a minimum of group ownership + @# of those files the daemon writes to, to be non-root owned. + @if [ "`$(ID) |sed 's/(.*//' |sed 's/.*=//'`" = "0" ] ;then\ + if [ x$(USER) = x ] || [ $(USER) = root ]; then \ + if [ x$(GROUP) = x ] || [ $(GROUP) = root ]; then \ + if [ "`$(ID) privoxy`" ] && \ + $(GROUPS) privoxy | $(SED) 's/^.*://' |$(GREP) "\" >/dev/null; then \ + $(ECHO) "Warning: Setting group owner to privoxy";\ + GROUP_T=privoxy ;\ + else \ + $(ECHO) "******************************************************************" ;\ + $(ECHO) " WARNING! WARNING! installing config files as root!" ;\ + $(ECHO) " It is strongly recommended to run $(PROGRAM) as a non-root user," ;\ + $(ECHO) " and to install the config files as that user and/or group!" ;\ + $(ECHO) " Please read INSTALL, and create a privoxy user and group!" ;\ + $(ECHO) "*******************************************************************" ;\ + exit 1 ;\ + fi ;\ 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 ;\ + GROUP_T=$(GROUP) ;\ fi ;\ + INSTALL_CONF="$(INSTALL_R) -g $$GROUP_T " ;\ 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 ;\ + $(ECHO) "Superuser install, installing config files as $(USER):$(GROUP_T)" ;\ + INSTALL_CONF="$(INSTALL_R) -o $(USER) -g $(GROUP_T)" ;\ + GROUP_T=$(GROUP_T) ;\ fi ;\ else \ - if [ ! `$(ID) $(USER)` = `$(ID)` ] ;then \ - $(ECHO) -e "\n ** WARNING ** current install user different from configured user!! edit may fail.\n" ;\ + if [ ! "`id $(USER)`" = "`id`" ] ;then \ + $(ECHO) "** WARNING ** current install user different from configured user!!" ;\ + $(ECHO) "Edit may fail." ;\ + fi ;\ + INSTALL_CONF="$(INSTALL_R)" ;\ + fi ;\ + $(ECHO) Installing configuration files to $(CONF_DEST);\ + for i in $(CONFIGS); do \ + if [ -s "$(CONF_DEST)/$$i" ] ; then \ + $(ECHO) Installing $$i as $$i.new ;\ + $(INSTALL) $$INSTALL_CONF $$i $(CONF_DEST)/$$i.new || exit 1;\ + NEW=1;\ + else \ + $(INSTALL) $$INSTALL_CONF $$i $(CONF_DEST) || exit 1;\ fi ;\ - INSTALL_CONF="$(INSTALL_T) -b " ;\ + done ;\ + if [ -n "$$NEW" ]; then \ + $(CHMOD) $(RWD_MODE) $(CONF_DEST)/*.new || exit 1 ;\ + $(ECHO) "Warning: Older config files are preserved. Check new versions for changes!" ;\ fi ;\ - $(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) ;\ + [ ! -f $(LOG_DEST)/logfile ] && $(ECHO) Creating logfiles in $(LOG_DEST) || \ + $(ECHO) Checking logfiles in $(LOG_DEST) ;\ + $(TOUCH) $(LOG_DEST)/logfile $(LOG_DEST)/jarfile || exit 1 ;\ + if [ x$$USER != x ]; then \ + $(CHOWN) $$USER $(LOG_DEST)/logfile $(LOG_DEST)/jarfile || \ + $(ECHO) "** WARNING ** current install user different from configured user. Logging may fail!!" ;\ fi ;\ - if [ ! -s "$(CONF_DEST)/trust" ] ; then \ - $(INSTALL) $$INSTALL_CONF trust $(CONF_DEST) ;\ + if [ x$$GROUP_T != x ]; then \ + $(CHGRP) $$GROUP_T $(LOG_DEST)/logfile $(LOG_DEST)/jarfile || \ + $(ECHO) "** WARNING ** current install user different from configured user. Logging may fail!!" ;\ fi ;\ - - # setup the logfiles - # mode 0640 in the logs for privacy reasons - $(TOUCH) $(LOG_DEST)/logfile $(LOG_DEST)/jarfile - -$(CHOWN) $(USER),$(GROUP) $(LOG_DEST)/logfile $(LOG_DEST)/jarfile || \ - $(ECHO) -e "\n ** WARNING ** current install user different from configured user!! Logging may fail\n" - -$(CHMOD) 0640 $(LOG_DEST)/logfile $(LOG_DEST)/jarfile - - # 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)+' | \ - $(SED) 's+%CONF_DEST%+$(CONF_DEST)+' | \ - $(SED) 's+%USER%+$(USER)+' | \ - $(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/rc./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 ;\ + $(CHMOD) $(RWD_MODE) $(LOG_DEST)/logfile $(LOG_DEST)/jarfile || exit 1 ;\ + if [ "$(prefix)" = "/usr/local" ] || [ "$(prefix)" = "/usr" ]; then \ + 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)+' | \ + $(SED) 's+%CONF_DEST%+$(CONF_DEST)+' | \ + $(SED) 's+%USER%+$$USER+' | \ + $(SED) 's+%GROUP%+$(GROUP_T)+' >slackware/rc.privoxy ;\ + $(INSTALL) $(INSTALL_P) slackware/rc.privoxy /etc/rc.d/ ;\ + $(ECHO) "Installing for Slackware." ;\ + $(ECHO) "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 \ + $(ECHO) "Installing init script to /etc/rc.d/init.d/privoxy" ;\ + $(SED) 's,^PRIVOXY_BIN=.*,PRIVOXY_BIN="/usr/local/sbin/$(PROGRAM)",' privoxy.init |\ + $(SED) 's,^PRIVOXY_CONF=.*,PRIVOXY_CONF="$(CONF_DEST)/config",' |\ + $(SED) "s,^PRIVOXY_USER=.*,PRIVOXY_USER=$$USER," > init.tmp ;\ + $(INSTALL) $(INSTALL_P) init.tmp /etc/rc.d/init.d/privoxy && $(RM) init.tmp;\ + $(MKDIR) /etc/logrotate.d/ ;\ + $(ECHO) "Installing logrotate script to /etc/logrotate.d/" ;\ + $(INSTALL) -m 0644 privoxy.logrotate /etc/logrotate.d/privoxy ;\ + elif [ -d /etc/init.d ] && [ -w /etc/init.d ] ; then \ + $(ECHO) "Installing generic init script to /etc/init.d/privoxy" ;\ + $(ECHO) "Please check that the PATHs are correct, and edit if needed." ;\ + $(INSTALL) $(INSTALL_P) privoxy-generic.init /etc/init.d/privoxy ;\ + fi ;\ else \ - $(ECHO) -e "\n No init script installed, install it manually" ;\ + $(ECHO) "No init script installed, install it manually if needed" ;\ fi + @# mmmmm, good. + @$(ECHO) "$(PROGRAM_V) installation succeeded!" + @$(ECHO) "The Privoxy configuration files have been installed in $(CONF_DEST)" +# rmdir is used as a precaution since it will not remove non-empty +# directories. RH init script creates lock file and pid file. uninstall: CONF_DEST LOG_DEST PID_DEST check_doc - # - # FIXME: test this in all systems and with several options and report any bugs - # - - # KILL privoxy if running - -@ $(KILL) `$(CAT) $(PID_DEST)/privoxy.pid ` >/dev/nul 2>/dev/null - -@ $(KILL) `$(CAT) /var/run/privoxy.pid ` >/dev/nul 2>/dev/null + @$(ECHO) Starting Privoxy uninstallation + @# KILL privoxy if running + -@if [ -f /etc/redhat-release ] && [ -x /etc/rc.d/init.d/privoxy ]; then \ + /etc/rc.d/init.d/privoxy stop >/dev/null 2>/dev/null ;\ + chkconfig --del $(PROGRAM) 2>/dev/null;\ + fi + -@test -f $(PID_DEST)/privoxy.pid && $(ECHO) Stopping $(PROGRAM) &&\ + $(KILL) `$(CAT) $(PID_DEST)/privoxy.pid` || : + -@test -f /var/run/privoxy.pid && $(ECHO) Stopping $(PROGRAM) &&\ + $(KILL) `$(CAT) /var/run/privoxy.pid ` || : - # Program binary + @# Program binary + @$(ECHO) Removing $(PROGRAM) binary $(RM) $(SBIN_DEST)/$(PROGRAM) $(SBIN_DEST)/$(PROGRAM)~ - # config files and dir and maybe old install backups - $(RM) $(CONF_DEST)/config $(CONF_DEST)/default.action $(CONF_DEST)/default.filter \ - $(CONF_DEST)/trust $(CONF_DEST)/standard.action $(CONF_DEST)/user.action \ - $(CONF_DEST)/config~ $(CONF_DEST)/default.action~ $(CONF_DEST)/default.filter~ \ - $(CONF_DEST)/trust~ $(CONF_DEST)/standard.action~ $(CONF_DEST)/user.action~ - $(RM) -r $(CONF_DEST)/templates - -$(RMDIR) $(CONF_DEST) || $(ECHO) -e " $(CONF_DEST) is not empty, couldnt remove it\n" ;\ + @# config files and dir, and maybe old install backups + -@if [ -d $(CONF_DEST) ]; then \ + $(ECHO) Saving $(PROGRAM) config files to /tmp/$(PROGRAM)-save ;\ + $(MKDIR) /tmp/$(PROGRAM)-save ;\ + cd $(CONF_DEST) ;\ + for i in $(CONFIGS); do \ + [ -f $$i ] && $(CP) $$i /tmp/$(PROGRAM)-save ;\ + done ;\ + fi + @$(ECHO) Removing $(PROGRAM) config files + -@for i in $(CONFIGS); do \ + test -f $(CONF_DEST)/$$i && $(ECHO) Removing $$i ;\ + $(RM) $(CONF_DEST)/$$i $(CONF_DEST)/$$i~ $(CONF_DEST)/$$i.new ;\ + done + -@test -d $(CONF_DEST)/templates && $(RM) -r $(CONF_DEST)/templates &&\ + $(ECHO) "Removing $(CONF_DEST)/templates/*" - # man page and docs - -$(RM) $(MAN_DEST)/privoxy.1.gz + @# man page and docs + @$(ECHO) Removing $(PROGRAM) docs + -$(RM) $(MAN_DEST)/privoxy.1* -$(RM) -r $(DOC_DEST) || $(RM) -r $(prefix)/doc/privoxy - # Log and jarfile and pidfile - -$(RM) $(LOG_DEST)/logfile || $(RM) /var/log/privoxy/logfile - -$(RM) $(LOG_DEST)/jarfile || $(RM) /var/log/privoxy/jarfile - -$(RM) $(PID_DEST)/privoxy.pid || $(RM) /var/run/privoxy.pid - - # final clean up of unused directories - 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" ;\ - $(RMDIR) $(SHARE_DEST) || $(ECHO) -e " $(SHARE_DEST) is not empty, couldnt remove it\n" ;\ - $(RMDIR) $(CONF_BASE) || $(ECHO) -e " $(CONF_BASE) is not empty, couldnt remove it\n" ;\ - $(RMDIR) $(SBIN_DEST) || $(ECHO) -e " $(SBIN_DEST) is not empty, couldnt remove it\n" ;\ - $(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" ;\ + @# Log and jarfile and pidfile + @$(ECHO) Removing $(PROGRAM) logs + -$(RM) $(LOG_DEST)/logfile $(PID_DEST)/privoxy.pid $(LOG_DEST)/jarfile + + @# Final clean up of unused directories. Special handling of CONF and LOG + # destinations. + @$(ECHO) Removing $(PROGRAM) directories + @for i in $(LOG_DEST) $(CONF_DEST); do \ + if test -d $$i; then \ + $(ECHO) Removing $$i ;\ + $(RMDIR) $$i || $(ECHO) "$$i is not empty, not removed" ;\ + fi;\ + done + @if [ ! "$(prefix)" = "/usr/local" ] ;then \ + for i in $(MAN_DEST) $(MAN_DIR) $(SHARE_DEST)/doc $(SHARE_DEST) $(SBIN_DEST); do \ + if test -d $$i; then \ + $(ECHO) Removing $$i ;\ + $(RMDIR) $$i || $(ECHO) "$$i is not empty, not removed" ;\ + fi;\ + done;\ + if test $(LOG_DEST) != /var/log/privoxy && test -d $(prefix)/var/log; then \ + $(ECHO) Removing $(prefix)/var/log ;\ + $(RMDIR) $(prefix)/var/log || $(ECHO) "$(prefix)/var/log is not empty, not removed";\ + fi ;\ + if test $(PID_DEST) != /var/run && test -d $(prefix)/var/run; then \ + $(ECHO) Removing $(prefix)/var/run ;\ + $(RMDIR) $(prefix)/var/run || $(ECHO) "$(prefix)/var/run is not empty, not removed";\ + fi ;\ + if test $(prefix)/var != /var && test -d $(prefix)/var; then \ + $(ECHO) Removing $(prefix)/var ;\ + $(RMDIR) $(prefix)/var || $(ECHO) "$(prefix)/var is not empty, not removed" ;\ + fi ;\ + if test $(prefix) != / && test $(prefix) != /usr && test -d $(prefix); then \ + $(ECHO) Removing $(prefix) ;\ + $(ECHO) Removing installation directory $(prefix) ;\ + $(RMDIR) $(prefix) || $(ECHO) "$(prefix) is not empty, not removed" ;\ + fi;\ fi - # 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 \ - $(ECHO) -e "\n Unable to remove privoxy init script... not installed or permition denied" ;\ + + @# init scripts and logrotate + @if [ "$(prefix)" = "/usr/local" ] || [ "$(prefix)" = "/usr" ]; then \ + $(ECHO) Removing $(PROGRAM) init script ;\ + 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 \ + $(ECHO) "Unable to remove privoxy init script, not installed or permission denied" ;\ + fi ;\ fi + @$(ECHO) Privoxy uninstalled, bye coffee: @perl -e 'print pack "C*", (31,139,8,8,153,63,226,60,2,3,99,111,102,102,101,101,0,109,143,205,13,192,32,8,133,\ @@ -1021,6 +1153,105 @@ coffee: ## end: # $Log: GNUmakefile.in,v $ +# Revision 1.136 2002/12/28 04:10:21 david__schmidt +# Initial drop of dashboard instrumentation - enabled with +# --enable-activity-console +# +# Revision 1.135 2002/11/04 05:11:05 hal9 +# Just a clean up of overly verbose output from install/uninstall. +# +# Revision 1.134 2002/10/28 06:01:39 hal9 +# Make uninstall: cp -v problems on SF Solaris. +# +# Revision 1.133 2002/10/28 02:12:22 hal9 +# Make install/uninstall: +# - More cleanup of variables +# - Make the minimum requirement for root install, an available non-root GROUP. +# If a privoxy user exists (and no other USER is specified), then the files +# that require write access are installed as group owned by privoxy. FIXME: +# There has to be a cleaner way to do this. +# - Uninstall now saves configuration files to /tmp. +# +# Revision 1.132 2002/10/24 22:24:58 hal9 +# Make install: Minor clean up for variable handling. +# +# Revision 1.131 2002/10/23 07:00:21 agotneja +# added a chmod on mkinstalldirs just before using it, otherwise it +# will fail when running make for the first time. +# +# Revision 1.130 2002/10/22 05:49:14 hal9 +# Make install: +# - /bin/sh on Solaris does not handle: ! test. +# - Remove some unused doc variables. +# - Make configs group writable. +# +# Revision 1.129 2002/10/20 07:15:12 hal9 +# Getting near the end (I hope) of install target updates: +# - Rewrite RH init script to reflect configured values. +# - Test for USER=root as well as UID=0 +# - Test for invalid group (probably needs more work). +# - Add /usr to /usr/local test for when to install init scripts, etc. +# - More testing on previous changes. +# +# Revision 1.128 2002/10/18 05:36:32 hal9 +# More install target fixes: +# - Quick fix of log ownership on root install (lightly tested). If this goes +# true to form, then the fix will break something else :( +# - Fix what looks like was invalid user on Slack if root install and +# we use an existing privoxy user. No way to test this. +# See FIXMEs. +# +# Revision 1.127 2002/10/18 00:58:07 hal9 +# More install/uninstall/install-strip updates: +# - Don't install gzipped man page (Solaris again). +# - Don't overwrite existing config files, and install new versions as *.new. +# Fix permissions/ownership here too. +# - Better testing before removing directories. +# - Some better messages during install, ie 'Preserving configs', etc. +# - Better handling of install-strip to fix previous problem of trying to strip +# init scripts. +# - Crude test for valid USER in case is set on command line. +# - Force immediate exit on some errors (eg invalid group). +# +# Revision 1.126 2002/10/16 05:38:00 hal9 +# More make install/uninstall updates: +# -Make compatible with install-sh with does not support -b flag, and can only +# handle one file at a time (sigh). +# -Manually save existing config files, if they exist. +# -Fix install-strip so does not try to strip init scripts. +# +# Revision 1.125 2002/10/15 05:53:34 hal9 +# A few more cleanups: +# -use mkinstalldirs consistently. +# -Install init script and logrotate only is prefix=/usr/local (installed to +# system dir /etc instead of /usr/local...) +# -Test for directory existence before removing to avoid misleading error +# messages. +# +# Revision 1.124 2002/10/13 19:58:09 hal9 +# Hopefully, this is final updates for install and uninstall targets. +# - Fix typo in chown syntax +# - chmod on mkinstalldirs to make it executable (is there a better way?). +# - Cleanup comments, and revert most of previous output cleanup changes. +# - Include all HTML docs, since there are cross links between these. +# - Improved group handling (still some potential problems, see FIXME). +# - Update PHONY targets. +# - Uninstall was not removing CONF and LOG destinations in some situations. +# - Various other minor cleanups. +# +# Revision 1.123 2002/10/12 06:05:41 hal9 +# WIP: This is mostly to fix various problems encountered on SF CF Solaris +# servers for the install target only. This did not handle /[^C]*, test -e, not +# quoting within tests (ie [ `id $(USER)` = `id` ] needs quoting) in some +# situations, and does not support id -u (with the id in $PATH, but there is +# another...). Also, cleaned up output. Needs testing. I am unable to test the +# root install stuff either. It installs now at least (not tested further). +# A few other nits. +# +# Revision 1.122 2002/10/11 06:03:08 hal9 +# Really install FAQ this time, and not u-m in two locations. Include images +# for u-m. +# # Revision 1.120 2002/10/10 20:39:27 dessent # #