From 4bd8b89164be56502dd3c18221613ed9c65ba37d Mon Sep 17 00:00:00 2001 From: hgy59 Date: Thu, 16 Jan 2025 00:25:26 +0100 Subject: [PATCH 1/6] openjdk-21: initial package release - add java-21-openjdk package - update all x11 libraries - evansport fails and will be marked unsupported if no workaround found --- cross/cups/Makefile | 8 +- cross/cups/PLIST | 27 -- cross/java-21-openjdk/Makefile | 132 +++++++ cross/java-21-openjdk/PLIST | 168 +++++++++ cross/java-21-openjdk/digests | 3 + cross/libICE/Makefile | 15 +- cross/libICE/PLIST | 7 - cross/libICE/digests | 6 +- cross/libSM/Makefile | 14 +- cross/libSM/PLIST | 4 - cross/libSM/digests | 6 +- cross/libX11/Makefile | 15 +- cross/libX11/PLIST | 84 ++--- cross/libX11/digests | 6 +- .../patches/001.dont-forward-keycode-0.patch | 53 --- ...le-the-new-_EVDEVK-xorgproto-symbols.patch | 43 --- .../001.remove_pragma_GCC_diagnostic.patch | 13 +- cross/libXau/Makefile | 12 +- cross/libXau/PLIST | 2 - cross/libXau/digests | 6 +- cross/libXext/Makefile | 14 +- cross/libXext/PLIST | 17 - cross/libXext/digests | 6 +- cross/libXfixes/Makefile | 16 +- cross/libXfixes/PLIST | 2 - cross/libXfixes/digests | 6 +- cross/libXi/Makefile | 14 +- cross/libXi/PLIST | 3 - cross/libXi/digests | 6 +- cross/libXrandr/Makefile | 16 +- cross/libXrandr/PLIST | 2 - cross/libXrandr/digests | 6 +- cross/libXrender/Makefile | 15 +- cross/libXrender/PLIST | 2 - cross/libXrender/digests | 6 +- cross/libXt/Makefile | 21 +- cross/libXt/PLIST | 34 -- cross/libXt/digests | 6 +- ...-around-a-compiler-issue-with-gcc-10.patch | 100 ----- cross/libXtst/Makefile | 15 +- cross/libXtst/PLIST | 3 - cross/libXtst/digests | 6 +- cross/libxcb/Makefile | 12 +- cross/libxcb/PLIST | 73 +--- cross/libxcb/digests | 6 +- cross/xcb-proto/Makefile | 10 +- cross/xcb-proto/PLIST | 54 --- cross/xcb-proto/digests | 6 +- cross/xorg-sgml-doctools/Makefile | 8 +- cross/xorg-sgml-doctools/PLIST | 3 +- cross/xorg-sgml-doctools/digests | 6 +- cross/xorg-x11-util-macros/Makefile | 8 +- cross/xorg-x11-util-macros/PLIST | 3 - cross/xorg-x11-util-macros/digests | 6 +- cross/xorgproto/Makefile | 14 +- cross/xorgproto/PLIST | 156 -------- cross/xorgproto/digests | 6 +- cross/xtrans/Makefile | 8 +- cross/xtrans/PLIST | 9 - cross/xtrans/digests | 6 +- ...tch => 001-xtrans-avoid-gethostname.patch} | 0 spk/java-21-openjdk/Makefile | 54 +++ spk/java-21-openjdk/src/LICENSE | 347 ++++++++++++++++++ spk/java-21-openjdk/src/java-openjdk.png | Bin 0 -> 59693 bytes 64 files changed, 885 insertions(+), 850 deletions(-) create mode 100644 cross/java-21-openjdk/Makefile create mode 100644 cross/java-21-openjdk/PLIST create mode 100644 cross/java-21-openjdk/digests delete mode 100644 cross/libX11/patches/001.dont-forward-keycode-0.patch delete mode 100644 cross/libX11/patches/002.0001-makekeys-handle-the-new-_EVDEVK-xorgproto-symbols.patch delete mode 100644 cross/libXt/patches/0001-xt-Work-around-a-compiler-issue-with-gcc-10.patch rename cross/xtrans/patches/{xtrans-1.0.3-avoid-gethostname.patch => 001-xtrans-avoid-gethostname.patch} (100%) create mode 100644 spk/java-21-openjdk/Makefile create mode 100644 spk/java-21-openjdk/src/LICENSE create mode 100644 spk/java-21-openjdk/src/java-openjdk.png diff --git a/cross/cups/Makefile b/cross/cups/Makefile index a4ff09d7007..b85dfe02b47 100644 --- a/cross/cups/Makefile +++ b/cross/cups/Makefile @@ -2,11 +2,11 @@ PKG_NAME = cups PKG_VERS = 2.3.3 PKG_EXT = tar.gz PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS)-source.$(PKG_EXT) -PKG_DIST_SITE = https://github.com/apple/$(PKG_NAME)/releases/download/v$(PKG_VERS) +PKG_DIST_SITE = https://github.com/apple/cups/releases/download/v$(PKG_VERS) PKG_DIR = $(PKG_NAME)-$(PKG_VERS) HOMEPAGE = https://www.cups.org/ -COMMENT = CUPS printing system +COMMENT = CUPS printing system. LICENSE = GPLv2 PRE_CONFIGURE_TARGET = cups_pre_configure @@ -36,5 +36,5 @@ include ../../mk/spksrc.cross-cc.mk .PHONY: cups_pre_configure cups_pre_configure: - $(RUN) aclocal -I config-scripts - $(RUN) autoconf -f -I config-scripts + @$(RUN) aclocal -I config-scripts + @$(RUN) autoconf -f -I config-scripts diff --git a/cross/cups/PLIST b/cross/cups/PLIST index 7a066b5be8f..a43c90b7a20 100644 --- a/cross/cups/PLIST +++ b/cross/cups/PLIST @@ -1,35 +1,8 @@ -rsc:bin/cups-config bin:bin/ippeveprinter bin:bin/ipptool -rsc:include/cups/adminutil.h -rsc:include/cups/array.h -rsc:include/cups/backend.h -rsc:include/cups/cups.h -rsc:include/cups/dir.h -rsc:include/cups/file.h -rsc:include/cups/http.h -rsc:include/cups/ipp.h -rsc:include/cups/language.h -rsc:include/cups/ppd.h -rsc:include/cups/pwg.h -rsc:include/cups/raster.h -rsc:include/cups/sidechannel.h -rsc:include/cups/transcode.h -rsc:include/cups/versioning.h lib:lib/cups/command/ippevepcl lib:lib/cups/command/ippeveps lnk:lib/libcupsimage.so lib:lib/libcupsimage.so.2 lnk:lib/libcups.so lib:lib/libcups.so.2 -rsc:share/locale/ca/cups_ca.po -rsc:share/locale/cs/cups_cs.po -rsc:share/locale/de/cups_de.po -rsc:share/locale/en/cups_en.po -rsc:share/locale/es/cups_es.po -rsc:share/locale/fr/cups_fr.po -rsc:share/locale/it/cups_it.po -rsc:share/locale/ja/cups_ja.po -rsc:share/locale/pt_BR/cups_pt_BR.po -rsc:share/locale/ru/cups_ru.po -rsc:share/locale/zh_CN/cups_zh_CN.po diff --git a/cross/java-21-openjdk/Makefile b/cross/java-21-openjdk/Makefile new file mode 100644 index 00000000000..cc170064541 --- /dev/null +++ b/cross/java-21-openjdk/Makefile @@ -0,0 +1,132 @@ +PKG_NAME = java-21-openjdk +JAVA_REPO_NAME = jdk21u +JAVA_NAME = jdk +JAVA_RELEASE = 11 +JAVA_VERSION = 21.0.5 +PKG_VERS = $(JAVA_VERSION).$(JAVA_RELEASE) +PKG_EXT = tar.gz +PKG_DIST_NAME = $(JAVA_NAME)-$(JAVA_VERSION)+$(JAVA_RELEASE).$(PKG_EXT) +PKG_DIST_SITE = https://github.com/openjdk/jdk21u/archive +PKG_DIR = $(JAVA_REPO_NAME)-$(JAVA_NAME)-$(JAVA_VERSION)-$(JAVA_RELEASE) + +# build instructions: +# https://openjdk.java.net/groups/build/doc/building.html + +# debian patches +# https://udd.debian.org/patches.cgi?src=openjdk-21&version=21.0.5%2B11-1 + +BUILD_DEPENDS = native/openjdk-21 +# Dependencies required at build time only: +BUILD_DEPENDS += cross/cups +BUILD_DEPENDS += cross/alsa-lib +BUILD_DEPENDS += cross/libX11 +BUILD_DEPENDS += cross/libXrender +BUILD_DEPENDS += cross/libXrandr +BUILD_DEPENDS += cross/libXtst +BUILD_DEPENDS += cross/libXt + +# REMARKS: +# for a (currently) unknown reason, building in the cross folder fails +# - it does not find system libraries like libjpeg, libpng, ... +# but building as package dependency in the spk folder works. + +# Dependencies used as system dependencies: +DEPENDS = cross/alsa-lib +DEPENDS += cross/fontconfig +DEPENDS += cross/zlib +DEPENDS += cross/libpng +DEPENDS += cross/libjpeg +DEPENDS += cross/giflib +DEPENDS += cross/lcms2 + +HOMEPAGE = https://openjdk.org/projects/jdk/21/ +COMMENT = OpenJDK 21 is the open-source reference implementation of version 21 of the Java SE Platform as specified by JSR 396 in the Java Community Process. +LICENSE = GPLv2 with the Classpath Exception + +PRE_CONFIGURE_TARGET = java-21-openjdk_pre_configure +PRE_COMPILE_TARGET = java-21-openjdk_pre_compile +POST_INSTALL_TARGET = java-21-openjdk_post_compile + +CONFIGURE_ARGS = --openjdk-target=$(TC_TARGET) +CONFIGURE_ARGS += --with-boot-jdk=$(WORK_DIR)/../../../native/openjdk-21/work-native/jdk-21 +CONFIGURE_ARGS += --with-version-build=$(JAVA_RELEASE) +CONFIGURE_ARGS += --with-version-pre= +CONFIGURE_ARGS += --with-version-opt=LTS +CONFIGURE_ARGS += --with-native-debug-symbols=none +CONFIGURE_ARGS += --prefix=$(INSTALL_PREFIX) +CONFIGURE_ARGS += --with-zlib=system +CONFIGURE_ARGS += --with-libjpeg=system +CONFIGURE_ARGS += --with-giflib=system +CONFIGURE_ARGS += --with-libpng=system +CONFIGURE_ARGS += --with-lcms=system +CONFIGURE_ARGS += --with-alsa=$(INSTALL_DIR)/$(INSTALL_PREFIX) +CONFIGURE_ARGS += --with-stdc++lib=dynamic +CONFIGURE_ARGS += --disable-javac-server +CONFIGURE_ARGS += --disable-warnings-as-errors +CONFIGURE_ARGS += --with-cups=$(INSTALL_DIR)/$(INSTALL_PREFIX) +CONFIGURE_ARGS += --with-fontconfig=$(INSTALL_DIR)/$(INSTALL_PREFIX) +CONFIGURE_ARGS += --with-freetype=system +CONFIGURE_ARGS += --with-freetype-include=$(INSTALL_DIR)/$(INSTALL_PREFIX)/include/freetype2 +CONFIGURE_ARGS += --with-freetype-lib=$(INSTALL_DIR)/$(INSTALL_PREFIX)/lib +CONFIGURE_ARGS += --with-extra-cflags="$(CFLAGS) -fno-stack-protector -Wno-deprecated-declarations" +CONFIGURE_ARGS += --with-extra-cxxflags="$(CPPFLAGS) -fno-stack-protector -Wno-deprecated-declarations" +CONFIGURE_ARGS += --with-extra-ldflags="$(LDFLAGS) -Xlinker -z -Xlinker relro -Xlinker -Bsymbolic-functions" +CONFIGURE_ARGS += --disable-manpages +CONFIGURE_ARGS += --with-cacerts-file=/etc/ssl/certs/ca-certificates.crt +CONFIGURE_ARGS += --with-cacerts-src=/etc/ssl/certs +# Disable all GUI related +CONFIGURE_ARGS += --enable-headless-only +# customize for SynoCommunity +CONFIGURE_ARGS += --with-vendor-name=SynoCommunity +CONFIGURE_ARGS += --with-vendor-url=https://synocommunity.com/package/java-21-openjdk +CONFIGURE_ARGS += --with-vendor-bug-url=https://github.com/SynoCommunity/spksrc/issues +CONFIGURE_ARGS += --with-vendor-vm-bug-url=https://github.com/SynoCommunity/spksrc/issues + +# arguments not taken from environment +CONFIGURE_ARGS += READELF=$(READELF) +CONFIGURE_ARGS += AR=$(AR) +CONFIGURE_ARGS += STRIP=$(STRIP) +CONFIGURE_ARGS += NM=$(TC_PATH)/$(TC_PREFIX)nm +CONFIGURE_ARGS += OBJCOPY=$(OBJCOPY) +CONFIGURE_ARGS += OBJDUMP=$(OBJDUMP) + +# Build images twice, second time with newly built JDK +COMPILE_MAKE_OPTIONS += product-images + +PATCHES_LEVEL = 1 + +# Filter out any -jN since java's configure will autodetect number of CPU's +# Use make JOBS=N to set number of CPU's in this package +DISABLE_PARALLEL_MAKE = 1 +COMPILE_MAKE_OPTIONS += JOBS=$(NCPUS) + +include ../../mk/spksrc.cross-cc.mk + +# ABI profile for ARM builds: +# arm-vfp-sflt, arm-vfp-hflt, arm-sflt, armv5-vfp-sflt, armv6-vfp-hflt, aarch64 +ifeq ($(findstring $(ARCH),$(ARMv8_ARCHS)),$(ARCH)) +CONFIGURE_ARGS += --with-abi-profile=aarch64 +PLIST_TRANSFORM = sed -e '/lib\/libjsvml/d' -e '/lib\/server\/classes/d' +else ifeq ($(findstring $(ARCH),$(ARMv7_ARCHS)),$(ARCH)) +CONFIGURE_ARGS += --with-abi-profile=arm-vfp-hflt +PLIST_TRANSFORM = sed -e '/lib\/libjsvml/d' -e '/lib\/server\/classes/d' -e '/jmods\/jdk.internal.vm/d' +endif + +.PHONY: java-21-openjdk_pre_configure +java-21-openjdk_pre_configure: + @$(MSG) "- Set exe flag on configure script" + @cd $(WORK_DIR)/$(PKG_DIR) && chmod +x ./configure + +.PHONY: java-21-openjdk_pre_compile +java-21-openjdk_pre_compile: + @$(MSG) "- Force openjdk to install into the package install folder" + @sed -i -e "s|\$$(INSTALL_PREFIX)|$(STAGING_INSTALL_PREFIX)|g" $(WORK_DIR)/$(PKG_DIR)/make/Install.gmk + +.PHONY: java-21-openjdk_post_compile +java-21-openjdk_post_compile: + @$(MSG) "- Link binaries into bin folder" + @cd $(STAGING_INSTALL_PREFIX)/bin && ln -sf ../jvm/openjdk-$(JAVA_VERSION)/bin/* . + @$(MSG) "- Add license files" + @cp -pf $(WORK_DIR)/$(PKG_DIR)/LICENSE $(STAGING_INSTALL_PREFIX)/jvm/openjdk-$(JAVA_VERSION)/ + @cp -pf $(WORK_DIR)/$(PKG_DIR)/ADDITIONAL_LICENSE_INFO $(STAGING_INSTALL_PREFIX)/jvm/openjdk-$(JAVA_VERSION)/ + @cp -pf $(WORK_DIR)/$(PKG_DIR)/ASSEMBLY_EXCEPTION $(STAGING_INSTALL_PREFIX)/jvm/openjdk-$(JAVA_VERSION)/ diff --git a/cross/java-21-openjdk/PLIST b/cross/java-21-openjdk/PLIST new file mode 100644 index 00000000000..f566576f0e9 --- /dev/null +++ b/cross/java-21-openjdk/PLIST @@ -0,0 +1,168 @@ +lnk:bin/jar +lnk:bin/jarsigner +lnk:bin/java +lnk:bin/javac +lnk:bin/javadoc +lnk:bin/javap +lnk:bin/jcmd +lnk:bin/jconsole +lnk:bin/jdb +lnk:bin/jdeprscan +lnk:bin/jdeps +lnk:bin/jfr +lnk:bin/jhsdb +lnk:bin/jimage +lnk:bin/jinfo +lnk:bin/jlink +lnk:bin/jmap +lnk:bin/jmod +lnk:bin/jpackage +lnk:bin/jps +lnk:bin/jrunscript +lnk:bin/jshell +lnk:bin/jstack +lnk:bin/jstat +lnk:bin/jstatd +lnk:bin/jwebserver +lnk:bin/keytool +lnk:bin/rmiregistry +lnk:bin/serialver +bin:jvm/openjdk-21.0.5/bin/* +rsc:jvm/openjdk-21.0.5/conf/ +rsc:jvm/openjdk-21.0.5/include/classfile_constants.h +rsc:jvm/openjdk-21.0.5/include/jawt.h +rsc:jvm/openjdk-21.0.5/include/jdwpTransport.h +rsc:jvm/openjdk-21.0.5/include/jni.h +rsc:jvm/openjdk-21.0.5/include/jvmti.h +rsc:jvm/openjdk-21.0.5/include/jvmticmlr.h +rsc:jvm/openjdk-21.0.5/include/linux/jawt_md.h +rsc:jvm/openjdk-21.0.5/include/linux/jni_md.h +rsc:jvm/openjdk-21.0.5/jmods/java.base.jmod +rsc:jvm/openjdk-21.0.5/jmods/java.compiler.jmod +rsc:jvm/openjdk-21.0.5/jmods/java.datatransfer.jmod +rsc:jvm/openjdk-21.0.5/jmods/java.desktop.jmod +rsc:jvm/openjdk-21.0.5/jmods/java.instrument.jmod +rsc:jvm/openjdk-21.0.5/jmods/java.logging.jmod +rsc:jvm/openjdk-21.0.5/jmods/java.management.jmod +rsc:jvm/openjdk-21.0.5/jmods/java.management.rmi.jmod +rsc:jvm/openjdk-21.0.5/jmods/java.naming.jmod +rsc:jvm/openjdk-21.0.5/jmods/java.net.http.jmod +rsc:jvm/openjdk-21.0.5/jmods/java.prefs.jmod +rsc:jvm/openjdk-21.0.5/jmods/java.rmi.jmod +rsc:jvm/openjdk-21.0.5/jmods/java.scripting.jmod +rsc:jvm/openjdk-21.0.5/jmods/java.se.jmod +rsc:jvm/openjdk-21.0.5/jmods/java.security.jgss.jmod +rsc:jvm/openjdk-21.0.5/jmods/java.security.sasl.jmod +rsc:jvm/openjdk-21.0.5/jmods/java.smartcardio.jmod +rsc:jvm/openjdk-21.0.5/jmods/java.sql.jmod +rsc:jvm/openjdk-21.0.5/jmods/java.sql.rowset.jmod +rsc:jvm/openjdk-21.0.5/jmods/java.transaction.xa.jmod +rsc:jvm/openjdk-21.0.5/jmods/java.xml.crypto.jmod +rsc:jvm/openjdk-21.0.5/jmods/java.xml.jmod +rsc:jvm/openjdk-21.0.5/jmods/jdk.accessibility.jmod +rsc:jvm/openjdk-21.0.5/jmods/jdk.attach.jmod +rsc:jvm/openjdk-21.0.5/jmods/jdk.charsets.jmod +rsc:jvm/openjdk-21.0.5/jmods/jdk.compiler.jmod +rsc:jvm/openjdk-21.0.5/jmods/jdk.crypto.cryptoki.jmod +rsc:jvm/openjdk-21.0.5/jmods/jdk.crypto.ec.jmod +rsc:jvm/openjdk-21.0.5/jmods/jdk.dynalink.jmod +rsc:jvm/openjdk-21.0.5/jmods/jdk.editpad.jmod +rsc:jvm/openjdk-21.0.5/jmods/jdk.hotspot.agent.jmod +rsc:jvm/openjdk-21.0.5/jmods/jdk.httpserver.jmod +rsc:jvm/openjdk-21.0.5/jmods/jdk.incubator.vector.jmod +rsc:jvm/openjdk-21.0.5/jmods/jdk.internal.ed.jmod +rsc:jvm/openjdk-21.0.5/jmods/jdk.internal.jvmstat.jmod +rsc:jvm/openjdk-21.0.5/jmods/jdk.internal.le.jmod +rsc:jvm/openjdk-21.0.5/jmods/jdk.internal.opt.jmod +rsc:jvm/openjdk-21.0.5/jmods/jdk.internal.vm.ci.jmod +rsc:jvm/openjdk-21.0.5/jmods/jdk.internal.vm.compiler.jmod +rsc:jvm/openjdk-21.0.5/jmods/jdk.internal.vm.compiler.management.jmod +rsc:jvm/openjdk-21.0.5/jmods/jdk.jartool.jmod +rsc:jvm/openjdk-21.0.5/jmods/jdk.javadoc.jmod +rsc:jvm/openjdk-21.0.5/jmods/jdk.jcmd.jmod +rsc:jvm/openjdk-21.0.5/jmods/jdk.jconsole.jmod +rsc:jvm/openjdk-21.0.5/jmods/jdk.jdeps.jmod +rsc:jvm/openjdk-21.0.5/jmods/jdk.jdi.jmod +rsc:jvm/openjdk-21.0.5/jmods/jdk.jdwp.agent.jmod +rsc:jvm/openjdk-21.0.5/jmods/jdk.jfr.jmod +rsc:jvm/openjdk-21.0.5/jmods/jdk.jlink.jmod +rsc:jvm/openjdk-21.0.5/jmods/jdk.jpackage.jmod +rsc:jvm/openjdk-21.0.5/jmods/jdk.jshell.jmod +rsc:jvm/openjdk-21.0.5/jmods/jdk.jsobject.jmod +rsc:jvm/openjdk-21.0.5/jmods/jdk.jstatd.jmod +rsc:jvm/openjdk-21.0.5/jmods/jdk.localedata.jmod +rsc:jvm/openjdk-21.0.5/jmods/jdk.management.agent.jmod +rsc:jvm/openjdk-21.0.5/jmods/jdk.management.jfr.jmod +rsc:jvm/openjdk-21.0.5/jmods/jdk.management.jmod +rsc:jvm/openjdk-21.0.5/jmods/jdk.naming.dns.jmod +rsc:jvm/openjdk-21.0.5/jmods/jdk.naming.rmi.jmod +rsc:jvm/openjdk-21.0.5/jmods/jdk.net.jmod +rsc:jvm/openjdk-21.0.5/jmods/jdk.nio.mapmode.jmod +rsc:jvm/openjdk-21.0.5/jmods/jdk.random.jmod +rsc:jvm/openjdk-21.0.5/jmods/jdk.sctp.jmod +rsc:jvm/openjdk-21.0.5/jmods/jdk.security.auth.jmod +rsc:jvm/openjdk-21.0.5/jmods/jdk.security.jgss.jmod +rsc:jvm/openjdk-21.0.5/jmods/jdk.unsupported.desktop.jmod +rsc:jvm/openjdk-21.0.5/jmods/jdk.unsupported.jmod +rsc:jvm/openjdk-21.0.5/jmods/jdk.xml.dom.jmod +rsc:jvm/openjdk-21.0.5/jmods/jdk.zipfs.jmod +rsc:jvm/openjdk-21.0.5/legal/ +rsc:jvm/openjdk-21.0.5/lib/classlist +rsc:jvm/openjdk-21.0.5/lib/ct.sym +bin:jvm/openjdk-21.0.5/lib/jexec +rsc:jvm/openjdk-21.0.5/lib/jfr/default.jfc +rsc:jvm/openjdk-21.0.5/lib/jfr/profile.jfc +rsc:jvm/openjdk-21.0.5/lib/jrt-fs.jar +bin:jvm/openjdk-21.0.5/lib/jspawnhelper +rsc:jvm/openjdk-21.0.5/lib/jvm.cfg +lib:jvm/openjdk-21.0.5/lib/libattach.so +lib:jvm/openjdk-21.0.5/lib/libawt.so +lib:jvm/openjdk-21.0.5/lib/libawt_headless.so +lib:jvm/openjdk-21.0.5/lib/libdt_socket.so +lib:jvm/openjdk-21.0.5/lib/libextnet.so +lib:jvm/openjdk-21.0.5/lib/libfontmanager.so +lib:jvm/openjdk-21.0.5/lib/libinstrument.so +lib:jvm/openjdk-21.0.5/lib/libj2gss.so +lib:jvm/openjdk-21.0.5/lib/libj2pcsc.so +lib:jvm/openjdk-21.0.5/lib/libj2pkcs11.so +lib:jvm/openjdk-21.0.5/lib/libjaas.so +lib:jvm/openjdk-21.0.5/lib/libjava.so +lib:jvm/openjdk-21.0.5/lib/libjavajpeg.so +lib:jvm/openjdk-21.0.5/lib/libjawt.so +lib:jvm/openjdk-21.0.5/lib/libjdwp.so +lib:jvm/openjdk-21.0.5/lib/libjimage.so +lib:jvm/openjdk-21.0.5/lib/libjli.so +lib:jvm/openjdk-21.0.5/lib/libjsig.so +lib:jvm/openjdk-21.0.5/lib/libjsound.so +lib:jvm/openjdk-21.0.5/lib/libjsvml.so +lib:jvm/openjdk-21.0.5/lib/liblcms.so +lib:jvm/openjdk-21.0.5/lib/lible.so +lib:jvm/openjdk-21.0.5/lib/libmanagement.so +lib:jvm/openjdk-21.0.5/lib/libmanagement_agent.so +lib:jvm/openjdk-21.0.5/lib/libmanagement_ext.so +lib:jvm/openjdk-21.0.5/lib/libmlib_image.so +lib:jvm/openjdk-21.0.5/lib/libnet.so +lib:jvm/openjdk-21.0.5/lib/libnio.so +lib:jvm/openjdk-21.0.5/lib/libprefs.so +lib:jvm/openjdk-21.0.5/lib/librmi.so +lib:jvm/openjdk-21.0.5/lib/libsaproc.so +lib:jvm/openjdk-21.0.5/lib/libsctp.so +lib:jvm/openjdk-21.0.5/lib/libsyslookup.so +lib:jvm/openjdk-21.0.5/lib/libverify.so +lib:jvm/openjdk-21.0.5/lib/libzip.so +rsc:jvm/openjdk-21.0.5/lib/modules +rsc:jvm/openjdk-21.0.5/lib/psfont.properties.ja +rsc:jvm/openjdk-21.0.5/lib/psfontj2d.properties +rsc:jvm/openjdk-21.0.5/lib/security/blocked.certs +rsc:jvm/openjdk-21.0.5/lib/security/cacerts +rsc:jvm/openjdk-21.0.5/lib/security/default.policy +rsc:jvm/openjdk-21.0.5/lib/security/public_suffix_list.dat +rsc:jvm/openjdk-21.0.5/lib/server/classes.jsa +rsc:jvm/openjdk-21.0.5/lib/server/classes_nocoops.jsa +lib:jvm/openjdk-21.0.5/lib/server/libjsig.so +lib:jvm/openjdk-21.0.5/lib/server/libjvm.so +rsc:jvm/openjdk-21.0.5/lib/tzdb.dat +rsc:jvm/openjdk-21.0.5/release +rsc:jvm/openjdk-21.0.5/LICENSE +rsc:jvm/openjdk-21.0.5/ADDITIONAL_LICENSE_INFO +rsc:jvm/openjdk-21.0.5/ASSEMBLY_EXCEPTION diff --git a/cross/java-21-openjdk/digests b/cross/java-21-openjdk/digests new file mode 100644 index 00000000000..882c333b7db --- /dev/null +++ b/cross/java-21-openjdk/digests @@ -0,0 +1,3 @@ +jdk-21.0.5+11.tar.gz SHA1 180c48bf33a50944d3978c0af57bdd7f5448d498 +jdk-21.0.5+11.tar.gz SHA256 8d57ea0ba57310fffb9257d8018e54a264d940c472228eb04d37a21b584885ac +jdk-21.0.5+11.tar.gz MD5 e8ff61ad5d077c6c78e99df42b609169 diff --git a/cross/libICE/Makefile b/cross/libICE/Makefile index 42944913307..92377005537 100644 --- a/cross/libICE/Makefile +++ b/cross/libICE/Makefile @@ -1,6 +1,6 @@ PKG_NAME = libICE -PKG_VERS = 1.0.10 -PKG_EXT = tar.bz2 +PKG_VERS = 1.1.2 +PKG_EXT = tar.xz PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT) PKG_DIST_SITE = https://www.x.org/archive/individual/lib PKG_DIR = $(PKG_NAME)-$(PKG_VERS) @@ -8,18 +8,13 @@ PKG_DIR = $(PKG_NAME)-$(PKG_VERS) DEPENDS = cross/xorg-x11-util-macros cross/xorgproto cross/xtrans HOMEPAGE = https://www.x.org -COMMENT = X.Org X11 ICE runtime library +COMMENT = X.Org X11 ICE runtime library. LICENSE = GPLv2/GPLv3 -PRE_CONFIGURE_TARGET = $(PKG_NAME)_pre_configure GNU_CONFIGURE = 1 -CONFIGURE_ARGS = --datarootdir=$$INSTALL_PREFIX/lib +CONFIGURE_ARGS = --datarootdir=$(INSTALL_PREFIX)/lib CONFIGURE_ARGS += --without-fop CONFIGURE_ARGS += --without-xmlto -PRE_CONFIGURE_TARGET = libICE_pre_configure +CONFIGURE_ARGS += --disable-static include ../../mk/spksrc.cross-cc.mk - -.PHONY: $(PKG_NAME)_pre_configure -$(PKG_NAME)_pre_configure: - $(RUN) autoreconf -i -f -v -I $(INSTALL_DIR)$(INSTALL_PREFIX)/lib/aclocal diff --git a/cross/libICE/PLIST b/cross/libICE/PLIST index 930b13c80ca..ed7b9fd93a4 100644 --- a/cross/libICE/PLIST +++ b/cross/libICE/PLIST @@ -1,10 +1,3 @@ -rsc:include/X11/ICE/ICEconn.h -rsc:include/X11/ICE/ICE.h -rsc:include/X11/ICE/ICElib.h -rsc:include/X11/ICE/ICEmsg.h -rsc:include/X11/ICE/ICEproto.h -rsc:include/X11/ICE/ICEutil.h lnk:lib/libICE.so lnk:lib/libICE.so.6 lib:lib/libICE.so.6.3.0 -rsc:lib/pkgconfig/ice.pc diff --git a/cross/libICE/digests b/cross/libICE/digests index 87ac4b8bd21..03f7e41b0fa 100644 --- a/cross/libICE/digests +++ b/cross/libICE/digests @@ -1,3 +1,3 @@ -libICE-1.0.10.tar.bz2 SHA1 5b5eb125d4f43a3ab8153b0f850963ee6c982c24 -libICE-1.0.10.tar.bz2 SHA256 6f86dce12cf4bcaf5c37dddd8b1b64ed2ddf1ef7b218f22b9942595fb747c348 -libICE-1.0.10.tar.bz2 MD5 76d77499ee7120a56566891ca2c0dbcf +libICE-1.1.2.tar.xz SHA1 99687d0adca149a06b021f16df1c5eb0f1f90c21 +libICE-1.1.2.tar.xz SHA256 974e4ed414225eb3c716985df9709f4da8d22a67a2890066bc6dfc89ad298625 +libICE-1.1.2.tar.xz MD5 d1ffde0a07709654b20bada3f9abdd16 diff --git a/cross/libSM/Makefile b/cross/libSM/Makefile index a94c3f52d6c..9e2bf6c5e73 100644 --- a/cross/libSM/Makefile +++ b/cross/libSM/Makefile @@ -1,6 +1,6 @@ PKG_NAME = libSM -PKG_VERS = 1.2.3 -PKG_EXT = tar.bz2 +PKG_VERS = 1.2.4 +PKG_EXT = tar.xz PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT) PKG_DIST_SITE = https://www.x.org/archive/individual/lib PKG_DIR = $(PKG_NAME)-$(PKG_VERS) @@ -8,20 +8,14 @@ PKG_DIR = $(PKG_NAME)-$(PKG_VERS) DEPENDS = cross/xorg-x11-util-macros cross/xorgproto cross/xtrans cross/libICE cross/libuuid HOMEPAGE = https://www.x.org -COMMENT = X.Org X11 SM runtime library +COMMENT = X.Org X11 SM runtime library. LICENSE = GPLv2/GPLv3 -PRE_CONFIGURE_TARGET = $(PKG_NAME)_pre_configure GNU_CONFIGURE = 1 -CONFIGURE_ARGS = --datarootdir=$$INSTALL_PREFIX/lib +CONFIGURE_ARGS = --datarootdir=$(INSTALL_PREFIX)/lib CONFIGURE_ARGS += --with-libuuid CONFIGURE_ARGS += --disable-static CONFIGURE_ARGS += --without-xmlto CONFIGURE_ARGS += --without-fop include ../../mk/spksrc.cross-cc.mk - -.PHONY: $(PKG_NAME)_pre_configure -$(PKG_NAME)_pre_configure: - $(RUN) autoreconf -i -f -v -I $(INSTALL_DIR)$(INSTALL_PREFIX)/lib/aclocal - diff --git a/cross/libSM/PLIST b/cross/libSM/PLIST index 08fc5a7601d..dc63afc56b0 100644 --- a/cross/libSM/PLIST +++ b/cross/libSM/PLIST @@ -1,7 +1,3 @@ -rsc:include/X11/SM/SM.h -rsc:include/X11/SM/SMlib.h -rsc:include/X11/SM/SMproto.h lnk:lib/libSM.so lnk:lib/libSM.so.6 lib:lib/libSM.so.6.0.1 -rsc:lib/pkgconfig/sm.pc diff --git a/cross/libSM/digests b/cross/libSM/digests index 53c71d38a19..0398aea3cca 100644 --- a/cross/libSM/digests +++ b/cross/libSM/digests @@ -1,3 +1,3 @@ -libSM-1.2.3.tar.bz2 SHA1 437d7b13fa2eba325df3a106f177df46ccec6546 -libSM-1.2.3.tar.bz2 SHA256 2d264499dcb05f56438dee12a1b4b71d76736ce7ba7aa6efbf15ebb113769cbb -libSM-1.2.3.tar.bz2 MD5 87c7fad1c1813517979184c8ccd76628 +libSM-1.2.4.tar.xz SHA1 656d799e99eafb48899a392763ce9e8118de87b7 +libSM-1.2.4.tar.xz SHA256 fdcbe51e4d1276b1183da77a8a4e74a137ca203e0bcfb20972dd5f3347e97b84 +libSM-1.2.4.tar.xz MD5 ffa434ed96ccae45533b3d653300730e diff --git a/cross/libX11/Makefile b/cross/libX11/Makefile index 3fc0c26c9a2..370a9fbd995 100644 --- a/cross/libX11/Makefile +++ b/cross/libX11/Makefile @@ -1,30 +1,23 @@ PKG_NAME = libX11 -PKG_VERS = 1.7.2 -PKG_EXT = tar.bz2 +PKG_VERS = 1.8.10 +PKG_EXT = tar.xz PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT) PKG_DIST_SITE = https://xorg.freedesktop.org/archive/individual/lib PKG_DIR = $(PKG_NAME)-$(PKG_VERS) -DEPENDS = cross/xorgproto cross/xcb-proto cross/libxcb cross/xtrans cross/xorg-sgml-doctools cross/libICE cross/libSM +DEPENDS = cross/xorgproto cross/libxcb cross/xtrans cross/xorg-sgml-doctools cross/libICE cross/libSM HOMEPAGE = https://www.x.org -COMMENT = Development files for libX11 +COMMENT = Development files for libX11. LICENSE = GPLv2/GPLv3 -PRE_CONFIGURE_TARGET = $(PKG_NAME)_pre_configure GNU_CONFIGURE = 1 CONFIGURE_ARGS = --enable-malloc0returnsnull CONFIGURE_ARGS += --disable-silent-rules CONFIGURE_ARGS += --without-xmlto CONFIGURE_ARGS += --without-fop CONFIGURE_ARGS += --disable-static -PATCHES_LEVEL = 1 ADDITIONAL_CFLAGS = -Os include ../../mk/spksrc.cross-cc.mk - -.PHONY: $(PKG_NAME)_pre_configure -$(PKG_NAME)_pre_configure: - $(RUN) autoreconf -i -f -v -I $(INSTALL_DIR)$(INSTALL_PREFIX)/lib/aclocal - diff --git a/cross/libX11/PLIST b/cross/libX11/PLIST index 991af797fa4..66ddb474692 100644 --- a/cross/libX11/PLIST +++ b/cross/libX11/PLIST @@ -1,36 +1,24 @@ -rsc:include/X11/cursorfont.h -rsc:include/X11/ImUtil.h -rsc:include/X11/Xcms.h -rsc:include/X11/XKBlib.h -rsc:include/X11/XlibConf.h -rsc:include/X11/Xlib.h -rsc:include/X11/Xlibint.h -rsc:include/X11/Xlib-xcb.h -rsc:include/X11/Xlocale.h -rsc:include/X11/Xregion.h -rsc:include/X11/Xresource.h -rsc:include/X11/Xutil.h -lnk:lib/libX11.so -lnk:lib/libX11.so.6 -lib:lib/libX11.so.6.4.0 lnk:lib/libX11-xcb.so lnk:lib/libX11-xcb.so.1 lib:lib/libX11-xcb.so.1.0.0 -rsc:lib/pkgconfig/x11.pc -rsc:lib/pkgconfig/x11-xcb.pc +lnk:lib/libX11.so +lnk:lib/libX11.so.6 +lib:lib/libX11.so.6.4.0 +rsc:share/X11/XErrorDB +rsc:share/X11/Xcms.txt +rsc:share/X11/locale/C/Compose +rsc:share/X11/locale/C/XI18N_OBJS +rsc:share/X11/locale/C/XLC_LOCALE rsc:share/X11/locale/am_ET.UTF-8/Compose rsc:share/X11/locale/am_ET.UTF-8/XI18N_OBJS rsc:share/X11/locale/am_ET.UTF-8/XLC_LOCALE rsc:share/X11/locale/armscii-8/Compose rsc:share/X11/locale/armscii-8/XI18N_OBJS rsc:share/X11/locale/armscii-8/XLC_LOCALE -rsc:share/X11/locale/C/Compose rsc:share/X11/locale/compose.dir rsc:share/X11/locale/cs_CZ.UTF-8/Compose rsc:share/X11/locale/cs_CZ.UTF-8/XI18N_OBJS rsc:share/X11/locale/cs_CZ.UTF-8/XLC_LOCALE -rsc:share/X11/locale/C/XI18N_OBJS -rsc:share/X11/locale/C/XLC_LOCALE rsc:share/X11/locale/el_GR.UTF-8/Compose rsc:share/X11/locale/el_GR.UTF-8/XI18N_OBJS rsc:share/X11/locale/el_GR.UTF-8/XLC_LOCALE @@ -55,6 +43,9 @@ rsc:share/X11/locale/iscii-dev/XLC_LOCALE rsc:share/X11/locale/isiri-3342/Compose rsc:share/X11/locale/isiri-3342/XI18N_OBJS rsc:share/X11/locale/isiri-3342/XLC_LOCALE +rsc:share/X11/locale/iso8859-1/Compose +rsc:share/X11/locale/iso8859-1/XI18N_OBJS +rsc:share/X11/locale/iso8859-1/XLC_LOCALE rsc:share/X11/locale/iso8859-10/Compose rsc:share/X11/locale/iso8859-10/XI18N_OBJS rsc:share/X11/locale/iso8859-10/XLC_LOCALE @@ -70,9 +61,6 @@ rsc:share/X11/locale/iso8859-14/XLC_LOCALE rsc:share/X11/locale/iso8859-15/Compose rsc:share/X11/locale/iso8859-15/XI18N_OBJS rsc:share/X11/locale/iso8859-15/XLC_LOCALE -rsc:share/X11/locale/iso8859-1/Compose -rsc:share/X11/locale/iso8859-1/XI18N_OBJS -rsc:share/X11/locale/iso8859-1/XLC_LOCALE rsc:share/X11/locale/iso8859-2/Compose rsc:share/X11/locale/iso8859-2/XI18N_OBJS rsc:share/X11/locale/iso8859-2/XLC_LOCALE @@ -95,27 +83,32 @@ rsc:share/X11/locale/iso8859-8/Compose rsc:share/X11/locale/iso8859-8/XI18N_OBJS rsc:share/X11/locale/iso8859-8/XLC_LOCALE rsc:share/X11/locale/iso8859-9/Compose +rsc:share/X11/locale/iso8859-9/XI18N_OBJS +rsc:share/X11/locale/iso8859-9/XLC_LOCALE rsc:share/X11/locale/iso8859-9e/Compose rsc:share/X11/locale/iso8859-9e/XI18N_OBJS rsc:share/X11/locale/iso8859-9e/XLC_LOCALE -rsc:share/X11/locale/iso8859-9/XI18N_OBJS -rsc:share/X11/locale/iso8859-9/XLC_LOCALE -rsc:share/X11/locale/ja/Compose rsc:share/X11/locale/ja.JIS/Compose rsc:share/X11/locale/ja.JIS/XI18N_OBJS rsc:share/X11/locale/ja.JIS/XLC_LOCALE -rsc:share/X11/locale/ja_JP.UTF-8/Compose -rsc:share/X11/locale/ja_JP.UTF-8/XI18N_OBJS -rsc:share/X11/locale/ja_JP.UTF-8/XLC_LOCALE rsc:share/X11/locale/ja.SJIS/Compose rsc:share/X11/locale/ja.SJIS/XI18N_OBJS rsc:share/X11/locale/ja.SJIS/XLC_LOCALE +rsc:share/X11/locale/ja/Compose rsc:share/X11/locale/ja/XI18N_OBJS rsc:share/X11/locale/ja/XLC_LOCALE +rsc:share/X11/locale/ja_JP.UTF-8/Compose +rsc:share/X11/locale/ja_JP.UTF-8/XI18N_OBJS +rsc:share/X11/locale/ja_JP.UTF-8/XLC_LOCALE rsc:share/X11/locale/km_KH.UTF-8/Compose rsc:share/X11/locale/km_KH.UTF-8/XI18N_OBJS rsc:share/X11/locale/km_KH.UTF-8/XLC_LOCALE rsc:share/X11/locale/ko/Compose +rsc:share/X11/locale/ko/XI18N_OBJS +rsc:share/X11/locale/ko/XLC_LOCALE +rsc:share/X11/locale/ko_KR.UTF-8/Compose +rsc:share/X11/locale/ko_KR.UTF-8/XI18N_OBJS +rsc:share/X11/locale/ko_KR.UTF-8/XLC_LOCALE rsc:share/X11/locale/koi8-c/Compose rsc:share/X11/locale/koi8-c/XI18N_OBJS rsc:share/X11/locale/koi8-c/XLC_LOCALE @@ -125,11 +118,6 @@ rsc:share/X11/locale/koi8-r/XLC_LOCALE rsc:share/X11/locale/koi8-u/Compose rsc:share/X11/locale/koi8-u/XI18N_OBJS rsc:share/X11/locale/koi8-u/XLC_LOCALE -rsc:share/X11/locale/ko_KR.UTF-8/Compose -rsc:share/X11/locale/ko_KR.UTF-8/XI18N_OBJS -rsc:share/X11/locale/ko_KR.UTF-8/XLC_LOCALE -rsc:share/X11/locale/ko/XI18N_OBJS -rsc:share/X11/locale/ko/XLC_LOCALE rsc:share/X11/locale/locale.alias rsc:share/X11/locale/locale.dir rsc:share/X11/locale/microsoft-cp1251/Compose @@ -162,10 +150,10 @@ rsc:share/X11/locale/sr_RS.UTF-8/XLC_LOCALE rsc:share/X11/locale/tatar-cyr/Compose rsc:share/X11/locale/tatar-cyr/XI18N_OBJS rsc:share/X11/locale/tatar-cyr/XLC_LOCALE -rsc:share/X11/locale/th_TH/Compose rsc:share/X11/locale/th_TH.UTF-8/Compose rsc:share/X11/locale/th_TH.UTF-8/XI18N_OBJS rsc:share/X11/locale/th_TH.UTF-8/XLC_LOCALE +rsc:share/X11/locale/th_TH/Compose rsc:share/X11/locale/th_TH/XI18N_OBJS rsc:share/X11/locale/th_TH/XLC_LOCALE rsc:share/X11/locale/tscii-0/Compose @@ -177,35 +165,33 @@ rsc:share/X11/locale/vi_VN.tcvn/XLC_LOCALE rsc:share/X11/locale/vi_VN.viscii/Compose rsc:share/X11/locale/vi_VN.viscii/XI18N_OBJS rsc:share/X11/locale/vi_VN.viscii/XLC_LOCALE -rsc:share/X11/locale/zh_CN/Compose +rsc:share/X11/locale/zh_CN.UTF-8/Compose +rsc:share/X11/locale/zh_CN.UTF-8/XI18N_OBJS +rsc:share/X11/locale/zh_CN.UTF-8/XLC_LOCALE rsc:share/X11/locale/zh_CN.gb18030/Compose rsc:share/X11/locale/zh_CN.gb18030/XI18N_OBJS rsc:share/X11/locale/zh_CN.gb18030/XLC_LOCALE rsc:share/X11/locale/zh_CN.gbk/Compose rsc:share/X11/locale/zh_CN.gbk/XI18N_OBJS rsc:share/X11/locale/zh_CN.gbk/XLC_LOCALE -rsc:share/X11/locale/zh_CN.UTF-8/Compose -rsc:share/X11/locale/zh_CN.UTF-8/XI18N_OBJS -rsc:share/X11/locale/zh_CN.UTF-8/XLC_LOCALE +rsc:share/X11/locale/zh_CN/Compose rsc:share/X11/locale/zh_CN/XI18N_OBJS rsc:share/X11/locale/zh_CN/XLC_LOCALE +rsc:share/X11/locale/zh_HK.UTF-8/Compose +rsc:share/X11/locale/zh_HK.UTF-8/XI18N_OBJS +rsc:share/X11/locale/zh_HK.UTF-8/XLC_LOCALE rsc:share/X11/locale/zh_HK.big5/Compose +rsc:share/X11/locale/zh_HK.big5/XI18N_OBJS +rsc:share/X11/locale/zh_HK.big5/XLC_LOCALE rsc:share/X11/locale/zh_HK.big5hkscs/Compose rsc:share/X11/locale/zh_HK.big5hkscs/XI18N_OBJS rsc:share/X11/locale/zh_HK.big5hkscs/XLC_LOCALE -rsc:share/X11/locale/zh_HK.big5/XI18N_OBJS -rsc:share/X11/locale/zh_HK.big5/XLC_LOCALE -rsc:share/X11/locale/zh_HK.UTF-8/Compose -rsc:share/X11/locale/zh_HK.UTF-8/XI18N_OBJS -rsc:share/X11/locale/zh_HK.UTF-8/XLC_LOCALE +rsc:share/X11/locale/zh_TW.UTF-8/Compose +rsc:share/X11/locale/zh_TW.UTF-8/XI18N_OBJS +rsc:share/X11/locale/zh_TW.UTF-8/XLC_LOCALE rsc:share/X11/locale/zh_TW.big5/Compose rsc:share/X11/locale/zh_TW.big5/XI18N_OBJS rsc:share/X11/locale/zh_TW.big5/XLC_LOCALE rsc:share/X11/locale/zh_TW/Compose -rsc:share/X11/locale/zh_TW.UTF-8/Compose -rsc:share/X11/locale/zh_TW.UTF-8/XI18N_OBJS -rsc:share/X11/locale/zh_TW.UTF-8/XLC_LOCALE rsc:share/X11/locale/zh_TW/XI18N_OBJS rsc:share/X11/locale/zh_TW/XLC_LOCALE -rsc:share/X11/Xcms.txt -rsc:share/X11/XErrorDB diff --git a/cross/libX11/digests b/cross/libX11/digests index ec23feefd64..287fc3f6765 100644 --- a/cross/libX11/digests +++ b/cross/libX11/digests @@ -1,3 +1,3 @@ -libX11-1.7.2.tar.bz2 SHA1 ff503c816f1e812070ac0e1841bc3634c3b370b6 -libX11-1.7.2.tar.bz2 SHA256 1cfa35e37aaabbe4792e9bb690468efefbfbf6b147d9c69d6f90d13c3092ea6c -libX11-1.7.2.tar.bz2 MD5 a9a24be62503d5e34df6b28204956a7b +libX11-1.8.10.tar.xz SHA1 eb8261d11dd0113ee1699c51bad44da27689350a +libX11-1.8.10.tar.xz SHA256 2b3b3dad9347db41dca56beb7db5878f283bde1142f04d9f8e478af435dfdc53 +libX11-1.8.10.tar.xz MD5 5b8fa54e0ef94136b56f887a5e6cf6c9 diff --git a/cross/libX11/patches/001.dont-forward-keycode-0.patch b/cross/libX11/patches/001.dont-forward-keycode-0.patch deleted file mode 100644 index c16d8749912..00000000000 --- a/cross/libX11/patches/001.dont-forward-keycode-0.patch +++ /dev/null @@ -1,53 +0,0 @@ -diff -up libX11-1.6.3/modules/im/ximcp/imDefFlt.c.jx libX11-1.6.3/modules/im/ximcp/imDefFlt.c ---- libX11-1.6.3/modules/im/ximcp/imDefFlt.c.jx 2015-03-09 18:28:45.000000000 -0400 -+++ libX11-1.6.3/modules/im/ximcp/imDefFlt.c 2015-03-10 12:32:31.912149644 -0400 -@@ -142,7 +142,7 @@ _XimProtoKeypressFilter( - { - Xim im = (Xim)ic->core.im; - -- if (IS_FABRICATED(im)) { -+ if ((ev->keycode == 0) || IS_FABRICATED(im)) { - _XimPendingFilter(ic); - UNMARK_FABRICATED(im); - return NOTFILTERD; -diff -up libX11-1.6.3/modules/im/ximcp/imDefLkup.c.jx libX11-1.6.3/modules/im/ximcp/imDefLkup.c ---- libX11-1.6.3/modules/im/ximcp/imDefLkup.c.jx 2015-03-09 18:28:45.000000000 -0400 -+++ libX11-1.6.3/modules/im/ximcp/imDefLkup.c 2015-03-10 12:32:31.911149637 -0400 -@@ -332,6 +332,17 @@ _XimForwardEvent( - XEvent *ev, - Bool sync) - { -+ /* -+ * Don't forward a key event which has keycode=0. -+ * keycode=0 is reserved for special purpose to let Xmb/wcLookupString() -+ * functions know that there is a commited string available from IM. -+ */ -+ if (((ev->type == KeyPress) || (ev->type == KeyRelease))) { -+ if (((XKeyEvent *)ev)->keycode == 0) { -+ return True; -+ } -+ } -+ - #ifdef EXT_FORWARD - if (((ev->type == KeyPress) || (ev->type == KeyRelease))) - if (_XimExtForwardKeyEvent(ic, (XKeyEvent *)ev, sync)) -@@ -604,6 +615,19 @@ _XimUnregCommitInfo( - Xfree(info->keysym); - ic->private.proto.commit_info = info->next; - Xfree(info); -+ -+ /* -+ * "Commit" uses fabricated flag to process a commited string -+ * from IM engine. -+ * Turn off the fabricated flag here (unregister the commited -+ * information function). Otherwise, next regular key press -+ * event will be ignored at _XimProtoKeypressFilter() and it -+ * will not be passed to IM engine. -+ */ -+ if (IS_FABRICATED(ic)) { -+ UNMARK_FABRICATED(ic); -+ } -+ - return; - } - diff --git a/cross/libX11/patches/002.0001-makekeys-handle-the-new-_EVDEVK-xorgproto-symbols.patch b/cross/libX11/patches/002.0001-makekeys-handle-the-new-_EVDEVK-xorgproto-symbols.patch deleted file mode 100644 index 55adaaecb97..00000000000 --- a/cross/libX11/patches/002.0001-makekeys-handle-the-new-_EVDEVK-xorgproto-symbols.patch +++ /dev/null @@ -1,43 +0,0 @@ -From e92efc63acd7b377faa9e534f4bf52aaa86be2a9 Mon Sep 17 00:00:00 2001 -From: Peter Hutterer -Date: Tue, 27 Jul 2021 11:46:19 +1000 -Subject: [PATCH libX11] makekeys: handle the new _EVDEVK xorgproto symbols - -These keys are all defined through a macro in the form: - #define XF86XK_BrightnessAuto _EVDEVK(0x0F4) - -The _EVDEVK macro is simply an offset of 0x10081000. -Let's parse these lines correctly so those keysyms end up in our -hashtables. - -Signed-off-by: Peter Hutterer ---- - src/util/makekeys.c | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - -diff --git a/src/util/makekeys.c b/src/util/makekeys.c -index e847ef4c..4896cc53 100644 ---- a/src/util/makekeys.c -+++ b/src/util/makekeys.c -@@ -78,6 +78,18 @@ parse_line(const char *buf, char *key, KeySym *val, char *prefix) - return 1; - } - -+ /* See if we can parse one of the _EVDEVK symbols */ -+ i = sscanf(buf, "#define %127s _EVDEVK(0x%lx)", key, val); -+ if (i == 2 && (tmp = strstr(key, "XK_"))) { -+ memcpy(prefix, key, (size_t)(tmp - key)); -+ prefix[tmp - key] = '\0'; -+ tmp += 3; -+ memmove(key, tmp, strlen(tmp) + 1); -+ -+ *val += 0x10081000; -+ return 1; -+ } -+ - /* Now try to catch alias (XK_foo XK_bar) definitions, and resolve them - * immediately: if the target is in the form XF86XK_foo, we need to - * canonicalise this to XF86foo before we do the lookup. */ --- -2.31.1 - diff --git a/cross/libX11/patches/ppc853x/001.remove_pragma_GCC_diagnostic.patch b/cross/libX11/patches/ppc853x/001.remove_pragma_GCC_diagnostic.patch index a976e09d1cb..d10f6e5b559 100644 --- a/cross/libX11/patches/ppc853x/001.remove_pragma_GCC_diagnostic.patch +++ b/cross/libX11/patches/ppc853x/001.remove_pragma_GCC_diagnostic.patch @@ -1,9 +1,9 @@ # remove #pragma GCC diagnostic # for outdated gcc compiler of ppc arch toolchain # ---- libX11-1.6.3/src/xkb/XKBBind.orig.c 2021-06-06 18:48:53.000000000 +0200 -+++ libX11-1.6.3/src/xkb/XKBBind.c 2021-08-20 23:31:52.117734400 +0200 -@@ -226,15 +226,10 @@ +--- src/xkb/XKBBind.c.orig 2024-07-28 17:53:09.000000000 +0000 ++++ src/xkb/XKBBind.c 2025-01-15 21:12:35.024973949 +0000 +@@ -205,9 +205,6 @@ #ifdef __clang__ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated-declarations" @@ -11,11 +11,14 @@ -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wdeprecated-declarations" #endif - return XKeycodeToKeysym(dpy, event->keycode, col); + + KeySym +@@ -224,8 +221,6 @@ + #ifdef __clang__ #pragma clang diagnostic pop -#elif defined(__GNUC__) -#pragma GCC diagnostic pop #endif - } + /* diff --git a/cross/libXau/Makefile b/cross/libXau/Makefile index e8da53800c6..71322de469f 100644 --- a/cross/libXau/Makefile +++ b/cross/libXau/Makefile @@ -1,6 +1,6 @@ PKG_NAME = libXau -PKG_VERS = 1.0.9 -PKG_EXT = tar.bz2 +PKG_VERS = 1.0.12 +PKG_EXT = tar.xz PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT) PKG_DIST_SITE = https://www.x.org/archive/individual/lib PKG_DIR = $(PKG_NAME)-$(PKG_VERS) @@ -8,19 +8,13 @@ PKG_DIR = $(PKG_NAME)-$(PKG_VERS) DEPENDS = cross/xorg-x11-util-macros cross/xorgproto HOMEPAGE = https://www.x.org -COMMENT = Sample Authorization Protocol for X +COMMENT = Sample Authorization Protocol for X. LICENSE = GPLv2/GPLv3 -PRE_CONFIGURE_TARGET = $(PKG_NAME)_pre_configure GNU_CONFIGURE = 1 CONFIGURE_ARGS = --datarootdir=$(INSTALL_PREFIX)/lib CONFIGURE_ARGS += --disable-static ADDITIONAL_CFLAGS = -Os - include ../../mk/spksrc.cross-cc.mk - -.PHONY: $(PKG_NAME)_pre_configure -$(PKG_NAME)_pre_configure: - $(RUN) autoreconf -i -f -v -I $(INSTALL_DIR)$(INSTALL_PREFIX)/lib/aclocal diff --git a/cross/libXau/PLIST b/cross/libXau/PLIST index 61a54cd53f1..ad124314e20 100644 --- a/cross/libXau/PLIST +++ b/cross/libXau/PLIST @@ -1,5 +1,3 @@ -rsc:include/X11/Xauth.h lnk:lib/libXau.so lnk:lib/libXau.so.6 lib:lib/libXau.so.6.0.0 -rsc:lib/pkgconfig/xau.pc diff --git a/cross/libXau/digests b/cross/libXau/digests index 09a23a9ab5e..5aef1b4b653 100644 --- a/cross/libXau/digests +++ b/cross/libXau/digests @@ -1,3 +1,3 @@ -libXau-1.0.9.tar.bz2 SHA1 ef9b1ad00f958c8b6e30a1bbc11fdfac311c9733 -libXau-1.0.9.tar.bz2 SHA256 ccf8cbf0dbf676faa2ea0a6d64bcc3b6746064722b606c8c52917ed00dcb73ec -libXau-1.0.9.tar.bz2 MD5 c5f16288f2da9f071b29111d68797480 +libXau-1.0.12.tar.xz SHA1 5ab09f1f7cfc1962ab9b83b78faad2236989dcad +libXau-1.0.12.tar.xz SHA256 74d0e4dfa3d39ad8939e99bda37f5967aba528211076828464d2777d477fc0fb +libXau-1.0.12.tar.xz MD5 4c9f81acf00b62e5de56a912691bd737 diff --git a/cross/libXext/Makefile b/cross/libXext/Makefile index a873ead3394..c222dcd0e29 100644 --- a/cross/libXext/Makefile +++ b/cross/libXext/Makefile @@ -1,6 +1,6 @@ PKG_NAME = libXext -PKG_VERS = 1.3.4 -PKG_EXT = tar.bz2 +PKG_VERS = 1.3.6 +PKG_EXT = tar.xz PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT) PKG_DIST_SITE = https://www.x.org/archive/individual/lib PKG_DIR = $(PKG_NAME)-$(PKG_VERS) @@ -8,20 +8,14 @@ PKG_DIR = $(PKG_NAME)-$(PKG_VERS) DEPENDS = cross/xorg-x11-util-macros cross/libX11 cross/xorgproto cross/libXau HOMEPAGE = https://www.x.org -COMMENT = X.Org X11 libXext runtime library +COMMENT = X.Org X11 libXext runtime library. LICENSE = GPLv2/GPLv3 -PRE_CONFIGURE_TARGET = $(PKG_NAME)_pre_configure GNU_CONFIGURE = 1 -CONFIGURE_ARGS = --datarootdir=$$INSTALL_PREFIX/lib +CONFIGURE_ARGS = --datarootdir=$(INSTALL_PREFIX)/lib CONFIGURE_ARGS += --enable-malloc0returnsnull CONFIGURE_ARGS += --without-xmlto CONFIGURE_ARGS += --without-fop CONFIGURE_ARGS += --disable-static include ../../mk/spksrc.cross-cc.mk - -.PHONY: $(PKG_NAME)_pre_configure -$(PKG_NAME)_pre_configure: - $(RUN) autoreconf -i -f -v -I $(INSTALL_DIR)$(INSTALL_PREFIX)/lib/aclocal - diff --git a/cross/libXext/PLIST b/cross/libXext/PLIST index a86347fcdd4..c7cbb922e87 100644 --- a/cross/libXext/PLIST +++ b/cross/libXext/PLIST @@ -1,20 +1,3 @@ -rsc:include/X11/extensions/dpms.h -rsc:include/X11/extensions/extutil.h -rsc:include/X11/extensions/MITMisc.h -rsc:include/X11/extensions/multibuf.h -rsc:include/X11/extensions/security.h -rsc:include/X11/extensions/shape.h -rsc:include/X11/extensions/sync.h -rsc:include/X11/extensions/Xag.h -rsc:include/X11/extensions/Xcup.h -rsc:include/X11/extensions/Xdbe.h -rsc:include/X11/extensions/XEVI.h -rsc:include/X11/extensions/Xext.h -rsc:include/X11/extensions/Xge.h -rsc:include/X11/extensions/XLbx.h -rsc:include/X11/extensions/XShm.h -rsc:include/X11/extensions/xtestext1.h lnk:lib/libXext.so lnk:lib/libXext.so.6 lib:lib/libXext.so.6.4.0 -rsc:lib/pkgconfig/xext.pc diff --git a/cross/libXext/digests b/cross/libXext/digests index 0ba34df3468..11764a9acc1 100644 --- a/cross/libXext/digests +++ b/cross/libXext/digests @@ -1,3 +1,3 @@ -libXext-1.3.4.tar.bz2 SHA1 14e2451162e8766173b5b14c73e94a22b1fcab55 -libXext-1.3.4.tar.bz2 SHA256 59ad6fcce98deaecc14d39a672cf218ca37aba617c9a0f691cac3bcd28edf82b -libXext-1.3.4.tar.bz2 MD5 f5b48bb76ba327cd2a8dc7a383532a95 +libXext-1.3.6.tar.xz SHA1 ff55954630974681a08c6d5f75bcbaadc1e508bd +libXext-1.3.6.tar.xz SHA256 edb59fa23994e405fdc5b400afdf5820ae6160b94f35e3dc3da4457a16e89753 +libXext-1.3.6.tar.xz MD5 e59476db179e48c1fb4487c12d0105d1 diff --git a/cross/libXfixes/Makefile b/cross/libXfixes/Makefile index f56a50208b4..7f2511abfa3 100644 --- a/cross/libXfixes/Makefile +++ b/cross/libXfixes/Makefile @@ -1,6 +1,6 @@ PKG_NAME = libXfixes -PKG_VERS = 6.0.0 -PKG_EXT = tar.bz2 +PKG_VERS = 6.0.1 +PKG_EXT = tar.xz PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT) PKG_DIST_SITE = https://www.x.org/archive/individual/lib PKG_DIR = $(PKG_NAME)-$(PKG_VERS) @@ -8,19 +8,11 @@ PKG_DIR = $(PKG_NAME)-$(PKG_VERS) DEPENDS = cross/xorg-x11-util-macros cross/libX11 HOMEPAGE = https://www.x.org -COMMENT = X Fixes library +COMMENT = X Fixes library. LICENSE = GPLv2/GPLv3 -PRE_CONFIGURE_TARGET = $(PKG_NAME)_pre_configure GNU_CONFIGURE = 1 -CONFIGURE_ARGS = --datarootdir=$$INSTALL_PREFIX/lib -CONFIGURE_ARGS += --without-xmlto -CONFIGURE_ARGS += --without-fop +CONFIGURE_ARGS = --datarootdir=$(INSTALL_PREFIX)/lib CONFIGURE_ARGS += --disable-static include ../../mk/spksrc.cross-cc.mk - -.PHONY: $(PKG_NAME)_pre_configure -$(PKG_NAME)_pre_configure: - $(RUN) autoreconf -i -f -v -I $(INSTALL_DIR)$(INSTALL_PREFIX)/lib/aclocal - diff --git a/cross/libXfixes/PLIST b/cross/libXfixes/PLIST index a58e578bd21..2b45b157c4f 100644 --- a/cross/libXfixes/PLIST +++ b/cross/libXfixes/PLIST @@ -1,5 +1,3 @@ -rsc:include/X11/extensions/Xfixes.h lnk:lib/libXfixes.so lnk:lib/libXfixes.so.3 lib:lib/libXfixes.so.3.1.0 -rsc:lib/pkgconfig/xfixes.pc diff --git a/cross/libXfixes/digests b/cross/libXfixes/digests index 63442cf78c6..f76d4727523 100644 --- a/cross/libXfixes/digests +++ b/cross/libXfixes/digests @@ -1,3 +1,3 @@ -libXfixes-6.0.0.tar.bz2 SHA1 5b114fc4def6ef3a516f1c06741a595c16f668e1 -libXfixes-6.0.0.tar.bz2 SHA256 a7c1a24da53e0b46cac5aea79094b4b2257321c621b258729bc3139149245b4c -libXfixes-6.0.0.tar.bz2 MD5 86f182f487f4f54684ef6b142096bb0f +libXfixes-6.0.1.tar.xz SHA1 41aa2c630da0a2cbbb42a740aaf19370800ee972 +libXfixes-6.0.1.tar.xz SHA256 b695f93cd2499421ab02d22744458e650ccc88c1d4c8130d60200213abc02d58 +libXfixes-6.0.1.tar.xz MD5 65b9ba1e9ff3d16c4fa72915d4bb585a diff --git a/cross/libXi/Makefile b/cross/libXi/Makefile index 26c17eea35d..e8869a2f8cc 100644 --- a/cross/libXi/Makefile +++ b/cross/libXi/Makefile @@ -1,6 +1,6 @@ PKG_NAME = libXi -PKG_VERS = 1.7.10 -PKG_EXT = tar.bz2 +PKG_VERS = 1.8.2 +PKG_EXT = tar.xz PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT) PKG_DIST_SITE = https://www.x.org/archive/individual/lib PKG_DIR = $(PKG_NAME)-$(PKG_VERS) @@ -8,12 +8,11 @@ PKG_DIR = $(PKG_NAME)-$(PKG_VERS) DEPENDS = cross/xorg-x11-util-macros cross/libX11 cross/libXext cross/libXfixes cross/xorgproto HOMEPAGE = https://www.x.org -COMMENT = X.Org X11 libXi runtime library +COMMENT = X.Org X11 libXi runtime library. LICENSE = GPLv2/GPLv3 -PRE_CONFIGURE_TARGET = $(PKG_NAME)_pre_configure GNU_CONFIGURE = 1 -CONFIGURE_ARGS = --datarootdir=$$INSTALL_PREFIX/lib +CONFIGURE_ARGS = --datarootdir=$(INSTALL_PREFIX)/lib CONFIGURE_ARGS += --enable-malloc0returnsnull CONFIGURE_ARGS += --disable-specs CONFIGURE_ARGS += --without-xmlto @@ -21,8 +20,3 @@ CONFIGURE_ARGS += --without-fop CONFIGURE_ARGS += --disable-static include ../../mk/spksrc.cross-cc.mk - -.PHONY: $(PKG_NAME)_pre_configure -$(PKG_NAME)_pre_configure: - $(RUN) autoreconf -i -f -v -I $(INSTALL_DIR)$(INSTALL_PREFIX)/lib/aclocal - diff --git a/cross/libXi/PLIST b/cross/libXi/PLIST index 5e826d0b828..c76b5696849 100644 --- a/cross/libXi/PLIST +++ b/cross/libXi/PLIST @@ -1,6 +1,3 @@ -rsc:include/X11/extensions/XInput2.h -rsc:include/X11/extensions/XInput.h lnk:lib/libXi.so lnk:lib/libXi.so.6 lib:lib/libXi.so.6.1.0 -rsc:lib/pkgconfig/xi.pc diff --git a/cross/libXi/digests b/cross/libXi/digests index c6db4be77cb..49efed195ad 100644 --- a/cross/libXi/digests +++ b/cross/libXi/digests @@ -1,3 +1,3 @@ -libXi-1.7.10.tar.bz2 SHA1 79052e50ea07ce2431f8988a60553d9091d46207 -libXi-1.7.10.tar.bz2 SHA256 36a30d8f6383a72e7ce060298b4b181fd298bc3a135c8e201b7ca847f5f81061 -libXi-1.7.10.tar.bz2 MD5 62c4af0839072024b4b1c8cbe84216c7 +libXi-1.8.2.tar.xz SHA1 2cbad5609569f879dadfebfb82243be1ea9badf6 +libXi-1.8.2.tar.xz SHA256 d0e0555e53d6e2114eabfa44226ba162d2708501a25e18d99cfb35c094c6c104 +libXi-1.8.2.tar.xz MD5 95a960c1692a83cc551979f7ffe28cf4 diff --git a/cross/libXrandr/Makefile b/cross/libXrandr/Makefile index 166a7755cb7..a8abbffa139 100644 --- a/cross/libXrandr/Makefile +++ b/cross/libXrandr/Makefile @@ -1,25 +1,19 @@ PKG_NAME = libXrandr -PKG_VERS = 1.5.2 -PKG_EXT = tar.bz2 +PKG_VERS = 1.5.4 +PKG_EXT = tar.xz PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT) PKG_DIST_SITE = https://www.x.org/archive/individual/lib PKG_DIR = $(PKG_NAME)-$(PKG_VERS) -DEPENDS = cross/xorg-x11-util-macros cross/libX11 cross/libXext cross/libXrender cross/xorgproto +DEPENDS = cross/libX11 cross/libXext cross/libXrender cross/xorgproto HOMEPAGE = https://www.x.org -COMMENT = X.Org X11 libXrandr runtime library +COMMENT = X.Org X11 libXrandr runtime library. LICENSE = GPLv2/GPLv3 -PRE_CONFIGURE_TARGET = $(PKG_NAME)_pre_configure GNU_CONFIGURE = 1 -CONFIGURE_ARGS = --datarootdir=$$INSTALL_PREFIX/lib +CONFIGURE_ARGS = --datarootdir=$(INSTALL_PREFIX)/lib CONFIGURE_ARGS += --enable-malloc0returnsnull CONFIGURE_ARGS += --disable-static include ../../mk/spksrc.cross-cc.mk - -.PHONY: $(PKG_NAME)_pre_configure -$(PKG_NAME)_pre_configure: - $(RUN) autoreconf -i -f -v -I $(INSTALL_DIR)$(INSTALL_PREFIX)/lib/aclocal - diff --git a/cross/libXrandr/PLIST b/cross/libXrandr/PLIST index 0a859bbf1b4..7171042bf76 100644 --- a/cross/libXrandr/PLIST +++ b/cross/libXrandr/PLIST @@ -1,5 +1,3 @@ -rsc:include/X11/extensions/Xrandr.h lnk:lib/libXrandr.so lnk:lib/libXrandr.so.2 lib:lib/libXrandr.so.2.2.0 -rsc:lib/pkgconfig/xrandr.pc diff --git a/cross/libXrandr/digests b/cross/libXrandr/digests index f96e9c71ce1..9d9da648d58 100644 --- a/cross/libXrandr/digests +++ b/cross/libXrandr/digests @@ -1,3 +1,3 @@ -libXrandr-1.5.2.tar.bz2 SHA1 7a1f6df239341b76fd59ebbe101d6f180adb43bb -libXrandr-1.5.2.tar.bz2 SHA256 8aea0ebe403d62330bb741ed595b53741acf45033d3bda1792f1d4cc3daee023 -libXrandr-1.5.2.tar.bz2 MD5 18f3b20d522f45e4dadd34afb5bea048 +libXrandr-1.5.4.tar.xz SHA1 c604459d94f7d51475d2a4534e7723f24794d8bb +libXrandr-1.5.4.tar.xz SHA256 1ad5b065375f4a85915aa60611cc6407c060492a214d7f9daf214be752c3b4d3 +libXrandr-1.5.4.tar.xz MD5 24e0b72abe16efce9bf10579beaffc27 diff --git a/cross/libXrender/Makefile b/cross/libXrender/Makefile index e6ba623ba23..c743e4bca2e 100644 --- a/cross/libXrender/Makefile +++ b/cross/libXrender/Makefile @@ -1,24 +1,19 @@ PKG_NAME = libXrender -PKG_VERS = 0.9.10 -PKG_EXT = tar.bz2 +PKG_VERS = 0.9.12 +PKG_EXT = tar.xz PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT) PKG_DIST_SITE = https://www.x.org/archive/individual/lib PKG_DIR = $(PKG_NAME)-$(PKG_VERS) -DEPENDS = cross/xorg-x11-util-macros cross/libX11 +DEPENDS = cross/libX11 HOMEPAGE = https://www.x.org -COMMENT = X.Org X11 libXrender runtime library +COMMENT = X.Org X11 libXrender runtime library. LICENSE = GPLv2/GPLv3 -PRE_CONFIGURE_TARGET = $(PKG_NAME)_pre_configure GNU_CONFIGURE = 1 -CONFIGURE_ARGS = --datarootdir=$$INSTALL_PREFIX/lib +CONFIGURE_ARGS = --datarootdir=$(INSTALL_PREFIX)/lib CONFIGURE_ARGS += --enable-malloc0returnsnull CONFIGURE_ARGS += --disable-static include ../../mk/spksrc.cross-cc.mk - -.PHONY: $(PKG_NAME)_pre_configure -$(PKG_NAME)_pre_configure: - $(RUN) autoreconf -i -f -v -I $(INSTALL_DIR)$(INSTALL_PREFIX)/lib/aclocal diff --git a/cross/libXrender/PLIST b/cross/libXrender/PLIST index bdf772cb45b..5c23f89ba1b 100644 --- a/cross/libXrender/PLIST +++ b/cross/libXrender/PLIST @@ -1,5 +1,3 @@ -rsc:include/X11/extensions/Xrender.h lnk:lib/libXrender.so lnk:lib/libXrender.so.1 lib:lib/libXrender.so.1.3.0 -rsc:lib/pkgconfig/xrender.pc diff --git a/cross/libXrender/digests b/cross/libXrender/digests index fcd44f3f7df..c55a2bf596d 100644 --- a/cross/libXrender/digests +++ b/cross/libXrender/digests @@ -1,3 +1,3 @@ -libXrender-0.9.10.tar.bz2 SHA1 d55106de9260c2377c19d271d9b677744a6c7e81 -libXrender-0.9.10.tar.bz2 SHA256 c06d5979f86e64cabbde57c223938db0b939dff49fdb5a793a1d3d0396650949 -libXrender-0.9.10.tar.bz2 MD5 802179a76bded0b658f4e9ec5e1830a4 +libXrender-0.9.12.tar.xz SHA1 76f58d75bd341a3c7e7f5a125fba76ac3128186c +libXrender-0.9.12.tar.xz SHA256 b832128da48b39c8d608224481743403ad1691bf4e554e4be9c174df171d1b97 +libXrender-0.9.12.tar.xz MD5 4c54dce455d96e3bdee90823b0869f89 diff --git a/cross/libXt/Makefile b/cross/libXt/Makefile index c37d8f4fb2f..45d8b75a9f1 100644 --- a/cross/libXt/Makefile +++ b/cross/libXt/Makefile @@ -1,20 +1,18 @@ PKG_NAME = libXt -PKG_VERS = 1.2.0 -PKG_EXT = tar.bz2 +PKG_VERS = 1.3.1 +PKG_EXT = tar.xz PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT) PKG_DIST_SITE = https://www.x.org/archive/individual/lib PKG_DIR = $(PKG_NAME)-$(PKG_VERS) -DEPENDS = cross/xorg-x11-util-macros cross/libX11 cross/libSM +DEPENDS = cross/libX11 HOMEPAGE = https://www.x.org -COMMENT = X.Org X11 libXt runtime library +COMMENT = X.Org X11 libXt runtime library. LICENSE = GPLv2/GPLv3 -PRE_CONFIGURE_TARGET = $(PKG_NAME)_pre_configure -POST_CONFIGURE_TARGET = $(PKG_NAME)_post_configure_target GNU_CONFIGURE = 1 -CONFIGURE_ARGS = --datarootdir=$$INSTALL_PREFIX/lib +CONFIGURE_ARGS = --datarootdir=$(INSTALL_PREFIX)/lib CONFIGURE_ARGS += --enable-malloc0returnsnull CONFIGURE_ARGS += --without-xmlto CONFIGURE_ARGS += --without-fop @@ -22,12 +20,3 @@ CONFIGURE_ARGS += --disable-static PATCHES_LEVEL = 1 include ../../mk/spksrc.cross-cc.mk - -.PHONY: $(PKG_NAME)_pre_configure -$(PKG_NAME)_pre_configure: - $(RUN) autoreconf -i -f -v -I $(INSTALL_DIR)$(INSTALL_PREFIX)/lib/aclocal - -.PHONY: $(PKG_NAME)_post_configure_target -$(PKG_NAME)_post_configure_target: - $(RUN) sed -i 's,^CFLAGS =.*,CFLAGS =,g' util/Makefile - $(RUN) sed -i 's,^CPPFLAGS =.*,CPPFLAGS =,g' util/Makefile diff --git a/cross/libXt/PLIST b/cross/libXt/PLIST index ba7fb24231c..405255ce21e 100644 --- a/cross/libXt/PLIST +++ b/cross/libXt/PLIST @@ -1,37 +1,3 @@ -rsc:include/X11/CallbackI.h -rsc:include/X11/Composite.h -rsc:include/X11/CompositeP.h -rsc:include/X11/ConstrainP.h -rsc:include/X11/Constraint.h -rsc:include/X11/ConvertI.h -rsc:include/X11/Core.h -rsc:include/X11/CoreP.h -rsc:include/X11/CreateI.h -rsc:include/X11/EventI.h -rsc:include/X11/HookObjI.h -rsc:include/X11/InitialI.h -rsc:include/X11/Intrinsic.h -rsc:include/X11/IntrinsicI.h -rsc:include/X11/IntrinsicP.h -rsc:include/X11/Object.h -rsc:include/X11/ObjectP.h -rsc:include/X11/PassivGraI.h -rsc:include/X11/RectObj.h -rsc:include/X11/RectObjP.h -rsc:include/X11/ResConfigP.h -rsc:include/X11/ResourceI.h -rsc:include/X11/SelectionI.h -rsc:include/X11/Shell.h -rsc:include/X11/ShellI.h -rsc:include/X11/ShellP.h -rsc:include/X11/StringDefs.h -rsc:include/X11/ThreadsI.h -rsc:include/X11/TranslateI.h -rsc:include/X11/VarargsI.h -rsc:include/X11/Vendor.h -rsc:include/X11/VendorP.h -rsc:include/X11/Xtos.h lnk:lib/libXt.so lnk:lib/libXt.so.6 lib:lib/libXt.so.6.0.0 -rsc:lib/pkgconfig/xt.pc diff --git a/cross/libXt/digests b/cross/libXt/digests index 173726f368b..b025883dcac 100644 --- a/cross/libXt/digests +++ b/cross/libXt/digests @@ -1,3 +1,3 @@ -libXt-1.2.0.tar.bz2 SHA1 f6b5ed799bc2e8d721e5407a09c2a8f570963f1b -libXt-1.2.0.tar.bz2 SHA256 b31df531dabed9f4611fc8980bc51d7782967e2aff44c4105251a1acb5a77831 -libXt-1.2.0.tar.bz2 MD5 a9019421d3ee8b4937b6afd9025f018a +libXt-1.3.1.tar.xz SHA1 c3eabc99ba7da28ce2d034623d93f8bcdc5d6467 +libXt-1.3.1.tar.xz SHA256 e0a774b33324f4d4c05b199ea45050f87206586d81655f8bef4dba434d931288 +libXt-1.3.1.tar.xz MD5 9acd189c68750b5028cf120e53c68009 diff --git a/cross/libXt/patches/0001-xt-Work-around-a-compiler-issue-with-gcc-10.patch b/cross/libXt/patches/0001-xt-Work-around-a-compiler-issue-with-gcc-10.patch deleted file mode 100644 index ac9295dc6a5..00000000000 --- a/cross/libXt/patches/0001-xt-Work-around-a-compiler-issue-with-gcc-10.patch +++ /dev/null @@ -1,100 +0,0 @@ -From f3079e509c5cf60042ae2261499ee13b6b02498a Mon Sep 17 00:00:00 2001 -From: Adam Jackson -Date: Thu, 6 Feb 2020 13:45:35 -0500 -Subject: [PATCH] xt: Work around a compiler issue with gcc 10 - -GRABEXT() is used to look up a pointer that sometimes lives just past -the end of an XtServerGrabRec. Whether it's really there or not depends -on XtServerGrabRec::hasExt. In a couple of places, we build those -structs on the stack and pass them to other functions; such structs -always have hasExt == 0, so GRABEXT would never get called in practice. -However, there exists a bug in gcc 10 - more or less difficult to hit, -depending on your compiler options and architecture - where it would not -notice that the dereference after GRABEXT is dead code, at which point -it looks like you're dereferencing one past the end of the array, which -is illegal, and you you get: - - PassivGrab.c:292:35: error: array subscript 0 is outside array bounds - of 'XtServerGrabRec[1]' {aka 'struct _XtServerGrabRec[1]'} - [-Werror=array-bounds] - -As a completely stupid workaround, build those on-stack structs as -arrays of two, so that the (dead) dereference looks like it's pointing -into the dummy member of the array. This is almost certainly a compiler -bug and I don't encourage merging this patch upstream, but if you need -to build libXt with gcc 10 absolutely right this second, here it is. - -For details on the gcc issue, see: - -https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93582 ---- - src/PassivGrab.c | 24 ++++++++++++------------ - 1 file changed, 12 insertions(+), 12 deletions(-) - -diff --git a/src/PassivGrab.c b/src/PassivGrab.c -index bece0d9..b174d40 100644 ---- a/src/PassivGrab.c -+++ b/src/PassivGrab.c -@@ -553,7 +553,7 @@ XtServerGrabPtr _XtCheckServerGrabsOnWidget ( - _XtBoolean isKeyboard) - { - register XtServerGrabPtr grab; -- XtServerGrabRec tempGrab; -+ XtServerGrabRec tempGrab[2]; - XtServerGrabPtr *passiveListPtr; - XtPerWidgetInput pwi; - -@@ -577,13 +577,13 @@ XtServerGrabPtr _XtCheckServerGrabsOnWidget ( - /* Take only the lower thirteen bits as modifier state. The X Keyboard - * Extension may be representing keyboard group state in two upper bits. - */ -- tempGrab.widget = widget; -- tempGrab.keybut = (KeyCode) event->xkey.keycode; /* also xbutton.button */ -- tempGrab.modifiers = event->xkey.state & 0x1FFF; /*also xbutton.state*/ -- tempGrab.hasExt = False; -+ tempGrab[0].widget = widget; -+ tempGrab[0].keybut = (KeyCode) event->xkey.keycode; /* also xbutton.button */ -+ tempGrab[0].modifiers = event->xkey.state & 0x1FFF; /*also xbutton.state*/ -+ tempGrab[0].hasExt = False; - - for (grab = *passiveListPtr; grab; grab = grab->next) { -- if (GrabMatchesSecond(&tempGrab, grab)) -+ if (GrabMatchesSecond(tempGrab, grab)) - return (grab); - } - return (XtServerGrabPtr)NULL; -@@ -775,17 +775,17 @@ void UngrabKeyOrButton ( - Modifiers modifiers, - Boolean isKeyboard) - { -- XtServerGrabRec tempGrab; -+ XtServerGrabRec tempGrab[2]; - XtPerWidgetInput pwi; - - XtCheckSubclass(widget, coreWidgetClass, - "in XtUngrabKey or XtUngrabButton"); - - /* Build a temporary grab list entry */ -- tempGrab.widget = widget; -- tempGrab.modifiers = (unsigned short) modifiers; -- tempGrab.keybut = (KeyCode) keyOrButton; -- tempGrab.hasExt = False; -+ tempGrab[0].widget = widget; -+ tempGrab[0].modifiers = (unsigned short) modifiers; -+ tempGrab[0].keybut = (KeyCode) keyOrButton; -+ tempGrab[0].hasExt = False; - - LOCK_PROCESS; - pwi = _XtGetPerWidgetInput(widget, FALSE); -@@ -817,7 +817,7 @@ void UngrabKeyOrButton ( - - /* Delete all entries which are encompassed by the specified grab. */ - DeleteServerGrabFromList(isKeyboard ? &pwi->keyList : &pwi->ptrList, -- &tempGrab); -+ tempGrab); - } - - void XtGrabKey ( --- -2.23.0 - diff --git a/cross/libXtst/Makefile b/cross/libXtst/Makefile index 4d0602212b8..60c9b7d54b2 100644 --- a/cross/libXtst/Makefile +++ b/cross/libXtst/Makefile @@ -1,25 +1,20 @@ PKG_NAME = libXtst -PKG_VERS = 1.2.3 -PKG_EXT = tar.bz2 +PKG_VERS = 1.2.5 +PKG_EXT = tar.xz PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT) PKG_DIST_SITE = https://www.x.org/archive/individual/lib PKG_DIR = $(PKG_NAME)-$(PKG_VERS) -DEPENDS = cross/xorg-x11-util-macros cross/xorgproto cross/libX11 cross/libXext cross/libXi +DEPENDS = cross/libX11 cross/libXi HOMEPAGE = https://www.x.org -COMMENT = X.Org X11 libXtst runtime library +COMMENT = X.Org X11 libXtst runtime library. LICENSE = GPLv2/GPLv3 -PRE_CONFIGURE_TARGET = $(PKG_NAME)_pre_configure GNU_CONFIGURE = 1 -CONFIGURE_ARGS = --datarootdir=$$INSTALL_PREFIX/lib +CONFIGURE_ARGS = --datarootdir=$(INSTALL_PREFIX)/lib CONFIGURE_ARGS += --without-xmlto CONFIGURE_ARGS += --without-fop CONFIGURE_ARGS += --disable-static include ../../mk/spksrc.cross-cc.mk - -.PHONY: $(PKG_NAME)_pre_configure -$(PKG_NAME)_pre_configure: - $(RUN) autoreconf -i -f -v -I $(INSTALL_DIR)$(INSTALL_PREFIX)/lib/aclocal diff --git a/cross/libXtst/PLIST b/cross/libXtst/PLIST index 678d5e30922..9eefb536e3d 100644 --- a/cross/libXtst/PLIST +++ b/cross/libXtst/PLIST @@ -1,6 +1,3 @@ -rsc:include/X11/extensions/record.h -rsc;include/X11/extensions/XTest.h lnk:lib/libXtst.so lnk:lib/libXtst.so.6 lib:lib/libXtst.so.6.1.0 -rsc:lib/pkgconfig/xtst.pc diff --git a/cross/libXtst/digests b/cross/libXtst/digests index 43c8bcb8b01..a9a8722b23b 100644 --- a/cross/libXtst/digests +++ b/cross/libXtst/digests @@ -1,3 +1,3 @@ -libXtst-1.2.3.tar.bz2 SHA1 27d004db631bee3a82155d3caf961d9584207d36 -libXtst-1.2.3.tar.bz2 SHA256 4655498a1b8e844e3d6f21f3b2c4e2b571effb5fd83199d428a6ba7ea4bf5204 -libXtst-1.2.3.tar.bz2 MD5 ef8c2c1d16a00bd95b9fdcef63b8a2ca +libXtst-1.2.5.tar.xz SHA1 8633c077c22744679e43b23dfd58f76820867a1c +libXtst-1.2.5.tar.xz SHA256 b50d4c25b97009a744706c1039c598f4d8e64910c9fde381994e1cae235d9242 +libXtst-1.2.5.tar.xz MD5 b62dc44d8e63a67bb10230d54c44dcb7 diff --git a/cross/libxcb/Makefile b/cross/libxcb/Makefile index 7ea14a81c26..3c20a8dab6f 100644 --- a/cross/libxcb/Makefile +++ b/cross/libxcb/Makefile @@ -1,5 +1,5 @@ PKG_NAME = libxcb -PKG_VERS = 1.14 +PKG_VERS = 1.17.0 PKG_EXT = tar.xz PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT) PKG_DIST_SITE = https://www.x.org/archive/individual/lib @@ -8,20 +8,14 @@ PKG_DIR = $(PKG_NAME)-$(PKG_VERS) DEPENDS = cross/xorg-x11-util-macros cross/xcb-proto cross/libXau HOMEPAGE = https://www.x.org -COMMENT = A C binding to the X11 protocol +COMMENT = A C binding to the X11 protocol. LICENSE = GPLv2/GPLv3 -PRE_CONFIGURE_TARGET = $(PKG_NAME)_pre_configure GNU_CONFIGURE = 1 -CONFIGURE_ARGS = --datarootdir=$$INSTALL_PREFIX/lib +CONFIGURE_ARGS = --datarootdir=$(INSTALL_PREFIX)/lib CONFIGURE_ARGS += --disable-static CONFIGURE_ARGS += --enable-xinput CONFIGURE_ARGS += --enable-xkb -CONFIGURE_ARGS += --enable-sendfds CONFIGURE_ARGS += --without-doxygen include ../../mk/spksrc.cross-cc.mk - -.PHONY: $(PKG_NAME)_pre_configure -$(PKG_NAME)_pre_configure: - $(RUN) autoreconf -i -f -v -I $(INSTALL_DIR)$(INSTALL_PREFIX)/lib/aclocal diff --git a/cross/libxcb/PLIST b/cross/libxcb/PLIST index 402854272d1..cf57b0af843 100644 --- a/cross/libxcb/PLIST +++ b/cross/libxcb/PLIST @@ -1,41 +1,12 @@ -rsc:include/xcb/bigreq.h -rsc:include/xcb/composite.h -rsc:include/xcb/damage.h -rsc:include/xcb/dpms.h -rsc:include/xcb/dri2.h -rsc:include/xcb/dri3.h -rsc:include/xcb/ge.h -rsc:include/xcb/glx.h -rsc:include/xcb/present.h -rsc:include/xcb/randr.h -rsc:include/xcb/record.h -rsc:include/xcb/render.h -rsc:include/xcb/res.h -rsc:include/xcb/screensaver.h -rsc:include/xcb/shape.h -rsc:include/xcb/shm.h -rsc:include/xcb/sync.h -rsc:include/xcb/xcbext.h -rsc:include/xcb/xcb.h -rsc:include/xcb/xc_misc.h -rsc:include/xcb/xevie.h -rsc:include/xcb/xf86dri.h -rsc:include/xcb/xfixes.h -rsc:include/xcb/xinerama.h -rsc:include/xcb/xinput.h -rsc:include/xcb/xkb.h -rsc:include/xcb/xprint.h -rsc:include/xcb/xproto.h -rsc:include/xcb/xselinux.h -rsc:include/xcb/xtest.h -rsc:include/xcb/xv.h -rsc:include/xcb/xvmc.h lnk:lib/libxcb-composite.so lnk:lib/libxcb-composite.so.0 lib:lib/libxcb-composite.so.0.0.0 lnk:lib/libxcb-damage.so lnk:lib/libxcb-damage.so.0 lib:lib/libxcb-damage.so.0.0.0 +lnk:lib/libxcb-dbe.so +lnk:lib/libxcb-dbe.so.0 +lib:lib/libxcb-dbe.so.0.0.0 lnk:lib/libxcb-dpms.so lnk:lib/libxcb-dpms.so.0 lib:lib/libxcb-dpms.so.0.0.0 @@ -44,7 +15,7 @@ lnk:lib/libxcb-dri2.so.0 lib:lib/libxcb-dri2.so.0.0.0 lnk:lib/libxcb-dri3.so lnk:lib/libxcb-dri3.so.0 -lib:lib/libxcb-dri3.so.0.0.0 +lib:lib/libxcb-dri3.so.0.1.0 lnk:lib/libxcb-glx.so lnk:lib/libxcb-glx.so.0 lib:lib/libxcb-glx.so.0.0.0 @@ -72,9 +43,6 @@ lib:lib/libxcb-shape.so.0.0.0 lnk:lib/libxcb-shm.so lnk::lib/libxcb-shm.so.0 lib:lib/libxcb-shm.so.0.0.0 -lnk:lib/libxcb.so -lnk:lib/libxcb.so.1 -lib:lib/libxcb.so.1.1.0 lnk:lib/libxcb-sync.so lnk:lib/libxcb-sync.so.1 lib:lib/libxcb-sync.so.1.0.0 @@ -96,33 +64,12 @@ lib:lib/libxcb-xkb.so.1.0.0 lnk:lib/libxcb-xtest.so lnk:lib/libxcb-xtest.so.0 lib:lib/libxcb-xtest.so.0.0.0 -lnk:lib/libxcb-xvmc.so -lnk:lib/libxcb-xvmc.so.0 -lib:lib/libxcb-xvmc.so.0.0.0 lnk:lib/libxcb-xv.so lnk:lib/libxcb-xv.so.0 lib:lib/libxcb-xv.so.0.0.0 -rsc:lib/pkgconfig/xcb-composite.pc -rsc:lib/pkgconfig/xcb-damage.pc -rsc:lib/pkgconfig/xcb-dpms.pc -rsc:lib/pkgconfig/xcb-dri2.pc -rsc:lib/pkgconfig/xcb-dri3.pc -rsc:lib/pkgconfig/xcb-glx.pc -rsc:lib/pkgconfig/xcb.pc -rsc:lib/pkgconfig/xcb-present.pc -rsc:lib/pkgconfig/xcb-randr.pc -rsc:lib/pkgconfig/xcb-record.pc -rsc:lib/pkgconfig/xcb-render.pc -rsc:lib/pkgconfig/xcb-res.pc -rsc:lib/pkgconfig/xcb-screensaver.pc -rsc:lib/pkgconfig/xcb-shape.pc -rsc:lib/pkgconfig/xcb-shm.pc -rsc:lib/pkgconfig/xcb-sync.pc -rsc:lib/pkgconfig/xcb-xf86dri.pc -rsc:lib/pkgconfig/xcb-xfixes.pc -rsc:lib/pkgconfig/xcb-xinerama.pc -rsc:lib/pkgconfig/xcb-xinput.pc -rsc:lib/pkgconfig/xcb-xkb.pc -rsc:lib/pkgconfig/xcb-xtest.pc -rsc:lib/pkgconfig/xcb-xvmc.pc -rsc:lib/pkgconfig/xcb-xv.pc +lnk:lib/libxcb-xvmc.so +lnk:lib/libxcb-xvmc.so.0 +lib:lib/libxcb-xvmc.so.0.0.0 +lnk:lib/libxcb.so +lnk:lib/libxcb.so.1 +lib:lib/libxcb.so.1.1.0 diff --git a/cross/libxcb/digests b/cross/libxcb/digests index dbe4bb9c4d7..c9a26887ed7 100644 --- a/cross/libxcb/digests +++ b/cross/libxcb/digests @@ -1,3 +1,3 @@ -libxcb-1.14.tar.xz SHA1 e218be6043162d2f758643dbda8caccd53107388 -libxcb-1.14.tar.xz SHA256 a55ed6db98d43469801262d81dc2572ed124edc3db31059d4e9916eb9f844c34 -libxcb-1.14.tar.xz MD5 f90b6e4541e9518b4c373b734f475ae7 +libxcb-1.17.0.tar.xz SHA1 ebb3197ac4c75c51c4e7e3278e8406d9441a4d47 +libxcb-1.17.0.tar.xz SHA256 599ebf9996710fea71622e6e184f3a8ad5b43d0e5fa8c4e407123c88a59a6d55 +libxcb-1.17.0.tar.xz MD5 96565523e9f9b701fcb35d31f1d4086e diff --git a/cross/xcb-proto/Makefile b/cross/xcb-proto/Makefile index 1194699fd12..98857d0d418 100644 --- a/cross/xcb-proto/Makefile +++ b/cross/xcb-proto/Makefile @@ -1,6 +1,6 @@ PKG_NAME = xcb-proto -PKG_VERS = 1.14.1 -PKG_EXT = tar.gz +PKG_VERS = 1.17.0 +PKG_EXT = tar.xz PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT) PKG_DIST_SITE = https://www.x.org/archive/individual/proto PKG_DIR = $(PKG_NAME)-$(PKG_VERS) @@ -8,12 +8,10 @@ PKG_DIR = $(PKG_NAME)-$(PKG_VERS) DEPENDS = HOMEPAGE = https://www.x.org -COMMENT = XCB protocol descriptions +COMMENT = XCB protocol descriptions. LICENSE = GPLv2/GPLv3 GNU_CONFIGURE = 1 -CONFIGURE_ARGS = --datarootdir=$$INSTALL_PREFIX/lib - -ADDITIONAL_CFLAGS = -Os +CONFIGURE_ARGS = --datarootdir=$(INSTALL_PREFIX)/lib include ../../mk/spksrc.cross-cc.mk diff --git a/cross/xcb-proto/PLIST b/cross/xcb-proto/PLIST index 6ed1b38f635..e69de29bb2d 100644 --- a/cross/xcb-proto/PLIST +++ b/cross/xcb-proto/PLIST @@ -1,54 +0,0 @@ -rsc:lib/pkgconfig/xcb-proto.pc -rsc:lib/python2.7/site-packages/xcbgen/align.py -rsc:lib/python2.7/site-packages/xcbgen/align.pyc -rsc:lib/python2.7/site-packages/xcbgen/align.pyo -rsc:lib/python2.7/site-packages/xcbgen/error.py -rsc:lib/python2.7/site-packages/xcbgen/error.pyc -rsc:lib/python2.7/site-packages/xcbgen/error.pyo -rsc:lib/python2.7/site-packages/xcbgen/expr.py -rsc:lib/python2.7/site-packages/xcbgen/expr.pyc -rsc:lib/python2.7/site-packages/xcbgen/expr.pyo -rsc:lib/python2.7/site-packages/xcbgen/__init__.py -rsc:lib/python2.7/site-packages/xcbgen/__init__.pyc -rsc:lib/python2.7/site-packages/xcbgen/__init__.pyo -rsc:lib/python2.7/site-packages/xcbgen/matcher.py -rsc:lib/python2.7/site-packages/xcbgen/matcher.pyc -rsc:lib/python2.7/site-packages/xcbgen/matcher.pyo -rsc:lib/python2.7/site-packages/xcbgen/state.py -rsc:lib/python2.7/site-packages/xcbgen/state.pyc -rsc:lib/python2.7/site-packages/xcbgen/state.pyo -rsc:lib/python2.7/site-packages/xcbgen/xtypes.py -rsc:lib/python2.7/site-packages/xcbgen/xtypes.pyc -rsc:lib/python2.7/site-packages/xcbgen/xtypes.pyo -rsc:lib/xcb/bigreq.xml -rsc:lib/xcb/composite.xml -rsc:lib/xcb/damage.xml -rsc:lib/xcb/dpms.xml -rsc:lib/xcb/dri2.xml -rsc:lib/xcb/dri3.xml -rsc:lib/xcb/ge.xml -rsc:lib/xcb/glx.xml -rsc:lib/xcb/present.xml -rsc:lib/xcb/randr.xml -rsc:lib/xcb/record.xml -rsc:lib/xcb/render.xml -rsc:lib/xcb/res.xml -rsc:lib/xcb/screensaver.xml -rsc:lib/xcb/shape.xml -rsc:lib/xcb/shm.xml -rsc:lib/xcb/sync.xml -rsc:lib/xcb/xcb.xsd -rsc:lib/xcb/xc_misc.xml -rsc:lib/xcb/xevie.xml -rsc:lib/xcb/xf86dri.xml -rsc:lib/xcb/xf86vidmode.xml -rsc:lib/xcb/xfixes.xml -rsc:lib/xcb/xinerama.xml -rsc:lib/xcb/xinput.xml -rsc:lib/xcb/xkb.xml -rsc:lib/xcb/xprint.xml -rsc:lib/xcb/xproto.xml -rsc:lib/xcb/xselinux.xml -rsc:lib/xcb/xtest.xml -rsc:lib/xcb/xvmc.xml -rsc:lib/xcb/xv.xml diff --git a/cross/xcb-proto/digests b/cross/xcb-proto/digests index 5f033ea45a4..693fd7b7772 100644 --- a/cross/xcb-proto/digests +++ b/cross/xcb-proto/digests @@ -1,3 +1,3 @@ -xcb-proto-1.14.1.tar.gz SHA1 1bb307b09c25c42058cc36e565a29ec86d7a4b91 -xcb-proto-1.14.1.tar.gz SHA256 85cd21e9d9fbc341d0dbf11eace98d55d7db89fda724b0e598855fcddf0944fd -xcb-proto-1.14.1.tar.gz MD5 5e9e22d4dfd5b9d499fb5e2f384fbe26 +xcb-proto-1.17.0.tar.xz SHA1 75159dcd0668f76d87c8def84e9e6e4df92444e5 +xcb-proto-1.17.0.tar.xz SHA256 2c1bacd2110f4799f74de6ebb714b94cf6f80fb112316b1219480fd22562148c +xcb-proto-1.17.0.tar.xz MD5 c415553d2ee1a8cea43c3234a079b53f diff --git a/cross/xorg-sgml-doctools/Makefile b/cross/xorg-sgml-doctools/Makefile index 2832f3e6782..a164f597428 100644 --- a/cross/xorg-sgml-doctools/Makefile +++ b/cross/xorg-sgml-doctools/Makefile @@ -1,6 +1,6 @@ PKG_NAME = xorg-sgml-doctools -PKG_VERS = 1.11 -PKG_EXT = tar.bz2 +PKG_VERS = 1.12.1 +PKG_EXT = tar.xz PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT) PKG_DIST_SITE = https://www.x.org/archive/individual/doc PKG_DIR = $(PKG_NAME)-$(PKG_VERS) @@ -8,10 +8,10 @@ PKG_DIR = $(PKG_NAME)-$(PKG_VERS) DEPENDS = HOMEPAGE = https://www.x.org -COMMENT = X.Org SGML documentation generation tools +COMMENT = X.Org SGML documentation generation tools. LICENSE = GPLv2/GPLv3 GNU_CONFIGURE = 1 -CONFIGURE_ARGS = --datarootdir=$$INSTALL_PREFIX/lib +CONFIGURE_ARGS = --datarootdir=$(INSTALL_PREFIX)/lib include ../../mk/spksrc.cross-cc.mk diff --git a/cross/xorg-sgml-doctools/PLIST b/cross/xorg-sgml-doctools/PLIST index fbf94d191a4..9d0544968d9 100644 --- a/cross/xorg-sgml-doctools/PLIST +++ b/cross/xorg-sgml-doctools/PLIST @@ -1,9 +1,8 @@ -rsc:lib/pkgconfig/xorg-sgml-doctools.pc rsc:lib/sgml/X11/dbs/masterdb.html.xml rsc:lib/sgml/X11/dbs/masterdb.pdf.xml rsc:lib/sgml/X11/defs.ent rsc:lib/sgml/X11/xorg-chunk.xsl -rsc:lib/sgml/X11/xorg.css rsc:lib/sgml/X11/xorg-fo.xsl rsc:lib/sgml/X11/xorg-xhtml.xsl +rsc:lib/sgml/X11/xorg.css rsc:lib/sgml/X11/xorg.xsl diff --git a/cross/xorg-sgml-doctools/digests b/cross/xorg-sgml-doctools/digests index 2e85e912a24..6af8c289565 100644 --- a/cross/xorg-sgml-doctools/digests +++ b/cross/xorg-sgml-doctools/digests @@ -1,3 +1,3 @@ -xorg-sgml-doctools-1.11.tar.bz2 SHA1 56acde359072d7ffc6627ffde5e2c698eb415ddc -xorg-sgml-doctools-1.11.tar.bz2 SHA256 e71ce1df82dcc51eb14be6f42171dcc6bdd11ef46c0c605d6da8af12bd73b74c -xorg-sgml-doctools-1.11.tar.bz2 MD5 ee6dc0a8a693a908857af328b2462661 +xorg-sgml-doctools-1.12.1.tar.xz SHA1 7861e20c177a04307e12c032eaafc5d8733b602e +xorg-sgml-doctools-1.12.1.tar.xz SHA256 0a5d54c0706b4e89d5acd4d455db3745ab4ad26be627cce015b90ad403b56d6f +xorg-sgml-doctools-1.12.1.tar.xz MD5 e68e4ed704fc21bd791e6fda37483f7d diff --git a/cross/xorg-x11-util-macros/Makefile b/cross/xorg-x11-util-macros/Makefile index a2a3e7d8f13..16086d61269 100644 --- a/cross/xorg-x11-util-macros/Makefile +++ b/cross/xorg-x11-util-macros/Makefile @@ -1,6 +1,6 @@ PKG_NAME = util-macros -PKG_VERS = 1.19.3 -PKG_EXT = tar.bz2 +PKG_VERS = 1.20.2 +PKG_EXT = tar.xz PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT) PKG_DIST_SITE = https://www.x.org/archive/individual/util PKG_DIR = $(PKG_NAME)-$(PKG_VERS) @@ -8,10 +8,10 @@ PKG_DIR = $(PKG_NAME)-$(PKG_VERS) DEPENDS = HOMEPAGE = https://www.x.org -COMMENT = X.Org X11 Autotools macros +COMMENT = X.Org X11 Autotools macros. LICENSE = GPLv2/GPLv3 GNU_CONFIGURE = 1 -CONFIGURE_ARGS = --datarootdir=$$INSTALL_PREFIX/lib +CONFIGURE_ARGS = --datarootdir=$(INSTALL_PREFIX)/lib include ../../mk/spksrc.cross-cc.mk diff --git a/cross/xorg-x11-util-macros/PLIST b/cross/xorg-x11-util-macros/PLIST index 18b51c832ff..e69de29bb2d 100644 --- a/cross/xorg-x11-util-macros/PLIST +++ b/cross/xorg-x11-util-macros/PLIST @@ -1,3 +0,0 @@ -rsc:lib/aclocal/xorg-macros.m4 -rsc:lib/pkgconfig/xorg-macros.pc -rsc:lib/util-macros/INSTALL diff --git a/cross/xorg-x11-util-macros/digests b/cross/xorg-x11-util-macros/digests index 80da22d457c..41769dc56e8 100644 --- a/cross/xorg-x11-util-macros/digests +++ b/cross/xorg-x11-util-macros/digests @@ -1,3 +1,3 @@ -util-macros-1.19.3.tar.bz2 SHA1 4097f75e327b9579d1bd657fa8b01b55238ad8f5 -util-macros-1.19.3.tar.bz2 SHA256 0f812e6e9d2786ba8f54b960ee563c0663ddbe2434bf24ff193f5feab1f31971 -util-macros-1.19.3.tar.bz2 MD5 4be6df7e6af52e28e13dc533244eb9d7 +util-macros-1.20.2.tar.xz SHA1 3331065b8ce992ab30b0011147cb080e62368e80 +util-macros-1.20.2.tar.xz SHA256 9ac269eba24f672d7d7b3574e4be5f333d13f04a7712303b1821b2a51ac82e8e +util-macros-1.20.2.tar.xz MD5 5f683a1966834b0a6ae07b3680bcb863 diff --git a/cross/xorgproto/Makefile b/cross/xorgproto/Makefile index 89623d8b999..976e585ea5f 100644 --- a/cross/xorgproto/Makefile +++ b/cross/xorgproto/Makefile @@ -1,6 +1,6 @@ PKG_NAME = xorgproto -PKG_VERS = 2021.4 -PKG_EXT = tar.bz2 +PKG_VERS = 2024.1 +PKG_EXT = tar.xz PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT) PKG_DIST_SITE = https://www.x.org/archive/individual/proto PKG_DIR = $(PKG_NAME)-$(PKG_VERS) @@ -8,18 +8,14 @@ PKG_DIR = $(PKG_NAME)-$(PKG_VERS) DEPENDS = cross/xorg-x11-util-macros cross/xorg-sgml-doctools HOMEPAGE = https://www.x.org -COMMENT = X.Org X11 Protocol headers +COMMENT = X.Org X11 Protocol headers. LICENSE = GPLv2/GPLv3 -PRE_CONFIGURE_TARGET = $(PKG_NAME)_pre_configure GNU_CONFIGURE = 1 PKG_CONFIG_PATH = install/usr/local/xorgproto/share/pkgconfig -CONFIGURE_ARGS = --datarootdir=$$INSTALL_PREFIX/lib + +CONFIGURE_ARGS = --datarootdir=$(INSTALL_PREFIX)/lib CONFIGURE_ARGS += --without-xmlto CONFIGURE_ARGS += --disable-specs include ../../mk/spksrc.cross-cc.mk - -.PHONY: $(PKG_NAME)_pre_configure -$(PKG_NAME)_pre_configure: - $(RUN) autoreconf -i -f -v -I $(INSTALL_DIR)$(INSTALL_PREFIX)/lib/aclocal diff --git a/cross/xorgproto/PLIST b/cross/xorgproto/PLIST index 1bca73b5073..e69de29bb2d 100644 --- a/cross/xorgproto/PLIST +++ b/cross/xorgproto/PLIST @@ -1,156 +0,0 @@ -rsc:include/GL/glxint.h -rsc:include/GL/glxmd.h -rsc:include/GL/glxproto.h -rsc:include/GL/glxtokens.h -rsc:include/GL/internal/glcore.h -rsc:include/X11/ap_keysym.h -rsc:include/X11/DECkeysym.h -rsc:include/X11/dri/xf86dri.h -rsc:include/X11/dri/xf86driproto.h -rsc:include/X11/dri/xf86dristr.h -rsc:include/X11/extensions/ag.h -rsc:include/X11/extensions/agproto.h -rsc:include/X11/extensions/applewmconst.h -rsc:include/X11/extensions/applewmproto.h -rsc:include/X11/extensions/bigreqsproto.h -rsc:include/X11/extensions/bigreqstr.h -rsc:include/X11/extensions/composite.h -rsc:include/X11/extensions/compositeproto.h -rsc:include/X11/extensions/cup.h -rsc:include/X11/extensions/cupproto.h -rsc:include/X11/extensions/damageproto.h -rsc:include/X11/extensions/damagewire.h -rsc:include/X11/extensions/dbe.h -rsc:include/X11/extensions/dbeproto.h -rsc:include/X11/extensions/dmx.h -rsc:include/X11/extensions/dmxproto.h -rsc:include/X11/extensions/dpmsconst.h -rsc:include/X11/extensions/dpmsproto.h -rsc:include/X11/extensions/dri2proto.h -rsc:include/X11/extensions/dri2tokens.h -rsc:include/X11/extensions/dri3proto.h -rsc:include/X11/extensions/EVI.h -rsc:include/X11/extensions/EVIproto.h -rsc:include/X11/extensions/ge.h -rsc:include/X11/extensions/geproto.h -rsc:include/X11/extensions/lbx.h -rsc:include/X11/extensions/lbxproto.h -rsc:include/X11/extensions/mitmiscconst.h -rsc:include/X11/extensions/mitmiscproto.h -rsc:include/X11/extensions/multibufconst.h -rsc:include/X11/extensions/multibufproto.h -rsc:include/X11/extensions/panoramiXproto.h -rsc:include/X11/extensions/presentproto.h -rsc:include/X11/extensions/presenttokens.h -rsc:include/X11/extensions/randr.h -rsc:include/X11/extensions/randrproto.h -rsc:include/X11/extensions/recordconst.h -rsc:include/X11/extensions/recordproto.h -rsc:include/X11/extensions/recordstr.h -rsc:include/X11/extensions/render.h -rsc:include/X11/extensions/renderproto.h -rsc:include/X11/extensions/saver.h -rsc:include/X11/extensions/saverproto.h -rsc:include/X11/extensions/secur.h -rsc:include/X11/extensions/securproto.h -rsc:include/X11/extensions/shapeconst.h -rsc:include/X11/extensions/shapeproto.h -rsc:include/X11/extensions/shapestr.h -rsc:include/X11/extensions/shm.h -rsc:include/X11/extensions/shmproto.h -rsc:include/X11/extensions/shmstr.h -rsc:include/X11/extensions/syncconst.h -rsc:include/X11/extensions/syncproto.h -rsc:include/X11/extensions/syncstr.h -rsc:include/X11/extensions/xcmiscproto.h -rsc:include/X11/extensions/xcmiscstr.h -rsc:include/X11/extensions/xf86bigfont.h -rsc:include/X11/extensions/xf86bigfproto.h -rsc:include/X11/extensions/xf86bigfstr.h -rsc:include/X11/extensions/xf86dga1const.h -rsc:include/X11/extensions/xf86dga1proto.h -rsc:include/X11/extensions/xf86dga1str.h -rsc:include/X11/extensions/xf86dgaconst.h -rsc:include/X11/extensions/xf86dga.h -rsc:include/X11/extensions/xf86dgaproto.h -rsc:include/X11/extensions/xf86dgastr.h -rsc:include/X11/extensions/xf86vm.h -rsc:include/X11/extensions/xf86vmproto.h -rsc:include/X11/extensions/xf86vmstr.h -rsc:include/X11/extensions/xfixesproto.h -rsc:include/X11/extensions/xfixeswire.h -rsc:include/X11/extensions/XI2.h -rsc:include/X11/extensions/XI2proto.h -rsc:include/X11/extensions/XI.h -rsc:include/X11/extensions/XIproto.h -rsc:include/X11/extensions/XKB.h -rsc:include/X11/extensions/XKBproto.h -rsc:include/X11/extensions/XKBsrv.h -rsc:include/X11/extensions/XKBstr.h -rsc:include/X11/extensions/XResproto.h -rsc:include/X11/extensions/xtestconst.h -rsc:include/X11/extensions/xtestext1const.h -rsc:include/X11/extensions/xtestext1proto.h -rsc:include/X11/extensions/xtestproto.h -rsc:include/X11/extensions/Xv.h -rsc:include/X11/extensions/XvMC.h -rsc:include/X11/extensions/XvMCproto.h -rsc:include/X11/extensions/Xvproto.h -rsc:include/X11/fonts/font.h -rsc:include/X11/fonts/fontproto.h -rsc:include/X11/fonts/fontstruct.h -rsc:include/X11/fonts/FS.h -rsc:include/X11/fonts/fsmasks.h -rsc:include/X11/fonts/FSproto.h -rsc:include/X11/HPkeysym.h -rsc:include/X11/keysymdef.h -rsc:include/X11/keysym.h -rsc:include/X11/Sunkeysym.h -rsc:include/X11/Xalloca.h -rsc:include/X11/Xarch.h -rsc:include/X11/Xatom.h -rsc:include/X11/Xdefs.h -rsc:include/X11/XF86keysym.h -rsc:include/X11/Xfuncproto.h -rsc:include/X11/Xfuncs.h -rsc:include/X11/X.h -rsc:include/X11/Xmd.h -rsc:include/X11/Xosdefs.h -rsc:include/X11/Xos.h -rsc:include/X11/Xos_r.h -rsc:include/X11/Xpoll.h -rsc:include/X11/Xproto.h -rsc:include/X11/Xprotostr.h -rsc:include/X11/Xthreads.h -rsc:include/X11/Xw32defs.h -rsc:include/X11/XWDFile.h -rsc:include/X11/Xwindows.h -rsc:include/X11/Xwinsock.h -rsc:lib/pkgconfig/applewmproto.pc -rsc:lib/pkgconfig/bigreqsproto.pc -rsc:lib/pkgconfig/compositeproto.pc -rsc:lib/pkgconfig/damageproto.pc -rsc:lib/pkgconfig/dmxproto.pc -rsc:lib/pkgconfig/dpmsproto.pc -rsc:lib/pkgconfig/dri2proto.pc -rsc:lib/pkgconfig/dri3proto.pc -rsc:lib/pkgconfig/fixesproto.pc -rsc:lib/pkgconfig/fontsproto.pc -rsc:lib/pkgconfig/glproto.pc -rsc:lib/pkgconfig/inputproto.pc -rsc:lib/pkgconfig/kbproto.pc -rsc:lib/pkgconfig/presentproto.pc -rsc:lib/pkgconfig/randrproto.pc -rsc:lib/pkgconfig/recordproto.pc -rsc:lib/pkgconfig/renderproto.pc -rsc:lib/pkgconfig/resourceproto.pc -rsc:lib/pkgconfig/scrnsaverproto.pc -rsc:lib/pkgconfig/videoproto.pc -rsc:lib/pkgconfig/xcmiscproto.pc -rsc:lib/pkgconfig/xextproto.pc -rsc:lib/pkgconfig/xf86bigfontproto.pc -rsc:lib/pkgconfig/xf86dgaproto.pc -rsc:lib/pkgconfig/xf86driproto.pc -rsc:lib/pkgconfig/xf86vidmodeproto.pc -rsc:lib/pkgconfig/xineramaproto.pc -rsc:lib/pkgconfig/xproto.pc diff --git a/cross/xorgproto/digests b/cross/xorgproto/digests index 086fc630ac1..f41f6085006 100644 --- a/cross/xorgproto/digests +++ b/cross/xorgproto/digests @@ -1,3 +1,3 @@ -xorgproto-2021.4.tar.bz2 SHA1 dec30f11deefa1e1655db24f4dc42fbafad368fd -xorgproto-2021.4.tar.bz2 SHA256 0f5157030162844b398e7ce69b8bb967c2edb8064b0a9c9bb5517eb621459fbf -xorgproto-2021.4.tar.bz2 MD5 fb7593911f90727adc03d731e286c685 +xorgproto-2024.1.tar.xz SHA1 49a078b1150463d0b633c6c75becf291b318a8c8 +xorgproto-2024.1.tar.xz SHA256 372225fd40815b8423547f5d890c5debc72e88b91088fbfb13158c20495ccb59 +xorgproto-2024.1.tar.xz MD5 12374d29fb5ae642cfa872035e401640 diff --git a/cross/xtrans/Makefile b/cross/xtrans/Makefile index 9d1acad083d..2b728e6560a 100644 --- a/cross/xtrans/Makefile +++ b/cross/xtrans/Makefile @@ -1,6 +1,6 @@ PKG_NAME = xtrans -PKG_VERS = 1.4.0 -PKG_EXT = tar.bz2 +PKG_VERS = 1.5.2 +PKG_EXT = tar.xz PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT) PKG_DIST_SITE = https://www.x.org/archive/individual/lib PKG_DIR = $(PKG_NAME)-$(PKG_VERS) @@ -8,11 +8,11 @@ PKG_DIR = $(PKG_NAME)-$(PKG_VERS) DEPENDS = cross/xorg-x11-util-macros HOMEPAGE = https://www.x.org -COMMENT = X.Org X11 developmental X transport library +COMMENT = X.Org X11 developmental X transport library. LICENSE = GPLv2/GPLv3 GNU_CONFIGURE = 1 -CONFIGURE_ARGS = --datarootdir=$$INSTALL_PREFIX/lib +CONFIGURE_ARGS = --datarootdir=$(INSTALL_PREFIX)/lib CONFIGURE_ARGS += --disable-docs PATCHES_LEVEL = 1 diff --git a/cross/xtrans/PLIST b/cross/xtrans/PLIST index f4fc2b1faa5..e69de29bb2d 100644 --- a/cross/xtrans/PLIST +++ b/cross/xtrans/PLIST @@ -1,9 +0,0 @@ -rsc:include/X11/Xtrans/transport.c -rsc:include/X11/Xtrans/Xtrans.c -rsc:include/X11/Xtrans/Xtrans.h -rsc:include/X11/Xtrans/Xtransint.h -rsc:include/X11/Xtrans/Xtranslcl.c -rsc:include/X11/Xtrans/Xtranssock.c -rsc:include/X11/Xtrans/Xtransutil.c -rsc:lib/aclocal/xtrans.m4 -rsc:lib/pkgconfig/xtrans.pc diff --git a/cross/xtrans/digests b/cross/xtrans/digests index 2b2bacf9e12..f21816a5d62 100644 --- a/cross/xtrans/digests +++ b/cross/xtrans/digests @@ -1,3 +1,3 @@ -xtrans-1.4.0.tar.bz2 SHA1 7c490026efb450798e02b040c05eba5212291c08 -xtrans-1.4.0.tar.bz2 SHA256 377c4491593c417946efcd2c7600d1e62639f7a8bbca391887e2c4679807d773 -xtrans-1.4.0.tar.bz2 MD5 ce2fb8100c6647ee81451ebe388b17ad +xtrans-1.5.2.tar.xz SHA1 492987aa3385dcdb2c6a325b276298e4613a63f2 +xtrans-1.5.2.tar.xz SHA256 5c5cbfe34764a9131d048f03c31c19e57fb4c682d67713eab6a65541b4dff86c +xtrans-1.5.2.tar.xz MD5 1155b410c778f805659baf4373db2b92 diff --git a/cross/xtrans/patches/xtrans-1.0.3-avoid-gethostname.patch b/cross/xtrans/patches/001-xtrans-avoid-gethostname.patch similarity index 100% rename from cross/xtrans/patches/xtrans-1.0.3-avoid-gethostname.patch rename to cross/xtrans/patches/001-xtrans-avoid-gethostname.patch diff --git a/spk/java-21-openjdk/Makefile b/spk/java-21-openjdk/Makefile new file mode 100644 index 00000000000..5aa1c0efd3d --- /dev/null +++ b/spk/java-21-openjdk/Makefile @@ -0,0 +1,54 @@ +SPK_NAME = java-21-openjdk +JAVA_RELEASE = 11 +JAVA_VERSION = 21.0.5 +SPK_VERS = $(JAVA_VERSION).$(JAVA_RELEASE) +SPK_REV = 1 +SPK_ICON = src/java-openjdk.png + +DEPENDS = cross/java-21-openjdk + +# gcc >= 5.0 required +REQUIRED_MIN_DSM = 7.0 +UNSUPPORTED_ARCHS = comcerto2k + +MAINTAINER = SynoCommunity +DESCRIPTION = OpenJDK version $(JAVA_VERSION)+$(JAVA_RELEASE). OpenJDK 21 is the open-source reference implementation of version 21 of the Java SE Platform as specified by JSR 396 in the Java Community Process. + +STARTABLE = no +DISPLAY_NAME = Java 21 OpenJDK +CHANGELOG = "Initial Java 21 package release." + +HOMEPAGE = https://openjdk.org/projects/jdk/21/ +LICENSE_FILE = src/LICENSE + +SPK_COMMANDS += bin/jar +SPK_COMMANDS += bin/jarsigner +SPK_COMMANDS += bin/java +SPK_COMMANDS += bin/javac +SPK_COMMANDS += bin/javadoc +SPK_COMMANDS += bin/javap +SPK_COMMANDS += bin/jcmd +SPK_COMMANDS += bin/jconsole +SPK_COMMANDS += bin/jdb +SPK_COMMANDS += bin/jdeprscan +SPK_COMMANDS += bin/jdeps +SPK_COMMANDS += bin/jfr +SPK_COMMANDS += bin/jhsdb +SPK_COMMANDS += bin/jimage +SPK_COMMANDS += bin/jinfo +SPK_COMMANDS += bin/jlink +SPK_COMMANDS += bin/jmap +SPK_COMMANDS += bin/jmod +SPK_COMMANDS += bin/jpackage +SPK_COMMANDS += bin/jps +SPK_COMMANDS += bin/jrunscript +SPK_COMMANDS += bin/jshell +SPK_COMMANDS += bin/jstack +SPK_COMMANDS += bin/jstat +SPK_COMMANDS += bin/jstatd +SPK_COMMANDS += bin/jwebserver +SPK_COMMANDS += bin/keytool +SPK_COMMANDS += bin/rmiregistry +SPK_COMMANDS += bin/serialver + +include ../../mk/spksrc.spk.mk diff --git a/spk/java-21-openjdk/src/LICENSE b/spk/java-21-openjdk/src/LICENSE new file mode 100644 index 00000000000..8b400c7ab81 --- /dev/null +++ b/spk/java-21-openjdk/src/LICENSE @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff --git a/spk/java-21-openjdk/src/java-openjdk.png b/spk/java-21-openjdk/src/java-openjdk.png new file mode 100644 index 0000000000000000000000000000000000000000..f3d68c09522e953fe141b8b04804f1d259dc01b3 GIT binary patch literal 59693 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 GDe`~wc+NHe literal 0 HcmV?d00001 From e8a513012af8b8e2d98288b944c8d119aa2b04fd Mon Sep 17 00:00:00 2001 From: hgy59 Date: Thu, 16 Jan 2025 07:26:56 +0100 Subject: [PATCH 2/6] add native/openjdk-21 --- native/openjdk-21/Makefile | 16 ++++++++++++++++ native/openjdk-21/digests | 3 +++ 2 files changed, 19 insertions(+) create mode 100644 native/openjdk-21/Makefile create mode 100644 native/openjdk-21/digests diff --git a/native/openjdk-21/Makefile b/native/openjdk-21/Makefile new file mode 100644 index 00000000000..e9d4cc08a48 --- /dev/null +++ b/native/openjdk-21/Makefile @@ -0,0 +1,16 @@ +PKG_NAME = openjdk-21 +PKG_VERS = 35 +PKG_EXT = tar.gz +PKG_DIST_NAME = $(PKG_NAME)+$(PKG_VERS)_linux-x64_bin.$(PKG_EXT) +PKG_DIST_SITE = https://download.java.net/openjdk/jdk21/ri +PKG_DIR = jdk-21 + +HOMEPAGE = https://jdk.java.net/java-se-ri/21 +COMMENT = The official Reference Implementation for Java SE 17 (JSR 392). +# openjdk.java.net/legal/gplv2+ce.html +LICENSE = GPL v2 with Classpath Exception + +# use the jdk-21 folder (i.e. PKG_DIR) +INSTALL_TARGET = nop + +include ../../mk/spksrc.native-install.mk diff --git a/native/openjdk-21/digests b/native/openjdk-21/digests new file mode 100644 index 00000000000..58d3eb87714 --- /dev/null +++ b/native/openjdk-21/digests @@ -0,0 +1,3 @@ +openjdk-21+35_linux-x64_bin.tar.gz SHA1 e02f120dfe2a7d4aa288d657b25353c0e9e2d1f0 +openjdk-21+35_linux-x64_bin.tar.gz SHA256 a30c454a9bef8f46d5f1bf3122830014a8fbe7ac03b5f8729bc3add4b92a1d0a +openjdk-21+35_linux-x64_bin.tar.gz MD5 f57c4f6c0081be1e2f69f3d2e339ffb9 From 65ef45d0e7b7149a1468ec3684d5c728e8c3b357 Mon Sep 17 00:00:00 2001 From: hgy59 Date: Thu, 16 Jan 2025 18:45:44 +0100 Subject: [PATCH 3/6] fix cross/libXt --- cross/libXt/Makefile | 8 +++++++- cross/libXt/patches/001-fix-xtos_h.patch | 14 ++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 cross/libXt/patches/001-fix-xtos_h.patch diff --git a/cross/libXt/Makefile b/cross/libXt/Makefile index 45d8b75a9f1..541b5452745 100644 --- a/cross/libXt/Makefile +++ b/cross/libXt/Makefile @@ -11,12 +11,18 @@ HOMEPAGE = https://www.x.org COMMENT = X.Org X11 libXt runtime library. LICENSE = GPLv2/GPLv3 +POST_CONFIGURE_TARGET = libXt_post_configure_target + GNU_CONFIGURE = 1 CONFIGURE_ARGS = --datarootdir=$(INSTALL_PREFIX)/lib CONFIGURE_ARGS += --enable-malloc0returnsnull CONFIGURE_ARGS += --without-xmlto CONFIGURE_ARGS += --without-fop CONFIGURE_ARGS += --disable-static -PATCHES_LEVEL = 1 include ../../mk/spksrc.cross-cc.mk + +.PHONY: libXt_post_configure_target +libXt_post_configure_target: + @$(MSG) "Avoid invalid CPPFLAGS (for 32-bit ARM archs) in util folder" + @$(RUN) sed -e 's,^CPPFLAGS =.*,CPPFLAGS =,g' -i.bak util/Makefile diff --git a/cross/libXt/patches/001-fix-xtos_h.patch b/cross/libXt/patches/001-fix-xtos_h.patch new file mode 100644 index 00000000000..aebaa2c8ed2 --- /dev/null +++ b/cross/libXt/patches/001-fix-xtos_h.patch @@ -0,0 +1,14 @@ +# There is a syntax error affecting gcc < 5 (i.e. DSM 6 builds) +# mismatched parentheses in definition of LONG64 +# +--- include/X11/Xtos.h.orig 2024-11-17 04:44:07.000000000 +0000 ++++ include/X11/Xtos.h 2025-01-16 06:07:21.651837413 +0000 +@@ -64,7 +64,7 @@ + defined(__s390x__) || \ + (defined(__hppa__) && defined(__LP64__)) || \ + defined(__amd64__) || defined(amd64) || \ +- defined(__powerpc64__)) ++ defined(__powerpc64__) + #define LONG64 + #endif + From 85974bf43c70011d8c67f9a79bebfb2636c9a15c Mon Sep 17 00:00:00 2001 From: hgy59 Date: Thu, 16 Jan 2025 21:50:59 +0100 Subject: [PATCH 4/6] fix build for evansport - force cross compilation --- cross/java-21-openjdk/Makefile | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/cross/java-21-openjdk/Makefile b/cross/java-21-openjdk/Makefile index cc170064541..e49a61144b0 100644 --- a/cross/java-21-openjdk/Makefile +++ b/cross/java-21-openjdk/Makefile @@ -12,9 +12,6 @@ PKG_DIR = $(JAVA_REPO_NAME)-$(JAVA_NAME)-$(JAVA_VERSION)-$(JAVA_RELEASE) # build instructions: # https://openjdk.java.net/groups/build/doc/building.html -# debian patches -# https://udd.debian.org/patches.cgi?src=openjdk-21&version=21.0.5%2B11-1 - BUILD_DEPENDS = native/openjdk-21 # Dependencies required at build time only: BUILD_DEPENDS += cross/cups @@ -45,7 +42,7 @@ LICENSE = GPLv2 with the Classpath Exception PRE_CONFIGURE_TARGET = java-21-openjdk_pre_configure PRE_COMPILE_TARGET = java-21-openjdk_pre_compile -POST_INSTALL_TARGET = java-21-openjdk_post_compile +POST_INSTALL_TARGET = java-21-openjdk_post_install CONFIGURE_ARGS = --openjdk-target=$(TC_TARGET) CONFIGURE_ARGS += --with-boot-jdk=$(WORK_DIR)/../../../native/openjdk-21/work-native/jdk-21 @@ -93,6 +90,8 @@ CONFIGURE_ARGS += OBJDUMP=$(OBJDUMP) # Build images twice, second time with newly built JDK COMPILE_MAKE_OPTIONS += product-images +# debian patches +# https://udd.debian.org/patches.cgi?src=openjdk-21&version=21.0.5%2B11-1 PATCHES_LEVEL = 1 # Filter out any -jN since java's configure will autodetect number of CPU's @@ -102,9 +101,14 @@ COMPILE_MAKE_OPTIONS += JOBS=$(NCPUS) include ../../mk/spksrc.cross-cc.mk +ifeq ($(findstring $(ARCH),$(i686_ARCHS)),$(ARCH)) +# force cross compilation +CONFIGURE_ARGS += --build=x86_64-pc-linux-gnu +PLIST_TRANSFORM = sed -e '/lib\/libjsvml/d' -e '/lib\/server\/classes/d' -e '/jmods\/jdk.internal.vm/d' + # ABI profile for ARM builds: # arm-vfp-sflt, arm-vfp-hflt, arm-sflt, armv5-vfp-sflt, armv6-vfp-hflt, aarch64 -ifeq ($(findstring $(ARCH),$(ARMv8_ARCHS)),$(ARCH)) +else ifeq ($(findstring $(ARCH),$(ARMv8_ARCHS)),$(ARCH)) CONFIGURE_ARGS += --with-abi-profile=aarch64 PLIST_TRANSFORM = sed -e '/lib\/libjsvml/d' -e '/lib\/server\/classes/d' else ifeq ($(findstring $(ARCH),$(ARMv7_ARCHS)),$(ARCH)) @@ -122,8 +126,8 @@ java-21-openjdk_pre_compile: @$(MSG) "- Force openjdk to install into the package install folder" @sed -i -e "s|\$$(INSTALL_PREFIX)|$(STAGING_INSTALL_PREFIX)|g" $(WORK_DIR)/$(PKG_DIR)/make/Install.gmk -.PHONY: java-21-openjdk_post_compile -java-21-openjdk_post_compile: +.PHONY: java-21-openjdk_post_install +java-21-openjdk_post_install: @$(MSG) "- Link binaries into bin folder" @cd $(STAGING_INSTALL_PREFIX)/bin && ln -sf ../jvm/openjdk-$(JAVA_VERSION)/bin/* . @$(MSG) "- Add license files" From 460c9b5a3a31951a1363d43d59dbc25398ce6f6c Mon Sep 17 00:00:00 2001 From: hgy59 Date: Fri, 17 Jan 2025 11:36:13 +0100 Subject: [PATCH 5/6] java-21-openjdk: add debian patches --- cross/java-21-openjdk/Makefile | 2 +- .../patches/101-jdk-8307977-proposed.patch | 83 +++++++++++++++++++ .../patches/102-jdk-8318418.patch | 49 +++++++++++ .../patches/103-jdk-8329983.patch | 22 +++++ .../patches/104-jdk-8331541.patch | 34 ++++++++ .../patches/105-jdk-8334502-proposed.patch | 21 +++++ .../patches/106-jdk-8334895-proposed.patch | 22 +++++ .../patches/107-jdk-8336529-proposed.patch | 57 +++++++++++++ .../patches/108-jdk-8312488.patch | 58 +++++++++++++ 9 files changed, 347 insertions(+), 1 deletion(-) create mode 100644 cross/java-21-openjdk/patches/101-jdk-8307977-proposed.patch create mode 100644 cross/java-21-openjdk/patches/102-jdk-8318418.patch create mode 100644 cross/java-21-openjdk/patches/103-jdk-8329983.patch create mode 100644 cross/java-21-openjdk/patches/104-jdk-8331541.patch create mode 100644 cross/java-21-openjdk/patches/105-jdk-8334502-proposed.patch create mode 100644 cross/java-21-openjdk/patches/106-jdk-8334895-proposed.patch create mode 100644 cross/java-21-openjdk/patches/107-jdk-8336529-proposed.patch create mode 100644 cross/java-21-openjdk/patches/108-jdk-8312488.patch diff --git a/cross/java-21-openjdk/Makefile b/cross/java-21-openjdk/Makefile index e49a61144b0..f8f9e389631 100644 --- a/cross/java-21-openjdk/Makefile +++ b/cross/java-21-openjdk/Makefile @@ -118,7 +118,7 @@ endif .PHONY: java-21-openjdk_pre_configure java-21-openjdk_pre_configure: - @$(MSG) "- Set exe flag on configure script" + @$(MSG) "- Make configure script executable" @cd $(WORK_DIR)/$(PKG_DIR) && chmod +x ./configure .PHONY: java-21-openjdk_pre_compile diff --git a/cross/java-21-openjdk/patches/101-jdk-8307977-proposed.patch b/cross/java-21-openjdk/patches/101-jdk-8307977-proposed.patch new file mode 100644 index 00000000000..4d70dca8fb9 --- /dev/null +++ b/cross/java-21-openjdk/patches/101-jdk-8307977-proposed.patch @@ -0,0 +1,83 @@ +https://sources.debian.org/src/openjdk-21/21.0.5+11-1/debian/patches/jdk-8307977-proposed.patch + +Description: attach in linux hangs due to permission denied accessing /proc/pid/root + The attach API uses /proc/pid/root in order to support containers. + Dereferencing this symlink is governed by ptrace access mode PTRACE_MODE_READ_FSCREDS + which may not succeed when running as the user running the JRE. + This breaks running jcmd and jmap as the same user the JVM is running as. + Use tmpdir when pid matches ns_pid. +Author: Sebastian Lövdahl +Bug: https://bugs.openjdk.org/browse/JDK-8307977 +Bug: https://bugs.openjdk.org/browse/JDK-8226919 +Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1034601 +Last-Update: 2023-04-18 + +From 36b554e2de46d77898be4d0feae0ee2171b445bc Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Sebastian=20L=C3=B6vdahl?= +Date: Tue, 18 Apr 2023 12:50:32 +0300 +Subject: [PATCH] 8226919: Fix dynamic attach in Linux for non-container + environments + +--- + .../sun/tools/attach/VirtualMachineImpl.java | 37 ++++++++++++------- + 1 file changed, 23 insertions(+), 14 deletions(-) + +--- a/src/jdk.attach/linux/classes/sun/tools/attach/VirtualMachineImpl.java ++++ b/src/jdk.attach/linux/classes/sun/tools/attach/VirtualMachineImpl.java +@@ -210,11 +210,8 @@ public class VirtualMachineImpl extends + } + + // Return the socket file for the given process. +- private File findSocketFile(int pid, int ns_pid) { +- // A process may not exist in the same mount namespace as the caller. +- // Instead, attach relative to the target root filesystem as exposed by +- // procfs regardless of namespaces. +- String root = "/proc/" + pid + "/root/" + tmpdir; ++ private File findSocketFile(int pid, int ns_pid) throws IOException { ++ String root = findTargetProcessTmpDirectory(pid, ns_pid); + return new File(root, ".java_pid" + ns_pid); + } + +@@ -230,21 +227,33 @@ public class VirtualMachineImpl extends + // Do not canonicalize the file path, or we will fail to attach to a VM in a container. + f.createNewFile(); + } catch (IOException x) { +- String root; +- if (pid != ns_pid) { +- // A process may not exist in the same mount namespace as the caller. +- // Instead, attach relative to the target root filesystem as exposed by +- // procfs regardless of namespaces. +- root = "/proc/" + pid + "/root/" + tmpdir; +- } else { +- root = tmpdir; +- } ++ String root = findTargetProcessTmpDirectory(pid, ns_pid); + f = new File(root, fn); + f.createNewFile(); + } + return f; + } + ++ private String findTargetProcessTmpDirectory(int pid, int ns_pid) throws IOException { ++ String root; ++ if (pid != ns_pid) { ++ // A process may not exist in the same mount namespace as the caller. ++ // Instead, attach relative to the target root filesystem as exposed by ++ // procfs regardless of namespaces. ++ String procRootDirectory = "/proc/" + pid + "/root"; ++ if (!Files.isReadable(Path.of(procRootDirectory))) { ++ throw new IOException( ++ String.format("Unable to access root directory %s " + ++ "of target process %d", procRootDirectory, pid)); ++ } ++ ++ root = procRootDirectory + "/" + tmpdir; ++ } else { ++ root = tmpdir; ++ } ++ return root; ++ } ++ + /* + * Write/sends the given to the target VM. String is transmitted in + * UTF-8 encoding. diff --git a/cross/java-21-openjdk/patches/102-jdk-8318418.patch b/cross/java-21-openjdk/patches/102-jdk-8318418.patch new file mode 100644 index 00000000000..01ee40c1f71 --- /dev/null +++ b/cross/java-21-openjdk/patches/102-jdk-8318418.patch @@ -0,0 +1,49 @@ +https://sources.debian.org/src/openjdk-21/21.0.5+11-1/debian/patches/jdk-8318418.patch + +Description: 8318418: hsdis build fails with system binutils on Ubuntu + Ubuntu does not need libiberty.h include for the build. +Origin: upstream, https://github.com/openjdk/jdk/commit/3c70f2c1e9fb91cd5d7a66ef1e2a39672230208c +Author: Daniel Jeliński +Bug: https://bugs.openjdk.org/browse/JDK-8318418 +Last-Update: 2024-03-12 + +diff --git a/make/autoconf/lib-hsdis.m4 b/make/autoconf/lib-hsdis.m4 +index 470a0ae8358..974d0e8b793 100644 +--- a/make/autoconf/lib-hsdis.m4 ++++ b/make/autoconf/lib-hsdis.m4 +@@ -1,5 +1,5 @@ + # +-# Copyright (c) 2021, 2022, Oracle and/or its affiliates. All rights reserved. ++# Copyright (c) 2021, 2023, Oracle and/or its affiliates. All rights reserved. + # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + # + # This code is free software; you can redistribute it and/or modify it +@@ -236,7 +236,8 @@ AC_DEFUN([LIB_SETUP_HSDIS_BINUTILS], + if test "x$BINUTILS_DIR" = xsystem; then + AC_CHECK_LIB(bfd, bfd_openr, [ HSDIS_LIBS="-lbfd" ], [ binutils_system_error="libbfd not found" ]) + AC_CHECK_LIB(opcodes, disassembler, [ HSDIS_LIBS="$HSDIS_LIBS -lopcodes" ], [ binutils_system_error="libopcodes not found" ]) +- AC_CHECK_LIB(iberty, xmalloc, [ HSDIS_LIBS="$HSDIS_LIBS -liberty" ], [ binutils_system_error="libiberty not found" ]) ++ # libiberty is not required on Ubuntu ++ AC_CHECK_LIB(iberty, xmalloc, [ HSDIS_LIBS="$HSDIS_LIBS -liberty" ]) + AC_CHECK_LIB(z, deflate, [ HSDIS_LIBS="$HSDIS_LIBS -lz" ], [ binutils_system_error="libz not found" ]) + HSDIS_CFLAGS="-DLIBARCH_$OPENJDK_TARGET_CPU_LEGACY_LIB" + elif test "x$BINUTILS_DIR" != x; then +diff --git a/src/utils/hsdis/binutils/hsdis-binutils.c b/src/utils/hsdis/binutils/hsdis-binutils.c +index 279ed53ba5d..28e374e05fc 100644 +--- a/src/utils/hsdis/binutils/hsdis-binutils.c ++++ b/src/utils/hsdis/binutils/hsdis-binutils.c +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2008, 2021, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2008, 2023, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * The Universal Permissive License (UPL), Version 1.0 +@@ -57,7 +57,6 @@ + #include + #include + +-#include + #include + #include + diff --git a/cross/java-21-openjdk/patches/103-jdk-8329983.patch b/cross/java-21-openjdk/patches/103-jdk-8329983.patch new file mode 100644 index 00000000000..8063627e548 --- /dev/null +++ b/cross/java-21-openjdk/patches/103-jdk-8329983.patch @@ -0,0 +1,22 @@ +https://sources.debian.org/src/openjdk-21/21.0.5+11-1/debian/patches/jdk-8329983.patch + +Description: remove declaration of _Copy_conjoint_bytes + JDK-8142362 removed implementation of _Copy_conjoint_bytes + but left the symbol declaration in for armhf. + This causes link failure against libjvm.so. +Author: Vladimir Petko +Bug: https://bugs.openjdk.org/browse/JDK-8329983 +Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/collectd/+bug/2058966 +Last-Update: 2024-04-10 + +--- a/src/hotspot/os_cpu/linux_arm/linux_arm_32.S ++++ b/src/hotspot/os_cpu/linux_arm/linux_arm_32.S +@@ -28,8 +28,6 @@ + # point or use it in the same manner as does the server + # compiler. + +- .globl _Copy_conjoint_bytes +- .type _Copy_conjoint_bytes, %function + .globl _Copy_arrayof_conjoint_bytes + .type _Copy_arrayof_conjoint_bytes, %function + .globl _Copy_disjoint_words diff --git a/cross/java-21-openjdk/patches/104-jdk-8331541.patch b/cross/java-21-openjdk/patches/104-jdk-8331541.patch new file mode 100644 index 00000000000..04311147311 --- /dev/null +++ b/cross/java-21-openjdk/patches/104-jdk-8331541.patch @@ -0,0 +1,34 @@ +https://sources.debian.org/src/openjdk-21/21.0.5+11-1/debian/patches/jdk-8331541.patch + +Description: 8331541: [i386] linking with libjvm.so fails after JDK-8283326 + i386 declaration of _SafeFetch32_impl contains an underscore + that causes an undefined symbol in libjvm.so. + Disable -Wl,--allow-shlib-undefined link flag that allowed the + build to succeed. +Author: Vladimir Petko +Origin: https://github.com/openjdk/jdk/pull/19048 +Bug: https://bugs.openjdk.org/browse/JDK-8331541 +Applied-Upstream: commit:2d622152b07bba0aba8fd5b1e24293e28d6e69f5 +Last-Update: 2024-05-02 + +--- a/make/autoconf/flags-ldflags.m4 ++++ b/make/autoconf/flags-ldflags.m4 +@@ -133,7 +133,6 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER], + + # Setup LDFLAGS for linking executables + if test "x$TOOLCHAIN_TYPE" = xgcc; then +- EXECUTABLE_LDFLAGS="$EXECUTABLE_LDFLAGS -Wl,--allow-shlib-undefined" + # Enabling pie on 32 bit builds prevents the JVM from allocating a continuous + # java heap. + if test "x$OPENJDK_TARGET_CPU_BITS" != "x32"; then +--- a/src/hotspot/os_cpu/linux_x86/safefetch_linux_x86_32.S ++++ b/src/hotspot/os_cpu/linux_x86/safefetch_linux_x86_32.S +@@ -32,7 +32,7 @@ + # 8(%esp) : default value + # 4(%esp) : crash address + # 0(%esp) : return pc +- .type _SafeFetch32_impl,@function ++ .type SafeFetch32_impl,@function + SafeFetch32_impl: + movl 4(%esp),%ecx # load address from stack + _SafeFetch32_fault: diff --git a/cross/java-21-openjdk/patches/105-jdk-8334502-proposed.patch b/cross/java-21-openjdk/patches/105-jdk-8334502-proposed.patch new file mode 100644 index 00000000000..e26a1f4bbfe --- /dev/null +++ b/cross/java-21-openjdk/patches/105-jdk-8334502-proposed.patch @@ -0,0 +1,21 @@ +https://sources.debian.org/src/openjdk-21/21.0.5+11-1/debian/patches/jdk-8334502-proposed.patch + +Description: use int instead of time_t to print timezone info + printf() call uses %02d format specifier that requires an int parameter. +Author: Vladimir Petko +Bug: https://bugs.openjdk.org/browse/JDK-8334502 +Last-Update: 2024-06-19 + +--- a/src/hotspot/share/runtime/os.cpp ++++ b/src/hotspot/share/runtime/os.cpp +@@ -197,8 +197,8 @@ char* os::iso8601_time(jlong millisecond + abs_local_to_UTC = -(abs_local_to_UTC); + } + // Convert time zone offset seconds to hours and minutes. +- const time_t zone_hours = (abs_local_to_UTC / seconds_per_hour); +- const time_t zone_min = ++ const int zone_hours = (abs_local_to_UTC / seconds_per_hour); ++ const int zone_min = + ((abs_local_to_UTC % seconds_per_hour) / seconds_per_minute); + + // Print an ISO 8601 date and time stamp into the buffer diff --git a/cross/java-21-openjdk/patches/106-jdk-8334895-proposed.patch b/cross/java-21-openjdk/patches/106-jdk-8334895-proposed.patch new file mode 100644 index 00000000000..cf3c2884637 --- /dev/null +++ b/cross/java-21-openjdk/patches/106-jdk-8334895-proposed.patch @@ -0,0 +1,22 @@ +https://sources.debian.org/src/openjdk-21/21.0.5+11-1/debian/patches/jdk-8334895-proposed.patch + +Description: set default compatible cds alignment to auto for arm64 + ARM64 requires cds alignment option to be enabled if CDS is enabled. + Setting it to true will enable the option even if CDS is disabled + causing a configuration error. Setting option to auto allows one to + enable it only when CDS is enabled. +Author: Vladimir Petko +Bug: https://bugs.openjdk.org/browse/JDK-8334895 +Last-Update: 2024-06-25 + +--- a/make/autoconf/jdk-options.m4 ++++ b/make/autoconf/jdk-options.m4 +@@ -197,7 +197,7 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_JDK_OPTIONS] + # three different page sizes: 4K, 64K, and if run on Mac m1 hardware, 16K. + COMPATIBLE_CDS_ALIGNMENT_DEFAULT=false + if test "x$OPENJDK_TARGET_OS" = "xlinux" && test "x$OPENJDK_TARGET_CPU" = "xaarch64"; then +- COMPATIBLE_CDS_ALIGNMENT_DEFAULT=true ++ COMPATIBLE_CDS_ALIGNMENT_DEFAULT=auto + fi + AC_SUBST(COMPATIBLE_CDS_ALIGNMENT_DEFAULT) + diff --git a/cross/java-21-openjdk/patches/107-jdk-8336529-proposed.patch b/cross/java-21-openjdk/patches/107-jdk-8336529-proposed.patch new file mode 100644 index 00000000000..aa9118942fc --- /dev/null +++ b/cross/java-21-openjdk/patches/107-jdk-8336529-proposed.patch @@ -0,0 +1,57 @@ +https://sources.debian.org/src/openjdk-21/21.0.5+11-1/debian/patches/jdk-8336529-proposed.patch + +Description: (fs) UnixFileAttributeViews setTimes() failing on armhf, Ubuntu noble + time_t transition in Debian/Ubuntu left 32 bit time_t symbols in glibc. + Looking up 'futimens' via dlsym returns 32 bit version of the function. + This is causing failure to set last modified time + (e.g. instead of year 2017 we get 1976 in the test). + Using the function directly correctly calls 64 bit versions. + When we lookup functions with time_t arguments through dlsym() + calls we should use 64 bit versions. +Author: Vladimir Petko +Origin: upstream, https://github.com/openjdk/jdk/pull/20208 +Bug: https://bugs.openjdk.org/browse/JDK-8336529 +Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/openjdk-23/+bug/2073335 +Last-Update: 2024-07-17 +--- + +--- a/src/java.base/unix/native/libnio/fs/UnixNativeDispatcher.c ++++ b/src/java.base/unix/native/libnio/fs/UnixNativeDispatcher.c +@@ -281,6 +281,20 @@ static int fstatat64_wrapper(int dfd, co + } + #endif + ++/** ++ * Lookup time functions symbols, trying 64 bit version first ++ */ ++static void* lookup_time_function(const char* symbol64, const char* symbol) { ++ void* ret = NULL; ++ if (sizeof(time_t) > 4) { ++ ret = dlsym(RTLD_DEFAULT, symbol64); ++ } ++ if (ret == NULL) { ++ ret = dlsym(RTLD_DEFAULT, symbol); ++ } ++ return ret; ++} ++ + #if defined(__linux__) + static int statx_wrapper(int dirfd, const char *restrict pathname, int flags, + unsigned int mask, struct my_statx *restrict statxbuf) { +@@ -385,10 +399,13 @@ Java_sun_nio_fs_UnixNativeDispatcher_ini + my_unlinkat_func = (unlinkat_func*) dlsym(RTLD_DEFAULT, "unlinkat"); + my_renameat_func = (renameat_func*) dlsym(RTLD_DEFAULT, "renameat"); + #ifndef _ALLBSD_SOURCE +- my_futimesat_func = (futimesat_func*) dlsym(RTLD_DEFAULT, "futimesat"); +- my_lutimes_func = (lutimes_func*) dlsym(RTLD_DEFAULT, "lutimes"); ++ my_futimesat_func = (futimesat_func*) lookup_time_function("__futimesat64", ++ "futimesat"); ++ my_lutimes_func = (lutimes_func*) lookup_time_function("__lutimes64", ++ "lutimes"); + #endif +- my_futimens_func = (futimens_func*) dlsym(RTLD_DEFAULT, "futimens"); ++ my_futimens_func = (futimens_func*) lookup_time_function("__futimens64", ++ "futimens"); + #if defined(_AIX) + my_fdopendir_func = (fdopendir_func*) dlsym(RTLD_DEFAULT, "fdopendir64"); + #else diff --git a/cross/java-21-openjdk/patches/108-jdk-8312488.patch b/cross/java-21-openjdk/patches/108-jdk-8312488.patch new file mode 100644 index 00000000000..270f9ad83c0 --- /dev/null +++ b/cross/java-21-openjdk/patches/108-jdk-8312488.patch @@ -0,0 +1,58 @@ +https://sources.debian.org/src/openjdk-21/21.0.5+11-1/debian/patches/jdk-8312488.patch + +Description: tools/jpackage/share/AppLauncherEnvTest.java fails with dynamically linked libstdc++ + The generated image contains libjpackageapplauncheraux.so that + contains a destructor function dcon(). It calls already disposed + logger, causing a crash. +Author: Vladimir Petko +Origin: upstream, https://github.com/openjdk/jdk/commit/78a8a99d990dcc0b77c096bb2ca2c1bb86462e3f +Bug: https://bugs.openjdk.org/browse/JDK-8312488 +Reviewed-By: asemenyuk, almatvee +Last-Update: 2024-07-18 +--- + +--- a/src/jdk.jpackage/share/native/common/app.cpp ++++ b/src/jdk.jpackage/share/native/common/app.cpp +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2020, 2023, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it +@@ -35,7 +35,7 @@ + namespace { + const std::string* theLastErrorMsg = 0; + +-NopLogAppender nopLogAppender; ++char nopLogAppenderMemory[sizeof(NopLogAppender)] = {}; + + class StandardLogAppender : public LogAppender { + public: +@@ -46,7 +46,9 @@ + << ": " << v.message + << std::endl; + } +-} standardLogAppender; ++}; ++ ++char standardLogAppenderMemory[sizeof(StandardLogAppender)] = {}; + + class LastErrorLogAppender : public LogAppender { + public: +@@ -114,10 +116,13 @@ + + int launch(const std::nothrow_t&, + LauncherFunc func, LogAppender* lastErrorLogAppender) { ++ // The log appender is set for the lifetime of the application. ++ // Use in-place new to avoid accessing destroyed instance ++ // when the shared object destructor logs something. + if (isWithLogging()) { +- Logger::defaultLogger().setAppender(standardLogAppender); ++ Logger::defaultLogger().setAppender(*new (standardLogAppenderMemory) StandardLogAppender()); + } else { +- Logger::defaultLogger().setAppender(nopLogAppender); ++ Logger::defaultLogger().setAppender(*new (nopLogAppenderMemory) NopLogAppender()); + } + + LOG_TRACE_FUNCTION(); From 6f9132b7650b3d999457bb30d2d4f0b8617c0ed3 Mon Sep 17 00:00:00 2001 From: hgy59 Date: Fri, 17 Jan 2025 13:17:56 +0100 Subject: [PATCH 6/6] java-11-openjdk: udpate Makefile - avoid make variables in DEPENDS for #6255 --- spk/java-11-openjdk/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spk/java-11-openjdk/Makefile b/spk/java-11-openjdk/Makefile index 581a343acc7..09930dba76a 100644 --- a/spk/java-11-openjdk/Makefile +++ b/spk/java-11-openjdk/Makefile @@ -5,9 +5,9 @@ JAVA_RELEASE = 7 JAVA_VERSION = 11.0.12 SPK_VERS = $(JAVA_VERSION).$(JAVA_RELEASE) SPK_REV = 1 -SPK_ICON = src/$(SPK_NAME).png +SPK_ICON = src/java-11-openjdk.png -DEPENDS = cross/$(SPK_NAME) +DEPENDS = cross/java-11-openjdk MAINTAINER = SynoCommunity DESCRIPTION = OpenJDK version $(JAVA_VERSION)+$(JAVA_RELEASE). OpenJDK 11 is the open-source reference implementation of version 11 of the Java SE Platform as specified by by JSR 384 in the Java Community Process.