Re: [Rd] r-base: FTBFS: Add "${boot_path}/zero" for OpenJDK zero build

2025-04-17 Thread Simon Urbanek
Dandan,

thanks! Dirk reported it as

https://bugs.r-project.org/show_bug.cgi?id=18884

and it should be fixed in R-devel r88154 - please confirm if it works for you 
and if it does, I'll port it to R 4.5.0 Patched.

Cheers,
Simon


> On Apr 17, 2025, at 3:40 PM, zhangdandan  wrote:
> 
> Source: r-base
> Version: 4.5.0-1
> Severity: normal
> Tags: FTBFS patch
> User: debian-loonga...@lists.debian.org
> Usertags: loong64
> 
> Hi maintainers,
> 
> Compiling the rjava 1.0-11-1 failed for loong64 in the Debian Package 
> Auto-Building environment.
> The build error log(build error on 10 architectures)  is as follows,
> ```
> checking whether sigsetjmp is declared... yes
> checking whether siglongjmp is declared... yes
> checking Java support in R... present:
> interpreter : '/usr/lib/jvm/default-java/bin/java'
> archiver: '/usr/lib/jvm/default-java/bin/jar'
> compiler: '/usr/lib/jvm/default-java/bin/javac'
> header prep.: ''
> cpp flags   : ''
> java libs   : ''
> configure: error: One or more Java configuration variables are not set.
> ```
> The full log of rjava can be found at
> https://buildd.debian.org/status/package.php?p=rjava&suite=sid
> https://buildd.debian.org/status/fetch.php?pkg=rjava&arch=loong64&ver=1.0-11-2&stamp=1744704288&raw=0
> 
> After analysis, the reason is that libjvm.so is not found when compiling 
> rjava(depend r-base).
> For loong64 or other architectures(build zero in openjdk-21), libjvm.so was 
> supported in /usr/lib/jvm/default-java/lib/zero/ [1][2], not 
> /usr/lib/jvm/default-java/lib/server/.
> So we need to add "${boot_path}/zero" for OpenJDK zero build in r-base source 
> package.
> 
> Please consider the patch I attached for r-base.
> I have built r-base successfully in my local ENV.
> The result of my local test command `R CMD javareconf`, JNI linker flags can 
> be found normally for OpenJDK zero build:
> ```
> # R CMD javareconf
> Java interpreter : /usr/lib/jvm/default-java/bin/java
> Java version : 21.0.6
> Java home path   : /usr/lib/jvm/default-java
> Java compiler: /usr/lib/jvm/default-java/bin/javac
> Java headers gen.:
> Java archive tool: /usr/lib/jvm/default-java/bin/jar
> 
> trying to compile and link a JNI program
> detected JNI cpp flags: -I$(JAVA_HOME)/include 
> -I$(JAVA_HOME)/include/linux
> detected JNI linker flags : -L$(JAVA_HOME)/lib/zero -ljvm
> ..
> JAVA_HOME: /usr/lib/jvm/default-java
> Java library path: $(JAVA_HOME)/lib/zero
> JNI cpp flags: -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux
> JNI linker flags : -L$(JAVA_HOME)/lib/zero -ljvm
> Updating Java configuration in /usr/lib/R
> Done.
> ```
> 
> Based on my local r-base (r-base-core_4.5.0-1+loong64.1_loong64.deb), rjava 
> is built successfully.
> ```
> checking whether siglongjmp is declared... yes
> checking Java support in R... present:
> interpreter : '/usr/lib/jvm/default-java/bin/java'
> archiver: '/usr/lib/jvm/default-java/bin/jar'
> compiler: '/usr/lib/jvm/default-java/bin/javac'
> header prep.: ''
> cpp flags   : '-I/usr/lib/jvm/default-java/include 
> -I/usr/lib/jvm/default-java/include/linux'
> java libs   : '-L/usr/lib/jvm/default-java/lib/zero -ljvm'
> checking whether Java run-time works... yes
> ..
>dh_builddeb -O--buildsystem=R
> dpkg-deb: building package 'r-cran-rjava' in 
> '../r-cran-rjava_1.0-11-1_loong64.deb'.
> dpkg-deb: building package 'r-cran-rjava-dbgsym' in 
> '../r-cran-rjava-dbgsym_1.0-11-1_loong64.deb'.
>  dpkg-genbuildinfo -O../rjava_1.0-11-1_loong64.buildinfo
>  dpkg-genchanges -O../rjava_1.0-11-1_loong64.changes
> ```
> 
> BTW, I do not find the link how to contribute patch(submit pull request) via 
> GITHUB to R source code upstream(https://contributor.r-project.org/).
> So I submitted this patch to debian r-base source package first and Cc 
> upstream's r-devel@r-project.org..
> Could you add the patch "Add "${boot_path}/zero" for OpenJDK zero build" in 
> the next upload?
> Your opinions are welcome.
> 
> [1]: https://github.com/openjdk/jdk/pull/5440
> [2]: https://github.com/openjdk/jdk/pull/4787
> 
> Thanks,
> Dandan Zhang
> 
> __
> R-devel@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel


[[alternative HTML version deleted]]

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


Re: [Rd] r-base: FTBFS: Add "${boot_path}/zero" for OpenJDK zero build

2025-04-17 Thread Dirk Eddelbuettel


On 17 April 2025 at 11:40, zhangdandan wrote:
| Source: r-base
| Version: 4.5.0-1
| Severity: normal
| Tags: FTBFS patch
| User: debian-loonga...@lists.debian.org
| Usertags: loong64
| 
| Hi maintainers,
| 
| Compiling the rjava 1.0-11-1 failed for loong64 in the Debian Package 
| Auto-Building environment.
| The build error log(build error on 10 architectures)  is as follows,
| ```
| checking whether sigsetjmp is declared... yes
| checking whether siglongjmp is declared... yes
| checking Java support in R... present:
| interpreter : '/usr/lib/jvm/default-java/bin/java'
| archiver    : '/usr/lib/jvm/default-java/bin/jar'
| compiler    : '/usr/lib/jvm/default-java/bin/javac'
| header prep.: ''
| cpp flags   : ''
| java libs   : ''
| configure: error: One or more Java configuration variables are not set.
| ```
| The full log of rjava can be found at
| https://buildd.debian.org/status/package.php?p=rjava&suite=sid
| 
https://buildd.debian.org/status/fetch.php?pkg=rjava&arch=loong64&ver=1.0-11-2&stamp=1744704288&raw=0
| 
| After analysis, the reason is that libjvm.so is not found when compiling 
| rjava(depend r-base).
| For loong64 or other architectures(build zero in openjdk-21), libjvm.so 
| was supported in /usr/lib/jvm/default-java/lib/zero/ [1][2], not 
| /usr/lib/jvm/default-java/lib/server/.
| So we need to add "${boot_path}/zero" for OpenJDK zero build in r-base 
| source package.

Superb. Thank you so much. I will fold this in, and report it upstream.
 
| Please consider the patch I attached for r-base.
| I have built r-base successfully in my local ENV.
| The result of my local test command `R CMD javareconf`, JNI linker flags 
| can be found normally for OpenJDK zero build:
| ```
| # R CMD javareconf
| Java interpreter : /usr/lib/jvm/default-java/bin/java
| Java version : 21.0.6
| Java home path   : /usr/lib/jvm/default-java
| Java compiler    : /usr/lib/jvm/default-java/bin/javac
| Java headers gen.:
| Java archive tool: /usr/lib/jvm/default-java/bin/jar
| 
| trying to compile and link a JNI program
| detected JNI cpp flags    : -I$(JAVA_HOME)/include 
| -I$(JAVA_HOME)/include/linux
| detected JNI linker flags : -L$(JAVA_HOME)/lib/zero -ljvm
| ..
| JAVA_HOME    : /usr/lib/jvm/default-java
| Java library path: $(JAVA_HOME)/lib/zero
| JNI cpp flags    : -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux
| JNI linker flags : -L$(JAVA_HOME)/lib/zero -ljvm
| Updating Java configuration in /usr/lib/R
| Done.
| ```
| 
| Based on my local r-base (r-base-core_4.5.0-1+loong64.1_loong64.deb), 
| rjava is built successfully.
| ```
| checking whether siglongjmp is declared... yes
| checking Java support in R... present:
| interpreter : '/usr/lib/jvm/default-java/bin/java'
| archiver    : '/usr/lib/jvm/default-java/bin/jar'
| compiler    : '/usr/lib/jvm/default-java/bin/javac'
| header prep.: ''
| cpp flags   : '-I/usr/lib/jvm/default-java/include 
| -I/usr/lib/jvm/default-java/include/linux'
| java libs   : '-L/usr/lib/jvm/default-java/lib/zero -ljvm'
| checking whether Java run-time works... yes
| ..
|     dh_builddeb -O--buildsystem=R
| dpkg-deb: building package 'r-cran-rjava' in 
| '../r-cran-rjava_1.0-11-1_loong64.deb'.
| dpkg-deb: building package 'r-cran-rjava-dbgsym' in 
| '../r-cran-rjava-dbgsym_1.0-11-1_loong64.deb'.
|   dpkg-genbuildinfo -O../rjava_1.0-11-1_loong64.buildinfo
|   dpkg-genchanges -O../rjava_1.0-11-1_loong64.changes
| ```
| 
| BTW, I do not find the link how to contribute patch(submit pull request) 
| via GITHUB to R source code upstream(https://contributor.r-project.org/).
| So I submitted this patch to debian r-base source package first and Cc 
| upstream's r-devel@r-project.org..

Upstream uses svn and a bugzille instance at https://bugs.r-project.org/ for
which one needs an account (spam :-/ ) -- I have one and will file it there
and of course give you credit for it.

Best, Dirk

| Could you add the patch "Add "${boot_path}/zero" for OpenJDK zero build" 
| in the next upload?
| Your opinions are welcome.
| 
| [1]: https://github.com/openjdk/jdk/pull/5440
| [2]: https://github.com/openjdk/jdk/pull/4787
| 
| Thanks,
| Dandan Zhang
| 
| x[DELETED ATTACHMENT r-base-add-the-path-of-libjvm.so-for-zero-build.patch, 
text/x-patch]

-- 
dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


[Rd] r-base: FTBFS: Add "${boot_path}/zero" for OpenJDK zero build

2025-04-17 Thread zhangdandan

Source: r-base
Version: 4.5.0-1
Severity: normal
Tags: FTBFS patch
User: debian-loonga...@lists.debian.org
Usertags: loong64

Hi maintainers,

Compiling the rjava 1.0-11-1 failed for loong64 in the Debian Package 
Auto-Building environment.

The build error log(build error on 10 architectures)  is as follows,
```
checking whether sigsetjmp is declared... yes
checking whether siglongjmp is declared... yes
checking Java support in R... present:
interpreter : '/usr/lib/jvm/default-java/bin/java'
archiver    : '/usr/lib/jvm/default-java/bin/jar'
compiler    : '/usr/lib/jvm/default-java/bin/javac'
header prep.: ''
cpp flags   : ''
java libs   : ''
configure: error: One or more Java configuration variables are not set.
```
The full log of rjava can be found at
https://buildd.debian.org/status/package.php?p=rjava&suite=sid
https://buildd.debian.org/status/fetch.php?pkg=rjava&arch=loong64&ver=1.0-11-2&stamp=1744704288&raw=0

After analysis, the reason is that libjvm.so is not found when compiling 
rjava(depend r-base).
For loong64 or other architectures(build zero in openjdk-21), libjvm.so 
was supported in /usr/lib/jvm/default-java/lib/zero/ [1][2], not 
/usr/lib/jvm/default-java/lib/server/.
So we need to add "${boot_path}/zero" for OpenJDK zero build in r-base 
source package.


Please consider the patch I attached for r-base.
I have built r-base successfully in my local ENV.
The result of my local test command `R CMD javareconf`, JNI linker flags 
can be found normally for OpenJDK zero build:

```
# R CMD javareconf
Java interpreter : /usr/lib/jvm/default-java/bin/java
Java version : 21.0.6
Java home path   : /usr/lib/jvm/default-java
Java compiler    : /usr/lib/jvm/default-java/bin/javac
Java headers gen.:
Java archive tool: /usr/lib/jvm/default-java/bin/jar

trying to compile and link a JNI program
detected JNI cpp flags    : -I$(JAVA_HOME)/include 
-I$(JAVA_HOME)/include/linux

detected JNI linker flags : -L$(JAVA_HOME)/lib/zero -ljvm
..
JAVA_HOME    : /usr/lib/jvm/default-java
Java library path: $(JAVA_HOME)/lib/zero
JNI cpp flags    : -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux
JNI linker flags : -L$(JAVA_HOME)/lib/zero -ljvm
Updating Java configuration in /usr/lib/R
Done.
```

Based on my local r-base (r-base-core_4.5.0-1+loong64.1_loong64.deb), 
rjava is built successfully.

```
checking whether siglongjmp is declared... yes
checking Java support in R... present:
interpreter : '/usr/lib/jvm/default-java/bin/java'
archiver    : '/usr/lib/jvm/default-java/bin/jar'
compiler    : '/usr/lib/jvm/default-java/bin/javac'
header prep.: ''
cpp flags   : '-I/usr/lib/jvm/default-java/include 
-I/usr/lib/jvm/default-java/include/linux'

java libs   : '-L/usr/lib/jvm/default-java/lib/zero -ljvm'
checking whether Java run-time works... yes
..
   dh_builddeb -O--buildsystem=R
dpkg-deb: building package 'r-cran-rjava' in 
'../r-cran-rjava_1.0-11-1_loong64.deb'.
dpkg-deb: building package 'r-cran-rjava-dbgsym' in 
'../r-cran-rjava-dbgsym_1.0-11-1_loong64.deb'.

 dpkg-genbuildinfo -O../rjava_1.0-11-1_loong64.buildinfo
 dpkg-genchanges -O../rjava_1.0-11-1_loong64.changes
```

BTW, I do not find the link how to contribute patch(submit pull request) 
via GITHUB to R source code upstream(https://contributor.r-project.org/).
So I submitted this patch to debian r-base source package first and Cc 
upstream's r-devel@r-project.org..
Could you add the patch "Add "${boot_path}/zero" for OpenJDK zero build" 
in the next upload?

Your opinions are welcome.

[1]: https://github.com/openjdk/jdk/pull/5440
[2]: https://github.com/openjdk/jdk/pull/4787

Thanks,
Dandan Zhang

Description: Add "${boot_path}/zero" for OpenJDK zero build. 
 .
 r-base (4.5.0-1+loong64.1) unstable; urgency=medium
 .
   * src/scripts/javareconf.in: Add "${boot_path}/zero" for OpenJDK zero build.
Author: Dandan Zhang 

---
Last-Update: 2025-04-17

--- r-base-4.5.0.orig/src/scripts/javareconf.in
+++ r-base-4.5.0/src/scripts/javareconf.in
@@ -226,7 +226,7 @@ if test "${JAVA_LIBS}" = '~autodetect~';
 	if test ${has_libjvm} = no; then
 	boot_path=`"$JAVA" -classpath "${tools_classpath}" getsp sun.boot.library.path| ${SED-sed} -e 's/:$//' -e 's/^://'`
 	if test -n "${boot_path}"; then
-		for dir in "${boot_path}" "${boot_path}/client" "${boot_path}/server"; do
+		for dir in "${boot_path}" "${boot_path}/client" "${boot_path}/server" "${boot_path}/zero"; do
 		if test -f "$dir/libjvm${DYLIB_EXT}"; then
 			has_libjvm=yes
 			java_library_path="${dir}"
__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel