pkgsrc/mail/majordomo/patches/patch-aa
2017-11-26 09:11:03 +00:00

229 lines
7.6 KiB
Text

$NetBSD: patch-aa,v 1.8 2017/11/26 09:11:03 spz Exp $
warp the Makefile template to fit into pkgsrc
add CFLAGS and LDFLAGS to the wrapper compilation so it'll pick up RELRO
--- Makefile.orig 2000-01-18 14:01:17.000000000 +0000
+++ Makefile
@@ -13,27 +13,29 @@
#
# Put the location of your Perl binary here:
-PERL = /bin/perl
+PERL = @PERL@
# What do you call your C compiler?
CC = cc
# Where do you want Majordomo to be installed? This CANNOT be the
# current directory (where you unpacked the distribution)
-W_HOME = /usr/test/majordomo-$(VERSION)
+W_HOME = @PREFIX@/libexec/majordomo
+HOME = @HOME@
# Where do you want man pages to be installed?
-MAN = $(W_HOME)/man
+MAN = @PREFIX@/${PKGMANDIR}
# You need to have or create a user and group which majordomo will run as.
# Enter the numeric UID and GID (not their names!) here:
-W_USER = 123
-W_GROUP = 45
+W_USER = @UID@
+W_GROUP = @GID@
# These set the permissions for all installed files and executables (except
# the wrapper), respectively. Some sites may wish to make these more
# lenient, or more restrictive.
-FILE_MODE = 644
+CF_MODE = 664
+MAN_MODE = 444
EXEC_MODE = 755
HOME_MODE = 751
@@ -41,8 +43,8 @@ HOME_MODE = 751
# BSDI or other 4.4-based BSD, Linux) use the following four lines. Do not
# change these values!
WRAPPER_OWNER = root
-WRAPPER_GROUP = $(W_GROUP)
-WRAPPER_MODE = 4755
+WRAPPER_GROUP = $(W_MAJORDOMO_GROUP)
+WRAPPER_MODE = 4555
POSIX = -DPOSIX_UID=$(W_USER) -DPOSIX_GID=$(W_GROUP)
# Otherwise, if your system is NOT POSIX (e.g. SunOS 4.x, SGI Irix 4,
# HP DomainOS) then comment out the above four lines and uncomment
@@ -62,11 +64,14 @@ POSIX = -DPOSIX_UID=$(W_USER) -DPOSIX_GI
# parent process, and without the leading "W_" in the variable names) gets
# passed to processes run by "wrapper"
W_SHELL = /bin/sh
-W_PATH = /bin:/usr/bin:/usr/ucb
-W_MAJORDOMO_CF = $(W_HOME)/majordomo.cf
+W_PATH = /bin:/usr/bin
+W_MAJORDOMO_CF = @MAJORDOMO_CF@
+
+W_MAJORDOMO_USER = @MAJORDOMO_USER@
+W_MAJORDOMO_GROUP = @MAJORDOMO_GROUP@
# A directory for temp files..
-TMPDIR = /usr/tmp
+TMPDIR = @TMPDIR@
#--------YOU SHOULDN'T HAVE TO CHANGE ANYTHING BELOW THIS LINE.-------------
@@ -76,8 +81,9 @@ VERSION = 1.94.5
SHELL = /bin/sh
WRAPPER_FLAGS = -DBIN=\"$(W_HOME)\" -DPATH=\"PATH=$(W_PATH)\" \
- -DHOME=\"HOME=$(W_HOME)\" -DSHELL=\"SHELL=$(W_SHELL)\" \
+ -DHOME=\"HOME=$(HOME)\" -DSHELL=\"SHELL=$(W_SHELL)\" \
-DMAJORDOMO_CF=\"MAJORDOMO_CF=$(W_MAJORDOMO_CF)\" \
+ -DMAJORDOMO_USER=\"$(W_MAJORDOMO_USER)\" \
$(POSIX)
INSTALL = ./install.sh
@@ -94,7 +100,7 @@ BIN = bounce-remind config_parse.pl ma
majordomo_version.pl request-answer resend \
shlock.pl config-test archive2.pl digest
-INSTALL_FLAGS = -O $(W_USER) -g $(W_GROUP)
+INSTALL_FLAGS = -O root -g $(W_MAJORDOMO_GROUP)
default:
@echo "make what?"
@@ -118,12 +124,12 @@ install: wrapper install-scripts install
install-wrapper: wrapper
$(INSTALL) -o $(WRAPPER_OWNER) -g $(WRAPPER_GROUP) \
- -m $(WRAPPER_MODE) wrapper $(W_HOME)/wrapper
+ -m $(WRAPPER_MODE) wrapper $(DESTDIR)$(W_HOME)/wrapper
@echo ""
@echo "To verify that all the permissions and etc are correct,"
@echo "run the command"
@echo ""
- @echo " cd $(W_HOME); ./wrapper config-test"
+ @echo " cd $(DESTDIR)$(W_HOME); ./wrapper config-test"
# fix where perl lives.
# Create a tmp directory to stuff all the files in, so we
@@ -143,30 +149,29 @@ config-scripts:
install-scripts: config-scripts
- $(INSTALL) -m $(HOME_MODE) $(INSTALL_FLAGS) . $(W_HOME)
- $(INSTALL) -m $(EXEC_MODE) $(INSTALL_FLAGS) . $(W_HOME)/bin
+ $(INSTALL) -m $(HOME_MODE) $(INSTALL_FLAGS) . $(DESTDIR)$(W_HOME)
- @echo "Copying tools to $(W_HOME)/bin"
+ @echo "Copying tools to $(DESTDIR)@PREFIX@/bin"
@for file in $(BINBIN); do \
$(INSTALL) -m $(EXEC_MODE) $(INSTALL_FLAGS) \
- $(TMP)/$$file $(W_HOME)/bin/$$file; \
+ $(TMP)/$$file $(DESTDIR)@PREFIX@/bin/$$file; \
done
- @echo "Copying Majordomo files to $(W_HOME)"
+ @echo "Copying Majordomo files to $(DESTDIR)$(W_HOME)"
@for file in $(BIN); do \
$(INSTALL) -m $(EXEC_MODE) $(INSTALL_FLAGS) \
- $(TMP)/$$file $(W_HOME)/$$file; \
+ $(TMP)/$$file $(DESTDIR)$(W_HOME)/$$file; \
done
- @echo "Copying archiving and other tools to $(W_HOME)/Tools"
+ @echo "Copying archiving and other tools to $(DESTDIR)$(W_HOME)/Tools"
- $(INSTALL) -m $(EXEC_MODE) $(INSTALL_FLAGS) . $(W_HOME)/Tools
+ $(INSTALL) -m $(EXEC_MODE) $(INSTALL_FLAGS) . $(DESTDIR)$(W_HOME)/Tools
@for file in $(TOOLS); do \
$(INSTALL) -m $(EXEC_MODE) $(INSTALL_FLAGS) \
- $(TMP)/$$file $(W_HOME)/Tools/$$file; \
+ $(TMP)/$$file $(DESTDIR)$(W_HOME)/Tools/$$file; \
done
@rm -rf $(TMP)
@@ -177,49 +182,43 @@ install-scripts: config-scripts
# all cases, the sample.cf file must be installed so that config-test will
# be able to check for new variables.
install-cf:
- @if [ ! -f $(W_HOME)/majordomo.cf ]; \
- then \
- if [ -f majordomo.cf ]; \
- then \
- echo "Using majordomo.cf"; \
- $(INSTALL) -m $(FILE_MODE) $(INSTALL_FLAGS) \
- majordomo.cf $(W_HOME)/majordomo.cf; \
- else \
- echo "Using sample.cf"; \
- $(INSTALL) -m $(FILE_MODE) $(INSTALL_FLAGS) \
- sample.cf $(W_HOME)/majordomo.cf; \
- fi; \
- else \
- echo "Using installed majordomo.cf"; \
- fi;
- @$(INSTALL) -m $(FILE_MODE) $(INSTALL_FLAGS) \
- sample.cf $(W_HOME)
+ # @if [ ! -f $(W_MAJORDOMO_CF) ]; \
+ # then \
+ # if [ -f majordomo.cf ]; \
+ # then \
+ # echo "Using majordomo.cf"; \
+ # $(INSTALL) -m $(CF_MODE) $(INSTALL_FLAGS) \
+ # majordomo.cf $(DESTDIR)$(W_MAJORDOMO_CF); \
+ # else \
+ # echo "Using sample.cf"; \
+ # $(INSTALL) -m $(CF_MODE) $(INSTALL_FLAGS) \
+ # sample.cf $(DESTDIR)$(W_MAJORDOMO_CF); \
+ # fi; \
+ # else \
+ # echo "Using installed majordomo.cf"; \
+ # fi;
+ @$(INSTALL) -m $(CF_MODE) $(INSTALL_FLAGS) \
+ sample.cf $(DESTDIR)$(W_HOME)
install-man:
@echo "Installing manual pages in $(MAN)"
- @$(INSTALL) -m $(EXEC_MODE) $(INSTALL_FLAGS) \
- . $(MAN)
- @$(INSTALL) -m $(EXEC_MODE) $(INSTALL_FLAGS) \
- . $(MAN)/man1
- @$(INSTALL) -m $(EXEC_MODE) $(INSTALL_FLAGS) \
- . $(MAN)/man8
- @$(INSTALL) -m $(FILE_MODE) $(INSTALL_FLAGS) \
- Doc/man/approve.1 $(MAN)/man1/approve.1
- @$(INSTALL) -m $(FILE_MODE) $(INSTALL_FLAGS) \
- Doc/man/digest.1 $(MAN)/man1/digest.1
- @$(INSTALL) -m $(FILE_MODE) $(INSTALL_FLAGS) \
- Doc/man/bounce.1 $(MAN)/man1/bounce.1
- @$(INSTALL) -m $(FILE_MODE) $(INSTALL_FLAGS) \
- Doc/man/bounce-remind.1 $(MAN)/man1/bounce-remind.1
- @$(INSTALL) -m $(FILE_MODE) $(INSTALL_FLAGS) \
- Doc/man/resend.1 $(MAN)/man1/resend.1
- @$(INSTALL) -m $(FILE_MODE) $(INSTALL_FLAGS) \
- Doc/man/majordomo.8 $(MAN)/man8/majordomo.8
- @$(INSTALL) -m $(FILE_MODE) $(INSTALL_FLAGS) \
- Doc/man/resend.1 $(MAN)/man1/resend.1
+ @$(INSTALL) -m $(MAN_MODE) $(INSTALL_FLAGS) \
+ Doc/man/approve.1 $(DESTDIR)$(MAN)/man1/approve.1
+ @$(INSTALL) -m $(MAN_MODE) $(INSTALL_FLAGS) \
+ Doc/man/digest.1 $(DESTDIR)$(MAN)/man8/digest.8
+ @$(INSTALL) -m $(MAN_MODE) $(INSTALL_FLAGS) \
+ Doc/man/bounce.1 $(DESTDIR)$(MAN)/man1/bounce.1
+ @$(INSTALL) -m $(MAN_MODE) $(INSTALL_FLAGS) \
+ Doc/man/bounce-remind.1 $(DESTDIR)$(MAN)/man1/bounce-remind.1
+ @$(INSTALL) -m $(MAN_MODE) $(INSTALL_FLAGS) \
+ Doc/man/resend.1 $(DESTDIR)$(MAN)/man1/resend.1
+ @$(INSTALL) -m $(MAN_MODE) $(INSTALL_FLAGS) \
+ Doc/man/majordomo.8 $(DESTDIR)$(MAN)/man8/majordomo.8
+ @$(INSTALL) -m $(MAN_MODE) $(INSTALL_FLAGS) \
+ Doc/man/resend.1 $(DESTDIR)$(MAN)/man1/resend.1
wrapper: wrapper.c
- $(CC) $(WRAPPER_FLAGS) -o wrapper wrapper.c
+ $(CC) $(CFLAGS) $(LDFLAGS) $(WRAPPER_FLAGS) -o wrapper wrapper.c
clean:
rm -f wrapper *~