debian/0000755000000000000000000000000011733651604007174 5ustar debian/README.Debian0000644000000000000000000000664111733651405011243 0ustar solid-pop3d for Debian ====================== Note that the upstream package calls the executable and the PAM service "spop3d". In the Debian package, they have been both renamed to "solid-pop3d" for consistency with the package name. The config file is still /etc/spop3d.conf because that's harder to change... New configuration options ------------------------- Thanks to Adam D. Barratt , this Debian package contains some improvements in comparison to the upstream version. One of them are new configuration options, namely AuthMappedUser and UserMapPrefix. Though they are documented in the spop3d.conf(5) man page, I decided to put here their longer descriptions, as written by Adam in his bug reports (bugs #228085 and #228059). * AuthMappedUser -------------- Briefly, this feature allows the administrator to control whether the username supplied by the user, or that looked up in the user mapping file (the default) is used for authentication. e.g. given a mapping file such as: user1:userX user2:userX user3:userY the default is still the same as without the patch; that is, if a user logs in as `user1', then the mapped username `userX' is used for authentication. If `AuthMappedUser no' is set, then when a user logs in as `user1', that is the username that is used for authentication. * UserMapPrefix ------------- This allows a prefix (of up to 16 characters) to be specified, which is added to the username before it is looked up in the user mapping file. For example, given a mapping file such as dom1-user1:foo dom2-user1:bar and a configuration file containing DoMapping true MailDropName /var/mail/domain1/%m UserMapPrefix dom1- UserMapFile /etc/mail/domains.map DoMapping true MailDropName /var/mail/domain2/%m UserMapPrefix dom2- UserMapFile /etc/mail/domains.map then when a user logs in as `user1@domain1', this will be converted to `dom1-user1', which will then be looked up in the mapping file. Similarly, a user logging in as `user1@domain2' will be converted to `dom2-user1' before mapping occurs. This allows a single mapping file to be used for multiple (or all) domains, without any danger of usernames overlapping. When used in conjunction with PAM and a pwdfile also allows a single pwdfile to be used across multiple domains, without incurring the problems that username overlap causes in this case (the password for user1@domain1 also authenticates user1@domain2, and vice versa). * %o format specifier ------------------- As a result of the above change, when `UserMapPrefix' is used, `%s' (containing the username used as the key for mapping) now contains the supplied prefix. Therefore, the patch also adds an additional format specifier `%o', which returns the username with the prefix removed. * UserMailDropDelimiter --------------------- This option specifies single character used to separate different maildrops for user. If set, users can access different maildrops, as defined in their ~/.spop3d file, putting the specified character between user's name and maildrop's name in their login name (e.g.user+private). See Bug#77711. -- Robert Luberda Sun, 6 Nov 2005 13:16:24 +0100 debian/changelog0000644000000000000000000003362011733651405011051 0ustar solid-pop3d (0.15-26) unstable; urgency=low * Apply patch from Simon Ruderich to handle CPPFLAGS hardening flags (closes: #665483). * Standards-Versions: 3.9.3 (no changes). -- Robert Luberda Sun, 25 Mar 2012 19:16:01 +0200 solid-pop3d (0.15-25) unstable; urgency=low * Danish translation of the debconf templates (closes: #650854). * Rename & refresh patches with gbp-pq import/export. * Switch to debhelper v9 and tiny rules file. * debian/control: + sort dependency fields with wrap-and-sort. + add VCS fields; + suggests: openbsd-inetd | inet-superserver; + drop build-dependency in hardening-includes, dpkg-buildflags enables hardening options now by default. + Standards-Version: 3.9.2 (no changes). -- Robert Luberda Sat, 11 Feb 2012 23:17:10 +0100 solid-pop3d (0.15-24) unstable; urgency=low * Switch to the `3.0 (quilt) source format: + remove build-time dependency on dpatch; + change patch files extension from .dpatch to .patch; + remove debian/README.source; + remove dpatch descriptions from patch headers; + remove 01_config.dpatch, use dh_autotools-dev_*config instead. * New patches: + 17_close_fds.patch: Close any open file descriptors and reopen the three standard ones to /dev/null. This should prevent the daemon from hanging when debconf is active (LP: #621107). + 18_init_fix.patch: Fix gcc warning appeared because of 08_init.patch; + 19_gcc_warnings.patch: Fix various warnings given by gcc. * debian/rules: + drop patch/unpatch target; + use dpkg-buildflags for getting CFLAGS/LDFLAGS. + call dh_auto_{configure,build,clean} commands; + provide build-{arch,indep} targets. * Enable hardening logic provided by the hardening-includes package; add the package to build-depends. * Split Choices field in debian/templates (lintian) and then unfuzzy translations. * Standards-Version: 3.9.1. * Build with debhelper v8. -- Robert Luberda Sat, 19 Feb 2011 13:49:29 +0100 solid-pop3d (0.15-23) unstable; urgency=low * Add Russian translation of debconf templates (closes: #549176). -- Robert Luberda Sun, 18 Oct 2009 15:52:17 +0200 solid-pop3d (0.15-22) unstable; urgency=low * Add Spanish translation of debconf templates (closes: #537080). * Add debian/README.source. * Standards-Version: 3.8.3. * Build with debhelper v7. -- Robert Luberda Mon, 31 Aug 2009 19:54:46 +0200 solid-pop3d (0.15-21) unstable; urgency=low * Don't call db_stop (closes: #473290). * Standards-Version: 3.8.0 (no changes). -- Robert Luberda Sun, 07 Sep 2008 10:27:21 +0200 solid-pop3d (0.15-20) unstable; urgency=low * 16_manpage_hyphens.dpatch: fix hyphens in man pages (lintian). * debian/copyright: Add copyright notice (lintian). -- Robert Luberda Sat, 19 Apr 2008 18:28:08 +0200 solid-pop3d (0.15-19) unstable; urgency=low * Initial Dutch po-debconf translation (closes: #450971). * Use some mirror site in debian/watch (closes: #449910), remove homepage URL from description. solid-pop3d has been dead upstream for a long time, so I wouldn't expect any new upstream releases. * debian/rules: + Don't ignore make clean error (lintian). + Set LDFLAGS to `-Wl,-z,defs -Wl,--as-needed'. + Add support for cross-linking. * Use debhelper v6. * Standards-Version: 3.7.3. -- Robert Luberda Sun, 27 Jan 2008 15:24:42 +0100 solid-pop3d (0.15-18) unstable; urgency=low * Update debian/{control,watch,copyright} for alternative location of the upstream source tarball as the primary site seems not to exist anymore (closes: #355546). * Standards-Version: 3.7.2 (no changes needed). -- Robert Luberda Fri, 5 Jan 2007 21:49:13 +0100 solid-pop3d (0.15-17) unstable; urgency=low * Initial Portuguese translation for debconf messages (closes: #381678). * debian/control: add dependency on update-inetd, used by the postinst script. * debian/init: add missing dash for the Short-Description field (lintian). -- Robert Luberda Thu, 4 Jan 2007 00:04:36 +0100 solid-pop3d (0.15-16.1) unstable; urgency=medium * Non-maintainer upload to fix release critical bug. * Do not fail purge if update-inet.d and deluser are not available (Closes: #388661). -- Thijs Kinkhorst Sun, 1 Oct 2006 16:02:26 +0200 solid-pop3d (0.15-16) unstable; urgency=low * Enable 12_mailbox_patch.dpatch, which adds support for multiple mailboxes per user (closes: #77711). Many thanks to Adam D. Barratt for the patch! * Slightly improve the 12_mailbox_patch.dpatch: + add UserMailDropDelimiter run-time option to allow the local admin to disable the multiple mailboxes (and this is the DEFAULT setting) or to change the delimiter character. + let pop_auth(1) know about multiple mailboxes. * New translations of debconf templates: + Vietnamese (closes: #318696) + Swedish (closes: #331593). * 15_gcc_warning.dpatch: Fix `implicit declaration of memcpy' warning. * Update README.Debian. * Made the init.d script LSB compliant. * Switch debhelper compatibility level to 5. * Depends on adduser (lintian). * Standards-Version: 3.6.2 (no changes). -- Robert Luberda Sun, 6 Nov 2005 16:13:03 +0100 solid-pop3d (0.15-15) unstable; urgency=low * 03_debian_base.dpatch: modified, fix typo in the spop3d.conf(5) man page (closes: #311573). -- Robert Luberda Sun, 5 Jun 2005 15:31:57 +0200 solid-pop3d (0.15-14) unstable; urgency=low * Initial Czech translation of solid-pop3d debconf messages (closes: #298746). Thanks to Miroslav Kure . -- Robert Luberda Sun, 13 Mar 2005 11:22:44 +0100 solid-pop3d (0.15-13) unstable; urgency=low * 14_gcc_4.0_amd64.dpatch: fix FTBFS on amd64 with gcc-4.0 (closes: #290462). -- Robert Luberda Sun, 27 Feb 2005 18:47:50 +0100 solid-pop3d (0.15-12) unstable; urgency=low * 13_max_sessions.dpatch: Raise MAX_SESSIONS to 256 (closes: #285495). * Added 12_multiple_mailbox.dpatch from Adam D. Barratt to support multiple mailboxes per user (see #77711), but NOT ENABLE it yet. I will enable it after sarge is released. * Add debian/watch file. -- Robert Luberda Wed, 29 Dec 2004 23:43:42 +0100 solid-pop3d (0.15-11) unstable; urgency=low * Add German debconf templates translation (closes: #280061). Thanks to Jens Nachtigall . -- Robert Luberda Sun, 7 Nov 2004 15:31:02 +0100 solid-pop3d (0.15-10) unstable; urgency=low * Add Japanese debconf templates translation (closes: #251101). Thanks to Hideki Yamane . * Add source lintian override file for `cvsignore-file-in-source'. -- Robert Luberda Thu, 3 Jun 2004 09:57:39 +0200 solid-pop3d (0.15-9) unstable; urgency=low * Add French debconf templates translation (closes: #232111). Thanks to Rémi Pannequin . * README.Debian: s/userA/userX/g to stop lintian complaining about spelling error. * Fix typos in bug numbers in the previous changelog entry and in README.Debian. -- Robert Luberda Thu, 4 Mar 2004 07:56:34 +0100 solid-pop3d (0.15-8) unstable; urgency=low * Use dpatch for the package building, split previous *.diff.gz into 6 logical patches in debian/patches: {02_configure, 3_debian_base, 04_liblockfile,05_unlock,06_autologout_username,07_allowuser}.dpatch * Applied several patches from Adam D. Barratt (Thanks, Adam!): + 08_init.dpatch: enable running solid-pop3d as standalone daemon (closes: #77934) + 09_authmappeduser.dpatch: add new AuthMappedUser configuration option (closes: #228058) + 10_usermapprefix.dpatch: add new UserMapPrefix configuration option (closes: #228059). * README.Debian: add documentation of the options above, taken from the Adam's bug reports. * Added debconf interface for asking user if he/she would like to run solid-pop3d from inetd or as a daemon (based on samba package). * Added /etc/defaults/solid-pop3d, created by postinst. * 01_config.dpatch: new file taken from dpatch package examples directory to update config.{guess,sub} files (closes: #227483) * 11_parseloop.dpatch (new): fix infinite loop on unknown `%' sequences while parsing the configuration file (backported from 0.16d). * debian/control: + change Recommends: exim to exim4, since that's the default MTA package for sarge (closes: #227686). + Build-Depends: add dpatch and autotools-dev. + add dependency on netbase for update-inetd (closes: #223474). -- Robert Luberda Mon, 2 Feb 2004 23:14:35 +0100 solid-pop3d (0.15-7) unstable; urgency=low * Add `AllowUser' option (backported from version 0.16d) which can be used to disable plain text password authorization (closes: #77710). * Print username in the `autologout' log lines (closes: #107927). * debian/control: fix Standards-Version (closes: #225911). * Many thanks to Adam D. Barratt for his patches. -- Robert Luberda Mon, 12 Jan 2004 20:24:55 +0100 solid-pop3d (0.15-6) unstable; urgency=low * Convert pam file to use new standard. * Add dependency on libpam-runtime (>= 0.76-13.1). * Add homepage link to package description. * Standards-Version: 3.6.1 (no changes). -- Robert Luberda Wed, 3 Sep 2003 21:52:12 +0200 solid-pop3d (0.15-5) unstable; urgency=medium * mailbox.c: call unlock_mailbox in mb_release(), which is a atexit registered function and therefore it will be called when server dies for some reason (closes: #184793). * main.c: don't die if we can't open or create user bulletins file; we just don't show any bulletin in that case (closes: #184790). * Standards-Version: 3.5.9 (no changes). -- Robert Luberda Mon, 14 Apr 2003 23:08:29 +0200 solid-pop3d (0.15-4) unstable; urgency=low * mailbox.c: + Use lockfile_create/lockfile_remove instead of maillock/mailunlock. Solid-pop3d can handle mailboxes located anywhere, so we have to lock the actual mailbox file, not /var/mail/$USER file (closes: #83376). + Two changes required by the Debian Policy (section 12.6): - lock mailbox with fcntl, not flock. - changed order of mailbox locking: first fcntl, than lockfile_create. + Revert patch included in previous releases of the package. I have not idea what it was for, but I'm sure it broke the CreateMailDrop option. * Add debian/fix_manpages.sh, which (as its name says) does various fixes on manpages: changes `spop3d' to `solid-pop3d' and corrects paths references. * Switch to the newest debhelper (v4). * Add support for DEB_BUILD_OPTIONS. * Standards-Version: 3.5.8. * Update debian/copyright. -- Robert Luberda Mon, 2 Dec 2002 00:11:31 +0100 solid-pop3d (0.15-3) unstable; urgency=low * Build server with almost all available options. This includes: --enable-{configfile,expire,userconfig,bulletins,last,mapping}, --enable-{nonip,logextend,statistics}. (Closes: #141752, #75913, closes: #76833, #79980, #150231). * Changed default mailbox location from /var/spool/mail to /var/mail (closes: #133408). * Move /var/state/solid-pop3d to /var/lib/solid-pop3d (closes: #133406). * debian/{postinst,postrm}: use getent to check for user spop3d existence. * Minor changes in the default configuration file. * Fixed grammar error in pop_auth(1) (closes: #89349). * Close bugs fixed in NMU: closes: #132207, #128893. * Remove emacs settings from the bottom of this changelog file. -- Robert Luberda Thu, 28 Nov 2002 20:11:32 +0100 solid-pop3d (0.15-2) unstable; urgency=low * New maintainer (closes: #157260). * Build-Depends on libpam-dev, so PAM support will be compiled in (closes: #138137). * Build-Depends on liblockfile-dev. * Install VIRTUALS documentation file (closes: #140459). -- Robert Luberda Wed, 27 Nov 2002 08:31:50 +0100 solid-pop3d (0.15-1.1) unstable; urgency=medium * Non Maintainer Upload * Applied patch by Will Newton to fix packaging bugs. (Closes: #132207) * Bumped standards version. * Added build-depends on debhelper. -- Thom May Sun, 3 Mar 2002 15:26:17 +0000 solid-pop3d (0.15-1) unstable; urgency=low * New upstream version (Closes: #71061) * Changed PAM service name to "solid-pop3d" (Closes: #66300, #67318) * I've added the --enable-createmail switch solid-pop3d has to be running as "mail" group to do this though- so the postinst script has been changed to add the "spop3d" user in "mail" group instead of "nogroup" Further, set "ChangeGID No" in the config file as well as "CreateMailDrop Yes", and make sure solid-pop3d is run as "root.mail" from inetd. (ick) (Closes: #62599) * Use maillock() function from liblockfile to do mail locks. It was previously doing fcntl/flock in blatant violation of Debian policy (shoot me, please) (Closes: #68437) -- Steve Haslam Thu, 21 Sep 2000 20:03:04 +0100 solid-pop3d (0.14-2) unstable; urgency=low * Added --enable-apop (Closes: #65178) -- Steve Haslam Mon, 5 Jun 2000 12:40:49 +0100 solid-pop3d (0.14-1) unstable; urgency=low * New upstream version. * Set --enable-createmail (Closes: #61778). Also added --enable-maildir, --enable-mailbox and --enable-ipv6 * debian/docs: removed TODO -- Steve Haslam Wed, 5 Apr 2000 13:19:33 +0100 solid-pop3d (0.11-1) unstable; urgency=low * Initial Release. -- Steve Haslam Mon, 3 Jan 2000 18:16:39 +0000 debian/compat0000644000000000000000000000000211733651405010371 0ustar 9 debian/config0000755000000000000000000000062611733651405010372 0ustar #!/bin/sh # vim:ft=sh # set -e # Source debconf library. . /usr/share/debconf/confmodule CONFIGFILE=/etc/default/solid-pop3d RUN_MODE=inetd [ -f "$CONFIGFILE" ] && . "$CONFIGFILE" # preserve user changes in the config file if [ "x$RUN_MODE" = "xdaemon" ] ; then db_set solid-pop3d/run_mode daemon else db_set solid-pop3d/run_mode inetd fi db_input medium solid-pop3d/run_mode || true db_go || true debian/control0000644000000000000000000000216511733651405010602 0ustar Source: solid-pop3d Section: mail Priority: extra Maintainer: Robert Luberda Build-Depends: autotools-dev, debhelper (>= 9), liblockfile-dev (>= 1.02), libpam0g-dev (>= 0.76-14) Standards-Version: 3.9.3 Vcs-Git: git://anonscm.debian.org/users/robert/solid-pop3d.git Vcs-Browser: http://anonscm.debian.org/gitweb/?p=users/robert/solid-pop3d.git Package: solid-pop3d Architecture: any Depends: adduser, libpam-runtime (>= 0.76-14), lsb-base(>= 3.0-6), netbase, update-inetd, ${misc:Depends}, ${shlibs:Depends} Provides: pop3-server Conflicts: pop3-server Recommends: exim4 | mail-transport-agent Suggests: openbsd-inetd | inet-superserver Description: POP3 server supporting Maildir, PAM, vhosting The Solid POP3 Server is an implementation of a Post Office Protocol version 3 server that has flexibility as its main goal. The server is easily configurable and has support for features such as: - APOP authentication scheme - virtual hosting - maildir and mailbox handling - bulletins - expiration of messages debian/copyright0000644000000000000000000000121011733651405011120 0ustar This package was debianized by Steve Haslam on Mon, 3 Jan 2000 17:22:18 +0000. The current package maintainer is Robert Luberda . It was downloaded from http://solidpop3d.pld.org.pl/ . However the above site does no longer exist. The original source can be now found at ftp://dione.ids.pl/pub/solidpop3d/ . Upstream Authors: Jerzy Bałamut . Everything as for now. Arkadiusz Miśkiewicz. Automake support. First version of all ".am" and configure.in files. Copyright (C) 1999 Jerzy Balamut License: GPL, see /usr/share/common-licenses/GPL-2 debian/dirs0000644000000000000000000000007311733651405010057 0ustar usr/bin usr/sbin etc/default var/lib/solid-pop3d/bulletins debian/docs0000644000000000000000000000002711733651405010045 0ustar README VIRTUALS THANKS debian/examples0000644000000000000000000000002311733651405010727 0ustar doc/config.example debian/fix_manpages.sh0000644000000000000000000000072011733651405012167 0ustar #!/bin/sh set -e cd "$1" cd usr/share/man for man_page in man*/* ; do sed -e 's|var/spool/mail|var/mail|g' \ -e 's| spop3d | solid-pop3d |g' \ -e 's|^spop3d |solid-pop3d |g' \ -e 's|\\fBspop3d\\fP|\\fBsolid-pop3d\\fP|g' \ -e 's| spop3d$| solid-pop3d|g' \ -e 's|\${sysconfdir}|/etc|g' \ -e 's|\${localstatedir}|/var/lib/solid-pop3d|g' \ < "$man_page" > tmp touch -r "$man_page" tmp mv -f tmp "$man_page" done debian/init0000644000000000000000000000360511733651405010065 0ustar #!/bin/sh # /etc/init.d/solid-pop3 # # Written by Miquel van Smoorenburg . # Modified for Debian GNU/Linux by Ian Murdock . # Modified for exim by Tim Cutts # Modified for solid-pop3 by Adam D. Barratt . ### BEGIN INIT INFO # Provides: solid-pop3d # Required-Start: $local_fs $remote_fs $syslog $network # Required-Stop: $local_fs $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start/stop solid-pop3d server # Description: Solid-pop3d is a POP3 server, which has support for such features as: # - APOP authentication scheme # - virtual hosting # - maildir and mailbox handling # - bulletins # - expiration of messages ### END INIT INFO set -e OPTS="" DAEMON=/usr/sbin/solid-pop3d DESC="virtual pop daemon" NAME=solid-pop3d CONFIGFILE=/etc/default/solid-pop3d [ -x "$DAEMON" ] || exit 0 RUN_MODE="inetd" [ -r "$CONFIGFILE" ] && . "$CONFIGFILE" [ "$RUN_MODE" = "daemon" ] || exit 0 . /lib/lsb/init-functions status=0 case "$1" in start) log_daemon_msg "Starting $DESC" "$NAME" start-stop-daemon --start --quiet --exec $DAEMON -- $OPTS || status=$? log_end_msg $status ;; stop) log_daemon_msg "Stopping $DESC" "$NAME" start-stop-daemon --stop --quiet --oknodo --retry 30 \ --exec $DAEMON || status=$? log_end_msg $status ;; restart|reload|force-reload) log_daemon_msg "Restarting $DESC" "$NAME" start-stop-daemon --stop --quiet --oknodo --retry 30 \ --exec $DAEMON start-stop-daemon --start --quiet --exec $DAEMON -- $OPTS || status=$? log_end_msg $status ;; *) log_failure_msg "Usage: $0 {start|stop|restart|force-reload}" exit 1 ;; esac exit $status debian/pam0000644000000000000000000000012111733651405007665 0ustar # PAM configuration for Solid POP3 @include common-auth @include common-account debian/patches/0000755000000000000000000000000011733651405010622 5ustar debian/patches/02-configure.patch0000644000000000000000000015701111733651405014050 0ustar From: Steve Haslam Date: Thu, 21 Sep 2000 20:03:04 +0200 Subject: 02 configure --- configure | 422 ++++++++++++++++++++++++++++------------------------------ configure.in | 3 + 2 files changed, 209 insertions(+), 216 deletions(-) diff --git a/configure b/configure index 62c8c89..95050df 100755 --- a/configure +++ b/configure @@ -81,8 +81,8 @@ localstatedir='${prefix}/var' libdir='${exec_prefix}/lib' includedir='${prefix}/include' oldincludedir='/usr/include' -infodir='${prefix}/share/info' -mandir='${prefix}/share/man' +infodir='${prefix}/info' +mandir='${prefix}/man' # Initialize some other variables. subdirs= @@ -419,7 +419,7 @@ EOF *) if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then - echo "configure: WARNING: $ac_option: invalid host type" 1>&2 + echo "configure: warning: $ac_option: invalid host type" 1>&2 fi if test "x$nonopt" != xNONE; then { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } @@ -472,9 +472,6 @@ do esac done -# Support of DJGPP port of bash. -if test -n "$COMSPEC$ComSpec"; then ac_x=-x; else ac_x=-f; fi - # NLS nuisances. # Only set these to C if already set. These must not be set unconditionally # because not all systems understand e.g. LANG=C (notably SCO). @@ -598,7 +595,7 @@ ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:602: checking for a BSD compatible install" >&5 +echo "configure:599: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -613,7 +610,7 @@ else # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do - if test $ac_x $ac_dir/$ac_prog; then + if test -f $ac_dir/$ac_prog; then if test $ac_prog = install && grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. @@ -651,7 +648,7 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 -echo "configure:655: checking whether build environment is sane" >&5 +echo "configure:652: checking whether build environment is sane" >&5 # Just in case sleep 1 echo timestamp > conftestfile @@ -708,7 +705,7 @@ test "$program_suffix" != NONE && test "$program_transform_name" = "" && program_transform_name="s,x,x," echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 -echo "configure:712: checking whether ${MAKE-make} sets \${MAKE}" >&5 +echo "configure:709: checking whether ${MAKE-make} sets \${MAKE}" >&5 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -759,7 +756,7 @@ missing_dir=`cd $ac_aux_dir && pwd` # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:763: checking for $ac_word" >&5 +echo "configure:760: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -770,7 +767,7 @@ else ac_dummy="$PATH" for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. - if test $ac_x $ac_dir/$ac_word; then + if test -f $ac_dir/$ac_word; then ac_cv_prog_CC="gcc" break fi @@ -789,7 +786,7 @@ 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 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:793: checking for $ac_word" >&5 +echo "configure:790: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -801,7 +798,7 @@ else ac_dummy="$PATH" for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. - if test $ac_x $ac_dir/$ac_word; then + if test -f $ac_dir/$ac_word; then if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue @@ -840,7 +837,7 @@ fi # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:844: checking for $ac_word" >&5 +echo "configure:841: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -851,7 +848,7 @@ else ac_dummy="$PATH" for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. - if test $ac_x $ac_dir/$ac_word; then + if test -f $ac_dir/$ac_word; then ac_cv_prog_CC="cl" break fi @@ -872,7 +869,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:876: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:873: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. @@ -883,12 +880,12 @@ cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext << EOF -#line 887 "configure" +#line 884 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:892: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:889: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -914,12 +911,12 @@ if test $ac_cv_prog_cc_works = no; then { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:918: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:915: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:923: checking whether we are using GNU C" >&5 +echo "configure:920: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -928,7 +925,7 @@ else yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:932: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:929: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -947,7 +944,7 @@ ac_test_CFLAGS="${CFLAGS+set}" ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:951: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:948: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -990,7 +987,7 @@ fi # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:994: checking for a BSD compatible install" >&5 +echo "configure:991: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1005,7 +1002,7 @@ else # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do - if test $ac_x $ac_dir/$ac_prog; then + if test -f $ac_dir/$ac_prog; then if test $ac_prog = install && grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. @@ -1049,7 +1046,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } fi echo $ac_n "checking host system type""... $ac_c" 1>&6 -echo "configure:1053: checking host system type" >&5 +echo "configure:1050: checking host system type" >&5 host_alias=$host case "$host_alias" in @@ -1100,7 +1097,7 @@ EOF EOF echo $ac_n "checking for authenticate_user in -lauth""... $ac_c" 1>&6 -echo "configure:1104: checking for authenticate_user in -lauth" >&5 +echo "configure:1101: checking for authenticate_user in -lauth" >&5 ac_lib_var=`echo auth'_'authenticate_user | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1108,7 +1105,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lauth $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1120: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -1144,7 +1141,7 @@ fi ;; *-*-hpux*) echo $ac_n "checking for HPUX tcb auth option""... $ac_c" 1>&6 -echo "configure:1148: checking for HPUX tcb auth option" >&5 +echo "configure:1145: checking for HPUX tcb auth option" >&5 if test -f /tcb/files/auth/system/pw_id_map; then echo "$ac_t""yes" 1>&6 cat >> confdefs.h <<\EOF @@ -1159,12 +1156,12 @@ EOF ;; *-*-linux*) echo $ac_n "checking for getspnam""... $ac_c" 1>&6 -echo "configure:1163: checking for getspnam" >&5 +echo "configure:1160: checking for getspnam" >&5 if eval "test \"`echo '$''{'ac_cv_func_getspnam'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1188: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_getspnam=yes" else @@ -1209,7 +1206,7 @@ fi if test -z "$getspnam_found" ; then echo $ac_n "checking for getspnam in -lshadow""... $ac_c" 1>&6 -echo "configure:1213: checking for getspnam in -lshadow" >&5 +echo "configure:1210: checking for getspnam in -lshadow" >&5 ac_lib_var=`echo shadow'_'getspnam | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1217,7 +1214,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lshadow $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1229: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -1289,12 +1286,12 @@ for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6 -echo "configure:1293: checking for $ac_hdr that defines DIR" >&5 +echo "configure:1290: checking for $ac_hdr that defines DIR" >&5 if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include <$ac_hdr> @@ -1302,7 +1299,7 @@ int main() { DIR *dirp = 0; ; return 0; } EOF -if { (eval echo configure:1306: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1303: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* eval "ac_cv_header_dirent_$ac_safe=yes" else @@ -1326,57 +1323,8 @@ fi done # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. if test $ac_header_dirent = dirent.h; then -echo $ac_n "checking for opendir""... $ac_c" 1>&6 -echo "configure:1331: checking for opendir" >&5 -if eval "test \"`echo '$''{'ac_cv_func_opendir'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext < -/* Override any gcc2 internal prototype to avoid an error. */ -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char opendir(); - -int main() { - -/* 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_opendir) || defined (__stub___opendir) -choke me -#else -opendir(); -#endif - -; return 0; } -EOF -if { (eval echo configure:1359: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then - rm -rf conftest* - eval "ac_cv_func_opendir=yes" -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_func_opendir=no" -fi -rm -f conftest* -fi - -if eval "test \"`echo '$ac_cv_func_'opendir`\" = yes"; then - echo "$ac_t""yes" 1>&6 - : -else - echo "$ac_t""no" 1>&6 -fi - -if test $ac_cv_func_opendir = no; then - echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6 -echo "configure:1380: checking for opendir in -ldir" >&5 +echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6 +echo "configure:1328: checking for opendir in -ldir" >&5 ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1384,7 +1332,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ldir $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1347: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -1415,10 +1363,9 @@ else echo "$ac_t""no" 1>&6 fi -fi else echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6 -echo "configure:1422: checking for opendir in -lx" >&5 +echo "configure:1369: checking for opendir in -lx" >&5 ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1426,7 +1373,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lx $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1388: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -1460,7 +1407,7 @@ fi fi echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:1464: checking how to run the C preprocessor" >&5 +echo "configure:1411: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -1475,13 +1422,13 @@ else # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1485: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1432: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -1492,13 +1439,13 @@ else rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1502: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1449: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -1509,13 +1456,13 @@ else rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1519: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1466: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -1540,12 +1487,12 @@ fi echo "$ac_t""$CPP" 1>&6 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:1544: checking for ANSI C header files" >&5 +echo "configure:1491: checking for ANSI C header files" >&5 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -1553,7 +1500,7 @@ else #include EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1557: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1504: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -1570,7 +1517,7 @@ rm -f conftest* if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -1588,7 +1535,7 @@ fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -1609,7 +1556,7 @@ if test "$cross_compiling" = yes; then : else cat > conftest.$ac_ext < #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') @@ -1620,7 +1567,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } EOF -if { (eval echo configure:1624: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:1571: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then : else @@ -1644,12 +1591,12 @@ EOF fi echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 -echo "configure:1648: checking whether time.h and sys/time.h may both be included" >&5 +echo "configure:1595: checking whether time.h and sys/time.h may both be included" >&5 if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -1658,7 +1605,7 @@ int main() { struct tm *tp; ; return 0; } EOF -if { (eval echo configure:1662: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1609: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_time=yes else @@ -1679,14 +1626,14 @@ EOF fi echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6 -echo "configure:1683: checking whether byte ordering is bigendian" >&5 +echo "configure:1630: checking whether byte ordering is bigendian" >&5 if eval "test \"`echo '$''{'ac_cv_c_bigendian'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_cv_c_bigendian=unknown # See if sys/param.h defines the BYTE_ORDER macro. cat > conftest.$ac_ext < #include @@ -1697,11 +1644,11 @@ int main() { #endif ; return 0; } EOF -if { (eval echo configure:1701: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1648: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* # It does; now see whether it defined to BIG_ENDIAN or not. cat > conftest.$ac_ext < #include @@ -1712,7 +1659,7 @@ int main() { #endif ; return 0; } EOF -if { (eval echo configure:1716: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1663: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_bigendian=yes else @@ -1732,7 +1679,7 @@ if test "$cross_compiling" = yes; then { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:1696: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_c_bigendian=no else @@ -1771,12 +1718,12 @@ fi for ac_func in strchr memcpy setgroups flock do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:1775: checking for $ac_func" >&5 +echo "configure:1722: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1750: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -1827,17 +1774,17 @@ for ac_hdr in fcntl.h limits.h sys/file.h syslog.h unistd.h shadow.h grp.h sys/t do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:1831: checking for $ac_hdr" >&5 +echo "configure:1778: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1841: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1788: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -1865,18 +1812,18 @@ done echo $ac_n "checking for working const""... $ac_c" 1>&6 -echo "configure:1869: checking for working const" >&5 +echo "configure:1816: checking for working const" >&5 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1870: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else @@ -1940,12 +1887,12 @@ EOF fi echo $ac_n "checking for size_t""... $ac_c" 1>&6 -echo "configure:1944: checking for size_t" >&5 +echo "configure:1891: checking for size_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -1973,12 +1920,12 @@ EOF fi echo $ac_n "checking for off_t""... $ac_c" 1>&6 -echo "configure:1977: checking for off_t" >&5 +echo "configure:1924: checking for off_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -2006,12 +1953,12 @@ EOF fi echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6 -echo "configure:2010: checking for uid_t in sys/types.h" >&5 +echo "configure:1957: checking for uid_t in sys/types.h" >&5 if eval "test \"`echo '$''{'ac_cv_type_uid_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF @@ -2040,12 +1987,12 @@ EOF fi echo $ac_n "checking for pid_t""... $ac_c" 1>&6 -echo "configure:2044: checking for pid_t" >&5 +echo "configure:1991: checking for pid_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -2073,12 +2020,12 @@ EOF fi echo $ac_n "checking for ssize_t""... $ac_c" 1>&6 -echo "configure:2077: checking for ssize_t" >&5 +echo "configure:2024: checking for ssize_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_ssize_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -2106,9 +2053,9 @@ EOF fi echo $ac_n "checking for socklen_t""... $ac_c" 1>&6 -echo "configure:2110: checking for socklen_t" >&5 +echo "configure:2057: checking for socklen_t" >&5 cat > conftest.$ac_ext < @@ -2118,7 +2065,7 @@ int main() { socklen_t tmp; ; return 0; } EOF -if { (eval echo configure:2122: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2069: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""yes" 1>&6 @@ -2136,12 +2083,12 @@ fi rm -f conftest* echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 -echo "configure:2140: checking return type of signal handlers" >&5 +echo "configure:2087: checking return type of signal handlers" >&5 if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -2158,7 +2105,7 @@ int main() { int i; ; return 0; } EOF -if { (eval echo configure:2162: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2109: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_type_signal=void else @@ -2179,12 +2126,12 @@ EOF for ac_func in vsnprintf snprintf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:2183: checking for $ac_func" >&5 +echo "configure:2130: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2158: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -2234,12 +2181,12 @@ done for ac_func in gethostname mkdir rmdir utime strdup strerror strtol setsockopt do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:2238: checking for $ac_func" >&5 +echo "configure:2185: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2213: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -2287,12 +2234,12 @@ fi done echo $ac_n "checking for authenticate""... $ac_c" 1>&6 -echo "configure:2291: checking for authenticate" >&5 +echo "configure:2238: checking for authenticate" >&5 if eval "test \"`echo '$''{'ac_cv_func_authenticate'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2266: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_authenticate=yes" else @@ -2335,12 +2282,12 @@ else fi echo $ac_n "checking for inet_aton""... $ac_c" 1>&6 -echo "configure:2339: checking for inet_aton" >&5 +echo "configure:2286: checking for inet_aton" >&5 if eval "test \"`echo '$''{'ac_cv_func_inet_aton'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2314: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_inet_aton=yes" else @@ -2383,7 +2330,7 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for inet_aton in -lresolv""... $ac_c" 1>&6 -echo "configure:2387: checking for inet_aton in -lresolv" >&5 +echo "configure:2334: checking for inet_aton in -lresolv" >&5 ac_lib_var=`echo resolv'_'inet_aton | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2391,7 +2338,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lresolv $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2353: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2426,7 +2373,7 @@ fi echo $ac_n "checking for t_accept in -lnsl""... $ac_c" 1>&6 -echo "configure:2430: checking for t_accept in -lnsl" >&5 +echo "configure:2377: checking for t_accept in -lnsl" >&5 ac_lib_var=`echo nsl'_'t_accept | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2434,7 +2381,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lnsl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2396: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2466,7 +2413,7 @@ else fi echo $ac_n "checking for socket in -lsocket""... $ac_c" 1>&6 -echo "configure:2470: checking for socket in -lsocket" >&5 +echo "configure:2417: checking for socket in -lsocket" >&5 ac_lib_var=`echo socket'_'socket | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2474,7 +2421,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lsocket $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2436: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2507,7 +2454,7 @@ fi echo $ac_n "checking for maillock in -lmail""... $ac_c" 1>&6 -echo "configure:2511: checking for maillock in -lmail" >&5 +echo "configure:2458: checking for maillock in -lmail" >&5 ac_lib_var=`echo mail'_'maillock | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2515,7 +2462,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lmail $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2477: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2550,13 +2497,57 @@ else fi +echo $ac_n "checking for maillock in -llockfile""... $ac_c" 1>&6 +echo "configure:2502: checking for maillock in -llockfile" >&5 +ac_lib_var=`echo lockfile'_'maillock | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-llockfile $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SPOPLIBS="$SPOPLIBS -llockfile"; cat >> confdefs.h <<\EOF +#define MAILOCK 1 +EOF + +else + echo "$ac_t""no" 1>&6 +fi + + echo $ac_n "checking for crypt""... $ac_c" 1>&6 -echo "configure:2555: checking for crypt" >&5 +echo "configure:2546: checking for crypt" >&5 if eval "test \"`echo '$''{'ac_cv_func_crypt'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2574: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_crypt=yes" else @@ -2601,7 +2592,7 @@ fi if test -z "$crypt_found"; then echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6 -echo "configure:2605: checking for crypt in -lcrypt" >&5 +echo "configure:2596: checking for crypt in -lcrypt" >&5 ac_lib_var=`echo crypt'_'crypt | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2609,7 +2600,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lcrypt $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2615: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2646,12 +2637,12 @@ fi if test -z "$getspnam_found"; then echo $ac_n "checking for getspnam""... $ac_c" 1>&6 -echo "configure:2650: checking for getspnam" >&5 +echo "configure:2641: checking for getspnam" >&5 if eval "test \"`echo '$''{'ac_cv_func_getspnam'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2669: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_getspnam=yes" else @@ -2696,7 +2687,7 @@ fi if test -z "$getspnam_found"; then echo $ac_n "checking for getspnam in -lsec""... $ac_c" 1>&6 -echo "configure:2700: checking for getspnam in -lsec" >&5 +echo "configure:2691: checking for getspnam in -lsec" >&5 ac_lib_var=`echo sec'_'getspnam | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2704,7 +2695,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lsec $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2710: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2740,12 +2731,12 @@ fi fi fi echo $ac_n "checking for getpwnam""... $ac_c" 1>&6 -echo "configure:2744: checking for getpwnam" >&5 +echo "configure:2735: checking for getpwnam" >&5 if eval "test \"`echo '$''{'ac_cv_func_getpwnam'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2763: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_getpwnam=yes" else @@ -2792,7 +2783,7 @@ fi if test -z "$no_libsun"; then if test -z "$getpwnam_found"; then echo $ac_n "checking for getpwnam in -lsun""... $ac_c" 1>&6 -echo "configure:2796: checking for getpwnam in -lsun" >&5 +echo "configure:2787: checking for getpwnam in -lsun" >&5 ac_lib_var=`echo sun'_'getpwnam | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2800,7 +2791,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lsun $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2806: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2837,7 +2828,7 @@ fi fi if test -z "$no_shadow_password_checking"; then echo $ac_n "checking for shadow passwords""... $ac_c" 1>&6 -echo "configure:2841: checking for shadow passwords" >&5 +echo "configure:2832: checking for shadow passwords" >&5 if test -f /etc/shadow; then if test "$ac_cv_header_shadow_h" = "yes"; then cat >> confdefs.h <<\EOF @@ -2847,7 +2838,7 @@ EOF echo "$ac_t""/etc/shadow" 1>&6 if test -z "$getspnam_found"; then echo $ac_n "checking for getspnam in -lshadow""... $ac_c" 1>&6 -echo "configure:2851: checking for getspnam in -lshadow" >&5 +echo "configure:2842: checking for getspnam in -lshadow" >&5 ac_lib_var=`echo shadow'_'getspnam | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2855,7 +2846,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lshadow $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2861: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2902,7 +2893,7 @@ EOF fi echo $ac_n "checking whether to use PAM""... $ac_c" 1>&6 -echo "configure:2906: checking whether to use PAM" >&5 +echo "configure:2897: checking whether to use PAM" >&5 # Check whether --enable-pam or --disable-pam was given. if test "${enable_pam+set}" = set; then enableval="$enable_pam" @@ -2931,7 +2922,7 @@ POP_AUTH="" APOP_O="" POP_AUTH_1="" echo $ac_n "checking whether to support APOP""... $ac_c" 1>&6 -echo "configure:2935: checking whether to support APOP" >&5 +echo "configure:2926: checking whether to support APOP" >&5 # Check whether --enable-apop or --disable-apop was given. if test "${enable_apop+set}" = set; then enableval="$enable_apop" @@ -2959,7 +2950,7 @@ fi MAILBOX_O="mailbox.o" echo $ac_n "checking whether to support mailbox""... $ac_c" 1>&6 -echo "configure:2963: checking whether to support mailbox" >&5 +echo "configure:2954: checking whether to support mailbox" >&5 # Check whether --enable-mailbox or --disable-mailbox was given. if test "${enable_mailbox+set}" = set; then enableval="$enable_mailbox" @@ -2988,7 +2979,7 @@ fi MAILDIR_O="maildir.o" echo $ac_n "checking whether to support maildir""... $ac_c" 1>&6 -echo "configure:2992: checking whether to support maildir" >&5 +echo "configure:2983: checking whether to support maildir" >&5 # Check whether --enable-maildir or --disable-maildir was given. if test "${enable_maildir+set}" = set; then enableval="$enable_maildir" @@ -3018,7 +3009,7 @@ fi CONFIGFILE_O="configfile.o" CONFIGSCAN_O="configscan.o" echo $ac_n "checking whether to support configuration file""... $ac_c" 1>&6 -echo "configure:3022: checking whether to support configuration file" >&5 +echo "configure:3013: checking whether to support configuration file" >&5 # Check whether --enable-configfile or --disable-configfile was given. if test "${enable_configfile+set}" = set; then enableval="$enable_configfile" @@ -3048,7 +3039,7 @@ fi echo $ac_n "checking whether to support message expiration""... $ac_c" 1>&6 -echo "configure:3052: checking whether to support message expiration" >&5 +echo "configure:3043: checking whether to support message expiration" >&5 # Check whether --enable-expire or --disable-expire was given. if test "${enable_expire+set}" = set; then enableval="$enable_expire" @@ -3075,7 +3066,7 @@ fi USERCONFIG_O="userconfig.o" echo $ac_n "checking whether to support user configuration""... $ac_c" 1>&6 -echo "configure:3079: checking whether to support user configuration" >&5 +echo "configure:3070: checking whether to support user configuration" >&5 # Check whether --enable-userconfig or --disable-userconfig was given. if test "${enable_userconfig+set}" = set; then enableval="$enable_userconfig" @@ -3102,7 +3093,7 @@ fi echo $ac_n "checking whether to support bulletins""... $ac_c" 1>&6 -echo "configure:3106: checking whether to support bulletins" >&5 +echo "configure:3097: checking whether to support bulletins" >&5 # Check whether --enable-bulletins or --disable-bulletins was given. if test "${enable_bulletins+set}" = set; then enableval="$enable_bulletins" @@ -3122,7 +3113,7 @@ else fi echo $ac_n "checking whether to build standalone version""... $ac_c" 1>&6 -echo "configure:3126: checking whether to build standalone version" >&5 +echo "configure:3117: checking whether to build standalone version" >&5 STANDALONE_O="" # Check whether --enable-standalone or --disable-standalone was given. if test "${enable_standalone+set}" = set; then @@ -3145,7 +3136,7 @@ fi echo $ac_n "checking whether to add support for LAST command""... $ac_c" 1>&6 -echo "configure:3149: checking whether to add support for LAST command" >&5 +echo "configure:3140: checking whether to add support for LAST command" >&5 # Check whether --enable-last or --disable-last was given. if test "${enable_last+set}" = set; then enableval="$enable_last" @@ -3165,7 +3156,7 @@ else fi echo $ac_n "checking whether to add support for user names mapping""... $ac_c" 1>&6 -echo "configure:3169: checking whether to add support for user names mapping" >&5 +echo "configure:3160: checking whether to add support for user names mapping" >&5 MAPPING_O="" # Check whether --enable-mapping or --disable-mapping was given. if test "${enable_mapping+set}" = set; then @@ -3188,7 +3179,7 @@ fi echo $ac_n "checking whether to add support for non-IP based virtual hosting""... $ac_c" 1>&6 -echo "configure:3192: checking whether to add support for non-IP based virtual hosting" >&5 +echo "configure:3183: checking whether to add support for non-IP based virtual hosting" >&5 # Check whether --enable-nonip or --disable-nonip was given. if test "${enable_nonip+set}" = set; then enableval="$enable_nonip" @@ -3208,7 +3199,7 @@ else fi echo $ac_n "checking whether to add support for AllowRootLogin option""... $ac_c" 1>&6 -echo "configure:3212: checking whether to add support for AllowRootLogin option" >&5 +echo "configure:3203: checking whether to add support for AllowRootLogin option" >&5 # Check whether --enable-allowroot or --disable-allowroot was given. if test "${enable_allowroot+set}" = set; then enableval="$enable_allowroot" @@ -3228,7 +3219,7 @@ else fi echo $ac_n "checking whether to add support for CreateMailDrop option""... $ac_c" 1>&6 -echo "configure:3232: checking whether to add support for CreateMailDrop option" >&5 +echo "configure:3223: checking whether to add support for CreateMailDrop option" >&5 # Check whether --enable-createmail or --disable-createmail was given. if test "${enable_createmail+set}" = set; then enableval="$enable_createmail" @@ -3248,7 +3239,7 @@ else fi echo $ac_n "checking whether to add support for IPv6 protocol""... $ac_c" 1>&6 -echo "configure:3252: checking whether to add support for IPv6 protocol" >&5 +echo "configure:3243: checking whether to add support for IPv6 protocol" >&5 # Check whether --enable-ipv6 or --disable-ipv6 was given. if test "${enable_ipv6+set}" = set; then enableval="$enable_ipv6" @@ -3268,7 +3259,7 @@ else fi echo $ac_n "checking whether to log resolved host name""... $ac_c" 1>&6 -echo "configure:3272: checking whether to log resolved host name" >&5 +echo "configure:3263: checking whether to log resolved host name" >&5 # Check whether --enable-resolve or --disable-resolve was given. if test "${enable_resolve+set}" = set; then enableval="$enable_resolve" @@ -3288,7 +3279,7 @@ else fi echo $ac_n "checking whether to log "connect from x" message""... $ac_c" 1>&6 -echo "configure:3292: checking whether to log "connect from x" message" >&5 +echo "configure:3283: checking whether to log "connect from x" message" >&5 # Check whether --enable-connect or --disable-connect was given. if test "${enable_connect+set}" = set; then enableval="$enable_connect" @@ -3308,7 +3299,7 @@ else fi echo $ac_n "checking whether to add extended logging""... $ac_c" 1>&6 -echo "configure:3312: checking whether to add extended logging" >&5 +echo "configure:3303: checking whether to add extended logging" >&5 # Check whether --enable-logextend or --disable-logextend was given. if test "${enable_logextend+set}" = set; then enableval="$enable_logextend" @@ -3330,7 +3321,7 @@ else fi echo $ac_n "checking whether to add support for statistics""... $ac_c" 1>&6 -echo "configure:3334: checking whether to add support for statistics" >&5 +echo "configure:3325: checking whether to add support for statistics" >&5 # Check whether --enable-statistics or --disable-statistics was given. if test "${enable_statistics+set}" = set; then enableval="$enable_statistics" @@ -3580,15 +3571,14 @@ for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then .) srcdir=. if test -z "$ac_dots"; then top_srcdir=. else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; - /*|[A-z]:/*) - srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; *) # Relative path. srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" top_srcdir="$ac_dots$ac_given_srcdir" ;; esac case "$ac_given_INSTALL" in - [/$]*|[A-z]:/*) INSTALL="$ac_given_INSTALL" ;; + [/$]*) INSTALL="$ac_given_INSTALL" ;; *) INSTALL="$ac_dots$ac_given_INSTALL" ;; esac @@ -3601,7 +3591,7 @@ for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then *) ac_comsub= ;; esac - ac_file_inputs=`echo $ac_file_in|sed -e "s%:% $ac_given_srcdir/%g" -e "s%^%$ac_given_srcdir/%"` + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` sed -e "$ac_comsub s%@configure_input@%$configure_input%g s%@srcdir@%$srcdir%g @@ -3648,7 +3638,7 @@ for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then echo creating $ac_file rm -f conftest.frag conftest.in conftest.out - ac_file_inputs=`echo $ac_file_in|sed -e "s%:% $ac_given_srcdir/%g" -e "s%^%$ac_given_srcdir/%"` + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` cat $ac_file_inputs > conftest.in EOF diff --git a/configure.in b/configure.in index a3705e2..ff5c102 100644 --- a/configure.in +++ b/configure.in @@ -121,6 +121,9 @@ AC_CHECK_LIB(socket, socket, SPOPLIBS="$SPOPLIBS -lsocket") dnl Check for maillock() - ripped from qpopper AC_CHECK_LIB(mail, maillock, SPOPLIBS="$SPOPLIBS -lmail"; AC_DEFINE(MAILOCK)) +dnl Check for maillock() in liblockfile too for Debian - araqnid +AC_CHECK_LIB(lockfile, maillock, SPOPLIBS="$SPOPLIBS -llockfile"; AC_DEFINE(MAILOCK)) + dnl Checks for authentication methods (mostly ripped from SSH) AC_CHECK_FUNC(crypt, [ crypt_found=yes] ) -- debian/patches/03-debian-base.patch0000644000000000000000000001004311733651405014213 0ustar From: Robert Luberda Date: Wed, 27 Nov 2002 08:54:00 +0100 Subject: 03 debian base Base Debian changes: FHS + s/spop3d/solid-pop3d/ --- doc/config.example | 3 +-- man/pop_auth.1 | 2 +- man/spop3d.8 | 4 ++-- man/spop3d.conf.5 | 9 ++++++--- src/const.h | 6 +++--- 5 files changed, 13 insertions(+), 11 deletions(-) diff --git a/doc/config.example b/doc/config.example index 0c1db2c..9958e95 100644 --- a/doc/config.example +++ b/doc/config.example @@ -1,7 +1,6 @@ /* This example is very stupid. Don't use it as a base for your own configuration file */ - AllowRootLogin yes MailDropName Maildir MailDropType maildir UserBullFile .spop3d-blurp /* It's just an example */ @@ -10,7 +9,7 @@ UnreadExpire never APOPServerName jakis.tam.host.w.pl - MailDropName "/var/spool/mail/%s" /* It is a comment */ + MailDropName "/var/mail/%s" /* It is a comment */ MailDropType mailbox AutoLogoutTime 5s UserOverride yes diff --git a/man/pop_auth.1 b/man/pop_auth.1 index 810fa3c..4c3d3e5 100644 --- a/man/pop_auth.1 +++ b/man/pop_auth.1 @@ -38,7 +38,7 @@ Don't use your account password as the APOP secret!!! No options are recognized. .SH FILES .IP "~/.spop3d" -User configuration file. APOP secret is writed here. +User configuration file. APOP secret is written here. .SH SEE ALSO .PP .BR spop3d (8), diff --git a/man/spop3d.8 b/man/spop3d.8 index 903fdd9..bb34bea 100644 --- a/man/spop3d.8 +++ b/man/spop3d.8 @@ -119,9 +119,9 @@ Allow root login. This feature is disabled by default and shouldn't be used. User configuration file. .IP "~/.spop3d-bull" This file is used by bulletin code to determine last bulletin received by user. -.IP ${localstatedir}/bulletins" +.IP "${localstatedir}/bulletins" Bulletins directory. -.IP ${sysconfdir}/spop3d.conf" +.IP "${sysconfdir}/spop3d.conf" Global configuration file. .SH SEE ALSO .PP diff --git a/man/spop3d.conf.5 b/man/spop3d.conf.5 index ed18f19..f954d0e 100644 --- a/man/spop3d.conf.5 +++ b/man/spop3d.conf.5 @@ -96,6 +96,9 @@ Following options are recognized: .TP .B AllowRootLogin boolean Allow root login. It's disabled by default and shouldn't be changed. +.br +.I Debian Note: +This option is not available in the Debian package. .TP .B UserOverride boolean Allow users specify their maildrops (path and type) and APOP secrets. @@ -157,7 +160,8 @@ Default value is \fI.spop3d-bull\fP. .TP .B BulletinDirectory string Specify path to bulletin directory. -Default value is ${localstatedir}/bulletins (/usr/local/var/bulletins). +Default value is ${localstatedir}/bulletins. +.\"(/usr/local/var/bulletins). .TP .B LogPriority string Set logging facility and priority. Default value is local0.notice. @@ -165,7 +169,7 @@ Known facilities: daemon, local0, local1, ..., local7, mail, user. Known priorities: emerg, alert, crit, err, warning, notice, info, debug. facility or facility.priority combination are recognized. .TP -.B AddBuletins boolean +.B AddBulletins boolean Server checks for new bulletins in BulletinDirectory if enabled. Option is enabled by default. .TP @@ -191,7 +195,6 @@ exist. Option is disabled by default. .nf LogPriority daemon.info - AllowRootLogin yes MailDropName Maildir MailDropType maildir UserBullFile .spop3d-blurp /* It's just an example */ diff --git a/src/const.h b/src/const.h index f2ea895..9379fd4 100644 --- a/src/const.h +++ b/src/const.h @@ -29,14 +29,14 @@ #define AUTH_STATE 0 #define TRANSACTION_STATE 1 -#define SERVICE_NAME "spop3d" +#define SERVICE_NAME "solid-pop3d" #define MAXMSGNR 10000 #define SERVER_GREETING "Solid POP3 server ready" #define DEFAUTOLOGOUTTIME 60 #define DEFWCCOUNT 5 #ifdef MDMAILBOX -#define DEFMAILDROPNAME "/var/spool/mail/%s" +#define DEFMAILDROPNAME "/var/mail/%s" #else #define DEFMAILDROPNAME "Maildir" #endif @@ -58,7 +58,7 @@ #define MIN_DELAY 50 #define POP3_PORT 110 -#define POP_IDENT "spop3d" +#define POP_IDENT "solid-pop3d" #define POP_PRIORITY LOG_NOTICE #define POP_FACILITY LOG_LOCAL0 #endif /* const.h */ -- debian/patches/04-liblockfile.patch0000644000000000000000000000556311733651405014354 0ustar From: Robert Luberda Date: Mon, 2 Dec 2002 00:12:00 +0100 Subject: 04 liblockfile --- src/mailbox.c | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 50 insertions(+), 4 deletions(-) diff --git a/src/mailbox.c b/src/mailbox.c index c1d495b..0ec5f64 100644 --- a/src/mailbox.c +++ b/src/mailbox.c @@ -31,6 +31,14 @@ static const char rcsid[] = "$Id: mailbox.c,v 1.6 2000/05/13 13:25:52 jurekb Exp #include #include #include + +#ifdef DEBIAN +# include +# include +# undef HAVE_FLOCK +# undef MAILOCK +#endif /* DEBIAN */ + #ifdef MAILOCK #include #endif @@ -76,15 +84,31 @@ struct str_maildrop mb_maildrop = #endif }; +#ifdef DEBIAN +static char * lockfilename = NULL; +#define LOCK_SUFFIX ".lock" +#endif /* DEBIAN */ + int unlock_mailbox(void) { int retcode; +#if defined(F_SETLK) && defined(F_SETLKW) && !defined(HAVE_FLOCK) + struct flock arg; +#endif + +#ifdef DEBIAN + if (lockfilename) { + lockfile_remove(lockfilename); + free(lockfilename); + lockfilename = NULL; + } +#endif /* DEBIAN */ + #ifdef HAVE_FLOCK #define MLNAME "mailbox: flock" retcode = flock(mailboxfd, LOCK_UN); #else #if defined(F_SETLK) && defined(F_SETLKW) #define MLNAME "mailbox: fcntl" - struct flock arg; arg.l_type = F_UNLCK; arg.l_whence = arg.l_start = arg.l_len = arg.l_pid = 0; @@ -94,16 +118,19 @@ int unlock_mailbox(void) { retcode = lockf(mailboxfd, F_ULOCK, 0); #endif /* defined(F_SETLK) && defined(F_SETLKW) */ #endif /* HAVE_FLOCK */ + #ifdef MAILOCK mailunlock(); #endif return retcode; } + int lock_mailbox(void) { #if defined(F_SETLK) && defined(F_SETLKW) && !defined(HAVE_FLOCK) struct flock arg; #endif + int retcode; #ifdef MAILOCK if (maillock(username, 1) != 0) { @@ -113,16 +140,35 @@ int lock_mailbox(void) { #endif #ifdef HAVE_FLOCK - return flock(mailboxfd, LOCK_EX); + retcode = flock(mailboxfd, LOCK_EX); #else #if defined(F_SETLK) && defined(F_SETLKW) arg.l_type = F_WRLCK; arg.l_whence = arg.l_start = arg.l_len = arg.l_pid = 0; - return fcntl(mailboxfd, F_SETLKW, &arg); + retcode = fcntl(mailboxfd, F_SETLKW, &arg); #else - return lockf(mailboxfd, F_LOCK, 0); + retcode = lockf(mailboxfd, F_LOCK, 0); #endif /* defined(F_SETLK) && defined(F_SETLKW) */ #endif /* HAVE_FLOCK */ + +#ifdef DEBIAN + if (retcode != 0) + return retcode; + lockfilename = (char *) malloc( strlen(maildrop_name) + sizeof(LOCK_SUFFIX) ); + if (!lockfilename) { + pop_log(pop_priority, "mailbox: no memory available"); + return -1; + } + sprintf(lockfilename, "%s" LOCK_SUFFIX, maildrop_name); + if (lockfile_create(lockfilename, 1, 0) != L_SUCCESS) { + free(lockfilename); + lockfilename = NULL; + pop_error("mailbox: lockfile_create"); + return -1; + }; + retcode = 0; +#endif /* DEBIAN */ + return retcode; } long int mb_dec(char *in) { -- debian/patches/05-unlock.patch0000644000000000000000000000234511733651405013364 0ustar From: Robert Luberda Date: Fri, 4 Apr 2003 20:42:00 +0200 Subject: 05 unlock Patches for #184790 and #184793 --- src/mailbox.c | 8 +++++++- src/main.c | 9 +++++++++ 2 files changed, 16 insertions(+), 1 deletions(-) diff --git a/src/mailbox.c b/src/mailbox.c index 0ec5f64..36774fe 100644 --- a/src/mailbox.c +++ b/src/mailbox.c @@ -667,8 +667,14 @@ void mb_init(void) { void mb_release(void) { - if (mailboxfd > 0) + if (mailboxfd > 0) { + /* + * Debian bug #184793 - we should unlock mailbox if server dies + * robert@debian.org, Apr 4th, 2003 + */ + unlock_mailbox(); close(mailboxfd); + } md_free(); } diff --git a/src/main.c b/src/main.c index 882e234..ef9637d 100644 --- a/src/main.c +++ b/src/main.c @@ -385,9 +385,18 @@ void add_bulletins(char *homedir) { if (fd < 0) { /* It runs with user privileges, so users can do what they want */ pop_log(pop_priority, "can't open or create file: %.1024s", userbullfile); +#ifdef DEBIAN + /* + * see Debian bug #184970 + * robert@debian.org, Apr 4th, 2003 + */ + maildrop->md_end_of_adding(); + return; +#else pop_error("open"); send_error("fatal error"); exit(1); +#endif }; if (fstat(fd, &stbuf) < 0) { close(fd); -- debian/patches/06-autologout-username.patch0000644000000000000000000000145011733651405016105 0ustar From: "Adam D. Barratt" Date: Wed, 31 Dec 2003 09:41:38 +0000 Subject: 06 autologout username Print username in autologout log (bug#107927) --- src/main.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main.c b/src/main.c index ef9637d..42220cd 100644 --- a/src/main.c +++ b/src/main.c @@ -755,9 +755,9 @@ void read_command(char *cmd) void sig_handler(int number) { if (number == SIGALRM) #ifdef LOG_EXTEND - pop_log(pop_priority, "autologout time elapsed - %.384s", ahname); + pop_log(pop_priority, "autologout time elapsed for user %.40s - %.384s", username, ahname); #else - pop_log(pop_priority, "autologout time elapsed"); + pop_log(pop_priority, "autologout time elapsed for user %.40s", username); #endif exit(1); } -- debian/patches/07-allowuser.patch0000644000000000000000000000374311733651405014113 0ustar From: "Adam D. Barratt" Date: Sat, 3 Jan 2004 16:04:22 +0000 Subject: 07 allowuser Add AllowUser option (bug#77710). Patch based upstream version 0.16d. --- man/spop3d.conf.5 | 7 +++++++ src/configfile.h | 1 + src/main.c | 7 +++++++ 3 files changed, 15 insertions(+), 0 deletions(-) diff --git a/man/spop3d.conf.5 b/man/spop3d.conf.5 index f954d0e..6f1de20 100644 --- a/man/spop3d.conf.5 +++ b/man/spop3d.conf.5 @@ -189,6 +189,13 @@ are logged. Option is enabled by default. If enabled maildrop (mailbox or maildir) will be created, when it doesn't exist. Option is disabled by default. .TP +.B AllowUser boolean +Allow USER/PASS authentication. This option is enabled by default. +It's the standard method of user authentication and you probably don't +need to disable it. +You must have at least one authentication method enabled +(AllowUser or AllowAPOP). +.TP .RE .SH EXAMPLE .RS diff --git a/src/configfile.h b/src/configfile.h index c0cf7ec..aa7f09a 100644 --- a/src/configfile.h +++ b/src/configfile.h @@ -79,6 +79,7 @@ extern char logpriority[]; #ifdef STATISTICS extern int logstatistics; #endif +extern int allowuser; struct str_option { char *name; diff --git a/src/main.c b/src/main.c index 42220cd..5b1be3c 100644 --- a/src/main.c +++ b/src/main.c @@ -187,9 +187,11 @@ struct str_option options_set[] = {"LogStatistics", OP_BOOLEAN, &logstatistics, 0, NULL}, #endif {"LogPriority", OP_STRING, &logpriority, 64, check_logpriority}, + {"AllowUser", OP_BOOLEAN, &allowuser, 0, NULL}, {NULL, 0, NULL, 0, NULL} }; +int allowuser = 1; int connection_state; char username[MAXARGLN + 1]; char password[MAXARGLN + 1]; @@ -559,6 +561,11 @@ void end_auth_state(char *arg) { void get_username(char *arg) { int tmp = 0; + if (!allowuser) { + send_error("USER/PASS authentication not allowed"); + check_wccount(); + return; + } if (strlen(arg) >= sizeof(username)) { send_error("username too long"); check_wccount(); -- debian/patches/08-init.patch0000644000000000000000000000460511733651405013040 0ustar From: "Adam D. Barratt" Date: Fri, 16 Jan 2004 09:57:04 +0000 Subject: 08 init Enable inetd/standalone (bug#77934) by Adam D. Barratt --- src/main.c | 16 ++++++++++++++++ src/standalone.c | 18 ++++++++++++++++++ 2 files changed, 34 insertions(+), 0 deletions(-) diff --git a/src/main.c b/src/main.c index 5b1be3c..2544125 100644 --- a/src/main.c +++ b/src/main.c @@ -248,6 +248,9 @@ char ahname[384]; #ifdef STATISTICS int logstatistics = 1; #endif +#if defined(DEBIAN) && defined(STANDALONE) +int standalone = 0; +#endif void check_wccount(void) { if (wccount != 0) @@ -1051,11 +1054,19 @@ int main(int argc, char **argv) umask(0077); chdir("/"); +#if defined(DEBIAN) && defined(STANDALONE) + if (!standalone) { + pop_openlog(); + if (atexit(pop_closelog) < 0) + exit(1); + } +#else #ifndef STANDALONE pop_openlog(); if (atexit(pop_closelog) < 0) exit(1); #endif +#endif if (setrlimit(RLIMIT_CORE, &corelimit) < 0) { pop_error("setrlimit"); exit(1); @@ -1122,10 +1133,15 @@ int main(int argc, char **argv) #endif #endif /* RESOLVE_HOSTNAME */ #ifdef LOG_CONNECT +#if defined(DEBIAN) && defined(STANDALONE) + if (!standalone) + pop_log(pop_priority, "connect from %.384s", ahname); +#else #ifndef STANDALONE pop_log(pop_priority, "connect from %.384s", ahname); #endif #endif +#endif #endif /* LOG_EXTEND || LOG_CONNECT */ if (pipe(tunnel) < 0) { diff --git a/src/standalone.c b/src/standalone.c index 37ca1fb..a328914 100644 --- a/src/standalone.c +++ b/src/standalone.c @@ -48,6 +48,9 @@ by me. */ #endif extern int do_session(int, char **); +#if defined(DEBIAN) && defined(STANDALONE) +extern int standalone; +#endif static volatile int blocked; static volatile int pending; int sckt; @@ -103,6 +106,21 @@ int main(int argc, char **argv) { time_t now; pid_t spid; +#if defined(DEBIAN) && defined(STANDALONE) + /* Basic code pinched from Exim4's inetd detection */ + if (getpeername(0, (struct sockaddr *)(&address), &tmpaddrln) == 0 ) { + int family = ((struct sockaddr *)(&address))->sa_family; + standalone = !(family == AF_INET || family == AF_INET6); + if (!standalone) { + do_session(argc,argv); + /* do_session should never return */ + exit(1); + } + } + else { + standalone = 1; + } +#endif pop_openlog(); if (atexit(pop_closelog) < 0) { pop_error("atexit"); -- debian/patches/09-authmappeduser.patch0000644000000000000000000000471211733651405015124 0ustar From: "Adam D. Barratt" Date: Fri, 16 Jan 2004 10:42:08 +0000 Subject: 09 authmappeduser Add AuthMappedUser option (bug#228085). --- man/spop3d.conf.5 | 7 +++++++ src/configfile.h | 1 + src/main.c | 5 +++-- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/man/spop3d.conf.5 b/man/spop3d.conf.5 index 6f1de20..76fd136 100644 --- a/man/spop3d.conf.5 +++ b/man/spop3d.conf.5 @@ -179,6 +179,13 @@ in user mapping file. If DoMapping is enabled and RequiredMapping is disabled user needn't have entry in user mapping file (no mapping is performed then). Option has no effect when DoMapping is disabled. Option is enabled by default. .TP +.B AuthMappedUser boolean +Controls whether authentication is performed on the username given by +the user, or the username looked up in the user mapping file. +.br +The option is enabled by default, meaning that the user from the mapping +file is used. The option has no effect when DoMapping is disabled. +.TP .B LogStatistics boolean If enabled qpopper-like statistics are logged. At the end of each session username, number of deleted messages, size (in bytes) of deleted messages, diff --git a/src/configfile.h b/src/configfile.h index aa7f09a..39c01e7 100644 --- a/src/configfile.h +++ b/src/configfile.h @@ -66,6 +66,7 @@ extern unsigned int wccount; #ifdef MAPPING extern int domapping; extern int reqmapping; +extern int authmappeduser; extern char sp_mapfile[]; extern char mapfileowner[]; #endif diff --git a/src/main.c b/src/main.c index 2544125..9788030 100644 --- a/src/main.c +++ b/src/main.c @@ -175,6 +175,7 @@ struct str_option options_set[] = #ifdef MAPPING {"UserMapFile", OP_STRING, &sp_mapfile, PATH_MAX, NULL}, {"DoMapping", OP_BOOLEAN, &domapping, 0, NULL}, + {"AuthMappedUser", OP_BOOLEAN, &authmappeduser, 1, NULL}, {"RequiredMapping", OP_BOOLEAN, &reqmapping, 0, NULL}, #endif #ifdef NONIPVIRTUALS @@ -210,7 +211,7 @@ char maildrop_name[PATH_MAX]; char maildrop_type[MAXMDTYPENAMELENGTH]; #ifdef MAPPING char sp_mapfile[PATH_MAX]; -int domapping = 0, reqmapping = 1; +int domapping = 0, reqmapping = 1, authmappeduser = 1; char mapusername[MAXARGLN + 1]; #endif #ifdef APOP @@ -1385,7 +1386,7 @@ int main(int argc, char **argv) if (!useapop) { #endif #ifdef MAPPING - if (domapping) + if (domapping && authmappeduser) tmp = sp_authenticate_user(mapusername, password); else tmp = sp_authenticate_user(username, password); -- debian/patches/10-usermapprefix.patch0000644000000000000000000001164611733651405014763 0ustar From: "Adam D. Barratt" Date: Thu, 22 Jan 2004 09:27:04 +0000 Subject: 10 usermapprefix Add UserMapPrefix option (bug#228059) by Mark Smith & Adam D. Barratt --- man/spop3d.8 | 9 +++++++++ man/spop3d.conf.5 | 10 ++++++++++ src/configfile.h | 1 + src/const.h | 1 + src/main.c | 30 ++++++++++++++++++++++++++++-- 5 files changed, 49 insertions(+), 2 deletions(-) diff --git a/man/spop3d.8 b/man/spop3d.8 index bb34bea..8b3d7e5 100644 --- a/man/spop3d.8 +++ b/man/spop3d.8 @@ -59,6 +59,15 @@ character .TP .B %m replace it with mapped user name (read VIRTUALS file) +.TP +.B %o +replace it with the "original" user name. This is the user name with any +.BR UserMapPrefix +removed. Unless +.BR DoMapping +is enabled, and a +.BR UserMapPrefix +is supplied, this will be a blank string. .PP If specified path is not absolute it is treated as relative to user home directory. For example: diff --git a/man/spop3d.conf.5 b/man/spop3d.conf.5 index 76fd136..7dd016d 100644 --- a/man/spop3d.conf.5 +++ b/man/spop3d.conf.5 @@ -149,6 +149,16 @@ Option is disabled by default. Specify path to user names mapping file (read VIRTUALS file). There is no default value. .TP +.B UserMapPrefix string +Specify a set of characters which should be prefixed to the username before +it is looked up in the user mapping file. +.br +For example, given a username of "bar", and a \fBUserMapPrefix\fP of +"foo-", there should be an entry in the user mapping file for "foo-bar". +.br +This option has no effect when DoMapping is disabled, and is a blank +string by default. +.TP .B AllowNonIP boolean If enabled user is allowed to specify virtual domain name in when logging. Read VIRTUALS file for details. Option is enabled by default. diff --git a/src/configfile.h b/src/configfile.h index 39c01e7..f297977 100644 --- a/src/configfile.h +++ b/src/configfile.h @@ -68,6 +68,7 @@ extern int domapping; extern int reqmapping; extern int authmappeduser; extern char sp_mapfile[]; +extern char sp_usermapprefix[]; extern char mapfileowner[]; #endif #ifdef NONIPVIRTUALS diff --git a/src/const.h b/src/const.h index 9379fd4..75de5b0 100644 --- a/src/const.h +++ b/src/const.h @@ -26,6 +26,7 @@ #define MAXRESPLN 512 #define MAXCMDLN 255 #define MAXARGLN 40 +#define MAXPREFIX 16 #define AUTH_STATE 0 #define TRANSACTION_STATE 1 diff --git a/src/main.c b/src/main.c index 9788030..8ec9867 100644 --- a/src/main.c +++ b/src/main.c @@ -177,6 +177,7 @@ struct str_option options_set[] = {"DoMapping", OP_BOOLEAN, &domapping, 0, NULL}, {"AuthMappedUser", OP_BOOLEAN, &authmappeduser, 1, NULL}, {"RequiredMapping", OP_BOOLEAN, &reqmapping, 0, NULL}, + {"UserMapPrefix", OP_STRING, &sp_usermapprefix, MAXPREFIX, NULL}, #endif #ifdef NONIPVIRTUALS {"AllowNonIP", OP_BOOLEAN, &allownonip, 0, NULL}, @@ -213,6 +214,9 @@ char maildrop_type[MAXMDTYPENAMELENGTH]; char sp_mapfile[PATH_MAX]; int domapping = 0, reqmapping = 1, authmappeduser = 1; char mapusername[MAXARGLN + 1]; +char origusername[MAXARGLN + 1]; +char usernamebuf[MAXARGLN + 1]; +char sp_usermapprefix[MAXPREFIX]; #endif #ifdef APOP char apop_secret[MAXARGLN + 1]; @@ -312,6 +316,16 @@ int expand_dir(char *dir, char *homedir) { strcat(filename, mapusername); tmp = tmp2 + 2; break; + case 'o': + *tmp2 = 0; + if ((strlen(filename) + strlen(tmp) + strlen(origusername) + 1) > sizeof(filename)) { + breakwhile = 1; + break; + }; + strcat(filename, tmp); + strcat(filename, origusername); + tmp = tmp2 + 2; + break; #endif case 'd': if ((tmp2[2] < '1') || (tmp2[2] > '8')) { @@ -1047,9 +1061,11 @@ int main(int argc, char **argv) signal(SIGUSR1, sig_handler); signal(SIGUSR2, sig_handler); memset(username, 0, sizeof(username)); - memset(password, 0, sizeof(username)); + memset(password, 0, sizeof(password)); #ifdef MAPPING memset(mapusername, 0, sizeof(mapusername)); + memset(origusername, 0, sizeof(origusername)); + memset(usernamebuf, 0, sizeof(usernamebuf)); #endif alarm(0); umask(0077); @@ -1216,6 +1232,10 @@ int main(int argc, char **argv) #ifdef MAPPING mapusername[0] = 0; if (domapping) { + if (sp_usermapprefix[0] != '\0') { + snprintf(usernamebuf, MAXARGLN, "%s%s", sp_usermapprefix, username); + strcpy(username,usernamebuf); + } /* map_finduser() doesn't overflow mapusername - sizeof(mapusername) = MAXARGLN + 1 */ if (((tmp = map_finduser(sp_mapfile, username, mapusername)) < 0) && \ (reqmapping)) { @@ -1348,8 +1368,14 @@ int main(int argc, char **argv) wait(NULL); check_logpriority(logpriority); #ifdef MAPPING - if (domapping) + if (domapping) { + strcpy(origusername,username); + if (sp_usermapprefix[0] != '\0') { + snprintf(usernamebuf, MAXARGLN, "%s%s", sp_usermapprefix, username); + strcpy(username,usernamebuf); + } userentry = getpwnam(mapusername); + } else userentry = getpwnam(username); #else -- debian/patches/11-parserloop.patch0000644000000000000000000000101211733651405014242 0ustar From: Robert Luberda Date: Wed, 28 Jan 2004 09:11:00 +0100 Subject: 11 parserloop Fix infinite loop in expand_dir (backpotred from 0.16d). --- src/main.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/src/main.c b/src/main.c index 8ec9867..15a26f9 100644 --- a/src/main.c +++ b/src/main.c @@ -345,6 +345,8 @@ int expand_dir(char *dir, char *homedir) { tmp = tmp2 + 3; break; default: ; + breakwhile = 1; + break; }; if (breakwhile) break; -- debian/patches/12-multiple-mailbox.patch0000644000000000000000000004122111733651405015347 0ustar From: "Adam D. Barratt" Date: Thu, 18 Nov 2004 11:33:38 +0000 Subject: 12 multiple mailbox Add support for multiple mailboxes per user (Bug#77711). --- doc/config.example | 2 + man/dot-spop3d.5 | 55 +++++++++++---- man/pop_auth.1 | 12 +++- man/spop3d.conf.5 | 7 ++ src/configfile.h | 1 + src/main.c | 26 +++++++- src/pop_auth.c | 192 +++++++++++++++++++++++++++++++++++++++++++++------- src/userconfig.c | 46 ++++++++----- 8 files changed, 281 insertions(+), 60 deletions(-) diff --git a/doc/config.example b/doc/config.example index 9958e95..645e434 100644 --- a/doc/config.example +++ b/doc/config.example @@ -4,7 +4,9 @@ MailDropName Maildir MailDropType maildir UserBullFile .spop3d-blurp /* It's just an example */ + UserMailDropDelimiter "+" ReadExpire 0 + UnreadExpire never diff --git a/man/dot-spop3d.5 b/man/dot-spop3d.5 index e62f808..643f2a2 100644 --- a/man/dot-spop3d.5 +++ b/man/dot-spop3d.5 @@ -26,30 +26,55 @@ dot-spop3d \- user configuration data for The Solid POP3 Server. .SH DESCRIPTION .PP -User can specify his maildrop (location and type) and APOP secret in ~/.spop3d -configuration file. You must set right mode (0600 - -rw-------) -for ~/.spop3d!!! -Maildrop specification consists of 3 parts, separated -by white space character: +A user can specify their maildrop location, type and associated APOP +secret in the configuration file ~/.spop3d. +.PP +The file must be set to mode 0600 (\-rw\-\-\-\-\-\-\-) or the server will not +honour its content. +.PP +Maildrop specification consists of three parts, separated +by white space characters: .TP \fIMailDrop\fP \fBpath type\fP .PP -\fBPath\fP argument should be specified in the same format as \fI-n\fP -option in +\fBPath\fP should be specified in the same format as the \fI-n\fP option in .BR spop3d (8). -\fBType\fP argument should be \fImailbox\fP or \fImaildir\fP. +\fBType\fP should be \fImailbox\fP or \fImaildir\fP. .PP -APOP secret specification contains word \fIAPOPSecret\fP followed by encrypted -secret. You shouldn't change this secret manually. Use -.BR pop_auth (1) -to do this. See +APOP secret specification consists of the word \fIAPOPSecret\fP followed +by an encrypted secret. You shouldn't change this secret manually. Use .BR pop_auth (1) -manual for more details on secret encryption!!! +to do this. +.PP +Both maildrop and APOP secret specifications may optionally be followed +by a mailbox name. This allows, for instance, user\fI+\fPboxA and user\fI+\fPboxB to +be used as login names to access different mailboxes, where \fI+\fP +means value of \fBUserMailDropDelimiter\fP server setting (see \fBspop3d.conf\fP(5)). +.PP +The APOP secret associated with a particular maildrop should be followed +with the same mailbox name (or lack thereof). If no secret is specified +for a maildrop then the user's standard POP password should be used to +authenticate instead. .SH EXAMPLE .RS .nf -MailDrop Mail/bugtraq mailbox -APOPSecret 0123456789 +MailDrop Mail/default mailbox +APOPSecret 2345678901 +MailDrop Mail/bugtraq mailbox bugtraq +APOPSecret 0123456789 bugtraq +MailDrop Mail/private mailbox private +APOPSecret 9876543210 private +.fi +.RE +.PP +To set the APOP secret for the above maildrops use the following +.BR pop_auth (1) +commands: +.RS +.nf +pop_auth +pop_auth bugtraq +pop_auth private .fi .RE .SH FILES diff --git a/man/pop_auth.1 b/man/pop_auth.1 index 4c3d3e5..f216668 100644 --- a/man/pop_auth.1 +++ b/man/pop_auth.1 @@ -27,6 +27,8 @@ pop_auth \- set an user's APOP secret .SH SYNOPSIS .PP .B pop_auth +[\-a] +[\fI!\fP | \fIname\fP ...] .SH DESCRIPTION .PP .B Pop_auth @@ -34,8 +36,16 @@ asks user for his APOP secret and stores this secret after encryption in ~/.spop3d file. Used encryption is very weak and protects only from curious system administrator who accidentialy looks at ~/.spop3d file. Don't use your account password as the APOP secret!!! +.PP +.B Pop_auth +will set APOP secret for all maildrop \fIname\fPs specified in the command line. +You can use the special \fI!\fP name to specifiy your default maildrop. +If called without any arguments, +.B pop_auth +will set APOP secret for the default maildrop. .SH OPTIONS -No options are recognized. +.IP "\-a" +Set the same APOP secret for all maildrops definied in ~/.spop3d .SH FILES .IP "~/.spop3d" User configuration file. APOP secret is written here. diff --git a/man/spop3d.conf.5 b/man/spop3d.conf.5 index 7dd016d..2579b10 100644 --- a/man/spop3d.conf.5 +++ b/man/spop3d.conf.5 @@ -104,6 +104,13 @@ This option is not available in the Debian package. Allow users specify their maildrops (path and type) and APOP secrets. It's enabled by default. .TP +.B UserMailDropDelimiter string +Specify character used to separate different maildrops for user. +If set, user can access different maildrops, as defined in their ~/.spop3d file, +logging as "user_name\fIUserMailDropDelimiter\fRmaildrop_name" +(e.g. user+private, if the \fIUserMailDropDelimiter\fR is set to \fI+\fR) +Default is empty (disables support for multiple mailboxes per user). +.TP .B AllowAPOP boolean Users can authenticate themselves with APOP scheme. It's enabled by default. .TP diff --git a/src/configfile.h b/src/configfile.h index f297977..70d5799 100644 --- a/src/configfile.h +++ b/src/configfile.h @@ -82,6 +82,7 @@ extern char logpriority[]; extern int logstatistics; #endif extern int allowuser; +extern char usermd_delim[2]; struct str_option { char *name; diff --git a/src/main.c b/src/main.c index 15a26f9..9c0a7dd 100644 --- a/src/main.c +++ b/src/main.c @@ -190,6 +190,7 @@ struct str_option options_set[] = #endif {"LogPriority", OP_STRING, &logpriority, 64, check_logpriority}, {"AllowUser", OP_BOOLEAN, &allowuser, 0, NULL}, + {"UserMailDropDelimiter", OP_STRING, &usermd_delim, 2, NULL}, {NULL, 0, NULL, 0, NULL} }; @@ -197,6 +198,8 @@ int allowuser = 1; int connection_state; char username[MAXARGLN + 1]; char password[MAXARGLN + 1]; +char usersuffix[MAXARGLN + 1]; +char usermd_delim[2] = ""; char buf[MAXCMDLN + 1]; size_t count = 0; struct str_maildrop *maildrop; @@ -1034,8 +1037,9 @@ int main(int argc, char **argv) socklen_t addrln; struct rlimit corelimit = {0, 0}; struct passwd *spop3d, *userentry; - int tmp, tmp2; + int tmp, tmp2, tmp3; gid_t tmpgid; + char *suffix; #ifdef APOP int useapop; #endif @@ -1231,6 +1235,16 @@ int main(int argc, char **argv) }; }; #endif + memset(usersuffix, 0, sizeof(usersuffix)); + if (usermd_delim[0]) { + suffix = strchr(username, usermd_delim[0]); + if (suffix != NULL) { + tmp3 = suffix - username + 1; + strncpy (usersuffix, suffix + 1, sizeof(usersuffix)); + username[tmp3-1] = 0; + tmp3 = 0; + }; + } #ifdef MAPPING mapusername[0] = 0; if (domapping) { @@ -1369,6 +1383,16 @@ int main(int argc, char **argv) close(tunnel[0]); wait(NULL); check_logpriority(logpriority); + memset(usersuffix, 0, sizeof(usersuffix)); + if (usermd_delim[0]) { + suffix = strchr(username, usermd_delim[0]); + if (suffix != NULL) { + tmp3 = suffix - username + 1; + strncpy (usersuffix, suffix + 1, sizeof(usersuffix)); + username[tmp3-1] = 0; + tmp3 = 0; + }; + } #ifdef MAPPING if (domapping) { strcpy(origusername,username); diff --git a/src/pop_auth.c b/src/pop_auth.c index b49a0b3..9c26240 100644 --- a/src/pop_auth.c +++ b/src/pop_auth.c @@ -39,6 +39,105 @@ static const char rcsid[] = "$Id: pop_auth.c,v 1.2 2000/04/28 16:58:55 jurekb Ex #include "maildrop.h" #include "fdfgets.h" +typedef struct suffixes { + char* suffix; /* maildrop suffix name */ + char* apop_sec; /* apop secret for maildrop */ + char* mdrop_type; /* maildrop type: mailbox or maildir */ + char* mdrop_path; /* maildrop path */ + int flag; /* should we set new apop secret for this maildrop */ + struct suffixes* next; /* next maildrop */ +} suffixes; + +char * xstrdup( char* s ) { + s = strdup(s ? s : ""); + if (!s) { + fprintf(stderr, "cant' allocate memory\n"); + exit(1); + } + return s; +} + +/* adds new suffix definition to list; note the list is sorted on the suffix field */ +void add_suffix(suffixes **head, char* suffix, char* apop_sec, char* mdrop_type, char* mdrop_path) +{ + suffixes *p, *q; + int r; + + if (!suffix) { + suffix = ""; + } + + p = *head; + q = NULL; /* q is one before p, i.e. q->next == p */ + r = 1; + while (p) { + r = strcmp(p->suffix, suffix); + if (r < 0) { + q = p; + p = p->next; + } else { + break; + } + } + + if ((r == 0) && (mdrop_type && p->mdrop_type)) { + fprintf(stderr, "%s already set%s%s\n", + (mdrop_type) ? "Maildrop" : "APOP secret", + *suffix ? " for suffix" : "" , + *suffix ? suffix : "" ); + exit(1); + } + + if ( r != 0 ) { + /* have to add new */ + p = (suffixes*) malloc( sizeof(suffixes) ); + if (!p) { + fprintf(stderr, "can't allocate memory\n"); + exit(1); + } + + memset(p, 0, sizeof(suffixes)); + p->suffix = xstrdup(suffix); + if (!q) { + p->next = *head; + *head = p; + } else { + p->next = q->next; + q->next = p; + } + } + + if (mdrop_type) { + p->mdrop_type = xstrdup(mdrop_type); + p->mdrop_path = xstrdup(mdrop_path); + } else if(apop_sec) { + p->apop_sec = xstrdup(apop_sec); + } else { + p->flag = 1; + } +} + + +void parse_args(suffixes ** head, int argc, char** argv, int * for_all) +{ + char * op; + if (argc == 1) { + add_suffix(head, "", NULL, NULL, NULL); + } + while (--argc) { + op = argv[argc]; + if (!strcmp(op, "-a")) { + *for_all = 1; + continue; + } else if (!strcmp(op, "!")) { + op = ""; + } + add_suffix(head, op, NULL, NULL, NULL); + } +} + + + int main(int argc, char **argv) { int fd, md_set = 0, linenr, fret; ssize_t tmp; @@ -47,12 +146,16 @@ int main(int argc, char **argv) { char *pass; char passcopy[MAXARGLN + 1]; char txtbuff[256], buf[128]; + char apop_sec[128];; struct rlimit corelimit = {0, 0}; char cfgfile[PATH_MAX]; struct stat stbuf; char *tmp2; - char tmpmaildrop_type[MAXMDTYPENAMELENGTH], tmpmaildrop_name[PATH_MAX]; + char tmpmaildrop_type[MAXMDTYPENAMELENGTH], tmpmaildrop_name[PATH_MAX], tmpapop_sec[256]; static char digits[] = "0123456789abcdef"; + struct suffixes * suffix_head = NULL, * p = NULL; + int for_all = 0; + if (setrlimit(RLIMIT_CORE, &corelimit) < 0) { perror("setrlimit"); @@ -62,10 +165,14 @@ int main(int argc, char **argv) { fprintf(stderr, "can't find user with UID: %u\n", getuid()); return 1; }; + + parse_args(&suffix_head, argc, argv, &for_all); + username[0] = 0; strncat(username, pwentry->pw_name, 8); if (strlen(pwentry->pw_name) > 8) fprintf(stderr, "Warning: username truncated\n"); + snprintf(txtbuff, sizeof(txtbuff), "Enter NEW password for user %.40s: ", username); pass = getpass(txtbuff); passcopy[0] = 0; @@ -80,6 +187,16 @@ int main(int argc, char **argv) { fprintf(stderr, "Passwords don't match\n"); return 1; }; + + memset(apop_sec, 0, sizeof(apop_sec)); + tmp2 = apop_sec; + for (tmp = 0; tmp < strlen(passcopy); tmp++) { + passcopy[tmp] ^= 0xff; + tmp2[tmp * 2] = digits[(passcopy[tmp] >> 4) & 0x0f]; + tmp2[(tmp * 2) + 1] = digits[passcopy[tmp] & 0x0f]; + }; + memset(passcopy, 0, strlen(passcopy)); + if (stat(pwentry->pw_dir, &stbuf) < 0) { memset(passcopy, 0, strlen(passcopy)); fprintf(stderr, "can't stat user home directory: %.1024s", pwentry->pw_dir); @@ -192,47 +309,72 @@ int main(int argc, char **argv) { fprintf(stderr, "no such maildrop type: %.40s", tmp2); return 1; }; + strcpy(tmpmaildrop_type, tmp2); - md_set = 1; + tmp2 = strtok(NULL, " \t"); + add_suffix(&suffix_head, tmp2, NULL, tmpmaildrop_name, tmpmaildrop_type); + continue; }; if (strcasecmp(buf, "APOPSecret") == 0) + { + if ((tmp2 = strtok(NULL, " \t")) != NULL) { + strcpy(tmpapop_sec, tmp2); + tmp2 = strtok(NULL, " \t"); + add_suffix(&suffix_head, tmp2, tmpapop_sec, NULL, NULL); + } + continue; + } memset(passcopy, 0, strlen(passcopy)); close(fd); fprintf(stderr, "unknown option name, line: %u", linenr); return 1; }; + if (lseek(fd, 0, SEEK_SET) < 0) { memset(passcopy, 0, strlen(passcopy)); close(fd); perror("lseek"); return 1; }; - if (md_set == 1) { - snprintf(txtbuff, sizeof(txtbuff), "MailDrop %.100s %.100s\n", tmpmaildrop_name, tmpmaildrop_type); - if (write(fd, txtbuff, strlen(txtbuff)) < 0) { - memset(passcopy, 0, strlen(passcopy)); - close(fd); - perror("write"); - return 1; + + p = suffix_head; + while (p) { + if (p->mdrop_type && p->mdrop_path) { + snprintf(txtbuff, sizeof(txtbuff), "MailDrop %.100s %.100s %.100s\n", + p->mdrop_type, + p->mdrop_path, + p->suffix); + if (write(fd, txtbuff, strlen(txtbuff)) < 0) { + memset(passcopy, 0, strlen(passcopy)); + close(fd); + perror("write"); + return 1; + }; }; - }; - memset(txtbuff, 0, sizeof(txtbuff)); - strcpy(txtbuff, "APOPSecret "); - tmp2 = txtbuff + strlen(txtbuff); - for (tmp = 0; tmp < strlen(passcopy); tmp++) { - passcopy[tmp] ^= 0xff; - tmp2[tmp * 2] = digits[(passcopy[tmp] >> 4) & 0x0f]; - tmp2[(tmp * 2) + 1] = digits[passcopy[tmp] & 0x0f]; - }; - memset(passcopy, 0, strlen(passcopy)); - strcat(txtbuff, "\n"); - if (write(fd, txtbuff, strlen(txtbuff)) < 0) { - memset(txtbuff, 0, strlen(txtbuff)); - close(fd); - perror("write"); - return 1; + p = p->next; + } + + p = suffix_head; + while (p) { + if (for_all || p->flag || p->apop_sec) { + memset(txtbuff, 0, sizeof(txtbuff)); + snprintf(txtbuff, sizeof(txtbuff), "APOPSecret %.100s %.100s\n", + for_all || p->flag ? apop_sec : p->apop_sec, + p->suffix); + if (*p->suffix && !p->mdrop_type) + fprintf(stderr, "Warning: no maildrop definition for `%.50s'\n", p->suffix); + + if (write(fd, txtbuff, strlen(txtbuff)) < 0) { + memset(txtbuff, 0, strlen(txtbuff)); + close(fd); + perror("write"); + return 1; + }; + + }; + p = p->next; }; memset(txtbuff, 0, strlen(txtbuff)); if ((tmp = lseek(fd, 0, SEEK_CUR)) < 0) { diff --git a/src/userconfig.c b/src/userconfig.c index 193f508..efd95bb 100644 --- a/src/userconfig.c +++ b/src/userconfig.c @@ -30,6 +30,7 @@ static const char rcsid[] = "$Id: userconfig.c,v 1.3 2000/04/28 16:58:55 jurekb extern char maildrop_name[]; extern char maildrop_type[]; +extern char usersuffix[]; #ifdef APOP extern char apop_secret[]; #endif @@ -121,12 +122,6 @@ void parse_user_cfg(char *homedir) { buf[tmp - 1] = 0; strtok(buf, " \t"); if (strcasecmp(buf, "maildrop") == 0) { - if (md_set == 1) { - memset(buf, 0, sizeof(buf)); - close(fd); - pop_log(pop_priority, "user config: maildrop already set in user config file"); - return; - }; if ((tmp2 = strtok(NULL, " \t")) == NULL) { memset(buf, 0, sizeof(buf)); close(fd); @@ -165,17 +160,24 @@ void parse_user_cfg(char *homedir) { return; }; strcpy(tmpmaildrop_type, tmp2); - md_set = 1; + if ((((tmp2 = strtok(NULL, " \t")) == NULL) && (usersuffix[0] == 0)) || + ((tmp2 != NULL) && (usersuffix[0] != 0) && (strcasecmp(tmp2,usersuffix) == 0))) { + if (md_set == 1) { + memset(buf, 0, sizeof(buf)); + close(fd); + pop_log(pop_priority, "user config: maildrop already set in user config file"); + return; + }; + + md_set = 1; + strcpy(maildrop_name, tmpmaildrop_name); + strcpy(maildrop_type, tmpmaildrop_type); + }; + continue; }; #ifdef APOP if (strcasecmp(buf, "APOPsecret") == 0) { - if (as_set == 1) { - memset(buf, 0, sizeof(buf)); - close(fd); - pop_log(pop_priority, "user config: APOP secret already set in user config file"); - return; - }; if ((tmp2 = strtok(NULL, " \t")) == NULL) { memset(buf, 0, sizeof(buf)); close(fd); @@ -215,7 +217,19 @@ void parse_user_cfg(char *homedir) { tmpapop_secret[tmp3] |= (tmp2[(tmp3 * 2) + 1] - 'a' + 10); tmpapop_secret[tmp3] ^= 0xff; }; - as_set = 1; + if ((((tmp2 = strtok(NULL, " \t")) == NULL) && (usersuffix[0] == 0)) + || ((tmp2 != NULL) && (usersuffix[0] != 0) && (strcasecmp(tmp2,usersuffix) == 0))) { + if (as_set == 1) { + memset(buf, 0, sizeof(buf)); + close(fd); + pop_log(pop_priority, "user config: APOP secret already set in user config file"); + return; + }; + + strcpy(apop_secret, tmpapop_secret); + as_set = 1; + }; + continue; }; memset(tmpapop_secret, 0, sizeof(tmpapop_secret)); @@ -227,12 +241,8 @@ void parse_user_cfg(char *homedir) { }; close(fd); if (md_set == 1) { - strcpy(maildrop_name, tmpmaildrop_name); - strcpy(maildrop_type, tmpmaildrop_type); }; #ifdef APOP - if (as_set == 1) - strcpy(apop_secret, tmpapop_secret); memset(tmpapop_secret, 0, sizeof(tmpapop_secret)); #endif return; -- debian/patches/13-max-sessions.patch0000644000000000000000000000100411733651405014510 0ustar From: Robert Luberda Date: Wed, 29 Dec 2004 23:59:00 +0100 Subject: 13 max sessions Raise MAX_SESSIONS (Bug#285495) --- src/const.h | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/src/const.h b/src/const.h index 75de5b0..be4068c 100644 --- a/src/const.h +++ b/src/const.h @@ -54,7 +54,7 @@ #define POPUSER "spop3d" #define PER_SOURCE 5 -#define MAX_SESSIONS 50 +#define MAX_SESSIONS 256 #define SOCKET_SYN_QUEUE 5 #define MIN_DELAY 50 #define POP3_PORT 110 -- debian/patches/14-gcc-4.0-amd64.patch0000644000000000000000000000172411733651405014035 0ustar From: Andreas Jochens Date: Fri, 14 Jan 2005 10:20:13 +0100 Subject: 14 gcc 4.0 amd64 Fix FTBFS (amd64/gcc-4.0): invalid lvalue in assignment (Bug#290462). --- src/standalone.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/standalone.c b/src/standalone.c index a328914..1d01c00 100644 --- a/src/standalone.c +++ b/src/standalone.c @@ -76,7 +76,7 @@ void chld_handler(void) { while ((spid = waitpid(0, NULL, WNOHANG)) > 0) for (tmp = 0; tmp < MAX_SESSIONS; tmp++) if (sessions[tmp].pid == spid) { - (volatile pid_t) sessions[tmp].pid = 0; + sessions[tmp].pid = 0; break; }; } @@ -326,7 +326,7 @@ sizeof(ntopbuff)), "::ffff:", 7) == 0) ? ntopbuff + 7 : ntopbuff); #else sessions[freeentry].addr = address.sin_addr; #endif - (volatile pid_t) sessions[freeentry].pid = spid; + sessions[freeentry].pid = spid; sessions[freeentry].start = now; sessions[freeentry].log = 0; }; -- debian/patches/15-gcc-warning.patch0000644000000000000000000000107211733651405014265 0ustar From: Robert Luberda Date: Sun, 6 Nov 2005 16:15:00 +0100 Subject: 15 gcc warning Fix for `implicit declaration of memcpy' gcc warnings --- src/md5.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/src/md5.c b/src/md5.c index 931119b..408ef3d 100644 --- a/src/md5.c +++ b/src/md5.c @@ -22,7 +22,7 @@ #include -#if 0 /* Get rid of implicit bcopy declaration warnings */ +#if 1 /* Get rid of implicit bcopy declaration warnings */ #if STDC_HEADERS || defined _LIBC #include #endif -- debian/patches/16-manpages-hyphens.patch0000644000000000000000000000357211733651405015345 0ustar From: Robert Luberda Date: Sat, 19 Apr 2008 18:38:00 +0200 Subject: 16 manpages hyphens Fix hyphens in man pages (lintian) --- man/spop3d.8 | 22 +++++++++++----------- 1 files changed, 11 insertions(+), 11 deletions(-) diff --git a/man/spop3d.8 b/man/spop3d.8 index 8b3d7e5..2f1691e 100644 --- a/man/spop3d.8 +++ b/man/spop3d.8 @@ -27,11 +27,11 @@ spop3d \- The Solid POP3 Server .SH SYNOPSIS .PP .B spop3d -[-rd] -[-n \fImaildropfile\fP] -[-t \fImaildroptype\fP] -[-a \fItime\fP] -[-f \fIconfigfile\fP] +[\-rd] +[\-n \fImaildropfile\fP] +[\-t \fImaildroptype\fP] +[\-a \fItime\fP] +[\-f \fIconfigfile\fP] .SH DESCRIPTION .PP The Solid POP3 Server is an implementation of the Post Office Protocol server @@ -40,7 +40,7 @@ bulletins and few other things. It can work as inetd or standalone server. See README for more details. .SH OPTIONS .PP -.IP "-n \fImaildropfile\fP" +.IP "\-n \fImaildropfile\fP" Specify a maildrop file (or directory). The following strings beginning with .BR % character are recognized and replaced: @@ -84,7 +84,7 @@ or .I Maildir when mailbox support is not compiled in. .RE -.IP "-t \fImaildroptype\fP" +.IP "\-t \fImaildroptype\fP" Specify a maildrop type. .I mailbox and @@ -94,7 +94,7 @@ are supported. The default is or .I maildir when mailbox support is not compiled in. -.IP "-a \fItime\fP" +.IP "\-a \fItime\fP" Specify an autologout time. The following suffixes are recognized: .RS .TP @@ -115,12 +115,12 @@ the time is specified in weeks .PP Seconds are used if no suffix is present. The default value is 2 minutes. .RE -.IP "-f \fIconfigfile\fP" +.IP "\-f \fIconfigfile\fP" Specify a configuration file. The default is .I ${sysconfdir}/spop3d.conf -.IP "-d" +.IP "\-d" Set server into debugging mode. -.IP "-r" +.IP "\-r" Allow root login. This feature is disabled by default and shouldn't be used. .SH FILES .PP -- debian/patches/17-close-fds.patch0000644000000000000000000000135411733651405013752 0ustar From: Robert Luberda Date: Sat, 5 Feb 2011 00:36:00 +0100 Subject: 17 close fds Redirect standard input/output/error to /dev/null and close any other file descriptors. --- src/standalone.c | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-) diff --git a/src/standalone.c b/src/standalone.c index 1d01c00..94faec5 100644 --- a/src/standalone.c +++ b/src/standalone.c @@ -120,6 +120,13 @@ int main(int argc, char **argv) { else { standalone = 1; } + + for (tmp = getdtablesize(); tmp >= 0 ; --tmp) + close(tmp); + if (open("/dev/null", O_RDWR) == STDIN_FILENO) { + dup2(STDIN_FILENO, STDOUT_FILENO); + dup2(STDIN_FILENO, STDERR_FILENO); + } #endif pop_openlog(); if (atexit(pop_closelog) < 0) { -- debian/patches/18-init-fix.patch0000644000000000000000000000177411733651405013631 0ustar From: Robert Luberda Date: Sat, 5 Feb 2011 00:36:00 +0100 Subject: 18 init fix Fix warning caused by 08-init.patch --- src/standalone.c | 9 +++++++-- 1 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/standalone.c b/src/standalone.c index 94faec5..2a8496f 100644 --- a/src/standalone.c +++ b/src/standalone.c @@ -108,8 +108,13 @@ int main(int argc, char **argv) { #if defined(DEBIAN) && defined(STANDALONE) /* Basic code pinched from Exim4's inetd detection */ - if (getpeername(0, (struct sockaddr *)(&address), &tmpaddrln) == 0 ) { - int family = ((struct sockaddr *)(&address))->sa_family; +#ifdef SPIPV6 + if (getpeername(0, (struct sockaddr *)&address.saddr_in6, &tmpaddrln) == 0) { + int family = address.saddr_in6.sin6_family;; +#else + if (getpeername(0, (struct sockaddr *)&address, &tmpaddrln) == 0) { + int family = address.sin_family;; +#endif standalone = !(family == AF_INET || family == AF_INET6); if (!standalone) { do_session(argc,argv); -- debian/patches/19-gcc-warnings.patch0000644000000000000000000000544511733651405014464 0ustar From: Robert Luberda Date: Sat, 5 Feb 2011 00:36:00 +0100 Subject: 19 gcc warnings Fix various gcc warnings. --- src/mailbox.c | 4 ++-- src/maildir.c | 7 ++++--- src/main.c | 5 ++++- src/standalone.c | 5 ++++- 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/mailbox.c b/src/mailbox.c index 36774fe..548ef0d 100644 --- a/src/mailbox.c +++ b/src/mailbox.c @@ -390,11 +390,11 @@ int mb_parse(int compare) { struct mb_message *tmp; struct md5_ctx context; int tmpmsgnr = 0; - time_t tmpmsg_time; + time_t tmpmsg_time = 0; off_t tmpfrom_where = 0, tmpwhere = 0; size_t tmpfrom_size = 0, tmpsize = 0, tmpcrlfsize = 0; char tmpdigest[16]; - int newline = 1, header, fixed; + int newline = 1, header = 0, fixed = 0; if (compare) if (lseek(mailboxfd, 0, SEEK_SET) < 0) { diff --git a/src/maildir.c b/src/maildir.c index 0b0a538..58523b9 100644 --- a/src/maildir.c +++ b/src/maildir.c @@ -58,6 +58,7 @@ static const char rcsid[] = "$Id: maildir.c,v 1.5 2000/05/13 13:25:52 jurekb Exp #include #endif #endif +#include extern void check_wccount(void); @@ -118,7 +119,7 @@ int mdir_add_message(int fd) { pid_t ntmppid = getpid() + nnomsg; time_t tmptime = time(NULL); int nmsgfd; - ssize_t mcount, tmp; + ssize_t mcount = 0 , tmp = 0; char linebuf[128]; if (mdir_exists == 0) { @@ -134,7 +135,7 @@ doesn't exist"); exit(1); }; do { - snprintf(msgname, sizeof(msgname), "tmp/%u.%u.%.256s", tmptime, tmppid, hstname); + snprintf(msgname, sizeof(msgname), "tmp/%ju.%u.%.256s", (uintmax_t)tmptime, tmppid, hstname); if ((strlen(msgname) + strlen(maildrop_name) + 2) > sizeof(filename)) { close(fd); pop_log(pop_priority, "maildir: message file name is too long"); @@ -257,7 +258,7 @@ doesn't exist"); exit(1); }; do { - snprintf(msgname, sizeof(msgname), "new/%u.%u.%.256s", tmptime, ntmppid, hstname); + snprintf(msgname, sizeof(msgname), "new/%ju.%u.%.256s", (uintmax_t)tmptime, ntmppid, hstname); if ((strlen(msgname) + strlen(maildrop_name) + 2) > sizeof(nfilename)) { close(fd); unlink(filename); diff --git a/src/main.c b/src/main.c index 9c0a7dd..b1ad812 100644 --- a/src/main.c +++ b/src/main.c @@ -1075,7 +1075,10 @@ int main(int argc, char **argv) #endif alarm(0); umask(0077); - chdir("/"); + if (chdir("/") < 0) { + pop_error("chdir"); + exit(1); + }; #if defined(DEBIAN) && defined(STANDALONE) if (!standalone) { diff --git a/src/standalone.c b/src/standalone.c index 2a8496f..7273748 100644 --- a/src/standalone.c +++ b/src/standalone.c @@ -143,7 +143,10 @@ int main(int argc, char **argv) { pop_error("setrlimit"); exit(1); }; - chdir("/"); + if (chdir("/") < 0) { + pop_error("socket"); + exit(1); + }; signal(SIGCHLD, sa_sig_handler); #ifdef SPIPV6 -- debian/patches/series0000644000000000000000000000057711733651405012050 0ustar 02-configure.patch 03-debian-base.patch 04-liblockfile.patch 05-unlock.patch 06-autologout-username.patch 07-allowuser.patch 08-init.patch 09-authmappeduser.patch 10-usermapprefix.patch 11-parserloop.patch 12-multiple-mailbox.patch 13-max-sessions.patch 14-gcc-4.0-amd64.patch 15-gcc-warning.patch 16-manpages-hyphens.patch 17-close-fds.patch 18-init-fix.patch 19-gcc-warnings.patch debian/po/0000755000000000000000000000000011733651405007611 5ustar debian/po/POTFILES.in0000644000000000000000000000004411733651405011364 0ustar [type: gettext/rfc822deb] templates debian/po/cs.po0000644000000000000000000000304311733651405010556 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: solid-pop3d\n" "Report-Msgid-Bugs-To: solid-pop3d@packages.debian.org\n" "POT-Creation-Date: 2011-02-04 20:31+0100\n" "PO-Revision-Date: 2005-03-08 18:00+0100\n" "Last-Translator: Miroslav Kure \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: select #. Choices #: ../templates:1001 msgid "inetd" msgstr "inetd" #. Type: select #. Choices #: ../templates:1001 msgid "daemon" msgstr "daemon" #. Type: select #. Description #: ../templates:1002 msgid "How do you want to run solid-pop3d?" msgstr "Jak se m solid-pop3d spoutt?" #. Type: select #. Description #: ../templates:1002 msgid "" "The solid-pop3d POP server can run as a standalone daemon or from inetd. " "Running from inetd is the recommended approach." msgstr "" "POP server solid-pop3d me bet jako samostatn daemon, nebo se me " "spoutt z inetd. Spoutn z inetd je doporuen zpsob." debian/po/da.po0000644000000000000000000000242011733651405010533 0ustar # Danish translation solid-pop3d. # Copyright (C) 2011 solid-pop3d & nedenstående oversættere. # This file is distributed under the same license as the solid-pop3d package. # Joe Hansen , 2011. # msgid "" msgstr "" "Project-Id-Version: solid-pop3d\n" "Report-Msgid-Bugs-To: solid-pop3d@packages.debian.org\n" "POT-Creation-Date: 2011-02-04 20:31+0100\n" "PO-Revision-Date: 2011-12-04 22:21+0100\n" "Last-Translator: Joe Hansen \n" "Language-Team: Danish \n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: select #. Choices #: ../templates:1001 msgid "inetd" msgstr "inetd" #. Type: select #. Choices #: ../templates:1001 msgid "daemon" msgstr "dæmon" #. Type: select #. Description #: ../templates:1002 msgid "How do you want to run solid-pop3d?" msgstr "Hvordan ønsker du at køre solid-pop3d?" #. Type: select #. Description #: ../templates:1002 msgid "" "The solid-pop3d POP server can run as a standalone daemon or from inetd. " "Running from inetd is the recommended approach." msgstr "" "solid-pop3d POP-serveren kan køre som en uafhængig dæmon eller fra inetd. " "Kørsel fra inetd er den anbefalede fremgangsmåde." debian/po/de.po0000644000000000000000000000330611733651405010543 0ustar # translation of de.po to German # # 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. # Jens Nachtigall , 2004. # msgid "" msgstr "" "Project-Id-Version: de\n" "Report-Msgid-Bugs-To: solid-pop3d@packages.debian.org\n" "POT-Creation-Date: 2011-02-04 20:31+0100\n" "PO-Revision-Date: 2004-10-31 01:03+0200\n" "Last-Translator: Jens Nachtigall \n" "Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.3.1\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. Type: select #. Choices #: ../templates:1001 msgid "inetd" msgstr "inetd" #. Type: select #. Choices #: ../templates:1001 msgid "daemon" msgstr "Daemon" #. Type: select #. Description #: ../templates:1002 msgid "How do you want to run solid-pop3d?" msgstr "Wie soll solid-pop3d gestartet werden?" #. Type: select #. Description #: ../templates:1002 msgid "" "The solid-pop3d POP server can run as a standalone daemon or from inetd. " "Running from inetd is the recommended approach." msgstr "" "Der POP-Server solid-pop3d kann als eigener Daemon oder über inetd gestartet " "werden. Das Starten über inetd ist die empfohlene Art." debian/po/es.po0000644000000000000000000000404211733651405010560 0ustar # solid-pop3d po-debconf translation to Spanish # Copyright (C) 2009 Software in the Public Interest # This file is distributed under the same license as the PAQUETE package. # # Changes: # - Initial translation # Omar Campagne , 2009 # # - Updates # TRADUCTOR , AÑO # # Traductores, si no conocen el formato PO, merece la pena leer la # 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: 0.15-21 \n" "Report-Msgid-Bugs-To: solid-pop3d@packages.debian.org\n" "POT-Creation-Date: 2011-02-04 20:31+0100\n" "PO-Revision-Date: 2009-07-05 16:00+0200\n" "Last-Translator: Omar Campagne \n" "Language-Team: Spanish \n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: select #. Choices #: ../templates:1001 msgid "inetd" msgstr "inetd" #. Type: select #. Choices #: ../templates:1001 msgid "daemon" msgstr "demonio" #. Type: select #. Description #: ../templates:1002 msgid "How do you want to run solid-pop3d?" msgstr "¿Cómo desea ejecutar solid-pop3d?" #. Type: select #. Description #: ../templates:1002 msgid "" "The solid-pop3d POP server can run as a standalone daemon or from inetd. " "Running from inetd is the recommended approach." msgstr "" "El servidor POP solid-pop3d se puede ejecutar como demonio independiente o " "desde inetd. Se recomienda ejecutarlo desde inetd." debian/po/fr.po0000644000000000000000000000304011733651405010555 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: solid-pop3d 1.5-8\n" "Report-Msgid-Bugs-To: solid-pop3d@packages.debian.org\n" "POT-Creation-Date: 2011-02-04 20:31+0100\n" "PO-Revision-Date: 2004-02-10 23:02+0100\n" "Last-Translator: Rmi Pannequin \n" "Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=iso-8859-1\n" "Content-Transfer-Encoding: 8bit\n" #. Type: select #. Choices #: ../templates:1001 msgid "inetd" msgstr "inetd" #. Type: select #. Choices #: ../templates:1001 msgid "daemon" msgstr "dmon" #. Type: select #. Description #: ../templates:1002 msgid "How do you want to run solid-pop3d?" msgstr "Mthode de dmarrage de solid-pop3d :" #. Type: select #. Description #: ../templates:1002 msgid "" "The solid-pop3d POP server can run as a standalone daemon or from inetd. " "Running from inetd is the recommended approach." msgstr "" "Le serveur POP solid-pop3d peut fonctionner comme un dmon, ou bien tre " "lanc depuis le superserveur inetd. Utiliser inetd est le choix recommand." debian/po/ja.po0000644000000000000000000000311311733651405010541 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: solid-pop3d 0.15-9\n" "Report-Msgid-Bugs-To: solid-pop3d@packages.debian.org\n" "POT-Creation-Date: 2011-02-04 20:31+0100\n" "PO-Revision-Date: 2004-05-16 12:08+0900\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: select #. Choices #: ../templates:1001 msgid "inetd" msgstr "inetd" #. Type: select #. Choices #: ../templates:1001 msgid "daemon" msgstr "ǡ" #. Type: select #. Description #: ../templates:1002 msgid "How do you want to run solid-pop3d?" msgstr "ɤΤ褦ˤ solid-pop3d ưޤ?" #. Type: select #. Description #: ../templates:1002 msgid "" "The solid-pop3d POP server can run as a standalone daemon or from inetd. " "Running from inetd is the recommended approach." msgstr "" "solid-pop3d POP ФϡɥʥǡȤƤεưޤ inetd " "εưǽǤinetd εưΤǤ" debian/po/nl.po0000644000000000000000000000244411733651405010566 0ustar # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE 'S COPYRIGHT HOLDER # This file is distributed under the same license as the package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: solid-pop3d\n" "Report-Msgid-Bugs-To: solid-pop3d@packages.debian.org\n" "POT-Creation-Date: 2011-02-04 20:31+0100\n" "PO-Revision-Date: 2007-10-26 13:28+0100\n" "Last-Translator: Bart Cornelis \n" "Language-Team: debian-l10n-dutch \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: Dutch\n" #. Type: select #. Choices #: ../templates:1001 msgid "inetd" msgstr "inetd" #. Type: select #. Choices #: ../templates:1001 msgid "daemon" msgstr "achtergronddienst" #. Type: select #. Description #: ../templates:1002 msgid "How do you want to run solid-pop3d?" msgstr "Hoe wilt u solid-pop3d uitvoeren?" #. Type: select #. Description #: ../templates:1002 msgid "" "The solid-pop3d POP server can run as a standalone daemon or from inetd. " "Running from inetd is the recommended approach." msgstr "" "De solid-pop3d POP-server kan als een alleenstaande achtergronddienst of via " "inetd uitgevoerd worden. Uitvoeren via inetd is de aanbevolen opzet." debian/po/pl.po0000644000000000000000000000310011733651405010556 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: solidpop3d 0.15-24\n" "Report-Msgid-Bugs-To: solid-pop3d@packages.debian.org\n" "POT-Creation-Date: 2011-02-04 20:31+0100\n" "PO-Revision-Date: 2011-02-04 20:40+0100\n" "Last-Translator: Robert Luberda \n" "Language-Team: Polish \n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: select #. Choices #: ../templates:1001 msgid "inetd" msgstr "inetd" #. Type: select #. Choices #: ../templates:1001 msgid "daemon" msgstr "usługa systemowa" #. Type: select #. Description #: ../templates:1002 msgid "How do you want to run solid-pop3d?" msgstr "Jak powinien być uruchamiany solid-pop3d?" #. Type: select #. Description #: ../templates:1002 msgid "" "The solid-pop3d POP server can run as a standalone daemon or from inetd. " "Running from inetd is the recommended approach." msgstr "" "Serwer solid-pop3d może być uruchomiony jako usługa systemowa albo przez inetd. " "Zalecane jest uruchamianie przez inetd." debian/po/pt.po0000644000000000000000000000232511733651405010576 0ustar # Portuguese translation for solid-pop3d's debconf messages. # Released under the same license as the solid-pop3d package. # Luísa Lourenço , 2006. # msgid "" msgstr "" "Project-Id-Version: solid-pop3d\n" "Report-Msgid-Bugs-To: solid-pop3d@packages.debian.org\n" "POT-Creation-Date: 2011-02-04 20:31+0100\n" "PO-Revision-Date: 2006-08-03 14:25+0000\n" "Last-Translator: Luísa Lourenço \n" "Language-Team: Portuguese \n" "Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: select #. Choices #: ../templates:1001 msgid "inetd" msgstr "inetd" #. Type: select #. Choices #: ../templates:1001 msgid "daemon" msgstr "daemon" #. Type: select #. Description #: ../templates:1002 msgid "How do you want to run solid-pop3d?" msgstr "Como deseja correr o solid-pop3d?" #. Type: select #. Description #: ../templates:1002 msgid "" "The solid-pop3d POP server can run as a standalone daemon or from inetd. " "Running from inetd is the recommended approach." msgstr "" "O servidor de POP do solid-pop3d pode correr como um daemon independente ou " "pelo inetd. Correr pelo inetd é a maneira recomendada." debian/po/ru.po0000644000000000000000000000312611733651405010601 0ustar # translation of solid-pop3d_0.15-22_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: solid-pop3d 0.15-22\n" "Report-Msgid-Bugs-To: solid-pop3d@packages.debian.org\n" "POT-Creation-Date: 2011-02-04 20:31+0100\n" "PO-Revision-Date: 2009-09-15 20:40+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: select #. Choices #: ../templates:1001 msgid "inetd" msgstr "inetd" #. Type: select #. Choices #: ../templates:1001 msgid "daemon" msgstr "самостоятельная служба" #. Type: select #. Description #: ../templates:1002 msgid "How do you want to run solid-pop3d?" msgstr "Как должен запускаться solid-pop3d?" #. Type: select #. Description #: ../templates:1002 msgid "" "The solid-pop3d POP server can run as a standalone daemon or from inetd. " "Running from inetd is the recommended approach." msgstr "" "POP сервер solid-pop3d может работать как самостоятельная служба или " "запускаться через inetd. Рекомендуется использовать запуск из inetd." debian/po/sv.po0000644000000000000000000000276211733651405010610 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. # , fuzzy # # msgid "" msgstr "" "Project-Id-Version: solid-pop3d 0.15-15\n" "Report-Msgid-Bugs-To: solid-pop3d@packages.debian.org\n" "POT-Creation-Date: 2011-02-04 20:31+0100\n" "PO-Revision-Date: 2005-10-05 05:57+0200\n" "Last-Translator: Daniel Nylander \n" "Language-Team: Swedish \n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=iso-8859-1\n" "Content-Transfer-Encoding: 8bit\n" #. Type: select #. Choices #: ../templates:1001 msgid "inetd" msgstr "inetd" #. Type: select #. Choices #: ../templates:1001 msgid "daemon" msgstr "daemon" #. Type: select #. Description #: ../templates:1002 msgid "How do you want to run solid-pop3d?" msgstr "Hur vill du kra solid-pop3d?" #. Type: select #. Description #: ../templates:1002 msgid "" "The solid-pop3d POP server can run as a standalone daemon or from inetd. " "Running from inetd is the recommended approach." msgstr "" "solid-pop3d POP-servern kan kras som en sjlvstende daemon eller frn " "inetd. Kra frn inetd r den rekommenderade lsningen." debian/po/templates.pot0000644000000000000000000000205111733651405012331 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: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: solid-pop3d@packages.debian.org\n" "POT-Creation-Date: 2011-02-04 20:31+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #. Type: select #. Choices #: ../templates:1001 msgid "inetd" msgstr "" #. Type: select #. Choices #: ../templates:1001 msgid "daemon" msgstr "" #. Type: select #. Description #: ../templates:1002 msgid "How do you want to run solid-pop3d?" msgstr "" #. Type: select #. Description #: ../templates:1002 msgid "" "The solid-pop3d POP server can run as a standalone daemon or from inetd. " "Running from inetd is the recommended approach." msgstr "" debian/po/vi.po0000644000000000000000000000255611733651405010577 0ustar # Vietnamese translation for solid-pop3d . # Copyright © 2005 Free Software Foundation, Inc. # Clytie Siddall , 2005. # msgid "" msgstr "" "Project-Id-Version: solid-pop3d 0.15-15\n" "Report-Msgid-Bugs-To: solid-pop3d@packages.debian.org\n" "POT-Creation-Date: 2011-02-04 20:31+0100\n" "PO-Revision-Date: 2005-07-17 14:05+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" "X-Generator: LocFactoryEditor 1.2.2\n" #. Type: select #. Choices #: ../templates:1001 msgid "inetd" msgstr "inetd" #. Type: select #. Choices #: ../templates:1001 msgid "daemon" msgstr "trình nền" #. Type: select #. Description #: ../templates:1002 msgid "How do you want to run solid-pop3d?" msgstr "Bạn có muốn chạy trình solid-pop3d như thế nào?" #. Type: select #. Description #: ../templates:1002 msgid "" "The solid-pop3d POP server can run as a standalone daemon or from inetd. " "Running from inetd is the recommended approach." msgstr "" "Trình phục vụ POP solid-pop3d có thể chạy là một trình nền (dæmon) đứng " "riêng, hoặc từ inetd. Chạy từ inetd là phương pháp được khuyên." debian/postinst0000644000000000000000000000266611733651405011013 0ustar #!/bin/sh # post-installation script for Solid POP3 set -e . /usr/share/debconf/confmodule DEFAULTSFILE=/etc/default/solid-pop3d if [ "X$1" = "Xconfigure" ] ; then db_get solid-pop3d/run_mode || true RUN_MODE="$RET" # Create spop3d system user getent passwd spop3d > /dev/null || \ adduser --quiet --system --home /var/lib/solid-pop3d \ --gecos 'Solid POP3 Server' --ingroup mail spop3d if [ ! -e "$DEFAULTSFILE" ] ; then echo "Generating $DEFAULTSFILE..." 1>&2 cat >"$DEFAULTSFILE" <<-EOF # Defaults for solid-pop3d initscript # sourced by /etc/init.d/solid-pop3d # installed at $DEFAULTSFILE by the maintainer scripts # # How should the spolid-pop3d server run? # Possible values are "inetd" (default) or "daemon". # Please note that any other value will be automatically # overwritten by the debconf script when the package # is upgraded or when you run \`dpkg-reconfigure solid-pop3d' RUN_MODE="$RUN_MODE" EOF chmod a+r "$DEFAULTSFILE" else TMPFILE="$DEFAULTSFILE.dpkg-tmp" sed -e "s/^[[:space:]]*RUN_MODE[[:space:]]*=.*/RUN_MODE=\"${RUN_MODE}\"/" \ < "$DEFAULTSFILE" > "$TMPFILE" chmod a+r "$TMPFILE" mv -f "$TMPFILE" "$DEFAULTSFILE" fi if [ "$RUN_MODE" = "inetd" ] ; then # Add service to /etc/inetd.conf update-inetd --group MAIL \ --add 'pop3\tstream\ttcp\tnowait\troot.mail\t/usr/sbin/tcpd\t/usr/sbin/solid-pop3d' else update-inetd --disable pop3 fi fi #DEBHELPER# debian/postrm0000644000000000000000000000046211733651405010444 0ustar #!/bin/sh # post-removal script for Solid POP3 set -e #DEBHELPER# if [ "X$1" = "Xpurge" ]; then if test -x /usr/sbin/update-inetd >/dev/null 2>&1; then update-inetd --pattern "spop3d" --remove pop3 || true fi deluser --system --quiet spop3d > /dev/null || true rm -f /etc/default/solid-pop3d fi debian/preinst0000644000000000000000000000046411733651405010606 0ustar #!/bin/sh # pre-installation script for Solid POP3 set -e #DEBHELPER# if [ "X$1" = "Xupgrade" ] ; then if [ -d /var/state/solid-pop3d ] && [ ! -e /var/lib/solid-pop3d ] ; then mv /var/state/solid-pop3d /var/lib/solid-pop3d chmod 755 /var/lib/solid-pop3d chown root:root /var/lib/solid-pop3d fi fi debian/prerm0000644000000000000000000000022711733651405010244 0ustar #!/bin/sh # pre-removal script for Solid POP3 set -e #DEBHELPER# case "X$1" in Xupgrade|Xremove) update-inetd --disable pop3 ;; *) ;; esac debian/rules0000755000000000000000000000340711733651405010257 0ustar #!/usr/bin/make -f BUILDDIR := DEB-BUILD DH_AUTO_OPTIONS := -v -Sautoconf -B$(BUILDDIR) --parallel DESTDIR := $(CURDIR)/debian/$(shell dh_listpackages) CFLAGS := $(shell dpkg-buildflags --get CFLAGS) # The build system doesn't use CPPFLAGS, pass them to CFLAGS to enable the # missing (hardening) flags. CFLAGS += $(shell dpkg-buildflags --get CPPFLAGS) CFLAGS += -DDEBIAN -Wall LDFLAGS := $(shell dpkg-buildflags --get LDFLAGS) LDFLAGS += -Wl,-z,defs -Wl,--as-needed %: dh "$@" override_dh_auto_configure: $(BUILDDIR)/configure-stamp $(BUILDDIR)/configure-stamp: rm -f .pc/.*unapply # see bug#649521 dh_autotools-dev_updateconfig CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \ dh_auto_configure $(DH_AUTO_OPTIONS) -- \ --localstatedir=/var/lib/solid-pop3d \ --program-transform-name="s/^spop3d$$/solid-pop3d/" \ --enable-pam \ --enable-apop \ --enable-mailbox \ --enable-maildir \ --enable-configfile \ --enable-expire \ --enable-userconfig \ --enable-bulletins \ --enable-last \ --enable-mapping \ --enable-nonip \ --enable-createmail \ --enable-ipv6 \ --enable-resolve \ --enable-connect \ --enable-logextend \ --enable-statistics \ --enable-standalone \ # --enable-allowroot touch "$@" override_dh_auto_build: dh_auto_build $(DH_AUTO_OPTIONS) override_dh_auto_clean: rm -f $(BUILDDIR)/configure-stamp dh_auto_clean $(DH_AUTO_OPTIONS) dh_autotools-dev_restoreconfig override_dh_auto_install: dh_auto_install $(DH_AUTO_OPTIONS) --destdir="$(DESTDIR)" dh_install debian/spop3d.conf etc sh debian/fix_manpages.sh $(DESTDIR) debian/source/0000755000000000000000000000000011733651405010473 5ustar debian/source/format0000644000000000000000000000001411733651405011701 0ustar 3.0 (quilt) debian/spop3d.conf0000644000000000000000000000033711733651405011255 0ustar /* Configuration file for Solid POP3 */ MailDropName "/var/mail/%s" MailDropType mailbox LogStatistics no /* See also: /usr/share/doc/solid-pop3d/examples/ and the spop3d.conf(5) manpage */ debian/templates0000644000000000000000000000040111733651405011107 0ustar Template: solid-pop3d/run_mode Type: select __Choices: inetd, daemon Default: inetd _Description: How do you want to run solid-pop3d? The solid-pop3d POP server can run as a standalone daemon or from inetd. Running from inetd is the recommended approach. debian/watch0000644000000000000000000000027611733651405010231 0ustar # control file for the uscan(1) tool version=3 http://www.netsw.org/net/mail/transport/pop/solid-pop3d-([\d\.]+)\.tar\.gz # ftp://dione.ids.pl/pub/solidpop3d/solid-pop3d-([\d\.]+)\.tar\.gz