Subject: pkg/29033: security/openssh build failed on Interix
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: None <hiramatu@boreas.dti.ne.jp>
List: pkgsrc-bugs
Date: 01/21/2005 02:38:00
>Number: 29033
>Category: pkg
>Synopsis: security/openssh build failed on Interix
>Confidential: no
>Severity: serious
>Priority: low
>Responsible: pkg-manager
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Fri Jan 21 02:38:00 +0000 2005
>Originator: HIRAMATSU Yoshifumi
>Release: SFU 3.5
>Organization:
>Environment:
Interix nile 3.5 SP-8.0.1969.1 x86 AMD_x86_Family15_Model12_Stepping0
>Description:
security/openssh cannot be built on Interix because...
1. __dead is already defined as __volatile in sys/cdefs.h, so declarations like:
void cleanup_exit(int) __dead;
is parsed as syntax error.
2. lacks -lcrypt option although ssh uses crypt().
>How-To-Repeat:
cd /usr/pkgsrc/security/openssh
bmake
>Fix:
unconditionally define __dead as __attribute__((noreturn)) on Interix(patch-ac).
Added -lcrypt option by specifying check_for_libcrypt_before=1 same as netbsd(patch-aa, patch-ab).
diff -buNr openssh.orig/distinfo openssh/distinfo
--- openssh.orig/distinfo Fri Jan 21 10:37:44 2005
+++ openssh/distinfo Fri Jan 21 10:34:20 2005
@@ -4,9 +4,9 @@
Size (openssh-3.9p1.tar.gz) = 854027 bytes
SHA1 (openssh-3.9p1-hpn.diff) = 1821c590b9b5effa3750ebf0166fe3f22d00faad
Size (openssh-3.9p1-hpn.diff) = 8387 bytes
-SHA1 (patch-aa) = 5d0b1cf5cf92e0d314e6458b225074a73f35f857
-SHA1 (patch-ab) = 662440f96d38e43b0c8de7bef260f82d8b7ab737
-SHA1 (patch-ac) = 3ad72f42b066ef1f48e276bccd438da2d6fde980
+SHA1 (patch-aa) = 1391c23b7ab5b2e2be2b349b22f64a81a591e55b
+SHA1 (patch-ab) = def6774a571fa10af9e3981d20d2341aa32b194f
+SHA1 (patch-ac) = 378428b566ed1e2bac039b07c82a36e06cdea5cd
SHA1 (patch-ad) = 6a0c4edd2217f22f7c9622fb38124287e93c5fc8
SHA1 (patch-ae) = fece020b1c2432f4ac5b62104be808aa3f70ea22
SHA1 (patch-af) = 444fadaafdb45adc1008cbf106cd28c075700616
diff -buNr openssh.orig/patches/patch-aa openssh/patches/patch-aa
--- openssh.orig/patches/patch-aa Fri Jan 21 10:37:44 2005
+++ openssh/patches/patch-aa Fri Jan 21 10:34:20 2005
@@ -1,16 +1,17 @@
$NetBSD$
---- configure.orig 2004-08-17 14:54:53.000000000 +0200
-+++ configure
-@@ -6101,8 +6101,18 @@ _ACEOF
+--- configure.orig Tue Aug 17 21:54:53 2004
++++ configure Thu Jan 20 23:02:25 2005
+@@ -6101,8 +6101,19 @@
_ACEOF
;;
+
+*-*-interix3)
-+ cat >>confdefs.h <<\EOF
++ check_for_libcrypt_before=1
++ cat >>confdefs.h <<\_ACEOF
+#define MISSING_HOWMANY 1
-+EOF
++_ACEOF
+
+ ;;
esac
@@ -21,53 +22,63 @@
# Allow user to specify flags
# Check whether --with-cflags or --without-cflags was given.
-@@ -23790,12 +23800,19 @@ fi
+@@ -23790,12 +23801,20 @@
rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
if test -z "$conf_utmpx_location"; then
if test x"$system_utmpx_path" = x"no" ; then
-- cat >>confdefs.h <<\_ACEOF
+ for f in /var/run/utmpx; do
+ if test -f $f ; then
+ conf_utmpx_location=$f
+ fi
+ done
+ if test -z "$conf_utmpx_location"; then
-+ cat >>confdefs.h <<\_ACEOF
+ cat >>confdefs.h <<\_ACEOF
#define DISABLE_UTMPX 1
_ACEOF
--
-+ fi
+
fi
-else
++ fi
+fi
+if test -n "$conf_utmpx_location"; then
cat >>confdefs.h <<_ACEOF
#define CONF_UTMPX_FILE "$conf_utmpx_location"
_ACEOF
-@@ -23864,12 +23881,20 @@ fi
+@@ -23864,12 +23883,20 @@
rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
if test -z "$conf_wtmpx_location"; then
if test x"$system_wtmpx_path" = x"no" ; then
-- cat >>confdefs.h <<\_ACEOF
+ for f in /var/log/wtmpx; do
+ if test -f $f ; then
+ conf_wtmpx_location=$f
+ fi
+ done
+ if test -z "$conf_wtmpx_location"; then
-+ cat >>confdefs.h <<\_ACEOF
+ cat >>confdefs.h <<\_ACEOF
#define DISABLE_WTMPX 1
_ACEOF
-+ fi
fi
-else
++ fi
+fi
+if test -n "$conf_wtmpx_location"; then
cat >>confdefs.h <<_ACEOF
#define CONF_WTMPX_FILE "$conf_wtmpx_location"
_ACEOF
-@@ -25091,7 +25116,7 @@ echo "OpenSSH has been configured with t
+@@ -24249,9 +24276,9 @@
+ exec 5>>config.log
+ {
+ echo
+- sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<BOXI_EOF
++ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+ ## Running $as_me. ##
+-BOXI_EOF
++_ASBOX
+ } >&5
+ cat >&5 <<_CSEOF
+
+@@ -25091,7 +25118,7 @@
echo " User binaries: $B"
echo " System binaries: $C"
echo " Configuration files: $D"
diff -buNr openssh.orig/patches/patch-ab openssh/patches/patch-ab
--- openssh.orig/patches/patch-ab Fri Jan 21 10:37:43 2005
+++ openssh/patches/patch-ab Fri Jan 21 10:34:20 2005
@@ -1,13 +1,14 @@
$NetBSD$
---- configure.ac.orig 2004-08-16 15:12:06.000000000 +0200
-+++ configure.ac
-@@ -469,8 +469,15 @@ mips-sony-bsd|mips-sony-newsos4)
+--- configure.ac.orig Mon Aug 16 22:12:06 2004
++++ configure.ac Thu Jan 20 23:02:13 2005
+@@ -469,8 +469,16 @@
AC_DEFINE(MISSING_HOWMANY)
AC_DEFINE(MISSING_FD_MASK)
;;
+
+*-*-interix3)
++ check_for_libcrypt_before=1
+ AC_DEFINE(MISSING_HOWMANY)
+ ;;
esac
@@ -18,47 +19,45 @@
# Allow user to specify flags
AC_ARG_WITH(cflags,
[ --with-cflags Specify additional flags to pass to compiler],
-@@ -2885,9 +2892,17 @@ AC_TRY_COMPILE([
+@@ -2885,9 +2893,17 @@
)
if test -z "$conf_utmpx_location"; then
if test x"$system_utmpx_path" = x"no" ; then
-- AC_DEFINE(DISABLE_UTMPX)
+ for f in /var/run/utmpx; do
+ if test -f $f ; then
+ conf_utmpx_location=$f
+ fi
+ done
+ if test -z "$conf_utmpx_location"; then
-+ AC_DEFINE(DISABLE_UTMPX)
-+ fi
+ AC_DEFINE(DISABLE_UTMPX)
fi
-else
++ fi
+fi
+if test -n "$conf_utmpx_location"; then
AC_DEFINE_UNQUOTED(CONF_UTMPX_FILE, "$conf_utmpx_location")
fi
-@@ -2910,9 +2925,17 @@ AC_TRY_COMPILE([
+@@ -2910,9 +2926,17 @@
)
if test -z "$conf_wtmpx_location"; then
if test x"$system_wtmpx_path" = x"no" ; then
-- AC_DEFINE(DISABLE_WTMPX)
+ for f in /var/log/wtmpx; do
+ if test -f $f ; then
+ conf_wtmpx_location=$f
+ fi
+ done
+ if test -z "$conf_wtmpx_location"; then
-+ AC_DEFINE(DISABLE_WTMPX)
-+ fi
+ AC_DEFINE(DISABLE_WTMPX)
fi
-else
++ fi
+fi
+if test -n "$conf_wtmpx_location"; then
AC_DEFINE_UNQUOTED(CONF_WTMPX_FILE, "$conf_wtmpx_location")
fi
-@@ -2953,7 +2976,7 @@ echo "OpenSSH has been configured with t
+@@ -2953,7 +2977,7 @@
echo " User binaries: $B"
echo " System binaries: $C"
echo " Configuration files: $D"
diff -buNr openssh.orig/patches/patch-ac openssh/patches/patch-ac
--- openssh.orig/patches/patch-ac Fri Jan 21 10:37:43 2005
+++ openssh/patches/patch-ac Fri Jan 21 10:34:20 2005
@@ -1,11 +1,23 @@
$NetBSD$
---- defines.h.orig 2004-06-22 05:27:16.000000000 +0200
-+++ defines.h
-@@ -591,6 +591,24 @@ struct winsize {
- # endif
- # endif
+--- defines.h.orig Tue Jun 22 12:27:16 2004
++++ defines.h Thu Jan 20 23:07:00 2005
+@@ -424,7 +424,7 @@
+ # define __attribute__(x)
+ #endif /* !defined(__GNUC__) || (__GNUC__ < 2) */
+
+-#ifndef __dead
++#if !defined(__dead) || defined(__INTERIX)
+ # define __dead __attribute__((noreturn))
#endif
+
+@@ -588,6 +588,24 @@
+ # else
+ # ifdef CONF_WTMP_FILE
+ # define WTMP_FILE CONF_WTMP_FILE
++# endif
++# endif
++#endif
+#ifndef UTMPX_FILE
+# ifdef _PATH_UTMPX
+# define UTMPX_FILE _PATH_UTMPX
@@ -21,9 +33,6 @@
+# else
+# ifdef CONF_WTMPX_FILE
+# define WTMPX_FILE CONF_WTMPX_FILE
-+# endif
-+# endif
-+#endif
- /* pick up the user's location for lastlog if given */
- #ifndef LASTLOG_FILE
- # ifdef _PATH_LASTLOG
+ # endif
+ # endif
+ #endif