Chris Marusich writes: > Roel Janssen writes: > >> Chris Marusich writes: >> >>> Roel Janssen writes: >>> >>>> 1. Fix the recipe to make sure libjvm.so is found, and thus libnet.so is >>>> linked correctly. >>>> >>>> 2. Copy or make a symlink of libjvm.so to the parent directory >>>> (lib/amd64), where the other libraries are. Maybe then libnet.so can >>>> find libjvm.so. >>> >>> (1) seems better than (2) if possible, but either of those solutions >>> seem OK to me. But to be honest, I don't understand why this isn't a >>> problem for icedtea outside of Guix. What are we doing that is >>> different which prevents the library from being found? >> >> Thanks for your reply! >> >> I agree that (1) would be better than (2). The only problem I see with >> this is that I don't see how to achieve (1), but I do see how to achieve >> (2). >> >> I tried running that Java app with CentOS's Java (openjdk 1.7.0), and it >> has the exact same problem: >> >> $ ldd /usr/lib/jvm/java-1.7.0-openjdk/jre/lib/amd64/libnet.so >> linux-vdso.so.1 => (0x00007ffcc153d000) >> libjvm.so => not found >> libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f0b70d7e000) >> libgconf-2.so.4 => /lib64/libgconf-2.so.4 (0x00007f0b70b4d000) >> libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x00007f0b70816000) >> libgobject-2.0.so.0 => /lib64/libgobject-2.0.so.0 (0x00007f0b705c5000) >> libgio-2.0.so.0 => /lib64/libgio-2.0.so.0 (0x00007f0b70245000) >> libjava.so => /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.121-2.6.8.0.el7_3.x86_64/jre/lib/amd64/./libjava.so (0x00007f0b70019000) >> libc.so.6 => /lib64/libc.so.6 (0x00007f0b6fc57000) >> /lib64/ld-linux-x86-64.so.2 (0x00007f0b711ce000) >> libgmodule-2.0.so.0 => /lib64/libgmodule-2.0.so.0 (0x00007f0b6fa53000) >> libdbus-glib-1.so.2 => /lib64/libdbus-glib-1.so.2 (0x00007f0b6f82b000) >> libdbus-1.so.3 => /lib64/libdbus-1.so.3 (0x00007f0b6f5e2000) >> libffi.so.6 => /lib64/libffi.so.6 (0x00007f0b6f3da000) >> libdl.so.2 => /lib64/libdl.so.2 (0x00007f0b6f1d6000) >> libz.so.1 => /lib64/libz.so.1 (0x00007f0b6efbf000) >> libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f0b6ed98000) >> libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f0b6eb7e000) >> libjvm.so => not found >> libverify.so => /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.121-2.6.8.0.el7_3.x86_64/jre/lib/amd64/./libverify.so (0x00007f0b6e96e000) >> librt.so.1 => /lib64/librt.so.1 (0x00007f0b6e765000) >> libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f0b6e504000) >> libjvm.so => not found > > Can you share a minimal program that reproduces the issue? If it > happens on Guix's Java, built with Icedtea, and also on another > distro's, too, then maybe it's a genuine bug that can be fixed upstream. Unfortunately, I don't have a simple example to reproduce it. However, it looks a lot like this bug: https://bugzilla.redhat.com/show_bug.cgi?id=1212151 The program producing the error can be found here: https://github.com/hartwigmedical/hmftools For which I have a package here: https://github.com/UMCUGenetics/guix-additions/blob/master/umcu/packages/hmf.scm#L117 However, it needs various data inputs before the tool will run. Hence, the problem with making a simple example to reproduce it. I attached a patch for solution (2), which seems to work. On the output directory: $ $ ldd /gnu/store/0p35h1dq956h4axal8cc9as1y7qxchqv-icedtea-2.6.11/lib/amd64/libnet.so linux-vdso.so.1 (0x00007ffdda9ab000) libjvm.so => /gnu/store/0p35h1dq956h4axal8cc9as1y7qxchqv-icedtea-2.6.11/lib/amd64/./libjvm.so (0x00007f2def98c000) libpthread.so.0 => /gnu/store/n6nvxlk2j8ysffjh3jphn1k5silnakh6-glibc-2.25/lib/libpthread.so.0 (0x00007f2def76e000) libdl.so.2 => /gnu/store/n6nvxlk2j8ysffjh3jphn1k5silnakh6-glibc-2.25/lib/libdl.so.2 (0x00007f2def56a000) libgio-2.0.so.0 => /gnu/store/qzmyyj0jx6n14vsffa66jgsnnvwhby3n-glib-2.52.3/lib/libgio-2.0.so.0 (0x00007f2def1d3000) libgobject-2.0.so.0 => /gnu/store/qzmyyj0jx6n14vsffa66jgsnnvwhby3n-glib-2.52.3/lib/libgobject-2.0.so.0 (0x00007f2deef81000) libglib-2.0.so.0 => /gnu/store/qzmyyj0jx6n14vsffa66jgsnnvwhby3n-glib-2.52.3/lib/libglib-2.0.so.0 (0x00007f2deec6e000) libjava.so => /gnu/store/0p35h1dq956h4axal8cc9as1y7qxchqv-icedtea-2.6.11/lib/amd64/./libjava.so (0x00007f2deea42000) libc.so.6 => /gnu/store/n6nvxlk2j8ysffjh3jphn1k5silnakh6-glibc-2.25/lib/libc.so.6 (0x00007f2dee6a3000) libgcc_s.so.1 => /gnu/store/3x53yv4v144c9xp02rs64z7j597kkqax-gcc-5.4.0-lib/lib/libgcc_s.so.1 (0x00007f2dee48c000) libstdc++.so.6 => /gnu/store/3x53yv4v144c9xp02rs64z7j597kkqax-gcc-5.4.0-lib/lib/libstdc++.so.6 (0x00007f2dee112000) libm.so.6 => /gnu/store/n6nvxlk2j8ysffjh3jphn1k5silnakh6-glibc-2.25/lib/libm.so.6 (0x00007f2dede00000) /gnu/store/n6nvxlk2j8ysffjh3jphn1k5silnakh6-glibc-2.25/lib/ld-linux-x86-64.so.2 (0x00007f2df09b4000) libffi.so.6 => /gnu/store/jnbb8ffxxvrw2b4z18zn0g08kqk9rsgl-libffi-3.2.1/lib/libffi.so.6 (0x00007f2dedbf5000) libgmodule-2.0.so.0 => /gnu/store/qzmyyj0jx6n14vsffa66jgsnnvwhby3n-glib-2.52.3/lib/libgmodule-2.0.so.0 (0x00007f2ded9f1000) libpcre.so.1 => /gnu/store/3amb8hw38k2jv604pb87am8v9r17fczi-pcre-8.41/lib/libpcre.so.1 (0x00007f2ded780000) libz.so.1 => /gnu/store/sfx1wh27i6gsrk21p87rdyikc64v7d51-zlib-1.2.11/lib/libz.so.1 (0x00007f2ded565000) libresolv.so.2 => /gnu/store/n6nvxlk2j8ysffjh3jphn1k5silnakh6-glibc-2.25/lib/libresolv.so.2 (0x00007f2ded34f000) libmount.so.1 => /gnu/store/zbywrj6klakskj0sppq56viqh9l56jl0-util-linux-2.30.1/lib/libmount.so.1 (0x00007f2ded0fd000) libblkid.so.1 => /gnu/store/zbywrj6klakskj0sppq56viqh9l56jl0-util-linux-2.30.1/lib/libblkid.so.1 (0x00007f2deceb5000) libuuid.so.1 => /gnu/store/zbywrj6klakskj0sppq56viqh9l56jl0-util-linux-2.30.1/lib/libuuid.so.1 (0x00007f2deccb0000) librt.so.1 => /gnu/store/n6nvxlk2j8ysffjh3jphn1k5silnakh6-glibc-2.25/lib/librt.so.1 (0x00007f2decaa8000) libverify.so => /gnu/store/0p35h1dq956h4axal8cc9as1y7qxchqv-icedtea-2.6.11/lib/amd64/./libverify.so (0x00007f2dec899000) I'd like to put this solution in place until we find out how to apply solution (1). The difference on the output is one symbolic link, so the impact is low. This patch fixes this issue for icedtea-7 and icedtea-8. Is it OK to push this patch? Thanks for your time! Kind regards, Roel Janssen