[commons-daemon] 23/52: Imported Debian patch 1.0.2-2

Tony Mancill tmancill at moszumanska.debian.org
Wed Nov 12 05:31:30 UTC 2014


This is an automated email from the git hooks/post-receive script.

tmancill pushed a commit to branch master
in repository commons-daemon.

commit b2e13cbb7846105c09a35a8dd5cddd8ff597191f
Author: Damien Raude-Morvan <drazzib at debian.org>
Date:   Wed Jul 28 14:59:18 2010 +0200

    Imported Debian patch 1.0.2-2
---
 debian/changelog                                   |  10 +
 debian/patches/arm_support.diff                    |  14 +
 debian/patches/hppa_support.diff                   |  22 ++
 debian/patches/kfreebsd_support.diff               |  18 ++
 debian/patches/libgcj_PR31700.diff                 |  15 +
 debian/patches/old_capabilities.diff               |  27 ++
 debian/patches/powerpcspe_support.diff             |  13 +
 debian/patches/series                              |   9 +-
 .../patches/{sh4-support.diff => sh4_support.diff} |   0
 debian/patches/syslog.diff                         | 334 +++++++++++++++++++++
 10 files changed, 461 insertions(+), 1 deletion(-)

diff --git a/debian/changelog b/debian/changelog
index 6dd2edf..2226a28 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -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 ]
diff --git a/debian/patches/arm_support.diff b/debian/patches/arm_support.diff
new file mode 100644
index 0000000..8bbe7e7
--- /dev/null
+++ b/debian/patches/arm_support.diff
@@ -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;;
diff --git a/debian/patches/hppa_support.diff b/debian/patches/hppa_support.diff
new file mode 100644
index 0000000..3818bbf
--- /dev/null
+++ b/debian/patches/hppa_support.diff
@@ -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"
diff --git a/debian/patches/kfreebsd_support.diff b/debian/patches/kfreebsd_support.diff
new file mode 100644
index 0000000..44e3bd9
--- /dev/null
+++ b/debian/patches/kfreebsd_support.diff
@@ -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"])
diff --git a/debian/patches/libgcj_PR31700.diff b/debian/patches/libgcj_PR31700.diff
new file mode 100644
index 0000000..36942a6
--- /dev/null
+++ b/debian/patches/libgcj_PR31700.diff
@@ -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));
diff --git a/debian/patches/old_capabilities.diff b/debian/patches/old_capabilities.diff
new file mode 100644
index 0000000..11e4486
--- /dev/null
+++ b/debian/patches/old_capabilities.diff
@@ -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);
diff --git a/debian/patches/powerpcspe_support.diff b/debian/patches/powerpcspe_support.diff
new file mode 100644
index 0000000..f0c9e74
--- /dev/null
+++ b/debian/patches/powerpcspe_support.diff
@@ -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*)
diff --git a/debian/patches/series b/debian/patches/series
index a4197af..56d307c 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -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
diff --git a/debian/patches/sh4-support.diff b/debian/patches/sh4_support.diff
similarity index 100%
rename from debian/patches/sh4-support.diff
rename to debian/patches/sh4_support.diff
diff --git a/debian/patches/syslog.diff b/debian/patches/syslog.diff
new file mode 100644
index 0000000..4e8dd43
--- /dev/null
+++ b/debian/patches/syslog.diff
@@ -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 '&2' to simulate '1>&2'</para>
++          <para>Location for output from stdout (defaults to
++            /dev/null). Use the value '&2' to simulate
++            '1>&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 '&1' to simulate '2>&1'</para>
++          <para>Location for output from stderr (defaults to
++            /dev/null). Use the value '&1' to simulate
++            '2>&1', or 'SYSLOG' to send output to the system
++            log.</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/commons-daemon.git



More information about the pkg-java-commits mailing list