Project import generated by Copybara.

NOKEYCHECK=True
GitOrigin-RevId: 0d3638ffcdf9e514482dcb4451ec5706a2eaf4cd
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