cvsd-1.0.24/0000755000000000000000000000000011762426457007441 5ustar cvsd-1.0.24/log.h0000644000000000000000000000311210434125357010356 0ustar /* log.h - definitions of logging funtions Copyright (C) 2002, 2003 Arthur de Jong. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef _LOG_H #define _LOG_H 1 #include /* set loglevel when no logging is configured */ void log_setdefaultloglevel(int loglevel); /* configure logging to a file */ void log_addlogging_file(const char *filename,int loglevel); /* configure logging to syslog */ void log_addlogging_syslog(int loglevel); /* configure a null logging mode (no logging) */ void log_addlogging_none(void); /* start the logging with the configured logging methods if no method is configured yet, logging is done to syslog */ void log_startlogging(void); /* log the given message using the configured logging method */ void log_log(int pri,const char *format, ...); /* return the syslog loglevel represented by the string return -1 on unknown */ int log_getloglevel(const char *lvl); #endif /* not _LOG_H */ cvsd-1.0.24/config.guess0000744000000000000000000012743211762425616011764 0ustar #! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, # 2011, 2012 Free Software Foundation, Inc. timestamp='2012-02-10' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner. Please send patches (context # diff format) to and include a ChangeLog # entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 exit $exitcode ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) echo i386-pc-auroraux${UNAME_RELEASE} exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH="i386" # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH="x86_64" fi fi echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` case ${UNAME_PROCESSOR} in amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:MSYS*:*) echo ${UNAME_MACHINE}-pc-msys exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; authenticamd | genuineintel | EM64T) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; 8664:Windows_NT:*) echo x86_64-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; aarch64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-gnu else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then echo ${UNAME_MACHINE}-unknown-linux-gnueabi else echo ${UNAME_MACHINE}-unknown-linux-gnueabihf fi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-gnu exit ;; frv:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; hexagon:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:Linux:*:*) LIBC=gnu eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=${UNAME_MACHINE} #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; padre:Linux:*:*) echo sparc-unknown-linux-gnu exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; tile*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configury will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in i386) eval $set_cc_for_build if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then UNAME_PROCESSOR="x86_64" fi fi ;; unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NEO-?:NONSTOP_KERNEL:*:*) echo neo-tandem-nsk${UNAME_RELEASE} exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; x86_64:VMkernel:*:*) echo ${UNAME_MACHINE}-unknown-esx exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: cvsd-1.0.24/INSTALL0000644000000000000000000003660011762425622010470 0ustar Installation Instructions ************************* Copyright (C) 1994-1996, 1999-2002, 2004-2011 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without warranty of any kind. Basic Installation ================== Briefly, the shell commands `./configure; make; make install' should configure, build, and install this package. The following more-detailed instructions are generic; see the `README' file for instructions specific to this package. Some packages provide this `INSTALL' file but do not implement all of the features documented below. The lack of an optional feature in a given package is not necessarily a bug. More recommendations for GNU packages can be found in *note Makefile Conventions: (standards)Makefile Conventions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). It can also use an optional file (typically called `config.cache' and enabled with `--cache-file=config.cache' or simply `-C') that saves the results of its tests to speed up reconfiguring. Caching is disabled by default to prevent problems with accidental use of stale cache files. If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If you are using the cache, and at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.ac' (or `configure.in') is used to create `configure' by a program called `autoconf'. You need `configure.ac' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. Running `configure' might take a while. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package, generally using the just-built uninstalled binaries. 4. Type `make install' to install the programs and any data files and documentation. When installing into a prefix owned by root, it is recommended that the package be configured and built as a regular user, and only the `make install' phase executed with root privileges. 5. Optionally, type `make installcheck' to repeat any self-tests, but this time using the binaries in their final installed location. This target does not install anything. Running this target as a regular user, particularly if the prior `make install' required root privileges, verifies that the installation completed correctly. 6. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. 7. Often, you can also type `make uninstall' to remove the installed files again. In practice, not all packages have tested that uninstallation works correctly, even though it is required by the GNU Coding Standards. 8. Some packages, particularly those that use Automake, provide `make distcheck', which can by used by developers to test that all other targets like `make install' and `make uninstall' work correctly. This target is generally not run by end users. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. Run `./configure --help' for details on some of the pertinent environment variables. You can give `configure' initial values for configuration parameters by setting variables in the command line or in the environment. Here is an example: ./configure CC=c99 CFLAGS=-g LIBS=-lposix *Note Defining Variables::, for more details. Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you can use GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. This is known as a "VPATH" build. With a non-GNU `make', it is safer to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. On MacOS X 10.5 and later systems, you can create libraries and executables that work on multiple system types--known as "fat" or "universal" binaries--by specifying multiple `-arch' options to the compiler but only a single `-arch' option to the preprocessor. Like this: ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ CPP="gcc -E" CXXCPP="g++ -E" This is not guaranteed to produce working output in all cases, you may have to build one architecture at a time and combine the results using the `lipo' tool if you have problems. Installation Names ================== By default, `make install' installs the package's commands under `/usr/local/bin', include files under `/usr/local/include', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PREFIX', where PREFIX must be an absolute file name. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you pass the option `--exec-prefix=PREFIX' to `configure', the package uses PREFIX as the prefix for installing programs and libraries. Documentation and other data files still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=DIR' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. In general, the default for these options is expressed in terms of `${prefix}', so that specifying just `--prefix' will affect all of the other directory specifications that were not explicitly provided. The most portable way to affect installation locations is to pass the correct locations to `configure'; however, many packages provide one or both of the following shortcuts of passing variable assignments to the `make install' command line to change installation locations without having to reconfigure or recompile. The first method involves providing an override variable for each affected directory. For example, `make install prefix=/alternate/directory' will choose an alternate location for all directory configuration variables that were expressed in terms of `${prefix}'. Any directories that were specified during `configure', but not in terms of `${prefix}', must each be overridden at install time for the entire installation to be relocated. The approach of makefile variable overrides for each directory variable is required by the GNU Coding Standards, and ideally causes no recompilation. However, some platforms have known limitations with the semantics of shared libraries that end up requiring recompilation when using this method, particularly noticeable in packages that use GNU Libtool. The second method involves providing the `DESTDIR' variable. For example, `make install DESTDIR=/alternate/directory' will prepend `/alternate/directory' before all installation names. The approach of `DESTDIR' overrides is not required by the GNU Coding Standards, and does not work on platforms that have drive letters. On the other hand, it does better at avoiding recompilation issues, and works well even when some directory options were not specified in terms of `${prefix}' at `configure' time. Optional Features ================= If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Some packages offer the ability to configure how verbose the execution of `make' will be. For these packages, running `./configure --enable-silent-rules' sets the default to minimal output, which can be overridden with `make V=1'; while running `./configure --disable-silent-rules' sets the default to verbose, which can be overridden with `make V=0'. Particular systems ================== On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC is not installed, it is recommended to use the following options in order to use an ANSI C compiler: ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" and if that doesn't work, install pre-built binaries of GCC for HP-UX. HP-UX `make' updates targets which have the same time stamps as their prerequisites, which makes it generally unusable when shipped generated files such as `configure' are involved. Use GNU `make' instead. On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot parse its `' header file. The option `-nodtk' can be used as a workaround. If GNU CC is not installed, it is therefore recommended to try ./configure CC="cc" and if that doesn't work, try ./configure CC="cc -nodtk" On Solaris, don't put `/usr/ucb' early in your `PATH'. This directory contains several dysfunctional programs; working variants of these programs are available in `/usr/bin'. So, if you need `/usr/ucb' in your `PATH', put it _after_ `/usr/bin'. On Haiku, software installed for all users goes in `/boot/common', not `/usr/local'. It is recommended to use the following options: ./configure --prefix=/boot/common Specifying the System Type ========================== There may be some features `configure' cannot figure out automatically, but needs to determine by the type of machine the package will run on. Usually, assuming the package is built to be run on the _same_ architectures, `configure' can figure that out, but if it prints a message saying it cannot guess the machine type, give it the `--build=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name which has the form: CPU-COMPANY-SYSTEM where SYSTEM can have one of these forms: OS KERNEL-OS See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the machine type. If you are _building_ compiler tools for cross-compiling, you should use the option `--target=TYPE' to select the type of system they will produce code for. If you want to _use_ a cross compiler, that generates code for a platform different from the build platform, you should specify the "host" platform (i.e., that on which the generated programs will eventually be run) with `--host=TYPE'. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Defining Variables ================== Variables not defined in a site shell script can be set in the environment passed to `configure'. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set them in the `configure' command line, using `VAR=value'. For example: ./configure CC=/usr/local2/bin/gcc causes the specified `gcc' to be used as the C compiler (unless it is overridden in the site shell script). Unfortunately, this technique does not work for `CONFIG_SHELL' due to an Autoconf bug. Until the bug is fixed you can use this workaround: CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash `configure' Invocation ====================== `configure' recognizes the following options to control how it operates. `--help' `-h' Print a summary of all of the options to `configure', and exit. `--help=short' `--help=recursive' Print a summary of the options unique to this package's `configure', and exit. The `short' variant lists options used only in the top level, while the `recursive' variant lists options also present in any nested packages. `--version' `-V' Print the version of Autoconf used to generate the `configure' script, and exit. `--cache-file=FILE' Enable the cache: use and save the results of the tests in FILE, traditionally `config.cache'. FILE defaults to `/dev/null' to disable caching. `--config-cache' `-C' Alias for `--cache-file=config.cache'. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `--prefix=DIR' Use DIR as the installation prefix. *note Installation Names:: for more details, including other options available for fine-tuning the installation locations. `--no-create' `-n' Run the configure checks, but stop before creating any output files. `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. cvsd-1.0.24/xmalloc.c0000644000000000000000000000246410726255674011252 0ustar /* xmalloc.c - malloc wrapper Copyright (C) 2002, 2003, 2007 Arthur de Jong. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #include "config.h" #include #include #include "xmalloc.h" #include "log.h" /* malloc wrapper */ void *xmalloc(size_t size) { void *tmp; if ((tmp=malloc(size))==NULL) { log_log(LOG_CRIT,"malloc() failed"); exit(1); } return tmp; } /* strdup wrapper */ char *xstrdup(const char *s) { char *tmp; size_t l; if (s==NULL) { log_log(LOG_CRIT,"xstrdup() called with NULL"); exit(1); } l=strlen(s); tmp=(char *)xmalloc((l+1)*sizeof(char)); strncpy(tmp,s,l); tmp[l]='\0'; return tmp; } cvsd-1.0.24/configure.ac0000644000000000000000000002543411762425135011727 0ustar # configure.ac - process this file with autoconf to produce configure # Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, # 2010, 2011, 2012 Arthur de Jong # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA AC_PREREQ(2.59) AC_COPYRIGHT( [Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Arthur de Jong This configure script is derived from configure.ac which is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. See the configure.ac file for more details.]) # initialize and set version and bugreport address AC_INIT([cvsd],[1.0.24],[cvsd-users@lists.arthurdejong.org]) RELEASE_MONTH="Jun 2012" AC_SUBST(RELEASE_MONTH) AC_CONFIG_SRCDIR(cvsd.c) # display notice and initialize automake AC_MSG_NOTICE([configuring AC_PACKAGE_TARNAME AC_PACKAGE_VERSION]) AM_INIT_AUTOMAKE(AC_PACKAGE_TARNAME,AC_PACKAGE_VERSION) # create a config.h file (Automake will add -DHAVE_CONFIG_H) AC_CONFIG_HEADERS([config.h]) # AJ_PROG_FIND(VARIABLE,PROG-TO-CHECK-FOR) # ---------------------------------------- AC_DEFUN([AJ_PROG_FIND],[ AC_ARG_WITH([$2], AS_HELP_STRING([--with-$2=PATH], [specify location of $2 binary]), [if test "x$withval" = "x" || test "x$withval" = "xyes" || test "x$withval" = "xno" then AC_MSG_ERROR([*** please specify the location of the $2 binary ***]) else $1="$withval" fi]) if test -z "$$1" then AC_PATH_PROG($1,$2) fi if test -z "$$1" then AC_MSG_ERROR([*** '$2' not found, please install, fix your \$PATH or use --with-$2 ***]) fi if test ! -r "$$1" || test "x`basename "$$1"`" != "x$2" then AC_MSG_WARN([$$1 does not look like the $2 binary]) fi AC_SUBST([$1]) ]) # Checks for programs. AC_PROG_AWK AC_PROG_CC AC_PROG_LN_S AC_PATH_PROG(CHMOD,chmod) AC_SUBST(CHMOD) AC_PATH_PROG(SED,sed) if test -z "$SED" ; then AC_MSG_ERROR([*** 'sed' missing, please install or fix your \$PATH ***]) fi AJ_PROG_FIND(CVS,cvs) AC_DEFINE_UNQUOTED(CVS_LOCATION,"$CVS",[location of cvs program]) AJ_PROG_FIND(PERL,perl) # Checks for header files. AC_HEADER_STDC AC_CHECK_HEADERS(string.h) AC_CHECK_HEADERS(unistd.h) AC_CHECK_HEADERS(errno.h) AC_CHECK_HEADERS(syslog.h) AC_CHECK_HEADERS(getopt.h) AC_CHECK_HEADERS(pwd.h) AC_CHECK_HEADERS(grp.h) AC_CHECK_HEADERS(arpa/inet.h) AC_CHECK_HEADERS(netinet/in.h) AC_CHECK_HEADERS(sys/types.h) AC_CHECK_HEADERS(sys/socket.h) AC_CHECK_HEADERS(sys/time.h) AC_CHECK_HEADERS(sys/resource.h) AC_HEADER_SYS_WAIT AC_CHECK_HEADERS(signal.h) AC_CHECK_HEADERS(sys/stat.h) AC_CHECK_HEADERS(netdb.h) AC_CHECK_HEADERS(fcntl.h) AC_CHECK_HEADERS(stdarg.h) AC_CHECK_HEADERS(stdio.h) # Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_C_VOLATILE AC_TYPE_MODE_T AC_TYPE_PID_T AC_TYPE_UID_T AC_TYPE_SIZE_T AC_CHECK_TYPE(socklen_t,, AC_DEFINE(socklen_t, size_t, [Define to `size_t' if not defined elswhere.]), [ #include #include ]) AC_CHECK_TYPE(struct sockaddr_storage,, AC_DEFINE(sockaddr_storage,sockaddr_in, [Define to 'sockaddr_in' if not defined elsewhere.]), [ #include #include ]) # Checks for library functions. AC_FUNC_FORK AC_SEARCH_LIBS(gethostbyname,nsl socket) AC_SEARCH_LIBS(socket,socket) AC_CHECK_FUNCS([malloc dup2 inet_ntoa strchr strrchr strerror strtol atexit sigaction \ memset memcpy sigemptyset select fcntl snprintf vsnprintf socket], , AC_MSG_ERROR([*** we really need this function ***])) AC_CHECK_FUNCS(nice setpriority setgroups gethostbyname) AC_FUNC_SELECT_ARGTYPES # Only include Limit operations if system has setrlimit() AC_CHECK_FUNCS(setrlimit, [AC_LIBOBJ(reslimit)], AC_MSG_NOTICE([disabling use of resource limits])) # Replace getopt_long() function if it is not on the system AC_CHECK_FUNCS(getopt_long, , [AC_MSG_NOTICE([using own getopt_long() replacement]) AC_LIBOBJ(getopt_long)]) # Replace daemon() function if it is not on the system AC_SEARCH_LIBS(daemon,bsd) AC_CHECK_FUNCS(daemon, , [AC_MSG_NOTICE([using own daemon() replacement]) AC_LIBOBJ(daemon)]) # check for getaddrinfo() and getnameinfo() and replace if not available AC_SEARCH_LIBS(getaddrinfo,socket) AC_CHECK_FUNCS(getaddrinfo getnameinfo freeaddrinfo gai_strerror) AC_CHECK_TYPE(struct addrinfo,,,[ #include #include #include ]) if test "$ac_cv_func_getaddrinfo" != yes || \ test "$ac_cv_func_getnameinfo" != yes then AC_MSG_NOTICE([using own getaddrinfo() and getnameinfo() replacements]) AC_LIBOBJ(getinfos) AC_CHECK_FUNCS(getservbyname getservbyport gethostbyaddr htons hstrerror) fi # Check for debugging options AC_ARG_ENABLE(debug, AS_HELP_STRING([--enable-debug], [enable extensive debugging and logging]), [if test "x$enableval" != "xno" ; then CFLAGS="-g -DDEBUG $CFLAGS" ; fi]) # Check for extra compiler warnings AC_ARG_ENABLE(warnings, AS_HELP_STRING([--enable-warnings], [enable extra compiler warnings (gcc)]), [if test "x$enableval" != "xno" ; then CFLAGS="$CFLAGS -pedantic -Wall -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Waggregate-return -Wmissing-declarations" ; fi]) # add --disable-maintainer-mode option AM_MAINTAINER_MODE([enable]) # check wether we want use tcp wrappers (yes,no,maybe) WANT_LIBWRAP="no" AC_ARG_WITH(libwrap, AS_HELP_STRING([--with-libwrap@<:@=PATH@:>@], [enable tcp wrapper support (disabled by default)]), [if test "x$withval" = "xno" then WANT_LIBWRAP="no" else WANT_LIBWRAP="yes" # add supplied value to paths if test "x$withval" != "x" && test "x$withval" != "xyes" then CPPFLAGS="-I$LIBWRAP/include $CPPFLAGS" LDFLAGS="-L$LIBWRAP/lib $LDFLAGS" fi fi]) # check wether we can use tcp wrappers if test "x$WANT_LIBWRAP" != "xno" then AC_CHECK_HEADERS(tcpd.h) # try using tcp wrappers without a library, with -lwrap and with -lwrap and -lnsl HAVE_LIBWRAP="yes" SAVE_LIBS="$LIBS" AC_MSG_CHECKING(for tcp wrapper functions) AC_LINK_IFELSE( [AC_LANG_PROGRAM([[int allow_severity,deny_severity;]], [[request_init((void *)0,0);hosts_access((void *)0)]]) ], [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no) LIBS="-lwrap $LIBS" AC_MSG_CHECKING(for tcp wrapper functions in -lwrap) AC_LINK_IFELSE( [AC_LANG_PROGRAM([[int allow_severity,deny_severity;]], [[request_init((void *)0,0);hosts_access((void *)0)]]) ], [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no) LIBS="-lnsl $LIBS" AC_MSG_CHECKING(for tcp wrapper functions in -lwrap -lnsl) AC_LINK_IFELSE( [AC_LANG_PROGRAM([[int allow_severity,deny_severity;]], [[request_init((void *)0,0);hosts_access((void *)0)]]) ], [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no) LIBS="$SAVE_LIBS" HAVE_LIBWRAP="no"]) ]) ]) if test "x$HAVE_LIBWRAP" != "xno" then AC_DEFINE_UNQUOTED(USE_LIBWRAP,1,[whether tcp wrappers are enabled]) elif test "x$WANT_LIBWRAP" = "xyes" then AC_MSG_ERROR([*** tcp wrappers not found ***]) fi fi # check wether we want use capabilities (yes,no,maybe) WANT_CAPABILITIES="no" AC_ARG_WITH(capabilities, AS_HELP_STRING([--with-capabilities], [enable capabilities support (experimental)]), [if test "x$withval" = "xno" then WANT_CAPABILITIES="no" else WANT_CAPABILITIES="yes" # add supplied value to paths if test "x$withval" != "x" && test "x$withval" != "xyes" then CPPFLAGS="-I$LIBWRAP/include $CPPFLAGS" LDFLAGS="-L$LIBWRAP/lib $LDFLAGS" fi fi]) # check wether we can use capabilities if test "x$WANT_CAPABILITIES" != "xno" then HAVE_CAPABILITIES="yes" AC_CHECK_HEADERS(sys/capability.h,,HAVE_CAPABILITIES="no") AC_CHECK_HEADERS(sys/prctl.h,,HAVE_CAPABILITIES="no") AC_CHECK_TYPE(cap_t,,HAVE_CAPABILITIES="no",[ #include ]) AC_SEARCH_LIBS(cap_init,cap,,HAVE_CAPABILITIES="no") AC_CHECK_FUNCS(prctl cap_from_text cap_to_text cap_get_proc cap_set_proc cap_free,,HAVE_CAPABILITIES="no") if test "x$HAVE_CAPABILITIES" != "xno" then AC_DEFINE_UNQUOTED(USE_CAPABILITIES,1,[Define to 1 if capabilities code will be enabled]) elif test "x$WANT_CAPABILITIES" = "xyes" then AC_MSG_ERROR([*** capabilities not available ***]) fi fi # where to find the configuration file # TODO: this should probably be fixed to be nicer CONFIGFILE=`eval echo $sysconfdir/cvsd/cvsd.conf | \ sed "s%^NONE/%${prefix}/%" | \ sed "s%^NONE/%${ac_default_prefix}/%"` AC_SUBST(CONFIGFILE) AC_DEFINE_UNQUOTED(DEFAULT_CONFIGFILE,"$CONFIGFILE",[location of the configuration file]) AC_MSG_NOTICE([using $CONFIGFILE as default location for configfile]) # where to find the binary (for init scripts) CVSD_BIN=`eval echo $sbindir/cvsd | \ sed "s%^NONE/%${exec_prefix}/%" | \ sed "s%^NONE/%${prefix}/%" | \ sed "s%^NONE/%${ac_default_prefix}/%"` AC_SUBST(CVSD_BIN) # store options passed to configure CONFIGURE_CMD="$0 $ac_configure_args" AC_SUBST(CONFIGURE_CMD) # What files to output AC_CONFIG_FILES(Makefile cvsd.8 cvsd-buildroot.8 cvsd-passwd.8 cvsd.conf.5 cvsd-buginfo.8 cvsd.spec) AC_CONFIG_FILES(cvsd-buildroot,chmod a+rx cvsd-buildroot) AC_CONFIG_FILES(cvsd-passwd,chmod a+rx cvsd-passwd) AC_CONFIG_FILES(cvsd-buginfo,chmod a+rx cvsd-buginfo) AC_CONFIG_FILES(cvsd.init,chmod a+rx cvsd.init) AC_CONFIG_FILES(cvsd.init.redhat71,chmod a+rx cvsd.init.redhat71) AC_OUTPUT cvsd-1.0.24/mkinstalldirs0000744000000000000000000000672211762425622012245 0ustar #! /bin/sh # mkinstalldirs --- make directory hierarchy scriptversion=2009-04-28.21; # UTC # Original author: Noah Friedman # Created: 1993-05-16 # Public domain. # # This file is maintained in Automake, please report # bugs to or send patches to # . nl=' ' IFS=" "" $nl" errstatus=0 dirmode= usage="\ Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ... Create each directory DIR (with mode MODE, if specified), including all leading file name components. Report bugs to ." # process command line arguments while test $# -gt 0 ; do case $1 in -h | --help | --h*) # -h for help echo "$usage" exit $? ;; -m) # -m PERM arg shift test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } dirmode=$1 shift ;; --version) echo "$0 $scriptversion" exit $? ;; --) # stop option processing shift break ;; -*) # unknown option echo "$usage" 1>&2 exit 1 ;; *) # first non-opt arg break ;; esac done for file do if test -d "$file"; then shift else break fi done case $# in 0) exit 0 ;; esac # Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and # mkdir -p a/c at the same time, both will detect that a is missing, # one will create a, then the other will try to create a and die with # a "File exists" error. This is a problem when calling mkinstalldirs # from a parallel make. We use --version in the probe to restrict # ourselves to GNU mkdir, which is thread-safe. case $dirmode in '') if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then echo "mkdir -p -- $*" exec mkdir -p -- "$@" else # On NextStep and OpenStep, the `mkdir' command does not # recognize any option. It will interpret all options as # directories to create, and then abort because `.' already # exists. test -d ./-p && rmdir ./-p test -d ./--version && rmdir ./--version fi ;; *) if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 && test ! -d ./--version; then echo "mkdir -m $dirmode -p -- $*" exec mkdir -m "$dirmode" -p -- "$@" else # Clean up after NextStep and OpenStep mkdir. for d in ./-m ./-p ./--version "./$dirmode"; do test -d $d && rmdir $d done fi ;; esac for file do case $file in /*) pathcomp=/ ;; *) pathcomp= ;; esac oIFS=$IFS IFS=/ set fnord $file shift IFS=$oIFS for d do test "x$d" = x && continue pathcomp=$pathcomp$d case $pathcomp in -*) pathcomp=./$pathcomp ;; esac if test ! -d "$pathcomp"; then echo "mkdir $pathcomp" mkdir "$pathcomp" || lasterr=$? if test ! -d "$pathcomp"; then errstatus=$lasterr else if test ! -z "$dirmode"; then echo "chmod $dirmode $pathcomp" lasterr= chmod "$dirmode" "$pathcomp" || lasterr=$? if test ! -z "$lasterr"; then errstatus=$lasterr fi fi fi fi pathcomp=$pathcomp/ done done exit $errstatus # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: cvsd-1.0.24/daemon.c0000644000000000000000000000357210434125357011045 0ustar /* daemon.c - implementation of daemon() for systems that lack it Copyright (C) 2002, 2003 Arthur de Jong This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #include "daemon.h" #include #include #include #include int daemon(int nochdir,int noclose) { /* change directory */ if (!nochdir) if (chdir("/")!=0) return -1; /* fork() and exit() to detach from the parent process */ switch (fork()) { case 0: /* we are the child */ break; case -1: /* we are the parent, but have an error */ return -1; default: /* we are the parent and we're done*/ _exit(0); } /* become process leader */ if (setsid()<0) { return -1; } /* fork again so we cannot allocate a pty */ switch (fork()) { case 0: /* we are the child */ break; case -1: /* we are the parent, but have an error */ return -1; default: /* we are the parent and we're done*/ _exit(0); } /* close stdin, stdout and stderr and reconnect to /dev/null */ if (!noclose) { close(0); /* stdin */ close(1); /* stdout */ close(2); /* stderr */ open("/dev/null",O_RDWR); /* stdin, fd=0 */ dup(0); /* stdout, fd=1 */ dup(0); /* stderr, fd=2 */ } return 0; } cvsd-1.0.24/cvsd.spec.in0000644000000000000000000000422211214544156011646 0ustar %define cvsd_homedir /var/lib/cvsd Name: @PACKAGE@ Summary: Chroot wrapper to run 'cvs pserver' more securely Version: @VERSION@ Release: 1 URL: http://arthurdejong.org/cvsd/ Source: http://arthurdejong.org/cvsd/cvsd-%{version}.tar.gz License: GPL Group: Network/Daemons Requires: cvs BuildRoot: %{_tmppath}/%{name}-%{version}-buildroot %description cvsd is a wrapper program for cvs in pserver mode. it will run 'cvs pserver' under a special uid/gid in a chroot jail. cvsd is run as a daemon and is controlled through a configuration file. It is relatively easy to configure and provides tools for setting up a rootjail. This server can be useful if you want to run a public cvs pserver. You should however be aware of the security limitations of running a cvs pserver. If you want any kind of authentication you should really consider using secure shell as a secure authentication mechanism and transport. Passwords used with cvs pserver are transmitted in plaintext. %prep %setup -q %build ./configure --prefix=%{_prefix} --mandir=%{_mandir} --sysconfdir=%{_sysconfdir} make %install [ "$RPM_BUILD_ROOT" = "/" ] || rm -rf $RPM_BUILD_ROOT make DESTDIR=$RPM_BUILD_ROOT install-strip rm $RPM_BUILD_ROOT/%{_sysconfdir}/init.d/cvsd rmdir $RPM_BUILD_ROOT%{_sysconfdir}/init.d/ install -d $RPM_BUILD_ROOT%{_initrddir} install -m755 cvsd.init.redhat71 $RPM_BUILD_ROOT%{_initrddir}/cvsd [ -x /usr/lib/rpm/brp-compress ] && /usr/lib/rpm/brp-compress %clean [ "$RPM_BUILD_ROOT" = "/" ] || rm -rf $RPM_BUILD_ROOT %files %doc README TODO AUTHORS ChangeLog NEWS FAQ COPYING %defattr(644,root,root,755) %config(noreplace) %{_sysconfdir}/cvsd/cvsd.conf %{_mandir}/*/* %attr(755,root,root) %{_sbindir}/* %attr(755,root,root) %{_initrddir}/cvsd %pre getent group cvsd > /dev/null || \ groupadd cvsd getent passwd cvsd > /dev/null || \ useradd -r -M -d %{cvsd_homedir} -s /bin/false \ -c "cvs pserver daemon" -g cvsd cvsd [ -e %{cvsd_homedir} ] || \ mkdir -m755 %{cvsd_homedir} %post cvsd-buildroot %{cvsd_homedir} /sbin/chkconfig --add cvsd %postun if [ "$1" = 0 ]; then userdel -r cvsd 2>/dev/null || : groupdel cvsd 2>/dev/null || : rmdir %{cvsd_homedir} 2>/dev/null || : fi cvsd-1.0.24/debian/0000755000000000000000000000000011762426457010663 5ustar cvsd-1.0.24/debian/cvsd.bug-script0000744000000000000000000000247610257273707013631 0ustar #!/bin/sh # cvsd reportbug script - output cvsd configuration info # Copyright (C) 2004 Arthur de Jong # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA echo "" echo "I can automatically add pieces of your cvsd configuration and chroot" echo "jail layout to your bug report. This information will probably help to" echo "diagnose the problem." echo "" echo "Encrypted passwords are removed from the gathered information but there" echo "may however be other data you do not want leaked. Please review this" echo "information before submitting the report!" echo "" yesno "Include extra configuration information? [Y/n] " yep if [ "$REPLY" = "yep" ]; then /usr/sbin/cvsd-buginfo >&3 fi cvsd-1.0.24/debian/lintian-overrides0000644000000000000000000000144211047346567014244 0ustar # We only use the following debconf templates when they are configued # with the cvsd/limits question and they are built up of the possible # values of that question. cvsd binary: unused-debconf-template cvsd/limit_coredumpsize cvsd binary: unused-debconf-template cvsd/limit_cputime cvsd binary: unused-debconf-template cvsd/limit_datasize cvsd binary: unused-debconf-template cvsd/limit_filesize cvsd binary: unused-debconf-template cvsd/limit_memorylocked cvsd binary: unused-debconf-template cvsd/limit_openfiles cvsd binary: unused-debconf-template cvsd/limit_maxproc cvsd binary: unused-debconf-template cvsd/limit_memoryuse cvsd binary: unused-debconf-template cvsd/limit_stacksize cvsd binary: unused-debconf-template cvsd/limit_virtmem cvsd binary: unused-debconf-template cvsd/limit_pthreads cvsd-1.0.24/debian/rules0000744000000000000000000000052211724745030011725 0ustar #!/usr/bin/make -f export DH_VERBOSE=1 export DEB_BUILD_MAINT_OPTIONS = hardening=+all %: dh $@ override_dh_auto_configure: dh_auto_configure -- \ --enable-warnings \ --with-cvs=/usr/bin/cvs \ --with-perl=/usr/bin/perl # make configfile fully generated override_dh_install: rm -f $(CURDIR)/debian/cvsd/etc/cvsd/cvsd.conf cvsd-1.0.24/debian/templates0000644000000000000000000001702511724637543012607 0ustar Template: cvsd/rootjail Type: string Default: /var/lib/cvsd _Description: Location of chroot jail: cvsd can run in a chroot jail. This is the preferred method of operation. Specify the location of the chroot jail. If you make this 'none' no chroot jail will be created and used. A chroot file hierarchy will be created in the specified location. Template: cvsd/maxconnections Type: string Default: 10 _Description: The maximum number of connections that can be handled: It is possible to specify a maximum number of connections that cvsd can handle simultaneously. Specifying 0 (zero) will put no limit to the number of connections. Template: cvsd/nice Type: string Default: 1 _Description: Nice value cvsd should run at: cvsd can be run at reduced priority so it will not take up too many resources, especially if a user specifies a -z option to cvs. The priority can also be increased (negative value here). Template: cvsd/umask Type: string Default: 027 _Description: Umask cvsd should run at: Specify the umask cvsd and cvs should use when creating files. . The umask should be specified as an octal value and represents the permissions that should be taken away when creating a file (e.g. using 027 will create files with mode 640 or rw-r-----). Template: cvsd/listen Type: string Default: * 2401 _Description: Address and port on which cvsd will listen: With the first argument you can specify the address cvsd should listen on. The '*' address specifies that cvsd should listen on all addresses. You can specify a IPv4 address, IPv6 address, a hostname or '*'. . The second argument is the service name (e.g. cvspserver) or port number (default 2401) cvsd will listen on. . The address and port should be separated by a space and you can specify multiple address-port combinations by separating them with spaces. Template: cvsd/repositories Type: string Default: /demo:/myrepos _Description: Repositories to serve: The whole idea of cvsd is to serve repositories. Specify a colon ':' separated list of repositories to serve. The location of these repositories is relative to the specified chroot jail (${rootjail}) and should start with a '/'. . The repositories here should be initialized by hand with something like 'cvs -d ${rootjail}/myrepos init' after which passwords can be set with 'cvsd-passwd ${rootjail}/myrepos anonymous'. See the file /usr/share/doc/cvsd/README.gz for details on creating repositories. Template: cvsd/limits Type: multiselect __Choices: coredumpsize, cputime, datasize, filesize, memorylocked, openfiles, maxproc, memoryuse, stacksize, virtmem _Description: Resources of pserver processes to limit: The pserver wrapper can be configured to limit the resource usage that a pserver process can have. These resource limits will be set on each pserver process and not on the wrapper. . Choose from the list the resources that you want to limit. You will be asked to specify limits about every resource you selected here. . Note that not all resources may be available on all systems and that resources may be system and kernel specific so use these with caution. The results of exceeding the set limits may also be system specific but will most likely stop the cvs process and close the connection (may be problematic with write access to cvs repository). Template: cvsd/limit_coredumpsize Type: string Default: 0 _Description: Maximum file size of a core dump: Set this to 0 (zero) (should be the system default) to prevent core dumps. Otherwise this limits the size of core dumps to the specified value. . This value may be specified with a suffix of 'b' (bytes), 'k' (1024 bytes) or 'm' (1024*1024 bytes), where 'k' is the default. Template: cvsd/limit_cputime Type: string Default: 1:00 _Description: Maximum amount of cpu time consumed: This limits the number of cpu seconds the cvs process can use. This will prevent too much cpu time from being allocated to a single connection. . This value can be formatted as 'mm:ss' or have a 'm' or 's' suffix where 's' is default. Template: cvsd/limit_datasize Type: string Default: 10m _Description: Maximum size of program's data segment: This limits the amount of memory the cvs program can use. This specific item limits the size of the data segment. . This value may be specified with a suffix of 'b' (bytes), 'k' (1024 bytes) or 'm' (1024*1024 bytes), where 'k' is the default. Template: cvsd/limit_filesize Type: string Default: 1m _Description: Maximum size of files created: This limits the maximum size of a file created by cvs. Note that the cvs pserver process needs to be able to create lock files and possibly write history or other files so don't set this to 0 (zero). . This value may be specified with a suffix of 'b' (bytes), 'k' (1024 bytes) or 'm' (1024*1024 bytes), where 'k' is the default. Template: cvsd/limit_memorylocked Type: string Default: 10m _Description: Maximum amount of locked memory: This limits the amount of memory the cvs process may lock. cvs probably doesn't need to lock any memory at all. . This value may be specified with a suffix of 'b' (bytes), 'k' (1024 bytes) or 'm' (1024*1024 bytes), where 'k' is the default. Template: cvsd/limit_openfiles Type: string Default: 1024 _Description: Maximum number of open files: This limits the number of files and connections that the cvs process can have open at a single moment. The cvs process needs to access quite a few files so don't set this too low. Template: cvsd/limit_maxproc Type: string Default: 20 _Description: Maximum number of processes: This limits the maximum number of processes that a single user may have. cvs may need to spawn additional processes to run scripts or do subtasks so don't set this too low. Template: cvsd/limit_memoryuse Type: string Default: 10m _Description: Maximum size of resident memory: This specifies the amount of physical memory a process may have. . This value may be specified with a suffix of 'b' (bytes), 'k' (1024 bytes) or 'm' (1024*1024 bytes), where 'k' is the default. Template: cvsd/limit_stacksize Type: string Default: 10m _Description: Maximum stack size: This limits the size of the stack. . This value may be specified with a suffix of 'b' (bytes), 'k' (1024 bytes) or 'm' (1024*1024 bytes), where 'k' is the default. Template: cvsd/limit_virtmem Type: string Default: 10m _Description: Maximum amount of virtual memory allocated: This limits the total amount of virtual memory a process may have allocated. . This value may be specified with a suffix of 'b' (bytes), 'k' (1024 bytes) or 'm' (1024*1024 bytes), where 'k' is the default. Template: cvsd/limit_pthreads Type: string Default: 20 _Description: Maximum number of threads: This limits the number of threads that a single process may have. . This is not available under Linux so it is not in the list for cvsd/limits. If Hurd has it it may be useful. Template: cvsd/remove_chroot Type: boolean Default: false _Description: Remove chroot jail containing repositories? The following directory is configured as a chroot jail for cvsd: ${rootjail} You may choose to remove the chroot jail but you will also lose all the repositories inside the chroot jail. If you have not backed up your repositories you want to keep do not remove it now and manually remove it later once your repositories are safe. . If you do choose to remove the chroot directory, all directories under it will be removed, even if they are on another file system. . If you choose to keep the chroot jail please note that the cvsd user and group will be removed so uid and gid file information may no longer be consistent. cvsd-1.0.24/debian/control0000644000000000000000000000226511724744745012274 0ustar Source: cvsd Section: vcs Priority: optional Maintainer: Arthur de Jong Build-Depends: debhelper (>= 9), po-debconf Standards-Version: 3.9.3 Homepage: http://arthurdejong.org/cvsd/ Vcs-Cvs: :pserver:anonymous@arthurdejong.org:/arthur/ Vcs-Browser: http://arthurdejong.org/viewvc/cvsd/ Package: cvsd Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, cvs, adduser, lsb-base (>= 3.0-6) Suggests: perl, tmpreaper Description: chroot wrapper to run 'cvs pserver' more securely cvsd is a wrapper program for cvs in pserver mode. it will run 'cvs pserver' under a special uid/gid in a chroot jail. cvsd is run as a daemon and is controlled through a configuration file. It is relatively easy to configure and provides tools for setting up a rootjail. . This server can be useful if you want to run a public cvs pserver. You should however be aware of the security limitations of running a cvs pserver. If you want any kind of authentication you should really consider using secure shell as a secure authentication mechanism and transport. Passwords used with cvs pserver are transmitted in plaintext. . You should probably disable the pserver from the cvs package. cvsd-1.0.24/debian/cvsd.init0000644000000000000000000000610111506451703012471 0ustar #! /bin/sh # /etc/init.d/cvsd script for starting and stopping cvsd # Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2010 Arthur de Jong # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ### BEGIN INIT INFO # Provides: cvsd # Required-Start: $local_fs $remote_fs $syslog # Required-Stop: $local_fs $remote_fs $syslog # Should-Start: $network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: cvs pserver chroot wrapper # Description: cvsd is a wrapper program for cvs in pserver mode. # It will run 'cvs pserver' under a special uid/gid in # a chroot jail. ### END INIT INFO PATH=/bin:/usr/bin:/sbin:/usr/sbin CVSD_BIN=/usr/sbin/cvsd DESC="cvs pserver chroot wrapper" CVSD_CFG=/etc/cvsd/cvsd.conf [ -x "$CVSD_BIN" ] || exit 0 [ -f "$CVSD_CFG" ] || exit 0 . /lib/lsb/init-functions PIDFILE=`sed -n 's/^ *PidFile *\([^ ]*\) *$/\1/p' < $CVSD_CFG` [ -n "$PIDFILE" ] && PFO="--pidfile $PIDFILE" case "$1" in start) log_daemon_msg "Starting $DESC" "cvsd" start-stop-daemon --start --oknodo \ $PFO \ --startas $CVSD_BIN \ -- -f $CVSD_CFG log_end_msg $? ;; stop) log_daemon_msg "Stopping $DESC" "cvsd" start-stop-daemon --stop --oknodo \ $PFO \ --name cvsd log_end_msg $? [ -n "$PIDFILE" ] && rm -f $PIDFILE ;; restart|force-reload) log_daemon_msg "Restarting $DESC" "cvsd" start-stop-daemon --stop --quiet --retry 10 \ $PFO \ --name cvsd [ -n "$PIDFILE" ] && rm -f $PIDFILE start-stop-daemon --start \ $PFO \ --startas $CVSD_BIN \ -- -f $CVSD_CFG log_end_msg $? ;; status) if [ -n "$PIDFILE" ] then if [ -f "$PIDFILE" ] then if kill -s 0 `cat $PIDFILE` > /dev/null 2>&1 then log_success_msg "cvsd running" exit 0 else log_success_msg "cvsd stopped" exit 1 fi else log_success_msg "cvsd stopped" exit 3 fi else if ps -ef | grep cvsd | grep -v grep > /dev/null 2>&1 then log_warning_msg "cvsd probably running (no PidFile in cvsd.conf)" else log_warning_msg "cvsd probably not running (no PidFile in cvsd.conf)" exit 3 fi fi ;; *) log_success_msg "Usage: $0 {start|stop|restart|force-reload|status}" exit 1 ;; esac exit 0 cvsd-1.0.24/debian/compat0000644000000000000000000000000211724744733012057 0ustar 9 cvsd-1.0.24/debian/po/0000755000000000000000000000000011762426457011301 5ustar cvsd-1.0.24/debian/po/templates.pot0000644000000000000000000002510610650375655014025 0ustar # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: cvsd 1.0.14\n" "Report-Msgid-Bugs-To: Arthur de Jong \n" "POT-Creation-Date: 2007-07-21 14:26+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #. Type: string #. Description #: ../templates:1001 msgid "Location of chroot jail:" msgstr "" #. Type: string #. Description #: ../templates:1001 msgid "" "cvsd can run in a chroot jail. This is the preferred method of operation. " "Specify the location of the chroot jail. If you make this 'none' no chroot " "jail will be created and used. A chroot file hierarchy will be created in " "the specified location." msgstr "" #. Type: string #. Description #: ../templates:2001 msgid "The maximum number of connections that can be handled:" msgstr "" #. Type: string #. Description #: ../templates:2001 msgid "" "It is possible to specify a maximum number of connections that cvsd can " "handle simultaneously. Specifying 0 (zero) will put no limit to the number " "of connections." msgstr "" #. Type: string #. Description #: ../templates:3001 msgid "Nice value cvsd should run at:" msgstr "" #. Type: string #. Description #: ../templates:3001 msgid "" "cvsd can be run at reduced priority so it will not take up too many " "resources, especially if a user specifies a -z option to cvs. The priority " "can also be increased (negative value here)." msgstr "" #. Type: string #. Description #: ../templates:4001 msgid "Umask cvsd should run at:" msgstr "" #. Type: string #. Description #: ../templates:4001 msgid "Specify the umask cvsd and cvs should use when creating files." msgstr "" #. Type: string #. Description #: ../templates:4001 msgid "" "The umask should be specified as an octal value and represents the " "permissions that should be taken away when creating a file (e.g. using 027 " "will create files with mode 640 or rw-r-----)." msgstr "" #. Type: string #. Description #: ../templates:5001 msgid "Address and port on which cvsd will listen:" msgstr "" #. Type: string #. Description #: ../templates:5001 msgid "" "With the first argument you can specify the address cvsd should listen on. " "The '*' address specifies that cvsd should listen on all addresses. You can " "specify a IPv4 address, IPv6 address, a hostname or '*'." msgstr "" #. Type: string #. Description #: ../templates:5001 msgid "" "The second argument is the service name (e.g. cvspserver) or port number " "(default 2401) cvsd will listen on." msgstr "" #. Type: string #. Description #: ../templates:5001 msgid "" "The address and port should be separated by a space and you can specify " "multiple address-port combinations by separating them with spaces." msgstr "" #. Type: string #. Description #: ../templates:6001 msgid "Repositories to serve:" msgstr "" #. Type: string #. Description #: ../templates:6001 msgid "" "The whole idea of cvsd is to serve repositories. Specify a colon ':' " "separated list of repositories to serve. The location of these repositories " "is relative to the specified chroot jail (${rootjail}) and should start with " "a '/'." msgstr "" #. Type: string #. Description #: ../templates:6001 msgid "" "The repositories here should be initialized by hand with something like 'cvs " "-d ${rootjail}/myrepos init' after which passwords can be set with 'cvsd-" "passwd ${rootjail}/myrepos anonymous'. See the file /usr/share/doc/cvsd/" "README.gz for details on creating repositories." msgstr "" #. Type: multiselect #. Choices #: ../templates:7001 msgid "coredumpsize" msgstr "" #. Type: multiselect #. Choices #: ../templates:7001 msgid "cputime" msgstr "" #. Type: multiselect #. Choices #: ../templates:7001 msgid "datasize" msgstr "" #. Type: multiselect #. Choices #: ../templates:7001 msgid "filesize" msgstr "" #. Type: multiselect #. Choices #: ../templates:7001 msgid "memorylocked" msgstr "" #. Type: multiselect #. Choices #: ../templates:7001 msgid "openfiles" msgstr "" #. Type: multiselect #. Choices #: ../templates:7001 msgid "maxproc" msgstr "" #. Type: multiselect #. Choices #: ../templates:7001 msgid "memoryuse" msgstr "" #. Type: multiselect #. Choices #: ../templates:7001 msgid "stacksize" msgstr "" #. Type: multiselect #. Choices #: ../templates:7001 msgid "virtmem" msgstr "" #. Type: multiselect #. Description #: ../templates:7002 msgid "Resources of pserver processes to limit:" msgstr "" #. Type: multiselect #. Description #: ../templates:7002 msgid "" "The pserver wrapper can be configured to limit the resource usage that a " "pserver process can have. These resource limits will be set on each pserver " "process and not on the wrapper." msgstr "" #. Type: multiselect #. Description #: ../templates:7002 msgid "" "Choose from the list the resources that you want to limit. You will be asked " "to specify limits about every resource you selected here." msgstr "" #. Type: multiselect #. Description #: ../templates:7002 msgid "" "Note that not all resources may be available on all systems and that " "resources may be system and kernel specific so use these with caution. The " "results of exceeding the set limits may also be system specific but will " "most likely stop the cvs process and close the connection (may be " "problematic with write access to cvs repository)." msgstr "" #. Type: string #. Description #: ../templates:8001 msgid "Maximum file size of a core dump:" msgstr "" #. Type: string #. Description #: ../templates:8001 msgid "" "Set this to 0 (zero) (should be the system default) to prevent core dumps. " "Otherwise this limits the size of core dumps to the specified value." msgstr "" #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #: ../templates:8001 ../templates:10001 ../templates:11001 ../templates:12001 #: ../templates:15001 ../templates:16001 ../templates:17001 msgid "" "This value may be specified with a suffix of 'b' (bytes), 'k' (1024 bytes) " "or 'm' (1024*1024 bytes), where 'k' is the default." msgstr "" #. Type: string #. Description #: ../templates:9001 msgid "Maximum amount of cpu time consumed:" msgstr "" #. Type: string #. Description #: ../templates:9001 msgid "" "This limits the number of cpu seconds the cvs process can use. This will " "prevent too much cpu time from being allocated to a single connection." msgstr "" #. Type: string #. Description #: ../templates:9001 msgid "" "This value can be formatted as 'mm:ss' or have a 'm' or 's' suffix where 's' " "is default." msgstr "" #. Type: string #. Description #: ../templates:10001 msgid "Maximum size of program's data segment:" msgstr "" #. Type: string #. Description #: ../templates:10001 msgid "" "This limits the amount of memory the cvs program can use. This specific item " "limits the size of the data segment." msgstr "" #. Type: string #. Description #: ../templates:11001 msgid "Maximum size of files created:" msgstr "" #. Type: string #. Description #: ../templates:11001 msgid "" "This limits the maximum size of a file created by cvs. Note that the cvs " "pserver process needs to be able to create lock files and possibly write " "history or other files so don't set this to 0 (zero)." msgstr "" #. Type: string #. Description #: ../templates:12001 msgid "Maximum amount of locked memory:" msgstr "" #. Type: string #. Description #: ../templates:12001 msgid "" "This limits the amount of memory the cvs process may lock. cvs probably " "doesn't need to lock any memory at all." msgstr "" #. Type: string #. Description #: ../templates:13001 msgid "Maximum number of open files:" msgstr "" #. Type: string #. Description #: ../templates:13001 msgid "" "This limits the number of files and connections that the cvs process can " "have open at a single moment. The cvs process needs to access quite a few " "files so don't set this too low." msgstr "" #. Type: string #. Description #: ../templates:14001 msgid "Maximum number of processes:" msgstr "" #. Type: string #. Description #: ../templates:14001 msgid "" "This limits the maximum number of processes that a single user may have. cvs " "may need to spawn additional processes to run scripts or do subtasks so " "don't set this too low." msgstr "" #. Type: string #. Description #: ../templates:15001 msgid "Maximum size of resident memory:" msgstr "" #. Type: string #. Description #: ../templates:15001 msgid "This specifies the amount of physical memory a process may have." msgstr "" #. Type: string #. Description #: ../templates:16001 msgid "Maximum stack size:" msgstr "" #. Type: string #. Description #: ../templates:16001 msgid "This limits the size of the stack." msgstr "" #. Type: string #. Description #: ../templates:17001 msgid "Maximum amount of virtual memory allocated:" msgstr "" #. Type: string #. Description #: ../templates:17001 msgid "" "This limits the total amount of virtual memory a process may have allocated." msgstr "" #. Type: string #. Description #: ../templates:18001 msgid "Maximum number of threads:" msgstr "" #. Type: string #. Description #: ../templates:18001 msgid "This limits the number of threads that a single process may have." msgstr "" #. Type: string #. Description #: ../templates:18001 msgid "" "This is not available under Linux so it is not in the list for cvsd/limits. " "If Hurd has it it may be useful." msgstr "" #. Type: boolean #. Description #: ../templates:19001 msgid "Remove chroot jail containing repositories?" msgstr "" #. Type: boolean #. Description #: ../templates:19001 msgid "" "The following directory is configured as a chroot jail for cvsd:\n" " ${rootjail}\n" "You may choose to remove the chroot jail but you will also lose all the " "repositories inside the chroot jail. If you have not backed up your " "repositories you want to keep do not remove it now and manually remove it " "later once your repositories are safe." msgstr "" #. Type: boolean #. Description #: ../templates:19001 msgid "" "If you do choose to remove the chroot directory, all directories under it " "will be removed, even if they are on another file system." msgstr "" #. Type: boolean #. Description #: ../templates:19001 msgid "" "If you choose to keep the chroot jail please note that the cvsd user and " "group will be removed so uid and gid file information may no longer be " "consistent." msgstr "" cvsd-1.0.24/debian/po/es.po0000644000000000000000000004425311431736066012251 0ustar # cvsd po-debconf translation to Spanish # Copyright (C) 2005 Software in the Public Interest # This file is distributed under the same license as the cvsd package. # # Changes: # - Initial translation # César Gómez Martín # # Traductores, si no conoce el formato PO, merece la pena leer la # documentación de gettext, especialmente las secciones dedicadas a este # formato, por ejemplo ejecutando: # info -n '(gettext)PO Files' # info -n '(gettext)Header Entry' # Equipo de traducción al español, por favor, lean antes de traducir # los siguientes documentos: # # - El proyecto de traducción de Debian al español # http://www.debian.org/intl/spanish/ # especialmente las notas de traducción en # http://www.debian.org/intl/spanish/notas # # - La guía de traducción de po's de debconf: # /usr/share/doc/po-debconf/README-trans # o http://www.debian.org/intl/l10n/po-debconf/README-trans # msgid "" msgstr "" "Project-Id-Version: cvsd 1.0.8\n" "Report-Msgid-Bugs-To: Arthur de Jong \n" "POT-Creation-Date: 2007-07-21 14:26+0200\n" "PO-Revision-Date: 2005-10-13 16:25+0100\n" "Last-Translator: César Gómez Martín \n" "Language-Team: Debian l10n spanish \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: Spanish\n" "X-Poedit-Country: SPAIN\n" "X-Poedit-SourceCharset: utf-8\n" #. Type: string #. Description #: ../templates:1001 msgid "Location of chroot jail:" msgstr "Ubicación de la cárcel «chroot»:" #. Type: string #. Description #: ../templates:1001 msgid "" "cvsd can run in a chroot jail. This is the preferred method of operation. " "Specify the location of the chroot jail. If you make this 'none' no chroot " "jail will be created and used. A chroot file hierarchy will be created in " "the specified location." msgstr "" "cvsd se puede ejecutar en una cárcel «chroot». Este es el mejor método de " "ejecución. Especifique la ubicación de la cárcel «chroot». Si escoge " "«ninguna» no se creará ninguna cárcel «chroot». Se creará una jerarquía de " "ficheros en la ubicación especificada." #. Type: string #. Description #: ../templates:2001 msgid "The maximum number of connections that can be handled:" msgstr "El número máximo de conexiones que se pueden gestionar:" #. Type: string #. Description #: ../templates:2001 msgid "" "It is possible to specify a maximum number of connections that cvsd can " "handle simultaneously. Specifying 0 (zero) will put no limit to the number " "of connections." msgstr "" "Es posible especificar el número máximo de conexiones que cvsd puede manejar " "simultáneamente. Si se especifica el valor 0 (cero) no se pondrán límites al " "número de conexiones." #. Type: string #. Description #: ../templates:3001 msgid "Nice value cvsd should run at:" msgstr "Valor «nice» con el que se debe ejecutar cvsd:" #. Type: string #. Description #: ../templates:3001 msgid "" "cvsd can be run at reduced priority so it will not take up too many " "resources, especially if a user specifies a -z option to cvs. The priority " "can also be increased (negative value here)." msgstr "" "cvsd se puede ejecutar con una prioridad reducida para que no use muchos " "recursos, especialmente si un usuario le introduce la opción -z a cvs. La " "prioridad puede también incrementarse (introduciendo aquí un valor negativo)." #. Type: string #. Description #: ../templates:4001 msgid "Umask cvsd should run at:" msgstr "Máscara «umask» con la que se debe ejecutar cvsd:" #. Type: string #. Description #: ../templates:4001 msgid "Specify the umask cvsd and cvs should use when creating files." msgstr "" "Especifique la máscara «umask» que cvsd y cvs deben usar al crear ficheros." #. Type: string #. Description #: ../templates:4001 msgid "" "The umask should be specified as an octal value and represents the " "permissions that should be taken away when creating a file (e.g. using 027 " "will create files with mode 640 or rw-r-----)." msgstr "" "La máscara «umask» se debe especificar como un valor octal y representa los " "permisos que se deben quitar al crear un fichero (por ejemplo, usando 027 se " "crearán ficheros con los permisos 640 ó rw-r-----)." #. Type: string #. Description #: ../templates:5001 msgid "Address and port on which cvsd will listen:" msgstr "Dirección y puerto en la que cvsd escuchará:" #. Type: string #. Description #: ../templates:5001 msgid "" "With the first argument you can specify the address cvsd should listen on. " "The '*' address specifies that cvsd should listen on all addresses. You can " "specify a IPv4 address, IPv6 address, a hostname or '*'." msgstr "" "Con el primer argumento puede especificar la dirección en la que debe " "escuchar cvsd. La dirección «*» indica que cvsd debe escuchar en todas las " "direcciones. Puede especificar una dirección IPv4, IPv6, un nombre de " "máquina o «*»." #. Type: string #. Description #: ../templates:5001 msgid "" "The second argument is the service name (e.g. cvspserver) or port number " "(default 2401) cvsd will listen on." msgstr "" "El segundo argumento es el nombre del servicio (por ejemplo, cvspserver) o " "el número de puerto (2401 por omisión) en el que cvsd escuchará." #. Type: string #. Description #: ../templates:5001 msgid "" "The address and port should be separated by a space and you can specify " "multiple address-port combinations by separating them with spaces." msgstr "" "La dirección y el puerto deben estar separados por un espacio y puede " "especificar múltiples combinaciones dirección-puerto separándolas con " "espacios." #. Type: string #. Description #: ../templates:6001 msgid "Repositories to serve:" msgstr "Repositorios a servir:" #. Type: string #. Description #: ../templates:6001 msgid "" "The whole idea of cvsd is to serve repositories. Specify a colon ':' " "separated list of repositories to serve. The location of these repositories " "is relative to the specified chroot jail (${rootjail}) and should start with " "a '/'." msgstr "" "La idea de cvsd es la de servir repositorios. Especifique una lista de los " "repositorios que quiere servir separados por dos puntos «:». La ubicación de " "estos repositorios es relativa a la cárcel chroot especificada (${rootjail}) " "y debe empezar con una «/»." #. Type: string #. Description #: ../templates:6001 msgid "" "The repositories here should be initialized by hand with something like 'cvs " "-d ${rootjail}/myrepos init' after which passwords can be set with 'cvsd-" "passwd ${rootjail}/myrepos anonymous'. See the file /usr/share/doc/cvsd/" "README.gz for details on creating repositories." msgstr "" "Los repositorios aquí indicados deben inicializarse más tarde manualmente " "con algo como «cvs -d ${rootjail}/myrepos init», sus contraseñas pueden " "establecerse con «cvsd-passwd ${rootjail}/myrepos anonymous». Si quiere " "detalles sobre como crear repositorios mire el fichero /usr/share/doc/cvsd/" "README.gz." #. Type: multiselect #. Choices #: ../templates:7001 msgid "coredumpsize" msgstr "tamaño del volcado de memoria" #. Type: multiselect #. Choices #: ../templates:7001 msgid "cputime" msgstr "tiempo de procesador" #. Type: multiselect #. Choices #: ../templates:7001 msgid "datasize" msgstr "tamaño de los datos" #. Type: multiselect #. Choices #: ../templates:7001 msgid "filesize" msgstr "tamaño de fichero" #. Type: multiselect #. Choices #: ../templates:7001 msgid "memorylocked" msgstr "memoria bloqueda" #. Type: multiselect #. Choices #: ../templates:7001 msgid "openfiles" msgstr "número máximo de ficheros abiertos" #. Type: multiselect #. Choices #: ../templates:7001 msgid "maxproc" msgstr "número máximo de procesos" #. Type: multiselect #. Choices #: ../templates:7001 msgid "memoryuse" msgstr "uso de memoria" #. Type: multiselect #. Choices #: ../templates:7001 msgid "stacksize" msgstr "tamaño de la pila" #. Type: multiselect #. Choices #: ../templates:7001 msgid "virtmem" msgstr "memoria virtual" #. Type: multiselect #. Description #: ../templates:7002 msgid "Resources of pserver processes to limit:" msgstr "Seleccione los recursos de los procesos de pserver que desea limitar:" #. Type: multiselect #. Description #: ../templates:7002 msgid "" "The pserver wrapper can be configured to limit the resource usage that a " "pserver process can have. These resource limits will be set on each pserver " "process and not on the wrapper." msgstr "" "El envoltorio pserver puede configurarse para limitar el uso de recursos que " "un proceso pserver puede tener. Estos límites se establecerán en cada " "proceso pserver y no en el envoltorio." #. Type: multiselect #. Description #: ../templates:7002 msgid "" "Choose from the list the resources that you want to limit. You will be asked " "to specify limits about every resource you selected here." msgstr "" "Escoja de la lista de recursos que quiera limitar. Se le pedirá que " "especifique los límites para cada recurso que seleccione aquí." #. Type: multiselect #. Description #: ../templates:7002 msgid "" "Note that not all resources may be available on all systems and that " "resources may be system and kernel specific so use these with caution. The " "results of exceeding the set limits may also be system specific but will " "most likely stop the cvs process and close the connection (may be " "problematic with write access to cvs repository)." msgstr "" "Tenga en cuenta que no todos los recursos pueden estar disponibles en todos " "los sistemas y que los recursos pueden ser específicos del sistema y del " "núcleo, así que use esto con precaución. Los resultados de exceder los " "límites establecidos pueden ser también específicos del sistema pero " "probablemente se parará el proceso cvs y se cerrará la conexión (puede ser " "problemático si el repositorio cvs tiene accesos de escritura)." #. Type: string #. Description #: ../templates:8001 msgid "Maximum file size of a core dump:" msgstr "Tamaño máximo del fichero de volcado de memoria:" #. Type: string #. Description #: ../templates:8001 msgid "" "Set this to 0 (zero) (should be the system default) to prevent core dumps. " "Otherwise this limits the size of core dumps to the specified value." msgstr "" "Ajuste esto a 0 (cero) (debe ser el valor por omisión del sistema) para " "prevenir volcados de memoria. De otro modo esto limitaría el tamaño de los " "volcados de memoria al valor especificado." #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #: ../templates:8001 ../templates:10001 ../templates:11001 ../templates:12001 #: ../templates:15001 ../templates:16001 ../templates:17001 msgid "" "This value may be specified with a suffix of 'b' (bytes), 'k' (1024 bytes) " "or 'm' (1024*1024 bytes), where 'k' is the default." msgstr "" "Este valor puede ser especificado con un sufijo de «b» (bytes), «k» (1024 " "bytes), o «m» (1024*1024 bytes), donde «k» es el sufijo por omisión." #. Type: string #. Description #: ../templates:9001 msgid "Maximum amount of cpu time consumed:" msgstr "Cantidad máxima de tiempo de cpu consumido:" #. Type: string #. Description #: ../templates:9001 msgid "" "This limits the number of cpu seconds the cvs process can use. This will " "prevent too much cpu time from being allocated to a single connection." msgstr "" "Esto limita el número de segundos de procesador que el proceso cvs puede " "utilizar. Esto evitará que se asigne mucho tiempo de procesador a una sola " "conexión." #. Type: string #. Description #: ../templates:9001 msgid "" "This value can be formatted as 'mm:ss' or have a 'm' or 's' suffix where 's' " "is default." msgstr "" "Este valor puede formatearse como «mm:ss» o tener un sufijo «m» o «s», donde " "«s» es el sufijo por omisión." #. Type: string #. Description #: ../templates:10001 msgid "Maximum size of program's data segment:" msgstr "Tamaño máximo del segmento de datos del programa:" #. Type: string #. Description #: ../templates:10001 msgid "" "This limits the amount of memory the cvs program can use. This specific item " "limits the size of the data segment." msgstr "" "Esto limita la cantidad de memoria que el programa cvs puede usar. Este " "elemento específico limita el tamaño del segmento de datos." #. Type: string #. Description #: ../templates:11001 msgid "Maximum size of files created:" msgstr "Tamaño máximo de los ficheros creados:" #. Type: string #. Description #: ../templates:11001 msgid "" "This limits the maximum size of a file created by cvs. Note that the cvs " "pserver process needs to be able to create lock files and possibly write " "history or other files so don't set this to 0 (zero)." msgstr "" "Esto limita el tamaño máximo de un fichero creado por cvs. Tenga en cuenta " "que el proceso cvs pserver necesita poder crear ficheros de bloqueo y " "probablemente escribir históricos u otros ficheros así que no ponga este " "valor a 0 (cero)." #. Type: string #. Description #: ../templates:12001 msgid "Maximum amount of locked memory:" msgstr "Cantidad máxima de memoria bloqueada:" #. Type: string #. Description #: ../templates:12001 msgid "" "This limits the amount of memory the cvs process may lock. cvs probably " "doesn't need to lock any memory at all." msgstr "" "Esto limita la cantidad de memoria que el proceso cvs puede bloquear. cvs " "probablemente no necesite nunca bloquear memoria." #. Type: string #. Description #: ../templates:13001 msgid "Maximum number of open files:" msgstr "Número máximo de ficheros abiertos:" #. Type: string #. Description #: ../templates:13001 msgid "" "This limits the number of files and connections that the cvs process can " "have open at a single moment. The cvs process needs to access quite a few " "files so don't set this too low." msgstr "" "Esto limita el número de ficheros y conexiones que el proceso cvs puede " "tener abiertos en un momento. El proceso cvs necesita acceder a algunos " "ficheros, por lo que es conveniente que este valor no sea muy bajo." #. Type: string #. Description #: ../templates:14001 msgid "Maximum number of processes:" msgstr "Número máximo de procesos:" #. Type: string #. Description #: ../templates:14001 msgid "" "This limits the maximum number of processes that a single user may have. cvs " "may need to spawn additional processes to run scripts or do subtasks so " "don't set this too low." msgstr "" "Esto limita el número máximo de procesos que un solo usuario puede tener. " "cvs puede necesitar el lanzamiento de procesos adicionales para ejecutar " "scripts o para hacer subtareas, por lo que es conveniente que este valor no " "sea muy bajo." #. Type: string #. Description #: ../templates:15001 msgid "Maximum size of resident memory:" msgstr "Tamaño máximo de la memoria residente:" #. Type: string #. Description #: ../templates:15001 msgid "This specifies the amount of physical memory a process may have." msgstr "" "Esto especifica la cantidad de memoria física que un proceso puede tener." #. Type: string #. Description #: ../templates:16001 msgid "Maximum stack size:" msgstr "Tamaño máximo de la pila:" #. Type: string #. Description #: ../templates:16001 msgid "This limits the size of the stack." msgstr "Esto limita el tamaño de la pila." #. Type: string #. Description #: ../templates:17001 msgid "Maximum amount of virtual memory allocated:" msgstr "Cantidad máxima de memoria virtual asignada:" #. Type: string #. Description #: ../templates:17001 msgid "" "This limits the total amount of virtual memory a process may have allocated." msgstr "" "Esto limita la cantidad total de memoria virtual que un proceso puede tener " "asignada." #. Type: string #. Description #: ../templates:18001 msgid "Maximum number of threads:" msgstr "Número máximo de hilos:" #. Type: string #. Description #: ../templates:18001 msgid "This limits the number of threads that a single process may have." msgstr "Esto limita el número de hilos que un solo proceso puede tener." #. Type: string #. Description #: ../templates:18001 msgid "" "This is not available under Linux so it is not in the list for cvsd/limits. " "If Hurd has it it may be useful." msgstr "" "Esto no está disponible bajo Linux por lo que no está en la lista para cvsd/" "limits. Si Hurd lo tiene puede ser útil." #. Type: boolean #. Description #: ../templates:19001 msgid "Remove chroot jail containing repositories?" msgstr "¿Desea eliminar la cárcel «chroot» que contiene los repositorios?" #. Type: boolean #. Description #: ../templates:19001 msgid "" "The following directory is configured as a chroot jail for cvsd:\n" " ${rootjail}\n" "You may choose to remove the chroot jail but you will also lose all the " "repositories inside the chroot jail. If you have not backed up your " "repositories you want to keep do not remove it now and manually remove it " "later once your repositories are safe." msgstr "" "El siguiente directorio está configurado como una cárcel «chroot» para " "cvsd:\n" " ${rootjail}\n" "Puede escoger eliminar la cárcel «chroot», pero también perderá todos los " "repositorios que estén dentro de ella. Si no ha hecho copia de seguridad de " "los repositorios que quiere conservar no los elimine ahora, elimínelos " "manualmente más tarde cuando sus repositorios estén seguros." #. Type: boolean #. Description #: ../templates:19001 msgid "" "If you do choose to remove the chroot directory, all directories under it " "will be removed, even if they are on another file system." msgstr "" "Si escoge eliminar el directorio chroot, todos los directorios que se " "encuentren debajo de éste serán eliminados, incluso si se encuentran en otro " "sistema de ficheros." #. Type: boolean #. Description #: ../templates:19001 msgid "" "If you choose to keep the chroot jail please note that the cvsd user and " "group will be removed so uid and gid file information may no longer be " "consistent." msgstr "" "Por favor, si escoge mantener la cárcel chroot tenga en cuenta que el " "usuario y el grupo cvsd se eliminarán, por tanto la información del «uid» y " "del «gid» de los ficheros puede que no sea consistente por más tiempo." cvsd-1.0.24/debian/po/pt.po0000644000000000000000000004126511431736066012265 0ustar # Portuguese translation of cvsd debconf messages. # This file is distributed under the same license as the cvsd package. # Ricardo Silva , 2006. # msgid "" msgstr "" "Project-Id-Version: cvsd 1.0.8\n" "Report-Msgid-Bugs-To: Arthur de Jong \n" "POT-Creation-Date: 2007-07-21 14:26+0200\n" "PO-Revision-Date: 2006-08-04 21:32+0000\n" "Last-Translator: Ricardo Silva \n" "Language-Team: Native Portuguese \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: string #. Description #: ../templates:1001 msgid "Location of chroot jail:" msgstr "Localização da cadeia chroot:" #. Type: string #. Description #: ../templates:1001 msgid "" "cvsd can run in a chroot jail. This is the preferred method of operation. " "Specify the location of the chroot jail. If you make this 'none' no chroot " "jail will be created and used. A chroot file hierarchy will be created in " "the specified location." msgstr "" "O cvsd pode correr numa cadeia chroot. Este é o método preferencial de " "operação. Especifique a localização da cadeia chroot. Se escolher 'nenhum' " "não será criada nem usada nenhuma cadeia chroot. A hierarquia de chroot será " "criada na localização especificada." #. Type: string #. Description #: ../templates:2001 msgid "The maximum number of connections that can be handled:" msgstr "Número máximo de ligações que podem ser geridas:" #. Type: string #. Description #: ../templates:2001 msgid "" "It is possible to specify a maximum number of connections that cvsd can " "handle simultaneously. Specifying 0 (zero) will put no limit to the number " "of connections." msgstr "" "É possível especificar um número máximo de ligações a serem geridas pelo " "cvsd simultaneamente. Especificar 0 (zero) não coloca limite no número de " "ligações." #. Type: string #. Description #: ../templates:3001 msgid "Nice value cvsd should run at:" msgstr "Valor óptimo com que o cvsd deve correr:" #. Type: string #. Description #: ../templates:3001 msgid "" "cvsd can be run at reduced priority so it will not take up too many " "resources, especially if a user specifies a -z option to cvs. The priority " "can also be increased (negative value here)." msgstr "" "O cvsd pode ser corrido com prioridade reduzida de forma a não ocupar " "demasiados recursos, especialmente se um utilizador especificar a opção -z " "ao cvs. A prioridade também pode ser aumentada (introduzir um valor negativo " "para isso)." #. Type: string #. Description #: ../templates:4001 msgid "Umask cvsd should run at:" msgstr "Umask com que o cvsd deve correr:" #. Type: string #. Description #: ../templates:4001 msgid "Specify the umask cvsd and cvs should use when creating files." msgstr "Especifique a umask com que o cvsd e o cvs devem criar ficheiros." #. Type: string #. Description #: ../templates:4001 msgid "" "The umask should be specified as an octal value and represents the " "permissions that should be taken away when creating a file (e.g. using 027 " "will create files with mode 640 or rw-r-----)." msgstr "" "A umask deve ser especificada como um valor em octal e representa as " "permissões que devem ser tiradas quando se cria um ficheiro (por exemplo " "usar 027 vai criar ficheiros com modo 640 ou rw-r-----)." #. Type: string #. Description #: ../templates:5001 msgid "Address and port on which cvsd will listen:" msgstr "Endereço e porta na qual o cvsd vai ouvir:" #. Type: string #. Description #: ../templates:5001 msgid "" "With the first argument you can specify the address cvsd should listen on. " "The '*' address specifies that cvsd should listen on all addresses. You can " "specify a IPv4 address, IPv6 address, a hostname or '*'." msgstr "" "Com o primeiro argumento pode especificar o endereço onde o cvsd deve ouvir. " "O endereço '*' especifica que o cvsd deve ouvir em todos os endereços. Pode " "especificar um endereço IPv4, IPv6, um hostname ou '*'." #. Type: string #. Description #: ../templates:5001 msgid "" "The second argument is the service name (e.g. cvspserver) or port number " "(default 2401) cvsd will listen on." msgstr "" "O segundo argumento é o nome de serviço (p.e. cvspserver) ou número da porta " "(2401 por omissão) em que o cvsd vai ouvir." #. Type: string #. Description #: ../templates:5001 msgid "" "The address and port should be separated by a space and you can specify " "multiple address-port combinations by separating them with spaces." msgstr "" "O endereço e a porta devem ser separados por um espaço e poderá especificar " "várias combinações endereço-porta separando-as com espaços." #. Type: string #. Description #: ../templates:6001 msgid "Repositories to serve:" msgstr "Repositórios a servir:" #. Type: string #. Description #: ../templates:6001 msgid "" "The whole idea of cvsd is to serve repositories. Specify a colon ':' " "separated list of repositories to serve. The location of these repositories " "is relative to the specified chroot jail (${rootjail}) and should start with " "a '/'." msgstr "" "A ideia do cvsd é servir repositórios. Especifique uma lista, separada por " "dois pontos ':', com os repositórios a servir. A localização dos " "repositórios é relativa à cadeia chroot especificada (${rootjail}) e deve " "começar com uma '/'." #. Type: string #. Description #: ../templates:6001 msgid "" "The repositories here should be initialized by hand with something like 'cvs " "-d ${rootjail}/myrepos init' after which passwords can be set with 'cvsd-" "passwd ${rootjail}/myrepos anonymous'. See the file /usr/share/doc/cvsd/" "README.gz for details on creating repositories." msgstr "" "Estes repositórios devem ser inicializados à mão com algo do género 'cvs -d " "${rootjail}/myrepos init' depois podem especificar-se palavras-chave com " "'cvsd-passwd ${rootjail}/myrepos anonymous'. Veja o ficheiro /usr/share/doc/" "cvsd/README.gz para detalhes sobre como criar repositórios." #. Type: multiselect #. Choices #: ../templates:7001 msgid "coredumpsize" msgstr "tamanho_do_coredump" #. Type: multiselect #. Choices #: ../templates:7001 msgid "cputime" msgstr "tempo_de_cpu" #. Type: multiselect #. Choices #: ../templates:7001 msgid "datasize" msgstr "tamanho_dos_dados" #. Type: multiselect #. Choices #: ../templates:7001 msgid "filesize" msgstr "tamanho_de_ficheiro" #. Type: multiselect #. Choices #: ../templates:7001 msgid "memorylocked" msgstr "memoria_bloqueada" #. Type: multiselect #. Choices #: ../templates:7001 msgid "openfiles" msgstr "ficheiros_abertos" #. Type: multiselect #. Choices #: ../templates:7001 msgid "maxproc" msgstr "maximo_processos" #. Type: multiselect #. Choices #: ../templates:7001 msgid "memoryuse" msgstr "uso_de_memoria" #. Type: multiselect #. Choices #: ../templates:7001 msgid "stacksize" msgstr "tamanho_de_pilha" #. Type: multiselect #. Choices #: ../templates:7001 msgid "virtmem" msgstr "memoria_virtual" #. Type: multiselect #. Description #: ../templates:7002 msgid "Resources of pserver processes to limit:" msgstr "Escolha os recursos a limitar:" #. Type: multiselect #. Description #: ../templates:7002 msgid "" "The pserver wrapper can be configured to limit the resource usage that a " "pserver process can have. These resource limits will be set on each pserver " "process and not on the wrapper." msgstr "" "O embrulho do pserver pode ser configurado para limitar o uso de recursos " "que um processo pserver pode ter. Estes recursos serão impostos a cada " "processo do pserver e não no embrulho." #. Type: multiselect #. Description #: ../templates:7002 msgid "" "Choose from the list the resources that you want to limit. You will be asked " "to specify limits about every resource you selected here." msgstr "" "Escolha da lista de recursos quais quer limitar. Ser-lhe-ão perguntados " "limites específicos acerca de cada recurso que escolher." #. Type: multiselect #. Description #: ../templates:7002 msgid "" "Note that not all resources may be available on all systems and that " "resources may be system and kernel specific so use these with caution. The " "results of exceeding the set limits may also be system specific but will " "most likely stop the cvs process and close the connection (may be " "problematic with write access to cvs repository)." msgstr "" "Note que nem todos recursos podem estar disponíveis em todos os sistemas e " "que os recursos podem ser específicos ao sistema e ao kernel, portanto use " "com precaução. Os resultados de exceder os limites especificados também " "podem ser específicos ao sistema mas irão com grande probabilidade parar o " "processo de cvs e fechar a ligação (o que pode colocar problemas com acesso " "de escrita ao repositório cvs)." #. Type: string #. Description #: ../templates:8001 msgid "Maximum file size of a core dump:" msgstr "Tamanho máximo de um core dump:" #. Type: string #. Description #: ../templates:8001 msgid "" "Set this to 0 (zero) (should be the system default) to prevent core dumps. " "Otherwise this limits the size of core dumps to the specified value." msgstr "" "Especifique 0 (zero) (deve ser o valor por omissão do sistema) para prevenir " "core dumps. De outra forma isto limita o tamanho dos core dumps ao valor " "especificado." #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #: ../templates:8001 ../templates:10001 ../templates:11001 ../templates:12001 #: ../templates:15001 ../templates:16001 ../templates:17001 msgid "" "This value may be specified with a suffix of 'b' (bytes), 'k' (1024 bytes) " "or 'm' (1024*1024 bytes), where 'k' is the default." msgstr "" "Este valor pode ser especificado com um sufixo 'b' (bytes), 'k' (1024 bytes) " "ou 'm' (1024*1024 bytes), dos quais 'k' é o valor por omissão." #. Type: string #. Description #: ../templates:9001 msgid "Maximum amount of cpu time consumed:" msgstr "Tempo máximo de cpu consumido:" #. Type: string #. Description #: ../templates:9001 msgid "" "This limits the number of cpu seconds the cvs process can use. This will " "prevent too much cpu time from being allocated to a single connection." msgstr "" "Limita o número de segundos que o processo cvs pode usar o cpu. Irá prevenir " "que uma ligação use demasiado tempo de cpu." #. Type: string #. Description #: ../templates:9001 msgid "" "This value can be formatted as 'mm:ss' or have a 'm' or 's' suffix where 's' " "is default." msgstr "" "Este valor pode ser formatado como 'mm:ss' ou ter um sufixo 'm' ou 's' em " "que 's' é o valor por omissão." #. Type: string #. Description #: ../templates:10001 msgid "Maximum size of program's data segment:" msgstr "Tamanho máximo do segmento de dados do programa:" #. Type: string #. Description #: ../templates:10001 msgid "" "This limits the amount of memory the cvs program can use. This specific item " "limits the size of the data segment." msgstr "" "Limita a quantidade de memória que o cvs pode usar. Este item específico " "limita o tamanho do segmento de dados." #. Type: string #. Description #: ../templates:11001 msgid "Maximum size of files created:" msgstr "Tamanho máximo dos ficheiros criados:" #. Type: string #. Description #: ../templates:11001 msgid "" "This limits the maximum size of a file created by cvs. Note that the cvs " "pserver process needs to be able to create lock files and possibly write " "history or other files so don't set this to 0 (zero)." msgstr "" "Limita o tamanho máximo de um ficheiro criado pelo cvs. Note que o processo " "pserver do cvs necessita de poder criar ficheiros de lock e possivelmente " "criar ficheiros de histórico ou por outras razões, portanto não limite a 0 " "(zero)." #. Type: string #. Description #: ../templates:12001 msgid "Maximum amount of locked memory:" msgstr "Quantidade máxima de memória bloqueada:" #. Type: string #. Description #: ../templates:12001 msgid "" "This limits the amount of memory the cvs process may lock. cvs probably " "doesn't need to lock any memory at all." msgstr "" "Limita a quantidade máxima de memória que o processo cvs pode bloquear. O " "cvs provavelmente não precisa de bloquear qualquer memória." #. Type: string #. Description #: ../templates:13001 msgid "Maximum number of open files:" msgstr "Número máximo de ficheiros abertos:" #. Type: string #. Description #: ../templates:13001 msgid "" "This limits the number of files and connections that the cvs process can " "have open at a single moment. The cvs process needs to access quite a few " "files so don't set this too low." msgstr "" "Limita o número de ficheiros e ligações que o processo cvs pode ter abertos " "num dado momento. O processo cvs precisa de aceder a uns quantos ficheiros " "portanto não especifique um limite baixo demais." #. Type: string #. Description #: ../templates:14001 msgid "Maximum number of processes:" msgstr "Número máximo de processos:" #. Type: string #. Description #: ../templates:14001 msgid "" "This limits the maximum number of processes that a single user may have. cvs " "may need to spawn additional processes to run scripts or do subtasks so " "don't set this too low." msgstr "" "Isto limita o número máximo de processos que um só utilizador pode ter. O " "cvs pode precisar de lançar processos adicionais para correr scripts ou " "fazer outras tarefas pelo que não deve especificar um limite baixo demais." #. Type: string #. Description #: ../templates:15001 msgid "Maximum size of resident memory:" msgstr "Tamanho máximo de memória residente:" #. Type: string #. Description #: ../templates:15001 msgid "This specifies the amount of physical memory a process may have." msgstr "Especifica a quantidade de memória física que um processo pode ter." #. Type: string #. Description #: ../templates:16001 msgid "Maximum stack size:" msgstr "Tamanho máximo da pilha:" #. Type: string #. Description #: ../templates:16001 msgid "This limits the size of the stack." msgstr "Limita o tamanho da pilha de execução." #. Type: string #. Description #: ../templates:17001 msgid "Maximum amount of virtual memory allocated:" msgstr "Quantidade máxima de memória virtual alocada:" #. Type: string #. Description #: ../templates:17001 msgid "" "This limits the total amount of virtual memory a process may have allocated." msgstr "" "Limita a quantidade máxima de memória virtual que um processo pode ter " "alocada." #. Type: string #. Description #: ../templates:18001 msgid "Maximum number of threads:" msgstr "Número máximo de threads:" #. Type: string #. Description #: ../templates:18001 msgid "This limits the number of threads that a single process may have." msgstr "Limita o número máximo de threads que um só processo pode ter." #. Type: string #. Description #: ../templates:18001 msgid "" "This is not available under Linux so it is not in the list for cvsd/limits. " "If Hurd has it it may be useful." msgstr "" "Não está disponível em Linux pelo que não está na lista de limites do cvsd. " "Se o Hurd o tiver, poderá ser útil." #. Type: boolean #. Description #: ../templates:19001 msgid "Remove chroot jail containing repositories?" msgstr "Remover a cadeia chroot que contem os repositórios?" #. Type: boolean #. Description #: ../templates:19001 msgid "" "The following directory is configured as a chroot jail for cvsd:\n" " ${rootjail}\n" "You may choose to remove the chroot jail but you will also lose all the " "repositories inside the chroot jail. If you have not backed up your " "repositories you want to keep do not remove it now and manually remove it " "later once your repositories are safe." msgstr "" "O seguinte directório está configurado como sendo uma cadeia chroot para o " "cvsd:\n" " ${rootjail}\n" "Pode escolher remover a cadeia chroot mas também irá perder todos os " "repositórios dentro dela. Se não salvaguardou os seus repositórios " "provavelmente não o quererá remover agora mas sim removê-lo mais tarde " "quando os repositórios estiverem a salvo." #. Type: boolean #. Description #: ../templates:19001 msgid "" "If you do choose to remove the chroot directory, all directories under it " "will be removed, even if they are on another file system." msgstr "" "Se escolher remover o directório de chroot, todos os subdirectórios serão " "removidos, mesmo que estejam noutro sistema de ficheiros." #. Type: boolean #. Description #: ../templates:19001 msgid "" "If you choose to keep the chroot jail please note that the cvsd user and " "group will be removed so uid and gid file information may no longer be " "consistent." msgstr "" "Se escolher manter a cadeia chroot note que os utilizador e grupo cvsd serão " "removidos pelo que a informação de uid e gid no ficheiro podem perder " "consistência." cvsd-1.0.24/debian/po/fr.po0000644000000000000000000004367211431736066012255 0ustar # # Translators, if you are not familiar with the PO format, gettext # documentation is worth reading, especially sections dedicated to # this format, e.g. by running: # info -n '(gettext)PO Files' # info -n '(gettext)Header Entry' # # Some information specific to po-debconf are available at # /usr/share/doc/po-debconf/README-trans # or http://www.debian.org/intl/l10n/po-debconf/README-trans # # Developers do not need to manually edit POT or PO files. # msgid "" msgstr "" "Project-Id-Version: cvsd 1.0.8\n" "Report-Msgid-Bugs-To: Arthur de Jong \n" "POT-Creation-Date: 2007-07-21 14:26+0200\n" "PO-Revision-Date: 2004-12-05 23:51+0100\n" "Last-Translator: Christian Perrier \n" "Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=iso-8859-15\n" "Content-Transfer-Encoding: 8bit\n" #. Type: string #. Description #: ../templates:1001 msgid "Location of chroot jail:" msgstr "Emplacement de l'environnement fermé d'exécution (« chroot jail ») :" #. Type: string #. Description #: ../templates:1001 msgid "" "cvsd can run in a chroot jail. This is the preferred method of operation. " "Specify the location of the chroot jail. If you make this 'none' no chroot " "jail will be created and used. A chroot file hierarchy will be created in " "the specified location." msgstr "" "Cvsd peut s'exécuter dans un environnement fermé. Cette méthode de " "fonctionnement est conseillée. Veuillez indiquer l'emplacement de " "l'environnement fermé d'exécution. Si vous indiquez la valeur « none », " "aucun environnement fermé ne sera créé ni utilisé. Une hiérarchie de " "fichiers adaptée aux environnement fermés sera créée à l'emplacement indiqué." #. Type: string #. Description #: ../templates:2001 msgid "The maximum number of connections that can be handled:" msgstr "Nombre maximal de connexions gérées :" #. Type: string #. Description #: ../templates:2001 msgid "" "It is possible to specify a maximum number of connections that cvsd can " "handle simultaneously. Specifying 0 (zero) will put no limit to the number " "of connections." msgstr "" "Vous pouvez indiquer un nombre maximal de connexions qui seront gérées " "simultanément par cvsd. Si vous indiquez une valeur nulle, le nombre de " "connexions ne sera pas limité." #. Type: string #. Description #: ../templates:3001 msgid "Nice value cvsd should run at:" msgstr "Valeur de politesse (« nice ») du processus cvsd :" #. Type: string #. Description #: ../templates:3001 msgid "" "cvsd can be run at reduced priority so it will not take up too many " "resources, especially if a user specifies a -z option to cvs. The priority " "can also be increased (negative value here)." msgstr "" "Il est possible de diminuer la priorité de cvsd afin de ne pas consommer " "trop de ressources, notamment quand un utilisateur se sert de l'option « -" "z » de cvs. La priorité peut également être augmentée (indiquez alors une " "valeur négative)." #. Type: string #. Description #: ../templates:4001 msgid "Umask cvsd should run at:" msgstr "Masque de création de fichiers (« umask ») utilisé par cvsd :" #. Type: string #. Description #: ../templates:4001 msgid "Specify the umask cvsd and cvs should use when creating files." msgstr "" "Veuillez indiquer le masque de création de fichiers que cvsd et cvs " "utiliseront." #. Type: string #. Description #: ../templates:4001 msgid "" "The umask should be specified as an octal value and represents the " "permissions that should be taken away when creating a file (e.g. using 027 " "will create files with mode 640 or rw-r-----)." msgstr "" "Cette valeur doit être indiquée en mode octal et représente les permissions " "qui sont retirées lors de la création d'un fichier (p. ex., si vous indiquez " "027, les fichiers seront créés avec les permissions 640 en octal, soit « rw-" "r----- »)." #. Type: string #. Description #: ../templates:5001 msgid "Address and port on which cvsd will listen:" msgstr "Adresse et port d'écoute de cvsd :" #. Type: string #. Description #: ../templates:5001 msgid "" "With the first argument you can specify the address cvsd should listen on. " "The '*' address specifies that cvsd should listen on all addresses. You can " "specify a IPv4 address, IPv6 address, a hostname or '*'." msgstr "" "Le premier argument indique l'adresse d'écoute de cvsd. Si vous indiquez " "« * », le démon sera à l'écoute sur toutes les adresses. Vous pouvez " "indiquer une adresse IPv4, une adresse IPv6, un nom d'hôte ou « * »." #. Type: string #. Description #: ../templates:5001 msgid "" "The second argument is the service name (e.g. cvspserver) or port number " "(default 2401) cvsd will listen on." msgstr "" "Le second argument est le nom du service (p. ex. « cvspserver ») ou le " "numéro de port (2401 par défaut) où cvsd sera à l'écoute." #. Type: string #. Description #: ../templates:5001 msgid "" "The address and port should be separated by a space and you can specify " "multiple address-port combinations by separating them with spaces." msgstr "" "L'adresse et le port doivent être séparés par un espace. Vous pouvez " "indiquer plusieurs combinaisons d'adresses et de ports en les séparant " "également par des espaces." #. Type: string #. Description #: ../templates:6001 msgid "Repositories to serve:" msgstr "Dépôts CVS servis :" #. Type: string #. Description #: ../templates:6001 msgid "" "The whole idea of cvsd is to serve repositories. Specify a colon ':' " "separated list of repositories to serve. The location of these repositories " "is relative to the specified chroot jail (${rootjail}) and should start with " "a '/'." msgstr "" "L'objectif de cvsd est de mettre à disposition des dépôts CVS. Veuillez " "indiquer ici les dépôts qui seront accessibles (séparés par un caractère " "deux-points « : »). L'emplacement de ces dépôts doit être relatif à celui de " "l'environnement fermé d'exécution (${rootjail}) et doit commencer par le " "caractère « / »." #. Type: string #. Description #: ../templates:6001 msgid "" "The repositories here should be initialized by hand with something like 'cvs " "-d ${rootjail}/myrepos init' after which passwords can be set with 'cvsd-" "passwd ${rootjail}/myrepos anonymous'. See the file /usr/share/doc/cvsd/" "README.gz for details on creating repositories." msgstr "" "Vous devez vous-même initialiser les dépôts que vous indiquez ici, par " "exemple avec la commande « cvs -d ${rootjail}/mondépôt init ». Après cela, " "des mots de passe doivent être établis avec la commande « cvs-passwd " "${rootjail}/mondépôt anonymous ». Veuillez consulter le fichier /usr/share/" "doc/cvsd/README.gz pour plus d'informations sur la création de dépôts." #. Type: multiselect #. Choices #: ../templates:7001 msgid "coredumpsize" msgstr "Taille des vidages mémoire" #. Type: multiselect #. Choices #: ../templates:7001 msgid "cputime" msgstr "Temps processeur" #. Type: multiselect #. Choices #: ../templates:7001 msgid "datasize" msgstr "Taille du segment de données" #. Type: multiselect #. Choices #: ../templates:7001 msgid "filesize" msgstr "Taille de fichier" #. Type: multiselect #. Choices #: ../templates:7001 msgid "memorylocked" msgstr "Mémoire verrouillée" #. Type: multiselect #. Choices #: ../templates:7001 msgid "openfiles" msgstr "Nombre de fichiers ouverts" #. Type: multiselect #. Choices #: ../templates:7001 msgid "maxproc" msgstr "Nombre maximal de processus" #. Type: multiselect #. Choices #: ../templates:7001 msgid "memoryuse" msgstr "Mémoire résidente utilisée" #. Type: multiselect #. Choices #: ../templates:7001 msgid "stacksize" msgstr "Taille de la pile" #. Type: multiselect #. Choices #: ../templates:7001 msgid "virtmem" msgstr "Mémoire virtuelle" #. Type: multiselect #. Description #: ../templates:7002 msgid "Resources of pserver processes to limit:" msgstr "Ressources des processus pserver à limiter :" #. Type: multiselect #. Description #: ../templates:7002 msgid "" "The pserver wrapper can be configured to limit the resource usage that a " "pserver process can have. These resource limits will be set on each pserver " "process and not on the wrapper." msgstr "" "L'enveloppe (« wrapper ») de pserver peut limiter l'utilisation des " "ressources utilisées par un processus pserver. Ces limites de ressources " "seront mises en place sur chaque processus pserver, pas sur l'enveloppe elle-" "même." #. Type: multiselect #. Description #: ../templates:7002 msgid "" "Choose from the list the resources that you want to limit. You will be asked " "to specify limits about every resource you selected here." msgstr "" "Veuillez choisir les ressources à limiter à partir de la liste. Vous aurez à " "indiquer des limites pour chaque ressource choisie ici." #. Type: multiselect #. Description #: ../templates:7002 msgid "" "Note that not all resources may be available on all systems and that " "resources may be system and kernel specific so use these with caution. The " "results of exceeding the set limits may also be system specific but will " "most likely stop the cvs process and close the connection (may be " "problematic with write access to cvs repository)." msgstr "" "Veuillez noter que toutes ces ressources ne sont pas forcément disponibles " "sur tous les systèmes, certaines pouvant dépendre du noyau ou du système. " "Utilisez donc cela avec précaution. Les conséquences d'un dépassement des " "limites de ressources peuvent également dépendre du système : en général, le " "processus cvs sera interrompu et la connexion fermée (ce qui peut poser des " "problèmes s'il s'agit d'un accès en écriture vers le dépôt CVS)." #. Type: string #. Description #: ../templates:8001 msgid "Maximum file size of a core dump:" msgstr "Taille maximale d'un vidage mémoire (« core dump ») :" #. Type: string #. Description #: ../templates:8001 msgid "" "Set this to 0 (zero) (should be the system default) to prevent core dumps. " "Otherwise this limits the size of core dumps to the specified value." msgstr "" "Indiquez une valeur nulle ici (ce qui est usuellement la valeur par défaut " "du système) pour empêcher les vidages mémoire. Une autre valeur sera la " "limite maximale de taille d'un vidage mémoire." #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #: ../templates:8001 ../templates:10001 ../templates:11001 ../templates:12001 #: ../templates:15001 ../templates:16001 ../templates:17001 msgid "" "This value may be specified with a suffix of 'b' (bytes), 'k' (1024 bytes) " "or 'm' (1024*1024 bytes), where 'k' is the default." msgstr "" "Elle peut être indiquée avec un suffixe « b » (octets), « k » (1024 octets) " "ou « m » (1024*1024 octets). Le suffixe par défaut est « k »." #. Type: string #. Description #: ../templates:9001 msgid "Maximum amount of cpu time consumed:" msgstr "Temps processeur maximal consommé :" #. Type: string #. Description #: ../templates:9001 msgid "" "This limits the number of cpu seconds the cvs process can use. This will " "prevent too much cpu time from being allocated to a single connection." msgstr "" "Cette valeur limite le nombre de secondes d'utilisation du processeur par le " "processus cvs. Cela permet d'éviter d'allouer trop de temps processeur à une " "connexion donnée." #. Type: string #. Description #: ../templates:9001 msgid "" "This value can be formatted as 'mm:ss' or have a 'm' or 's' suffix where 's' " "is default." msgstr "" "Cette valeur peut être indiquée sous la forme « mm:ss » ou avoir un suffixe " "« m » ou « s ». Le suffixe par défaut est « s »." #. Type: string #. Description #: ../templates:10001 msgid "Maximum size of program's data segment:" msgstr "Taille maximale du segment de données du programme :" #. Type: string #. Description #: ../templates:10001 msgid "" "This limits the amount of memory the cvs program can use. This specific item " "limits the size of the data segment." msgstr "" "Cette valeur limite la quantité de mémoire que le programme cvs peut " "utiliser. Elle limite la taille du segment de données." #. Type: string #. Description #: ../templates:11001 msgid "Maximum size of files created:" msgstr "Taille maximale des fichiers créés :" #. Type: string #. Description #: ../templates:11001 msgid "" "This limits the maximum size of a file created by cvs. Note that the cvs " "pserver process needs to be able to create lock files and possibly write " "history or other files so don't set this to 0 (zero)." msgstr "" "Cette valeur limite la taille des fichiers créés par cvs. Veuillez noter que " "le processus pserver de cvs doit pouvoir créer des fichiers de verrouillage " "et éventuellement des fichiers d'historique ou autres. N'indiquez donc pas " "une valeur nulle." #. Type: string #. Description #: ../templates:12001 msgid "Maximum amount of locked memory:" msgstr "Quantité maximale de mémoire verrouillée :" #. Type: string #. Description #: ../templates:12001 msgid "" "This limits the amount of memory the cvs process may lock. cvs probably " "doesn't need to lock any memory at all." msgstr "" "Cette valeur limite la quantité de mémoire que le processus cvs peut " "verrouiller. Cvs n'a probablement pas du tout besoin de verrouiller la " "mémoire." #. Type: string #. Description #: ../templates:13001 msgid "Maximum number of open files:" msgstr "Nombre maximal de fichiers ouverts :" #. Type: string #. Description #: ../templates:13001 msgid "" "This limits the number of files and connections that the cvs process can " "have open at a single moment. The cvs process needs to access quite a few " "files so don't set this too low." msgstr "" "Cette valeur limite le nombre de fichiers et de connexions ouverts " "simultanément par le processus cvs. Ce processus doit accéder à un nombre " "non négligeable de fichiers : évitez donc de placer cette limite trop bas." #. Type: string #. Description #: ../templates:14001 msgid "Maximum number of processes:" msgstr "Nombre maximal de processus :" #. Type: string #. Description #: ../templates:14001 msgid "" "This limits the maximum number of processes that a single user may have. cvs " "may need to spawn additional processes to run scripts or do subtasks so " "don't set this too low." msgstr "" "Cette valeur limite le nombre de processus simultanés d'un utilisateur " "donné. Cvs doit pouvoir lancer des processus supplémentaires pour exécuter " "des scripts ou des sous-tâches : ne placez donc pas cette limite trop bas." #. Type: string #. Description #: ../templates:15001 msgid "Maximum size of resident memory:" msgstr "Taille maximale de la mémoire résidente :" #. Type: string #. Description #: ../templates:15001 msgid "This specifies the amount of physical memory a process may have." msgstr "" "Cette valeur limite la quantité de mémoire physique utilisée par un " "processus." #. Type: string #. Description #: ../templates:16001 msgid "Maximum stack size:" msgstr "Taille maximale de pile :" #. Type: string #. Description #: ../templates:16001 msgid "This limits the size of the stack." msgstr "Cette valeur limite la taille de la pile (« stack »)." #. Type: string #. Description #: ../templates:17001 msgid "Maximum amount of virtual memory allocated:" msgstr "Taille maximale de mémoire virtuelle allouée :" #. Type: string #. Description #: ../templates:17001 msgid "" "This limits the total amount of virtual memory a process may have allocated." msgstr "" "Cette valeur limite la taille de la mémoire virtuelle qui peut être allouée " "par un processus." #. Type: string #. Description #: ../templates:18001 msgid "Maximum number of threads:" msgstr "Nombre maximal de tâches (« threads ») :" #. Type: string #. Description #: ../templates:18001 msgid "This limits the number of threads that a single process may have." msgstr "Cette valeur limite le nombre maximal de tâches d'un processus donné." #. Type: string #. Description #: ../templates:18001 msgid "" "This is not available under Linux so it is not in the list for cvsd/limits. " "If Hurd has it it may be useful." msgstr "" "Ce type de limitation n'est pas possible sous Linux. C'est pourquoi elle " "n'est pas dans la liste de cvsd/limits. Elle est placée ici au cas où elle " "serait utile pour Hurd." #. Type: boolean #. Description #: ../templates:19001 msgid "Remove chroot jail containing repositories?" msgstr "Faut-il supprimer l'environnement fermé contenant les dépôts ?" #. Type: boolean #. Description #: ../templates:19001 msgid "" "The following directory is configured as a chroot jail for cvsd:\n" " ${rootjail}\n" "You may choose to remove the chroot jail but you will also lose all the " "repositories inside the chroot jail. If you have not backed up your " "repositories you want to keep do not remove it now and manually remove it " "later once your repositories are safe." msgstr "" "Le répertoire suivant est un environnement fermé d'exécution (« chroot " "jail ») pour cvsd :\n" " ${rootjail}\n" "Vous pouvez supprimer l'environnement fermé mais cela supprimera également " "les dépôts qu'il contient. Si vous n'avez pas sauvegardé vos dépôts, vous " "pouvez les conserver pour l'instant, puis les supprimer vous-même plus tard " "une fois qu'ils auront été sauvegardés." #. Type: boolean #. Description #: ../templates:19001 msgid "" "If you do choose to remove the chroot directory, all directories under it " "will be removed, even if they are on another file system." msgstr "" "Si vous choisissez de supprimer l'environnement fermé, tous les répertoires " "qu'il contient seront supprimés, même s'ils sont situés sur un autre système " "de fichiers." #. Type: boolean #. Description #: ../templates:19001 msgid "" "If you choose to keep the chroot jail please note that the cvsd user and " "group will be removed so uid and gid file information may no longer be " "consistent." msgstr "" "Si vous choisissez de conserver l'environnement fermé, veuillez noter que " "l'utilisateur et le groupe cvsd seront malgré tout supprimés : les " "informations de groupe et d'utilisateur propriétaires des fichiers " "deviendront alors incohérentes." cvsd-1.0.24/debian/po/nl.po0000644000000000000000000004567111431736066012260 0ustar # translation of templates to Dutch # Arthur de Jong , 2003 msgid "" msgstr "" "Project-Id-Version: cvsd 1.0.8\n" "Report-Msgid-Bugs-To: Arthur de Jong \n" "POT-Creation-Date: 2007-07-21 14:26+0200\n" "PO-Revision-Date: 2004-12-05 23:51+0100\n" "Last-Translator: Arthur de Jong \n" "Language-Team: Dutch\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-15\n" "Content-Transfer-Encoding: 8bit\n" #. Type: string #. Description #: ../templates:1001 msgid "Location of chroot jail:" msgstr "Plaats van de chroot gevangenis:" #. Type: string #. Description #: ../templates:1001 msgid "" "cvsd can run in a chroot jail. This is the preferred method of operation. " "Specify the location of the chroot jail. If you make this 'none' no chroot " "jail will be created and used. A chroot file hierarchy will be created in " "the specified location." msgstr "" "cvsd kan in een chroot gevangenis gestart worden. Dit is de geprefereerde " "manier van operatie. Specificeer hier de plaats van de chroot gevangenis. " "Door dit op 'none' te zetten wordt het gebruik van een chroot gevangenis " "uitgeschakeld en zal deze niet worden aangemaakt. Als hier een pad " "gedefinieerd is, zal daar een chroot gevangenis opgezet worden." #. Type: string #. Description #: ../templates:2001 msgid "The maximum number of connections that can be handled:" msgstr "" "Het maximum aantal verbindingen dat tegelijkertijd kan worden afgehandeld:" #. Type: string #. Description #: ../templates:2001 msgid "" "It is possible to specify a maximum number of connections that cvsd can " "handle simultaneously. Specifying 0 (zero) will put no limit to the number " "of connections." msgstr "" "Het is mogelijk om een maximum aantal verbindingen op te geven dat cvsd " "tegelijkertijd kan afhandelen. Door 0 (nul) op te geven wordt het aantal " "verbindingen niet beperkt." #. Type: string #. Description #: ../templates:3001 msgid "Nice value cvsd should run at:" msgstr "De nice waarde waarmee cvsd zal werken:" #. Type: string #. Description #: ../templates:3001 msgid "" "cvsd can be run at reduced priority so it will not take up too many " "resources, especially if a user specifies a -z option to cvs. The priority " "can also be increased (negative value here)." msgstr "" "De prioriteit die cvsd krijgt kan verlaagd worden zodat het niet te veel " "middelen van de server kan gebruiken, bijvoorbeeld als de gebruiker een -z " "optie meegeeft aan cvs. De prioriteit kan ook verhoogd worden door hier een " "negatieve waarde op te geven." #. Type: string #. Description #: ../templates:4001 msgid "Umask cvsd should run at:" msgstr "De umask waarmee cvsd zal werken:" #. Type: string #. Description #: ../templates:4001 msgid "Specify the umask cvsd and cvs should use when creating files." msgstr "" "Specificeer hier de umask die cvsd en het cvs proces gebruiken om nieuwe " "files aan te maken." #. Type: string #. Description #: ../templates:4001 msgid "" "The umask should be specified as an octal value and represents the " "permissions that should be taken away when creating a file (e.g. using 027 " "will create files with mode 640 or rw-r-----)." msgstr "" "De umask moet opgegeven worden als een octaal getal en geeft de permissies " "aan die verwijderd moeten worden bij het aanmaken van een nieuwe file " "(bijvoorbeeld bij een umask van 027 worden files aangemaak met permissies " "640 of rw-r-----)." #. Type: string #. Description #: ../templates:5001 msgid "Address and port on which cvsd will listen:" msgstr "Het adres en de poort waarop cvsd verbindingen accepteert:" #. Type: string #. Description #: ../templates:5001 msgid "" "With the first argument you can specify the address cvsd should listen on. " "The '*' address specifies that cvsd should listen on all addresses. You can " "specify a IPv4 address, IPv6 address, a hostname or '*'." msgstr "" "Met het eerste argument kan worden opgegeven op welk adres cvsd naar " "inkomende verbindingen moet luisteren. Het '*' adres kan gebruikt worden om " "aan te geven dat cvsd op alle adressen moet luisteren. Je kunt een IPv4 " "adres, een IPv6 adres, de naam van het systeem of '*' opgeven." #. Type: string #. Description #: ../templates:5001 msgid "" "The second argument is the service name (e.g. cvspserver) or port number " "(default 2401) cvsd will listen on." msgstr "" "Het tweede argument is de naam van de service (bijvoorbeeld cvspserver) of " "een poort nummer (standaard 2401) waar cvsd op zal luisteren." #. Type: string #. Description #: ../templates:5001 msgid "" "The address and port should be separated by a space and you can specify " "multiple address-port combinations by separating them with spaces." msgstr "" "Het adres en de poort moeten door een spatie gescheiden worden en er kunnen " "meerdere adres/poort combinaties gespecificeerd worden door deze met spaties " "te scheiden." #. Type: string #. Description #: ../templates:6001 msgid "Repositories to serve:" msgstr "De repositories die bediend worden:" #. Type: string #. Description #: ../templates:6001 msgid "" "The whole idea of cvsd is to serve repositories. Specify a colon ':' " "separated list of repositories to serve. The location of these repositories " "is relative to the specified chroot jail (${rootjail}) and should start with " "a '/'." msgstr "" "Het hele idee van cvsd is om cvs repositories te bedienen. Geef een lijst " "van repository namen op gescheiden door dubbele punten (:). De namen van de " "repositories moeten relatief zijn ten opzichte van de chroot gevangenis " "(${rootjail}) en moeten met een '/' beginnen." #. Type: string #. Description #: ../templates:6001 msgid "" "The repositories here should be initialized by hand with something like 'cvs " "-d ${rootjail}/myrepos init' after which passwords can be set with 'cvsd-" "passwd ${rootjail}/myrepos anonymous'. See the file /usr/share/doc/cvsd/" "README.gz for details on creating repositories." msgstr "" "De opgegeven repositories moeten met de hand geïnitialiseerd worden met " "zoiets als 'cvs -d ${rootjail}/myrepos init', waarna een wachtwoord gezet " "kan worden met 'cvsd-passwd ${rootjail}/myrepos anonymous'. Lees de file /" "usr/share/doc/cvsd/README.gz voor meer gevens over het aanmaken van " "repositories." #. Type: multiselect #. Choices #: ../templates:7001 msgid "coredumpsize" msgstr "coredump afmeting" #. Type: multiselect #. Choices #: ../templates:7001 msgid "cputime" msgstr "processortijd" #. Type: multiselect #. Choices #: ../templates:7001 msgid "datasize" msgstr "data-afmeting" #. Type: multiselect #. Choices #: ../templates:7001 msgid "filesize" msgstr "bestandsafmeting" #. Type: multiselect #. Choices #: ../templates:7001 msgid "memorylocked" msgstr "gelocked geheugen" #. Type: multiselect #. Choices #: ../templates:7001 msgid "openfiles" msgstr "open files" #. Type: multiselect #. Choices #: ../templates:7001 msgid "maxproc" msgstr "aantal processen" #. Type: multiselect #. Choices #: ../templates:7001 msgid "memoryuse" msgstr "geheugengebruik" #. Type: multiselect #. Choices #: ../templates:7001 msgid "stacksize" msgstr "stapelafmeting" #. Type: multiselect #. Choices #: ../templates:7001 msgid "virtmem" msgstr "virtueel geheugen" #. Type: multiselect #. Description #: ../templates:7002 msgid "Resources of pserver processes to limit:" msgstr "Selecteer de middelen die beperkt moeten worden:" #. Type: multiselect #. Description #: ../templates:7002 msgid "" "The pserver wrapper can be configured to limit the resource usage that a " "pserver process can have. These resource limits will be set on each pserver " "process and not on the wrapper." msgstr "" "De pserver omhulsel kan geconfigureerd worden de hoeveelheid gebruikte " "middelen die het pserver proces gebruikt te beperken. Deze beperkingen " "worden op alle pserver processen gezet en niet op het omhulsel." #. Type: multiselect #. Description #: ../templates:7002 msgid "" "Choose from the list the resources that you want to limit. You will be asked " "to specify limits about every resource you selected here." msgstr "" "Kies uit de lijst met systeemmiddelen degenen die beperkt moeten worden. Van " "alle middelen zal gevraagd worden om een limiet op te geven." #. Type: multiselect #. Description #: ../templates:7002 msgid "" "Note that not all resources may be available on all systems and that " "resources may be system and kernel specific so use these with caution. The " "results of exceeding the set limits may also be system specific but will " "most likely stop the cvs process and close the connection (may be " "problematic with write access to cvs repository)." msgstr "" "Let op, niet alle beperkingen hoeven op alle systemen beschikbaar te zijn " "aangezien ze afhankelijk zijn van de kernel en het systeem.Het resultaat van " "het overtreden van de limieten kan ook systeem specifiek zijn, maar zal " "waarschijnlijk het cvs proces stoppen en de verbinding verbreken (dit kan " "problemen opleveren als er naar de repository geschreven wordt)." #. Type: string #. Description #: ../templates:8001 msgid "Maximum file size of a core dump:" msgstr "Maximum afmeting core file:" #. Type: string #. Description #: ../templates:8001 msgid "" "Set this to 0 (zero) (should be the system default) to prevent core dumps. " "Otherwise this limits the size of core dumps to the specified value." msgstr "" "Zet dit op 0 (nul) (zou de standaard systeemwaarde moeten zijn) om te " "voorkomen dat coredumps worden opgeslagen. Andere waarden beperken de omvang " "van de core file." #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #: ../templates:8001 ../templates:10001 ../templates:11001 ../templates:12001 #: ../templates:15001 ../templates:16001 ../templates:17001 msgid "" "This value may be specified with a suffix of 'b' (bytes), 'k' (1024 bytes) " "or 'm' (1024*1024 bytes), where 'k' is the default." msgstr "" "Deze waarde kan afgesloten worden met een 'b' (bytes), 'k' (1024 bytes) of " "'m' (1024*1024 bytes), waarbij 'k' wordt aangenomen als niets gespecificeerd " "is." #. Type: string #. Description #: ../templates:9001 msgid "Maximum amount of cpu time consumed:" msgstr "Maximale cputijd die verbruikt mag worden:" #. Type: string #. Description #: ../templates:9001 msgid "" "This limits the number of cpu seconds the cvs process can use. This will " "prevent too much cpu time from being allocated to a single connection." msgstr "" "Dit beperkt het aantal seconden dat het cvs proces op de cpu mag " "doorbrengen. Dit voorkomt dat er te veel tijd wordt besteed voor een enkele " "verbinding." #. Type: string #. Description #: ../templates:9001 msgid "" "This value can be formatted as 'mm:ss' or have a 'm' or 's' suffix where 's' " "is default." msgstr "" "Deze waarde kan geschreven worden als 'mm:ss' of afgesloten worden met een " "'m' of een 's', waarbij 's' aangenomen wordt als niets gespecificeerd is." #. Type: string #. Description #: ../templates:10001 msgid "Maximum size of program's data segment:" msgstr "Maximum afmeting van het data segment:" #. Type: string #. Description #: ../templates:10001 msgid "" "This limits the amount of memory the cvs program can use. This specific item " "limits the size of the data segment." msgstr "" "Dit beperkt de hoeveelheid geheugen dat het cvs programma kan gebruiken. " "Deze specifieke instelling beperkt de afmeting van het data segment." #. Type: string #. Description #: ../templates:11001 msgid "Maximum size of files created:" msgstr "Maximale bestandsafmeting:" #. Type: string #. Description #: ../templates:11001 msgid "" "This limits the maximum size of a file created by cvs. Note that the cvs " "pserver process needs to be able to create lock files and possibly write " "history or other files so don't set this to 0 (zero)." msgstr "" "Dit beperkt de grootte van files die door cvs wordt aangemaakt. Let op, het " "moet voor het cvs pserver proces mogelijk zijn om lock files en geschiedenis " "files aan te maken dus het is onverstandig dit op 0 (nul) te zetten." #. Type: string #. Description #: ../templates:12001 msgid "Maximum amount of locked memory:" msgstr "Maximum hoeveelheid vastgehouden geheugen:" #. Type: string #. Description #: ../templates:12001 msgid "" "This limits the amount of memory the cvs process may lock. cvs probably " "doesn't need to lock any memory at all." msgstr "" "Dit beperkt de hoeveelheid geheugen dat cvs kan vasthouden. Het cvs proces " "hoeft waarschijnlijk helemaal geen geheugen vast te houden." #. Type: string #. Description #: ../templates:13001 msgid "Maximum number of open files:" msgstr "Maximum aantal open bestanden:" #. Type: string #. Description #: ../templates:13001 msgid "" "This limits the number of files and connections that the cvs process can " "have open at a single moment. The cvs process needs to access quite a few " "files so don't set this too low." msgstr "" "Dit beperkt de hoeveelheid bestanden en verbindingen dat het cvs proces " "tegelijk open kan hebben. Het cvs proces opent een flink aantal files dus " "deze waarde moet niet te laag gezet worden." #. Type: string #. Description #: ../templates:14001 msgid "Maximum number of processes:" msgstr "Maximum aantal processen:" #. Type: string #. Description #: ../templates:14001 msgid "" "This limits the maximum number of processes that a single user may have. cvs " "may need to spawn additional processes to run scripts or do subtasks so " "don't set this too low." msgstr "" "Dit beperkt het aantal processen dat een enkele gebruiker op het susteem mag " "hebben. Het is waarschijnlijk dat cvs een aantal processen opstart om " "bijvoorbeeld scripts te draaien of subtaken af te handelen dus deze waarde " "moet niet te laag gezet worden." #. Type: string #. Description #: ../templates:15001 msgid "Maximum size of resident memory:" msgstr "Maximale hoeveelheid fisiek geheugengebruik:" #. Type: string #. Description #: ../templates:15001 msgid "This specifies the amount of physical memory a process may have." msgstr "" "Dit beperkt de hoeveelheid fysiek geheugen dat een proces kan gebruiken." #. Type: string #. Description #: ../templates:16001 msgid "Maximum stack size:" msgstr "Maximale stapel afmeting:" #. Type: string #. Description #: ../templates:16001 msgid "This limits the size of the stack." msgstr "Dit beperkt de afmeting van de stapel." #. Type: string #. Description #: ../templates:17001 msgid "Maximum amount of virtual memory allocated:" msgstr "Maximale hoeveelheid virtueel geheugen in gebruik:" #. Type: string #. Description #: ../templates:17001 msgid "" "This limits the total amount of virtual memory a process may have allocated." msgstr "" "Dit beperkt de hoeveelheid virtueel geheugen dat een proces kan gebruiken." #. Type: string #. Description #: ../templates:18001 msgid "Maximum number of threads:" msgstr "Maximum aantal threads:" #. Type: string #. Description #: ../templates:18001 msgid "This limits the number of threads that a single process may have." msgstr "Dit beperkt het aantel threads dat een proces kan hebben." #. Type: string #. Description #: ../templates:18001 msgid "" "This is not available under Linux so it is not in the list for cvsd/limits. " "If Hurd has it it may be useful." msgstr "" "Deze beperking is niet mogelijk onder Linux dus komt hij niet voor in de " "lijst. Als Hurd de beperking wel kent kan hij bruikbaar zijn." #. Type: boolean #. Description #: ../templates:19001 msgid "Remove chroot jail containing repositories?" msgstr "Verwijder de chroot gevangenis inclusief repositories?" #. Type: boolean #. Description #: ../templates:19001 msgid "" "The following directory is configured as a chroot jail for cvsd:\n" " ${rootjail}\n" "You may choose to remove the chroot jail but you will also lose all the " "repositories inside the chroot jail. If you have not backed up your " "repositories you want to keep do not remove it now and manually remove it " "later once your repositories are safe." msgstr "" "De volgende directory is geconfigureerd als chroot gevangenis:\n" " ${rootjail}\n" "Je kunt er voor kiezen om de chroot gevangenis te verwijderen, maar alle " "repositories in de chroot gevangenis zullen ook verwijderd worden. Als je de " "repositories die je wilt behouden nog niet veilig hebt gesteld moet je het " "nu niet verwijderen en dit later met de hand doen." #. Type: boolean #. Description #: ../templates:19001 msgid "" "If you do choose to remove the chroot directory, all directories under it " "will be removed, even if they are on another file system." msgstr "" "Ale je er voor kiest om de chroot gevangenis te verwijderen, worden alle " "directories er onder (zelfs als deze op een andere schijf bevinden) " "verwijderd." #. Type: boolean #. Description #: ../templates:19001 msgid "" "If you choose to keep the chroot jail please note that the cvsd user and " "group will be removed so uid and gid file information may no longer be " "consistent." msgstr "" "Als je er voor kiest om je chroot gevangenis te behouden, let dan op dat de " "cvsd gebruiker en groep niet meer beschikbaar zijn en de eigenaar en " "groupsinformatie van de files niet meer consistent hoeft te zijn." #~ msgid "Use debconf to configure cvsd?" #~ msgstr "Gebruik debconf om cvsd te configureren?" #~ msgid "" #~ "It is convenient to use debconf to configure cvsd. Almost all cvsd " #~ "configuration options are available through debconf and a configuration " #~ "file (/etc/cvsd/cvsd.conf) will be automatically created based on the " #~ "specified settings." #~ msgstr "" #~ "Het is gemakkelijk om debconf te gebruiken om cvs te configureren. Bijna " #~ "alle configuratiemogelijkheden kunnen fia debconf ingesteld worden. Een " #~ "configuratiefile (/etc/cvsd/cvsd.conf) zal automatisch gegenereerd worden " #~ "gebaseerd op deze instellingen." #~ msgid "" #~ "If you prefer to edit your configuration file by hand specify no here." #~ msgstr "" #~ "Antwoord nee hier als je prefereert om de configuratie file met de had te " #~ "bewerken." #~ msgid "" #~ "Note: if you do not use debconf you have to create the chroot jail " #~ "yourself (with cvsd-buildroot)" #~ msgstr "" #~ "Let op: als je deconf niet gebruikt , dan moet je zelf de chroot " #~ "gevangenis aanmaken (met cvsd-buildroot)." #~ msgid "Maximum number of open files (file descriptors):" #~ msgstr "Maximum aantal open bestanden:" #~ msgid "/var/lib/cvsd" #~ msgstr "/var/lib/cvsd" #~ msgid "10" #~ msgstr "10" #~ msgid "1" #~ msgstr "1" #~ msgid "* 2401" #~ msgstr "* 2401" #~ msgid "/demo:/myrepos" #~ msgstr "/demo:/myrepos" #~ msgid "" #~ "coredumpsize, cputime, datasize, filesize, memorylocked, openfiles, " #~ "maxproc, memoryuse, stacksize, virtmem" #~ msgstr "" #~ "coredumpafmeting, cputijd, dataafmeting, bestandsafmeting, " #~ "gelockedgeheugen, openfiles, aantalprocessen, geheugengebruik, " #~ "stapelafmeting, virtueelgeheugen" #~ msgid "0" #~ msgstr "0" #~ msgid "1:00" #~ msgstr "1:00" #~ msgid "1m" #~ msgstr "1m" #~ msgid "1024" #~ msgstr "1024sdf" #~ msgid "10m" #~ msgstr "10m" #~ msgid "20" #~ msgstr "20" cvsd-1.0.24/debian/po/da.po0000644000000000000000000004210211431736066012215 0ustar # translation of cvsd_1.0.1-da.po to Danish # # Translators, if you are not familiar with the PO format, gettext # documentation is worth reading, especially sections dedicated to # this format, e.g. by running: # info -n '(gettext)PO Files' # info -n '(gettext)Header Entry' # # Some information specific to po-debconf are available at # /usr/share/doc/po-debconf/README-trans # or http://www.debian.org/intl/l10n/po-debconf/README-trans # # Developers do not need to manually edit POT or PO files. # Claus Hindsgaul , 2004. # msgid "" msgstr "" "Project-Id-Version: cvsd 1.0.8\n" "Report-Msgid-Bugs-To: Arthur de Jong \n" "POT-Creation-Date: 2007-07-21 14:26+0200\n" "PO-Revision-Date: 2004-12-05 23:51+0100\n" "Last-Translator: Claus Hindsgaul \n" "Language-Team: Danish \n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.3.1\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. Type: string #. Description #: ../templates:1001 msgid "Location of chroot jail:" msgstr "Placering af chroot-fængsel:" #. Type: string #. Description #: ../templates:1001 msgid "" "cvsd can run in a chroot jail. This is the preferred method of operation. " "Specify the location of the chroot jail. If you make this 'none' no chroot " "jail will be created and used. A chroot file hierarchy will be created in " "the specified location." msgstr "" "cvsd kan køre i et chroot-fængsel. Dette er den bedste måde at køre den på. " "Angiv placeringen af chroot-fængslet. Hvis du skriver 'none', vil der ikke " "blive oprettet eller benyttet noget chroot-fængsel. Der vil blive oprettet " "et chroot-filhieraki under den angivne placering." #. Type: string #. Description #: ../templates:2001 msgid "The maximum number of connections that can be handled:" msgstr "Det maksimale antal forbindelser, der kan håndteres:" #. Type: string #. Description #: ../templates:2001 msgid "" "It is possible to specify a maximum number of connections that cvsd can " "handle simultaneously. Specifying 0 (zero) will put no limit to the number " "of connections." msgstr "" "Det er muligt at begrænse det maksimale antal forbindelser, cvsd kan " "håndteres samtidigt. En grænse på 0 (nul) deaktiverer begrænsningen på " "antallet af forbindelser." #. Type: string #. Description #: ../templates:3001 msgid "Nice value cvsd should run at:" msgstr "Procesprioritet ('nice'-værdi), cvsd skal køre under:" #. Type: string #. Description #: ../templates:3001 msgid "" "cvsd can be run at reduced priority so it will not take up too many " "resources, especially if a user specifies a -z option to cvs. The priority " "can also be increased (negative value here)." msgstr "" "cvsd kan køre under reduceret prioritet, så den ikke vil lægge beslag på for " "mange ressourcer. Specielt hvis en bruger angiver '-z'-tilvalget til cvs. " "Prioriteten kan også øges (med en negativ værdi)." #. Type: string #. Description #: ../templates:4001 msgid "Umask cvsd should run at:" msgstr "Umaske, cvsd skal køre med:" #. Type: string #. Description #: ../templates:4001 msgid "Specify the umask cvsd and cvs should use when creating files." msgstr "Angiv den umaske, cvsd og cvs skal benytter ved oprettelse af filer." #. Type: string #. Description #: ../templates:4001 msgid "" "The umask should be specified as an octal value and represents the " "permissions that should be taken away when creating a file (e.g. using 027 " "will create files with mode 640 or rw-r-----)." msgstr "" "Umasken skal angives som en oktal værdi og repræsenterer de tilladelser, der " "skal fjernes ved oprettelse af en fil (f.eks. vil 027 oprette filer med " "rettighederne 640 eller rw-r-----)." #. Type: string #. Description #: ../templates:5001 msgid "Address and port on which cvsd will listen:" msgstr "Adresse og port, hvorpå cvsd skal lytte:" #. Type: string #. Description #: ../templates:5001 msgid "" "With the first argument you can specify the address cvsd should listen on. " "The '*' address specifies that cvsd should listen on all addresses. You can " "specify a IPv4 address, IPv6 address, a hostname or '*'." msgstr "" "Med det første parameter kan du angive den adresse, cvsd skal lytte på. " "Adressen '*' angiver at cvsd skal lytte på alle adresser. Du kan enten " "angive en IPv4- eller IPv6-adresse, et værtsnavn eller '*'." #. Type: string #. Description #: ../templates:5001 msgid "" "The second argument is the service name (e.g. cvspserver) or port number " "(default 2401) cvsd will listen on." msgstr "" "Det andet parameter er et servicenavn (f.eks. 'cvspserver') eller portnummer " "(standardporten er 2401), som cvsd vil lytte på." #. Type: string #. Description #: ../templates:5001 msgid "" "The address and port should be separated by a space and you can specify " "multiple address-port combinations by separating them with spaces." msgstr "" "Adressen og porten skal adskilles af mellemrum, og du kan angive adskillige " "kombinationer af adresser og porte ved at adskille dem med mellemrum." #. Type: string #. Description #: ../templates:6001 msgid "Repositories to serve:" msgstr "Cvs-samlinger, der skal tilbydes:" #. Type: string #. Description #: ../templates:6001 msgid "" "The whole idea of cvsd is to serve repositories. Specify a colon ':' " "separated list of repositories to serve. The location of these repositories " "is relative to the specified chroot jail (${rootjail}) and should start with " "a '/'." msgstr "" "Hele idéen med cvsd er at tilbyde cvs-samlinger ('repositories'). Angiv en " "liste over de cvs-samlinger, der skal tilbydes adskilt af koloner (':'). Cvs-" "samlingernes placering skal angives relativt til det angivne chroot-fængsel " "og starte med '/'." #. Type: string #. Description #: ../templates:6001 msgid "" "The repositories here should be initialized by hand with something like 'cvs " "-d ${rootjail}/myrepos init' after which passwords can be set with 'cvsd-" "passwd ${rootjail}/myrepos anonymous'. See the file /usr/share/doc/cvsd/" "README.gz for details on creating repositories." msgstr "" "Disse cvs-samlinger skal initialiseres manuelt med f.eks. 'cvs -d " "${rootjail}/minsamling init', hvorefter adgangskoderne kan angives med 'cvsd-" "passwd ${rootjail}/minsamling anonymous'. Se filen /usr/share/doc/cvsd/" "README.gz for detaljer om oprettelse af cvs-samlinger." #. Type: multiselect #. Choices #: ../templates:7001 msgid "coredumpsize" msgstr "coredump-størrelse" #. Type: multiselect #. Choices #: ../templates:7001 msgid "cputime" msgstr "cpu-tid" #. Type: multiselect #. Choices #: ../templates:7001 msgid "datasize" msgstr "datastørrelse" #. Type: multiselect #. Choices #: ../templates:7001 msgid "filesize" msgstr "filstørrelse" #. Type: multiselect #. Choices #: ../templates:7001 msgid "memorylocked" msgstr "låst hukommelse" #. Type: multiselect #. Choices #: ../templates:7001 msgid "openfiles" msgstr "åbne filer" #. Type: multiselect #. Choices #: ../templates:7001 msgid "maxproc" msgstr "max processer" #. Type: multiselect #. Choices #: ../templates:7001 msgid "memoryuse" msgstr "hukomelsesforbrug" #. Type: multiselect #. Choices #: ../templates:7001 msgid "stacksize" msgstr "stakstørrelse" #. Type: multiselect #. Choices #: ../templates:7001 msgid "virtmem" msgstr "virtuel huk." #. Type: multiselect #. Description #: ../templates:7002 msgid "Resources of pserver processes to limit:" msgstr "Angiv de af pserver-processens ressourcer, der skal begrænses:" #. Type: multiselect #. Description #: ../templates:7002 msgid "" "The pserver wrapper can be configured to limit the resource usage that a " "pserver process can have. These resource limits will be set on each pserver " "process and not on the wrapper." msgstr "" "pserver-indpakningen kan sættes op til at begrænse det ressourceforbrug, en " "pserver-proces tillades at optage. Disse ressourcebegrænsninger angives for " "hver enkelt pserver-proces." #. Type: multiselect #. Description #: ../templates:7002 msgid "" "Choose from the list the resources that you want to limit. You will be asked " "to specify limits about every resource you selected here." msgstr "" "Vælg på listen herunder, hvilke ressourcer du vil begrænse. Du vil blive " "bedt om at angive grænser for alle de ressourcer, du angiver her." #. Type: multiselect #. Description #: ../templates:7002 msgid "" "Note that not all resources may be available on all systems and that " "resources may be system and kernel specific so use these with caution. The " "results of exceeding the set limits may also be system specific but will " "most likely stop the cvs process and close the connection (may be " "problematic with write access to cvs repository)." msgstr "" "Bemærk at ikke alle ressourcer findes på alle systemer, og at ressourcer kan " "være system- og kernespecifikke, så brug dem med varsomhed. Det kan også " "variere fra system til system, hvad der sker hvis en ressource overskrides, " "men det vil sandsynligvis medføre at cvs-processen stoppes og lukker " "forbindelsen (hvilket kan være problematisk ved skriveadgang til en cvs-" "samling)." #. Type: string #. Description #: ../templates:8001 msgid "Maximum file size of a core dump:" msgstr "Maksimal filstørrelse på core-fil:" #. Type: string #. Description #: ../templates:8001 msgid "" "Set this to 0 (zero) (should be the system default) to prevent core dumps. " "Otherwise this limits the size of core dumps to the specified value." msgstr "" "Set denne til 0 (nul) (hvilket oftest er systemets standardværdi) for at " "undgå core-filer (en slags fejlsporingsfiler). Ellers begrænser den angivne " "værdi størrelsen af core-filer til den angivne værdi." #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #: ../templates:8001 ../templates:10001 ../templates:11001 ../templates:12001 #: ../templates:15001 ../templates:16001 ../templates:17001 msgid "" "This value may be specified with a suffix of 'b' (bytes), 'k' (1024 bytes) " "or 'm' (1024*1024 bytes), where 'k' is the default." msgstr "" "Denne værdi kan angives med et tal efterfulgt af enhedsangivelsen 'b' for " "byte, 'k' for kilobyte eller 'm' for megabyte. Hvis enheden ikke angives, " "antages kilobyte." #. Type: string #. Description #: ../templates:9001 msgid "Maximum amount of cpu time consumed:" msgstr "Øvre grænse for forbrug af cpu-tid:" #. Type: string #. Description #: ../templates:9001 msgid "" "This limits the number of cpu seconds the cvs process can use. This will " "prevent too much cpu time from being allocated to a single connection." msgstr "" "Dette begrænser antallet af cpu-sekunder, en proces kan bruge. Dette kan " "forhindre at der allokeres for meget cpu-tid til en enkelt forbindelse." #. Type: string #. Description #: ../templates:9001 msgid "" "This value can be formatted as 'mm:ss' or have a 'm' or 's' suffix where 's' " "is default." msgstr "" "Denne værdi kan have formatet 'mm:ss' eller et tal efterfulgt af 'm' for " "minutter eller 's' for sekunder, eller blot antallet af sekunder som et rent " "tal." #. Type: string #. Description #: ../templates:10001 msgid "Maximum size of program's data segment:" msgstr "Maksimal størrelse på program-datasegment:" #. Type: string #. Description #: ../templates:10001 msgid "" "This limits the amount of memory the cvs program can use. This specific item " "limits the size of the data segment." msgstr "" "Dette begrænser den mængde hukommelse, et cvs-program kan bruge. Dette punkt " "begrænser størrelsen af datasegmentet." #. Type: string #. Description #: ../templates:11001 msgid "Maximum size of files created:" msgstr "Maksimal størrelse af oprettede filer:" #. Type: string #. Description #: ../templates:11001 msgid "" "This limits the maximum size of a file created by cvs. Note that the cvs " "pserver process needs to be able to create lock files and possibly write " "history or other files so don't set this to 0 (zero)." msgstr "" "Dette begrænser den maksimale størrelse af filer, der oprettes af cvs. " "Bemærk at cvs's pserver-proces skal kunne oprette låsefiler og eventuelt " "skrive historikfiler eller andre filer, så sæt ikke værdien til nul." #. Type: string #. Description #: ../templates:12001 msgid "Maximum amount of locked memory:" msgstr "Maksimal mængde låst hukommelse:" #. Type: string #. Description #: ../templates:12001 msgid "" "This limits the amount of memory the cvs process may lock. cvs probably " "doesn't need to lock any memory at all." msgstr "" "Dette begrænser den mængde hukommelse, en cvs-proces kan låse. cvs har " "sandsynligvis slet ikke brug for at låse nogen hukommelse." #. Type: string #. Description #: ../templates:13001 msgid "Maximum number of open files:" msgstr "Maksimalt antal åbne filer:" #. Type: string #. Description #: ../templates:13001 msgid "" "This limits the number of files and connections that the cvs process can " "have open at a single moment. The cvs process needs to access quite a few " "files so don't set this too low." msgstr "" "Dette begrænser antallet af filer og forbindelser, en cvs-proces kan holde " "åbne ad gangen. cvs-processen har brug for at tilgå ganske mange filer, så " "sæt ikke værdien for lavt." #. Type: string #. Description #: ../templates:14001 msgid "Maximum number of processes:" msgstr "Maksimalt antal processer:" #. Type: string #. Description #: ../templates:14001 msgid "" "This limits the maximum number of processes that a single user may have. cvs " "may need to spawn additional processes to run scripts or do subtasks so " "don't set this too low." msgstr "" "Dette begrænser antallet af processer, en enkelt bruger kan have. cvs kan " "have brug for at starte yderligere processer for at udføre skripter eller " "underopgaver, så sæt den ikke for lavt." #. Type: string #. Description #: ../templates:15001 msgid "Maximum size of resident memory:" msgstr "Maksimal størrelse for fysisk hukommelse:" #. Type: string #. Description #: ../templates:15001 msgid "This specifies the amount of physical memory a process may have." msgstr "" "Dette begrænser mængden af fysisk hukommelse, en proces kan lægge beslag på." #. Type: string #. Description #: ../templates:16001 msgid "Maximum stack size:" msgstr "Maksimal stakstørrelse:" #. Type: string #. Description #: ../templates:16001 msgid "This limits the size of the stack." msgstr "Dette begrænser stakkens størrelse." #. Type: string #. Description #: ../templates:17001 msgid "Maximum amount of virtual memory allocated:" msgstr "Maksimal mængde virtuel hukommelse:" #. Type: string #. Description #: ../templates:17001 msgid "" "This limits the total amount of virtual memory a process may have allocated." msgstr "" "Dette begrænser den totale mængde virtuel hukommelse, en proces kan lægge " "beslag på." #. Type: string #. Description #: ../templates:18001 msgid "Maximum number of threads:" msgstr "Maksimalt antal tråde:" #. Type: string #. Description #: ../templates:18001 msgid "This limits the number of threads that a single process may have." msgstr "Dette begrænser antallet af tråde, en enkelt proces kan have." #. Type: string #. Description #: ../templates:18001 msgid "" "This is not available under Linux so it is not in the list for cvsd/limits. " "If Hurd has it it may be useful." msgstr "" "Dette findes ikke under Linux, og er dermed ikke med i listen over cvsd-" "begrænsninger. Hvis Hurd har det, kan det måske vise sig nyttigt." #. Type: boolean #. Description #: ../templates:19001 msgid "Remove chroot jail containing repositories?" msgstr "Fjern chroot-fængsel med cvs-samlinger?" #. Type: boolean #. Description #: ../templates:19001 msgid "" "The following directory is configured as a chroot jail for cvsd:\n" " ${rootjail}\n" "You may choose to remove the chroot jail but you will also lose all the " "repositories inside the chroot jail. If you have not backed up your " "repositories you want to keep do not remove it now and manually remove it " "later once your repositories are safe." msgstr "" "Følgende mappe er sat op som chroot-fængsel for cvsd:\n" " ${rootjail}\n" "Du kan vælge at fjerne chroot-fængslet, men du vil samtidig miste alle cvs-" "samlingerne i chroot-fængslet. Hvis du ikke har sikkerhedskopieret de cvs-" "samlinger, du vil bevare, skal du ikke fjerne dem nu. Du kan da selv fjerne " "dem, når cvs-samlingerne er sikrede." #. Type: boolean #. Description #: ../templates:19001 msgid "" "If you do choose to remove the chroot directory, all directories under it " "will be removed, even if they are on another file system." msgstr "" "Hvis du vælger at fjerne chroot-mappen, vil alle dens undermapper også blive " "fjernet selvom de måtte ligge på et andet filsystem." #. Type: boolean #. Description #: ../templates:19001 msgid "" "If you choose to keep the chroot jail please note that the cvsd user and " "group will be removed so uid and gid file information may no longer be " "consistent." msgstr "" "Hvis du vælger at beholde chroot-fængslet, skal du være klar over at både " "brugeren og gruppen 'cvsd' bliver fjernet, således at filernes uid- og gid-" "oplysninger ikke længere er gyldige." cvsd-1.0.24/debian/po/cs.po0000644000000000000000000004115611431736066012246 0ustar # # Translators, if you are not familiar with the PO format, gettext # documentation is worth reading, especially sections dedicated to # this format, e.g. by running: # info -n '(gettext)PO Files' # info -n '(gettext)Header Entry' # # Some information specific to po-debconf are available at # /usr/share/doc/po-debconf/README-trans # or http://www.debian.org/intl/l10n/po-debconf/README-trans # # Developers do not need to manually edit POT or PO files. # msgid "" msgstr "" "Project-Id-Version: cvsd 1.0.14\n" "Report-Msgid-Bugs-To: Arthur de Jong \n" "POT-Creation-Date: 2007-07-21 14:26+0200\n" "PO-Revision-Date: 2005-01-14 20:21+0100\n" "Last-Translator: Jan Outrata \n" "Language-Team: Czech \n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-2\n" "Content-Transfer-Encoding: 8bit\n" #. Type: string #. Description #: ../templates:1001 msgid "Location of chroot jail:" msgstr "Umístìní chroot vìzení:" #. Type: string #. Description #: ../templates:1001 msgid "" "cvsd can run in a chroot jail. This is the preferred method of operation. " "Specify the location of the chroot jail. If you make this 'none' no chroot " "jail will be created and used. A chroot file hierarchy will be created in " "the specified location." msgstr "" "cvsd mù¾e bì¾et v tzv. chroot vìzení (chroot jail). Toto je preferovaný " "zpùsob provozu. Zadejte umístìní chroot vìzení. Pokud zadáte 'none', ¾ádné " "vìzení vytvoøeno a pou¾íváno nebude. Na zadaném umístìní bude vytvoøena " "chroot souborová hierarchie." #. Type: string #. Description #: ../templates:2001 msgid "The maximum number of connections that can be handled:" msgstr "Maximální poèet spojení, která mohou být obslou¾ena:" #. Type: string #. Description #: ../templates:2001 msgid "" "It is possible to specify a maximum number of connections that cvsd can " "handle simultaneously. Specifying 0 (zero) will put no limit to the number " "of connections." msgstr "" "Je mo¾né zadat maximální poèet spojení, která mù¾e cvsd obslou¾it zároveò. 0 " "(nula) znamená ¾ádný limit na poèet spojení." #. Type: string #. Description #: ../templates:3001 msgid "Nice value cvsd should run at:" msgstr "Hodnota nice, se kterou má cvsd bì¾et:" #. Type: string #. Description #: ../templates:3001 msgid "" "cvsd can be run at reduced priority so it will not take up too many " "resources, especially if a user specifies a -z option to cvs. The priority " "can also be increased (negative value here)." msgstr "" "cvsd mù¾e bì¾et se sní¾enou prioritou, tak¾e nebude spotøebovávat pøíli¹ " "mnoho prostøedkù, zvlá¹tì kdy¾ u¾ivatel zadá volbu -z u cvs. Priorita mù¾e " "být také zvý¹ena (zde záporná hodnota)." #. Type: string #. Description #: ../templates:4001 msgid "Umask cvsd should run at:" msgstr "Maska práv, kterou má cvsd pou¾ívat:" #. Type: string #. Description #: ../templates:4001 msgid "Specify the umask cvsd and cvs should use when creating files." msgstr "" "Zadejte masku práv, kterou mají cvsd a cvs pou¾ívat pøi vytváøení souborù:" #. Type: string #. Description #: ../templates:4001 msgid "" "The umask should be specified as an octal value and represents the " "permissions that should be taken away when creating a file (e.g. using 027 " "will create files with mode 640 or rw-r-----)." msgstr "" "Maska práv by mìla být zadána jako hodnota v osmièkové soustavì a " "reprezentuje práva, která mají být odebrána pøi vytváøení souboru (napø. " "pou¾ití masky 027 bude vytváøet soubory s právy 640 neboli rw-r-----)." #. Type: string #. Description #: ../templates:5001 msgid "Address and port on which cvsd will listen:" msgstr "Adresa a port, na kterém bude cvsd naslouchat:" #. Type: string #. Description #: ../templates:5001 msgid "" "With the first argument you can specify the address cvsd should listen on. " "The '*' address specifies that cvsd should listen on all addresses. You can " "specify a IPv4 address, IPv6 address, a hostname or '*'." msgstr "" "Jako první argument mù¾ete zadat adresu, na které má cvsd naslouchat. Adresa " "'*' znamená, ¾e má cvsd naslouchat na v¹ech adresách. Mù¾ete zadat IPv4 " "adresu, IPv6 adresu, hostitelské jméno nebo '*'." #. Type: string #. Description #: ../templates:5001 msgid "" "The second argument is the service name (e.g. cvspserver) or port number " "(default 2401) cvsd will listen on." msgstr "" "Druhý argument je jméno slu¾by (napø. cvspserver) nebo èíslo portu (výchozí " "je 2401), na kterém bude cvsd naslouchat." #. Type: string #. Description #: ../templates:5001 msgid "" "The address and port should be separated by a space and you can specify " "multiple address-port combinations by separating them with spaces." msgstr "" "Adresa a port by mìly být oddìleny mezerou a mù¾ete zadat více kombinací " "adresa-port oddìlených mezerami." #. Type: string #. Description #: ../templates:6001 msgid "Repositories to serve:" msgstr "Repozitáøe k obsluhování:" #. Type: string #. Description #: ../templates:6001 msgid "" "The whole idea of cvsd is to serve repositories. Specify a colon ':' " "separated list of repositories to serve. The location of these repositories " "is relative to the specified chroot jail (${rootjail}) and should start with " "a '/'." msgstr "" "Celá my¹lenka cvsd je obsluhovat repozitáøe. Zadejte seznam repozitáøù " "oddìlených dvojteèkou ':', které se mají obsluhovat. Umístìní tìchto " "repozitáøù je relativní vzhledem k zadanému chroot vìzení (${rootjail}) a " "mìlo by zaèínat s '/'." #. Type: string #. Description #: ../templates:6001 msgid "" "The repositories here should be initialized by hand with something like 'cvs " "-d ${rootjail}/myrepos init' after which passwords can be set with 'cvsd-" "passwd ${rootjail}/myrepos anonymous'. See the file /usr/share/doc/cvsd/" "README.gz for details on creating repositories." msgstr "" "Zde zadané repozitáøe by mìly být ruènì inicializovány pomocí nìèeho jako " "'cvs -d ${rootjail}/myrepos init', po èem¾ mohou být nastavena hesla pomocí " "'cvsd-passwd ${rootjail}/myrepos anonymous'. Na detaily k vytváøení " "repozitáøù se podívejte do souboru /usr/share/doc/cvsd/README.gz." #. Type: multiselect #. Choices #: ../templates:7001 msgid "coredumpsize" msgstr "velikost core souboru" #. Type: multiselect #. Choices #: ../templates:7001 msgid "cputime" msgstr "procesorový èas" #. Type: multiselect #. Choices #: ../templates:7001 msgid "datasize" msgstr "velikost dat" #. Type: multiselect #. Choices #: ../templates:7001 msgid "filesize" msgstr "velikost souboru" #. Type: multiselect #. Choices #: ../templates:7001 msgid "memorylocked" msgstr "uzamèená pamì»" #. Type: multiselect #. Choices #: ../templates:7001 msgid "openfiles" msgstr "otevøené soubory" #. Type: multiselect #. Choices #: ../templates:7001 msgid "maxproc" msgstr "maximum procesù" #. Type: multiselect #. Choices #: ../templates:7001 msgid "memoryuse" msgstr "vyu¾ití pamìti" #. Type: multiselect #. Choices #: ../templates:7001 msgid "stacksize" msgstr "velikost zásobníku" #. Type: multiselect #. Choices #: ../templates:7001 msgid "virtmem" msgstr "virtuální pamì»" #. Type: multiselect #. Description #: ../templates:7002 msgid "Resources of pserver processes to limit:" msgstr "Vyberte zdroje procesù pserveru, které se mají omezit:" #. Type: multiselect #. Description #: ../templates:7002 msgid "" "The pserver wrapper can be configured to limit the resource usage that a " "pserver process can have. These resource limits will be set on each pserver " "process and not on the wrapper." msgstr "" "Spou¹tìcí program pserveru mù¾e být nastaven na omezení vyu¾ití zdrojù, " "které mù¾e mít proces pserveru. Tyto limity zdrojù budou aplikovány na ka¾dý " "proces pserveru a ne na spou¹tìcí program." #. Type: multiselect #. Description #: ../templates:7002 msgid "" "Choose from the list the resources that you want to limit. You will be asked " "to specify limits about every resource you selected here." msgstr "" "Vyberte ze seznamu zdroje, které chcete omezit. Budete tázáni k zadání " "limitù pro ka¾dý zdroj, který zde vyberete." #. Type: multiselect #. Description #: ../templates:7002 msgid "" "Note that not all resources may be available on all systems and that " "resources may be system and kernel specific so use these with caution. The " "results of exceeding the set limits may also be system specific but will " "most likely stop the cvs process and close the connection (may be " "problematic with write access to cvs repository)." msgstr "" "Uvìdomte si, ¾e ne v¹echny zdroje mohou být dostupné na v¹ech systémech a ¾e " "zdroje mohou být systémovì nebo jadernì specifické, tak¾e pou¾ívejte tato " "omezení opatrnì. Následky pøekroèení nastavených limitù také mohou být " "systémovì specifické, ale nejpravdìpodobnìji se ukonèí proces cvs a zavøou " "se spojení (mù¾e být problematické s pøístupem s právy zápisu do cvs " "repozitáøe)." #. Type: string #. Description #: ../templates:8001 msgid "Maximum file size of a core dump:" msgstr "Maximální velikost souboru výpisu pamìti (core dump):" #. Type: string #. Description #: ../templates:8001 msgid "" "Set this to 0 (zero) (should be the system default) to prevent core dumps. " "Otherwise this limits the size of core dumps to the specified value." msgstr "" "Nastavte na 0 (nula) (mìlo by být v systému výchozí) pro zamezení výpisù " "pamìti. Jinak je to omezení velikosti výpisù pamìti na zadanou hodnotu." #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #: ../templates:8001 ../templates:10001 ../templates:11001 ../templates:12001 #: ../templates:15001 ../templates:16001 ../templates:17001 msgid "" "This value may be specified with a suffix of 'b' (bytes), 'k' (1024 bytes) " "or 'm' (1024*1024 bytes), where 'k' is the default." msgstr "" "Tato hodnota mù¾e být zadána s pøíponou 'b' (bytù), 'k' (1024 bytù) nebo " "'m' (1024*1024 bytù), kde 'k' je výchozí." #. Type: string #. Description #: ../templates:9001 msgid "Maximum amount of cpu time consumed:" msgstr "Maximální mno¾ství spotøebovaného procesorového èasu:" #. Type: string #. Description #: ../templates:9001 msgid "" "This limits the number of cpu seconds the cvs process can use. This will " "prevent too much cpu time from being allocated to a single connection." msgstr "" "Toto omezuje mno¾ství sekund, po které mù¾e proces cvs vyu¾ívat procesor. " "Zamezuje pøidìlení pøíli¹ mnoha procesorového èasu jednomu spojení." #. Type: string #. Description #: ../templates:9001 msgid "" "This value can be formatted as 'mm:ss' or have a 'm' or 's' suffix where 's' " "is default." msgstr "" "Tato hodnota mù¾e být formátována jako 'mm:ss' nebo mù¾e mít pøíponu 'm' " "nebo 's', kde 's' je výchozí." #. Type: string #. Description #: ../templates:10001 msgid "Maximum size of program's data segment:" msgstr "Maximální velikost datového segmentu programu:" #. Type: string #. Description #: ../templates:10001 msgid "" "This limits the amount of memory the cvs program can use. This specific item " "limits the size of the data segment." msgstr "" "Toto omezuje mno¾ství pamìti, kterou mù¾e program cvs pou¾ívat. Tato " "konkrétní mo¾nost omezuje velikost datového segmentu." #. Type: string #. Description #: ../templates:11001 msgid "Maximum size of files created:" msgstr "Maximální velikost vytváøených souborù:" #. Type: string #. Description #: ../templates:11001 msgid "" "This limits the maximum size of a file created by cvs. Note that the cvs " "pserver process needs to be able to create lock files and possibly write " "history or other files so don't set this to 0 (zero)." msgstr "" "Toto omezuje maximální velikost souboru vytvoøeného cvs. Proces cvs pserveru " "potøebuje mít mo¾nost vytváøet soubory zámku a mo¾ná historie zápisu nebo " "jiných souborù, tak¾e to nenastavujte na 0 (nulu)." #. Type: string #. Description #: ../templates:12001 msgid "Maximum amount of locked memory:" msgstr "Maximální mno¾ství uzamèené pamìti:" #. Type: string #. Description #: ../templates:12001 msgid "" "This limits the amount of memory the cvs process may lock. cvs probably " "doesn't need to lock any memory at all." msgstr "" "Toto omezuje mno¾ství pamìti, kterou mù¾e proces cvs uzamèít. cvs " "pravdìpodobnì vùbec nepotøebuje nìjakou pamì» uzamykat." #. Type: string #. Description #: ../templates:13001 msgid "Maximum number of open files:" msgstr "Maximální poèet otevøených souborù:" #. Type: string #. Description #: ../templates:13001 msgid "" "This limits the number of files and connections that the cvs process can " "have open at a single moment. The cvs process needs to access quite a few " "files so don't set this too low." msgstr "" "Toto omezuje mno¾ství souborù a spojení, které mù¾e mít proces cvs otevøené " "v jednom momentu. Proces cvs potøebuje pøistupovat k nìkolika málo souborùm, " "tak¾e to nenastavujte pøíli¹ nízké." #. Type: string #. Description #: ../templates:14001 msgid "Maximum number of processes:" msgstr "Maximální poèet procesù:" #. Type: string #. Description #: ../templates:14001 msgid "" "This limits the maximum number of processes that a single user may have. cvs " "may need to spawn additional processes to run scripts or do subtasks so " "don't set this too low." msgstr "" "Toto omezuje maximální poèet procesù, které mù¾e mít jeden u¾ivatel. cvs " "mù¾e potøebovat vytvoøit dal¹í procesy pro spu¹tìní skriptù nebo podúloh, " "tak¾e to nenastavujte pøíli¹ nízké." #. Type: string #. Description #: ../templates:15001 msgid "Maximum size of resident memory:" msgstr "Maximální velikost vyu¾ité pamìti:" #. Type: string #. Description #: ../templates:15001 msgid "This specifies the amount of physical memory a process may have." msgstr "Toto urèuje mno¾ství fyzické pamìti, kterou mù¾e proces mít." #. Type: string #. Description #: ../templates:16001 msgid "Maximum stack size:" msgstr "Maximální velikost zásobníku:" #. Type: string #. Description #: ../templates:16001 msgid "This limits the size of the stack." msgstr "Toto omezuje velikost zásobníku." #. Type: string #. Description #: ../templates:17001 msgid "Maximum amount of virtual memory allocated:" msgstr "Maximální mno¾ství alokované virtuální pamìti:" #. Type: string #. Description #: ../templates:17001 msgid "" "This limits the total amount of virtual memory a process may have allocated." msgstr "" "Toto omezuje celkové mno¾ství virtuální pamìti, kterou mù¾e mít proces " "alokovanou." #. Type: string #. Description #: ../templates:18001 msgid "Maximum number of threads:" msgstr "Maximální poèet vláken:" #. Type: string #. Description #: ../templates:18001 msgid "This limits the number of threads that a single process may have." msgstr "Toto omezuje poèet vláken, která mù¾e mít jeden proces." #. Type: string #. Description #: ../templates:18001 msgid "" "This is not available under Linux so it is not in the list for cvsd/limits. " "If Hurd has it it may be useful." msgstr "" "Toto není pod Linuxem dostupné, tak¾e to není na seznamu pro cvsd/limits. " "Pokud to Hurd má, mù¾e to být u¾iteèné." #. Type: boolean #. Description #: ../templates:19001 msgid "Remove chroot jail containing repositories?" msgstr "Ostranit chroot vìzení obsahující repozitáøe?" #. Type: boolean #. Description #: ../templates:19001 msgid "" "The following directory is configured as a chroot jail for cvsd:\n" " ${rootjail}\n" "You may choose to remove the chroot jail but you will also lose all the " "repositories inside the chroot jail. If you have not backed up your " "repositories you want to keep do not remove it now and manually remove it " "later once your repositories are safe." msgstr "" "Následující adresáø je zkonfigurován jako chroot vìzení pro cvsd:\n" " ${rootjail}\n" "Mù¾ete zvolit odstranìní chroot vìzení, ale tím také ztratíte v¹echny " "repozitáøe v nìm. Pokud nemáte repozitáøe, které chcete uchovat, zálohované, " "nyní jej neodstraòujte a odstraòte jej ruènì a¾ budete mít repozitáøe " "zálohované." #. Type: boolean #. Description #: ../templates:19001 msgid "" "If you do choose to remove the chroot directory, all directories under it " "will be removed, even if they are on another file system." msgstr "" "Pokud zvolíte odstranìní chroot adresáøe, v¹echny adresáøe pod ním budou " "odstranìny, i kdy¾ jsou na jiném souborovém systému." #. Type: boolean #. Description #: ../templates:19001 msgid "" "If you choose to keep the chroot jail please note that the cvsd user and " "group will be removed so uid and gid file information may no longer be " "consistent." msgstr "" "Pokud zvolíte zachovat chroot vìzení, vìzte, ¾e u¾ivatel a skupina cvsd " "budou odstranìni, tak¾e informace o vlastníkovi a skupinì souboru nemusí být " "nadále konzistentní." cvsd-1.0.24/debian/po/vi.po0000644000000000000000000004703411724640405012254 0ustar # Vietnamese Translation for cvsd. # Copyright © 2005 Free Software Foundation, Inc. # Clytie Siddall , 2005. # msgid "" msgstr "" "Project-Id-Version: cvsd 1.0.8\n" "Report-Msgid-Bugs-To: Arthur de Jong \n" "POT-Creation-Date: 2007-07-21 14:26+0200\n" "PO-Revision-Date: 2005-05-22 17:54+0930\n" "Last-Translator: Clytie Siddall \n" "Language-Team: Vietnamese \n" "Language: vi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0\n" #. Type: string #. Description #: ../templates:1001 msgid "Location of chroot jail:" msgstr "Vị trí cá»§a tù gốc khác:" #. Type: string #. Description #: ../templates:1001 msgid "" "cvsd can run in a chroot jail. This is the preferred method of operation. " "Specify the location of the chroot jail. If you make this 'none' no chroot " "jail will be created and used. A chroot file hierarchy will be created in " "the specified location." msgstr "" "Trình ná»n (dæmon) cvs(d) có thể chạy trong má»™t tù gốc khác nào đó. Äây là " "phương pháp thao tác ưa thích. Hãy ghi rõ vị trí cá»§a tù đổi gốc. Nếu bạn lập " "«none» (không có) thì sẽ không tạo hay dùng tù đổi gốc nào; sẽ tạo má»™t cây " "tập tin đổi gốc tại vị trí đã ghi rõ.\n" ".\n" "[Chú thích dịch: Tù gốc khác (tiếng Anh: chroot jail) là má»™t thư mục gốc " "tạm, thưá»ng được tạo để cho phép ngưá»i dùng truy cập thư mục ấy qua FTP hay " "HTTP. Dù thư mục ấy có các tập tin gốc cần thiết, ngưá»i dùng không thể truy " "cập tập tin gốc nào ở ngoại thư mục ấy: thì «tù» gốc khác. :) ]" #. Type: string #. Description #: ../templates:2001 msgid "The maximum number of connections that can be handled:" msgstr "Số kết nối cần quản lý tối Ä‘a" #. Type: string #. Description #: ../templates:2001 msgid "" "It is possible to specify a maximum number of connections that cvsd can " "handle simultaneously. Specifying 0 (zero) will put no limit to the number " "of connections." msgstr "" "Có thể ghi rõ số kết nối tối Ä‘a mà trình cvsd có thể quản ý đồng thá»i. Ghi " "rõ số không (0) sẽ không giá»›i hạn số ấy." #. Type: string #. Description #: ../templates:3001 msgid "Nice value cvsd should run at:" msgstr "Ưu tiên chạy cvsd:" #. Type: string #. Description #: ../templates:3001 msgid "" "cvsd can be run at reduced priority so it will not take up too many " "resources, especially if a user specifies a -z option to cvs. The priority " "can also be increased (negative value here)." msgstr "" "Có thể chạy trình cvsd vá»›i ưu tiên đã giảm, để ngăn cản nó chiếm hữu tiá»m " "năng hệ thống, nhất là nếu má»™t ngưá»i dùng lập tùy chá»n -z cho cvs. CÅ©ng có " "thể tăng ưu tiên ấy: ở đây có giá trị âm.\n" ".\n" "[Chú thích dịch: độ ưu tiên truy cập tiá»m năng (tiếng Anh: nice value, " "nice).] " #. Type: string #. Description #: ../templates:4001 msgid "Umask cvsd should run at:" msgstr "Bất mặt na chạy cvsd:" #. Type: string #. Description #: ../templates:4001 msgid "Specify the umask cvsd and cvs should use when creating files." msgstr "Hãy ghi rõ bất mặt nạ mà trình cvsd và cvs nên dùng khi tạo tập tin." #. Type: string #. Description #: ../templates:4001 msgid "" "The umask should be specified as an octal value and represents the " "permissions that should be taken away when creating a file (e.g. using 027 " "will create files with mode 640 or rw-r-----)." msgstr "" "Phải ghi rõ bất mặt nạ là giá trị bát phân. Nó tiêu biểu các quyá»n truy cập " "sẽ bị loại bá» khi tạo má»™t tập tin nào đó (v.d. dùng giá trị 027 sẽ tạo tập " "tin có chế độ 640 hay rw-r-----).\n" ".\n" "[Chú thích dịch: bất mặt nạ: (tiếng Anh: umask) lệnh Unix giống như chmod, " "trừ nó loại bá» quyá»n truy cập, dùng giá trị bát phân.]" #. Type: string #. Description #: ../templates:5001 msgid "Address and port on which cvsd will listen:" msgstr "Äịa chỉ và cổng nÆ¡i trình cvsd sẽ lắng nghe:" #. Type: string #. Description #: ../templates:5001 msgid "" "With the first argument you can specify the address cvsd should listen on. " "The '*' address specifies that cvsd should listen on all addresses. You can " "specify a IPv4 address, IPv6 address, a hostname or '*'." msgstr "" "Äối số thứ nhất có thể ghi rõ địa chỉ nÆ¡i trình cvsd nên lắng nghe trên nó. " "Äịa chỉ «*» thì ghi rõ trình cvsd nên lắng nghe trên má»i địa chỉ. Bạn có thể " "ghi rõ má»™t địa chỉ IPv4, mệt địa chỉ IPv6, má»™t tên máy hay «*» ." #. Type: string #. Description #: ../templates:5001 msgid "" "The second argument is the service name (e.g. cvspserver) or port number " "(default 2401) cvsd will listen on." msgstr "" "Äối số thứ hai là tên dịch vụ (v.d. máy_chá»§_cvsp) hoặc sổ hiệu cổng (mặc " "định 2401) nÆ¡i trình cvsd sẽ lắng nghe trên nó." #. Type: string #. Description #: ../templates:5001 msgid "" "The address and port should be separated by a space and you can specify " "multiple address-port combinations by separating them with spaces." msgstr "" "Háy định giá»›i địa chỉ và cổng bằng má»™t dấu cách, và bạn có thể ghi rõ nhiá»u " "cặp địa chỉ-cổng bằng cách định giá»›i chúng bằng dấu cách." #. Type: string #. Description #: ../templates:6001 msgid "Repositories to serve:" msgstr "Cần cung cấp cho những kho nào:" #. Type: string #. Description #: ../templates:6001 msgid "" "The whole idea of cvsd is to serve repositories. Specify a colon ':' " "separated list of repositories to serve. The location of these repositories " "is relative to the specified chroot jail (${rootjail}) and should start with " "a '/'." msgstr "" "Mục đích hoàn thành cá»§a trình cvsd là cung cấp dịch vụ cho kho. Hãy ghi rõ " "má»™t danh sách định giá»›i bằng dấu hai chấm «:» các kho cần dịch vụ được cung " "cấp. Vị trí cá»§a má»—i kho tương đối so vá»›i tù gốc khác đã ghi rõ (${rootjail}) " "và nên bắt đầu vá»›i má»™t sổ chéo «/»." #. Type: string #. Description #: ../templates:6001 msgid "" "The repositories here should be initialized by hand with something like 'cvs " "-d ${rootjail}/myrepos init' after which passwords can be set with 'cvsd-" "passwd ${rootjail}/myrepos anonymous'. See the file /usr/share/doc/cvsd/" "README.gz for details on creating repositories." msgstr "" "Hãy tá»± khởi động má»—i kho ở đây dùng má»™t lệnh như:\n" "cvs -d ${rootjail}/tên_kho init\n" "Sau đó thì có thể lập mật khẩu cho má»—i kho, dùng lệnh:\n" "cvsd-passwd ${rootjail}/tên_kho anonymous\n" "Hãy xem tập tin /usr/share/doc/cvsd/README.gz để tìm chi tiết vá» tạo kho." #. Type: multiselect #. Choices #: ../templates:7001 msgid "coredumpsize" msgstr "cỡ_đổ_lõi" #. Type: multiselect #. Choices #: ../templates:7001 msgid "cputime" msgstr "thá»i_cpu" #. Type: multiselect #. Choices #: ../templates:7001 msgid "datasize" msgstr "cỡ_dữ_liệu" #. Type: multiselect #. Choices #: ../templates:7001 msgid "filesize" msgstr "cỡ_tập_tin" #. Type: multiselect #. Choices #: ../templates:7001 msgid "memorylocked" msgstr "nhá»›_bị_khóa" #. Type: multiselect #. Choices #: ../templates:7001 msgid "openfiles" msgstr "tập_tin_mở" #. Type: multiselect #. Choices #: ../templates:7001 msgid "maxproc" msgstr "số_tt_tối_Ä‘a" #. Type: multiselect #. Choices #: ../templates:7001 msgid "memoryuse" msgstr "chiếm_nhá»›" #. Type: multiselect #. Choices #: ../templates:7001 msgid "stacksize" msgstr "cỡ_đống" #. Type: multiselect #. Choices #: ../templates:7001 msgid "virtmem" msgstr "nhá»›_ảo" #. Type: multiselect #. Description #: ../templates:7002 msgid "Resources of pserver processes to limit:" msgstr "Hãy chá»n giá»›i hạn tiá»m năng nào cá»§a tiến trình pserver:" #. Type: multiselect #. Description #: ../templates:7002 msgid "" "The pserver wrapper can be configured to limit the resource usage that a " "pserver process can have. These resource limits will be set on each pserver " "process and not on the wrapper." msgstr "" "Có thể cấu hình lá»›p bá»c pserver để giá»›i hạn cách chiếm hữu tiá»m năng hệ " "thống cá»§a má»™t tiến trình pserver nào đó. Sẽ lập giá»›i hạn tiá»m năng vá»›i má»—i " "tiến trình pserver, không phải vá»›i lá»›p bá»c.\n" ".\n" "[Chú thích dịch: lá»›p bá»c, bao bá»c, bá»™ bao bá»c (tiếng Anh: wrapper) là giao " "diện giữa trình gá»i và mã đã bao, để cho phép truy cập hay bảo vệ mã.]" #. Type: multiselect #. Description #: ../templates:7002 msgid "" "Choose from the list the resources that you want to limit. You will be asked " "to specify limits about every resource you selected here." msgstr "" "Hãy chá»n trong danh sách này má»—i tiá»m năng mà bạn muốn giá»›i hạn. Sẽ yêu cầu " "bạn ghi rõ giá»›i hạn cho má»—i tiá»m năng bạn chá»n ở đây." #. Type: multiselect #. Description #: ../templates:7002 msgid "" "Note that not all resources may be available on all systems and that " "resources may be system and kernel specific so use these with caution. The " "results of exceeding the set limits may also be system specific but will " "most likely stop the cvs process and close the connection (may be " "problematic with write access to cvs repository)." msgstr "" "Ghi chú rằng không phải tất cả tiá»m năng có sẵn sàng trong má»i hệ thống, " "cÅ©ng rằng má»™t số tiá»m năng có lẽ đặc trưng cho hệ thống và hạt nhân thì hãy " "sá»­ dụng cẩn thận. Kết quả vượt quá những giá»›i hạn đã lập có lẽ cÅ©ng đặc " "trưng cho hệ thống, nhưng mà rất có thể ngừng tiến trình cvs và đóng kết nối " "(có lẽ còn phải bàn khi có quyá»n ghi vào kho cvs)." #. Type: string #. Description #: ../templates:8001 msgid "Maximum file size of a core dump:" msgstr "Kích thước tập tin tối Ä‘a cá»§a kết quả đổ lõi." #. Type: string #. Description #: ../templates:8001 msgid "" "Set this to 0 (zero) (should be the system default) to prevent core dumps. " "Otherwise this limits the size of core dumps to the specified value." msgstr "" "Hãy lập giá trị số không (0) (nên là mặc định hệ thống) để tránh đổ lõi. " "Không thì, tùy chá»n này giá»›i hạn kích thước cá»§a kết quả việc đổ lõi xuống " "giá trị đã ghi rõ." #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #: ../templates:8001 ../templates:10001 ../templates:11001 ../templates:12001 #: ../templates:15001 ../templates:16001 ../templates:17001 msgid "" "This value may be specified with a suffix of 'b' (bytes), 'k' (1024 bytes) " "or 'm' (1024*1024 bytes), where 'k' is the default." msgstr "" "Có thể ghi rõ giá trị này dùng hấu tố:\n" "b - byte\n" "k - kb - 1024 byte\n" "m - mb - 1024*1024 byte\n" "Mặc định là «k»." #. Type: string #. Description #: ../templates:9001 msgid "Maximum amount of cpu time consumed:" msgstr "Thá»i gian cpu đã chiếm hữu tối Ä‘a:" #. Type: string #. Description #: ../templates:9001 msgid "" "This limits the number of cpu seconds the cvs process can use. This will " "prevent too much cpu time from being allocated to a single connection." msgstr "" "Tùy chá»n này giá»›i hạn số giây cá»§a đơn vị xá»­ lý trung tâm (cpu) mà tiến trình " "cvs có dùng được. Sẽ ngăn cản gán thá»i gian cpu nhiá»u quá vá»›i má»™t kết nối " "riêng lẻ." #. Type: string #. Description #: ../templates:9001 msgid "" "This value can be formatted as 'mm:ss' or have a 'm' or 's' suffix where 's' " "is default." msgstr "" "Có thể định dạng giá trị này như «pp:gg», hoặc có hậu tố «p» hay «g» mà «g» " "là mặc định. (p: phút; g: giây)" #. Type: string #. Description #: ../templates:10001 msgid "Maximum size of program's data segment:" msgstr "Kích thước Ä‘oạn dữ liệu chương trình tối Ä‘a:" #. Type: string #. Description #: ../templates:10001 msgid "" "This limits the amount of memory the cvs program can use. This specific item " "limits the size of the data segment." msgstr "" "Tùy chá»n này giá»›i hạn số lượng bá»™ nhá»› mà chương trình cvs có dùng được. Mục " "riêng này giá»›i hạn kích thước Ä‘oạn dữ liệu." #. Type: string #. Description #: ../templates:11001 msgid "Maximum size of files created:" msgstr "Kích thước tập tin đã tạo tối Ä‘a:" #. Type: string #. Description #: ../templates:11001 msgid "" "This limits the maximum size of a file created by cvs. Note that the cvs " "pserver process needs to be able to create lock files and possibly write " "history or other files so don't set this to 0 (zero)." msgstr "" "Tùy chá»n này giá»›i hạn kích thước tối Ä‘a cá»§a má»i tập tin do trình cvs tạo. " "Ghi chú rằng tiến trình pserver cvs cần phải có khả năng tạo tập tin khóa " "(lockfiles) và có lẽ cần phải khả năng ghi lịch sá»­ hay tập tin khác, thì " "đừng lập giá trị này xuống số không (0)." #. Type: string #. Description #: ../templates:12001 msgid "Maximum amount of locked memory:" msgstr "Số lượng bá»™ nhá»› đã khóa tối Ä‘a:" #. Type: string #. Description #: ../templates:12001 msgid "" "This limits the amount of memory the cvs process may lock. cvs probably " "doesn't need to lock any memory at all." msgstr "" "Tùy chá»n này giá»›i hạn số lượng bá»™ nhá»› mà tiến trình cvs có khóa được. Rất có " "thể là trình cvs không cần phải khóa bá»™ nhá»› nào cả." #. Type: string #. Description #: ../templates:13001 msgid "Maximum number of open files:" msgstr "Số tập tin đã mở tối Ä‘a:" #. Type: string #. Description #: ../templates:13001 msgid "" "This limits the number of files and connections that the cvs process can " "have open at a single moment. The cvs process needs to access quite a few " "files so don't set this too low." msgstr "" "Tùy chá»n này giá»›i hạn số tập tin và kết nối Ä‘á»u mà tiến trình cvs có thể giữ " "mở đồng thá»i. Tiến trình cvs cần phải truy cập nhiá»u tập tin thì đừng lập " "giá trị này thấp quá." #. Type: string #. Description #: ../templates:14001 msgid "Maximum number of processes:" msgstr "Số tiến trình tối Ä‘a:" #. Type: string #. Description #: ../templates:14001 msgid "" "This limits the maximum number of processes that a single user may have. cvs " "may need to spawn additional processes to run scripts or do subtasks so " "don't set this too low." msgstr "" "Tùy chá»n này giá»›i hạn số tiến trình tối Ä‘a mà má»™t ngưá»i dùng đơn có thẻ " "chạy. Trình cvs có lẽ cần phải tạo má»™t số tiến trình thêm để chạy tập lệnh " "hay thá»±c hiện cá»™ng việc con thì đừng lập giá trị này thấp quá." #. Type: string #. Description #: ../templates:15001 msgid "Maximum size of resident memory:" msgstr "Kích thước bá»™ nhá»› cục bá»™ tối Ä‘a:" #. Type: string #. Description #: ../templates:15001 msgid "This specifies the amount of physical memory a process may have." msgstr "" "Tùy chá»n này giá»›i hạn số lượng bá»™ nhá»› vật lý mà má»™t tiến trình nào đó có lẽ " "dùng." #. Type: string #. Description #: ../templates:16001 msgid "Maximum stack size:" msgstr "Kích thước đống tối Ä‘a:" #. Type: string #. Description #: ../templates:16001 msgid "This limits the size of the stack." msgstr "Tùy chá»n này giá»›i hạn kích thước đống." #. Type: string #. Description #: ../templates:17001 msgid "Maximum amount of virtual memory allocated:" msgstr "Số lượng bá»™ nhá»› ảo đã cấp phát tối Ä‘a:" #. Type: string #. Description #: ../templates:17001 msgid "" "This limits the total amount of virtual memory a process may have allocated." msgstr "" "Tùy chá»n này giá»›i hạn số lượng bá»™ nhá»› ảo tối Ä‘a cho má»™t tiến trình nào đó " "được cấp phát." #. Type: string #. Description #: ../templates:18001 msgid "Maximum number of threads:" msgstr "Số mạch tối Ä‘a:" #. Type: string #. Description #: ../templates:18001 msgid "This limits the number of threads that a single process may have." msgstr "" "Tùy chá»n này giá»›i hạn số mạch (thread) mà má»™t tiến trình riêng lẻ có tạo " "được." #. Type: string #. Description #: ../templates:18001 msgid "" "This is not available under Linux so it is not in the list for cvsd/limits. " "If Hurd has it it may be useful." msgstr "" "Tùy chá»n này không sẵn sàng trong hệ Ä‘iá»u hành Linux, thì nó không phải " "trong danh sách cho cvsd/giá»›i hạn. Nếu Hurd có thì có lẽ hữu ích." #. Type: boolean #. Description #: ../templates:19001 msgid "Remove chroot jail containing repositories?" msgstr "Loại bá» tù gốc khác chứa khó không?" #. Type: boolean #. Description #: ../templates:19001 msgid "" "The following directory is configured as a chroot jail for cvsd:\n" " ${rootjail}\n" "You may choose to remove the chroot jail but you will also lose all the " "repositories inside the chroot jail. If you have not backed up your " "repositories you want to keep do not remove it now and manually remove it " "later once your repositories are safe." msgstr "" "Äã cấu hình thư mục theo đây như là tù gốc khác cho cvsd:\n" " ${rootjail}\n" "Bạn có thể chá»n loại bá» tù gốc khác ấy, nhưng mà hành động ấy sẽ cÅ©ng mất " "các kho ở trong nó. Nếu bạn chưa lưu trữ các kho muốn giữ thì đừng loại bá» " "thư mụcvào lúc này: hãy tá»± loại bá» nó chỉ khi các kho cá»§a bạn là an toàn.\n" ".\n" "[Chú thích dịch: Tù gốc khác (tiếng Anh: chroot jail) là má»™t thư mục gốc " "tạm, thưá»ng được tạo để cho phép ngưá»i dùng truy cập thư mục ấy qua FTP hay " "HTTP. Dù thư mục ấy có các tập tin gốc cần thiết, ngưá»i dùng không thể truy " "cập tập tin gốc nào ở ngoại thư mục ấy: thì «tù» gốc khác. :) ]" #. Type: boolean #. Description #: ../templates:19001 msgid "" "If you do choose to remove the chroot directory, all directories under it " "will be removed, even if they are on another file system." msgstr "" "Nếu bạn có chá»n loại bá» thư mục gốc khác thì má»i thư mục dưới nó sẽ bị loại " "bá», dù nếu nó trong hệ thống tập tin khác." #. Type: boolean #. Description #: ../templates:19001 msgid "" "If you choose to keep the chroot jail please note that the cvsd user and " "group will be removed so uid and gid file information may no longer be " "consistent." msgstr "" "Nếu bạn chá»n giữ tù gốc khác thì hãy ghi chú rằng vẫn còn sẽ loại bá» ngưá»i " "dùng và nhóm cá»§a cvsd. Như thế thì thông tin tập tin UID và GID sẽ không còn " "hợp nhất lại.\n" ".\n" "[Chú thích dịch:\n" "UID - User ID - mã nhận diện ngưá»i dùng\n" "GID - Group ID - mã nhận diện nhóm]" cvsd-1.0.24/debian/po/ru.po0000644000000000000000000005226511431736066012272 0ustar # translation of cvsd_1.0.16_ru.po to Russian # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Yuri Kozlov , 2009. msgid "" msgstr "" "Project-Id-Version: cvsd 1.0.16\n" "Report-Msgid-Bugs-To: Arthur de Jong \n" "POT-Creation-Date: 2007-07-21 14:26+0200\n" "PO-Revision-Date: 2009-09-10 20:54+0400\n" "Last-Translator: Yuri Kozlov \n" "Language-Team: Russian \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #. Type: string #. Description #: ../templates:1001 msgid "Location of chroot jail:" msgstr "РаÑположение каталога Ð´Ð»Ñ chroot:" #. Type: string #. Description #: ../templates:1001 msgid "" "cvsd can run in a chroot jail. This is the preferred method of operation. " "Specify the location of the chroot jail. If you make this 'none' no chroot " "jail will be created and used. A chroot file hierarchy will be created in " "the specified location." msgstr "" "cvsd может быть запущен в ограниченном окружении chroot. Это " "предпочтительный метод работы. Укажите каталог Ð´Ð»Ñ chroot. ЕÑли ввеÑти " "'none', то окружение chroot не будет Ñоздано и задейÑтвовано. Ð’ указанном " "раÑположении будет Ñоздано дерево каталогов chroot." #. Type: string #. Description #: ../templates:2001 msgid "The maximum number of connections that can be handled:" msgstr "МакÑимальное количеÑтво обрабатываемых подключений:" #. Type: string #. Description #: ../templates:2001 msgid "" "It is possible to specify a maximum number of connections that cvsd can " "handle simultaneously. Specifying 0 (zero) will put no limit to the number " "of connections." msgstr "" "ЕÑть возможноÑть задать макÑимальное количеÑтво подключений, которые cvsd " "будет обрабатывать одновременно. Значение 0 (ноль) указывает на ÑнÑтие " "ограничений на количеÑтво подключений." #. Type: string #. Description #: ../templates:3001 msgid "Nice value cvsd should run at:" msgstr "Приоритет работы cvsd:" #. Type: string #. Description #: ../templates:3001 msgid "" "cvsd can be run at reduced priority so it will not take up too many " "resources, especially if a user specifies a -z option to cvs. The priority " "can also be increased (negative value here)." msgstr "" "cvsd можно запуÑтить Ñ Ð¿Ð¾Ð½Ð¸Ð¶ÐµÐ½Ð½Ñ‹Ð¼ приоритетом Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾, чтобы он не " "иÑпользовал Ñлишком много реÑурÑов, оÑобенно когда пользователи указывают " "клиенту cvs параметр -z. Также приоритет можно наоборот увеличить (указав " "отрицательное значение)." #. Type: string #. Description #: ../templates:4001 msgid "Umask cvsd should run at:" msgstr "Umask, которую иÑпользует cvsd:" #. Type: string #. Description #: ../templates:4001 msgid "Specify the umask cvsd and cvs should use when creating files." msgstr "" "Укажите значение umask Ð´Ð»Ñ cvsd и cvs, которое должно иÑпользоватьÑÑ Ð¿Ñ€Ð¸ " "Ñоздании файлов." #. Type: string #. Description #: ../templates:4001 msgid "" "The umask should be specified as an octal value and represents the " "permissions that should be taken away when creating a file (e.g. using 027 " "will create files with mode 640 or rw-r-----)." msgstr "" "Значение umask нужно указывать в воÑьмеричной ÑиÑтеме ÑчиÑÐ»ÐµÐ½Ð¸Ñ Ð¸ оно должно " "предÑтавлÑть права, которые нужно убрать у Ñоздаваемых файлов (например, при " "значении 027 проиÑходит Ñоздание файлов Ñ Ð¿Ñ€Ð°Ð²Ð°Ð¼Ð¸ 640 или rw-r-----)." #. Type: string #. Description #: ../templates:5001 msgid "Address and port on which cvsd will listen:" msgstr "ÐÐ´Ñ€ÐµÑ Ð¸ порт, проÑлушиваемый cvsd:" #. Type: string #. Description #: ../templates:5001 msgid "" "With the first argument you can specify the address cvsd should listen on. " "The '*' address specifies that cvsd should listen on all addresses. You can " "specify a IPv4 address, IPv6 address, a hostname or '*'." msgstr "" "Ð’ первом параметре вы можете указать адреÑ, который должен проÑлушивать " "cvsd. ÐÐ´Ñ€ÐµÑ '*' указывает, что cvsd должен ожидать запроÑов на любой адреÑ. " "Ð’Ñ‹ можете ввеÑти Ð°Ð´Ñ€ÐµÑ Ð² формате IPv4, IPv6, имени хоÑта или '*'." #. Type: string #. Description #: ../templates:5001 msgid "" "The second argument is the service name (e.g. cvspserver) or port number " "(default 2401) cvsd will listen on." msgstr "" "Вторым параметром задаётÑÑ Ð¸Ð¼Ñ Ñлужбы (например, cvspserver) или номер порта " "(по умолчанию 2401), который проÑлушивает cvsd." #. Type: string #. Description #: ../templates:5001 msgid "" "The address and port should be separated by a space and you can specify " "multiple address-port combinations by separating them with spaces." msgstr "" "ÐÐ´Ñ€ÐµÑ Ð¸ порт должны разделÑтьÑÑ Ð¿Ñ€Ð¾Ð±ÐµÐ»Ð¾Ð¼; вы можете указать неÑколько " "комбинаций адреÑ-порт, также разделÑÑ Ð¸Ñ… пробелами." #. Type: string #. Description #: ../templates:6001 msgid "Repositories to serve:" msgstr "ОбÑлуживаемые репозитории:" #. Type: string #. Description #: ../templates:6001 msgid "" "The whole idea of cvsd is to serve repositories. Specify a colon ':' " "separated list of repositories to serve. The location of these repositories " "is relative to the specified chroot jail (${rootjail}) and should start with " "a '/'." msgstr "" "Задачей cvsd ÑвлÑетÑÑ Ð¾Ð±Ñлуживание репозиториев. Введите обÑлуживаемые " "репозитории через двоеточие ':'. РаÑположение репозиториев указываетÑÑ " "отноÑительно заданного каталога chroot (${rootjail}) и должно начинатьÑÑ Ñ " "'/'." #. Type: string #. Description #: ../templates:6001 msgid "" "The repositories here should be initialized by hand with something like 'cvs " "-d ${rootjail}/myrepos init' after which passwords can be set with 'cvsd-" "passwd ${rootjail}/myrepos anonymous'. See the file /usr/share/doc/cvsd/" "README.gz for details on creating repositories." msgstr "" "Репозитории должны быть инициализированы вручную, например, командой 'cvs -d " "${rootjail}/myrepos init'; также к ним можно уÑтановить пароль Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ " "'cvsd-passwd ${rootjail}/myrepos anonymous'. Подробней о Ñоздании " "репозиториев Ñм. в файле /usr/share/doc/cvsd/README.gz." #. Type: multiselect #. Choices #: ../templates:7001 msgid "coredumpsize" msgstr "coredumpsize" #. Type: multiselect #. Choices #: ../templates:7001 msgid "cputime" msgstr "cputime" #. Type: multiselect #. Choices #: ../templates:7001 msgid "datasize" msgstr "datasize" #. Type: multiselect #. Choices #: ../templates:7001 msgid "filesize" msgstr "filesize" #. Type: multiselect #. Choices #: ../templates:7001 msgid "memorylocked" msgstr "memorylocked" #. Type: multiselect #. Choices #: ../templates:7001 msgid "openfiles" msgstr "openfiles" #. Type: multiselect #. Choices #: ../templates:7001 msgid "maxproc" msgstr "maxproc" #. Type: multiselect #. Choices #: ../templates:7001 msgid "memoryuse" msgstr "memoryuse" #. Type: multiselect #. Choices #: ../templates:7001 msgid "stacksize" msgstr "stacksize" #. Type: multiselect #. Choices #: ../templates:7001 msgid "virtmem" msgstr "virtmem" #. Type: multiselect #. Description #: ../templates:7002 msgid "Resources of pserver processes to limit:" msgstr "Ограничиваемые реÑурÑÑ‹ у процеÑÑов pserver:" #. Type: multiselect #. Description #: ../templates:7002 msgid "" "The pserver wrapper can be configured to limit the resource usage that a " "pserver process can have. These resource limits will be set on each pserver " "process and not on the wrapper." msgstr "" "У надÑтройки pserver можно ограничить потреблÑемые ей реÑурÑÑ‹. Эти реÑурÑÑ‹ " "можно указать Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ процеÑÑа pserver и не только Ð´Ð»Ñ Ð½Ð°Ð´Ñтройки." #. Type: multiselect #. Description #: ../templates:7002 msgid "" "Choose from the list the resources that you want to limit. You will be asked " "to specify limits about every resource you selected here." msgstr "" "Выберите из ÑпиÑка реÑурÑÑ‹, которые вы хотите ограничить. Ð’Ð°Ñ Ð¿Ð¾Ð¿Ñ€Ð¾ÑÑÑ‚ " "указать пределы по каждому выбранному реÑурÑу." #. Type: multiselect #. Description #: ../templates:7002 msgid "" "Note that not all resources may be available on all systems and that " "resources may be system and kernel specific so use these with caution. The " "results of exceeding the set limits may also be system specific but will " "most likely stop the cvs process and close the connection (may be " "problematic with write access to cvs repository)." msgstr "" "Заметим, что не вÑе реÑурÑÑ‹ могут быть доÑтупны; Ñто может завиÑеть от Ñамой " "ÑиÑтемы и Ñдра, поÑтому иÑпользуйте Ñ Ð¾ÑторожноÑтью. Результаты Ð¿Ñ€ÐµÐ²Ñ‹ÑˆÐµÐ½Ð¸Ñ " "ограничений также завиÑÑÑ‚ от ÑиÑтемы, но, вероÑтнее вÑего, будет оÑтановлен " "процеÑÑ cvs и закрыто Ñоединение (что может Ñоздать проблему, еÑли " "оÑущеÑтвлÑлаÑÑŒ запиÑÑŒ в репозиторий cvs)." #. Type: string #. Description #: ../templates:8001 msgid "Maximum file size of a core dump:" msgstr "МакÑимальный размер файла дампа процеÑÑа:" #. Type: string #. Description #: ../templates:8001 msgid "" "Set this to 0 (zero) (should be the system default) to prevent core dumps. " "Otherwise this limits the size of core dumps to the specified value." msgstr "" "Введите 0 (ноль) (должно быть в ÑиÑтеме по умолчанию), чтобы не ÑохранÑть " "дампы процеÑÑов. Иначе укажите предельный размер дампа." #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #: ../templates:8001 ../templates:10001 ../templates:11001 ../templates:12001 #: ../templates:15001 ../templates:16001 ../templates:17001 msgid "" "This value may be specified with a suffix of 'b' (bytes), 'k' (1024 bytes) " "or 'm' (1024*1024 bytes), where 'k' is the default." msgstr "" "Ð’ значении можно указать ÑÑƒÑ„Ñ„Ð¸ÐºÑ 'b' (в байтах), 'k' (в 1024 байт) или " "'m' (в 1024*1024 байтах), по умолчанию иÑпользуетÑÑ 'k'." #. Type: string #. Description #: ../templates:9001 msgid "Maximum amount of cpu time consumed:" msgstr "МакÑимальное количеÑтво потреблÑемого процеÑÑорного времени:" #. Type: string #. Description #: ../templates:9001 msgid "" "This limits the number of cpu seconds the cvs process can use. This will " "prevent too much cpu time from being allocated to a single connection." msgstr "" "ЗдеÑÑŒ задаётÑÑ Ð¿Ñ€ÐµÐ´ÐµÐ» на иÑпользуемое процеÑÑом cvs чиÑло Ñекунд Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ " "на процеÑÑоре. Это предотвращает иÑпользование процеÑÑора одним Ñоединением " "длительное времÑ." #. Type: string #. Description #: ../templates:9001 msgid "" "This value can be formatted as 'mm:ss' or have a 'm' or 's' suffix where 's' " "is default." msgstr "" "Значение может указыватьÑÑ Ð² виде 'мм:ÑÑ' или иметь ÑÑƒÑ„Ñ„Ð¸ÐºÑ 'm' или 's'; по " "умолчанию иÑпользуетÑÑ 's'." #. Type: string #. Description #: ../templates:10001 msgid "Maximum size of program's data segment:" msgstr "МакÑимальный размер Ñегмента данных программы:" #. Type: string #. Description #: ../templates:10001 msgid "" "This limits the amount of memory the cvs program can use. This specific item " "limits the size of the data segment." msgstr "" "Это значение ограничивает количеÑтво памÑти, которое может иÑпользовать " "программа cvs. Оно указывает предельный размер Ñегмента данных." #. Type: string #. Description #: ../templates:11001 msgid "Maximum size of files created:" msgstr "МакÑимальный размер Ñоздаваемых файлов:" #. Type: string #. Description #: ../templates:11001 msgid "" "This limits the maximum size of a file created by cvs. Note that the cvs " "pserver process needs to be able to create lock files and possibly write " "history or other files so don't set this to 0 (zero)." msgstr "" "Это значение ограничивает макÑимальный размер файлов, Ñоздаваемых cvs. " "Заметим, что процеÑÑу cvs pserver необходимо иметь возможноÑть ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ " "блокировочных файлов и запиÑи иÑтории или других файлов, поÑтому не " "указывайте 0 (ноль)." #. Type: string #. Description #: ../templates:12001 msgid "Maximum amount of locked memory:" msgstr "МакÑимальное количеÑтво блокируемой памÑти:" #. Type: string #. Description #: ../templates:12001 msgid "" "This limits the amount of memory the cvs process may lock. cvs probably " "doesn't need to lock any memory at all." msgstr "" "Это значение ограничивает количеÑтво памÑти, которое может быть " "заблокировано процеÑÑом cvs. cvs, вероÑтно, ненужно ÑовÑем блокировать " "памÑть." #. Type: string #. Description #: ../templates:13001 msgid "Maximum number of open files:" msgstr "МакÑимальное количеÑтво открытых файлов:" #. Type: string #. Description #: ../templates:13001 msgid "" "This limits the number of files and connections that the cvs process can " "have open at a single moment. The cvs process needs to access quite a few " "files so don't set this too low." msgstr "" "Это значение ограничивает чиÑло файлов и подключений, которое процеÑÑ cvs " "может держать открытыми в каждый момент времени. ПроцеÑÑу cvs требуетÑÑ " "доÑтуп к неÑкольким файлам, поÑтому не Ñлишком занижайте значение." #. Type: string #. Description #: ../templates:14001 msgid "Maximum number of processes:" msgstr "МакÑимальное чиÑло процеÑÑов:" #. Type: string #. Description #: ../templates:14001 msgid "" "This limits the maximum number of processes that a single user may have. cvs " "may need to spawn additional processes to run scripts or do subtasks so " "don't set this too low." msgstr "" "Это значение ограничивает макÑимальное чиÑло процеÑÑов, выделÑемых " "отдельному пользователю. cvs нужно Ñоздавать дополнительные процеÑÑÑ‹ Ð´Ð»Ñ " "запуÑка Ñценариев или Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´Ð·Ð°Ð´Ð°Ñ‡, поÑтому не Ñлишком занижайте " "значение." #. Type: string #. Description #: ../templates:15001 msgid "Maximum size of resident memory:" msgstr "МакÑимальное количеÑтво резидентной памÑти:" #. Type: string #. Description #: ../templates:15001 msgid "This specifies the amount of physical memory a process may have." msgstr "" "Это значение задаёт количеÑтво физичеÑкой памÑти, которое может иметь " "процеÑÑ." #. Type: string #. Description #: ../templates:16001 msgid "Maximum stack size:" msgstr "МакÑимальный размер Ñтека:" #. Type: string #. Description #: ../templates:16001 msgid "This limits the size of the stack." msgstr "Это значение ограничивает размер Ñтека." #. Type: string #. Description #: ../templates:17001 msgid "Maximum amount of virtual memory allocated:" msgstr "МакÑимальное количеÑтво выделÑемой виртуальной памÑти:" #. Type: string #. Description #: ../templates:17001 msgid "" "This limits the total amount of virtual memory a process may have allocated." msgstr "" "Это значение ограничивает общее количеÑтво виртуальной памÑти, которое может " "быть выделено процеÑÑу." #. Type: string #. Description #: ../templates:18001 msgid "Maximum number of threads:" msgstr "МакÑимальное чиÑло потоков:" #. Type: string #. Description #: ../templates:18001 msgid "This limits the number of threads that a single process may have." msgstr "МакÑимальное количеÑтво потоков, которое может иметь один процеÑÑ." #. Type: string #. Description #: ../templates:18001 msgid "" "This is not available under Linux so it is not in the list for cvsd/limits. " "If Hurd has it it may be useful." msgstr "" "Это недоÑтупно в Linux, поÑтому не указывайте в ÑпиÑке Ð´Ð»Ñ cvsd/limits. " "Может быть полезно в Hurd." #. Type: boolean #. Description #: ../templates:19001 msgid "Remove chroot jail containing repositories?" msgstr "Удалить окружение chroot Ñ Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñми?" #. Type: boolean #. Description #: ../templates:19001 msgid "" "The following directory is configured as a chroot jail for cvsd:\n" " ${rootjail}\n" "You may choose to remove the chroot jail but you will also lose all the " "repositories inside the chroot jail. If you have not backed up your " "repositories you want to keep do not remove it now and manually remove it " "later once your repositories are safe." msgstr "" "Следующий каталог иÑпользовалÑÑ ÐºÐ°Ðº ограниченное окружение chroot Ð´Ð»Ñ cvsd:\n" " ${rootjail}\n" "Ð’Ñ‹ можете указать удалить каталог Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ chroot, но при Ñтом потерÑете " "вÑе репозитории, находÑщиеÑÑ Ð²Ð½ÑƒÑ‚Ñ€Ð¸. ЕÑли вы не делали резервных копий и " "хотите оÑтавить репозитории, то не удалÑйте каталог ÑейчаÑ, а Ñделайте Ñто " "вручную позже, когда перенеÑёте репозитории." #. Type: boolean #. Description #: ../templates:19001 msgid "" "If you do choose to remove the chroot directory, all directories under it " "will be removed, even if they are on another file system." msgstr "" "ЕÑли вы выберете удаление каталога Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ chroot, то вÑе его подкаталоги " "будут удалены, даже еÑли они находÑÑ‚ÑÑ Ð² другой файловой ÑиÑтеме." #. Type: boolean #. Description #: ../templates:19001 msgid "" "If you choose to keep the chroot jail please note that the cvsd user and " "group will be removed so uid and gid file information may no longer be " "consistent." msgstr "" "ЕÑли вы оÑтавите каталог Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ chroot, то заметьте, что пользователь и " "группа cvsd будут удалены, поÑтому Ñ„Ð°Ð¹Ð»Ð¾Ð²Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾Ð± uid и gid может " "больше не ÑоответÑтвовать дейÑтвительноÑти." cvsd-1.0.24/debian/po/de.po0000644000000000000000000004436711431736066012240 0ustar # # This file is from the DDTP, the Debian Description Translation Project # # See http://ddtp.debian.org/ for more information. # msgid "" msgstr "" "Project-Id-Version: cvsd 1.0.8\n" "Report-Msgid-Bugs-To: Arthur de Jong \n" "POT-Creation-Date: 2007-07-21 14:26+0200\n" "PO-Revision-Date: 2004-12-05 23:51+0100\n" "Last-Translator: Jens Seidel \n" "Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-15\n" "Content-Transfer-Encoding: 8bit\n" #. Type: string #. Description #: ../templates:1001 msgid "Location of chroot jail:" msgstr "Position des Chroot Jail:" #. Type: string #. Description #: ../templates:1001 msgid "" "cvsd can run in a chroot jail. This is the preferred method of operation. " "Specify the location of the chroot jail. If you make this 'none' no chroot " "jail will be created and used. A chroot file hierarchy will be created in " "the specified location." msgstr "" "Cvsd kann in einem chrooted Jail laufen. Das ist die Methode der Wahl. Legen " "Sie einen Ort für das Chroot-Gefängnis fest. Falls Sie »none« sagen, wird " "kein Chroot-Jail erstellt und benutzt. Eine Chroot-Dateihierarchie wird an " "dem festgelegten Ort erstellt." #. Type: string #. Description #: ../templates:2001 msgid "The maximum number of connections that can be handled:" msgstr "Höchstzahl der verwalteten Verbindungen:" #. Type: string #. Description #: ../templates:2001 msgid "" "It is possible to specify a maximum number of connections that cvsd can " "handle simultaneously. Specifying 0 (zero) will put no limit to the number " "of connections." msgstr "" "Es ist möglich, eine Höchstzahl der Verbindungen anzugeben, die cvsd " "gleichzeitig verwalten kann. Die Angabe 0 (Null) bedeutet keine Begrenzung " "für die Anzahl der Verbindungen." #. Type: string #. Description #: ../templates:3001 msgid "Nice value cvsd should run at:" msgstr "Der Nice-Wert mit dem CVSD laufen soll:" #. Type: string #. Description #: ../templates:3001 msgid "" "cvsd can be run at reduced priority so it will not take up too many " "resources, especially if a user specifies a -z option to cvs. The priority " "can also be increased (negative value here)." msgstr "" "CVSD kann mit verringerter Priorität laufen, so dass es nicht zu viele " "Ressourcen abfordert, insbesondere falls ein User eine »-z«-Option für CVS " "festlegt. Die Priorität kann auch erhöht werden (mit einem negativen Wert)." #. Type: string #. Description #: ../templates:4001 msgid "Umask cvsd should run at:" msgstr "Umask die CVSD benutzen soll:" #. Type: string #. Description #: ../templates:4001 msgid "Specify the umask cvsd and cvs should use when creating files." msgstr "" "Setzen Sie die umask, die cvsd und cvs benutzen sollen, wenn neue Dateien " "angelegt werden." #. Type: string #. Description #: ../templates:4001 msgid "" "The umask should be specified as an octal value and represents the " "permissions that should be taken away when creating a file (e.g. using 027 " "will create files with mode 640 or rw-r-----)." msgstr "" "Die umask sollte als oktaler Wert angegeben werden und die Rechte angeben, " "die bei den erzeugten Dateien entfernt werden sollen (zum Beispiel hat der " "Wert 027 bei Dateien den Mode 640 oder rw-r----- zur Folge)." #. Type: string #. Description #: ../templates:5001 msgid "Address and port on which cvsd will listen:" msgstr "Adresse und Port an dem CVSD lauschen soll:" #. Type: string #. Description #: ../templates:5001 msgid "" "With the first argument you can specify the address cvsd should listen on. " "The '*' address specifies that cvsd should listen on all addresses. You can " "specify a IPv4 address, IPv6 address, a hostname or '*'." msgstr "" "Mit dem ersten Argument können Sie die Adresse festlegen, an der CVSD " "lauschen soll. Die Adresse »*« legt das Lauschen an allen Adressen fest. Sie " "können eine IPv4- oder IPv6-Adresse, einen Hostnamen oder »*« angeben." #. Type: string #. Description #: ../templates:5001 msgid "" "The second argument is the service name (e.g. cvspserver) or port number " "(default 2401) cvsd will listen on." msgstr "" "Das zweite Argument ist der Dienst-Name (z.B. cvspserver) oder die " "Portnummer (Standard 2401) an der CVSD lauschen soll." #. Type: string #. Description #: ../templates:5001 msgid "" "The address and port should be separated by a space and you can specify " "multiple address-port combinations by separating them with spaces." msgstr "" "Adresse und Port sollten mit Leerzeichen abgetrennt werden, es können " "mehrere Adress-Port-Kombinationen Leerzeichen-separiert angegeben werden." #. Type: string #. Description #: ../templates:6001 msgid "Repositories to serve:" msgstr "Zu betreuende Repositorys:" #. Type: string #. Description #: ../templates:6001 msgid "" "The whole idea of cvsd is to serve repositories. Specify a colon ':' " "separated list of repositories to serve. The location of these repositories " "is relative to the specified chroot jail (${rootjail}) and should start with " "a '/'." msgstr "" "Die gesamte Idee von CVSD ist es, Repositorys zu betreuen. Legen Sie eine " "Doppelpunkt-separierte Liste von zu betreuenden Repositorys fest. Der Ort " "dieser Repositorys liegt relativ zum angegebenen Chroot-Jail (${rootjail}) " "und sollte mit »/« beginnen." #. Type: string #. Description #: ../templates:6001 msgid "" "The repositories here should be initialized by hand with something like 'cvs " "-d ${rootjail}/myrepos init' after which passwords can be set with 'cvsd-" "passwd ${rootjail}/myrepos anonymous'. See the file /usr/share/doc/cvsd/" "README.gz for details on creating repositories." msgstr "" "Die Repositorys hier sollten von Hand durch etwas wie »cvs -d ${rootjail}/" "myrepos init« initialisiert werden, wonach dann mit »cvsd-passwd ${rootjail}/" "myrepos anonymous« die Passworte gesetzt werden können. Siehe /usr/share/doc/" "cvsd/README.gz bezüglich Details zur Erstellung von Repositorys." #. Type: multiselect #. Choices #: ../templates:7001 msgid "coredumpsize" msgstr "Core-Dump Größe" #. Type: multiselect #. Choices #: ../templates:7001 msgid "cputime" msgstr "CPU-Zeit" #. Type: multiselect #. Choices #: ../templates:7001 msgid "datasize" msgstr "Größe des Datensegmentes" #. Type: multiselect #. Choices #: ../templates:7001 msgid "filesize" msgstr "Dateigröße" #. Type: multiselect #. Choices #: ../templates:7001 msgid "memorylocked" msgstr "Größe des gesperrten Speichers" #. Type: multiselect #. Choices #: ../templates:7001 msgid "openfiles" msgstr "Anzahl offener Dateien" #. Type: multiselect #. Choices #: ../templates:7001 msgid "maxproc" msgstr "Anzahl von Prozessen" #. Type: multiselect #. Choices #: ../templates:7001 msgid "memoryuse" msgstr "Größe des Speichers" #. Type: multiselect #. Choices #: ../templates:7001 msgid "stacksize" msgstr "Stapel-Größe" #. Type: multiselect #. Choices #: ../templates:7001 msgid "virtmem" msgstr "Größe des virtuellen Speichers" #. Type: multiselect #. Description #: ../templates:7002 msgid "Resources of pserver processes to limit:" msgstr "Wählen Sie die zu limitierenden Ressourcen für pserver-Prozesse aus:" #. Type: multiselect #. Description #: ../templates:7002 msgid "" "The pserver wrapper can be configured to limit the resource usage that a " "pserver process can have. These resource limits will be set on each pserver " "process and not on the wrapper." msgstr "" "Der pserver-Wrapper kann mit Ressourcen-Limitierung für die pserver-Prozesse " "konfiguriert werden. Diese Ressourcen-Limitierungen werden auf jeden pserver-" "Prozess angewendet und nicht auf den Wrapper." #. Type: multiselect #. Description #: ../templates:7002 msgid "" "Choose from the list the resources that you want to limit. You will be asked " "to specify limits about every resource you selected here." msgstr "" "Wählen Sie die zu limitierenden Ressourcen aus der Liste aus. Sie werden " "nach den Limits für jede von Ihnen ausgewählte Ressource gefragt." #. Type: multiselect #. Description #: ../templates:7002 msgid "" "Note that not all resources may be available on all systems and that " "resources may be system and kernel specific so use these with caution. The " "results of exceeding the set limits may also be system specific but will " "most likely stop the cvs process and close the connection (may be " "problematic with write access to cvs repository)." msgstr "" "Beachten Sie, dass nicht alle Ressourcen auf allen Systemen vorhanden sind " "und dass Ressourcen System- und Kernel-spezifisch sein können, weshalb Sie " "mit Vorsicht vorgehen sollten. Die Folgen von Limit-Überschreitungen können " "ebenfalls System-spezifisch variieren, werden aber höchstwahrscheinlich den " "CVS-Prozess stoppen und die Verbindung schließen (könnte problematisch " "bezüglich Schreibzugriffen auf das CVS-Repository sein)." #. Type: string #. Description #: ../templates:8001 msgid "Maximum file size of a core dump:" msgstr "Maximale Größe einer Core-Dump-Datei:" #. Type: string #. Description #: ../templates:8001 msgid "" "Set this to 0 (zero) (should be the system default) to prevent core dumps. " "Otherwise this limits the size of core dumps to the specified value." msgstr "" "Setzen Sie das auf 0 (Null) (sollte die System-Voreinstellung sein), um Core-" "Dumps zu verhindern. Ansonsten begrenzt dies die Größe von Core-Dumps auf " "den festgelegten Wert." #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #: ../templates:8001 ../templates:10001 ../templates:11001 ../templates:12001 #: ../templates:15001 ../templates:16001 ../templates:17001 msgid "" "This value may be specified with a suffix of 'b' (bytes), 'k' (1024 bytes) " "or 'm' (1024*1024 bytes), where 'k' is the default." msgstr "" "Dieser Wert kann mit einem Anhängsel von »b« (bytes), »k« (1024 bytes) oder " "»m« (1024*1024 bytes) festgelegt werden, wobei »k« voreingestellt ist." #. Type: string #. Description #: ../templates:9001 msgid "Maximum amount of cpu time consumed:" msgstr "Höchstmenge für verbrauchte CPU-Zeit:" #. Type: string #. Description #: ../templates:9001 msgid "" "This limits the number of cpu seconds the cvs process can use. This will " "prevent too much cpu time from being allocated to a single connection." msgstr "" "Dies limitiert die Menge an CPU-Sekunden, die der CVS-Prozess nutzen kann. " "Das verhindert, dass zu viel CPU-Zeit für eine einzelne Verbindung " "verbraucht wird." #. Type: string #. Description #: ../templates:9001 msgid "" "This value can be formatted as 'mm:ss' or have a 'm' or 's' suffix where 's' " "is default." msgstr "" "Dieser Wert kann als »mm:ss« formatiert werden oder ein »m«- oder »s«-Suffix " "haben, wobei »s« die Voreinstellung ist." #. Type: string #. Description #: ../templates:10001 msgid "Maximum size of program's data segment:" msgstr "Maximale Größe des Datensegmentes des Programmes:" #. Type: string #. Description #: ../templates:10001 msgid "" "This limits the amount of memory the cvs program can use. This specific item " "limits the size of the data segment." msgstr "" "Dies limitiert die Menge an Speicher, den das CVS-Programm belegen darf. " "Dieser spezielle Punkt limitiert die Größe des Datensegmentes." #. Type: string #. Description #: ../templates:11001 msgid "Maximum size of files created:" msgstr "Maximal-Größe der erstellten Dateien:" #. Type: string #. Description #: ../templates:11001 msgid "" "This limits the maximum size of a file created by cvs. Note that the cvs " "pserver process needs to be able to create lock files and possibly write " "history or other files so don't set this to 0 (zero)." msgstr "" "Dies limitiert die maximale Größe der von CVS erstellten Dateien. Beachten " "Sie, dass der CVS-pserver-Prozess in der Lage sein muss, Lock-Files und " "evntl. auch Historys und andere Dateien zu erstellen, so dass Sie den Wert " "nicht auf 0 (Null) setzen sollten." #. Type: string #. Description #: ../templates:12001 msgid "Maximum amount of locked memory:" msgstr "Maximal-Menge des gesperrten Speichers:" #. Type: string #. Description #: ../templates:12001 msgid "" "This limits the amount of memory the cvs process may lock. cvs probably " "doesn't need to lock any memory at all." msgstr "" "Dies limitiert die Menge des Speichers, den der CVS-Prozess sperren kann. " "CVS muss vermutlich überhaupt keinen Speicher sperren." #. Type: string #. Description #: ../templates:13001 msgid "Maximum number of open files:" msgstr "Maximale Anzahl an offenen Dateien:" #. Type: string #. Description #: ../templates:13001 msgid "" "This limits the number of files and connections that the cvs process can " "have open at a single moment. The cvs process needs to access quite a few " "files so don't set this too low." msgstr "" "Dies limitiert die Anzahl von Dateien und Verbindungen, die der CVS-Prozess " "gleichzeitig aufweisen darf. Der CVS-Prozess muss auf einige Dateien " "zugreifen können, daher setzen Sie das nicht zu niedrig." #. Type: string #. Description #: ../templates:14001 msgid "Maximum number of processes:" msgstr "Höchstanzahl von Prozessen:" #. Type: string #. Description #: ../templates:14001 msgid "" "This limits the maximum number of processes that a single user may have. cvs " "may need to spawn additional processes to run scripts or do subtasks so " "don't set this too low." msgstr "" "Dies begrenzt die Höchstanzahl von Prozessen, die ein einzelner User haben " "darf. CVS muss eventuell zusätzliche Prozesse erzeugen für Skripte oder " "Unteraufgaben, daher sollten Sie dies nicht zu niedrig festlegen." #. Type: string #. Description #: ../templates:15001 msgid "Maximum size of resident memory:" msgstr "Maximale Größe des besetzten Speichers:" #. Type: string #. Description #: ../templates:15001 msgid "This specifies the amount of physical memory a process may have." msgstr "" "Dies legt die Menge von physikalischem Speicher fest, die ein Prozess haben " "darf." #. Type: string #. Description #: ../templates:16001 msgid "Maximum stack size:" msgstr "Maximale Stapel-Größe:" #. Type: string #. Description #: ../templates:16001 msgid "This limits the size of the stack." msgstr "Dies beschränkt die Größe des Stapels." #. Type: string #. Description #: ../templates:17001 msgid "Maximum amount of virtual memory allocated:" msgstr "Maximale Belegung des virtuellen Speichers:" #. Type: string #. Description #: ../templates:17001 msgid "" "This limits the total amount of virtual memory a process may have allocated." msgstr "" "Dies limitiert die totale Menge des virtuellen Speichers, den ein Prozess " "belegen darf." #. Type: string #. Description #: ../templates:18001 msgid "Maximum number of threads:" msgstr "Maximale Anzahl von Threads:" #. Type: string #. Description #: ../templates:18001 msgid "This limits the number of threads that a single process may have." msgstr "" "Dies beschränkt die Anzahl von Threads die ein einzelner Prozess haben darf." #. Type: string #. Description #: ../templates:18001 msgid "" "This is not available under Linux so it is not in the list for cvsd/limits. " "If Hurd has it it may be useful." msgstr "" "Dies steht unter Linux nicht zur Verfügung, daher befindet es sich nicht in " "der Liste für cvsd/limits. Falls Hurd das hat, kann es brauchbar sein." #. Type: boolean #. Description #: ../templates:19001 msgid "Remove chroot jail containing repositories?" msgstr "Chroot jail mit Repositorys entfernen?" #. Type: boolean #. Description #: ../templates:19001 msgid "" "The following directory is configured as a chroot jail for cvsd:\n" " ${rootjail}\n" "You may choose to remove the chroot jail but you will also lose all the " "repositories inside the chroot jail. If you have not backed up your " "repositories you want to keep do not remove it now and manually remove it " "later once your repositories are safe." msgstr "" "Das folgende Verzeichnis ist als ein chroot jail für CVSD konfiguriert:\n" " ${rootjail}\n" "Sie können das Entfernen des chroot jail veranlassen, werden dabei aber alle " "darin enthaltenen Repositorys verlieren. Falls Sie noch keine Sicherungs-" "Kopien der Repositorys angelegt haben, die Sie behalten möchten, sollten Sie " "chroot jail nicht jetzt sondern später von Hand entfernen, sobald Sie Ihre " "Repositorys gesichert haben." #. Type: boolean #. Description #: ../templates:19001 msgid "" "If you do choose to remove the chroot directory, all directories under it " "will be removed, even if they are on another file system." msgstr "" "Falls Sie sich zum Entfernen des chroot-Verzeichnisses entschieden haben, " "werden alle Unterverzeichnisse mitgelöscht, auch wenn diese auf einem " "anderen Dateisystem liegen." #. Type: boolean #. Description #: ../templates:19001 msgid "" "If you choose to keep the chroot jail please note that the cvsd user and " "group will be removed so uid and gid file information may no longer be " "consistent." msgstr "" "Falls Sie sich für den Erhalt des chroot jail entscheiden, beachten Sie " "bitte, dass der CVSD-User und die CVSD-Gruppe entfernt werden, so dass die " "UID- und GID-Datei-Attribute nicht mehr konsistent sind." # #~ msgid "Use debconf to configure cvsd?" #~ msgstr "cvsd mit debconf konfigurieren?" # #, fuzzy #~ msgid "" #~ "It is convenient to use debconf to configure cvsd. Almost all cvsd " #~ "configuration options are available through debconf and a configuration " #~ "file (/etc/cvsd/cvsd.conf) will be automatically created based on the " #~ "specified settings." #~ msgstr "" #~ "Der Gebrauch von debconf für die cvsd-Konfiguration ist bequem. Alle cvsd-" #~ "Konfigurations-Optionen sind über debconf verfügbar und eine " #~ "Konfigurations-Datei (/etc/cvsd/cvsd.conf) wird auf dem Boden der " #~ "angegebenen Einstellungen automatisch erstellt." # #~ msgid "" #~ "If you prefer to edit your configuration file by hand specify no here." #~ msgstr "" #~ "Falls Sie Ihre Konfigurations-Datei lieber selber editieren, geben Sie " #~ "hier Nein an." # #, fuzzy #~ msgid "" #~ "Note: if you do not use debconf you have to create the chroot jail " #~ "yourself (with cvsd-buildroot)" #~ msgstr "" #~ "Anmerkung: Falls Sie debconf nicht verwenden, müssen Sie rootjail selbst " #~ "erstellen (mit cvsd-buildroot)." # #~ msgid "Maximum number of open files (file descriptors):" #~ msgstr "Maximale Anzahl an offenen Dateien (file descriptors):" cvsd-1.0.24/debian/po/it.po0000644000000000000000000004214011724631144012243 0ustar # Italian translation of cvsd debconf messages. # Copyright (C) 2001-2012 Arthur de Jong # This file is distributed under the same license as the cvsd package. # Beatrice Torracca , 2012. msgid "" msgstr "" "Project-Id-Version: cvsd 1.0.14\n" "Report-Msgid-Bugs-To: Arthur de Jong \n" "POT-Creation-Date: 2007-07-21 14:26+0200\n" "PO-Revision-Date: 2012-02-22 18:20+0200\n" "Last-Translator: Beatrice Torracca \n" "Language-Team: Italian \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Virtaal 0.7.1\n" #. Type: string #. Description #: ../templates:1001 msgid "Location of chroot jail:" msgstr "Posizione della gabbia chroot:" #. Type: string #. Description #: ../templates:1001 msgid "" "cvsd can run in a chroot jail. This is the preferred method of operation. " "Specify the location of the chroot jail. If you make this 'none' no chroot " "jail will be created and used. A chroot file hierarchy will be created in " "the specified location." msgstr "" "cvsd può essere eseguito in una gabbia chroot. Questo è il metodo di " "funzionamento preferito. Specificare la posizione della gabbia chroot. " "Se si inserisce «none», non verrà creata né utilizzata alcuna gabbia chroot. " "Una gerarchia di file chroot verrà creata nella posizione specificata." #. Type: string #. Description #: ../templates:2001 msgid "The maximum number of connections that can be handled:" msgstr "Numero massimo di connessioni che possono essere gestite:" #. Type: string #. Description #: ../templates:2001 msgid "" "It is possible to specify a maximum number of connections that cvsd can " "handle simultaneously. Specifying 0 (zero) will put no limit to the number " "of connections." msgstr "" "È possibile specificare un numero massimo di connessioni che cvsd può " "gestire contemporaneamente. Specificare 0 (zero) fara sì che non vi siano " "limiti al numero di connessioni." #. Type: string #. Description #: ../templates:3001 msgid "Nice value cvsd should run at:" msgstr "Valore di nice con cui deve essere eseguito cvsd:" #. Type: string #. Description #: ../templates:3001 msgid "" "cvsd can be run at reduced priority so it will not take up too many " "resources, especially if a user specifies a -z option to cvs. The priority " "can also be increased (negative value here)." msgstr "" "cvsd può essere eseguito con una priorità ridotta così da non occupare " "troppe risorse, specialmente se un utente specifica per cvs l'opzione -z. La " "priorità può anche essere aumentata (usando qui un valore negativo)." #. Type: string #. Description #: ../templates:4001 msgid "Umask cvsd should run at:" msgstr "Umask con cui deve essere eseguito cvsd:" #. Type: string #. Description #: ../templates:4001 msgid "Specify the umask cvsd and cvs should use when creating files." msgstr "Specificare l'umask che cvsd e cvs devono usare quando creano file." #. Type: string #. Description #: ../templates:4001 msgid "" "The umask should be specified as an octal value and represents the " "permissions that should be taken away when creating a file (e.g. using 027 " "will create files with mode 640 or rw-r-----)." msgstr "" "L'umask dovrebbe essere specificata come valore ottale e rappresenta i " "permessi che devono essere rimossi quando si crea un file (es., usando 027 " "si creano file con permessi 640 o rw-r-----)." #. Type: string #. Description #: ../templates:5001 msgid "Address and port on which cvsd will listen:" msgstr "Indirizzo e porta su cui deve rimanere in ascolto cvsd:" #. Type: string #. Description #: ../templates:5001 msgid "" "With the first argument you can specify the address cvsd should listen on. " "The '*' address specifies that cvsd should listen on all addresses. You can " "specify a IPv4 address, IPv6 address, a hostname or '*'." msgstr "" "Il primo argomento permette di specificare l'indirizzo su cui cvsd deve " "restare in ascolto. Un indirizzo «*» indica che cvsd deve essere in ascolto " "su tutti gli indirizzi. Si può specificare un indirizzo IPv4, un indirizzo " "IPv6, un nome host o «*»." #. Type: string #. Description #: ../templates:5001 msgid "" "The second argument is the service name (e.g. cvspserver) or port number " "(default 2401) cvsd will listen on." msgstr "" "Il secondo argomento è il nome del servizio (es. cvspserver) o il numero di " "porta (predefinito 2401) sui cui cvsd resterà in ascolto." #. Type: string #. Description #: ../templates:5001 msgid "" "The address and port should be separated by a space and you can specify " "multiple address-port combinations by separating them with spaces." msgstr "" "L'indirizzo e la porta dovrebbero essere separati da uno spazio ed è " "possibile specificare più combinazioni indirizzo-porta separandole con " "spazi." #. Type: string #. Description #: ../templates:6001 msgid "Repositories to serve:" msgstr "Repository da servire:" #. Type: string #. Description #: ../templates:6001 msgid "" "The whole idea of cvsd is to serve repositories. Specify a colon ':' " "separated list of repositories to serve. The location of these repositories " "is relative to the specified chroot jail (${rootjail}) and should start with " "a '/'." msgstr "" "L'idea di base di cvsd è di servire repository. Specificare un elenco di " "repository da servire separati da due punti «:». La posizione di questi " "repository è relativa rispetto alla gabbia chroot specificata (${rootjail}) " "e dovrebbe iniziare con un carattere «/»." #. Type: string #. Description #: ../templates:6001 msgid "" "The repositories here should be initialized by hand with something like 'cvs " "-d ${rootjail}/myrepos init' after which passwords can be set with 'cvsd-" "passwd ${rootjail}/myrepos anonymous'. See the file /usr/share/doc/cvsd/" "README.gz for details on creating repositories." msgstr "" "I repository indicati qui dovrebbero essere inizializzati a mano con un " "comando simile a «cvs -d ${rootjail}/mieirepo init» dopo il quale si possono " "impostare le password con «cvsd-passwd ${rootjail}/mieirepo anonymous». " "Vedere il file /usr/share/doc/cvsd/README.gz per i dettagli sulla creazione " "di repository." #. Type: multiselect #. Choices #: ../templates:7001 msgid "coredumpsize" msgstr "dimensione coredump" #. Type: multiselect #. Choices #: ../templates:7001 msgid "cputime" msgstr "tempo CPU" #. Type: multiselect #. Choices #: ../templates:7001 msgid "datasize" msgstr "dimensione dati" #. Type: multiselect #. Choices #: ../templates:7001 msgid "filesize" msgstr "dimensione file" #. Type: multiselect #. Choices #: ../templates:7001 msgid "memorylocked" msgstr "memoria bloccata" #. Type: multiselect #. Choices #: ../templates:7001 msgid "openfiles" msgstr "file aperti" #. Type: multiselect #. Choices #: ../templates:7001 msgid "maxproc" msgstr "max processi" #. Type: multiselect #. Choices #: ../templates:7001 msgid "memoryuse" msgstr "uso memoria" #. Type: multiselect #. Choices #: ../templates:7001 msgid "stacksize" msgstr "dimensione stack" #. Type: multiselect #. Choices #: ../templates:7001 msgid "virtmem" msgstr "memoria virtuale" #. Type: multiselect #. Description #: ../templates:7002 msgid "Resources of pserver processes to limit:" msgstr "Risorse dei processi pserver da limitare:" #. Type: multiselect #. Description #: ../templates:7002 msgid "" "The pserver wrapper can be configured to limit the resource usage that a " "pserver process can have. These resource limits will be set on each pserver " "process and not on the wrapper." msgstr "" "Il wrapper pserver può essere configurato per limitare l'uso di risorse da " "parte di un processo pserver. Questi limiti di risorsa saranno impostati per " "ciascun processo pserver e non per il wrapper." #. Type: multiselect #. Description #: ../templates:7002 msgid "" "Choose from the list the resources that you want to limit. You will be asked " "to specify limits about every resource you selected here." msgstr "" "Scegliere dall'elenco le risorse che si desidera vengano limitate. Verrà " "chiesto di specificare limiti per ciascuna delle risorse selezionate qui." #. Type: multiselect #. Description #: ../templates:7002 msgid "" "Note that not all resources may be available on all systems and that " "resources may be system and kernel specific so use these with caution. The " "results of exceeding the set limits may also be system specific but will " "most likely stop the cvs process and close the connection (may be " "problematic with write access to cvs repository)." msgstr "" "Notare che è possibile che non tutte le risorse siano disponibili su tutti i " "sistemi e che risorse siano specifiche del sistema e del kernel, perciò " "usarle con cautela. Il risultato di un superamento dei limiti impostati può " "anch'esso essere specifico per il sistema, ma molto probabilmente verrà " "fermato il processo cvs e verrà chiusa la connessione (può essere un " "problema in caso di accesso in scrittura ad un repository cvs)." #. Type: string #. Description #: ../templates:8001 msgid "Maximum file size of a core dump:" msgstr "Dimensione massima del file di un core dump:" #. Type: string #. Description #: ../templates:8001 msgid "" "Set this to 0 (zero) (should be the system default) to prevent core dumps. " "Otherwise this limits the size of core dumps to the specified value." msgstr "" "Impostare a 0 (zero) (che dovrebbe essere il valore predefinito di sistema) " "per evitare i core dump. Altrimenti limita la dimensione dei core dump al " "valore specificato." #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #: ../templates:8001 ../templates:10001 ../templates:11001 ../templates:12001 #: ../templates:15001 ../templates:16001 ../templates:17001 msgid "" "This value may be specified with a suffix of 'b' (bytes), 'k' (1024 bytes) " "or 'm' (1024*1024 bytes), where 'k' is the default." msgstr "" "Questo valore può essere specificato con un suffisso «b» (byte), «k» (1024 " "byte) o «m» (1024*1024 byte), con «k» come valore predefinito." #. Type: string #. Description #: ../templates:9001 msgid "Maximum amount of cpu time consumed:" msgstr "Quantità massima di tempo di CPU occupato:" #. Type: string #. Description #: ../templates:9001 msgid "" "This limits the number of cpu seconds the cvs process can use. This will " "prevent too much cpu time from being allocated to a single connection." msgstr "" "Limita il numero di secondi di CPU che il processo cvs può usare. Questo " "eviterà l'assegnazione di troppo tempo CPU ad una singola connessione." #. Type: string #. Description #: ../templates:9001 msgid "" "This value can be formatted as 'mm:ss' or have a 'm' or 's' suffix where 's' " "is default." msgstr "" "Questo valore può essere formattato come «mm:ss» oppure avere un suffisso " "«m» o «s», con «s» come valore predefinito." #. Type: string #. Description #: ../templates:10001 msgid "Maximum size of program's data segment:" msgstr "Dimensione massima dei segmenti di dati del programma:" #. Type: string #. Description #: ../templates:10001 msgid "" "This limits the amount of memory the cvs program can use. This specific item " "limits the size of the data segment." msgstr "" "Limita la quantità di memoria che il programma cvs può usare. Questa " "specifica voce limita la dimensione dei segmenti dei dati." #. Type: string #. Description #: ../templates:11001 msgid "Maximum size of files created:" msgstr "Dimensione massima dei file creati:" #. Type: string #. Description #: ../templates:11001 msgid "" "This limits the maximum size of a file created by cvs. Note that the cvs " "pserver process needs to be able to create lock files and possibly write " "history or other files so don't set this to 0 (zero)." msgstr "" "Limita la dimensione massima di un file creato da cvs. Notare che il " "processo cvs pserver deve poter creare file di lock e probabilmente scrivere " "file di cronologia e altri file, perciò non impostare questo valore a 0 " "(zero)." #. Type: string #. Description #: ../templates:12001 msgid "Maximum amount of locked memory:" msgstr "Quantità massima di memoria bloccata:" #. Type: string #. Description #: ../templates:12001 msgid "" "This limits the amount of memory the cvs process may lock. cvs probably " "doesn't need to lock any memory at all." msgstr "" "Limita la quantità di memoria che il processo cvs può bloccare. cvs " "probabilmente non ha bisogno di bloccare affatto della memoria." #. Type: string #. Description #: ../templates:13001 msgid "Maximum number of open files:" msgstr "Numero massimo di file aperti:" #. Type: string #. Description #: ../templates:13001 msgid "" "This limits the number of files and connections that the cvs process can " "have open at a single moment. The cvs process needs to access quite a few " "files so don't set this too low." msgstr "" "Limita il numero di file e di connessioni che il processo cvs può avere " "aperti in un dato momento. Il processo cvs deve accedere a svariati file " "perciò non impostare un valore troppo basso." #. Type: string #. Description #: ../templates:14001 msgid "Maximum number of processes:" msgstr "Numero massimo di processi:" #. Type: string #. Description #: ../templates:14001 msgid "" "This limits the maximum number of processes that a single user may have. cvs " "may need to spawn additional processes to run scripts or do subtasks so " "don't set this too low." msgstr "" "Limita il numero massimo di processi che un singolo utente può avere. cvs " "può aver bisogno di generare processi aggiuntivi per eseguire script o " "sotto-compiti, perciò non impostare un valore troppo basso." #. Type: string #. Description #: ../templates:15001 msgid "Maximum size of resident memory:" msgstr "Dimensione massima della memoria residente:" #. Type: string #. Description #: ../templates:15001 msgid "This specifies the amount of physical memory a process may have." msgstr "Specifica la quantità di memoria fisica che un processo può avere." #. Type: string #. Description #: ../templates:16001 msgid "Maximum stack size:" msgstr "Dimensione massima dello stack:" #. Type: string #. Description #: ../templates:16001 msgid "This limits the size of the stack." msgstr "Limita la dimensione dello stack." #. Type: string #. Description #: ../templates:17001 msgid "Maximum amount of virtual memory allocated:" msgstr "Quantità massima di memoria virtuale allocata:" #. Type: string #. Description #: ../templates:17001 msgid "" "This limits the total amount of virtual memory a process may have allocated." msgstr "" "Limita la quantità totale di memoria virtuale che può essere allocata per un " "processo." #. Type: string #. Description #: ../templates:18001 msgid "Maximum number of threads:" msgstr "Numero massimo di thread:" #. Type: string #. Description #: ../templates:18001 msgid "This limits the number of threads that a single process may have." msgstr "Limita il numero di thread che un singolo processo può avere." #. Type: string #. Description #: ../templates:18001 msgid "" "This is not available under Linux so it is not in the list for cvsd/limits. " "If Hurd has it it may be useful." msgstr "" "Non è disponibile in Linux perciò non è nell'elenco per i limiti di cvsd. Se " "esiste in Hurd, potrebbe essere utile." #. Type: boolean #. Description #: ../templates:19001 msgid "Remove chroot jail containing repositories?" msgstr "Rimuovere la gabbia chroot contenente repository?" #. Type: boolean #. Description #: ../templates:19001 msgid "" "The following directory is configured as a chroot jail for cvsd:\n" " ${rootjail}\n" "You may choose to remove the chroot jail but you will also lose all the " "repositories inside the chroot jail. If you have not backed up your " "repositories you want to keep do not remove it now and manually remove it " "later once your repositories are safe." msgstr "" "La directory seguente è configurata come gabbia chroot per cvsd:\n" " ${rootjail}\n" "Si può scegliere di rimuovere la gabbia chroot, ma andranno persi anche " "tutti i repository all'interno della gabbia chroot. Se non è stato fatto un " "backup di tutti i repository è bene non rimuoverla adesso e farlo " "manualmente in seguito quando tutti i repository sono al sicuro." #. Type: boolean #. Description #: ../templates:19001 msgid "" "If you do choose to remove the chroot directory, all directories under it " "will be removed, even if they are on another file system." msgstr "" "Se si sceglie di rimuovere la directory chroot, tutte le directory che essa " "contiene saranno rimosse, anche se sono su un altro file system." #. Type: boolean #. Description #: ../templates:19001 msgid "" "If you choose to keep the chroot jail please note that the cvsd user and " "group will be removed so uid and gid file information may no longer be " "consistent." msgstr "" "Se si sceglie di mantenere la gabbia chroot notare che l'utente e il gruppo " "cvsd saranno rimossi perciò le informazioni su uid e gid dei file potrebbero " "non essere più coerenti." cvsd-1.0.24/debian/po/ja.po0000644000000000000000000004016011431736066012225 0ustar # # Translators, if you are not familiar with the PO format, gettext # documentation is worth reading, especially sections dedicated to # this format, e.g. by running: # info -n '(gettext)PO Files' # info -n '(gettext)Header Entry' # # Some information specific to po-debconf are available at # /usr/share/doc/po-debconf/README-trans # or http://www.debian.org/intl/l10n/po-debconf/README-trans # # Developers do not need to manually edit POT or PO files. # # msgid "" msgstr "" "Project-Id-Version: cvsd 1.0.8\n" "Report-Msgid-Bugs-To: Arthur de Jong \n" "POT-Creation-Date: 2007-07-21 14:26+0200\n" "PO-Revision-Date: 2004-12-05 23:51+0100\n" "Last-Translator: Hideki Yamane \n" "Language-Team: Japanese \n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=EUC-JP\n" "Content-Transfer-Encoding: 8bit\n" #. Type: string #. Description #: ../templates:1001 msgid "Location of chroot jail:" msgstr "chroot jail ¤Î°ÌÃÖ:" #. Type: string #. Description #: ../templates:1001 msgid "" "cvsd can run in a chroot jail. This is the preferred method of operation. " "Specify the location of the chroot jail. If you make this 'none' no chroot " "jail will be created and used. A chroot file hierarchy will be created in " "the specified location." msgstr "" "cvsd ¤Ï chroot jail Æâ¤Ç¼Â¹Ô¤Ç¤­¤Þ¤¹¡£¤³¤ì¤Ï¡¢±¿ÍÑÊýË¡¤Ë°Í¸¤·¤Þ¤¹¡£chroot " "jail ¤Î°ÌÃÖ¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡£¤³¤³¤Ç 'none' ¤ò»ØÄꤷ¤¿¾ì¹ç¡¢chroot jail ¤Ïºî" "À®¡¦»ÈÍѤµ¤ì¤Þ¤»¤ó¡£chroot ¤Ç¤Î¥Õ¥¡¥¤¥ëÇÛÃÖ¤¬»ØÄꤵ¤ì¤¿°ÌÃ֤˺îÀ®¤µ¤ì¤Þ¤¹¡£" #. Type: string #. Description #: ../templates:2001 msgid "The maximum number of connections that can be handled:" msgstr "¼è°·¤¤¤Ç¤­¤ëºÇÂ祳¥Í¥¯¥·¥ç¥ó¿ô:" #. Type: string #. Description #: ../templates:2001 msgid "" "It is possible to specify a maximum number of connections that cvsd can " "handle simultaneously. Specifying 0 (zero) will put no limit to the number " "of connections." msgstr "" "Ʊ»þ¤Ë¼è¤ê°·¤¦¤³¤È¤Î½ÐÍè¤ëºÇÂ祳¥Í¥¯¥·¥ç¥ó¿ô¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£0 ¤ò»ØÄꤹ¤ë¤È¥³" "¥Í¥¯¥·¥ç¥ó¿ô¤Ë¤ÏÀ©¸Â¤¬¤«¤«¤é¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£" #. Type: string #. Description #: ../templates:3001 msgid "Nice value cvsd should run at:" msgstr "cvsd ¤òưºî¤µ¤»¤ëºÝ¤Î nice ÃÍ:" #. Type: string #. Description #: ../templates:3001 msgid "" "cvsd can be run at reduced priority so it will not take up too many " "resources, especially if a user specifies a -z option to cvs. The priority " "can also be increased (negative value here)." msgstr "" "Í¥ÀèÅÙ¤òÍî¤È¤·¤ÆÆ°ºî¤µ¤»¤ë¤³¤È¤¬²Äǽ¤Ç¡¢ÆÃ¤Ë¥æ¡¼¥¶¤¬ cvs ¤Ë -z ¥ª¥×¥·¥ç¥ó¤ò»Ø" "Äꤷ¤¿¾ì¹ç¡¢ÂçÎ̤Υ꥽¡¼¥¹¤ò¾ÃÈñ¤µ¤»¤Ê¤¤¤è¤¦¤Ë¤Ç¤­¤Þ¤¹¡£Í¥ÀèÅ٤Ͼ夲¤ë¤³¤È¤â" "²Äǽ¤Ç¤¹ (Éé¤ÎÃͤòÆþ¤ì¤Æ¤¯¤À¤µ¤¤)¡£" #. Type: string #. Description #: ../templates:4001 msgid "Umask cvsd should run at:" msgstr "cvsd ¤¬Æ°ºî¤¹¤ëºÝ¤Î mask ÃÍ:" #. Type: string #. Description #: ../templates:4001 msgid "Specify the umask cvsd and cvs should use when creating files." msgstr "cvsd ¤È cvs ¤¬¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ëºÝ¤Î umask Ãͤò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡£" #. Type: string #. Description #: ../templates:4001 msgid "" "The umask should be specified as an octal value and represents the " "permissions that should be taken away when creating a file (e.g. using 027 " "will create files with mode 640 or rw-r-----)." msgstr "" "umask ¤Ï¥ª¥¯¥Æ¥Ã¥ÈÃͤǻØÄꤵ¤ì¤ëɬÍפ¬¤¢¤ê¡¢¥Õ¥¡¥¤¥ë¤¬ºîÀ®¤µ¤ì¤ëºÝ¤Ë°ú¤«¤ì¤ë" "¸¢¸Â¤òɽ¤·¤Þ¤¹ (Îã: 027 ¤È»ØÄꤹ¤ë¤È¥Õ¥¡¥¤¥ë¤Ï¥â¡¼¥É 640¡¢¤Ä¤Þ¤ê rw-r----- ¤Ç" "ºîÀ®¤µ¤ì¤Þ¤¹)¡£" #. Type: string #. Description #: ../templates:5001 msgid "Address and port on which cvsd will listen:" msgstr "cvsd ¤¬»ÈÍѤ¹¤ëIP ¥¢¥É¥ì¥¹¤È¥Ý¡¼¥ÈÈÖ¹æ:" #. Type: string #. Description #: ../templates:5001 msgid "" "With the first argument you can specify the address cvsd should listen on. " "The '*' address specifies that cvsd should listen on all addresses. You can " "specify a IPv4 address, IPv6 address, a hostname or '*'." msgstr "" "ºÇ½é¤Î¹àÌÜ¤Ç¤Ï cvsd ¤¬»ÈÍѤ¹¤ë¥¢¥É¥ì¥¹¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£'*' ¤È»ØÄꤹ¤ë¤È cvsd " "¤ÏÁ´¤Æ¤Î¥¢¥É¥ì¥¹¤Ç listen ¤·¤Þ¤¹¡£¥¢¥É¥ì¥¹¤Ï IPv4, IPv6, ¥Û¥¹¥È̾, '*' ¤ò»È¤Ã" "¤Æ»ØÄê²Äǽ¤Ç¤¹¡£" #. Type: string #. Description #: ../templates:5001 msgid "" "The second argument is the service name (e.g. cvspserver) or port number " "(default 2401) cvsd will listen on." msgstr "" "¼¡¤Î¹àÌÜ¤Ï cvsd ¤¬ listen ¤¹¤ë¥µ¡¼¥Ó¥¹Ì¾ (Îã: cvspserver) ¤Þ¤¿¤Ï ¥Ý¡¼¥ÈÈÖ¹æ " "(¥Ç¥Õ¥©¥ë¥ÈÃÍ¤Ï 2401) ¤Ç¤¹¡£" #. Type: string #. Description #: ../templates:5001 msgid "" "The address and port should be separated by a space and you can specify " "multiple address-port combinations by separating them with spaces." msgstr "" "IP ¥¢¥É¥ì¥¹¤È¥Ý¡¼¥ÈÈÖ¹æ¤Ï¶õÇò¤Ç¶èÀÚ¤é¤ì¤Þ¤¹¡£Ê£¿ô¤Î IP ¥¢¥É¥ì¥¹¤È¥Ý¡¼¥ÈÈÖ¹æ¤Î" "ÁȤ߹ç¤ï¤»¤ò¶õÇò¤Ç¶èÀڤ뤳¤È¤Ç»ØÄê²Äǽ¤Ç¤¹¡£" #. Type: string #. Description #: ../templates:6001 msgid "Repositories to serve:" msgstr "Ä󶡤µ¤ì¤ë¥ê¥Ý¥¸¥È¥ê:" #. Type: string #. Description #: ../templates:6001 msgid "" "The whole idea of cvsd is to serve repositories. Specify a colon ':' " "separated list of repositories to serve. The location of these repositories " "is relative to the specified chroot jail (${rootjail}) and should start with " "a '/'." msgstr "" "cvsd ¤¬°Õ¿Þ¤¹¤ë½ê¤Ï¥ê¥Ý¥¸¥È¥ê¤ÎÄ󶡤Ǥ¹¡£Ä󶡤¹¤ë¥ê¥Ý¥¸¥È¥ê¤Î¥ê¥¹¥È¤ò¥³¥í¥ó " "':' ¤Ç¶èÀڤäƻØÄꤷ¤Æ¤¯¤À¤µ¤¤¡£¤³¤ì¤é¤Î¥ê¥Ý¥¸¥È¥ê¤Î°ÌÃÖ¤Ï chroot jail ¤Î»Ø" "Äê (${rootjail}) ¤Ë´ØÏ¢¤·¡¢'/' ¤Ç»Ï¤á¤ëɬÍפ¬¤¢¤ê¤Þ¤¹" #. Type: string #. Description #: ../templates:6001 msgid "" "The repositories here should be initialized by hand with something like 'cvs " "-d ${rootjail}/myrepos init' after which passwords can be set with 'cvsd-" "passwd ${rootjail}/myrepos anonymous'. See the file /usr/share/doc/cvsd/" "README.gz for details on creating repositories." msgstr "" "¤³¤³¤Ç¤Î¥ê¥Ý¥¸¥È¥ê¤Ï¡¢'cvsd-passwd ${rootjail}/myrepos anonymous' ¤È¤·¤Æ¥Ñ¥¹" "¥ï¡¼¥É¤òÀßÄꤷ¤¿¸å¤Ë 'cvs -d ${rootjail}/myrepos init' ¤Î¤è¤¦¤Ë¼êư¤Ç½é´ü²½¤µ" "¤ì¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¥ê¥Ý¥¸¥È¥êºîÀ®¤Ë¤Ä¤¤¤Æ¤Î¾ÜºÙ¤Ï /usr/share/doc/cvsd/" "README.gz ¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£" #. Type: multiselect #. Choices #: ../templates:7001 msgid "coredumpsize" msgstr "¥³¥¢¥À¥ó¥×¤Î¥µ¥¤¥º" #. Type: multiselect #. Choices #: ../templates:7001 msgid "cputime" msgstr "cputime" #. Type: multiselect #. Choices #: ../templates:7001 msgid "datasize" msgstr "¥Ç¡¼¥¿¥µ¥¤¥º" #. Type: multiselect #. Choices #: ../templates:7001 msgid "filesize" msgstr "¥Õ¥¡¥¤¥ë¥µ¥¤¥º" #. Type: multiselect #. Choices #: ../templates:7001 msgid "memorylocked" msgstr "ͽÌó¥á¥â¥ê" #. Type: multiselect #. Choices #: ../templates:7001 msgid "openfiles" msgstr "¥ª¡¼¥×¥ó¤¹¤ë¥Õ¥¡¥¤¥ë¿ô" #. Type: multiselect #. Choices #: ../templates:7001 msgid "maxproc" msgstr "ºÇÂç¥×¥í¥»¥¹¿ô" #. Type: multiselect #. Choices #: ../templates:7001 msgid "memoryuse" msgstr "ÍøÍÑ¥á¥â¥ê" #. Type: multiselect #. Choices #: ../templates:7001 msgid "stacksize" msgstr "¥¹¥¿¥Ã¥¯¥µ¥¤¥º:" #. Type: multiselect #. Choices #: ../templates:7001 msgid "virtmem" msgstr "²¾ÁÛ¥á¥â¥ê" #. Type: multiselect #. Description #: ../templates:7002 msgid "Resources of pserver processes to limit:" msgstr "pserver ¥×¥í¥»¥¹¤¬À©¸Â¤ò¼õ¤±¤ë¥ê¥½¡¼¥¹¤òÁªÂò¤·¤Æ¤¯¤À¤µ¤¤:" #. Type: multiselect #. Description #: ../templates:7002 msgid "" "The pserver wrapper can be configured to limit the resource usage that a " "pserver process can have. These resource limits will be set on each pserver " "process and not on the wrapper." msgstr "" "pserver ¥×¥í¥»¥¹¤¬ÍøÍѤ¹¤ë¥ê¥½¡¼¥¹¤ÎÎ̤òÀ©¸Â¤¹¤ë¤è¤¦¤Ë pserver ¥é¥Ã¥Ñ¡¼¤òÀßÄê" "¤Ç¤­¤Þ¤¹¡£¤³¤ì¤é¤Î¥ê¥½¡¼¥¹¤ËÂФ¹¤ëÀ©¸Â¤Ï pserver ¤Î¸Ä¡¹¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æ¤Ç" "¤¢¤Ã¤Æ¡¢¥é¥Ã¥Ñ¡¼¤ËÂФ·¤Æ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£" #. Type: multiselect #. Description #: ../templates:7002 msgid "" "Choose from the list the resources that you want to limit. You will be asked " "to specify limits about every resource you selected here." msgstr "" "À©¸Â¤·¤¿¤¤¥ê¥½¡¼¥¹¤ò¥ê¥¹¥È¤«¤éÁª¤ó¤Ç¤¯¤À¤µ¤¤¡£¤³¤³¤ÇÁªÂò¤·¤¿¥ê¥½¡¼¥¹Á´¤Æ¤Ë¤Ä" "¤¤¤Æ¤É¤Î¤è¤¦¤ËÀ©¸Â¤ò¤¹¤ë¤Î¤«¤ò¼ÁÌ䤵¤ì¤Þ¤¹¡£" #. Type: multiselect #. Description #: ../templates:7002 msgid "" "Note that not all resources may be available on all systems and that " "resources may be system and kernel specific so use these with caution. The " "results of exceeding the set limits may also be system specific but will " "most likely stop the cvs process and close the connection (may be " "problematic with write access to cvs repository)." msgstr "" "Á´¤Æ¤Î¥ê¥½¡¼¥¹¤¬¤¢¤é¤æ¤ë¥·¥¹¥Æ¥à¤ÇÍøÍѲÄǽ¤Ç¤Ï¤Ê¤¤¤³¤È¡¢¥ê¥½¡¼¥¹¤Ï¥·¥¹¥Æ¥à¤È" "¥«¡¼¥Í¥ë¤Ëº¸±¦¤µ¤ì¤ë¤â¤Î¤À¤È¤¤¤¦¤³¤È¤òÍý²ò¤·¡¢Ãí°Õ¤·¤ÆÀßÄꤷ¤Æ¤¯¤À¤µ¤¤¡£ÀßÄê" "¤·¤¿À©¸Â¤òĶ²á¤·¤¿·ë²Ì¤â¥·¥¹¥Æ¥à¤Ëº¸±¦¤µ¤ì¤Þ¤¹¤¬¡¢¤Û¤È¤ó¤É¤Î¾ì¹ç¤Ï cvs ¤Î¥×¥í" "¥»¥¹¤ò»ß¤á¤ÆÀܳ¤¬ÀÚÃǤµ¤ì¤Þ¤¹ (cvs ¥ê¥Ý¥¸¥È¥ê¤Ø¤Î½ñ¤­¹þ¤ßưºî¤¬ÌäÂê¤Ë¤Ê¤ë¤«" "¤â¤·¤ì¤Þ¤»¤ó)¡£" #. Type: string #. Description #: ../templates:8001 msgid "Maximum file size of a core dump:" msgstr "core dump »þ¤ÎºÇÂç¥Õ¥¡¥¤¥ë¥µ¥¤¥º:" #. Type: string #. Description #: ../templates:8001 msgid "" "Set this to 0 (zero) (should be the system default) to prevent core dumps. " "Otherwise this limits the size of core dumps to the specified value." msgstr "" "¤³¤ÎÃͤò 0 (¥·¥¹¥Æ¥àɸ½à) ¤ËÀßÄꤹ¤ë¤È core dump ¤òÅǤ­½Ð¤·¤Þ¤»¤ó¡£¤½¤ì°Ê³°¤Î" "¾ì¹ç¤Ï¤³¤³¤Ç core dump ¤ò»ØÄꤷ¤¿ÃͤÇÀ©¸Â¤·¤Þ¤¹¡£" #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #: ../templates:8001 ../templates:10001 ../templates:11001 ../templates:12001 #: ../templates:15001 ../templates:16001 ../templates:17001 msgid "" "This value may be specified with a suffix of 'b' (bytes), 'k' (1024 bytes) " "or 'm' (1024*1024 bytes), where 'k' is the default." msgstr "" "¤³¤ÎÃÍ¤Ï 'b' (bytes)¡¢'k' (1024 bytes)¡¢ 'm' (1024*1024 bytes) ¤Î¤¤¤º¤ì¤«¤ò¸ì" "Èø¤ËÉÕ¤±¤ÆÉ½¤µ¤ì¡¢'k' ¤¬¥Ç¥Õ¥©¥ë¥È¤Ç¤¹¡£ " #. Type: string #. Description #: ../templates:9001 msgid "Maximum amount of cpu time consumed:" msgstr "cpu time ¤ÎºÇÂç¾ÃÈñÎÌ:" #. Type: string #. Description #: ../templates:9001 msgid "" "This limits the number of cpu seconds the cvs process can use. This will " "prevent too much cpu time from being allocated to a single connection." msgstr "" "¤³¤ì¤Ï¡¢cvs ¤Î¥×¥í¥»¥¹¤¬»È¤¨¤ë cputime¤ÎÎ̤òÀ©¸Â¤·¤Þ¤¹¡£¤³¤ì¤Ë¤è¤ê cputime " "¤¬ 1 ¤Ä¤ÎÀܳ¤ËÂФ·¤ÆÂçÎ̤˳ä¤êÅö¤Æ¤é¤ì²á¤®¤ë¤Î¤òËɤ®¤Þ¤¹¡£" #. Type: string #. Description #: ../templates:9001 msgid "" "This value can be formatted as 'mm:ss' or have a 'm' or 's' suffix where 's' " "is default." msgstr "" "¤³¤ÎÃÍ¤Ï 'mm:ss' ¤È¤¤¤¦·Á¼°¡¢¤Þ¤¿¤Ï 'm' ¤« 's' ¤ò¸ìÈø¤ËÉÕ¤±¡¢'s' ¤¬ÉÕ¤¯¤Î¤¬¥Ç" "¥Õ¥©¥ë¥È¤Î·Á¼°¤Çɽ¸½¤Ç¤­¤Þ¤¹¡£" #. Type: string #. Description #: ../templates:10001 msgid "Maximum size of program's data segment:" msgstr "¥×¥í¥°¥é¥à¤Î¥Ç¡¼¥¿¥»¥°¥á¥ó¥È¤ÎºÇÂ祵¥¤¥º:" #. Type: string #. Description #: ../templates:10001 msgid "" "This limits the amount of memory the cvs program can use. This specific item " "limits the size of the data segment." msgstr "" "¤³¤ì¤Ï¡¢cvs ¥×¥í¥°¥é¥à¤¬»È¤¨¤ë¥á¥â¥êÎ̤òÀ©¸Â¤·¤Þ¤¹¡£¤³¤ì¤Ç¥Ç¡¼¥¿¥»¥°¥á¥ó¥È¤Î" "¥µ¥¤¥º¤òÀ©¸Â¤¹¤ë¹àÌܤò»ØÄꤷ¤Þ¤¹¡£" #. Type: string #. Description #: ../templates:11001 msgid "Maximum size of files created:" msgstr "ºîÀ®¥Õ¥¡¥¤¥ë¤ÎºÇÂ祵¥¤¥º:" #. Type: string #. Description #: ../templates:11001 msgid "" "This limits the maximum size of a file created by cvs. Note that the cvs " "pserver process needs to be able to create lock files and possibly write " "history or other files so don't set this to 0 (zero)." msgstr "" "¤³¤ì¤Ï¡¢cvs ¤Ë¤è¤Ã¤ÆºîÀ®¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤ÎºÇÂ祵¥¤¥º¤òÀ©¸Â¤·¤Þ¤¹¡£cvs pserver " "¥×¥í¥»¥¹¤Ï¥í¥Ã¥¯¥Õ¥¡¥¤¥ë¤òºî¤ê¡¢ÍúÎò¤ä¤½¤Î¾¤Î¥Õ¥¡¥¤¥ë¤ò½ñ¤­¹þ¤á¤ëɬÍפ¬¤¢¤ë" "¤Î¤Ç¡¢¤³¤ì¤ò 0 ¤Ë¤ÏÀßÄꤷ¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡£" #. Type: string #. Description #: ../templates:12001 msgid "Maximum amount of locked memory:" msgstr "ͽÌó¥á¥â¥ê¤ÎºÇÂçÎÌ:" #. Type: string #. Description #: ../templates:12001 msgid "" "This limits the amount of memory the cvs process may lock. cvs probably " "doesn't need to lock any memory at all." msgstr "" "¤³¤ì¤Ï¡¢cvs ¤Î¥×¥í¥»¥¹¤¬Í½Ì󤹤ë¥á¥â¥êÎ̤òÀ©¸Â¤·¤Þ¤¹¡£¤ª¤½¤é¤¯ cvs ¤ÏͽÌó¥á¥â" "¥ê¤òÁ´¤¯É¬ÍפȤϤ·¤Þ¤»¤ó¡£" #. Type: string #. Description #: ../templates:13001 msgid "Maximum number of open files:" msgstr "¥ª¡¼¥×¥ó¤¹¤ë¥Õ¥¡¥¤¥ë¤ÎºÇÂç¿ô:" #. Type: string #. Description #: ../templates:13001 msgid "" "This limits the number of files and connections that the cvs process can " "have open at a single moment. The cvs process needs to access quite a few " "files so don't set this too low." msgstr "" "¤³¤ì¤Ï¡¢cvs ¤Î¥×¥í¥»¥¹¤¬ 1 ²ó¤Ë¥ª¡¼¥×¥ó¤Ç¤­¤ë¥Õ¥¡¥¤¥ë¿ô¤ÈÀܳ¿ô¤òÀ©¸Â¤·¤Þ¤¹¡£" "cvs ¤Î¥×¥í¥»¥¹¤Ï¡¢¶Ë¤á¤ÆÂ¿¤¯¤Î¥Õ¥¡¥¤¥ë¤Ë¥¢¥¯¥»¥¹¤¹¤ëɬÍפ¬¤¢¤ë¤Î¤Ç¡¢¤¢¤Þ¤ê¾®" "¤µ¤ÊÃͤËÀßÄꤷ¤Ê¤¤¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£" #. Type: string #. Description #: ../templates:14001 msgid "Maximum number of processes:" msgstr "ºÇÂç¥×¥í¥»¥¹¿ô:" #. Type: string #. Description #: ../templates:14001 msgid "" "This limits the maximum number of processes that a single user may have. cvs " "may need to spawn additional processes to run scripts or do subtasks so " "don't set this too low." msgstr "" "¤³¤ì¤Ï¡¢1 ¿Í¤Î¥æ¡¼¥¶¤¬ÊÝ»ý¤¹¤ë¥×¥í¥»¥¹¤ÎºÇÂç¿ô¤òÀ©¸Â¤·¤Þ¤¹¡£cvs ¤Ï¡¢¥¹¥¯¥ê¥×" "¥È¤ä¥µ¥Ö¥¿¥¹¥¯¤ò¼Â¹Ô¤¹¤ëºÝ¤ËÄÉ²Ã¤Î¥×¥í¥»¥¹¤òµ¯Æ°¤¹¤ëɬÍפ¬¤¢¤ë¤Î¤Ç¡¢¤¢¤Þ¤êÄã" "¤¯ÀßÄꤷ¤Ê¤¤¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£" #. Type: string #. Description #: ../templates:15001 msgid "Maximum size of resident memory:" msgstr "Æâ¢¥á¥â¥ê¤ÎºÇÂ祵¥¤¥º:" #. Type: string #. Description #: ../templates:15001 msgid "This specifies the amount of physical memory a process may have." msgstr "¥×¥í¥»¥¹¤¢¤¿¤ê¤ÎʪÍý¥á¥â¥êÎ̤ò»ØÄꤷ¤Þ¤¹¡£" #. Type: string #. Description #: ../templates:16001 msgid "Maximum stack size:" msgstr "ºÇÂ祹¥¿¥Ã¥¯¥µ¥¤¥º:" #. Type: string #. Description #: ../templates:16001 msgid "This limits the size of the stack." msgstr "¤³¤ì¤Ï¥¹¥¿¥Ã¥¯¥µ¥¤¥º¤òÀ©¸Â¤·¤Þ¤¹¡£" #. Type: string #. Description #: ../templates:17001 msgid "Maximum amount of virtual memory allocated:" msgstr "²¾ÁÛ¥á¥â¥ê¤ÎºÇÂç³äÅöÎÌ:" #. Type: string #. Description #: ../templates:17001 msgid "" "This limits the total amount of virtual memory a process may have allocated." msgstr "¤³¤ì¤Ï¡¢¥×¥í¥»¥¹¤¬³ä¤êÅö¤Æ¤é¤ì¤ë²¾ÁÛ¥á¥â¥ê¤ÎÁí·×¤òÀ©¸Â¤·¤Þ¤¹¡£" #. Type: string #. Description #: ../templates:18001 msgid "Maximum number of threads:" msgstr "ºÇÂ祹¥ì¥Ã¥É¿ô:" #. Type: string #. Description #: ../templates:18001 msgid "This limits the number of threads that a single process may have." msgstr "¤³¤ì¤Ï 1 ¥×¥í¥»¥Ã¥µ¤¢¤¿¤ê¤Î¥¹¥ì¥Ã¥É¿ô¤òÀ©¸Â¤·¤Þ¤¹¡£" #. Type: string #. Description #: ../templates:18001 msgid "" "This is not available under Linux so it is not in the list for cvsd/limits. " "If Hurd has it it may be useful." msgstr "" "¤³¤Î¿ô¤Ï Linux ¾å¤Ç¤ÏÍ­¸ú¤Ë¤Ê¤é¤Ê¤¤¤Î¤Ç¡¢cvsd/limits ¤Î¥ê¥¹¥È¾å¤Ë¤Ï¤¢¤ê¤Þ¤»" "¤ó¡£Hurd ¤ò»È¤Ã¤Æ¤ë¤È¤¤¤¦¾ì¹ç¤ÏÍ­ÍѤǤ¹¡£" #. Type: boolean #. Description #: ../templates:19001 msgid "Remove chroot jail containing repositories?" msgstr "¥ê¥Ý¥¸¥È¥ê¤ò´Þ¤ó¤Ç¤¤¤ë chroot jail ¤òºï½ü¤·¤Þ¤¹¤«?" #. Type: boolean #. Description #: ../templates:19001 msgid "" "The following directory is configured as a chroot jail for cvsd:\n" " ${rootjail}\n" "You may choose to remove the chroot jail but you will also lose all the " "repositories inside the chroot jail. If you have not backed up your " "repositories you want to keep do not remove it now and manually remove it " "later once your repositories are safe." msgstr "" "°Ê²¼¤Î¥Ç¥£¥ì¥¯¥È¥ê¤¬ cvsd ¤Î chroot jail ¤È¤·¤ÆÀßÄꤵ¤ì¤Æ¤¤¤Þ¤¹:\n" " ${rootjail}\n" "chroot jail ¤òºï½ü¤¹¤ë¤Î¤òÁª¤ó¤À¤Î¤«¤â¤·¤ì¤Þ¤»¤ó¤¬¡¢chroot jail Æâ¤Î¤¹¤Ù¤Æ¤Î" "¥ê¥Ý¥¸¥È¥ê¤â¼º¤¦¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ÊÝ»ý¤·¤Æ¤ª¤­¤¿¤¤¥ê¥Ý¥¸¥È¥ê¤ò¥Ð¥Ã¥¯¥¢¥Ã¥×¤·¤Æ" "¤¤¤Ê¤«¤Ã¤¿¾ì¹ç¡¢¤³¤³¤Çºï½ü¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢¸å¤Û¤É°ìö¥ê¥Ý¥¸¥È¥ê¤ò°ÂÁ´¤Ê¾õÂÖ¤Ë" "¤·¤¿¾å¤Ç¼êư¤Çºï½ü¤·¤Æ¤¯¤À¤µ¤¤¡£" #. Type: boolean #. Description #: ../templates:19001 msgid "" "If you do choose to remove the chroot directory, all directories under it " "will be removed, even if they are on another file system." msgstr "" "chroot ¥Ç¥£¥ì¥¯¥È¥ê¤òºï½ü¤¹¤ë¤Î¤òÁª¤ó¤À¾ì¹ç¡¢¤½¤Î²¼¤Ë¤¢¤ëÁ´¤Æ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ï" "¾¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Ë¤¢¤Ã¤¿¤È¤·¤Æ¤âºï½ü¤µ¤ì¤Þ¤¹¡£" #. Type: boolean #. Description #: ../templates:19001 msgid "" "If you choose to keep the chroot jail please note that the cvsd user and " "group will be removed so uid and gid file information may no longer be " "consistent." msgstr "" "chroot jail ¤ò»Ä¤·¤Æ¤ª¤¯¤Î¤òÁª¤ó¤À¾ì¹ç¡¢cvsd ¥æ¡¼¥¶¡¦¥°¥ë¡¼¥×¤¬ºï½ü¤µ¤ì¤ë¤Î¤Ç" "¥Õ¥¡¥¤¥ë¤Î uid ¤È gid ¾ðÊó¤¬Í­¸ú¤Ç¤Ï¤Ê¤¯¤Ê¤ë¤Î¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£" cvsd-1.0.24/debian/po/POTFILES.in0000644000000000000000000000004407670437064013053 0ustar [type: gettext/rfc822deb] templates cvsd-1.0.24/debian/po/sv.po0000644000000000000000000004057211431736066012272 0ustar # translation of cvsd.po to swedish # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Martin Bagge , 2008. msgid "" msgstr "" "Project-Id-Version: cvsd 1.0.14\n" "Report-Msgid-Bugs-To: Arthur de Jong \n" "POT-Creation-Date: 2007-07-21 14:26+0200\n" "PO-Revision-Date: 2008-12-11 09:50+0100\n" "Last-Translator: Martin Bagge \n" "Language-Team: swedish \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" #. Type: string #. Description #: ../templates:1001 msgid "Location of chroot jail:" msgstr "Plats för chroot-jail:" #. Type: string #. Description #: ../templates:1001 msgid "" "cvsd can run in a chroot jail. This is the preferred method of operation. " "Specify the location of the chroot jail. If you make this 'none' no chroot " "jail will be created and used. A chroot file hierarchy will be created in " "the specified location." msgstr "" "cvsd kan köras i ett chroot-jail, detta är dessutom den rekomenderade " "metoden. Specificera platsen för chroot-jail:et. Om du anger 'none' kommer " "inget chroot-jail att skapas eller användas. I övriga fall skapas en " "filhieraki pÃ¥ den angivna platsen." #. Type: string #. Description #: ../templates:2001 msgid "The maximum number of connections that can be handled:" msgstr "Maximalt antal anslutningar som kan hanteras:" #. Type: string #. Description #: ../templates:2001 msgid "" "It is possible to specify a maximum number of connections that cvsd can " "handle simultaneously. Specifying 0 (zero) will put no limit to the number " "of connections." msgstr "" "Det är möjligt att begränsa det maximala antalet anslutningar som cvsd kan " "hantera samtidigt. Genom att ange 0 (noll) avaktiveras taket och oändligt " "mÃ¥nga anslutningar tillÃ¥ts." #. Type: string #. Description #: ../templates:3001 msgid "Nice value cvsd should run at:" msgstr "Nice-värde som cvsd ska köras med:" #. Type: string #. Description #: ../templates:3001 msgid "" "cvsd can be run at reduced priority so it will not take up too many " "resources, especially if a user specifies a -z option to cvs. The priority " "can also be increased (negative value here)." msgstr "" "cvsd kan köras med reducerad prioritet för att inte ta upp för mycket " "resurser, framförallt om en användare utför operation med -z som växel. " "Prioriteringen kan ocksÃ¥ ökas (genom att ange ett negativt värde)." #. Type: string #. Description #: ../templates:4001 msgid "Umask cvsd should run at:" msgstr "Umask som cvsd ska köra med:" #. Type: string #. Description #: ../templates:4001 msgid "Specify the umask cvsd and cvs should use when creating files." msgstr "Ange umasken som cvsd och cvs ska använda när filer skapas." #. Type: string #. Description #: ../templates:4001 msgid "" "The umask should be specified as an octal value and represents the " "permissions that should be taken away when creating a file (e.g. using 027 " "will create files with mode 640 or rw-r-----)." msgstr "" "Umask ska anges som ett oktalt värde som representerar de rättigheter som " "ska tas bort när filer skapas (ex. används 027 för att skapa filer med " "rättigheten 640, rw-r-----)." #. Type: string #. Description #: ../templates:5001 msgid "Address and port on which cvsd will listen:" msgstr "Adress och port som cvsd ska lyssna pÃ¥:" #. Type: string #. Description #: ../templates:5001 msgid "" "With the first argument you can specify the address cvsd should listen on. " "The '*' address specifies that cvsd should listen on all addresses. You can " "specify a IPv4 address, IPv6 address, a hostname or '*'." msgstr "" "Den första delen av alternativet anger adressen som cvsd ska lyssna pÃ¥. " "Används '*' lyssnar cvsd pÃ¥ alla adresser. Här kan IPv4, IPv6, värdnamn " "eller '*' anges." #. Type: string #. Description #: ../templates:5001 msgid "" "The second argument is the service name (e.g. cvspserver) or port number " "(default 2401) cvsd will listen on." msgstr "" "Den andra delen av alternativet anger tjänstenamnet (ex. cvspserver) eller " "portnummer (2401 är standardvärdet) som cvsd ska lyssna pÃ¥." #. Type: string #. Description #: ../templates:5001 msgid "" "The address and port should be separated by a space and you can specify " "multiple address-port combinations by separating them with spaces." msgstr "" "Separera adress och port med mellanslag. Flera kombinationer av adresser och " "portnummer kan anges, separera kombinationerna med mellanslag." #. Type: string #. Description #: ../templates:6001 msgid "Repositories to serve:" msgstr "FörrÃ¥d som ska tillhandahÃ¥llas:" # AlltsÃ¥, förrÃ¥d för repositories är fan sjukt fult! #. Type: string #. Description #: ../templates:6001 msgid "" "The whole idea of cvsd is to serve repositories. Specify a colon ':' " "separated list of repositories to serve. The location of these repositories " "is relative to the specified chroot jail (${rootjail}) and should start with " "a '/'." msgstr "" "Grundfunktionen i cvsd är att tillhandahÃ¥lla förrÃ¥d. Ange en kolonseparerad " "lista med förrÃ¥d som ska tillhandahÃ¥llas. Platsen för dessa förrÃ¥d är " "relativ till ditt chroot-jail (${rootjail}) och ska börja med '/'." #. Type: string #. Description #: ../templates:6001 msgid "" "The repositories here should be initialized by hand with something like 'cvs " "-d ${rootjail}/myrepos init' after which passwords can be set with 'cvsd-" "passwd ${rootjail}/myrepos anonymous'. See the file /usr/share/doc/cvsd/" "README.gz for details on creating repositories." msgstr "" "FörrÃ¥den startas manuellt genom exempelvis 'cvs -d ${rootjail]/myrepos init' " "för att lösenord sedan ska sättas med 'cvsd-passwd ${rootjail}/myrepos " "anonymous'. Läs mer i filen /usr/share/doc/cvsd/README.gz för närmare " "instruktioner om hur förrÃ¥den skapas." #. Type: multiselect #. Choices #: ../templates:7001 msgid "coredumpsize" msgstr "Storlek för kärndumpning" #. Type: multiselect #. Choices #: ../templates:7001 msgid "cputime" msgstr "CPU-tid" #. Type: multiselect #. Choices #: ../templates:7001 msgid "datasize" msgstr "Datastorlek" #. Type: multiselect #. Choices #: ../templates:7001 msgid "filesize" msgstr "Filstorlek" #. Type: multiselect #. Choices #: ../templates:7001 msgid "memorylocked" msgstr "MinneslÃ¥s" #. Type: multiselect #. Choices #: ../templates:7001 msgid "openfiles" msgstr "Öppna filer" #. Type: multiselect #. Choices #: ../templates:7001 msgid "maxproc" msgstr "Maximalt antal processer" #. Type: multiselect #. Choices #: ../templates:7001 msgid "memoryuse" msgstr "Minnesanvändning" #. Type: multiselect #. Choices #: ../templates:7001 msgid "stacksize" msgstr "Stackstorlek" #. Type: multiselect #. Choices #: ../templates:7001 msgid "virtmem" msgstr "Virtuellt minne" #. Type: multiselect #. Description #: ../templates:7002 msgid "Resources of pserver processes to limit:" msgstr "Resurser som ska begränsas för pserver:" #. Type: multiselect #. Description #: ../templates:7002 msgid "" "The pserver wrapper can be configured to limit the resource usage that a " "pserver process can have. These resource limits will be set on each pserver " "process and not on the wrapper." msgstr "" "Pserver kan ställas in att använda en begränsad mängd resurser. Dessa " "resurstak ställs in för varje pserverprocess självt." #. Type: multiselect #. Description #: ../templates:7002 msgid "" "Choose from the list the resources that you want to limit. You will be asked " "to specify limits about every resource you selected here." msgstr "" "Markera de resurser i listan som du vill begränsa. Du kommer att ombes att " "ange begränsningar för varje resurs som väljs här." #. Type: multiselect #. Description #: ../templates:7002 msgid "" "Note that not all resources may be available on all systems and that " "resources may be system and kernel specific so use these with caution. The " "results of exceeding the set limits may also be system specific but will " "most likely stop the cvs process and close the connection (may be " "problematic with write access to cvs repository)." msgstr "" "Kom ihÃ¥g att inte alla resurser finns tillgängliga i alla system och " "dessutom kan vara beroende av kärna eller andra systeminställningar. Använd " "dessa inställningar med stor försiktighet. Vad som inträffar om en " "begränsning uppnÃ¥s beror pÃ¥ systemet men förmodligen kommer CVS-processen " "att stoppas och stänga anslutningen (vilket kan pÃ¥verka skrivning till " "förrÃ¥den)." #. Type: string #. Description #: ../templates:8001 msgid "Maximum file size of a core dump:" msgstr "Maximal storlek för kärndumpning:" #. Type: string #. Description #: ../templates:8001 msgid "" "Set this to 0 (zero) (should be the system default) to prevent core dumps. " "Otherwise this limits the size of core dumps to the specified value." msgstr "" "Ange 0 (noll) (vilket borde vara systemstandard) här för att undvika att " "kärndumpning. I övriga fall begränsar detta storleken pÃ¥ kärndumpningar till " "det angivna värdet." #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #: ../templates:8001 ../templates:10001 ../templates:11001 ../templates:12001 #: ../templates:15001 ../templates:16001 ../templates:17001 msgid "" "This value may be specified with a suffix of 'b' (bytes), 'k' (1024 bytes) " "or 'm' (1024*1024 bytes), where 'k' is the default." msgstr "" "Värdet kan ha suffixen 'b' (för byte), 'k (för 1024 bytes) eller 'm' (för " "1024*1024 bytes). 'k' är standardvärdet." #. Type: string #. Description #: ../templates:9001 msgid "Maximum amount of cpu time consumed:" msgstr "Maximal mängd CPU-tid som kan användas:" #. Type: string #. Description #: ../templates:9001 msgid "" "This limits the number of cpu seconds the cvs process can use. This will " "prevent too much cpu time from being allocated to a single connection." msgstr "" "Detta begränsar antalet CPU-sekunder som cvs-processen kan använda. Detta " "förhindrar att för mycket CPU-tid allokeras till en enskild anslutning." #. Type: string #. Description #: ../templates:9001 msgid "" "This value can be formatted as 'mm:ss' or have a 'm' or 's' suffix where 's' " "is default." msgstr "" "Värdet kan skrivas som 'mm:ss' eller ha 'm' eller 's' som suffix. 's' är " "standardvärdet." #. Type: string #. Description #: ../templates:10001 msgid "Maximum size of program's data segment:" msgstr "Maximal storlek för programmets datasegment:" #. Type: string #. Description #: ../templates:10001 msgid "" "This limits the amount of memory the cvs program can use. This specific item " "limits the size of the data segment." msgstr "" "Begränsar mängden minne som cvs-program kan använsa. Detta alternativ " "begränsar storleken pÃ¥ datasegmentet." #. Type: string #. Description #: ../templates:11001 msgid "Maximum size of files created:" msgstr "Maximal storlek för skapade filer:" #. Type: string #. Description #: ../templates:11001 msgid "" "This limits the maximum size of a file created by cvs. Note that the cvs " "pserver process needs to be able to create lock files and possibly write " "history or other files so don't set this to 0 (zero)." msgstr "" "Detta begränsar storleken pÃ¥ filer som skapas av cvs. Kom ihÃ¥g att processen " "för cvs-pserver mÃ¥ste kunna skapa lÃ¥sningsfiler och skriva historikfiler " "eller andra filer sÃ¥ ange inte 0 (noll) här." #. Type: string #. Description #: ../templates:12001 msgid "Maximum amount of locked memory:" msgstr "Maximal mängd lÃ¥st minne:" #. Type: string #. Description #: ../templates:12001 msgid "" "This limits the amount of memory the cvs process may lock. cvs probably " "doesn't need to lock any memory at all." msgstr "" "Begränsar mängden minne som cvs-processen kan lÃ¥sa. cvs behöver troligen " "inte lÃ¥sa minne alls." #. Type: string #. Description #: ../templates:13001 msgid "Maximum number of open files:" msgstr "Maximalt antal öppna filer:" #. Type: string #. Description #: ../templates:13001 msgid "" "This limits the number of files and connections that the cvs process can " "have open at a single moment. The cvs process needs to access quite a few " "files so don't set this too low." msgstr "" "Detta begränsar antalet filer och anslutningar som cvs-processen kan ha " "öppna vid varje givet tillfälle. cvs-processen behöver kunna ha en hel del " "filer öppna samtidigt sÃ¥ sätt inte värdet för lÃ¥gt." #. Type: string #. Description #: ../templates:14001 msgid "Maximum number of processes:" msgstr "Maximalt antal processer:" #. Type: string #. Description #: ../templates:14001 msgid "" "This limits the maximum number of processes that a single user may have. cvs " "may need to spawn additional processes to run scripts or do subtasks so " "don't set this too low." msgstr "" "Begränsar det maximala antalet processer som en ensam användare kan ha. cvs " "mÃ¥ste starta extraprocesser för att köra skript och underuppgifter sÃ¥ sätt " "ine värdet för lÃ¥gt." #. Type: string #. Description #: ../templates:15001 msgid "Maximum size of resident memory:" msgstr "Maximal mängd fysiskt minne:" #. Type: string #. Description #: ../templates:15001 msgid "This specifies the amount of physical memory a process may have." msgstr "Anger mängden fysiskt minne en process kan ha:" #. Type: string #. Description #: ../templates:16001 msgid "Maximum stack size:" msgstr "Maximal storlek för stacken:" #. Type: string #. Description #: ../templates:16001 msgid "This limits the size of the stack." msgstr "Begränsar storleken pÃ¥ stacken." #. Type: string #. Description #: ../templates:17001 msgid "Maximum amount of virtual memory allocated:" msgstr "Maximal mängd allokerat virtuellt minne:" #. Type: string #. Description #: ../templates:17001 msgid "" "This limits the total amount of virtual memory a process may have allocated." msgstr "Begränsar den totala mängden virtuellt minne en process kan allokera." #. Type: string #. Description #: ../templates:18001 msgid "Maximum number of threads:" msgstr "Maximalt antal trÃ¥dar:" #. Type: string #. Description #: ../templates:18001 msgid "This limits the number of threads that a single process may have." msgstr "Begränsar antalet trÃ¥dar som en enskild process kan ha." #. Type: string #. Description #: ../templates:18001 msgid "" "This is not available under Linux so it is not in the list for cvsd/limits. " "If Hurd has it it may be useful." msgstr "" "Detta är inte tillgängligt i Linux och finns därför inte med i listan över " "cvsdbegränsningar. Om Hurd har det kan det vara användbart." #. Type: boolean #. Description #: ../templates:19001 msgid "Remove chroot jail containing repositories?" msgstr "Ta bort chroot-jail med förrÃ¥d?" #. Type: boolean #. Description #: ../templates:19001 msgid "" "The following directory is configured as a chroot jail for cvsd:\n" " ${rootjail}\n" "You may choose to remove the chroot jail but you will also lose all the " "repositories inside the chroot jail. If you have not backed up your " "repositories you want to keep do not remove it now and manually remove it " "later once your repositories are safe." msgstr "" "Följande katalog är inställd som chroot-jail för cvsd:\n" " ${rootjail}\n" "Du kan ta bort chroot-jail:et men du kommer dÃ¥ även att förlora alla förrÃ¥d " "som finns i det. Om du inte har tagit säkerhetskopior av dina förrÃ¥d kan det " "vara en god idé att lÃ¥ta dessa ligga kvar och ta bort de manuellt vid ett " "senare tillfälle." #. Type: boolean #. Description #: ../templates:19001 msgid "" "If you do choose to remove the chroot directory, all directories under it " "will be removed, even if they are on another file system." msgstr "" "Om du väljer att ta bort chroot-katalogen kommer även alla kataloger under " "den att tas bort, även om de tillhör ett annat filsystem." #. Type: boolean #. Description #: ../templates:19001 msgid "" "If you choose to keep the chroot jail please note that the cvsd user and " "group will be removed so uid and gid file information may no longer be " "consistent." msgstr "" "Om du väljer att behÃ¥lla chroot-jail:et är det viktigt att minnas att " "användaren och gruppen för CVSD kommer att tas bort sÃ¥ UID och GID för " "filerna kommer att vara felaktigt." cvsd-1.0.24/debian/po/pt_BR.po0000644000000000000000000004663511431736066012656 0ustar # translation of templates-pt_BR.po to Dutch # Translators, if you are not familiar with the PO format, gettext # documentation is worth reading, especially sections dedicated to # this format, e.g. by running: # info -n '(gettext)PO Files' # info -n '(gettext)Header Entry' # Some information specific to po-debconf are available at # /usr/share/doc/po-debconf/README-trans # or http://www.debian.org/intl/l10n/po-debconf/README-trans # Developers do not need to manually edit POT or PO files. # Arthur de Jong , 2003 # msgid "" msgstr "" "Project-Id-Version: cvsd 1.0.8\n" "Report-Msgid-Bugs-To: Arthur de Jong \n" "POT-Creation-Date: 2007-07-21 14:26+0200\n" "PO-Revision-Date: 2004-12-05 23:51+0100\n" "Last-Translator: André Luís Lopes \n" "Language-Team: Debian-BR Project \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" #. Type: string #. Description #: ../templates:1001 msgid "Location of chroot jail:" msgstr "Localização da jaula Chroot:" #. Type: string #. Description #: ../templates:1001 msgid "" "cvsd can run in a chroot jail. This is the preferred method of operation. " "Specify the location of the chroot jail. If you make this 'none' no chroot " "jail will be created and used. A chroot file hierarchy will be created in " "the specified location." msgstr "" "O cvsd pode ser executado em uma jaula chroot. Esse é o método preferido de " "operação. Caso você informe 'none' nenhuma jaula chroot será criada e usada. " "Um hierarquia de arquivos chroot será criada na localização especificada." #. Type: string #. Description #: ../templates:2001 msgid "The maximum number of connections that can be handled:" msgstr "O número máximo de conexões que podem ser gerenciadas:" #. Type: string #. Description #: ../templates:2001 msgid "" "It is possible to specify a maximum number of connections that cvsd can " "handle simultaneously. Specifying 0 (zero) will put no limit to the number " "of connections." msgstr "" "É possível especificar um número máximo de conexões que o cvsd pode " "gerenciar simultaneamente. Especificar 0 (zero) não irá estabelecer limites " "para o número de conexões." #. Type: string #. Description #: ../templates:3001 msgid "Nice value cvsd should run at:" msgstr "Valor de nice sob o qual o cvsd deve ser executado:" #. Type: string #. Description #: ../templates:3001 msgid "" "cvsd can be run at reduced priority so it will not take up too many " "resources, especially if a user specifies a -z option to cvs. The priority " "can also be increased (negative value here)." msgstr "" "O cvsd pode ser executado sob uma prioridade reduzida de maneira que o mesmo " "não consuma muitos recursos, especialmente caso um usuário especifique uma " "opção -z para o cvs. A prioridade pode também ser aumentada (valor negativo " "aqui)." #. Type: string #. Description #: ../templates:4001 msgid "Umask cvsd should run at:" msgstr "Valor de nice sob o qual o cvsd deve ser executado:" #. Type: string #. Description #: ../templates:4001 msgid "Specify the umask cvsd and cvs should use when creating files." msgstr "" "Especifique a umask que o cvsd e o cvs devem usar na criação de arquivos." #. Type: string #. Description #: ../templates:4001 msgid "" "The umask should be specified as an octal value and represents the " "permissions that should be taken away when creating a file (e.g. using 027 " "will create files with mode 640 or rw-r-----)." msgstr "" "A umask deverá ser especificada como um valor octal e representará as " "permissões que deverão ser subtraídas na criação de um arquivo (por exemplo, " "usando uma umask de 027 os arquivos serão criados com o modo 640 ou rw-" "r-----)." #. Type: string #. Description #: ../templates:5001 msgid "Address and port on which cvsd will listen:" msgstr "Endereço e porta na qual o cvsd irá escutar:" #. Type: string #. Description #: ../templates:5001 msgid "" "With the first argument you can specify the address cvsd should listen on. " "The '*' address specifies that cvsd should listen on all addresses. You can " "specify a IPv4 address, IPv6 address, a hostname or '*'." msgstr "" "Com o primeiro argumento você pode especificar o endereço que o cvsd irá " "escutar. O endereço '*' especifica que o cvsd deverá escutar em todos os " "endereços. Você pode especificar um endereço IPv4, um endereço IPv6, o nome " "de um host ou '*'." #. Type: string #. Description #: ../templates:5001 msgid "" "The second argument is the service name (e.g. cvspserver) or port number " "(default 2401) cvsd will listen on." msgstr "" "O segundo argumento é o nome do serviço (por exemplo, cvspserver) ou número " "de porta (o padrão é 2401) na qual o cvsd irá escutar." #. Type: string #. Description #: ../templates:5001 msgid "" "The address and port should be separated by a space and you can specify " "multiple address-port combinations by separating them with spaces." msgstr "" "O endereço e porta devem ser separados por um espaço e você pode especificar " "múltiplas combinações endereço-porta separando-os por espaços." #. Type: string #. Description #: ../templates:6001 msgid "Repositories to serve:" msgstr "Repositórios a serem servidos:" #. Type: string #. Description #: ../templates:6001 msgid "" "The whole idea of cvsd is to serve repositories. Specify a colon ':' " "separated list of repositories to serve. The location of these repositories " "is relative to the specified chroot jail (${rootjail}) and should start with " "a '/'." msgstr "" "A idéia do cvsd é servir repositórios. Especifique uma lista separada por " "dois pontos ':' de repositórios a serem servidos. A localização desses " "repositórios é relativa a raíz da jaula chroot especificada (${rootjail}) e " "deve iniciar com uma '/'." #. Type: string #. Description #: ../templates:6001 msgid "" "The repositories here should be initialized by hand with something like 'cvs " "-d ${rootjail}/myrepos init' after which passwords can be set with 'cvsd-" "passwd ${rootjail}/myrepos anonymous'. See the file /usr/share/doc/cvsd/" "README.gz for details on creating repositories." msgstr "" "Os repositórios aqui devem ser inicializados manualmente com um comando como " "'cvs -d ${rootjail}/myrepos init' e logo após senhas poderão ser definidas " "com um comando como 'cvsd-passwd ${rootjail}/myrepos anomymous'. Consulte o " "arquivo /usr/share/doc/cvsd/README.gz para maiores detalhes sobre a criação " "de repositórios." #. Type: multiselect #. Choices #: ../templates:7001 msgid "coredumpsize" msgstr "Tamanho de coredumps" #. Type: multiselect #. Choices #: ../templates:7001 msgid "cputime" msgstr "Tempo de CPU" #. Type: multiselect #. Choices #: ../templates:7001 msgid "datasize" msgstr "Tamanho de dados" #. Type: multiselect #. Choices #: ../templates:7001 msgid "filesize" msgstr "Tamanho de arquivos" #. Type: multiselect #. Choices #: ../templates:7001 msgid "memorylocked" msgstr "Memória bloqueada" #. Type: multiselect #. Choices #: ../templates:7001 msgid "openfiles" msgstr "Número de arquivos abertos" #. Type: multiselect #. Choices #: ../templates:7001 msgid "maxproc" msgstr "Número de processos" #. Type: multiselect #. Choices #: ../templates:7001 msgid "memoryuse" msgstr "Uso de memória" #. Type: multiselect #. Choices #: ../templates:7001 msgid "stacksize" msgstr "Tamanho de pilha" #. Type: multiselect #. Choices #: ../templates:7001 msgid "virtmem" msgstr "Memória virtual" #. Type: multiselect #. Description #: ../templates:7002 msgid "Resources of pserver processes to limit:" msgstr "Selecione os recursos a serem limitados para processos pserver:" #. Type: multiselect #. Description #: ../templates:7002 msgid "" "The pserver wrapper can be configured to limit the resource usage that a " "pserver process can have. These resource limits will be set on each pserver " "process and not on the wrapper." msgstr "" "O wrapper pserver pode ser configurado de modo a limitar o uso de recursos " "de um processo pserver. Esses limites de recursos serão definidos em cada " "processo pserver e não no wrapper." #. Type: multiselect #. Description #: ../templates:7002 msgid "" "Choose from the list the resources that you want to limit. You will be asked " "to specify limits about every resource you selected here." msgstr "" "Escolha na listagem os recursos que você deseja limitar. Você será " "questionado sobre limites relativos a cada recurso que você selecionar aqui." #. Type: multiselect #. Description #: ../templates:7002 msgid "" "Note that not all resources may be available on all systems and that " "resources may be system and kernel specific so use these with caution. The " "results of exceeding the set limits may also be system specific but will " "most likely stop the cvs process and close the connection (may be " "problematic with write access to cvs repository)." msgstr "" "Note que nem todos os recursos podem estar disponíveis em todos os sistemas " "e que recursos podem ser específicos para um sistema ou kernel, portanto, " "use-os com cuidado. Os resultados de exceder os limites definidos podem " "também ser específicos de cada sistema mas provavelmente exceder os recursos " "limitados provocará a parada do processo cvs e o fechamento das conexões " "(pode ser problemático com acessos de escrita ao repositório cvs)." #. Type: string #. Description #: ../templates:8001 msgid "Maximum file size of a core dump:" msgstr "Tamanho máximo de arquivo de um coredump:" #. Type: string #. Description #: ../templates:8001 msgid "" "Set this to 0 (zero) (should be the system default) to prevent core dumps. " "Otherwise this limits the size of core dumps to the specified value." msgstr "" "Define esse valor para 0 (zero) (deve ser o padrão so sistema) para evitar " "core dumps. Caso um valor diferente de zero seja informado, esse valor " "limitará o tamanho de core dumps para o valor especificado." #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #. Type: string #. Description #: ../templates:8001 ../templates:10001 ../templates:11001 ../templates:12001 #: ../templates:15001 ../templates:16001 ../templates:17001 msgid "" "This value may be specified with a suffix of 'b' (bytes), 'k' (1024 bytes) " "or 'm' (1024*1024 bytes), where 'k' is the default." msgstr "" "Esse valor pode ser especificado com um sufixo de 'b' (bytes), 'k' (1024 " "bytes) ou 'm' (1024*1024 bytes), onde 'k' é o padrão." #. Type: string #. Description #: ../templates:9001 msgid "Maximum amount of cpu time consumed:" msgstr "Quantidade máxima de segundos de tempo de cpu consumidos:" #. Type: string #. Description #: ../templates:9001 msgid "" "This limits the number of cpu seconds the cvs process can use. This will " "prevent too much cpu time from being allocated to a single connection." msgstr "" "Essa opção limita a quantidade de segundos de cpu que o processo cvs pode " "usar. Isso evitará que muito tempo de cpu seja alocado para uma única " "conexão." #. Type: string #. Description #: ../templates:9001 msgid "" "This value can be formatted as 'mm:ss' or have a 'm' or 's' suffix where 's' " "is default." msgstr "" "Esse valor pode ser formatada como 'mm:ss' ou possuir um sufix 'm' ou 's' " "onde 's' é padrão." #. Type: string #. Description #: ../templates:10001 msgid "Maximum size of program's data segment:" msgstr "Tamanho máximo dos segmentos de dados do programa:" #. Type: string #. Description #: ../templates:10001 msgid "" "This limits the amount of memory the cvs program can use. This specific item " "limits the size of the data segment." msgstr "" "Essa opção limita a quantidade de memória que o programa cvs pode usar. Esse " "item específico limita o tamanho do segmento de dados." #. Type: string #. Description #: ../templates:11001 msgid "Maximum size of files created:" msgstr "Tamanho máximo dos arquivos criados:" #. Type: string #. Description #: ../templates:11001 msgid "" "This limits the maximum size of a file created by cvs. Note that the cvs " "pserver process needs to be able to create lock files and possibly write " "history or other files so don't set this to 0 (zero)." msgstr "" "Essa opção limita o tamanho máximo de um arquivo criado pelo cvs. Note que o " "proceso cvs pserver precisa ser capaz de criar arquivos de bloqueio (lock) e " "possivelmente gravar históricos de outros arquivos, portanto não defina esse " "valor para 0 (zero)." #. Type: string #. Description #: ../templates:12001 msgid "Maximum amount of locked memory:" msgstr "Quantidade máxima de mémoria bloqueada (locked):" #. Type: string #. Description #: ../templates:12001 msgid "" "This limits the amount of memory the cvs process may lock. cvs probably " "doesn't need to lock any memory at all." msgstr "" "Esse parâmetro limita a quantidade de memória que um processo cvs pode " "bloquear. O cvs provavelmente não precisa bloquear memória alguma." #. Type: string #. Description #: ../templates:13001 msgid "Maximum number of open files:" msgstr "Número máximo de arquivos abertos:" #. Type: string #. Description #: ../templates:13001 msgid "" "This limits the number of files and connections that the cvs process can " "have open at a single moment. The cvs process needs to access quite a few " "files so don't set this too low." msgstr "" "Esse parâmetro limita q quantidade de arquivos e conexões que o processo cvs " "pode ter abertos ao mesmo tempo. O processo cvs precisa acessar diversos " "arquivos portanto não define esse valor para um número muito baixo." #. Type: string #. Description #: ../templates:14001 msgid "Maximum number of processes:" msgstr "Número máximo de processos:" #. Type: string #. Description #: ../templates:14001 msgid "" "This limits the maximum number of processes that a single user may have. cvs " "may need to spawn additional processes to run scripts or do subtasks so " "don't set this too low." msgstr "" "Esse parâmetro limita o número máximo de processos que um único usuário pode " "ter. O cvs precisa disparar processos adicionais para executar scripts ou " "realizar subtarefas, portanto não defina esse valor para um valor muito " "baixo." #. Type: string #. Description #: ../templates:15001 msgid "Maximum size of resident memory:" msgstr "Tamanho máximo de memória residente:" #. Type: string #. Description #: ../templates:15001 msgid "This specifies the amount of physical memory a process may have." msgstr "" "Esse parâmetro especifica a quantidade de memória física que um processo " "pode ter." #. Type: string #. Description #: ../templates:16001 msgid "Maximum stack size:" msgstr "Tamanho máximo de pilha:" #. Type: string #. Description #: ../templates:16001 msgid "This limits the size of the stack." msgstr "Esse parâmetro limita o tamanho da pilha." #. Type: string #. Description #: ../templates:17001 msgid "Maximum amount of virtual memory allocated:" msgstr "Quantidade máxima de memória virtual alocada:" #. Type: string #. Description #: ../templates:17001 msgid "" "This limits the total amount of virtual memory a process may have allocated." msgstr "" "Esse parâmetro limita q quantidade total de memória virtual alocada que um " "processo pode ter." #. Type: string #. Description #: ../templates:18001 msgid "Maximum number of threads:" msgstr "Número máximo de threads:" #. Type: string #. Description #: ../templates:18001 msgid "This limits the number of threads that a single process may have." msgstr "" "Esse parâmetro limita o número de threads que um processo único pode ter." #. Type: string #. Description #: ../templates:18001 msgid "" "This is not available under Linux so it is not in the list for cvsd/limits. " "If Hurd has it it may be useful." msgstr "" "Isso não está disponível sob o Linux portanto não está na lista para o cvsd/" "limites. Caso o Hurd possua isso, o mesmo pode ser útil." #. Type: boolean #. Description #: ../templates:19001 msgid "Remove chroot jail containing repositories?" msgstr "Remover a jaula chroot que contém os respositórios ?" #. Type: boolean #. Description #: ../templates:19001 msgid "" "The following directory is configured as a chroot jail for cvsd:\n" " ${rootjail}\n" "You may choose to remove the chroot jail but you will also lose all the " "repositories inside the chroot jail. If you have not backed up your " "repositories you want to keep do not remove it now and manually remove it " "later once your repositories are safe." msgstr "" "O diretório a seguir está configurado como uma jaula chroot para o cvsd:\n" " ${rootjail}\n" "Você pode optar por remover a jaula chroot mas, nesse caso, irá também " "perder todos os repositórios dentro da jaula. Caso você ainda não tenha " "feito uma cópia de segurança (backup) dos respositórios que você deseja " "manter não remova a jaula agora. Faça isso manualmente posteriormente quando " "seus repositórios estiverem seguros." #. Type: boolean #. Description #: ../templates:19001 msgid "" "If you do choose to remove the chroot directory, all directories under it " "will be removed, even if they are on another file system." msgstr "" "Caso você opte por remover o diretório chroot, todos os diretórios sob esse " "diretório serão removidos, mesmo caso tais diretórios estejam em outro " "sistema de arquivos." #. Type: boolean #. Description #: ../templates:19001 msgid "" "If you choose to keep the chroot jail please note that the cvsd user and " "group will be removed so uid and gid file information may no longer be " "consistent." msgstr "" "Caso você opte por manter a jaula chroot, por favor note que o usuário e o " "grupo cvsd serão removidos, assim a informação de uid e gid dos arquivos " "pode não estar mais consistente." #~ msgid "Use debconf to configure cvsd?" #~ msgstr "Usar o debconf para configurar o cvsd ?" #, fuzzy #~ msgid "" #~ "It is convenient to use debconf to configure cvsd. Almost all cvsd " #~ "configuration options are available through debconf and a configuration " #~ "file (/etc/cvsd/cvsd.conf) will be automatically created based on the " #~ "specified settings." #~ msgstr "" #~ "É conveniente usar o debconf para configurar o cvsd. Todos os parâmetros " #~ "de configuração estão disponíveis através do debconf e um arquivo de " #~ "configuração (/etc/cvsd/cvsd.conf) será automaticamente criado com base " #~ "nas configurações especificadas." #~ msgid "" #~ "If you prefer to edit your configuration file by hand specify no here." #~ msgstr "" #~ "Caso você prefira editar seu arquivo de configuração manualmente, " #~ "responda Não aqui." #, fuzzy #~ msgid "" #~ "Note: if you do not use debconf you have to create the chroot jail " #~ "yourself (with cvsd-buildroot)" #~ msgstr "" #~ "Note: caso você não use o debconf você terá que criar a jaula chroot " #~ "manualmente (com o comando cvsd-buildroot)." #, fuzzy #~ msgid "Maximum number of open files (file descriptors):" #~ msgstr "Número máximo de arquivos abertos (descritores de arquivo)" #~ msgid "/var/lib/cvsd" #~ msgstr "/var/lib/cvsd" #~ msgid "10" #~ msgstr "10" #~ msgid "1" #~ msgstr "1" #~ msgid "* 2401" #~ msgstr "* 2401" #~ msgid "/demo:/myrepos" #~ msgstr "/demo:/myrepos" #~ msgid "" #~ "coredumpsize, cputime, datasize, filesize, memorylocked, openfiles, " #~ "maxproc, memoryuse, stacksize, virtmem" #~ msgstr "" #~ "coredumpsize, cputime, datasize, filesize, memorylocked, openfiles, " #~ "maxproc, memoryuse, stacksize, virtmem" #~ msgid "0" #~ msgstr "0" #~ msgid "1:00" #~ msgstr "1:00" #~ msgid "1m" #~ msgstr "1m" #~ msgid "1024" #~ msgstr "1024" #~ msgid "10m" #~ msgstr "10m" #~ msgid "20" #~ msgstr "20" cvsd-1.0.24/debian/config0000644000000000000000000000670610072754551012054 0ustar #!/bin/sh set -e # source debconf library. . /usr/share/debconf/confmodule db_version 2.0 db_capb backup # set title db_title "Configuring cvsd" configfile="/etc/cvsd/cvsd.conf" # read values from the current configuration file if [ -r "$configfile" ] then # Location of Chroot jail rootjail=`sed -n 's/^[[:space:]]*RootJail[[:space:]][[:space:]]*\([^[:space:]]*\)[[:space:]]*$/\1/p' < "$configfile"` [ "x$rootjail" = "x" ] && rootjail="none" db_set cvsd/rootjail "$rootjail" # Maximum number of connections maxconnections=`sed -n 's/^[[:space:]]*MaxConnections[[:space:]][[:space:]]*\([^[:space:]]*\)[[:space:]]*$/\1/p' < "$configfile"` [ "x$maxconnections" = "x" ] && maxconnections=0 db_set cvsd/maxconnections "$maxconnections" # Nice value to run at nice=`sed -n 's/^[[:space:]]*Nice[[:space:]][[:space:]]*\([^[:space:]]*\)[[:space:]]*$/\1/p' < "$configfile"` [ "x$nice" = "x" ] && nice=0 db_set cvsd/nice "$nice" # Umask to use umask=`sed -n 's/^[[:space:]]*Umask[[:space:]][[:space:]]*\([^[:space:]]*\)[[:space:]]*$/\1/p' < "$configfile"` [ "x$umask" = "x" ] && umask=027 db_set cvsd/umask "$umask" # Address-Port combinations to listen on listen=`sed -n 's/^[[:space:]]*Listen[[:space:]][[:space:]]*\([^[:space:]]*\)[[:space:]][[:space:]]*\([^[:space:]]*\)[[:space:]]*$/\1 \2/p' < "$configfile"` listen=`echo "$listen" | tr '\n' ' ' | sed 's/ *$//'` [ "x$listen" = "x" ] && listen="* 2401" db_set cvsd/listen "$listen" # get current repositories from configfile reposs=`sed -n 's/^[[:space:]]*Repos[[:space:]][[:space:]]*\([^[:space:]]*\)[[:space:]]*$/\1/p' < "$configfile"` reposs=`echo "$reposs" | tr '\n' ':' | sed 's/:*$//'` db_set cvsd/repositories "$reposs" # read current limits limits="" for i in `sed -n 's/^[[:space:]]*Limit[[:space:]][[:space:]]*\([^[:space:]]*\)[[:space:]][[:space:]]*[^[:space:]]*[[:space:]]*$/\1/p' < "$configfile"` do limit=`sed -n 's/^[[:space:]]*Limit[[:space:]][[:space:]]*'"$i"'[[:space:]][[:space:]]*\([^[:space:]]*\)[[:space:]]*$/\1/p' < "$configfile"` if db_set "cvsd/limit_$i" "$limit" then if [ -n "$limits" ] then limits="$limits, $i" else limits="$i" fi fi done db_set cvsd/limits "$limits" fi state="general" while [ "$state" != "done" ] do case "$state" in general) # Location of Chroot jail db_input medium cvsd/rootjail || true # Maximum number of connections db_input low cvsd/maxconnections || true # Nice value to run at db_input low cvsd/nice || true # Umask to use db_input low cvsd/umask || true # Address-Port combinations to listen on db_input low cvsd/listen || true state="repositories" db_go || exit 1 # TODO: add error checking on options (especially listen) ;; repositories) # Repositories to have db_get cvsd/rootjail [ "$RET" = "/" ] || [ "$RET" = "none" ] && RET="" db_subst cvsd/repositories rootjail "$RET" db_input high cvsd/repositories || true state="whichlimits" db_go || state="general" ;; whichlimits) # Limits on cvs command db_capb multiselect db_input low cvsd/limits || true state="limitlist" db_go || state="repositories" ;; limitlist) # ask specific limits questions db_get cvsd/limits for i in `echo $RET | sed 's/,//g'` do db_input low "cvsd/limit_$i" || true done state="done" db_go || state="whichlimits" ;; esac done exit 0 cvsd-1.0.24/debian/copyright0000644000000000000000000000170011724634624012607 0ustar Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: cvsd Upstream-Contact: Arthur de Jong Source: http://arthurdejong.org/cvsd/ Files: * Copyright: Copyright (C) 1999 Chris Black Copyright (C) 2000 Philippe Kehl Copyright (C) 2001-2012 Arthur de Jong License: GPL-2+ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. . This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. . On Debian GNU/Linux systems, the complete text of the GNU General Public License can be found in /usr/share/common-licenses/GPL-2. cvsd-1.0.24/debian/docs0000644000000000000000000000005407633451274011532 0ustar README TODO AUTHORS NEWS FAQ cvsd.conf-dist cvsd-1.0.24/debian/changelog0000644000000000000000000004610311762425104012525 0ustar cvsd (1.0.24) unstable; urgency=low * bump debhelper compatibility to 9 and enable hardening flags (thanks Simon Ruderich) (closes: #662226) * allow debconf preseeding of removal of chroot jail (closes: #672158) -- Arthur de Jong Sat, 02 Jun 2012 16:58:57 +0200 cvsd (1.0.23) unstable; urgency=low * have cvsd-buildroot look in all multiarch subdirectories of /lib for NSS libraries (LP: #801675) * portability improvement by Eric Schnoebelen * switch to dh for debian/rules and bump debhelper compatibility to 8 * switch to machine-readable debian/copyright format * upgrade to standards-version 3.9.2 (no changes needed) * update Vietnamese debconf translation to use correct paragraph markers * added Italian debconf translation by Beatrice Torracca (closes: #662119) -- Arthur de Jong Sun, 04 Mar 2012 11:00:00 +0100 cvsd (1.0.22) unstable; urgency=low * update FAQ from website (closes: #607823) * don't log EINTR on select() any more, not even in debug mode * fix for cvsd-buildroot to also work on multiarch setups * log address and port with bind() failures * switch to 3.0 (native) source format * upgrade to standards-version 3.9.2 (no changes needed) -- Arthur de Jong Mon, 13 Jun 2011 14:00:00 +0200 cvsd (1.0.21) unstable; urgency=low * handle failure to bind() as a fatal error now (see #595779) -- Arthur de Jong Wed, 08 Sep 2010 22:00:00 +0200 cvsd (1.0.20) unstable; urgency=low * correctly listen on IPv4 and IPv6 addresses with recent Glibc versions by not depending on the order of address records returned by getaddrinfo() and work regardless of net.ipv6.bindv6only sysctl (LP: #622035) -- Arthur de Jong Sun, 05 Sep 2010 10:00:00 +0200 cvsd (1.0.19) unstable; urgency=low * cvsd-buildroot: ignore commented out lines in CVSROOT/passwd files * cvsd-buildroot: set an umask for generated files * some documentation updates * change init script dependency on $remote_fs (for /usr) from Should to Required (thanks lintian) * upgrade to standards-version 3.9.1 (no changes needed) * switch to explicit "1.0" source format -- Arthur de Jong Tue, 17 Aug 2010 18:00:00 +0200 cvsd (1.0.18) unstable; urgency=low * use simpler shell semantics in cvsd-buildroot to fix a problem with bash 4 (LP: #474666) * fix call to uname in the cvsd-buginfo script -- Arthur de Jong Thu, 14 Jan 2010 22:00:00 +0100 cvsd (1.0.17) unstable; urgency=low * update to automake 1.11 * some small spelling fixes in documentation * changed references to home page and contact email addresses to use arthurdejong.org * added Russian debconf translation by Yuri Kozlov (closes: #547487) * debian/control: changed section to vcs * upgrade to standards-version 3.8.3 (no changes needed) * upgrade to debhelper compatibility level 7 -- Arthur de Jong Wed, 30 Dec 2009 22:00:00 +0100 cvsd (1.0.16) unstable; urgency=low * added Swedish debconf translation by Martin Bagge (closes: #508754) * fix some lintian issues (override some and fix one) -- Arthur de Jong Sun, 21 Dec 2008 16:00:00 +0100 cvsd (1.0.15) unstable; urgency=low * fix init script to return proper exit code when stopping non-running cvsd or starting already-started cvsd * take a shot at making debian/copyright machine parseable * cvsd-buildroot now removes tls directories in the chroot jail if the environment outside it does not contain them (any more) (closes: #456111) * upgrade to standards-version 3.8.0 (no changes needed) -- Arthur de Jong Fri, 13 Jun 2008 16:30:00 +0200 cvsd (1.0.14) unstable; urgency=low * added Vcs-Cvs, Vcs-Browser and Homepage fields * better cvsd user and group removal commands on purge * some typo fixes in documentation and other minor fixes in the code -- Arthur de Jong Fri, 07 Dec 2007 16:00:00 +0200 cvsd (1.0.13) unstable; urgency=low * cvsd-buildroot: further portability improvements on 64 bit platforms * added Portuguese debconf translation by Ricardo Silva (closes: #383067) * added warnings and errors on failing to close a socket * added LSB headers to init script -- Arthur de Jong Sun, 20 Aug 2006 14:22:58 +0200 cvsd (1.0.12) unstable; urgency=low * cvsd-buildroot should not fail any more if tmpreaper is not present (closes: #368927, #368960) * some more failure preventions in cvsd-buildroot * cvsd-buildroot no longer looks in lock directories for repositories (closes: #369007) -- Arthur de Jong Thu, 1 Jun 2006 22:00:00 +0200 cvsd (1.0.11) unstable; urgency=low * cvsd-buildroot should now install libraries in the same directory structure as on the normal filesystem, resulting in better support for 64 bit systems * other small improvements to cvsd-buildroot, including better error handling and not overwriting devices * small code improvements * upgrade to standards-version 3.7.2 (no changes needed) -- Arthur de Jong Sun, 24 May 2006 21:00:00 +0200 cvsd (1.0.10) unstable; urgency=low * now really add Czech debconf translation (see release 1.0.5) * added Spanish debconf translation by César Gómez Martín (closes: #334561) * use lsb functions in init script to present output * added CvsArgs configfile option to pass extra arguments to the cvs command thanks to Stefan Bethke -- Arthur de Jong Thu, 29 Dec 2005 23:00:00 +0100 cvsd (1.0.9) unstable; urgency=low * changed email address and homepage location, new homepage is at http://ch.tudelft.nl/~arthur/cvsd/ * updated FAQ about mismatch of system and chroot uids (closes: #322132) * add support in cvsd-buildroot to copy users from nis/ldap instead of directly from /etc/passwd -- Arthur de Jong Sun, 21 Aug 2005 15:00:00 +0200 cvsd (1.0.8) unstable; urgency=low * fix typo in English debconf templates by Clytie Siddall * added Vietnamese debconf translation by Clytie Siddall (closes: #310171) * upgrade to standards-version 3.6.2 (no changes needed) * fix small typo in German translation spottet by Jens Seidel (closes: #314103) * add dependency on adduser, thanks lintian * remove --exec option from start-stop-daemon for systems that change executables between start and stop (e.g. when using prelinking) -- Arthur de Jong Sun, 24 Jul 2005 15:00:00 +0200 cvsd (1.0.7) unstable; urgency=low * improvements to the README * fix bug in cvsd-buildroot correctly creating lib64 directory -- Arthur de Jong Tue, 26 Apr 2005 22:00:00 +0200 cvsd (1.0.6) unstable; urgency=low * cvsd-buildroot creates lib64 and usr/lib64 inside the chroot jail if they exist on the system and add /lib64/ld-linux-x86-64.so.2 to list of libraries that will be installed (useful for amd64 amongst others) (closes: #298460) * remove -Wformat-literal option to enable warnings on more compilers (closes: #298480) -- Arthur de Jong Fri, 11 Mar 2005 14:15:00 +0100 cvsd (1.0.5) unstable; urgency=low * start short description with lower case (thanks lintian) * added Czech debconf translation by Jan Outrata (closes: #291578) * added some more checks to the cvsd-buginfo script -- Arthur de Jong Sat, 5 Mar 2005 19:30:00 +0100 cvsd (1.0.4) unstable; urgency=low * small bugfix in cvsd-buginfo * build package using --disable-dependency-tracking * added Japanese debconf translation by Hideki Yamane (closes: #283275) * fix reference to README in debconf question spotted by Sean Coates (translations also fixed) * upgrade to automake 1.9 -- Arthur de Jong Sun, 12 Dec 2004 21:30:00 +0100 cvsd (1.0.3) unstable; urgency=low * documentation improvements and fixes * made scripts more portable * added cvsd-buginfo script for gathering information for bugreports and added reportbug hooks * added experimental capabilities support (disabled by default) based on a patch by Shugo Maeda -- Arthur de Jong Sat, 7 Aug 2004 23:00:00 +0200 cvsd (1.0.2) unstable; urgency=low * added Danish (da) debconf translation by Claus Hindsgaul (closes: #234897) * debconf limit choicelist is now also translated * updated German (de) debconf translation by Jens Seidel * updated French (fr) debconf translation by Christian Perrier * init script now uses kill -0 to get cvsd status * repositories debconf question now uses correct chroot jail -- Arthur de Jong Sat, 17 Apr 2004 12:00:00 +0200 cvsd (1.0.1) unstable; urgency=low * move logging of exiting child processes and exit signals out of signal handlers to avoid deadlock racecondition in signal-unsafe functions, thanks to Dan Nuffer for spotting this * updated German (de) debconf translation by DDTP (http://ddtp.debian.org/debconf/template_unstable/cvsd/templates-de.po cleaned out with some modifications from my part) * upgrade to autoconf 2.59 * use --retry with start-stop-daemon on restart to stop old cvsd in init script -- Arthur de Jong Sun, 22 Feb 2004 18:15:00 +0100 cvsd (1.0.0) unstable; urgency=low * changed maintainer address to adejong@debian.org. * added French (fr) debconf translation by Christian Perrier (closes: #207237) * upgrade to standards-version 3.6.1 (no changes needed) * do not stop cvsd in postinst any more (was needed on woody for dpkg-reconfigure) -- Arthur de Jong Sun, 28 Sep 2003 17:15:00 +0200 cvsd (0.9.20) unstable; urgency=low * upgrade to standards-version 3.6.0 (no changes needed) * fix back for fist debconf question (keep current question instead of hanging) * also suggest tmpreaper since it can be used from cvsd-buildroot * cvsd-buildroot now does tmpreaper detection better (e.g. is possible from all sorts of shells) (closes: #205194) * rewrite code for storing of configuration settings * only ask debconf question if debconf is available during purge * also ship debian/po/templates.pot in source tarball (closes: #205807) * fix for when MaxConnections is 0 -- Arthur de Jong Sun, 17 Aug 2003 15:30:00 +0200 cvsd (0.9.19) unstable; urgency=low * upgrade to standards-version 3.5.10 (no changes needed) * make cvsd group a system group (--system option is poorly documented in woody but works) * improve consistency of language in debconf templates * cvsd.conf is now modified instead of replaced by debconf configuration, all user edits to cvsd.conf are now saved, including comments * small code improvements * upgrade to autoconf (2.57) and automake (1.6.3) * fixes to libwrap code and improvements to properly detect required libraries for libwrap from configure * debconf templates are now translated using po-debconf: - Brazilian Portuguese (pt_BR) by Andre Luis Lopes - German (de) (partial) by Description Translation Project (some small modifications from my part) - Dutch (nl) by myself (improvements are welcome) -- Arthur de Jong Sun, 8 Jun 2003 14:00:00 +0200 cvsd (0.9.18) unstable; urgency=low * removed ChangeLog from binary packages since it contains only information relevant if you have the sources, it is generated from cvs logs. for a list of changes see this changelog or the NEWS file (which is almost identical) * upgraded standards-version to 3.5.9 * some small portability fixes * small documentation improvements * fix for typo in cvsd-buildroot * added status option to init script * improved debconf questions thanks to Joey Hess * settings in cvsd.conf are now read by debconf (comments are not yet retained) * Umask is now also configurable from debconf -- Arthur de Jong Mon, 21 Apr 2003 19:30:00 +0200 cvsd (0.9.17) unstable; urgency=low * cvsd-buildroot now also checks if devices can be used (closes: #177949) * configure script improvements * upgrade to automake 1.6 -- Arthur de Jong Sun, 16 Feb 2003 20:02:20 +0100 cvsd (0.9.16) unstable; urgency=low * logging may now be customized through the Log configoption (currently not supported through debconf configuration) * errors in configfile are reported to stderr on startup * backwards compatibility for the old Port configoption was removed * normal logging is now disabled in debugging mode (-d switch) * fixed bug that caused logging to always occur at debug level -- Arthur de Jong Sun, 19 Jan 2003 14:15:15 +0100 cvsd (0.9.15) unstable; urgency=low * add -d switch to cvsd to run cvsd in debugging mode with verbose logging to stderr * turned off hyphenation in manual pages * rewritten logging code to be more configurable * updated README * FAQ is now generated from faq.html of homepage * now use invoke-rc.d in debian/postinst * upgraded standards-version to 3.5.8 -- Arthur de Jong Sun, 22 Dec 2002 21:41:27 +0100 cvsd (0.9.14) unstable; urgency=low * upgraded standards-version to 3.5.7 * back is now possible using debconf configuration (if frontend supports it) * drop all supplemenal group priviliges * close all unnecessary file descriptors before running cvs (These two fixes are security related but pose a risc only if the cvs pserver itself is exploited, thanks to env_audit for finding these.) * cvsd-passwd now gets default user mapping from cvsd.conf -- Arthur de Jong Sun, 27 Oct 2002 14:44:48 +0200 cvsd (0.9.13.1) unstable; urgency=low * removed symlink from source tarball causing build failure (closes: #163432) * compacted changelog -- Arthur de Jong Sun, 6 Oct 2002 16:17:47 +0200 cvsd (0.9.13) unstable; urgency=low * cvsd-buildroot: fix for locating repository passwd files * implemented tcp wrapper support (recompile to enable) * enable compiler warnings by default when building .deb * on package purge prompt to remove chroot jail * install sample configuration file in doc directory * removed build-dependency on cvs -- Arthur de Jong Thu, 3 Oct 2002 19:43:18 +0200 cvsd (0.9.12.1) unstable; urgency=low * debian/copyright: added notes about me being the maintainer and where to get the current version of cvsd * updated standards-version to 3.5.6.0 -- Arthur de Jong Mon, 16 Sep 2002 20:52:19 +0200 cvsd (0.9.12) unstable; urgency=low * updated cvsd-passwd manual page * cvsd-buildroot fixes for Solaris * initial Debian release (closes: #160679) -- Arthur de Jong Sat, 14 Sep 2002 17:10:00 +0200 cvsd (0.9.11) unstable; urgency=low * bugfixes and code documentation to cvsd-passwd * extra checks and warnings in cvsd-buildroot * fixed bugs in portability wrappers for older systems thanks to Florian Zschocke * made cvsd-buildroot output better readable -- Arthur de Jong Sun, 25 Aug 2002 14:29:26 +0200 cvsd (0.9.10) unstable; urgency=low * removed old netwoking code and replaced with wrappers for getaddrinfo() and related functions * documentation updates (manual pages and README) * cvsd-buildroot: create lock directories referenced in repositories * miscellaneous portability enhancements and fixes * removed removing of pidfile since this is probably silly * add mapping to system user on commandline for cvsd-passwd * init scripts now reads pidfile from configfile * added experimental .spec file thanks to Matthew L Daniel and Andreas Metzler -- Arthur de Jong Sun, 28 Jul 2002 14:47:41 +0200 cvsd (0.9.9) unstable; urgency=low * lots of portability fixes in cvsd, cvsd-buildroot and init script cvsd should now work on OpenBSD and probably Solaris and FreeBSD * documentation improvements (new FAQ and README section on lockfiles) * remove pidfile on exit * Listen options can be specified in several formats * add redhat 7.1 init script -- Arthur de Jong Mon, 24 Jun 2002 18:46:11 +0200 cvsd (0.9.8) unstable; urgency=low * be more forgiving when binding sockets fails (missing protocols etc) * networking code fixes to increase portability * fixed off by one byg when listening on more than 16 sockets -- Arthur de Jong Sat, 6 Apr 2002 17:53:34 +0200 cvsd (0.9.7) unstable; urgency=low * replaced Port configoption by Listen configoption * improved networking code to allow IPv6 and listening on multiple network interfaces * made use of debconf optional * numerous code improvements (see ChangeLog) -- Arthur de Jong Fri, 30 Mar 2002 12:04:26 +0100 cvsd (0.9.6) unstable; urgency=low * configure fixes for solaris (and others?) * added Umask configuration option * split source for configfile to seporate sourcefile * cleaned up source and include file handling * added more debugging information for better testing -- Arthur de Jong Mon, 25 Feb 2002 21:38:22 +0100 cvsd (0.9.5) unstable; urgency=low * now using autoconf 2.50 * first steps to get cvsd to compile on solaris * split source in several files for better maintainability * added 'unlimited' value for limits -- Arthur de Jong Fri, 25 Jan 2002 21:41:00 +0100 cvsd (0.9.4) unstable; urgency=low * added CvsCommand in configuration file * small fix to init script for slow releasing sockets (should be fixed better) * added Limit options * improved Debian scripts -- Arthur de Jong Mon, 31 Dec 2001 21:50:53 +0100 cvsd (0.9.3) unstable; urgency=low * provide simple getopt_long() for systems that don't have it * go more easy on failing accept() * logging output is more readable -- Arthur de Jong Thu, 20 Dec 2001 23:07:23 +0100 cvsd (0.9.2) unstable; urgency=low * added nice values to daemon * improved signal handling with signal names * code cleanup * spelling checked most stuff * debian configuration fully through debconf -- Arthur de Jong Fri, 14 Dec 2001 18:43:13 +0100 cvsd (0.9.1) unstable; urgency=low * added cvsd-passwd tool for editing CVSROOT/passwd files * improved debian configuration (getting there) * added support for symbolic uids and gids in configfile * cvsd-buildroot updated to add support for changing passwd values * small improvements to logging * cvsd now daemonizes itself and writes pidfile -- Arthur de Jong Sun, 18 Nov 2001 18:14:56 +0100 cvsd (0.9.0) unstable; urgency=low * Initial Release. -- Arthur de Jong Sun, 4 Nov 2001 23:00:00 +0200 cvsd-1.0.24/debian/postrm0000644000000000000000000000216711757640743012140 0ustar #!/bin/sh set -e case "$1" in purge) # offer to remove chroot jail (if configured and still exists) if [ -e /usr/share/debconf/confmodule ] then . /usr/share/debconf/confmodule db_get cvsd/rootjail if [ "$RET" != "" ] && [ "$RET" != "/" ] && [ "$RET" != "none" ] && [ -d "$RET" ] then CHROOT="$RET" db_title "Removing cvsd" db_subst cvsd/remove_chroot rootjail "$CHROOT" db_input high cvsd/remove_chroot || true db_go db_get cvsd/remove_chroot if [ "$RET" = "true" ] then rm -rf "$CHROOT" fi fi fi # remove config rm -rf /etc/cvsd # remove user/group if [ -x "$(command -v deluser)" ] then deluser --quiet --system cvsd > /dev/null || true else echo "not removing cvsd system account because deluser command was not found" >&2 fi if [ -x "$(command -v delgroup)" ] then delgroup --quiet --system cvsd > /dev/null || true else echo "not removing cvsd system group because delgroup command was not found" >&2 fi ;; esac #DEBHELPER# exit 0 cvsd-1.0.24/debian/postinst0000644000000000000000000002252111047346346012465 0ustar #!/bin/sh set -e # source debconf library. . /usr/share/debconf/confmodule # location of the configfile configfile="/etc/cvsd/cvsd.conf" # location of the file that will be edited # only when editing is complete will $configfile be overwritten tmpconfigfile=`mktemp` # location of the file that will be used temporarily tmpfile=`mktemp` # create cvsd group if it's not there yet getent group cvsd >/dev/null || \ addgroup --system cvsd # create cvsd user if it's not there yet getent passwd cvsd >/dev/null || \ adduser --system --ingroup cvsd --home /var/lib/cvsd cvsd # correct settings for cvsd user (getent passwd cvsd | grep -q "^cvsd:.*:cvs pserver daemon:") || usermod -c "cvs pserver daemon" cvsd gid=`getent group cvsd | sed 's/^cvsd:[^:]*:\([0-9]*\):.*$/\1/'` (getent passwd cvsd | grep -q "^cvsd:.*:$gid:") || usermod -g "cvsd" cvsd (getent passwd cvsd | grep -q ":/bin/false$") || usermod -s "/bin/false" cvsd # sed expressions to escape character so vars may be used in regexps RE_ESCAPE="s/[\\\\\/.+*()\[^$]/\\\\&/g" RP_ESCAPE="s/[\\\\\/&]/\\\\&/g" # function to do modification of an option # modifications are to $tmpconfigfile thingamagiggy () { setting="$1" value="$2" value_re=`echo "$value" | sed "$RE_ESCAPE"` value_rp=`echo "$value" | sed "$RP_ESCAPE"` # if config already contains this setting we're done grep \ '^[[:space:]]*'"$setting"'[[:space:]][[:space:]]*'"$value_re"'[[:space:]]*$' \ < "$tmpconfigfile" > /dev/null 2>&1 \ && return 0 # check if a setting should be modified or added if grep \ '^[[:space:]]*'"$setting"'[[:space:]][[:space:]]*[^[:space:]]*[[:space:]]*$' \ < "$tmpconfigfile" > /dev/null 2>&1 then # setting is present with another value, modify sed \ 's/^\([[:space:]]*'"$setting"'[[:space:]][[:space:]]*\)[^[:space:]]*\([[:space:]]*\)$/\1'"$value_rp"'\2/' \ < "$tmpconfigfile" > "$tmpfile" cat "$tmpfile" > "$tmpconfigfile" else # setting is not yet present, add echo "$setting $value" >> "$tmpconfigfile" fi } # install a new configfile if there is no existing one or if it # is an old generated one, otherwise modify current configfile if ! [ -e "$configfile" ] then # create a new configuration file cat > "$tmpconfigfile" << EOM # This is the configuration file for cvsd. # See the manual page cvsd.conf(5) for more information. # # You can also use 'dpkg-reconfigure cvsd' to modify these # settings. # # See the "Password authentication server" # section in the cvs texinfo for more information # about running a pserver. # RootJail # This is the location of the chroot jail # cvs should be run in. # Specify 'none' (without quotes) to not use # a chroot jail. # This directory should be initialized with # the cvsd-buildroot script. RootJail /var/lib/cvsd # Uid # This specifies which user id cvs should be # run as. This can be a numerical id or # a symbolic value. Uid cvsd # Gid # This specifies which group id cvs should be # run as. This can be a numerical id or # a symbolic value. Gid cvsd # CvsCommand # If you define this it should point to the cvs # command to execute. Otherwise "/bin/cvs" will # be used if a RootJail is configured and the # cvs command found at compiletime otherwise. # The path should be relative to the specified # RootJail and should start with a '/'. # CvsArgs ... # Additional arguments to pass to the cvs command. # For example, to enable read-only access to the # repository, pass the -R option. # Nice # This specifies the nice value (on most systems # ranging from -20 to 20) where the smaller the number # (more negative) the higher the priority. Nice 1 # Umask # This specifies a umask used by the cvs pserver when # creating files. Specify as an octal value. Umask 027 # Limit # can be one of: coredumpsize, cputime, datasize, filesize, # memorylocked, openfiles, maxproc, memoryuse, stacksize or virtmem. # is the maximum value for the given resource. For size values # a suffix of 'b', 'k' or 'm' can be specified ('k' is default). Time # values can be formatted as 'mm:ss' or have 'm' or 's' suffixes # ('s' is default). Limit coredumpsize 0 # PidFile # This specifies the location the process id of the # daemon is written. PidFile /var/run/cvsd.pid # Listen
# The addresses and ports to listen on for connections. #Listen * 2401 # MaxConnections # The maximum number of connections that will # be handled simultaneously. 0 is unlimited. MaxConnections 10 # Log [] # The way logging is done. Either none, syslog or a # filename may be specified, followed by an optional # loglevel. Loglevel may be one of: # crit, error, warning, notice, info (default) or debug. # This option can be supplied multiple times. # If this option is not specified syslog info is assumed. Log syslog info #Log /var/log/cvsd.log debug # Repos # This option specifies which repositories # can be used. The value is passed as a # --allow-root= parameter to cvs. # The path should be relative to the specified # RootJail and should start with a '/'. # This option can be supplied multiple times. Repos /test Repos /coolsoftware EOM else # use the existing configfile cat "$configfile" > "$tmpconfigfile" fi # Location of Chroot jail db_get cvsd/rootjail [ "$RET" = "" ] || [ "$RET" = "/" ] && RET="none" thingamagiggy "RootJail" "$RET" if [ "$RET" = "none" ]; then (getent passwd cvsd | grep -q "^cvsd:.*:/:") || usermod -d "/" cvsd else (getent passwd cvsd | grep -q "^cvsd:.*:$RET:") || usermod -d "$RET" cvsd fi rootjail="$RET" # Maximum number of connections db_get cvsd/maxconnections [ -n "$RET" ] || RET=0 thingamagiggy "MaxConnections" "$RET" # Nice value to run at db_get cvsd/nice [ -n "$RET" ] || RET=1 thingamagiggy "Nice" "$RET" # Umask to use db_get cvsd/umask [ -n "$RET" ] || RET="027" thingamagiggy "Umask" "$RET" # Address-Port combinations to listen on sed 's/^\([[:space:]]*\)Listen/\1x-Listen/' < "$tmpconfigfile" > "$tmpfile" cat "$tmpfile" > "$tmpconfigfile" # check current listen settings db_get cvsd/listen if [ -n "$RET" ] then echo "$RET" | tr ' ' '\n' | while read addr do read port # if current config already contains this addr/port combination # remove the x-, otherwise add a new option addr_re=`echo "$addr" | sed "$RE_ESCAPE"` port_re=`echo "$port" | sed "$RE_ESCAPE"` if grep \ '^[[:space:]]*x-Listen[[:space:]][[:space:]]*'"$addr_re"'[[:space:]][[:space:]]*'"$port_re"'[[:space:]]*$' \ < "$tmpconfigfile" > /dev/null 2>&1 then sed \ 's/^\([[:space:]]*\)x-\(Listen[[:space:]][[:space:]]*'"$addr_re"'[[:space:]][[:space:]]*'"$port_re"'[[:space:]]*\)$/\1\2/' \ "$tmpconfigfile" > "$tmpfile" cat "$tmpfile" > "$tmpconfigfile" else echo "Listen $addr $port" >> "$tmpconfigfile" fi done fi # remove remaining x-Listen options grep -v '^[[:space:]]*x-Listen' < "$tmpconfigfile" > "$tmpfile" || true cat "$tmpfile" > "$tmpconfigfile" # Repositories to have sed 's/^\([[:space:]]*\)Repos/\1x-Repos/' < "$tmpconfigfile" > "$tmpfile" cat "$tmpfile" > "$tmpconfigfile" # check current repository settings db_get cvsd/repositories # remove extra repositories OLDIFS="$IFS" IFS=':' for repos in $RET do IFS="$OLDIFS" repos_re=`echo "$repos" | sed "$RE_ESCAPE"` if grep \ '^[[:space:]]*x-Repos[[:space:]][[:space:]]*'"$repos_re"'[[:space:]]*$' \ < "$tmpconfigfile" > /dev/null 2>&1 then sed \ 's/^\([[:space:]]*\)x-\(Repos[[:space:]][[:space:]]*'"$repos_re"'[[:space:]]*\)$/\1\2/' \ "$tmpconfigfile" > "$tmpfile" cat "$tmpfile" > "$tmpconfigfile" else echo "Repos $repos" >> "$tmpconfigfile" fi done # remove remaining x-Repos options grep -v '^[[:space:]]*x-Repos' < "$tmpconfigfile" > "$tmpfile" || true cat "$tmpfile" > "$tmpconfigfile" # Limits sed 's/^\([[:space:]]*\)Limit/\1x-Limit/' < "$tmpconfigfile" > "$tmpfile" cat "$tmpfile" > "$tmpconfigfile" # check current limits db_get cvsd/limits for limit in `echo "$RET" | sed 's/,//g'` do db_get "cvsd/limit_$limit" if [ "x$RET" != "x" ] then value="$RET" value_rp=`echo "$value" | sed "$RP_ESCAPE"` if grep \ '^[[:space:]]*x-Limit[[:space:]][[:space:]]*'"$limit"'[[:space:]]' \ < "$tmpconfigfile" > /dev/null 2>&1 then sed \ 's/^\([[:space:]]*\)x-\(Limit[[:space:]][[:space:]]*'"$limit"'[[:space:]]*\)[^[:space:]]*\([[:space:]]*\)$/\1\2'"$value_rp"'\3/' \ "$tmpconfigfile" > "$tmpfile" cat "$tmpfile" > "$tmpconfigfile" else echo "Limit $limit $value" >> "$tmpconfigfile" fi fi done # remove remaining x-Limit options grep -v '^[[:space:]]*x-Limit' < "$tmpconfigfile" > "$tmpfile" || true cat "$tmpfile" > "$tmpconfigfile" # acutually save (and make a backup) of the configfile # only save if there are any differences if ! diff "$tmpconfigfile" "$configfile" > /dev/null 2>&1 then if [ -e "$configfile" ] then # make backup [ -e "$configfile.old" ] || ( touch "$configfile.old"; chmod 644 "$configfile.old") cat "$configfile" > "$configfile.old" else # create configfile touch "$configfile" chmod 644 "$configfile" fi cat "$tmpconfigfile" > "$configfile" fi rm "$tmpconfigfile" rm "$tmpfile" # rebuild the rootjail if [ "$rootjail" != "none" ] then cvsd-buildroot "$rootjail" fi #DEBHELPER# db_stop exit 0 cvsd-1.0.24/debian/source/0000755000000000000000000000000011762426457012163 5ustar cvsd-1.0.24/debian/source/format0000644000000000000000000000001511575113147013361 0ustar 3.0 (native) cvsd-1.0.24/cvsd-passwd.8.in0000644000000000000000000000500311214544220012350 0ustar .\" Copyright (C) 2001, 2002, 2003, 2004 Arthur de Jong .\" .\" This program is free software; you can redistribute it and/or modify .\" it under the terms of the GNU General Public License as published by .\" the Free Software Foundation; either version 2, or (at your option) .\" any later version. .\" .\" This program is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .\" GNU General Public License for more details. .\" .\" You should have received a copy of the GNU General Public License .\" along with this program; if not, write to the Free Software .\" Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA .TH "cvsd\-passwd" "8" "@RELEASE_MONTH@" "Version @VERSION@" "System Manager's Manual" .nh .SH "NAME" cvsd\-passwd \- generate password entries for repositories .SH "SYNOPSIS" .B cvsd\-passwd .RI REPOS .RI [+|\-]NAME... .SH "DESCRIPTION" \fBcvsd\-passwd\fP adds, updates or deletes users from repository passwd files for use with cvsd. .SH "OPTIONS" .TP .B REPOS Specify the directory in which the repository is located. This argument can be the top of the repository, the CVSROOT directory or even the passwd file in the CVSROOT directory. .TP .B [+]USER[:SUSER] Add or update the user to the CVSROOT/passwd file. If the user does not exist a password for the user is asked and the user is added for use with cvsd. If the user already exists a password for is asked and the password field is modified. The :SUSER part can be user to change or set mapping to a system user. If you do not specify anything, a reasonable default is used based upon your cvsd configuration. If you don't want to map the user to any specified system user you can specify an empty SUSER and use \(oqUSER:\(cq. .TP .B \-USER Remove the user from the CVSROOT/passwd file. .SH "EXAMPLES" Add an anoncvs user to access the given repository: .ft B cvsd\-passwd /var/lib/cvsd/myrepos +anoncvs .ft R .br If the user already exists, change the password. Remove a user from the repository passwd list: .ft B cvsd\-passwd /var/lib/cvsd/myrepos \-foo .ft R Add a user and specify that cvs should remap this user to the joe system user: .ft B cvsd\-passwd /var/lib/cvsd/myrepos joecvs:joe .ft R .br Note that the user joe should be known in the system passwd file and that cvsd should be run as root or user joe for this to work. .SH "SEE ALSO" .BR cvsd(8) .SH "AUTHOR" Arthur de Jong . cvsd-1.0.24/cvsd-passwd.in0000644000000000000000000001544710257273703012232 0ustar #! @PERL@ -w # cvsd-passwd - generate password entries for repositories # Copyright (C) 2000 Philippe Kehl # Copyright (C) 2002 Arthur de Jong # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # the configfile to get the uid settings from $configfile='@CONFIGFILE@'; # the user cvsd is run under # this value is used to set up new repository account mappings $default_usermap=''; open(PWDFILE,"<$configfile") or warn("$0: can't open configfile '$configfile': $!\n"); while() { $default_usermap=$1 if (/^Uid\s*([^\s]*)/); } close(PWDFILE); $default_usermap='' if $default_usermap eq 'root' or $default_usermap eq '0'; # print command usage sub usage { print <); print "\nRetype new password: "; chomp($passwd2=); print "\n"; system "stty echo"; $passwd1 eq $passwd2 or die "$0: Error: passwords do not match\n"; return $passwd1; } # find out which passwd file to use from the supplied argument sub passwdfile { my ($repos) = shift; $repos=substr($repos,0,-1) if ( $repos =~ /\/$/ ); my ($passwdfile,$basename); ($basename=$repos)=~s{.*/([^/]*)$}{$1}; if ($basename eq "passwd") { $passwdfile=$repos; } elsif ($basename eq "CVSROOT" && -d $repos) { $passwdfile=$repos."/passwd"; } elsif (-d $repos."/CVSROOT") { $passwdfile=$repos."/CVSROOT/passwd"; } else { die "$0: Error: argument should be an existing repository\n"; } return $passwdfile; } # remove the specified user from the specified repository passwd file sub removeuser { my ($passwdfile, $user) = @_; my ($tmpfile) = "/tmp/.cvsd-passwd-$$".join('',('=','-',0..9,'A'..'Z','a'..'z')[rand 64,rand 64]); print "$0: removing user '$user' from '$passwdfile'\n"; eval { open(PWDFILE,"<$passwdfile") or die("$0: Error: can't open passwd file '$passwdfile': $!\n"); open(TMPFILE,">$tmpfile") or die("$0: Error: can't open temporary file '$tmpfile': $!\n"); my $found=0; while() { if (/^$user:/) { $found++; next; } print TMPFILE; } $found>0 or die("$0: Error: user '$user' not found in '$passwdfile'\n"); $found<2 or warn("$0: Warning: user was found multiple times, removing all occurrences\n"); close(TMPFILE); close(PWDFILE); open(TMPFILE,"<$tmpfile") or die("$0: Error: can't open temporary file '$tmpfile': $!\n"); open(PWDFILE,">$passwdfile") or die("$0: Error: can't open passwd file '$passwdfile': $!\n"); while() { print PWDFILE; } close(TMPFILE); close(PWDFILE); }; unlink($tmpfile); die $@ if $@; } # add a user to the specified passwd file # a mapping may be supplied to specify either a mapping to a system user # (":sysuser"), to not use mappings (":") or to use the default ("") # TODO: this function should be split in a couple of parts sub adduser { my ($passwdfile, $user, $map) = @_; my ($found) = 0; if ( -e "$passwdfile" ) { open(PWDFILE,"<$passwdfile") or die("$0: Error: can't open passwd file '$passwdfile': $!\n"); while() { $found++ if (/^$user:/); } close(PWDFILE); } if ($found == 0) { $map = ':'.$default_usermap if ( $map eq '' ); $map = '' if ( $map eq ':' ); print "$0: adding user '$user' to '$passwdfile'\n"; open(PWDFILE,">>$passwdfile") or die("$0: Error: can't open passwd file '$passwdfile': $!\n"); print PWDFILE "$user:".cryptpasswd(askpasswd()).$map."\n"; close(PWDFILE); } else { $found<2 or warn("$0: Warning: user was found multiple times, changing all occurrences\n"); my ($tmpfile) = "/tmp/.cvsd-passwd-$$".join('',('=','-',0..9,'A'..'Z','a'..'z')[rand 64,rand 64]); eval { open(PWDFILE,"<$passwdfile") or die("$0: Error: can't open passwd file '$passwdfile': $!\n"); open(TMPFILE,">$tmpfile") or die("$0: Error: can't open temporary file '$tmpfile': $!\n"); while() { if (/^$user:/) { print "$0: changing password for user '$user' in '$passwdfile'\n"; my $cp=cryptpasswd(askpasswd()); if ( $map eq '' ) { s/^$user:[^:]*(:?.*)\n$/$user:$cp$1\n/; } elsif ( $map eq ':' ) { s/^$user:[^:]*(:?.*)\n$/$user:$cp\n/; } else { s/^$user:[^:]*(:?.*)\n$/$user:$cp$map\n/; } } print TMPFILE; } close(PWDFILE); close(TMPFILE); open(TMPFILE,"<$tmpfile") or die("$0: Error: can't open temporary file '$tmpfile': $!\n"); open(PWDFILE,">$passwdfile") or die("$0: Error: can't open passwd file '$passwdfile': $!\n"); while() { print PWDFILE; } close(TMPFILE); close(PWDFILE); }; unlink($tmpfile); die $@ if $@; } } # main program if ($#ARGV<1) { usage(); exit 1; } # find the passwdfile $passwdfile=passwdfile(shift); # process the arguments my ($moduser); while ($moduser = shift) { my ($modmap)=''; if ( $moduser =~ /:/ ) { ($moduser,$modmap) = split(/:/,$moduser); $modmap = ":".$modmap; } if ( $moduser =~ /^-.*$/ ) { removeuser($passwdfile,substr($moduser,1)); } else { $moduser=substr($moduser,1) if ( $moduser =~ /^\+.*$/ ); adduser($passwdfile,$moduser,$modmap); } } # we're done exit 0; cvsd-1.0.24/config.sub0000744000000000000000000010517611762425616011430 0ustar #! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, # 2011, 2012 Free Software Foundation, Inc. timestamp='2012-02-10' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted GNU ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ knetbsd*-gnu* | netbsd*-gnu* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; android-linux) os=-linux-android basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray | -microblaze) os= basic_machine=$1 ;; -bluegene*) os=-cnk ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | aarch64 | aarch64_be \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | be32 | be64 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | epiphany \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | le32 | le64 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ | mips64r5900 | mips64r5900el \ | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nds32 | nds32le | nds32be \ | nios | nios2 \ | ns16k | ns32k \ | open8 \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ | pyramid \ | rl78 | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu \ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ | ubicom32 \ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ | we32k \ | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; c54x) basic_machine=tic54x-unknown ;; c55x) basic_machine=tic55x-unknown ;; c6x) basic_machine=tic6x-unknown ;; m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip) basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; strongarm | thumb | xscale) basic_machine=arm-unknown ;; xgate) basic_machine=$basic_machine-unknown os=-none ;; xscaleeb) basic_machine=armeb-unknown ;; xscaleel) basic_machine=armel-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | aarch64-* | aarch64_be-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | hexagon-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | le32-* | le64-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ | mips64r5900-* | mips64r5900el-* \ | mips64vr-* | mips64vrel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nds32-* | nds32le-* | nds32be-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | open8-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | pyramid-* \ | rl78-* | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ | tahoe-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tile*-* \ | tron-* \ | ubicom32-* \ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aros) basic_machine=i386-pc os=-aros ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; bluegene*) basic_machine=powerpc-ibm os=-cnk ;; c54x-*) basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c55x-*) basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c6x-*) basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c90) basic_machine=c90-cray os=-unicos ;; cegcc) basic_machine=arm-unknown os=-cegcc ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16 | cr16-*) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; dicos) basic_machine=i686-pc os=-dicos ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; microblaze) basic_machine=microblaze-xilinx ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; msys) basic_machine=i386-pc os=-msys ;; mvs) basic_machine=i370-ibm os=-mvs ;; nacl) basic_machine=le32-unknown os=-nacl ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; neo-tandem) basic_machine=neo-tandem ;; nse-tandem) basic_machine=nse-tandem ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc | ppcbe) basic_machine=powerpc-unknown ;; ppc-* | ppcbe-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; strongarm-* | thumb-*) basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tile*) basic_machine=$basic_machine-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; xscale-* | xscalee[bl]-*) basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; z80-*-coff) basic_machine=z80-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -auroraux) os=-auroraux ;; -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-android* \ | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -dicos*) os=-dicos ;; -nacl*) ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; tic54x-*) os=-coff ;; tic55x-*) os=-coff ;; tic6x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -cnk*|-aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: cvsd-1.0.24/NEWS0000644000000000000000000003777611757641505010161 0ustar changes from 1.0.23 to 1.0.24 ----------------------------- * Debian packaging updates changes from 1.0.22 to 1.0.23 ----------------------------- * have cvsd-buildroot look in all multiarch subdirectories of /lib for NSS libraries * portability improvement by Eric Schnoebelen * Debian packaging updates changes from 1.0.21 to 1.0.22 ----------------------------- * don't log EINTR on select() any more, not even in debug mode * fix for cvsd-buildroot to also work on multiarch setups * log address and port with bind() failures * Debian packaging updates changes from 1.0.20 to 1.0.21 ----------------------------- * handle failure of bind() as a fatal error changes from 1.0.19 to 1.0.20 ----------------------------- * correctly listen on IPv4 and IPv6 addresses with recent Glibc versions by not depending on the order of address records returned by getaddrinfo() and work regardless of net.ipv6.bindv6only sysctl changes from 1.0.18 to 1.0.19 ----------------------------- * cvsd-buildroot: ignore commented out lines in CVSROOT/passwd files * cvsd-buildroot: set an umask for generated files * some documentation updates * change init script dependency on $remote_fs (for /usr) from Should to Required (thanks lintian) * Debian packaging improvements changes from 1.0.17 to 1.0.18 ----------------------------- * use simpler shell semantics in cvsd-buildroot to fix a problem with bash 4 * fix call to uname in the cvsd-buginfo script changes from 1.0.16 to 1.0.17 ----------------------------- * update to automake 1.11 * some small spelling fixes in documentation * changed references to home page and contact email addresses to use arthurdejong.org * Debian packaging improvements changes from 1.0.15 to 1.0.16 ----------------------------- * added Swedish debconf translation by Martin Bagge * some small Debian packaging fixes changes from 1.0.14 to 1.0.15 ----------------------------- * fix init script to return proper exit code when stopping non-running cvsd or starting already-started cvsd * take a shot at making debian/copyright machine parseable * cvsd-buildroot now removes tls directories in the chroot jail if the environment outside it does not contain them (any more) changes from 1.0.13 to 1.0.14 ----------------------------- * Debian packaging improvements * some typo fixes in documentation and other minor fixes in the code changes from 1.0.12 to 1.0.13 ----------------------------- * cvsd-buildroot: further portability improvements on 64 bit platforms * added Portuguese debconf translation by Ricardo Silva * added warnings and errors on failing to close a socket changes from 1.0.11 to 1.0.12 ----------------------------- * fixes in cvsd-buildroot to not abort on failure of some commands changes from 1.0.10 to 1.0.11 ----------------------------- * cvsd-buildroot should now install libraries in the same directory structure as on the normal filesystem, resulting in better support for 64 bit systems * other small improvements to cvsd-buildroot, including better error handling and not overwriting devices * small code improvements changes from 1.0.9 to 1.0.10 ---------------------------- * added CvsArgs configfile option to pass extra arguments to the cvs command thanks to Stefan Bethke * now really add Czech debconf translation (see release 1.0.5) * added Spanish debconf translation by César Gómez Martín changes from 1.0.8 to 1.0.9 --------------------------- * changed email address and homepage location, new homepage is at http://ch.tudelft.nl/~arthur/cvsd/ * small changes to the FAQ * add support in cvsd-buildroot to copy users from nis/ldap instead of directly from /etc/passwd changes from 1.0.7 to 1.0.8 --------------------------- * fix typo in English debconf templates by Clytie Siddall * added Vietnamese debconf translation by Clytie Siddall * some Debian package improvements changes from 1.0.6 to 1.0.7 --------------------------- * applied patch for running configure from another directory * improvements to the README * fix bug in cvsd-buildroot correctly creating lib64 directory changes from 1.0.5 to 1.0.6 --------------------------- * cvsd-buildroot creates lib64 and usr/lib64 inside the chroot jail if they exist on the system and add /lib64/ld-linux-x86-64.so.2 to list of libraries that will be installed (useful for amd64 amongst others) * remove -Wformat-literal option to enable warnings on more compilers changes from 1.0.4 to 1.0.5 --------------------------- * added Czech debconf translation by Jan Outrata * added more checks to cvsd-buginfo script * work around a problem in some implementations of ldd that produces output which causes cvsd-buildroot to not install a needed library changes from 1.0.3 to 1.0.4 --------------------------- * fix small bug in cvsd-buginfo * added Japanese debconf translation by Hideki Yamane * small Debian package improvements * upgrade to automake 1.9 changes from 1.0.2 to 1.0.3 --------------------------- * documentation improvements and fixes * made scripts more portable * added cvsd-buginfo script for gathering information for bugreports and added reportbug hooks in the debian package * added experimental capabilities support (disabled by default) based on a patch by Shugo Maeda changes from 1.0.1 to 1.0.2 --------------------------- * Danish translation for debian package configuration by Claus Hindsgaul, also translation updates for German by Jens Seidel and French by Christian Perrier, plus some more small configuration improvements * have cvsd-buildroot also create /libexec in the chroot jail if it is present on the system (fix for FreeBSD 5.2.1) * init script now use kill -0 to check if cvsd is running (not the nicest solution, but it seems to be the most portable solution) changes from 1.0.0 to 1.0.1 --------------------------- * move logging of exiting child processes and exit signals out of signal handlers to avoid deadlock racecondition in signal-unsafe functions, thanks to Dan Nuffere for spotting this * updated German translation from ddtp for debian package configuration * upgrade to autoconf 2.59 * some redhat packaging improvements changes from 0.9.20 to 1.0.0 ---------------------------- * switched to using rpmbuild for building rpms * French translation for debian package configuration changes from 0.9.19 to 0.9.20 ----------------------------- * debian package improvements * rewrite code for storing of configuration settings * upgrade to automake 1.7 * some documentation improvements * check for tmpreaper in cvsd-buildroot should work now * fix for when MaxConnections is 0 changes from 0.9.18 to 0.9.19 ----------------------------- * small code improvements * upgrade to autoconf (2.57) and automake (1.6.3) * fixes to libwrap code and improvements to properly detect required libraries for libwrap from configure * debian configuration improvements (cvsd.conf is now modified instead of replaced and support for translations has been added) changes from 0.9.17 to 0.9.18 ----------------------------- * fix in cvsd-buildroot (typo) thanks to Brent Cooke * small portability fixes taken from the FreeBSD ports system * some documentation improvements * updated manual pages to represent hyphens and dashes correctly * added status option to init script * many Debian configuration improvements changes from 0.9.16 to 0.9.17 ----------------------------- * cvsd-buildroot now tests if devices are usable * libwrap improvements for RedHat 8 thanks to Dave Love * configure script improvements * upgrade to automake 1.6 * fix for bug in getaddrinfo() replacement thanks to Leonid Y Lisovskiy * configure fix for SCO thanks to Leonid Y Lisovskiy changes from 0.9.15 to 0.9.16 ----------------------------- * logging may now be customized through the Log configoption * errors in configfile are reported to stderr on startup * backwards compatibility for the old Port configoption was removed * normal logging is now disabled in debugging mode (-d switch) * fixed bug that caused logging to always occur at debug level * configure is a little more verbose now * some small portability improvements changes from 0.9.14 to 0.9.15 ----------------------------- * add -d switch to cvsd to run cvsd in debugging mode with verbose logging to stderr * turned off hyphenation in manual pages * rewritten logging code to be more configurable * updated README * FAQ is now generated from faq.html of homepage * .spec file and init script fixes for redhat changes from 0.9.13 to 0.9.14 ----------------------------- * upgrade debian building and configuration process * drop all supplemenal group priviliges * close all unnecessary file descriptors before running cvs (These two fixes are security related but pose a risc only if the cvs pserver itself is exploited, thanks to env_audit for finding these.) * cvsd-passwd now gets default user mapping from cvsd.conf changes from 0.9.12 to 0.9.13 ----------------------------- * added ability to specify which cvs binary to use * implemented tcp wrapper support (disabled by default) * cvsd-buildroot: fix for locating repository passwd files * some small adjustments to get it into Debian/unstable (in intermediate release 0.9.12.1) * on debian package removal, prompt for removal of chroot jail changes from 0.9.11 to 0.9.12 ----------------------------- * updated cvsd-passwd manual page * cvsd-buildroot fixes for Solaris * initial release for Debian/unstable changes from 0.9.10 to 0.9.11 ----------------------------- * bugfixes and code documentation to cvsd-passwd * extra checks and warnings in cvsd-buildroot * fixed bugs in portability wrappers for older systems thanks to Florian Zschocke * made cvsd-buildroot output better readable changes from 0.9.9 to 0.9.10 ---------------------------- * removed old networking code and replaced with wrappers for getaddrinfo() and related functions * documentation updates (manual pages and README) * cvsd-buildroot: create lock directories referenced in repositories * miscellaneous portability enhancements and fixes * removed removing of pidfile since this is probably silly * add mapping to system user on commandline for cvsd-passwd * init scripts now reads pidfile from configfile * added experimental .spec file thanks to Matthew L Daniel and Andreas Metzler changes from 0.9.8 to 0.9.9 --------------------------- * lots of portability fixes in cvsd, cvsd-buildroot and init script cvsd should now work on OpenBSD and probably Solaris and FreeBSD * documentation improvements (new FAQ and README section on lockfiles) * remove pidfile on exit * Listen options can be specified in several formats * add redhat 7.1 init script changes from 0.9.7 to 0.9.8 --------------------------- * be more forgiving when binding sockets fail (missing protocols etc) * networking code fixes to increase portability * fixed off by one bug when listening on more than 16 sockets changes from 0.9.6 to 0.9.7 --------------------------- * replaced Port configoption by Listen configoption * improved networking code to allow IPv6 and listening on multiple network interfaces * use daemon() function if available * numerous code improvements (see ChangeLog) changes from 0.9.5 to 0.9.6 --------------------------- * configure fixes for solaris (and others?) * added Umask configuration option * split source for configfile to separate sourcefile * cleaned up source and include file handling * added more debugging information for better testing changes from 0.9.4 to 0.9.5 --------------------------- * now using autoconf 2.50 * first steps to get cvsd to compile on solaris * split source in several files for better maintainability * added 'unlimited' value for limits changes from 0.9.3 to 0.9.4 --------------------------- * added CvsCommand in configuration file * small fix to init script for slow releasing sockets (should be fixed better) * added Limit options * improved Debian scripts changes from 0.9.2 to 0.9.3 --------------------------- * provide simple getopt_long() for systems that don't have it * go more easy on failing accept() * logging output is more readable changes from 0.9.1 to 0.9.2 --------------------------- * added nice values to daemon * improved signal handling with signal names * code cleanup * spelling checked most stuff * debian configuration fully through debconf changes from 0.9.0 to 0.9.1 --------------------------- * added cvsd-passwd tool for editing CVSROOT/passwd files * improved debian configuration (getting there) * added support for symbolic uids and gids in configfile * cvsd-buildroot updated to add support for changing passwd values * small improvements to logging * cvsd now daemonizes itself and writes pidfile changes from 0.8b3 to 0.9.0 --------------------------- * almost everything was rewritten, see ChangeLog for details * cvsd does not need inetd anymore * all configuration is done from a configuration file * use of autoconf/automake/configure changes from 0.8b2 to 0.8b3 --------------------------- * cvsd.h was missing. added. changes from 0.8b1 to 0.8b2 --------------------------- * added user 'cvsadmin' with password 'cvsadmin' to 'system' passwd file (/etc/passwd in the cvsd-root). this user is allowed to read write all repositories (if not denied by a cvs mechanism like the readers file) * bad permissions on some dirs. all dirs (and files) now belong to cvsadmin. hmm.. what do you think? * a major bug fix: memory allocation problem (which somehow only is a problem if you have a lot of CVSROOTs). fixed. * some bugs in the Makefile, bad permissions, bad shell for su command, and some others. changes from 0.7 to 0.8b1 ------------------------- * cvsd.c: not much of the original sources (0.6) remained. almost everything is rewritten and overthought. * cvsd now aborts if there isn't any valid CVSROOT in the config file. * simplified config file and introduced command line options Why should one specify the uid, gid and cvsd-root in the config file? Such things don't change frequently and perhaps the sysop wants to allow other people adding/removing repositories. So: --uid or -u specifies the uid cvs will run as. has default. --gid or -g specifies the gid cvs will run as. has default. --root or -r specifies the cvsd-root (where to chroot). NO default. --config -f specifies the config file (i.e. list of allowed repositories). has default. --verbose turns on verbose logging (to syslog). if set cvsd reports about everything. also the flag -t is passed to cvs which means 'trace' and enables more verbose working of cvs pserver. --help prints help screen (to stdout!) --version prints version information (to stdout!) * logging: cvsd almost only reports via the syslog LOG_DAEMON facility. it uses priority LOG_INFO for informational things and LOG_ERR for errors. if !verbose and no errors occurred (i.e. suspicious directory mode) cvsd only reports 'connection mad.' to syslog and then passes over to cvs. * permission checks: cvsd now checks for proper mode on several files/directories. in general uid/gid needs to be those of the cvsd user and there may not be any bits set for the other user. furthermore the w bit for the group mustn't be set and no file (or dir) may be a symlink. see the #defines in cvsd.c for details. - the cvsd-root - the /etc/passwd file (relative to cvsd-root, of course) - the /bin/cvs file - every directory listed in /etc/cvsd.conf. bad dirs will be ignored. * 0.7 was c++, 0.8 is c again. * hey gurus, what do you think? is this worth something? don't hesitate: phkehl@gmx.net * Makefile / Installation - nicer 'make user' and 'make group' - there's an (empty) example CVSROOT (mad by 'make install') * the name is /example and there are two users: * user example with password example who may read and write (import and such) * user cvsread with password cvsread who has read-only access (this is * done via the normal cvs pserver mechanism, i.e. cvsread is listed in /example/CVSROOT/readers changes from 0.6 to 0.7 ----------------------- * cleaner config file and cleaner cvsd-1.0.24/cvsd-buginfo.8.in0000644000000000000000000000305511316744421012515 0ustar .\" Copyright (C) 2004, 2009 Arthur de Jong .\" .\" This program is free software; you can redistribute it and/or modify .\" it under the terms of the GNU General Public License as published by .\" the Free Software Foundation; either version 2, or (at your option) .\" any later version. .\" .\" This program is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .\" GNU General Public License for more details. .\" .\" You should have received a copy of the GNU General Public License .\" along with this program; if not, write to the Free Software .\" Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA .TH "cvsd\-buginfo" "8" "@RELEASE_MONTH@" "Version @VERSION@" "System Manager's Manual" .nh .SH "NAME" cvsd\-buginfo \- print out cvsd configuration information for bug reports .SH "SYNOPSIS" .B cvsd\-buginfo .RI [OPTION]... .SH "DESCRIPTION" \fBcvsd\-buginfo\fP writes out configuration information, including cvsd.conf, chroot jail layout and repository configuration to standard output. .SH "OPTIONS" \fBcvsd\-buginfo\fP accepts the following options: .TP .B \-f, \-\-config=FILE Use FILE as configfile (default is @CONFIGFILE@). .TP .B \-a, \-\-quiet, \-\-silent Hide warnings that indicate possible problems. .TP .B \-\-help Display short help and exit. .TP .B \-V, \-\-version Output version information and exit. .SH "SEE ALSO" .BR cvsd (8), .BR cvsd.conf (5) .SH "AUTHOR" Arthur de Jong . cvsd-1.0.24/depcomp0000744000000000000000000005064311762425622011015 0ustar #! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2012-03-27.16; # UTC # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010, # 2011, 2012 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by 'PROGRAMS ARGS'. object Object file output by 'PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputting dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac # A tabulation character. tab=' ' # A newline character. nl=' ' if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then # This is just like msvisualcpp but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u='sed s,\\\\,/,g' depmode=msvisualcpp fi if test "$depmode" = msvc7msys; then # This is just like msvc7 but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u='sed s,\\\\,/,g' depmode=msvc7 fi if test "$depmode" = xlc; then # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency informations. gccflag=-qmakedep=gcc,-MF depmode=gcc fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the "deleted header file" problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' "$nl" < "$tmpdepfile" | ## Some versions of gcc put a space before the ':'. On the theory ## that the space means something, we add a space to the output as ## well. hp depmode also adds that space, but also prefixes the VPATH ## to the object. Take care to not repeat it in the output. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like '#:fec' to the end of the # dependency line. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr "$nl" ' ' >> "$depfile" echo >> "$depfile" # The second pass generates a dummy entry for each header file. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; xlc) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts '$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u tmpdepfile3=$dir.libs/$base.u "$@" -Wc,-M else tmpdepfile1=$dir$base.u tmpdepfile2=$dir$base.u tmpdepfile3=$dir$base.u "$@" -M fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then # Each line is of the form 'foo.o: dependent.h'. # Do two passes, one to just change these to # '$object: dependent.h' and one to simply 'dependent.h:'. sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler anf tcc (Tiny C Compiler) understand '-MD -MF file'. # However on # $CC -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using '\': # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... # tcc 0.9.26 (FIXME still under development at the moment of writing) # will emit a similar output, but also prepend the continuation lines # with horizontal tabulation characters. "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form 'foo.o: dependent.h', # or 'foo.o: dep1.h dep2.h \', or ' dep3.h dep4.h \'. # Do two passes, one to just change these to # '$object: dependent.h' and one to simply 'dependent.h:'. sed -e "s/^[ $tab][ $tab]*/ /" -e "s,^[^:]*:,$object :," \ < "$tmpdepfile" > "$depfile" sed ' s/[ '"$tab"'][ '"$tab"']*/ /g s/^ *// s/ *\\*$// s/^[^:]*: *// /^$/d /:$/d s/$/ :/ ' < "$tmpdepfile" >> "$depfile" rm -f "$tmpdepfile" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" # Add 'dependent.h:' lines. sed -ne '2,${ s/^ *// s/ \\*$// s/$/:/ p }' "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in 'foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mechanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; msvc7) if test "$libtool" = yes; then showIncludes=-Wc,-showIncludes else showIncludes=-showIncludes fi "$@" $showIncludes > "$tmpdepfile" stat=$? grep -v '^Note: including file: ' "$tmpdepfile" if test "$stat" = 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" # The first sed program below extracts the file names and escapes # backslashes for cygpath. The second sed program outputs the file # name when reading, but also accumulates all include files in the # hold buffer in order to output them again at the end. This only # works with sed implementations that can handle large buffers. sed < "$tmpdepfile" -n ' /^Note: including file: *\(.*\)/ { s//\1/ s/\\/\\\\/g p }' | $cygpath_u | sort -u | sed -n ' s/ /\\ /g s/\(.*\)/'"$tab"'\1 \\/p s/.\(.*\) \\/\1:/ H $ { s/.*/'"$tab"'/ G p }' >> "$depfile" rm -f "$tmpdepfile" ;; msvc7msys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove '-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for ':' # in the target name. This is to cope with DOS-style filenames: # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. "$@" $dashmflag | sed 's:^['"$tab"' ]*[^:'"$tab"' ][^:][^:]*\:['"$tab"' ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' "$nl" < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # X makedepend shift cleared=no eat=no for arg do case $cleared in no) set ""; shift cleared=yes ;; esac if test $eat = yes; then eat=no continue fi case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -arch) eat=yes ;; -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix=`echo "$object" | sed 's/^.*\././'` touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" # makedepend may prepend the VPATH from the source file name to the object. # No need to regex-escape $object, excess matching of '.' is harmless. sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' "$nl" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove '-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi IFS=" " for arg do case "$arg" in -o) shift ;; $object) shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E 2>/dev/null | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" echo "$tab" >> "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; msvcmsys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: cvsd-1.0.24/ChangeLog0000644000000000000000000002507411762426410011210 0ustar 2012-06-02 17:10 arthur * NEWS, configure.ac, debian/changelog, ChangeLog: release 1.0.24 2012-05-25 10:33 arthur * depcomp: include updated file 2012-05-25 10:26 arthur * debian/postrm: fix indenting 2012-05-25 10:23 arthur * debian/postrm: allow preseeding of cvsd/remove_chroot 2012-03-04 21:08 arthur * debian/: compat, control, rules: bump debhelper compatibility to 9 and enable hardening flags (thanks Simon Ruderich) 2012-03-04 11:25 arthur * NEWS, README, configure.ac, cvsd.c, debian/changelog, ChangeLog: release 1.0.23 2012-03-04 11:18 arthur * debian/po/vi.po: fix Vietnamese debconf translation to use correct paragraph markers 2012-03-04 10:48 arthur * debian/control: upgrade to standards-version 3.9.3 (no changes needed) 2012-03-04 10:47 arthur * debian/copyright: switch to machine-readable format 1.0 2012-03-04 10:40 arthur * INSTALL, config.guess, config.sub, depcomp, install-sh, missing: include updated files 2012-03-04 10:17 arthur * debian/po/it.po: add Italian (it) translation of debconf templates by Beatrice Torracca 2011-10-04 21:30 arthur * cfg.c: portability improvement by Eric Schnoebelen 2011-08-07 23:11 arthur * Makefile.am, debian/compat, debian/control, debian/cvsd.bug-script, debian/cvsd.bug.script, debian/rules: switch to dh for debian/rules and bump debhelper compatibility to 8 2011-08-07 22:09 arthur * configure.ac: add the possibility to specify --disable-maintainer-mode 2011-07-03 22:37 arthur * cvsd-buildroot.in: look in all subdirectories of /lib for NSS modules 2011-06-13 14:07 arthur * NEWS, README, configure.ac, debian/changelog, debian/copyright, ChangeLog: release 1.0.22 2011-06-12 13:25 arthur * FAQ: update FAQ from website 2011-06-12 13:12 arthur * debian/control: upgrade to standards-version 3.9.2 (no changes needed) 2011-06-12 12:58 arthur * config.guess, config.sub: include updated files 2011-06-12 12:47 arthur * Makefile.am: make deb now always uses debuild 2011-06-12 12:36 arthur * debian/source/format: switch to 3.0 (native) source format 2011-06-10 09:50 arthur * cvsd-buildroot.in: look for system libraries in all paths of /etc/ld.so.conf 2011-01-29 22:20 arthur * cvsd.c: log address and port with bind() failures and only do getnameinfo once for every address/port to bind 2010-12-28 22:17 arthur * debian/cvsd.init: revert change of killing hanging cvs children to avoid breaking existing connections 2010-12-24 15:25 arthur * FAQ: update FAQ from website 2010-12-23 17:44 arthur * cvsd.c: don't log EINTR on select() any more, not even in debug mode because it scares the users 2010-12-23 17:28 arthur * debian/cvsd.init: kill any remaining child process from init script on stop 2010-12-23 16:58 arthur * .cvsignore: ignore configure.lineno 2010-09-08 22:15 arthur * NEWS, configure.ac, debian/changelog, ChangeLog: release 1.0.21 2010-09-08 21:46 arthur * cvsd.c: log bind() failures as error and bail out 2010-09-08 21:31 arthur * cvsd.c: remove remainer of test for previous address bound 2010-09-05 10:33 arthur * NEWS, configure.ac, debian/changelog, ChangeLog: release 1.0.20 2010-08-29 15:29 arthur * cfg.c: use AI_ADDRCONFIG with getaddrinfo() to avoid getting addresses for protocols we cannot handle on this host 2010-08-29 15:27 arthur * cvsd.c: use IPV6_V6ONLY on IPv6 sockets to ensure that they only handle IPv6 traffic 2010-08-26 20:59 arthur * cvsd.c: simplify error handling of bind() even further 2010-08-25 23:24 arthur * cvsd.c: now always ignore EADDRINUSE for bind() calls because now IPv4 addresses from getaddrinfo() are returned before IPv6 ones for some reason 2010-08-17 18:15 arthur * NEWS, configure.ac, debian/changelog, ChangeLog: release 1.0.19 2010-08-15 12:08 arthur * debian/po/: cs.po, da.po, de.po, es.po, fr.po, ja.po, nl.po, pt.po, pt_BR.po, ru.po, sv.po, vi.po: update .po files with debconf-updatepo 2010-08-15 12:05 arthur * cvsd.init.in: change init script dependency on $remote_fs (for /usr) from Should to Required (same as in debian/cvsd.init) 2010-08-13 22:33 arthur * README, configure.ac: redirect bugs to the cvsd-users mailing list 2010-08-13 22:31 arthur * FAQ: update FAQ from homepage 2010-08-13 21:25 arthur * debian/control: upgrade to standards-version 3.9.1 (no changes needed) 2010-08-13 20:38 arthur * Makefile.am, debian/source/format: switch to source format "3.0 (native)" 2010-08-13 20:22 arthur * INSTALL, config.guess, config.sub: include updated files 2010-07-05 23:29 arthur * cvsd-buildroot.in: set an umask for generated files 2010-07-05 23:18 arthur * cvsd-buildroot.in: ignore commented out lines in CVSROOT/passwd files (thanks to Ondrej Jombik for reporting this) 2010-02-28 20:45 arthur * debian/cvsd.init: change init script dependency on $remote_fs (for /usr) from Should to Required (thanks lintian) 2010-01-14 22:31 arthur * NEWS, configure.ac, debian/changelog, ChangeLog: release 1.0.18 2010-01-14 22:29 arthur * README, cvsd-buginfo.in, cvsd.c: update copyright year 2010-01-14 22:08 arthur * cvsd-buildroot.in: use if-statements rather than || and && where possible when creating the chroot directory layout (fixes a problem with bash 4) 2010-01-14 21:30 arthur * cvsd-buginfo.in: fix uname invocation 2009-12-30 22:59 arthur * NEWS, configure.ac, debian/changelog, ChangeLog: release 1.0.17 2009-12-30 22:53 arthur * debian/: compat, control, rules: upgrade to debhelper compatibility level 7 2009-12-30 22:50 arthur * debian/control: upgrade to standards-version 3.8.3 (no changes needed) 2009-12-30 22:44 arthur * README, cvsd-buginfo.8.in, cvsd-buildroot.8.in, cvsd.conf.5.in: spelling fixes (thanks lintian for pointing one out) 2009-09-21 22:06 arthur * INSTALL, autogen.sh, config.guess, config.sub, depcomp, install-sh, missing, mkinstalldirs: upgrade to using automake 1.11 2009-09-21 22:00 arthur * configure.ac, cvsd.c: we assume signal handler returns void 2009-09-21 21:54 arthur * debian/po/ru.po: add Russian (ru) translation of debconf templates by Yuri Kozlov 2009-06-12 23:48 arthur * AUTHORS, FAQ, Makefile.am, README, configure.ac, cvsd-buginfo.8.in, cvsd-buildroot.8.in, cvsd-passwd.8.in, cvsd.8.in, cvsd.c, cvsd.conf.5.in, cvsd.spec.in, debian/control, debian/copyright: replace references to ch.tudelft.nl with arthurdejong.org 2009-03-15 18:30 arthur * debian/control: move to new section vcs 2008-12-21 16:19 arthur * NEWS, configure.ac, debian/changelog, ChangeLog: release 1.0.16 2008-12-15 10:44 arthur * debian/po/sv.po: add Swedish (sv) translation of debconf templates by Martin Bagge 2008-08-09 19:03 arthur * Makefile.am, debian/lintian-overrides, debian/postinst, debian/rules: fix some lintian issues (override some and fix one) 2008-06-13 16:49 arthur * NEWS, configure.ac, debian/changelog, ChangeLog: release 1.0.15 2008-06-13 16:47 arthur * config.guess, config.sub: include updated files 2008-06-13 16:41 arthur * configure.ac, cvsd-buildroot.in, cvsd.c, debian/copyright: update copyright year 2008-06-13 16:39 arthur * ChangeLog, ChangeLog-2006: moved changes of 2006 to ChangeLog-2006 2008-06-13 16:32 arthur * debian/control: upgrade to standards-version 3.8.0 (no changes needed) 2008-06-13 16:16 arthur * debian/copyright: take a shot at making debian/copyright machine parseable 2008-06-13 16:13 arthur * cvsd-buildroot.in: set aside tls directories if they are in the chroot jail 2008-04-02 23:13 arthur * Makefile.am: also ship historical ChangeLog files 2008-04-02 23:11 arthur * debian/cvsd.init: make start not fail if already running and stop not fail if not running 2007-12-07 16:21 arthur * NEWS, configure.ac, debian/changelog, ChangeLog: release 1.0.14 2007-12-07 16:10 arthur * config.guess, config.sub: include updated files 2007-12-07 16:08 arthur * cvsd-buginfo.in, cvsd.c, cvsd.init.in, xmalloc.c, debian/copyright, debian/cvsd.init, Makefile.am, README: fix copyright notices 2007-12-07 16:06 arthur * FAQ: fix some wrapping issues 2007-12-07 15:33 arthur * debian/postrm: replace userdel and groupdel commands with better alternative (found in http://wiki.debian.org/AccountHandlingInMaintainerScripts) 2007-12-07 15:32 arthur * debian/copyright: explicitly point to GPL-2 file 2007-12-07 15:32 arthur * debian/control: make references in Vcs-* fields consistent 2007-12-07 15:25 arthur * debian/control: upgrade to standards-version 3.7.3 (no changes needed) 2007-12-07 14:40 arthur * ChangeLog, ChangeLog-2005: moved changes of 2005 to ChangeLog-2005 2007-12-07 14:20 arthur * Makefile.am, NEWS, README, cvsd-buginfo.in, cvsd.conf-dist, cvsd.spec.in, debian/control: don't use backtick as quote 2007-11-20 22:53 arthur * debian/control: remove XS- prefix from version control fields 2007-11-20 22:47 arthur * debian/control: put Homepage field in source stanza 2007-11-12 23:00 arthur * cvsd.c: correctly handle return value of sysconf() 2007-10-25 11:01 arthur * cvsd.init.in, debian/cvsd.init: remove S runlevel from init script 2007-07-23 17:22 arthur * debian/rules: use stricter distclean run in clean target as suggested by lintian 2007-07-21 16:34 arthur * FAQ: update FAQ from website (typo fix) and re-wrap text 2007-07-21 15:38 arthur * config.guess, config.sub: include updated files 2007-07-21 14:46 arthur * Makefile.am: modifications to get 'make distcheck' to pass 2007-07-21 14:35 arthur * debian/control: add XS-Vcs-Cvs and XS-Vcs-Browser as specified in #391023 2007-07-21 14:34 arthur * debian/control: add build-dependency on po-debconf since we use it during clean 2007-07-21 14:33 arthur * debian/: templates, po/cs.po, po/da.po, po/de.po, po/es.po, po/fr.po, po/ja.po, po/nl.po, po/pt.po, po/pt_BR.po, po/templates.pot, po/vi.po: shorten debconf question/prompt to remove method and unfuzzy translations 2007-07-21 14:17 arthur * autogen.sh: force regeneration of all files 2007-06-05 23:36 arthur * cvsd-buildroot.in: hide more errors 2007-04-09 16:07 arthur * configure.ac: small fix for --disable-debug and --disable-warnings 2007-04-09 16:02 arthur * Makefile.am: just ship all po files in the debian/po directory and don't name every individual file 2007-02-04 23:33 arthur * xmalloc.c: fix type of length variable in xstrdup(), thanks to Pierre Pronchery for spotting this cvsd-1.0.24/cvsd-buginfo.in0000644000000000000000000002204511323706044012344 0ustar #!/bin/sh # cvsd-buginfo - output cvsd configuration info for in a bugreport # Copyright (C) 2004, 2005, 2006, 2007, 2010 Arthur de Jong # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA CONFIGFILE="@CONFIGFILE@" # make output more predictable LANG=C export LANG LC_ALL=C export LC_ALL # default settings VERBOSITY=1 # parse command-line parameters while [ $# != 0 ] do case "$1" in -q|--quiet|--silent) VERBOSITY=0 ;; -f|--config) CONFIGFILE="$2" shift ;; -h|--help) echo "Usage: cvsd-buginfo [OPTION]..." echo "Write cvsd configuration information for a bugreport to standard output." echo "" echo " -f, --config=FILE" echo " use FILE as configfile (default @CONFIGFILE@)" echo " -q, --quiet, --silent" echo " hide warnings" echo " -h, --help display this help and exit" echo " -V, --version output version information and exit" exit 0 ;; -V|--version) echo "cvsd-buginfo (cvsd) @VERSION@" echo "Written by Arthur de Jong." echo "" echo "Copyright (C) 2004, 2005, 2006, 2007 Arthur de Jong." echo "This is free software; see the source for copying conditions. There is NO" echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." exit 0 ;; *) echo "cvsd-buginfo: unrecognized option '$1'" echo "Try 'cvsd-buginfo --help' for more information." exit 1 ;; esac shift done # print warning if [ $VERBOSITY -gt 0 ] then echo "Warning: be sure to review this information to make sure it does" echo " not contain any sensitive data!" echo "" fi # dump cvsd version echo "cvsd @VERSION@ built with:" echo " "@CONFIGURE_CMD@ echo "" # dump OS info echo "uname -a output:" echo " "`uname -a` echo "" # check if cvs is enabled in /etc/inetd.conf if grep '^ *cvspserver' /etc/inetd.conf > /dev/null 2>&1 || \ grep '^ *2401' /etc/inetd.conf > /dev/null 2>&1 then if [ $VERBOSITY -gt 0 ] then echo "Warning: a cvs pserver seems to be configured through inetd" echo " in /etc/inetd.conf." echo "" fi fi # dump configfile without comments if [ -r "$CONFIGFILE" ] then echo "$CONFIGFILE:" sed -n 's/^[[:space:]]*\([^#].*\)[[:space:]]*$/ \1/p' < "$CONFIGFILE" echo "" # find location of chroot jail ROOTJAIL=`sed -n 's/^[[:space:]]*RootJail[[:space:]][[:space:]]*\([^[:space:]]*\)[[:space:]]*$/\1/p' < "$CONFIGFILE"` # get list of repositories REPOSSES=`sed -n 's/^[[:space:]]*Repos[[:space:]][[:space:]]*\([^[:space:]]*\)[[:space:]]*$/\1/p' < "$CONFIGFILE"` # get cvsd user CVSDUSER=`sed -n 's/^[[:space:]]*Uid[[:space:]][[:space:]]*\([^[:space:]]*\)[[:space:]]*$/\1/p' < "$CONFIGFILE"` else echo "Error: $CONFIGFILE does not exist!" echo "" ROOTJAIL="" REPOSSES="" CVSDUSER="" # try this, maybe a chroot jail is there [ -d "/var/lib/cvsd" ] && ROOTJAIL="/var/lib/cvsd" fi # dump minimal contents of chroot jail if [ -z "$ROOTJAIL" ] then if [ $VERBOSITY -gt 0 ] then echo "Warning: no rootjail has been defined. The RootJail option seems to be" echo " missing from the configuration file. This is not a recommended" echo " configuration." echo "" fi elif [ -d "$ROOTJAIL" ] then echo "$ROOTJAIL:" ( find "$ROOTJAIL" \ "$ROOTJAIL"/usr \ "$ROOTJAIL"/tmp \ "$ROOTJAIL"/var \ -maxdepth 1 -print 2> /dev/null find "$ROOTJAIL"/bin \ "$ROOTJAIL"/dev \ "$ROOTJAIL"/etc \ "$ROOTJAIL"/lib* \ "$ROOTJAIL"/usr/bin \ "$ROOTJAIL"/usr/lib* \ -print 2> /dev/null ) | sort -u | xargs ls -ld | \ sed "s|$ROOTJAIL/||;s/^ *[0-9]* *[0-9]* *\([^ ]*\) *[0-9]* */ \1 /" echo "" else echo "Error: $ROOTJAIL does not exist!" echo "" fi # try to find filesystem chroot jail is on if [ $VERBOSITY -gt 0 ] && [ -d "$ROOTJAIL" ] then if [ -r /proc/mounts ] then filesystem=`df -k "$ROOTJAIL" | sed -n 's,^.*\(/[^ ]*\)$,\1,p' | tail -n 1` if [ -n "`sed -n "s,^[^ ]* $filesystem .*\(nodev\|noexec\),,p" < /proc/mounts`" ] then echo "Warning: the fileststem the chroot jail is on ($filesystem)" echo " is mounted with a nodev or noexec option. This will cause" echo " the cvs pserver to fail." echo "" fi fi fi # dump cvs info echo "$(which cvs):" ls -l $(which cvs) | sed 's/^ *[0-9]* *[0-9]* *\([^ ]*\) *[0-9]* */ \1 /' echo "" # dump cvs version echo "$(which cvs) --version:" UBVERSION="`cvs --version | grep '^Conc'`" echo " $UBVERSION" echo "" # dump chroot cvs version if [ -n "$ROOTJAIL" ] && [ -x "$ROOTJAIL/bin/cvs" ] then echo "$ROOTJAIL/bin/cvs --version:" RJVERSION="`$ROOTJAIL/bin/cvs --version | grep '^Conc'`" echo " $RJVERSION" if [ $VERBOSITY -gt 0 ] && [ "$UBVERSION" != "$RJVERSION" ] then echo "Warning: the version of cvs in your chroot jail does not match the" echo " version of cvs outside your chroot jail!" fi echo "" fi # dump anonymized chroot passwd file maxlines=6 if [ -n "$ROOTJAIL" ] && [ -r "$ROOTJAIL/etc/passwd" ] then echo "$ROOTJAIL/etc/passwd: (passwds removed)" sed 's/^\([^:]*\):[^:]*:\([^:]*:[^:]*\):[^:]*:\(.*\)$/ \1::\2::\3/' < \ "$ROOTJAIL/etc/passwd" | head -n $maxlines if [ `wc -l < "$ROOTJAIL/etc/passwd"` -gt $maxlines ] then echo " ..." fi echo "" fi # find some users in system passwd file (start with chroot uids) users="`sed -n 's/^\([^:]*\):.*/\1/p' < $ROOTJAIL/etc/passwd`" # add configured user users="$users $CVSDUSER" # filter out duplicate entries users="`( for i in $users ; do echo $i ; done ) | sort -u`" # dump anonymized system passwd file echo "System passwd file: (passwds removed)" for i in $users do ( getent passwd $i 2>/dev/null || \ grep '^'$i: /etc/passwd ) | \ sed 's/^\([^:]*\):[^:]*:\([^:]*:[^:]*\):[^:]*:\(.*\)$/ \1::\2::\3/' done echo "" # dump some info per repository maxlines=2 lines=0 for REPOS in $REPOSSES do REPOS="$ROOTJAIL$REPOS" if [ -d "$REPOS" ] && [ -d "$REPOS/CVSROOT" ] then # dump CVSROOT/config without comments if [ -r "$REPOS/CVSROOT/config" ] then echo "$REPOS/CVSROOT/config:" sed -n 's/^[[:space:]]*\([^#].*\)[[:space:]]*$/ \1/p' < "$REPOS/CVSROOT/config" if [ `sed -n 's/^[[:space:]]*\([^#].*\)[[:space:]]*$/ \1/p' < "$REPOS/CVSROOT/config" | wc -l` -eq 0 ] then echo " " fi # check if lockdir exists if it is specified LOCKDIR=`sed -n 's/^[[:space:]]*LockDir=\([^[:space:]]*\)[[:space:]]*$/\1/p' < "$REPOS/CVSROOT/config"` if [ -n "$LOCKDIR" ] then if [ -d "$ROOTJAIL$LOCKDIR" ] then : else echo "Warning: a lock directory of $LOCKDIR is specified" echo " but $ROOTJAIL$LOCKDIR does not exist!" fi fi echo "" else echo "Error: $REPOS/CVSROOT/config does not exist!" echo "" fi # dump anonymized repository passwd file maxlines=6 if [ -r "$REPOS/CVSROOT/passwd" ] then echo "$REPOS/CVSROOT/passwd: (passwds removed)" sed "s/^\([^:]*\):[^:]*/ \1:/" < \ "$REPOS/CVSROOT/passwd" | head -n $maxlines if [ `wc -l < "$REPOS/CVSROOT/passwd"` -gt $maxlines ] then echo " ..." fi echo "" fi # TODO: check for all users if the matching system user is Uid from cvsd.conf or if cvsd.conf does not contain a Uid is in $ROOTJAIL/etc/passwd found="" # dump readers file if [ -r "$REPOS/CVSROOT/readers" ] then found="readers" echo "$REPOS/CVSROOT/readers:" sed 's/^/ /' < "$REPOS/CVSROOT/readers" if [ `wc -l < "$REPOS/CVSROOT/readers"` -eq 0 ] then echo " " fi echo "" fi # dump writers file if [ -r "$REPOS/CVSROOT/writers" ] then found="writers" echo "$REPOS/CVSROOT/writers:" sed 's/^/ /' < "$REPOS/CVSROOT/writers" if [ `wc -l < "$REPOS/CVSROOT/writers"` -eq 0 ] then echo " " fi echo "" fi # print warning on missing readers and writers if [ $VERBOSITY -gt 0 ] && [ -z "$found" ] then echo "Warning: neither a readers file nor a writers file was found inside" echo " $REPOS/CVSROOT. This means that all users have" echo " write access!" echo "" fi elif [ $VERBOSITY -gt 0 ] then echo "Warning: the repository $REPOS does not exist or does" echo " not look like a cvs repository!" echo "" fi done cvsd-1.0.24/reslimit.c0000644000000000000000000001064210434125357011426 0ustar /* reslimit.c - resource limit functions Copyright (C) 2002, 2003 Arthur de Jong. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #include "config.h" #include #include #include #include #include #include "reslimit.h" #include "xmalloc.h" #include "log.h" /* workaround for old BSD systems */ #ifndef RLIMIT_NOFILE #define RLIMIT_NOFILE RLIMIT_OFILE #endif /* definition of all settable resources */ static struct resource { int resource; /* the id of the resource for setrlimit() */ char *name; /* symbolic name of resource, see below */ int type; /* the type of the resource, see reslimit.h defines */ } knownresources[]= { { RLIMIT_CORE, "coredumpsize", RESTYPE_SIZE }, { RLIMIT_CORE, "core", RESTYPE_SIZE }, { RLIMIT_CPU, "cputime", RESTYPE_TIME }, { RLIMIT_CPU, "cpu", RESTYPE_TIME }, { RLIMIT_DATA, "datasize", RESTYPE_SIZE }, { RLIMIT_DATA, "data", RESTYPE_SIZE }, { RLIMIT_FSIZE, "filesize", RESTYPE_SIZE }, { RLIMIT_FSIZE, "fsize", RESTYPE_SIZE }, #ifdef RLIMIT_MEMLOCK { RLIMIT_MEMLOCK, "memorylocked", RESTYPE_SIZE }, { RLIMIT_MEMLOCK, "memlock", RESTYPE_SIZE }, #endif /* RLIMIT_MEMLOCK */ { RLIMIT_NOFILE, "openfiles", RESTYPE_NUM }, { RLIMIT_NOFILE, "nofile", RESTYPE_NUM }, #ifdef RLIMIT_NPROC { RLIMIT_NPROC, "maxproc", RESTYPE_NUM }, { RLIMIT_NPROC, "nproc", RESTYPE_NUM }, #endif /* RLIMIT_NPROC */ #ifdef RLIMIT_RSS { RLIMIT_RSS, "memoryuse", RESTYPE_SIZE }, { RLIMIT_RSS, "rss", RESTYPE_SIZE }, #endif /* RLIMIT_RSS */ { RLIMIT_STACK, "stacksize", RESTYPE_SIZE }, { RLIMIT_STACK, "stack", RESTYPE_SIZE }, #ifdef RLIMIT_AS { RLIMIT_AS, "virtmem", RESTYPE_SIZE }, { RLIMIT_AS, "as", RESTYPE_SIZE }, #endif /* RLIMIT_AS */ #ifdef RLIMIT_VMEM { RLIMIT_VMEM, "virtmem", RESTYPE_SIZE }, #endif /* RLIMIT_VMEM */ #ifdef RLIMIT_PTHREAD { RLIMIT_PTHREAD, "pthreads", RESTYPE_NUM }, #endif /* RLIMIT_PTHREAD */ { -1, NULL, -1 } }; /* the list of resource limitations configured */ static struct reslimit { struct resource *resource; struct rlimit limit; struct reslimit *next; } *savedlimits=NULL; /* find the resource record for the given name */ static struct resource *getresourcebyname(const char *name) { struct resource *tmp; for (tmp=knownresources;tmp->name!=NULL;tmp++) { if (strcmp(name,tmp->name)==0) { return tmp; } } return NULL; } /* return the type of the resource defined by name */ int getresourcetype(const char *name) { struct resource *res; res=getresourcebyname(name); if (res==NULL) return RESTYPE_UNKNOWN; return res->type; } /* save the limit to the specified values note: limit will be set only when setreslimits() is called */ void savereslimit(const char *name,rlim_t soft,rlim_t hard) { struct resource *res; struct reslimit *lim; res=getresourcebyname(name); if (res==NULL) { log_log(LOG_ERR,"cannot find resource %s",name); exit(1); } lim=(struct reslimit *)xmalloc(sizeof(struct reslimit)); lim->resource=res; lim->limit.rlim_cur=soft; lim->limit.rlim_max=hard; lim->next=savedlimits; savedlimits=lim; } /* set all the resources defined */ void setreslimits(void) { struct reslimit *tmp; for (tmp=savedlimits;tmp!=NULL;tmp=tmp->next) { log_log(LOG_DEBUG,"debug: limit %s to %d(soft) and %d(hard)", tmp->resource->name, (int)(tmp->limit.rlim_cur), (int)(tmp->limit.rlim_max)); if (setrlimit(tmp->resource->resource,&(tmp->limit))) { log_log(LOG_ERR,"cannot limit %s: %s",tmp->resource->name,strerror(errno)); exit(1); } } } cvsd-1.0.24/FAQ0000644000000000000000000003710411724633644007774 0ustar Frequently Asked Questions for cvsd =================================== the latest version of this FAQ can be found at http://arthurdejong.org/cvsd/faq.html In no particular order: 1. How secure is cvsd? 2. How does one use cvs over ssh? 3. cvs checkout . fails 4. setgid failed: Operation not permitted 5. setgroups: Operation not permitted 6. cvsd: no such user 7. pam failed to release authenticator 8. open /dev/null failed 9. Is cvs required for running cvsd? 10. What should I put in the chroot directory? 11. How can I run commands from loginfo/commitinfo/...? 12. How do I add extra debugging? 13. What about running cvs pserver as root? 14. How do I file a bug report? 15. Should I start the cvsd program as the cvsd user? 16. How about logging? 17. Why are tcp wrappers not working? 18. Why can't I combine some Listen options? 19. How do I enable syslog inside the chroot jail? 20. Interrupted system call 21. cannot create_adm_p /tmp/cvs-serv5153/... Permission denied 22. Will you implement a reload in the init script? 23. Will you pass -R (readonly) to cvs? 24. How can I deploy cvsd using the Solaris service management facility (smf)? 1. How secure is cvsd? The only security cvsd adds to a cvs pserver is in the fact that possible exploits and misconfigurations in the server will most likely not result in the compromise of the machine (don't forget the disclaimer though). cvsd does not improve the inherent weaknesses of the pserver protocol such as cleartext passwords, use cvs over ssh for that. 2. How does one use cvs over ssh? Not really anything to do with cvsd but here goes: % export CVS_RSH=ssh % cvs -d remotehost:repositorypath You need an ssh account on the remotehost and access to the repositorypath. This setup is particularly useful for secure authenticated development access, while cvsd is more useful for public read-only access. 3. 'cvs -d ... checkout .' fails with something like "Assertion `*short_repos++ == '/'' failed." but other checkouts work fine, what's wrong? Older versions of cvs (at least 1.10.7 but 1.11.1p1 is fixed) have a bug where the repository is a direct descendant of the root directory. You should probably upgrade cvs on the server side. 4. cvs login works but cvs checkout or other commands fail with "setgid failed: Operation not permitted" This can happen when you run cvsd as non-root (which is recommended) and didn't set up your repository passwd file (CVSROOT/passwd) correctly. The repository passwd files should contain mappings of cvs users to the user you specified in cvsd.conf. If no mapping is present cvs tries to become the "original" user and fail because it's not running as root. Your repository passwd files should look like: anonymous:XGPg1ub8xh70U:cvsd Another possibility is that your system uses something different for providing user information (nis/ldap/etc) and that your chroot passwd file (e.g. /var/lib/cvsd/etc/passwd) does not match the system passwd database (any more). This is especially important if your chroot jail is on an nfs filesystem. In this case it may be needed to rerun cvsd-buildroot and check it's output (and possibly the output of cvsd-buginfo) to see which users are missing. 5. cvs login works but cvs checkout or other commands fail with "setgroups: Operation not permitted" Also see the previous question. Setgroups is called to change the supplemental groups the user is in. This can happen when /etc/groups exists inside the chroot jail and the cvsd user is member of some groups. 6. cvs login works but cvs checkout or other commands fail with "cvsd: no such user" or "cvsd: no such system user" The cvs pserver maps users found in the repository passwd file (CVSROOT/passwd) to users in the system passwd file. Since cvs is running in a chroot environment the system passwd file is located in /var/lib/cvsd/etc/passwd (depending on what you set your RootJail to). If you set up user mappings correctly there should be a cvsd user in the passwd file. cvsd-buildroot checks the chroot jail's /etc/passwd file and adds users from the system /etc/passwd if needed (and generates warnings for missing users). If you need ldap or similar methods to provide user id information you need to set up the proper configuration inside the chroot jail. 7. cvs commands fail with "unrecognized auth response from server: pam failed to release authenticator." Your repository is probably configured to use pam as an authentication mechanism. Edit your repository configuration file (CVSROOT/config) and set the following options: SystemAuth=no PamAuth=no If you really want to use PAM to do the authentication you should copy all needed PAM modules and configuration files into the chroot directory. 8. cvs commands fail with "open /dev/null failed Permission denied" and cvsd-buildroot reports "creating /var/lib/cvsd/dev devices... FAILED (unable to use devices)" The cvs pservers needs to open several devices (most notably /dev/null) for handling requests. The file system on which the chroot jail was created needs to suppoed these device entries. This means that the file system should not be mounted with the "nodev" option. The "noexec" mount option will also cause problems. 9. Is cvs required for running cvsd? Yes. cvsd is just a wrapper for running cvs in pserver mode. It runs cvs in a chroot jail and possibly sets resource limitations. The complete protocol handling is done by cvs although there are some plans to do some protocol checking in cvsd. 10. What should I put in the chroot directory? cvsd-buildroot can be used to create a chroot environment on most systems. There are however a few things that might also be needed. cvsd-buildroot uses ldd to find the libraries that are required but it doesn't always find all the needed libraries (for example libnsl.so and libnss_compat.so for most Linux systems, ld-elf.so for FreeBSD). If your system requires more libraries you can probably find out with strace (see usage of strace below). You can also put things in the /var/lib/cvsd/bin directory and rerun cvsd-buildroot to fetch the appropriate libraries. Note that if you want shell scripts there you should also copy /bin/sh to /var/lib/cvsd/bin. 11. How can I run commands from CVSROOT/{loginfo,commitinfo,...}? If you want to run commands from files in your CVSROOT directory (e.g. mail a notice on commit) you need to have a shell inside the chroot jail. You can just do: # cp -p /bin/sh /var/lib/cvsd/bin/sh # cvsd-buildroot /var/lib/cvsd and you should be good to go. Instead of /bin/sh you could alternatively copy some other bourne shell to /var/lib/cvsd/bin/sh (e.g. ash). Note that this may be a security problem since an attacker that exploits your cvs pserver now may have access to a shell on your system (inside a chroot jail and not as root, but a shell none the less). 12. Something is not working, how do I add extra debugging? You can start cvsd with the -d option to print extra debugging information to stderr. See the manual page for details. Some more information can be produced by using the -t option to cvs on the client side, e.g.: % cvs -d cvs -t -d :pserver:anonymous@localhost:/myrepos login To check if the network connection can be made you could use telnet to connect to the pserver, e.g.: % telnet localhost 2401 If this produces "Connection refused" or something similar cvsd is not listening on the specified port. Check the logfiles for the reason. Rerunning cvsd-buildroot may also fix or bring to light some configuration problems. Also a script to check for the most common configuration problems (cvsd-buginfo) is included in the distribution. A "last resort tool" is strace (or truss or ptrace depending on your os). strace logs all system calls (opening files, changing uid, etc) and can provide useful information. Especially if you suspect that some files are missing from the chroot environment. Usage: % strace -f -o /tmp/logfile cvsd -d Then try to use cvs and see what errors are reported. On some occasions you may need to add -F to strace since cvs may use vfork()s. You can also build a debug-enabled cvsd binary by specifying '--enable-debug' with ./configure. This currently adds some debugging information to the pserver session. 13. What about running cvs pserver as root? You may need to run cvs pserver as root when you need user mappings to other users than cvsd (for example if you need to have access to the repository under different system users). You can instruct cvsd to run as root by setting 'Uid root' and 'Gid root' to cvsd.conf. You should set up your CVSROOT/passwd files in your repositories to map to the needed system users. cvsd-buildroot can be used to check if all the required system users are known in the chroot jail. 14. How do I file a bug report? If you find any bugs or missing features please send email to cvsd-users@lists.arthurdejong.org. If you are using the debian package from the debian servers (not the one on my personal page) you can use the Debian bug tracking system. Please include as much information as possible (platform, output of configure if compilation fails, output of the failure, syslog messages, etc). You can use the cvsd-buginfo script to provide your configuation information. Please provide this information with your bug report. For providing more useful information also see the question on debugging above. 15. Should I start the cvsd program as the cvsd user? No. If the pserver is set up to be run in a chroot jail the cvsd program needs to be started as root. After the chroot() call cvsd changes uid to the one specified in the configuration file (probably cvsd). 16. Does cvsd do logging? Logging is configurable from the cvsd.conf configfile. See the cvsd.conf manual page for details. Logging can be done to syslog through the daemon facility or to a specified file. The loglevels used are debug (debugging information), info (starting, stopping, connections, etc), error (wrong configfile, execute failures, socket failures, etc) and critical (malloc() failures). If you can't find the log messages you may need to add daemon.*-/var/log/daemon.log to your /etc/syslog.conf file and/or specify a different loglevel in cvsd.conf. Also cvsd can be started with the -d option to print debugging information to stderr. 17. Why are tcp wrappers not working? You currently have to enable tcp wrappers during configure time using the --with-libwrap option during configure. You can optionally specify the prefix for where the tcp wrapper libraries are located. Some versions of tcp wrappers have problems with hosts that support IPv6 connections. Try to get a patched version of tcp wrappers or replace the 'Listen * 2401' statement in cvsd.conf with 'Listen 0.0.0.0 2401'. Don't forget that the hosts.allow and hosts.deny need to be located inside the chroot jail to be effective. 18. Why can't I combine some Listen options? Some operating systems do not fully support listening for connections on the same port with different protocols. E.g. specifying 'Listen 127.0.0.1 2401' together with 'Listen :: 2401' does not work on Linux (at least on 2.4.20). You may have to play around a bit to get the right combination of listen options to get a working solution. 19. How do I enable syslog inside the chroot jail? If you want to have logging in programs from within your chroot jail you have to tell syslogd to listen in the chroot jail also. With most versions of syslogd you can add '-a /var/lib/cvsd/dev/log' to your syslogd invocation (of cource replace /var/lib/cvsd with the location of your chroot jail). On debian systems you should edit /etc/init.d/sysklogd and modify the 'SYSLOGD=""' line to read: SYSLOGD="-a /var/lib/cvsd/dev/log" You may have to check the manual page fof syslogd on your system though. 20. When I run cvsd with debugging enabled I get "select() failed (ignored): Interrupted system call" This is a normal logging event that is common during the execution of cvsd. This does not indicate an error. This means that a signal is caught (usually the termination of one of the cvs commands) when listening for new connections. 21. When I try cvs update I get: "cannot create_adm_p /tmp/cvs-serv5153/... Permission denied This has to do with some changes that were made in cvs. You have to create an Emptydir directory in every CVSROOT directory. The cvsd user does not need to have write access to this directory. 22. Will you implement a reload in the init script? In short, no (unless you can come up with a very good reason and matching implementation). Since cvsd chroots to its jail and drops root privileges it cannot easily reread its configfile without keeping some privileges in some way. The added advantage of reloading a configfile does not way up (in my opinion) to the added complexity in cvsd. Also, current Debian policy and the LSB do not seem to allow reload to be an alias for restart. For more information see http://bugs.debian.org/286300. 23. Will you pass -R (readonly) to cvs? If you pass cvs the -R option it operates in read-only mode with the added effect of not making any lock files. This speeds up repository checkouts, especially simultanious checkouts, and will disallow any modifications. This would be a very useful option for a read-only pserver. The downside is that cvs no longer ensures correct checkouts if another cvs process is modifying the repository. If you have very infrequent commits or your repository is synchronized from a remote working repository this would not be a problem though. Some releases of cvs issue a warning when the -R option is passed, breaking the pserver protocol stream. A fix for this has been prepared but was rejected: http://lists.gnu.org/archive/html/bug-cvs/2004-08/msg00108.html The patch to cvs is here: http://arthurdejong.org/cvsd/cvs-1.12.9-no_readonly_warning_for_pserver.patch.gz. The current status is unclear. If you want to and are aware of the described consequences you can try adding -R to the CvsArgs option in cvsd.conf. 24. How can I deploy cvsd as a non-root service as part of the Solaris service management facility (smf)? Add the following lines to the following files (fine-tune the paths depending on your installation): /etc/security/auth_attr: solaris.smf.manage.cvsd:::Manage cvsd service states:: solaris.smf.value.cvsd:::Change cvsd value properties::: /etc/security/exec_attr: Cvsd Administration:solaris:cmd:::/etc/init.d/cvsd':uid=cvsd /etc/security/prof_attr: Cvsd Administration::::auths=solaris.smf.manage.cvsd,solaris.smf.value.cvsd Download the cvsd.xml (http://arthurdejong.org/cvsd/smf/cvsd.xml) file (you may also need to fine-tune paths here) and use svccfg validate cvsd.xml;svccfg import cvsd.xml to import the file. Finally, add the "Cvsd Administration" profile to a user in /etc/user_attr. This user should should now be able to use svcadm to enable and disable cvsd. If you have any questions or remarks about cvsd please send an email to cvsd-users@lists.arthurdejong.org. cvsd-1.0.24/cvsd.init.in0000644000000000000000000000602211431735612011657 0ustar #! /bin/sh # init script for starting and stopping cvsd # Copyright (C) 2001, 2002, 2003, 2004, 2006, 2007, 2010 Arthur de Jong # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ### BEGIN INIT INFO # Provides: cvsd # Required-Start: $local_fs $remote_fs $syslog # Required-Stop: $local_fs $remote_fs $syslog # Should-Start: $network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: cvs pserver chroot wrapper # Description: cvsd is a wrapper program for cvs in pserver mode. # It will run 'cvs pserver' under a special uid/gid in # a chroot jail. ### END INIT INFO CVSD_BIN=@CVSD_BIN@ DESC="cvs pserver chroot wrapper" CVSD_CFG=@CONFIGFILE@ [ -x "$CVSD_BIN" ] || exit 5 [ -f "$CVSD_CFG" ] || exit 6 PIDFILE=`sed -n 's/^ *PidFile *\([^ ]*\) *$/\1/p' < $CVSD_CFG` # find the flavor of the echo command (stolen from configure) case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in *c*,-n*) ECHO_N= ECHO_C=' ' ;; *c*,* ) ECHO_N=-n ECHO_C= ;; *) ECHO_N= ECHO_C='\c' ;; esac case "$1" in start) echo $ECHO_N "Starting $DESC: cvsd$ECHO_C" if [ -n "$PIDFILE" ] && [ -f "$PIDFILE" ] && \ kill -s 0 `cat $PIDFILE` > /dev/null 2>&1 then echo " already running." exit 0 fi RET=0 $CVSD_BIN -f $CVSD_CFG || RET=7 echo "." exit $RET ;; stop) echo $ECHO_N "Stopping $DESC: cvsd$ECHO_C" if [ -n "$PIDFILE" ] then if [ -f "$PIDFILE" ] then : else echo " not running." exit 0 fi kill `cat $PIDFILE 2> /dev/null` 2> /dev/null echo "." rm -f $PIDFILE else echo " unable to stop, no PidFile!" exit 1 fi ;; restart|force-reload) $0 stop sleep 2 $0 start || exit 7 ;; status) echo $ECHO_N "Status of $DESC: $ECHO_C" if [ -n "$PIDFILE" ] then if [ -f "$PIDFILE" ] then if kill -s 0 `cat $PIDFILE` > /dev/null 2>&1 then echo "running." exit 0 else echo "stopped." exit 1 fi else echo "stopped." exit 3 fi else if ps -e | grep cvsd | grep -v grep > /dev/null 2>&1 then echo "probably running. (no PidFile in cvsd.conf)" exit 0 else echo "probably not running. (no PidFile in cvsd.conf)" exit 3 fi fi ;; *) echo "Usage: $0 {start|stop|restart|force-reload|status}" >&2 exit 3 ;; esac exit 0 cvsd-1.0.24/aclocal.m40000644000000000000000000010752211762425216011300 0ustar # generated automatically by aclocal 1.11.5 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, # Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, [m4_warning([this file was generated for autoconf 2.69. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 Free Software # Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 1 # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.11' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.11.5], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.11.5])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 1 # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 9 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009, # 2010, 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 12 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "GCJ", or "OBJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl ifelse([$1], CC, [depcc="$CC" am_compiler_list=], [$1], CXX, [depcc="$CXX" am_compiler_list=], [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], UPC, [depcc="$UPC" am_compiler_list=], [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking, [ --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl AC_SUBST([am__nodep])dnl _AM_SUBST_NOTMAKE([am__nodep])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. #serial 5 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each `.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2008, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 16 # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.62])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) AM_MISSING_PROG(AUTOCONF, autoconf) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AM_PROG_MKDIR_P])dnl # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES(CC)], [define([AC_PROG_CC], defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES(OBJC)], [define([AC_PROG_OBJC], defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl ]) _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl dnl The `parallel-tests' driver may need to know about EXEEXT, so add the dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl ]) dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001, 2003, 2005, 2008, 2011 Free Software Foundation, # Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 1 # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST(install_sh)]) # Copyright (C) 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Add --enable-maintainer-mode option to configure. -*- Autoconf -*- # From Jim Meyering # Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008, # 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # AM_MAINTAINER_MODE([DEFAULT-MODE]) # ---------------------------------- # Control maintainer-specific portions of Makefiles. # Default is to disable them, unless `enable' is passed literally. # For symmetry, `disable' may be passed as well. Anyway, the user # can override the default with the --enable/--disable switch. AC_DEFUN([AM_MAINTAINER_MODE], [m4_case(m4_default([$1], [disable]), [enable], [m4_define([am_maintainer_other], [disable])], [disable], [m4_define([am_maintainer_other], [enable])], [m4_define([am_maintainer_other], [enable]) m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) dnl maintainer-mode's default is 'disable' unless 'enable' is passed AC_ARG_ENABLE([maintainer-mode], [ --][am_maintainer_other][-maintainer-mode am_maintainer_other make rules and dependencies not useful (and sometimes confusing) to the casual installer], [USE_MAINTAINER_MODE=$enableval], [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) AC_MSG_RESULT([$USE_MAINTAINER_MODE]) AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) MAINT=$MAINTAINER_MODE_TRUE AC_SUBST([MAINT])dnl ] ) AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 6 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN([`missing' script is too old or missing]) fi ]) # Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation, # Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 1 # AM_PROG_MKDIR_P # --------------- # Check for `mkdir -p'. AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, dnl while keeping a definition of mkdir_p for backward compatibility. dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of dnl Makefile.ins that do not define MKDIR_P, so we do our own dnl adjustment using top_builddir (which is defined more often than dnl MKDIR_P). AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl case $mkdir_p in [[\\/$]]* | ?:[[\\/]]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software # Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # -------------------- # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) # ------------------------ # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT(yes)]) # Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 1 # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in `make install-strip', and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be `maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 3 # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # -------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of `v7', `ustar', or `pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AC_SUBST([AMTAR], ['$${TAR-tar}']) m4_if([$1], [v7], [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' _am_tools=${am_cv_prog_tar_$1-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and # Solaris sh will not grok spaces in the rhs of `-'. for _am_tool in $_am_tools do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR cvsd-1.0.24/ChangeLog-20030000644000000000000000000002576310013734112011564 0ustar 2003-11-08 arthur * debian/po/: de.po, fr.po, nl.po, templates.pot: normalise all .po files to a normal .pot file * debian/po/de.po: updated with version from ddtp (http://ddtp.debian.org/debconf/template_unstable/cvsd/templates-de.po) 2003-09-28 arthur * NEWS, TODO, configure.ac, debian/changelog, ChangeLog: release 1.0.0 * debian/postinst: do not stop cvsd in postinst (this was needed for woody on dpkg-reconfigure) * Makefile.am: switched to using rpmbuild for building rpms * Makefile.am: include French debconf templates in tarball * Makefile.am: reference signing key as adejong@debian.org * INSTALL, depcomp, install-sh, missing, mkinstalldirs: new versions of files from autoconf/automake * debian/control: upgrade to standards-version 3.6.1 (no changes needed) 2003-09-21 arthur * debian/: control, po/de.po, po/fr.po, po/nl.po, po/pt_BR.po, po/templates.pot: change maintainer address to adejong@debian.org 2003-08-26 arthur * debian/po/fr.po: add French (fr) translation of debconf templates by Christian Perrier 2003-08-17 arthur * NEWS, TODO, configure.ac, debian/changelog, ChangeLog: release 0.9.20 * cvsd.c: remove -R option to cvs pserver command that snuk in when updating logging functions * cvsd.c: fix for when MaxConnections is 0 * debian/po/nl.po: fix headers and update choices translation a bit (still not working though) * FAQ: make strace command easier * cvsd-buildroot.in: fix check for tmpreaper * cvsd.init.in: add lsb compliant comments for service description * cvsd.init.redhat71.in: change service description to be more consistent * Makefile.am: also ship debian/po/templates.pot 2003-08-11 arthur * debian/po/: de.po, nl.po, pt_BR.po, templates.pot: added Report-Msgid-Bugs-To string to all files 2003-08-10 arthur * cfg.c, cfgfile.c, cvsd.c, log.c, log.h, reslimit.c, xmalloc.c: prefixed logging functions with log_ to be more consistant and to not conflict with log() from math.h * autogen.sh, configure.ac: upgrade to automake 1.7 * configure.ac: added reference to configure.ac in configure copyright notice * README: added groupadd and useradd usage and some other small changes * Makefile.am: fix tab 2003-08-03 arthur * ChangeLog: compacted ChangeLog a bit * config.sub, config.guess: new versions of config.sub and config.guess (timestamp=2003-07-17) * debian/postrm: only ask debconf question if debconf is available during purge * Makefile.am, TODO, cfg.c, cfg.h, cfgfile.c, cfgfile.h, cvsd.c: move all configuration parameters that were global variables before into a cvsd_cfg struct and pass this as a parameter 2003-07-12 arthur * debian/control: also suggest tmpreaper as it can be used from cvsd-buildroot * cvsd-buildroot.in: redirect stderr of which the proper way * debian/control: upgrade to standards-version 3.6.0 (no changes needed) * debian/changelog: fix email address of old changelog entries * debian/config: fix debconf back from fist group of questions * Makefile.am: fix tab 2003-06-08 arthur * NEWS, TODO, configure.ac, debian/changelog, ChangeLog: release 0.9.19 * Makefile.am, debian/po/nl.po, debian/po/nl_NL.po: rename nl_NL.po to nl.po * Makefile.am, debian/po/de.po, debian/po/de_DE.po: rename de_DE.po to de.po * Makefile.am, debian/po/de.po, debian/po/de_DE.po: rename de_DE.po to de.po * Makefile.am, debian/po/de.po, debian/po/de_DE.po: rename de_DE.po to de.po 2003-06-07 arthur * debian/po/de_DE.po: rerun debconf-updatepo and fix small spacing problem * debian/po/de_DE.po: make some changes to the fuzzy translations * debian/postinst: fix typo in check to see if cvsd-buildroot should be run * debian/: templates, po/de_DE.po, po/nl_NL.po, po/pt_BR.po, po/templates.pot: temporarily disable translation of Choices field * Makefile.am, debian/control, debian/templates, debian/po/.cvsignore, debian/po/POTFILES.in, debian/po/de_DE.po, debian/po/nl_NL.po, debian/po/pt_BR.po, debian/po/templates.pot: add support for po-debconf, translations thanks to Andre Luis Lopes (Brazilian Portuguese (pt_BR)), Debian Description Translation Project (German (de_DE)) and myself (Dutch (nl_NL)) * debian/postinst: move call to cvsd-buildroot to after (re)building of cvsd.conf 2003-05-29 arthur * debian/: config, postinst, templates: edit cvsd.conf inplace instead of overwriting it with a automatically generated one, as a result also remove the debconf question about using debconf to configure cvsd 2003-05-24 arthur * Makefile.am, debian/compat, debian/rules: moved debhelper compatibility setting from DH_COMPAT in debian/rules to debian/compat and bumped value to 4 * cvsd.c, configure.ac: fix libwrap code to define allow_severity and deny_severity symbols, this also fixes the configure check (failed on some systems) and doesn't require the link with ORBit on RedHat anymore (libnsl is still needed on RedHat and maybe others) * debian/templates: make references to 0 (zero) consistent and fix typo * debian/postinst: make cvsd group a system group (--system option is poorly documented in woody but works) * debian/control: upgrade to standards-version 3.5.10 (no changes needed) * INSTALL, config.guess, config.sub, install-sh, missing, mkinstalldirs: install new versions of files from autoconf (2.57) and automake (1.6.3) 2003-05-16 arthur * cvsd.c: log some more regarding setgroups() success or absence 2003-04-21 arthur * NEWS, TODO, configure.ac, debian/changelog, ChangeLog: release 0.9.18 * debian/templates: changed "zero (0)" to "0 (zero)" * debian/: config, postinst: fix regular expressions and quotes in shell expressions to do read existing cvsd.conf correctly and read debconf settings * debian/cvsd.init: fix typo 2003-04-20 arthur * debian/config: fix a few typos * debian/postrm: give warning when package is purged and debconf question is not shown * debian/templates: changed wording of some phrases a little * debian/: config, postinst, templates: add debconf configuration of Umask * debian/config: read existing configfile for current settings and put them in debconf databse * cvsd.conf.5.in: fixed typo * debian/: postrm, templates: renamed debconf subst chrootjail to rootjail for consistency * debian/templates: rewrote some debconf questions based on suggestions by Joey Hess , also fixed spelling 2003-04-19 arthur * debian/postrm: added nicer title to debconf on package removal * debian/config: set maxconnections question to low priority * debian/config: added nicer title to configuration screens * debian/cvsd.init: added status option * cvsd.init.in: made exit codes compliant with LSB and added status option 2003-04-16 arthur * cvsd-buildroot.in: make warning message clearer if referenced user does not exist * debian/docs: removed ChangeLog from binary packages since it contains only information relevant if you have the sources, it is generated from cvs logs, for a list of changes see the debian changelog or the NEWS file which is almost identical * debian/control: upgrade to standards-version 3.5.9 (no changes needed) * debian/control: use misc:Depents to get correct debconf dependency * debian/rules: use improved way of passing host and build options to configure 2003-04-12 arthur * FAQ: added question about some listen options in combination with IPv6 * cvsd.conf.5.in: moved comment about problems with IPv6 listen options (now in FAQ) and added some Listen examples * cvsd.c: change comment to something a little more appropriate 2003-03-26 arthur * Makefile.am: improve maintainability a bit * configure.ac: check for types also in sys/types.h (needed for FreeBSD and maybe others) * README: some small language/spelling changes and added section on disabling cvs pserver from inetd * cvsd-buildroot.8.in, cvsd-passwd.8.in, cvsd.8.in, cvsd.conf.5.in: updated manual pages to correctly encode links to other pages, minus signs (-) and quotes 2003-03-11 arthur * cvsd-buildroot.in: fixed if typo with missing [ ]'s thanks to Brent Cooke 2003-02-16 arthur * NEWS, TODO, configure.ac, debian/changelog, ChangeLog: release 0.9.17 * Makefile.am: updated copyright notice * configure.ac: SCO has gethostbyname() in -lsocket (thanks to Leonid Y Lisovskiy ) * configure.ac: rework looking for libraries with AC_SEARCH_LIBS * Makefile.am: do not put cvsd-passwd in tarball 2003-02-14 arthur * autogen.sh, depcomp: upgrade to using automake 1.6 to get around bug in 1.4 when using AC_LIBOBJ() without AC_REPLACE_FUNCS() * configure.ac: do libwrap configure stuff better than before and add checks for weird library dependencies for libwrap on RedHat 8 thanks to Dave Love * configure.ac: update copyright info that should go into configure script * getinfos.c: fix for bug in my getaddrinfo() replacement thanks to Leonid Y Lisovskiy and also be more careful with other members of addrinfo struct * autogen.sh: copy newer config.sub and config.guess if available 2003-01-24 arthur * cvsd-buildroot.in: check if created devices are usable (e.g filesystems mounted with nodev) * daemon.c: removed unneeded variables * ChangeLog, ChangeLog-2002: moved changes of 2002 to ChangeLog-2002 * config.guess, config.sub: new versions 2003-01-19 arthur * NEWS, TODO, configure.ac, debian/changelog, ChangeLog: release 0.9.16 * cvsd.c: only log changing of uid and gid if it really happened and add ignored to setgroups() failure * FAQ: install updated FAQ with information on changed logging * configure.ac: also check for stdio.h * configure.ac: print notices about changes to the default settings * cvsd.c: only log chroot() if it is actually done (printf("%s",NULL) fails on some systems) * cvsd.c: close all file descriptors by using sysconf() to find out maximum number of file descriptors * daemon.c, daemon.h: do not close all file descriptors since logfiles may be open * cvsd.conf-dist: comment out cvsd debug log in example configfile * cvsd-buildroot.in: fix for when tmpreaper cannot be found and which returns 0 * cvsd.conf.5.in: suggest location for pidfile and correct reference to cvsd manual page 2003-01-01 arthur * cvsd.c, debian/copyright: update copyright * README: small logging update and copyright notice change * cfgfile.c, cvsd.conf-dist, cvsd.conf.5.in: implement and document the Log configoption to do custom logging * log.c: flush stream after writing logging line * log.c, log.h: add getloglevel() function to convert char* syslog level to int * log.c, log.h: fix typo (addloging) and update copyright * cfgfile.c: cosmetic change to make code more readable * cvsd.c: changed order of initialization a bit (errors in configfile are reported to stderr on startup and resource limits are set before stderr is redirected so -d should work here now) * cvsd.c: removed extra newlines from log messages * log.c, log.h: remove logging to stderr since this is the default when no logging is configured and makes no sense otherwise cvsd-1.0.24/getopt_long.h0000644000000000000000000000276710434125357012135 0ustar /* getopt_long.h - definition of getopt_long() for systems that lack it Copyright (C) 2001, 2002 Arthur de Jong This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef _GETOPT_LONG_H #define _GETOPT_LONG_H 1 #define no_argument 0 #define required_argument 1 #define optional_argument 2 struct option { const char *name; int has_arg; int *flag; int val; }; /* this is a (poor) getopt_long() replacement for systems that don't have it (this is generaly a GNU extention) this implementation is by no meens flawless, especialy the optional arguments to options and options following filenames is not quite right, allso minimal error checking */ int getopt_long(int argc,char * const argv[], const char *optstring, const struct option *longopts,int *longindex); #endif /* _GETOPT_LONG_H */ cvsd-1.0.24/ChangeLog-20020000644000000000000000000004061307614252740011571 0ustar 2002-12-29 arthur * cvsd.c, log.c, log.h: rewrite logging stuff to do logging to stderr until logging is started, this makes logging configureable from e.g. the configuration file * cvsd.c: fix typo (numver) * log.c: bugfix: logging to syslog was always done as LOG_DEBUG * cfgfile.c, cvsd.conf.5.in: completely remove Port option from configfile * cvsd.c: fix typo (debigging) * cvsd.c: do not log to syslog in debugging mode 2002-12-22 arthur * NEWS, TODO, configure.ac, debian/changelog, ChangeLog: release 0.9.15 * config.guess, config.sub: new versions * FAQ: updated debugging section to new -d commandline option * README: point to FAQ for debugging information * debian/control: upgraded standards-version to 3.5.8 * debian/control: add note in description about pserver in cvs package * debian/postinst: use invoke-rc.d to stop cvsd after it is (re)configured * cvsd.8.in, cvsd.c: add -d, --debug switch to run in debugging mode * cvsd-buildroot.8.in, cvsd-passwd.8.in, cvsd.8.in, cvsd.conf.5.in: do not hyphenate manual pages, it is ugly * ChangeLog: compacted ChangeLog a bit * Makefile.am, cfgfile.c, configure.ac, cvsd.c, log.c, log.h, reslimit.c, xmalloc.c: replace logging directly to syslog with wrapper module so that it will be more easily configurable * cvsd.c: make failure of setgroups() a warning instead of fatal * configure.ac: moved check of sys/types.h before sys/socket.h 2002-12-01 arthur * cvsd-passwd.in: don't die when we can't open cvsd.conf, just warn * README: added note about SystemAuth in CVSROOT/config file * FAQ, Makefile.am: FAQ is now generated from faq.html of homepage 2002-11-29 arthur * cvsd.spec.in: changes to put cvsd-buildroot in %post and to use chkconfig (thanks to John van Zantvoort and Sam Bingner * cvsd.init.redhat71.in: added stuff to identify cvsd in startup on redhat thanks to John van Zantvoort * config.guess, config.sub: new versions 2002-10-27 arthur * NEWS, TODO, configure.ac, debian/changelog,ChangeLog: release 0.9.14 * install-sh: new version from automake * cvsd.c: moved closing of filedescriptors to last possible moment 2002-10-26 arthur * debian/cvsd.init: changed restart output to be clearer in what it does 2002-10-25 arthur * cvsd-passwd.8.in: add examples section * cvsd-passwd.8.in, cvsd-passwd.in: set default user mapping based on contents of cvsd.conf * debian/config: make using back in debconf possible * cvsd.c: close all unnecessary file descriptors before running cvs * configure.ac, cvsd.c: drop all supplemental groups * debian/control: upgraded standards-version to 3.5.7 * debian/rules: explicitly specify which perl to use * autogen.sh: generate warnings when running autoheader and autoconf 2002-10-06 arthur * configure.ac, debian/changelog, ChangeLog: release 0.9.13.1 (for debian only due to bug in source tarfile) 2002-10-03 arthur * ChangeLog, ChangeLog-2001: moved changes of 2001 to ChangeLog-2001 * INSTALL: new version from autoconf * ChangeLog: made ChangeLog more compact * NEWS, TODO, configure.ac, debian/changelog, ChangeLog: release 0.9.13 2002-09-28 arthur * debian/docs: install sample configuration file in doc directory * cvsd-buildroot.in: be a little more specific about what to rerun if anything changes * debian/: postrm, templates: on package purge prompt to remove chroot jail * debian/templates: fix spelling * debian/cvsd.init, cvsd.init.in, cvsd.init.redhat71.in: only try to get pidfile info from configfile if there is a configfile * .cvsignore: cvsd-passwd is now generated from cvsd-passwd.in 2002-09-27 arthur * FAQ: fixed a bit of spelling and added note about using ldap for uid information * configure.ac, cvsd-passwd, cvsd-passwd.in: replace perl invocation in cvsd-passwd with the one found by configure * configure.ac: created m4 macro AJ_PROG_FIND to look for program and added ability to specify program using --with-program 2002-09-26 arthur * configure.ac: fixed typo 2002-09-25 arthur * configure.ac, cvsd-buildroot.in: removed finding tmpreaper from configure 2002-09-24 arthur * debian/: control, rules: removed build-dependency on cvs by using --with-cvs=/usr/bin/cvs when calling configure * configure.ac: make it possible to specify cvs binary using --with-cvs and only warn if cvs isn't found * debian/rules: by default enable warnings when building debian package 2002-09-23 arthur * FAQ, README, configure.ac, cvsd.c: implemented and documented the use of tcp wrappers trhough libwrap (currently disabled by default) * README: fixed typo * cvsd.c: close client socket when getnameinfo() returns an error * cvsd.c: log with PACKAGE name instead of hardcoded "cvsd" 2002-09-22 arthur * configure.ac: removed AC_PROG_INSTALL since this is done by AM_INIT_AUTOMAKE 2002-09-20 arthur * configure.ac: add proper copyright statement to generated configure script 2002-09-18 arthur * debian/copyright: replaced section on getting GPL from FSF with section on where to find it on Debian * debian/changelog: removed unnecessary emacs stuff * cvsd-buildroot.in: do not look for CVSROOT directories in /tmp 2002-09-16 arthur * configure.ac, debian/changelog: release 0.9.12.1 (patches for * debian/copyright: added notes about me being the maintainer and where to get the current version of cvsd * debian/control: changed Standards-Version to 3.5.6.0 2002-09-14 arthur * NEWS, TODO, configure.ac, debian/changelog, ChangeLog: release 0.9.12 2002-09-11 arthur * cvsd-buildroot.in: just use sed from the path instead of the one found by configure * cvsd-buildroot.in: added libraries specific for solaris, fixed sed regexp to also match tabs and loose more errors from finding files with ls 2002-09-10 arthur * cvsd-buildroot.in: follow symlinks when tarring devices * configure.ac, cvsd-buildroot.in, cvsd.init.in: find out echo flavor for ourselves instead of relying on configure since configure may use a different shell * cvsd-buildroot.in: check for existence of CVSROOT/passwd file 2002-08-25 arthur * cvsd-passwd.8.in: updates manual page to reflect changes in cvsd-passwd * NEWS, TODO, configure.ac, debian/changelog, ChangeLog: release 0.9.11 * cvsd-buildroot.in: make output better readable by removing program name * cvsd-buildroot.in: don't report all the errors of tar and chown * INSTALL, config.guess, config.sub, configure.ac: newer versions of autoconf/automake tools * cvsd-passwd: added some documentation and TODO notes * cvsd-buildroot.in: add check if all repository users are mapped to cvsd is applicable * FAQ: inserted new question and rephrased one sentence 2002-08-21 arthur * getinfos.c: fixed NULL pointer in strcmp() and complete misfunctioning of getnameinfo() thanks to Florian Zschocke * cvsd-passwd: fixed bug when adding user with default user mapping, thanks to Florian Zschocke 2002-08-09 arthur * NEWS: fixed spelling 2002-07-28 arthur * NEWS, TODO, configure.ac, debian/changelog, ChangeLog: release 0.9.10 * debian/control: changed section and description for debian package * .cvsignore, Makefile.am, configure.ac, cvsd.spec.in: added .spec file for rpms thanks to Matthew L Daniel and Andreas Metzler 2002-07-24 arthur * Makefile.am, configure.ac, cvsd.c, getinfos.c, getinfos.h: removed legacy networking code from cvsd.c and replaced with wrappers for getaddrinfo() and getnameinfo() in getinfos.[ch] for platforms that don't have them and removed --disable-afindep from configure 2002-07-23 arthur * configure.ac: chache check for daemon() to only check once 2002-07-22 arthur * daemon.c: added forgotten return statement and included daemon.h * configure.ac: also search sys/socket.h for socklen_t 2002-07-21 arthur * configure.ac: made more readable by adding some comments * cvsd-passwd.8.in, getopt_long.c, getopt_long.h: updated copyright notices * configure.ac, cvsd.c: changed cvsd_numchildren to be volatile * configure.ac: also look for getaddrinfo() and getnameinfo() with -lsocket 2002-07-15 arthur * README: added note about rerunning cvsd-buildroot * cvsd.init.in, cvsd.init.redhat71.in, debian/cvsd.init: read pidfile from configfile and partially support no pidfile * cvsd-passwd: accept a specified system user and have a configurable default for newly created users 2002-07-13 arthur * configure.ac, cvsd-buildroot.8.in, cvsd-buildroot.in, cvsd.c: take advantage of new autoconf features 2002-07-12 arthur * .cvsignore: ignore development directories * README: updated (shortened) with references to FAQ * cvsd-buildroot.8.in: updated manual page with notes about recent changes and links to README and FAQ, added a NOTES section with some tips * cvsd-buildroot.in: create lockdirectories if they do not already exist * cvsd-buildroot.in: ensure correct permissions of the chroot jail itself * cvsd.c, configure.ac: improve signalhandling by using sigaction() instead of signal() * cvsd.c: replaced do-while loop with simpler while loop in sigchld_handler() * cvsd.c: add debugging of nice() setgid() and setuid() * configure.ac: check for size_t and socklen_t and replace socklen_t with size_t if it isn't defined 2002-06-25 arthur * configure.ac, cvsd.c: removing pidfile from cvsd is silly because we are in a chroot jail and probably have wrong permissions anyway 2002-06-24 arthur * NEWS, TODO, configure.ac, debian/changelog, ChangeLog: release 0.9.9 * cvsd.conf.5.in: added note about new Listen formats * configure.ac, cvsd.init.redhat71.in: added init script for redhat 7.1 * cvsd-buildroot.in: major portability improvements by better library checking and more predefined libraries for some platforms, also checking and adding of users that are used in repositories to passwd file in chroot jail * cvsd-buildroot.in: major portability improvements by better library checking and more predefined libraries for some platforms, also checking and adding of users that are used in repositories to passwd file in chroot jail * cfgfile.c: also allow other formats for Listen configoption * cfgfile.c, cvsd.c: add a limited addaddress() function for old networking code * configure.ac, cvsd.c: remove pidfile on exit * .cvsignore: added backup files, homepage and some other files to be ignored * cvsd.c: log starting of debugging version, proper user of fcntl() by keeping old flags and clearing NONBLOCK flag on child connections 2002-06-14 arthur * Makefile.am: added FAQ to distribution list * Makefile.am, cvsd.init.in, debian/.cvsignore, debian/cvsd.init, debian/rules: changed init script to be generic and moved debian specific init script to debian directory * cvsd.conf.5.in: added note about using CvsCommand within a chroot jail * cvsd-buildroot.8.in, cvsd.8.in: chaged "rootjail" to "chroot jail" * cvsd-passwd.8.in: added note about genericness of cvsd-passwd * cvsd.c: changed too many connections loglevel to info and set some debugging messages to level debug * FAQ, debian/docs: added a FAQ * README: chaged "rootjail" to "chroot jail" and changed some wording * README: added section on lockfiles 2002-05-18 arthur * INSTALL, config.guess, config.sub: new version of autotools support files 2002-05-10 arthur * cvsd.c: portability fix by Leif Stensson * cvsd.c: added more debug info and fixed debug loglevel 2002-04-06 arthur * NEWS, TODO, configure.ac, debian/changelog, ChangeLog: release 0.9.8 2002-04-04 arthur * cfgfile.c, cfgfile.h, cvsd.c, daemon.c, daemon.h, getopt_long.c, getopt_long.h, reslimit.c, reslimit.h: removed unneeded spaces and added const where possible * xmalloc.c: add extra check for NULL passed in xtrsdup() * cvsd.c: separated listening per Listen directive in configfile and fail if no socket can be bound for a Listen directive 2002-04-02 arthur * cvsd.c: increased logging of ports to listen on, fixed off by one error (very large number of addresses/ports to listen on in configfile), do not listen on unix sockets and be more forgiving if protocol is not supported by socket() 2002-03-30 arthur * ChangeLog, NEWS, TODO, configure.ac, debian/changelog: release 0.9.7 * debian/: config, postinst, templates: replaced Port configuration option by Listen configuration option (debconf) * cvsd.c: report IPv4-mapped-IPv6 as an IPv4 one 2002-03-29 arthur * debian/: config, postinst, templates: added option to not use debcof 2002-03-26 arthur * configure.ac: add check for getnameinfo() * daemon.c: stupid typo * configure.ac: correctly handle --disable flags * Makefile.am: daemon.h missing from distribution 2002-03-23 arthur * cfgfile.c, configure.ac, cvsd.c, cvsd.conf-dist, cvsd.conf.5.in: new networking code: should be address family independent (support ipv6 and others), replaced Port config option with Listen and overall improved networking code and debugging of networking * cvsd.c: added checking for configfile path * cfgfile.c: typo in configfile parsing * cfgfile.c: improved configfile line parsing * cvsd.c, xmalloc.c, xmalloc.h: added strdup() wrapper and fix double close of serversocket 2002-03-22 arthur * cvsd.c: moved code a little * cvsd.c: seporated fork()ing code from networking code and small logging improvement (terminology) 2002-03-16 arthur * configure.ac: fix for using replace outside check for daemon in bsd library 2002-03-11 arthur * configure.ac: also look for daemon() in -lbsd and check for atexit() function 2002-03-10 arthur * cvsd.c: handle exit of daemon more gracefully by atexit() function that closes server socket and prints something in the logs * cvsd.c: set permissions for pidfile to reasonable values * cvsd.c: fixed wrong copyright and only log strange accept() errors * cvsd.c: clean out environment on cvsd start (set it equal to the environment cvs will be run under) 2002-03-09 arthur * ChangeLog: compacted ChangeLog a bit * configure.ac, cvsd.c, daemon.c, daemon.h: use daemon() funcion for daemonizing process and moved old code to daemon() replacement files (find out if there are modern systems without daemon() function) 2002-03-03 arthur * config.guess, config.sub: new versions of config.guess and config.sub 2002-03-02 arthur * configure.ac: new configure format 2002-03-01 arthur * Makefile.am, README, configure.ac, cvsd.c, cvsd.init.in, debian/copyright: updated copyright notices 2002-02-25 arthur * ChangeLog, NEWS, TODO, configure.ac, debian/changelog: release 0.9.6 * configure.ac: now should work on solaris 2002-02-23 arthur * debian/postinst: stop and start cvsd on reconfigure * cvsd.init.in: added note if cvsd is already running or not running and removed pidfile * cfgfile.c, cvsd.c, reslimit.c: improved debugging 2002-02-21 arthur * cvsd.conf.5.in: added information about default values and added some notes * cvsd.c, reslimit.c, reslimit.h, xmalloc.c, xmalloc.h, cfgfile.c: improved include file handling * cvsd.c, cfgfile.c, cvsd.conf-dist, cvsd.conf.5.in: add Umask configuration option (does umask() and sets CVSUMASK envvar.) and added some debugging 2002-02-20 arthur * README: forgot not * README: added featurelist and bugreporting section * config.guess, config.sub: new version of config.guess and config.sub * Makefile.am, cfgfile.c, cfgfile.h, cvsd.c: split configfile code to cfgfile.c * cvsd.c: add some comments * xmalloc.c: include config.h * cvsd.c: renamed getlistensocket() to getserversocket() 2002-01-25 arthur * ChangeLog, NEWS, TODO, configure.ac, debian/changelog: release 0.9.5 * Makefile.am: forgot binary in .deb file creation * debian/postinst: resource limit may be 'none' * reslimit.c: bug that failed to apply resource limits * cvsd.c: improved socket handling so restart works better * cvsd.c: fixed bug in limit timevalue parsing * cvsd.c: added 'unlimited' value for limits * reslimit.c: added aliasses for resource names * Makefile.am, configure.ac, cvsd.c, reslimit.c, reslimit.h, xmalloc.c, xmalloc.h: moved malloc wrapper and resource limit code from cvsd.c to separate files for better maintainability (cvsd.c was getting too large) * Makefile.am: simplified deb target * INSTALL, autogen.sh, configure.ac, configure.in, missing: upgraded to autoconf 2.50 2002-01-19 arthur * configure.in, cvsd.c: some effort to make it compile on solaris (not finished) * config.guess, config.sub: new version of autotools 2002-01-01 arthur * debian/config: removing remaining debug echo cvsd-1.0.24/ChangeLog-20010000644000000000000000000002144207547111505011565 0ustar 2001-12-31 arthur * ChangeLog, NEWS, TODO, configure.in, debian/changelog, debian/control: release 0.9.4 * configure.in, cvsd.c, cvsd.conf-dist, cvsd.conf.5.in, debian/config, debian/postinst, debian/templates: added support for setting resource limits on command execution 2001-12-24 arthur * debian/: config, postinst, postrm: added 'set -e' to scripts and added 'exit 0' where needed * cvsd.c: copy-parste error, CvsCommand should not have 'none' option 2001-12-23 arthur * cvsd.c: logging of cvs command to execute changed * Makefile.am, configure.in: default configfile location is now passed through config.h so propper recompilation will take place * cvsd.init.in: added sleep between stop and start in restart action * TODO, configure.in, cvsd.c, cvsd.conf-dist, cvsd.conf.5.in: added CvsCommand cofig option 2001-12-20 arthur * NEWS, TODO, configure.in, debian/changelog, ChangeLog: release 0.9.3 * cvsd.c: added handling of more (almost all common) signals * cvsd.c: removed setsock() options * cvsd.c: logging of command only in DEBUG mode, more readable logging * cvsd.c: moved connection counting to where a connection is really accepted * cvsd.c: be more easy on accept() failure to fix fast closing connections (scans?) 2001-12-15 arthur * Makefile.am, configure.in, cvsd.c, getopt_long.c, getopt_long.h: including local definition of getopt_long() if system does not provide it * cvsd.c: fixed include files, added 1999 to copyrights notice and added missing newline 2001-12-14 arthur * ChangeLog, NEWS, TODO, configure.in, debian/changelog: release 0.9.2 * cvsd.init.in: fixed copy-paste error in name * debian/config: modified reading of old configfile * debian/postinst: added PidFile to configfile (oops forgot) * debian/config: read old configuration file * debian/: config, postinst, rules, templates: configuration is now fully done by debconf 2001-12-09 arthur * cvsd.c: structures returned by getpwnam() and getgrnam() should not be free()d (documentation was not clear here) * cvsd.init.in: removed reload option * cvsd.conf.5.in, cvsd.c, cvsd.conf-dist: added option to specify 'none' for RootJail so cvsd will run without chroot 2001-12-08 arthur * cvsd.c: made lclint (lclint -skipposixheaders -warnposix +trytorecover -unrecog cvsd.c) a little happier by making things static, making more explicit casts, also made malloc() wrapper * cvsd.c: abort if there are no Repos statements in configfile * cvsd-buildroot.in: added note about home directory * configure.in, cvsd.c, cvsd.conf-dist, cvsd.conf.5.in: added nice value to daemon * TODO, cvsd.c: added logging of caught signals and added logging of signal names 2001-12-07 arthur * config.sub, configure.in, config.guess: changed configure script to do more testing and new versions of config.guess and config.sub * cvsd.c: removed trailing spaces, changed building of cvs command line, moved parameter checking to read_configfile(), small changes to make some warnings go away * configure.in: added even more warnings to gcc * cvsd.c: made local functions (all except main) static, changed global vars names to avoid clashes, fixed usage of global vars in functions and added full commandline logging as default * configure.in: added compiler warning flags * NEWS, README, TODO, cvsd-buildroot.8.in, cvsd-buildroot.in, cvsd-passwd, cvsd-passwd.8.in, cvsd.c, cvsd.conf-dist, cvsd.conf.5.in, debian/control, debian/rules, debian/templates: spelling checked all of it * debian/docs: ChangeLog and NEWS in debian doc directory 2001-11-18 arthur * ChangeLog, NEWS, TODO, configure.in, debian/changelog, ChangeLog, ChangeLog: release 0.9.1 * cvsd-buildroot.in: add support for modified system cvsd user and group * debian/: config, postinst, templates: added debian configuration of MaxConnections * Makefile.am, debian/postrm: added removal of cvsd user and group to debian package * debian/postinst: changed to only modify user information when change is needed and fixed replacement of RootJail option in configuration file, also added db_stop * cvsd.c: not closing fd's 0,1 and 2 due to problems with syslog opening logging through fd 0 * README: documentation upgrade * configure.in, cvsd.c, cvsd.conf-dist, cvsd.conf.5.in: added support for sybolic uids and gids and cleaned reading configuration file a bit * cvsd.c, cvsd.conf-dist, cvsd.init.in, cvsd.conf.5.in: cvsd now daemonizes itself and writes it's process id to a configurable pidfile * cvsd.8.in: added note about use of cvsd-passwd * Makefile.am, README, configure.in, cvsd-passwd, cvsd-passwd.8.in, debian/control, Makefile.am: added cvsd-passwd script to add and change passwords for cvs pserver * Makefile.am: added automatic generation of ChangeLog 2001-11-17 arthur * configure.in, cvsd-buildroot.8.in, cvsd.8.in, cvsd.conf.5.in: * added release month to configure for manual pages * Makefile.am, configure.in, cvsd-buildroot.in, cvsd.init.in: modified file headers * cvsd.c: * small logging change * close unneeded socket * cvsd.c: * added logging of out of connections * cvsd.c: * impoved cvs execution logging 2001-11-04 arthur * cvsd.c: * exited normally -> exited abnormally * README: * checked spelling * relayouting (line breaks) * added small section on using strace * cvsd-buildroot.in: * small improvement to logging 2001-11-03 arthur * README: * added warning about writers file * README: * added extra explanation of adding libraries * cvsd-buildroot.in: * added more logging of what is done * cvsd-buildroot.in: * fixed bug in chroot password creation * cvsd-buildroot.in: * added possibility for installing more libraries * added installing of libnsl.so and libnss_compat.so * cvsd.c: * improved logging of dieing children * cvsd.c: * added -t flag to cvs in debug mode * cvsd.init.in: * bug in reload target * config.guess, config.sub: new version of autotools * debian/postinst: daemon is started after rootjail etc is created * cvsd.conf-dist: completely new configuration file * cvsd.init.in: added init script * TODO: most old ones done, a lot of new ones * cvsd.c: * removed MapRepos configuration item (task should not be part of cvsd operation) * removed -t flag to cvs (should probably be specified if debugging is turned on * cvsd-buildroot.in: made buildroot script * cvsd-buildroot.8.in, cvsd.8.in, cvsd.conf.5.in: made manual pages * debian/: .cvsignore, config, control, copyright, postinst, rules, templates: added debian configuration * Makefile.am, configure.in: major rewrites * config.guess, config.sub: new version of autotools * README: completely rewritten 2001-11-02 arthur * cvsd.1: delteted, wrong section anyway * cvsd.c: first reasonable version 2001-10-05 arthur * .cvsignore, AUTHORS, Makefile, Makefile.am, NEWS, README, TODO, autogen.sh, buildroot, config.guess, config.sub, configure.in, correct-permissions-dist, cvsd.1, cvsd.c, cvsd.conf-dist, example-passwd-dist, example-readers-dist, install-sh, makepasswd-dist, missing, mkinstalldirs, passwd-dist, debian/.cvsignore, debian/changelog, debian/control, debian/docs, debian/rules: intial step to use of configure and debian 2001-06-17 arthur * cvsd.h: moved stuff in cvsd.h to cvsd.c and configure script * CHANGES, ChangeLog: renamed CHANGES to ChangeLog * manual.html, webpage.html: changed documentation * INSTALL: new generic INSTALL * COPYING: new standard GPL (slight layout changes) 2001-02-16 arthur * Makefile: CVSD_ROOT is not used in cvsd.c * Makefile: * updated install a little * fixed quote bug in defines * Makefile: oops a few typos in vars * Makefile: added install-inetd to add the right lines to inetd.conf * Makefile: changed adding of users and groups to be more flexible * Makefile: removed example repository from default install * Makefile: default values are passed when compiling * Makefile: removed cvsadmin from Makefile * Makefile: remove ls from Makefile * Makefile: renamed a few Makefile vars * Makefile: removed suid bit and moved chroot contruction to buildroot * Makefile: modified configfile and installdir stuff * Makefile: a little Makefile cleanup (mostly comments) * cvsd.c: moved setuid() and setgid() to as far above as possible * cvsd.h: default configfile an uids are now passed at compiletime * cvsd.c, cvsd.h: CONFIG_FILE renamed to CVSD_CONFIGFILE * buildroot: added script to build chroot directory structure * CHANGES, COPYING, INSTALL, Makefile, README, TODO, correct-permissions-dist, cvsd.c, cvsd.conf-dist, cvsd.h, example-passwd-dist, example-readers-dist, makepasswd-dist, manual.html, passwd-dist, webpage.html: Initial revision * CHANGES, COPYING, INSTALL, Makefile, README, TODO, correct-permissions-dist, cvsd.c, cvsd.conf-dist, cvsd.h, example-passwd-dist, example-readers-dist, makepasswd-dist, manual.html, passwd-dist, webpage.html: import of version 0.8b3 cvsd-1.0.24/ChangeLog-20050000644000000000000000000001305510726246357011601 0ustar 2005-12-29 arthur * NEWS, TODO, configure.ac, debian/changelog, ChangeLog: release 1.0.10 * cfgfile.c, cvsd.conf-dist, cvsd.conf.5.in, debian/postinst: add CvsArgs configfile option to pass extra arguments to the cvs command, based on a patch by Stefan Bethke * debian/: control, cvsd.init: use lsb-base init script logging functions in /etc/init.d/cvsd script * FAQ: update FAQ from homepage 2005-10-18 arthur * Makefile.am, debian/po/es.po: add Spanish (es) translation of debconf templates by César Gómez Martín 2005-09-18 arthur * cvsd-buginfo.in: do not use curly brace expansion since they are not part of posix shells 2005-08-23 arthur * Makefile.am: now also include Czech (cs) translation of debconf templates to the tarball and generated Debian package 2005-08-21 arthur * NEWS, TODO, configure.ac, debian/changelog, ChangeLog: release 1.0.9 * FAQ: update FAQ with version on homepage 2005-08-20 arthur * cvsd-buildroot.in: use getent to find users and fall back to reading /etc/passwd directly * config.guess, config.sub: include updated files * autogen.sh: also copy other autoconf/automake related files into place * FAQ: update FAQ with version on homepage 2005-08-16 arthur * FAQ: update FAQ with version on homepage 2005-07-31 arthur * README: add period to end of sentence 2005-07-29 arthur * cvsd.8.in: small text change and fix copyright header * AUTHORS, Makefile.am, README, configure.ac, cvsd-buginfo.8.in, cvsd-buildroot.8.in, cvsd-passwd.8.in, cvsd.8.in, cvsd.c, cvsd.conf.5.in, cvsd.spec.in, debian/copyright: change email address from arthur@tiefighter.et.tudelft.nl to arthur@ch.tudelft.nl (including urls etc) 2005-07-24 arthur * NEWS, configure.ac, debian/changelog, ChangeLog: release 1.0.8 * depcomp, install-sh, missing, mkinstalldirs, INSTALL: upgrade scripts from current version of automake (1.9.6) * TODO, debian/postinst: remove code for replacing old debconf-only cvsd.conf file (this makes a little uglier upgrade from versions of cvsd before 0.9.20 * debian/cvsd.init: do not use --exec start-stop-daemon option in Debian init script to work around systems that modify binaries between start and stop * debian/control: add dependency on adduser * debian/control: upgrade to standards-version 3.6.2 (no changes needed) 2005-06-25 arthur * COPYING: fix spaces * COPYING, Makefile.am, README, capabilities.txt, cfg.c, cfg.h, cfgfile.c, cfgfile.h, configure.ac, cvsd-buginfo.8.in, cvsd-buginfo.in, cvsd-buildroot.8.in, cvsd-buildroot.in, cvsd-passwd.8.in, cvsd-passwd.in, cvsd.8.in, cvsd.c, cvsd.conf.5.in, cvsd.init.in, cvsd.init.redhat71.in, daemon.c, daemon.h, getinfos.c, getinfos.h, getopt_long.c, getopt_long.h, log.c, log.h, reslimit.c, reslimit.h, xmalloc.c, xmalloc.h, debian/cvsd.bug.script, debian/cvsd.init: update GPL to recent version (FSF address change) and update all copyright headers with new GPL text 2005-06-16 arthur * debian/po/de.po: small typo fix in German translation, spottet by Jens Seidel 2005-05-22 arthur * .cvsignore: ignore file that is created during build * Makefile.am, debian/po/vi.po: add Vietnamese (vi) translation of debconf templates by Clytie Siddall * debian/: po/cs.po, po/da.po, po/de.po, po/fr.po, po/ja.po, po/nl.po, po/pt_BR.po, po/templates.pot, templates: fix typo in templates, thanks to Clytie Siddall * debian/po/cs.po: fix wrapping of messages 2005-04-26 arthur * NEWS, configure.ac, debian/changelog, ChangeLog: release 1.0.7 * config.guess, config.sub: include updated files * FAQ: update FAQ from webpage 2005-04-23 arthur * Makefile.am: fix for running configure from another directory, thanks MURANAKA Masaki 2005-04-19 arthur * cvsd-buildroot.in: check for lib64 before creating symlink (not libexec) (thanks Ysolt for spotting this) 2005-04-07 arthur * config.guess, config.sub: include updated files 2005-03-18 arthur * README: some small improvements based on comments by Marcello Magaldi 2005-03-11 arthur * NEWS, configure.ac, debian/changelog, ChangeLog: release 1.0.6 * README: add quick documentation for PamAuth cvs option 2005-03-07 arthur * ChangeLog, ChangeLog-2004: moved changes of 2004 to ChangeLog-2004 * configure.ac: remove extra compiler warnings again (not available on some compilers) * cvsd-buildroot.in: add some support for 64 bit Linux systems 2005-03-05 arthur * NEWS, configure.ac, debian/changelog, ChangeLog: release 1.0.5 * FAQ: update from current web version * cvsd.c: get rid of program_name global var and use argv instead 2005-02-20 arthur * cvsd-buginfo.in: add check for lockdir directive in CVSROOT/config to see if directory exists * configure.ac: add extra compiler warnings * INSTALL, depcomp, install-sh, missing, mkinstalldirs: update from newer version of automake (1.9.5) * cvsd-buginfo.in: also list tmp directory contents * cvsd-buildroot.in: add /lib/ld-linux.so.2 to EXTRALIBS since newer ldd has strange output, also ensure that libraries are installed once * debian/cvsd.init: explicitly set path 2005-01-22 arthur * debian/copyright, cvsd.c: fix copyright years * debian/po/cs.po: add Czech (cs) translation of debconf templates by Jan Outrata 2005-01-03 arthur * debian/control: start short description with lower case letter (thanks lintian) cvsd-1.0.24/README0000644000000000000000000002577211724632234010324 0ustar cvsd - chroot wrapper to run 'cvs pserver' more securely. cvsd was originally written by Chris Black , http://cblack.mokey.com/. That was until release 0.6. cvsd versions up till 0.8b3 were maintained by Philippe Kehl , http://guv.ethz.ch/~flip/cvsd/, http://www.oinkzwurgl.org/software/cvsd/. after that Arthur de Jong took up the work and did a complete rewrite, http://arthurdejong.org/cvsd. Copyright (C) 1999 Chris Black. Copyright (C) 2000 Philippe Kehl. Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Arthur de Jong. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA INTRODUCTION ============ cvsd is a wrapper program for cvs in pserver mode. it will run 'cvs pserver' under a special uid/gid in a chroot jail. cvsd is run as a daemon and is controlled through a configuration file. It is relatively easy to configure and provides tools for easy setting up a chroot jail. This server can be useful if you want to run a public cvs pserver. You should however be aware of the security limitations of running a cvs pserver. If you want any kind of authentication you should really consider using secure shell as a secure authentication mechanism and transport. Passwords used in cvs pserver are transmitted in plain text. This wrapper adds a layer of security to the cvs server. cvs is a very powerful tool and is capable of running scripts and other things. Running cvs in a chroot jail it is possible to limit the amount of "damage" cvs can do if it is exploited. It is generally a good idea to run cvsd without any write permissions to any directory on the system. Features of cvsd include: * running in chroot jail * configuring chroot jail * running under a non-root uid * set a nice value * limit resource usage * limit number of connections * relatively easy to set up INSTALLING CVSD =============== In short: % ./configure % make % make install You can add '--sysconfdir=/etc', '--prefix', '--enable-warnings' and/or '--enable-debug' options to configure to tune installation. Debugging is only recommended for finding bugs. cvsd is developed on a Debian GNU/Linux system and should work fine on most GNU/Linux systems. The code is supposed to be portable but is not regularly tested on other platforms. cvsd is known to work on Solaris, FreeBSD, OpenBSD and others. tcp wrappers ------------ cvsd currently has experimental support for tcp wrappers. Use './configure --with-libwrap' to enable support. Most versions of the tcp wrapper libraries have issues with systems supporting IPv6, see the FAQ. Using this option will have a slight performance hit on the number of connections that can be handled per minute. For each incoming connection the tcp wrapper reads the configuration files and does a name lookup. This is done inside the main loop before the child is forked.. Also note that you have to edit the hosts.allow and hosts.deny files INSIDE the chroot jail since the tcp wrapper libraries reread these files for every connection. CONFIGURING CVSD ================ cvsd is controlled through a configuration file in /etc/cvsd/cvsd.conf (or maybe /usr/local/etc/cvsd/cvsd.conf depending where you set --prefix to with configure). The default configuration file is fully commented and has a manual page (cvsd.conf(5)) which documents use of the configuration file. very quick setup guide ---------------------- The is just a series of commands to set up cvsd in a typical read-only setup. If you don't understand these steps or are looking for commands that work on your system you should look below for further details. # addgroup --system cvsd (or groupadd) # adduser --system --ingroup cvsd --home /var/lib/cvsd \ --shell /bin/false --gecos 'cvs pserver daemon' cvsd # cvsd-buildroot /var/lib/cvsd # cvs -d /var/lib/cvsd/myrepos init # cvsd-passwd /var/lib/cvsd/myrepos +anonymous # touch /var/lib/cvsd/myrepos/CVSROOT/writers edit /var/lib/cvsd/myrepos/CVSROOT/config add "SystemAuth=no" add "PamAuth=no" (on systems that have this option) add "LockDir=/tmp/myrepos" # mkdir /var/lib/cvsd/tmp/myrepos # chown cvsd:cvsd /var/lib/cvsd/tmp/myrepos edit /etc/cvsd/cvsd.conf set "RootJail /var/lib/cvsd" set "Repos /myrepos" You should now be able to continue with the section "checking the configuration" below. setting up the user and group ----------------------------- You should setup a user and group under which cvsd is run. Adding users to the system is different on most platforms but this should work for most systems: # addgroup cvsd # adduser --system --ingroup cvsd --home /var/lib/cvsd \ --shell /bin/false --gecos 'cvs pserver daemon' cvsd or maybe (or some other variation depending on your system): # groupadd cvsd # useradd -r -M -d /var/lib/cvsd -s /bin/false \ -c "cvs pserver daemon" -g cvsd cvsd (replace /var/lib/cvsd with the place where your chrooted file system is located) setting up a chroot jail ------------------------ You can populate a chrooted file system with cvsd-buildroot. You should rerun this script if your cvs binary changes or the libraries that it depends upon. The place where you create the chroot file system should be specified in the configuration file as the 'RootJail'. It is possible (but not advisable) to run cvsd without a chrooted file system. If you plan to run stuff like the scripts from the contrib/ subdirectory in cvs, then you have to have all necessary binaries, libraries etc. etc. in the chrooted file system. You can just put the needed binaries in the 'bin' directory of the chroot jail and 'cvsd-buildroot' will install the needed libraries. Please note that this may require manual reconfiguring. Some systems may require extra libraries to be present in the chrooted file system than can not be automatically detected (using ldd). See the FAQ for details. disabling inetd pserver ----------------------- If inetd is configured to start cvs /etc/inetd.conf should contain a line like this: cvspserver stream tcp nowait root /usr/bin/cvs --allow-root /home/cvs You should remove or comment out this line or tell cvsd to listen on a different port (use Listen option in cvsd.conf). If you change inetd.conf you should tell inetd to reload it's configuration by: # kill -s HUP setting up a repository ----------------------- If you have configured the chroot jail and the user and group id bits you can start adding repositories to the chroot jail. There are a couple of ways you could do that. The first is creating an empty repository with something like: # cvs -d /var/lib/cvsd/myrepos init (where /var/lib/cvsd is the location of the chroot jail and myrepos is the name of the new repository) Another way is copying an already existing repository to the chroot jail. It is also possible to do something smart with a tool like 'rsync'. Put this in a cronjob for extra effect. Symbolic linking a repository to the chroot jail is not possible since symbolic links will be evaluated within the chroot jail. Hard linking directories should be avoided (hard linking in general in my opinion). With Linux 2.4 (and probably other systems) it is possible to remount an existing directory within another directory. You can use mount: # mount --bind /home/user/develrepos /var/lib/cvsd/userrepos or add something like this to /etc/fstab: /home/user/develrepos /var/lib/cvsd/userrepos none bind 0 0 (don't forget to create the /var/lib/cvsd/userrepos directory) After you have created or copied a repository into the chroot jail you should add it to the cvsd.conf configuration file so cvs can access it. Use the 'Repos' option for this and remember to specify it relative to the chroot jail. So if your repository is /var/lib/cvsd/myrepos you should add 'Repos /myrepos' to the configuration file. The last step for making your repository accessible is to add a passwd file to the 'CVSROOT' directory of the repository. The cvsd-passwd tool will do this for you. cvsd-passwd /var/lib/cvsd/myrepos anonymous This will add user 'anonymous' to the list of users that can access the repository. You will be prompted for a password which can optionally be blank. Note that the cvsd user needs to have the correct permissions to the repository. The cvsd user probably should have read access to the repository but probably no write permission. You can add all users in the repository passwd file to a file named 'readers' in the 'CVSROOT' directory or create an empty 'writers' file. Without any of these files all users have write access! If you set up your repository so that the cvsd user only has read access to the files and directories in the repository (through unix file permissions) you need to take some extra provisions since cvs creates lockfiles when checking out files from the repository. The best way to do this is to create a directory for the cvsd user to write the lockfiles to (e.g. /var/lib/cvsd/tmp/myrepos) and add "LockDir=/tmp/myrepos" to the /var/lib/cvsd/myrepos/CVSROOT/config file. Be sure to create the directory and make it writable for the cvsd user. If your cvsd user has write access to the repository this should be no problem. It is also a good idea to put "SystemAuth=no" and maybe "PamAuth=no" in your CVSROOT/config file. This way password lookups will only be done to CVSROOT/config and not to /etc/passwd inside the chroot jail (that passwd file shouldn't contain any passwords) or PAM. See the "Password authentication server" section in the cvs texinfo document for more information about running a pserver and setting up repositories. CHECKING THE CONFIGURATION ========================== If you have started cvsd with the provided init script: # /etc/init.d/cvsd start (or /usr/local/etc/init.d/cvsd start) and configured a repository (say myrepos) you should be able to access the server with something like: % cvs -d :pserver:anonymous@localhost:/myrepos login % cvs -d :pserver:anonymous@localhost:/myrepos checkout . For troubleshooting information see the FAQ on debugging. REPORTING BUGS ============== If you find any bugs or missing features please send email to cvsd-users@lists.arthurdejong.org Please include as much information as needed (platform, output of configure if compilation fails, output of the failure, etc). Most of the configuration information can be provided by running cvsd-buginfo. Patches are more than welcome. cvsd-1.0.24/cfg.h0000644000000000000000000000675110434074224010344 0ustar /* cfg.h - all the configurable options in cvsd Copyright (C) 2003, 2004, 2006 Arthur de Jong. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef _CVSDCFG_H #define _CVSDCFG_H 1 #include #include #ifdef USE_CAPABILITIES #include #endif /* USE_CAPABILITIES */ /* values for uid and gid */ #define NOUID ((gid_t)-1) #define NOGID ((gid_t)-1) /* the index where to set CVSUMASK= in cfg->cvsenv see also the static char *default_environment in cfg.c */ #define CVSUMASK_IDX 4 /* the addresses to listen on */ struct cvsd_addrs { char *node; /* supplied node(address) name in config */ char *service; /* supplied service(port) name in config */ struct addrinfo *addrs; /* addresses asiciated with node+service */ struct cvsd_addrs *next; /* next configured node+service */ }; /* default address/port combination to listen on if nothing is supplied in the config file */ #define DEFAULT_ADDR "*" #define DEFAULT_PORT "2401" /* struct to hold all configuration information initial values are set in cfg_new() */ struct cvsd_cfg { /* the configuration file DEFAULT_CONFIGFILE is set in config.h */ char *configfile; /* the pid file default is no pidfile (NULL) */ char *pidfile; /* whether debugging mode is enabled */ int debugging; /* the location of the rootjail NULL or "none": no chroot */ char *rootjail; /* the user id cvs should be run as NOUID: don't change */ uid_t uid; /* the group id cvs should be run as NOGID: don't change */ gid_t gid; /* the nice value the daemon should run as 0: don't change */ int nice; /* the umask that should be used to create files */ mode_t umask; /* TODO: limits (are currently stored in structures in reslimit.c)*/ #ifdef USE_CAPABILITIES /* the capabilities for cvs */ cap_t capabilities; #endif /* USE_CAPABILITIES */ /* the addresses/ports that should be listened on */ struct cvsd_addrs *addresses; /* the maximum number of connections to handle 0: unlimited */ int maxconnections; /* TODO: repositories (currently only added to cvsargs below) */ /* the command that will be run (location of the binary) */ char *cvscmd; /* the arguments that will be passed */ char **cvsargs; /* the environment that should be used */ char **cvsenv; }; /* initialize the configuration with some reasonable default values */ struct cvsd_cfg *cfg_new(void); /* add a string as a command line argument to the cvs command */ void cfg_addcvsarg(struct cvsd_cfg *cfg,const char *arg); /* add the given node and service to the list of addresses that will be listened on */ void cfg_addaddress(struct cvsd_cfg *cfg, const char *filename,int lnr, const char *node,const char *service); #endif /* not _CVSDCFG_H */ cvsd-1.0.24/missing0000744000000000000000000002415211762425621011032 0ustar #! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2012-01-06.13; # UTC # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, # 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' sed_minuso='s/.* -o \([^ ]*\).*/\1/p' # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case $1 in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' autom4te touch the output file, or create a stub one automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file yacc create \`y.tab.[ch]', if possible, from existing .[ch] Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and \`g' are ignored when checking the name. Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # normalize program name to check for. program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). This is about non-GNU programs, so use $1 not # $program. case $1 in lex*|yacc*) # Not GNU programs, they don't have --version. ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case $program in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case $f in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te*) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison*|yacc*) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if test $# -ne 1; then eval LASTARG=\${$#} case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.h fi ;; esac fi if test ! -f y.tab.h; then echo >y.tab.h fi if test ! -f y.tab.c; then echo 'main() { return 0; }' >y.tab.c fi ;; lex*|flex*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if test $# -ne 1; then eval LASTARG=\${$#} case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if test ! -f lex.yy.c; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit $? fi ;; makeinfo*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n ' /^@setfilename/{ s/.* \([^ ]*\) *$/\1/ p q }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: cvsd-1.0.24/getinfos.c0000644000000000000000000001171310434125357011414 0ustar /* getinfos.c - implementation of getaddrinfo(), getnameinfo() and related functions for systems that lack it note that these functions are implemented only for use in cvsd and are probably incomplete for other purposes Copyright (C) 2002, 2003 Arthur de Jong This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #include "config.h" #include "getinfos.h" #include "xmalloc.h" #include #include #include #include #ifdef HAVE_NETDB_H #include #endif /* HAVE_NETDB_H */ /* this is a very poor implementation of the getaddrinfo() function it only returns IPv4 stream addresses, regardless of the input only numericly specified services (port numbers) are supported hints are completely ignored */ int getaddrinfo(const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res) { char *tmp; struct sockaddr_in *addr; struct hostent *hent; *res=NULL; /* allocate address */ addr=(struct sockaddr_in *)xmalloc(sizeof(struct sockaddr_in)); addr->sin_family=AF_INET; /* check node */ if ((node==NULL)|| (strcmp(node,"*")==0)|| (strcmp(node,"0.0.0.0")==0)) addr->sin_addr.s_addr=INADDR_ANY; else if ((hent=gethostbyname(node))!=NULL) memcpy(&addr->sin_addr.s_addr,hent->h_addr,4); else { free(addr); return EAI_HERR; } /* check service */ /* TODO: maybe use getservbyname() */ addr->sin_port=htons((int)strtol(service,&tmp,0)); if (*tmp!='\0') { free(addr); return EAI_WRONSERVC; } /* build result */ *res=(struct addrinfo *)xmalloc(sizeof(struct addrinfo)); (*res)->ai_flags=0; (*res)->ai_family=AF_INET; (*res)->ai_socktype=SOCK_STREAM; (*res)->ai_protocol=0; (*res)->ai_addrlen=(socklen_t)sizeof(struct sockaddr_in); (*res)->ai_addr=(struct sockaddr *)addr; (*res)->ai_canonname=NULL; (*res)->ai_next=NULL; /* and we're done */ return EAI_OK; } /* this is a poor implementation of getnameinfo() it lacks name lookups and only returns numeric values */ int getnameinfo(const struct sockaddr *sa,socklen_t salen, char *host,size_t hostlen, char *serv,size_t servlen,int flags) { const struct sockaddr_in *caddr; caddr=(const struct sockaddr_in *)sa; if (salen!=(socklen_t)sizeof(struct sockaddr_in)) return EAI_WRONGSOCK; /* save ip */ if ((host!=NULL)&&(hostlen>0)) { /* TODO: use gethostbyaddr() or getipnodebyaddr() */ snprintf(host,hostlen,"%s",inet_ntoa(caddr->sin_addr)); host[hostlen-1]='\0'; } /* save port */ if ((serv!=NULL)&&(servlen>0)) { /* TODO: use getservbyport() */ snprintf(serv,servlen,"%d",(int)ntohs(caddr->sin_port)); serv[servlen-1]='\0'; } return EAI_OK; } /* free address information allocated by getaddrinfo */ void freeaddrinfo(struct addrinfo *res) { /* do recursively */ if (res==NULL) return; freeaddrinfo(res->ai_next); /* free memory */ free(res->ai_addr); free(res); } /* translate an error codes returned by getaddrinfo() and getnameinfo() to printable error strings */ const char *gai_strerror(int errcode) { switch (errcode) { case EAI_OK: return "nothing wrong"; case EAI_SYSTEM: return "see errno"; case EAI_WRONGNODE: return "currently only '*' is supported"; case EAI_WRONSERVC: return "only support for numeric services"; case EAI_WRONGSOCK: return "wrong socket type returned"; #ifdef HAVE_HSTRERROR case EAI_HERR: return hstrerror(h_errno); #else /* HAVE_HSTRERROR */ case EAI_HERR: switch(h_errno) { #ifdef HOST_NOT_FOUND case HOST_NOT_FOUND: return "host not found"; #endif /* HOST_NOT_FOUND */ #ifdef NO_ADDRESS case NO_ADDRESS: return "no address associated with that name"; #else /* NO_ADDRESS */ #ifdef NO_DATA case NO_DATA: return "no address associated with that name"; #endif /* NO_DATA */ #endif /* not NO_ADDRESS */ #ifdef NO_RECOVERY case NO_RECOVERY: return "unrecoverable error"; #endif /* NO_RECOVERY */ #ifdef TRY_AGAIN case TRY_AGAIN: return "temporary error"; #endif /* TRY_AGAIN */ default: return "unknown"; } #endif /* not HAVE_HSTRERROR */ default: return "unknown"; } } cvsd-1.0.24/TODO0000644000000000000000000000231410726262011010110 0ustar things to do (varying in priority) ---------------------------------- * make adding of -t option trough configfile (and remove --enable-debug) (also make it possible to add other options (e.g. -R) * cvsd: implement a connectionsperminute * debian: ask per repository whether to initialize * cvsd: throttle bandwidth (see trickle)?? * debian: add a warning if cvs pserver is configured through cvs (db_get cvs/pserver) * debian: add checks for correct parameters (cvsd/listen) * cvsd: add assertions to code for all/most function parameters * cvsd-buildroot: add debug option to display output of ldd, chown, tar, etc * cvsd: maybe do fork() earlier so that connection cannot be stopped with slow name lookups etc * cvsd-buildroot: add quiet (-q) option * debian cronjob: warn if files in / are newer than files in /var/lib/cvsd * get cvsd working under cygwin * cvsd-buildroot: if any directories in chroot jail (besides the ones created) are not mentioned as repos in cvsd.conf give a warning * cvsd-buginfo: check persmissions of files (read access to repository) * cvsd-buginfo (maybe cvsd-buildroot): check CVSROOT/config for SystemAuth=no and PamAuth=no * cvsd-buildroot: complain about libraries that shouldn't be there cvsd-1.0.24/cvsd.spec0000644000000000000000000000421211762425634011247 0ustar %define cvsd_homedir /var/lib/cvsd Name: cvsd Summary: Chroot wrapper to run 'cvs pserver' more securely Version: 1.0.24 Release: 1 URL: http://arthurdejong.org/cvsd/ Source: http://arthurdejong.org/cvsd/cvsd-%{version}.tar.gz License: GPL Group: Network/Daemons Requires: cvs BuildRoot: %{_tmppath}/%{name}-%{version}-buildroot %description cvsd is a wrapper program for cvs in pserver mode. it will run 'cvs pserver' under a special uid/gid in a chroot jail. cvsd is run as a daemon and is controlled through a configuration file. It is relatively easy to configure and provides tools for setting up a rootjail. This server can be useful if you want to run a public cvs pserver. You should however be aware of the security limitations of running a cvs pserver. If you want any kind of authentication you should really consider using secure shell as a secure authentication mechanism and transport. Passwords used with cvs pserver are transmitted in plaintext. %prep %setup -q %build ./configure --prefix=%{_prefix} --mandir=%{_mandir} --sysconfdir=%{_sysconfdir} make %install [ "$RPM_BUILD_ROOT" = "/" ] || rm -rf $RPM_BUILD_ROOT make DESTDIR=$RPM_BUILD_ROOT install-strip rm $RPM_BUILD_ROOT/%{_sysconfdir}/init.d/cvsd rmdir $RPM_BUILD_ROOT%{_sysconfdir}/init.d/ install -d $RPM_BUILD_ROOT%{_initrddir} install -m755 cvsd.init.redhat71 $RPM_BUILD_ROOT%{_initrddir}/cvsd [ -x /usr/lib/rpm/brp-compress ] && /usr/lib/rpm/brp-compress %clean [ "$RPM_BUILD_ROOT" = "/" ] || rm -rf $RPM_BUILD_ROOT %files %doc README TODO AUTHORS ChangeLog NEWS FAQ COPYING %defattr(644,root,root,755) %config(noreplace) %{_sysconfdir}/cvsd/cvsd.conf %{_mandir}/*/* %attr(755,root,root) %{_sbindir}/* %attr(755,root,root) %{_initrddir}/cvsd %pre getent group cvsd > /dev/null || \ groupadd cvsd getent passwd cvsd > /dev/null || \ useradd -r -M -d %{cvsd_homedir} -s /bin/false \ -c "cvs pserver daemon" -g cvsd cvsd [ -e %{cvsd_homedir} ] || \ mkdir -m755 %{cvsd_homedir} %post cvsd-buildroot %{cvsd_homedir} /sbin/chkconfig --add cvsd %postun if [ "$1" = 0 ]; then userdel -r cvsd 2>/dev/null || : groupdel cvsd 2>/dev/null || : rmdir %{cvsd_homedir} 2>/dev/null || : fi cvsd-1.0.24/getopt_long.c0000644000000000000000000000565210434125357012124 0ustar /* getopt_long.c - implementation of getopt_long() for systems that lack it Copyright (C) 2001, 2002 Arthur de Jong This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #include #include #include #include "getopt_long.h" /* this is a (poor) getopt_long() replacement for systems that don't have it (getopt_long() is generaly a GNU extention) this implementation is by no meens flawless, especialy the optional arguments to options and options following filenames is not quite right, allso minimal error checking is provided */ int getopt_long(int argc,char * const argv[], const char *optstring, const struct option *longopts,int *longindex) { int i; /* for looping through options */ int l; /* for length */ /* first check if there realy is a -- option */ if ( (optind>0)&&(optind # This is the location of the chroot jail # cvs should be run in. # Specify 'none' (without quotes) to not use # a chroot jail. # This directory should be initialized with # the cvsd-buildroot script. RootJail /var/lib/cvsd # Uid # This specifies which user id cvs should be # run as. This can be a numerical id or # a symbolic value. Uid cvsd # Gid # This specifies which group id cvs should be # run as. This can be a numerical id or # a symbolic value. Gid cvsd # CvsCommand # If you define this it should point to the cvs # command to execute. Otherwise "/bin/cvs" will # be used if a RootJail is configured and the # cvs command found at compiletime otherwise. # The path should be relative to the specified # RootJail and should start with a '/'. # CvsArgs ... # Additional arguments to pass to the cvs command. # For example, to enable read-only access to the # repository, pass the -R option. # Nice # This specifies the nice value (on most systems # ranging from -20 to 20) where the smaller the number # (more negative) the higher the priority. Nice 1 # Umask # This specifies a umask used by the cvs pserver when # creating files. Specify as an octal value. Umask 027 # Limit # can be one of: coredumpsize, cputime, datasize, filesize, # memorylocked, openfiles, maxproc, memoryuse, stacksize or virtmem. # is the maximum value for the given resource. For size values # a suffix of 'b', 'k' or 'm' can be specified ('k' is default). Time # values can be formatted as 'mm:ss' or have 'm' or 's' suffixes # ('s' is default). Limit coredumpsize 0 # PidFile # This specifies the location the process id of the # daemon is written. PidFile /var/run/cvsd.pid # Listen
# The addresses and ports to listen on for connections. #Listen * 2401 # MaxConnections # The maximum number of connections that will # be handled simultaneously. 0 is unlimited. MaxConnections 10 # Log [] # The way logging is done. Either none, syslog or a # filename may be specified, followed by an optional # loglevel. Loglevel may be one of: # crit, error, warning, notice, info (default) or debug. # This option can be supplied multiple times. # If this option is not specified syslog info is assumed. Log syslog info #Log /var/log/cvsd.log debug # Repos # This option specifies which repositories # can be used. The value is passed as a # --allow-root= parameter to cvs. # The path should be relative to the specified # RootJail and should start with a '/'. # This option can be supplied multiple times. Repos /test Repos /coolsoftware cvsd-1.0.24/config.h.in0000644000000000000000000001717311762425621011465 0ustar /* config.h.in. Generated from configure.ac by autoheader. */ /* location of cvs program */ #undef CVS_LOCATION /* location of the configuration file */ #undef DEFAULT_CONFIGFILE /* Define to 1 if you have the header file. */ #undef HAVE_ARPA_INET_H /* Define to 1 if you have the `atexit' function. */ #undef HAVE_ATEXIT /* Define to 1 if you have the `cap_free' function. */ #undef HAVE_CAP_FREE /* Define to 1 if you have the `cap_from_text' function. */ #undef HAVE_CAP_FROM_TEXT /* Define to 1 if you have the `cap_get_proc' function. */ #undef HAVE_CAP_GET_PROC /* Define to 1 if you have the `cap_set_proc' function. */ #undef HAVE_CAP_SET_PROC /* Define to 1 if you have the `cap_to_text' function. */ #undef HAVE_CAP_TO_TEXT /* Define to 1 if you have the `daemon' function. */ #undef HAVE_DAEMON /* Define to 1 if you have the `dup2' function. */ #undef HAVE_DUP2 /* Define to 1 if you have the header file. */ #undef HAVE_ERRNO_H /* Define to 1 if you have the `fcntl' function. */ #undef HAVE_FCNTL /* Define to 1 if you have the header file. */ #undef HAVE_FCNTL_H /* Define to 1 if you have the `fork' function. */ #undef HAVE_FORK /* Define to 1 if you have the `freeaddrinfo' function. */ #undef HAVE_FREEADDRINFO /* Define to 1 if you have the `gai_strerror' function. */ #undef HAVE_GAI_STRERROR /* Define to 1 if you have the `getaddrinfo' function. */ #undef HAVE_GETADDRINFO /* Define to 1 if you have the `gethostbyaddr' function. */ #undef HAVE_GETHOSTBYADDR /* Define to 1 if you have the `gethostbyname' function. */ #undef HAVE_GETHOSTBYNAME /* Define to 1 if you have the `getnameinfo' function. */ #undef HAVE_GETNAMEINFO /* Define to 1 if you have the header file. */ #undef HAVE_GETOPT_H /* Define to 1 if you have the `getopt_long' function. */ #undef HAVE_GETOPT_LONG /* Define to 1 if you have the `getservbyname' function. */ #undef HAVE_GETSERVBYNAME /* Define to 1 if you have the `getservbyport' function. */ #undef HAVE_GETSERVBYPORT /* Define to 1 if you have the header file. */ #undef HAVE_GRP_H /* Define to 1 if you have the `hstrerror' function. */ #undef HAVE_HSTRERROR /* Define to 1 if you have the `htons' function. */ #undef HAVE_HTONS /* Define to 1 if you have the `inet_ntoa' function. */ #undef HAVE_INET_NTOA /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the `malloc' function. */ #undef HAVE_MALLOC /* Define to 1 if you have the `memcpy' function. */ #undef HAVE_MEMCPY /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the `memset' function. */ #undef HAVE_MEMSET /* Define to 1 if you have the header file. */ #undef HAVE_NETDB_H /* Define to 1 if you have the header file. */ #undef HAVE_NETINET_IN_H /* Define to 1 if you have the `nice' function. */ #undef HAVE_NICE /* Define to 1 if you have the `prctl' function. */ #undef HAVE_PRCTL /* Define to 1 if you have the header file. */ #undef HAVE_PWD_H /* Define to 1 if you have the `select' function. */ #undef HAVE_SELECT /* Define to 1 if you have the `setgroups' function. */ #undef HAVE_SETGROUPS /* Define to 1 if you have the `setpriority' function. */ #undef HAVE_SETPRIORITY /* Define to 1 if you have the `setrlimit' function. */ #undef HAVE_SETRLIMIT /* Define to 1 if you have the `sigaction' function. */ #undef HAVE_SIGACTION /* Define to 1 if you have the `sigemptyset' function. */ #undef HAVE_SIGEMPTYSET /* Define to 1 if you have the header file. */ #undef HAVE_SIGNAL_H /* Define to 1 if you have the `snprintf' function. */ #undef HAVE_SNPRINTF /* Define to 1 if you have the `socket' function. */ #undef HAVE_SOCKET /* Define to 1 if you have the header file. */ #undef HAVE_STDARG_H /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDIO_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the `strchr' function. */ #undef HAVE_STRCHR /* Define to 1 if you have the `strerror' function. */ #undef HAVE_STRERROR /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the `strrchr' function. */ #undef HAVE_STRRCHR /* Define to 1 if you have the `strtol' function. */ #undef HAVE_STRTOL /* Define to 1 if you have the header file. */ #undef HAVE_SYSLOG_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_CAPABILITY_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_PRCTL_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_RESOURCE_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_SELECT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_SOCKET_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TIME_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have that is POSIX.1 compatible. */ #undef HAVE_SYS_WAIT_H /* Define to 1 if you have the header file. */ #undef HAVE_TCPD_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to 1 if you have the `vfork' function. */ #undef HAVE_VFORK /* Define to 1 if you have the header file. */ #undef HAVE_VFORK_H /* Define to 1 if you have the `vsnprintf' function. */ #undef HAVE_VSNPRINTF /* Define to 1 if `fork' works. */ #undef HAVE_WORKING_FORK /* Define to 1 if `vfork' works. */ #undef HAVE_WORKING_VFORK /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Define to the type of arg 1 for `select'. */ #undef SELECT_TYPE_ARG1 /* Define to the type of args 2, 3 and 4 for `select'. */ #undef SELECT_TYPE_ARG234 /* Define to the type of arg 5 for `select'. */ #undef SELECT_TYPE_ARG5 /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Define to 1 if capabilities code will be enabled */ #undef USE_CAPABILITIES /* whether tcp wrappers are enabled */ #undef USE_LIBWRAP /* Version number of package */ #undef VERSION /* Define to empty if `const' does not conform to ANSI C. */ #undef const /* Define to `int' if doesn't define. */ #undef gid_t /* Define to `int' if does not define. */ #undef mode_t /* Define to `int' if does not define. */ #undef pid_t /* Define to `unsigned int' if does not define. */ #undef size_t /* Define to 'sockaddr_in' if not defined elsewhere. */ #undef sockaddr_storage /* Define to `size_t' if not defined elswhere. */ #undef socklen_t /* Define to `int' if doesn't define. */ #undef uid_t /* Define as `fork' if `vfork' does not work. */ #undef vfork /* Define to empty if the keyword `volatile' does not work. Warning: valid code using `volatile' can become incorrect without. Disable with care. */ #undef volatile cvsd-1.0.24/AUTHORS0000644000000000000000000000014711214544332010474 0ustar Chris Black Philippe Kehl Arthur de Jong cvsd-1.0.24/cfg.c0000644000000000000000000001056111642657355010347 0ustar /* cfg.c - all the configurable options in cvsd Copyright (C) 2003, 2004, 2006 Arthur de Jong. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #include "config.h" #include #include #include #include #ifdef HAVE_NETDB_H #include #endif /* HAVE_NETDB_H */ #ifndef HAVE_GETADDRINFO #include "getinfos.h" #endif /* not HAVE_GETADDRINFO */ #include "xmalloc.h" #include "cfg.h" #include "log.h" /* note: if you change this, be sure to also change CVSUMASK_IDX in cfg.h */ static char *default_environment[] = { "HOME=/", "PATH=/bin", "SHELL=/bin/sh", "TMPDIR=/tmp", NULL, /* this will be set to CVSUMASK= */ NULL }; /* initialize the configuration with some reasonable default values */ struct cvsd_cfg *cfg_new() { struct cvsd_cfg *cfg; cfg=(struct cvsd_cfg *)xmalloc(sizeof(struct cvsd_cfg)); cfg->configfile = DEFAULT_CONFIGFILE; cfg->pidfile = NULL; cfg->debugging = 0; cfg->rootjail = NULL; cfg->uid = NOUID; cfg->gid = NOGID; cfg->nice = 0; cfg->umask = 0027; #ifdef USE_CAPABILITIES cfg->capabilities = NULL; #endif /* USE_CAPABILITIES */ cfg->addresses = NULL; cfg->maxconnections = 0; cfg->cvscmd = NULL; /* default is set according to configured rootjail */ cfg->cvsargs = NULL; /* autom. allocated by add_cvsarg() */ cfg->cvsenv = default_environment; return cfg; } /* add a string as a command line argument to the cvs command */ void cfg_addcvsarg(struct cvsd_cfg *cfg,const char *arg) { static int sz=0; /* size of array */ static int cn=0; /* number of elements */ char **tmp; int nsz; /* first ensure array is large enough */ if ((cn+2)>sz) { if (sz==0) nsz=10; else nsz=sz*2; tmp=(char **)xmalloc(nsz*sizeof(char *)); if (cfg->cvsargs!=NULL) memcpy(tmp,cfg->cvsargs,sz*sizeof(char *)); cfg->cvsargs=tmp; sz=nsz; } /* add string to end of array */ cfg->cvsargs[cn++]=(char *)arg; cfg->cvsargs[cn]=NULL; } /* add the given node and service to the list of addresses that will be listened on */ void cfg_addaddress(struct cvsd_cfg *cfg, const char *filename,int lnr, const char *node,const char *service) { struct cvsd_addrs *addr,*tmp; struct addrinfo hints; int i; /* create space to store address */ addr=(struct cvsd_addrs *)xmalloc(sizeof(struct cvsd_addrs)); addr->node=xstrdup(node); addr->service=xstrdup(service); addr->addrs=NULL; addr->next=NULL; /* some aliases for the unspecified address */ if ((strcmp(node,"*")==0)||(strcmp(node,"")==0)) node=NULL; /* create the name for the socket */ memset(&hints,0,sizeof(struct addrinfo)); hints.ai_flags=AI_PASSIVE; #ifdef AI_ADDRCONFIG hints.ai_flags|=AI_ADDRCONFIG; #endif hints.ai_family=PF_UNSPEC; hints.ai_socktype=SOCK_STREAM; switch (i=getaddrinfo(node,service,&hints,&(addr->addrs))) { case 0: break; case EAI_SYSTEM: if (filename==NULL) log_log(LOG_ERR,"getaddrinfo() failed: %s",strerror(errno)); else log_log(LOG_ERR,"%s:%d: getaddrinfo() failed: %s", filename,lnr,strerror(errno)); exit(1); default: if (filename==NULL) log_log(LOG_ERR,"getaddrinfo() failed: %s",gai_strerror(i)); else log_log(LOG_ERR,"%s:%d: getaddrinfo() failed: %s", filename,lnr,gai_strerror(i)); exit(1); } if (addr->addrs==NULL) { log_log(LOG_ERR,"%s:%d: getaddrinfo() returned no usable addresses",filename,lnr); exit(1); } /* save the address */ if (cfg->addresses==NULL) cfg->addresses=addr; else { for (tmp=cfg->addresses;tmp->next!=NULL;tmp=tmp->next); tmp->next=addr; } } cvsd-1.0.24/cvsd.init.redhat71.in0000644000000000000000000000302610257273704013302 0ustar #!/bin/sh # chkconfig: 345 96 04 # description: cvsd is a wrapper program for cvs in pserver mode. it \ # will run 'cvs pserver' under a special uid/gid in a chroot jail. # /etc/init.d/cvsd script for starting cvsd # Copyright (C) 2002, 2003, 2004 Arthur de Jong # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA . /etc/rc.d/init.d/functions CVSD_BIN=@CVSD_BIN@ DESC="cvs pserver chroot wrapper" CVSD_CFG=@CONFIGFILE@ [ -x "$CVSD_BIN" ] || exit 0 [ -f "$CVSD_CFG" ] || exit 0 PIDFILE=`sed -n 's/^ *PidFile *\([^ ]*\) *$/\1/p' < $CVSD_CFG` case "$1" in start) echo -n "Starting $DESC: cvsd" daemon $CVSD_BIN -f $CVSD_CFG echo ;; stop) echo -n "Stopping $DESC: cvsd" killproc $CVSD_BIN echo [ -n "$PIDFILE" ] && rm -f $PIDFILE ;; restart) $0 stop sleep 2 $0 start ;; status) status $CVSD_BIN ;; *) echo "Usage: $0 {start|stop|restart|status}" exit 1 ;; esac exit 0 cvsd-1.0.24/ChangeLog-20040000644000000000000000000001435710213142776011575 0ustar 2004-12-25 arthur * config.guess, config.sub, install-sh: update from recent automake 2004-12-12 arthur * NEWS, configure.ac, debian/changelog, ChangeLog: release 1.0.4 * INSTALL, autogen.sh, config.guess, config.sub, depcomp, install-sh, missing: upgrade to automake 1.9 2004-12-06 arthur * Makefile.am, NEWS, capabilities.txt, cfg.h, cvsd-buginfo.8.in, cvsd-buildroot.8.in, cvsd-passwd.8.in, cvsd.8.in, cvsd.c, cvsd.conf-dist, cvsd.conf.5.in, cvsd.init.redhat71.in, cvsd.spec.in, getinfos.c, log.c, debian/postinst, debian/templates, debian/po/da.po, debian/po/de.po, debian/po/fr.po, debian/po/ja.po, debian/po/nl.po, debian/po/pt_BR.po, debian/po/templates.pot: stip whitespace * debian/: templates, po/da.po, po/de.po, po/fr.po, po/ja.po, po/nl.po, po/pt_BR.po, po/templates.pot: fix location of README (thanks to Sean Coates for spotting this 2004-11-28 arthur * Makefile.am, debian/po/ja.po: add Japanese (ja) translation of debconf templates by Hideki Yamane * debian/rules: disable dependency tracking in debian package building (speeds building up) * cvsd.init.in: remove silly unneeded grep 2004-08-21 arthur * cvsd-buginfo.in: remove override of configfile and use configure time configfile as default 2004-08-07 arthur * NEWS, TODO, configure.ac, debian/changelog, ChangeLog: release 1.0.3 * cvsd-buginfo.in: fix wc -l tests * .cvsignore, Makefile.am, configure.ac, cvsd-buginfo.8.in: add cvsd-buginfo manual page 2004-08-06 arthur * cvsd.c: add dumping of full environment in debug mode * cfg.c, cfg.h: fix incorrect CVSUMASK_IDX value and add reminders to keep index consistent with environment 2004-08-01 arthur * capabilities.txt, cfg.c, cfg.h, cfgfile.c, configure.ac, cvsd.c: add experimental support for POSIX draft 1003.1e capabilities, based on patch by Shugo Maeda * README: add note about cvsd-buginfo * FAQ: update from current web version 2004-07-31 arthur * Makefile.am, debian/cvsd.bug.script, debian/rules: add reportbug script that uses cvsd-buginfo to provide more information * .cvsignore, Makefile.am, configure.ac, cvsd-buginfo.in: add cvsd-buginfo script that gathers some information about an installed cvsd configuration so that bugreports are more structured and complete * configure.ac: make generated scripts executable in configure 2004-07-29 arthur * README, cvsd.init.in, debian/config, debian/cvsd.init, debian/postinst, debian/postrm: make shell scripts user && instead of -a for tests and use kill -s SIG instead of kill -SIG * config.guess, config.sub: update to latest versions from automake 2004-05-15 arthur * README: added quickstart section and made rest more consistent * depcomp, install-sh: updates files from recent automake 1.8 2004-05-14 arthur * README, cvsd.conf-dist, cvsd.conf.5.in, debian/postinst: go on a witch/which hunt 2004-05-07 arthur * NEWS: fix small typo 2004-04-17 arthur * NEWS, TODO, configure.ac, debian/changelog, ChangeLog: release 1.0.2 2004-04-16 arthur * debian/config: split out repositories question into own group and set correct rootjail substitution * debian/po/de.po: update to German translation by Jens Seidel 2004-04-15 arthur * debian/po/fr.po: some typografic fixes by myself * debian/po/de.po: new traslation of Choices field and "upgrade" to new German orthograpy by Jens Seidel * debian/po/de.po: patheric try from my part to do the German translation of the Choices fields (all marked as fuzzy) * debian/po/fr.po: new translation of Choices fields and some typografic fixes by Christian Perrier * debian/po/da.po: new translation of Choices fields by Claus Hindsgaul * debian/po/nl.po: some small changes by myself * debian/: templates, po/da.po, po/de.po, po/fr.po, po/nl.po, po/pt_BR.po, po/templates.pot: make cvsd/limits Choices field translatable and regenerate po files * debian/po/: da.po, de.po, fr.po, nl.po, pt_BR.po, templates.pot: propogate typo fix in template to translations (unfuzzy) * debian/templates: fix small typo 2004-04-14 arthur * debian/po/: da.po, de.po, nl.po: correct characterset to preferred charset for locale * debian/po/: da.po, de.po, fr.po, nl.po, pt_BR.po, templates.pot: update files with debconf-updatepo and change some things back (this mainly normalizes formatting) * Makefile.am: also distribute da.po so it is actually used (why do I keep forgetting this?) * cvsd.init.in, debian/cvsd.init: fix init scripts to use kill -0 instead of ps kludge 2004-04-09 arthur * install-sh, mkinstalldirs: upgrade these files from automake 1.8.3 * cvsd-buildroot.8.in, cvsd-buildroot.in: also create /libexec inside chroot jail if it is present on the system and document this 2004-03-15 arthur * autogen.sh, depcomp, install-sh, missing, mkinstalldirs: upgrade to automake 1.8 2004-02-27 arthur * cvsd.conf-dist, debian/postinst: add note about cvs command being inside chroot jail in default config * debian/po/da.po: add Danish (da) translation of debconf templates by Claus Hindsgaul 2004-02-22 arthur * NEWS, TODO, configure.ac, debian/changelog, ChangeLog: release 1.0.1 2004-02-20 arthur * cvsd.init.redhat71.in: make changes to starting and stopping strings, thanks to John van Zantvoort * cvsd.spec.in: patch by Derek Atkins to make cvsd home directory more easily configurable 2004-02-15 arthur * Makefile.am: get FAQ from web location and adapt to new FAQ layout * FAQ: update from current web version * debian/cvsd.init: use --retry with start-stop-daemon on restart to stop old cvsd * ChangeLog, ChangeLog-2003: moved changes of 2003 to ChangeLog-2003 * ChangeLog: update with current changes * config.guess, config.sub: update to latest versions from automake * configure.ac: upgrade to autoconf 2.59 2004-02-14 arthur * README: updated copyrights notice * cvsd.c: move logging of exiting child processes and exit signals out of signal handlers to avoid deadlock in signal-unsafe functions, thanks to Dan Nuffer for spotting this cvsd-1.0.24/xmalloc.h0000644000000000000000000000170710257273706011251 0ustar /* xmalloc.h - malloc wrapper Copyright (C) 2002 Arthur de Jong. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef _XMALLOC_H #define _XMALLOC_H 1 #include /* malloc wrapper */ void *xmalloc(size_t size); /* strdup wrapper */ char *xstrdup(const char *s); #endif /* not _XMALLOC_H */ cvsd-1.0.24/cfgfile.h0000644000000000000000000000175110257273702011204 0ustar /* cfgfile.h - handle configuration files Copyright (C) 2003 Arthur de Jong. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef _CFGFILE_H #define _CFGFILE_H 1 #include "cfg.h" /* read the configuration file and save settings in struct */ void read_configfile(const char *filename,struct cvsd_cfg *cfg); #endif /* not _CFGFILE_H */ cvsd-1.0.24/configure0000744000000000000000000063364311762425622011356 0ustar #! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for cvsd 1.0.24. # # Report bugs to . # # Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, # 2010, 2011, 2012 Arthur de Jong # # This configure script is derived from configure.ac which is free software; # you can redistribute it and/or modify it under the terms of the GNU General # Public License as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # See the configure.ac file for more details. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 as_fn_exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org and $0: cvsd-users@lists.arthurdejong.org about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='cvsd' PACKAGE_TARNAME='cvsd' PACKAGE_VERSION='1.0.24' PACKAGE_STRING='cvsd 1.0.24' PACKAGE_BUGREPORT='cvsd-users@lists.arthurdejong.org' PACKAGE_URL='' ac_unique_file="cvsd.c" # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS CONFIGURE_CMD CVSD_BIN CONFIGFILE MAINT MAINTAINER_MODE_FALSE MAINTAINER_MODE_TRUE LIBOBJS EGREP GREP CPP PERL CVS SED CHMOD LN_S am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE am__nodep AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM RELEASE_MONTH target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_dependency_tracking with_cvs with_perl enable_debug enable_warnings enable_maintainer_mode with_libwrap with_capabilities ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures cvsd 1.0.24 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/cvsd] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of cvsd 1.0.24:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --enable-debug enable extensive debugging and logging --enable-warnings enable extra compiler warnings (gcc) --disable-maintainer-mode disable make rules and dependencies not useful (and sometimes confusing) to the casual installer Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-cvs=PATH specify location of cvs binary --with-perl=PATH specify location of perl binary --with-libwrap[=PATH] enable tcp wrapper support (disabled by default) --with-capabilities enable capabilities support (experimental) Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF cvsd configure 1.0.24 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Arthur de Jong This configure script is derived from configure.ac which is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. See the configure.ac file for more details. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.i conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ( $as_echo "## ------------------------------------------------ ## ## Report this to cvsd-users@lists.arthurdejong.org ## ## ------------------------------------------------ ##" ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile # ac_fn_c_check_type LINENO TYPE VAR INCLUDES # ------------------------------------------- # Tests whether TYPE exists after having included INCLUDES, setting cache # variable VAR accordingly. ac_fn_c_check_type () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof ($2)) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof (($2))) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else eval "$3=yes" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_type # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by cvsd $as_me 1.0.24, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu RELEASE_MONTH="Jun 2012" # display notice and initialize automake { $as_echo "$as_me:${as_lineno-$LINENO}: configuring cvsd 1.0.24" >&5 $as_echo "$as_me: configuring cvsd 1.0.24" >&6;} am__api_version='1.11' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi test "$2" = conftest.file ) then # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } mkdir_p="$MKDIR_P" case $mkdir_p in [\\/$]* | ?:[\\/]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE=cvsd VERSION=1.0.24 cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' # create a config.h file (Automake will add -DHAVE_CONFIG_H) ac_config_headers="$ac_config_headers config.h" # AJ_PROG_FIND(VARIABLE,PROG-TO-CHECK-FOR) # ---------------------------------------- # Checks for programs. for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 $as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 $as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 $as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi # Extract the first word of "chmod", so it can be a program name with args. set dummy chmod; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_CHMOD+:} false; then : $as_echo_n "(cached) " >&6 else case $CHMOD in [\\/]* | ?:[\\/]*) ac_cv_path_CHMOD="$CHMOD" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_CHMOD="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi CHMOD=$ac_cv_path_CHMOD if test -n "$CHMOD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CHMOD" >&5 $as_echo "$CHMOD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "sed", so it can be a program name with args. set dummy sed; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_SED+:} false; then : $as_echo_n "(cached) " >&6 else case $SED in [\\/]* | ?:[\\/]*) ac_cv_path_SED="$SED" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_SED="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi SED=$ac_cv_path_SED if test -n "$SED"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SED" >&5 $as_echo "$SED" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$SED" ; then as_fn_error $? "*** 'sed' missing, please install or fix your \$PATH ***" "$LINENO" 5 fi # Check whether --with-cvs was given. if test "${with_cvs+set}" = set; then : withval=$with_cvs; if test "x$withval" = "x" || test "x$withval" = "xyes" || test "x$withval" = "xno" then as_fn_error $? "*** please specify the location of the cvs binary ***" "$LINENO" 5 else CVS="$withval" fi fi if test -z "$CVS" then # Extract the first word of "cvs", so it can be a program name with args. set dummy cvs; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_CVS+:} false; then : $as_echo_n "(cached) " >&6 else case $CVS in [\\/]* | ?:[\\/]*) ac_cv_path_CVS="$CVS" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_CVS="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi CVS=$ac_cv_path_CVS if test -n "$CVS"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CVS" >&5 $as_echo "$CVS" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CVS" then as_fn_error $? "*** 'cvs' not found, please install, fix your \$PATH or use --with-cvs ***" "$LINENO" 5 fi if test ! -r "$CVS" || test "x`basename "$CVS"`" != "xcvs" then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $CVS does not look like the cvs binary" >&5 $as_echo "$as_me: WARNING: $CVS does not look like the cvs binary" >&2;} fi cat >>confdefs.h <<_ACEOF #define CVS_LOCATION "$CVS" _ACEOF # Check whether --with-perl was given. if test "${with_perl+set}" = set; then : withval=$with_perl; if test "x$withval" = "x" || test "x$withval" = "xyes" || test "x$withval" = "xno" then as_fn_error $? "*** please specify the location of the perl binary ***" "$LINENO" 5 else PERL="$withval" fi fi if test -z "$PERL" then # Extract the first word of "perl", so it can be a program name with args. set dummy perl; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PERL+:} false; then : $as_echo_n "(cached) " >&6 else case $PERL in [\\/]* | ?:[\\/]*) ac_cv_path_PERL="$PERL" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PERL=$ac_cv_path_PERL if test -n "$PERL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5 $as_echo "$PERL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$PERL" then as_fn_error $? "*** 'perl' not found, please install, fix your \$PATH or use --with-perl ***" "$LINENO" 5 fi if test ! -r "$PERL" || test "x`basename "$PERL"`" != "xperl" then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $PERL does not look like the perl binary" >&5 $as_echo "$as_me: WARNING: $PERL does not look like the perl binary" >&2;} fi # Checks for header files. ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in string.h do : ac_fn_c_check_header_mongrel "$LINENO" "string.h" "ac_cv_header_string_h" "$ac_includes_default" if test "x$ac_cv_header_string_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRING_H 1 _ACEOF fi done for ac_header in unistd.h do : ac_fn_c_check_header_mongrel "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default" if test "x$ac_cv_header_unistd_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_UNISTD_H 1 _ACEOF fi done for ac_header in errno.h do : ac_fn_c_check_header_mongrel "$LINENO" "errno.h" "ac_cv_header_errno_h" "$ac_includes_default" if test "x$ac_cv_header_errno_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_ERRNO_H 1 _ACEOF fi done for ac_header in syslog.h do : ac_fn_c_check_header_mongrel "$LINENO" "syslog.h" "ac_cv_header_syslog_h" "$ac_includes_default" if test "x$ac_cv_header_syslog_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SYSLOG_H 1 _ACEOF fi done for ac_header in getopt.h do : ac_fn_c_check_header_mongrel "$LINENO" "getopt.h" "ac_cv_header_getopt_h" "$ac_includes_default" if test "x$ac_cv_header_getopt_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GETOPT_H 1 _ACEOF fi done for ac_header in pwd.h do : ac_fn_c_check_header_mongrel "$LINENO" "pwd.h" "ac_cv_header_pwd_h" "$ac_includes_default" if test "x$ac_cv_header_pwd_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_PWD_H 1 _ACEOF fi done for ac_header in grp.h do : ac_fn_c_check_header_mongrel "$LINENO" "grp.h" "ac_cv_header_grp_h" "$ac_includes_default" if test "x$ac_cv_header_grp_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GRP_H 1 _ACEOF fi done for ac_header in arpa/inet.h do : ac_fn_c_check_header_mongrel "$LINENO" "arpa/inet.h" "ac_cv_header_arpa_inet_h" "$ac_includes_default" if test "x$ac_cv_header_arpa_inet_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_ARPA_INET_H 1 _ACEOF fi done for ac_header in netinet/in.h do : ac_fn_c_check_header_mongrel "$LINENO" "netinet/in.h" "ac_cv_header_netinet_in_h" "$ac_includes_default" if test "x$ac_cv_header_netinet_in_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_NETINET_IN_H 1 _ACEOF fi done for ac_header in sys/types.h do : ac_fn_c_check_header_mongrel "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$ac_includes_default" if test "x$ac_cv_header_sys_types_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SYS_TYPES_H 1 _ACEOF fi done for ac_header in sys/socket.h do : ac_fn_c_check_header_mongrel "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "$ac_includes_default" if test "x$ac_cv_header_sys_socket_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SYS_SOCKET_H 1 _ACEOF fi done for ac_header in sys/time.h do : ac_fn_c_check_header_mongrel "$LINENO" "sys/time.h" "ac_cv_header_sys_time_h" "$ac_includes_default" if test "x$ac_cv_header_sys_time_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SYS_TIME_H 1 _ACEOF fi done for ac_header in sys/resource.h do : ac_fn_c_check_header_mongrel "$LINENO" "sys/resource.h" "ac_cv_header_sys_resource_h" "$ac_includes_default" if test "x$ac_cv_header_sys_resource_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SYS_RESOURCE_H 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sys/wait.h that is POSIX.1 compatible" >&5 $as_echo_n "checking for sys/wait.h that is POSIX.1 compatible... " >&6; } if ${ac_cv_header_sys_wait_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #ifndef WEXITSTATUS # define WEXITSTATUS(stat_val) ((unsigned int) (stat_val) >> 8) #endif #ifndef WIFEXITED # define WIFEXITED(stat_val) (((stat_val) & 255) == 0) #endif int main () { int s; wait (&s); s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_sys_wait_h=yes else ac_cv_header_sys_wait_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_sys_wait_h" >&5 $as_echo "$ac_cv_header_sys_wait_h" >&6; } if test $ac_cv_header_sys_wait_h = yes; then $as_echo "#define HAVE_SYS_WAIT_H 1" >>confdefs.h fi for ac_header in signal.h do : ac_fn_c_check_header_mongrel "$LINENO" "signal.h" "ac_cv_header_signal_h" "$ac_includes_default" if test "x$ac_cv_header_signal_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SIGNAL_H 1 _ACEOF fi done for ac_header in sys/stat.h do : ac_fn_c_check_header_mongrel "$LINENO" "sys/stat.h" "ac_cv_header_sys_stat_h" "$ac_includes_default" if test "x$ac_cv_header_sys_stat_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SYS_STAT_H 1 _ACEOF fi done for ac_header in netdb.h do : ac_fn_c_check_header_mongrel "$LINENO" "netdb.h" "ac_cv_header_netdb_h" "$ac_includes_default" if test "x$ac_cv_header_netdb_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_NETDB_H 1 _ACEOF fi done for ac_header in fcntl.h do : ac_fn_c_check_header_mongrel "$LINENO" "fcntl.h" "ac_cv_header_fcntl_h" "$ac_includes_default" if test "x$ac_cv_header_fcntl_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_FCNTL_H 1 _ACEOF fi done for ac_header in stdarg.h do : ac_fn_c_check_header_mongrel "$LINENO" "stdarg.h" "ac_cv_header_stdarg_h" "$ac_includes_default" if test "x$ac_cv_header_stdarg_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STDARG_H 1 _ACEOF fi done for ac_header in stdio.h do : ac_fn_c_check_header_mongrel "$LINENO" "stdio.h" "ac_cv_header_stdio_h" "$ac_includes_default" if test "x$ac_cv_header_stdio_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STDIO_H 1 _ACEOF fi done # Checks for typedefs, structures, and compiler characteristics. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 $as_echo_n "checking for an ANSI C-conforming const... " >&6; } if ${ac_cv_c_const+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __cplusplus /* Ultrix mips cc rejects this sort of thing. */ typedef int charset[2]; const charset cs = { 0, 0 }; /* SunOS 4.1.1 cc rejects this. */ char const *const *pcpcc; char **ppc; /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; /* AIX XL C 1.02.0.0 rejects this. It does not let you subtract one const X* pointer from another in an arm of an if-expression whose if-part is not a constant expression */ const char *g = "string"; pcpcc = &g + (g ? g-g : 0); /* HPUX 7.0 cc rejects these. */ ++pcpcc; ppc = (char**) pcpcc; pcpcc = (char const *const *) ppc; { /* SCO 3.2v4 cc rejects this sort of thing. */ char tx; char *t = &tx; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; if (s) return 0; } { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ int x[] = {25, 17}; const int *foo = &x[0]; ++foo; } { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ typedef const int *iptr; iptr p = 0; ++p; } { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; } bx; struct s *b = &bx; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; if (!foo) return 0; } return !cs[0] && !zero.x; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_const=yes else ac_cv_c_const=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 $as_echo "$ac_cv_c_const" >&6; } if test $ac_cv_c_const = no; then $as_echo "#define const /**/" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working volatile" >&5 $as_echo_n "checking for working volatile... " >&6; } if ${ac_cv_c_volatile+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { volatile int x; int * volatile y = (int *) 0; return !x && !y; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_volatile=yes else ac_cv_c_volatile=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_volatile" >&5 $as_echo "$ac_cv_c_volatile" >&6; } if test $ac_cv_c_volatile = no; then $as_echo "#define volatile /**/" >>confdefs.h fi ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default" if test "x$ac_cv_type_mode_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define mode_t int _ACEOF fi ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default" if test "x$ac_cv_type_pid_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define pid_t int _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5 $as_echo_n "checking for uid_t in sys/types.h... " >&6; } if ${ac_cv_type_uid_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "uid_t" >/dev/null 2>&1; then : ac_cv_type_uid_t=yes else ac_cv_type_uid_t=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5 $as_echo "$ac_cv_type_uid_t" >&6; } if test $ac_cv_type_uid_t = no; then $as_echo "#define uid_t int" >>confdefs.h $as_echo "#define gid_t int" >>confdefs.h fi ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" if test "x$ac_cv_type_size_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define size_t unsigned int _ACEOF fi ac_fn_c_check_type "$LINENO" "socklen_t" "ac_cv_type_socklen_t" " #include #include " if test "x$ac_cv_type_socklen_t" = xyes; then : else $as_echo "#define socklen_t size_t" >>confdefs.h fi ac_fn_c_check_type "$LINENO" "struct sockaddr_storage" "ac_cv_type_struct_sockaddr_storage" " #include #include " if test "x$ac_cv_type_struct_sockaddr_storage" = xyes; then : else $as_echo "#define sockaddr_storage sockaddr_in" >>confdefs.h fi # Checks for library functions. for ac_header in vfork.h do : ac_fn_c_check_header_mongrel "$LINENO" "vfork.h" "ac_cv_header_vfork_h" "$ac_includes_default" if test "x$ac_cv_header_vfork_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_VFORK_H 1 _ACEOF fi done for ac_func in fork vfork do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done if test "x$ac_cv_func_fork" = xyes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working fork" >&5 $as_echo_n "checking for working fork... " >&6; } if ${ac_cv_func_fork_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_fork_works=cross else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { /* By Ruediger Kuhlmann. */ return fork () < 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_fork_works=yes else ac_cv_func_fork_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fork_works" >&5 $as_echo "$ac_cv_func_fork_works" >&6; } else ac_cv_func_fork_works=$ac_cv_func_fork fi if test "x$ac_cv_func_fork_works" = xcross; then case $host in *-*-amigaos* | *-*-msdosdjgpp*) # Override, as these systems have only a dummy fork() stub ac_cv_func_fork_works=no ;; *) ac_cv_func_fork_works=yes ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&5 $as_echo "$as_me: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&2;} fi ac_cv_func_vfork_works=$ac_cv_func_vfork if test "x$ac_cv_func_vfork" = xyes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working vfork" >&5 $as_echo_n "checking for working vfork... " >&6; } if ${ac_cv_func_vfork_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_vfork_works=cross else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Thanks to Paul Eggert for this test. */ $ac_includes_default #include #ifdef HAVE_VFORK_H # include #endif /* On some sparc systems, changes by the child to local and incoming argument registers are propagated back to the parent. The compiler is told about this with #include , but some compilers (e.g. gcc -O) don't grok . Test for this by using a static variable whose address is put into a register that is clobbered by the vfork. */ static void #ifdef __cplusplus sparc_address_test (int arg) # else sparc_address_test (arg) int arg; #endif { static pid_t child; if (!child) { child = vfork (); if (child < 0) { perror ("vfork"); _exit(2); } if (!child) { arg = getpid(); write(-1, "", 0); _exit (arg); } } } int main () { pid_t parent = getpid (); pid_t child; sparc_address_test (0); child = vfork (); if (child == 0) { /* Here is another test for sparc vfork register problems. This test uses lots of local variables, at least as many local variables as main has allocated so far including compiler temporaries. 4 locals are enough for gcc 1.40.3 on a Solaris 4.1.3 sparc, but we use 8 to be safe. A buggy compiler should reuse the register of parent for one of the local variables, since it will think that parent can't possibly be used any more in this routine. Assigning to the local variable will thus munge parent in the parent process. */ pid_t p = getpid(), p1 = getpid(), p2 = getpid(), p3 = getpid(), p4 = getpid(), p5 = getpid(), p6 = getpid(), p7 = getpid(); /* Convince the compiler that p..p7 are live; otherwise, it might use the same hardware register for all 8 local variables. */ if (p != p1 || p != p2 || p != p3 || p != p4 || p != p5 || p != p6 || p != p7) _exit(1); /* On some systems (e.g. IRIX 3.3), vfork doesn't separate parent from child file descriptors. If the child closes a descriptor before it execs or exits, this munges the parent's descriptor as well. Test for this by closing stdout in the child. */ _exit(close(fileno(stdout)) != 0); } else { int status; struct stat st; while (wait(&status) != child) ; return ( /* Was there some problem with vforking? */ child < 0 /* Did the child fail? (This shouldn't happen.) */ || status /* Did the vfork/compiler bug occur? */ || parent != getpid() /* Did the file descriptor bug occur? */ || fstat(fileno(stdout), &st) != 0 ); } } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_vfork_works=yes else ac_cv_func_vfork_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_vfork_works" >&5 $as_echo "$ac_cv_func_vfork_works" >&6; } fi; if test "x$ac_cv_func_fork_works" = xcross; then ac_cv_func_vfork_works=$ac_cv_func_vfork { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&5 $as_echo "$as_me: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&2;} fi if test "x$ac_cv_func_vfork_works" = xyes; then $as_echo "#define HAVE_WORKING_VFORK 1" >>confdefs.h else $as_echo "#define vfork fork" >>confdefs.h fi if test "x$ac_cv_func_fork_works" = xyes; then $as_echo "#define HAVE_WORKING_FORK 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gethostbyname" >&5 $as_echo_n "checking for library containing gethostbyname... " >&6; } if ${ac_cv_search_gethostbyname+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gethostbyname (); int main () { return gethostbyname (); ; return 0; } _ACEOF for ac_lib in '' nsl socket; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_gethostbyname=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_gethostbyname+:} false; then : break fi done if ${ac_cv_search_gethostbyname+:} false; then : else ac_cv_search_gethostbyname=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_gethostbyname" >&5 $as_echo "$ac_cv_search_gethostbyname" >&6; } ac_res=$ac_cv_search_gethostbyname if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing socket" >&5 $as_echo_n "checking for library containing socket... " >&6; } if ${ac_cv_search_socket+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char socket (); int main () { return socket (); ; return 0; } _ACEOF for ac_lib in '' socket; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_socket=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_socket+:} false; then : break fi done if ${ac_cv_search_socket+:} false; then : else ac_cv_search_socket=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_socket" >&5 $as_echo "$ac_cv_search_socket" >&6; } ac_res=$ac_cv_search_socket if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi for ac_func in malloc dup2 inet_ntoa strchr strrchr strerror strtol atexit sigaction \ memset memcpy sigemptyset select fcntl snprintf vsnprintf socket do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF else as_fn_error $? "*** we really need this function ***" "$LINENO" 5 fi done for ac_func in nice setpriority setgroups gethostbyname do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in sys/select.h sys/socket.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking types of arguments for select" >&5 $as_echo_n "checking types of arguments for select... " >&6; } if ${ac_cv_func_select_args+:} false; then : $as_echo_n "(cached) " >&6 else for ac_arg234 in 'fd_set *' 'int *' 'void *'; do for ac_arg1 in 'int' 'size_t' 'unsigned long int' 'unsigned int'; do for ac_arg5 in 'struct timeval *' 'const struct timeval *'; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default #ifdef HAVE_SYS_SELECT_H # include #endif #ifdef HAVE_SYS_SOCKET_H # include #endif int main () { extern int select ($ac_arg1, $ac_arg234, $ac_arg234, $ac_arg234, $ac_arg5); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_func_select_args="$ac_arg1,$ac_arg234,$ac_arg5"; break 3 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done done done # Provide a safe default value. : "${ac_cv_func_select_args=int,int *,struct timeval *}" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_select_args" >&5 $as_echo "$ac_cv_func_select_args" >&6; } ac_save_IFS=$IFS; IFS=',' set dummy `echo "$ac_cv_func_select_args" | sed 's/\*/\*/g'` IFS=$ac_save_IFS shift cat >>confdefs.h <<_ACEOF #define SELECT_TYPE_ARG1 $1 _ACEOF cat >>confdefs.h <<_ACEOF #define SELECT_TYPE_ARG234 ($2) _ACEOF cat >>confdefs.h <<_ACEOF #define SELECT_TYPE_ARG5 ($3) _ACEOF rm -f conftest* # Only include Limit operations if system has setrlimit() for ac_func in setrlimit do : ac_fn_c_check_func "$LINENO" "setrlimit" "ac_cv_func_setrlimit" if test "x$ac_cv_func_setrlimit" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SETRLIMIT 1 _ACEOF case " $LIBOBJS " in *" reslimit.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS reslimit.$ac_objext" ;; esac else { $as_echo "$as_me:${as_lineno-$LINENO}: disabling use of resource limits" >&5 $as_echo "$as_me: disabling use of resource limits" >&6;} fi done # Replace getopt_long() function if it is not on the system for ac_func in getopt_long do : ac_fn_c_check_func "$LINENO" "getopt_long" "ac_cv_func_getopt_long" if test "x$ac_cv_func_getopt_long" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GETOPT_LONG 1 _ACEOF else { $as_echo "$as_me:${as_lineno-$LINENO}: using own getopt_long() replacement" >&5 $as_echo "$as_me: using own getopt_long() replacement" >&6;} case " $LIBOBJS " in *" getopt_long.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS getopt_long.$ac_objext" ;; esac fi done # Replace daemon() function if it is not on the system { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing daemon" >&5 $as_echo_n "checking for library containing daemon... " >&6; } if ${ac_cv_search_daemon+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char daemon (); int main () { return daemon (); ; return 0; } _ACEOF for ac_lib in '' bsd; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_daemon=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_daemon+:} false; then : break fi done if ${ac_cv_search_daemon+:} false; then : else ac_cv_search_daemon=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_daemon" >&5 $as_echo "$ac_cv_search_daemon" >&6; } ac_res=$ac_cv_search_daemon if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi for ac_func in daemon do : ac_fn_c_check_func "$LINENO" "daemon" "ac_cv_func_daemon" if test "x$ac_cv_func_daemon" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DAEMON 1 _ACEOF else { $as_echo "$as_me:${as_lineno-$LINENO}: using own daemon() replacement" >&5 $as_echo "$as_me: using own daemon() replacement" >&6;} case " $LIBOBJS " in *" daemon.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS daemon.$ac_objext" ;; esac fi done # check for getaddrinfo() and getnameinfo() and replace if not available { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing getaddrinfo" >&5 $as_echo_n "checking for library containing getaddrinfo... " >&6; } if ${ac_cv_search_getaddrinfo+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char getaddrinfo (); int main () { return getaddrinfo (); ; return 0; } _ACEOF for ac_lib in '' socket; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_getaddrinfo=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_getaddrinfo+:} false; then : break fi done if ${ac_cv_search_getaddrinfo+:} false; then : else ac_cv_search_getaddrinfo=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_getaddrinfo" >&5 $as_echo "$ac_cv_search_getaddrinfo" >&6; } ac_res=$ac_cv_search_getaddrinfo if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi for ac_func in getaddrinfo getnameinfo freeaddrinfo gai_strerror do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done ac_fn_c_check_type "$LINENO" "struct addrinfo" "ac_cv_type_struct_addrinfo" " #include #include #include " if test "x$ac_cv_type_struct_addrinfo" = xyes; then : fi if test "$ac_cv_func_getaddrinfo" != yes || \ test "$ac_cv_func_getnameinfo" != yes then { $as_echo "$as_me:${as_lineno-$LINENO}: using own getaddrinfo() and getnameinfo() replacements" >&5 $as_echo "$as_me: using own getaddrinfo() and getnameinfo() replacements" >&6;} case " $LIBOBJS " in *" getinfos.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS getinfos.$ac_objext" ;; esac for ac_func in getservbyname getservbyport gethostbyaddr htons hstrerror do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done fi # Check for debugging options # Check whether --enable-debug was given. if test "${enable_debug+set}" = set; then : enableval=$enable_debug; if test "x$enableval" != "xno" ; then CFLAGS="-g -DDEBUG $CFLAGS" ; fi fi # Check for extra compiler warnings # Check whether --enable-warnings was given. if test "${enable_warnings+set}" = set; then : enableval=$enable_warnings; if test "x$enableval" != "xno" ; then CFLAGS="$CFLAGS -pedantic -Wall -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Waggregate-return -Wmissing-declarations" ; fi fi # add --disable-maintainer-mode option { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } # Check whether --enable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then : enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval else USE_MAINTAINER_MODE=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 $as_echo "$USE_MAINTAINER_MODE" >&6; } if test $USE_MAINTAINER_MODE = yes; then MAINTAINER_MODE_TRUE= MAINTAINER_MODE_FALSE='#' else MAINTAINER_MODE_TRUE='#' MAINTAINER_MODE_FALSE= fi MAINT=$MAINTAINER_MODE_TRUE # check wether we want use tcp wrappers (yes,no,maybe) WANT_LIBWRAP="no" # Check whether --with-libwrap was given. if test "${with_libwrap+set}" = set; then : withval=$with_libwrap; if test "x$withval" = "xno" then WANT_LIBWRAP="no" else WANT_LIBWRAP="yes" # add supplied value to paths if test "x$withval" != "x" && test "x$withval" != "xyes" then CPPFLAGS="-I$LIBWRAP/include $CPPFLAGS" LDFLAGS="-L$LIBWRAP/lib $LDFLAGS" fi fi fi # check wether we can use tcp wrappers if test "x$WANT_LIBWRAP" != "xno" then for ac_header in tcpd.h do : ac_fn_c_check_header_mongrel "$LINENO" "tcpd.h" "ac_cv_header_tcpd_h" "$ac_includes_default" if test "x$ac_cv_header_tcpd_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_TCPD_H 1 _ACEOF fi done # try using tcp wrappers without a library, with -lwrap and with -lwrap and -lnsl HAVE_LIBWRAP="yes" SAVE_LIBS="$LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tcp wrapper functions" >&5 $as_echo_n "checking for tcp wrapper functions... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int allow_severity,deny_severity; int main () { request_init((void *)0,0);hosts_access((void *)0) ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } LIBS="-lwrap $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tcp wrapper functions in -lwrap" >&5 $as_echo_n "checking for tcp wrapper functions in -lwrap... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int allow_severity,deny_severity; int main () { request_init((void *)0,0);hosts_access((void *)0) ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } LIBS="-lnsl $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tcp wrapper functions in -lwrap -lnsl" >&5 $as_echo_n "checking for tcp wrapper functions in -lwrap -lnsl... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int allow_severity,deny_severity; int main () { request_init((void *)0,0);hosts_access((void *)0) ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } LIBS="$SAVE_LIBS" HAVE_LIBWRAP="no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test "x$HAVE_LIBWRAP" != "xno" then cat >>confdefs.h <<_ACEOF #define USE_LIBWRAP 1 _ACEOF elif test "x$WANT_LIBWRAP" = "xyes" then as_fn_error $? "*** tcp wrappers not found ***" "$LINENO" 5 fi fi # check wether we want use capabilities (yes,no,maybe) WANT_CAPABILITIES="no" # Check whether --with-capabilities was given. if test "${with_capabilities+set}" = set; then : withval=$with_capabilities; if test "x$withval" = "xno" then WANT_CAPABILITIES="no" else WANT_CAPABILITIES="yes" # add supplied value to paths if test "x$withval" != "x" && test "x$withval" != "xyes" then CPPFLAGS="-I$LIBWRAP/include $CPPFLAGS" LDFLAGS="-L$LIBWRAP/lib $LDFLAGS" fi fi fi # check wether we can use capabilities if test "x$WANT_CAPABILITIES" != "xno" then HAVE_CAPABILITIES="yes" for ac_header in sys/capability.h do : ac_fn_c_check_header_mongrel "$LINENO" "sys/capability.h" "ac_cv_header_sys_capability_h" "$ac_includes_default" if test "x$ac_cv_header_sys_capability_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SYS_CAPABILITY_H 1 _ACEOF else HAVE_CAPABILITIES="no" fi done for ac_header in sys/prctl.h do : ac_fn_c_check_header_mongrel "$LINENO" "sys/prctl.h" "ac_cv_header_sys_prctl_h" "$ac_includes_default" if test "x$ac_cv_header_sys_prctl_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SYS_PRCTL_H 1 _ACEOF else HAVE_CAPABILITIES="no" fi done ac_fn_c_check_type "$LINENO" "cap_t" "ac_cv_type_cap_t" " #include " if test "x$ac_cv_type_cap_t" = xyes; then : else HAVE_CAPABILITIES="no" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing cap_init" >&5 $as_echo_n "checking for library containing cap_init... " >&6; } if ${ac_cv_search_cap_init+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char cap_init (); int main () { return cap_init (); ; return 0; } _ACEOF for ac_lib in '' cap; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_cap_init=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_cap_init+:} false; then : break fi done if ${ac_cv_search_cap_init+:} false; then : else ac_cv_search_cap_init=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_cap_init" >&5 $as_echo "$ac_cv_search_cap_init" >&6; } ac_res=$ac_cv_search_cap_init if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" else HAVE_CAPABILITIES="no" fi for ac_func in prctl cap_from_text cap_to_text cap_get_proc cap_set_proc cap_free do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF else HAVE_CAPABILITIES="no" fi done if test "x$HAVE_CAPABILITIES" != "xno" then cat >>confdefs.h <<_ACEOF #define USE_CAPABILITIES 1 _ACEOF elif test "x$WANT_CAPABILITIES" = "xyes" then as_fn_error $? "*** capabilities not available ***" "$LINENO" 5 fi fi # where to find the configuration file # TODO: this should probably be fixed to be nicer CONFIGFILE=`eval echo $sysconfdir/cvsd/cvsd.conf | \ sed "s%^NONE/%${prefix}/%" | \ sed "s%^NONE/%${ac_default_prefix}/%"` cat >>confdefs.h <<_ACEOF #define DEFAULT_CONFIGFILE "$CONFIGFILE" _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: using $CONFIGFILE as default location for configfile" >&5 $as_echo "$as_me: using $CONFIGFILE as default location for configfile" >&6;} # where to find the binary (for init scripts) CVSD_BIN=`eval echo $sbindir/cvsd | \ sed "s%^NONE/%${exec_prefix}/%" | \ sed "s%^NONE/%${prefix}/%" | \ sed "s%^NONE/%${ac_default_prefix}/%"` # store options passed to configure CONFIGURE_CMD="$0 $ac_configure_args" # What files to output ac_config_files="$ac_config_files Makefile cvsd.8 cvsd-buildroot.8 cvsd-passwd.8 cvsd.conf.5 cvsd-buginfo.8 cvsd.spec" ac_config_files="$ac_config_files cvsd-buildroot" ac_config_files="$ac_config_files cvsd-passwd" ac_config_files="$ac_config_files cvsd-buginfo" ac_config_files="$ac_config_files cvsd.init" ac_config_files="$ac_config_files cvsd.init.redhat71" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by cvsd $as_me 1.0.24, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ cvsd config.status 1.0.24 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "cvsd.8") CONFIG_FILES="$CONFIG_FILES cvsd.8" ;; "cvsd-buildroot.8") CONFIG_FILES="$CONFIG_FILES cvsd-buildroot.8" ;; "cvsd-passwd.8") CONFIG_FILES="$CONFIG_FILES cvsd-passwd.8" ;; "cvsd.conf.5") CONFIG_FILES="$CONFIG_FILES cvsd.conf.5" ;; "cvsd-buginfo.8") CONFIG_FILES="$CONFIG_FILES cvsd-buginfo.8" ;; "cvsd.spec") CONFIG_FILES="$CONFIG_FILES cvsd.spec" ;; "cvsd-buildroot") CONFIG_FILES="$CONFIG_FILES cvsd-buildroot" ;; "cvsd-passwd") CONFIG_FILES="$CONFIG_FILES cvsd-passwd" ;; "cvsd-buginfo") CONFIG_FILES="$CONFIG_FILES cvsd-buginfo" ;; "cvsd.init") CONFIG_FILES="$CONFIG_FILES cvsd.init" ;; "cvsd.init.redhat71") CONFIG_FILES="$CONFIG_FILES cvsd.init.redhat71" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_tt=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$_am_arg" : 'X\(//\)[^/]' \| \ X"$_am_arg" : 'X\(//\)$' \| \ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir=$dirpart/$fdir; as_fn_mkdir_p # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ;; "cvsd-buildroot":F) chmod a+rx cvsd-buildroot ;; "cvsd-passwd":F) chmod a+rx cvsd-passwd ;; "cvsd-buginfo":F) chmod a+rx cvsd-buginfo ;; "cvsd.init":F) chmod a+rx cvsd.init ;; "cvsd.init.redhat71":F) chmod a+rx cvsd.init.redhat71 ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi cvsd-1.0.24/cvsd.8.in0000644000000000000000000000420111316744630011062 0ustar .\" Copyright (C) 2001, 2002, 2003, 2004, 2005 Arthur de Jong .\" .\" This program is free software; you can redistribute it and/or modify .\" it under the terms of the GNU General Public License as published by .\" the Free Software Foundation; either version 2, or (at your option) .\" any later version. .\" .\" This program is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .\" GNU General Public License for more details. .\" .\" You should have received a copy of the GNU General Public License .\" along with this program; if not, write to the Free Software .\" Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA .TH "cvsd" "8" "@RELEASE_MONTH@" "Version @VERSION@" "System Manager's Manual" .nh .SH "NAME" cvsd \- chroot wrapper to run \(oqcvs pserver\(cq more securely. .SH "SYNOPSIS" .B cvsd .RI [ options ] .SH "DESCRIPTION" \fBcvsd\fP is a wrapper program for cvs in pserver mode. it will run \(oqcvs pserver\(cq under a special uid/gid in a chroot jail. \fBcvsd\fP is run as a daemon and is controlled through a configuration file (see .BR cvsd.conf (5) ). It is relatively easy to configure and tools are provided for easily setting up a chroot jail (see .BR cvsd\-buildroot(8) ) and managing repositories (see .BR cvsd\-passwd (8) ). See the README for more information and details to setting up a chroot jail and repositories. .SH "OPTIONS" \fBcvsd\fP accepts the following options: .TP .B \-f, \-\-config=FILE Use FILE as configfile (default is @CONFIGFILE@). .TP .B \-d, \-\-debug Enable debugging mode. \fBcvsd\fP will not put itself in the background and sends verbose debugging info to stderr. Otherwise cvsd handles connections as usual. This option is for debugging purposes only. .TP .B \-\-help Display short help and exit. .TP .B \-V, \-\-version Output version information and exit. .SH "SEE ALSO" .BR cvsd.conf (5) .BR cvsd\-buildroot (8) .BR cvsd\-passwd (8) .SH "FILES" @CONFIGFILE@ \- the configuration file (see .BR cvsd.conf(5) ) .SH "AUTHOR" Arthur de Jong . cvsd-1.0.24/cvsd-buildroot.8.in0000644000000000000000000000705311316744454013077 0ustar .\" Copyright (C) 2001, 2002, 2003, 2004, 2009 Arthur de Jong .\" .\" This program is free software; you can redistribute it and/or modify .\" it under the terms of the GNU General Public License as published by .\" the Free Software Foundation; either version 2, or (at your option) .\" any later version. .\" .\" This program is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .\" GNU General Public License for more details. .\" .\" You should have received a copy of the GNU General Public License .\" along with this program; if not, write to the Free Software .\" Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA .TH "cvsd\-buildroot" "8" "@RELEASE_MONTH@" "Version @VERSION@" "System Manager's Manual" .nh .SH "NAME" cvsd\-buildroot \- create a chrooted directory structure for use in cvsd. .SH "SYNOPSIS" .B cvsd\-buildroot .RI DIRECTORY .SH "DESCRIPTION" \fBcvsd\-buildroot\fP creates and populates a directory that can be used as a chroot jail for running cvsd (see .BR cvsd (8) ) in. This script should be run as the root user since the creation of devices and the changing of ownership and permissions require this. The script gives warnings about files that it's not expecting. \fBcvsd\-buildroot\fP creates the following directory structure: .TP .B \fB/bin\fP This directory is populated with the cvs binary that is found on the system. .TP .B \fB/lib\fP This directory is populated with all the libraries that are required for running programs in the \fB/bin\fP directory as well as some predefined required libraries that are present on the system. .TP .B \fB/dev\fP Here null and zero devices are created. .TP .B \fB/etc\fP In this directory a passwd file is created that is used for matching user id's with usernames. The root and cvsd user are added to this file if they're not there yet. The passwd file is checked for consistency with the system /etc/passwd to prevent mistakes. The passwd file is also populated with users referenced in the repository directories. Note that no password data from /etc/passwd or any other file is stored in the generated passwd file, all password entries are set to \(oqx\(cq. .TP .B \fB/usr\fP Here symbolic links are placed to /bin and /lib for some common library and binary directories found on the system. This is done for systems that have hard-coded paths for libraries. .TP .B \fB/libexec\fP and \fB/usr/libexec\fP Symbolic links for these directories are created if they are present on the system. .TP .B \fB/tmp\fP This directory is cleaned out on systems that have tmpreaper. .PP After the directories are created and populated ownership and rights are set to a reasonable value (root:root,umask=022). .SH "OPTIONS" \fBcvsd\-buildroot\fP takes one argument, namely a directory in which the chroot jail will be created. The directory should be specified with an absolute path. .SH "NOTES" Creating a chroot environment is a terribly non\-portable thing to do and therefore you may experience problems with missing libraries and system files. For more information see the FAQ and the README. If you have to install libraries or perform actions not covered by cvsd\-buildroot please report your findings to <@PACKAGE_BUGREPORT@>. Rerunning \fBcvsd\-buildroot\fP after you have created your repository is advised since the repositories are checked for references to userid's and lockfile directories. .SH "SEE ALSO" .BR cvsd (8) .br README .br FAQ .SH "AUTHOR" Arthur de Jong . cvsd-1.0.24/cvsd.c0000644000000000000000000006667011724632255010554 0ustar /* cvsd - chroot wrapper to run `cvs pserver' more securely. cvsd was originally written by Chris Black , http://cblack.mokey.com/. That was until release 0.6 cvsd versions up till 0.8b3 were maintained by Philippe Kehl , http://guv.ethz.ch/~flip/cvsd/, http://www.oinkzwurgl.org/software/cvsd/. after that Arthur de Jong took up the work and did a complete rewrite, http://arthurdejong.org/cvsd/ Copyright (C) 1999 Chris Black. Copyright (C) 2000 Philippe Kehl. Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Arthur de Jong. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #include "config.h" #include #include #include #include #include #ifdef HAVE_GETOPT_H #include #endif /* HAVE_GETOPT_H */ #ifndef HAVE_GETOPT_LONG #include "getopt_long.h" #endif /* not HAVE_GETOPT_LONG */ #ifndef HAVE_DAEMON #include "daemon.h" #endif /* not HAVE_DAEMON */ #ifndef HAVE_GETADDRINFO #include "getinfos.h" #endif /* not HAVE_GETADDRINFO */ #include #include #include #include #include #include #include #include #ifdef HAVE_NETDB_H #include #endif /* HAVE_NETDB_H */ #ifdef HAVE_FCNTL_H #include #endif /* HAVE_FCNTL_H */ #ifdef USE_LIBWRAP #ifdef HAVE_TCPD_H #include #endif /* HAVE_TCPD_H */ #endif /* USE_LIBWRAP */ #ifdef HAVE_GRP_H #include #endif /* HAVE_GRP_H */ #ifdef USE_CAPABILITIES #include #include #endif /* USE_CAPABILITIES */ #include "xmalloc.h" #ifdef HAVE_SETRLIMIT #include "reslimit.h" #endif /* HAVE_SETRLIMIT */ #include "cfg.h" #include "cfgfile.h" #include "log.h" /* the definition of the environment */ extern char **environ; /* the number of children spawned */ static volatile int cvsd_numchildren=0; /* the exit flag to indicate that a signal was received */ static volatile int cvsd_exitsignal=0; /* the server sockets */ #define MAXSERVERSOCKETS 16 static int cvsd_serversockets[MAXSERVERSOCKETS]; static int cvsd_serversocketnum=0; /* the number of seconds to sleep when no more connections can be listened for */ #define SLEEPSECS 5 /* libwrap logging settings */ #ifdef USE_LIBWRAP int allow_severity=LOG_INFO; int deny_severity=LOG_NOTICE; #endif /* USE_LIBWRAP */ /* display version information */ static void display_version(FILE *fp) { fprintf(fp,"%s\n",PACKAGE_STRING); fprintf(fp,"Written by Chris Black, Philippe Kehl and Arthur de Jong.\n\n"); fprintf(fp,"Copyright (C) 1999-2012 Chris Black, Philippe Kehl and Arthur de Jong.\n" "This is free software; see the source for copying conditions. There is NO\n" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"); } /* display usage information to stdout and exit(status) */ static void display_usage(FILE *fp, const char *program_name) { fprintf(fp,"Usage: %s [OPTION]...\n",program_name); fprintf(fp,"chroot wrapper to run `cvs pserver' more securely.\n"); fprintf(fp," -f, --config=FILE use FILE as configfile (default %s)\n",DEFAULT_CONFIGFILE); fprintf(fp," -d, --debug don't fork and print debugging to stderr\n"); fprintf(fp," --help display this help and exit\n"); fprintf(fp," --version output version information and exit\n"); fprintf(fp,"\n" "Report bugs to <%s>.\n",PACKAGE_BUGREPORT); } /* the definition of options for getopt(). see getopt(2) */ static struct option const cvsd_options[] = { { "config", required_argument, NULL, 'f' }, { "debug", no_argument, NULL, 'd' }, { "help", no_argument, NULL, 'h' }, { "version", no_argument, NULL, 'V' }, { NULL, 0, NULL, 0 } }; #define CVSD_OPTIONSTRING "f:dhV" /* parse command line options and save settings in struct */ static void parse_cmdline(int argc,char *argv[],struct cvsd_cfg *cfg) { int optc; while ((optc=getopt_long(argc,argv,CVSD_OPTIONSTRING,cvsd_options,NULL))!=-1) { switch (optc) { case 'f': /* -f, --config=FILE use FILE as configfile */ if (optarg[0]!='/') { fprintf(stderr,"%s: configfile '%s' must be an absolute path\n", argv[0],optarg); exit(1); } cfg->configfile=xstrdup(optarg); break; case 'd': /* -d, --debug don't fork and print debugging to stderr */ cfg->debugging=1; log_setdefaultloglevel(LOG_DEBUG); break; case 'h': /* --help display this help and exit */ display_usage(stdout,argv[0]); exit(0); case 'V': /* --version output version information and exit */ display_version(stdout); exit(0); case ':': /* missing required parameter */ case '?': /* unknown option character or extraneous parameter */ default: fprintf(stderr,"Try `%s --help' for more information.\n", argv[0]); exit(1); } } /* check for remaining arguments */ if (optind0) { /* shouldn't have a race here because we don't have threads */ cvsd_numchildren--; if (WIFSIGNALED(status)) { log_log(LOG_INFO,"cvs command exited on signal %s (%d) with exit-status %d", signame((int)WTERMSIG(status)), (int)WTERMSIG(status), (int)WEXITSTATUS(status)); } else { log_log(LOG_INFO,"cvs command exited%s with exit-status %d", WIFEXITED(status)?"":" abnormally", (int)WEXITSTATUS(status)); } } } /* signal handler for dying children */ static void sigchld_handler(int signum) { } /* signal handler for closing down */ static void sigexit_handler(int signum) { cvsd_exitsignal=signum; } /* do cleaning up before terminating */ static void exithandler(void) { int i; for (i=0;i<=cvsd_serversocketnum;i++) if (close(cvsd_serversockets[i])) log_log(LOG_WARNING,"problem closing server socket (ignored): %s",strerror(errno)); log_log(LOG_INFO,"version %s bailing out",VERSION); } /* handle a connection by doing fork() and stuff */ static void handleconnection(int csock,const struct cvsd_cfg *cfg) { pid_t cpid; int i; long m; /* we have a possible race here? (probably atomic) */ cvsd_numchildren++; /* fork off a child to handle the connection */ switch (cpid=fork()) { case 0: /* we are the child */ /* set limits */ setreslimits(); /* connect socket to stdin/stdout/stderr */ if ( (dup2(csock,0)<0) || /* stdin */ (dup2(csock,1)<0) || /* stdout */ (dup2(csock,2)<0) ) /* stderr */ { log_log(LOG_ERR,"dup failed: %s",strerror(errno)); _exit(1); } /* close all other file descriptors */ m=sysconf(_SC_OPEN_MAX); /* if the system does not have OPEN_MAX just close the first 32 and hope we closed enough */ if (m<0) m=32; for (i=3;icvscmd,cfg->cvsargs,cfg->cvsenv); /* if we are here there has been an error */ /* we can't log since we don't have any useful file descriptors */ close(0); close(1); close(2); _exit(1); break; case -1: /* we are the parent, but have an error */ log_log(LOG_ERR,"fork() failed: %s",strerror(errno)); exit(1); break; } /* we are the parent and have a cpid */ log_log(LOG_DEBUG,"debug: fork() succeeded (child pid=%d)",(int)cpid); /* close the socket to prevent confusion */ if (close(csock)) log_log(LOG_WARNING,"problem closing connection socket in parent (ignored): %s",strerror(errno)); } /* create socket, bind and listen on the specified address */ static void listenonaddresses(const struct cvsd_addrs *addrs) { int flag; int sock; char host[80],serv[40]; int i; struct addrinfo *addr; int count=0; for (addr=addrs->addrs;addr!=NULL;addr=addr->ai_next) { /* translate address to name */ switch (i=getnameinfo(addr->ai_addr,addr->ai_addrlen, host,sizeof(host),serv,sizeof(serv), NI_NUMERICHOST|NI_NUMERICSERV)<0) { case 0: log_log(LOG_DEBUG,"debug: binding %s %s family=%d socktype=%d protocol=%d",host,serv, addr->ai_family,addr->ai_socktype,addr->ai_protocol); break; case EAI_SYSTEM: log_log(LOG_DEBUG,"debug: getnameinfo() failed (ignored): %s",strerror(errno)); strcpy(host,"?"); strcpy(serv,"?"); break; default: log_log(LOG_DEBUG,"debug: getnameinfo() failed (ignored): %s",gai_strerror(i)); strcpy(host,"?"); strcpy(serv,"?"); break; } /* ignore unix domain sockets (i.e. named sockets) */ if (addr->ai_family==PF_UNIX) { log_log(LOG_DEBUG,"debug: do not try unix domain socket (family %d)",addr->ai_family); continue; } /* create socket */ if ((sock=socket(addr->ai_family,addr->ai_socktype,addr->ai_protocol))<0) { if ((errno==EAFNOSUPPORT)||(errno==EINVAL)) { log_log(LOG_DEBUG,"debug: socket() failed (ignored): %s",strerror(errno)); continue; } log_log(LOG_ERR,"cannot create socket: %s",strerror(errno)); exit(1); } /* bind socket even if port is in close wait state */ flag=1; if (setsockopt(sock,SOL_SOCKET,SO_REUSEADDR,&flag,sizeof(int))!=0) { log_log(LOG_ERR,"setsockopt(SO_REUSEADDR) failed: %s",strerror(errno)); if (close(sock)) log_log(LOG_WARNING,"problem closing socket: %s",strerror(errno)); exit(1); } /* force IPv6 sockets to not handle IPv4 traffic */ #ifdef IPV6_V6ONLY flag=1; if ((addr->ai_family==AF_INET6)&&(setsockopt(sock,IPPROTO_IPV6,IPV6_V6ONLY,&flag,sizeof(int))!=0)) { log_log(LOG_ERR,"setsockopt(IPV6_V6ONLY) failed: %s",strerror(errno)); if (close(sock)) log_log(LOG_WARNING,"problem closing socket: %s",strerror(errno)); exit(1); } #endif /* IPV6_V6ONLY */ #ifdef TODO /* close the socket fast (SO_LINGER) */ struct linger { int l_onoff; /* linger active */ int l_linger; /* how many seconds to linger for */ }; if (setsockopt(sock,SOL_SOCKET,SO_LINGER,&**,sizeof(**))!=0) { log_log(LOG_ERR,"setsockopt(SO_LINGER) failed: %s",strerror(errno)); if (close(sock)) log_log(LOG_WARNING,"problem closing socket: %s",strerror(errno)); exit(1); } #endif /* TODO */ /* do not block on accept() */ if ((i=fcntl(sock,F_GETFL,0))<0) { log_log(LOG_ERR,"fctnl(F_GETFL) failed: %s",strerror(errno)); if (close(sock)) log_log(LOG_WARNING,"problem closing socket: %s",strerror(errno)); exit(1); } if (fcntl(sock,F_SETFL,i|O_NONBLOCK)<0) { log_log(LOG_ERR,"fctnl(F_SETFL,O_NONBLOCK) failed: %s",strerror(errno)); if (close(sock)) log_log(LOG_WARNING,"problem closing socket: %s",strerror(errno)); exit(1); } /* bind the socket to the specified port */ if (bind(sock,addr->ai_addr,addr->ai_addrlen)<0) { log_log(LOG_ERR,"bind(%s,%s) failed: %s",host,serv,strerror(errno)); if (close(sock)) log_log(LOG_WARNING,"problem closing socket: %s",strerror(errno)); exit(1); } /* start listening for connections */ if (listen(sock,1)<0) { log_log(LOG_ERR,"listen() failed: %s",strerror(errno)); if (close(sock)) log_log(LOG_WARNING,"problem closing socket: %s",strerror(errno)); exit(1); } /* add the allocated socket to the list of ok sockets */ if (cvsd_serversocketnum>=MAXSERVERSOCKETS) { log_log(LOG_ERR,"maximum number of listening serversockets reached: edit MAXSERVERSOCKETS in cvsd.c and recompile!"); if (close(sock)) log_log(LOG_WARNING,"problem closing socket: %s",strerror(errno)); exit(1); } cvsd_serversockets[cvsd_serversocketnum++]=sock; /* log stuff */ log_log(LOG_INFO,"listening on %s %s",host,serv); count++; } /* next addr */ if (count<=0) { log_log(LOG_ERR,"failed binding any address for %s %s: %s", addrs->node,addrs->service,strerror(errno)); exit(1); } } /* accept a connection on the socket and spawn a child cvs */ static void acceptconnection(const struct cvsd_cfg *cfg) { int csock; fd_set fds; int i; int j; int max=0; struct sockaddr_storage addr; socklen_t alen; char hostbuf[80],serv[40]; char *host; #ifdef USE_LIBWRAP struct request_info rinfo; #endif /* USE_LIBWRAP */ /* clear the set */ FD_ZERO(&fds); for (i=0;imax) max=cvsd_serversockets[i]+1; } /* wait for something to change */ if (select(max,&fds,NULL,NULL,NULL)<0) { if (errno==EINTR) return; /* ignore, this happens all the time */ log_log(LOG_ERR,"select() failed: %s",strerror(errno)); exit(1); } for (i=0;icvsenv; /* parse the command line */ parse_cmdline(argc,argv,cfg); /* begin building command line */ cfg_addcvsarg(cfg,"cvs"); cfg_addcvsarg(cfg,"-f"); /* do not read ~/.cvsrc */ #ifdef DEBUG cfg_addcvsarg(cfg,"-t"); /* verbose */ #endif /* DEBUG */ /* read the configuration file */ read_configfile(cfg->configfile,cfg); /* specify cvs_command if not set earlier */ if (cfg->cvscmd==NULL) { cfg->cvscmd=( (cfg->rootjail!=NULL) && (strcmp(cfg->rootjail,"none")!=0) )?"/bin/cvs":CVS_LOCATION; } log_log(LOG_DEBUG,"debug: cvscmd: %s",cfg->cvscmd); /* add cvs action */ cfg_addcvsarg(cfg,"pserver"); /* run cvs as pserver */ /* dump all arguments */ for (i=0;cfg->cvsargs[i]!=NULL;i++) log_log(LOG_DEBUG,"debug: cvsargs[%d]: %s",i,cfg->cvsargs[i]); /* complete environment for cvs */ cfg->cvsenv[CVSUMASK_IDX]=(char *)xmalloc(13*sizeof(char)); i=snprintf(cfg->cvsenv[CVSUMASK_IDX],13,"CVSUMASK=%03o",cfg->umask); if ( (i<0) || (i>12) ) { log_log(LOG_ERR,"fatal error saving umask in environment (probably a bug)"); exit(1); } /* dump environment */ for (i=0;cfg->cvsenv[i]!=NULL;i++) log_log(LOG_DEBUG,"debug: cvsenv[%d]: %s",i,cfg->cvsenv[i]); /* default address */ if (cfg->addresses==NULL) cfg_addaddress(cfg,NULL,0,DEFAULT_ADDR,DEFAULT_PORT); /* daemonize */ if ((!cfg->debugging)&&(daemon(0,0)<0)) { log_log(LOG_ERR,"unable to daemonize: %s",strerror(errno)); exit(1); } /* intilialize logging */ if (!cfg->debugging) log_startlogging(); #ifdef DEBUG log_log(LOG_INFO,"version %s starting (debugging enabled)",VERSION); #else /* DEBUG */ log_log(LOG_INFO,"version %s starting",VERSION); #endif /* not DEBUG */ /* install handler to close stuff off on exit and log notice */ atexit(exithandler); /* write pidfile */ write_pidfile(cfg->pidfile); /* set the umask */ umask(cfg->umask); /* start listening on addresses from configfile */ for (tmp=cfg->addresses;tmp!=NULL;tmp=nxt) { listenonaddresses(tmp); nxt=tmp->next; freeaddrinfo(tmp->addrs); free(tmp->node); free(tmp->service); free(tmp); } cfg->addresses=NULL; /* do the chroot stuff */ if ( (cfg->rootjail!=NULL) && (strcmp(cfg->rootjail,"none")!=0) ) { if (chdir(cfg->rootjail)!=0) { log_log(LOG_ERR,"cannot chdir(%s): %s",cfg->rootjail,strerror(errno)); exit(1); } if (chroot(cfg->rootjail)!=0) { log_log(LOG_ERR,"cannot chroot(%s): %s",cfg->rootjail,strerror(errno)); exit(1); } log_log(LOG_DEBUG,"debug: chroot(%s) done",cfg->rootjail); } /* just to be sure */ chdir("/"); /* renice */ errno=0; /* for strange nice implementations */ nice(cfg->nice); if (errno!=0) { log_log(LOG_ERR,"cannot nice(%d): %s",(int)cfg->nice,strerror(errno)); exit(1); } log_log(LOG_DEBUG,"debug: nice(%d) done",(int)cfg->nice); #ifdef HAVE_SETGROUPS /* drop all supplemental groups */ if (setgroups(0,NULL)<0) { log_log(LOG_WARNING,"cannot setgroups(0,NULL) (ignored): %s",strerror(errno)); } else { log_log(LOG_DEBUG,"debug: setgroups(0,NULL) done"); } #else /* HAVE_SETGROUPS */ log_log(LOG_DEBUG,"debug: setgroups() not available"); #endif /* not HAVE_SETGROUPS */ #ifdef USE_CAPABILITIES /* if there are any capabilities defined, set them to be kept across setuid() calls so we can limit them later on */ if (cfg->capabilities!=NULL) { if (prctl(PR_SET_KEEPCAPS,1)) { log_log(LOG_ERR,"cannot prctl(PR_SET_KEEPCAPS,1): %s",strerror(errno)); exit(1); } log_log(LOG_DEBUG,"debug: prctl(PR_SET_KEEPCAPS,1) done"); /* dump the current capabilities */ caps=cap_get_proc(); log_log(LOG_DEBUG,"debug: current capabilities: %s",cap_to_text(caps,NULL)); cap_free(caps); } #endif /* USE_CAPABILITIES */ /* change to cvs gid */ if (cfg->gid!=NOGID) { if (setgid(cfg->gid)!=0) { log_log(LOG_ERR,"cannot setgid(%d): %s",(int)cfg->gid,strerror(errno)); exit(1); } log_log(LOG_DEBUG,"debug: setgid(%d) done",cfg->gid); } /* change to cvs uid */ if (cfg->uid!=NOUID) { if (setuid(cfg->uid)!=0) { log_log(LOG_ERR,"cannot setuid(%d): %s",(int)cfg->uid,strerror(errno)); exit(1); } log_log(LOG_DEBUG,"debug: setuid(%d) done",cfg->uid); } #ifdef USE_CAPABILITIES /* if there are any capabilities defined, limit them now */ if (cfg->capabilities!=NULL) { /* dump the current capabilities */ caps=cap_get_proc(); log_log(LOG_DEBUG,"debug: current capabilities: %s",cap_to_text(caps,NULL)); cap_free(caps); /* limit the capabilities */ if (cap_set_proc(cfg->capabilities)!=0) { log_log(LOG_ERR,"cannot cap_set_proc(%s): %s",cap_to_text(cfg->capabilities,NULL),strerror(errno)); exit(1); } log_log(LOG_DEBUG,"debug: cap_set_proc(%2) done",cap_to_text(cfg->capabilities,NULL)); /* we no longer need this so we should free it */ cap_free(cfg->capabilities); /* dump the current capabilities */ caps=cap_get_proc(); log_log(LOG_DEBUG,"debug: current capabilities: %s",cap_to_text(caps,NULL)); cap_free(caps); } #endif /* USE_CAPABILITIES */ /* build cvs command line */ j=strlen(cfg->cvscmd)+1; for (i=1;cfg->cvsargs[i]!=NULL;i++) j+=strlen(cfg->cvsargs[i])+1; cvs_cmdline=(char *)xmalloc(j*sizeof(char)); strcpy(cvs_cmdline,cfg->cvscmd); for (i=1;cfg->cvsargs[i]!=NULL;i++) { strcat(cvs_cmdline," "); strcat(cvs_cmdline,cfg->cvsargs[i]); } log_log(LOG_DEBUG,"debug: cvs command to execute: '%s'",cvs_cmdline); /* install signalhandler for terminating children */ install_sighandler(SIGCHLD,sigchld_handler); /* install signalhandlers for some other signals */ install_sighandler(SIGHUP, sigexit_handler); install_sighandler(SIGINT, sigexit_handler); install_sighandler(SIGQUIT,sigexit_handler); install_sighandler(SIGILL, sigexit_handler); install_sighandler(SIGABRT,sigexit_handler); install_sighandler(SIGSEGV,sigexit_handler); install_sighandler(SIGPIPE,sigexit_handler); install_sighandler(SIGALRM,sigexit_handler); install_sighandler(SIGTERM,sigexit_handler); install_sighandler(SIGUSR1,sigexit_handler); install_sighandler(SIGUSR2,sigexit_handler); log_log(LOG_INFO,"accepting connections"); /* start waiting for incoming connections */ while (cvsd_exitsignal==0) { /* if we are ready to handle a connection do so */ if ((cfg->maxconnections==0)||(cvsd_numchildrenmaxconnections)) { /* wait for a new connection */ acceptconnection(cfg); /* handle exiting child processes */ reap_deadchildren(); } else /* not ready for connection */ { /* log that the connections are full */ log_log(LOG_INFO,"too many connections (%d), not accepting new connections",cvsd_numchildren); /* wait until children have died */ while (cvsd_numchildren>=cfg->maxconnections) { /* sleep unblocks on a signal */ sleep(SLEEPSECS); /* handle exiting child processes */ reap_deadchildren(); } /* log that the connections are full */ log_log(LOG_INFO,"resuming accepting new connections"); } } /* print something about received signals */ if (cvsd_exitsignal!=0) { log_log(LOG_INFO,"caught signal %s (%d), shutting down", signame(cvsd_exitsignal),cvsd_exitsignal); } return 1; } cvsd-1.0.24/cvsd.conf.5.in0000644000000000000000000001517311316744033012012 0ustar .\" Copyright (C) 2001, 2002, 2003, 2004, 2009 Arthur de Jong .\" .\" This program is free software; you can redistribute it and/or modify .\" it under the terms of the GNU General Public License as published by .\" the Free Software Foundation; either version 2, or (at your option) .\" any later version. .\" .\" This program is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .\" GNU General Public License for more details. .\" .\" You should have received a copy of the GNU General Public License .\" along with this program; if not, write to the Free Software .\" Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA .TH "cvsd.conf" "5" "@RELEASE_MONTH@" "Version @VERSION@" "System Manager's Manual" .nh .SH "NAME" cvsd.conf \- configuration file for cvsd. .SH "DESCRIPTION" The file .I cvsd.conf contains the configuration information for running \(oqcvsd\(cq (see .BR cvsd (8) ). The file contains options, one on each line, specifying the workings of cvsd. .SH "OPTIONS" .TP \fBRootJail\fR \fIpath\fR This specifies the location of the chroot jail cvs should be run in. This directory should be initialized with the cvsd\-buildroot script so it contains all the proper directories and binaries. If this option is not present in the configuration file or a value of \(oqnone\(cq (without quotes) is specified cvsd will run in the normal file system root. .TP \fBUid\fR \fIuid\fR This specifies which user id cvs should be run as. This can be a numerical id or a symbolic value. If no uid is specified cvsd will run under the uid it is started with. .TP \fBGid\fR \fIgid\fR This specifies which group id cvs should be run as. This can be a numerical id or a symbolic value. If no gid is specified cvsd will run under the gid it is started with. .TP \fBCvsCommand\fR \fIpath\fR This should be set to the location where the cvs command is located. Note that if you set up a RootJail this is relative to that directory, but should still start with a \(oq/\(cq. If you do not define this a default of \(oq/bin/cvs\(cq will be used if a chroot jail has been configured and otherwise it will be set \(oq@CVS@\(cq. .TP \fBCvsArgs\fR \fIarg\fR... Additional arguments to be passed to the cvs command, in addition to the default ones. You can pass the \-R option to put cvs in read-only mode. Note that not all options can be used in pserver mode and error messages are not always very friendly. .TP \fBNice\fR \fInum\fR This specifies the nice value (on most systems ranging from \-20 to 20) where the smaller the number (more negative) the higher the priority. If no value is specified the nice level of the program will not be altered. .TP \fBUmask\fR \fImask\fR This specifies a umask used by the cvs pserver when creating files. Specify as an octal value. If no value is specified the default umask of 027 will be used. .TP \fBLimit\fR \fIresource\fR \fIvalue\fR Limits use of a certain resource to the cvs process. Note that resource limits will be set on the executed cvs command and not for the daemon. Resource may be one of: .RS .PD 0 .TP .B coredumpsize maixmum filesize of a coredump .TP .B cputime maximum amount of seconds cputime consumed .TP .B datasize maximum size of program's data segment .TP .B filesize maximum size of files created .TP .B memorylocked maximum amount of locked memory .TP .B openfiles maximum number of open files (file descriptors) .TP .B maxproc maximam number of processes (per user? max. children?) .TP .B memoryuse maximum size of resident memory .TP .B stacksize maximum stack size .TP .B virtmem maximum amount of virtual memory allocated .TP .B pthreads number of threads that the process may create .PP Note that not all systems may support all resources specified here. If no limits are defined no extra limits will be enforced. If the system already specified limits for processes it may not be possible to broaden the limits. .br A value (resource limit) that is a size can be specified with a suffix of \(oqb\(cq (bytes), \(oqk\(cq (1024 bytes) or \(oqm\(cq (1024*1024 bytes), where \(oqk\(cq is default. .br Plain number values can also have the \(oqk\(cq and \(oqm\(cq suffixes, but the default is just the plain number. .br Time values can be formatted as \(oqmm:ss\(cq or have a \(oqm\(cq or \(oqs\(cq suffix where \(oqs\(cq is default. .PD .RE .TP \fBPidFile\fR \fIfile\fR This specifies the location the process id of the daemon is written. If no PidFile is specified the pid will not be written. /var/run/cvsd.pid is a good location for a pidfile. .TP \fBListen\fR \fIaddress\fR \fIport\fR This options specifies which addresses and ports cvsd should listen on for connections. The address value can be \(oq*\(cq (for binding all addresses) or a symbolic (host name), dotted quad or ipv6 address. The port value can be a numeric port number or a well known service (\(oqcvspserver\(cq). This option can be supplied multiple times. The address and port fields can be combined in the usual ways by separating them with a \(oq:\(cq or a \(oq.\(cq, optionally surrounding the address part by square brackets (\(oq[\(cq and \(oq]\(cq). .br Some examples: .ft B # listen on all interfaces and all protocols on port 2401 Listen * 2401 # listen on IPv6 port 100 Listen :: 100 # listen on localhost Listen localhost cvspserver # listen on an ipv6 address Listen [fe80::2a0:d2ff:fea5:e9f5]:2401 .ft R .TP \fBMaxConnections\fR \fInum\fR This specifies the maximum number of connections that can be handled simultaneously. When the value 0 (the default) is supplied no limit is used. .TP \fBLog\fR \fIscheme/file\fR \fIlogvelel\fR This option specifies the way logging is done. As first argument either none, syslog or a file name beginning with a \(oq/\(cq may be specified. The second argument is optional and specifies the loglevel. The loglevel may be one of: crit, error, warning, notice, info (default) or debug. All messages with the specified loglevel and higher are logged. This option can be supplied multiple times. If this option is omitted syslog info is assumed. .TP \fBRepos\fR \fIpath\fR This option specifies which repositories can be used. The value is passed as a \-\-allow\-root=path parameter to cvs. The path should be relative to the specified RootJail and should start with a \(oq/\(cq. This option can be supplied multiple times, but should be specified at least once. .SH "FILES" @CONFIGFILE@ \- default location for the configuration file .br /var/run/cvsd.pid (or other localtion) \- the file where the process id is saved .SH "SEE ALSO" .BR cvsd (8) .SH "AUTHOR" Arthur de Jong . cvsd-1.0.24/daemon.h0000644000000000000000000000205010434125357011040 0ustar /* daemon.h - definition of daemon() for systems that lack it Copyright (C) 2002, 2003 Arthur de Jong This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef _DAEMON_H #define _DAEMON_H 1 #include /* deamonize process, optionally chdir to / and optionally close stdin, strdout and stderr and redirect them to /dev/null */ int daemon(int nochdir,int noclose); #endif /* not _DAEMON_H */ cvsd-1.0.24/Makefile.in0000644000000000000000000010433711762425622011507 0ustar # Makefile.in generated by automake 1.11.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Makefile.am - use automake to generate Makefile.in # Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, # 2010, 2011 Arthur de Jong # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : sbin_PROGRAMS = cvsd$(EXEEXT) subdir = . DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/config.h.in \ $(srcdir)/cvsd-buginfo.8.in $(srcdir)/cvsd-buginfo.in \ $(srcdir)/cvsd-buildroot.8.in $(srcdir)/cvsd-buildroot.in \ $(srcdir)/cvsd-passwd.8.in $(srcdir)/cvsd-passwd.in \ $(srcdir)/cvsd.8.in $(srcdir)/cvsd.conf.5.in \ $(srcdir)/cvsd.init.in $(srcdir)/cvsd.init.redhat71.in \ $(srcdir)/cvsd.spec.in $(top_srcdir)/configure AUTHORS COPYING \ ChangeLog INSTALL NEWS TODO config.guess config.sub daemon.c \ depcomp getinfos.c getopt_long.c install-sh missing \ mkinstalldirs reslimit.c ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = cvsd.8 cvsd-buildroot.8 cvsd-passwd.8 cvsd.conf.5 \ cvsd-buginfo.8 cvsd.spec cvsd-buildroot cvsd-passwd \ cvsd-buginfo cvsd.init cvsd.init.redhat71 CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(sbindir)" \ "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(man8dir)" PROGRAMS = $(sbin_PROGRAMS) am_cvsd_OBJECTS = cvsd.$(OBJEXT) xmalloc.$(OBJEXT) cfgfile.$(OBJEXT) \ log.$(OBJEXT) cfg.$(OBJEXT) cvsd_OBJECTS = $(am_cvsd_OBJECTS) cvsd_DEPENDENCIES = @LIBOBJS@ am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } SCRIPTS = $(sbin_SCRIPTS) DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(cvsd_SOURCES) DIST_SOURCES = $(cvsd_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac man5dir = $(mandir)/man5 man8dir = $(mandir)/man8 NROFF = nroff MANS = $(man_MANS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ if test -d "$(distdir)"; then \ find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -rf "$(distdir)" \ || { sleep 5 && rm -rf "$(distdir)"; }; \ else :; fi DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHMOD = @CHMOD@ CONFIGFILE = @CONFIGFILE@ CONFIGURE_CMD = @CONFIGURE_CMD@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CVS = @CVS@ CVSD_BIN = @CVSD_BIN@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ RELEASE_MONTH = @RELEASE_MONTH@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ sbin_SCRIPTS = cvsd-buildroot cvsd-passwd cvsd-buginfo cvsd_SOURCES = cvsd.c aclocal.m4 \ xmalloc.c xmalloc.h \ cfgfile.c cfgfile.h \ log.c log.h \ cfg.c cfg.h cvsd_LDADD = @LIBOBJS@ EXTRA_DIST = cvsd.conf-dist \ getopt_long.c getopt_long.h \ reslimit.c reslimit.h \ daemon.c daemon.h \ getinfos.c getinfos.h \ debian/control debian/changelog debian/rules debian/docs \ debian/postinst debian/postrm debian/copyright \ debian/config debian/templates debian/cvsd.init \ debian/cvsd.bug-script debian/lintian-overrides \ debian/compat debian/source/format \ debian/po/POTFILES.in \ debian/po/templates.pot \ $(wildcard debian/po/*.po) \ $(wildcard ChangeLog-????) \ cvsd.spec \ FAQ # if you write a self-test script named 'chk', uncomment the # following and add 'chk' to the EXTRA_DIST list #TESTS=chk # install the man pages man_MANS = cvsd.8 cvsd-buildroot.8 cvsd.conf.5 cvsd-passwd.8 \ cvsd-buginfo.8 # clean extra files DISTCLEANFILES = *-stamp \ cvsd_$(VERSION).tar.gz \ cvsd_$(VERSION).dsc cvsd_$(VERSION)_*.changes \ cvsd_$(VERSION)_*.deb cvsd_$(VERSION)_*.build \ cvsd-$(VERSION).tar.gz all: config.h $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: .SUFFIXES: .c .o .obj am--refresh: Makefile @: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): config.h: stamp-h1 @if test ! -f $@; then rm -f stamp-h1; else :; fi @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h $(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f config.h stamp-h1 cvsd.8: $(top_builddir)/config.status $(srcdir)/cvsd.8.in cd $(top_builddir) && $(SHELL) ./config.status $@ cvsd-buildroot.8: $(top_builddir)/config.status $(srcdir)/cvsd-buildroot.8.in cd $(top_builddir) && $(SHELL) ./config.status $@ cvsd-passwd.8: $(top_builddir)/config.status $(srcdir)/cvsd-passwd.8.in cd $(top_builddir) && $(SHELL) ./config.status $@ cvsd.conf.5: $(top_builddir)/config.status $(srcdir)/cvsd.conf.5.in cd $(top_builddir) && $(SHELL) ./config.status $@ cvsd-buginfo.8: $(top_builddir)/config.status $(srcdir)/cvsd-buginfo.8.in cd $(top_builddir) && $(SHELL) ./config.status $@ cvsd.spec: $(top_builddir)/config.status $(srcdir)/cvsd.spec.in cd $(top_builddir) && $(SHELL) ./config.status $@ cvsd-buildroot: $(top_builddir)/config.status $(srcdir)/cvsd-buildroot.in cd $(top_builddir) && $(SHELL) ./config.status $@ cvsd-passwd: $(top_builddir)/config.status $(srcdir)/cvsd-passwd.in cd $(top_builddir) && $(SHELL) ./config.status $@ cvsd-buginfo: $(top_builddir)/config.status $(srcdir)/cvsd-buginfo.in cd $(top_builddir) && $(SHELL) ./config.status $@ cvsd.init: $(top_builddir)/config.status $(srcdir)/cvsd.init.in cd $(top_builddir) && $(SHELL) ./config.status $@ cvsd.init.redhat71: $(top_builddir)/config.status $(srcdir)/cvsd.init.redhat71.in cd $(top_builddir) && $(SHELL) ./config.status $@ install-sbinPROGRAMS: $(sbin_PROGRAMS) @$(NORMAL_INSTALL) @list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(sbindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(sbindir)" || exit 1; \ fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(sbindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(sbindir)$$dir" || exit $$?; \ } \ ; done uninstall-sbinPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(sbindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(sbindir)" && rm -f $$files clean-sbinPROGRAMS: -test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS) cvsd$(EXEEXT): $(cvsd_OBJECTS) $(cvsd_DEPENDENCIES) $(EXTRA_cvsd_DEPENDENCIES) @rm -f cvsd$(EXEEXT) $(LINK) $(cvsd_OBJECTS) $(cvsd_LDADD) $(LIBS) install-sbinSCRIPTS: $(sbin_SCRIPTS) @$(NORMAL_INSTALL) @list='$(sbin_SCRIPTS)'; test -n "$(sbindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(sbindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(sbindir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n' \ -e 'h;s|.*|.|' \ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ if (++n[d] == $(am__install_max)) { \ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ else { print "f", d "/" $$4, $$1 } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(sbindir)$$dir'"; \ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(sbindir)$$dir" || exit $$?; \ } \ ; done uninstall-sbinSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(sbin_SCRIPTS)'; test -n "$(sbindir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ dir='$(DESTDIR)$(sbindir)'; $(am__uninstall_files_from_dir) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/daemon.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/getinfos.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/getopt_long.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/reslimit.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cfg.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cfgfile.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cvsd.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/log.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmalloc.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` install-man5: $(man_MANS) @$(NORMAL_INSTALL) @list1=''; \ list2='$(man_MANS)'; \ test -n "$(man5dir)" \ && test -n "`echo $$list1$$list2`" \ || exit 0; \ echo " $(MKDIR_P) '$(DESTDIR)$(man5dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(man5dir)" || exit 1; \ { for i in $$list1; do echo "$$i"; done; \ if test -n "$$list2"; then \ for i in $$list2; do echo "$$i"; done \ | sed -n '/\.5[a-z]*$$/p'; \ fi; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man5dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man5dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man5dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man5dir)" || exit $$?; }; \ done; } uninstall-man5: @$(NORMAL_UNINSTALL) @list=''; test -n "$(man5dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.5[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ dir='$(DESTDIR)$(man5dir)'; $(am__uninstall_files_from_dir) install-man8: $(man_MANS) @$(NORMAL_INSTALL) @list1=''; \ list2='$(man_MANS)'; \ test -n "$(man8dir)" \ && test -n "`echo $$list1$$list2`" \ || exit 0; \ echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ { for i in $$list1; do echo "$$i"; done; \ if test -n "$$list2"; then \ for i in $$list2; do echo "$$i"; done \ | sed -n '/\.8[a-z]*$$/p'; \ fi; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ done; } uninstall-man8: @$(NORMAL_UNINSTALL) @list=''; test -n "$(man8dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.8[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @list='$(MANS)'; if test -n "$$list"; then \ list=`for p in $$list; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \ if test -n "$$list" && \ grep 'ab help2man is required to generate this page' $$list >/dev/null; then \ echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \ grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \ echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \ echo " typically \`make maintainer-clean' will remove them" >&2; \ exit 1; \ else :; fi; \ else :; fi $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-lzip: distdir tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz $(am__remove_distdir) dist-lzma: distdir tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma $(am__remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ *.tar.lz*) \ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @test -n '$(distuninstallcheck_dir)' || { \ echo 'ERROR: trying to run $@ with an empty' \ '$$(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ $(am__cd) '$(distuninstallcheck_dir)' || { \ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) $(SCRIPTS) $(MANS) config.h installdirs: for dir in "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(man8dir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-sbinPROGRAMS mostlyclean-am distclean: distclean-am -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(DEPDIR) ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-hdr distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-man install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-sbinPROGRAMS install-sbinSCRIPTS install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-man5 install-man8 install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -rf $(DEPDIR) ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local uninstall-man uninstall-sbinPROGRAMS \ uninstall-sbinSCRIPTS uninstall-man: uninstall-man5 uninstall-man8 .MAKE: all install-am install-strip .PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \ clean-generic clean-sbinPROGRAMS ctags dist dist-all \ dist-bzip2 dist-gzip dist-lzip dist-lzma dist-shar dist-tarZ \ dist-xz dist-zip distcheck distclean distclean-compile \ distclean-generic distclean-hdr distclean-tags distcleancheck \ distdir distuninstallcheck dvi dvi-am html html-am info \ info-am install install-am install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-man5 install-man8 \ install-pdf install-pdf-am install-ps install-ps-am \ install-sbinPROGRAMS install-sbinSCRIPTS install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ uninstall-am uninstall-local uninstall-man uninstall-man5 \ uninstall-man8 uninstall-sbinPROGRAMS uninstall-sbinSCRIPTS # install configuration files install-data-local: install-configfile install-initscript uninstall-local: uninstall-configfile uninstall-initscript install-configfile: if [ ! -d $(DESTDIR)$(sysconfdir)/cvsd ]; then \ $(mkinstalldirs) $(DESTDIR)$(sysconfdir)/cvsd;\ fi if [ ! -f $(DESTDIR)$(CONFIGFILE) ]; then \ $(INSTALL_DATA) $(srcdir)/cvsd.conf-dist $(DESTDIR)$(CONFIGFILE); \ else \ echo "$(DESTDIR)$(CONFIGFILE) already exists, install will not overwrite"; \ fi uninstall-configfile: -rm -f $(DESTDIR)$(CONFIGFILE) -rmdir $(DESTDIR)$(sysconfdir)/cvsd install-initscript: if [ ! -d $(DESTDIR)$(sysconfdir)/init.d ]; then \ $(mkinstalldirs) $(DESTDIR)$(sysconfdir)/init.d; \ fi if [ -f $(DESTDIR)$(sysconfdir)/init.d/cvsd ]; then \ echo "$(DESTDIR)$(sysconfdir)/init.d/cvsd already exists, overwriting"; \ fi $(INSTALL_SCRIPT) cvsd.init $(DESTDIR)$(sysconfdir)/init.d/cvsd uninstall-initscript: -rm -f $(DESTDIR)$(sysconfdir)/init.d/cvsd -rmdir $(DESTDIR)$(sysconfdir)/init.d # targets for debian package deb: distdir cd $(distdir) && \ debuild rm -rf $(distdir) # targets for redhat rpm rpm: dist rpmbuild -ta --clean cvsd-$(VERSION).tar.gz signedrpm: rpmbuild -ta --clean --sign cvsd-$(VERSION).tar.gz changelog: cvs2cl --window 3600 --accum --prune faq: ( echo '' ; \ echo 'Frequently Asked Questions for cvsd' ; \ echo '===================================' ; \ echo '' ; \ echo 'the latest version of this FAQ can be found at' ; \ echo 'http://arthurdejong.org/cvsd/faq.html' ; \ lynx -dump -nolist http://arthurdejong.org/cvsd/faq.html | \ tail -n +11 | head -n -5 | \ sed 's/^ //' ) > FAQ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: cvsd-1.0.24/install-sh0000744000000000000000000003325611762425621011444 0ustar #!/bin/sh # install - install a program, script, or datafile scriptversion=2011-01-19.21; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 # Protect names problematic for `test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg # Protect names problematic for `test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then do_exit='(exit $ret); exit $ret' trap "ret=129; $do_exit" 1 trap "ret=130; $do_exit" 2 trap "ret=141; $do_exit" 13 trap "ret=143; $do_exit" 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names problematic for `test' and other utilities. case $src in -* | [=\(\)!]) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writeable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; [-=\(\)!]*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test X"$d" = X && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: cvsd-1.0.24/cvsd-buildroot.in0000644000000000000000000003231111643134461012716 0ustar #! /bin/sh # cvsd-buildroot - build a usable root-filesystem for cvsd # Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2008, 2010 Arthur de Jong # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # this script creates and updates # /bin # cvs # /lib # all libraries required by files in bin (auto) # /dev # null,zero # /etc # passwd # /tmp # (cleans up old files) # fail on any problems set -e # report unset variables set -u # use hardcoded path to avoid trojans PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin export PATH # which binaries to install (use spaces as separator) BINARIES="@CVS@" # where the cvsd configfile is located CONFIGFILE="@CONFIGFILE@" # path to use when looking for extra libraries LIBPATH="/lib /usr/lib /usr/local/lib /usr/X11R6/lib /usr/lib/libc5-compat /lib/libc5-compat /usr/libexec" # add paths from /etc/ld.so.conf to LIBPATH LIBPATH="$LIBPATH `find /etc/ld.so.conf* -type f | xargs cat | grep '^/'`" # which libraries to install (aside from the libraries needed by # the specified libraries) # for generic Linux: EXTRALIBS="libnsl.so libnss_compat.so /lib/ld-linux.so.2" # for some 64 bit Linux systems: EXTRALIBS="$EXTRALIBS /lib64/ld-linux-x86-64.so.2 /lib64/tls/libnss_compat.so.2 /lib64/libnss_compat.so.2 /lib64/tls/libnss_files.so.2 /lib64/libnss_files.so.2" # for multiarch systems EXTRALIBS="$EXTRALIBS /lib/*/libnss_compat.so.2 /lib/*/libnss_files.so.2" # for FreeBSD: EXTRALIBS="$EXTRALIBS ld-elf.so" # for Redhat 7.2: EXTRALIBS="$EXTRALIBS libnss_compat.so.2 libnss_files.so.2" # for OpenBSD: EXTRALIBS="$EXTRALIBS /usr/libexec/ld.so" # for NetBSD EXTRALIBS="$EXTRALIBS /usr/libexec/ld.elf_so /libexec/ld.elf_so" # for Solaris: EXTRALIBS="$EXTRALIBS /usr/lib/ld.so.1 nss_files.so.1" # users to take from system passwd and put in ROOT/etc/passwd # (if they exist) USERS="root nobody cvsd cvs" # find the flavor of the echo command (stolen from configure) case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in *c*,-n*) ECHO_N= ECHO_C=' ' ;; *c*,* ) ECHO_N=-n ECHO_C= ;; *) ECHO_N= ECHO_C='\c' ;; esac # check command line parameter if [ $# -ne 1 ] || echo "$1" | grep -v '^/' > /dev/null 2>&1 then echo "Usage: $0 DIRECTORY" echo "Create and populate a directory for use as a chroot jail for running cvsd in." echo "The directory should be specified as an absolute path." echo "" echo "Report bugs to <@PACKAGE_BUGREPORT@>." exit 1 fi # where to make root filesystem ROOT=$1 # check user id if ( id -u > /dev/null 2>&1 && [ "`id -u`" != "0" ] ) || \ ( /usr/xpg4/bin/id -u > /dev/null 2>&1 && [ "`/usr/xpg4/bin/id -u`" != "0" ] ) then echo "WARNING: you should probably run this as a ROOT user" >&2 fi # set a reasonable umask for these sort of things umask 022 # create dirs with right permissions echo $ECHO_N "creating directory structure under $ROOT... $ECHO_C" mkdir -p "$ROOT/bin" "$ROOT/lib" "$ROOT/dev" "$ROOT/etc" "$ROOT/usr" "$ROOT/tmp" chmod 755 "$ROOT" "$ROOT/bin" "$ROOT/lib" "$ROOT/dev" "$ROOT/etc" "$ROOT/usr" chmod 1777 "$ROOT/tmp" # create $ROOT/usr/lib for some systems with fixed linker paths ls "$ROOT/usr/lib" > /dev/null 2>&1 || \ ( cd "$ROOT/usr" ; ln -s ../lib ./lib ) # also for bin ls "$ROOT/usr/bin" > /dev/null 2>&1 || \ ( cd "$ROOT/usr" ; ln -s ../bin ./bin ) # also create $ROOT/usr/libexec on systems that have such a thing if ls /usr/libexec > /dev/null 2>&1 then ls "$ROOT/usr/libexec" > /dev/null 2>&1 || \ ( cd "$ROOT/usr" ; ln -s ../lib ./libexec ) fi # also create $ROOT/libexec on systems that have such a thing if ls /libexec > /dev/null 2>&1 then ls "$ROOT/libexec" > /dev/null 2>&1 || \ ( cd "$ROOT/" ; ln -s lib ./libexec ) fi # remove old $ROOT/usr/lib64 and $ROOT/lib64 symlinks [ -h "$ROOT/usr/lib64" ] && rm -f "$ROOT/usr/lib64" [ -h "$ROOT/lib64" ] && rm -f "$ROOT/lib64" # also create $ROOT/usr/lib64 on systems that have such a thing if ls /usr/lib64 > /dev/null 2>&1 then ls "$ROOT/usr/lib64" > /dev/null 2>&1 || \ ( cd "$ROOT/usr" ; ln -s ../lib64 ./lib64 ; mkdir -p "$ROOT/lib64" ; chmod 755 "$ROOT/lib64" ) fi # also create $ROOT/lib64 on systems that have such a thing if ls /lib64 > /dev/null 2>&1 then ls "$ROOT/lib64" > /dev/null 2>&1 || \ ( mkdir -p "$ROOT/lib64" ; chmod 755 "$ROOT/lib64" ) fi # remove $ROOT/lib/tls if it's no longer outside the chroot if ls "$ROOT/lib/tls" >/dev/null 2>&1 then ls /lib/tls >/dev/null 2>&1 || ls /usr/lib/tls >/dev/null 2>&1 || \ ls "$ROOT/lib/tls.movedbycvsd" >/dev/null 2>&1 || \ ( mv "$ROOT/lib/tls" "$ROOT/lib/tls.movedbycvsd" && \ chmod -R go-rwx "$ROOT/lib/tls.movedbycvsd" ) fi # remove $ROOT/lib64/tls if it's no longer outside the chroot if ls "$ROOT/lib64/tls" >/dev/null 2>&1 then ls /lib64/tls >/dev/null 2>&1 || ls /usr/lib64/tls >/dev/null 2>&1 || \ ls "$ROOT/lib64/tls.movedbycvsd" >/dev/null 2>&1 || \ ( mv "$ROOT/lib64/tls" "$ROOT/lib64/tls.movedbycvsd" && \ chmod -R go-rwx "$ROOT/lib64/tls.movedbycvsd" ) fi echo "done." # populate /bin echo $ECHO_N "installing binaries...$ECHO_C" for i in $BINARIES do cp "$i" "$ROOT/bin" chmod 755 "$ROOT/bin/`basename $i`" echo $ECHO_N " `basename $i`$ECHO_C" done echo "." # report files in bin that don't belong there for i in $ROOT/bin/* do found=0 for j in $BINARIES do if [ `basename $i` = `basename $j` ] then found=1 fi done if [ $found -eq 0 ] then echo "WARNING: extra (unknown) file found: $i" >&2 fi done # gather all to-be-installed libraries here LIBRARIES="" # find specified libraries that don't show up with ldd echo $ECHO_N "looking for non-linked system libraries... $ECHO_C" for i in $EXTRALIBS do found=`( ( ls "$i".* "$i"* || true for j in $LIBPATH do ls "$j/$i".* "$j/$i"* || true done ) | head -1 ) 2> /dev/null` if [ -n "$found" ] then LIBRARIES="$LIBRARIES $found" fi done echo "done." # expression to parse output of ldd sedexp='s|^.* =>[^/]*\(/[^ ]*\).*$|\1|p;s|^[^A-Za-z0-9./][^A-Za-z0-9./]*\(/[^ ]*\).*$|\1|p' # figure out libraries for extra to be installed libraries LIBARIES="$LIBRARIES `ldd $LIBRARIES 2> /dev/null | sed -n "$sedexp"`" # figure out libraries used by stuff in bin directory LIBARIES="$LIBRARIES `ldd $ROOT/bin/* 2> /dev/null | sed -n "$sedexp"`" # filter out double entries LIBRARIES="`( for i in $LIBRARIES ; do echo $i ; done ) | sort -u`" # install needed libraries echo $ECHO_N "installing libraries... $ECHO_C" for i in $LIBARIES do # create (sub)directory if it doesn't yet exist d=`dirname "$i"` [ -d "$ROOT$d" ] || ( mkdir -p "$ROOT$d" ; chmod 755 "$ROOT$d" ) # copy the library cp "$i" "$ROOT$i" chmod 755 "$ROOT$i" # just log it done echo "done." # checking for unknown libraries # TODO: make these tests better for i in `find $ROOT/lib* -type f` do found=0 for j in $LIBARIES do if [ `basename $i` = `basename $j` ] then found=1 fi done if [ $found -eq 0 ] then echo "WARNING: extra (unknown) file found: $i" >&2 fi done # populate /dev (need root privileges for this) echo $ECHO_N "creating $ROOT/dev devices... $ECHO_C" DEVICES="null zero" MISSINGDEVS="" for d in $DEVICES do if [ -r "$ROOT/dev/$d" ] then : else MISSINGDEVS="$MISSINGDEVS $d" fi done if [ -n "`echo $MISSINGDEVS`" ] then if (cd /dev ; tar chpf - $MISSINGDEVS) | \ ( cd "$ROOT/dev" ; tar xpf - > /dev/null 2>&1 ) then # check if we can use the devices if ( echo TEST > "$ROOT/dev/null" && \ echo TEST > "$ROOT/dev/zero" ) 2> /dev/null then echo "done." else echo "FAILED (unable to use devices)" fi else echo "FAILED." fi else echo "already there." fi # update /etc/passwd echo $ECHO_N "adding users to $ROOT/etc/passwd...$ECHO_C" for i in $USERS do # find user from /etc/passwd or getent PWL="`getent passwd $i 2>/dev/null || grep '^'$i: /etc/passwd || true`" 2> /dev/null if [ "x$PWL" != "x" ] then if grep "^$i:" "$ROOT/etc/passwd" > /dev/null 2>&1 then : else # take uname:x:uid:gid:fullname:/:shell from /etc/passwd echo "$PWL" | \ sed -n \ 's|^'$i':[^:]*:\([^:]*\):\([^:]*\):\([^:]*\):[^:]*:\([^:]*\)$|'$i':x:\1:\2:\3:/:\4|p' \ >> "$ROOT/etc/passwd" echo $ECHO_N " $i$ECHO_C" fi fi done echo "." # check users in $ROOT/etc/passwd save_IFS="$IFS"; IFS=":" cat "$ROOT/etc/passwd" | while read i pass uid gid fullname home shell do IFS="$save_IFS" # find user from /etc/passwd or getent PWL="`getent passwd $i 2>/dev/null || grep '^'$i: /etc/passwd || true`" 2> /dev/null if [ "x$PWL" != "x" ] then # check that uid and gid match echo "$PWL" | grep "^$i:[^:]*:$uid:$gid:" > /dev/null 2>&1 || \ echo "WARNING: user $i in $ROOT/etc/passwd does not match the one in system passwd" >&2 else echo "WARNING: user $i in $ROOT/etc/passwd does not exist in system passwd" >&2 fi [ -d "$ROOT/$home" ] || \ echo "WARNING: home directory of user $i in $ROOT/etc/passwd does not exist inside $ROOT" >&2 IFS=":" done IFS="$save_IFS" # check if all users in repositories are in $ROOT/etc/passwd for repos in `find "$ROOT" \( -name tmp -prune \) -o \( -name 'lock*' -prune \) -o \( -name 'CVSROOT' -print \) 2> /dev/null` do if [ -r "$repos/passwd" ] then sed -n 's/^[^:]*:[^:]*:\(.*\)$/\1/p;s/^\([^:]*\):[^:]*$/\1/p' < "$repos/passwd" \ | while read usr do if grep "^$usr:" "$ROOT/etc/passwd" > /dev/null 2>&1 then : else # find user from /etc/passwd or getent PWL="`getent passwd $usr 2>/dev/null || grep '^'$usr: /etc/passwd || true`" 2> /dev/null if [ "x$PWL" != "x" ] then echo "adding user $usr (referenced in $repos/passwd) to $ROOT/etc/passwd" # take uname:x:uid:gid:fullname:/:shell from /etc/passwd echo "$PWL" | \ sed -n \ 's|^'$usr':[^:]*:\([^:]*\):\([^:]*\):\([^:]*\):[^:]*:\([^:]*\)$|'$usr':x:\1:\2:\3:/:\4|p' \ >> "$ROOT/etc/passwd" else echo "WARNING: system user $usr is referenced in $repos/passwd but not in $ROOT/etc/passwd or system passwd" >&2 fi fi done else echo "WARNING: no passwd file in $repos" >&2 fi done # check if every user in a repository passwd file is mapped to cvsd if [ -r "$CONFIGFILE" ] then uid=`sed -n 's/^ *Uid *\([^ ]*\) *$/\1/p' < "$CONFIGFILE"` if [ "x$uid" != "x" ] && [ "x$uid" != "xroot" ] && [ "x$uid" != "x0" ] then for repos in `find "$ROOT" -name 'CVSROOT' 2> /dev/null` do if [ -r "$repos/passwd" ] then if sed 's/^[^:]*:[^:]*:'$uid'//' < "$repos/passwd" | \ grep '^[^#].*$' > /dev/null 2> /dev/null then echo "WARNING: not all users in $repos/passwd are mapped to system user $uid" >&2 fi fi done fi fi # for systems with strange password files (OpenBSD/NetBSD/FreeBSD) if [ -r /etc/master.passwd ] && [ -r /etc/pwd.db ] && [ -x /usr/sbin/pwd_mkdb ] then echo $ECHO_N "making $ROOT/etc/pwd.db...$ECHO_C" # convert /etc/passwd to /etc/master.passwd sed 's|\([^:]*\):\([^:]*\):\([^:]*\):\([^:]*\):\([^:]*\):\([^:]*\):\([^:]*\)|\1:\2:\3:\4::0:0:\5:\6:\7|' \ < "$ROOT/etc/passwd" > "$ROOT/etc/master.passwd" # NetBSD expects -d to be the new root directory. /usr/sbin/pwd_mkdb -p -d "$ROOT/etc" "$ROOT/etc/master.passwd" 2>/dev/null || \ /usr/sbin/pwd_mkdb -p -d "$ROOT" "$ROOT/etc/master.passwd" 2>/dev/null echo "done." fi # TODO: maybe create some /etc/group for systems that requires it (even OpenBSD doesn't) # clean /tmp TMPREAPER="`which tmpreaper 2> /dev/null || true`" if [ -x "$TMPREAPER" ] then echo $ECHO_N "cleaning $ROOT/tmp... $ECHO_C" $TMPREAPER 7d $ROOT/tmp echo "done." fi # create directories mentioned in CVSROOT/config:LockDir=... for repos in `find "$ROOT" -name 'CVSROOT' 2> /dev/null` do if [ -r "$repos/config" ] then sed -n 's/^ *LockDir *= *\([^ ]*\) *$/\1/p' < "$repos/config" \ | while read lockdir do if [ -d "$ROOT/$lockdir" ] then : else echo $ECHO_N "creating $ROOT/$lockdir for lockfiles" $ECHO_C mkdir -p "$ROOT/$lockdir" chmod 1777 "$ROOT/$lockdir" echo "done." fi done fi done # change owner (need root privileges for this) echo $ECHO_N "fixing ownership... $ECHO_C" dirs="$ROOT/bin $ROOT/lib $ROOT/dev $ROOT/etc $ROOT/usr" [ -d "$ROOT/lib64" ] && dirs="$dirs $ROOT/lib64" if chown 0:0 "$ROOT" "$ROOT/tmp" > /dev/null 2>&1 && \ chown -R 0:0 $dirs > /dev/null 2>&1 then echo "done." else echo "FAILED." fi echo "chrooted system created in $ROOT" echo "if your cvs binary changes (new version) you should rerun cvsd-buildroot" exit 0 cvsd-1.0.24/Makefile.am0000644000000000000000000000760511617566336011505 0ustar # Makefile.am - use automake to generate Makefile.in # Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, # 2010, 2011 Arthur de Jong # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA sbin_PROGRAMS=cvsd sbin_SCRIPTS=cvsd-buildroot cvsd-passwd cvsd-buginfo cvsd_SOURCES=cvsd.c aclocal.m4 \ xmalloc.c xmalloc.h \ cfgfile.c cfgfile.h \ log.c log.h \ cfg.c cfg.h cvsd_LDADD=@LIBOBJS@ CONFIGFILE=@CONFIGFILE@ EXTRA_DIST=cvsd.conf-dist \ getopt_long.c getopt_long.h \ reslimit.c reslimit.h \ daemon.c daemon.h \ getinfos.c getinfos.h \ debian/control debian/changelog debian/rules debian/docs \ debian/postinst debian/postrm debian/copyright \ debian/config debian/templates debian/cvsd.init \ debian/cvsd.bug-script debian/lintian-overrides \ debian/compat debian/source/format \ debian/po/POTFILES.in \ debian/po/templates.pot \ $(wildcard debian/po/*.po) \ $(wildcard ChangeLog-????) \ cvsd.spec \ FAQ # if you write a self-test script named 'chk', uncomment the # following and add 'chk' to the EXTRA_DIST list #TESTS=chk # install the man pages man_MANS=cvsd.8 cvsd-buildroot.8 cvsd.conf.5 cvsd-passwd.8 \ cvsd-buginfo.8 # install configuration files install-data-local: install-configfile install-initscript uninstall-local: uninstall-configfile uninstall-initscript install-configfile: if [ ! -d $(DESTDIR)$(sysconfdir)/cvsd ]; then \ $(mkinstalldirs) $(DESTDIR)$(sysconfdir)/cvsd;\ fi if [ ! -f $(DESTDIR)$(CONFIGFILE) ]; then \ $(INSTALL_DATA) $(srcdir)/cvsd.conf-dist $(DESTDIR)$(CONFIGFILE); \ else \ echo "$(DESTDIR)$(CONFIGFILE) already exists, install will not overwrite"; \ fi uninstall-configfile: -rm -f $(DESTDIR)$(CONFIGFILE) -rmdir $(DESTDIR)$(sysconfdir)/cvsd install-initscript: if [ ! -d $(DESTDIR)$(sysconfdir)/init.d ]; then \ $(mkinstalldirs) $(DESTDIR)$(sysconfdir)/init.d; \ fi if [ -f $(DESTDIR)$(sysconfdir)/init.d/cvsd ]; then \ echo "$(DESTDIR)$(sysconfdir)/init.d/cvsd already exists, overwriting"; \ fi $(INSTALL_SCRIPT) cvsd.init $(DESTDIR)$(sysconfdir)/init.d/cvsd uninstall-initscript: -rm -f $(DESTDIR)$(sysconfdir)/init.d/cvsd -rmdir $(DESTDIR)$(sysconfdir)/init.d # targets for debian package deb: distdir cd $(distdir) && \ debuild rm -rf $(distdir) # targets for redhat rpm rpm: dist rpmbuild -ta --clean cvsd-$(VERSION).tar.gz signedrpm: rpmbuild -ta --clean --sign cvsd-$(VERSION).tar.gz # clean extra files DISTCLEANFILES = *-stamp \ cvsd_$(VERSION).tar.gz \ cvsd_$(VERSION).dsc cvsd_$(VERSION)_*.changes \ cvsd_$(VERSION)_*.deb cvsd_$(VERSION)_*.build \ cvsd-$(VERSION).tar.gz changelog: cvs2cl --window 3600 --accum --prune faq: ( echo '' ; \ echo 'Frequently Asked Questions for cvsd' ; \ echo '===================================' ; \ echo '' ; \ echo 'the latest version of this FAQ can be found at' ; \ echo 'http://arthurdejong.org/cvsd/faq.html' ; \ lynx -dump -nolist http://arthurdejong.org/cvsd/faq.html | \ tail -n +11 | head -n -5 | \ sed 's/^ //' ) > FAQ cvsd-1.0.24/ChangeLog-20060000644000000000000000000000521511024503140011553 0ustar 2006-12-18 arthur * cvsd.8.in: fix typo * cvsd.spec.in: simple fix to be able to use spec file on SuSE 9.3 2006-09-29 arthur * debian/control: include link to homepage in package description 2006-08-20 arthur * NEWS, configure.ac, debian/changelog, ChangeLog: release 1.0.13 * config.guess, config.sub: include updated files * cvsd.init.in, debian/cvsd.init: add LSB headers to init script * cvsd.c: log warning messages when closing files and sockets fail and also do checking to see that writing pid file was successful * Makefile.am, debian/po/pt.po: add Portuguese (pt) translation of debconf templates by Ricardo Silva 2006-06-11 arthur * cvsd-buginfo.in: also include some part of system passwd file * cvsd-buginfo.in: add uname output and list more chroot directories * cvsd-buildroot.in: also find libnss libraries in lib64 directories 2006-06-01 arthur * NEWS, TODO, configure.ac, debian/changelog, ChangeLog: release 1.0.12 * Makefile.am: also get rid of build file with distclean 2006-05-26 arthur * cvsd-buildroot.in: do not fail on missing tmpreaper * cvsd-buildroot.in: ignore errors from ldd * cvsd-buildroot.in: add extra || true in shell script on commands that could return non-zero * cvsd-buildroot.in: match more lock directories * cvsd-buildroot.in: also prune lock directories when looking for repositories 2006-05-24 arthur * NEWS, configure.ac, debian/changelog, ChangeLog: release 1.0.11 2006-05-23 arthur * cfg.c: fix const related warning * cvsd-buildroot.in: portability fixes for solaris /bin/sh 2006-05-21 arthur * Makefile.am, configure.ac, cvsd-buildroot.8.in, cvsd-passwd.8.in, cvsd.8.in, cvsd.c, cvsd.conf.5.in, daemon.c, daemon.h, getinfos.c, getopt_long.c, getopt_long.h, log.c, log.h, reslimit.c, xmalloc.c: fix copyright notices * .cvsignore: ignore debuild log files * debian/control: upgrade to standards-version 3.7.2 (no changes needed) * FAQ: update FAQ from homepage * config.guess, config.sub: include updated files * README: add note about tcp wrapper performance * cvsd-buildroot.in: add set -e and -u to report script failure and install files in their proper library directories instead of putting everything under /lib * cfg.c, cfg.h, cvsd.c: add const to some function arguments * Makefile.am: use debuild for building package instead of dpkg-buildpackage 2006-02-01 arthur * debian/rules: add debconf-updatepo to the clean target of our rules file as recommended somwhere 2006-01-18 arthur * cvsd-buildroot.in: only create missing devices * configure.ac: check for more functions at configure time (thanks autoscan) cvsd-1.0.24/cfgfile.c0000644000000000000000000003330510354775603011204 0ustar /* cfgfile.c - handle configuration files Copyright (C) 2002, 2003, 2004 Arthur de Jong. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #include "config.h" #include #include #include #include #include #include #include #include "cfgfile.h" #include "xmalloc.h" #ifdef HAVE_SETRLIMIT #include "reslimit.h" #endif /* HAVE_SETRLIMIT */ #include "cfg.h" #include "log.h" /* maximum linelength in the configuration file */ #define MAX_LINE_LENGTH 1024 /* the maximum number of options on a line */ #define MAX_LINE_OPTIONS 10 /* find out the uid this string describes returns 1 on success, 0 on failure */ static int get_uid(const char *str,uid_t *val) { struct passwd *pwent; char *tmp; /* check if it is a valid numerical uid */ *val=(uid_t)strtol(str,&tmp,0); if ((*str!='\0')&&(*tmp=='\0')) return 1; /* find by name */ pwent=getpwnam(str); if (pwent!=NULL) { *val=pwent->pw_uid; return 1; } return 0; } /* find the group id this string represents returns 1 on success, 0 on failure */ static int get_gid(const char *str,gid_t *val) { struct group *grent; char *tmp; /* check if it is a valid numerical uid */ *val=(gid_t)strtol(str,&tmp,0); if ((*str!='\0')&&(*tmp=='\0')) return 1; /* find by name */ grent=getgrnam(str); if (grent!=NULL) { *val=grent->gr_gid; return 1; } return 0; } /* split a line from the configuration file note that this code is not thread safe! the line value will be rewritten! */ static char **parse_configline(char *line,int *nopt) { static char *retv[MAX_LINE_OPTIONS]; int opt; for (opt=0;opt3)) { log_log(LOG_ERR,"%s:%d: Log: wrong number of arguments",filename,lnr); exit(1); } /* get the loglevel */ level=LOG_INFO; if (nopts==3) { if ((level=log_getloglevel(opts[2]))<0) { log_log(LOG_ERR,"%s:%d: Log: wrong loglevel '%s'",filename,lnr,opts[2]); exit(1); } } /* find the method */ if ( strcmp(opts[1],"none")==0 ) log_addlogging_none(); else if ( strcmp(opts[1],"syslog")==0 ) log_addlogging_syslog(level); else if ( opts[1][0]=='/' ) log_addlogging_file(opts[1],level); else { log_log(LOG_ERR,"%s:%d: Log: wrong argument '%s'",filename,lnr,opts[1]); exit(1); } } /* read the configuration file and save settings in struct */ void read_configfile(const char *filename,struct cvsd_cfg *cfg) { FILE *fp; int lnr=0; char line[MAX_LINE_LENGTH]; char *tmp; char **opts; int nopts; int i; int numrepos=0; #ifdef HAVE_SETRLIMIT rlim_t resval; #endif /* HAVE_SETRLIMIT */ /* open configuration file */ if ((fp=fopen(filename,"r"))==NULL) { log_log(LOG_ERR,"cannot open config file (%s): %s",filename,strerror(errno)); exit(1); } log_log(LOG_DEBUG,"debug: reading config file (%s)",filename); /* read all lines in the file */ while (fgets(line,MAX_LINE_LENGTH,fp)!=NULL) { lnr++; /* strip newline */ i=(int)strlen(line); if ((i<=0)||(line[i-1]!='\n')) { log_log(LOG_ERR,"%s:%d: line too long or last line missing newline",filename,lnr); exit(1); } line[i-1]='\0'; /* split the line in tokens */ opts=parse_configline(line,&nopts); /* find identifier */ if (nopts==0) {} /* ignore empty lines */ else if (strcmp(opts[0],"RootJail")==0) { if (nopts!=2) { log_log(LOG_ERR,"%s:%d: RootJail: wrong number of arguments",filename,lnr); exit(1); } /* only accept absolute paths. abort otherwise.*/ if ((*opts[1]!='/')&&(strcmp(opts[1],"none")!=0)) { log_log(LOG_ERR,"%s:%d: RootJail: '%s' must be an absolute path or 'none'",filename,lnr,opts[1]); exit(1); } /* save value */ if (cfg->rootjail!=NULL) { log_log(LOG_ERR,"%s:%d: RootJail: can only be specified once",filename,lnr); } else { cfg->rootjail=xstrdup(opts[1]); } } else if (strcmp(opts[0],"Nice")==0) { if (nopts!=2) { log_log(LOG_ERR,"%s:%d: Nice: wrong number of arguments",filename,lnr); exit(1); } /* check if it is a valid numerical uid */ cfg->nice=(int)strtol(opts[1],&tmp,0); if (*tmp!='\0') { log_log(LOG_ERR,"%s:%d: Nice: wrong argument '%s'",filename,lnr,opts[1]); exit(1); } } else if (strcmp(opts[0],"Uid")==0) { if (nopts!=2) { log_log(LOG_ERR,"%s:%d: Uid: wrong number of arguments",filename,lnr); exit(1); } if (!get_uid(opts[1],&cfg->uid)) { log_log(LOG_ERR,"%s:%d: Uid: wrong argument '%s'",filename,lnr,opts[1]); exit(1); } } else if (strcmp(opts[0],"Gid")==0) { if (nopts!=2) { log_log(LOG_ERR,"%s:%d: Gid: wrong number of arguments",filename,lnr); exit(1); } if (!get_gid(opts[1],&cfg->gid)) { log_log(LOG_ERR,"%s:%d: Gid: wrong argument '%s'",filename,lnr,opts[1]); exit(1); } } else if (strcmp(opts[0],"Listen")==0) { if (nopts==2) { /* accept [node]:service and [node].service */ if (tmp=strrchr(opts[1],']'),(tmp!=NULL)&&(opts[1][0]=='[')&&((tmp[1]=='.')||(tmp[1]==':'))) { *tmp='\0'; cfg_addaddress(cfg,filename,lnr,opts[1]+1,tmp+2); } /* accept nodewithoutcolons:service */ else if ((tmp=strchr(opts[1],':'),(tmp!=NULL)&&(tmp==strrchr(opts[1],':')))) { *tmp='\0'; cfg_addaddress(cfg,filename,lnr,opts[1],tmp+1); } /* accept nodewithoutdots.service */ else if ((tmp=strchr(opts[1],'.'),(tmp!=NULL)&&(tmp==strrchr(opts[1],'.')))) { *tmp='\0'; cfg_addaddress(cfg,filename,lnr,opts[1],tmp+1); } else { log_log(LOG_ERR,"%s:%d: Listen: wrong argument '%s'",filename,lnr,opts[1]); exit(1); } } else if (nopts==3) { cfg_addaddress(cfg,filename,lnr,opts[1],opts[2]); } else { log_log(LOG_ERR,"%s:%d: Listen: wrong number of arguments",filename,lnr); exit(1); } } else if (strcmp(opts[0],"MaxConnections")==0) { if (nopts!=2) { log_log(LOG_ERR,"%s:%d: MaxConnections: wrong number of arguments",filename,lnr); exit(1); } cfg->maxconnections=(int)strtol(opts[1],&tmp,0); if (*tmp!='\0') { log_log(LOG_ERR,"%s:%d: MaxConnections: wrong argument '%s'",filename,lnr,opts[1]); exit(1); } } else if (strcmp(opts[0],"Repos")==0) { if (nopts!=2) { log_log(LOG_ERR,"%s:%d: Repos: wrong number of arguments",filename,lnr); exit(1); } /* only accept absolute paths. abort otherwise.*/ if (*opts[1]!='/') { log_log(LOG_ERR,"%s:%d: Repos: '%s' must be an absolute path",filename,lnr,opts[1]); exit(1); } /* add --allow-root=path to cvs parameters */ tmp=(char *)xmalloc((13+strlen(opts[1])+1)*sizeof(char)); strcpy(tmp,"--allow-root="); strcat(tmp,opts[1]); cfg_addcvsarg(cfg,tmp); numrepos++; } else if (strcmp(opts[0],"PidFile")==0) { if (nopts!=2) { log_log(LOG_ERR,"%s:%d: PidFile: wrong number of arguments",filename,lnr); exit(1); } /* only accept absolute paths. abort otherwise.*/ if (*opts[1]!='/') { log_log(LOG_ERR,"%s:%d: PidFile: '%s' must be an absolute path",filename,lnr,opts[1]); exit(1); } if (cfg->pidfile!=NULL) { log_log(LOG_ERR,"%s:%d: PidFile: can only be specified once",filename,lnr); exit(1); } else { cfg->pidfile=xstrdup(opts[1]); } } else if (strcmp(opts[0],"CvsCommand")==0) { if (nopts!=2) { log_log(LOG_ERR,"%s:%d: CvsCommand: wrong number of arguments",filename,lnr); exit(1); } /* only accept absolute paths, abort otherwise */ if (*opts[1]!='/') { log_log(LOG_ERR,"%s:%d: CvsCommand: '%s' must be an absolute path",filename,lnr,opts[1]); exit(1); } /* save value */ if (cfg->cvscmd!=NULL) { log_log(LOG_ERR,"%s:%d: CvsCommand: can only be specified once",filename,lnr); exit(1); } else { cfg->cvscmd=xstrdup(opts[1]); } } else if (strcmp(opts[0],"CvsArgs")==0) { if (nopts<2) { log_log(LOG_ERR,"%s:%d: CvsArgs: wrong number of arguments",filename,lnr); exit(1); } for (i=1;icapabilities!=NULL) { log_log(LOG_ERR,"%s:%d: Capabilities: can only be specified once",filename,lnr); } else if ((cfg->capabilities=cap_from_text(opts[1]))==NULL) { log_log(LOG_ERR,"%s:%d: Capabilities: wrong value '%s': %s",filename,lnr,opts[1],strerror(errno)); exit(1); } } #endif /* USE_CAPABILITIES */ else if (strcmp(opts[0],"Umask")==0) { if (nopts!=2) { log_log(LOG_ERR,"%s:%d: Umask: wrong number of arguments",filename,lnr); exit(1); } /* check if it is a valid numerical uid */ cfg->umask=(mode_t)strtol(opts[1],&tmp,8); if ((*tmp!='\0')||(cfg->umask<0000)||(cfg->umask>0777)) { log_log(LOG_ERR,"%s:%d: Umask: wrong argument '%s'",filename,lnr,opts[1]); exit(1); } } else if (strcmp(opts[0],"Log")==0) parse_option_log(filename,lnr,opts,nopts); else { log_log(LOG_ERR,"%s:%d: unrecognized line",filename,lnr); exit(1); } } fclose(fp); if (numrepos==0) { log_log(LOG_ERR,"%s: contains no 'Repos' statements",filename); exit(1); } log_log(LOG_DEBUG,"debug: done reading config file"); } cvsd-1.0.24/reslimit.h0000644000000000000000000000256410257273706011444 0ustar /* reslimit.h - resource limit functions Copyright (C) 2002 Arthur de Jong. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef _RESLIMIT_H #define _RESLIMIT_H 1 #include #include #include /* the types resources can be */ #define RESTYPE_UNKNOWN -1 #define RESTYPE_SIZE 1 #define RESTYPE_TIME 2 #define RESTYPE_NUM 3 /* return the type of the resource defined by name */ int getresourcetype(const char *name); /* save the limit to the specified values note: limit will be set only when setreslimits() is called */ void savereslimit(const char *name,rlim_t soft,rlim_t hard); /* set all the resources defined */ void setreslimits(void); #endif /* not _RESLIMIT_H */ cvsd-1.0.24/COPYING0000644000000000000000000004310510257273750010471 0ustar GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. cvsd-1.0.24/log.c0000644000000000000000000001033710434125357010360 0ustar /* log.c - logging funtions Copyright (C) 2002, 2003 Arthur de Jong. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #include "config.h" #include #include #include #include #include #include #include #include "log.h" #include "xmalloc.h" /* storage for logging modes */ static struct cvsd_log { FILE *fp; /* NULL==syslog */ int loglevel; struct cvsd_log *next; } *cvsd_loglist=NULL; /* default loglevel when no logging is configured */ static int prelogging_loglevel=LOG_INFO; /* set loglevel when no logging is configured */ void log_setdefaultloglevel(int loglevel) { prelogging_loglevel=loglevel; } /* add logging method to configuration list */ static void log_addlogging_fp(FILE *fp,int loglevel) { struct cvsd_log *tmp,*lst; /* create new logstruct */ tmp=(struct cvsd_log *)xmalloc(sizeof(struct cvsd_log)); tmp->fp=fp; tmp->loglevel=loglevel; tmp->next=NULL; /* save the struct in the list */ if (cvsd_loglist==NULL) cvsd_loglist=tmp; else { for (lst=cvsd_loglist;lst->next!=NULL;lst=lst->next); lst->next=tmp; } } /* configure logging to a file */ void log_addlogging_file(const char *filename,int loglevel) { FILE *fp; fp=fopen(filename,"a"); if (fp==NULL) { log_log(LOG_ERR,"cannot open logfile (%s) for appending: %s",filename,strerror(errno)); exit(1); } log_addlogging_fp(fp,loglevel); } /* configure logging to syslog */ void log_addlogging_syslog(int loglevel) { openlog(PACKAGE,LOG_PID,LOG_DAEMON); log_addlogging_fp(NULL,loglevel); } /* configure a null logging mode (no logging) */ void log_addlogging_none() { /* this is a hack, but it's so easy */ log_addlogging_fp(NULL,LOG_EMERG); } /* start the logging with the configured logging methods if no method is configured yet, logging is done to syslog */ void log_startlogging(void) { if (cvsd_loglist==NULL) log_addlogging_syslog(LOG_INFO); prelogging_loglevel=-1; } /* log the given message using the configured logging method */ void log_log(int pri,const char *format, ...) { int res; struct cvsd_log *lst; /* TODO: make this something better */ #define maxbufferlen 120 char buffer[maxbufferlen]; va_list ap; /* make the message */ va_start(ap,format); res=vsnprintf(buffer,maxbufferlen,format,ap); if ((res<0)||(res>=maxbufferlen)) { /* truncate with "..." */ buffer[maxbufferlen-2]='.'; buffer[maxbufferlen-3]='.'; buffer[maxbufferlen-4]='.'; } buffer[maxbufferlen-1]='\0'; va_end(ap); /* do the logging */ if (prelogging_loglevel>=0) { /* if logging is not yet defined, log to stderr */ if (pri<=prelogging_loglevel) fprintf(stderr,"%s: %s\n",PACKAGE,buffer); } else { for (lst=cvsd_loglist;lst!=NULL;lst=lst->next) { if (pri<=lst->loglevel) { if (lst->fp==NULL) /* syslog */ syslog(pri,"%s",buffer); else /* file */ { fprintf(lst->fp,"%s: %s\n",PACKAGE,buffer); fflush(lst->fp); } } } } } /* return the syslog loglevel represented by the string return -1 on unknown */ int log_getloglevel(const char *lvl) { if ( strcmp(lvl,"crit")==0 ) return LOG_CRIT; else if ( (strcmp(lvl,"error")==0) || (strcmp(lvl,"err")==0) ) return LOG_ERR; else if ( strcmp(lvl,"warning")==0 ) return LOG_WARNING; else if ( strcmp(lvl,"notice")==0 ) return LOG_NOTICE; else if ( strcmp(lvl,"info")==0 ) return LOG_INFO; else if ( strcmp(lvl,"debug")==0 ) return LOG_DEBUG; else return -1; /* unknown */ } cvsd-1.0.24/getinfos.h0000644000000000000000000000506510257273705011430 0ustar /* getinfos.h - definition of getaddrinfo(), getnameinfo() and related functions for systems that lack it note that these functions are implemented only for use in cvsd and are probably incomplete for other purposes Copyright (C) 2002 Arthur de Jong This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef _GETINFOS_H #define _GETINFOS_H 1 #include #include #include /* errors for both getaddrinfo() and getnameinfo() */ #define EAI_OK 0 #define EAI_SYSTEM -11 #define EAI_WRONGNODE 2 #define EAI_WRONSERVC 3 #define EAI_WRONGSOCK 4 #define EAI_HERR 5 /* macros for the ai_flags field */ #define AI_PASSIVE 0x0001 /* macros for the getnameinf() flags parameter */ #define NI_NUMERICHOST 0x0001 #define NI_NUMERICSERV 0x0002 /* macros for systems that don't have them */ #ifndef AF_INET6 #define AF_INET6 -1 #endif /* not AF_INET6 */ /* the structure used by getaddrinfo() for passing address information */ struct addrinfo { int ai_flags; int ai_family; int ai_socktype; int ai_protocol; size_t ai_addrlen; struct sockaddr *ai_addr; char *ai_canonname; /* used nowhere */ struct addrinfo *ai_next; }; /* very poor implementation, see getaddrinfo.c for details */ int getaddrinfo(const char *node,const char *service, const struct addrinfo *hints, struct addrinfo **res); /* poor implementation of getnameinfo() doing no name lookups */ int getnameinfo(const struct sockaddr *sa,socklen_t salen, char *host,size_t hostlen, char *serv,size_t servlen,int flags); /* free address information allocated by getaddrinfo */ void freeaddrinfo(struct addrinfo *res); /* translate an error codes returned by getaddrinfo() and getnameinfo() to printable error strings */ const char *gai_strerror(int errcode); #endif /* not _GETINFOS_H */