pkgsrc-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: pkg/52455: lang/oracle-jdk8 and lang/oracle-jre8 don't declare buildlink3 library paths



The following reply was made to PR pkg/52455; it has been noted by GNATS.

From: "H. William Welliver III" <william%welliver.org@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc: 
Subject: Re: pkg/52455: lang/oracle-jdk8 and lang/oracle-jre8 don't declare
 buildlink3 library paths
Date: Thu, 3 Aug 2017 09:46:40 -0400

 Hi,
 
 >> [root@pkgsrc-pbulk oracle-jre8]# diff buildlink3.mk.orig =
 buildlink3.mk
 >> 21a22,25
 >>> LIBDIR_ARCH=3D3D    =3D
 > ${MACHINE_ARCH:S/x86_64/amd64/:S/sparc64/sparcv9/:C/^e?arm.*$/arm/}
 >>> =3D
 > =
 BUILDLINK_LIBDIRS.openjre8+=3D3Djava/oracle-8/jre/lib/${LIBDIR_ARCH}/serve=
 r
 >>> BUILDLINK_LIBDIRS.openjre8+=3D3Djava/oracle-8/jre/lib/${LIBDIR_ARCH}
 >=20
 > This should be BUILDLINK_LIBDIRS.oracle-jre8, I suppose?
 
 Yes, that=E2=80=99s clearly incorrect. I=E2=80=99m not sure how I even =
 managed that. Sorry for the confusion; I can=E2=80=99t even find that =
 sequence in my local copy.
 
 > Also, according to the PLIST, the directory is =3D
 > java/oracle-8/lib/${LIBDIR_ARCH} (no jre). And on macOS, there is no =3D=
 
 > arch directory. I don=3DE2=3D80=3D99t know buildlink well enough to =
 judge if =3D
 > it is OK to give nonexistent directories here.
 
 When I built the oracle-jdk8 package, it required the oracle-jre8 =
 package to be installed first, and the Makefiles seemed to imply that =
 they were common files, though after looking at the installed data, jre =
 is just a symbolic link to the oracle-8 directory. That makes sense, I =
 suppose, since software that embeds the jvm typically looks for these =
 files under jre/. I assume the symlink is why the directory structure =
 isn=E2=80=99t reflected in the PLIST.
 
 I have been using the system JavaVM framework for java access on macOS, =
 so I can=E2=80=99t comment from personal experience (I specifically =
 exclude mk/java-vm.mk on Darwin for this reason). It=E2=80=99s unclear =
 that the oracle-jdk8 package can even be built on macOS, as Oracle only =
 seems to distributes the JDK as a DMG file, and the Makefile requires a =
 .tar.gz file. If I get some free time I may look into this a bit =
 further.
 
 In the process of arriving at this solution, I had a series of incorrect =
 paths specified as part of BUILDLINK_LIBDIRS and no harm seemed to come =
 from it.  It would obviously be better to not include paths that don=E2=80=
 =99t exist, but based on my read of the buildlink3 code, it probably =
 doesn=E2=80=99t hurt to have them. I think the macOS portion of the port =
 will likely need some closer attention, so perhaps this could be an =
 acceptable intermediate step?
 
 >=20
 >> [root@pkgsrc-pbulk oracle-jdk8]# diff buildlink3.mk.orig =
 buildlink3.mk
 >> 30a31,34
 >>> LIBDIR_ARCH=3D3D    =3D
 > ${MACHINE_ARCH:S/x86_64/amd64/:S/sparc64/sparcv9/:C/^e?arm.*$/arm/}
 >>> =3D
 > =
 BUILDLINK_LIBDIRS.openjdk8+=3D3Djava/oracle-8/jre/lib/${LIBDIR_ARCH}/serve=
 r
 >>> BUILDLINK_LIBDIRS.openjdk8+=3D3Djava/oracle-8/jre/lib/${LIBDIR_ARCH}
 >=20
 > According to its PLIST, the lib subdirectory here does not contain =3D
 > libjvm, is this needed at all?
 
 Yes, it=E2=80=99s needed because there are dependent libs that are =
 required (libjvm -> libverify + libzip + libjava, etc).
 
 
 
 > =3DE2=3D80=3D94Benny.=3D
 >=20
 


Home | Main Index | Thread Index | Old Index