diff --git a/Documentation/Developers/CHANGELOG-RENE b/Documentation/Developers/CHANGELOG-RENE index f46160e26..e4c287d5a 100644 --- a/Documentation/Developers/CHANGELOG-RENE +++ b/Documentation/Developers/CHANGELOG-RENE @@ -7,6 +7,7 @@ - added support for targets to suply text/plain kernel config files (fixes the bug that users can not supply kernel configs for the desktop target) + - fixed screen for platforms with non-trival va_arg implementaion *) 2003-08-24 (2.0.0-rc1 - 2.0.0-rc2) diff --git a/package/base/screen/configure_pam.patch b/package/base/screen/configure_pam.patch index 9434f53c6..5ec021dae 100644 --- a/package/base/screen/configure_pam.patch +++ b/package/base/screen/configure_pam.patch @@ -1,3 +1,4 @@ + # --- ROCK-COPYRIGHT-NOTE-BEGIN --- # # This copyright note is auto-generated by ./scripts/Create-CopyPatch. @@ -20,14 +21,147 @@ # # --- ROCK-COPYRIGHT-NOTE-END --- ---- ./configure.orig 2003-03-10 10:10:09.000000000 +0100 -+++ ./configure 2003-03-10 10:10:21.000000000 +0100 -@@ -7017,7 +7017,7 @@ - echo "$as_me:$LINENO: checking for PAM support" >&5 - echo $ECHO_N "checking for PAM support... $ECHO_C" >&6 - oldlibs="$LIBS" -- LIBS="$LIBS -lpam" +Not only is libpam_misc needed, it is also needed earlier to not let +all the other tests fail when other libs have dependencies to libpam +or libpam_misc ... + +(Especially important to not let the vsprintf test fail and so the +VA_* macros are not used!) + + - Clifford Wold and Rene Rebe + +--- ./configure.orig 2003-02-24 14:03:33.000000000 +0100 ++++ ./configure 2003-08-26 01:47:59.000000000 +0200 +@@ -6624,6 +6624,66 @@ + fi + rm -f /tmp/conftest* + ++ ++# Check whether --enable-pam or --disable-pam was given. ++if test "${enable_pam+set}" = set; then ++ enableval="$enable_pam" ++ ++fi; ++if test "$enable_pam" = "yes"; then ++ echo "$as_me:$LINENO: checking for PAM support" >&5 ++echo $ECHO_N "checking for PAM support... $ECHO_C" >&6 ++ oldlibs="$LIBS" + LIBS="$LIBS -lpam -lpam_misc" - cat >conftest.$ac_ext <<_ACEOF - #line $LINENO "configure" - #include "confdefs.h" ++ cat >conftest.$ac_ext <<_ACEOF ++#line $LINENO "configure" ++#include "confdefs.h" ++#include ++#ifdef F77_DUMMY_MAIN ++# ifdef __cplusplus ++ extern "C" ++# endif ++ int F77_DUMMY_MAIN() { return 1; } ++#endif ++int ++main () ++{ ++ ++ pam_start(0, 0, 0, 0); ++ pam_authenticate(0, 0); ++ pam_end(0,0); ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ echo "$as_me:$LINENO: result: yes" >&5 ++echo "${ECHO_T}yes" >&6;cat >>confdefs.h <<\_ACEOF ++#define USE_PAM 1 ++_ACEOF ++ ++else ++ echo "$as_me: failed program was:" >&5 ++cat conftest.$ac_ext >&5 ++echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6;LIBS="$oldlibs" ++fi ++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext ++fi ++ ++ + echo "$as_me:$LINENO: checking for vsprintf" >&5 + echo $ECHO_N "checking for vsprintf... $ECHO_C" >&6 + cat >conftest.$ac_ext <<_ACEOF +@@ -7287,65 +7347,6 @@ + fi + done + +- +-# Check whether --enable-pam or --disable-pam was given. +-if test "${enable_pam+set}" = set; then +- enableval="$enable_pam" +- +-fi; +-if test "$enable_pam" = "yes"; then +- echo "$as_me:$LINENO: checking for PAM support" >&5 +-echo $ECHO_N "checking for PAM support... $ECHO_C" >&6 +- oldlibs="$LIBS" +- LIBS="$LIBS -lpam" +- cat >conftest.$ac_ext <<_ACEOF +-#line $LINENO "configure" +-#include "confdefs.h" +-#include +-#ifdef F77_DUMMY_MAIN +-# ifdef __cplusplus +- extern "C" +-# endif +- int F77_DUMMY_MAIN() { return 1; } +-#endif +-int +-main () +-{ +- +- pam_start(0, 0, 0, 0); +- pam_authenticate(0, 0); +- pam_end(0,0); +- +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>&5 +- ac_status=$? +- echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); } && +- { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 +- (eval $ac_try) 2>&5 +- ac_status=$? +- echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then +- echo "$as_me:$LINENO: result: yes" >&5 +-echo "${ECHO_T}yes" >&6;cat >>confdefs.h <<\_ACEOF +-#define USE_PAM 1 +-_ACEOF +- +-else +- echo "$as_me: failed program was:" >&5 +-cat conftest.$ac_ext >&5 +-echo "$as_me:$LINENO: result: no" >&5 +-echo "${ECHO_T}no" >&6;LIBS="$oldlibs" +-fi +-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +-fi +- + # Check whether --enable-use_locale or --disable-use_locale was given. + if test "${enable_use_locale+set}" = set; then + enableval="$enable_use_locale" diff --git a/package/base/screen/correct_va_list.patch b/package/base/screen/correct_va_list.patch new file mode 100644 index 000000000..3108d0496 --- /dev/null +++ b/package/base/screen/correct_va_list.patch @@ -0,0 +1,59 @@ +# --- ROCK-COPYRIGHT-NOTE-BEGIN --- +# +# This copyright note is auto-generated by ./scripts/Create-CopyPatch. +# Please add additional copyright information _after_ the line containing +# the ROCK-COPYRIGHT-NOTE-END tag. Otherwise it might get removed by +# the ./scripts/Create-CopyPatch script. Do not edit this copyright text! +# +# ROCK Linux: rock-src/package/base/screen/correct_va_list.patch +# ROCK Linux is Copyright (C) 1998 - 2003 Clifford Wolf +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. A copy of the GNU General Public +# License can be found at Documentation/COPYING. +# +# Many people helped and are helping developing ROCK Linux. Please +# have a look at http://www.rocklinux.org/ and the Documentation/TEAM +# file for details. +# +# --- ROCK-COPYRIGHT-NOTE-END --- + + +On some architectures that either store the variable args as an array +of pointers (of length 1) or they are passed in registers (see man va_arg) +the macro va_copy is needed .... + + - Rene Rebe + +--- ./screen.c.orig 2003-02-24 18:03:47.000000000 +0100 ++++ ./screen.c 2003-08-26 01:19:42.000000000 +0200 +@@ -377,7 +377,7 @@ + #ifdef DEBUG + opendebug(1, 0); + #endif +- sprintf(version, "%d.%.2d.%.2d%s (%s) %s", REV, VERS, ++ snprintf(version, 40, "%d.%.2d.%.2d%s (%s) %s", REV, VERS, + PATCHLEVEL, STATE, ORIGIN, DATE); + nversion = REV * 10000 + VERS * 100 + PATCHLEVEL; + debug2("-- screen debug started %s (%s)\n", *av, version); +@@ -1943,13 +1943,16 @@ + VA_DECL + #endif + { +- VA_LIST(ap) ++ VA_LIST(ap); ++ VA_LIST(aq); + char buf[MAXPATHLEN*2]; + char *p = buf; + + VA_START(ap, fmt); ++ va_copy (aq, ap); + fmt = DoNLS(fmt); +- (void)vsnprintf(p, sizeof(buf) - 100, fmt, VA_ARGS(ap)); ++ (void)vsnprintf(p, sizeof(buf) - 100, fmt, aq); ++ VA_END(aq); + VA_END(ap); + if (err) + {