Browse code

Added Elasticsearch package and openjdk9 and openjdk10

Changes includes Kibana, Elasticsearch pkg and as it depends on openjdk10 and
openjdk10 depends on openjdk9. So raising a review for all three packages.

Change-Id: Ib0790ce69cbe3a06c0a5cd4423533f30893d1a0d
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/5385
Tested-by: gerrit-photon <photon-checkins@vmware.com>
Reviewed-by: Anish Swaminathan <anishs@vmware.com>

Tapas Kundu authored on 2018/07/22 06:15:25
Showing 12 changed files
... ...
@@ -58,6 +58,18 @@ ifdef KAT_BUILD
58 58
 PHOTON_KAT_BUILD_FLAGS := -F $(KAT_BUILD)
59 59
 endif
60 60
 
61
+ifeq ($(BUILDDEPS),true)
62
+PUBLISH_BUILD_DEPENDENCIES := -D True
63
+else
64
+PUBLISH_BUILD_DEPENDENCIES :=
65
+endif
66
+
67
+ifdef WEIGHTS
68
+PACKAGE_WEIGHTS_PATH = -W $(WEIGHTS)
69
+else
70
+PACKAGE_WEIGHTS_PATH =
71
+endif
72
+
61 73
 TOOLS_BIN := $(SRCROOT)/tools/bin
62 74
 CONTAIN := $(TOOLS_BIN)/contain
63 75
 VIXDISKUTIL := $(TOOLS_BIN)/vixdiskutil
... ...
@@ -106,6 +118,8 @@ packages-micro: check $(PHOTON_STAGE) $(PHOTON_PUBLISH_RPMS) $(PHOTON_SOURCES) g
106 106
                 -n $(PHOTON_BUILD_NUMBER) \
107 107
                 -v $(PHOTON_RELEASE_VERSION) \
108 108
                 $(PHOTON_RPMCHECK_OPTION) \
109
+                $(PUBLISH_BUILD_DEPENDENCIES) \
110
+                $(PACKAGE_WEIGHTS_PATH) \
109 111
                 -t ${THREADS}
110 112
 
111 113
 minimal: minimal-iso
... ...
@@ -175,6 +189,8 @@ packages-minimal: check $(PHOTON_STAGE) $(PHOTON_PUBLISH_RPMS) $(PHOTON_SOURCES)
175 175
                 -n $(PHOTON_BUILD_NUMBER) \
176 176
                 -v $(PHOTON_RELEASE_VERSION) \
177 177
                 $(PHOTON_RPMCHECK_OPTION) \
178
+                $(PUBLISH_BUILD_DEPENDENCIES) \
179
+                $(PACKAGE_WEIGHTS_PATH) \
178 180
                 -t ${THREADS}
179 181
 
180 182
 iso: check $(PHOTON_STAGE) $(PHOTON_PACKAGES) ostree-repo
... ...
@@ -259,8 +275,11 @@ packages: check $(PHOTON_STAGE) $(PHOTON_PUBLISH_XRPMS) $(PHOTON_PUBLISH_RPMS) $
259 259
                 -g $(PHOTON_DATA_DIR)/pkg_build_options.json \
260 260
 		$(PHOTON_KAT_BUILD_FLAGS) \
261 261
                 $(PHOTON_RPMCHECK_OPTION) \
262
+                $(PUBLISH_BUILD_DEPENDENCIES) \
263
+                $(PACKAGE_WEIGHTS_PATH) \
262 264
                 -t ${THREADS}
263 265
 
266
+
264 267
 updated-packages: check $(PHOTON_STAGE) $(PHOTON_PUBLISH_XRPMS) $(PHOTON_PUBLISH_RPMS) $(PHOTON_SOURCES) $(CONTAIN) generate-dep-lists
265 268
 	@echo "Building only updated RPMS..."
266 269
 	@cd $(PHOTON_PKG_BUILDER_DIR) && \
... ...
@@ -279,6 +298,8 @@ updated-packages: check $(PHOTON_STAGE) $(PHOTON_PUBLISH_XRPMS) $(PHOTON_PUBLISH
279 279
                 -k $(PHOTON_INPUT_RPMS_DIR) \
280 280
 		$(PHOTON_KAT_BUILD_FLAGS) \
281 281
                 $(PHOTON_RPMCHECK_OPTION) \
282
+                $(PUBLISH_BUILD_DEPENDENCIES) \
283
+                $(PACKAGE_WEIGHTS_PATH) \
282 284
                 -t ${THREADS}
283 285
 
284 286
 tool-chain-stage1: check $(PHOTON_STAGE) $(PHOTON_PUBLISH_RPMS) $(PHOTON_SOURCES) $(CONTAIN) generate-dep-lists
285 287
new file mode 100644
... ...
@@ -0,0 +1,117 @@
0
+Summary:        Elastic Serch
1
+Name:           elasticsearch
2
+Version:        6.3.0
3
+Release:        1%{?dist}
4
+License:        Apache License Version 2.0
5
+URL:            https://artifacts.elastic.co/downloads/elasticsearch/%{name}-%{version}.tar.gz
6
+Source0:        %{name}-%{version}.tar.gz
7
+%define sha1    %{name}-%{version}.tar.gz=3f356bf80bd31c0107622cf7213d0ee9f43536d8
8
+Source1:        cacerts
9
+%define sha1    cacerts=f584c7c1f48c552f39acfb5560a300a657d9f3bb
10
+Group:          Development/Daemons
11
+Vendor:         VMware, Inc.
12
+Distribution:   Photon
13
+BuildRequires:  openjdk10
14
+BuildRequires:  unzip
15
+BuildRequires:  curl
16
+BuildRequires:  which
17
+BuildRequires:  git
18
+BuildRequires:  make
19
+BuildRequires:  automake
20
+BuildRequires:  autoconf
21
+BuildRequires:  libtool
22
+BuildRequires:  tar
23
+BuildRequires:  wget
24
+BuildRequires:  patch
25
+BuildRequires:  texinfo
26
+Requires(pre):  /usr/sbin/useradd /usr/sbin/groupadd
27
+Requires(postun):/usr/sbin/userdel /usr/sbin/groupdel
28
+
29
+%description
30
+Elasticsearch is a highly distributed RESTful search engine built for the cloud.
31
+
32
+%define debug_package %{nil}
33
+
34
+%prep
35
+%setup -qn %{name}-%{version}
36
+
37
+%build
38
+export LANG="en_US.UTF-8"
39
+export JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF8"
40
+export JAVA_HOME=/usr/lib/jvm/OpenJDK-1.10.0.23
41
+export PATH=$JAVA_HOME/bin:$PATH
42
+export _JAVA_OPTIONS="-Xmx10g"
43
+cp %{SOURCE1} /usr/lib/jvm/OpenJDK-1.10.0.23/lib/security/
44
+./gradlew assemble
45
+
46
+%install
47
+rm -rf %{buildroot}
48
+mkdir -p %{buildroot}%{_datadir}/%{name}
49
+mkdir -p %{buildroot}/etc/%{name}
50
+mkdir -p %{buildroot}/usr/lib/sysctl.d/
51
+mkdir -p %{buildroot}/usr/lib/systemd/system/
52
+mkdir -p %{buildroot}/usr/lib/tmpfiles.d/
53
+mkdir -p %{buildroot}/etc/init.d/elasticsearch
54
+mkdir -p %{buildroot}/etc/sysconfig/elasticsearch
55
+mkdir -p %{buildroot}/var/lib/elasticsearch
56
+mkdir -p %{buildroot}/var/log/elasticsearch
57
+mkdir -p %{buildroot}/var/run/elasticsearch
58
+
59
+
60
+tar -xvf distribution/archives/oss-tar/build/distributions/elasticsearch-oss-6.3.0-SNAPSHOT.tar.gz
61
+cp elasticsearch-6.3.0-SNAPSHOT/LICENSE.txt %{buildroot}%{_datadir}/%{name}/
62
+cp elasticsearch-6.3.0-SNAPSHOT/NOTICE.txt %{buildroot}%{_datadir}/%{name}/
63
+cp elasticsearch-6.3.0-SNAPSHOT/README.textile %{buildroot}%{_datadir}/%{name}/
64
+cp -r elasticsearch-6.3.0-SNAPSHOT/* %{buildroot}%{_datadir}/%{name}/
65
+cp distribution/packages/build/packaging/oss-rpm/systemd/sysctl/elasticsearch.conf %{buildroot}/usr/lib/sysctl.d/
66
+cp distribution/packages/build/packaging/oss-rpm/systemd/elasticsearch.service %{buildroot}/usr/lib/systemd/system/
67
+cp distribution/packages/build/packaging/oss-rpm/systemd/elasticsearch.conf %{buildroot}/usr/lib/tmpfiles.d/
68
+cp elasticsearch-6.3.0-SNAPSHOT/config/log4j2.properties %{buildroot}/etc/%{name}/
69
+cp elasticsearch-6.3.0-SNAPSHOT/config/jvm.options %{buildroot}/etc/%{name}/
70
+
71
+chmod 755 %{buildroot}%{_datadir}/%{name}/
72
+chmod 755 %{buildroot}/etc/%{name}/
73
+chmod 755 %{buildroot}/var/log/%{name}/
74
+
75
+%pre
76
+
77
+getent group elasticsearch >/dev/null || /usr/sbin/groupadd -r elasticsearch
78
+getent passwd elasticsearch >/dev/null || /usr/sbin/useradd --comment "ElasticSearch" --shell /bin/bash -M -r --groups elasticsearch --home /usr/share/elasticsearch elasticsearch
79
+
80
+
81
+%post
82
+%{_sbindir}/ldconfig
83
+%systemd_post elasticsearch.service
84
+
85
+%preun
86
+%systemd_preun elasticsearch.service
87
+
88
+%postun
89
+%systemd_postun_with_restart elasticsearch.service
90
+if [ $1 -eq 0 ] ; then
91
+    /usr/sbin/userdel elasticsearch
92
+    /usr/sbin/groupdel elasticsearch
93
+fi
94
+/sbin/ldconfig
95
+
96
+
97
+%check
98
+
99
+%clean
100
+rm -rf %{buildroot}/*
101
+
102
+%files
103
+%defattr(-,root,root)
104
+%attr(755,elasticsearch,elasticsearch) /var/log/elasticsearch
105
+%attr(755,elasticsearch,elasticsearch) /usr/share/elasticsearch
106
+%attr(755,elasticsearch,elasticsearch) /usr/share/elasticsearch/logs
107
+%dir %{_datadir}/%{name}
108
+%{_datadir}/%{name}
109
+%attr(755,elasticsearch,elasticsearch) /etc/%{name}
110
+%attr(755,elasticsearch,elasticsearch) /usr/lib/systemd/system/elasticsearch.service
111
+%attr(755,elasticsearch,elasticsearch) /usr/lib/sysctl.d/elasticsearch.conf
112
+%attr(755,elasticsearch,elasticsearch) /usr/lib/tmpfiles.d/elasticsearch.conf
113
+
114
+%changelog
115
+*    Mon Jul 09 2018 Tapas Kundu <tkundu@vmware.com> 6.3.0-1
116
+-    Initial build added for Photon.
0 117
new file mode 100644
... ...
@@ -0,0 +1,118 @@
0
+Name:            kibana
1
+Summary:         Browser-based analytics and search dashboard for Elasticsearch.
2
+Version:         6.3.0
3
+Release:         1%{?dist}
4
+License:         Apache License Version 2.0
5
+URL:             https://www.elastic.co/products/kibana
6
+Source0:         https://github.com/elastic/kibana/archive/%{name}-%{version}.tar.gz
7
+Vendor:          VMware, Inc.
8
+Distribution:    Photon
9
+Group:           System Environment/Daemons
10
+%define sha1     kibana=03a404b8c74cb52bd893247631386112fb1f8a11
11
+BuildRequires:   git
12
+BuildRequires:   yarn
13
+BuildRequires:   nodejs
14
+BuildRequires:   zip
15
+BuildRequires:   photon-release
16
+BuildRequires:   systemd
17
+Requires:        systemd
18
+Requires:        nodejs
19
+Requires:        elasticsearch
20
+
21
+%global debug_package %{nil}
22
+
23
+%description
24
+Kibana is a window into the Elastic Stack.
25
+It enables visual exploration and real-time analysis of your data in Elasticsearch.
26
+
27
+%prep
28
+%setup -q -n %{name}-%{version}
29
+yarn kbn bootstrap
30
+
31
+%build
32
+export PATH=${PATH}:/usr/bin
33
+yarn build --skip-os-packages
34
+
35
+%install
36
+mkdir -p %{buildroot}%{_datadir}/%{name}
37
+cp -r build/kibana-oss/LICENSE.txt %{buildroot}%{_datadir}/%{name}
38
+cp -r build/kibana-oss/README.txt %{buildroot}%{_datadir}/%{name}
39
+cp -r build/kibana-oss/NOTICE.txt %{buildroot}%{_datadir}/%{name}
40
+cp -r build/kibana-oss/package.json %{buildroot}%{_datadir}/%{name}
41
+cp -r build/kibana-oss/plugins %{buildroot}%{_datadir}/%{name}
42
+cp -r build/kibana-oss/bin %{buildroot}%{_datadir}/%{name}
43
+cp -r build/kibana-oss/src %{buildroot}%{_datadir}/%{name}
44
+cp -r build/kibana-oss/node_modules %{buildroot}%{_datadir}/%{name}
45
+cp -r build/kibana-oss/webpackShims %{buildroot}%{_datadir}/%{name}
46
+cp -r build/kibana-oss/yarn.lock %{buildroot}%{_datadir}/%{name}
47
+cp -r build/kibana-oss/optimize %{buildroot}%{_datadir}/%{name}
48
+
49
+chmod -R 755 %{buildroot}%{_datadir}/%{name}
50
+
51
+install -vdm 755 %{buildroot}%{_sharedstatedir}/%{name}
52
+
53
+mkdir -p %{buildroot}%{_sysconfdir}/default
54
+install -D -m 644 src/dev/build/tasks/os_packages/service_templates/sysv/etc/default/kibana %{buildroot}%{_sysconfdir}/default
55
+
56
+mkdir -p %{buildroot}%{_sysconfdir}/systemd/system
57
+install -D -m 644 src/dev/build/tasks/os_packages/service_templates/systemd/etc/systemd/system/kibana.service %{buildroot}%{_sysconfdir}/systemd/system
58
+
59
+mkdir -p %{buildroot}%{_sysconfdir}/%{name}
60
+install -D -m 644 config/%{name}.yml %{buildroot}%{_sysconfdir}/%{name}
61
+
62
+mkdir -p %{buildroot}%{_sysconfdir}/init.d
63
+install -D -m 644 src/dev/build/tasks/os_packages/service_templates/sysv/etc/init.d/%{name} %{buildroot}%{_sysconfdir}/init.d
64
+
65
+rm -rf %{buildroot}%{_datadir}/%{name}/node_modules/clipboardy
66
+
67
+%pre -p /bin/sh
68
+if ! getent group %{name} >/dev/null; then
69
+    groupadd -r %{name}
70
+fi
71
+if ! getent passwd %{name} >/dev/null; then
72
+    useradd -r -g %{name} -d /var/lib/%{name} -s /sbin/nologin  -c "Kibana User" %{name}
73
+fi
74
+exit 0
75
+
76
+
77
+%post
78
+/sbin/ldconfig
79
+chown -R kibana:kibana /var/lib/kibana
80
+chown -R kibana:kibana /usr/share/kibana
81
+%systemd_post  %{name}.service
82
+
83
+%preun
84
+/sbin/ldconfig
85
+%systemd_preun %{name}.service
86
+
87
+%postun -p /bin/sh
88
+%systemd_postun_with_restart %{name}.service
89
+if [ $1 -eq 0 ] ; then
90
+   getent passwd kibana > /dev/null
91
+   if [ "$?" == "0" ] ; then
92
+      userdel %{name}
93
+   fi
94
+   getent group kibana >/dev/null
95
+   if [ "$?" == "0" ] ; then
96
+      groupdel %{name}
97
+   fi
98
+fi
99
+exit
100
+
101
+%files
102
+%defattr(-,root,root,-)
103
+%dir %{_sharedstatedir}/%{name}
104
+%doc %{_datadir}/%{name}/LICENSE.txt
105
+%doc %{_datadir}/%{name}/README.txt
106
+%{_sysconfdir}/systemd/system/%{name}.service
107
+%{_sysconfdir}/default/%{name}
108
+%{_sysconfdir}/init.d/%{name}
109
+%{_sysconfdir}/%{name}/%{name}.yml
110
+%{_datadir}/%{name}/yarn.lock
111
+%{_datadir}/%{name}/package.json
112
+%dir %{_datadir}/%{name}
113
+%{_datadir}/%{name}
114
+
115
+%changelog
116
+*   Mon Jul 09 2018 Keerthana K <keerthanak@vmware.com> 6.3.0-1
117
+-   Initial kibana package for PhotonOS.
0 118
new file mode 100755
... ...
@@ -0,0 +1,33 @@
0
+tdnf install mercurial -y
1
+
2
+if [[ $# -eq 0 ]] ; then
3
+    echo 'Usage: generate_source_tarball.sh <Mercurial-Tag-Name> <openjdk version>'
4
+    echo 'Example: generate_source_tarball.sh jdk-10+23 1.10.0.23'
5
+    echo 'visit http://hg.openjdk.java.net/jdk10/jdk10/tags to use the appropriate tag name.'
6
+    exit 0
7
+fi
8
+rm -rf openjdk-$2
9
+hg clone http://hg.openjdk.java.net/jdk10/jdk10 -u $1 openjdk-$2
10
+cd openjdk-$2
11
+hg clone http://hg.openjdk.java.net/jdk10/jdk10/corba/ -u $1
12
+hg clone http://hg.openjdk.java.net/jdk10/jdk10/hotspot/ -u $1
13
+hg clone http://hg.openjdk.java.net/jdk10/jdk10/jaxp/ -u $1
14
+hg clone http://hg.openjdk.java.net/jdk10/jdk10/jaxws/ -u $1
15
+hg clone http://hg.openjdk.java.net//jdk10/jdk10/jdk/ -u $1
16
+hg clone http://hg.openjdk.java.net/jdk10/jdk10/langtools/ -u $1
17
+hg clone http://hg.openjdk.java.net/jdk10/jdk10/nashorn/ -u $1
18
+
19
+rm -r .hg
20
+rm -r corba/.hg
21
+rm -r hotspot/.hg 
22
+rm -r jaxp/.hg
23
+rm -r jaxws/.hg
24
+rm -r jdk/.hg
25
+rm -r langtools/.hg
26
+rm -r nashorn/.hg
27
+cd ..
28
+
29
+tar -cvzf openjdk-$2.tar.gz openjdk-$2
30
+chmod 644 openjdk-$2.tar.gz
31
+
32
+echo 'source tarball openjdk-$2.tar.gz successfully created!' 
0 33
new file mode 100644
... ...
@@ -0,0 +1,228 @@
0
+%define _use_internal_dependency_generator 0
1
+%global security_hardening none
2
+Summary:	OpenJDK
3
+Name:		openjdk10
4
+Version:	1.10.0.23
5
+Release:	1%{?dist}
6
+License:	GNU GPL
7
+URL:		https://openjdk.java.net
8
+Group:		Development/Tools
9
+Vendor:		VMware, Inc.
10
+Distribution:   Photon
11
+Source0:	http://www.java.net/download/openjdk/jdk10/jdk10/openjdk-%{version}.tar.gz
12
+%define sha1 openjdk-1.10.0=d0b6193fd1687b23fb7553b62d32f0e7e0527ea8
13
+BuildRequires:  pcre-devel
14
+BuildRequires:	which
15
+BuildRequires:	zip
16
+BuildRequires:	unzip
17
+BuildRequires:  zlib-devel
18
+BuildRequires:	ca-certificates
19
+BuildRequires:	chkconfig
20
+BuildRequires:  fontconfig-devel freetype2-devel glib-devel harfbuzz-devel elfutils-libelf-devel
21
+Requires:       openjre10 = %{version}-%{release}
22
+Requires:       chkconfig
23
+Requires:       openjdk9
24
+Obsoletes:      openjdk <= %{version}
25
+Obsoletes:      openjdk-sample <= %{version}
26
+Obsoletes:      openjdk-src <= %{version}
27
+Obsoletes:      openjdk-doc <= %{version}
28
+AutoReqProv: 	no
29
+%define bootstrapjdkversion 1.8.0.112
30
+%define jdk_major_version 1.10.0
31
+%description
32
+The OpenJDK package installs java class library and javac java compiler.
33
+
34
+%package	-n openjre10
35
+Summary:	Java runtime environment
36
+AutoReqProv: 	no
37
+Obsoletes:      openjre <= %{version}
38
+Requires:       chkconfig
39
+Requires:	libstdc++
40
+%description	-n openjre10
41
+It contains the libraries files for Java runtime environment
42
+
43
+%package		doc
44
+Summary:		Documentation and demo applications for openjdk
45
+Group:          Development/Languages/Java
46
+Obsoletes:      openjdk-doc <= %{version}
47
+Requires:       %{name} = %{version}-%{release}
48
+%description	doc
49
+It contains the documentation and demo applications for openjdk
50
+
51
+%package 		src
52
+Summary:        OpenJDK Java classes for developers
53
+Group:          Development/Languages/Java
54
+Obsoletes:      openjdk-src <= %{version}
55
+Requires:       %{name} = %{version}-%{release}
56
+%description	src
57
+This package provides the runtime library class sources.
58
+
59
+%prep -p exit
60
+%setup -qn openjdk-%{version}
61
+
62
+%build
63
+chmod a+x ./configure
64
+unset JAVA_HOME &&
65
+ENABLE_HEADLESS_ONLY="true" &&
66
+./configure \
67
+	--with-target-bits=64 \
68
+        --with-boot-jdk=/var/opt/OpenJDK-%bootstrapjdkversion-bin \
69
+	--enable-headless-only \
70
+        --with-extra-cxxflags="-Wno-error -std=gnu++98 -fno-delete-null-pointer-checks -fno-lifetime-dse" \
71
+	--with-extra-cflags="-fno-delete-null-pointer-checks -Wno-error -fno-lifetime-dse" \
72
+	--with-freetype-include=/usr/include/freetype2 \
73
+	--with-freetype-lib=/usr/lib \
74
+	--with-stdc++lib=dynamic \
75
+        --disable-warnings-as-errors
76
+
77
+mkdir /usr/share/java -p
78
+make \
79
+    DISABLE_HOTSPOT_OS_VERSION_CHECK=ok \
80
+    SCTP_WERROR= \
81
+    BUILD_HEADLESS_ONLY=1 \
82
+    OPENJDK_TARGET_OS=linux \
83
+    STRIP_POLICY=no_strip \
84
+    POST_STRIP_CMD="" \
85
+    LOG=trace
86
+
87
+%install
88
+unset JAVA_HOME &&
89
+make install 
90
+
91
+install -vdm755 %{buildroot}%{_libdir}/jvm/OpenJDK-%{version}
92
+chown -R root:root %{buildroot}%{_libdir}/jvm/OpenJDK-%{version}
93
+install -vdm755 %{buildroot}%{_bindir}
94
+mv /usr/local/jvm/openjdk-10-internal/* %{buildroot}%{_libdir}/jvm/OpenJDK-%{version}/
95
+mv build/linux-x86_64-normal-server-release/images/jre %{buildroot}%{_libdir}/jvm/OpenJDK-%{version}/
96
+cp README LICENSE ASSEMBLY_EXCEPTION %{buildroot}%{_libdir}/jvm/OpenJDK-%{version}/
97
+
98
+%post
99
+alternatives --install %{_bindir}/javac javac %{_libdir}/jvm/OpenJDK-%{version}/bin/javac 2000 \
100
+  --slave %{_bindir}/appletviewer appletviewer %{_libdir}/jvm/OpenJDK-%{version}/bin/appletviewer \
101
+  --slave %{_bindir}/idlj idlj %{_libdir}/jvm/OpenJDK-%{version}/bin/idlj \
102
+  --slave %{_bindir}/jaotc jaotc %{_libdir}/jvm/OpenJDK-%{version}/bin/jaotc \
103
+  --slave %{_bindir}/jar jar %{_libdir}/jvm/OpenJDK-%{version}/bin/jar \
104
+  --slave %{_bindir}/jarsigner jarsigner %{_libdir}/jvm/OpenJDK-%{version}/bin/jarsigner \
105
+  --slave %{_bindir}/jhsdb jhsdb %{_libdir}/jvm/OpenJDK-%{version}/bin/jhsdb \
106
+  --slave %{_bindir}/jimage jimage %{_libdir}/jvm/OpenJDK-%{version}/bin/jimage \
107
+  --slave %{_bindir}/jlink jlink %{_libdir}/jvm/OpenJDK-%{version}/bin/jlink \
108
+  --slave %{_bindir}/jmod jmod %{_libdir}/jvm/OpenJDK-%{version}/bin/jmod \
109
+  --slave %{_bindir}/javadoc javadoc %{_libdir}/jvm/OpenJDK-%{version}/bin/javadoc \
110
+  --slave %{_bindir}/javah javah %{_libdir}/jvm/OpenJDK-%{version}/bin/javah \
111
+  --slave %{_bindir}/javap javap %{_libdir}/jvm/OpenJDK-%{version}/bin/javap \
112
+  --slave %{_bindir}/jcmd jcmd %{_libdir}/jvm/OpenJDK-%{version}/bin/jcmd \
113
+  --slave %{_bindir}/jdeprscan jdeprscan %{_libdir}/jvm/OpenJDK-%{version}/bin/jdeprscan \
114
+  --slave %{_bindir}/jconsole jconsole %{_libdir}/jvm/OpenJDK-%{version}/bin/jconsole \
115
+  --slave %{_bindir}/jdb jdb %{_libdir}/jvm/OpenJDK-%{version}/bin/jdb \
116
+  --slave %{_bindir}/jdeps jdeps %{_libdir}/jvm/OpenJDK-%{version}/bin/jdeps \
117
+  --slave %{_bindir}/jinfo jinfo %{_libdir}/jvm/OpenJDK-%{version}/bin/jinfo \
118
+  --slave %{_bindir}/jmap jmap %{_libdir}/jvm/OpenJDK-%{version}/bin/jmap \
119
+  --slave %{_bindir}/jps jps %{_libdir}/jvm/OpenJDK-%{version}/bin/jps \
120
+  --slave %{_bindir}/jrunscript jrunscript %{_libdir}/jvm/OpenJDK-%{version}/bin/jrunscript \
121
+  --slave %{_bindir}/jstack jstack %{_libdir}/jvm/OpenJDK-%{version}/bin/jstack \
122
+  --slave %{_bindir}/jstat jstat %{_libdir}/jvm/OpenJDK-%{version}/bin/jstat \
123
+  --slave %{_bindir}/jstatd jstatd %{_libdir}/jvm/OpenJDK-%{version}/bin/jstatd \
124
+  --slave %{_bindir}/rmic rmic %{_libdir}/jvm/OpenJDK-%{version}/bin/rmic \
125
+  --slave %{_bindir}/schemagen schemagen %{_libdir}/jvm/OpenJDK-%{version}/bin/schemagen \
126
+  --slave %{_bindir}/serialver serialver %{_libdir}/jvm/OpenJDK-%{version}/bin/serialver \
127
+  --slave %{_bindir}/wsgen wsgen %{_libdir}/jvm/OpenJDK-%{version}/bin/wsgen \
128
+  --slave %{_bindir}/wsimport wsimport %{_libdir}/jvm/OpenJDK-%{version}/bin/wsimport \
129
+  --slave %{_bindir}/xjc xjc %{_libdir}/jvm/OpenJDK-%{version}/bin/xjc
130
+/sbin/ldconfig
131
+
132
+%post -n openjre10
133
+alternatives --install %{_bindir}/java java %{_libdir}/jvm/OpenJDK-%{version}/jre/bin/java 2000 \
134
+  --slave %{_libdir}/jvm/jre jre %{_libdir}/jvm/OpenJDK-%{version}/jre \
135
+  --slave %{_bindir}/jjs jjs %{_libdir}/jvm/OpenJDK-%{version}/jre/bin/jjs \
136
+  --slave %{_bindir}/keytool keytool %{_libdir}/jvm/OpenJDK-%{version}/jre/bin/keytool \
137
+  --slave %{_bindir}/orbd orbd %{_libdir}/jvm/OpenJDK-%{version}/jre/bin/orbd \
138
+  --slave %{_bindir}/pack200 pack200 %{_libdir}/jvm/OpenJDK-%{version}/jre/bin/pack200 \
139
+  --slave %{_bindir}/rmid rmid %{_libdir}/jvm/OpenJDK-%{version}/jre/bin/rmid \
140
+  --slave %{_bindir}/rmiregistry rmiregistry %{_libdir}/jvm/OpenJDK-%{version}/jre/bin/rmiregistry \
141
+  --slave %{_bindir}/servertool servertool %{_libdir}/jvm/OpenJDK-%{version}/jre/bin/servertool \
142
+  --slave %{_bindir}/tnameserv tnameserv %{_libdir}/jvm/OpenJDK-%{version}/jre/bin/tnameserv \
143
+  --slave %{_bindir}/unpack200 unpack200 %{_libdir}/jvm/OpenJDK-%{version}/jre/bin/unpack200
144
+/sbin/ldconfig
145
+
146
+%postun
147
+alternatives --remove javac %{_libdir}/jvm/OpenJDK-%{version}/bin/javac
148
+/sbin/ldconfig
149
+
150
+%postun -n openjre10
151
+alternatives --remove java %{_libdir}/jvm/OpenJDK-%{version}/jre/bin/java
152
+/sbin/ldconfig
153
+
154
+%clean
155
+rm -rf %{buildroot}/*
156
+rm -rf %{_libdir}/jvm/OpenJDK-* 
157
+
158
+%files
159
+%defattr(-,root,root)
160
+%{_libdir}/jvm/OpenJDK-%{version}/ASSEMBLY_EXCEPTION
161
+%{_libdir}/jvm/OpenJDK-%{version}/LICENSE
162
+%{_libdir}/jvm/OpenJDK-%{version}/README
163
+%{_libdir}/jvm/OpenJDK-%{version}/release
164
+%{_libdir}/jvm/OpenJDK-%{version}/lib
165
+%{_libdir}/jvm/OpenJDK-%{version}/include/
166
+%{_libdir}/jvm/OpenJDK-%{version}/bin/idlj
167
+%{_libdir}/jvm/OpenJDK-%{version}/bin/jaotc
168
+%{_libdir}/jvm/OpenJDK-%{version}/bin/jar
169
+%{_libdir}/jvm/OpenJDK-%{version}/bin/jhsdb
170
+%{_libdir}/jvm/OpenJDK-%{version}/bin/jimage
171
+%{_libdir}/jvm/OpenJDK-%{version}/bin/jarsigner
172
+%{_libdir}/jvm/OpenJDK-%{version}/bin/jdeprscan
173
+%{_libdir}/jvm/OpenJDK-%{version}/bin/javac
174
+%{_libdir}/jvm/OpenJDK-%{version}/bin/javadoc
175
+%{_libdir}/jvm/OpenJDK-%{version}/bin/javah
176
+%{_libdir}/jvm/OpenJDK-%{version}/bin/javap
177
+%{_libdir}/jvm/OpenJDK-%{version}/bin/jcmd
178
+%{_libdir}/jvm/OpenJDK-%{version}/bin/jconsole
179
+%{_libdir}/jvm/OpenJDK-%{version}/bin/jdb
180
+%{_libdir}/jvm/OpenJDK-%{version}/bin/jdeps
181
+%{_libdir}/jvm/OpenJDK-%{version}/bin/jinfo
182
+%{_libdir}/jvm/OpenJDK-%{version}/bin/jlink
183
+%{_libdir}/jvm/OpenJDK-%{version}/bin/jmod
184
+%{_libdir}/jvm/OpenJDK-%{version}/bin/jmap
185
+%{_libdir}/jvm/OpenJDK-%{version}/bin/jps
186
+%{_libdir}/jvm/OpenJDK-%{version}/bin/jshell
187
+%{_libdir}/jvm/OpenJDK-%{version}/bin/jrunscript
188
+%{_libdir}/jvm/OpenJDK-%{version}/bin/jstack
189
+%{_libdir}/jvm/OpenJDK-%{version}/bin/jstat
190
+%{_libdir}/jvm/OpenJDK-%{version}/bin/jstatd
191
+%{_libdir}/jvm/OpenJDK-%{version}/bin/rmic
192
+%{_libdir}/jvm/OpenJDK-%{version}/bin/schemagen
193
+%{_libdir}/jvm/OpenJDK-%{version}/bin/serialver
194
+%{_libdir}/jvm/OpenJDK-%{version}/bin/wsgen
195
+%{_libdir}/jvm/OpenJDK-%{version}/bin/wsimport
196
+%{_libdir}/jvm/OpenJDK-%{version}/bin/xjc
197
+%{_libdir}/jvm/OpenJDK-%{version}/conf
198
+%{_libdir}/jvm/OpenJDK-%{version}/jmods
199
+
200
+%files	-n openjre10
201
+%defattr(-,root,root)
202
+%dir %{_libdir}/jvm/OpenJDK-%{version}
203
+%{_libdir}/jvm/OpenJDK-%{version}/jre/
204
+%{_libdir}/jvm/OpenJDK-%{version}/bin/java
205
+%{_libdir}/jvm/OpenJDK-%{version}/bin/keytool
206
+%{_libdir}/jvm/OpenJDK-%{version}/bin/orbd
207
+%{_libdir}/jvm/OpenJDK-%{version}/bin/pack200
208
+%{_libdir}/jvm/OpenJDK-%{version}/bin/jjs
209
+%{_libdir}/jvm/OpenJDK-%{version}/bin/rmid
210
+%{_libdir}/jvm/OpenJDK-%{version}/bin/rmiregistry
211
+%{_libdir}/jvm/OpenJDK-%{version}/bin/servertool
212
+%{_libdir}/jvm/OpenJDK-%{version}/bin/tnameserv
213
+%{_libdir}/jvm/OpenJDK-%{version}/bin/unpack200
214
+
215
+%files doc
216
+%defattr(-,root,root)
217
+%{_libdir}/jvm/OpenJDK-%{version}/man/
218
+%{_libdir}/jvm/OpenJDK-%{version}/legal/
219
+%{_libdir}/jvm/OpenJDK-%{version}/demo
220
+
221
+%files src
222
+%defattr(-,root,root)
223
+%{_libdir}/jvm/OpenJDK-%{version}/lib/src.zip
224
+
225
+%changelog
226
+*   Mon Jul 16 2018 Tapas Kundu <tkundu@vmware.com> 1.10.0.23-1
227
+-   Initial build. First version
0 228
new file mode 100755
... ...
@@ -0,0 +1,32 @@
0
+set -e
1
+if [[ $# -eq 0 ]] ; then
2
+    echo 'Usage: generate_source_tarball.sh <Mercurial-Tag-Name> <openjdk version>'
3
+    echo 'Example: generate_source_tarball.sh jdk9152-b16 1.8.0.152'
4
+    echo 'visit http://hg.openjdk.java.net/jdk9/jdk9/tags to use the appropriate tag name.'
5
+    exit 0
6
+fi
7
+rm -rf openjdk-$2
8
+hg clone http://hg.openjdk.java.net/jdk9/jdk9 -u $1 openjdk-$2
9
+cd openjdk-$2
10
+hg clone http://hg.openjdk.java.net/jdk9/jdk9/corba/ -u $1
11
+hg clone http://hg.openjdk.java.net/jdk9/jdk9/hotspot/ -u $1
12
+hg clone http://hg.openjdk.java.net/jdk9/jdk9/jaxp/ -u $1
13
+hg clone http://hg.openjdk.java.net/jdk9/jdk9/jaxws/ -u $1
14
+hg clone http://hg.openjdk.java.net/jdk9/jdk9/jdk/ -u $1
15
+hg clone http://hg.openjdk.java.net/jdk9/jdk9/langtools/ -u $1
16
+hg clone http://hg.openjdk.java.net/jdk9/jdk9/nashorn/ -u $1
17
+
18
+rm -r .hg
19
+rm -r corba/.hg
20
+rm -r hotspot/.hg
21
+rm -r jaxp/.hg
22
+rm -r jaxws/.hg
23
+rm -r jdk/.hg
24
+rm -r langtools/.hg
25
+rm -r nashorn/.hg
26
+cd ..
27
+
28
+tar -cvzf openjdk-$2.tar.gz openjdk-$2
29
+chmod 644 openjdk-$2.tar.gz
30
+
31
+echo 'source tarball openjdk-$2.tar.gz successfully created!'
0 32
new file mode 100644
... ...
@@ -0,0 +1,232 @@
0
+%define _use_internal_dependency_generator 0
1
+%global security_hardening none
2
+Summary:	OpenJDK
3
+Name:		openjdk9
4
+Version:	1.9.0.181
5
+Release:	1%{?dist}
6
+License:	GNU GPL
7
+URL:		https://openjdk.java.net
8
+Group:		Development/Tools
9
+Vendor:		VMware, Inc.
10
+Distribution:   Photon
11
+Source0:	http://www.java.net/download/openjdk/jdk9/b182/openjdk-%{version}.tar.gz
12
+%define sha1 openjdk-1.9.0=0761abc2aabb0aa24f63ce96853ab3bb57ccce67
13
+BuildRequires:  pcre-devel
14
+BuildRequires:	which
15
+BuildRequires:	zip
16
+BuildRequires:	unzip
17
+BuildRequires:  zlib-devel
18
+BuildRequires:	ca-certificates
19
+BuildRequires:	chkconfig
20
+BuildRequires:  elfutils-libelf-devel
21
+BuildRequires:  fontconfig-devel freetype2-devel glib-devel harfbuzz-devel
22
+Requires:       openjre9 = %{version}-%{release}
23
+Requires:       chkconfig
24
+Obsoletes:      openjdk <= %{version}
25
+Obsoletes:      openjdk-sample <= %{version}
26
+Obsoletes:      openjdk-src <= %{version}
27
+Obsoletes:      openjdk-doc <= %{version}
28
+AutoReqProv: 	no
29
+%define bootstrapjdkversion 1.8.0.112
30
+%define jdk_major_version 1.9.0
31
+%description
32
+The OpenJDK package installs java class library and javac java compiler.
33
+
34
+%package	-n openjre9
35
+Summary:	Java runtime environment
36
+AutoReqProv: 	no
37
+Obsoletes:      openjre <= %{version}
38
+Requires:       chkconfig
39
+Requires:	libstdc++
40
+%description	-n openjre9
41
+It contains the libraries files for Java runtime environment
42
+
43
+%package		doc
44
+Summary:		Documentation and demo applications for openjdk
45
+Group:          Development/Languages/Java
46
+Obsoletes:      openjdk-doc <= %{version}
47
+Requires:       %{name} = %{version}-%{release}
48
+%description	doc
49
+It contains the documentation and demo applications for openjdk
50
+
51
+%package 		src
52
+Summary:        OpenJDK Java classes for developers
53
+Group:          Development/Languages/Java
54
+Obsoletes:      openjdk-src <= %{version}
55
+Requires:       %{name} = %{version}-%{release}
56
+%description	src
57
+This package provides the runtime library class sources.
58
+
59
+%prep -p exit
60
+%setup -qn openjdk-%{version}
61
+
62
+%build
63
+chmod a+x ./configure
64
+unset JAVA_HOME &&
65
+ENABLE_HEADLESS_ONLY="true" &&
66
+./configure \
67
+	--with-target-bits=64 \
68
+	--with-boot-jdk=/var/opt/OpenJDK-%bootstrapjdkversion-bin \
69
+	--enable-headless-only \
70
+        --with-extra-cxxflags="-Wno-error -std=gnu++98 -fno-delete-null-pointer-checks -fno-lifetime-dse" \
71
+	--with-extra-cflags="-fno-delete-null-pointer-checks -Wno-error -fno-lifetime-dse" \
72
+	--with-freetype-include=/usr/include/freetype2 \
73
+	--with-freetype-lib=/usr/lib \
74
+	--with-stdc++lib=dynamic \
75
+        --disable-warnings-as-errors
76
+
77
+mkdir /usr/share/java -p
78
+make \
79
+    DISABLE_HOTSPOT_OS_VERSION_CHECK=ok \
80
+    SCTP_WERROR= \
81
+    BUILD_HEADLESS_ONLY=1 \
82
+    OPENJDK_TARGET_OS=linux \
83
+    STRIP_POLICY=no_strip \
84
+    POST_STRIP_CMD="" \
85
+    LOG=trace
86
+
87
+%install
88
+unset JAVA_HOME &&
89
+make DESTDIR=%{buildroot} install \
90
+	BUILD_HEADLESS_ONLY=yes \
91
+	OPENJDK_TARGET_OS=linux \
92
+	DISABLE_HOTSPOT_OS_VERSION_CHECK=ok \
93
+	CLASSPATH=/var/opt/OpenJDK-%bootstrapjdkversion-bin/jre
94
+
95
+install -vdm755 %{buildroot}%{_libdir}/jvm/OpenJDK-%{version}
96
+chown -R root:root %{buildroot}%{_libdir}/jvm/OpenJDK-%{version}
97
+install -vdm755 %{buildroot}%{_bindir}
98
+mv /usr/local/jvm/openjdk-9-internal/* %{buildroot}%{_libdir}/jvm/OpenJDK-%{version}/
99
+mv build/linux-x86_64-normal-server-release/images/jre %{buildroot}%{_libdir}/jvm/OpenJDK-%{version}/
100
+cp README LICENSE ASSEMBLY_EXCEPTION %{buildroot}%{_libdir}/jvm/OpenJDK-%{version}/
101
+
102
+%post
103
+alternatives --install %{_bindir}/javac javac %{_libdir}/jvm/OpenJDK-%{version}/bin/javac 2000 \
104
+  --slave %{_bindir}/appletviewer appletviewer %{_libdir}/jvm/OpenJDK-%{version}/bin/appletviewer \
105
+  --slave %{_bindir}/idlj idlj %{_libdir}/jvm/OpenJDK-%{version}/bin/idlj \
106
+  --slave %{_bindir}/jaotc jaotc %{_libdir}/jvm/OpenJDK-%{version}/bin/jaotc \
107
+  --slave %{_bindir}/jar jar %{_libdir}/jvm/OpenJDK-%{version}/bin/jar \
108
+  --slave %{_bindir}/jarsigner jarsigner %{_libdir}/jvm/OpenJDK-%{version}/bin/jarsigner \
109
+  --slave %{_bindir}/jhsdb jhsdb %{_libdir}/jvm/OpenJDK-%{version}/bin/jhsdb \
110
+  --slave %{_bindir}/jimage jimage %{_libdir}/jvm/OpenJDK-%{version}/bin/jimage \
111
+  --slave %{_bindir}/jlink jlink %{_libdir}/jvm/OpenJDK-%{version}/bin/jlink \
112
+  --slave %{_bindir}/jmod jmod %{_libdir}/jvm/OpenJDK-%{version}/bin/jmod \
113
+  --slave %{_bindir}/javadoc javadoc %{_libdir}/jvm/OpenJDK-%{version}/bin/javadoc \
114
+  --slave %{_bindir}/javah javah %{_libdir}/jvm/OpenJDK-%{version}/bin/javah \
115
+  --slave %{_bindir}/javap javap %{_libdir}/jvm/OpenJDK-%{version}/bin/javap \
116
+  --slave %{_bindir}/jcmd jcmd %{_libdir}/jvm/OpenJDK-%{version}/bin/jcmd \
117
+  --slave %{_bindir}/jdeprscan jdeprscan %{_libdir}/jvm/OpenJDK-%{version}/bin/jdeprscan \
118
+  --slave %{_bindir}/jconsole jconsole %{_libdir}/jvm/OpenJDK-%{version}/bin/jconsole \
119
+  --slave %{_bindir}/jdb jdb %{_libdir}/jvm/OpenJDK-%{version}/bin/jdb \
120
+  --slave %{_bindir}/jdeps jdeps %{_libdir}/jvm/OpenJDK-%{version}/bin/jdeps \
121
+  --slave %{_bindir}/jinfo jinfo %{_libdir}/jvm/OpenJDK-%{version}/bin/jinfo \
122
+  --slave %{_bindir}/jmap jmap %{_libdir}/jvm/OpenJDK-%{version}/bin/jmap \
123
+  --slave %{_bindir}/jps jps %{_libdir}/jvm/OpenJDK-%{version}/bin/jps \
124
+  --slave %{_bindir}/jrunscript jrunscript %{_libdir}/jvm/OpenJDK-%{version}/bin/jrunscript \
125
+  --slave %{_bindir}/jstack jstack %{_libdir}/jvm/OpenJDK-%{version}/bin/jstack \
126
+  --slave %{_bindir}/jstat jstat %{_libdir}/jvm/OpenJDK-%{version}/bin/jstat \
127
+  --slave %{_bindir}/jstatd jstatd %{_libdir}/jvm/OpenJDK-%{version}/bin/jstatd \
128
+  --slave %{_bindir}/rmic rmic %{_libdir}/jvm/OpenJDK-%{version}/bin/rmic \
129
+  --slave %{_bindir}/schemagen schemagen %{_libdir}/jvm/OpenJDK-%{version}/bin/schemagen \
130
+  --slave %{_bindir}/serialver serialver %{_libdir}/jvm/OpenJDK-%{version}/bin/serialver \
131
+  --slave %{_bindir}/wsgen wsgen %{_libdir}/jvm/OpenJDK-%{version}/bin/wsgen \
132
+  --slave %{_bindir}/wsimport wsimport %{_libdir}/jvm/OpenJDK-%{version}/bin/wsimport \
133
+  --slave %{_bindir}/xjc xjc %{_libdir}/jvm/OpenJDK-%{version}/bin/xjc
134
+/sbin/ldconfig
135
+
136
+%post -n openjre9
137
+alternatives --install %{_bindir}/java java %{_libdir}/jvm/OpenJDK-%{version}/jre/bin/java 2000 \
138
+  --slave %{_libdir}/jvm/jre jre %{_libdir}/jvm/OpenJDK-%{version}/jre \
139
+  --slave %{_bindir}/jjs jjs %{_libdir}/jvm/OpenJDK-%{version}/jre/bin/jjs \
140
+  --slave %{_bindir}/keytool keytool %{_libdir}/jvm/OpenJDK-%{version}/jre/bin/keytool \
141
+  --slave %{_bindir}/orbd orbd %{_libdir}/jvm/OpenJDK-%{version}/jre/bin/orbd \
142
+  --slave %{_bindir}/pack200 pack200 %{_libdir}/jvm/OpenJDK-%{version}/jre/bin/pack200 \
143
+  --slave %{_bindir}/rmid rmid %{_libdir}/jvm/OpenJDK-%{version}/jre/bin/rmid \
144
+  --slave %{_bindir}/rmiregistry rmiregistry %{_libdir}/jvm/OpenJDK-%{version}/jre/bin/rmiregistry \
145
+  --slave %{_bindir}/servertool servertool %{_libdir}/jvm/OpenJDK-%{version}/jre/bin/servertool \
146
+  --slave %{_bindir}/tnameserv tnameserv %{_libdir}/jvm/OpenJDK-%{version}/jre/bin/tnameserv \
147
+  --slave %{_bindir}/unpack200 unpack200 %{_libdir}/jvm/OpenJDK-%{version}/jre/bin/unpack200
148
+/sbin/ldconfig
149
+
150
+%postun
151
+alternatives --remove javac %{_libdir}/jvm/OpenJDK-%{version}/bin/javac
152
+/sbin/ldconfig
153
+
154
+%postun -n openjre9
155
+alternatives --remove java %{_libdir}/jvm/OpenJDK-%{version}/jre/bin/java
156
+/sbin/ldconfig
157
+
158
+%clean
159
+rm -rf %{buildroot}/*
160
+rm -rf %{_libdir}/jvm/OpenJDK-*
161
+
162
+%files
163
+%defattr(-,root,root)
164
+%{_libdir}/jvm/OpenJDK-%{version}/ASSEMBLY_EXCEPTION
165
+%{_libdir}/jvm/OpenJDK-%{version}/LICENSE
166
+%{_libdir}/jvm/OpenJDK-%{version}/README
167
+%{_libdir}/jvm/OpenJDK-%{version}/release
168
+%{_libdir}/jvm/OpenJDK-%{version}/lib
169
+%{_libdir}/jvm/OpenJDK-%{version}/include/
170
+%{_libdir}/jvm/OpenJDK-%{version}/bin/idlj
171
+%{_libdir}/jvm/OpenJDK-%{version}/bin/jaotc
172
+%{_libdir}/jvm/OpenJDK-%{version}/bin/jar
173
+%{_libdir}/jvm/OpenJDK-%{version}/bin/jhsdb
174
+%{_libdir}/jvm/OpenJDK-%{version}/bin/jimage
175
+%{_libdir}/jvm/OpenJDK-%{version}/bin/jarsigner
176
+%{_libdir}/jvm/OpenJDK-%{version}/bin/jdeprscan
177
+%{_libdir}/jvm/OpenJDK-%{version}/bin/javac
178
+%{_libdir}/jvm/OpenJDK-%{version}/bin/javadoc
179
+%{_libdir}/jvm/OpenJDK-%{version}/bin/javah
180
+%{_libdir}/jvm/OpenJDK-%{version}/bin/javap
181
+%{_libdir}/jvm/OpenJDK-%{version}/bin/jcmd
182
+%{_libdir}/jvm/OpenJDK-%{version}/bin/jconsole
183
+%{_libdir}/jvm/OpenJDK-%{version}/bin/jdb
184
+%{_libdir}/jvm/OpenJDK-%{version}/bin/jdeps
185
+%{_libdir}/jvm/OpenJDK-%{version}/bin/jinfo
186
+%{_libdir}/jvm/OpenJDK-%{version}/bin/jlink
187
+%{_libdir}/jvm/OpenJDK-%{version}/bin/jmod
188
+%{_libdir}/jvm/OpenJDK-%{version}/bin/jmap
189
+%{_libdir}/jvm/OpenJDK-%{version}/bin/jps
190
+%{_libdir}/jvm/OpenJDK-%{version}/bin/jshell
191
+%{_libdir}/jvm/OpenJDK-%{version}/bin/jrunscript
192
+%{_libdir}/jvm/OpenJDK-%{version}/bin/jstack
193
+%{_libdir}/jvm/OpenJDK-%{version}/bin/jstat
194
+%{_libdir}/jvm/OpenJDK-%{version}/bin/jstatd
195
+%{_libdir}/jvm/OpenJDK-%{version}/bin/rmic
196
+%{_libdir}/jvm/OpenJDK-%{version}/bin/schemagen
197
+%{_libdir}/jvm/OpenJDK-%{version}/bin/serialver
198
+%{_libdir}/jvm/OpenJDK-%{version}/bin/wsgen
199
+%{_libdir}/jvm/OpenJDK-%{version}/bin/wsimport
200
+%{_libdir}/jvm/OpenJDK-%{version}/bin/xjc
201
+%{_libdir}/jvm/OpenJDK-%{version}/conf
202
+%{_libdir}/jvm/OpenJDK-%{version}/jmods
203
+
204
+%files	-n openjre9
205
+%defattr(-,root,root)
206
+%dir %{_libdir}/jvm/OpenJDK-%{version}
207
+%{_libdir}/jvm/OpenJDK-%{version}/jre/
208
+%{_libdir}/jvm/OpenJDK-%{version}/bin/java
209
+%{_libdir}/jvm/OpenJDK-%{version}/bin/keytool
210
+%{_libdir}/jvm/OpenJDK-%{version}/bin/orbd
211
+%{_libdir}/jvm/OpenJDK-%{version}/bin/pack200
212
+%{_libdir}/jvm/OpenJDK-%{version}/bin/jjs
213
+%{_libdir}/jvm/OpenJDK-%{version}/bin/rmid
214
+%{_libdir}/jvm/OpenJDK-%{version}/bin/rmiregistry
215
+%{_libdir}/jvm/OpenJDK-%{version}/bin/servertool
216
+%{_libdir}/jvm/OpenJDK-%{version}/bin/tnameserv
217
+%{_libdir}/jvm/OpenJDK-%{version}/bin/unpack200
218
+
219
+%files doc
220
+%defattr(-,root,root)
221
+%{_libdir}/jvm/OpenJDK-%{version}/man/
222
+%{_libdir}/jvm/OpenJDK-%{version}/legal/
223
+%{_libdir}/jvm/OpenJDK-%{version}/demo
224
+
225
+%files src
226
+%defattr(-,root,root)
227
+%{_libdir}/jvm/OpenJDK-%{version}/lib/src.zip
228
+
229
+%changelog
230
+*   Fri Jul 20 2018 Tapas Kundu <tkundu@vmware.com> 1.9.0.181-1
231
+-   Initial build. First version
... ...
@@ -1,7 +1,9 @@
1
+import json
1 2
 import ThreadPool
2 3
 from constants import constants
3 4
 from Logger import Logger
4 5
 import threading 
6
+from Queue import PriorityQueue
5 7
 
6 8
 class Scheduler(object):
7 9
     
... ...
@@ -10,8 +12,13 @@ class Scheduler(object):
10 10
     listOfPackagesToBuild=[]
11 11
     listOfPackagesCurrentlyBuilding=[]
12 12
     sortedList=[]
13
-    listOfPackagesNextToBuild=[]
13
+    listOfPackagesNextToBuild=PriorityQueue()
14 14
     listOfFailedPackages=[]
15
+    alldependencyGraph = {}
16
+    dependencyGraph = {}
17
+    priorityMap = {}
18
+    pkgWeights={}
19
+    isPriorityScheduler=1
15 20
     logger=None
16 21
     event=None
17 22
     stopScheduling=False
... ...
@@ -23,7 +30,109 @@ class Scheduler(object):
23 23
     @staticmethod
24 24
     def setLog(logName,logPath):
25 25
         Scheduler.logger = Logger.getLogger(logName, logPath)    
26
-        
26
+    
27
+    @staticmethod
28
+    def getBuildRequiredPackages(package):
29
+        listRequiredRPMPackages = []
30
+        listRequiredRPMPackages.extend(constants.specData.getBuildRequiresForPackage(package))
31
+
32
+        listRequiredPackages = []
33
+
34
+        for pkg in listRequiredRPMPackages:
35
+            basePkg = constants.specData.getSpecName(pkg)
36
+            if basePkg not in listRequiredPackages:
37
+                listRequiredPackages.append(basePkg)
38
+
39
+        return listRequiredPackages
40
+
41
+
42
+    @staticmethod
43
+    def getDependencies(package, parentPackage, k):
44
+
45
+        for node in Scheduler.alldependencyGraph[package].keys():
46
+                Scheduler.getDependencies(node, package, k)
47
+
48
+        if parentPackage == None:
49
+            return
50
+        else:
51
+            for node in Scheduler.alldependencyGraph[package].keys():
52
+                try:
53
+                    Scheduler.alldependencyGraph[parentPackage][node] = max(
54
+                        Scheduler.alldependencyGraph[parentPackage][node],
55
+                        Scheduler.alldependencyGraph[package][node] * k)
56
+                except KeyError:
57
+                    Scheduler.alldependencyGraph[parentPackage][node] = \
58
+                        Scheduler.alldependencyGraph[package][node] * k
59
+
60
+    @staticmethod
61
+    def makeGraph():
62
+        k = 3
63
+        for package in Scheduler.sortedList:
64
+            for child_pkg in Scheduler.dependencyGraph[package].keys():
65
+                Scheduler.getDependencies(child_pkg, package, k)
66
+                for node in Scheduler.alldependencyGraph[child_pkg].keys():
67
+                    try:
68
+                        Scheduler.dependencyGraph[package][node] = max(
69
+                            Scheduler.dependencyGraph[package][node],
70
+                            Scheduler.alldependencyGraph[child_pkg][node] * k)
71
+                    except KeyError:
72
+                        Scheduler.dependencyGraph[package][node] = \
73
+                            Scheduler.alldependencyGraph[child_pkg][node] * k
74
+	if constants.publishBuildDependencies:
75
+	    dependencyLists = {}
76
+	    for package in Scheduler.dependencyGraph.keys():
77
+		dependencyLists[package] = []
78
+		for dependency in Scheduler.dependencyGraph[package].keys():
79
+			dependencyLists[package].append(dependency)
80
+	    graphfile = open(str(constants.logPath) + "/BuildDependencies.json", 'w')
81
+	    graphfile.write(json.dumps(dependencyLists, sort_keys=True, indent=4))
82
+	    graphfile.close()
83
+
84
+    @staticmethod
85
+    def parseWeights():
86
+	Scheduler.pkgWeights.clear()
87
+	weightFile = open(constants.packageWeightsPath, 'r')
88
+	Scheduler.pkgWeights = json.load(weightFile)
89
+	weightFile.close()
90
+
91
+    @staticmethod
92
+    def getWeight(package):
93
+        try:
94
+            return float(Scheduler.pkgWeights[package])
95
+        except KeyError:
96
+            return 0
97
+
98
+
99
+
100
+    @staticmethod
101
+    def setPriorities():
102
+	if constants.packageWeightsPath == None:
103
+            Scheduler.logger.info("Priority Scheduler disabled")
104
+            Scheduler.isPriorityScheduler = 0
105
+	else:
106
+	    Scheduler.parseWeights()
107
+
108
+        for package in Scheduler.sortedList:
109
+            Scheduler.dependencyGraph[package] = {}
110
+            Scheduler.alldependencyGraph[package] = {}
111
+            for child_package in Scheduler.getBuildRequiredPackages(package):
112
+                Scheduler.dependencyGraph[package][child_package] = 1
113
+            for child_package in Scheduler.getRequiredPackages(package):
114
+                Scheduler.alldependencyGraph[package][child_package] = 1
115
+        Scheduler.makeGraph()
116
+        for package in Scheduler.sortedList:
117
+            try:
118
+                Scheduler.priorityMap[package] = Scheduler.getWeight(package)
119
+            except KeyError:
120
+                Scheduler.priorityMap[package] = 0
121
+            for child_pkg in Scheduler.dependencyGraph[package].keys():
122
+                Scheduler.priorityMap[child_pkg] = Scheduler.priorityMap[child_pkg] \
123
+                                                 + (Scheduler.dependencyGraph[package][child_pkg]
124
+                                                    * (Scheduler.getWeight(package)))
125
+        Scheduler.logger.info("set Priorities: Priority of all packages")
126
+        Scheduler.logger.info(Scheduler.priorityMap)
127
+
128
+ 
27 129
     @staticmethod
28 130
     def setParams(sortedList,listOfAlreadyBuiltPackages):
29 131
         Scheduler.sortedList=sortedList
... ...
@@ -34,6 +143,7 @@ class Scheduler(object):
34 34
         Scheduler.listOfPackagesCurrentlyBuilding=[]
35 35
         Scheduler.listOfPackagesNextToBuild=[]
36 36
         Scheduler.listOfFailedPackages=[]
37
+        Scheduler.setPriorities()
37 38
         
38 39
     @staticmethod
39 40
     def getRequiredPackages(package):
... ...
@@ -51,7 +161,7 @@ class Scheduler(object):
51 51
     
52 52
     @staticmethod
53 53
     def __getListNextPackagesReadyToBuild():
54
-        listOfPackagesNextToBuild=[]
54
+        listOfPackagesNextToBuild=PriorityQueue()
55 55
         Scheduler.logger.info("Checking for next possible packages to build")
56 56
         for pkg in Scheduler.listOfPackagesToBuild:
57 57
             if pkg in Scheduler.listOfPackagesCurrentlyBuilding:
... ...
@@ -66,7 +176,7 @@ class Scheduler(object):
66 66
                     Scheduler.logger.info(reqPkg+" is not available. So we cannot build "+ pkg +" at this moment.")
67 67
                     break
68 68
             if canBuild:
69
-                listOfPackagesNextToBuild.append(pkg)
69
+                listOfPackagesNextToBuild.put((-Scheduler.priorityMap[pkg], pkg))
70 70
                 Scheduler.logger.info("Adding "+ pkg +" to the schedule list")
71 71
         return listOfPackagesNextToBuild
72 72
     
... ...
@@ -83,20 +193,37 @@ class Scheduler(object):
83 83
         if len(Scheduler.listOfPackagesToBuild) == 0:
84 84
             if Scheduler.event is not None:
85 85
                 Scheduler.event.set()
86
-            
87
-        if len(Scheduler.listOfPackagesNextToBuild) == 0:
88
-            listOfPackagesNextToBuild=Scheduler.__getListNextPackagesReadyToBuild()
89
-            Scheduler.listOfPackagesNextToBuild=listOfPackagesNextToBuild
90
-            
91
-        if len(Scheduler.listOfPackagesNextToBuild) == 0:
86
+        try:
87
+            if Scheduler.listOfPackagesNextToBuild.qsize() == 0:
88
+                listOfPackagesNextToBuild = Scheduler.__getListNextPackagesReadyToBuild()
89
+                Scheduler.listOfPackagesNextToBuild = listOfPackagesNextToBuild
90
+        except:
91
+            if len(Scheduler.listOfPackagesNextToBuild) == 0:
92
+                listOfPackagesNextToBuild = Scheduler.__getListNextPackagesReadyToBuild()
93
+                Scheduler.listOfPackagesNextToBuild = listOfPackagesNextToBuild
94
+
95
+        if Scheduler.listOfPackagesNextToBuild.qsize() == 0:    
92 96
             Scheduler.logger.info("Released scheduler lock")
93 97
             Scheduler.lock.release()
94 98
             return None
95 99
         
96
-        package=Scheduler.listOfPackagesNextToBuild.pop(0)
100
+        packageTup=Scheduler.listOfPackagesNextToBuild.get()
101
+         
102
+        if packageTup[0] == 0 and Scheduler.isPriorityScheduler == 1:
103
+            listOfPackagesNextToBuild = Scheduler.__getListNextPackagesReadyToBuild()
104
+            Scheduler.listOfPackagesNextToBuild = listOfPackagesNextToBuild
105
+            if Scheduler.listOfPackagesNextToBuild.qsize() == 0:
106
+                Scheduler.logger.info("Released scheduler lock")
107
+                Scheduler.lock.release()
108
+                return None
109
+
110
+            packageTup = Scheduler.listOfPackagesNextToBuild.get()
111
+         
112
+        package = packageTup[1]
113
+        Scheduler.logger.info("PackagesNextToBuild " + str(packageTup))
114
+        if Scheduler.listOfPackagesNextToBuild.qsize() > 0:
115
+            ThreadPool.ThreadPool.activateWorkerThreads(Scheduler.listOfPackagesNextToBuild.qsize())
97 116
         
98
-        if len(Scheduler.listOfPackagesNextToBuild) > 0:
99
-            ThreadPool.ThreadPool.activateWorkerThreads(len(Scheduler.listOfPackagesNextToBuild))
100 117
         Scheduler.logger.info("Released scheduler lock")
101 118
         Scheduler.lock.release()
102 119
         Scheduler.listOfPackagesCurrentlyBuilding.append(package)
... ...
@@ -130,4 +257,4 @@ class Scheduler(object):
130 130
             return True
131 131
         return False
132 132
         
133
-        
134 133
\ No newline at end of file
134
+        
... ...
@@ -9,6 +9,7 @@ import traceback
9 9
 import shutil
10 10
 import json
11 11
 import collections
12
+import re
12 13
 
13 14
 class ToolChainUtils(object):
14 15
 
... ...
@@ -132,7 +133,7 @@ class ToolChainUtils(object):
132 132
             raise Exception("RPM installation failed")
133 133
 
134 134
         self.logger.info("Installed default toolchain successfully on chroot:"+chrootID)
135
-        if "openjdk" in packageName or "openjre" in packageName:
135
+        if re.match("openjdk*", packageName) is not None or re.match("openjdk*", packageName) is not None:
136 136
             self.installToolChainXRPMS(chrootID);
137 137
 
138 138
     def installCoreToolChainPackages(self,chrootID):
... ...
@@ -272,7 +273,7 @@ class ToolChainUtils(object):
272 272
             raise Exception("RPM installation failed")
273 273
 
274 274
         self.logger.info("Successfully installed default Tool Chain RPMS in Chroot:"+chrootID)
275
-        if "openjdk" in packageName or "openjre" in packageName:
275
+        if re.match("openjdk*", packageName) is not None or re.match("openjdk*", packageName) is not None:
276 276
             self.installToolChainXRPMS(chrootID);
277 277
 
278 278
     def installToolChainXRPMS(self, chrootID):
... ...
@@ -41,6 +41,8 @@ def main():
41 41
     parser.add_option("-j",  "--pkg-yaml-dir-path",  dest="pkgYamlDirPath",  default="../../stage/")
42 42
     parser.add_option("-f",  "--pkg-blacklist-file",  dest="pkgBlacklistFile",  default=None)
43 43
     parser.add_option("-F",  "--kat-build", dest="katBuild",  default=None)
44
+    parser.add_option("-D", "--publish-build-dependencies", dest="publishBuildDependencies", default=False)
45
+    parser.add_option("-W", "--package-weights-path", dest="packageWeightsPath", default=None)
44 46
 
45 47
     (options,  args) = parser.parse_args()
46 48
     cmdUtils=CommandUtils()
... ...
@@ -79,7 +81,9 @@ def main():
79 79
     if options.inputRPMSPath is not None and not os.path.isdir(options.inputRPMSPath):
80 80
         logger.error("Given input RPMS Path is not a directory:"+options.inputRPMSPath)
81 81
         errorFlag = True
82
-
82
+    if options.packageWeightsPath is not None and not os.path.isfile(options.packageWeightsPath):
83
+        logger.error("Given input Weights file is not a file:"+options.packageWeightsPath)
84
+        errorFlag = True
83 85
     if options.generatePkgYamlFiles:
84 86
         if options.pkgBlacklistFile is not None and options.pkgBlacklistFile != "" and not os.path.isfile(options.pkgBlacklistFile):
85 87
             logger.error("Given package blacklist file is not valid:"+options.pkgBlacklistFile)
... ...
@@ -20,6 +20,8 @@ class constants(object):
20 20
     rpmCheck=False
21 21
     sourceRpmPath=""
22 22
     noDepsPackageList=["texinfo","bzip2","gettext","nspr","xz","bison","go"]
23
+    publishBuildDependencies=False
24
+    packageWeightsPath=None
23 25
     listToolChainPackages=[
24 26
         "linux-api-headers",
25 27
         "glibc",
... ...
@@ -110,6 +112,17 @@ class constants(object):
110 110
         "openjdk",
111 111
         "openjre",
112 112
         "icu",
113
+        "cups",
114
+        "cups-devel",
115
+        "freetype2",
116
+        "freetype2-devel",
117
+        "xorg-proto-devel",
118
+        "libXtst",
119
+        "libXtst-devel",
120
+        "libXfixes",
121
+        "libXfixes-devel",
122
+        "libXi",
123
+        "libXi-devel",
113 124
         "harfbuzz",
114 125
         "harfbuzz-devel",
115 126
         "alsa-lib",
... ...
@@ -320,6 +333,8 @@ class constants(object):
320 320
         constants.pullsourcesConfig = options.pullsourcesConfig
321 321
         constants.inputRPMSPath=options.inputRPMSPath
322 322
         constants.rpmCheck = options.rpmCheck
323
+        constants.packageWeightsPath=options.packageWeightsPath
324
+        constants.publishBuildDependencies=options.publishBuildDependencies
323 325
         constants.specData = SerializableSpecObjectsUtils(constants.logPath)
324 326
         constants.updateRPMMacros(options)
325 327
         # Perform full parsing now
... ...
@@ -2,6 +2,17 @@ noarch/proto-7.7-1.noarch.rpm
2 2
 noarch/util-macros-1.19.0-1.noarch.rpm
3 3
 x86_64/openjdk-1.8.0.112-1.x86_64.rpm
4 4
 x86_64/openjre-1.8.0.112-1.x86_64.rpm
5
+x86_64/cups-2.2.7-1.x86_64.rpm
6
+x86_64/cups-devel-2.2.7-1.x86_64.rpm
7
+x86_64/freetype2-2.5.5-1.x86_64.rpm
8
+x86_64/freetype2-devel-2.5.5-1.x86_64.rpm
9
+x86_64/xorg-proto-devel-2018.4-1.x86_64.rpm
10
+x86_64/libXfixes-5.0.1-1.x86_64.rpm
11
+x86_64/libXfixes-devel-5.0.1-1.x86_64.rpm
12
+x86_64/libXi-1.7.4-1.x86_64.rpm
13
+x86_64/libXi-devel-1.7.4-1.x86_64.rpm
14
+x86_64/libXtst-1.2.2-1.x86_64.rpm
15
+x86_64/libXtst-devel-1.2.2-1.x86_64.rpm
5 16
 x86_64/alsa-lib-1.0.29-1.x86_64.rpm
6 17
 x86_64/alsa-lib-devel-1.0.29-1.x86_64.rpm
7 18
 x86_64/fontconfig-2.11.1-1.x86_64.rpm