Update to 3.3.8
This commit is contained in:
		
							parent
							
								
									1c4b207578
								
							
						
					
					
						commit
						99289a5875
					
				
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -4,3 +4,4 @@ | |||||||
| /procps-ng-3.3.4.tar.xz | /procps-ng-3.3.4.tar.xz | ||||||
| /procps-ng-3.3.6.tar.xz | /procps-ng-3.3.6.tar.xz | ||||||
| /procps-ng-3.3.7.tar.xz | /procps-ng-3.3.7.tar.xz | ||||||
|  | /procps-ng-3.3.8.tar.xz | ||||||
|  | |||||||
| @ -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) { |  | ||||||
| @ -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 { |  | ||||||
| @ -1,120 +0,0 @@ | |||||||
| From 9f6bd9a47a41942bbcecbb2648d6c4ffa456c744 Mon Sep 17 00:00:00 2001 |  | ||||||
| From: Jim Warner <james.warner@comcast.net> |  | ||||||
| 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 <james.warner@comcast.net> |  | ||||||
| ---
 |  | ||||||
|  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 |  | ||||||
| 
 |  | ||||||
| @ -2,18 +2,14 @@ | |||||||
| 
 | 
 | ||||||
| Summary: System and process monitoring utilities | Summary: System and process monitoring utilities | ||||||
| Name: procps-ng | Name: procps-ng | ||||||
| Version: 3.3.7 | Version: 3.3.8 | ||||||
| Release: 4%{?dist} | Release: 1%{?dist} | ||||||
| License: GPLv2+ and LGPLv2+ | License: GPLv2+ and LGPLv2+ | ||||||
| Group: Applications/System | Group: Applications/System | ||||||
| URL: https://sourceforge.net/projects/procps-ng/ | URL: https://sourceforge.net/projects/procps-ng/ | ||||||
| 
 | 
 | ||||||
| Source: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.xz | 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(post): /sbin/ldconfig | ||||||
| Requires(postun): /sbin/ldconfig | Requires(postun): /sbin/ldconfig | ||||||
| 
 | 
 | ||||||
| @ -68,10 +64,6 @@ System and process monitoring utilities development headers | |||||||
| %prep | %prep | ||||||
| %setup -q -n %{name}-%{version} | %setup -q -n %{name}-%{version} | ||||||
| 
 | 
 | ||||||
| %patch0 -p1 |  | ||||||
| %patch1 -p1 |  | ||||||
| %patch2 -p1 |  | ||||||
| 
 |  | ||||||
| %build | %build | ||||||
| # The following stuff is needed for git archives only | # The following stuff is needed for git archives only | ||||||
| #echo "%{version}" > .tarball-version | #echo "%{version}" > .tarball-version | ||||||
| @ -133,6 +125,9 @@ mkdir -p %{buildroot}%{_sysconfdir}/sysctl.d | |||||||
| %{_includedir}/proc | %{_includedir}/proc | ||||||
| 
 | 
 | ||||||
| %changelog | %changelog | ||||||
|  | * Wed May 29 2013 Jaromir Capik <jcapik@redhat.com> - 3.3.8-1 | ||||||
|  | - Update to 3.3.8 | ||||||
|  | 
 | ||||||
| * Wed May 22 2013 Jaromir Capik <jcapik@redhat.com> - 3.3.7-4 | * Wed May 22 2013 Jaromir Capik <jcapik@redhat.com> - 3.3.7-4 | ||||||
| - top: inoculated against a window manager like 'screen' (#962022) | - top: inoculated against a window manager like 'screen' (#962022) | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user