mirror of
https://git.freebsd.org/ports.git
synced 2025-07-18 17:59:20 -04:00
Add a WatchService implementation backed by kqueue,
leveraging the libinotify wrapper. It's still possible to use the polling watchservice, by defining the following system property: sun.nio.fs.watchservice=polling
This commit is contained in:
parent
4752aab612
commit
ad43f6fd6e
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=488523
5 changed files with 68 additions and 2 deletions
|
@ -2,7 +2,7 @@
|
|||
|
||||
PORTNAME= openjdk
|
||||
PORTVERSION= ${JDK_MAJOR_VERSION}.${JDK_UPDATE_VERSION}.${JDK_BUILD_NUMBER:S/^0//}
|
||||
PORTREVISION= 2
|
||||
PORTREVISION= 3
|
||||
CATEGORIES= java devel
|
||||
MASTER_SITES= http://download.java.net/openjdk/jdk${JDK_MAJOR_VERSION}/promoted/b${DIST_BUILD_NUMBER}/:jdk \
|
||||
https://adopt-openjdk.ci.cloudbees.com/job/jtreg/${JTREG_JENKINS_BUILD}/artifact/:jtreg \
|
||||
|
@ -46,7 +46,8 @@ BUILD_DEPENDS= zip:archivers/zip \
|
|||
autoconf>0:devel/autoconf \
|
||||
${LOCALBASE}/include/cups/cups.h:print/cups \
|
||||
bash:shells/bash
|
||||
LIB_DEPENDS= libfreetype.so:print/freetype2
|
||||
LIB_DEPENDS= libfreetype.so:print/freetype2 \
|
||||
libinotify.so:devel/libinotify
|
||||
RUN_DEPENDS= javavm:java/javavmwrapper \
|
||||
dejavu>0:x11-fonts/dejavu
|
||||
|
||||
|
@ -406,6 +407,7 @@ post-patch:
|
|||
${WRKSRC}/configure \
|
||||
${WRKSRC}/common/autoconf/toolchain.m4 \
|
||||
${WRKSRC}/jdk/make/lib/Awt2dLibraries.gmk \
|
||||
${WRKSRC}/jdk/make/lib/NioLibraries.gmk \
|
||||
${WRKSRC}/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/Metacity.java \
|
||||
${WRKSRC}/jdk/src/share/classes/sun/print/PSPrinterJob.java \
|
||||
${WRKSRC}/jdk/src/solaris/classes/sun/nio/fs/BsdFileSystemProvider.java
|
||||
|
|
18
java/openjdk8/files/patch-jdk-make-CompileJavaClasses.gmk
Normal file
18
java/openjdk8/files/patch-jdk-make-CompileJavaClasses.gmk
Normal file
|
@ -0,0 +1,18 @@
|
|||
--- ./jdk/make/CompileJavaClasses.gmk.orig 2018-12-13 14:57:18.491487000 +0100
|
||||
+++ ./jdk/make/CompileJavaClasses.gmk 2018-12-13 14:58:08.484490000 +0100
|
||||
@@ -129,12 +129,12 @@
|
||||
sun/nio/fs/LinuxFileSystem.java \
|
||||
sun/nio/fs/LinuxFileSystemProvider.java \
|
||||
sun/nio/fs/LinuxNativeDispatcher.java \
|
||||
- sun/nio/fs/LinuxUserDefinedFileAttributeView.java \
|
||||
- sun/nio/fs/LinuxWatchService.java
|
||||
+ sun/nio/fs/LinuxUserDefinedFileAttributeView.java
|
||||
endif
|
||||
|
||||
ifeq (, $(filter $(OPENJDK_TARGET_OS), linux bsd))
|
||||
- EXFILES += sun/nio/fs/MagicFileTypeDetector.java
|
||||
+ EXFILES += sun/nio/fs/MagicFileTypeDetector.java \
|
||||
+ sun/nio/fs/LinuxWatchService.java
|
||||
endif
|
||||
|
||||
ifneq ($(OPENJDK_TARGET_OS), macosx)
|
14
java/openjdk8/files/patch-jdk-make-lib-NioLibraries.gmk
Normal file
14
java/openjdk8/files/patch-jdk-make-lib-NioLibraries.gmk
Normal file
|
@ -0,0 +1,14 @@
|
|||
--- ./jdk/make/lib/NioLibraries.gmk.orig 2018-12-13 14:21:04.047810000 +0100
|
||||
+++ ./jdk/make/lib/NioLibraries.gmk 2018-12-13 14:48:16.288168000 +0100
|
||||
@@ -92,8 +92,11 @@
|
||||
PollArrayWrapper.c \
|
||||
UnixAsynchronousServerSocketChannelImpl.c \
|
||||
UnixAsynchronousSocketChannelImpl.c \
|
||||
+ LinuxWatchService.c \
|
||||
UnixCopyFile.c \
|
||||
UnixNativeDispatcher.c
|
||||
+ BUILD_LIBNIO_CFLAGS += -I%%LOCALBASE%%/include
|
||||
+ BUILD_LIBNIO_LDFLAGS += -L%%LOCALBASE%%/lib -linotify
|
||||
endif
|
||||
|
||||
ifeq ($(OPENJDK_TARGET_OS), macosx)
|
|
@ -0,0 +1,17 @@
|
|||
--- ./jdk/make/mapfiles/libnio/mapfile-bsd.orig 2018-12-13 15:20:56.817147000 +0100
|
||||
+++ ./jdk/make/mapfiles/libnio/mapfile-bsd 2018-12-13 15:22:41.507010000 +0100
|
||||
@@ -143,6 +143,14 @@
|
||||
Java_sun_nio_fs_MagicFileTypeDetector_initialize0;
|
||||
Java_sun_nio_fs_MagicFileTypeDetector_probe0;
|
||||
Java_sun_nio_fs_UnixCopyFile_transfer;
|
||||
+ Java_sun_nio_fs_LinuxWatchService_eventSize;
|
||||
+ Java_sun_nio_fs_LinuxWatchService_eventOffsets;
|
||||
+ Java_sun_nio_fs_LinuxWatchService_inotifyInit;
|
||||
+ Java_sun_nio_fs_LinuxWatchService_inotifyAddWatch;
|
||||
+ Java_sun_nio_fs_LinuxWatchService_inotifyRmWatch;
|
||||
+ Java_sun_nio_fs_LinuxWatchService_configureBlocking;
|
||||
+ Java_sun_nio_fs_LinuxWatchService_socketpair;
|
||||
+ Java_sun_nio_fs_LinuxWatchService_poll;
|
||||
Java_sun_nio_fs_UnixNativeDispatcher_access0;
|
||||
Java_sun_nio_fs_UnixNativeDispatcher_chmod0;
|
||||
Java_sun_nio_fs_UnixNativeDispatcher_chown0;
|
|
@ -0,0 +1,15 @@
|
|||
--- ./jdk/src/solaris/classes/sun/nio/fs/BsdFileSystem.java.orig 2018-12-13 14:23:02.834223000 +0100
|
||||
+++ ./jdk/src/solaris/classes/sun/nio/fs/BsdFileSystem.java 2018-12-13 17:34:09.359192000 +0100
|
||||
@@ -45,8 +45,10 @@
|
||||
public WatchService newWatchService()
|
||||
throws IOException
|
||||
{
|
||||
- // use polling implementation until we implement a BSD/kqueue one
|
||||
- return new PollingWatchService();
|
||||
+ if (System.getProperty("sun.nio.fs.watchservice", "").equals("polling"))
|
||||
+ return new PollingWatchService();
|
||||
+ else
|
||||
+ return new LinuxWatchService(this); // use the linux inotify implementation that wraps the kqueue calls
|
||||
}
|
||||
|
||||
// lazy initialization of the list of supported attribute views
|
Loading…
Add table
Reference in a new issue