[pkg-java] r12834 - in trunk/commons-daemon/debian: . patches

Damien Raude-Morvan drazzib at alioth.debian.org
Wed Jul 28 12:59:47 UTC 2010


Author: drazzib
Date: 2010-07-28 12:59:44 +0000 (Wed, 28 Jul 2010)
New Revision: 12834

Added:
   trunk/commons-daemon/debian/patches/arm_support.diff
   trunk/commons-daemon/debian/patches/hppa_support.diff
   trunk/commons-daemon/debian/patches/kfreebsd_support.diff
   trunk/commons-daemon/debian/patches/libgcj_PR31700.diff
   trunk/commons-daemon/debian/patches/old_capabilities.diff
   trunk/commons-daemon/debian/patches/powerpcspe_support.diff
   trunk/commons-daemon/debian/patches/sh4_support.diff
   trunk/commons-daemon/debian/patches/syslog.diff
Removed:
   trunk/commons-daemon/debian/patches/sh4-support.diff
Modified:
   trunk/commons-daemon/debian/changelog
   trunk/commons-daemon/debian/patches/series
Log:
* Re-add missing patches (lost during merge of new upstream release):
  - debian/patches/syslog.diff: Support for logging to syslog.
  - debian/patches/old_capabilities.diff: Work with older Linux capabilities.
  - debian/patches/libgcj_PR31700.diff: Bug in GCJ handling of -X options.
  - debian/patches/*_support.diff: Support for other Debian architectures.

Modified: trunk/commons-daemon/debian/changelog
===================================================================
--- trunk/commons-daemon/debian/changelog	2010-07-28 12:57:48 UTC (rev 12833)
+++ trunk/commons-daemon/debian/changelog	2010-07-28 12:59:44 UTC (rev 12834)
@@ -1,3 +1,13 @@
+commons-daemon (1.0.2-2) unstable; urgency=low
+
+  * Re-add missing patches (lost during merge of new upstream release):
+    - debian/patches/syslog.diff: Support for logging to syslog.
+    - debian/patches/old_capabilities.diff: Work with older Linux capabilities.
+    - debian/patches/libgcj_PR31700.diff: Bug in GCJ handling of -X options.
+    - debian/patches/*_support.diff: Support for other Debian architectures.
+
+ -- Damien Raude-Morvan <drazzib at debian.org>  Wed, 28 Jul 2010 14:59:18 +0200
+
 commons-daemon (1.0.2-1) unstable; urgency=low
 
   [ Thierry Carrez ]

Added: trunk/commons-daemon/debian/patches/arm_support.diff
===================================================================
--- trunk/commons-daemon/debian/patches/arm_support.diff	                        (rev 0)
+++ trunk/commons-daemon/debian/patches/arm_support.diff	2010-07-28 12:59:44 UTC (rev 12834)
@@ -0,0 +1,14 @@
+Description: Add support for ARM/ARMel arch
+Last-Update: 2010-07-28
+--- a/src/native/unix/support/apsupport.m4
++++ b/src/native/unix/support/apsupport.m4
+@@ -80,6 +80,9 @@
+     ;;
+   esac
+   case $host_cpu in
++  arm*)
++    CFLAGS="$CFLAGS -DCPU=\\\"$host_cpu\\\""
++    HOST_CPU=$host_cpu;;
+   powerpc*)
+     CFLAGS="$CFLAGS -DCPU=\\\"$host_cpu\\\""
+     HOST_CPU=$host_cpu;;

Added: trunk/commons-daemon/debian/patches/hppa_support.diff
===================================================================
--- trunk/commons-daemon/debian/patches/hppa_support.diff	                        (rev 0)
+++ trunk/commons-daemon/debian/patches/hppa_support.diff	2010-07-28 12:59:44 UTC (rev 12834)
@@ -0,0 +1,22 @@
+Description: Fix support for HPPA arch
+Last-Update: 2010-07-28
+--- a/src/native/unix/support/apsupport.m4
++++ b/src/native/unix/support/apsupport.m4
+@@ -107,14 +107,9 @@
+     CFLAGS="$CFLAGS -DCPU=\\\"alpha\\\""
+     supported_os="alpha"
+     HOST_CPU=alpha;;
+-  hppa2.0w)
+-    CFLAGS="$CFLAGS -DCPU=\\\"PA_RISC2.0W\\\""
+-    supported_os="hp-ux"
+-    HOST_CPU=PA_RISC2.0W;;
+-  hppa2.0)
+-    CFLAGS="$CFLAGS -DCPU=\\\"PA_RISC2.0\\\""
+-    supported_os="hp-ux"
+-    HOST_CPU=PA_RISC2.0;;
++  hppa)
++    CFLAGS="$CFLAGS -DCPU=\\\"$host_cpu\\\""
++    HOST_CPU=$host_cpu;;
+   mipsel)
+     CFLAGS="$CFLAGS -DCPU=\\\"mipsel\\\""
+     supported_os="mipsel"

Added: trunk/commons-daemon/debian/patches/kfreebsd_support.diff
===================================================================
--- trunk/commons-daemon/debian/patches/kfreebsd_support.diff	                        (rev 0)
+++ trunk/commons-daemon/debian/patches/kfreebsd_support.diff	2010-07-28 12:59:44 UTC (rev 12834)
@@ -0,0 +1,18 @@
+Description: Add support for kFreeBSD/GNU arch
+Bug: http://bugs.debian.org/498376
+Author: Petr Salinger <Petr.Salinger at seznam.cz>
+Last-Update: 2010-07-28
+--- a/src/native/unix/support/apsupport.m4
++++ b/src/native/unix/support/apsupport.m4
+@@ -69,6 +69,11 @@
+     CFLAGS="$CFLAGS -DOS_AIX -DDSO_DLFCN"
+     LDFLAGS="$LDFLAGS -ldl"
+     ;;
++  kfreebsd*-gnu)
++    CFLAGS="$CFLAGS -DOS_BSD -DDSO_DLFCN -pthread"
++    supported_os="kfreebsd-gnu"
++    LIBS="$LIBS -ldl -lpthread"
++    ;;
+   *)
+     AC_MSG_RESULT([failed])
+     AC_MSG_ERROR([Unsupported operating system "$host_os"])

Added: trunk/commons-daemon/debian/patches/libgcj_PR31700.diff
===================================================================
--- trunk/commons-daemon/debian/patches/libgcj_PR31700.diff	                        (rev 0)
+++ trunk/commons-daemon/debian/patches/libgcj_PR31700.diff	2010-07-28 12:59:44 UTC (rev 12834)
@@ -0,0 +1,15 @@
+Description: Workaround for libgcj/PR31700 in handling -X options.
+Bug: vendor, http://gcc.gnu.org/PR31700
+Author: Marcus Better <marcus at better.se>
+Last-Update: 2010-07-28
+--- a/src/native/unix/native/java.c
++++ b/src/native/unix/native/java.c
+@@ -201,7 +201,7 @@
+         return(false);
+     }
+ #endif
+-    arg.ignoreUnrecognized=FALSE;
++    arg.ignoreUnrecognized=JNI_TRUE;
+     arg.nOptions=args->onum;
+     arg.nOptions++; /* Add abort code */
+     opt=(JavaVMOption *)malloc(arg.nOptions*sizeof(JavaVMOption));

Added: trunk/commons-daemon/debian/patches/old_capabilities.diff
===================================================================
--- trunk/commons-daemon/debian/patches/old_capabilities.diff	                        (rev 0)
+++ trunk/commons-daemon/debian/patches/old_capabilities.diff	2010-07-28 12:59:44 UTC (rev 12834)
@@ -0,0 +1,27 @@
+Description: Patch to handle old capabilities version in jsvc-unix.c
+ Print a useful error message if capabilities module is missing.
+Bug: http://bugs.debian.org/412690
+Bug: http://bugs.debian.org/412478
+Author: Mickael Kock <konqueror at gmx.de>
+Author: Marcus Better <marcus at better.se>
+Last-Update: 2010-07-28
+--- a/src/native/unix/native/jsvc-unix.c
++++ b/src/native/unix/native/jsvc-unix.c
+@@ -171,14 +171,15 @@
+     struct __user_cap_data_struct cap;
+  
+     memset(&caphead, 0, sizeof caphead);
+-    caphead.version = _LINUX_CAPABILITY_VERSION;
++    caphead.version = 0x19980330;
+     caphead.pid = 0;
+     memset(&cap, 0, sizeof cap);
+     cap.effective = caps;
+     cap.permitted = caps;
+     cap.inheritable = caps;
+     if (syscall(__NR_capset, &caphead, &cap) < 0) {
+-        log_error("syscall failed in set_caps");
++        log_error("set_caps: failed to set capabilities");
++        log_error("check that your kernel supports capabilities");
+         return(-1);
+     }
+     return(0);

Added: trunk/commons-daemon/debian/patches/powerpcspe_support.diff
===================================================================
--- trunk/commons-daemon/debian/patches/powerpcspe_support.diff	                        (rev 0)
+++ trunk/commons-daemon/debian/patches/powerpcspe_support.diff	2010-07-28 12:59:44 UTC (rev 12834)
@@ -0,0 +1,13 @@
+Description: Add support for powerpcspe arch
+Last-Update: 2010-07-28
+--- a/src/native/unix/support/apsupport.m4
++++ b/src/native/unix/support/apsupport.m4
+@@ -80,7 +80,7 @@
+     ;;
+   esac
+   case $host_cpu in
+-  powerpc)
++  powerpc*)
+     CFLAGS="$CFLAGS -DCPU=\\\"$host_cpu\\\""
+     HOST_CPU=$host_cpu;;
+   sparc*)

Modified: trunk/commons-daemon/debian/patches/series
===================================================================
--- trunk/commons-daemon/debian/patches/series	2010-07-28 12:57:48 UTC (rev 12833)
+++ trunk/commons-daemon/debian/patches/series	2010-07-28 12:59:44 UTC (rev 12834)
@@ -1 +1,8 @@
-sh4-support.diff
+old_capabilities.diff
+libgcj_PR31700.diff
+sh4_support.diff
+kfreebsd_support.diff
+powerpcspe_support.diff
+hppa_support.diff
+arm_support.diff
+syslog.diff

Deleted: trunk/commons-daemon/debian/patches/sh4-support.diff
===================================================================
--- trunk/commons-daemon/debian/patches/sh4-support.diff	2010-07-28 12:57:48 UTC (rev 12833)
+++ trunk/commons-daemon/debian/patches/sh4-support.diff	2010-07-28 12:59:44 UTC (rev 12834)
@@ -1,18 +0,0 @@
-Description: support Renesas SH4
-Bug: http://bugs.debian.org/564166
-Author: Nobuhiro Iwamatsu <iwamatsu at nigauri.org>
-Author: Damien Raude-Morvan <drazzib at debian.org>
-Last-Update: 2010-07-27
-Forwarded: no
---- a/src/native/unix/support/apsupport.m4
-+++ b/src/native/unix/support/apsupport.m4
-@@ -122,6 +122,9 @@
-     CFLAGS="$CFLAGS -DCPU=\\\"s390\\\""
-     supported_os="s390"
-     HOST_CPU=s390;;
-+  sh*)
-+    CFLAGS="$CFLAGS -DCPU=\\\"$host_cpu\\\""
-+    HOST_CPU=$host_cpu;;
-   *)
-     AC_MSG_RESULT([failed])
-     AC_MSG_ERROR([Unsupported CPU architecture "$host_cpu"]);;

Copied: trunk/commons-daemon/debian/patches/sh4_support.diff (from rev 12828, trunk/commons-daemon/debian/patches/sh4-support.diff)
===================================================================
--- trunk/commons-daemon/debian/patches/sh4_support.diff	                        (rev 0)
+++ trunk/commons-daemon/debian/patches/sh4_support.diff	2010-07-28 12:59:44 UTC (rev 12834)
@@ -0,0 +1,18 @@
+Description: support Renesas SH4
+Bug: http://bugs.debian.org/564166
+Author: Nobuhiro Iwamatsu <iwamatsu at nigauri.org>
+Author: Damien Raude-Morvan <drazzib at debian.org>
+Last-Update: 2010-07-27
+Forwarded: no
+--- a/src/native/unix/support/apsupport.m4
++++ b/src/native/unix/support/apsupport.m4
+@@ -122,6 +122,9 @@
+     CFLAGS="$CFLAGS -DCPU=\\\"s390\\\""
+     supported_os="s390"
+     HOST_CPU=s390;;
++  sh*)
++    CFLAGS="$CFLAGS -DCPU=\\\"$host_cpu\\\""
++    HOST_CPU=$host_cpu;;
+   *)
+     AC_MSG_RESULT([failed])
+     AC_MSG_ERROR([Unsupported CPU architecture "$host_cpu"]);;

Added: trunk/commons-daemon/debian/patches/syslog.diff
===================================================================
--- trunk/commons-daemon/debian/patches/syslog.diff	                        (rev 0)
+++ trunk/commons-daemon/debian/patches/syslog.diff	2010-07-28 12:59:44 UTC (rev 12834)
@@ -0,0 +1,334 @@
+Description: support for redirecting stdout to syslog
+ Unclutter debug and error output by not
+   including timestamp and PID. This is superfluous for syslog logging, and
+   can be readily added by an external filter otherwise.
+ Document SYSLOG usage
+Bug: http://bugs.debian.org/402878
+Author: Marcus Better <marcus at better.se>
+Last-Update: 2010-07-28
+Forwared: no
+--- a/src/native/unix/native/debug.c
++++ b/src/native/unix/native/debug.c
+@@ -15,10 +15,8 @@
+    limitations under the License.
+ */
+ /* @version $Id: debug.c 480469 2006-11-29 08:22:04Z bayard $ */
++#include <stdio.h>
+ #include "jsvc.h"
+-#include <sys/types.h>
+-#include <unistd.h>
+-#include <time.h> 
+ 
+ /* Wether debug is enabled or not */
+ bool log_debug_flag = false;
+@@ -29,19 +27,9 @@
+ /* Dump a debug message to stderr */
+ void log_debug(const char *fmt, ...) {
+     va_list ap;
+-    time_t now;
+-    struct tm *nowtm;
+-    char buff[80];
+ 
+     if (log_debug_flag==false) return;
+-    if (fmt==NULL) return;
+-
+-    now = time(NULL);
+-    nowtm = localtime(&now);
+-    strftime(buff, sizeof(buff), "%d/%m/%Y %T", nowtm);
+-
+     va_start(ap,fmt);
+-    fprintf(stderr,"%s %d %s debug: ", buff,  getpid(), log_prog);
+     vfprintf(stderr,fmt,ap);
+     fprintf(stderr,"\n");
+     fflush(stderr);
+@@ -51,21 +39,11 @@
+ /* Dump an error message to stderr */
+ void log_error(const char *fmt, ...) {
+     va_list ap;
+-    time_t now;
+-    struct tm *nowtm;
+-    char buff[80];
+ 
+     if (fmt==NULL) return;
+-
+-    now = time(NULL);
+-    nowtm = localtime(&now);
+-    strftime(buff, sizeof(buff), "%d/%m/%Y %T", nowtm);
+-
+     va_start(ap,fmt);
+-    fprintf(stderr,"%s %d %s error: ", buff, getpid(), log_prog);
+     vfprintf(stderr,fmt,ap);
+     fprintf(stderr,"\n");
+     fflush(stderr);
+     va_end(ap);
+ }
+-
+--- a/src/native/unix/native/jsvc-unix.c
++++ b/src/native/unix/native/jsvc-unix.c
+@@ -24,8 +24,11 @@
+ #include <sys/wait.h>
+ #include <fcntl.h>
+ #include <stdio.h>
++#include <string.h>
+ #include <pwd.h>
+ #include <grp.h>
++#include <syslog.h>
++#include <errno.h>
+ #ifdef OS_LINUX
+ #include <sys/prctl.h>
+ #include <sys/syscall.h>
+@@ -45,12 +48,17 @@
+ static mode_t envmask; /* mask to create the files */
+ 
+ pid_t controlled=0; /* the child process pid */
++pid_t logger_pid=0;     /* the logger process pid */
+ static bool stopping=false;
+ static bool doreload=false;
+ static void (*handler_int)(int)=NULL;
+ static void (*handler_hup)(int)=NULL;
+ static void (*handler_trm)(int)=NULL;
+ 
++static int run_controller(arg_data *args, home_data *data, uid_t uid,
++                          gid_t gid);
++
++
+ #ifdef OS_CYGWIN
+ /*
+  * File locking routine
+@@ -625,10 +633,62 @@
+     return(freopen(outfile,mode,stream));
+ }
+ 
++#define LOGBUF_SIZE 1024
++
++/* Read from file descriptors. Log to syslog. */
++static int logger_child(int out_fd, int err_fd, char *procname)
++{
++    fd_set rfds;
++    struct timeval tv;
++    int retval, n;
++    char buf[LOGBUF_SIZE];
++
++    if (out_fd > err_fd) {
++        n = out_fd + 1;
++    } else {
++        n = err_fd + 1;
++    }
++
++    openlog(procname, LOG_PID, LOG_DAEMON);
++
++    while (1) {
++        FD_ZERO(&rfds);
++        FD_SET(out_fd, &rfds);
++        FD_SET(err_fd, &rfds);
++        tv.tv_sec = 60;
++        tv.tv_usec = 0;
++        retval = select(n, &rfds, NULL, NULL, &tv);
++        if (retval == -1)
++            syslog(LOG_ERR, "select: %s", strerror(errno));
++        else if (retval) {
++            if (FD_ISSET(out_fd, &rfds)) {
++                ssize_t n = read(out_fd, buf, LOGBUF_SIZE-1);
++                if (n < 0) {
++                    syslog(LOG_ERR, "read: %s", strerror(errno));
++                } else if (n > 0 && buf[0] != '\n') {
++                    buf[n] = 0;
++                    syslog(LOG_INFO, "%s", buf);
++                }
++            }
++            if (FD_ISSET(err_fd, &rfds)) {
++                ssize_t n = read(err_fd, buf, LOGBUF_SIZE-1);
++                if (n < 0) {
++                    syslog(LOG_ERR, "read: %s", strerror(errno));
++                } else if (n > 0 && buf[0] != '\n') {
++                    buf[n] = 0;
++                    syslog(LOG_ERR, "%s", buf);
++                }
++            }
++        }
++    }
++}
++
+ /**
+  *  Redirect stdin, stdout, stderr.
+  */
+-static void set_output(char *outfile, char *errfile, bool redirectstdin) {
++static void set_output(char *outfile, char *errfile, bool redirectstdin, char *procname) {
++    int out_pipe[2] = {0, 0}, err_pipe[2] = {0, 0}, fork_needed = 0;
++
+     if (redirectstdin==true) {
+         freopen("/dev/null", "r", stdin);
+     }
+@@ -643,12 +703,30 @@
+     if(strcmp(outfile, "&2") == 0 && strcmp(errfile,"&1") == 0) {
+       outfile="/dev/null";
+     }
+-    if(strcmp(outfile, "&2") != 0) {
+-      loc_freopen(outfile, "a", stdout);
++    if (strcmp(outfile, "SYSLOG") == 0) {
++        freopen("/dev/null", "a", stdout);
++        /* Send stdout to syslog through a logger process */
++        if (pipe(out_pipe) == -1) {
++            log_error("cannot create stdout pipe: %s",
++                      strerror(errno));
++        } else {
++            fork_needed = 1;
++        }
++    } else if (strcmp(outfile, "&2") != 0) {
++        loc_freopen(outfile, "a", stdout);
+     }
+ 
+-    if(strcmp(errfile,"&1") != 0) {
+-      loc_freopen(errfile, "a", stderr);
++    if (strcmp(errfile, "SYSLOG") == 0) {
++        freopen("/dev/null", "a", stderr);
++        /* Send stderr to syslog through a logger process */
++        if (pipe(err_pipe) == -1) {
++            log_error("cannot create stderr pipe: %s",
++                      strerror(errno));
++        } else {
++            fork_needed = 1;
++        }
++    } else if (strcmp(errfile, "&1") != 0) {
++        loc_freopen(errfile, "a", stderr);
+     } else {
+       close(2);
+       dup(1);
+@@ -657,16 +735,42 @@
+       close(1);
+       dup(2);
+     }
++
++    if (fork_needed) {
++        pid_t pid = fork();
++        if (pid == -1) {
++            log_error("cannot create logger process: %s", strerror(errno));
++        } else {
++            if (pid) {
++                logger_pid = pid;
++                if (out_pipe[0] != 0) {
++                    close(out_pipe[0]);
++                    if (dup2(out_pipe[1], 1) == -1) {
++                        log_error("cannot redirect stdout to pipe for syslog: %s",
++                                  strerror(errno));
++                    }
++                }
++                if (err_pipe[0] != 0) {
++                    close(err_pipe[0]);
++                    if (dup2(err_pipe[1], 2) == -1) {
++                        log_error("cannot redirect stderr to pipe for syslog: %s",
++                                  strerror(errno));
++                    }
++                }
++            } else {
++                exit(logger_child(out_pipe[0], err_pipe[0], procname));
++            }
++        }
++    }
+ }
+ 
+ int main(int argc, char *argv[]) {
+     arg_data *args=NULL;
+     home_data *data=NULL;
+-    int status=0;
+     pid_t pid=0;
+     uid_t uid=0;
+     gid_t gid=0;
+-    time_t laststart;
++    int res;
+ 
+     /* Parse command line arguments */
+     args=arguments(argc,argv);
+@@ -689,7 +793,7 @@
+         return(0);
+     }
+ 
+-#ifdef OS_LINUX
++#if OS_LINUX
+     /* On some UNIX operating systems, we need to REPLACE this current
+        process image with another one (thru execve) to allow the correct
+        loading of VMs (notably this is for Linux). Set, replace, and go. */
+@@ -763,24 +867,39 @@
+     }
+ 
+     envmask = umask(0077);
+-    set_output(args->outfile, args->errfile, args->redirectstdin);
++    set_output(args->outfile, args->errfile, args->redirectstdin, args->procname);
++
++    res = run_controller(args, data, uid, gid);
++    if (logger_pid != 0) {
++        kill(logger_pid, SIGTERM);
++    }
++
++    return res;
++}
++
++static int run_controller(arg_data *args, home_data *data, uid_t uid,
++                          gid_t gid)
++{
++    pid_t pid=0;
+ 
+     /* We have to fork: this process will become the controller and the other
+        will be the child */
+     while ((pid=fork())!=-1) {
++        time_t laststart;
++        int status=0;
+         /* We forked (again), if this is the child, we go on normally */
+         if (pid==0) exit(child(args,data,uid,gid));
+         laststart = time(NULL);
+ 
+         /* We are in the controller, we have to forward all interesting signals
+            to the child, and wait for it to die */
+-        controlled=pid;
++        controlled = pid;
+ #ifdef OS_CYGWIN
+        SetTerm(cygwincontroller);
+ #endif
+-        signal(SIGHUP,controller);
+-        signal(SIGTERM,controller);
+-        signal(SIGINT,controller);
++        signal(SIGHUP, controller);
++        signal(SIGTERM, controller);
++        signal(SIGINT, controller);
+ 
+         while (waitpid(pid,&status,0)!=pid);
+ 
+@@ -830,7 +949,6 @@
+     /* Got out of the loop? A fork() failed then. */
+     log_error("Cannot decouple controller/child processes");
+     return(1);
+-
+ }
+ 
+ void main_reload(void) {
+@@ -842,4 +960,3 @@
+     log_debug("Killing self with TERM signal");
+     kill(controlled,SIGTERM);
+ }
+-
+--- a/src/native/unix/man/jsvc.1.xml
++++ b/src/native/unix/man/jsvc.1.xml
+@@ -146,15 +146,19 @@
+       <varlistentry>
+         <term><option>-outfile</option> /full/path/to/file</term>
+         <listitem>
+-          <para>Location for output from stdout (defaults to /dev/null). Use 
+-            the value '&amp;2' to simulate '1&gt;&amp;2'</para>
++          <para>Location for output from stdout (defaults to
++            /dev/null). Use the value '&amp;2' to simulate
++            '1&gt;&amp;2', or 'SYSLOG' to send output to the system
++            log.</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term><option>-errfile</option> /full/path/to/file</term>
+         <listitem>
+-          <para>Location for output from stderr (defaults to /dev/null). Use 
+-            the value '&amp;1' to simulate '2&gt;&amp;1'</para>
++          <para>Location for output from stderr (defaults to
++            /dev/null). Use the value '&amp;1' to simulate
++            '2&gt;&amp;1', or 'SYSLOG' to send output to the system
++            log.</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>




More information about the pkg-java-commits mailing list