diff --git a/.gitignore b/.gitignore index c4a22f4..67eb0a6 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ /procps-ng-3.3.4.tar.xz /procps-ng-3.3.6.tar.xz /procps-ng-3.3.7.tar.xz +/procps-ng-3.3.8.tar.xz diff --git a/procps-ng-3.3.7-segv-file2str-read-zero-bytes.patch b/procps-ng-3.3.7-segv-file2str-read-zero-bytes.patch deleted file mode 100644 index 3cfad63..0000000 --- a/procps-ng-3.3.7-segv-file2str-read-zero-bytes.patch +++ /dev/null @@ -1,41 +0,0 @@ -diff --git a/proc/readproc.c b/proc/readproc.c ---- procps-ng-3.3.7.orig/proc/readproc.c 2013-03-25 11:50:21.000000000 +0100 -+++ procps-ng-3.3.7/proc/readproc.c 2013-03-26 17:50:54.860228114 +0100 -@@ -534,28 +534,32 @@ - - static int file2str(const char *directory, const char *what, struct utlbuf_s *ub) { - #define readMAX 4096 -- #define buffMIN (tot_read + num + 1) // +1 for the '\0' delimiter -+ #define buffMIN (tot_read + num + 1) // +1 for the '\0' delimiter -+ #define buffGRW (30 + (buffMIN * 5) / 4) // grow by more than 25% - char path[PROCPATHLEN], chunk[readMAX]; -- int fd, num, tot_read = 0; -+ int fd, num, eof = 0, tot_read = 0; - - /* on first use we preallocate a buffer of minimum size to emulate - former 'local static' behavior -- even if this read fails, that -- buffer will likely soon be used for another sudirectory anyway */ -+ buffer will likely soon be used for another subdirectory anyway */ - if (ub->buf) ub->buf[0] = '\0'; - else ub->buf = xcalloc((ub->siz = readMAX)); - sprintf(path, "%s/%s", directory, what); - if (-1 == (fd = open(path, O_RDONLY, 0))) return -1; -- while (0 < (num = read(fd, chunk, readMAX))) { -+ while (!eof && 0 < (num = read(fd, chunk, readMAX))) { - if (ub->siz < buffMIN) -- ub->buf = xrealloc(ub->buf, (ub->siz = buffMIN)); -+ ub->buf = xrealloc(ub->buf, (ub->siz = buffGRW)); - memcpy(ub->buf + tot_read, chunk, num); - tot_read += num; -+ eof = (num < readMAX); - }; - ub->buf[tot_read] = '\0'; - close(fd); -+ if (unlikely(tot_read < 1)) return -1; - return tot_read; - #undef readMAX - #undef buffMIN -+ #undef buffGRW - } - - static char** file2strvec(const char* directory, const char* what) { diff --git a/procps-ng-3.3.7-testsuite-reverting-bogus-commit-unix-exp.patch b/procps-ng-3.3.7-testsuite-reverting-bogus-commit-unix-exp.patch deleted file mode 100644 index 2a2fe45..0000000 --- a/procps-ng-3.3.7-testsuite-reverting-bogus-commit-unix-exp.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur procps-ng-3.3.7.orig/testsuite/config/unix.exp procps-ng-3.3.7/testsuite/config/unix.exp ---- procps-ng-3.3.7.orig/testsuite/config/unix.exp 2013-03-25 11:50:21.000000000 +0100 -+++ procps-ng-3.3.7/testsuite/config/unix.exp 2013-03-26 17:50:54.860228114 +0100 -@@ -80,7 +80,7 @@ - } - - set do_loop 1 -- set last_value &9 -+ set last_value 99999999 - set found_item 0 - while { $do_loop ==1 } { - expect { diff --git a/procps-ng-3.3.7-top-inoculated-against-a-window-manager-like-screen.patch b/procps-ng-3.3.7-top-inoculated-against-a-window-manager-like-screen.patch deleted file mode 100644 index 3ec1547..0000000 --- a/procps-ng-3.3.7-top-inoculated-against-a-window-manager-like-screen.patch +++ /dev/null @@ -1,120 +0,0 @@ -From 9f6bd9a47a41942bbcecbb2648d6c4ffa456c744 Mon Sep 17 00:00:00 2001 -From: Jim Warner -Date: Sat, 18 May 2013 00:00:00 -0500 -Subject: [PATCH] top: inoculated against a window manager like 'screen' - -If top were invoked under the 'screen' window manager, -writing the terminfo string 'exit_ca_mode' at top exit -would not restore the display to the state existing at -the time top was started. That's what occurs normally. -The net result of that failure was a corrupted screen. - -However, there is a 'screen' configuration option that -will produce proper 'rmcup' behavior, but it is off by -default. That screencr option is known as 'altscreen'. -I stumbled across this provision by cloning the screen -git repository then searching for references to 'cup'. - -If 'altscreen on' had been in either the /etc/screenrc -or the $HOME/.screenrc configuration file, my poor old -top would never have been accused of such corruptions. -Of course, the Programming Gods decree that any simple -solution for our problem must always be revealed last. - -So before discovering that rc option, another approach -was taken involving top only. With just a little extra -refactoring of top display logic he was made immune to -any such quirk in the implementation of 'smcup/rmcup'. - -I always feel good about any enhancement that actually -reduces the total number of lines of code. Even though -this change involved mostly rearranging some logic, it -yielded one less line (can't judge by diffstat because -of braces & notes). Anyway, rather than requiring some -change to a screenrc file, now we are self-sufficient. - -Reference(s): - procps --------------------------------------------- -https://bugzilla.redhat.com/show_bug.cgi?id=962022 -http://www.freelists.org/post/procps/top-procpsng337-no-screen-cleaning-at-exit,3 -. top : disable tty scrollback buffer to improve SIGWINCH -commit dedaf6e1a81738ff08ee8e8523871e12f555ad6d - screen --------------------------------------------- -git://git.sv.gnu.org/screen.git -. Improve cursor store/restore on smcup/rmcup. -commit f95352946080be803b794c9f2733d8c809c1a39a -. Fix using alternate screen buffers in some cases. -commit ad56f746c6243d45124485d198d577bdbb78071c -http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=558724 - -Signed-off-by: Jim Warner ---- - NEWS | 2 ++ - top/top.c | 18 ++++++++---------- - 2 files changed, 10 insertions(+), 10 deletions(-) - -diff --git a/top/top.c b/top/top.c -index 4caf658..2b05a60 100644 ---- a/top/top.c -+++ b/top/top.c -@@ -350,16 +350,14 @@ static void at_eoj (void) { - if (Ttychanged) { - tcsetattr(STDIN_FILENO, TCSAFLUSH, &Tty_original); - if (keypad_local) putp(keypad_local); -- if (exit_ca_mode) -+ putp("\n"); -+ if (exit_ca_mode) { - // this next will also replace top's most recent screen with the - // original display contents that were visible at our invocation - putp(exit_ca_mode); -- else { -- // but if we can't, we'll simply do it as old top always used to -- putp(tg2(0, Screen_rows)); -- putp("\n"); - } - putp(Cap_curs_norm); -+ putp(Cap_clr_eol); - #ifndef RMAN_IGNORED - putp(Cap_smam); - #endif -@@ -756,7 +754,6 @@ static int show_pmt (const char *str) { - * Show a special coordinate message, in support of scrolling */ - static inline void show_scroll (void) { - PUTT(Scroll_fmts, tg2(0, Msg_row), Frame_maxtask); -- putp(tg2(0, Msg_row)); - } // end: show_scroll - - -@@ -5445,7 +5442,7 @@ static void frame_hlp (int wix, int max) { - * (*subordinate* functions invoked know WHEN the user's had) - * (ENOUGH already. And at Frame End, it SHOULD be apparent) - * (WE am d'MAN -- clearing UNUSED screen LINES and ensuring) -- * (the CURSOR is STUCK in just the RIGHT place, know what I) -+ * (that those auto-sized columns are addressed, know what I) - * (mean? Huh, "doesn't DO MUCH"! Never, EVER think or say) - * (THAT about THIS function again, Ok? Good that's better.) - * -@@ -5474,7 +5471,10 @@ static void frame_make (void) { - Tree_idx = Pseudo_row = Msg_row = scrlins = 0; - summary_show(); - Max_lines = (Screen_rows - Msg_row) - 1; -- OFFw(Curwin, INFINDS_xxx); -+ OFFw(w, INFINDS_xxx); -+ -+ if (VIZISw(w) && CHKw(w, View_SCROLL)) show_scroll(); -+ else PUTT("%s%s", tg2(0, Msg_row), Cap_clr_eol); - - if (!Rc.mode_altscr) { - // only 1 window to show so, piece o' cake -@@ -5498,8 +5498,6 @@ static void frame_make (void) { - putp(Cap_nl_clreos); - PSU_CLREOS(Pseudo_row); - } -- if (VIZISw(w) && CHKw(w, View_SCROLL)) show_scroll(); -- else PUTT("%s%s", tg2(0, Msg_row), Cap_clr_eol); - fflush(stdout); - - /* we'll deem any terminal not supporting tgoto as dumb and disable --- -1.8.1.2 - diff --git a/procps-ng.spec b/procps-ng.spec index de35756..8045e02 100644 --- a/procps-ng.spec +++ b/procps-ng.spec @@ -2,18 +2,14 @@ Summary: System and process monitoring utilities Name: procps-ng -Version: 3.3.7 -Release: 4%{?dist} +Version: 3.3.8 +Release: 1%{?dist} License: GPLv2+ and LGPLv2+ Group: Applications/System URL: https://sourceforge.net/projects/procps-ng/ Source: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.xz -Patch0: procps-ng-3.3.7-testsuite-reverting-bogus-commit-unix-exp.patch -Patch1: procps-ng-3.3.7-segv-file2str-read-zero-bytes.patch -Patch2: procps-ng-3.3.7-top-inoculated-against-a-window-manager-like-screen.patch - Requires(post): /sbin/ldconfig Requires(postun): /sbin/ldconfig @@ -68,10 +64,6 @@ System and process monitoring utilities development headers %prep %setup -q -n %{name}-%{version} -%patch0 -p1 -%patch1 -p1 -%patch2 -p1 - %build # The following stuff is needed for git archives only #echo "%{version}" > .tarball-version @@ -133,6 +125,9 @@ mkdir -p %{buildroot}%{_sysconfdir}/sysctl.d %{_includedir}/proc %changelog +* Wed May 29 2013 Jaromir Capik - 3.3.8-1 +- Update to 3.3.8 + * Wed May 22 2013 Jaromir Capik - 3.3.7-4 - top: inoculated against a window manager like 'screen' (#962022) diff --git a/sources b/sources index 344dc13..e4f3cca 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -57d2bad8c8fac3d09ee9f5f964e3da9c procps-ng-3.3.7.tar.xz +aecbeeda2ab308f8d09dddcb4cb9a572 procps-ng-3.3.8.tar.xz