+1
Ah! I figured out my Linux issue.
I had a Java 21 JRE instead of a JDK installed. While that JRE includes the
compiler, it doesn't include the C headers. So, this is what I did:
sudo apt install openjdk-21-jdk
# My JAVA_HOME is the same
sh support/buildconf.sh
./configure
make
and it worked!
I did get a bunch of compiler warnings though:
gcc -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"amd64\" -Wall -Wstrict-prototypes
-I/usr/lib/jvm/java-21-openjdk-amd64/include
-I/usr/lib/jvm/java-21-openjdk-amd64/include/linux -c jsvc-unix.c -o jsvc-unix.o
jsvc-unix.c: In function ‘get_pidf’:
jsvc-unix.c:666:5: warning: ignoring return value of ‘lockf’ declared with
attribute ‘warn_unused_result’ [-Wunused-result]
666 | lockf(fd, F_LOCK, 0);
| ^~~~~~~~~~~~~~~~~~~~
jsvc-unix.c:668:5: warning: ignoring return value of ‘lockf’ declared with
attribute ‘warn_unused_result’ [-Wunused-result]
668 | lockf(fd, F_ULOCK, 0);
| ^~~~~~~~~~~~~~~~~~~~~
jsvc-unix.c: In function ‘wait_child’:
jsvc-unix.c:762:9: warning: ignoring return value of ‘lockf’ declared with
attribute ‘warn_unused_result’ [-Wunused-result]
762 | lockf(fd, F_LOCK, 0);
| ^~~~~~~~~~~~~~~~~~~~
jsvc-unix.c:764:9: warning: ignoring return value of ‘lockf’ declared with
attribute ‘warn_unused_result’ [-Wunused-result]
764 | lockf(fd, F_ULOCK, 0);
| ^~~~~~~~~~~~~~~~~~~~~
jsvc-unix.c: In function ‘set_output’:
jsvc-unix.c:1064:9: warning: ignoring return value of ‘freopen’ declared with
attribute ‘warn_unused_result’ [-Wunused-result]
1064 | freopen("/dev/null", "r", stdin);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
jsvc-unix.c:1075:9: warning: ignoring return value of ‘freopen’ declared with
attribute ‘warn_unused_result’ [-Wunused-result]
1075 | freopen("/dev/null", "a", stdout);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
jsvc-unix.c:1093:9: warning: ignoring return value of ‘freopen’ declared with
attribute ‘warn_unused_result’ [-Wunused-result]
1093 | freopen("/dev/null", "a", stderr);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
jsvc-unix.c: In function ‘check_pid’:
jsvc-unix.c:592:9: warning: ignoring return value of ‘lockf’ declared with
attribute ‘warn_unused_result’ [-Wunused-result]
592 | lockf(fd, F_LOCK, 0);
| ^~~~~~~~~~~~~~~~~~~~
jsvc-unix.c:599:17: warning: ignoring return value of ‘lockf’ declared with
attribute ‘warn_unused_result’ [-Wunused-result]
599 | lockf(fd, F_ULOCK, 0);
| ^~~~~~~~~~~~~~~~~~~~~
jsvc-unix.c:609:9: warning: ignoring return value of ‘lockf’ declared with
attribute ‘warn_unused_result’ [-Wunused-result]
609 | lockf(fd, F_ULOCK, 0);
| ^~~~~~~~~~~~~~~~~~~~~
jsvc-unix.c: In function ‘remove_pid_file’:
jsvc-unix.c:628:5: warning: ignoring return value of ‘lockf’ declared with
attribute ‘warn_unused_result’ [-Wunused-result]
628 | lockf(fd, F_LOCK, 0);
| ^~~~~~~~~~~~~~~~~~~~
jsvc-unix.c:646:5: warning: ignoring return value of ‘lockf’ declared with
attribute ‘warn_unused_result’ [-Wunused-result]
646 | lockf(fd, F_ULOCK, 0);
| ^~~~~~~~~~~~~~~~~~~~~
Then './jsvc -help' prints the proper help.
Gary
On 2025/11/20 20:40:30 "Gary D. Gregory" wrote:
> Hi Mark, Windows looks good. I couldn't build on Linux (see below).
>
> I tested the src zip file
> https://dist.apache.org/repos/dist/dev/commons/daemon/1.5.0-RC3/source/commons-daemon-1.5.0-src.zip
>
> Windows 11; Microsoft Windows [Version 10.0.26100.6899]
>
> Maven build of default goal OK using:
>
> Apache Maven 3.9.11 (3e54c93a704957b63ee3494413a2b544fd3d825b)
> Maven home: C:\java\apache-maven-3.9.11
> Java version: 17.0.16, vendor: Eclipse Adoptium, runtime: C:\Program
> Files\Eclipse Adoptium\jdk-17.0.16.8-hotspot
> Default locale: en_US, platform encoding: Cp1252
> OS name: "windows 11", version: "10.0", arch: "amd64", family: "windows"
>
> On Windows: nmake build of both apps OK using;
>
> nmake: Microsoft (R) Program Maintenance Utility Version 14.50.35718.0
> cl: Microsoft (R) C/C++ Optimizing Compiler Version 19.50.35718 for x64
> link: Microsoft (R) Incremental Linker Version 14.50.35718.0
>
> --
>
> Linux: Linux RS-PF4XYEGD 6.6.87.2-microsoft-standard-WSL2 #1 SMP
> PREEMPT_DYNAMIC Thu Jun 5 18:30:46 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
>
> Oddly, I couldn't build with Maven and Java 21:
>
> [ERROR] Failed to execute goal
> org.apache.maven.plugins:maven-compiler-plugin:3.14.1:compile
> (default-compile) on project commons-daemon: Fatal error compiling: error:
> release version 8 not supported -> [Help 1]
>
> In src/native/unix, is something is missing from INSTALL.txt? Running "make"
> solo doesn't work, but "make -f Makefile.in" almost does:
>
> make -f Makefile.in
> (cd native; make all)
> make[1]: Entering directory
> '/mnt/c/test/commons-daemon-1.5.0-src/src/native/unix/native'
> make[1]: *** No rule to make target 'all'. Stop.
> make[1]: Leaving directory
> '/mnt/c/test/commons-daemon-1.5.0-src/src/native/unix/native'
> make: *** [Makefile.in:23: native/all] Error 2
>
> Using:
>
> make --version
> GNU Make 4.3
> Built for x86_64-pc-linux-gnu
> Copyright (C) 1988-2020 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.
>
> gcc --version
> gcc (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0
> Copyright (C) 2023 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions. There is NO
> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
>
> I installed make and gcc (new laptop), am I missing other tools?
> I started the my review with a "export
> JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64" and I ran "sh
> support/buildconf.sh"
>
> Any ideas?
>
> TY,
> Gary
>
>
> On 2025/11/20 17:00:00 Mark Thomas wrote:
> > We have fixed a few bugs and added enhancements since Apache Commons
> > Daemon 1.4.1 was released, so I would like to release Apache Commons
> > Daemon 1.5.0.
> >
> > Apache Commons Daemon 1.5.0 RC3 is available for review here:
> > https://dist.apache.org/repos/dist/dev/commons/daemon/1.5.0-RC3
> > (svn revision 80878)
> >
> > The Git tag commons-daemon-1.5.0-RC3 commit for this RC is
> > 11a6b3ba70da799cc1c761b32ff707f55cf1b17c which you can browse here:
> >
> > https://gitbox.apache.org/repos/asf?p=commons-daemon.git;a=commit;h=11a6b3ba70da799cc1c761b32ff707f55cf1b17c
> > You may checkout this tag using:
> > git clone https://gitbox.apache.org/repos/asf/commons-daemon.git
> > --branch commons-daemon-1.5.0-RC3 commons-daemon-1.5.0-RC3
> >
> > Maven artifacts are here:
> >
> > https://repository.apache.org/content/repositories/orgapachecommons-1883/commons-daemon/commons-daemon/1.5.0/
> >
> > These are the artifacts and their hashes:
> >
> > commons-daemon-1.5.0.jar=072dabbc1d0708c6ae0eacec9c13deb7ac12894d7ced6e87d9a9df31de40a0d1bd8ba40bc338548821b86d4b9475c781338a02a5cdc6ae709a43e8a5f6515174
> > commons-daemon-1.5.0-bin.tar.gz=2b6365d3301b2bdf71851aa1be8b09f46b082ad93a564fbd1e64d69ad7f607807c45813fad182138150ea69fd231cd3b4812601ce011f42bd145979c005dca1b
> > commons-daemon-1.5.0-bin.zip=47d44a400f43dbb19478d052a442313d20ff82ab5757aad9edfa6a0beeb53b54f4d0babda36aef215579a717a7f3411a39c52048a405597b436050d914663d03
> > commons-daemon-1.5.0-bin-windows.zip=e5d4d94e350d44ca2c9f34f65439bbc663b9d4df6edda10c83d3c8a76522bd3881cb4523152739369c89ec9bdc672c9b456d46ed72e12c366d6be8ba4619575d
> > commons-daemon-1.5.0-native-src.tar.gz=8b3c22912b2fb87e5b8452f62e40d9ca328d33e5ea4db66e32139c341772e8147de300958d2e32b7a6289f0e2f3eb1e2114f10f6dc5c74232cd9f6fa2177a1f8
> > commons-daemon-1.5.0-native-src.zip=987757a2551252aaf68ca2ddfbe531b16d1d02030c4ec513122c841d0c7331be3fc0d64c029525f346c1d47bf5fb15707d77095782b4b763f08d14fbff737341
> > commons-daemon-1.5.0-src.tar.gz=310443f4bf15357fd5c607ce1fa3cde4a3b3d70a75e7fccd9fabff6243537b220bde5515a8a741c133d85fd5cedecc08ac0d2b0ff2ed66c9de9fe78e5ec0bbb6
> > commons-daemon-1.5.0-src.zip=8799990d4bcb9a04ed0a006a64534ab06033c2fc8cb3c5bbc4c9453f5822858880af545fab2e32714684237640cac269d6dd86917e46bec26d82346c5048148f
> >
> >
> > I have tested this with 'mvn' and 'mvn clean install site' using:
> > Apache Maven 3.9.9 (8e8579a9e76f7d015ee5ec7bfcdc97d260186937)
> > Java version: 1.8.0_462, vendor: Temurin
> > Default locale: en_GB, platform encoding: UTF-8
> > OS name: "linux", version: "6.8.0-87-generic", arch: "amd64", family: "unix"
> >
> > Details of changes since 1.4.1 are in the release notes:
> >
> > https://dist.apache.org/repos/dist/dev/commons/daemon/1.5.0-RC3/RELEASE-NOTES.txt
> >
> > https://dist.apache.org/repos/dist/dev/commons/daemon/1.5.0-RC3/site/changes.html
> >
> > Site:
> >
> > https://dist.apache.org/repos/dist/dev/commons/daemon/1.5.0-RC3/site/index.html
> > (note some *relative* links are broken and the 1.5.0 directories
> > are not yet created - these will be OK once the site is deployed.)
> >
> >
> > https://dist.apache.org/repos/dist/dev/commons/daemon/1.5.0-RC3/site/japicmp.html
> >
> > RAT Report:
> >
> > https://dist.apache.org/repos/dist/dev/commons/daemon/1.5.0-RC3/site/rat-report.html
> >
> > KEYS:
> > https://downloads.apache.org/commons/KEYS
> >
> > Please review the release candidate and vote.
> > This vote will close no sooner than 72 hours from now.
> >
> > [ ] +1 Release these artifacts
> > [ ] +0 OK, but...
> > [ ] -0 OK, but really should fix...
> > [ ] -1 I oppose this release because...
> >
> > Thank you,
> >
> > Mark Thomas,
> > Release Manager (using key 10C01C5A2F6059E7)
> >
> >
> > The following is intended as a helper and refresher for reviewers.
> >
> > Validating a release candidate
> > ==============================
> >
> > These guidelines are NOT complete.
> >
> > Requirements: Git, Java, and Maven.
> >
> > You can validate a release from a release candidate (RC) tag as follows.
> >
> > 1a) Download and decompress the source archive from:
> >
> > https://dist.apache.org/repos/dist/dev/commons/daemon/1.5.0-RC3/source
> >
> > 1b) Check out the RC tag from git (optional)
> >
> > This is optional, as a reviewer must check source distributions as a
> > minimum.
> >
> > git clone https://gitbox.apache.org/repos/asf/commons-daemon.git
> > --branch commons-daemon-1.5.0-RC3 commons-daemon-1.5.0-RC3
> > cd commons-daemon-1.5.0-RC3
> >
> > 2) Checking the build
> >
> > All components should include a default Maven goal, such that you can
> > run 'mvn' from the command line by itself.
> >
> > 2) Check Apache licenses
> >
> > This step is not required if the site includes a RAT report page which
> > you then must check.
> > This check should be included in the default Maven build, but you can
> > check it with:
> >
> > mvn apache-rat:check
> >
> > 3) Check binary compatibility
> >
> > This step is not required if the site includes a JApiCmp report page
> > which you then must check.
> > This check should be included in the default Maven build, but you can
> > check it with:
> >
> > mvn verify -DskipTests -P japicmp japicmp:cmp
> >
> > 4) Build the package
> >
> > This check should be included in the default Maven build, but you can
> > check it with:
> >
> > mvn -V clean package
> >
> > You can record the Maven and Java version produced by -V in your VOTE reply.
> > To gather OS information from a command line:
> > Windows: ver
> > Linux: uname -a
> >
> > 4b) Check reproducibility
> >
> > To check that a build is reproducible, run:
> >
> > mvn clean verify artifact:compare -DskipTests
> > -Dreference.repo=https://repository.apache.org/content/repositories/staging/
> >
> > '-Dbuildinfo.ignore=*/*.spdx.json'
> >
> > Note that this excludes SPDX files from the check.
> >
> > 5) Build the site for a single module project
> >
> > Note: Some plugins require the components to be installed instead of
> > packaged.
> >
> > mvn site
> > Check the site reports in:
> > - Windows: target\site\index.html
> > - Linux: target/site/index.html
> >
> > 6) Build the site for a multi-module project
> >
> > mvn site
> > mvn site:stage
> > Check the site reports in:
> > - Windows: target\site\index.html
> > - Linux: target/site/index.html
> >
> > Note that the project reports are created for each module.
> > Modules can be accessed using the 'Project Modules' link under
> > the 'Project Information' menu (see <path-to-site>/modules.html).
> >
> > -the end-
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [email protected]
> > For additional commands, e-mail: [email protected]
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]