--- tcp_wrappers_7.6.orig/Makefile 1997-03-21 19:27:21.000000000 +0100 +++ tcp_wrappers_7.6/Makefile 2011-01-17 15:40:16.000000000 +0100 @@ -1,5 +1,8 @@ # @(#) Makefile 1.23 97/03/21 19:27:20 +# unset the HOSTNAME environment variable +HOSTNAME = + what: @echo @echo "Usage: edit the REAL_DAEMON_DIR definition in the Makefile then:" @@ -19,7 +22,7 @@ what: @echo " generic (most bsd-ish systems with sys5 compatibility)" @echo " 386bsd aix alpha apollo bsdos convex-ultranet dell-gcc dgux dgux543" @echo " dynix epix esix freebsd hpux irix4 irix5 irix6 isc iunix" - @echo " linux machten mips(untested) ncrsvr4 netbsd next osf power_unix_211" + @echo " linux gnu machten mips(untested) ncrsvr4 netbsd next osf power_unix_211" @echo " ptx-2.x ptx-generic pyramid sco sco-nis sco-od2 sco-os5 sinix sunos4" @echo " sunos40 sunos5 sysv4 tandem ultrix unicos7 unicos8 unixware1 unixware2" @echo " uts215 uxp" @@ -43,8 +46,8 @@ what: # Ultrix 4.x SunOS 4.x ConvexOS 10.x Dynix/ptx #REAL_DAEMON_DIR=/usr/etc # -# SysV.4 Solaris 2.x OSF AIX -#REAL_DAEMON_DIR=/usr/sbin +# SysV.4 Solaris 2.x OSF AIX Linux +REAL_DAEMON_DIR=/usr/sbin # # BSD 4.4 #REAL_DAEMON_DIR=/usr/libexec @@ -143,8 +146,15 @@ freebsd: linux: @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ - LIBS= RANLIB=ranlib ARFLAGS=rv AUX_OBJ=setenv.o \ - NETGROUP= TLI= EXTRA_CFLAGS="-DBROKEN_SO_LINGER" all + LIBS=$(MYLIB) RANLIB=ranlib ARFLAGS=rv AUX_OBJ=weak_symbols.o \ + NETGROUP=-DNETGROUP TLI= VSYSLOG= BUGS= all \ + EXTRA_CFLAGS="-DSYS_ERRLIST_DEFINED -DHAVE_WEAKSYMS -D_REENTRANT" + +gnu: + @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ + LIBS=$(MYLIB) RANLIB=ranlib ARFLAGS=rv AUX_OBJ=weak_symbols.o \ + NETGROUP=-DNETGROUP TLI= VSYSLOG= BUGS= all \ + EXTRA_CFLAGS="-DHAVE_STRERROR -DHAVE_WEAKSYMS -D_REENTRANT" # This is good for many SYSV+BSD hybrids with NIS, probably also for HP-UX 7.x. hpux hpux8 hpux9 hpux10: @@ -391,7 +401,7 @@ AR = ar # the ones provided with this source distribution. The environ.c module # implements setenv(), getenv(), and putenv(). -AUX_OBJ= setenv.o +#AUX_OBJ= setenv.o #AUX_OBJ= environ.o #AUX_OBJ= environ.o strcasecmp.o @@ -454,7 +464,8 @@ AUX_OBJ= setenv.o # host name aliases. Compile with -DSOLARIS_24_GETHOSTBYNAME_BUG to work # around this. The workaround does no harm on other Solaris versions. -BUGS = -DGETPEERNAME_BUG -DBROKEN_FGETS -DLIBC_CALLS_STRTOK +BUGS = +#BUGS = -DGETPEERNAME_BUG -DBROKEN_FGETS -DLIBC_CALLS_STRTOK #BUGS = -DGETPEERNAME_BUG -DBROKEN_FGETS -DINET_ADDR_BUG #BUGS = -DGETPEERNAME_BUG -DBROKEN_FGETS -DSOLARIS_24_GETHOSTBYNAME_BUG @@ -464,7 +475,7 @@ BUGS = -DGETPEERNAME_BUG -DBROKEN_FGETS # If your system supports NIS or YP-style netgroups, enable the following # macro definition. Netgroups are used only for host access control. # -#NETGROUP= -DNETGROUP +NETGROUP= -DNETGROUP ############################################################### # System dependencies: whether or not your system has vsyslog() @@ -491,7 +502,7 @@ VSYSLOG = -Dvsyslog=myvsyslog # Uncomment the next definition to turn on the language extensions # (examples: allow, deny, banners, twist and spawn). # -#STYLE = -DPROCESS_OPTIONS # Enable language extensions. +STYLE = -DPROCESS_OPTIONS # Enable language extensions. ################################################################ # Optional: Changing the default disposition of logfile records @@ -514,7 +525,7 @@ VSYSLOG = -Dvsyslog=myvsyslog # # The LOG_XXX names below are taken from the /usr/include/syslog.h file. -FACILITY= LOG_MAIL # LOG_MAIL is what most sendmail daemons use +FACILITY= LOG_DAEMON # LOG_MAIL is what most sendmail daemons use # The syslog priority at which successful connections are logged. @@ -610,7 +621,7 @@ TABLES = -DHOSTS_DENY=\"/etc/hosts.deny\ # Paranoid mode implies hostname lookup. In order to disable hostname # lookups altogether, see the next section. -PARANOID= -DPARANOID +#PARANOID= -DPARANOID ######################################## # Optional: turning off hostname lookups @@ -623,7 +634,7 @@ PARANOID= -DPARANOID # In order to perform selective hostname lookups, disable paranoid # mode (see previous section) and comment out the following definition. -HOSTNAME= -DALWAYS_HOSTNAME +#HOSTNAME= -DALWAYS_HOSTNAME ############################################# # Optional: Turning on host ADDRESS checking @@ -649,28 +660,47 @@ HOSTNAME= -DALWAYS_HOSTNAME # source-routed traffic in the kernel. Examples: 4.4BSD derivatives, # Solaris 2.x, and Linux. See your system documentation for details. # -# KILL_OPT= -DKILL_IP_OPTIONS +KILL_OPT= -DKILL_IP_OPTIONS ## End configuration options ############################ # Protection against weird shells or weird make programs. +CC = gcc SHELL = /bin/sh -.c.o:; $(CC) $(CFLAGS) -c $*.c +.c.o:; $(CC) $(CFLAGS) -o $*.o -c $*.c -CFLAGS = -O -DFACILITY=$(FACILITY) $(ACCESS) $(PARANOID) $(NETGROUP) \ +SOMAJOR = 0 +SOMINOR = 7.6 + +LIB = libwrap.a +SHLIB = shared/libwrap.so.$(SOMAJOR).$(SOMINOR) +SHLIBSOMAJ= shared/libwrap.so.$(SOMAJOR) +SHLIBSO = shared/libwrap.so +SHLIBFLAGS = -Lshared -lwrap + +shared/%.o: %.c + $(CC) $(CFLAGS) $(SHCFLAGS) -c $< -o $@ + +OPT_CFLAGS = -O2 -g +CFLAGS = $(OPT_CFLAGS) -DFACILITY=$(FACILITY) $(ACCESS) $(PARANOID) $(NETGROUP) \ $(BUGS) $(SYSTYPE) $(AUTH) $(UMASK) \ -DREAL_DAEMON_DIR=\"$(REAL_DAEMON_DIR)\" $(STYLE) $(KILL_OPT) \ -DSEVERITY=$(SEVERITY) -DRFC931_TIMEOUT=$(RFC931_TIMEOUT) \ $(UCHAR) $(TABLES) $(STRINGS) $(TLI) $(EXTRA_CFLAGS) $(DOT) \ $(VSYSLOG) $(HOSTNAME) +SHLINKFLAGS = -shared -Xlinker -soname -Xlinker libwrap.so.$(SOMAJOR) -lc $(LIBS) +SHCFLAGS = -fPIC -shared -D_REENTRANT + LIB_OBJ= hosts_access.o options.o shell_cmd.o rfc931.o eval.o \ hosts_ctl.o refuse.o percent_x.o clean_exit.o $(AUX_OBJ) \ $(FROM_OBJ) fix_options.o socket.o tli.o workarounds.o \ update.o misc.o diag.o percent_m.o myvsyslog.o +SHLIB_OBJ= $(addprefix shared/, $(LIB_OBJ)); + FROM_OBJ= fromhost.o KIT = README miscd.c tcpd.c fromhost.c hosts_access.c shell_cmd.c \ @@ -684,46 +714,78 @@ KIT = README miscd.c tcpd.c fromhost.c h refuse.c tcpdchk.8 setenv.c inetcf.c inetcf.h scaffold.c \ scaffold.h tcpdmatch.8 README.NIS -LIB = libwrap.a - -all other: config-check tcpd tcpdmatch try-from safe_finger tcpdchk +all other: config-check tcpd tcpdmatch try-from safe_finger tcpdchk $(LIB) # Invalidate all object files when the compiler options (CFLAGS) have changed. config-check: @set +e; test -n "$(REAL_DAEMON_DIR)" || { make; exit 1; } - @set +e; echo $(CFLAGS) >/tmp/cflags.$$$$ ; \ - if cmp cflags /tmp/cflags.$$$$ ; \ - then rm /tmp/cflags.$$$$ ; \ - else mv /tmp/cflags.$$$$ cflags ; \ + @set +e; echo $(CFLAGS) >cflags.new ; \ + if cmp cflags cflags.new ; \ + then rm cflags.new ; \ + else mv cflags.new cflags ; \ fi >/dev/null 2>/dev/null + @if [ ! -d shared ]; then mkdir shared; fi $(LIB): $(LIB_OBJ) rm -f $(LIB) $(AR) $(ARFLAGS) $(LIB) $(LIB_OBJ) -$(RANLIB) $(LIB) -tcpd: tcpd.o $(LIB) - $(CC) $(CFLAGS) -o $@ tcpd.o $(LIB) $(LIBS) +$(SHLIB): $(SHLIB_OBJ) + rm -f $(SHLIB) + $(CC) $(LDFLAGS) -o $(SHLIB) $(SHLINKFLAGS) $(SHLIB_OBJ) + ln -s $(notdir $(SHLIB)) $(SHLIBSOMAJ) + ln -s $(notdir $(SHLIBSOMAJ)) $(SHLIBSO) -miscd: miscd.o $(LIB) - $(CC) $(CFLAGS) -o $@ miscd.o $(LIB) $(LIBS) +tcpd: tcpd.o $(SHLIB) + $(CC) $(LDFLAGS) -o $@ tcpd.o $(SHLIBFLAGS) -safe_finger: safe_finger.o $(LIB) - $(CC) $(CFLAGS) -o $@ safe_finger.o $(LIB) $(LIBS) +miscd: miscd.o $(SHLIB) + $(CC) $(LDFLAGS) -o $@ miscd.o $(SHLIBFLAGS) + +safe_finger: safe_finger.o $(SHLIB) + $(CC) $(LDFLAGS) -o $@ safe_finger.o $(SHLIBFLAGS) TCPDMATCH_OBJ = tcpdmatch.o fakelog.o inetcf.o scaffold.o -tcpdmatch: $(TCPDMATCH_OBJ) $(LIB) - $(CC) $(CFLAGS) -o $@ $(TCPDMATCH_OBJ) $(LIB) $(LIBS) +tcpdmatch: $(TCPDMATCH_OBJ) $(SHLIB) + $(CC) $(LDFLAGS) -o $@ $(TCPDMATCH_OBJ) $(SHLIBFLAGS) -try-from: try-from.o fakelog.o $(LIB) - $(CC) $(CFLAGS) -o $@ try-from.o fakelog.o $(LIB) $(LIBS) +try-from: try-from.o fakelog.o $(SHLIB) + $(CC) $(LDFLAGS) -o $@ try-from.o fakelog.o $(SHLIBFLAGS) TCPDCHK_OBJ = tcpdchk.o fakelog.o inetcf.o scaffold.o -tcpdchk: $(TCPDCHK_OBJ) $(LIB) - $(CC) $(CFLAGS) -o $@ $(TCPDCHK_OBJ) $(LIB) $(LIBS) +tcpdchk: $(TCPDCHK_OBJ) $(SHLIB) + $(CC) $(LDFLAGS) -o $@ $(TCPDCHK_OBJ) $(SHLIBFLAGS) + +install: install-lib install-bin install-dev + +install-lib: + install -o root -g root -m 0644 $(SHLIB) ${DESTDIR}/lib/ + ln -s $(notdir $(SHLIB)) ${DESTDIR}/lib/$(notdir $(SHLIBSOMAJ)) + +install-bin: + install -o root -g root -m 0755 tcpd ${DESTDIR}/usr/sbin/ + install -o root -g root -m 0755 tcpdchk ${DESTDIR}/usr/sbin/ + install -o root -g root -m 0755 tcpdmatch ${DESTDIR}/usr/sbin/ + install -o root -g root -m 0755 try-from ${DESTDIR}/usr/sbin/ + install -o root -g root -m 0755 safe_finger ${DESTDIR}/usr/sbin/ + install -o root -g root -m 0644 tcpd.8 ${DESTDIR}/usr/share/man/man8/ + install -o root -g root -m 0644 tcpdchk.8 ${DESTDIR}/usr/share/man/man8/ + install -o root -g root -m 0644 tcpdmatch.8 ${DESTDIR}/usr/share/man/man8/ + install -o root -g root -m 0644 hosts_access.5 ${DESTDIR}/usr/share/man/man5/ + install -o root -g root -m 0644 hosts_options.5 ${DESTDIR}/usr/share/man/man5/ + +install-dev: + ln -s /lib/$(notdir $(SHLIBSOMAJ)) ${DESTDIR}/usr/lib/$(notdir $(SHLIBSO)) + install -o root -g root -m 0644 hosts_access.3 ${DESTDIR}/usr/share/man/man3/ + install -o root -g root -m 0644 tcpd.h ${DESTDIR}/usr/include/ + install -o root -g root -m 0644 $(LIB) ${DESTDIR}/usr/lib/ + ln -s hosts_access.3 ${DESTDIR}/usr/share/man/man3/hosts_ctl.3 + ln -s hosts_access.3 ${DESTDIR}/usr/share/man/man3/request_init.3 + ln -s hosts_access.3 ${DESTDIR}/usr/share/man/man3/request_set.3 shar: $(KIT) @shar $(KIT) @@ -739,7 +801,8 @@ archive: clean: rm -f tcpd miscd safe_finger tcpdmatch tcpdchk try-from *.[oa] core \ - cflags + cflags libwrap*.so* + rm -rf shared tidy: clean chmod -R a+r . @@ -885,5 +948,6 @@ update.o: cflags update.o: mystdarg.h update.o: tcpd.h vfprintf.o: cflags +weak_symbols.o: tcpd.h workarounds.o: cflags workarounds.o: tcpd.h