Compare commits
	
		
			3 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 1898f24603 | ||
| 0f79d6096e | |||
| 932deebaf8 | 
							
								
								
									
										4
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -1,2 +1,2 @@ | |||||||
| /openjdk-jdk17u-jdk-17.0.7+7.tar.xz | SOURCES/openjdk-21.0.6+7.tar.xz | ||||||
| /tapsets-icedtea-6.0.0pre00-c848b93a8598.tar.xz | SOURCES/tapsets-icedtea-6.0.0pre00-c848b93a8598.tar.xz | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								.java-21-openjdk.metadata
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								.java-21-openjdk.metadata
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,2 @@ | |||||||
|  | fad71f19631dab375285056d10d08374e869bb35 SOURCES/openjdk-21.0.6+7.tar.xz | ||||||
|  | c8281ee37b77d535c9c1af86609a531958ff7b34 SOURCES/tapsets-icedtea-6.0.0pre00-c848b93a8598.tar.xz | ||||||
							
								
								
									
										41
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										41
									
								
								README.md
									
									
									
									
									
								
							| @ -1,41 +0,0 @@ | |||||||
| OpenJDK 17 is the latest Long-Term Support (LTS) release of the Java platform. |  | ||||||
| 
 |  | ||||||
| For a list of major changes from OpenJDK 11 (java-11-openjdk), see the upstream |  | ||||||
| release page for OpenJDK 17 and the preceding interim releases: |  | ||||||
| 
 |  | ||||||
| * 12: https://openjdk.java.net/projects/jdk/12/ |  | ||||||
| * 13: https://openjdk.java.net/projects/jdk/13/ |  | ||||||
| * 14: https://openjdk.java.net/projects/jdk/14/ |  | ||||||
| * 15: https://openjdk.java.net/projects/jdk/15/ |  | ||||||
| * 16: https://openjdk.java.net/projects/jdk/16/ |  | ||||||
| * 17: https://openjdk.java.net/projects/jdk/17/ |  | ||||||
| 
 |  | ||||||
| # Rebuilding the OpenJDK package |  | ||||||
| 
 |  | ||||||
| The OpenJDK packages are now created from a single build which is then |  | ||||||
| packaged for different major versions of Red Hat Enterprise Linux |  | ||||||
| (RHEL). This allows the OpenJDK team to focus their efforts on the |  | ||||||
| development and testing of this single build, rather than having |  | ||||||
| multiple builds which only differ by the platform they were built on. |  | ||||||
| 
 |  | ||||||
| This does make rebuilding the package slightly more complicated than a |  | ||||||
| normal package. Modifications should be made to the |  | ||||||
| `java-17-openjdk-portable.specfile` file, which can be found with this |  | ||||||
| README file in the source RPM or installed in the documentation tree |  | ||||||
| by the `java-17-openjdk-headless` RPM. |  | ||||||
| 
 |  | ||||||
| Once the modified `java-17-openjdk-portable` RPMs are built, they |  | ||||||
| should be installed and will produce a number of tarballs in the |  | ||||||
| `/usr/lib/jvm` directory. The `java-17-openjdk` RPMs can then be |  | ||||||
| built, which will use these tarballs to create the usual RPMs found in |  | ||||||
| RHEL. The `java-17-openjdk-portable` RPMs can be uninstalled once the |  | ||||||
| desired final RPMs are produced. |  | ||||||
| 
 |  | ||||||
| Note that the `java-17-openjdk.spec` file has a hard requirement on |  | ||||||
| the exact version of java-17-openjdk-portable to use, so this will |  | ||||||
| need to be modified if the version or rpmrelease values are changed in |  | ||||||
| `java-17-openjdk-portable.specfile`. |  | ||||||
| 
 |  | ||||||
| To reduce the number of RPMs involved, the `fastdebug` and `slowdebug` |  | ||||||
| builds may be disabled using `--without fastdebug` and `--without |  | ||||||
| slowdebug`. |  | ||||||
							
								
								
									
										54
									
								
								SOURCES/0001-Allow-devkit-to-work-with-RHEL.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								SOURCES/0001-Allow-devkit-to-work-with-RHEL.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,54 @@ | |||||||
|  | From 7733d625ebdea5a6f323a0c5944fb8ab728d1b2b Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Andrew Hughes <gnu.andrew@redhat.com> | ||||||
|  | Date: Sat, 25 Nov 2023 17:29:36 +0000 | ||||||
|  | Subject: [PATCH] Allow devkit to work with RHEL | ||||||
|  | 
 | ||||||
|  | ---
 | ||||||
|  |  make/devkit/Makefile  |  2 +- | ||||||
|  |  make/devkit/Tools.gmk | 10 +++++++++- | ||||||
|  |  2 files changed, 10 insertions(+), 2 deletions(-) | ||||||
|  | 
 | ||||||
|  | diff --git a/make/devkit/Makefile b/make/devkit/Makefile
 | ||||||
|  | index c85a7c21d29..8f69d23c325 100644
 | ||||||
|  | --- a/make/devkit/Makefile
 | ||||||
|  | +++ b/make/devkit/Makefile
 | ||||||
|  | @@ -58,7 +58,7 @@
 | ||||||
|  |  COMMA := , | ||||||
|  |   | ||||||
|  |  os := $(shell uname -o) | ||||||
|  | -cpu := $(shell uname -p)
 | ||||||
|  | +cpu := $(shell uname -m)
 | ||||||
|  |   | ||||||
|  |  # Figure out what platform this is building on. | ||||||
|  |  me := $(cpu)-$(if $(findstring Linux,$(os)),linux-gnu) | ||||||
|  | diff --git a/make/devkit/Tools.gmk b/make/devkit/Tools.gmk
 | ||||||
|  | index 187320ca26e..001f4b1870c 100644
 | ||||||
|  | --- a/make/devkit/Tools.gmk
 | ||||||
|  | +++ b/make/devkit/Tools.gmk
 | ||||||
|  | @@ -62,6 +62,14 @@ ifeq ($(BASE_OS), OL)
 | ||||||
|  |      BASE_URL := http://yum.oracle.com/repo/OracleLinux/OL6/4/base/$(ARCH)/ | ||||||
|  |      LINUX_VERSION := OL6.4 | ||||||
|  |    endif | ||||||
|  | +else ifeq ($(BASE_OS), RHEL)
 | ||||||
|  | +  ifeq ($(ARCH), aarch64)
 | ||||||
|  | +    BASE_URL := https://download.eng.brq.redhat.com/rhel-7/rel-eng/RHEL-7/latest-RHEL-ALT-7/compose/Server/$(ARCH)/os/Packages/
 | ||||||
|  | +    LINUX_VERSION := RHEL7.6
 | ||||||
|  | +  else
 | ||||||
|  | +    BASE_URL := https://download.eng.brq.redhat.com/rhel-7/rel-eng/RHEL-7/latest-RHEL-7/compose/Server/$(ARCH)/os/Packages/
 | ||||||
|  | +    LINUX_VERSION := RHEL7.9
 | ||||||
|  | +  endif
 | ||||||
|  |  else ifeq ($(BASE_OS), Fedora) | ||||||
|  |    ifeq ($(ARCH), riscv64) | ||||||
|  |      DEFAULT_OS_VERSION := rawhide/68692 | ||||||
|  | @@ -246,7 +254,7 @@ download-rpms:
 | ||||||
|  |          # Only run this if rpm dir is empty. | ||||||
|  |          ifeq ($(wildcard $(DOWNLOAD_RPMS)/*.rpm), ) | ||||||
|  |  	  cd $(DOWNLOAD_RPMS) && \ | ||||||
|  | -	      wget -r -np -nd $(patsubst %, -A "*%*.rpm", $(RPM_LIST)) $(BASE_URL)
 | ||||||
|  | +	      wget -r -e robots=off -np -nd $(patsubst %, -A "*%*.rpm", $(RPM_LIST)) $(BASE_URL)
 | ||||||
|  |          endif | ||||||
|  |   | ||||||
|  |  ########################################################################################## | ||||||
|  | -- 
 | ||||||
|  | 2.45.2 | ||||||
|  | 
 | ||||||
							
								
								
									
										50
									
								
								SOURCES/0002-Disable-multilib-on-x86_64.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								SOURCES/0002-Disable-multilib-on-x86_64.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,50 @@ | |||||||
|  | From e55afc691c0105623e04a6e76369cf1438afb874 Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Andrew Hughes <gnu.andrew@redhat.com> | ||||||
|  | Date: Fri, 8 Dec 2023 21:22:02 +0000 | ||||||
|  | Subject: [PATCH] Disable multilib on x86_64 | ||||||
|  | 
 | ||||||
|  | ---
 | ||||||
|  |  make/devkit/Tools.gmk | 13 +++---------- | ||||||
|  |  1 file changed, 3 insertions(+), 10 deletions(-) | ||||||
|  | 
 | ||||||
|  | diff --git a/make/devkit/Tools.gmk b/make/devkit/Tools.gmk
 | ||||||
|  | index 001f4b1870c..9ede781413d 100644
 | ||||||
|  | --- a/make/devkit/Tools.gmk
 | ||||||
|  | +++ b/make/devkit/Tools.gmk
 | ||||||
|  | @@ -225,13 +225,7 @@ RPM_LIST := \
 | ||||||
|  |  ########################################################################################## | ||||||
|  |  # Define common directories and files | ||||||
|  |   | ||||||
|  | -# Ensure we have 32-bit libs also for x64. We enable mixed-mode.
 | ||||||
|  | -ifeq (x86_64,$(ARCH))
 | ||||||
|  | -  LIBDIRS := lib64 lib
 | ||||||
|  | -  CFLAGS_lib := -m32
 | ||||||
|  | -else
 | ||||||
|  | -  LIBDIRS := lib
 | ||||||
|  | -endif
 | ||||||
|  | +LIBDIRS := lib
 | ||||||
|  |   | ||||||
|  |  # Define directories | ||||||
|  |  BUILDDIR := $(OUTPUT_ROOT)/$(HOST)/$(TARGET) | ||||||
|  | @@ -289,8 +283,7 @@ $(foreach p,GCC BINUTILS CCACHE MPFR GMP MPC GDB,$(eval $(call Download,$(p))))
 | ||||||
|  |   | ||||||
|  |  RPM_ARCHS := $(ARCH) noarch | ||||||
|  |  ifeq ($(ARCH),x86_64) | ||||||
|  | -  # Enable mixed mode.
 | ||||||
|  | -  RPM_ARCHS += i386 i686
 | ||||||
|  | +  RPM_ARCHS += i686
 | ||||||
|  |  else ifeq ($(ARCH),i686) | ||||||
|  |    RPM_ARCHS += i386 | ||||||
|  |  else ifeq ($(ARCH), armhfp) | ||||||
|  | @@ -526,7 +519,7 @@ ifeq ($(ARCH), armhfp)
 | ||||||
|  |    $(BUILDDIR)/$(gcc_ver)/Makefile : CONFIG +=  --with-float=hard | ||||||
|  |  endif | ||||||
|  |   | ||||||
|  | -ifneq ($(filter riscv64 ppc64 ppc64le s390x, $(ARCH)), )
 | ||||||
|  | +ifneq ($(filter riscv64 ppc64 ppc64le s390x x86_64, $(ARCH)), )
 | ||||||
|  |    # We only support 64-bit on these platforms anyway | ||||||
|  |    CONFIG += --disable-multilib | ||||||
|  |  endif | ||||||
|  | -- 
 | ||||||
|  | 2.45.2 | ||||||
|  | 
 | ||||||
							
								
								
									
										92
									
								
								SOURCES/0003-Log-devkit-build-to-stdout.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										92
									
								
								SOURCES/0003-Log-devkit-build-to-stdout.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,92 @@ | |||||||
|  | From fbc27183b35df7778cf106450b144474f8e2a35c Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Andrew Hughes <gnu.andrew@redhat.com> | ||||||
|  | Date: Wed, 30 Oct 2024 00:42:06 +0000 | ||||||
|  | Subject: [PATCH] Log devkit build to stdout | ||||||
|  | 
 | ||||||
|  | Resolves: OPENJDK-3071 | ||||||
|  | ---
 | ||||||
|  |  make/devkit/Tools.gmk | 18 +++++++++--------- | ||||||
|  |  1 file changed, 9 insertions(+), 9 deletions(-) | ||||||
|  | 
 | ||||||
|  | diff --git a/make/devkit/Tools.gmk b/make/devkit/Tools.gmk
 | ||||||
|  | index 9ede781413d..b6f895f5a25 100644
 | ||||||
|  | --- a/make/devkit/Tools.gmk
 | ||||||
|  | +++ b/make/devkit/Tools.gmk
 | ||||||
|  | @@ -458,7 +458,7 @@ $(BUILDDIR)/$(binutils_ver)/Makefile \
 | ||||||
|  |  	      --enable-multilib \ | ||||||
|  |  	      --enable-threads \ | ||||||
|  |  	      --enable-plugins \ | ||||||
|  | -	) > $(@D)/log.config 2>&1
 | ||||||
|  | +	) 2>&1 | tee $(@D)/log.config 
 | ||||||
|  |  	@echo 'done' | ||||||
|  |   | ||||||
|  |  $(BUILDDIR)/$(mpfr_ver)/Makefile \ | ||||||
|  | @@ -473,7 +473,7 @@ $(BUILDDIR)/$(mpfr_ver)/Makefile \
 | ||||||
|  |  	      --program-prefix=$(TARGET)- \ | ||||||
|  |  	      --enable-shared=no \ | ||||||
|  |  	      --with-gmp=$(PREFIX) \ | ||||||
|  | -	) > $(@D)/log.config 2>&1
 | ||||||
|  | +	) 2>&1 | tee $(@D)/log.config
 | ||||||
|  |  	@echo 'done' | ||||||
|  |   | ||||||
|  |  $(BUILDDIR)/$(gmp_ver)/Makefile \ | ||||||
|  | @@ -490,7 +490,7 @@ $(BUILDDIR)/$(gmp_ver)/Makefile \
 | ||||||
|  |  	      --program-prefix=$(TARGET)- \ | ||||||
|  |  	      --enable-shared=no \ | ||||||
|  |  	      --with-mpfr=$(PREFIX) \ | ||||||
|  | -	) > $(@D)/log.config 2>&1
 | ||||||
|  | +	) 2>&1 | tee $(@D)/log.config
 | ||||||
|  |  	@echo 'done' | ||||||
|  |   | ||||||
|  |  $(BUILDDIR)/$(mpc_ver)/Makefile \ | ||||||
|  | @@ -506,7 +506,7 @@ $(BUILDDIR)/$(mpc_ver)/Makefile \
 | ||||||
|  |  	      --enable-shared=no \ | ||||||
|  |  	      --with-mpfr=$(PREFIX) \ | ||||||
|  |  	      --with-gmp=$(PREFIX) \ | ||||||
|  | -	) > $(@D)/log.config 2>&1
 | ||||||
|  | +	) 2>&1 | tee $(@D)/log.config
 | ||||||
|  |  	@echo 'done' | ||||||
|  |   | ||||||
|  |  # Only valid if glibc target -> linux | ||||||
|  | @@ -549,7 +549,7 @@ $(BUILDDIR)/$(gcc_ver)/Makefile \
 | ||||||
|  |  	      --with-mpfr=$(PREFIX) \ | ||||||
|  |  	      --with-gmp=$(PREFIX) \ | ||||||
|  |  	      --with-mpc=$(PREFIX) \ | ||||||
|  | -	) > $(@D)/log.config 2>&1
 | ||||||
|  | +	) 2>&1 | tee $(@D)/log.config
 | ||||||
|  |  	@echo 'done' | ||||||
|  |   | ||||||
|  |  # need binutils for gcc | ||||||
|  | @@ -571,7 +571,7 @@ ifeq ($(HOST), $(TARGET))
 | ||||||
|  |  	  $(PATHPRE) $(ENVS) CFLAGS="$(CFLAGS)" $(GDB_CFG) \ | ||||||
|  |  	      $(CONFIG) \ | ||||||
|  |  	      --with-sysroot=$(SYSROOT) \ | ||||||
|  | -	) > $(@D)/log.config 2>&1
 | ||||||
|  | +	) 2>&1 | tee $(@D)/log.config
 | ||||||
|  |  	@echo 'done' | ||||||
|  |   | ||||||
|  |    $(gdb): $(gcc) | ||||||
|  | @@ -593,7 +593,7 @@ $(BUILDDIR)/$(ccache_ver)/Makefile \
 | ||||||
|  |  	  cd $(@D) ; \ | ||||||
|  |  	  $(PATHPRE) $(ENVS) $(CCACHE_CFG) \ | ||||||
|  |  	      $(CONFIG) \ | ||||||
|  | -	) > $(@D)/log.config 2>&1
 | ||||||
|  | +	) 2>&1 | tee $(@D)/log.config
 | ||||||
|  |  	@echo 'done' | ||||||
|  |   | ||||||
|  |  gccpatch = $(TARGETDIR)/gcc-patched | ||||||
|  | @@ -641,9 +641,9 @@ endif
 | ||||||
|  |  # Always need to build cross tools for build host self. | ||||||
|  |  $(TARGETDIR)/%.done : $(BUILDDIR)/%/Makefile | ||||||
|  |  	$(info Building $(basename $@). Log in $(<D)/log.build) | ||||||
|  | -	$(PATHPRE) $(ENVS) $(MAKE) $(BUILDPAR) -f $< -C $(<D) $(MAKECMD) $(MAKECMD.$(notdir $@)) > $(<D)/log.build 2>&1
 | ||||||
|  | +	$(PATHPRE) $(ENVS) $(MAKE) $(BUILDPAR) -f $< -C $(<D) $(MAKECMD) $(MAKECMD.$(notdir $@)) 2>&1 | tee $(<D)/log.build
 | ||||||
|  |  	@echo -n 'installing...' | ||||||
|  | -	$(PATHPRE) $(MAKE) $(INSTALLPAR) -f $< -C $(<D) $(INSTALLCMD) $(MAKECMD.$(notdir $@)) > $(<D)/log.install 2>&1
 | ||||||
|  | +	$(PATHPRE) $(MAKE) $(INSTALLPAR) -f $< -C $(<D) $(INSTALLCMD) $(MAKECMD.$(notdir $@)) 2>&1 | tee $(<D)/log.install
 | ||||||
|  |  	@mkdir -p $(@D) | ||||||
|  |  	@touch $@ | ||||||
|  |  	@echo 'done' | ||||||
|  | -- 
 | ||||||
|  | 2.45.2 | ||||||
|  | 
 | ||||||
| @ -0,0 +1,41 @@ | |||||||
|  | From 3d81d23118aab95214e24ccc81eff61ac245a1ac Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Thomas Fitzsimmons <fitzsim@redhat.com> | ||||||
|  | Date: Wed, 20 Mar 2024 13:01:47 -0400 | ||||||
|  | Subject: [PATCH] devkit: Remove .comment sections from sysroot objects | ||||||
|  | 
 | ||||||
|  | Otherwise the comment sections of C runtime objects, including those | ||||||
|  | in static libraries like libc_nonshared.a, contribute RPM package | ||||||
|  | version strings to the .comment section in devkit-produced binaries | ||||||
|  | and libraries.  These RPM package strings change frequently, even | ||||||
|  | across minor toolchain updates.  Their presence interferes when | ||||||
|  | comparing binaries built with devkits that use different sysroot RPM | ||||||
|  | package sets. | ||||||
|  | ---
 | ||||||
|  |  make/devkit/Tools.gmk | 4 ++++ | ||||||
|  |  1 file changed, 4 insertions(+) | ||||||
|  | 
 | ||||||
|  | diff --git a/make/devkit/Tools.gmk b/make/devkit/Tools.gmk
 | ||||||
|  | index b6f895f5a25..37ea1a6a287 100644
 | ||||||
|  | --- a/make/devkit/Tools.gmk
 | ||||||
|  | +++ b/make/devkit/Tools.gmk
 | ||||||
|  | @@ -324,6 +324,9 @@ $(foreach p,$(RPM_FILE_LIST),$(eval $(call unrpm,$(p))))
 | ||||||
|  |  # have it anyway, but just to make sure... | ||||||
|  |  # Patch libc.so and libpthread.so to force linking against libraries in sysroot | ||||||
|  |  # and not the ones installed on the build machine. | ||||||
|  | +# Remove comment sections from static libraries and C runtime objects
 | ||||||
|  | +# to prevent leaking RHEL-specific package versions into
 | ||||||
|  | +# devkit-produced binaries.
 | ||||||
|  |  $(libs) : $(rpms) | ||||||
|  |  	@echo Patching libc and pthreads | ||||||
|  |  	@(for f in `find $(SYSROOT) -name libc.so -o -name libpthread.so`; do \ | ||||||
|  | @@ -333,6 +336,7 @@ $(libs) : $(rpms)
 | ||||||
|  |  	      -e 's|/lib/||g' ) > $$f.tmp ; \ | ||||||
|  |  	  mv $$f.tmp $$f ; \ | ||||||
|  |  	done) | ||||||
|  | +	@find $(SYSROOT) -name '*.[ao]' -exec objcopy --remove-section .comment '{}' ';'
 | ||||||
|  |  	@mkdir -p $(SYSROOT)/usr/lib | ||||||
|  |  	@touch $@ | ||||||
|  |   | ||||||
|  | -- 
 | ||||||
|  | 2.45.2 | ||||||
|  | 
 | ||||||
| @ -0,0 +1,35 @@ | |||||||
|  | From c370e1194c707f3f6c470e147ec497cc4e76957e Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Thomas Fitzsimmons <fitzsim@redhat.com> | ||||||
|  | Date: Fri, 22 Mar 2024 16:03:17 -0400 | ||||||
|  | Subject: [PATCH] Tools.gmk: Configure binutils with | ||||||
|  |  --enable-deterministic-archives | ||||||
|  | 
 | ||||||
|  | ---
 | ||||||
|  |  make/devkit/Tools.gmk | 4 ++++ | ||||||
|  |  1 file changed, 4 insertions(+) | ||||||
|  | 
 | ||||||
|  | diff --git a/make/devkit/Tools.gmk b/make/devkit/Tools.gmk
 | ||||||
|  | index 37ea1a6a287..22c6007000b 100644
 | ||||||
|  | --- a/make/devkit/Tools.gmk
 | ||||||
|  | +++ b/make/devkit/Tools.gmk
 | ||||||
|  | @@ -445,6 +445,9 @@ endif
 | ||||||
|  |   | ||||||
|  |  # Makefile creation. Simply run configure in build dir. | ||||||
|  |  # Setting CFLAGS to -O2 generates a much faster ld. | ||||||
|  | +# Use --enable-deterministic-archives so that make targets that
 | ||||||
|  | +# generate "ar" archives, such as "static-libs-image", produce
 | ||||||
|  | +# deterministic .a files.
 | ||||||
|  |  $(bfdmakes) \ | ||||||
|  |  $(BUILDDIR)/$(binutils_ver)/Makefile \ | ||||||
|  |      : $(BINUTILS_CFG) | ||||||
|  | @@ -459,6 +462,7 @@ $(BUILDDIR)/$(binutils_ver)/Makefile \
 | ||||||
|  |  	      --with-sysroot=$(SYSROOT) \ | ||||||
|  |  	      --disable-nls \ | ||||||
|  |  	      --program-prefix=$(TARGET)- \ | ||||||
|  | +	      --enable-deterministic-archives \
 | ||||||
|  |  	      --enable-multilib \ | ||||||
|  |  	      --enable-threads \ | ||||||
|  |  	      --enable-plugins \ | ||||||
|  | -- 
 | ||||||
|  | 2.45.2 | ||||||
|  | 
 | ||||||
| @ -0,0 +1,35 @@ | |||||||
|  | From 5958274571b957617d0572101a92217fd5b2f312 Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Andrew Hughes <gnu.andrew@redhat.com> | ||||||
|  | Date: Wed, 27 Nov 2024 17:04:19 +0000 | ||||||
|  | Subject: [PATCH] Tools.gmk: Add --enable-linker-build-id to gcc build | ||||||
|  | 
 | ||||||
|  | This causes --build-id to be passed to the linker, and the | ||||||
|  | .note.gnu.build-id section is added (OPENJDK-3068) | ||||||
|  | ---
 | ||||||
|  |  make/devkit/Tools.gmk | 3 +++ | ||||||
|  |  1 file changed, 3 insertions(+) | ||||||
|  | 
 | ||||||
|  | diff --git a/make/devkit/Tools.gmk b/make/devkit/Tools.gmk
 | ||||||
|  | index 22c6007000b..57d48ec5114 100644
 | ||||||
|  | --- a/make/devkit/Tools.gmk
 | ||||||
|  | +++ b/make/devkit/Tools.gmk
 | ||||||
|  | @@ -539,6 +539,8 @@ endif
 | ||||||
|  |  # skip native language. | ||||||
|  |  # and link and assemble with the binutils we created | ||||||
|  |  # earlier, so --with-gnu* | ||||||
|  | +# Add --enable-linker-build-id so the .note.gnu.build-id
 | ||||||
|  | +# section is added by the linker (OPENJDK-3068)
 | ||||||
|  |  $(BUILDDIR)/$(gcc_ver)/Makefile \ | ||||||
|  |      : $(GCC_CFG) | ||||||
|  |  	$(info Configuring $@. Log in $(@D)/log.config) | ||||||
|  | @@ -557,6 +559,7 @@ $(BUILDDIR)/$(gcc_ver)/Makefile \
 | ||||||
|  |  	      --with-mpfr=$(PREFIX) \ | ||||||
|  |  	      --with-gmp=$(PREFIX) \ | ||||||
|  |  	      --with-mpc=$(PREFIX) \ | ||||||
|  | +	      --enable-linker-build-id \
 | ||||||
|  |  	) 2>&1 | tee $(@D)/log.config | ||||||
|  |  	@echo 'done' | ||||||
|  |   | ||||||
|  | -- 
 | ||||||
|  | 2.45.2 | ||||||
|  | 
 | ||||||
| @ -0,0 +1,38 @@ | |||||||
|  | From 2617c050a909265444b32063b2d271eca42dcaa6 Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Andrew Hughes <gnu.andrew@redhat.com> | ||||||
|  | Date: Fri, 17 Jan 2025 21:11:01 +0000 | ||||||
|  | Subject: [PATCH] Tools.gmk: Exclude systemtap-sdt-devel on s390x & ppc64* | ||||||
|  | 
 | ||||||
|  | There is no DTrace support on s390x (JDK-8305174) and ppc64 | ||||||
|  | (JDK-8304867) so we don't need the RPMs. They also cause issues with | ||||||
|  | static linkage of libstdc++.a on s390x. It fails with 'error: | ||||||
|  | relocation refers to local symbol "" [9], which is defined in a | ||||||
|  | discarded section'. | ||||||
|  | 
 | ||||||
|  | Resolves: OPENJDK-3070 | ||||||
|  | ---
 | ||||||
|  |  make/devkit/Tools.gmk | 6 +++++- | ||||||
|  |  1 file changed, 5 insertions(+), 1 deletion(-) | ||||||
|  | 
 | ||||||
|  | diff --git a/make/devkit/Tools.gmk b/make/devkit/Tools.gmk
 | ||||||
|  | index 57d48ec5114..07928f69ceb 100644
 | ||||||
|  | --- a/make/devkit/Tools.gmk
 | ||||||
|  | +++ b/make/devkit/Tools.gmk
 | ||||||
|  | @@ -219,9 +219,13 @@ RPM_LIST := \
 | ||||||
|  |      zlib zlib-devel \ | ||||||
|  |      libffi libffi-devel \ | ||||||
|  |      fontconfig fontconfig-devel \ | ||||||
|  | -    systemtap-sdt-devel \
 | ||||||
|  |      # | ||||||
|  |   | ||||||
|  | +# Only include SystemTap on supported architectures
 | ||||||
|  | +ifeq ($(filter ppc64 ppc64le s390x, $(ARCH)), )
 | ||||||
|  | +  RPM_LIST += systemtap-sdt-devel
 | ||||||
|  | +endif
 | ||||||
|  | +
 | ||||||
|  |  ########################################################################################## | ||||||
|  |  # Define common directories and files | ||||||
|  |   | ||||||
|  | -- 
 | ||||||
|  | 2.45.2 | ||||||
|  | 
 | ||||||
| @ -0,0 +1,33 @@ | |||||||
|  | From 9766818f55726cea630b432f09cce8f9c17c014d Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Andrew Hughes <gnu.andrew@redhat.com> | ||||||
|  | Date: Fri, 17 Jan 2025 21:27:58 +0000 | ||||||
|  | Subject: [PATCH] Tools.gmk: Use update repository on RHEL rather than GA | ||||||
|  | 
 | ||||||
|  | It looks like we were using 7.6 & 7.9 GA repositories rather than | ||||||
|  | the latest updates. | ||||||
|  | 
 | ||||||
|  | Resolves: OPENJDK-3589 | ||||||
|  | ---
 | ||||||
|  |  make/devkit/Tools.gmk | 4 ++-- | ||||||
|  |  1 file changed, 2 insertions(+), 2 deletions(-) | ||||||
|  | 
 | ||||||
|  | diff --git a/make/devkit/Tools.gmk b/make/devkit/Tools.gmk
 | ||||||
|  | index 07928f69ceb..5b39560ab11 100644
 | ||||||
|  | --- a/make/devkit/Tools.gmk
 | ||||||
|  | +++ b/make/devkit/Tools.gmk
 | ||||||
|  | @@ -64,10 +64,10 @@ ifeq ($(BASE_OS), OL)
 | ||||||
|  |    endif | ||||||
|  |  else ifeq ($(BASE_OS), RHEL) | ||||||
|  |    ifeq ($(ARCH), aarch64) | ||||||
|  | -    BASE_URL := https://download.eng.brq.redhat.com/rhel-7/rel-eng/RHEL-7/latest-RHEL-ALT-7/compose/Server/$(ARCH)/os/Packages/
 | ||||||
|  | +    BASE_URL := https://download.eng.brq.redhat.com/rhel-7/rel-eng/updates/RHEL-ALT-7/latest-RHEL-ALT-7/compose/Server/$(ARCH)/os/Packages/
 | ||||||
|  |      LINUX_VERSION := RHEL7.6 | ||||||
|  |    else | ||||||
|  | -    BASE_URL := https://download.eng.brq.redhat.com/rhel-7/rel-eng/RHEL-7/latest-RHEL-7/compose/Server/$(ARCH)/os/Packages/
 | ||||||
|  | +    BASE_URL := https://download.eng.brq.redhat.com/rhel-7/rel-eng/updates/RHEL-7/latest-RHEL-7/compose/Server/$(ARCH)/os/Packages/
 | ||||||
|  |      LINUX_VERSION := RHEL7.9 | ||||||
|  |    endif | ||||||
|  |  else ifeq ($(BASE_OS), Fedora) | ||||||
|  | -- 
 | ||||||
|  | 2.45.2 | ||||||
|  | 
 | ||||||
							
								
								
									
										2641
									
								
								SOURCES/NEWS
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2641
									
								
								SOURCES/NEWS
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										46
									
								
								SOURCES/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								SOURCES/README.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,46 @@ | |||||||
|  | OpenJDK 21 is the latest Long-Term Support (LTS) release of the Java platform. | ||||||
|  | 
 | ||||||
|  | For a list of major changes from OpenJDK 17 (java-17-openjdk), see the upstream | ||||||
|  | release page for OpenJDK 21 and the preceding interim releases: | ||||||
|  | 
 | ||||||
|  | * 18: https://openjdk.java.net/projects/jdk/18/ | ||||||
|  | * 19: https://openjdk.java.net/projects/jdk/19/ | ||||||
|  | * 20: https://openjdk.java.net/projects/jdk/20/ | ||||||
|  | * 21: https://openjdk.java.net/projects/jdk/21/ | ||||||
|  | 
 | ||||||
|  | # Rebuilding the OpenJDK package | ||||||
|  | 
 | ||||||
|  | The OpenJDK packages are now created from a single build which is then | ||||||
|  | packaged for different major versions of Red Hat Enterprise Linux | ||||||
|  | (RHEL). This allows the OpenJDK team to focus their efforts on the | ||||||
|  | development and testing of this single build, rather than having | ||||||
|  | multiple builds which only differ by the platform they were built on. | ||||||
|  | 
 | ||||||
|  | This does make rebuilding the package slightly more complicated than a | ||||||
|  | normal package. Modifications should be made to the | ||||||
|  | `java-21-openjdk-portable.specfile` file, which can be found with this | ||||||
|  | README file in the source RPM or installed in the documentation tree | ||||||
|  | by the `java-21-openjdk-headless` RPM. | ||||||
|  | 
 | ||||||
|  | Once the modified `java-21-openjdk-portable` RPMs are built, they | ||||||
|  | should be installed and will produce a number of tarballs in the | ||||||
|  | `/usr/lib/jvm` directory. The `java-21-openjdk` RPMs can then be | ||||||
|  | built, which will use these tarballs to create the usual RPMs found in | ||||||
|  | RHEL. The `java-21-openjdk-portable` RPMs can be uninstalled once the | ||||||
|  | desired final RPMs are produced. | ||||||
|  | 
 | ||||||
|  | Note that the `java-21-openjdk.spec` file has a hard requirement on | ||||||
|  | the exact version of java-21-openjdk-portable to use, so this will | ||||||
|  | need to be modified if the version or rpmrelease values are changed in | ||||||
|  | `java-21-openjdk-portable.specfile`. | ||||||
|  | 
 | ||||||
|  | To reduce the number of RPMs involved, the `fastdebug` and `slowdebug` | ||||||
|  | builds may be disabled using `--without fastdebug` and `--without | ||||||
|  | slowdebug`. | ||||||
|  | 
 | ||||||
|  | By default, the portable build on RHEL also uses a "devkit" (a | ||||||
|  | toolchain and system libraries) to build.  This aids reproducibility | ||||||
|  | by removing build differences caused by differing system toolchains | ||||||
|  | and libraries.  This dependency can be dropped by defining 'centos' to | ||||||
|  | a non-zero value (e.g. --define='centos 1') or a devkit can be built | ||||||
|  | using the `openjdk-devkit.specfile` and associated patches. | ||||||
| @ -52,7 +52,7 @@ public class TestTranslations { | |||||||
|         map.put(Locale.FRANCE, new String[] { "heure normale des Rocheuses", "UTC\u221207:00", "MST", |         map.put(Locale.FRANCE, new String[] { "heure normale des Rocheuses", "UTC\u221207:00", "MST", | ||||||
|                                               "heure d\u2019\u00e9t\u00e9 des Rocheuses", "UTC\u221206:00", "MDT", |                                               "heure d\u2019\u00e9t\u00e9 des Rocheuses", "UTC\u221206:00", "MDT", | ||||||
|                                               "heure des Rocheuses", "UTC\u221207:00", "MT"}); |                                               "heure des Rocheuses", "UTC\u221207:00", "MT"}); | ||||||
|         map.put(Locale.GERMANY, new String[] { "Rocky Mountain-Normalzeit", "GMT-07:00", "MST", |         map.put(Locale.GERMANY, new String[] { "Rocky-Mountain-Normalzeit", "GMT-07:00", "MST", | ||||||
|                                                "Rocky-Mountain-Sommerzeit", "GMT-06:00", "MDT", |                                                "Rocky-Mountain-Sommerzeit", "GMT-06:00", "MDT", | ||||||
|                                                "Rocky-Mountain-Zeit", "GMT-07:00", "MT"}); |                                                "Rocky-Mountain-Zeit", "GMT-07:00", "MT"}); | ||||||
|         CIUDAD_JUAREZ = Collections.unmodifiableMap(map); |         CIUDAD_JUAREZ = Collections.unmodifiableMap(map); | ||||||
							
								
								
									
										100
									
								
								SOURCES/alt-java.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										100
									
								
								SOURCES/alt-java.c
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,100 @@ | |||||||
|  | /*
 | ||||||
|  |  * Copyright (C) 2023 Red Hat, Inc. | ||||||
|  |  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | ||||||
|  |  * | ||||||
|  |  * This code is free software; you can redistribute it and/or modify it | ||||||
|  |  * under the terms of the GNU General Public License version 2 only, as | ||||||
|  |  * published by the Free Software Foundation.  Red Hat designates this | ||||||
|  |  * particular file as subject to the "Classpath" exception as provided | ||||||
|  |  * by Red Hat in the LICENSE file that accompanied this code. | ||||||
|  |  * | ||||||
|  |  * This code 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 | ||||||
|  |  * version 2 for more details (a copy is included in the LICENSE file that | ||||||
|  |  * accompanied this code). | ||||||
|  |  * | ||||||
|  |  * You should have received a copy of the GNU General Public License version | ||||||
|  |  * 2 along with this work; if not, write to the Free Software Foundation, | ||||||
|  |  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. | ||||||
|  |  * | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | #include <errno.h> | ||||||
|  | #include <libgen.h> | ||||||
|  | #include <linux/limits.h> | ||||||
|  | #include <stdio.h> | ||||||
|  | #include <stdlib.h> | ||||||
|  | #include <string.h> | ||||||
|  | #include <sys/prctl.h> | ||||||
|  | #include <unistd.h> | ||||||
|  | 
 | ||||||
|  | /* Per task speculation control */ | ||||||
|  | #ifndef PR_GET_SPECULATION_CTRL | ||||||
|  | # define PR_GET_SPECULATION_CTRL    52 | ||||||
|  | #endif | ||||||
|  | #ifndef PR_SET_SPECULATION_CTRL | ||||||
|  | # define PR_SET_SPECULATION_CTRL    53 | ||||||
|  | #endif | ||||||
|  | /* Speculation control variants */ | ||||||
|  | #ifndef PR_SPEC_STORE_BYPASS | ||||||
|  | # define PR_SPEC_STORE_BYPASS          0 | ||||||
|  | #endif | ||||||
|  | /* Return and control values for PR_SET/GET_SPECULATION_CTRL */ | ||||||
|  | 
 | ||||||
|  | #ifndef PR_SPEC_NOT_AFFECTED | ||||||
|  | # define PR_SPEC_NOT_AFFECTED          0 | ||||||
|  | #endif | ||||||
|  | #ifndef PR_SPEC_PRCTL | ||||||
|  | # define PR_SPEC_PRCTL                 (1UL << 0) | ||||||
|  | #endif | ||||||
|  | #ifndef PR_SPEC_ENABLE | ||||||
|  | # define PR_SPEC_ENABLE                (1UL << 1) | ||||||
|  | #endif | ||||||
|  | #ifndef PR_SPEC_DISABLE | ||||||
|  | # define PR_SPEC_DISABLE               (1UL << 2) | ||||||
|  | #endif | ||||||
|  | #ifndef PR_SPEC_FORCE_DISABLE | ||||||
|  | # define PR_SPEC_FORCE_DISABLE         (1UL << 3) | ||||||
|  | #endif | ||||||
|  | #ifndef PR_SPEC_DISABLE_NOEXEC | ||||||
|  | # define PR_SPEC_DISABLE_NOEXEC        (1UL << 4) | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
|  | static void set_speculation() { | ||||||
|  | #if defined(__linux__) && defined(__x86_64__) | ||||||
|  |   // PR_SPEC_DISABLE_NOEXEC doesn't survive execve, so we can't use it
 | ||||||
|  |   //  if ( prctl(PR_SET_SPECULATION_CTRL,
 | ||||||
|  |   //           PR_SPEC_STORE_BYPASS,
 | ||||||
|  |   //           PR_SPEC_DISABLE_NOEXEC, 0, 0) == 0 ) {
 | ||||||
|  |   //  return;
 | ||||||
|  |   // }
 | ||||||
|  |   prctl(PR_SET_SPECULATION_CTRL, PR_SPEC_STORE_BYPASS, PR_SPEC_DISABLE, 0, 0); | ||||||
|  | #else | ||||||
|  | #warning alt-java requested but SSB mitigation not available on this platform. | ||||||
|  | #endif | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | int main(int argc, char **argv) { | ||||||
|  |   set_speculation(); | ||||||
|  | 
 | ||||||
|  |   char our_name[PATH_MAX], java_name[PATH_MAX]; | ||||||
|  |   ssize_t len = readlink("/proc/self/exe", our_name, PATH_MAX - 1); | ||||||
|  |   if (len < 0) { | ||||||
|  |     perror("I can't find myself"); | ||||||
|  |     exit(2); | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   our_name[len] = '\0'; // readlink(2) doesn't append a null byte
 | ||||||
|  |   char *path = dirname(our_name); | ||||||
|  |   strncpy(java_name, path, PATH_MAX - 1); | ||||||
|  | 
 | ||||||
|  |   size_t remaining_bytes = PATH_MAX - strlen(path) - 1; | ||||||
|  |   strncat(java_name, "/java", remaining_bytes); | ||||||
|  | 
 | ||||||
|  |   execv(java_name, argv); | ||||||
|  |   fprintf(stderr, "%s failed to launch: %s\n", java_name, strerror(errno)); | ||||||
|  | 
 | ||||||
|  |   exit(1); | ||||||
|  | } | ||||||
|  | 
 | ||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										230
									
								
								SOURCES/openjdk-devkit.specfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										230
									
								
								SOURCES/openjdk-devkit.specfile
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,230 @@ | |||||||
|  | # Spec file for building a devkit for OpenJDK builds | ||||||
|  | 
 | ||||||
|  | # We do not want debug packages | ||||||
|  | %global debug_package %{nil} | ||||||
|  | # Arch definitions from java-*-openjdk RPM | ||||||
|  | %global aarch64         aarch64 arm64 armv8 | ||||||
|  | # x86 is not supported by OpenJDK 17 | ||||||
|  | ExcludeArch: %{ix86} | ||||||
|  | 
 | ||||||
|  | # New Version-String scheme-style defines | ||||||
|  | %global featurever 21 | ||||||
|  | %global interimver 0 | ||||||
|  | %global updatever 5 | ||||||
|  | %global patchver 0 | ||||||
|  | %global buildver 11 | ||||||
|  | # Define JDK versions | ||||||
|  | %global newjavaver %{featurever}.%{interimver}.%{updatever}.%{patchver} | ||||||
|  | %global javaver         %{featurever} | ||||||
|  | # Strip up to 6 trailing zeros in newjavaver, as the JDK does, to get the correct version used in filenames | ||||||
|  | %global filever %(svn=%{newjavaver}; for i in 1 2 3 4 5 6 ; do svn=${svn%%.0} ; done; echo ${svn}) | ||||||
|  | # The tag used to create the OpenJDK tarball | ||||||
|  | %global vcstag jdk-%{filever}+%{buildver}%{?tagsuffix:-%{tagsuffix}} | ||||||
|  | 
 | ||||||
|  | # Define milestone (EA for pre-releases, GA for releases) | ||||||
|  | # Release will be (where N is usually a number starting at 1): | ||||||
|  | # - 0.N%%{?extraver}%%{?dist} for EA releases, | ||||||
|  | # - N%%{?extraver}{?dist} for GA releases | ||||||
|  | %global is_ga           1 | ||||||
|  | %if %{is_ga} | ||||||
|  | %global build_type GA | ||||||
|  | %global ea_designator "" | ||||||
|  | %global ea_designator_zip %{nil} | ||||||
|  | %global extraver %{nil} | ||||||
|  | %global eaprefix %{nil} | ||||||
|  | %else | ||||||
|  | %global build_type EA | ||||||
|  | %global ea_designator ea | ||||||
|  | %global ea_designator_zip -%{ea_designator} | ||||||
|  | %global extraver .%{ea_designator} | ||||||
|  | %global eaprefix 0. | ||||||
|  | %endif | ||||||
|  | 
 | ||||||
|  | # Date devkit RPMs were download | ||||||
|  | %global rpm_download_date 20250117 | ||||||
|  | 
 | ||||||
|  | Name: openjdk-devkit | ||||||
|  | Version: 1.0 | ||||||
|  | Release: 9%{?dist} | ||||||
|  | License: GPLv2 | ||||||
|  | URL: http://openjdk.java.net/ | ||||||
|  | Summary: OpenJDK Devkit | ||||||
|  | 
 | ||||||
|  | # The source tarball, generated using generate_source_tarball.sh | ||||||
|  | Source0: https://openjdk-sources.osci.io/openjdk%{featurever}/open%{vcstag}%{ea_designator_zip}.tar.xz | ||||||
|  | # The buildroot RPMs for each architecture | ||||||
|  | Source1: devkit-rpms-aarch64-%{rpm_download_date}.tar.xz | ||||||
|  | Source2: devkit-rpms-ppc64le-%{rpm_download_date}.tar.xz | ||||||
|  | Source3: devkit-rpms-s390x-%{rpm_download_date}.tar.xz | ||||||
|  | Source4: devkit-rpms-x86_64-%{rpm_download_date}.tar.xz | ||||||
|  | # Toolchain sources | ||||||
|  | Source5: binutils-2.39.tar.gz | ||||||
|  | Source6: gcc-11.3.0.tar.xz | ||||||
|  | Source7: gmp-6.2.1.tar.bz2 | ||||||
|  | Source8: mpc-1.2.1.tar.gz | ||||||
|  | Source9: mpfr-4.1.1.tar.bz2 | ||||||
|  | Source10: gdb-11.2.tar.xz | ||||||
|  | 
 | ||||||
|  | # Devkit patches; see https://github.com/rh-openjdk/jdk/tree/devkit | ||||||
|  | # To regenerate, use git format-patch -N jdk21u/master | ||||||
|  | # Add RHEL RPM URLs and turn off robots | ||||||
|  | Patch0: 0001-Allow-devkit-to-work-with-RHEL.patch | ||||||
|  | # Turn off multilib on x86_64 | ||||||
|  | Patch1: 0002-Disable-multilib-on-x86_64.patch | ||||||
|  | # Improve build logging (OPENJDK-3071) | ||||||
|  | Patch2: 0003-Log-devkit-build-to-stdout.patch | ||||||
|  | # Remove .comment sections from sysroot objects | ||||||
|  | Patch3: 0004-devkit-Remove-.comment-sections-from-sysroot-objects.patch | ||||||
|  | # Configure binutils with --enable-deterministic-archives | ||||||
|  | Patch4: 0005-Tools.gmk-Configure-binutils-with-enable-determinist.patch | ||||||
|  | # Configure gcc with --enable-linker-build-id (OPENJDK-3068) | ||||||
|  | Patch5: 0006-Tools.gmk-Add-enable-linker-build-id-to-gcc-build.patch | ||||||
|  | # Exclude systemtap-sdt-devel on s390x & ppc64* (OPENJDK-3070) | ||||||
|  | Patch6: 0007-Tools.gmk-Exclude-systemtap-sdt-devel-on-s390x-ppc64.patch | ||||||
|  | # Use update repository on RHEL rather than GA (OPENJDK-3589) | ||||||
|  | Patch7: 0008-Tools.gmk-Use-update-repository-on-RHEL-rather-than-.patch | ||||||
|  | 
 | ||||||
|  | BuildRequires: make autoconf automake libtool gcc gcc-c++ wget glibc-devel texinfo tar bison | ||||||
|  | 
 | ||||||
|  | # Setup variables to reference correct sources | ||||||
|  | %ifarch %{aarch64} | ||||||
|  | %global rpmtarball %{SOURCE1} | ||||||
|  | %endif | ||||||
|  | %ifarch ppc64le | ||||||
|  | %global rpmtarball %{SOURCE2} | ||||||
|  | %endif | ||||||
|  | %ifarch s390x | ||||||
|  | %global rpmtarball %{SOURCE3} | ||||||
|  | %endif | ||||||
|  | %ifarch x86_64 | ||||||
|  | %global rpmtarball %{SOURCE4} | ||||||
|  | %endif | ||||||
|  | 
 | ||||||
|  | %description | ||||||
|  | OpenJDK Devkit | ||||||
|  | 
 | ||||||
|  | %prep | ||||||
|  | 
 | ||||||
|  | # Unpack OpenJDK sources only in build directory | ||||||
|  | %setup -q -T -c -a 0 | ||||||
|  | 
 | ||||||
|  | # This syntax is deprecated: | ||||||
|  | #    %patchN [...] | ||||||
|  | # and should be replaced with: | ||||||
|  | #    %patch -PN [...] | ||||||
|  | # For example: | ||||||
|  | #    %patch1001 -p1 | ||||||
|  | # becomes: | ||||||
|  | #    %patch -P1001 -p1 | ||||||
|  | # The replacement format suggested by recent (circa Fedora 38) RPM | ||||||
|  | # deprecation messages: | ||||||
|  | #    %patch N [...] | ||||||
|  | # is not backward-compatible with prior (circa RHEL-8) versions of | ||||||
|  | # rpmbuild. | ||||||
|  | pushd jdk-* | ||||||
|  | %patch -P0 -p1 | ||||||
|  | %patch -P1 -p1 | ||||||
|  | %patch -P2 -p1 | ||||||
|  | %patch -P3 -p1 | ||||||
|  | %patch -P4 -p1 | ||||||
|  | %patch -P5 -p1 | ||||||
|  | %patch -P6 -p1 | ||||||
|  | %patch -P7 -p1 | ||||||
|  | popd | ||||||
|  | 
 | ||||||
|  | mkdir -p devkit/download | ||||||
|  | pushd devkit/download | ||||||
|  | tar -xJf %{rpmtarball} | ||||||
|  | ln -s %{SOURCE5} | ||||||
|  | ln -s %{SOURCE6} | ||||||
|  | ln -s %{SOURCE7} | ||||||
|  | ln -s %{SOURCE8} | ||||||
|  | ln -s %{SOURCE9} | ||||||
|  | ln -s %{SOURCE10} | ||||||
|  | 
 | ||||||
|  | %build | ||||||
|  | 
 | ||||||
|  | devkit_dir=$(pwd)/devkit | ||||||
|  | today=$(date +%Y%m%d) | ||||||
|  | arch=%{_target_cpu} | ||||||
|  | result_name=${arch}-linux-gnu-to-${arch}-linux-gnu | ||||||
|  | result_path=result/${result_name} | ||||||
|  | 
 | ||||||
|  | pushd jdk-*/make/devkit | ||||||
|  | 
 | ||||||
|  | # Build devkit first using the native toolchain, | ||||||
|  | # than again using itself | ||||||
|  | for variant in bootstrap product ; do | ||||||
|  |     if [ -e ${devkit_dir}-bootstrap/${result_path}/bin/gcc ] ; then | ||||||
|  |         ROOTDIR=${devkit_dir}-bootstrap/${result_path}; | ||||||
|  |         BINDIR=${ROOTDIR}/bin; | ||||||
|  |         TOOLS="CC=${BINDIR}/gcc CXX=${BINDIR}/g++ LD=${BINDIR}/ld \ | ||||||
|  |                AR=${BINDIR}/ar AS=${BINDIR}/as RANLIB=${BINDIR}/ranlib \ | ||||||
|  |                OBJDUMP=${BINDIR}/objdump" | ||||||
|  |         LIBPATH="${ROOTDIR}/lib64:${ROOTDIR}/lib" | ||||||
|  |     else | ||||||
|  |         TOOLS="CC=$(which gcc) CXX=$(which g++) LD=$(which ld) \ | ||||||
|  |                AR=$(which ar) AS=$(which as) RANLIB=$(which ranlib) \ | ||||||
|  |                OBJDUMP=$(which objdump)" | ||||||
|  |     fi | ||||||
|  |     mkdir -p ${devkit_dir}-${variant} | ||||||
|  |     ln -s ${devkit_dir}/download ${devkit_dir}-${variant} | ||||||
|  |     LD_LIBRARY_PATH="${LIBPATH}" \ | ||||||
|  |         make -f Tools.gmk all ${TOOLS} \ | ||||||
|  |         HOST=${arch}-linux-gnu \ | ||||||
|  |         BUILD=${arch}-linux-gnu \ | ||||||
|  |         RESULT=${devkit_dir}-${variant}/result \ | ||||||
|  |         OUTPUT_ROOT=${devkit_dir}-${variant} \ | ||||||
|  |         TARGET=${arch}-linux-gnu \ | ||||||
|  |         PREFIX=${devkit_dir}-${variant}/${result_path} \ | ||||||
|  |         BASE_OS=RHEL | ||||||
|  | done | ||||||
|  | 
 | ||||||
|  | make -r -f Tars.gmk \ | ||||||
|  |      SRC_DIR=${devkit_dir}-product/${result_path} \ | ||||||
|  |      TAR_FILE=${devkit_dir}-product/result/sdk-${result_name}-${today}.tar.gz | ||||||
|  | popd | ||||||
|  | 
 | ||||||
|  | %install | ||||||
|  | mkdir -p %{buildroot}%{_datadir}/%{name} | ||||||
|  | cp -p devkit-product/result/*.tar.gz %{buildroot}%{_datadir}/%{name}/ | ||||||
|  | 
 | ||||||
|  | %files | ||||||
|  | %{_datadir}/%{name} | ||||||
|  | 
 | ||||||
|  | %changelog | ||||||
|  | * Fri Jan 17 2025 Andrew Hughes <gnu.andrew@redhat.com> - 1.0-9 | ||||||
|  | - Update devkit RPMs to latest updates | ||||||
|  | - Exclude SystemTap RPMs from s390x and ppc64le | ||||||
|  | - Add a date stamp to the RPM bundles | ||||||
|  | - Resolves: OPENJDK-3070 | ||||||
|  | = Resolves: OPENJDK-3589 | ||||||
|  | 
 | ||||||
|  | * Wed Nov 27 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1.0-8 | ||||||
|  | - Add --enable-linker-build-id to gcc build | ||||||
|  | - Resolves: OPENJDK-3068 | ||||||
|  | 
 | ||||||
|  | * Wed Oct 30 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1.0-7 | ||||||
|  | - Improve build logging by also writing to stdout | ||||||
|  | - Cleanup patches and rebase on jdk-21.0.5-ga | ||||||
|  | - Drop JDK-8323671 patch which is upstream as of 21.0.3+3 | ||||||
|  | - Resolves: OPENJDK-3071 | ||||||
|  | 
 | ||||||
|  | * Tue Jun 11 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1.0-6 | ||||||
|  | - Fix typo where 'as' binary is accidentally capitalised in AS=<path>/as | ||||||
|  | 
 | ||||||
|  | * Wed May 01 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1.0-5 | ||||||
|  | - Bootstrap the devkit, building it again with itself | ||||||
|  | 
 | ||||||
|  | * Mon Apr 08 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1.0-4 | ||||||
|  | - Include Thomas' patches to drop .comment sections and build binutils with deterministic archives | ||||||
|  | - Use backward-compatible patch syntax | ||||||
|  | 
 | ||||||
|  | * Tue Feb 06 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1.0-3 | ||||||
|  | - Include JDK-8323671 patch so the binaries don't contain the full source path | ||||||
|  | 
 | ||||||
|  | * Fri Dec 08 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1.0-2 | ||||||
|  | - Try to turn off multlib on x86_64 as we don't have the dependencies for it | ||||||
|  | 
 | ||||||
|  | * Tue Dec 05 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1.0-1 | ||||||
|  | - Create RHEL 7 based devkit for building OpenJDK | ||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @ -1,54 +0,0 @@ | |||||||
| #!/bin/sh |  | ||||||
| 
 |  | ||||||
| # Copyright (C) 2020 Red Hat, Inc. |  | ||||||
| # Written by Andrew John Hughes <gnu.andrew@redhat.com>. |  | ||||||
| # |  | ||||||
| # This program is free software: you can redistribute it and/or modify |  | ||||||
| # it under the terms of the GNU Affero General Public License as |  | ||||||
| # published by the Free Software Foundation, either version 3 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 Affero General Public License for more details. |  | ||||||
| # |  | ||||||
| # You should have received a copy of the GNU Affero General Public License |  | ||||||
| # along with this program.  If not, see <https://www.gnu.org/licenses/>. |  | ||||||
| 
 |  | ||||||
| TREE=${1} |  | ||||||
| 
 |  | ||||||
| if test "x${TREE}" = "x"; then |  | ||||||
|     TREE=${PWD} |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| if [ -e ${TREE}/nashorn/.hg -o -e ${TREE}/nashorn/merge.changeset ] ; then |  | ||||||
|     NASHORN="nashorn" ; |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| if [ -e ${TREE}/corba/.hg -o -e ${TREE}/corba/merge.changeset ] ; then |  | ||||||
|     CORBA="corba"; |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| if [ -e ${TREE}/jaxp/.hg -o -e ${TREE}/jaxp/merge.changeset ] ; then |  | ||||||
|     JAXP="jaxp"; |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| if [ -e ${TREE}/jaxws/.hg -o -e ${TREE}/jaxws/merge.changeset ] ; then |  | ||||||
|     JAXWS="jaxws"; |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| if [ -e ${TREE}/langtools/.hg -o -e ${TREE}/langtools/merge.changeset ] ; then |  | ||||||
|     LANGTOOLS="langtools"; |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| if [ -e ${TREE}/jdk/.hg -o -e ${TREE}/jdk/merge.changeset ] ; then |  | ||||||
|     JDK="jdk"; |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| if [ -e ${TREE}/hotspot/.hg -o -e ${TREE}/hotspot/merge.changeset ] ; then |  | ||||||
|     HOTSPOT="hotspot"; |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| SUBTREES="${CORBA} ${JAXP} ${JAXWS} ${LANGTOOLS} ${NASHORN} ${JDK} ${HOTSPOT}"; |  | ||||||
| echo ${SUBTREES} |  | ||||||
| @ -1,7 +0,0 @@ | |||||||
| # recipients: java-qa |  | ||||||
| --- !Policy |  | ||||||
| product_versions: |  | ||||||
|   - rhel-9 |  | ||||||
| decision_context: osci_compose_gate |  | ||||||
| rules: |  | ||||||
|   - !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional} |  | ||||||
| @ -1,210 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| # Generates the 'source tarball' for JDK projects. |  | ||||||
| # |  | ||||||
| # Example: |  | ||||||
| # When used from local repo set REPO_ROOT pointing to file:// with your repo |  | ||||||
| # If your local repo follows upstream forests conventions, it may be enough to set OPENJDK_URL |  | ||||||
| # If you want to use a local copy of patch PR3788, set the path to it in the PR3788 variable |  | ||||||
| # |  | ||||||
| # In any case you have to set PROJECT_NAME REPO_NAME and VERSION. eg: |  | ||||||
| # PROJECT_NAME=openjdk |  | ||||||
| # REPO_NAME=jdk17u |  | ||||||
| # VERSION=jdk-17.0.3+5 |  | ||||||
| # or to eg prepare systemtap: |  | ||||||
| # icedtea7's jstack and other tapsets |  | ||||||
| # VERSION=6327cf1cea9e |  | ||||||
| # REPO_NAME=icedtea7-2.6 |  | ||||||
| # PROJECT_NAME=release |  | ||||||
| # OPENJDK_URL=http://icedtea.classpath.org/hg/ |  | ||||||
| # TO_COMPRESS="*/tapset" |  | ||||||
| # |  | ||||||
| # They are used to create correct name and are used in construction of sources url (unless REPO_ROOT is set) |  | ||||||
| 
 |  | ||||||
| # This script creates a single source tarball out of the repository |  | ||||||
| # based on the given tag and removes code not allowed in fedora/rhel. For |  | ||||||
| # consistency, the source tarball will always contain 'openjdk' as the top |  | ||||||
| # level folder, name is created, based on parameter |  | ||||||
| # |  | ||||||
| 
 |  | ||||||
| if [ ! "x$PR3823" = "x" ] ; then |  | ||||||
|   if [ ! -f "$PR3823" ] ; then |  | ||||||
|     echo "You have specified PR3823 as $PR3823 but it does not exist. Exiting" |  | ||||||
|     exit 1 |  | ||||||
|   fi |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| set -e |  | ||||||
| 
 |  | ||||||
| OPENJDK_URL_DEFAULT=https://github.com |  | ||||||
| COMPRESSION_DEFAULT=xz |  | ||||||
| # Corresponding IcedTea version |  | ||||||
| ICEDTEA_VERSION=12.0 |  | ||||||
| 
 |  | ||||||
| if [ "x$1" = "xhelp" ] ; then |  | ||||||
|     echo -e "Behaviour may be specified by setting the following variables:\n" |  | ||||||
|     echo "VERSION - the version of the specified OpenJDK project" |  | ||||||
|     echo "PROJECT_NAME -- the name of the OpenJDK project being archived (optional; only needed by defaults)" |  | ||||||
|     echo "REPO_NAME - the name of the OpenJDK repository (optional; only needed by defaults)" |  | ||||||
|     echo "OPENJDK_URL - the URL to retrieve code from (optional; defaults to ${OPENJDK_URL_DEFAULT})" |  | ||||||
|     echo "COMPRESSION - the compression type to use (optional; defaults to ${COMPRESSION_DEFAULT})" |  | ||||||
|     echo "FILE_NAME_ROOT - name of the archive, minus extensions (optional; defaults to PROJECT_NAME-REPO_NAME-VERSION)" |  | ||||||
|     echo "TO_COMPRESS - what part of clone to pack (default is openjdk)" |  | ||||||
|     echo "PR3823 - the path to the PR3823 patch to apply (optional; downloaded if unavailable)" |  | ||||||
|     echo "BOOT_JDK - the bootstrap JDK to satisfy the configure run" |  | ||||||
|     exit 1; |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| if [ "x$VERSION" = "x" ] ; then |  | ||||||
|     echo "No VERSION specified" |  | ||||||
|     exit 2 |  | ||||||
| fi |  | ||||||
| echo "Version: ${VERSION}" |  | ||||||
| 
 |  | ||||||
| NUM_VER=${VERSION##jdk-} |  | ||||||
| RELEASE_VER=${NUM_VER%%+*} |  | ||||||
| BUILD_VER=${NUM_VER##*+} |  | ||||||
| MAJOR_VER=${RELEASE_VER%%.*} |  | ||||||
| echo "Major version is ${MAJOR_VER}, release ${RELEASE_VER}, build ${BUILD_VER}" |  | ||||||
| 
 |  | ||||||
| if [ "x$BOOT_JDK" = "x" ] ; then |  | ||||||
|     echo "No boot JDK specified". |  | ||||||
|     BOOT_JDK=/usr/lib/jvm/java-${MAJOR_VER}-openjdk; |  | ||||||
|     echo -n "Checking for ${BOOT_JDK}..."; |  | ||||||
|     if [ -d ${BOOT_JDK} -a -x ${BOOT_JDK}/bin/java ] ; then |  | ||||||
|         echo "Boot JDK found at ${BOOT_JDK}"; |  | ||||||
|     else |  | ||||||
|         echo "Not found"; |  | ||||||
|         PREV_VER=$((${MAJOR_VER} - 1)); |  | ||||||
|         BOOT_JDK=/usr/lib/jvm/java-${PREV_VER}-openjdk; |  | ||||||
|         echo -n "Checking for ${BOOT_JDK}..."; |  | ||||||
|         if [ -d ${BOOT_JDK} -a -x ${BOOT_JDK}/bin/java ] ; then |  | ||||||
|             echo "Boot JDK found at ${BOOT_JDK}"; |  | ||||||
|         else |  | ||||||
|             echo "Not found"; |  | ||||||
|             exit 4; |  | ||||||
|         fi |  | ||||||
|     fi |  | ||||||
| else |  | ||||||
|     echo "Boot JDK: ${BOOT_JDK}"; |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| # REPO_NAME is only needed when we default on REPO_ROOT and FILE_NAME_ROOT |  | ||||||
| if [ "x$FILE_NAME_ROOT" = "x" -o "x$REPO_ROOT" = "x" ] ; then |  | ||||||
|   if [ "x$PROJECT_NAME" = "x" ] ; then |  | ||||||
|     echo "No PROJECT_NAME specified" |  | ||||||
|     exit 1 |  | ||||||
|   fi |  | ||||||
|   echo "Project name: ${PROJECT_NAME}" |  | ||||||
|   if [ "x$REPO_NAME" = "x" ] ; then |  | ||||||
|     echo "No REPO_NAME specified" |  | ||||||
|     exit 3 |  | ||||||
|   fi |  | ||||||
|   echo "Repository name: ${REPO_NAME}" |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| if [ "x$OPENJDK_URL" = "x" ] ; then |  | ||||||
|     OPENJDK_URL=${OPENJDK_URL_DEFAULT} |  | ||||||
|     echo "No OpenJDK URL specified; defaulting to ${OPENJDK_URL}" |  | ||||||
| else |  | ||||||
|     echo "OpenJDK URL: ${OPENJDK_URL}" |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| if [ "x$COMPRESSION" = "x" ] ; then |  | ||||||
|     # rhel 5 needs tar.gz |  | ||||||
|     COMPRESSION=${COMPRESSION_DEFAULT} |  | ||||||
| fi |  | ||||||
| echo "Creating a tar.${COMPRESSION} archive" |  | ||||||
| 
 |  | ||||||
| if [ "x$FILE_NAME_ROOT" = "x" ] ; then |  | ||||||
|     FILE_NAME_ROOT=${PROJECT_NAME}-${REPO_NAME}-${VERSION} |  | ||||||
|     echo "No file name root specified; default to ${FILE_NAME_ROOT}" |  | ||||||
| fi |  | ||||||
| if [ "x$REPO_ROOT" = "x" ] ; then |  | ||||||
|     REPO_ROOT="${OPENJDK_URL}/${PROJECT_NAME}/${REPO_NAME}.git" |  | ||||||
|     echo "No repository root specified; default to ${REPO_ROOT}" |  | ||||||
| fi; |  | ||||||
| 
 |  | ||||||
| if [ "x$TO_COMPRESS" = "x" ] ; then |  | ||||||
|     TO_COMPRESS="openjdk" |  | ||||||
|     echo "No targets to be compressed specified, ; default to ${TO_COMPRESS}" |  | ||||||
| fi; |  | ||||||
| 
 |  | ||||||
| if [ -d ${FILE_NAME_ROOT} ] ; then |  | ||||||
|   echo "exists exists exists exists exists exists exists " |  | ||||||
|   echo "reusing reusing reusing reusing reusing reusing " |  | ||||||
|   echo ${FILE_NAME_ROOT} |  | ||||||
| else |  | ||||||
|   mkdir "${FILE_NAME_ROOT}" |  | ||||||
|   pushd "${FILE_NAME_ROOT}" |  | ||||||
|     echo "Cloning ${VERSION} root repository from ${REPO_ROOT}" |  | ||||||
|     git clone -b ${VERSION} ${REPO_ROOT} openjdk |  | ||||||
|   popd |  | ||||||
| fi |  | ||||||
| pushd "${FILE_NAME_ROOT}" |  | ||||||
|     if [ -d openjdk/src ]; then |  | ||||||
|         pushd openjdk |  | ||||||
|             echo "Removing EC source code we don't build" |  | ||||||
|             CRYPTO_PATH=src/jdk.crypto.ec/share/native/libsunec/impl |  | ||||||
|             rm -vf ${CRYPTO_PATH}/ec2.h |  | ||||||
|             rm -vf ${CRYPTO_PATH}/ec2_163.c |  | ||||||
|             rm -vf ${CRYPTO_PATH}/ec2_193.c |  | ||||||
|             rm -vf ${CRYPTO_PATH}/ec2_233.c |  | ||||||
|             rm -vf ${CRYPTO_PATH}/ec2_aff.c |  | ||||||
|             rm -vf ${CRYPTO_PATH}/ec2_mont.c |  | ||||||
|             rm -vf ${CRYPTO_PATH}/ecp_192.c |  | ||||||
|             rm -vf ${CRYPTO_PATH}/ecp_224.c |  | ||||||
| 
 |  | ||||||
|             echo "Syncing EC list with NSS" |  | ||||||
|             if [ "x$PR3823" = "x" ] ; then |  | ||||||
|                 # get PR3823.patch (from https://github.com/icedtea-git/icedtea) in the ${ICEDTEA_VERSION} branch |  | ||||||
|                 # Do not push it or publish it |  | ||||||
|                 echo "PR3823 not found. Downloading..." |  | ||||||
|                 wget -v https://github.com/icedtea-git/icedtea/raw/${ICEDTEA_VERSION}/patches/pr3823.patch |  | ||||||
|                 echo "Applying ${PWD}/pr3823.patch" |  | ||||||
|                 patch -Np1 < pr3823.patch |  | ||||||
|                 rm pr3823.patch |  | ||||||
|             else |  | ||||||
|                 echo "Applying ${PR3823}" |  | ||||||
|                 patch -Np1 < $PR3823 |  | ||||||
|             fi; |  | ||||||
|             find . -name '*.orig' -exec rm -vf '{}' ';' |  | ||||||
|         popd |  | ||||||
|     fi |  | ||||||
| 
 |  | ||||||
|     # Generate .src-rev so build has knowledge of the revision the tarball was created from |  | ||||||
|     mkdir build |  | ||||||
|     pushd build |  | ||||||
|     sh ${PWD}/../openjdk/configure --with-boot-jdk=${BOOT_JDK} |  | ||||||
|     make store-source-revision |  | ||||||
|     popd |  | ||||||
|     rm -rf build |  | ||||||
| 
 |  | ||||||
|     # Remove commit checks |  | ||||||
|     echo "Removing $(find openjdk -name '.jcheck' -print)" |  | ||||||
|     find openjdk -name '.jcheck' -print0 | xargs -0 rm -r |  | ||||||
| 
 |  | ||||||
|     # Remove history and GHA |  | ||||||
|     echo "find openjdk -name '.hgtags'" |  | ||||||
|     find openjdk -name '.hgtags' -exec rm -v '{}' '+' |  | ||||||
|     echo "find openjdk -name '.hgignore'" |  | ||||||
|     find openjdk -name '.hgignore' -exec rm -v '{}' '+' |  | ||||||
|     echo "find openjdk -name '.gitattributes'" |  | ||||||
|     find openjdk -name '.gitattributes' -exec rm -v '{}' '+' |  | ||||||
|     echo "find openjdk -name '.gitignore'" |  | ||||||
|     find openjdk -name '.gitignore' -exec rm -v '{}' '+' |  | ||||||
|     echo "find openjdk -name '.git'" |  | ||||||
|     find openjdk -name '.git' -exec rm -rv '{}' '+' |  | ||||||
|     echo "find openjdk -name '.github'" |  | ||||||
|     find openjdk -name '.github' -exec rm -rv '{}' '+' |  | ||||||
| 
 |  | ||||||
|     echo "Compressing remaining forest" |  | ||||||
|     if [ "X$COMPRESSION" = "Xxz" ] ; then |  | ||||||
|         SWITCH=cJf |  | ||||||
|     else |  | ||||||
|         SWITCH=czf |  | ||||||
|     fi |  | ||||||
|     tar --exclude-vcs -$SWITCH ${FILE_NAME_ROOT}.tar.${COMPRESSION} $TO_COMPRESS |  | ||||||
|     mv ${FILE_NAME_ROOT}.tar.${COMPRESSION}  .. |  | ||||||
| popd |  | ||||||
| echo "Done. You may want to remove the uncompressed version - $FILE_NAME_ROOT." |  | ||||||
							
								
								
									
										191
									
								
								icedtea_sync.sh
									
									
									
									
									
								
							
							
						
						
									
										191
									
								
								icedtea_sync.sh
									
									
									
									
									
								
							| @ -1,191 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| 
 |  | ||||||
| # Copyright (C) 2019 Red Hat, Inc. |  | ||||||
| # Written by Andrew John Hughes <gnu.andrew@redhat.com>. |  | ||||||
| # |  | ||||||
| # This program is free software: you can redistribute it and/or modify |  | ||||||
| # it under the terms of the GNU Affero General Public License as |  | ||||||
| # published by the Free Software Foundation, either version 3 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 Affero General Public License for more details. |  | ||||||
| # |  | ||||||
| # You should have received a copy of the GNU Affero General Public License |  | ||||||
| # along with this program.  If not, see <http://www.gnu.org/licenses/>. |  | ||||||
| 
 |  | ||||||
| ICEDTEA_USE_VCS=true |  | ||||||
| 
 |  | ||||||
| ICEDTEA_VERSION=3.15.0 |  | ||||||
| ICEDTEA_URL=https://icedtea.classpath.org/download/source |  | ||||||
| ICEDTEA_SIGNING_KEY=CFDA0F9B35964222 |  | ||||||
| 
 |  | ||||||
| ICEDTEA_HG_URL=https://icedtea.classpath.org/hg/icedtea11 |  | ||||||
| set -e |  | ||||||
| 
 |  | ||||||
| RPM_DIR=${PWD} |  | ||||||
| if [ ! -f ${RPM_DIR}/jconsole.desktop.in ] ; then |  | ||||||
|     echo "Not in RPM source tree."; |  | ||||||
|     exit 1; |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| if test "x${TMPDIR}" = "x"; then |  | ||||||
|     TMPDIR=/tmp; |  | ||||||
| fi |  | ||||||
| WORKDIR=${TMPDIR}/it.sync |  | ||||||
| 
 |  | ||||||
| echo "Using working directory ${WORKDIR}" |  | ||||||
| mkdir ${WORKDIR} |  | ||||||
| pushd ${WORKDIR} |  | ||||||
| 
 |  | ||||||
| if test "x${WGET}" = "x"; then |  | ||||||
|     WGET=$(which wget); |  | ||||||
|     if test "x${WGET}" = "x"; then |  | ||||||
| 	echo "wget not found"; |  | ||||||
| 	exit 1; |  | ||||||
|     fi |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| if test "x${TAR}" = "x"; then |  | ||||||
|     TAR=$(which tar) |  | ||||||
|     if test "x${TAR}" = "x"; then |  | ||||||
| 	echo "tar not found"; |  | ||||||
| 	exit 2; |  | ||||||
|     fi |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| echo "Dependencies:"; |  | ||||||
| echo -e "\tWGET: ${WGET}"; |  | ||||||
| echo -e "\tTAR: ${TAR}\n"; |  | ||||||
| 
 |  | ||||||
| if test "x${ICEDTEA_USE_VCS}" = "xtrue"; then |  | ||||||
|     echo "Mode: Using VCS"; |  | ||||||
| 
 |  | ||||||
|     if test "x${GREP}" = "x"; then |  | ||||||
| 	GREP=$(which grep); |  | ||||||
| 	if test "x${GREP}" = "x"; then |  | ||||||
| 	    echo "grep not found"; |  | ||||||
| 	    exit 3; |  | ||||||
| 	fi |  | ||||||
|     fi |  | ||||||
| 
 |  | ||||||
|     if test "x${CUT}" = "x"; then |  | ||||||
| 	CUT=$(which cut); |  | ||||||
| 	if test "x${CUT}" = "x"; then |  | ||||||
| 	    echo "cut not found"; |  | ||||||
| 	    exit 4; |  | ||||||
| 	fi |  | ||||||
|     fi |  | ||||||
| 
 |  | ||||||
|     if test "x${TR}" = "x"; then |  | ||||||
| 	TR=$(which tr); |  | ||||||
| 	if test "x${TR}" = "x"; then |  | ||||||
| 	    echo "tr not found"; |  | ||||||
| 	    exit 5; |  | ||||||
| 	fi |  | ||||||
|     fi |  | ||||||
| 
 |  | ||||||
|     if test "x${HG}" = "x"; then |  | ||||||
| 	HG=$(which hg); |  | ||||||
| 	if test "x${HG}" = "x"; then |  | ||||||
| 	    echo "hg not found"; |  | ||||||
| 	    exit 6; |  | ||||||
| 	fi |  | ||||||
|     fi |  | ||||||
| 
 |  | ||||||
|     echo "Dependencies:"; |  | ||||||
|     echo -e "\tGREP: ${GREP}"; |  | ||||||
|     echo -e "\tCUT: ${CUT}"; |  | ||||||
|     echo -e "\tTR: ${TR}"; |  | ||||||
|     echo -e "\tHG: ${HG}"; |  | ||||||
| 
 |  | ||||||
|     echo "Checking out repository from VCS..."; |  | ||||||
|     ${HG} clone ${ICEDTEA_HG_URL} icedtea |  | ||||||
| 
 |  | ||||||
|     echo "Obtaining version from configure.ac..."; |  | ||||||
|     ROOT_VER=$(${GREP} '^AC_INIT' icedtea/configure.ac|${CUT} -d ',' -f 2|${TR} -d '[][:space:]') |  | ||||||
|     echo "Root version from configure: ${ROOT_VER}"; |  | ||||||
| 
 |  | ||||||
|     VCS_REV=$(${HG} log -R icedtea --template '{node|short}' -r tip) |  | ||||||
|     echo "VCS revision: ${VCS_REV}"; |  | ||||||
| 
 |  | ||||||
|     ICEDTEA_VERSION="${ROOT_VER}-${VCS_REV}" |  | ||||||
|     echo "Creating icedtea-${ICEDTEA_VERSION}"; |  | ||||||
|     mkdir icedtea-${ICEDTEA_VERSION} |  | ||||||
|     echo "Copying required files from checkout to icedtea-${ICEDTEA_VERSION}"; |  | ||||||
|     # Commented out for now as IcedTea 6's jconsole.desktop.in is outdated |  | ||||||
|     #cp -a icedtea/jconsole.desktop.in ../icedtea-${ICEDTEA_VERSION} |  | ||||||
|     cp -a ${RPM_DIR}/jconsole.desktop.in icedtea-${ICEDTEA_VERSION} |  | ||||||
|     cp -a icedtea/tapset icedtea-${ICEDTEA_VERSION} |  | ||||||
| 
 |  | ||||||
|     rm -rf icedtea |  | ||||||
| else |  | ||||||
|     echo "Mode: Using tarball"; |  | ||||||
| 
 |  | ||||||
|     if test "x${ICEDTEA_VERSION}" = "x"; then |  | ||||||
| 	echo "No IcedTea version specified for tarball download."; |  | ||||||
| 	exit 3; |  | ||||||
|     fi |  | ||||||
| 
 |  | ||||||
|     if test "x${CHECKSUM}" = "x"; then |  | ||||||
| 	CHECKSUM=$(which sha256sum) |  | ||||||
| 	if test "x${CHECKSUM}" = "x"; then |  | ||||||
| 	    echo "sha256sum not found"; |  | ||||||
| 	    exit 4; |  | ||||||
| 	fi |  | ||||||
|     fi |  | ||||||
| 
 |  | ||||||
|     if test "x${PGP}" = "x"; then |  | ||||||
| 	PGP=$(which gpg) |  | ||||||
| 	if test "x${PGP}" = "x"; then |  | ||||||
| 	    echo "gpg not found"; |  | ||||||
| 	    exit 5; |  | ||||||
| 	fi |  | ||||||
|     fi |  | ||||||
| 
 |  | ||||||
|     echo "Dependencies:"; |  | ||||||
|     echo -e "\tCHECKSUM: ${CHECKSUM}"; |  | ||||||
|     echo -e "\tPGP: ${PGP}\n"; |  | ||||||
| 
 |  | ||||||
|     echo "Checking for IcedTea signing key ${ICEDTEA_SIGNING_KEY}..."; |  | ||||||
|     if ! gpg --list-keys ${ICEDTEA_SIGNING_KEY}; then |  | ||||||
| 	echo "IcedTea signing key ${ICEDTEA_SIGNING_KEY} not installed."; |  | ||||||
| 	exit 6; |  | ||||||
|     fi |  | ||||||
| 
 |  | ||||||
|     echo "Downloading IcedTea release tarball..."; |  | ||||||
|     ${WGET} -v ${ICEDTEA_URL}/icedtea-${ICEDTEA_VERSION}.tar.xz |  | ||||||
|     echo "Downloading IcedTea tarball signature..."; |  | ||||||
|     ${WGET} -v ${ICEDTEA_URL}/icedtea-${ICEDTEA_VERSION}.tar.xz.sig |  | ||||||
|     echo "Downloading IcedTea tarball checksums..."; |  | ||||||
|     ${WGET} -v ${ICEDTEA_URL}/icedtea-${ICEDTEA_VERSION}.sha256 |  | ||||||
| 
 |  | ||||||
|     echo "Verifying checksums..."; |  | ||||||
|     ${CHECKSUM} --check --ignore-missing icedtea-${ICEDTEA_VERSION}.sha256 |  | ||||||
| 
 |  | ||||||
|     echo "Checking signature..."; |  | ||||||
|     ${PGP} --verify icedtea-${ICEDTEA_VERSION}.tar.xz.sig |  | ||||||
| 
 |  | ||||||
|     echo "Extracting files..."; |  | ||||||
|     ${TAR} xJf icedtea-${ICEDTEA_VERSION}.tar.xz \ |  | ||||||
|        icedtea-${ICEDTEA_VERSION}/tapset \ |  | ||||||
|        icedtea-${ICEDTEA_VERSION}/jconsole.desktop.in |  | ||||||
| 
 |  | ||||||
|     rm -vf icedtea-${ICEDTEA_VERSION}.tar.xz |  | ||||||
|     rm -vf icedtea-${ICEDTEA_VERSION}.tar.xz.sig |  | ||||||
|     rm -vf icedtea-${ICEDTEA_VERSION}.sha256 |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| echo "Replacing desktop files..."; |  | ||||||
| mv -v icedtea-${ICEDTEA_VERSION}/jconsole.desktop.in ${RPM_DIR} |  | ||||||
| 
 |  | ||||||
| echo "Creating new tapset tarball..."; |  | ||||||
| mv -v icedtea-${ICEDTEA_VERSION} openjdk |  | ||||||
| ${TAR} cJf ${RPM_DIR}/tapsets-icedtea-${ICEDTEA_VERSION}.tar.xz openjdk |  | ||||||
| 
 |  | ||||||
| rm -rvf openjdk |  | ||||||
| 
 |  | ||||||
| popd |  | ||||||
| rm -rf ${WORKDIR} |  | ||||||
| @ -1,53 +0,0 @@ | |||||||
| commit 1b3825db8631e55771fb723d4fcd10040ea15b7e |  | ||||||
| Author: duke <duke@openjdk.org> |  | ||||||
| Date:   Wed Apr 12 17:25:27 2023 +0000 |  | ||||||
| 
 |  | ||||||
|     Backport ec199072c5867624d66840238cc8828e16ae8da7 |  | ||||||
| 
 |  | ||||||
| diff --git a/src/java.base/share/classes/sun/util/calendar/ZoneInfoFile.java b/src/java.base/share/classes/sun/util/calendar/ZoneInfoFile.java
 |  | ||||||
| index 6f6e190efcd..ef278203182 100644
 |  | ||||||
| --- a/src/java.base/share/classes/sun/util/calendar/ZoneInfoFile.java
 |  | ||||||
| +++ b/src/java.base/share/classes/sun/util/calendar/ZoneInfoFile.java
 |  | ||||||
| @@ -608,34 +608,6 @@ public final class ZoneInfoFile {
 |  | ||||||
|                  params[8] = endRule.secondOfDay * 1000; |  | ||||||
|                  params[9] = toSTZTime[endRule.timeDefinition]; |  | ||||||
|                  dstSavings = (startRule.offsetAfter - startRule.offsetBefore) * 1000; |  | ||||||
| -
 |  | ||||||
| -                // Note: known mismatching -> Asia/Amman
 |  | ||||||
| -                // ZoneInfo :      startDayOfWeek=5     <= Thursday
 |  | ||||||
| -                //                 startTime=86400000   <= 24 hours
 |  | ||||||
| -                // This:           startDayOfWeek=6
 |  | ||||||
| -                //                 startTime=0
 |  | ||||||
| -                // Similar workaround needs to be applied to Africa/Cairo and
 |  | ||||||
| -                // its endDayOfWeek and endTime
 |  | ||||||
| -                // Below is the workarounds, it probably slows down everyone a little
 |  | ||||||
| -                if (params[2] == 6 && params[3] == 0 &&
 |  | ||||||
| -                    (zoneId.equals("Asia/Amman"))) {
 |  | ||||||
| -                    params[2] = 5;
 |  | ||||||
| -                    params[3] = 86400000;
 |  | ||||||
| -                }
 |  | ||||||
| -                // Additional check for startDayOfWeek=6 and starTime=86400000
 |  | ||||||
| -                // is needed for Asia/Amman;
 |  | ||||||
| -                if (params[2] == 7 && params[3] == 0 &&
 |  | ||||||
| -                     (zoneId.equals("Asia/Amman"))) {
 |  | ||||||
| -                    params[2] = 6;        // Friday
 |  | ||||||
| -                    params[3] = 86400000; // 24h
 |  | ||||||
| -                }
 |  | ||||||
| -                //endDayOfWeek and endTime workaround
 |  | ||||||
| -                if (params[7] == 6 && params[8] == 0 &&
 |  | ||||||
| -                    (zoneId.equals("Africa/Cairo"))) {
 |  | ||||||
| -                    params[7] = 5;
 |  | ||||||
| -                    params[8] = 86400000;
 |  | ||||||
| -                }
 |  | ||||||
| -
 |  | ||||||
|              } else if (nTrans > 0) {  // only do this if there is something in table already |  | ||||||
|                  if (lastyear < LASTYEAR) { |  | ||||||
|                      // ZoneInfo has an ending entry for 2037 |  | ||||||
| @@ -908,7 +880,6 @@ public final class ZoneInfoFile {
 |  | ||||||
|              this.dow = dowByte == 0 ? -1 : dowByte; |  | ||||||
|              this.secondOfDay = timeByte == 31 ? in.readInt() : timeByte * 3600; |  | ||||||
|              this.timeDefinition = (data & (3 << 12)) >>> 12; |  | ||||||
| -
 |  | ||||||
|              this.standardOffset = stdByte == 255 ? in.readInt() : (stdByte - 128) * 900; |  | ||||||
|              this.offsetBefore = beforeByte == 3 ? in.readInt() : standardOffset + beforeByte * 1800; |  | ||||||
|              this.offsetAfter = afterByte == 3 ? in.readInt() : standardOffset + afterByte * 1800; |  | ||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @ -1,5 +0,0 @@ | |||||||
| name = NSS |  | ||||||
| nssLibraryDirectory = @NSS_LIBDIR@ |  | ||||||
| nssDbMode = noDb |  | ||||||
| attributes = compatibility |  | ||||||
| handleStartupErrors = ignoreMultipleInitialisation |  | ||||||
| @ -1,76 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| 
 |  | ||||||
| # Copyright (C) 2022 Red Hat, Inc. |  | ||||||
| # Written by Andrew John Hughes <gnu.andrew@redhat.com>, 2012-2022 |  | ||||||
| # |  | ||||||
| # This program is free software: you can redistribute it and/or modify |  | ||||||
| # it under the terms of the GNU Affero General Public License as |  | ||||||
| # published by the Free Software Foundation, either version 3 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 Affero General Public License for more details. |  | ||||||
| # |  | ||||||
| # You should have received a copy of the GNU Affero General Public License |  | ||||||
| # along with this program.  If not, see <http://www.gnu.org/licenses/>. |  | ||||||
| 
 |  | ||||||
| OLD_RELEASE=$1 |  | ||||||
| NEW_RELEASE=$2 |  | ||||||
| SUBDIR=$3 |  | ||||||
| REPO=$4 |  | ||||||
| SCRIPT_DIR=$(dirname ${0}) |  | ||||||
| 
 |  | ||||||
| if test "x${SUBDIR}" = "x"; then |  | ||||||
|     echo "No subdirectory specified; using ."; |  | ||||||
|     SUBDIR="."; |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| if test "x$REPO" = "x"; then |  | ||||||
|     echo "No repository specified; using ${PWD}" |  | ||||||
|     REPO=${PWD} |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| if test x${TMPDIR} = x; then |  | ||||||
|     TMPDIR=/tmp; |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| echo "Repository: ${REPO}" |  | ||||||
| 
 |  | ||||||
| if [ -e ${REPO}/.git ] ; then |  | ||||||
|     TYPE=git; |  | ||||||
| elif [ -e ${REPO}/.hg ] ; then |  | ||||||
|     TYPE=hg; |  | ||||||
| else |  | ||||||
|     echo "No Mercurial or Git repository detected."; |  | ||||||
|     exit 1; |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| if test "x$OLD_RELEASE" = "x" || test "x$NEW_RELEASE" = "x"; then |  | ||||||
|     echo "ERROR: Need to specify old and new release"; |  | ||||||
|     exit 2; |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| echo "Listing fixes between $OLD_RELEASE and $NEW_RELEASE in $REPO" |  | ||||||
| rm -f ${TMPDIR}/fixes2 ${TMPDIR}/fixes3 ${TMPDIR}/fixes |  | ||||||
| for repos in . $(${SCRIPT_DIR}/discover_trees.sh ${REPO}); |  | ||||||
| do |  | ||||||
|     if test "x$TYPE" = "xhg"; then |  | ||||||
| 	hg log -r "tag('$NEW_RELEASE'):tag('$OLD_RELEASE') - tag('$OLD_RELEASE')" -R $REPO/$repos -G -M ${REPO}/${SUBDIR} | \ |  | ||||||
| 	    egrep '^[o:| ]*summary'|grep -v 'Added tag'|sed -r 's#^[o:| ]*summary:\W*([0-9])#  - JDK-\1#'| \ |  | ||||||
| 	    sed 's#^[o:| ]*summary:\W*#  - #' >> ${TMPDIR}/fixes2; |  | ||||||
| 	hg log -v -r "tag('$NEW_RELEASE'):tag('$OLD_RELEASE') - tag('$OLD_RELEASE')" -R $REPO/$repos -G -M ${REPO}/${SUBDIR} | \ |  | ||||||
| 	    egrep '^[o:| ]*[0-9]{7}'|sed -r 's#^[o:| ]*([0-9]{7})#  - JDK-\1#' >> ${TMPDIR}/fixes3; |  | ||||||
|     else |  | ||||||
| 	git -C ${REPO} log --no-merges --pretty=format:%B ${NEW_RELEASE}...${OLD_RELEASE} -- ${SUBDIR} |egrep '^[0-9]{7}' | \ |  | ||||||
| 	    sed -r 's#^([0-9])#  - JDK-\1#' >> ${TMPDIR}/fixes2; |  | ||||||
| 	touch ${TMPDIR}/fixes3 ; # unused |  | ||||||
|     fi |  | ||||||
| done |  | ||||||
| 
 |  | ||||||
| sort ${TMPDIR}/fixes2 ${TMPDIR}/fixes3 | uniq > ${TMPDIR}/fixes |  | ||||||
| rm -f ${TMPDIR}/fixes2 ${TMPDIR}/fixes3 |  | ||||||
| 
 |  | ||||||
| echo "In ${TMPDIR}/fixes:" |  | ||||||
| cat ${TMPDIR}/fixes |  | ||||||
| @ -1,16 +0,0 @@ | |||||||
| diff -r 618ad1237e73 src/java.desktop/share/classes/java/awt/Toolkit.java
 |  | ||||||
| --- a/src/java.desktop/share/classes/java/awt/Toolkit.java	Thu Jun 13 19:37:49 2019 +0200
 |  | ||||||
| +++ b/src/java.desktop/share/classes/java/awt/Toolkit.java	Thu Jul 04 10:35:42 2019 +0200
 |  | ||||||
| @@ -595,7 +595,11 @@
 |  | ||||||
|                  toolkit = new HeadlessToolkit(toolkit); |  | ||||||
|              } |  | ||||||
|              if (!GraphicsEnvironment.isHeadless()) { |  | ||||||
| -                loadAssistiveTechnologies();
 |  | ||||||
| +                try {
 |  | ||||||
| +                    loadAssistiveTechnologies();
 |  | ||||||
| +                } catch (AWTError error) {
 |  | ||||||
| +                    // ignore silently
 |  | ||||||
| +                }
 |  | ||||||
|              } |  | ||||||
|          } |  | ||||||
|          return toolkit; |  | ||||||
| @ -1,12 +0,0 @@ | |||||||
| diff --git a/src/java.base/share/conf/security/java.security b/src/java.base/share/conf/security/java.security
 |  | ||||||
| index adfaf57d29e..abf89bbf327 100644
 |  | ||||||
| --- a/src/java.base/share/conf/security/java.security
 |  | ||||||
| +++ b/src/java.base/share/conf/security/java.security
 |  | ||||||
| @@ -78,6 +78,7 @@ security.provider.tbd=SunMSCAPI
 |  | ||||||
|  security.provider.tbd=Apple |  | ||||||
|  #endif |  | ||||||
|  security.provider.tbd=SunPKCS11 |  | ||||||
| +#security.provider.tbd=SunPKCS11 ${java.home}/lib/security/nss.cfg
 |  | ||||||
|   |  | ||||||
|  # |  | ||||||
|  # Security providers used when FIPS mode support is active |  | ||||||
| @ -1,20 +0,0 @@ | |||||||
| --- openjdk/src/java.base/share/conf/security/java.security
 |  | ||||||
| +++ openjdk/src/java.base/share/conf/security/java.security
 |  | ||||||
| @@ -304,6 +304,8 @@
 |  | ||||||
|  # |  | ||||||
|  package.access=sun.misc.,\ |  | ||||||
|                 sun.reflect.,\ |  | ||||||
| +               org.GNOME.Accessibility.,\
 |  | ||||||
| +               org.GNOME.Bonobo.,\
 |  | ||||||
|   |  | ||||||
|  # |  | ||||||
|  # List of comma-separated packages that start with or equal this string |  | ||||||
| @@ -316,6 +318,8 @@
 |  | ||||||
|  # |  | ||||||
|  package.definition=sun.misc.,\ |  | ||||||
|                     sun.reflect.,\ |  | ||||||
| +                   org.GNOME.Accessibility.,\
 |  | ||||||
| +                   org.GNOME.Bonobo.,\
 |  | ||||||
|   |  | ||||||
|  # |  | ||||||
|  # Determines whether this properties file can be appended to |  | ||||||
| @ -1,13 +0,0 @@ | |||||||
| --- openjdk/src/java.smartcardio/unix/classes/sun/security/smartcardio/PlatformPCSC.java	2013-03-01 10:48:12.038189968 +0100
 |  | ||||||
| +++ openjdk/src/java.smartcardio/unix/classes/sun/security/smartcardio/PlatformPCSC.java	2013-03-01 10:48:11.913188505 +0100
 |  | ||||||
| @@ -48,8 +48,8 @@
 |  | ||||||
|   |  | ||||||
|      private final static String PROP_NAME = "sun.security.smartcardio.library"; |  | ||||||
|   |  | ||||||
| -    private final static String LIB1 = "/usr/$LIBISA/libpcsclite.so";
 |  | ||||||
| -    private final static String LIB2 = "/usr/local/$LIBISA/libpcsclite.so";
 |  | ||||||
| +    private final static String LIB1 = "/usr/$LIBISA/libpcsclite.so.1";
 |  | ||||||
| +    private final static String LIB2 = "/usr/local/$LIBISA/libpcsclite.so.1";
 |  | ||||||
|      private final static String PCSC_FRAMEWORK = "/System/Library/Frameworks/PCSC.framework/Versions/Current/PCSC"; |  | ||||||
|   |  | ||||||
|      PlatformPCSC() { |  | ||||||
| @ -1,117 +0,0 @@ | |||||||
| diff --git openjdk.orig/make/modules/java.base/Launcher.gmk openjdk/make/modules/java.base/Launcher.gmk
 |  | ||||||
| index 700ddefda49..2882de68eb2 100644
 |  | ||||||
| --- openjdk.orig/make/modules/java.base/Launcher.gmk
 |  | ||||||
| +++ openjdk/make/modules/java.base/Launcher.gmk
 |  | ||||||
| @@ -41,6 +41,14 @@ $(eval $(call SetupBuildLauncher, java, \
 |  | ||||||
|      OPTIMIZATION := HIGH, \ |  | ||||||
|  )) |  | ||||||
|   |  | ||||||
| +#Wno-error=cpp is present to allow commented warning in ifdef part of main.c
 |  | ||||||
| +$(eval $(call SetupBuildLauncher, alt-java, \
 |  | ||||||
| +    CFLAGS := -DEXPAND_CLASSPATH_WILDCARDS -DENABLE_ARG_FILES -DREDHAT_ALT_JAVA -Wno-error=cpp, \
 |  | ||||||
| +    EXTRA_RCFLAGS := $(JAVA_RCFLAGS), \
 |  | ||||||
| +    VERSION_INFO_RESOURCE := $(JAVA_VERSION_INFO_RESOURCE), \
 |  | ||||||
| +    OPTIMIZATION := HIGH, \
 |  | ||||||
| +))
 |  | ||||||
| +
 |  | ||||||
|  ifeq ($(call isTargetOs, windows), true) |  | ||||||
|    $(eval $(call SetupBuildLauncher, javaw, \ |  | ||||||
|        CFLAGS := -DJAVAW -DEXPAND_CLASSPATH_WILDCARDS -DENABLE_ARG_FILES, \ |  | ||||||
| diff --git openjdk.orig/src/java.base/share/native/launcher/alt_main.h openjdk/src/java.base/share/native/launcher/alt_main.h
 |  | ||||||
| new file mode 100644 |  | ||||||
| index 00000000000..697df2898ac
 |  | ||||||
| --- /dev/null
 |  | ||||||
| +++ openjdk/src/java.base/share/native/launcher/alt_main.h
 |  | ||||||
| @@ -0,0 +1,73 @@
 |  | ||||||
| +/*
 |  | ||||||
| + * Copyright (c) 2019, Red Hat, Inc. 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
 |  | ||||||
| + * under the terms of the GNU General Public License version 2 only, as
 |  | ||||||
| + * published by the Free Software Foundation.  Oracle designates this
 |  | ||||||
| + * particular file as subject to the "Classpath" exception as provided
 |  | ||||||
| + * by Oracle in the LICENSE file that accompanied this code.
 |  | ||||||
| + *
 |  | ||||||
| + * This code 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
 |  | ||||||
| + * version 2 for more details (a copy is included in the LICENSE file that
 |  | ||||||
| + * accompanied this code).
 |  | ||||||
| + *
 |  | ||||||
| + * You should have received a copy of the GNU General Public License version
 |  | ||||||
| + * 2 along with this work; if not, write to the Free Software Foundation,
 |  | ||||||
| + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 |  | ||||||
| + *
 |  | ||||||
| + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 |  | ||||||
| + * or visit www.oracle.com if you need additional information or have any
 |  | ||||||
| + * questions.
 |  | ||||||
| + */
 |  | ||||||
| +
 |  | ||||||
| +#ifdef REDHAT_ALT_JAVA
 |  | ||||||
| +
 |  | ||||||
| +#include <sys/prctl.h>
 |  | ||||||
| +
 |  | ||||||
| +
 |  | ||||||
| +/* Per task speculation control */
 |  | ||||||
| +#ifndef PR_GET_SPECULATION_CTRL
 |  | ||||||
| +# define PR_GET_SPECULATION_CTRL    52
 |  | ||||||
| +#endif
 |  | ||||||
| +#ifndef PR_SET_SPECULATION_CTRL
 |  | ||||||
| +# define PR_SET_SPECULATION_CTRL    53
 |  | ||||||
| +#endif
 |  | ||||||
| +/* Speculation control variants */
 |  | ||||||
| +#ifndef PR_SPEC_STORE_BYPASS
 |  | ||||||
| +# define PR_SPEC_STORE_BYPASS          0
 |  | ||||||
| +#endif
 |  | ||||||
| +/* Return and control values for PR_SET/GET_SPECULATION_CTRL */
 |  | ||||||
| +
 |  | ||||||
| +#ifndef PR_SPEC_NOT_AFFECTED
 |  | ||||||
| +# define PR_SPEC_NOT_AFFECTED          0
 |  | ||||||
| +#endif
 |  | ||||||
| +#ifndef PR_SPEC_PRCTL
 |  | ||||||
| +# define PR_SPEC_PRCTL                 (1UL << 0)
 |  | ||||||
| +#endif
 |  | ||||||
| +#ifndef PR_SPEC_ENABLE
 |  | ||||||
| +# define PR_SPEC_ENABLE                (1UL << 1)
 |  | ||||||
| +#endif
 |  | ||||||
| +#ifndef PR_SPEC_DISABLE
 |  | ||||||
| +# define PR_SPEC_DISABLE               (1UL << 2)
 |  | ||||||
| +#endif
 |  | ||||||
| +#ifndef PR_SPEC_FORCE_DISABLE
 |  | ||||||
| +# define PR_SPEC_FORCE_DISABLE         (1UL << 3)
 |  | ||||||
| +#endif
 |  | ||||||
| +#ifndef PR_SPEC_DISABLE_NOEXEC
 |  | ||||||
| +# define PR_SPEC_DISABLE_NOEXEC        (1UL << 4)
 |  | ||||||
| +#endif
 |  | ||||||
| +
 |  | ||||||
| +static void set_speculation() __attribute__((constructor));
 |  | ||||||
| +static void set_speculation() {
 |  | ||||||
| +  if ( prctl(PR_SET_SPECULATION_CTRL,
 |  | ||||||
| +             PR_SPEC_STORE_BYPASS,
 |  | ||||||
| +             PR_SPEC_DISABLE_NOEXEC, 0, 0) == 0 ) {
 |  | ||||||
| +    return;
 |  | ||||||
| +  }
 |  | ||||||
| +  prctl(PR_SET_SPECULATION_CTRL, PR_SPEC_STORE_BYPASS, PR_SPEC_DISABLE, 0, 0);
 |  | ||||||
| +}
 |  | ||||||
| +
 |  | ||||||
| +#endif // REDHAT_ALT_JAVA
 |  | ||||||
| diff --git openjdk.orig/src/java.base/share/native/launcher/main.c openjdk/src/java.base/share/native/launcher/main.c
 |  | ||||||
| index b734fe2ba78..79dc8307650 100644
 |  | ||||||
| --- openjdk.orig/src/java.base/share/native/launcher/main.c
 |  | ||||||
| +++ openjdk/src/java.base/share/native/launcher/main.c
 |  | ||||||
| @@ -34,6 +34,14 @@
 |  | ||||||
|  #include "jli_util.h" |  | ||||||
|  #include "jni.h" |  | ||||||
|   |  | ||||||
| +#ifdef REDHAT_ALT_JAVA
 |  | ||||||
| +#if defined(__linux__) && defined(__x86_64__)
 |  | ||||||
| +#include "alt_main.h"
 |  | ||||||
| +#else
 |  | ||||||
| +#warning alt-java requested but SSB mitigation not available on this platform.
 |  | ||||||
| +#endif
 |  | ||||||
| +#endif
 |  | ||||||
| +
 |  | ||||||
|  #ifdef _MSC_VER |  | ||||||
|  #if _MSC_VER > 1400 && _MSC_VER < 1600 |  | ||||||
|   |  | ||||||
| @ -1,19 +0,0 @@ | |||||||
| Remove uses of FAR in jpeg code |  | ||||||
| 
 |  | ||||||
| Upstream libjpeg-trubo removed the (empty) FAR macro: |  | ||||||
| http://sourceforge.net/p/libjpeg-turbo/code/1312/ |  | ||||||
| 
 |  | ||||||
| Adjust our code to not use the undefined FAR macro anymore. |  | ||||||
| 
 |  | ||||||
| diff --git a/jdk/src/java.desktop/share/native/libjavajpeg/imageioJPEG.c b/jdk/src/java.desktop/share/native/libjavajpeg/imageioJPEG.c
 |  | ||||||
| --- openjdk/src/java.desktop/share/native/libjavajpeg/imageioJPEG.c
 |  | ||||||
| +++ openjdk/src/java.desktop/share/native/libjavajpeg/imageioJPEG.c
 |  | ||||||
| @@ -1385,7 +1385,7 @@
 |  | ||||||
|      /* and fill it in */ |  | ||||||
|      dst_ptr = icc_data; |  | ||||||
|      for (seq_no = first; seq_no < last; seq_no++) { |  | ||||||
| -        JOCTET FAR *src_ptr = icc_markers[seq_no]->data + ICC_OVERHEAD_LEN;
 |  | ||||||
| +        JOCTET *src_ptr = icc_markers[seq_no]->data + ICC_OVERHEAD_LEN;
 |  | ||||||
|          unsigned int length = |  | ||||||
|              icc_markers[seq_no]->data_length - ICC_OVERHEAD_LEN; |  | ||||||
|   |  | ||||||
| @ -1,3 +0,0 @@ | |||||||
| --- |  | ||||||
| inspections: |  | ||||||
|     javabytecode: off |  | ||||||
							
								
								
									
										2
									
								
								sources
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								sources
									
									
									
									
									
								
							| @ -1,2 +0,0 @@ | |||||||
| SHA512 (openjdk-jdk17u-jdk-17.0.7+7.tar.xz) = 2f231e83fabef6299b16beee1e0c8d52501e22fd71a26ed2ace6fadabe38e73e66f3b8fb8bc994e8b2b9bbdb91d1143661941f623bb94793500f4f3b6495bf58 |  | ||||||
| SHA512 (tapsets-icedtea-6.0.0pre00-c848b93a8598.tar.xz) = 97d026212363b3c83f6a04100ad7f6fdde833d16579717f8756e2b8c2eb70e144a41a330cb9ccde9c3badd37a2d54fdf4650a950ec21d8b686d545ecb2a64d30 |  | ||||||
| @ -1,21 +0,0 @@ | |||||||
| --- |  | ||||||
| - hosts: localhost |  | ||||||
|   roles: |  | ||||||
|   - role: standard-test-source |  | ||||||
|     tags: |  | ||||||
|     - always |  | ||||||
|   - role: standard-test-basic |  | ||||||
|     tags: |  | ||||||
|     - classic |  | ||||||
|     - atomic |  | ||||||
|     required_packages: |  | ||||||
|     - java-21-openjdk-devel |  | ||||||
|     tests: |  | ||||||
|       - javaVersion1: |  | ||||||
|           dir: ~ |  | ||||||
|           run: set -ex; useradd franta1;  su franta1 -c 'java -version'; |  | ||||||
|           run: set -ex; useradd franta4;  su franta4 -c 'javac -version'; |  | ||||||
|           run: ls -l /usr/lib/jvm; |  | ||||||
|       - javaVersion2: |  | ||||||
|           dir: ~ |  | ||||||
|           run: set -ex; useradd franta2;  su franta2 -c 'java --version' |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user