Package: sendmail
Version: 8.14.4-2
Severity: important
Tags: patch
Hello,
sendmail currently FTBFS on hurd-i386 because of a not-uptodate config
and an inconditional occurence of the optional PATH_MAX macro. Here are
patches to fix these.
Samuel
-- System Information:
Debian Release: squeeze/sid
APT prefers testing
APT policy: (990, 'testing'), (500, 'unstable'), (500, 'stable'), (1,
'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.36 (SMP w/2 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
--- ./include/sm/conf.h.original 2010-12-31 19:23:37.000000000 +0000
+++ ./include/sm/conf.h 2010-12-31 19:30:40.000000000 +0000
@@ -1101,15 +1101,23 @@
# if defined(__GNU__) && !defined(NeXT)
# include <paths.h>
-# define HASFCHMOD 1 /* has fchmod(2) call */
-# define HASFCHOWN 1 /* has fchown(2) call */
+# define BSD 1 /* include BSD defines */
+# define HASSETREGID 1 /* use setregid(2) to set saved gid */
+# ifndef REQUIRES_DIR_FSYNC
+# define REQUIRES_DIR_FSYNC 1 /* requires fsync() on directory */
+# endif /* REQUIRES_DIR_FSYNC */
+# ifndef USESETEUID
+# define USESETEUID 0 /* has it due to POSIX, but doesn't work */
+# endif /* USESETEUID */
+# define SM_CONF_GETOPT 0 /* need a replacement for getopt(3) */
# define HASUNAME 1 /* has uname(2) call */
# define HASUNSETENV 1 /* has unsetenv(3) call */
-# define HAS_ST_GEN 1 /* has st_gen field in stat struct */
-# define HASSTRERROR 1 /* has strerror(3) */
+# define ERRLIST_PREDEFINED 1 /* don't declare sys_errlist */
# define GIDSET_T gid_t
-# define SOCKADDR_LEN_T socklen_t
-# define SOCKOPT_LEN_T socklen_t
+# define HAS_IN_H 1 /* GNU has netinet/in.h. */
+# ifndef USE_SIGLONGJMP
+# define USE_SIGLONGJMP 1 /* sigsetjmp needed for signal handling */
+# endif /* ! USE_SIGLONGJMP */
# if (__GLIBC__ == 2 && __GLIBC_MINOR__ > 1) || __GLIBC__ > 2
# define LA_TYPE LA_SUBR
# else /* (__GLIBC__ == 2 && __GLIBC_MINOR__ > 1) || __GLIBC__ > 2 */
@@ -1118,11 +1126,34 @@
# define host_self mach_host_self
# endif /* (__GLIBC__ == 2 && __GLIBC_MINOR__ > 1) || __GLIBC__ > 2 */
# define SFS_TYPE SFS_STATFS
+# define SPT_PADCHAR '\0' /* pad process title with nulls */
+# ifndef HASURANDOMDEV
+# define HASURANDOMDEV 1 /* 2.0 (at least) has
linux/drivers/char/random.c */
+# endif /* ! HASURANDOMDEV */
+# define HASSTRERROR 1 /* has strerror(3) */
+# ifndef TZ_TYPE
+# define TZ_TYPE TZ_NONE /* no standard for Linux */
+# endif /* ! TZ_TYPE */
+# ifndef _PATH_SENDMAILPID
+# define _PATH_SENDMAILPID "/var/run/sendmail.pid"
+# endif /* ! _PATH_SENDMAILPID */
+# include <sys/sysmacros.h>
+# undef atol /* wounded in <stdlib.h> */
+# if NETINET6
+# undef IPPROTO_ICMPV6 /* linux #defines, glibc enums */
+# if !defined(NEEDSGETIPNODE)
+ /* Have APIs in <netdb.h>, but no support in glibc */
+# define NEEDSGETIPNODE 1
+# endif /* (GLIBC_VERSION >= 0x201 && !defined(NEEDSGETIPNODE)) */
+# endif /* NETINET6 */
+# define HASFCHOWN 1 /* has fchown(2) call */
+# define HASFCHMOD 1 /* has fchmod(2) call */
+# define HAS_ST_GEN 1 /* has st_gen field in stat struct */
+# define SOCKADDR_LEN_T socklen_t
+# define SOCKOPT_LEN_T socklen_t
# define SPT_TYPE SPT_CHANGEARGV
-# define ERRLIST_PREDEFINED 1 /* don't declare sys_errlist */
# define BSD4_4_SOCKADDR 1 /* has sa_len */
# define SIOCGIFCONF_IS_BROKEN 1 /* SIOCGFCONF doesn't work */
-# define HAS_IN_H 1 /* GNU has netinet/in.h. */
/* GNU has no MAXPATHLEN; ideally the code should be changed to not use it. */
# define MAXPATHLEN 2048
# endif /* defined(__GNU__) && !defined(NeXT) */
--- debian/sensible_mda/sensible-mda.c.in.original 2010-12-31
21:52:13.000000000 +0000
+++ debian/sensible_mda/sensible-mda.c.in 2010-12-31 21:50:15.000000000
+0000
@@ -59,7 +59,7 @@
static void help(void);
static int drop_privs(char *, uid_t, gid_t);
static void show_privs(void);
-static unsigned char program[PATH_MAX];
+static unsigned char *program;
static uid_t RealUid, RunAsUid;
static gid_t RealGid, RunAsGid;
@@ -89,9 +89,7 @@
str_pos++;
else
str_pos = argv[0];
- (void) strncpy(program, str_pos,
- min(strlen(str_pos), sizeof(program)-1));
- program[sizeof(program)-1] = '\0';
+ program = strdup(str_pos);
#if DEBUG
str_len = 0;