Andreas Wacknitz
2024-04-04 8590298b09ebad29af56370cd23105cd0931b389
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
#
# This file and its contents are supplied under the terms of the
# Common Development and Distribution License ("CDDL"), version 1.0.
# You may only use this file in accordance with the terms of version
# 1.0 of the CDDL.
#
# A full copy of the text of the CDDL should have accompanied this
# source.  A copy of the CDDL is also available via the Internet at
# http://www.illumos.org/license/CDDL.
#
 
#
# Copyright 2016 Alexander Pyhalov
# Copyright 2019 Michal Nowak
# Copyright 2022 Daniel Bell
#
 
include ../../../make-rules/shared-macros.mk
 
COMPONENT_NAME=         openjdk
OPENJDK_BUILD_NUMBER=    352
HUMAN_VERSION=          jdk8u$(OPENJDK_BUILD_NUMBER)-ga
COMPONENT_VERSION=      1.8.$(OPENJDK_BUILD_NUMBER)
COMPONENT_SUMMARY=      Open-source implementation of the Java Platform, Standard Edition
COMPONENT_SRC=          jdk8u-$(HUMAN_VERSION)
COMPONENT_ARCHIVE=      $(COMPONENT_SRC).tar.gz
COMPONENT_ARCHIVE_HASH= \
    sha256:141dcb6b321cc78e993f1f126dde9f6c0a7af5d11bfe390f5cf5b1513fabdc1c
COMPONENT_ARCHIVE_URL=  \
    https://github.com/openjdk/jdk8u/archive/refs/tags/jdk8u352-ga.tar.gz
COMPONENT_PROJECT_URL=  https://openjdk.org/
 
 
# Java testing archives
JTREG_VERSION=6.1
PKG_MACROS += JTREG_VERSION=$(JTREG_VERSION).$(JTREG_SUFFIX)
PKG_MACROS += JTREG_HUMAN_VERSION=$(JTREG_VERSION)-$(JTREG_SUFFIX)
JTREG_SUFFIX=2
JPRT_JTREG_HOME=$(COMPONENT_DIR)/$(COMPONENT_SRC_1)/build/images/jtreg
 
COMPONENT_SRC_1= jtreg-jtreg-$(JTREG_VERSION)-$(JTREG_SUFFIX)
COMPONENT_ARCHIVE_1=      jtreg-$(JTREG_VERSION)+$(JTREG_SUFFIX).tar.gz
COMPONENT_ARCHIVE_HASH_1= \
    sha256:d68397542188a24ecf8c42c4cf4b818dda2bd95aee8d6b0980ede78c36fcb40f
COMPONENT_ARCHIVE_URL_1=  \
    https://github.com/openjdk/jtreg/archive/refs/tags/$(COMPONENT_ARCHIVE_1)
 
# jtreg support archives
COMPONENT_ARCHIVE_2 = hamcrest-2.2.jar
COMPONENT_ARCHIVE_URL_2 = https://repo1.maven.org/maven2/org/hamcrest/hamcrest/2.2/hamcrest-2.2.jar
COMPONENT_ARCHIVE_HASH_2 = sha256:5e62846a89f05cd78cd9c1a553f340d002458380c320455dd1f8fc5497a8a1c1
COMPONENT_ARCHIVE_3 = jt6.0-b14.zip
COMPONENT_ARCHIVE_URL_3 = https://git.openjdk.java.net/jtharness/archive/jt6.0-b14.zip
COMPONENT_ARCHIVE_HASH_3 = sha256:b0aa48f7c9841a9debd532a0f1ebdbc63e7d2da5f3c2e13c8b23c0d9924135bd
COMPONENT_ARCHIVE_4 = asm-8.0.jar
COMPONENT_ARCHIVE_URL_4 = https://repo1.maven.org/maven2/org/ow2/asm/asm/8.0/asm-8.0.jar
COMPONENT_ARCHIVE_HASH_4 = sha256:8d96021cad4104da4822cee3a5e5bf6a4737c8b0c67d58d17d7bf7d1b5f7d2fe
COMPONENT_ARCHIVE_5 = asm-tree-8.0.jar
COMPONENT_ARCHIVE_URL_5 = https://repo1.maven.org/maven2/org/ow2/asm/asm-tree/8.0/asm-tree-8.0.jar
COMPONENT_ARCHIVE_HASH_5 = sha256:8a390cef8aea3343342d7f255fd684f05e372b439639f803a4d827f1cdbb0b08
COMPONENT_ARCHIVE_6 = asm-util-8.0.jar
COMPONENT_ARCHIVE_URL_6 = https://repo1.maven.org/maven2/org/ow2/asm/asm-util/8.0/asm-util-8.0.jar
COMPONENT_ARCHIVE_HASH_6 = sha256:f9dbbd03a40a5a7fbd33708ab5e2c7c8dfe856679d99bd49e29ce5d2a415b33a
COMPONENT_ARCHIVE_7 = jcov3.0-b07.zip
COMPONENT_ARCHIVE_URL_7 = https://git.openjdk.java.net/jcov/archive/jcov3.0-b07.zip
COMPONENT_ARCHIVE_HASH_7 = sha256:9d6cbd1c7ea4ca1aa1a6e6549d149d00ecb4f2c7e3091bd0b771ea3c3f36b6c0
COMPONENT_ARCHIVE_8 = 7.0-b09.zip
COMPONENT_ARCHIVE_URL_8 = https://git.openjdk.java.net/asmtools/archive/7.0-b09.zip
COMPONENT_ARCHIVE_HASH_8 = sha256:8284479fda9be745b285356ae5e187e21e313fad9f571e5f78b1a9e786a87475
COMPONENT_ARCHIVE_9 = junit-4.13.2.jar
COMPONENT_ARCHIVE_URL_9 = https://repo1.maven.org/maven2/junit/junit/4.13.2/junit-4.13.2.jar
COMPONENT_ARCHIVE_HASH_9 = sha256:8e495b634469d64fb8acfa3495a065cbacc8a0fff55ce1e31007be4c16dc57d3
 
TESTNG_VERSION=7.3.0
COMPONENT_ARCHIVE_10 = testng-$(TESTNG_VERSION).jar
COMPONENT_ARCHIVE_URL_10 = https://repo1.maven.org/maven2/org/testng/testng/$(TESTNG_VERSION)/$(COMPONENT_ARCHIVE_10)
COMPONENT_ARCHIVE_HASH_10 = sha256:63727488f9717d57f0d0a0fee5a1fc10a2be9cfcff2ec3a7187656d663c0774e
COMPONENT_ARCHIVE_13 = testng-$(TESTNG_VERSION)-LICENSE.txt
COMPONENT_ARCHIVE_URL_13 = https://raw.githubusercontent.com/cbeust/testng/$(TESTNG_VERSION)/LICENSE.txt
COMPONENT_ARCHIVE_HASH_13 = sha256:c1b9df1275e769f3dbab000d1e457a2d4b0f28eb5da6c77e48dc37eeba202ed7
 
COMPONENT_ARCHIVE_11 = jcommander-1.78.jar
COMPONENT_ARCHIVE_URL_11 = https://repo1.maven.org/maven2/com/beust/jcommander/1.78/jcommander-1.78.jar
COMPONENT_ARCHIVE_HASH_11 = sha256:7891debb84b5f83e9bd57593ebece3399abbe0fd938cf306b3534c57913b9615
COMPONENT_ARCHIVE_12 = guice-4.2.3.jar
COMPONENT_ARCHIVE_URL_12 = https://repo1.maven.org/maven2/com/google/inject/guice/4.2.3/guice-4.2.3.jar
COMPONENT_ARCHIVE_HASH_12 = sha256:a21e50ffbb67e7adc5b46cf7b9e1a480f1e0f04fd4201ddb1c65da91290601af
 
 
CLEAN_PATHS += $(BUILD_DIR) $(JPRT_JTREG_HOME)
CLEAN_PATHS += cacerts.out
 
include $(WS_MAKE_RULES)/common.mk
 
JAVA_BUILD_HOME=$(PROTO_DIR)/usr/jdk/instances/openjdk1.8.0
COMPONENT_TEST_TARGETS=test
COMPONENT_TEST_ENV=$(COMPONENT_BUILD_ENV)
COMPONENT_TEST_ENV+=USERLAND_ARCHIVES=$(USERLAND_ARCHIVES)
COMPONENT_TEST_ENV+=ANT=/usr/bin/ant
COMPONENT_TEST_ENV+=ANT_JAR=/usr/share/lib/ant/ant.jar
COMPONENT_TEST_ENV+=JOBS=4
 
COMPONENT_TEST_ARGS+=JPRT_JTREG_HOME=$(JPRT_JTREG_HOME)
COMPONENT_TEST_ARGS+=JTREG_HOME=$(JPRT_JTREG_HOME)
COMPONENT_TEST_ARGS+=JT_HOME=$(JPRT_JTREG_HOME)
 
# Remove df output from one of the tests 
COMPONENT_TEST_TRANSFORMS+= -e "'/^.*Agent\[[0-9]+\]: stdout: \/.*files$$/d'"
 
PATCH_LEVEL=0
 
CC=gcc
CXX=g++
PATH=$(GCC_ROOT)/bin:$(PATH.gnu)
 
CONFIGURE_SCRIPT=    $(BUILD_DIR_$(BITS))/configure
COMPONENT_PRE_CONFIGURE_ACTION =        ($(CP) -r $(SOURCE_DIR)/* $(@D))
 
CONFIGURE_OPTIONS+=        --with-boot-jdk=$(JAVA_HOME)
CONFIGURE_OPTIONS+=        --with-zlib=system
CONFIGURE_OPTIONS+=        --with-giflib=bundled
CONFIGURE_OPTIONS+=        --with-cups
CONFIGURE_OPTIONS+=        --disable-freetype-bundling
CONFIGURE_OPTIONS+=        --with-memory-size=2048
CONFIGURE_OPTIONS+=        --disable-precompiled-headers
CONFIGURE_OPTIONS+=        --disable-ccache
CONFIGURE_OPTIONS+=        --with-user-release-suffix=oi-$(HUMAN_VERSION)
CONFIGURE_OPTIONS+=        --with-update-version=$(OPENJDK_BUILD_NUMBER)
CONFIGURE_OPTIONS+=        --with-extra-cflags="-fno-lifetime-dse"
CONFIGURE_OPTIONS+=        --with-extra-ldflags="$(LDFLAGS)"
CONFIGURE_OPTIONS+=        AS=$(GAS)
CONFIGURE_OPTIONS+=        STRIP=$(STRIP)
 
COMPONENT_BUILD_ENV+=    USE_GCC=1
 
COMPONENT_BUILD_ARGS = JOBS=4
 
COMPONENT_BUILD_TARGETS = images
 
CACERTS_DIR=$(WS_TOP)/components/openindiana/ca-certificates
CACERTS_INSTALLED=$(CACERTS_DIR)/build/$(MACH32)/.installed
CACERTS_PROTO_DIR=$(CACERTS_DIR)/build/prototype/$(MACH)
 
MY_INSTALLED= $(BUILD_DIR_64)/.installed
TESTS_BUILT= $(COMPONENT_DIR)/$(COMPONENT_SRC_1)/.built
 
 
$(MY_INSTALLED): $(BUILD_DIR_64)/.built $(TESTS_BUILT)
    [ -d $(PROTO_DIR)/usr/jdk/instances/openjdk1.8.0 ] || $(MKDIR) $(PROTO_DIR)/usr/jdk/instances/openjdk1.8.0
    chmod -R u+rw $(PROTO_DIR)/usr/jdk/instances/openjdk1.8.0
    cp -a $(@D)/build/solaris-*/images/j2sdk-image/* $(PROTO_DIR)/usr/jdk/instances/openjdk1.8.0
    rm -rf $(PROTO_DIR)/usr/jdk/jtreg; cp -a $(SOURCE_DIR_1)/build/images/jtreg $(PROTO_DIR)/usr/jdk/
    /usr/bin/elfedit -e 'dyn:value -s  RPATH "$$ORIGIN:$$ORIGIN/../../jre/lib/$(MACH64)"' $(PROTO_DIR)/usr/jdk/instances/openjdk1.8.0/lib/$(MACH64)/libjawt.so
    /usr/bin/elfedit -e 'dyn:value -s  RUNPATH "$$ORIGIN:$$ORIGIN/../../jre/lib/$(MACH64)"' $(PROTO_DIR)/usr/jdk/instances/openjdk1.8.0/lib/$(MACH64)/libjawt.so
    $(TOUCH) $@
 
 
$(CACERTS_INSTALLED):
    gmake -C $(CACERTS_DIR) install
 
cacerts.out: $(BUILD_DIR_64)/.built $(CACERTS_INSTALLED)
    rm -f $@
    for cert in $(CACERTS_PROTO_DIR)/etc/certs/CA/*.pem; do                 \
                LC_ALL=en_US.UTF-8 $(BUILD_DIR_64)/build/solaris-x86_64-normal-server-release/jdk/bin/keytool \
                  -noprompt                    \
                  -importcert                                   \
                  -keystore $@                                  \
                  -alias `echo $$cert | $(GSED) -e 's,.*/\\([^/]*\\)\\.pem,\\1,'` \
                  -file $$cert                                          \
                  -storepass changeit;                                    \
        done
 
$(TESTS_BUILT): prep
    cd $(SOURCE_DIR_1) &&\
    rm -rf $(SOURCE_DIR_1)/build &&\
    /usr/bin/env $(COMPONENT_TEST_ENV) TESTNG_LICENSE_VERSION=$(TESTNG_VERSION) bash make/build.sh --jdk $(JAVA_HOME)
    $(TOUCH) $@
 
 
install:    $(MY_INSTALLED) cacerts.out
 
$(BUILD_DIR_64)/.tested:   $(TESTS_BUILT) build
 
$(BUILD_DIR_64)/.tested-and-compared:   $(TESTS_BUILT) build
 
REQUIRED_PACKAGES += developer/build/ant
 
# Auto-generated dependencies
REQUIRED_PACKAGES += $(GXX_RUNTIME_PKG)
REQUIRED_PACKAGES += library/zlib
REQUIRED_PACKAGES += shell/ksh93
REQUIRED_PACKAGES += system/library
REQUIRED_PACKAGES += system/library/freetype-2
REQUIRED_PACKAGES += system/library/math
REQUIRED_PACKAGES += x11/library/libx11
REQUIRED_PACKAGES += x11/library/libxext
REQUIRED_PACKAGES += x11/library/libxi
REQUIRED_PACKAGES += x11/library/libxrender
REQUIRED_PACKAGES += x11/library/libxtst