aboutsummaryrefslogtreecommitdiffstats
path: root/editors
diff options
context:
space:
mode:
authorashish <ashish@FreeBSD.org>2011-10-30 23:08:13 +0800
committerashish <ashish@FreeBSD.org>2011-10-30 23:08:13 +0800
commitd0e87c2ecd9c4f01743156b9278c6cb956bfb5e1 (patch)
tree22db4b859fc8ccd156a82aa8f5dadbe4d52fb07a /editors
parent8478394b24b50302ba34c6d7ffb541ff507c66ad (diff)
downloadfreebsd-ports-gnome-d0e87c2ecd9c4f01743156b9278c6cb956bfb5e1.tar.gz
freebsd-ports-gnome-d0e87c2ecd9c4f01743156b9278c6cb956bfb5e1.tar.zst
freebsd-ports-gnome-d0e87c2ecd9c4f01743156b9278c6cb956bfb5e1.zip
- Update to bzr revision 106240
- Remove patches which are now in upstream[1] - Add patch to implement process support for FreeBSD from Emacs bug# 5243[1] PR: ports/161911[1] Submitted by: Nali Toja <nalitoja@gmail.com>[1]
Diffstat (limited to 'editors')
-rw-r--r--editors/emacs-devel/Makefile2
-rw-r--r--editors/emacs-devel/distinfo4
-rw-r--r--editors/emacs-devel/files/patch-configure.in9
-rw-r--r--editors/emacs-devel/files/patch-src_s_freebsd.h25
-rw-r--r--editors/emacs-devel/files/patch-src_sysdep.c237
5 files changed, 240 insertions, 37 deletions
diff --git a/editors/emacs-devel/Makefile b/editors/emacs-devel/Makefile
index 70da2920067f..c34ba95c971a 100644
--- a/editors/emacs-devel/Makefile
+++ b/editors/emacs-devel/Makefile
@@ -27,7 +27,7 @@ CONFLICTS= emacs-19.* emacs-21.* emacs-22.* emacs-23.* \
emacs-nox11-[0-9]*
EMACS_VER= 24.0.90
-EMACS_REV= 106087
+EMACS_REV= 106240
GNU_CONFIGURE= yes
USE_GMAKE= yes
USE_NCURSES= yes
diff --git a/editors/emacs-devel/distinfo b/editors/emacs-devel/distinfo
index 15c49e73f97c..d5fcdba80a9c 100644
--- a/editors/emacs-devel/distinfo
+++ b/editors/emacs-devel/distinfo
@@ -1,2 +1,2 @@
-SHA256 (emacs-24.0.90.106087.tar.xz) = dac2e44e1c32dab7f527b6d9413c8a13ae1d32536c7516667a0fa6fccdaa357c
-SIZE (emacs-24.0.90.106087.tar.xz) = 23349488
+SHA256 (emacs-24.0.90.106240.tar.xz) = afcb6851402e2321599e260b95c1953d01525a65f897c1abd9c5bb1600af590d
+SIZE (emacs-24.0.90.106240.tar.xz) = 23337568
diff --git a/editors/emacs-devel/files/patch-configure.in b/editors/emacs-devel/files/patch-configure.in
index 44b4c36ab072..d5fa248c35a2 100644
--- a/editors/emacs-devel/files/patch-configure.in
+++ b/editors/emacs-devel/files/patch-configure.in
@@ -53,12 +53,3 @@ $FreeBSD$
AC_MSG_CHECKING(if personality LINUX32 can be set)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/personality.h>]], [[personality (PER_LINUX32)]])],
-@@ -1369,7 +1340,7 @@ dnl check for GNU Make if we have GCC an
- if test "$GCC" = yes && test "$ac_enable_autodepend" = yes; then
- AC_MSG_CHECKING([whether we are using GNU Make])
- HAVE_GNU_MAKE=no
-- testval=`make --version 2>/dev/null | grep 'GNU Make'`
-+ testval=`${MAKE:-make} --version 2>/dev/null | grep 'GNU Make'`
- if test "x$testval" != x; then
- HAVE_GNU_MAKE=yes
- else
diff --git a/editors/emacs-devel/files/patch-src_s_freebsd.h b/editors/emacs-devel/files/patch-src_s_freebsd.h
deleted file mode 100644
index c929037bdecc..000000000000
--- a/editors/emacs-devel/files/patch-src_s_freebsd.h
+++ /dev/null
@@ -1,25 +0,0 @@
-
-$FreeBSD$
-
---- src/s/freebsd.h.orig
-+++ src/s/freebsd.h
-@@ -61,3 +61,19 @@
-
- /* Use the GC_MAKE_GCPROS_NOOPS (see lisp.h) method for marking the stack. */
- #define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS
-+
-+#define INTERRUPT_INPUT
-+
-+#define PTY_ITERATION int i; for (i = 0; i < 1; i++)
-+#define PTY_NAME_SPRINTF /* none */
-+#define PTY_TTY_NAME_SPRINTF /* none */
-+#define PTY_OPEN \
-+ do \
-+ { \
-+ int slave; \
-+ if (openpty (&fd, &slave, pty_name, NULL, NULL) == -1) \
-+ fd = -1; \
-+ else \
-+ emacs_close (slave); \
-+ } \
-+ while (0)
diff --git a/editors/emacs-devel/files/patch-src_sysdep.c b/editors/emacs-devel/files/patch-src_sysdep.c
new file mode 100644
index 000000000000..820efd8f1e73
--- /dev/null
+++ b/editors/emacs-devel/files/patch-src_sysdep.c
@@ -0,0 +1,237 @@
+
+$FreeBSD$
+
+--- src/sysdep.c.orig
++++ src/sysdep.c
+@@ -37,6 +37,13 @@
+ #include "sysselect.h"
+ #include "blockinput.h"
+
++#ifdef __FreeBSD__
++#include <sys/sysctl.h>
++#include <sys/user.h>
++#include <sys/resource.h> */
++#include <math.h>
++#endif
++
+ #ifdef WINDOWSNT
+ #define read sys_read
+ #define write sys_write
+@@ -2529,6 +2536,40 @@
+ return proclist;
+ }
+
++#elif defined (__FreeBSD__)
++
++Lisp_Object
++list_system_processes ()
++{
++ int mib[] = {CTL_KERN, KERN_PROC, KERN_PROC_PROC};
++ size_t len;
++ struct kinfo_proc *procs;
++ size_t i;
++
++ struct gcpro gcpro1;
++ Lisp_Object proclist = Qnil;
++
++ if (sysctl (mib, 3, NULL, &len, NULL, 0) != 0)
++ return proclist;
++
++ procs = xmalloc (len);
++ if (sysctl (mib, 3, procs, &len, NULL, 0) != 0)
++ {
++ xfree (procs);
++ return proclist;
++ }
++
++ GCPRO1 (proclist);
++ len /= sizeof (struct kinfo_proc);
++ for (i = 0; i < len; i++)
++ proclist = Fcons (make_fixnum_or_float (procs[i].ki_pid), proclist);
++ UNGCPRO;
++
++ xfree (procs);
++
++ return proclist;
++}
++
+ /* The WINDOWSNT implementation is in w32.c.
+ The MSDOS implementation is in dosfns.c. */
+ #elif !defined (WINDOWSNT) && !defined (MSDOS)
+@@ -3079,6 +3120,176 @@
+ return attrs;
+ }
+
++#elif defined(__FreeBSD__)
++
++Lisp_Object
++system_process_attributes (Lisp_Object pid)
++{
++ int proc_id;
++ int pagesize = getpagesize();
++ int npages;
++ int fscale;
++ struct passwd *pw;
++ struct group *gr;
++ char *ttyname;
++ size_t len;
++ char args[MAXPATHLEN];
++ EMACS_TIME t, now;
++
++ int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_PID};
++ struct kinfo_proc proc;
++ size_t proclen = sizeof(proc);
++
++ struct gcpro gcpro1, gcpro2;
++ Lisp_Object attrs = Qnil;
++ Lisp_Object decoded_comm;
++
++ CHECK_NUMBER_OR_FLOAT (pid);
++ proc_id = FLOATP (pid) ? XFLOAT_DATA (pid) : XINT (pid);
++ mib[3] = proc_id;
++
++ if (sysctl (mib, 4, &proc, &proclen, NULL, 0) != 0)
++ return attrs;
++
++ GCPRO2 (attrs, decoded_comm);
++
++ attrs = Fcons (Fcons (Qeuid, make_fixnum_or_float(proc.ki_uid)), attrs);
++
++ BLOCK_INPUT;
++ pw = getpwuid (proc.ki_uid);
++ UNBLOCK_INPUT;
++ if (pw)
++ attrs = Fcons (Fcons (Quser, build_string (pw->pw_name)), attrs);
++
++ attrs = Fcons (Fcons (Qegid, make_fixnum_or_float(proc.ki_svgid)), attrs);
++
++ BLOCK_INPUT;
++ gr = getgrgid (proc.ki_svgid);
++ UNBLOCK_INPUT;
++ if (gr)
++ attrs = Fcons (Fcons (Qgroup, build_string (gr->gr_name)), attrs);
++
++ decoded_comm = code_convert_string_norecord
++ (make_unibyte_string (proc.ki_comm, strlen (proc.ki_comm)),
++ Vlocale_coding_system, 0);
++
++ attrs = Fcons (Fcons (Qcomm, decoded_comm), attrs);
++ {
++ char state[2] = {'\0', '\0'};
++ switch (proc.ki_stat)
++ {
++ case SRUN:
++ state[0] = 'R';
++ break;
++
++ case SSLEEP:
++ state[0] = 'S';
++ break;
++
++ case SLOCK:
++ state[0] = 'D';
++ break;
++
++ case SZOMB:
++ state[0] = 'Z';
++ break;
++
++ case SSTOP:
++ state[0] = 'T';
++ break;
++ }
++ attrs = Fcons (Fcons (Qstate, build_string (state)), attrs);
++ }
++
++ attrs = Fcons (Fcons (Qppid, make_fixnum_or_float (proc.ki_ppid)), attrs);
++ attrs = Fcons (Fcons (Qpgrp, make_fixnum_or_float (proc.ki_pgid)), attrs);
++ attrs = Fcons (Fcons (Qsess, make_fixnum_or_float (proc.ki_sid)), attrs);
++
++ BLOCK_INPUT;
++ ttyname = proc.ki_tdev == NODEV ? NULL : devname (proc.ki_tdev, S_IFCHR);
++ UNBLOCK_INPUT;
++ if (ttyname)
++ attrs = Fcons (Fcons (Qtty, build_string (ttyname)), attrs);
++
++ attrs = Fcons (Fcons (Qtpgid, make_fixnum_or_float (proc.ki_tpgid)), attrs);
++ attrs = Fcons (Fcons (Qminflt, make_fixnum_or_float (proc.ki_rusage.ru_minflt)), attrs);
++ attrs = Fcons (Fcons (Qmajflt, make_fixnum_or_float (proc.ki_rusage.ru_majflt)), attrs);
++ attrs = Fcons (Fcons (Qcminflt, make_number (proc.ki_rusage_ch.ru_minflt)), attrs);
++ attrs = Fcons (Fcons (Qcmajflt, make_number (proc.ki_rusage_ch.ru_majflt)), attrs);
++
++#define TIMELIST(ts) \
++ list3 (make_number (EMACS_SECS (ts) >> 16 & 0xffff), \
++ make_number (EMACS_SECS (ts) & 0xffff), \
++ make_number (EMACS_USECS (ts)))
++
++ attrs = Fcons (Fcons (Qutime, TIMELIST(proc.ki_rusage.ru_utime)), attrs);
++ attrs = Fcons (Fcons (Qstime, TIMELIST(proc.ki_rusage.ru_stime)), attrs);
++ EMACS_ADD_TIME (t, proc.ki_rusage.ru_utime, proc.ki_rusage.ru_stime);
++ attrs = Fcons (Fcons (Qtime, TIMELIST(t)), attrs);
++
++ attrs = Fcons (Fcons (Qcutime, TIMELIST(proc.ki_rusage_ch.ru_utime)), attrs);
++ attrs = Fcons (Fcons (Qcstime, TIMELIST(proc.ki_rusage_ch.ru_utime)), attrs);
++ EMACS_ADD_TIME (t, proc.ki_rusage_ch.ru_utime, proc.ki_rusage_ch.ru_stime);
++ attrs = Fcons (Fcons (Qctime, TIMELIST(t)), attrs);
++
++ attrs = Fcons (Fcons (Qthcount, make_fixnum_or_float (proc.ki_numthreads)), attrs);
++ attrs = Fcons (Fcons (Qpri, make_number (proc.ki_pri.pri_native)), attrs);
++ attrs = Fcons (Fcons (Qnice, make_number (proc.ki_nice)), attrs);
++ attrs = Fcons (Fcons (Qstart, TIMELIST(proc.ki_start)), attrs);
++ attrs = Fcons (Fcons (Qvsize, make_number (proc.ki_size >> 10)), attrs);
++ attrs = Fcons (Fcons (Qrss, make_number (proc.ki_rssize * pagesize >> 10)), attrs);
++
++ EMACS_GET_TIME (now);
++ EMACS_SUB_TIME (t, now, proc.ki_start);
++ attrs = Fcons (Fcons (Qetime, TIMELIST(t)), attrs);
++
++#undef TIMELIST
++
++ len = sizeof(fscale);
++ if (sysctlbyname ("kern.fscale", &fscale, &len, NULL, 0) == 0)
++ {
++ float pcpu;
++ fixpt_t ccpu;
++ len = sizeof (ccpu);
++ if (sysctlbyname ("kern.ccpu", &ccpu, &len, NULL, 0) == 0)
++ {
++ pcpu = 100.0 * ((double) proc.ki_pctcpu / fscale)
++ / (1.0 - exp(proc.ki_swtime * log((double) ccpu / fscale)));
++ attrs = Fcons (Fcons (Qpcpu, make_fixnum_or_float(pcpu)), attrs);
++ }
++ }
++
++ len = sizeof(npages);
++ if (sysctlbyname ("hw.availpages", &npages, &len, NULL, 0) == 0)
++ {
++ float pmem = proc.ki_flag & P_INMEM
++ ? 100.0 * ((float) proc.ki_rssize / npages)
++ : 0.0;
++ attrs = Fcons (Fcons (Qpmem, make_fixnum_or_float(pmem)), attrs);
++ }
++
++ mib[2] = KERN_PROC_ARGS;
++ len = MAXPATHLEN;
++ if (sysctl (mib, 4, args, &len, NULL, 0) == 0)
++ {
++ int i;
++ for (i = 0; i < len; i++)
++ {
++ if (! args[i] && i < len - 1)
++ args[i] = ' ';
++ }
++
++ decoded_comm = code_convert_string_norecord
++ (make_unibyte_string (args, strlen (args)),
++ Vlocale_coding_system, 0);
++
++ attrs = Fcons (Fcons (Qargs, decoded_comm), attrs);
++ }
++
++ UNGCPRO;
++ return attrs;
++}
++
+ /* The WINDOWSNT implementation is in w32.c.
+ The MSDOS implementation is in dosfns.c. */
+ #elif !defined (WINDOWSNT) && !defined (MSDOS)