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 | ||||
| /tapsets-icedtea-6.0.0pre00-c848b93a8598.tar.xz | ||||
| SOURCES/openjdk-21.0.6+7.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", | ||||
|                                               "heure d\u2019\u00e9t\u00e9 des Rocheuses", "UTC\u221206:00", "MDT", | ||||
|                                               "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-Zeit", "GMT-07:00", "MT"}); | ||||
|         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