From f76da59ed687f3870fcf1aede7724f34bb0e7fce Mon Sep 17 00:00:00 2001 From: cvsdist Date: Thu, 9 Sep 2004 14:47:09 +0000 Subject: [PATCH] =?UTF-8?q?auto-import=20changelog=20data=20from=20xinetd-?= =?UTF-8?q?2.1.8.9pre9-6.src.rpm=20Fri=20Aug=2018=202000=20Trond=20Eivind?= =?UTF-8?q?=20Glomsr=F8d=20=20-=20fix=20initscript,=20test=20networ?= =?UTF-8?q?k=20file=20before=20source=20it=20(Bug=20#16247)=20Tue=20Aug=20?= =?UTF-8?q?15=202000=20Trond=20Eivind=20Glomsr=F8d=20=20-=20added=20support=20for=20"-pidfile"=20option=20(#1553?= =?UTF-8?q?1)=20Fri=20Aug=2004=202000=20Trond=20Eivind=20Glomsr=F8d=20=20-=20added=20patch=20to=20ignore=20.rpmsave,=20.r?= =?UTF-8?q?pmorig,=20.rpmnew,=20~=20suffixed=20files=20=20=20=20=20(#15304?= =?UTF-8?q?)=20Thu=20Aug=2003=202000=20Trond=20Eivind=20Glomsr=F8d=20=20-=202.1.8.9pre9,=20old=20patches=20are=20now=20in?= =?UTF-8?q?tegrated.=20Wed=20Aug=2002=202000=20Trond=20Eivind=20Glomsr=F8d?= =?UTF-8?q?=20=20-=20fix=20converting=20of=20"wait"=20argu?= =?UTF-8?q?ment=20(#13884)=20-=20remove=20tcpd=20and=20/usr/sbin/tcpd=20fr?= =?UTF-8?q?om=20inetd.conf=20services=20before=20converting=20=20=20=20=20?= =?UTF-8?q?-=20xinetd=20is=20linked=20against=20tcp=5Fwrappers=20Mon=20Jul?= =?UTF-8?q?=2031=202000=20Trond=20Eivind=20Glomsr=F8d=20?= =?UTF-8?q?=20-=20fix=20linuxconf=20restart=20problem=20(#14856)=20-=20fix?= =?UTF-8?q?=20conditional=20restart=20-=20mark=20/etc/xinetd.conf=20as=20a?= =?UTF-8?q?=20configuration=20file=20Tue=20Jul=2025=202000=20Bill=20Nottin?= =?UTF-8?q?gham=20=20-=20um,=20we=20*need*=20to=20prer?= =?UTF-8?q?eq=20/etc/init.d=20Mon=20Jul=2024=202000=20Bernhard=20Rosenkrae?= =?UTF-8?q?nzer=20=20-=20Don't=20require=20/etc/init.d=20?= =?UTF-8?q?Sat=20Jul=2022=202000=20Bill=20Nottingham=20=20-=20rebuild=20Tue=20Jul=2018=202000=20Trond=20Eivind=20Glom?= =?UTF-8?q?sr=F8d=20=20-=20fix=20the=20sections=20of=20the?= =?UTF-8?q?=20man=20pages=20(#14244)=20Tue=20Jul=2018=202000=20Trond=20Eiv?= =?UTF-8?q?ind=20Glomsr=F8d=20=20-=20remove=20itox,=20as?= =?UTF-8?q?=20it=20wouldn't=20do=20the=20right=20thing=20with=20our=20conf?= =?UTF-8?q?iguration=20-=20same=20with=20xconv.pl=20-=20some=20changes=20t?= =?UTF-8?q?o=20the=20installation=20process=20Mon=20Jul=2017=202000=20Tron?= =?UTF-8?q?d=20Eivind=20Glomsr=F8d=20=20-=20move=20initscr?= =?UTF-8?q?ipt=20back=20to=20/etc/rc.d/init.d=20Fri=20Jul=2014=202000=20Tr?= =?UTF-8?q?ond=20Eivind=20Glomsr=F8d=20=20-=20change=20pro?= =?UTF-8?q?cess=20name=20in=20init=20file=20Thu=20Jul=2013=202000=20Prospe?= =?UTF-8?q?ctor=20=20-=20automatic=20rebuild=20Fri=20?= =?UTF-8?q?Jul=2007=202000=20Nalin=20Dahyabhai=20=20-=20?= =?UTF-8?q?start=20the=20daemon=20with=20the=20"-reuse"=20flag=20Thu=20Jul?= =?UTF-8?q?=2006=202000=20Trond=20Eivind=20Glomsr=F8d=20?= =?UTF-8?q?=20-=20"Prereq:",=20not=20"Requires:"=20for=20/etc/init.d=20Thu?= =?UTF-8?q?=20Jul=2006=202000=20Trond=20Eivind=20Glomsr=F8d=20=20-=20require=20/etc/init.d=20Wed=20Jul=2005=202000=20Flor?= =?UTF-8?q?ian=20La=20Roche=20=20-=20upper=20t?= =?UTF-8?q?he=20number=20of=20instances=20to=2060=20Sun=20Jul=2002=202000?= =?UTF-8?q?=20Nalin=20Dahyabhai=20=20-=20fix=20a=20memor?= =?UTF-8?q?y-allocation=20bug=20Wed=20Jun=2028=202000=20Trond=20Eivind=20G?= =?UTF-8?q?lomsr=F8d=20=20-=202.1.8.9pre8=20Wed=20Jun=2021?= =?UTF-8?q?=202000=20Trond=20Eivind=20Glomsr=F8d=20=20-=20?= =?UTF-8?q?moved=20to=20/etc/init.d=20Wed=20Jun=2021=202000=20Trond=20Eivi?= =?UTF-8?q?nd=20Glomsr=F8d=20=20-=20changed=20specfile=20a?= =?UTF-8?q?nd=20initfile=20to=20implement=20conditional=20restart=20Sun=20?= =?UTF-8?q?Jun=2018=202000=20Trond=20Eivind=20Glomsr=F8d=20=20-=202.1.8.9pre7=20-=20now=20obsoletes=20inetd=20-=20use=20%?= =?UTF-8?q?{=5Ftmppath}=20Sun=20Jun=2004=202000=20Trond=20Eivind=20Glomsr?= =?UTF-8?q?=F8d=20=20-=202.1.8.9pre6=20-=20added=20convert?= =?UTF-8?q?er=20script=20which=20can=20convert=20specified=20or=20remaing?= =?UTF-8?q?=20uncoverted=20=20=20=20=20services=20-=20use=20%{=5Fmandir}?= =?UTF-8?q?=20-=20removed=20+x=20on=20xinetd.conf=20Wed=20May=2024=202000?= =?UTF-8?q?=20Trond=20Eivind=20Glomsr=F8d=20=20-=202.1.8.9?= =?UTF-8?q?pre4=20-=20authpriv=20patch=20no=20longer=20needed=20Tue=20May?= =?UTF-8?q?=2023=202000=20Trond=20Eivind=20Glomsr=F8d=20?= =?UTF-8?q?=20-=20/etc/xinetd.d=20is=20now=20part=20of=20the=20filesystem?= =?UTF-8?q?=20package=20-=20more=20fixes=20to=20xinetd.init=20Mon=20May=20?= =?UTF-8?q?22=202000=20Trond=20Eivind=20Glomsr=F8d=20=20-?= =?UTF-8?q?=20fixed=20some=20obvious=20bugs=20in=20xinetd.init=20-=20added?= =?UTF-8?q?=20a=20default=20xinetd.conf=20-=20patched=20xinetd=20to=20unde?= =?UTF-8?q?rstand=20LOG=5FAUTHPRIV=20Fri=20May=2019=202000=20Trond=20Eivin?= =?UTF-8?q?d=20Glomsr=F8d=20=20-=20updated=20version=20-?= =?UTF-8?q?=20removed=20a=20define=20%ver=20(we=20already=20have=202.1.8.9?= =?UTF-8?q?pre9)=20-=20removed=20some=20extra=20CFLAGS=20declarations=20-?= =?UTF-8?q?=20added=20configuration=20directory,=20/etc/xinetd.d=20Mon=20F?= =?UTF-8?q?eb=2021=202000=20Tim=20Powers=20=20-=20fixed?= =?UTF-8?q?=20broken=20postun=20sections,=20should=20have=20been=20*preun*?= =?UTF-8?q?=20-=20fixed=20broken=20gzip=20of=20manpages=20Wed=20Jan=2019?= =?UTF-8?q?=202000=20Bernhard=20Rosenkraenzer=20=20-=202.?= =?UTF-8?q?1.8.8p8=20-=20Fix=20the=20init=20script=20(Bug=20#7277)=20-=20r?= =?UTF-8?q?emove=20our=20patches=20(no=20longer=20required)=20Tue=20Sep=20?= =?UTF-8?q?21=201999=20Bill=20Nottingham=20=20-=20add?= =?UTF-8?q?=20-lnsl=20Tue=20Sep=2007=201999=20Tim=20Powers=20=20-=20modification=20top=20install=20routine=20Mon=20Jul?= =?UTF-8?q?=2026=201999=20Tim=20Powers=20=20-=20updated?= =?UTF-8?q?=20source=20to=202.1.8.6b6=20-=20built=20for=206.1=20Mon=20Apr?= =?UTF-8?q?=2026=201999=20Bill=20Nottingham=20=20-=20u?= =?UTF-8?q?pdate=20to=202.1.8.6b5=20-=20build=20for=20PowerTools=20Sun=20J?= =?UTF-8?q?an=2010=201999=20Bill=20Nottingham=20=20-?= =?UTF-8?q?=20update=20to=202.1.8.5p2=20Tue=20Dec=2001=201998=20Bill=20Not?= =?UTF-8?q?tingham=20=20-=20intial=20build?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .cvsignore | 1 + sources | 1 + xinetd-inetdconvert | 222 +++++++++++++++++++++++++++++++++++++++++++ xinetd.init | 97 +++++++++++++++++++ xinetd.spec | 225 ++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 546 insertions(+) create mode 100755 xinetd-inetdconvert create mode 100644 xinetd.init create mode 100644 xinetd.spec diff --git a/.cvsignore b/.cvsignore index e69de29..96607c6 100644 --- a/.cvsignore +++ b/.cvsignore @@ -0,0 +1 @@ +xinetd-2.1.8.9pre9.tar.gz diff --git a/sources b/sources index e69de29..a36c7d4 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +89d1a8de01950f4a0006da2a7c346f6a xinetd-2.1.8.9pre9.tar.gz diff --git a/xinetd-inetdconvert b/xinetd-inetdconvert new file mode 100755 index 0000000..6c8977e --- /dev/null +++ b/xinetd-inetdconvert @@ -0,0 +1,222 @@ +#!/usr/bin/python +# +# A helper program to convert from an existing inetd.conf to +# individual files in /etc/xinetd.d (specifyable) +# +# This program is Copyright 2000 Red Hat, Inc. and is GPLed +# +# teg@redhat.com + +import re +import string +import os +import sys + +class InetdFile: + + # Intialize a inetd file, with the name of the file + # as the argument + + def __init__(self,filename): + self.filename=filename + file=open(filename,"r") + self.lines=file.readlines() + file.close() + # matches a service line in /etc/inetd.conf + + self.groupuser=re.compile(r"(\w+)\.(\w+)") + + # converts a a specified service given to a separate file in the + # directory given + + def writeServiceFile(self,directory,service): + content=self.convertService(service) + if(not content): + raise "No such service" + file=open(directory+"/"+service,"w") + file.write(content) + file.close() + + # convert a service by name - return a string with configuration + # info for xinetd if present, None otherwise + + def convertService(self,service): + for line in self.lines: + try: + parts=string.split(line) + if(parts[0]==service): + return self.makeService(line) + except: + junk=0 # Need to do something + return None + + # Return a list of enabled services + + def returnEnabledServices(self): + services={} + for line in self.lines: + try: + parts=string.split(line) + if(parts[0][0]!="#"): + services[parts[0]]=1 + except: + junk=0 # Need to do something + return services + + # Returns a string containing the xinetd.d/ equivalent of a line + # in inetd.conf - None if inactive or the line does not pass a + # simple check + + def makeService(self,line): + parts=string.split(line) + if(len(parts)<6): # Not a configuration line + return None + elif(parts[0][0]=="#"): # commented out + return None + + # Handle tcpd and /usr/sbin/tcpd - no longer + # necesarry, as we ship with tcp_wrapper support + # included + + if((parts[5]=="tcpd") or (parts[5]=="/usr/sbin/tcpd")): + parts[5:]=parts[6:] + + # Write the file + + res="# Converted by inetdconvert\n" + res=res+"service "+parts[0]+"\n{\n" + res=res+"\tsocket_type\t\t= "+parts[1]+"\n" + res=res+"\tprotocol\t\t= "+parts[2]+"\n" + + # Don't wait on tcp + + if( (parts[3]=="nowait") or (parts[2] == "tcp")): + res=res+"\twait\t\t\t= no\n" + else: + res=res+"\twait\t\t\t= yes\n" + hits2=self.groupuser.match(parts[4]) + if(hits2): + res=res+"\tuser\t\t\t= "+hits2.group(1)+"\n" + res=res+"\tgroup\t\t\t= "+hits2.group(2)+"\n" + else: + res=res+"\tuser\t\t\t= "+parts[4]+"\n" + res=res+"\tserver\t\t\t= "+parts[5]+"\n" + args="" + + + for i in range(6,len(parts)): + args=args+parts[i]+" " + if(args!=""): + res=res+"\tserver_args\t\t= "+args+"\n" + res=res+"\tdisable\t\t\t= no\n}\n" + return res + +# A class for a xinetd service file (for a single service) +# Doesn't do anything but return the name of the service + +class XinetdFile: + def __init__(self,filename): + self.filename=filename + file=open(filename,"r") + self.service=None + line=" " + while line: + line=file.readline() + parts=string.split(line) + if((len(parts)>=2) and (parts[0]=="service")): + self.service=parts[1] + break + file.close() + + def getService(self): + return self.service + +# A class for a directory of xinetd service files +# Doesn't do anything but return the name of the services + +class XinetdServices: + def __init__(self,directory): + self.directory=directory + + def findServices(self): + files=os.listdir(self.directory) + services={} + for file in files: + xf=XinetdFile(self.directory+"/"+file) + services[xf.getService()]=1 + return services + +# Converts a service from the requested inetd configuration file to an +# xinetd service file in the requested directory Note: It will +# overwrite an existing file with same name + +def convertService(inetdfile,directory,service): + ifile=InetdFile(inetdfile) + ifile.writeServiceFile(directory,service) + +# Converts all services from the requested inetd configuration files, +# except those already enabled in the same directory +# Note - doesn't handle multiple names on same service + +def convertRemaining(inetdfile,directory): + ifile=InetdFile(inetdfile) + existingservices=XinetdServices(directory) + xinetdservices=existingservices.findServices() + inetdservices=ifile.returnEnabledServices() + for service in inetdservices.keys(): + if(not xinetdservices.has_key(service)): + print "Converting "+service + ifile.writeServiceFile(directory,service) + else: + print service+" is already present" + + +# Prints a help message + +def printHelp(): + print """ +inetdconvert version 0.1 - Copyright (C) 2000 Red Hat Software + +This may be freely redistributed under the terms of the GNU Public License. + +usage: inetdconvert <-h|--help> + Display this help message + inetdconvert <<-d|--directory> directory> <--inetdfile file> service + Converts the service "service" - this must + match an entry in /etc/inetd.conf and will create a file + in /etc/xinetd.d by default, alternatively in "directory". + The service will be read from /etc/inetd.conf + inetdconvert <<-d|--directory> directory> <--inetdfile file> + --convertremaining Converts all nonconverted services +""" + + + +if __name__ == "__main__": + argv=sys.argv + directory="/etc/xinetd.d" + inetdfile="/etc/inetd.conf" + if(("-h" in argv) or ("--help" in argv) or (len(argv)==1)): + printHelp() + sys.exit(0) + if("-d" in argv): + directory=argv[argv.index("-d")+1] + argv.remove("-d") + argv.remove(directory) + elif ("--directory" in argv): + directory=argv[argv.index("--directory")+1] + argv.remove("--directory") + argv.remove(directory) + if("--inetdfile" in argv): + inetdfile=argv[argv.index("--inetdfile")+1] + argv.remove("--inetdfile") + argv.remove(inetdfile) + if("--convertremaining" in argv): + convertRemaining(inetdfile,directory) + sys.exit(0) + if(len(argv) < 2): + printHelp() + sys.exit(1) + convertService(inetdfile,directory,argv[1]) + sys.exit(0) + diff --git a/xinetd.init b/xinetd.init new file mode 100644 index 0000000..1486257 --- /dev/null +++ b/xinetd.init @@ -0,0 +1,97 @@ +#! /bin/sh +# +# xinetd This starts and stops xinetd. +# +# chkconfig: 345 50 50 +# description: xinetd is a powerful replacement for inetd. \ +# xinetd has access control machanisms, extensive \ +# logging capabilities, the ability to make services \ +# available based on time, and can place \ +# limits on the number of servers that can be started, \ +# among other things. +# +# processname: /usr/sbin/xinetd +# config: /etc/sysconfig/network +# config: /etc/xinetd.conf +# pidfile: /var/run/xinetd.pid + +PATH=/sbin:/bin:/usr/bin:/usr/sbin + +# Source function library. +. /etc/init.d/functions + +# Get config. +test -f /etc/sysconfig/network && . /etc/sysconfig/network + +# Check that networking is up. +[ ${NETWORKING} = "yes" ] || exit 0 + +[ -f /usr/sbin/xinetd ] || exit 1 +[ -f /etc/xinetd.conf ] || exit 1 + +RETVAL=0 + +start(){ + echo -n "Starting xinetd: " + daemon xinetd -reuse -pidfile /var/run/xinetd.pid + RETVAL=$? + echo + touch /var/lock/subsys/xinetd + return $RETVAL +} + +stop(){ + echo -n "Stopping xinetd: " + killproc xinetd + RETVAL=$? + echo + rm -f /var/lock/subsys/xinetd + return $RETVAL + +} + +reload(){ + echo -n "Reloading configuration: " + killproc xinetd -USR2 + RETVAL=$? + echo + return $RETVAL +} + +restart(){ + stop + start +} + +condrestart(){ + [ -e /var/lock/subsys/xinetd ] && restart + return 0 +} + + +# See how we were called. +case "$1" in + start) + start + ;; + stop) + stop + ;; + status) + status xinetd + ;; + restart) + restart + ;; + reload) + reload + ;; + condrestart) + condrestart + ;; + *) + echo "Usage: xinetd {start|stop|status|restart|condrestart|reload}" + RETVAL=1 +esac + +exit $RETVAL diff --git a/xinetd.spec b/xinetd.spec new file mode 100644 index 0000000..6ae9174 --- /dev/null +++ b/xinetd.spec @@ -0,0 +1,225 @@ +Summary: A secure replacement for inetd. +Name: xinetd +Version: 2.1.8.9pre9 +Release: 6 +License: Distributable (BSD-like) +Group: System Environment/Daemons +Source: http://synack.net/xinetd/xinetd-%{version}.tar.gz +Source1: xinetd.init +Source2: xinetd.conf +Source3: xinetd-inetdconvert +Patch0: xinetd-2.1.8.9pre9-skipjunkfiles.patch +Patch1: xinetd-2.1.8.9pre9-pidfile.patch +Patch2: xinetd-2.1.8.9pre9-tcpwrapper.patch +Provides: inetd +Prereq: /sbin/chkconfig /etc/init.d /sbin/service +BuildRequires: tcp_wrappers +Requires: filesystem >= 2.0.1 +URL: http://synack.net/xinetd/ +BuildRoot: %{_tmppath}/%{name}-%{version}-root +Obsoletes: inetd + +%description +Xinetd is a secure replacement for inetd, the Internet services +daemon. Xinetd provides access control for all services based on the +address of the remote host and/or on time of access and can prevent +denial-of-access attacks. Xinetd provides extensive logging, has no +limit on the number of server arguments and you can bind specific +services to specific IP addresses on your host machine. It also enables +information of a service to be in a separate file + +%prep +%setup -q +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 + +%build +autoconf +%configure --with-libwrap +make + +%install +rm -rf $RPM_BUILD_ROOT +mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d +%makeinstall DAEMONDIR=$RPM_BUILD_ROOT/usr/sbin MANDIR=$RPM_BUILD_ROOT/%{_mandir} + +install -m 755 %SOURCE1 $RPM_BUILD_ROOT/etc/rc.d/init.d/xinetd +install -m 644 %SOURCE2 $RPM_BUILD_ROOT/etc/xinetd.conf +install -m 755 %SOURCE3 $RPM_BUILD_ROOT/usr/sbin/inetdconvert +rm -f $RPM_BUILD_ROOT/%{_mandir}/man8/itox* +rm -f $RPM_BUILD_ROOT/usr/sbin/itox +rm -f $RPM_BUILD_ROOT/usr/sbin/xconv.pl + +%clean +rm -rf $RPM_BUILD_ROOT + +%post +if [ $1 = 1 ]; then + /sbin/chkconfig --add xinetd +fi + +%preun +if [ $1 = 0 ]; then + /sbin/chkconfig --del xinetd +fi + +%postun +if [ "$1" -ge "1" ]; then + /sbin/service xinetd condrestart >/dev/null 2>&1 +fi + + +%files +%defattr(-,root,root) +%doc INSTALL xinetd/CHANGELOG xinetd/COPYRIGHT README xinetd/sample.conf + +%config /etc/xinetd.conf +/usr/sbin/* +%{_mandir}/*/* +%config /etc/rc.d/init.d/xinetd + +%changelog +* Thu Aug 18 2000 Trond Eivind Glomsrød +- fix initscript, test network file before source it (Bug #16247) + +* Tue Aug 15 2000 Trond Eivind Glomsrød +- added support for "-pidfile" option (#15531) + +* Fri Aug 04 2000 Trond Eivind Glomsrød +- added patch to ignore .rpmsave, .rpmorig, .rpmnew, ~ + suffixed files (#15304) + +* Thu Aug 03 2000 Trond Eivind Glomsrød +- 2.1.8.9pre9, old patches are now integrated. + +* Wed Aug 02 2000 Trond Eivind Glomsrød +- fix converting of "wait" argument (#13884) +- remove tcpd and /usr/sbin/tcpd from inetd.conf services + before converting - xinetd is linked against tcp_wrappers + +* Mon Jul 31 2000 Trond Eivind Glomsrød +- fix linuxconf restart problem (#14856) +- fix conditional restart +- mark /etc/xinetd.conf as a configuration file + +* Tue Jul 25 2000 Bill Nottingham +- um, we *need* to prereq /etc/init.d + +* Mon Jul 24 2000 Bernhard Rosenkraenzer +- Don't require /etc/init.d + +* Sat Jul 22 2000 Bill Nottingham +- rebuild + +* Tue Jul 18 2000 Trond Eivind Glomsrød +- fix the sections of the man pages (#14244) + +* Tue Jul 18 2000 Trond Eivind Glomsrød +- remove itox, as it wouldn't do the right thing with our + configuration +- same with xconv.pl +- some changes to the installation process + +* Mon Jul 17 2000 Trond Eivind Glomsrød +- move initscript back to /etc/rc.d/init.d + +* Fri Jul 14 2000 Trond Eivind Glomsrød +- change process name in init file + +* Thu Jul 13 2000 Prospector +- automatic rebuild + +* Fri Jul 7 2000 Nalin Dahyabhai +- start the daemon with the "-reuse" flag + +* Thu Jul 06 2000 Trond Eivind Glomsrød +- "Prereq:", not "Requires:" for /etc/init.d + +* Wed Jul 06 2000 Trond Eivind Glomsrød +- require /etc/init.d + +* Wed Jul 5 2000 Florian La Roche +- upper the number of instances to 60 + +* Sun Jul 2 2000 Nalin Dahyabhai +- fix a memory-allocation bug + +* Wed Jun 28 2000 Trond Eivind Glomsrød +- 2.1.8.9pre8 + +* Wed Jun 21 2000 Trond Eivind Glomsrød +- moved to /etc/init.d + +* Wed Jun 21 2000 Trond Eivind Glomsrød +- changed specfile and initfile to implement conditional + restart + +* Sun Jun 18 2000 Trond Eivind Glomsrød +- 2.1.8.9pre7 +- now obsoletes inetd +- use %%{_tmppath} + +* Sun Jun 04 2000 Trond Eivind Glomsrød +- 2.1.8.9pre6 +- added converter script which can convert specified or + remaing uncoverted services +- use %%{_mandir} +- removed +x on xinetd.conf + +* Wed May 24 2000 Trond Eivind Glomsrød +- 2.1.8.9pre4 +- authpriv patch no longer needed + +* Tue May 23 2000 Trond Eivind Glomsrød +- /etc/xinetd.d is now part of the filesystem package +- more fixes to xinetd.init + +* Mon May 22 2000 Trond Eivind Glomsrød +- fixed some obvious bugs in xinetd.init +- added a default xinetd.conf +- patched xinetd to understand LOG_AUTHPRIV + +* Fri May 19 2000 Trond Eivind Glomsrød +- updated version +- removed a define %ver (we already have %version) +- removed some extra CFLAGS declarations +- added configuration directory, /etc/xinetd.d + +* Mon Feb 21 2000 Tim Powers +- fixed broken postun sections, should have been *preun* +- fixed broken gzip of manpages + +* Wed Jan 19 2000 Bernhard Rosenkraenzer +- 2.1.8.8p8 +- Fix the init script (Bug #7277) +- remove our patches (no longer required) + +* Tue Sep 21 1999 Bill Nottingham +- add -lnsl + +* Tue Sep 7 1999 Tim Powers +- modification top install routine + +* Mon Jul 26 1999 Tim Powers +- updated source to 2.1.8.6b6 +- built for 6.1 + +* Mon Apr 26 1999 Bill Nottingham +- update to 2.1.8.6b5 +- build for PowerTools + +* Mon Jan 10 1999 Bill Nottingham +- update to 2.1.8.5p2 + +* Tue Dec 1 1998 Bill Nottingham +- intial build