procps: Update from 3.3.12 to 3.3.14

This commit is contained in:
Fredrik Fornwall 2018-05-19 03:50:15 +02:00
parent 99a925b57c
commit 90e0af4ee7
7 changed files with 136 additions and 130 deletions

View File

@ -1,18 +1,18 @@
Bionic lacks strverscmp as well.
diff -u -r ../procps-ng-3.3.12/Makefile.in ./Makefile.in
--- ../procps-ng-3.3.12/Makefile.in 2016-07-10 01:32:11.170237828 -0400
+++ ./Makefile.in 2016-08-14 18:07:17.324636393 -0400
@@ -112,7 +112,7 @@
diff -u -r ../procps-ng-3.3.14/Makefile.in ./Makefile.in
--- ../procps-ng-3.3.14/Makefile.in 2018-04-10 11:40:19.331497997 +0000
+++ ./Makefile.in 2018-05-19 00:15:36.379445979 +0000
@@ -136,7 +136,7 @@
@WITH_NCURSES_TRUE@ watch.1 \
@WITH_NCURSES_TRUE@ top/top.1
-@CYGWIN_TRUE@@WITH_NCURSES_TRUE@am__append_10 = lib/strverscmp.c
+@WITH_NCURSES_TRUE@am__append_10 = lib/strverscmp.c
@BUILD_SKILL_TRUE@am__append_11 = \
@BUILD_SKILL_TRUE@ skill \
@BUILD_SKILL_TRUE@ snice
@@ -308,8 +308,8 @@
-@CYGWIN_TRUE@@WITH_NCURSES_TRUE@am__append_18 = lib/strverscmp.c
+@WITH_NCURSES_TRUE@am__append_18 = lib/strverscmp.c
@CYGWIN_FALSE@@WITH_NCURSES_TRUE@am__append_19 = \
@CYGWIN_FALSE@@WITH_NCURSES_TRUE@ slabtop.1
@@ -356,8 +356,8 @@
tload_DEPENDENCIES = ./proc/libprocps.la $(am__DEPENDENCIES_2)
am__top_top_SOURCES_DIST = top/top.h top/top.c top/top_nls.h \
top/top_nls.c lib/fileutils.c lib/strverscmp.c

View File

@ -1,9 +1,8 @@
TERMUX_PKG_HOMEPAGE=https://packages.debian.org/sid/procps
TERMUX_PKG_DESCRIPTION="Utilities that give information about processes using the /proc filesystem"
TERMUX_PKG_VERSION=3.3.12
TERMUX_PKG_REVISION=1
TERMUX_PKG_VERSION=3.3.14
TERMUX_PKG_SHA256=5eda0253999b7d786e690edfa73301b3113c7a67058478866e98e9ff6736726c
TERMUX_PKG_SRCURL=https://downloads.sourceforge.net/project/procps-ng/Production/procps-ng-${TERMUX_PKG_VERSION}.tar.xz
TERMUX_PKG_SHA256=6ed65ab86318f37904e8f9014415a098bec5bc53653e5d9ab404f95ca5e1a7d4
TERMUX_PKG_BUILD_IN_SRC=yes
# error.h and stdio_ext.h in unified headers does
# not provide any functionality prior to android-23:

View File

@ -1,13 +1,17 @@
diff -u -r ../procps-ng-3.3.9/proc/sysinfo.c ./proc/sysinfo.c
--- ../procps-ng-3.3.9/proc/sysinfo.c 2013-09-11 13:57:56.000000000 +0200
+++ ./proc/sysinfo.c 2014-07-06 08:35:27.678833325 +0200
@@ -86,19 +86,27 @@
diff -u -r ../procps-ng-3.3.14/proc/sysinfo.c ./proc/sysinfo.c
--- ../procps-ng-3.3.14/proc/sysinfo.c 2018-03-03 07:11:55.690869414 +0000
+++ ./proc/sysinfo.c 2018-05-19 00:26:13.944186699 +0000
@@ -103,19 +103,31 @@
/***********************************************************************/
int uptime(double *restrict uptime_secs, double *restrict idle_secs) {
double up=0, idle=0;
+#ifndef __ANDROID__
char *savelocale;
+#endif
+
+ if (uptime_fd == -1 && (uptime_fd = open(UPTIME_FILE, O_RDONLY)) == -1) {
+ return 0;
+ }
FILE_TO_BUF(UPTIME_FILE,uptime_fd);
+#ifndef __ANDROID__
@ -29,7 +33,15 @@ diff -u -r ../procps-ng-3.3.9/proc/sysinfo.c ./proc/sysinfo.c
SET_IF_DESIRED(uptime_secs, up);
SET_IF_DESIRED(idle_secs, idle);
return up; /* assume never be zero seconds in practice */
@@ -174,7 +182,9 @@
@@ -132,6 +144,7 @@
/* /proc/stat can get very large on multi-CPU systems so we
can't use FILE_TO_BUF */
if (!(f = fopen(STAT_FILE, "r"))) {
+ return 0;
fputs(BAD_OPEN_MESSAGE, stderr);
fflush(NULL);
_exit(102);
@@ -191,7 +204,9 @@
double up_1, up_2, seconds;
unsigned long long jiffies;
unsigned h;
@ -39,7 +51,7 @@ diff -u -r ../procps-ng-3.3.9/proc/sysinfo.c ./proc/sysinfo.c
long hz;
#ifdef _SC_CLK_TCK
@@ -185,8 +195,10 @@
@@ -202,8 +217,10 @@
#endif
wait_j = hirq_j = sirq_j = stol_j = 0;
@ -50,7 +62,7 @@ diff -u -r ../procps-ng-3.3.9/proc/sysinfo.c ./proc/sysinfo.c
do{
FILE_TO_BUF(UPTIME_FILE,uptime_fd); sscanf(buf, "%lf", &up_1);
/* uptime(&up_1, NULL); */
@@ -195,8 +207,10 @@
@@ -212,8 +229,10 @@
FILE_TO_BUF(UPTIME_FILE,uptime_fd); sscanf(buf, "%lf", &up_2);
/* uptime(&up_2, NULL); */
} while((long long)( (up_2-up_1)*1000.0/up_1 )); /* want under 0.1% error */
@ -61,13 +73,17 @@ diff -u -r ../procps-ng-3.3.9/proc/sysinfo.c ./proc/sysinfo.c
jiffies = user_j + nice_j + sys_j + other_j + wait_j + hirq_j + sirq_j + stol_j ;
seconds = (up_1 + up_2) / 2;
h = (unsigned)( (double)jiffies/seconds/smp_num_cpus );
@@ -363,18 +377,26 @@
@@ -443,18 +462,30 @@
/***********************************************************************/
void loadavg(double *restrict av1, double *restrict av5, double *restrict av15) {
double avg_1=0, avg_5=0, avg_15=0;
+#ifndef __ANDROID__
char *savelocale;
+#endif
+
+ if (loadavg_fd == -1 && (loadavg_fd = open(LOADAVG_FILE, O_RDONLY)) == -1) {
+ return;
+ }
FILE_TO_BUF(LOADAVG_FILE,loadavg_fd);
+#ifndef __ANDROID__

View File

@ -0,0 +1,33 @@
diff -u -r ../procps-ng-3.3.14/procio.c ./procio.c
--- ../procps-ng-3.3.14/procio.c 2018-04-10 13:26:34.695269068 +0200
+++ ./procio.c 2018-05-19 03:03:48.858822656 +0200
@@ -46,6 +46,7 @@
static ssize_t proc_write(void *, const char *, size_t);
static int proc_close(void *);
+#ifndef __ANDROID__
__extension__
static cookie_io_functions_t procio = {
.read = proc_read,
@@ -53,9 +54,13 @@
.seek = NULL,
.close = proc_close,
};
+#endif
FILE *fprocopen(const char *path, const char *mode)
{
+#ifdef __ANDROID__
+ return fopen(path, mode);
+#else
pcookie_t *cookie = NULL;
FILE *handle = NULL;
mode_t flags = 0;
@@ -144,6 +149,7 @@
}
out:
return handle;
+#endif
}
static

View File

@ -1,6 +1,6 @@
diff -u -r ../procps-ng-3.3.11/sysctl.c ./sysctl.c
--- ../procps-ng-3.3.11/sysctl.c 2015-08-09 01:54:54.306117153 -0400
+++ ./sysctl.c 2016-01-03 21:27:00.921667943 -0500
diff -u -r ../procps-ng-3.3.14/sysctl.c ./sysctl.c
--- ../procps-ng-3.3.14/sysctl.c 2018-03-12 01:59:52.530805100 +0000
+++ ./sysctl.c 2018-05-19 00:31:52.228321968 +0000
@@ -29,7 +29,9 @@
#include <dirent.h>
#include <errno.h>
@ -12,30 +12,21 @@ diff -u -r ../procps-ng-3.3.11/sysctl.c ./sysctl.c
#include <libgen.h>
#include <limits.h>
#include <regex.h>
@@ -491,6 +493,9 @@
@@ -507,6 +509,9 @@
*/
static int Preload(const char *restrict const filename)
{
+#ifdef __ANDROID__
+ return -1;
+#else
char oneline[LINELEN];
char buffer[LINELEN];
FILE *fp;
@@ -567,6 +572,7 @@
fclose(fp);
char *t;
int n = 0;
@@ -596,6 +601,7 @@
}
out:
return rc;
+#endif
}
struct pair {
@@ -816,7 +822,7 @@
program_invocation_short_name);
for ( ; *argv; argv++) {
- if (WriteMode || index(*argv, '='))
+ if (WriteMode || strchr(*argv, '='))
ReturnCode += WriteSetting(*argv);
else
ReturnCode += ReadSetting(*argv);

View File

@ -0,0 +1,59 @@
Ignore Permission denied in several places.
On some Androids many of proc files can't actually be opened. So ignore
when opening fails and go on.
diff -u -r ../procps-ng-3.3.14/top/top.c ./top/top.c
--- ../procps-ng-3.3.14/top/top.c 2018-03-03 07:11:55.698869268 +0000
+++ ./top/top.c 2018-05-19 00:20:58.203786150 +0000
@@ -2558,7 +2558,7 @@
(sorry Linux, but you'll have to close it for us) */
if (!fp) {
if (!(fp = fopen("/proc/stat", "r")))
- error_exit(fmtmk(N_fmt(FAIL_statopn_fmt), strerror(errno)));
+ return;
/* note: we allocate one more CPU_t via totSLOT than 'cpus' so that a
slot can hold tics representing the /proc/stat cpu summary */
Cpu_tics = alloc_c(totSLOT * sizeof(CPU_t));
@@ -4106,7 +4106,7 @@
tmptty.c_cc[VERASE] = *key_backspace;
#ifdef TERMIOS_ONLY
if (-1 == tcsetattr(STDIN_FILENO, TCSAFLUSH, &tmptty))
- error_exit(fmtmk(N_fmt(FAIL_tty_set_fmt), strerror(errno)));
+ {}
tcgetattr(STDIN_FILENO, &Tty_tweaked);
#endif
// lastly, a nearly raw mode for unsolicited single keystrokes
@@ -4114,7 +4114,7 @@
tmptty.c_cc[VMIN] = 1;
tmptty.c_cc[VTIME] = 0;
if (-1 == tcsetattr(STDIN_FILENO, TCSAFLUSH, &tmptty))
- error_exit(fmtmk(N_fmt(FAIL_tty_set_fmt), strerror(errno)));
+ {}
tcgetattr(STDIN_FILENO, &Tty_raw);
#ifndef OFF_STDIOLBF
@@ -5444,7 +5444,7 @@
if (!Numa_node_tot) goto numa_nope;
- if (CHKw(w, View_CPUNOD)) {
+ if (Cpu_tics && CHKw(w, View_CPUNOD)) {
if (Numa_node_sel < 0) {
// display the 1st /proc/stat line, then the nodes (if room)
summary_hlp(&Cpu_tics[smp_num_cpus], N_txt(WORD_allcpus_txt));
@@ -5479,12 +5479,12 @@
}
} else
numa_nope:
- if (CHKw(w, View_CPUSUM)) {
+ if (Cpu_tics && CHKw(w, View_CPUSUM)) {
// display just the 1st /proc/stat line
summary_hlp(&Cpu_tics[Cpu_faux_tot], N_txt(WORD_allcpus_txt));
Msg_row += 1;
- } else {
+ } else if (Cpu_tics) {
// 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), Cpu_tics[i].id);

View File

@ -1,92 +0,0 @@
Ignore Permission denied in several places.
On some Androids many of proc files can't actually be opened. So ignore
when opening fails and go on.
diff '--exclude=config.log' -ur src-orig/proc/sysinfo.c src/proc/sysinfo.c
--- src-orig/proc/sysinfo.c 2017-08-26 23:22:50.704748922 +0200
+++ src/proc/sysinfo.c 2017-08-27 00:08:52.482479053 +0200
@@ -97,6 +97,10 @@
char *savelocale;
#endif
+ if (uptime_fd == -1 && (uptime_fd = open(UPTIME_FILE, O_RDONLY)) == -1) {
+ return 0;
+ }
+
FILE_TO_BUF(UPTIME_FILE,uptime_fd);
#ifndef __ANDROID__
savelocale = strdup(setlocale(LC_NUMERIC, NULL));
@@ -130,6 +136,7 @@
/* /proc/stat can get very large on multi-CPU systems so we
can't use FILE_TO_BUF */
if (!(f = fopen(STAT_FILE, "r"))) {
+ return 0;
fputs(BAD_OPEN_MESSAGE, stderr);
fflush(NULL);
_exit(102);
@@ -389,6 +401,10 @@
char *savelocale;
#endif
+ if (loadavg_fd == -1 && (loadavg_fd = open(LOADAVG_FILE, O_RDONLY)) == -1) {
+ return;
+ }
+
FILE_TO_BUF(LOADAVG_FILE,loadavg_fd);
#ifndef __ANDROID__
savelocale = strdup(setlocale(LC_NUMERIC, NULL));
diff '--exclude=config.log' -ur src-orig/top/top.c src/top/top.c
--- src-orig/top/top.c 2017-08-26 23:22:50.708748956 +0200
+++ src/top/top.c 2017-08-27 00:13:34.416643298 +0200
@@ -2379,7 +2379,7 @@
(sorry Linux, but you'll have to close it for us) */
if (!fp) {
if (!(fp = fopen("/proc/stat", "r")))
- error_exit(fmtmk(N_fmt(FAIL_statopn_fmt), strerror(errno)));
+ return NULL;
/* 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));
@@ -3814,7 +3814,7 @@
tmptty.c_cc[VERASE] = *key_backspace;
#ifdef TERMIOS_ONLY
if (-1 == tcsetattr(STDIN_FILENO, TCSAFLUSH, &tmptty))
- error_exit(fmtmk(N_fmt(FAIL_tty_set_fmt), strerror(errno)));
+ {}
tcgetattr(STDIN_FILENO, &Tty_tweaked);
#endif
// lastly, a nearly raw mode for unsolicited single keystrokes
@@ -3822,7 +3822,7 @@
tmptty.c_cc[VMIN] = 1;
tmptty.c_cc[VTIME] = 0;
if (-1 == tcsetattr(STDIN_FILENO, TCSAFLUSH, &tmptty))
- error_exit(fmtmk(N_fmt(FAIL_tty_set_fmt), strerror(errno)));
+ {}
tcgetattr(STDIN_FILENO, &Tty_raw);
#ifndef OFF_STDIOLBF
@@ -5155,7 +5155,7 @@
#ifndef NUMA_DISABLE
if (!Numa_node_tot) goto numa_nope;
- if (CHKw(w, View_CPUNOD)) {
+ if (smpcpu && 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));
@@ -5191,12 +5191,12 @@
} else
numa_nope:
#endif
- if (CHKw(w, View_CPUSUM)) {
+ if (smpcpu && CHKw(w, View_CPUSUM)) {
// display just the 1st /proc/stat line
summary_hlp(&smpcpu[Cpu_faux_tot], N_txt(WORD_allcpus_txt));
Msg_row += 1;
- } else {
+ } else if (smpcpu) {
// 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);