diff options
author | Akinori MUSHA <knu@FreeBSD.org> | 2010-01-02 16:40:10 +0000 |
---|---|---|
committer | Akinori MUSHA <knu@FreeBSD.org> | 2010-01-02 16:40:10 +0000 |
commit | 4b18243f1f45cec47bddffb80a9c26e17213619a (patch) | |
tree | a876d7547aa1ddcc501a4ed5b6300d53bb899a96 | |
parent | a718302dd524b5e46982c619b62680d24597b469 (diff) | |
download | ports-4b18243f1f45cec47bddffb80a9c26e17213619a.tar.gz ports-4b18243f1f45cec47bddffb80a9c26e17213619a.zip |
Notes
-rw-r--r-- | sysutils/psmisc/Makefile | 3 | ||||
-rw-r--r-- | sysutils/psmisc/distinfo | 6 | ||||
-rw-r--r-- | sysutils/psmisc/files/patch-doc-Makefile.in | 14 | ||||
-rw-r--r-- | sysutils/psmisc/files/patch-src-Makefile.in | 81 | ||||
-rw-r--r-- | sysutils/psmisc/files/patch-src-killall.c | 82 | ||||
-rw-r--r-- | sysutils/psmisc/files/patch-src-pstree.c | 159 |
6 files changed, 156 insertions, 189 deletions
diff --git a/sysutils/psmisc/Makefile b/sysutils/psmisc/Makefile index c345b1861a29..aedbe0295865 100644 --- a/sysutils/psmisc/Makefile +++ b/sysutils/psmisc/Makefile @@ -6,9 +6,10 @@ # PORTNAME= psmisc -PORTVERSION= 21.9 +PORTVERSION= 22.9 CATEGORIES= sysutils MASTER_SITES= SF +MASTER_SITE_SUBDIR= ${PORTNAME}/${PORTNAME} MAINTAINER= ports@FreeBSD.org COMMENT= A port of the Linux pstree, killall and pidof commands diff --git a/sysutils/psmisc/distinfo b/sysutils/psmisc/distinfo index 64fcd98741f0..dd21ae551052 100644 --- a/sysutils/psmisc/distinfo +++ b/sysutils/psmisc/distinfo @@ -1,3 +1,3 @@ -MD5 (psmisc-21.9.tar.gz) = 7b21b6bb1e35e7e68b952e86f85c0a1c -SHA256 (psmisc-21.9.tar.gz) = 90fd6844a4a527021d2ef3efada0fc5384d0778a09dce91ab11effed4ce34a44 -SIZE (psmisc-21.9.tar.gz) = 232172 +MD5 (psmisc-22.9.tar.gz) = c242530de46b951ab10a2237a6048a9c +SHA256 (psmisc-22.9.tar.gz) = c98aef4bc379790229c54c8e7d97b1d1ab898346bfffcde54fcf585a3e353edd +SIZE (psmisc-22.9.tar.gz) = 316530 diff --git a/sysutils/psmisc/files/patch-doc-Makefile.in b/sysutils/psmisc/files/patch-doc-Makefile.in index f1dd45912c33..fdee4bfa7e0f 100644 --- a/sysutils/psmisc/files/patch-doc-Makefile.in +++ b/sysutils/psmisc/files/patch-doc-Makefile.in @@ -1,10 +1,10 @@ ---- doc/Makefile.in.orig Tue May 25 02:55:07 2004 -+++ doc/Makefile.in Sat Sep 10 04:02:32 2005 -@@ -159,7 +159,7 @@ - sharedstatedir = @sharedstatedir@ - sysconfdir = @sysconfdir@ - target_alias = @target_alias@ --man_MANS = fuser.1 killall.1 pstree.1 +--- doc/Makefile.in.orig 2009-12-27 16:19:06.000000000 +0900 ++++ doc/Makefile.in 2010-01-03 00:15:19.879070557 +0900 +@@ -187,7 +187,7 @@ + top_build_prefix = @top_build_prefix@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ +-man_MANS = fuser.1 killall.1 peekfd.1 prtstat.1 pstree.1 +man_MANS = killall.1 pstree.1 EXTRA_DIST = $(man_MANS) all: all-am diff --git a/sysutils/psmisc/files/patch-src-Makefile.in b/sysutils/psmisc/files/patch-src-Makefile.in index f52c0aa937a9..eed0c116d9cd 100644 --- a/sysutils/psmisc/files/patch-src-Makefile.in +++ b/sysutils/psmisc/files/patch-src-Makefile.in @@ -1,62 +1,69 @@ ---- src/Makefile.in.orig Sat Nov 5 05:18:47 2005 -+++ src/Makefile.in Wed Nov 16 17:34:55 2005 -@@ -14,7 +14,7 @@ - - @SET_MAKE@ - --SOURCES = $(fuser_SOURCES) $(killall_SOURCES) $(oldfuser_SOURCES) $(pstree_SOURCES) -+SOURCES = $(killall_SOURCES) $(pstree_SOURCES) - - srcdir = @srcdir@ - top_srcdir = @top_srcdir@ -@@ -38,8 +38,7 @@ +--- src/Makefile.in.orig 2009-12-27 16:19:06.000000000 +0900 ++++ src/Makefile.in 2010-01-03 00:25:56.093987293 +0900 +@@ -34,8 +34,8 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -bin_PROGRAMS = fuser$(EXEEXT) killall$(EXEEXT) pstree$(EXEEXT) \ -- oldfuser$(EXEEXT) -+bin_PROGRAMS = killall$(EXEEXT) pstree$(EXEEXT) - subdir = src - DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in - ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -@@ -75,10 +74,8 @@ +- prtstat$(EXEEXT) $(am__EXEEXT_1) $(am__EXEEXT_2) \ ++bin_PROGRAMS = killall$(EXEEXT) pstree$(EXEEXT) \ ++ $(am__EXEEXT_1) $(am__EXEEXT_2) \ + $(am__EXEEXT_3) + @WANT_PEEKFD_I386_TRUE@am__append_1 = peekfd + @WANT_PEEKFD_I386_TRUE@am__append_2 = -DI386 +@@ -81,10 +81,10 @@ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ --SOURCES = $(fuser_SOURCES) $(killall_SOURCES) $(oldfuser_SOURCES) \ -- $(pstree_SOURCES) --DIST_SOURCES = $(fuser_SOURCES) $(killall_SOURCES) $(oldfuser_SOURCES) \ -- $(pstree_SOURCES) -+SOURCES = $(killall_SOURCES) $(pstree_SOURCES) -+DIST_SOURCES = $(killall_SOURCES) $(pstree_SOURCES) +-SOURCES = $(fuser_SOURCES) $(killall_SOURCES) $(peekfd_SOURCES) \ +- $(prtstat_SOURCES) $(pstree_SOURCES) +-DIST_SOURCES = $(fuser_SOURCES) $(killall_SOURCES) $(peekfd_SOURCES) \ +- $(prtstat_SOURCES) $(pstree_SOURCES) ++SOURCES = $(killall_SOURCES) \ ++ $(pstree_SOURCES) ++DIST_SOURCES = $(killall_SOURCES) \ ++ $(pstree_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -@@ -181,9 +178,8 @@ - oldfuser_SOURCES = oldfuser.c comm.h signals.c signals.h loop.h i18n.h +@@ -208,10 +208,10 @@ + $(am__append_4) $(am__append_6) fuser_SOURCES = fuser.c comm.h signals.c signals.h i18n.h fuser.h killall_SOURCES = killall.c comm.h signals.c signals.h i18n.h -killall_LDADD = @SELINUX_LIB@ ++killall_LDADD = + peekfd_SOURCES = peekfd.c pstree_SOURCES = pstree.c comm.h i18n.h -pstree_LDADD = @TERMCAP_LIB@ @SELINUX_LIB@ +pstree_LDADD = @TERMCAP_LIB@ + prtstat_SOURCES = prtstat.c prtstat.h BUILT_SOURCES = signames.h EXTRA_DIST = signames.c - CLEANFILES = signames.h -@@ -460,12 +456,11 @@ +@@ -537,13 +537,20 @@ signames.h: signames.c Makefile - @CPP@ -dM $< |\ + export LC_ALL=C ; \ +- @CPP@ -dM $< |\ - tr -s '\t ' ' ' | sort -n -k 3 | sed \ -- 's:#define SIG\([A-Z]\+[0-9]*\) \([0-9]\+\) *\(\|/\*.*\)$$:{\ --\2,"\1" },:p;d' | \ +- 's:#define SIG\([A-Z]\+[0-9]*\) \([0-9]\+\) *\(\|/\*.*\)$$:{\ \2,"\1" },:p;d' | \ - grep -v '[0-9][0-9][0-9]' >signames.h || \ -+ sed 's|\t | |g; s| $$||' | sort -n -k 3 |\ -+ grep '^#define SIG[A-Z0-9]* [0-9]*$$'|sed 's|#define SIG||'|\ -+ awk '{print "{" $$2 ",\"" $$1 "\" },"}' >signames.h || \ - { rm -f signames.h; exit 1; } +- { rm -f signames.h; exit 1; } - grep '^{ 1,"HUP" },$$' signames.h >/dev/null || \ -+ grep '^{1,"HUP" },$$' signames.h >/dev/null || \ - { rm -f signames.h; exit 1; } +- { rm -f signames.h; exit 1; } ++ @CPP@ -dM $< | {\ ++ signames=`kill -l | tr a-z A-Z`; \ ++ while read define name value; do \ ++ [ "$$define" = '#define' ] || continue; \ ++ case "$$value" in \ ++ *[!0-9]*) continue; \ ++ esac; \ ++ for signame in $$signames; do \ ++ if [ "$$name" = "SIG$$signame" ]; then \ ++ echo "{ $$value, \"$$signame\" },"; \ ++ fi; \ ++ done; \ ++ done; \ ++ } | sort -n -k 2 > signames.h install-exec-hook: + cd $(DESTDIR)$(bindir) && \ diff --git a/sysutils/psmisc/files/patch-src-killall.c b/sysutils/psmisc/files/patch-src-killall.c index d46b89de24dd..e3bca3537c43 100644 --- a/sysutils/psmisc/files/patch-src-killall.c +++ b/sysutils/psmisc/files/patch-src-killall.c @@ -1,15 +1,24 @@ ---- src/killall.c.orig Thu Dec 1 22:32:19 2005 -+++ src/killall.c Thu Jan 5 23:32:33 2006 -@@ -59,35 +59,31 @@ - quiet = 0, wait_until_dead = 0, process_group = 0, +--- src/killall.c.orig 2009-12-18 21:45:36.000000000 +0900 ++++ src/killall.c 2010-01-03 00:37:34.818411284 +0900 +@@ -36,6 +36,8 @@ + #include <dirent.h> + #include <signal.h> + #include <errno.h> ++#include <limits.h> ++#include <locale.h> + #include <sys/types.h> + #include <sys/stat.h> + #include <getopt.h> +@@ -83,40 +85,35 @@ ignore_case = 0, pidof; + static long younger_than = 0, older_than = 0; -+/* -+ * This is the implementation from 21.5, as the one in 21.6 and newer uses -+ * Linux specific functions getline() and rpmatch() -+ */ ++ /* ++ * This is based on the implementation from 21.5, as the one in 21.6 ++ * and newer uses Linux specific functions getline() and rpmatch() ++ */ static int - ask (char *name, pid_t pid) + ask (char *name, pid_t pid, const int signal) { - int res; - size_t len; @@ -19,8 +28,14 @@ - len = 0; - - do { -- printf (_("Kill %s(%s%d) ? (y/N) "), name, process_group ? "pgid " : "", -- pid); +- if (signal == SIGTERM) +- printf (_("Kill %s(%s%d) ? (y/N) "), name, process_group ? "pgid " : "", +- pid); +- else +- printf (_("Signal %s(%s%d) ? (y/N) "), name, process_group ? "pgid " : "", +- pid); ++ int ch, c; + - fflush (stdout); - - if (getline (&line, &len, stdin) < 0) @@ -34,12 +49,14 @@ - if (res >= 0) { - free(line); - return res; -+ int ch, c; -+ + do + { -+ printf (_("Kill %s(%s%d) ? (y/n) "), name, process_group ? "pgid " : "", -+ pid); ++ if (signal == SIGTERM) ++ printf (_("Kill %s(%s%d) ? (y/N) "), name, process_group ? "pgid " : "", ++ pid); ++ else ++ printf (_("Signal %s(%s%d) ? (y/N) "), name, process_group ? "pgid " : "", ++ pid); + fflush (stdout); + do + if ((ch = getchar ()) == EOF) @@ -56,8 +73,8 @@ + return ch == 'y' || ch == 'Y'; } - static int -@@ -267,7 +263,7 @@ + static double +@@ -356,7 +353,7 @@ } #endif /*WITH_SELINUX*/ /* load process name */ @@ -66,15 +83,16 @@ continue; if (!(file = fopen (path, "r"))) { -@@ -275,72 +271,13 @@ +@@ -364,7 +361,7 @@ continue; } free (path); - okay = fscanf (file, "%*d (%15[^)]", comm) == 1; + okay = fscanf (file, "%s", comm) == 1; - (void) fclose (file); - if (!okay) + if (!okay) { + fclose(file); continue; +@@ -386,65 +383,6 @@ got_long = 0; command = NULL; /* make gcc happy */ length = strlen (comm); @@ -140,21 +158,21 @@ /* mach by process name */ for (j = 0; j < names; j++) { -@@ -372,7 +309,7 @@ - } - else +@@ -495,7 +433,7 @@ { + int ok = 1; + - if (asprintf (&path, PROC_BASE "/%d/exe", pid_table[i]) < 0) + if (asprintf (&path, PROC_BASE "/%d/file", pid_table[i]) < 0) continue; if (stat (path, &st) < 0) -@@ -697,7 +634,7 @@ - fprintf (stderr, _("Maximum number of names is %d\n"), MAX_NAMES); - exit (1); - } -- if (stat("/proc/self/stat", &isproc)==-1) -+ if (stat("/proc/curproc/status", &isproc)==-1) - { - fprintf (stderr, _("%s is empty (not mounted ?)\n"), PROC_BASE); - exit (1); +@@ -842,7 +780,7 @@ + fprintf (stderr, _("Maximum number of names is %d\n"), MAX_NAMES); + exit (1); + } +- if (stat("/proc/self/stat", &isproc)==-1) { ++ if (stat("/proc/curproc/status", &isproc)==-1) { + fprintf (stderr, _("%s is empty (not mounted ?)\n"), PROC_BASE); + exit (1); + } diff --git a/sysutils/psmisc/files/patch-src-pstree.c b/sysutils/psmisc/files/patch-src-pstree.c index 491e921c5aa2..bcc6128f60e8 100644 --- a/sysutils/psmisc/files/patch-src-pstree.c +++ b/sysutils/psmisc/files/patch-src-pstree.c @@ -1,109 +1,50 @@ ---- src/pstree.c.orig Fri Nov 25 23:14:48 2005 -+++ src/pstree.c Thu Jan 5 23:34:36 2006 -@@ -590,7 +590,7 @@ - { - if (!(path = malloc (strlen (PROC_BASE) + strlen (de->d_name) + 10))) - exit (2); -- sprintf (path, "%s/%d/stat", PROC_BASE, pid); -+ sprintf (path, "%s/%d/status", PROC_BASE, pid); - if ((file = fopen (path, "r")) != NULL) - { - empty = 0; -@@ -608,95 +608,8 @@ - perror (path); - exit (1); - } -- fread(readbuf, BUFSIZ, 1, file) ; -- if (ferror(file) == 0) -- { -- memset(comm, '\0', COMM_LEN+1); -- tmpptr = strrchr(readbuf, ')'); /* find last ) */ -- /* We now have readbuf with pid and cmd, and tmpptr+2 -- * with the rest */ -- /*printf("readbuf: %s\n", readbuf);*/ -- if (sscanf(readbuf, "%*d (%15[^)]", comm) == 1) -- { -- /*printf("tmpptr: %s\n", tmpptr+2);*/ -- if (sscanf(tmpptr+2, "%*c %d", &ppid) == 1) -- { --/* -- if (fscanf -- (file, "%d (%s) %c %d", &dummy, comm, (char *) &dummy, -- &ppid) == 4) -- */ -- { -- DIR *taskdir; -- struct dirent *dt; -- char *taskpath; -- char *threadname; -- int thread; -- -- if (!(taskpath = malloc(strlen(path) + 10))) { -- exit (2); -- } -- sprintf (taskpath, "%s/task", path); -- -- if ((taskdir=opendir(taskpath))!=0) { -- /* if we have this dir, we're on 2.6 */ -- if (!(threadname = malloc(strlen(comm) + 3))) { -- exit (2); -- } -- sprintf(threadname,"{%s}",comm); -- while ((dt = readdir(taskdir)) != NULL) { -- if ((thread=atoi(dt->d_name)) !=0) { -- if (thread != pid) { --#ifdef WITH_SELINUX -- if (print_args) -- add_proc(threadname, thread, pid, st.st_uid, threadname, strlen(threadname)+1, scontext); -- else -- add_proc(threadname, thread, pid, st.st_uid, NULL, 0, scontext); --#else /*WITH_SELINUX*/ -- if (print_args) -- add_proc(threadname, thread, pid, st.st_uid, threadname, strlen(threadname)+1); -- else -- add_proc(threadname, thread, pid, st.st_uid, NULL, 0); --#endif /*WITH_SELINUX*/ -- } -- } -- } -- free(threadname); -- (void) closedir(taskdir); -- } -- free(taskpath); -- } -- -- if (!print_args) --#ifdef WITH_SELINUX -- add_proc(comm, pid, ppid, st.st_uid, NULL, 0, scontext); --#else /*WITH_SELINUX*/ -- add_proc (comm, pid, ppid, st.st_uid, NULL, 0); --#endif /*WITH_SELINUX*/ -- else -- { -- sprintf (path, "%s/%d/cmdline", PROC_BASE, pid); -- if ((fd = open (path, O_RDONLY)) < 0) -- { -- perror (path); -- exit (1); -- } -- if ((size = read (fd, buffer, (size_t) output_width)) < 0) -- { -- perror (path); -- exit (1); -- } -- (void) close (fd); -- if (size) -- buffer[size++] = 0; --#ifdef WITH_SELINUX -- add_proc(comm, pid, ppid, st.st_uid, buffer, size, scontext); --#else /*WITH_SELINUX*/ -- add_proc (comm, pid, ppid, st.st_uid, buffer, size); --#endif /*WITH_SELINUX*/ -- } -- } -- } -+ if (fscanf(file, "%s %*d %d", comm, &ppid) == 2) { -+ add_proc(comm,pid,ppid,st.st_uid,NULL,0); - } - (void) fclose (file); - } +--- src/pstree.c.orig 2009-12-27 15:46:47.000000000 +0900 ++++ src/pstree.c 2010-01-03 00:52:21.437862505 +0900 +@@ -37,6 +37,7 @@ + #include <term.h> + #include <termios.h> + #include <langinfo.h> ++#include <limits.h> + #include <assert.h> + #include <sys/types.h> + #include <sys/stat.h> +@@ -590,7 +591,11 @@ + struct dirent *de; + FILE *file; + struct stat st; ++#ifdef __FreeBSD__ ++ char *path, comm[COMM_LEN + 1]; ++#else + char *path, *comm; ++#endif + char *buffer; + size_t buffer_size; + char readbuf[BUFSIZ + 1]; +@@ -623,7 +628,7 @@ + if ((pid = (pid_t) atoi(de->d_name)) != 0) { + if (! (path = malloc(strlen(PROC_BASE) + strlen(de->d_name) + 10))) + exit(2); +- sprintf(path, "%s/%d/stat", PROC_BASE, pid); ++ sprintf (path, "%s/%d/status", PROC_BASE, pid); + if ((file = fopen(path, "r")) != NULL) { + empty = 0; + sprintf(path, "%s/%d", PROC_BASE, pid); +@@ -638,6 +643,10 @@ + perror(path); + exit(1); + } ++#ifdef __FreeBSD__ ++ if (fscanf(file, "%s %*d %d", comm, &ppid) == 2) ++ add_proc(comm, pid, ppid, st.st_uid, NULL, 0, 0); ++#else + size = fread(readbuf, 1, BUFSIZ, file); + if (ferror(file) == 0) { + readbuf[size] = 0; +@@ -725,6 +734,7 @@ + } + } + } ++#endif /*__FreeBSD__*/ + (void) fclose(file); + } + free(path); |