diff --git a/procps.patches/procps-50.patch b/procps.patches/procps-50.patch
new file mode 100644
index 0000000..e00b5a9
--- /dev/null
+++ b/procps.patches/procps-50.patch
@@ -0,0 +1,36 @@
+diff -aruN a/Makefile b/Makefile
+--- a/Makefile	2009-05-10 11:50:48.000000000 -0700
++++ b/Makefile	2011-03-01 09:08:47.354663539 -0800
+@@ -222,7 +222,7 @@
+ ###### install
+ 
+ $(BINFILES) : all
+-	$(install) --mode a=rx $(notdir $@) $@
++	$(install) --mode 775 $(notdir $@) $@
+ 
+ $(MANFILES) : all
+ 	$(install) --mode a=r $(notdir $@) $@
+diff -aruN a/proc/module.mk b/proc/module.mk
+--- a/proc/module.mk	2004-09-23 06:10:42.000000000 -0700
++++ b/proc/module.mk	2011-03-01 09:06:01.843034588 -0800
+@@ -96,7 +96,7 @@
+ #################### install rules ###########################
+ 
+ $(lib)$(SOFILE) : proc/$(SONAME)
+-	$(install) --mode a=rx $< $@
++	$(install) --mode 775 $< $@
+ 
+ ifneq ($(SOLINK),$(SOFILE))
+ .PHONY: $(lib)$(SOLINK)
+diff -aruN a/ps/module.mk b/ps/module.mk
+--- a/ps/module.mk	2005-10-29 20:19:46.000000000 -0700
++++ b/ps/module.mk	2011-03-01 09:06:15.074510652 -0800
+@@ -33,7 +33,7 @@
+ 
+ 
+ $(bin)ps: ps/ps
+-	$(install) --mode a=rx $< $@
++	$(install) --mode 775 $< $@
+ 
+ $(man1)ps.1 : ps/ps.1
+ 	$(install) --mode a=r $< $@
diff --git a/procps.patches/procps-51.patch b/procps.patches/procps-51.patch
new file mode 100644
index 0000000..f6b5cc5
--- /dev/null
+++ b/procps.patches/procps-51.patch
@@ -0,0 +1,415 @@
+diff -Naur a/top.c b/top.c
+--- a/top.c	2007-05-28 09:04:00.000000000 -0700
++++ b/top.c	2014-09-04 13:24:59.862877761 -0700
+@@ -184,19 +184,19 @@
+          * 2 columns each.
+          */
+ 
+-SCB_NUMx(P_PID, XXXID)
+-SCB_NUMx(P_PPD, ppid)
+-SCB_STRx(P_URR, ruser)
+-SCB_NUMx(P_UID, euid)
+-SCB_STRx(P_URE, euser)
+-SCB_STRx(P_GRP, egroup)
+-SCB_NUMx(P_TTY, tty)
+-SCB_NUMx(P_PRI, priority)
+-SCB_NUMx(P_NCE, nice)
+-SCB_NUMx(P_CPN, processor)
+-SCB_NUM1(P_CPU, pcpu)
+-                                        // also serves P_TM2 !
+-static int sort_P_TME (const proc_t **P, const proc_t **Q)
++SCB_NUMx(EU_PID, XXXID)
++SCB_NUMx(EU_PPD, ppid)
++SCB_STRx(EU_URR, ruser)
++SCB_NUMx(EU_UID, euid)
++SCB_STRx(EU_URE, euser)
++SCB_STRx(EU_GRP, egroup)
++SCB_NUMx(EU_TTY, tty)
++SCB_NUMx(EU_PRI, priority)
++SCB_NUMx(EU_NCE, nice)
++SCB_NUMx(EU_CPN, processor)
++SCB_NUM1(EU_CPU, pcpu)
++                                        // also serves EU_TM2 !
++static int sort_EU_TME (const proc_t **P, const proc_t **Q)
+ {
+    if (Frame_ctimes) {
+       if ( ((*P)->cutime + (*P)->cstime + (*P)->utime + (*P)->stime)
+@@ -214,17 +214,17 @@
+    return SORT_eq;
+ }
+ 
+-SCB_NUM1(P_VRT, size)
+-SCB_NUM2(P_SWP, size, resident)
+-SCB_NUM1(P_RES, resident)               // also serves P_MEM !
+-SCB_NUM1(P_COD, trs)
+-SCB_NUM1(P_DAT, drs)
+-SCB_NUM1(P_SHR, share)
+-SCB_NUM1(P_FLT, maj_flt)
+-SCB_NUM1(P_DRT, dt)
+-SCB_NUMx(P_STA, state)
++SCB_NUM1(EU_VRT, size)
++SCB_NUM2(EU_SWP, size, resident)
++SCB_NUM1(EU_RES, resident)               // also serves EU_MEM !
++SCB_NUM1(EU_COD, trs)
++SCB_NUM1(EU_DAT, drs)
++SCB_NUM1(EU_SHR, share)
++SCB_NUM1(EU_FLT, maj_flt)
++SCB_NUM1(EU_DRT, dt)
++SCB_NUMx(EU_STA, state)
+ 
+-static int sort_P_CMD (const proc_t **P, const proc_t **Q)
++static int sort_EU_CMD (const proc_t **P, const proc_t **Q)
+ {
+    /* if a process doesn't have a cmdline, we'll consider it a kernel thread
+       -- since displayed tasks are given special treatment, we must too */
+@@ -238,8 +238,8 @@
+    return Frame_srtflg * strcmp((*Q)->cmd, (*P)->cmd);
+ }
+ 
+-SCB_NUM1(P_WCH, wchan)
+-SCB_NUM1(P_FLG, flags)
++SCB_NUM1(EU_WCH, wchan)
++SCB_NUM1(EU_FLG, flags)
+ 
+         /* ///////////////////////////////// special sort for prochlp() ! */
+ static int sort_HST_t (const HST_t *P, const HST_t *Q)
+@@ -562,7 +562,7 @@
+ 
+ // Show an error, but not right now.
+ // Due to the postponed opening of ksym, using open_psdb_message,
+-// if P_WCH had been selected and the program is restarted, the
++// if EU_WCH had been selected and the program is restarted, the
+ // message would otherwise be displayed prematurely.
+ static void msg_save (const char *fmts, ...) __attribute__((format(printf,1,2)));
+ static void msg_save (const char *fmts, ...)
+@@ -1213,7 +1213,7 @@
+ #define L_DEFAULT  PROC_FILLSTAT
+ 
+ // a temporary macro, soon to be undef'd...
+-#define SF(f) (QFP_t)sort_P_ ## f
++#define SF(f) (QFP_t)sort_EU_ ## f
+ 
+         /* These are our gosh darn 'Fields' !
+            They MUST be kept in sync with pflags !!
+@@ -1222,9 +1222,9 @@
+                  a cast when/if displayed provides minimal width protection. */
+ static FLD_t Fieldstab[] = {
+ /* .lflg anomolies:
+-      P_UID, L_NONE  - natural outgrowth of 'stat()' in readproc        (euid)
+-      P_CPU, L_stat  - never filled by libproc, but requires times      (pcpu)
+-      P_CMD, L_stat  - may yet require L_CMDLINE in reframewins  (cmd/cmdline)
++      EU_UID, L_NONE  - natural outgrowth of 'stat()' in readproc        (euid)
++      EU_CPU, L_stat  - never filled by libproc, but requires times      (pcpu)
++      EU_CMD, L_stat  - may yet require L_CMDLINE in reframewins  (cmd/cmdline)
+       L_EITHER       - must L_status, else 64-bit math, __udivdi3 on 32-bit !
+       keys   head           fmts     width   scale  sort   desc                     lflg
+      ------  -----------    -------  ------  -----  -----  ----------------------   -------- */
+@@ -1514,23 +1514,23 @@
+ 
+          case 'M':
+             c = 0; // for scoreboard
+-            rc->win[0].sortindx = P_MEM;
++            rc->win[0].sortindx = EU_MEM;
+             break;
+          case 'P':
+             c = 0; // for scoreboard
+-            rc->win[0].sortindx = P_CPU;
++            rc->win[0].sortindx = EU_CPU;
+             break;
+          case 'A':                      // supposed to be start_time
+             c = 0; // for scoreboard
+-            rc->win[0].sortindx = P_PID;
++            rc->win[0].sortindx = EU_PID;
+             break;
+          case 'T':
+             c = 0; // for scoreboard
+-            rc->win[0].sortindx = P_TM2;
++            rc->win[0].sortindx = EU_TM2;
+             break;
+          case 'N':
+             c = 0; // for scoreboard
+-            rc->win[0].sortindx = P_PID;
++            rc->win[0].sortindx = EU_PID;
+             break;
+ 
+          default:
+@@ -1626,19 +1626,19 @@
+ 
+    pcpu_max_value = 99.9;
+ 
+-   Fieldstab[P_CPN].head = " P";
+-   Fieldstab[P_CPN].fmts = " %1u";
++   Fieldstab[EU_CPN].head = " P";
++   Fieldstab[EU_CPN].fmts = " %1u";
+    if(smp_num_cpus>9){
+-      Fieldstab[P_CPN].head = "  P";
+-      Fieldstab[P_CPN].fmts = " %2u";
++      Fieldstab[EU_CPN].head = "  P";
++      Fieldstab[EU_CPN].fmts = " %2u";
+    }
+    if(smp_num_cpus>99){
+-      Fieldstab[P_CPN].head = "   P";
+-      Fieldstab[P_CPN].fmts = " %3u";
++      Fieldstab[EU_CPN].head = "   P";
++      Fieldstab[EU_CPN].fmts = " %3u";
+    }
+    if(smp_num_cpus>999){
+-      Fieldstab[P_CPN].head = "    P";
+-      Fieldstab[P_CPN].fmts = " %4u";
++      Fieldstab[EU_CPN].head = "    P";
++      Fieldstab[EU_CPN].fmts = " %4u";
+    }
+ 
+    {
+@@ -1646,10 +1646,10 @@
+       unsigned pid_digits = get_pid_digits();
+       if(pid_digits<4) pid_digits=4;
+       snprintf(pid_fmt, sizeof pid_fmt, " %%%uu", pid_digits);
+-      Fieldstab[P_PID].fmts = pid_fmt;
+-      Fieldstab[P_PID].head = "        PID" + 10 - pid_digits;
+-      Fieldstab[P_PPD].fmts = pid_fmt;
+-      Fieldstab[P_PPD].head = "       PPID" + 10 - pid_digits;
++      Fieldstab[EU_PID].fmts = pid_fmt;
++      Fieldstab[EU_PID].head = "        PID" + 10 - pid_digits;
++      Fieldstab[EU_PPD].fmts = pid_fmt;
++      Fieldstab[EU_PPD].head = "       PPID" + 10 - pid_digits;
+    }
+ }
+ 
+@@ -1786,7 +1786,7 @@
+    if(Rc.mode_irixps && smp_num_cpus>1){
+       // good for 100 CPUs per process
+       pcpu_max_value = 9999.0;
+-      Fieldstab[P_CPU].fmts = " %4.0f";
++      Fieldstab[EU_CPU].fmts = " %4.0f";
+    }
+ 
+    // lastly, establish the true runtime secure mode and delay time
+@@ -2135,13 +2135,13 @@
+          }
+ 
+          // establish the final maxpflgs and prepare to grow the command column
+-         // heading via maxcmdln - it may be a fib if P_CMD wasn't encountered,
++         // heading via maxcmdln - it may be a fib if EU_CMD wasn't encountered,
+          // but that's ok because it won't be displayed anyway
+          w->maxpflgs = i;
+-         w->maxcmdln = Screen_cols - (strlen(w->columnhdr) - strlen(Fieldstab[P_CMD].head));
++         w->maxcmdln = Screen_cols - (strlen(w->columnhdr) - strlen(Fieldstab[EU_CMD].head));
+ 
+          // finally, we can build the true run-time columns header, format the
+-         // command column heading, if P_CMD is really being displayed, and
++         // command column heading, if EU_CMD is really being displayed, and
+          // rebuild the all-important PROC_FILLxxx flags that will be used
+          // until/if we're we're called again
+          *(s = w->columnhdr) = '\0';
+@@ -2149,9 +2149,9 @@
+          for (i = 0; i < w->maxpflgs; i++) {
+             int advance = (i==0) && !Rc.mode_altscr;
+             h = Fieldstab[w->procflags[i]].head;
+-            if (P_WCH == w->procflags[i]) needpsdb = 1;
+-            if (P_CMD == w->procflags[i]) {
+-               s = scat(s, fmtmk(Fieldstab[P_CMD].fmts+advance, w->maxcmdln, w->maxcmdln, "COMMAND"/*h*/  ));
++            if (EU_WCH == w->procflags[i]) needpsdb = 1;
++            if (EU_CMD == w->procflags[i]) {
++               s = scat(s, fmtmk(Fieldstab[EU_CMD].fmts+advance, w->maxcmdln, w->maxcmdln, "COMMAND"/*h*/  ));
+                if (CHKw(w, Show_CMDLIN)) {
+                   Frames_libflags |= L_CMDLINE;
+ //                if (w->maxcmdln > Frames_maxcmdln) Frames_maxcmdln = w->maxcmdln;
+@@ -2629,10 +2629,10 @@
+          if(Rc.mode_irixps && smp_num_cpus>1){
+             // good for 100 CPUs per process
+             pcpu_max_value = 9999.0;
+-            Fieldstab[P_CPU].fmts = " %4.0f";
++            Fieldstab[EU_CPU].fmts = " %4.0f";
+          } else {
+             pcpu_max_value = 99.9;
+-            Fieldstab[P_CPU].fmts = " %#4.1f";
++            Fieldstab[EU_CPU].fmts = " %#4.1f";
+          }
+          break;
+ 
+@@ -2836,8 +2836,8 @@
+             const unsigned  xkey;
+             const FLG_t     sort;
+          } xtab[] = {
+-            { "Memory", 'M', P_MEM, }, { "Numerical", 'N', P_PID, },
+-            { "CPU",    'P', P_CPU, }, { "Time",      'T', P_TM2  }, };
++            { "Memory", 'M', EU_MEM, }, { "Numerical", 'N', EU_PID, },
++            { "CPU",    'P', EU_CPU, }, { "Time",      'T', EU_TM2  }, };
+          int i;
+          for (i = 0; i < MAXTBL(xtab); ++i)
+             if (c == xtab[i].xkey) {
+@@ -3063,7 +3063,7 @@
+       int advance = (x==0) && !Rc.mode_altscr;
+ 
+       switch (i) {
+-         case P_CMD:
++         case EU_CMD:
+          {  char tmp[ROWBUFSIZ];
+             unsigned flags;
+ 	    int maxcmd = q->maxcmdln;
+@@ -3073,25 +3073,25 @@
+             MKCOL(q->maxcmdln, q->maxcmdln, tmp);
+          }
+             break;
+-         case P_COD:
++         case EU_COD:
+             MKCOL(scale_num(PAGES_TO_KB(p->trs), w, s));
+             break;
+-         case P_CPN:
++         case EU_CPN:
+             MKCOL((unsigned)p->processor);
+             break;
+-         case P_CPU:
++         case EU_CPU:
+          {  float u = (float)p->pcpu * Frame_tscale;
+             if (u > pcpu_max_value) u = pcpu_max_value;
+             MKCOL(u);
+          }
+             break;
+-         case P_DAT:
++         case EU_DAT:
+             MKCOL(scale_num(PAGES_TO_KB(p->drs), w, s));
+             break;
+-         case P_DRT:
++         case EU_DRT:
+             MKCOL(scale_num((unsigned)p->dt, w, s));
+             break;
+-         case P_FLG:
++         case EU_FLG:
+          {  char tmp[TNYBUFSIZ];
+             snprintf(tmp, sizeof(tmp), f, (long)p->flags);
+             for (j = 0; tmp[j]; j++) if ('0' == tmp[j]) tmp[j] = '.';
+@@ -3099,70 +3099,70 @@
+             MKCOL("");
+          }
+             break;
+-         case P_FLT:
++         case EU_FLT:
+             MKCOL(scale_num(p->maj_flt, w, s));
+             break;
+-         case P_GRP:
++         case EU_GRP:
+             MKCOL(p->egroup);
+             break;
+-         case P_MEM:
++         case EU_MEM:
+             MKCOL((float)PAGES_TO_KB(p->resident) * 100 / kb_main_total);
+             break;
+-         case P_NCE:
++         case EU_NCE:
+             MKCOL((int)p->nice);
+             break;
+-         case P_PID:
++         case EU_PID:
+             MKCOL((unsigned)p->XXXID);
+             break;
+-         case P_PPD:
++         case EU_PPD:
+             MKCOL((unsigned)p->ppid);
+             break;
+-         case P_PRI:
++         case EU_PRI:
+             if (unlikely(-99 > p->priority) || unlikely(999 < p->priority)) {
+                f = "  RT";
+                MKCOL("");
+             } else
+                MKCOL((int)p->priority);
+             break;
+-         case P_RES:
++         case EU_RES:
+             MKCOL(scale_num(PAGES_TO_KB(p->resident), w, s));
+             break;
+-         case P_SHR:
++         case EU_SHR:
+             MKCOL(scale_num(PAGES_TO_KB(p->share), w, s));
+             break;
+-         case P_STA:
++         case EU_STA:
+             MKCOL(p->state);
+             break;
+-         case P_SWP:
++         case EU_SWP:
+             MKCOL(scale_num(PAGES_TO_KB(p->size - p->resident), w, s));
+             break;
+-         case P_TME:
+-         case P_TM2:
++         case EU_TME:
++         case EU_TM2:
+          {  TIC_t t = p->utime + p->stime;
+             if (CHKw(q, Show_CTIMES))
+                t += (p->cutime + p->cstime);
+             MKCOL(scale_tics(t, w));
+          }
+             break;
+-         case P_TTY:
++         case EU_TTY:
+          {  char tmp[TNYBUFSIZ];
+             dev_to_tty(tmp, (int)w, p->tty, p->XXXID, ABBREV_DEV);
+             MKCOL(tmp);
+          }
+             break;
+-         case P_UID:
++         case EU_UID:
+             MKCOL((unsigned)p->euid);
+             break;
+-         case P_URE:
++         case EU_URE:
+             MKCOL(p->euser);
+             break;
+-         case P_URR:
++         case EU_URR:
+             MKCOL(p->ruser);
+             break;
+-         case P_VRT:
++         case EU_VRT:
+             MKCOL(scale_num(PAGES_TO_KB(p->size), w, s));
+             break;
+-         case P_WCH:
++         case EU_WCH:
+             if (No_ksyms) {
+                f = " %08lx ";
+                MKCOL((long)p->wchan);
+diff -Naur a/top.h b/top.h
+--- a/top.h	2006-06-24 23:41:48.000000000 -0700
++++ b/top.h	2014-09-04 13:14:40.124239420 -0700
+@@ -245,12 +245,12 @@
+ 
+ // Flags for each possible field
+ enum pflag {
+-   P_PID, P_PPD, P_URR, P_UID, P_URE, P_GRP, P_TTY,
+-   P_PRI, P_NCE,
+-   P_CPN, P_CPU, P_TME, P_TM2,
+-   P_MEM, P_VRT, P_SWP, P_RES, P_COD, P_DAT, P_SHR,
+-   P_FLT, P_DRT,
+-   P_STA, P_CMD, P_WCH, P_FLG
++   EU_PID, EU_PPD, EU_URR, EU_UID, EU_URE, EU_GRP, EU_TTY,
++   EU_PRI, EU_NCE,
++   EU_CPN, EU_CPU, EU_TME, EU_TM2,
++   EU_MEM, EU_VRT, EU_SWP, EU_RES, EU_COD, EU_DAT, EU_SHR,
++   EU_FLT, EU_DRT,
++   EU_STA, EU_CMD, EU_WCH, EU_FLG
+ };
+ 
+ 
+@@ -362,16 +362,16 @@
+ // The default values for the local config file
+ #define DEF_RCFILE { \
+    0, 1, DEF_DELAY, 0, { \
+-   { P_CPU, DEF_WINFLGS, 0, \
++   { EU_CPU, DEF_WINFLGS, 0, \
+       COLOR_RED, COLOR_RED, COLOR_YELLOW, COLOR_RED, \
+       "Def", DEF_FIELDS }, \
+-   { P_PID, DEF_WINFLGS, 0, \
++   { EU_PID, DEF_WINFLGS, 0, \
+       COLOR_CYAN, COLOR_CYAN, COLOR_WHITE, COLOR_CYAN, \
+       "Job", JOB_FIELDS }, \
+-   { P_MEM, DEF_WINFLGS, 0, \
++   { EU_MEM, DEF_WINFLGS, 0, \
+       COLOR_MAGENTA, COLOR_MAGENTA, COLOR_BLUE, COLOR_MAGENTA, \
+       "Mem", MEM_FIELDS }, \
+-   { P_URE, DEF_WINFLGS, 0, \
++   { EU_URE, DEF_WINFLGS, 0, \
+       COLOR_YELLOW, COLOR_YELLOW, COLOR_GREEN, COLOR_YELLOW, \
+       "Usr", USR_FIELDS } \
+    } }
diff --git a/procps.patches/procps-52.patch b/procps.patches/procps-52.patch
new file mode 100644
index 0000000..98aa386
--- /dev/null
+++ b/procps.patches/procps-52.patch
@@ -0,0 +1,14 @@
+diff -aruN a/proc/sysinfo.c b/proc/sysinfo.c
+--- a/proc/sysinfo.c	2008-03-24 12:33:43.000000000 +0800
++++ b/proc/sysinfo.c	2014-11-12 17:25:46.302687988 +0800
+@@ -169,7 +169,9 @@
+     /* If 32-bit or big-endian (not Alpha or ia64), assume HZ is 100. */
+     Hertz = (sizeof(long)==sizeof(int) || htons(999)==999) ? 100UL : 1024UL;
+ #endif
+-    fprintf(stderr, "Unknown HZ value! (%d) Assume %Ld.\n", h, Hertz);
++    // There's a bug that causes this warning. We just comment it out
++    // for F1 build.
++    //fprintf(stderr, "Unknown HZ value! (%d) Assume %Ld.\n", h, Hertz);
+   }
+ }
+ 
diff --git a/procps.patches/procps-53.patch b/procps.patches/procps-53.patch
new file mode 100644
index 0000000..b2b743a
--- /dev/null
+++ b/procps.patches/procps-53.patch
@@ -0,0 +1,12 @@
+diff -Naur a/Makefile b/Makefile
+--- a/Makefile	2015-03-07 10:58:01.112684003 -0800
++++ b/Makefile	2015-03-07 10:59:07.093374104 -0800
+@@ -174,7 +174,7 @@
+ # want this rule first, use := on ALL, and ALL not filled in yet
+ all: do_all
+ 
+--include */module.mk
++-include proc/module.mk ps/module.mk
+ 
+ do_all:    $(ALL)
+ 
diff --git a/procps.tar.gz b/procps.tar.gz
new file mode 100644
index 0000000..18db26d
--- /dev/null
+++ b/procps.tar.gz
Binary files differ
diff --git a/procps.url b/procps.url
new file mode 100644
index 0000000..080480f
--- /dev/null
+++ b/procps.url
@@ -0,0 +1 @@
+http://procps.sourceforge.net/procps-3.2.8.tar.gz
diff --git a/procps.version b/procps.version
new file mode 100644
index 0000000..f092941
--- /dev/null
+++ b/procps.version
@@ -0,0 +1 @@
+3.2.8
