diff --git a/devel/apache-commons-daemon/Makefile b/devel/apache-commons-daemon/Makefile index fc312d9bf328..6663f13d58e6 100644 --- a/devel/apache-commons-daemon/Makefile +++ b/devel/apache-commons-daemon/Makefile @@ -1,42 +1,41 @@ PORTNAME= commons-daemon -DISTVERSION= 1.5.1 -PORTREVISION= 3 +DISTVERSION= 1.6.0 CATEGORIES= devel java -MASTER_SITES= https://archive.apache.org/dist/commons/daemon/source/:src \ - https://archive.apache.org/dist/commons/daemon/binaries/:bin +MASTER_SITES= APACHE_COMMONS_SOURCE:src \ + APACHE_COMMONS_BINARIES:bin PKGNAMEPREFIX= apache- DISTFILES= ${PORTNAME}-${DISTVERSION}-native-src${EXTRACT_SUFX}:src \ ${PORTNAME}-${DISTVERSION}-bin${EXTRACT_SUFX}:bin MAINTAINER= ale@FreeBSD.org COMMENT= Wrapper code to start/stop a Java application as a daemon WWW= https://commons.apache.org/proper/commons-daemon/ LICENSE= APACHE20 -USES= java +USES= autoreconf java JAVA_OS= native GNU_CONFIGURE= yes CONFIGURE_ARGS= --with-java=${JAVA_HOME} WRKSRC= ${WRKDIR}/${DISTNAME}-native-src/unix WRKBIN= ${WRKDIR}/${DISTNAME} PLIST_FILES= bin/jsvc ${JAVAJARDIR}/${PORTNAME}.jar PORTDOCS= * OPTIONS_DEFINE= DOCS do-install: ${INSTALL_PROGRAM} ${WRKSRC}/jsvc ${STAGEDIR}${PREFIX}/bin ${INSTALL_DATA} ${WRKBIN}/${DISTNAME}.jar \ ${STAGEDIR}${JAVAJARDIR}/${PORTNAME}.jar do-install-DOCS-on: ${MKDIR} ${STAGEDIR}${DOCSDIR} ${INSTALL_DATA} ${WRKBIN}/${PORTNAME}-${DISTVERSION}-javadoc.jar \ ${STAGEDIR}${DOCSDIR}/${PORTNAME}-javadoc.jar .include diff --git a/devel/apache-commons-daemon/distinfo b/devel/apache-commons-daemon/distinfo index 9205d1a23d61..c8c68b44b06b 100644 --- a/devel/apache-commons-daemon/distinfo +++ b/devel/apache-commons-daemon/distinfo @@ -1,5 +1,5 @@ -TIMESTAMP = 1766504195 -SHA256 (commons-daemon-1.5.1-native-src.tar.gz) = 0bd16d26bb5ac180c7312d8ad7153a2f06f3ecec8eda78ed22cdfeaa88eaa7c3 -SIZE (commons-daemon-1.5.1-native-src.tar.gz) = 218507 -SHA256 (commons-daemon-1.5.1-bin.tar.gz) = a70fb62f8e7094a2ad374a8a92285f6cec8ffa6f7e9041c6749d96b28bdcc656 -SIZE (commons-daemon-1.5.1-bin.tar.gz) = 474865 +TIMESTAMP = 1780056285 +SHA256 (commons-daemon-1.6.0-native-src.tar.gz) = f5d264c5fa941b07f99d7fd5311a1d780734da8d665815e5889b78655357cb42 +SIZE (commons-daemon-1.6.0-native-src.tar.gz) = 159264 +SHA256 (commons-daemon-1.6.0-bin.tar.gz) = 9a0192b6bc9e732791d8f743123331bcf33a859f54e4cf3c01a71951da028729 +SIZE (commons-daemon-1.6.0-bin.tar.gz) = 283360 diff --git a/devel/apache-commons-daemon/files/patch-native_jsvc-unix.c b/devel/apache-commons-daemon/files/patch-native_jsvc-unix.c index 15f5dfe86db5..a8b9aa4c451f 100644 --- a/devel/apache-commons-daemon/files/patch-native_jsvc-unix.c +++ b/devel/apache-commons-daemon/files/patch-native_jsvc-unix.c @@ -1,112 +1,76 @@ --- native/jsvc-unix.c.orig 2025-12-11 12:00:00 UTC +++ native/jsvc-unix.c -@@ -608,11 +608,12 @@ retry: - return 122; - } - } -- lseek(fd, SEEK_SET, 0); -- pidf = fdopen(fd, "r+"); -- fprintf(pidf, "%d\n", (int)getpid()); -- fflush(pidf); -- fclose(pidf); -+ char buf[32]; -+ int len = snprintf(buf, sizeof(buf), "%d\n", (int)getpid()); -+ lseek(fd, 0, SEEK_SET); -+ ftruncate(fd, 0); -+ write(fd, buf, len); -+ fsync(fd); - if (lockf(fd, F_ULOCK, 0)) { - log_error("check_pid: Failed to unlock PID file [%s] with file descriptor [%d] after reading due to [%d]", - args->pidf, fd, errno); -@@ -673,7 +674,7 @@ static int get_pidf(arg_data *args, bool quiet) - int i; - char buff[80]; - -- fd = open(args->pidf, O_RDONLY, 0); -+ fd = open(args->pidf, O_RDWR, 0); - if (!quiet) - log_debug("get_pidf: %d in %s", fd, args->pidf); - if (fd < 0) { @@ -755,18 +756,13 @@ static int wait_child(arg_data *args, int pid) */ static int wait_child(arg_data *args, int pid) { - int count = 10; + int count = args->wait; bool havejvm = false; int fd; char buff[80]; - int i, status, waittime; + int i, status; log_debug("wait_child %d", pid); - waittime = args->wait / 10; - if (waittime > 10) { - count = waittime; - waittime = 10; - } while (count > 0) { sleep(1); /* check if the controler is still running */ -@@ -778,7 +774,7 @@ static int wait_child(arg_data *args, int pid) - } - - /* check if the pid file process exists */ -- fd = open(args->pidf, O_RDONLY); -+ fd = open(args->pidf, O_RDWR); - if (fd < 0 && havejvm) { - /* something has gone wrong the JVM has stopped */ - return 1; @@ -812,7 +808,6 @@ static int wait_child(arg_data *args, int pid) } } } - sleep(waittime); count--; } /* It takes more than the wait time to start, @@ -946,11 +941,11 @@ static int child(arg_data *args, home_data *data, uid_ create_tmp_file(args); while (!stopping) { #if defined(OSD_POSIX) - java_sleep(60); + java_sleep(1); /* pause(); */ #else /* pause() is not threadsafe */ - sleep(60); + sleep(1); #endif if (doreopen) { doreopen = false; @@ -969,7 +964,7 @@ static int child(arg_data *args, home_data *data, uid_ return 6; if (doreload == true) - ret = 123; + ret = 124; else ret = 0; @@ -1385,10 +1380,10 @@ static int run_controller(arg_data *args, home_data *d if (args->vers != true && args->chck != true && status != 122) remove_pid_file(args, pid); - /* If the child got out with 123 he wants to be restarted */ + /* If the child got out with 123 or 124 he wants to be restarted */ /* See java_abort123 (we use this return code to restart when the JVM aborts) */ if (!stopping) { - if (status == 123) { + if (status == 123 || status == 124) { if (args->restarts == 0) { log_debug("Service failure, restarts disabled"); return 1; @@ -1400,7 +1395,7 @@ static int run_controller(arg_data *args, home_data *d log_debug("Reloading service"); restarts++; /* prevent looping */ - if (laststart + 60 > time(NULL)) { + if (status == 123 && laststart + 60 > time(NULL)) { log_debug("Waiting 60 s to prevent looping"); sleep(60); }