Skip to content

Commit

Permalink
openjdk-21: initial package release (#6394)
Browse files Browse the repository at this point in the history
* 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

* add native/openjdk-21

* fix cross/libXt

* fix build for evansport
- force cross compilation

* java-21-openjdk: add debian patches

* java-11-openjdk: udpate Makefile
- avoid make variables in DEPENDS for #6255
  • Loading branch information
hgy59 authored Feb 3, 2025
1 parent bf735f6 commit 44a2cfb
Show file tree
Hide file tree
Showing 76 changed files with 1,276 additions and 852 deletions.
8 changes: 4 additions & 4 deletions cross/cups/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
27 changes: 0 additions & 27 deletions cross/cups/PLIST
Original file line number Diff line number Diff line change
@@ -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
136 changes: 136 additions & 0 deletions cross/java-21-openjdk/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
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

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_install

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

# 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
# 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

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
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))
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) "- Make configure script executable"
@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_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"
@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)/
168 changes: 168 additions & 0 deletions cross/java-21-openjdk/PLIST
Original file line number Diff line number Diff line change
@@ -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
3 changes: 3 additions & 0 deletions cross/java-21-openjdk/digests
Original file line number Diff line number Diff line change
@@ -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
Loading

0 comments on commit 44a2cfb

Please sign in to comment.