diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..375f1be
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+SOURCES/procps-ng-3.3.10.tar.xz
diff --git a/.procps-ng.metadata b/.procps-ng.metadata
new file mode 100644
index 0000000..ea35251
--- /dev/null
+++ b/.procps-ng.metadata
@@ -0,0 +1 @@
+484db198d6a18a42b4011d5ecb2cb784a81b0e4f SOURCES/procps-ng-3.3.10.tar.xz
diff --git a/README.md b/README.md
deleted file mode 100644
index 0e7897f..0000000
--- a/README.md
+++ /dev/null
@@ -1,5 +0,0 @@
-The master branch has no content
- 
-Look at the c7 branch if you are working with CentOS-7, or the c4/c5/c6 branch for CentOS-4, 5 or 6
- 
-If you find this file in a distro specific branch, it means that no content has been checked in yet
diff --git a/SOURCES/procps-ng-3.3.10-find_elf_note-memory-error-fix.patch b/SOURCES/procps-ng-3.3.10-find_elf_note-memory-error-fix.patch
new file mode 100644
index 0000000..47b52d9
--- /dev/null
+++ b/SOURCES/procps-ng-3.3.10-find_elf_note-memory-error-fix.patch
@@ -0,0 +1,89 @@
+diff --git a/proc/sysinfo.c b/proc/sysinfo.c
+index 1435de1..1d2b8e2 100644
+--- a/proc/sysinfo.c
++++ b/proc/sysinfo.c
+@@ -36,6 +36,9 @@
+ #include <netinet/in.h>  /* htons */
+ #endif
+ 
++#include <link.h>
++#include <elf.h>
++
+ long smp_num_cpus;     /* number of CPUs */
+ long page_bytes;       /* this architecture's page size */
+ 
+@@ -249,15 +252,67 @@ static void old_Hertz_hack(void){
+ 
+ extern char** environ;
+ 
+-/* for ELF executables, notes are pushed before environment and args */
+-static unsigned long find_elf_note(unsigned long findme){
++static unsigned long find_elf_note(unsigned long type)
++{
++  ElfW(auxv_t) auxv_struct;
++  ElfW(auxv_t) *auxv_temp;
++  FILE *fd;
++  int i;
++  static ElfW(auxv_t) *auxv = NULL;
+   unsigned long *ep = (unsigned long *)environ;
+-  while(*ep++);
+-  while(*ep){
+-    if(ep[0]==findme) return ep[1];
+-    ep+=2;
++  unsigned long ret_val = NOTE_NOT_FOUND;
++
++
++  if(!auxv) {
++
++    fd = fopen("/proc/self/auxv", "rb");
++
++    if(!fd) {  // can't open auxv? that could be caused by euid change
++               // ... and we need to fall back to the old and unsafe
++               // ... method that doesn't work when calling library
++               // ... functions with dlopen -> FIXME :(
++
++      while(*ep++);  // for ELF executables, notes are pushed
++      while(*ep){    // ... before environment and args
++        if(ep[0]==type) return ep[1];
++        ep+=2;
++      }
++      return NOTE_NOT_FOUND;
++    }
++
++    auxv = (ElfW(auxv_t) *) malloc(getpagesize());
++    if (!auxv) {
++      perror("malloc");
++      exit(EXIT_FAILURE);
++    }
++
++    i = 0;
++    do {
++      fread(&auxv_struct, sizeof(ElfW(auxv_t)), 1, fd);
++      auxv[i] = auxv_struct;
++      i++;
++    } while (auxv_struct.a_type != AT_NULL);
++
++    fclose(fd);
++
++  }
++
++  auxv_temp = auxv;
++  i = 0;
++  do {
++    if(auxv_temp[i].a_type == type) {
++      ret_val = (unsigned long)auxv_temp[i].a_un.a_val;
++      break;
++    }
++    i++;
++  } while (auxv_temp[i].a_type != AT_NULL);
++
++  if (auxv){
++	  auxv_temp = NULL;
++	  free(auxv);
++	  auxv = NULL;
+   }
+-  return NOTE_NOT_FOUND;
++  return ret_val;
+ }
+ 
+ int have_privs;
diff --git a/SOURCES/procps-ng-3.3.10-free-uninitialized-errno.patch b/SOURCES/procps-ng-3.3.10-free-uninitialized-errno.patch
new file mode 100644
index 0000000..3975e42
--- /dev/null
+++ b/SOURCES/procps-ng-3.3.10-free-uninitialized-errno.patch
@@ -0,0 +1,11 @@
+diff -Naur procps-ng-3.3.10.orig/free.c procps-ng-3.3.10/free.c
+--- procps-ng-3.3.10.orig/free.c	2015-12-01 17:23:26.702968686 +0100
++++ procps-ng-3.3.10/free.c	2015-12-01 17:22:34.590529390 +0100
+@@ -262,6 +262,7 @@
+ 			break;
+ 		case 's':
+ 			flags |= FREE_REPEAT;
++			errno = 0;
+ 			args.repeat_interval = (1000000 * strtof(optarg, &endptr));
+ 			if (errno || optarg == endptr || (endptr && *endptr))
+ 				xerrx(EXIT_FAILURE, _("seconds argument `%s' failed"), optarg);
diff --git a/SOURCES/procps-ng-3.3.10-pmap-lines-twice.patch b/SOURCES/procps-ng-3.3.10-pmap-lines-twice.patch
new file mode 100644
index 0000000..edb2250
--- /dev/null
+++ b/SOURCES/procps-ng-3.3.10-pmap-lines-twice.patch
@@ -0,0 +1,12 @@
+diff -up procps-ng-3.3.10/pmap.c.ori procps-ng-3.3.10/pmap.c
+--- procps-ng-3.3.10/pmap.c.ori	2017-02-20 10:47:08.292453148 +0100
++++ procps-ng-3.3.10/pmap.c	2017-02-20 10:49:05.078924572 +0100
+@@ -615,7 +615,7 @@ static int one_proc(proc_t * p)
+ 					total_private_dirty += smap_value;
+ 					continue;
+ 				}
+-				if (strncmp("Swap", smap_key, 4) == 0) {
++				if ((strncmp("Swap", smap_key, 4) == 0) && (strlen(smap_key)==4)) {
+ 					/*doesn't matter as long as last */
+ 					printf("%0*" KLF "x %*lu %*llu %*llu %*s %s\n",
+ 					       maxw1, start,
diff --git a/SOURCES/procps-ng-3.3.10-pmap-skip-vmflags.patch b/SOURCES/procps-ng-3.3.10-pmap-skip-vmflags.patch
new file mode 100644
index 0000000..bc949a8
--- /dev/null
+++ b/SOURCES/procps-ng-3.3.10-pmap-skip-vmflags.patch
@@ -0,0 +1,15 @@
+diff -Naur procps-ng-3.3.10.orig/pmap.c procps-ng-3.3.10/pmap.c
+--- procps-ng-3.3.10.orig/pmap.c	2014-09-23 13:40:36.000000000 +0200
++++ procps-ng-3.3.10/pmap.c	2015-11-24 10:47:24.764107976 +0100
+@@ -629,9 +629,9 @@
+ 					diff = 0;
+ 					continue;
+ 				}
+-				/* Other keys */
+-				continue;
+ 			}
++			/* Anything else starting with A-Z? -> skip it (rhbz#1262864) */
++			continue;
+ 		}
+ 		sscanf(mapbuf, "%" KLF "x-%" KLF "x %31s %llx %x:%x %llu", &start,
+ 		       &end, perms, &file_offset, &dev_major, &dev_minor,
diff --git a/SOURCES/procps-ng-3.3.10-ps-full-wchan-name.patch b/SOURCES/procps-ng-3.3.10-ps-full-wchan-name.patch
new file mode 100644
index 0000000..e72d059
--- /dev/null
+++ b/SOURCES/procps-ng-3.3.10-ps-full-wchan-name.patch
@@ -0,0 +1,29 @@
+diff -up ./proc/ksym.c.ori ./proc/ksym.c
+--- ./proc/ksym.c.ori	2006-06-25 08:57:18.000000000 +0200
++++ ./proc/ksym.c	2016-11-16 13:34:31.902836748 +0100
+@@ -567,11 +567,7 @@ static const char * read_wchan_file(unsi
+ 
+   // lame ppc64 has a '.' in front of every name
+   if(*ret=='.') ret++;
+-  switch(*ret){
+-    case 's': if(!strncmp(ret, "sys_", 4)) ret += 4;   break;
+-    case 'd': if(!strncmp(ret, "do_",  3)) ret += 3;   break;
+-    case '_': while(*ret=='_') ret++;                  break;
+-  }
++  while(*ret=='_') ret++; 
+   return ret;
+ }
+ 
+@@ -616,11 +612,7 @@ const char * lookup_wchan(unsigned KLONG
+   ret = good_symb->name;
+   // lame ppc64 has a '.' in front of every name
+   if(*ret=='.') ret++;
+-  switch(*ret){
+-    case 's': if(!strncmp(ret, "sys_", 4)) ret += 4;   break;
+-    case 'd': if(!strncmp(ret, "do_",  3)) ret += 3;   break;
+-    case '_': while(*ret=='_') ret++;                  break;
+-  }
++  while(*ret=='_') ret++;
+   /* if(!*ret) ret = fail.name; */  /* not likely (name was "sys_", etc.) */
+ 
+   /* cache name after abbreviation */
diff --git a/SOURCES/procps-ng-3.3.10-ps-scattered-thread-cgroups.patch b/SOURCES/procps-ng-3.3.10-ps-scattered-thread-cgroups.patch
new file mode 100644
index 0000000..03ec6d1
--- /dev/null
+++ b/SOURCES/procps-ng-3.3.10-ps-scattered-thread-cgroups.patch
@@ -0,0 +1,69 @@
+diff --git a/ps/output.c b/ps/output.c
+index 501e29a..5f011b1 100644
+--- a/ps/output.c
++++ b/ps/output.c
+@@ -1343,6 +1343,41 @@
+   return snprintf(outbuf, COLWID, "%s", vals[lines_to_next_header%4u]);
+ }
+ 
++static int pr_thcgr(char *restrict const outbuf, const proc_t *restrict const pp){
++  char filename[48];
++  FILE *fd;
++  int counter = 0;
++  int c;
++  int is_cgroup = 0;
++
++  outbuf[0]='\0';
++  snprintf(filename, sizeof filename, "/proc/%d/task/%d/cgroup", pp->tgid, pp->tid);
++  fd = fopen(filename, "r");
++  if (likely(fd == NULL)) goto fail;
++  while (( (c = fgetc(fd)) != EOF) && (counter<665)) {
++    if (is_cgroup == 0) {
++      if (c == ':') {
++        is_cgroup = 1;
++        if (counter>0)
++          outbuf[counter++]=';';
++      }
++    }else
++      if ((c == '\n') || (c == '\0'))
++        is_cgroup = 0;
++      else
++        outbuf[counter++]=c;
++  }
++  outbuf[counter]='\0';
++  fclose(fd);
++  if (counter>0)
++    return counter;
++fail:
++  outbuf[0] = '-';
++  outbuf[1] = '\0';
++  return 1;
++}
++
++
+ /***************************************************************************/
+ /*************************** other stuff ***********************************/
+ 
+@@ -1623,6 +1658,7 @@
+ {"taskid",    "TASKID",  pr_nop,      sr_nop,     5,   0,    SUN, TO|PIDMAX|RIGHT}, // is this a thread ID?
+ {"tdev",      "TDEV",    pr_nop,      sr_nop,     4,   0,    XXX, AN|RIGHT},
+ {"tgid",      "TGID",    pr_procs,    sr_procs,   5,   0,    LNX, PO|PIDMAX|RIGHT},
++{"thcgr",     "THCGR",   pr_thcgr,    sr_nop,    35,   0,    LNX, PO|LEFT},  /* thread cgroups */
+ {"thcount",   "THCNT",   pr_nlwp,     sr_nlwp,    5,   0,    AIX, PO|RIGHT},
+ {"tid",       "TID",     pr_tasks,    sr_tasks,   5,   0,    AIX, TO|PIDMAX|RIGHT},
+ {"time",      "TIME",    pr_time,     sr_time,    8,   0,    U98, ET|RIGHT}, /*cputime*/ /* was 6 wide */
+diff --git a/ps/ps.1 b/ps/ps.1
+index b90adc8..b8d6c81 100644
+--- a/ps/ps.1
++++ b/ps/ps.1
+@@ -1713,6 +1713,10 @@
+ It is the process ID of the thread group leader.
+ T}
+ 
++thcgr	THCGR	T{
++display control groups to which the thread belongs.
++T}
++
+ thcount	THCNT	T{
+ see
+ .BR nlwp .
diff --git a/SOURCES/procps-ng-3.3.10-ps-thcount-format-option.patch b/SOURCES/procps-ng-3.3.10-ps-thcount-format-option.patch
new file mode 100644
index 0000000..7e36b07
--- /dev/null
+++ b/SOURCES/procps-ng-3.3.10-ps-thcount-format-option.patch
@@ -0,0 +1,13 @@
+diff -aur procps-ng-3.3.10/ps/output.c ../procps-ng-3.3.10/ps/output.c
+--- procps-ng-3.3.10/ps/output.c	2014-09-23 13:40:36.000000000 +0200
++++ ../procps-ng-3.3.10/ps/output.c	2016-06-06 18:58:36.267123736 +0200
+@@ -1622,8 +1622,8 @@
+ {"sz",        "SZ",      pr_sz,       sr_nop,     5,   0,    HPU, PO|RIGHT},
+ {"taskid",    "TASKID",  pr_nop,      sr_nop,     5,   0,    SUN, TO|PIDMAX|RIGHT}, // is this a thread ID?
+ {"tdev",      "TDEV",    pr_nop,      sr_nop,     4,   0,    XXX, AN|RIGHT},
+-{"thcount",   "THCNT",   pr_nlwp,     sr_nlwp,    5,   0,    AIX, PO|RIGHT},
+ {"tgid",      "TGID",    pr_procs,    sr_procs,   5,   0,    LNX, PO|PIDMAX|RIGHT},
++{"thcount",   "THCNT",   pr_nlwp,     sr_nlwp,    5,   0,    AIX, PO|RIGHT},
+ {"tid",       "TID",     pr_tasks,    sr_tasks,   5,   0,    AIX, TO|PIDMAX|RIGHT},
+ {"time",      "TIME",    pr_time,     sr_time,    8,   0,    U98, ET|RIGHT}, /*cputime*/ /* was 6 wide */
+ {"timeout",   "TMOUT",   pr_nop,      sr_nop,     5,   0,    LNX, AN|RIGHT}, // 2.0.xx era
diff --git a/SOURCES/procps-ng-3.3.10-slabtop-use-val-float.patch b/SOURCES/procps-ng-3.3.10-slabtop-use-val-float.patch
new file mode 100644
index 0000000..42ed9df
--- /dev/null
+++ b/SOURCES/procps-ng-3.3.10-slabtop-use-val-float.patch
@@ -0,0 +1,21 @@
+diff -up ./proc/slab.c.ori ./proc/slab.c
+--- ./proc/slab.c.ori	2017-03-13 17:14:22.684744976 +0100
++++ ./proc/slab.c	2017-03-13 17:14:28.836719945 +0100
+@@ -179,7 +179,7 @@ static int parse_slabinfo20(struct slab_
+ 		curr->cache_size = (unsigned long)curr->nr_slabs * curr->pages_per_slab * page_size;
+ 
+ 		if (curr->nr_objs) {
+-			curr->use = 100 * curr->nr_active_objs / curr->nr_objs;
++			curr->use = 100 * (float)curr->nr_active_objs / curr->nr_objs;
+ 			stats->nr_active_caches++;
+ 		} else
+ 			curr->use = 0;
+@@ -258,7 +258,7 @@ static int parse_slabinfo11(struct slab_
+ 		curr->cache_size = (unsigned long)curr->nr_slabs * curr->pages_per_slab * page_size;
+ 
+ 		if (curr->nr_objs) {
+-			curr->use = 100 * curr->nr_active_objs / curr->nr_objs;
++			curr->use = 100 * (float)curr->nr_active_objs / curr->nr_objs;
+ 			stats->nr_active_caches++;
+ 		} else
+ 			curr->use = 0;
diff --git a/SOURCES/procps-ng-3.3.10-sysctl-conf-manpage-predef-note.patch b/SOURCES/procps-ng-3.3.10-sysctl-conf-manpage-predef-note.patch
new file mode 100644
index 0000000..8f687ca
--- /dev/null
+++ b/SOURCES/procps-ng-3.3.10-sysctl-conf-manpage-predef-note.patch
@@ -0,0 +1,19 @@
+diff -up ./sysctl.conf.5.ori ./sysctl.conf.5
+--- ./sysctl.conf.5.ori	2017-04-06 18:59:51.718644400 +0200
++++ ./sysctl.conf.5	2017-04-06 19:00:01.872604143 +0200
+@@ -28,6 +28,15 @@ token = value
+ Note that blank lines are ignored, and whitespace before and after a token or
+ value is ignored, although a value can contain whitespace within.  Lines which
+ begin with a # or ; are considered comments and ignored.
++.SH NOTES
++As the
++.BR /etc/sysctl.conf
++file is used to override default kernel parameter values, only a small number of parameters is predefined in the file.
++Use
++.IR /sbin/sysctl\ \-a
++or follow
++.BR sysctl (8)
++to list all possible parameters. The description of individual parameters can be found in the kernel documentation.
+ .SH EXAMPLE
+ .RS
+ .sp
diff --git a/SOURCES/procps-ng-3.3.10-sysctl-man-conf-override-hint.patch b/SOURCES/procps-ng-3.3.10-sysctl-man-conf-override-hint.patch
new file mode 100644
index 0000000..0f3b3de
--- /dev/null
+++ b/SOURCES/procps-ng-3.3.10-sysctl-man-conf-override-hint.patch
@@ -0,0 +1,12 @@
+diff -up ./sysctl.8.ori ./sysctl.8
+--- ./sysctl.8.ori	2014-09-23 13:40:36.000000000 +0200
++++ ./sysctl.8	2017-05-31 14:43:08.323364474 +0200
+@@ -78,7 +78,7 @@ values listing.
+ Print value without new line.
+ .TP
+ \fB\-\-system\fR
+-Load settings from all system configuration files.
++Load settings from all system configuration files. Files are read from directories in the following list in given order from top to bottom. Once a file of a given filename is loaded, any file of the same name in subsequent directories is ignored.
+ .br
+ /run/sysctl.d/*.conf
+ .br
diff --git a/SOURCES/procps-ng-3.3.10-top-instant-cpu-stats.patch b/SOURCES/procps-ng-3.3.10-top-instant-cpu-stats.patch
new file mode 100644
index 0000000..a60a043
--- /dev/null
+++ b/SOURCES/procps-ng-3.3.10-top-instant-cpu-stats.patch
@@ -0,0 +1,166 @@
+diff -up ./top/top.c.ori ./top/top.c
+--- ./top/top.c.ori	2017-04-07 18:36:05.953611338 +0200
++++ ./top/top.c	2017-04-07 18:37:14.037321741 +0200
+@@ -91,6 +91,7 @@ static int   Rc_questions;
+ static unsigned Pg2K_shft = 0;
+ 
+         /* SMP, Irix/Solaris mode, Linux 2.5.xx support */
++static CPU_t      *Cpu_tics;
+ static int         Cpu_faux_tot;
+ static float       Cpu_pmax;
+ static const char *Cpu_States_fmts;
+@@ -2356,10 +2357,10 @@ static void zap_fieldstab (void) {
+          * This guy's modeled on libproc's 'eight_cpu_numbers' function except
+          * we preserve all cpu data in our CPU_t array which is organized
+          * as follows:
+-         *    cpus[0] thru cpus[n] == tics for each separate cpu
+-         *    cpus[sumSLOT]        == tics from the 1st /proc/stat line
+-         *  [ and beyond sumSLOT   == tics for each cpu NUMA node ] */
+-static CPU_t *cpus_refresh (CPU_t *cpus) {
++         *    Cpu_tics[0] thru Cpu_tics[n] == tics for each separate cpu
++         *    Cpu_tics[sumSLOT]            == tics from /proc/stat line #1
++         *  [ and beyond sumSLOT           == tics for each cpu NUMA node ] */
++static void cpus_refresh (void) {
+  #define sumSLOT ( smp_num_cpus )
+  #define totSLOT ( 1 + smp_num_cpus + Numa_node_tot)
+    static FILE *fp = NULL;
+@@ -2377,7 +2378,7 @@ static CPU_t *cpus_refresh (CPU_t *cpus)
+       sav_slot = sumSLOT;
+       zap_fieldstab();
+       if (fp) { fclose(fp); fp = NULL; }
+-      if (cpus) { free(cpus); cpus = NULL; }
++      if (Cpu_tics) free(Cpu_tics);
+    }
+ 
+    /* by opening this file once, we'll avoid the hit on minor page faults
+@@ -2387,7 +2388,7 @@ static CPU_t *cpus_refresh (CPU_t *cpus)
+          error_exit(fmtmk(N_fmt(FAIL_statopn_fmt), strerror(errno)));
+       /* note: we allocate one more CPU_t via totSLOT than 'cpus' so that a
+                slot can hold tics representing the /proc/stat cpu summary */
+-      cpus = alloc_c(totSLOT * sizeof(CPU_t));
++      Cpu_tics = alloc_c(totSLOT * sizeof(CPU_t));
+    }
+    rewind(fp);
+    fflush(fp);
+@@ -2410,7 +2411,7 @@ static CPU_t *cpus_refresh (CPU_t *cpus)
+  #undef buffGRW
+ 
+    // remember from last time around
+-   sum_ptr = &cpus[sumSLOT];
++   sum_ptr = &Cpu_tics[sumSLOT];
+    memcpy(&sum_ptr->sav, &sum_ptr->cur, sizeof(CT_t));
+    // then value the last slot with the cpu summary line
+    if (4 > sscanf(bp, "cpu %Lu %Lu %Lu %Lu %Lu %Lu %Lu %Lu"
+@@ -2437,7 +2438,7 @@ static CPU_t *cpus_refresh (CPU_t *cpus)
+ 
+    // now value each separate cpu's tics...
+    for (i = 0; i < sumSLOT; i++) {
+-      CPU_t *cpu_ptr = &cpus[i];               // avoid gcc subscript bloat
++      CPU_t *cpu_ptr = &Cpu_tics[i];           // avoid gcc subscript bloat
+ #ifdef PRETEND8CPUS
+       bp = buf;
+ #endif
+@@ -2448,7 +2449,6 @@ static CPU_t *cpus_refresh (CPU_t *cpus)
+          , &cpu_ptr->cur.u, &cpu_ptr->cur.n, &cpu_ptr->cur.s
+          , &cpu_ptr->cur.i, &cpu_ptr->cur.w, &cpu_ptr->cur.x
+          , &cpu_ptr->cur.y, &cpu_ptr->cur.z)) {
+-            memmove(cpu_ptr, sum_ptr, sizeof(CPU_t));
+             break;        // tolerate cpus taken offline
+       }
+ 
+@@ -2488,8 +2488,6 @@ static CPU_t *cpus_refresh (CPU_t *cpus)
+    } // end: for each cpu
+ 
+    Cpu_faux_tot = i;      // tolerate cpus taken offline
+-
+-   return cpus;
+  #undef sumSLOT
+  #undef totSLOT
+ } // end: cpus_refresh
+@@ -5119,7 +5117,6 @@ static void summary_hlp (CPU_t *cpu, con
+ static void summary_show (void) {
+  #define isROOM(f,n) (CHKw(w, f) && Msg_row + (n) < Screen_rows - 1)
+  #define anyFLG 0xffffff
+-   static CPU_t *smpcpu = NULL;
+    WIN_t *w = Curwin;             // avoid gcc bloat with a local copy
+    char tmp[MEDBUFSIZ];
+    int i;
+@@ -5142,7 +5139,7 @@ static void summary_show (void) {
+          , Frame_stopped, Frame_zombied));
+       Msg_row += 1;
+ 
+-      smpcpu = cpus_refresh(smpcpu);
++      cpus_refresh();
+ 
+ #ifndef NUMA_DISABLE
+       if (!Numa_node_tot) goto numa_nope;
+@@ -5150,11 +5147,11 @@ static void summary_show (void) {
+       if (CHKw(w, View_CPUNOD)) {
+          if (Numa_node_sel < 0) {
+             // display the 1st /proc/stat line, then the nodes (if room)
+-            summary_hlp(&smpcpu[smp_num_cpus], N_txt(WORD_allcpus_txt));
++            summary_hlp(&Cpu_tics[smp_num_cpus], N_txt(WORD_allcpus_txt));
+             Msg_row += 1;
+             // display each cpu node's states
+             for (i = 0; i < Numa_node_tot; i++) {
+-               CPU_t *nod_ptr = &smpcpu[1 + smp_num_cpus + i];
++               CPU_t *nod_ptr = &Cpu_tics[1 + smp_num_cpus + i];
+                if (!isROOM(anyFLG, 1)) break;
+ #ifndef OFF_NUMASKIP
+                if (nod_ptr->id) {
+@@ -5169,13 +5166,13 @@ static void summary_show (void) {
+          } else {
+             // display the node summary, then the associated cpus (if room)
+             snprintf(tmp, sizeof(tmp), N_fmt(NUMA_nodenam_fmt), Numa_node_sel);
+-            summary_hlp(&smpcpu[1 + smp_num_cpus + Numa_node_sel], tmp);
++            summary_hlp(&Cpu_tics[1 + smp_num_cpus + Numa_node_sel], tmp);
+             Msg_row += 1;
+             for (i = 0; i < Cpu_faux_tot; i++) {
+-               if (Numa_node_sel == smpcpu[i].node) {
++               if (Numa_node_sel == Cpu_tics[i].node) {
+                   if (!isROOM(anyFLG, 1)) break;
+-                  snprintf(tmp, sizeof(tmp), N_fmt(WORD_eachcpu_fmt), smpcpu[i].id);
+-                  summary_hlp(&smpcpu[i], tmp);
++                  snprintf(tmp, sizeof(tmp), N_fmt(WORD_eachcpu_fmt), Cpu_tics[i].id);
++                  summary_hlp(&Cpu_tics[i], tmp);
+                   Msg_row += 1;
+                }
+             }
+@@ -5185,14 +5182,14 @@ numa_nope:
+ #endif
+       if (CHKw(w, View_CPUSUM)) {
+          // display just the 1st /proc/stat line
+-         summary_hlp(&smpcpu[Cpu_faux_tot], N_txt(WORD_allcpus_txt));
++         summary_hlp(&Cpu_tics[Cpu_faux_tot], N_txt(WORD_allcpus_txt));
+          Msg_row += 1;
+ 
+       } else {
+          // display each cpu's states separately, screen height permitting...
+          for (i = 0; i < Cpu_faux_tot; i++) {
+-            snprintf(tmp, sizeof(tmp), N_fmt(WORD_eachcpu_fmt), smpcpu[i].id);
+-            summary_hlp(&smpcpu[i], tmp);
++            snprintf(tmp, sizeof(tmp), N_fmt(WORD_eachcpu_fmt), Cpu_tics[i].id);
++            summary_hlp(&Cpu_tics[i], tmp);
+             Msg_row += 1;
+             if (!isROOM(anyFLG, 1)) break;
+          }
+@@ -5643,6 +5640,7 @@ static void frame_make (void) {
+ 
+    // whoa either first time or thread/task mode change, (re)prime the pump...
+    if (Pseudo_row == PROC_XTRA) {
++      cpus_refresh();
+       procs_refresh();
+       usleep(LIB_USLEEP);
+       putp(Cap_clr_scr);
+diff -up ./top/top.h.ori ./top/top.h
+--- ./top/top.h.ori	2017-04-07 18:36:14.921573192 +0200
++++ ./top/top.h	2017-04-07 18:37:14.037321741 +0200
+@@ -728,7 +728,7 @@ typedef struct WIN_t {
+ //atic inline void   widths_resize (void);
+ //atic void          zap_fieldstab (void);
+ /*------  Library Interface  ---------------------------------------------*/
+-//atic CPU_t        *cpus_refresh (CPU_t *cpus);
++//atic void          cpus_refresh (void);
+ #ifdef OFF_HST_HASH
+ //atic inline HST_t *hstbsrch (HST_t *hst, int max, int pid);
+ #else
diff --git a/SOURCES/procps-ng-3.3.10-top-strange-mem-val-scaling.patch b/SOURCES/procps-ng-3.3.10-top-strange-mem-val-scaling.patch
new file mode 100644
index 0000000..786eeae
--- /dev/null
+++ b/SOURCES/procps-ng-3.3.10-top-strange-mem-val-scaling.patch
@@ -0,0 +1,111 @@
+diff -up ./configure.ac.ori ./configure.ac
+--- ./configure.ac.ori	2014-09-23 13:40:36.000000000 +0200
++++ ./configure.ac	2017-08-02 13:04:25.439881501 +0200
+@@ -218,11 +218,11 @@ if test "x$enable_wide_percent" = xyes;
+ fi
+ 
+ AC_ARG_ENABLE([wide-memory],
+-  AS_HELP_STRING([--disable-wide-memory], [disable extra precision under memory fields for top]),
+-  [], [enable_wide_memory=yes]
++  AS_HELP_STRING([--enable-wide-memory], [provide extra precision under memory fields for top]),
++  [], [enable_wide_memory=no]
+ )
+-if test "x$enable_wide_memory" = xno; then
+-  AC_DEFINE(NOBOOST_MEMS, 1, [disable extra precision under memory fields for top])
++if test "x$enable_wide_memory" = xyes; then
++  AC_DEFINE(BOOST_MEMORY, 1, [provide extra precision under memory fields for top])
+ fi
+ 
+ AC_ARG_ENABLE([modern-top],
+diff -up ./top/top.c.ori ./top/top.c
+--- ./top/top.c.ori	2017-08-02 12:56:41.681326790 +0200
++++ ./top/top.c	2017-08-02 13:50:24.953331241 +0200
+@@ -1542,11 +1542,11 @@ static inline const char *make_str (cons
+          * We'll interpret 'num' as a kibibytes quantity and try to
+          * format it to reach 'target' while also fitting 'width'. */
+ static const char *scale_mem (int target, unsigned long num, int width, int justr) {
+-#ifndef NOBOOST_MEMS
+    //                               SK_Kb   SK_Mb      SK_Gb      SK_Tb      SK_Pb      SK_Eb
++#ifdef BOOST_MEMORY
+    static const char *fmttab[] =  { "%.0f", "%#.1f%c", "%#.3f%c", "%#.3f%c", "%#.3f%c", NULL };
+ #else
+-   static const char *fmttab[] =  { "%.0f", "%.0f%c",  "%.0f%c",  "%.0f%c",  "%.0f%c",  NULL };
++   static const char *fmttab[] =  { "%.0f", "%.1f%c",  "%.1f%c",  "%.1f%c",  "%.1f%c",  NULL };
+ #endif
+    static char buf[SMLBUFSIZ];
+    float scaled_num;
+@@ -1750,21 +1750,12 @@ static FLD_t Fieldstab[] = {
+ #else
+    {     4,     -1,  A_right,  SF(RES),  L_statm   }, // EU_MEM slot
+ #endif
+-#ifndef NOBOOST_MEMS
+    {     7,  SK_Kb,  A_right,  SF(VRT),  L_statm   },
+    {     6,  SK_Kb,  A_right,  SF(SWP),  L_status  },
+    {     6,  SK_Kb,  A_right,  SF(RES),  L_statm   },
+    {     6,  SK_Kb,  A_right,  SF(COD),  L_statm   },
+    {     7,  SK_Kb,  A_right,  SF(DAT),  L_statm   },
+    {     6,  SK_Kb,  A_right,  SF(SHR),  L_statm   },
+-#else
+-   {     5,  SK_Kb,  A_right,  SF(VRT),  L_statm   },
+-   {     4,  SK_Kb,  A_right,  SF(SWP),  L_status  },
+-   {     4,  SK_Kb,  A_right,  SF(RES),  L_statm   },
+-   {     4,  SK_Kb,  A_right,  SF(COD),  L_statm   },
+-   {     5,  SK_Kb,  A_right,  SF(DAT),  L_statm   },
+-   {     4,  SK_Kb,  A_right,  SF(SHR),  L_statm   },
+-#endif
+    {     4,     -1,  A_right,  SF(FL1),  L_stat    },
+    {     4,     -1,  A_right,  SF(FL2),  L_stat    },
+    {     4,     -1,  A_right,  SF(DRT),  L_statm   },
+@@ -1785,11 +1776,7 @@ static FLD_t Fieldstab[] = {
+    {    -1,     -1,  A_left,   SF(ENV),  L_ENVIRON },
+    {     3,     -1,  A_right,  SF(FV1),  L_stat    },
+    {     3,     -1,  A_right,  SF(FV2),  L_stat    },
+-#ifndef NOBOOST_MEMS
+    {     6,  SK_Kb,  A_right,  SF(USE),  L_USED    },
+-#else
+-   {     4,  SK_Kb,  A_right,  SF(USE),  L_USED    },
+-#endif
+    {    10,     -1,  A_right,  SF(NS1),  L_NS      }, // IPCNS
+    {    10,     -1,  A_right,  SF(NS2),  L_NS      }, // MNTNS
+    {    10,     -1,  A_right,  SF(NS3),  L_NS      }, // NETNS
+@@ -5208,12 +5195,20 @@ numa_nope:
+          const char *fmts;
+          const char *label;
+       } scaletab[] = {
+-         { 1, "%1.0f ", NULL },                            // kibibytes
+-         { 1024.0, "%#4.3f ", NULL },                      // mebibytes
+-         { 1024.0*1024, "%#4.3f ", NULL },                 // gibibytes
+-         { 1024.0*1024*1024, "%#4.3f ", NULL },            // tebibytes
+-         { 1024.0*1024*1024*1024, "%#4.3f ", NULL },       // pebibytes
+-         { 1024.0*1024*1024*1024*1024, "%#4.3f ", NULL }   // exbibytes
++         { 1, "%.0f ", NULL },                             // kibibytes
++#ifdef BOOST_MEMORY
++         { 1024.0, "%#.3f ", NULL },                       // mebibytes
++         { 1024.0*1024, "%#.3f ", NULL },                  // gibibytes
++         { 1024.0*1024*1024, "%#.3f ", NULL },             // tebibytes
++         { 1024.0*1024*1024*1024, "%#.3f ", NULL },        // pebibytes
++         { 1024.0*1024*1024*1024*1024, "%#.3f ", NULL }    // exbibytes
++#else
++         { 1024.0, "%#.1f ", NULL },                       // mebibytes
++         { 1024.0*1024, "%#.1f ", NULL },                  // gibibytes
++         { 1024.0*1024*1024, "%#.1f ", NULL },             // tebibytes
++         { 1024.0*1024*1024*1024, "%#.1f ", NULL },        // pebibytes
++         { 1024.0*1024*1024*1024*1024, "%#.1f ", NULL }    // exbibytes
++#endif
+       };
+       struct { //                                            0123456789
+       // snprintf contents of each buf (after SK_Kb):       'nnnn.nnn 0'
+diff -up ./top/top.h.ori ./top/top.h
+--- ./top/top.h.ori	2017-08-02 12:56:41.681326790 +0200
++++ ./top/top.h	2017-08-02 13:04:25.446881464 +0200
+@@ -23,8 +23,8 @@
+ #include "../proc/readproc.h"
+ 
+         /* Defines represented in configure.ac ----------------------------- */
+-//#define BOOST_PERCNT            /* enable extra precision for two % fields */
+-//#define NOBOOST_MEMS            /* disable extra precision for mem fields  */
++//#define BOOST_MEMORY            /* enable extra precision for mem fields   */
++//#define BOOST_PERCNT            /* enable extra precision for 2 % fields   */
+ //#define NUMA_DISABLE            /* disable summary area NUMA/Nodes display */
+ //#define OOMEM_ENABLE            /* enable the SuSE out-of-memory additions */
+ //#define ORIG_TOPDEFS            /* with no rcfile retain original defaults */
diff --git a/SOURCES/procps-ng-3.3.10-vmstat-devlen.patch b/SOURCES/procps-ng-3.3.10-vmstat-devlen.patch
new file mode 100644
index 0000000..e41de18
--- /dev/null
+++ b/SOURCES/procps-ng-3.3.10-vmstat-devlen.patch
@@ -0,0 +1,57 @@
+diff -Naur procps-ng-3.3.10.orig/proc/sysinfo.c procps-ng-3.3.10/proc/sysinfo.c
+--- procps-ng-3.3.10.orig/proc/sysinfo.c	2016-01-14 15:57:33.000000000 +0100
++++ procps-ng-3.3.10/proc/sysinfo.c	2016-01-14 16:40:01.290000000 +0100
+@@ -988,7 +988,7 @@
+   int cPartition = 0;
+   int fields;
+   unsigned dummy;
+-  char devname[32];
++  char devname[35];
+ 
+   *disks = NULL;
+   *partitions = NULL;
+@@ -1001,10 +1001,10 @@
+       fclose(fd);
+       break;
+     }
+-    fields = sscanf(buff, " %*d %*d %15s %*u %*u %*u %*u %*u %*u %*u %*u %*u %*u %u", devname, &dummy);
++    fields = sscanf(buff, " %*d %*d %34s %*u %*u %*u %*u %*u %*u %*u %*u %*u %*u %u", devname, &dummy);
+     if (fields == 2 && is_disk(devname)){
+       (*disks) = xrealloc(*disks, (cDisk+1)*sizeof(struct disk_stat));
+-      sscanf(buff,  "   %*d    %*d %15s %u %u %llu %u %u %u %llu %u %u %u %u",
++      sscanf(buff,  "   %*d    %*d %31s %u %u %llu %u %u %u %llu %u %u %u %u",
+         //&disk_major,
+         //&disk_minor,
+         (*disks)[cDisk].disk_name,
+@@ -1026,8 +1026,8 @@
+       (*partitions) = xrealloc(*partitions, (cPartition+1)*sizeof(struct partition_stat));
+       fflush(stdout);
+       sscanf(buff,  (fields == 2)
+-          ? "   %*d    %*d %15s %u %*u %llu %*u %u %*u %llu %*u %*u %*u %*u"
+-          : "   %*d    %*d %15s %u %llu %u %llu",
++          ? "   %*d    %*d %34s %u %*u %llu %*u %u %*u %llu %*u %*u %*u %*u"
++          : "   %*d    %*d %34s %u %llu %u %llu",
+         //&part_major,
+         //&part_minor,
+         (*partitions)[cPartition].partition_name,
+diff -Naur procps-ng-3.3.10.orig/proc/sysinfo.h procps-ng-3.3.10/proc/sysinfo.h
+--- procps-ng-3.3.10.orig/proc/sysinfo.h	2014-09-23 13:40:36.000000000 +0200
++++ procps-ng-3.3.10/proc/sysinfo.h	2016-01-14 16:30:02.326000000 +0100
+@@ -101,7 +101,7 @@
+ typedef struct disk_stat{
+ 	unsigned long long reads_sectors;
+ 	unsigned long long written_sectors;
+-	char               disk_name [16];
++	char               disk_name [32];
+ 	unsigned           inprogress_IO;
+ 	unsigned           merged_reads;
+ 	unsigned           merged_writes;
+@@ -115,7 +115,7 @@
+ }disk_stat;
+ 
+ typedef struct partition_stat{
+-	char partition_name [16];
++	char partition_name [35];
+ 	unsigned long long reads_sectors;
+ 	unsigned           parent_disk;  // index into a struct disk_stat array
+ 	unsigned           reads;
diff --git a/SOURCES/procps-ng-3.3.10-vmstat-long-device-name.patch b/SOURCES/procps-ng-3.3.10-vmstat-long-device-name.patch
new file mode 100644
index 0000000..91c72ec
--- /dev/null
+++ b/SOURCES/procps-ng-3.3.10-vmstat-long-device-name.patch
@@ -0,0 +1,13 @@
+diff --git a/proc/sysinfo.c b/proc/sysinfo.c
+index baa2453..c95f378 100644
+--- a/proc/sysinfo.c
++++ b/proc/sysinfo.c
+@@ -979,7 +979,7 @@ unsigned int getpartitions_num(struct disk_stat *disks, int ndisks){
+ /////////////////////////////////////////////////////////////////////////////
+ static int is_disk(char *dev)
+ {
+-  char syspath[32];
++  char syspath[64];
+   char *slash;
+ 
+   while ((slash = strchr(dev, '/')))
diff --git a/SPECS/procps-ng.spec b/SPECS/procps-ng.spec
new file mode 100644
index 0000000..e6b4389
--- /dev/null
+++ b/SPECS/procps-ng.spec
@@ -0,0 +1,401 @@
+# The testsuite is unsuitable for running on buildsystems
+%global tests_enabled 0
+
+Summary: System and process monitoring utilities
+Name: procps-ng
+Version: 3.3.10
+Release: 17%{?dist}
+License: GPL+ and GPLv2 and GPLv2+ and GPLv3+ 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.10-pmap-skip-vmflags.patch
+Patch1: procps-ng-3.3.10-free-uninitialized-errno.patch
+Patch2: procps-ng-3.3.10-ps-thcount-format-option.patch
+Patch3: procps-ng-3.3.10-vmstat-devlen.patch
+Patch4: procps-ng-3.3.10-find_elf_note-memory-error-fix.patch
+Patch5: procps-ng-3.3.10-ps-scattered-thread-cgroups.patch
+Patch6: procps-ng-3.3.10-vmstat-long-device-name.patch
+Patch7: procps-ng-3.3.10-ps-full-wchan-name.patch
+Patch8: procps-ng-3.3.10-pmap-lines-twice.patch
+Patch9: procps-ng-3.3.10-slabtop-use-val-float.patch
+Patch10: procps-ng-3.3.10-sysctl-conf-manpage-predef-note.patch 
+Patch11: procps-ng-3.3.10-top-instant-cpu-stats.patch
+Patch12: procps-ng-3.3.10-sysctl-man-conf-override-hint.patch
+Patch13: procps-ng-3.3.10-top-strange-mem-val-scaling.patch 
+
+
+Requires(post): /sbin/ldconfig
+Requires(postun): /sbin/ldconfig
+
+BuildRequires: ncurses-devel
+BuildRequires: libtool
+BuildRequires: autoconf
+BuildRequires: automake
+BuildRequires: gettext-devel
+BuildRequires: systemd-devel
+
+%if %{tests_enabled}
+BuildRequires: dejagnu
+%endif
+
+Provides: procps = %{version}-%{release}
+Obsoletes: procps < 3.2.9-1
+
+# usrmove hack - will be removed once initscripts are fixed
+Provides: /sbin/sysctl
+Provides: /bin/ps
+
+%description
+The procps package contains a set of system utilities that provide
+system information. Procps includes ps, free, skill, pkill, pgrep,
+snice, tload, top, uptime, vmstat, w, watch and pwdx. The ps command
+displays a snapshot of running processes. The top command provides
+a repetitive update of the statuses of running processes. The free
+command displays the amounts of free and used memory on your
+system. The skill command sends a terminate command (or another
+specified signal) to a specified set of processes. The snice
+command is used to change the scheduling priority of specified
+processes. The tload command prints a graph of the current system
+load average to a specified tty. The uptime command displays the
+current time, how long the system has been running, how many users
+are logged on, and system load averages for the past one, five,
+and fifteen minutes. The w command displays a list of the users
+who are currently logged on and what they are running. The watch
+program watches a running program. The vmstat command displays
+virtual memory statistics about processes, memory, paging, block
+I/O, traps, and CPU activity. The pwdx command reports the current
+working directory of a process or processes.
+
+%package devel
+Summary:  System and process monitoring utilities
+Group:    Development/Libraries
+Requires: %{name}%{?_isa} = %{version}-%{release}
+Provides: procps-devel = %{version}-%{release}
+Obsoletes: procps-devel < 3.2.9-1
+
+%description devel
+System and process monitoring utilities development headers
+
+%package i18n
+Summary:  Internationalization pack for procps-ng
+Group:    Applications/System
+Requires: %{name} = %{version}-%{release}
+
+%description i18n
+Internationalization pack for procps-ng
+
+
+%prep
+%setup -q -n %{name}-%{version}
+
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
+%patch7 -p1
+%patch8 -p1
+%patch9 -p1
+%patch10 -p1
+%patch11 -p1
+%patch12 -p1
+%patch13 -p1
+
+
+%build
+# The following stuff is needed for git archives only
+#echo "%{version}" > .tarball-version
+#./autogen.sh
+
+autoreconf --verbose --force --install
+
+./configure --prefix=/ \
+            --bindir=%{_bindir} \
+            --sbindir=%{_sbindir} \
+            --libdir=%{_libdir} \
+            --mandir=%{_mandir} \
+            --includedir=%{_includedir} \
+            --sysconfdir=%{_sysconfdir} \
+            --localedir=%{_datadir}/locale \
+            --docdir=/unwanted \
+            --disable-static \
+            --enable-w-from \
+            --disable-kill \
+            --disable-rpath \
+            --enable-watch8bit \
+            --enable-skill \
+            --enable-sigwinch \
+            --enable-libselinux \
+            --with-systemd \
+            --disable-pidof \
+            --disable-modern-top
+
+make CFLAGS="%{optflags}"
+
+
+%if %{tests_enabled}
+%check
+make check
+%endif
+
+
+%install
+make DESTDIR=%{buildroot} install
+
+# --localedir doesn't work correctly
+mv %{buildroot}/share/locale %{buildroot}%{_datadir}
+rmdir %{buildroot}/share
+
+# translated man pages
+#find man-po/ -type d -maxdepth 1 -mindepth 1 | while read dirname; do cp -a $dirname %{buildroot}/usr/share/man/ ; done
+
+%post -p /sbin/ldconfig
+
+%postun -p /sbin/ldconfig
+
+%files
+%doc AUTHORS Documentation/BUGS COPYING COPYING.LIB Documentation/FAQ NEWS README top/README.top Documentation/TODO
+
+%{_libdir}/libprocps.so.*
+%{_bindir}/*
+%{_sbindir}/*
+%{_mandir}/man1/*
+%{_mandir}/man8/*
+%{_mandir}/man5/*
+#%%{_mandir}/*/man1/*
+#%%{_mandir}/*/man8/*
+#%%{_mandir}/*/man5/*
+
+%exclude %{_libdir}/libprocps.la
+%exclude %{_sysconfdir}/sysctl.conf
+%exclude /unwanted/*
+
+%files devel
+%doc COPYING COPYING.LIB
+%{_libdir}/libprocps.so
+%{_libdir}/pkgconfig/libprocps.pc
+%{_includedir}/proc
+%{_mandir}/man3/*
+
+%files i18n
+%{_datadir}/locale/*
+
+%changelog
+* Wed Sep 06 2017 Jan Rybar <jrybar@redhat.com> - 3.3.10-17
+- top: strange unit scaling with high memory values
+- Resolves: rhbz#1253851
+
+* Wed May 31 2017 Jan Rybar <jrybar@redhat.com> - 3.3.10-16
+- sysctl manpage: Added explanation of conf files precedence
+- Resolves: rhbz#1456905
+
+* Fri Apr 07 2017 Jan Rybar <jrybar@redhat.com> - 3.3.10-15
+- top - real CPU statistics instead of since-boot are shown at start
+- Resolves: rhbz#1182327
+
+* Fri Apr 07 2017 Jan Rybar <jrybar@redhat.com> - 3.3.10-14
+- sysctl.conf manpage: note about predefined values added
+- Resolves: rhbz#1439837
+
+* Mon Mar 13 2017 Jan Rybar <jrybar@redhat.com> - 3.3.10-13
+- slabtop: incorrect computation of "used" value, use float to fix
+- Resolves: rhbz#1329958
+
+* Mon Feb 20 2017 Jan Rybar <jrybar@redhat.com> - 3.3.10-12
+- pmap no longer shows each line twice with blank values on newer kernels
+- Resolves: rhbz#1330417
+
+* Tue Jan 31 2017 Jan Rybar <jrybar@redhat.com> - 3.3.10-11
+- ps no longer removes 'do_' and 'sys_' from wchan data
+- Resolves: rhbz#1373246
+
+* Tue Jul 26 2016 Jan Rybar <jrybar@redhat.com> - 3.3.10-10
+- Fixes sysinfo - devices with name longer than 20 chars are mistaken for partitions
+- Resolves: rhbz#1169349
+
+* Thu Jul 07 2016 Jan Rybar <jrybar@redhat.com> - 3.3.10-9
+- Fixes showing same cgroups for threads under process by adding format option
+- Resolves: rhbz#1284087
+
+* Mon Jul 04 2016 Jan Rybar <jrybar@redhat.com> - 3.3.10-8
+- Fixes obtaining environment variables in find_elf_note function
+- Resolves: rhbz#1287752
+ 
+* Thu Jun 09 2016 Jan Rybar <jrybar@redhat.com> - 3.3.10-7
+- Fixing sysinfo - devices with length exceeding 15 chars are not displayed in vmstat -d
+- Resolves: #1169349
+
+* Mon Jun 06 2016 Jan Rybar <jrybar@redhat.com> - 3.3.10-6
+- #1174311 - ps - thcount not recognized as a format option
+- Resolves: #1174311
+
+* Tue Dec 01 2015 Jaromir Capik <jcapik@redhat.com> - 3.3.10-5
+- #1287038 - free - error while parsing arguments
+- Resolves: #1287038
+
+* Tue Nov 24 2015 Jaromir Capik <jcapik@redhat.com> - 3.3.10-4
+- #1262864 - Correctly skip vmflags (and other keys starting with A-Z)
+- Resolves: #1262864
+
+* Mon Oct 06 2014 Jaromir Capik <jcapik@redhat.com> - 3.3.10-3
+- Disabling translated man pages due to conflicts with man-pages-*
+- Removing /etc/sysctl.d (quietly stolen by systemd)
+- Related: rhbz#1119263 rhbz#1119260 rhbz#1060715 rhbz#1113206
+- Related: rhbz#1112734 rhbz#1078310 rhbz#1116309 rhbz#1070736
+
+* Tue Sep 23 2014 Jaromir Capik <jcapik@redhat.com> - 3.3.10-2
+- Replacing RC tarball with final 3.3.10 release
+- Related: rhbz#1119263 rhbz#1119260 rhbz#1060715 rhbz#1113206
+- Related: rhbz#1112734 rhbz#1078310 rhbz#1116309 rhbz#1070736
+
+* Tue Sep 09 2014 Jaromir Capik <jcapik@redhat.com> - 3.3.10-1
+- Upgrading to 3.3.10
+- top.1: physical memory - has used / is using (#1119263)
+- Include man pages for openproc, readproc and readproctab (#1119260)
+- ps -p cycles over all PIDs instead of just one (#1060715)
+- Remove explicit dependency on systemd-libs package (#1113206)
+- Allow longer usernames to display in ps output (#1112734)
+- w doesn't display FROM by default (#1078310)
+- Return value of pgrep is incorrect (#1116309)
+- Should shared memory be accounted in cached in free output? (#1070736)
+- Resolves: rhbz#1119263 rhbz#1119260 rhbz#1060715 rhbz#1113206
+- Resolves: rhbz#1112734 rhbz#1078310 rhbz#1116309 rhbz#1070736
+
+* Thu Feb 27 2014 Jaromir Capik <jcapik@redhat.com> - 3.3.9-6
+- Subtracting Shmem from Cached (#1070736)
+- Resolves: rhbz#1070736
+
+* Thu Feb 06 2014 Jaromir Capik <jcapik@redhat.com> - 3.3.9-5
+- Support for timestamps & wide diskstat (#1053428, #1025833)
+- Fixing fd leak in watch
+- Fixing format-security build issues
+- Skipping trailing zeros in read_unvectored (#1057600)
+- Resolves: rhbz#1053428, Related: rhbz#1025833
+
+* Fri Jan 24 2014 Daniel Mach <dmach@redhat.com> - 3.3.9-4
+- Mass rebuild 2014-01-24
+
+* Mon Jan 20 2014 Jaromir Capik <jcapik@redhat.com> - 3.3.9-3
+- 'vmstat -w' was not wide enough (#1025833)
+- Related: rhbz#1025833
+
+* Fri Dec 27 2013 Daniel Mach <dmach@redhat.com> - 3.3.9-2
+- Mass rebuild 2013-12-27
+
+* Tue Dec 03 2013 Jaromir Capik <jcapik@redhat.com> - 3.3.9-1
+- Update to 3.3.9
+- Resolves: rhbz#1025833 rhbz#1025774 rhbz#1027109
+
+* Mon Oct 21 2013 Jaromir Capik <jcapik@redhat.com> - 3.3.8-15
+- Fixing incorrect format specifier (introduced with namespaces)
+
+* Tue Sep 17 2013 Aristeu Rozanski <aris@redhat.com> - 3.3.8-14
+- Introduce namespaces support (#980516)
+
+* Fri Aug 09 2013 Jaromir Capik <jcapik@redhat.com> - 3.3.8-13
+- Including forgotten man fixes (#948522)
+
+* Wed Aug 07 2013 Jaromir Capik <jcapik@redhat.com> - 3.3.8-12
+- Fixing the license tag
+
+* Wed Aug 07 2013 Jaromir Capik <jcapik@redhat.com> - 3.3.8-11
+- Support for libselinux (#975459)
+- Support for systemd (#994457)
+- Support for 'Shmem' in free (#993271)
+
+* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.3.8-10
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
+
+* Fri Jul 19 2013 Jaromir Capik <jcapik@redhat.com> - 3.3.8-9
+- RH man page scan (#948522)
+
+* Tue Jul 02 2013 Jaromir Capik <jcapik@redhat.com> - 3.3.8-8
+- Extending the end-of-job patch disabling the screen content restoration
+
+* Mon Jul 01 2013 Jaromir Capik <jcapik@redhat.com> - 3.3.8-7
+- Disabling screen content restoration when exiting 'top' (#977561)
+- Enabling SIGWINCH flood prevention
+
+* Wed Jun 26 2013 Jaromir Capik <jcapik@redhat.com> - 3.3.8-6
+- Avoiding "write error" messages when piping to grep (#976199)
+
+* Wed Jun 26 2013 Jaromir Capik <jcapik@redhat.com> - 3.3.8-5
+- Disabling tests - unsuitable for running on buildsystems
+
+* Mon Jun 17 2013 Jaromir Capik <jcapik@redhat.com> - 3.3.8-4
+- Enabling skill and snice (#974752)
+
+* Wed Jun 12 2013 Jaromir Capik <jcapik@redhat.com> - 3.3.8-3
+- Adding major version in the libnuma soname
+
+* Thu May 30 2013 Jaromir Capik <jcapik@redhat.com> - 3.3.8-2
+- watch: enabling UTF-8 (#965867)
+
+* 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
+- top: inoculated against a window manager like 'screen' (#962022)
+
+* Tue Apr 16 2013 Jaromir Capik <jcapik@redhat.com> - 3.3.7-3
+- Avoid segfaults when reading zero bytes - file2str (#951391)
+
+* Mon Apr 15 2013 Jaromir Capik <jcapik@redhat.com> - 3.3.7-2
+- Moving libprocps.pc to the devel subpackage (#951726)
+
+* Tue Mar 26 2013 Jaromir Capik <jcapik@redhat.com> - 3.3.7-1
+- Update to 3.3.7
+- Reverting upstream commit for testsuite/unix.exp
+
+* Tue Feb 05 2013 Jaromir Capik <jcapik@redhat.com> - 3.3.6-4
+- Fixing empty pmap output on ppc/s390 (#906457)
+
+* Tue Jan 15 2013 Jaromir Capik <jcapik@redhat.com> - 3.3.6-3
+- Typo in the description, pdwx instead of pwdx (#891476)
+
+* Tue Jan 08 2013 Jaromir Capik <jcapik@redhat.com> - 3.3.6-2
+- Rebuilding with tests disabled (koji issue #853084)
+
+* Tue Jan 08 2013 Jaromir Capik <jcapik@redhat.com> - 3.3.6-1
+- Update to 3.3.6
+- Changing URL/Source from gitorious to recently created sourceforge page
+- Replacing autogen.sh with autoreconf
+
+* Mon Jan 07 2013 Jaromir Capik <jcapik@redhat.com> - 3.3.5-1
+- Update to 3.3.5
+
+* Tue Dec 11 2012 Jaromir Capik <jcapik@redhat.com> - 3.3.4-2
+- fixing the following regressions:
+-   negative ETIME field in ps (#871819)
+-   procps states a bug is hit when receiving a signal (#871824)
+-   allow core file generation by ps command (#871825)
+
+* Tue Dec 11 2012 Jaromir Capik <jcapik@redhat.com> - 3.3.4-1
+- Update to 3.3.4
+
+* Tue Sep 25 2012 Jaromir Capik <jcapik@redhat.com> - 3.3.3-3.20120807git
+- SELinux spelling fixes (#859900)
+
+* Tue Aug 21 2012 Jaromir Capik <jcapik@redhat.com> - 3.3.3-2.20120807git
+- Tests enabled
+
+* Tue Aug 07 2012 Jaromir Capik <jcapik@redhat.com> - 3.3.3-1.20120807git
+- Update to 3.3.3-20120807git
+
+* Sat Jul 21 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.3.2-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
+
+* Thu Mar 08 2012 Jaromir Capik <jcapik@redhat.com> - 3.3.2-3
+- Second usrmove hack - providing /bin/ps
+
+* Tue Mar 06 2012 Jaromir Capik <jcapik@redhat.com> - 3.3.2-2
+- Fixing requires in the devel subpackage (missing %{?_isa} macro)
+- License statement clarification (upstream patch referrenced in the spec header)
+
+* Mon Feb 27 2012 Jaromir Capik <jcapik@redhat.com> - 3.3.2-1
+- Initial version