From bf51856ef38b5d47ae3a3be994691042e5b825412cff685ff483c31cbe8a9b93 Mon Sep 17 00:00:00 2001 From: OBS User unknown Date: Wed, 9 Apr 2008 19:39:42 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/ncurses?expand=0&rev=10 --- README.devel | 35 +++ ncurses-5.6-coverity.patch | 519 +++++++++++++++++++++++++++++++++++++ ncurses-5.6-pthread.dif | 27 +- ncurses-5.6.dif | 92 +------ ncurses-rpmlintrc | 1 + ncurses.changes | 7 + ncurses.spec | 381 +++++++++++++++------------ 7 files changed, 798 insertions(+), 264 deletions(-) create mode 100644 README.devel create mode 100644 ncurses-5.6-coverity.patch create mode 100644 ncurses-rpmlintrc diff --git a/README.devel b/README.devel new file mode 100644 index 0000000..978b3b1 --- /dev/null +++ b/README.devel @@ -0,0 +1,35 @@ + Versions of Ncurses Libraries + ============================= + +There are several Ncurses Libraries which can be used for building +with an terminal based application. The standard Ncurses Libraries +is given with + + /usr/lib/libncurses.so or /usr/lib64/libncurses.so + /usr/lib/libform.so or /usr/lib64/libform.so + /usr/lib/libmenu.so or /usr/lib64/libmenu.so + /usr/lib/libpanel.so or /usr/lib64/libpanel.so + +and its header are installed in /usr/include/ e.g. (n)curses.h. +Nothing has to be added in the CFLAGS nor in the LDFLAGS. +Use the outout of + + ncurses5-config --cflags for CFLAGS + ncurses5-config --libs for LDFLAGS + +For a version with wide character support please use the +libraries + + /usr/lib/libncursesw.so or /usr/lib64/libncursesw.so + /usr/lib/libformw.so or /usr/lib64/libformw.so + /usr/lib/libmenuw.so or /usr/lib64/libmenuw.so + /usr/lib/libpanelw.so or /usr/lib64/libpanelw.so + +together with the header files found at /usr/include/ncursesw/. +This can be done with `-I/usr/include/ncursesw' within the +CFLAGS and e.g. `-lncursesw' in the LDFLAGS. +Use the outout of + + ncursesw5-config --cflags for CFLAGS + ncursesw5-config --libs for LDFLAGS + diff --git a/ncurses-5.6-coverity.patch b/ncurses-5.6-coverity.patch new file mode 100644 index 0000000..a254918 --- /dev/null +++ b/ncurses-5.6-coverity.patch @@ -0,0 +1,519 @@ +--- NEWS ++++ NEWS 2007-04-07 18:55:45.000000000 +0200 +@@ -103,6 +103,36 @@ it is not possible to add this informati + + modify shared-library rules to allow FreeBSD 3.x to use rpath. + + update config.guess, config.sub + ++20060407 ++ > other fixes prompted by inspection for Coverity report: ++ + modify ifdef's for c++ binding to use try/catch/throw statements ++ + add a null-pointer check in tack/ansi.c request_cfss() ++ + fix a memory leak in ncurses/base/wresize.c ++ + corrected check for valid memu/meml capabilities in ++ progs/dump_entry.c when handling V_HPUX case. ++ > fixes based on Coverity report: ++ + remove dead code in test/bs.c ++ + remove dead code in test/demo_defkey.c ++ + remove an unused assignment in progs/infocmp.c ++ + fix a limit check in tack/ansi.c tools_charset() ++ + fix tack/ansi.c tools_status() to perform the VT320/VT420 ++ tests in request_cfss(). The function had exited too soon. ++ + fix a memory leak in tic.c's make_namelist() ++ + fix a couple of places in tack/output.c which did not check for EOF. ++ + fix a loop-condition in test/bs.c ++ + add index checks in lib_color.c for color palettes ++ + add index checks in progs/dump_entry.c for version_filter() handling ++ of V_BSD case. ++ + fix a possible null-pointer dereference in copywin() ++ + fix a possible null-pointer dereference in waddchnstr() ++ + add a null-pointer check in _nc_expand_try() ++ + add a null-pointer check in tic.c's make_namelist() ++ + add a null-pointer check in _nc_expand_try() ++ + add null-pointer checks in test/cardfile.c ++ + fix a double-free in ncurses/tinfo/trim_sgr0.c ++ + fix a double-free in ncurses/base/wresize.c ++ + add try/catch block to c++/cursesmain.cc ++ + 20061217 5.6 release for upload to ftp.gnu.org + + 20061217 +--- configure ++++ configure 2007-04-07 00:54:52.000000000 +0200 +@@ -13892,7 +13892,7 @@ ac_link='$CXX -o conftest$ac_exeext $CXX + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + ac_main_return=return + +-for ac_header in typeinfo ++for ac_header in iostream typeinfo + do + as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` + echo "$as_me:13893: checking for $ac_header" >&5 +--- configure.in ++++ configure.in 2007-04-07 00:53:21.000000000 +0200 +@@ -1210,7 +1210,7 @@ if test -n "$CXX" ; then + ;; + esac + +- AC_CHECK_HEADERS(typeinfo) ++ AC_CHECK_HEADERS(iostream typeinfo) + + CF_BOOL_DECL + CF_BOOL_SIZE +--- c++/cursesmain.cc ++++ c++/cursesmain.cc 2008-04-09 17:57:56.093616466 +0200 +@@ -34,6 +34,13 @@ + #include "internal.h" + #include "cursesapp.h" + ++#if CPP_HAS_TRY_CATCH && HAVE_IOSTREAM ++#include ++#else ++#undef CPP_HAS_TRY_CATCH ++#define CPP_HAS_TRY_CATCH 0 ++#endif ++ + MODULE_ID("$Id: cursesmain.cc,v 1.13 2007/01/27 20:29:27 tom Exp $") + + #if HAVE_LOCALE_H +@@ -62,8 +69,20 @@ int main(int argc, char* argv[]) + + A->handleArgs(argc,argv); + ::endwin(); ++#if CPP_HAS_TRY_CATCH ++ try { ++ res = (*A)(); ++ ::endwin(); ++ } ++ catch(const NCursesException &e) { ++ ::endwin(); ++ std::cerr << e.message << std::endl; ++ res = e.errorno; ++ } ++#else + res = (*A)(); + ::endwin(); ++#endif + #if NO_LEAKS + delete A; + _nc_free_and_exit(res); +--- c++/cursesp.h ++++ c++/cursesp.h 2007-04-07 02:47:22.000000000 +0200 +@@ -83,7 +83,7 @@ protected: + return uptr->m_user; + } + +- void OnError (int err) const THROWS((NCursesPanelException)) ++ void OnError (int err) const THROWS(NCursesPanelException) + { + if (err==ERR) + THROW(new NCursesPanelException (this, err)); +--- c++/etip.h.in ++++ c++/etip.h.in 2007-04-07 02:49:39.000000000 +0200 +@@ -330,23 +330,33 @@ public: + inline void THROW(const NCursesException *e) { + #if defined(__GNUG__) && defined(__EXCEPTIONS) + # if ((__GNUG__ <= 2) && (__GNUC_MINOR__ < 8)) +- (*lib_error_handler)(e?e->classname():"",e?e->message:""); ++ (*lib_error_handler)(e ? e->classname() : "", e ? e->message : ""); + #else +- throw *e; ++#define CPP_HAS_TRY_CATCH 1 + #endif + #elif defined(__SUNPRO_CC) + # if !defined(__SUNPRO_CC_COMPAT) || (__SUNPRO_CC_COMPAT < 5) + genericerror(1, ((e != 0) ? (char *)(e->message) : "")); + #else +- throw *e; ++#define CPP_HAS_TRY_CATCH 1 + #endif + #else + if (e) + cerr << e->message << endl; + exit(0); + #endif +-} + +-#define THROWS(s) ++#ifndef CPP_HAS_TRY_CATCH ++#define CPP_HAS_TRY_CATCH 0 ++#define NCURSES_CPP_TRY /* nothing */ ++#define NCURSES_CPP_CATCH(e) if (false) ++#define THROWS(s) /* nothing */ ++#elif CPP_HAS_TRY_CATCH ++ throw *e; ++#define NCURSES_CPP_TRY try ++#define NCURSES_CPP_CATCH(e) catch(e) ++#define THROWS(s) throw(s) ++#endif ++} + + #endif /* NCURSES_ETIP_H_incl */ +--- include/ncurses_defs ++++ include/ncurses_defs 2007-04-07 00:54:16.000000000 +0200 +@@ -68,6 +68,7 @@ HAVE_GPM_H + HAVE_GPP_BUILTIN_H + HAVE_GXX_BUILTIN_H + HAVE_HAS_KEY ++HAVE_IOSTREAM + HAVE_ISASCII + HAVE_ISSETUGID + HAVE_LANGINFO_CODESET +--- ncurses/base/lib_addstr.c ++++ ncurses/base/lib_addstr.c 2007-04-04 02:41:25.000000000 +0200 +@@ -80,8 +80,7 @@ waddnstr(WINDOW *win, const char *astr, + NCURSES_EXPORT(int) + waddchnstr(WINDOW *win, const chtype *astr, int n) + { +- NCURSES_SIZE_T y = win->_cury; +- NCURSES_SIZE_T x = win->_curx; ++ NCURSES_SIZE_T y, x; + int code = OK; + int i; + struct ldat *line; +@@ -91,6 +90,8 @@ waddchnstr(WINDOW *win, const chtype *as + if (!win) + returnCode(ERR); + ++ y = win->_cury; ++ x = win->_curx; + if (n < 0) { + const chtype *str; + n = 0; +--- ncurses/base/lib_color.c ++++ ncurses/base/lib_color.c 2007-04-04 22:32:04.000000000 +0200 +@@ -56,7 +56,10 @@ NCURSES_EXPORT_VAR(int) COLORS = 0; + + #define TYPE_CALLOC(type,elts) typeCalloc(type, (unsigned)(elts)) + ++#define MAX_PALETTE 8 ++ + #define OkColorHi(n) (((n) < COLORS) && ((n) < max_colors)) ++#define InPalette(n) ((n) >= 0 && (n) < MAX_PALETTE) + + /* + * Given a RGB range of 0..1000, we'll normally set the individual values +@@ -162,10 +165,10 @@ init_color_table(void) + + tp = (hue_lightness_saturation) ? hls_palette : cga_palette; + for (n = 0; n < COLORS; n++) { +- if (n < 8) { ++ if (InPalette(n)) { + SP->_color_table[n] = tp[n]; + } else { +- SP->_color_table[n] = tp[n % 8]; ++ SP->_color_table[n] = tp[n % MAX_PALETTE]; + if (hue_lightness_saturation) { + SP->_color_table[n].green = 100; + } else { +@@ -365,7 +368,7 @@ init_pair(short pair, short f, short b) + if (GET_SCREEN_PAIR(SP) == pair) + SET_SCREEN_PAIR(SP, (chtype) (~0)); /* force attribute update */ + +- if (initialize_pair) { ++ if (initialize_pair && InPalette(f) && InPalette(b)) { + const color_t *tp = hue_lightness_saturation ? hls_palette : cga_palette; + + TR(TRACE_ATTRS, +--- ncurses/base/lib_overlay.c ++++ ncurses/base/lib_overlay.c 2007-04-04 02:40:12.000000000 +0200 +@@ -139,8 +139,8 @@ copywin(const WINDOW *src, WINDOW *dst, + { + int sx, sy, dx, dy; + bool touched; +- attr_t bk = AttrOf(dst->_nc_bkgd); +- attr_t mask = ~(attr_t) ((bk & A_COLOR) ? A_COLOR : 0); ++ attr_t bk; ++ attr_t mask; + + T((T_CALLED("copywin(%p, %p, %d, %d, %d, %d, %d, %d, %d)"), + src, dst, sminrow, smincol, dminrow, dmincol, dmaxrow, dmaxcol, over)); +@@ -148,6 +148,9 @@ copywin(const WINDOW *src, WINDOW *dst, + if (!src || !dst) + returnCode(ERR); + ++ bk = AttrOf(dst->_nc_bkgd); ++ mask = ~(attr_t) ((bk & A_COLOR) ? A_COLOR : 0); ++ + /* make sure rectangle exists in source */ + if ((sminrow + dmaxrow - dminrow) > (src->_maxy + 1) || + (smincol + dmaxcol - dmincol) > (src->_maxx + 1)) { +--- ncurses/base/tries.c ++++ ncurses/base/tries.c 2007-04-03 22:58:30.000000000 +0200 +@@ -68,7 +68,7 @@ _nc_expand_try(TRIES * tree, unsigned co + } + } + if (result != 0) { +- if ((result[len] = ptr->ch) == 0) ++ if (ptr != 0 && (result[len] = ptr->ch) == 0) + *((unsigned char *) (result + len)) = 128; + #ifdef TRACE + if (len == 0 && _nc_tracing != 0) +--- ncurses/base/wresize.c ++++ ncurses/base/wresize.c 2007-04-04 22:28:42.000000000 +0200 +@@ -38,7 +38,7 @@ static int + cleanup_lines(struct ldat *data, int length) + { + while (--length >= 0) +- free(data->text); ++ free(data[length].text); + free(data); + return ERR; + } +--- ncurses/tinfo/trim_sgr0.c ++++ ncurses/tinfo/trim_sgr0.c 2007-04-04 21:29:01.000000000 +0200 +@@ -247,9 +247,7 @@ _nc_trim_sgr0(TERMTYPE *tp) + if (!rewrite_sgr(on, enter_alt_charset_mode) + || !rewrite_sgr(off, exit_alt_charset_mode) + || !rewrite_sgr(end, exit_alt_charset_mode)) { +- FreeIfNeeded(on); + FreeIfNeeded(off); +- FreeIfNeeded(end); + } else if (similar_sgr(off, end) + && !similar_sgr(off, on)) { + TR(TRACE_DATABASE, ("adjusting sgr(9:off) : %s", _nc_visbuf(off))); +@@ -315,8 +313,8 @@ _nc_trim_sgr0(TERMTYPE *tp) + */ + free(off); + } +- free(end); +- free(on); ++ FreeIfNeeded(end); ++ FreeIfNeeded(on); + } else { + /* + * Possibly some applications are confused if sgr0 contains rmacs, +--- progs/dump_entry.c ++++ progs/dump_entry.c 2007-04-07 17:51:47.000000000 +0200 +@@ -352,14 +352,17 @@ version_filter(PredType type, PredIdx id + } + break; + ++#define is_termcap(type) (idx < (int) sizeof(type##_from_termcap) && \ ++ type##_from_termcap[idx]) ++ + case V_BSD: /* BSD */ + switch (type) { + case BOOLEAN: +- return bool_from_termcap[idx]; ++ return is_termcap(bool); + case NUMBER: +- return num_from_termcap[idx]; ++ return is_termcap(num); + case STRING: +- return str_from_termcap[idx]; ++ return is_termcap(str); + } + break; + } +@@ -788,11 +791,11 @@ fmt_entry(TERMTYPE *tterm, + * Much more work should be done on this to support dumping termcaps. + */ + if (tversion == V_HPUX) { +- if (memory_lock) { ++ if (VALID_STRING(memory_lock)) { + (void) sprintf(buffer, "meml=%s", memory_lock); + WRAP_CONCAT; + } +- if (memory_unlock) { ++ if (VALID_STRING(memory_unlock)) { + (void) sprintf(buffer, "memu=%s", memory_unlock); + WRAP_CONCAT; + } +--- progs/infocmp.c ++++ progs/infocmp.c 2007-04-04 02:51:49.000000000 +0200 +@@ -1084,7 +1084,6 @@ dump_initializers(TERMTYPE *term) + } + *tp++ = '"'; + *tp = '\0'; +- size += (strlen(term->Strings[n]) + 1); + (void) printf("static char %-20s[] = %s;\n", + string_variable(ExtStrname(term, n, strnames)), buf); + } +--- progs/tic.c ++++ progs/tic.c 2007-04-07 17:20:35.000000000 +0200 +@@ -353,11 +353,24 @@ open_input(const char *filename) + return fp; + } + ++#if NO_LEAKS ++static void ++free_namelist(char **src) ++{ ++ if (src != 0) { ++ int n; ++ for (n = 0; src[n] != 0; ++n) ++ free (src[n]); ++ free (src); ++ } ++} ++#endif ++ + /* Parse the "-e" option-value into a list of names */ +-static const char ** ++static char ** + make_namelist(char *src) + { +- const char **dst = 0; ++ char **dst = 0; + + char *s, *base; + unsigned pass, n, nn; +@@ -374,11 +387,13 @@ make_namelist(char *src) + if ((s = stripped(buffer)) != 0) { + if (dst != 0) + dst[nn] = s; ++ else ++ free(s); + nn++; + } + } + if (pass == 1) { +- dst = typeCalloc(const char *, nn + 1); ++ dst = typeCalloc(char *, nn + 1); + rewind(fp); + } + } +@@ -401,10 +416,10 @@ make_namelist(char *src) + break; + } + if (pass == 1) +- dst = typeCalloc(const char *, nn + 1); ++ dst = typeCalloc(char *, nn + 1); + } + } +- if (showsummary) { ++ if (showsummary && (dst != 0)) { + fprintf(log_fp, "Entries that will be compiled:\n"); + for (n = 0; dst[n] != 0; n++) + fprintf(log_fp, "%u:%s\n", n + 1, dst[n]); +@@ -413,7 +428,7 @@ make_namelist(char *src) + } + + static bool +-matches(const char **needle, const char *haystack) ++matches(char **needle, const char *haystack) + /* does entry in needle list match |-separated field in haystack? */ + { + bool code = FALSE; +@@ -468,7 +483,7 @@ main(int argc, char *argv[]) + bool limited = TRUE; + char *tversion = (char *) NULL; + const char *source_file = "terminfo"; +- const char **namelst = 0; ++ char **namelst = 0; + char *outdir = (char *) NULL; + bool check_only = FALSE; + bool suppress_untranslatable = FALSE; +@@ -784,6 +799,9 @@ main(int argc, char *argv[]) + else + fprintf(log_fp, "No entries written\n"); + } ++#if NO_LEAKS ++ free_namelist(namelst); ++#endif + cleanup(); + ExitProgram(EXIT_SUCCESS); + } +--- tack/ansi.c ++++ tack/ansi.c 2007-04-07 16:49:53.000000000 +0200 +@@ -309,6 +309,8 @@ request_cfss(void) + put_crlf(); + for (i = 0; rqss[i].text; i++) { + ptext(rqss[i].text); ++ if (rqss[i].expect == 0) ++ continue; + j = strlen(rqss[i].text) + strlen(rqss[i].expect); + putchp(' '); + for (j++; j < 40; j++) +@@ -600,10 +602,11 @@ tools_status( + i = read_reports(); + if (i != 'r' && i != 'R') { + *ch = i; +- return; ++ break; + } + } while (i); + ++ /* VT320, VT420, etc. */ + if (terminal_class >= 63) { + do { + i = request_cfss(); +@@ -841,7 +844,7 @@ tools_charset( + bank[j] = ch; + if (ch < ' ' || ch > '/') + break; +- if (j + 1 >= (int) sizeof(bank)) ++ if (j + 2 >= (int) sizeof(bank)) + break; + } + if (j == 1) +--- tack/output.c ++++ tack/output.c 2007-04-07 16:39:05.000000000 +0200 +@@ -740,7 +740,9 @@ wait_here(void) + /* ignore control S, but tell me about it */ + while (ch == 023 || ch == 021) { + ch = getchp(STRIP_PARITY); +- if (i < (int) sizeof(cc)) ++ if (ch == EOF) ++ break; ++ if (i + 1 < (int) sizeof(cc)) + cc[++i] = ch; + } + put_str("\nThe terminal sent a ^S -"); +@@ -778,7 +780,7 @@ read_string( + + for (i = 0; i < length - 1; ) { + ch = getchp(STRIP_PARITY); +- if (ch == '\r' || ch == '\n') { ++ if (ch == '\r' || ch == '\n' || ch == EOF) { + break; + } + if (ch == '\b' || ch == 127) { +--- test/bs.c ++++ test/bs.c 2007-04-03 01:14:05.000000000 +0200 +@@ -459,7 +459,7 @@ initgame(void) + do { + c = getch(); + } while +- (!strchr("hjklrR", c) || c == FF); ++ (!(strchr("hjklrR", c) || c == FF)); + + if (c == FF) { + (void) clearok(stdscr, TRUE); +--- test/cardfile.c ++++ test/cardfile.c 2007-04-04 22:12:24.000000000 +0200 +@@ -136,13 +136,15 @@ add_content(CARD * card, const char *con + if ((offset = strlen(card->content)) != 0) { + total += 1 + offset; + card->content = (char *) realloc(card->content, total + 1); +- strcpy(card->content + offset++, " "); ++ if (card->content) ++ strcpy(card->content + offset++, " "); + } else { + if (card->content != 0) + free(card->content); + card->content = (char *) malloc(total + 1); + } +- strcpy(card->content + offset, content); ++ if (card->content) ++ strcpy(card->content + offset, content); + } + } + +--- test/demo_defkey.c ++++ test/demo_defkey.c 2007-04-03 01:17:56.000000000 +0200 +@@ -143,13 +143,12 @@ really_define_key(WINDOW *win, const cha + code_name); + } + log_last_line(win); ++ + if (vis_string != 0) { + free(vis_string); + vis_string = 0; + } + +- if (vis_string != 0) +- free(vis_string); + vis_string = visible(new_string); + if ((rc = key_defined(new_string)) > 0) { + wprintw(win, "%s was bound to %s\n", vis_string, keyname(rc)); diff --git a/ncurses-5.6-pthread.dif b/ncurses-5.6-pthread.dif index 08547d2..21f1916 100644 --- a/ncurses-5.6-pthread.dif +++ b/ncurses-5.6-pthread.dif @@ -29,7 +29,7 @@ + +static inline int _nc__sigprocmask(int how, const sigset_t *newmask, sigset_t *oldmask) +{ -+ if (&pthread_sigmask) ++ if ((pthread_sigmask)) + return pthread_sigmask(how, newmask, oldmask); + else + return sigprocmask(how, newmask, oldmask); @@ -41,7 +41,7 @@ +{ + if (!scan || !scan->_read_thread) + goto out; -+ if (!&pthread_kill || !&pthread_equal || !&pthread_self) ++ if (!(pthread_kill) || !(pthread_equal) || !(pthread_self)) + goto out; + if (pthread_equal(scan->_read_thread, pthread_self())) + goto out; @@ -67,7 +67,7 @@ #ifdef __cplusplus extern "C" { #endif -@@ -594,6 +598,11 @@ struct screen { +@@ -591,6 +595,11 @@ struct screen { #define _nc_windows SP->_nc_sp_windows bool _sig_winch; @@ -79,7 +79,7 @@ SCREEN *_next_screen; /* hashes for old and new lines */ -@@ -1214,6 +1223,9 @@ extern NCURSES_EXPORT(void) _nc_scroll_o +@@ -1209,6 +1218,9 @@ extern NCURSES_EXPORT(void) _nc_scroll_o extern NCURSES_EXPORT(void) _nc_scroll_optimize (void); extern NCURSES_EXPORT(void) _nc_set_buffer (FILE *, bool); extern NCURSES_EXPORT(void) _nc_signal_handler (bool); @@ -87,7 +87,7 @@ +extern NCURSES_EXPORT(void) _nc_thread(SCREEN *); +#endif extern NCURSES_EXPORT(void) _nc_synchook (WINDOW *); - extern NCURSES_EXPORT(void) _nc_trace_tries (TRIES *); + extern NCURSES_EXPORT(void) _nc_trace_tries (struct tries *); --- ncurses/base/lib_getch.c +++ ncurses/base/lib_getch.c 2007-01-31 12:41:27.000000000 +0100 @@ -103,7 +103,16 @@ if (wgetch_should_refresh(win)) wrefresh(win); --- ncurses/base/lib_set_term.c -+++ ncurses/base/lib_set_term.c 2007-01-31 13:08:37.000000000 +0100 ++++ ncurses/base/lib_set_term.c 2008-04-08 15:18:15.230819462 +0200 +@@ -40,7 +40,7 @@ + */ + + #include +- ++#include + #include /* cur_term */ + #include + @@ -144,6 +144,12 @@ delscreen(SCREEN *sp) free(sp->_setbuf); } @@ -123,7 +132,7 @@ +#if USE_SIGWINCH +# if defined(linux) && (defined(_REENTRANT) || defined(_THREAD_SAFE)) -+ if (&pthread_self) ++ if ((pthread_self)) + SP->_read_thread = pthread_self(); + else + SP->_read_thread = (pthread_t)0; @@ -200,7 +209,7 @@ CatchIfDefault(SIGTERM, cleanup); #if USE_SIGWINCH +# if defined(linux) && (defined(_REENTRANT) || defined(_THREAD_SAFE)) -+ if (&pthread_self && &pthread_equal) { ++ if ((pthread_self) && (pthread_equal)) { + pthread_t current = pthread_self(); + if (!pthread_equal(SP->_read_thread, current)) + SP->_read_thread = current; @@ -225,7 +234,7 @@ +_nc_thread(SCREEN *scan) +{ +# if defined(linux) && (defined(_REENTRANT) || defined(_THREAD_SAFE)) -+ if (&pthread_self && &pthread_equal) { ++ if ((pthread_self) && (pthread_equal)) { + pthread_t current = pthread_self(); + if (pthread_equal(SP->_read_thread, current)) + return; diff --git a/ncurses-5.6.dif b/ncurses-5.6.dif index 0a616d3..dd2c645 100644 --- a/ncurses-5.6.dif +++ b/ncurses-5.6.dif @@ -1,9 +1,11 @@ --- .pkgextract +++ .pkgextract 2006-05-18 16:07:14.000000000 +0200 -@@ -0,0 +1,3 @@ +@@ -0,0 +1,5 @@ +tar Oxfj ../ncurses-5.6-20070128-patch.tar.bz2 | patch -p1 -s +patch -p0 -s --suffix=.va < ../ncurses-5.3-printw.dif +patch -p0 -s --suffix=.pt < ../ncurses-5.6-pthread.dif ++patch -p0 -s --suffix=.ov < ../ncurses-5.6-overwrite.dif ++patch -p0 -s --suffix=.cv < ../ncurses-5.6-coverity.patch --- aclocal.m4 +++ aclocal.m4 2007-01-31 13:28:46.000000000 +0100 @@ -298,7 +298,7 @@ AC_MSG_CHECKING([for size of bool]) @@ -259,44 +261,9 @@ else TINFO_ARGS="-L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}" fi ---- form/Makefile.in -+++ form/Makefile.in 2006-05-18 16:07:15.000000000 +0200 -@@ -81,7 +81,7 @@ CFLAGS = @CFLAGS@ - - CPPFLAGS = -I@top_srcdir@/ncurses -DHAVE_CONFIG_H @CPPFLAGS@ - --CCFLAGS = $(CPPFLAGS) $(CFLAGS) -+CCFLAGS = $(CPPFLAGS) $(CFLAGS) -D_REENTRANT - - CFLAGS_LIBTOOL = $(CCFLAGS) - CFLAGS_NORMAL = $(CCFLAGS) ---- include/Makefile.in -+++ include/Makefile.in 2006-05-18 16:07:15.000000000 +0200 -@@ -88,7 +88,7 @@ curses.h : $(TERMINFO_CAPS) \ - $(srcdir)/MKkey_defs.sh - cat curses.head >$@ - AWK=$(AWK) sh $(srcdir)/MKkey_defs.sh $(TERMINFO_CAPS) >>$@ -- sh -c 'if test "@NCURSES_CH_T@" = "cchar_t" ; then cat $(srcdir)/curses.wide >>$@ ; fi' -+ cat $(srcdir)/curses.wide >>$@ - cat $(srcdir)/curses.tail >>$@ - - term.h: $(TERMINFO_CAPS) MKterm.h.awk --- include/curses.h.in +++ include/curses.h.in 2006-05-18 16:07:15.000000000 +0200 -@@ -120,7 +120,11 @@ - * of the header incompatible. - */ - #undef NCURSES_CH_T --#define NCURSES_CH_T @NCURSES_CH_T@ -+#ifdef _XOPEN_SOURCE_EXTENDED -+#define NCURSES_CH_T cchar_t -+#else -+#define NCURSES_CH_T chtype -+#endif - - #if @cf_cv_enable_lp64@ && defined(_LP64) - typedef unsigned chtype; -@@ -130,6 +134,8 @@ typedef unsigned @cf_cv_typeof_chtype@ c +@@ -130,6 +130,8 @@ typedef unsigned @cf_cv_typeof_chtype@ c typedef unsigned @cf_cv_typeof_mmask_t@ mmask_t; #endif @@ -305,26 +272,6 @@ #include #include #include /* we need va_list */ -@@ -328,16 +334,16 @@ typedef chtype attr_t; /* ...must be at - #include - #endif - --#if @NEED_WCHAR_H@ -+#if 1 - #include /* ...to get mbstate_t, etc. */ - #endif - - #if @NCURSES_WCHAR_T@ --typedef unsigned short wchar_t@NCURSES_OK_WCHAR_T@; -+typedef unsigned short wchar_t; - #endif - - #if @NCURSES_WINT_T@ --typedef unsigned int wint_t@NCURSES_OK_WCHAR_T@; -+typedef unsigned int wint_t; - #endif - - #define CCHARW_MAX 5 --- include/termcap.h.in +++ include/termcap.h.in 2006-05-18 16:07:15.000000000 +0200 @@ -46,6 +46,8 @@ extern "C" @@ -377,17 +324,6 @@ The \fBncurses\fR library permits manipulation of data structures, called \fIwindows\fR, which can be thought of as two-dimensional arrays of characters representing all or part of a CRT screen. A ---- menu/Makefile.in -+++ menu/Makefile.in 2006-05-18 16:07:15.000000000 +0200 -@@ -81,7 +81,7 @@ CFLAGS = @CFLAGS@ - - CPPFLAGS = -I@top_srcdir@/ncurses -DHAVE_CONFIG_H @CPPFLAGS@ - --CCFLAGS = $(CPPFLAGS) $(CFLAGS) -+CCFLAGS = $(CPPFLAGS) $(CFLAGS) -D_REENTRANT - - CFLAGS_LIBTOOL = $(CCFLAGS) - CFLAGS_NORMAL = $(CCFLAGS) --- misc/terminfo.src +++ misc/terminfo.src 2007-01-31 14:27:30.000000000 +0100 @@ -301,7 +301,9 @@ dumb|80-column dumb tty, @@ -747,15 +683,6 @@ ibm5081-c|ibmmpel-c|IBM 5081 1024x1024 256/4096 Megapel enhanced color display, --- ncurses/Makefile.in +++ ncurses/Makefile.in 2007-01-31 13:34:38.000000000 +0100 -@@ -90,7 +90,7 @@ CFLAGS = @CFLAGS@ - INCDIR = $(srcdir)/../include - CPPFLAGS = -DHAVE_CONFIG_H -I../ncurses -I$(srcdir) @CPPFLAGS@ - --CCFLAGS = $(CPPFLAGS) $(CFLAGS) -+CCFLAGS = $(CPPFLAGS) $(CFLAGS) -D_REENTRANT - - BUILD_CPPFLAGS = -I../include @BUILD_CPPFLAGS@ - BUILD_CC = @BUILD_CC@ @@ -184,7 +184,7 @@ $(DESTDIR)$(libdir) : ../lib : ; mkdir $@ @@ -943,17 +870,6 @@ } } if (copied != 0) ---- panel/Makefile.in -+++ panel/Makefile.in 2006-05-18 16:07:15.000000000 +0200 -@@ -82,7 +82,7 @@ CFLAGS = @CFLAGS@ - - CPPFLAGS = -I@top_srcdir@/ncurses -DHAVE_CONFIG_H @CPPFLAGS@ - --CCFLAGS = $(CPPFLAGS) $(CFLAGS) -+CCFLAGS = $(CPPFLAGS) $(CFLAGS) -D_REENTRANT - - CFLAGS_LIBTOOL = $(CCFLAGS) - CFLAGS_NORMAL = $(CCFLAGS) --- test/test.priv.h +++ test/test.priv.h 2006-05-18 16:07:19.000000000 +0200 @@ -429,12 +429,12 @@ extern int optind; diff --git a/ncurses-rpmlintrc b/ncurses-rpmlintrc new file mode 100644 index 0000000..9bca98c --- /dev/null +++ b/ncurses-rpmlintrc @@ -0,0 +1 @@ +addFilter(".*files-duplicate.*") diff --git a/ncurses.changes b/ncurses.changes index 7a105a8..260ed74 100644 --- a/ncurses.changes +++ b/ncurses.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Wed Apr 8 19:20:00 CEST 2008 - werner@suse.de + +- New sub package libncurses5 including the shared libraries and + the required terminfo and termset data files. +- Include the patch for coverity report + ------------------------------------------------------------------- Mon Dec 10 15:11:36 CET 2007 - werner@suse.de diff --git a/ncurses.spec b/ncurses.spec index db1e9ff..bf2f4c9 100644 --- a/ncurses.spec +++ b/ncurses.spec @@ -1,7 +1,7 @@ # # spec file for package ncurses (Version 5.6) # -# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany. # This file and all modifications and additions to the pristine # package are under the same license as the package itself. # @@ -10,29 +10,35 @@ # norootforbuild + Name: ncurses #!BuildIgnore: terminfo BuildRequires: gcc-c++ gpm %define terminfo() %{_datadir}/%{0}/%{1} %define tabset() %{_datadir}/%{0}/%{1} License: X11/MIT -Group: System/Libraries +Group: System/Base AutoReqProv: on Version: 5.6 -Release: 52 +Release: 71 Summary: New curses Libraries -Source0: ncurses-%{version}.tar.bz2 +Source0: ncurses-5.6.tar.bz2 Url: http://invisible-island.net/ncurses/ncurses.html Source1: ncurses-%{version}-20070128-patch.tar.bz2 Source2: handle.linux +Source3: README.devel +Source4: ncurses-rpmlintrc Patch0: ncurses-%{version}.dif Patch1: ncurses-5.3-printw.dif Patch2: ncurses-5.6-pthread.dif Patch3: ncurses-5.6-overwrite.dif +Patch4: ncurses-5.6-coverity.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build %global _sysconfdir /etc %global _miscdir %{_datadir}/misc %global _incdir %{_includedir} +%global root %{_tmppath}/%{name}-%{version}-store +%global abi %(ver=%{version}; echo ${ver%.*}) %description As soon as a text application needs to directly control its output to @@ -43,6 +49,28 @@ characters, and panels. +Authors: +-------- + Zeyd M. Ben-Halim + Eric S. Raymond + Thomas E. Dickey + Juergen Pfeifer + Pavel Curtis + +%package -n libncurses5 +License: X11/MIT +Summary: The New curses Libraries +Group: System/Libraries +Provides: ncurses:/%{_lib}/libncurses.so.5 +Requires: ncurses +AutoReqProv: on + +%description -n libncurses5 +The ncurses library is used by the most curses based terminal +applications for controling its output and input to the screen. + + + Authors: -------- Zeyd M. Ben-Halim @@ -123,6 +151,7 @@ tar Oxfj %{SOURCE1} | patch -p1 -s %patch -P 1 -p0 -b .va %patch -P 2 -p0 -b .pt %patch -P 3 -p0 -b .ow +%patch -P 4 -p0 -b .cv %patch -P 0 -p0 %build @@ -131,15 +160,15 @@ tar Oxfj %{SOURCE1} | patch -p1 -s FALLBK="xterm,linux,vt100,vt102" CC=gcc CXX=g++ + CFLAGS="${RPM_OPT_FLAGS} -pipe -D_REENTRANT" if [[ "$BUILD_BASENAME" = debug-* ]] ; then - CFLAGS="${RPM_OPT_FLAGS} -pipe -g -DTRACE" - else - CFLAGS="${RPM_OPT_FLAGS} -pipe" + CFLAGS="${CFLAGS} -g -DTRACE" fi - # LDFLAGS="-Wl,-Bsymbolic-functions" CXXFLAGS=$CFLAGS + # LDFLAGS="-Wl,-Bsymbolic-functions" test -n "$TERM" || TERM=linux - export CC CFLAGS CXX CXXFLAGS TERM LDFLAGS + GZIP="-9" + export CC CFLAGS CXX CXXFLAGS GZIP TERM LDFLAGS # # Detect 64bit architecures and be sure that # we use an unsigned long for chtype to be @@ -150,6 +179,7 @@ tar Oxfj %{SOURCE1} | patch -p1 -s WITHCHTYPE="--with-chtype=long" else WITHCHTYPE="" + CFLAGS="${CFLAGS} -D_LARGEFILE64_SOURCES -D_FILE_OFFSET_BITS=64" fi rm -f ./test64 # @@ -193,6 +223,10 @@ tar Oxfj %{SOURCE1} | patch -p1 -s --enable-symlinks \ --enable-sigwinch \ --enable-colorfgbg \ +%if %abi >= 6 + --enable-ext-mouse \ +%endif + --enable-wgetch-events \ --prefix=%{_prefix} \ --exec-prefix=%{_prefix}\ --libdir=%{_libdir} \ @@ -200,8 +234,7 @@ tar Oxfj %{SOURCE1} | patch -p1 -s --mandir=%{_mandir} \ --includedir=%{_incdir} \ "${WITHCHTYPE}" \ - --with-ticlib=tic \ - --with-install-prefix=%{buildroot} + --with-ticlib=tic # # This is a hack to be able to boot strap # a libncurses with correct fallback.c. @@ -223,27 +256,45 @@ tar Oxfj %{SOURCE1} | patch -p1 -s cd ../ PATH=$OPATH # + # Refresh second install path + # + rm -rf %{root} + mkdir %{root} + # # Now rebuild libncurses and do the rest of this job # - make - GZIP="-9" - export GZIP - test -n "%{buildroot}" && rm -rf %{buildroot}/* - make install + make && make install DESTDIR=%{root} includedir=%{_incdir} + # + # The configure line + # + c=`grep '^ *$ *\./configure' config.log` # # Now use --enable-widec for UTF8/wide character support. # The libs with 16 bit wide characters are binary incompatible # to the normal 8bit wide character libs. # - c=`grep '^ *$ *\./configure' config.log` - eval ./${c#*./} --enable-widec --without-normal - make +%if %abi >= 6 + eval ./${c#*./} --enable-widec --enable-ext-colors --without-progs +%else + eval ./${c#*./} --enable-widec --without-progs +%endif + make && make install.libs install.includes DESTDIR=%{root} includedir=%{_incdir}/ncursesw + for h in %{root}%{_incdir}/ncursesw/*.h ; do + test -e "$h" || continue + h=${h##*/} + for t in %{root}%{_incdir}/ncursesw/*.h ; do + test -e "$t" || continue + test ! -L $t || continue + sed -ri "s;(#include[[:blank:]]+<)(${h}>);\1ncursesw/\2;" $t + done + done %install GZIP="-9" export GZIP - make install.libs install.includes - mkdir -p %{buildroot}/%{_lib} + (cd %{root}/; tar -cpsSf - *)|tar -xpsSf - -C %{buildroot}/ + rm -rf %{root} + mkdir %{buildroot}/%{_lib} for lib in libncurses libncursesw do mv %{buildroot}%{_libdir}/${lib}.so.* %{buildroot}/%{_lib}/ @@ -261,6 +312,7 @@ tar Oxfj %{SOURCE1} | patch -p1 -s install -m 644 doc/ncurses-intro.txt.bz2 %{buildroot}%{_defaultdocdir}/ncurses/ bzip2 doc/hackguide.doc -c > doc/hackguide.txt.bz2 install -m 644 doc/hackguide.txt.bz2 %{buildroot}%{_defaultdocdir}/ncurses/ + install -m 644 %{S:3} %{buildroot}%{_defaultdocdir}/ncurses/ mkdir -p %{buildroot}%{_sysconfdir} mkdir -p %{buildroot}%{_miscdir} cd ncurses/ @@ -326,37 +378,24 @@ tar Oxfj %{SOURCE1} | patch -p1 -s > extension.list rm -f %{buildroot}%{_prefix}/lib/terminfo mkdir -p %{buildroot}%{_incdir}/ncurses - mkdir -p %{buildroot}%{_incdir}/ncursesw - cat > %{buildroot}%{_incdir}/ncursesw/ncurses.h <<-"EOF" - #ifndef _XOPEN_SOURCE_EXTENDED - #define _XOPEN_SOURCE_EXTENDED - #endif - #ifndef __NCURSES_H - #include_next - #endif - EOF ln -sf ../ncurses.h %{buildroot}%{_incdir}/ncurses/ -%post -p /sbin/ldconfig +%post -n libncurses5 -p /sbin/ldconfig -%postun -p /sbin/ldconfig +%postun -n libncurses5 -p /sbin/ldconfig -%files -f default.list +%files -f default.list %defattr(-,root,root) -#%ghost %{_prefix}/lib/tabset -#%ghost %{_prefix}/lib/terminfo +%{_sysconfdir}/termcap +%config %{_miscdir}/termcap %dir %{_datadir}/tabset/ %dir %{_datadir}/terminfo/ %dir %{_datadir}/terminfo/*/ -%{_sysconfdir}/termcap -%config %{_miscdir}/termcap -/%{_lib}/lib*.so.* %{_bindir}/clear %{_bindir}/reset %{_bindir}/toe %{_bindir}/tput %{_bindir}/tset -%{_libdir}/lib*.so.* %doc %{_mandir}/man1/clear.1.gz %doc %{_mandir}/man1/reset.1.gz %doc %{_mandir}/man1/toe.1.gz @@ -364,6 +403,11 @@ tar Oxfj %{SOURCE1} | patch -p1 -s %doc %{_mandir}/man1/tset.1.gz %doc %{_mandir}/man5/*.gz +%files -n libncurses5 +%defattr(-,root,root) +/%{_lib}/lib*.so.* +%{_libdir}/lib*.so.* + %files -n ncurses-devel %defattr(-,root,root) %dir %{_defaultdocdir}/ncurses/ @@ -376,8 +420,7 @@ tar Oxfj %{SOURCE1} | patch -p1 -s %dir %{_incdir}/ncurses/ %dir %{_incdir}/ncursesw/ %{_incdir}/*.h -%{_incdir}/ncurses/*.h -%{_incdir}/ncursesw/*.h +%{_incdir}/ncurses*/*.h %{_libdir}/lib*.a %{_libdir}/lib*.so %doc %{_mandir}/man1/captoinfo.1.gz @@ -396,262 +439,266 @@ tar Oxfj %{SOURCE1} | patch -p1 -s %defattr(-,root,root) %changelog -* Mon Dec 10 2007 - werner@suse.de +* Tue Apr 08 2008 werner@suse.de +- New sub package libncurses5 including the shared libraries and + the required terminfo and termset data files. +- Include the patch for coverity report +* Mon Dec 10 2007 werner@suse.de - Avoid endless loop in case of including the wrapper header -* Wed Dec 05 2007 - werner@suse.de +* Wed Dec 05 2007 werner@suse.de - Add compatibility header files (bug #337412) -* Mon Oct 29 2007 - pth@suse.de +* Mon Oct 29 2007 pth@suse.de - Fix configure so that ncurses-config doesn't erroneously report ncurses.h to reside in /usr/include/ncurses (#337412). -* Wed Sep 05 2007 - werner@suse.de +* Wed Sep 05 2007 werner@suse.de - Move libncursesw to /lib or /lib64 (bug #307353) -* Fri May 25 2007 - dmueller@suse.de +* Sat May 26 2007 dmueller@suse.de - add %%post/un to call ldconfig -* Tue May 15 2007 - dmueller@suse.de +* Tue May 15 2007 dmueller@suse.de - move documentation to -devel package and bzip text files -* Tue Mar 20 2007 - rguenther@suse.de +* Tue Mar 20 2007 rguenther@suse.de - Remove unused ed BuildRequires. -* Mon Mar 19 2007 - rguenther@suse.de +* Mon Mar 19 2007 rguenther@suse.de - Make gpm support via libdl and gpm BuildRequires explicit. -* Wed Jan 31 2007 - werner@suse.de +* Wed Jan 31 2007 werner@suse.de - Update to 5.6-20070128 - Split of tack a its own sub package to be able to specify the different licenses of ncurses and tack (bug #231835) -* Fri Nov 17 2006 - werner@suse.de +* Fri Nov 17 2006 werner@suse.de - Revert broken change for rxvt from patchlevel 20051015 (#221259) -* Wed Nov 15 2006 - werner@suse.de +* Wed Nov 15 2006 werner@suse.de - Disable experimental xmc-glitch (magic cookie support) for now because it breaks YaST2 on console/konsole (bug #199256) -* Wed Aug 02 2006 - rguenther@suse.de +* Wed Aug 02 2006 rguenther@suse.de - Removed not required BuildRequires on sharutils. -* Mon Jul 31 2006 - schwab@suse.de +* Mon Jul 31 2006 schwab@suse.de - Don't make stack executable. - Remove executable bit from archives. -* Thu May 18 2006 - werner@suse.de +* Thu May 18 2006 werner@suse.de - Update to 5.5-20060513 - Add rxvt-unicode terminfo entry -* Sun Apr 09 2006 - werner@suse.de +* Sun Apr 09 2006 werner@suse.de - Removed enacs from xterm terminfo entry, the reason is that it would break non latin encodings and the xterm does not need it (See comment #11 of bug #163715). -* Sat Apr 08 2006 - werner@suse.de +* Sat Apr 08 2006 werner@suse.de - Enable the script to get better termcap entries for arious linux console types (bug #163715) -* Fri Apr 07 2006 - werner@suse.de +* Fri Apr 07 2006 werner@suse.de - Add enacs capability to xterm terminfo entry (bug #163715) - Also add a script to get better termcap entries for various linux console types, currently unused (bug#163715) -* Wed Mar 01 2006 - werner@suse.de +* Wed Mar 01 2006 werner@suse.de - Add screen terminfo entry for 256 colors (bug #136684) -* Thu Feb 23 2006 - werner@suse.de +* Thu Feb 23 2006 werner@suse.de - On 64 bit architectures: be backward compatible and use unsigned long for chtype (bug #151283) -* Wed Jan 25 2006 - mls@suse.de +* Wed Jan 25 2006 mls@suse.de - converted neededforbuild to BuildRequires -* Tue Jan 10 2006 - ro@suse.de +* Tue Jan 10 2006 ro@suse.de - create empty va_list instead of using NULL (not portable) -* Sat Dec 17 2005 - kukuk@suse.de +* Sat Dec 17 2005 kukuk@suse.de - Remove /usr/lib/terminfo symlink -* Mon Oct 17 2005 - werner@suse.de +* Mon Oct 17 2005 werner@suse.de - New version new bug, fix doubled man alias for tack (bug #127783) -* Thu Oct 13 2005 - werner@suse.de +* Thu Oct 13 2005 werner@suse.de - Switch to ncurses version 5.5 - Re-enable curses.h to support both wide and normal characters -* Tue Jul 26 2005 - werner@suse.de +* Tue Jul 26 2005 werner@suse.de - Move terminfo entry of mlterm to mlterm 2.9.2, add cvvis, and add it to the default terminfo entries of ncurses. -* Fri Jul 22 2005 - werner@suse.de +* Fri Jul 22 2005 werner@suse.de - Update to patch level 20050716 -* Tue Mar 01 2005 - schwab@suse.de +* Tue Mar 01 2005 schwab@suse.de - Fix return value of tigetflag. -* Thu Feb 24 2005 - werner@suse.de +* Thu Feb 24 2005 werner@suse.de - Re-add the ESC[?1c to the civis for linux terminal (bug #65481) -* Thu Sep 16 2004 - werner@suse.de +* Thu Sep 16 2004 werner@suse.de - Add attributes only on first byte of a wide character (#45479) -* Fri Sep 10 2004 - werner@suse.de +* Fri Sep 10 2004 werner@suse.de - Make the wide fix smart -* Thu Sep 09 2004 - werner@suse.de +* Thu Sep 09 2004 werner@suse.de - Re-enable wide fix for none wide terminals -* Fri Apr 23 2004 - werner@suse.de +* Fri Apr 23 2004 werner@suse.de - Fix crash due called weak symbol without check -* Mon Apr 05 2004 - werner@suse.de +* Mon Apr 05 2004 werner@suse.de - Be sure that EINTR from signal is correctly delivered to the reading thread. Use weak symbols to get it work even if not (p)threaded (bug #37273). -* Fri Apr 02 2004 - werner@suse.de +* Fri Apr 02 2004 werner@suse.de - Use weak symbol pthread_setmask instead of sigprocmask if called by (p)threaded programs like yast2 (bug #37273). -* Thu Feb 19 2004 - werner@suse.de +* Thu Feb 19 2004 werner@suse.de - Switch to official version of 5.4 -* Wed Jan 28 2004 - werner@suse.de +* Wed Jan 28 2004 werner@suse.de - Fix ACSC list of kterm e.g. for alsamixer -* Fri Jan 16 2004 - werner@suse.de +* Fri Jan 16 2004 werner@suse.de - Update to 5.3-2004011 aka 5.4 - Strike nasty bug in wide version: now none UTF-8 graphic characters are usable in any locale again. - Enable TRACE for debugging builds -* Mon Nov 24 2003 - kukuk@suse.de +* Mon Nov 24 2003 kukuk@suse.de - Build as non-root - Compile with no-execstack -* Tue Jul 29 2003 - aj@suse.de +* Tue Jul 29 2003 aj@suse.de - Fix for changed chown behaviour. -* Mon Feb 24 2003 - werner@suse.de +* Mon Feb 24 2003 werner@suse.de - Fix for ACS handling: YaST uses always correct fonts with UTF-8 -* Tue Feb 11 2003 - werner@suse.de +* Tue Feb 11 2003 werner@suse.de - Set TERM if not set, should help to build ncurses on all hosts -* Mon Feb 10 2003 - werner@suse.de +* Mon Feb 10 2003 werner@suse.de - Update to patch level 20030201 due fix of mem leaks -* Thu Jan 30 2003 - werner@suse.de +* Thu Jan 30 2003 werner@suse.de - Fix dynamic file listing for terminfo: also include sym links -* Wed Jan 22 2003 - werner@suse.de +* Wed Jan 22 2003 werner@suse.de - Fix va handling in printw, disable experimental safe sprintf builtin (bug #22987) -* Thu Jan 09 2003 - werner@suse.de +* Thu Jan 09 2003 werner@suse.de - Update to ncurses 5.3 patchlevel 20030105 - Make spec file more handy with automatic file list generation -* Tue Sep 17 2002 - ro@suse.de +* Tue Sep 17 2002 ro@suse.de - removed bogus self-provides -* Wed Aug 14 2002 - mls@suse.de +* Wed Aug 14 2002 mls@suse.de - updated screen terminfo entry, added screen-bce and screen-s -* Fri Aug 09 2002 - kukuk@suse.de +* Fri Aug 09 2002 kukuk@suse.de - ncurses-devel should require ncurses [Bug #17543] -* Tue Aug 06 2002 - werner@suse.de +* Tue Aug 06 2002 werner@suse.de - Switch to XTerm for XFree86[tm] 4.2.0 (bug #15002) -* Wed Jul 31 2002 - meissner@suse.de +* Wed Jul 31 2002 meissner@suse.de - disabled -funroll-loops since it triggers a compiler bug on PPC. -* Thu Jul 18 2002 - kukuk@suse.de +* Thu Jul 18 2002 kukuk@suse.de - Remove old /usr/lib compatibility links -* Mon Jul 15 2002 - werner@suse.de +* Mon Jul 15 2002 werner@suse.de - Remove ich1 from xterm entry (bug #7857) hopefully most modern programs uses ncurses - Add kcbt key for YaST - remove ncurses 4.2 - Enable ncurses 5.2 with wide character support -* Fri Jun 14 2002 - olh@suse.de +* Sat Jun 15 2002 olh@suse.de - do not build ncurses 4.2 on ppc64, it appears in Requires later -* Wed May 22 2002 - olh@suse.de +* Wed May 22 2002 olh@suse.de - do not package libncurses.4 on ppc64, allow build as non-root -* Sat May 11 2002 - schwab@suse.de +* Sat May 11 2002 schwab@suse.de - Remove ia64 compiler workarounds. -* Wed Apr 17 2002 - kukuk@suse.de +* Wed Apr 17 2002 kukuk@suse.de - Disable old ncurses libraries on x86_64 -* Thu Feb 21 2002 - werner@suse.de +* Thu Feb 21 2002 werner@suse.de - Fix cat&paste error of patch level 20010922 -* Mon Feb 11 2002 - ro@suse.de +* Tue Feb 12 2002 ro@suse.de - tar option for bz2 is "j" -* Wed Feb 06 2002 - coolo@suse.de +* Wed Feb 06 2002 coolo@suse.de - s390x is 64 bit too -* Fri Nov 23 2001 - uli@suse.de +* Fri Nov 23 2001 uli@suse.de - fixed to build on ARM -* Sun Nov 11 2001 - schwab@suse.de +* Sun Nov 11 2001 schwab@suse.de - Fix last change, use vsscanf instead of vscanf. -* Fri Nov 09 2001 - stepan@suse.de +* Fri Nov 09 2001 stepan@suse.de - fix ncurses 4.2 on gcc3 distributions. -* Thu Oct 04 2001 - werner@suse.de +* Thu Oct 04 2001 werner@suse.de - Update to ncurses 5.2 patch level 20011001 -* Wed Jun 06 2001 - bk@suse.de +* Wed Jun 06 2001 bk@suse.de - fix to compile on s390x (cursesw.cc) -* Tue May 08 2001 - mfabian@suse.de +* Tue May 08 2001 mfabian@suse.de - bzip2 sources -* Wed Apr 11 2001 - schwab@suse.de +* Wed Apr 11 2001 schwab@suse.de - Reenable c++ bindings on ia64, instead use -O0 for c++. -* Thu Mar 22 2001 - ro@suse.de +* Thu Mar 22 2001 ro@suse.de - added split aliases as provides -* Tue Mar 20 2001 - schwab@suse.de +* Tue Mar 20 2001 schwab@suse.de - Don't build c++ bindings and remove -funroll-loops on ia64 to work around compiler bug. -* Fri Mar 16 2001 - ro@suse.de +* Fri Mar 16 2001 ro@suse.de - fix to compile on s390 (cursesw.cc) -* Mon Feb 19 2001 - ro@suse.de +* Mon Feb 19 2001 ro@suse.de - fixed to compile on gcc-2.96 (include string.h) -* Fri Feb 16 2001 - werner@suse.de +* Fri Feb 16 2001 werner@suse.de - We don't need include string.h more than once - Update to patch 20010210 -* Thu Feb 15 2001 - stepan@suse.de +* Thu Feb 15 2001 stepan@suse.de - add some includes to compile with newer gcc versions. -* Fri Dec 22 2000 - werner@suse.de +* Fri Dec 22 2000 werner@suse.de - After a reset xterm should answer ^? on backarrow key -* Thu Dec 07 2000 - werner@suse.de +* Thu Dec 07 2000 werner@suse.de - Add vt102 to fallback terminal descriptions - Add xterm-basic only to ncurses -* Tue Nov 14 2000 - werner@suse.de +* Tue Nov 14 2000 werner@suse.de - Try to solve boot straping without installed ncurses-devel - Use newest terminfo sources for builtin fallback - Re-enable ncurses-5.0-to-4.2-panel.patch for ncurses 4.2 - Move /usr/lib/lib*.so to ncurses-devel -* Mon Nov 13 2000 - werner@suse.de +* Mon Nov 13 2000 werner@suse.de - Update to ncurses 5.2 - Fix replacement of marks within manual pages - Set type of ospeed to speed_t - Put development tools, headers and static libs into their own package ncurses-devel. -* Thu Oct 26 2000 - kukuk@suse.de +* Thu Oct 26 2000 kukuk@suse.de - Rename sharutil to sharutils -* Sun Oct 15 2000 - schwab@suse.de +* Sun Oct 15 2000 schwab@suse.de - Fix libncurses.so link. -* Tue Oct 10 2000 - werner@suse.de +* Tue Oct 10 2000 werner@suse.de - Update to 5.1 due to the better handling of string termination of terminfo entries (security, strcpy patch therefore). -* Fri Oct 06 2000 - werner@suse.de +* Fri Oct 06 2000 werner@suse.de - Move strncpy to strlcpy which appends the terminating NUL character. -* Mon Oct 02 2000 - werner@suse.de +* Mon Oct 02 2000 werner@suse.de - Use strncpy and strncat in lib_mvcur.c instead of the trustful strcpy and strcat. -* Sun Oct 01 2000 - kukuk@suse.de +* Sun Oct 01 2000 kukuk@suse.de - Fix for compiling with new g++ on ia64 -* Sun Oct 01 2000 - kukuk@suse.de +* Sun Oct 01 2000 kukuk@suse.de - Don't use run_cmd.sh to create fallback.c - Don't build compat ncurses 4.2 on new platforms - Use rpm 3.0.5 macros for 32/64bit support -* Mon Sep 04 2000 - werner@suse.de +* Mon Sep 04 2000 werner@suse.de - Correct documentation path -* Fri Jul 07 2000 - werner@suse.de +* Fri Jul 07 2000 werner@suse.de - Make update mechanism compatible with rpm, yast and yast2 -* Wed Jun 28 2000 - werner@suse.de +* Wed Jun 28 2000 werner@suse.de - Better update mechanism (verified with 6.2, 6.3, 6.4, and 7.0) - Update to patch level 20000624 due some bug fixes included there - Fix due bug in lib_screen.c (causes SIGSEGV) -* Mon May 22 2000 - werner@suse.de +* Mon May 22 2000 werner@suse.de - Use new macros to avoid removing files via symbolic linked directory which was a real directory. I use here not only %%ghost but also %%config(missingok) to avoid the buggy order of executing %%post install script. (There is no %%post remove script). -* Wed May 17 2000 - werner@suse.de +* Wed May 17 2000 werner@suse.de - One fix more -* Tue May 16 2000 - werner@suse.de +* Tue May 16 2000 werner@suse.de - Fix the post install script: usr/lib/tabset may empty -* Mon Apr 03 2000 - bk@suse.de +* Mon Apr 03 2000 bk@suse.de - added workaround for bad %%{suse_update_config -f} handling on i386 message was: suse_update_config: invalid option -- -* Sat Apr 01 2000 - bk@suse.de +* Sun Apr 02 2000 bk@suse.de - updated %%suse_update_config call for s390 -* Fri Mar 03 2000 - schwab@suse.de +* Fri Mar 03 2000 schwab@suse.de - Fix for ia64. - Update config.{guess,sub} from automake -* Thu Mar 02 2000 - werner@suse.de +* Thu Mar 02 2000 werner@suse.de - Add patch for resize of subwindows relative to their parents (required for YaST2) -* Mon Feb 28 2000 - werner@suse.de +* Mon Feb 28 2000 werner@suse.de - Add patch 20000226 which makes 20000219 work perfect -* Fri Feb 25 2000 - werner@suse.de +* Fri Feb 25 2000 werner@suse.de - Add patch 20000219 which should help on setting default fg/bg off the most applications -* Fri Feb 18 2000 - werner@suse.de +* Fri Feb 18 2000 werner@suse.de - Add patches 20000115, 20000122, 20000205, and 20000212 * hopefully this fixes some coloring kludges - Make $VENDOR work for all Linux architectures - Fix kvt/gnome entries for SuSE -* Tue Feb 15 2000 - schwab@suse.de +* Tue Feb 15 2000 schwab@suse.de - Update config.{guess,sub} to latest version. -* Thu Feb 03 2000 - ro@suse.de +* Thu Feb 03 2000 ro@suse.de - use "-O1" for ncurses-4.2 on alpha -* Thu Jan 20 2000 - ro@suse.de +* Thu Jan 20 2000 ro@suse.de - don't build ncurses-4.2/c++/demo -* Tue Jan 18 2000 - werner@suse.de +* Tue Jan 18 2000 werner@suse.de - Workaround for all system which uses _SYS_VA_LIST_H (e.g. PPC) -* Mon Jan 17 2000 - werner@suse.de +* Mon Jan 17 2000 werner@suse.de - Hey here we are: libncurses 5.0 * Use patches 19991030 upto 20000108 * Make arch-suse-linux work @@ -662,21 +709,21 @@ tar Oxfj %{SOURCE1} | patch -p1 -s - Hold shared libncurses 4.2 libraries for backward compatibility and older programs - Use /usr/share/man/ -* Fri Oct 29 1999 - werner@suse.de +* Fri Oct 29 1999 werner@suse.de - Remove buggy bool patch, sizeof the type bool should the same in C++ and C on any architecture. This because libncurses is used by both type of C++ and C programs. Let configure do its job. -* Fri Oct 15 1999 - werner@suse.de +* Fri Oct 15 1999 werner@suse.de - Last minor checks - Move /usr/lib/terminfo/, /usr/lib/tabset/ to /usr/share/terminfo/, /usr/share/tabset/ and set a compatibility link. - Check security fix, seems to work. -* Thu Oct 14 1999 - werner@suse.de +* Fri Oct 15 1999 werner@suse.de - Port some patches from debian mainly security issues - Use newer terminfo.src - Move some common terminfo entries from terminfo packages to main packages ncurses -* Wed Oct 13 1999 - werner@suse.de +* Thu Oct 14 1999 werner@suse.de - Add panel patch from ncurses 5.0 - Remove kbs=\177 for some terminals like some xterm types and vt100 to hold it compatible with other UNICES @@ -685,58 +732,58 @@ tar Oxfj %{SOURCE1} | patch -p1 -s our old version which are compatible - Add some dumb terminal type like switch, patch, net, network, arpanet, and dialup -* Mon Sep 13 1999 - bs@suse.de +* Mon Sep 13 1999 bs@suse.de - ran old prepare_spec on spec file to switch to new prepare_spec. -* Thu Mar 25 1999 - ro@suse.de +* Thu Mar 25 1999 ro@suse.de - changed permissions (a+x) for libform,menu,panel -* Mon Mar 22 1999 - florian@suse.de +* Mon Mar 22 1999 florian@suse.de - add compatibility link from /usr/share/{tabset,terminfo} -* Sun Sep 06 1998 - ro@suse.de +* Sun Sep 06 1998 ro@suse.de - fixed neededforbuild -* Wed Jun 03 1998 - florian@suse.de +* Wed Jun 03 1998 florian@suse.de - use major 4 for glibc2 -* Wed Mar 11 1998 - werner@suse.de +* Wed Mar 11 1998 werner@suse.de - Defines a xterm-xf86suse entry * use xterm-xf86-v33 with changes - Use xterm-xf86suse for xterm -* Mon Mar 09 1998 - bs@suse.de +* Mon Mar 09 1998 bs@suse.de - set executable bit to libncurses.so.3.0.* -* Mon Mar 02 1998 - florian@suse.de +* Mon Mar 02 1998 florian@suse.de - update to ncurses 4.2 - use xterm for XFree86 3.3 and not 3.2... -* Mon Mar 02 1998 - florian@suse.de +* Mon Mar 02 1998 florian@suse.de - mark /etc/termcap as %%config -* Fri Feb 20 1998 - werner@suse.de +* Fri Feb 20 1998 werner@suse.de - redone fixes as to previous version -* Tue Feb 17 1998 - florian@suse.de +* Tue Feb 17 1998 florian@suse.de - update to ncurses 4.2-beta1 -* Thu Jan 29 1998 - werner@suse.de +* Thu Jan 29 1998 werner@suse.de - add some settings for: * TERM=linux (cvvis and sgr0 added) * TERM=xterm (kf21 (shift F11) and kf22 (shift F12) added) * TERM=rxvt (keypad keys correct defined, mc5 and mc4 added for printing, smacs and rmacs repaired, sgr added) -* Tue Nov 11 1997 - ro@suse.de +* Tue Nov 11 1997 ro@suse.de - terminfo builds from same specfile -* Fri Oct 17 1997 - ro@suse.de +* Fri Oct 17 1997 ro@suse.de - removed old lib 1.9.7a ready for autobuild -* Tue May 27 1997 - florian@suse.de +* Tue May 27 1997 florian@suse.de - handle wrong TERM-settings for tput - change xterm-entry in terminfo source file -* Tue May 20 1997 - florian@suse.de +* Tue May 20 1997 florian@suse.de - update to version 4.1 -* Wed Apr 30 1997 - florian@suse.de +* Wed Apr 30 1997 florian@suse.de - mv /lib/libncurses.so.1.9* /usr/lib/ -* Sun Apr 13 1997 - florian@suse.de +* Mon Apr 14 1997 florian@suse.de - update to new version 970412 -* Thu Jan 02 1997 - werner@suse.de +* Thu Jan 02 1997 werner@suse.de - Anpassung von terminfo an das XTerm app-defaults - Einige Fixes in der Intialisierung und Handling von Escape-Sequenzen des xterms aus XFree86[tm]-3.2 -* Thu Jan 02 1997 - florian@suse.de +* Thu Jan 02 1997 florian@suse.de - update to version 961102 -* Thu Jan 02 1997 - florian@suse.de +* Thu Jan 02 1997 florian@suse.de - Update auf die neuste ncurses-Version. - 'xterm' ist fuer XFree86 3.1.2G. Falls jemand noch ein altes XFree86 benutzen will, sollte man 'xterm-base' verwenden.