Browse code

PackageBuilder: do not use JAVAx_VERSION macro

One more step to simplify the build system.
Making spec files self sufficient, not depending on additional input macros.

check_spec_files.sh:
- relax ./configure check
- new check for:
value=param \
%configure
it should be:
export value=param
%configure

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

Alexey Makhalov authored on 2018/11/06 04:43:39
Showing 10 changed files
... ...
@@ -1,7 +1,7 @@
1 1
 Summary:	Ant contrib
2 2
 Name:		ant-contrib
3 3
 Version:	1.0b3
4
-Release:	12%{?dist}
4
+Release:	13%{?dist}
5 5
 License:	Apache
6 6
 URL:		http://ant-contrib.sourceforget.net
7 7
 Group:		Applications/System
... ...
@@ -28,11 +28,11 @@ find . -name '*.jar' -or -name '*.class' -exec rm -rf {} +
28 28
 rm -rf %{buildroot}
29 29
 
30 30
 %build
31
-export JAVA_HOME=/usr/lib/jvm/OpenJDK-%{JAVA8_VERSION}
31
+export JAVA_HOME=`echo /usr/lib/jvm/OpenJDK-*`
32 32
 ant -Ddist.dir="." -Dproject.version=%{version} dist
33 33
 
34 34
 %install
35
-export JAVA_HOME=/usr/lib/jvm/OpenJDK-%{JAVA8_VERSION}
35
+export JAVA_HOME=`echo /usr/lib/jvm/OpenJDK-*`
36 36
 mkdir -p -m 700 %{buildroot}/var/opt
37 37
 cd %{buildroot}/var/opt && tar xvzf %{_builddir}/%{name}/%{name}-%{version}-bin.tar.gz --wildcards "*.jar"
38 38
 %files
... ...
@@ -43,6 +43,8 @@ cd %{buildroot}/var/opt && tar xvzf %{_builddir}/%{name}/%{name}-%{version}-bin.
43 43
 %{_prefix}/lib/*.jar
44 44
 
45 45
 %changelog
46
+*   Mon Nov 05 2018 Alexey Makhalov <amakhalov@vmware.com> 1.0b3-13
47
+-   Removed dependency on JAVA8_VERSION macro
46 48
 *   Mon Jun 19 2017 Divya Thaluru <dthaluru@vmware.com> 1.0b3-12
47 49
 -   Removed dependency on ANT_HOME
48 50
 *   Thu May 18 2017 Harish Udaiya Kumar <hudaiyakumar@vmware.com> 1.0b3-11
... ...
@@ -64,6 +66,6 @@ cd %{buildroot}/var/opt && tar xvzf %{_builddir}/%{name}/%{name}-%{version}-bin.
64 64
 *   Mon Nov 16 2015 Sharath George <sharathg@vmware.com> 1.0b3.0-2
65 65
 -   Change path to /var/opt.
66 66
 *   Wed Sep 16 2015 Harish Udaiya Kumar <hudaiyakumar@vmware.com> 1.0b3.0-1
67
--   Updated dependencies after repackaging openjdk. 
67
+-   Updated dependencies after repackaging openjdk.
68 68
 *   Tue Jun 9 2015 Sriram Nambakam <snambakam@vmware.com> 1.0b3.0-0
69 69
 -   Initial commit
... ...
@@ -1,7 +1,7 @@
1 1
 Summary:	Apache Ant
2 2
 Name:		apache-ant
3 3
 Version:	1.10.5
4
-Release:	1%{?dist}
4
+Release:	2%{?dist}
5 5
 License:	Apache
6 6
 URL:		http://ant.apache.org
7 7
 Group:		Applications/System
... ...
@@ -46,7 +46,7 @@ rm -rf %{buildroot}
46 46
 %build
47 47
 ANT_DIST_DIR=%{buildroot}%{_prefix}
48 48
 cp -v ./hamcrest-1.3/hamcrest-core-1.3.jar ./lib/optional
49
-export JAVA_HOME=/usr/lib/jvm/OpenJDK-%{JAVA8_VERSION}
49
+export JAVA_HOME=`echo /usr/lib/jvm/OpenJDK-*`
50 50
 mkdir -p -m 700 $ANT_DIST_DIR
51 51
 ./bootstrap.sh && ./build.sh -Ddist.dir=$ANT_DIST_DIR
52 52
 
... ...
@@ -106,6 +106,8 @@ chmod 644 $MAVEN_ANT_TASKS_DIR/*
106 106
 %{_bindir}/runant.pl
107 107
 
108 108
 %changelog
109
+*   Mon Nov 05 2018 Alexey Makhalov <amakhalov@vmware.com> 1.10.5-2
110
+-   Removed dependency on JAVA8_VERSION macro
109 111
 *   Mon Sep 17 2018 Ankit Jain <ankitja@vmware.com> 1.10.5-1
110 112
 -   Updated Apache Ant to 1.10.5
111 113
 *   Wed Jun 28 2017 Kumar Kaushik <kaushikk@vmware.com> 1.10.1-5
... ...
@@ -129,7 +131,7 @@ chmod 644 $MAVEN_ANT_TASKS_DIR/*
129 129
 -   GA - Bump release of all rpms
130 130
 *   Fri May 20 2016 Divya Thaluru <dthaluru@vmware.com> 1.9.6-2
131 131
 -   Updated JAVA_HOME path to point to latest JDK.
132
-*   Tue Feb 29 2016 Harish Udaiya Kumar <hudaiyakumar@vmware.com> 1.9.6-1
132
+*   Mon Feb 29 2016 Harish Udaiya Kumar <hudaiyakumar@vmware.com> 1.9.6-1
133 133
 -   Updated to version 1.9.6
134 134
 *   Fri Feb 26 2016 Kumar Kaushik <kaushikk@vmware.com> 1.9.4-4
135 135
 -   Updated JAVA_HOME path to point to latest JDK.
... ...
@@ -1,7 +1,7 @@
1 1
 Summary:	Apache Maven
2 2
 Name:		apache-maven
3 3
 Version:	3.5.4
4
-Release:	2%{?dist}
4
+Release:	3%{?dist}
5 5
 License:	Apache License 2.0
6 6
 URL:		http://maven.apache.org
7 7
 Group:		Applications/System
... ...
@@ -34,7 +34,7 @@ rm -rf %{buildroot}
34 34
 
35 35
 %build
36 36
 MAVEN_DIST_DIR=%{buildroot}%{_prefix}
37
-export JAVA_HOME=/usr/lib/jvm/OpenJDK-%{JAVA8_VERSION}
37
+export JAVA_HOME=`echo /usr/lib/jvm/OpenJDK-*`
38 38
 
39 39
 sed -i 's/www.opensource/opensource/g' DEPENDENCIES
40 40
 
... ...
@@ -77,6 +77,8 @@ done
77 77
 %exclude %{_libdir}/jansi-native
78 78
 
79 79
 %changelog
80
+*   Mon Nov 05 2018 Alexey Makhalov <amakhalov@vmware.com> 3.5.4-3
81
+-   Removed dependency on JAVA8_VERSION macro
80 82
 *   Mon Oct 29 2018 Alexey Makhalov <amakhalov@vmware.com> 3.5.4-2
81 83
 -   Use ExtraBuildRequires
82 84
 *   Tue Sep 18 2018 Ankit Jain <ankitja@vmware.com> 3.5.4-1
... ...
@@ -3,7 +3,7 @@
3 3
 Summary:        Cassandra is a highly scalable, eventually consistent, distributed, structured key-value store
4 4
 Name:           cassandra
5 5
 Version:        3.11.3
6
-Release:        1%{?dist}
6
+Release:        2%{?dist}
7 7
 URL:            http://cassandra.apache.org/
8 8
 License:        Apache License, Version 2.0
9 9
 Group:          Applications/System
... ...
@@ -33,7 +33,7 @@ wget http://central.maven.org/maven2/ch/qos/logback/logback-classic/1.2.0/logbac
33 33
 wget http://central.maven.org/maven2/ch/qos/logback/logback-core/1.2.0/logback-core-1.2.0.jar -P lib
34 34
 
35 35
 %build
36
-export JAVA_HOME=/usr/lib/jvm/OpenJDK-%{JAVA8_VERSION}
36
+export JAVA_HOME=`echo /usr/lib/jvm/OpenJDK-*`
37 37
 
38 38
 ant jar javadoc -Drelease=true
39 39
 
... ...
@@ -126,6 +126,8 @@ fi
126 126
 %exclude /var/opt/cassandra/build/lib
127 127
 
128 128
 %changelog
129
+*   Mon Nov 05 2018 Alexey Makhalov <amakhalov@vmware.com> 3.11.3-2
130
+-   Removed dependency on JAVA8_VERSION macro
129 131
 *   Mon Sep 03 2018 Keerthana K <keerthanak@vmware.com> 3.11.3-1
130 132
 -   Updated to version 3.11.3.
131 133
 *   Tue Apr 24 2018 Harish Udaiya Kumar <hudaiyakumar@vmware.com> 3.10-8
... ...
@@ -1,7 +1,7 @@
1 1
 Summary:	Apache Commons Daemon
2 2
 Name:		commons-daemon
3 3
 Version:	1.1.0
4
-Release:	1%{?dist}
4
+Release:	2%{?dist}
5 5
 License:	Apache
6 6
 URL:		http://commons.apache.org/proper/commons-daemon
7 7
 Group:		Applications/System
... ...
@@ -26,7 +26,7 @@ code to control a Java daemon from a Unix operating system.
26 26
 rm -rf %{buildroot}
27 27
 
28 28
 %build
29
-export JAVA_HOME=/usr/lib/jvm/OpenJDK-%{JAVA8_VERSION}
29
+export JAVA_HOME=`echo /usr/lib/jvm/OpenJDK-*`
30 30
 ant dist
31 31
 
32 32
 %ifarch x86_64
... ...
@@ -45,7 +45,7 @@ cd src/native/unix && ./configure && make
45 45
 cd $CURDIR
46 46
 
47 47
 %install
48
-export JAVA_HOME=/usr/lib/jvm/OpenJDK-%{JAVA8_VERSION}
48
+export JAVA_HOME=`echo /usr/lib/jvm/OpenJDK-*`
49 49
 DIST_DIR=%{buildroot}%{_datadir}/java
50 50
 
51 51
 mkdir -p -m 755 $DIST_DIR
... ...
@@ -62,8 +62,10 @@ chmod -R 755 $DIST_DIR
62 62
 %{_datadir}/java/*.jar
63 63
 
64 64
 %changelog
65
+*   Mon Nov 05 2018 Alexey Makhalov <amakhalov@vmware.com> 1.1.0-2
66
+-   Removed dependency on JAVA8_VERSION macro
65 67
 *   Tue Dec 26 2017 Alexey Makhalov <amakhalov@vmware.com> 1.1.0-1
66
--   Versio update to support aarch64
68
+-   Version update to support aarch64
67 69
 *   Fri Oct 13 2017 Alexey Makhalov <amakhalov@vmware.com> 1.0.15-12
68 70
 -   Remove BuildArch
69 71
 *   Tue Jun 20 2017 Divya Thaluru <dthaluru@vmware.com> 1.0.15-11
... ...
@@ -78,8 +80,8 @@ chmod -R 755 $DIST_DIR
78 78
 -   Updated JAVA_HOME path to point to latest JDK.
79 79
 *   Tue Oct 04 2016 Priyesh Padmavilasom <ppadmavilasom@vmware.com> 1.0.15-7
80 80
 -   Updated JAVA_HOME path to point to latest JDK.
81
-*	Tue May 24 2016 Priyesh Padmavilasom <ppadmavilasom@vmware.com> 1.0.15-6
82
--	GA - Bump release of all rpms
81
+*   Tue May 24 2016 Priyesh Padmavilasom <ppadmavilasom@vmware.com> 1.0.15-6
82
+-   GA - Bump release of all rpms
83 83
 *   Fri May 20 2016 Divya Thaluru<dthaluru@vmware.com> 1.0.15-5
84 84
 -   Updated JAVA_HOME path to point to latest JDK.
85 85
 *   Fri Feb 26 2016 Kumar Kaushik <kaushikk@vmware.com> 1.0.15-4
... ...
@@ -87,6 +89,6 @@ chmod -R 755 $DIST_DIR
87 87
 *   Mon Nov 16 2015 Sharath George <sharathg@vmware.com> 1.0.15-3
88 88
 -   Changing path to /var/opt.
89 89
 *   Wed Sep 16 2015 Harish Udaiya Kumar <hudaiyakumar@vmware.com> 1.0.15-2
90
--   Updated dependencies after repackaging openjdk. 
90
+-   Updated dependencies after repackaging openjdk.
91 91
 *   Wed Jul 15 2015 Sriram Nambakam <snambakam@vmware.com> 1.0.15-1
92 92
 -   Initial commit
... ...
@@ -3,7 +3,7 @@
3 3
 Summary:        Elastic Search
4 4
 Name:           elasticsearch
5 5
 Version:        6.4.0
6
-Release:        1%{?dist}
6
+Release:        2%{?dist}
7 7
 License:        Apache License Version 2.0
8 8
 URL:            https://artifacts.elastic.co/downloads/elasticsearch/%{name}-%{version}.tar.gz
9 9
 Source0:        %{name}-%{version}.tar.gz
... ...
@@ -38,10 +38,10 @@ Elasticsearch is a highly distributed RESTful search engine built for the cloud.
38 38
 %build
39 39
 export LANG="en_US.UTF-8"
40 40
 export JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF8"
41
-export JAVA_HOME=/usr/lib/jvm/OpenJDK-%{JAVA10_VERSION}
41
+export JAVA_HOME=`echo /usr/lib/jvm/OpenJDK-*`
42 42
 export PATH=$JAVA_HOME/bin:$PATH
43 43
 export _JAVA_OPTIONS="-Xmx10g"
44
-cp %{SOURCE1} /usr/lib/jvm/OpenJDK-%{JAVA10_VERSION}/lib/security/
44
+cp %{SOURCE1} $JAVA_HOME/lib/security/
45 45
 ./gradlew assemble
46 46
 
47 47
 %install
... ...
@@ -117,7 +117,9 @@ rm -rf %{buildroot}/*
117 117
 %attr(755,elasticsearch,elasticsearch) /usr/lib/tmpfiles.d/elasticsearch.conf
118 118
 
119 119
 %changelog
120
-*    Mon Sep 03 2018 Tapas Kundu <tkundu@vmware.com> 6.4.0-1
121
--    Updated to 6.4.0 and corrected typo.
122
-*    Mon Jul 09 2018 Tapas Kundu <tkundu@vmware.com> 6.3.0-1
123
--    Initial build added for Photon.
120
+* Mon Nov 05 2018 Alexey Makhalov <amakhalov@vmware.com> 6.4.0-2
121
+- Removed dependency on JAVA10_VERSION macro
122
+* Mon Sep 03 2018 Tapas Kundu <tkundu@vmware.com> 6.4.0-1
123
+- Updated to 6.4.0 and corrected typo.
124
+* Mon Jul 09 2018 Tapas Kundu <tkundu@vmware.com> 6.3.0-1
125
+- Initial build added for Photon.
... ...
@@ -4,7 +4,7 @@
4 4
 Summary:        Java Native Access
5 5
 Name:           jna
6 6
 Version:        4.5.2
7
-Release:        2%{?dist}
7
+Release:        3%{?dist}
8 8
 License:        Apache
9 9
 URL:            https://github.com/java-native-access/jna
10 10
 Group:          Applications/System
... ...
@@ -39,7 +39,7 @@ Sources for JNA
39 39
 rm -rf %{buildroot}
40 40
 
41 41
 %build
42
-export JAVA_HOME=/usr/lib/jvm/OpenJDK-%{JAVA8_VERSION}
42
+export JAVA_HOME=`echo /usr/lib/jvm/OpenJDK-*`
43 43
 
44 44
 # Intermittent issue happens:
45 45
 #
... ...
@@ -52,7 +52,7 @@ ant -Dcflags_extra.native=-DNO_JAWT -Dtests.exclude-patterns="**/*.java" -Drelea
52 52
 ant -Dcflags_extra.native=-DNO_JAWT -Dtests.exclude-patterns="**/*.java" -Drelease=true
53 53
 
54 54
 %install
55
-export JAVA_HOME=/usr/lib/jvm/OpenJDK-%{JAVA8_VERSION}
55
+export JAVA_HOME=`echo /usr/lib/jvm/OpenJDK-*`
56 56
 export JNA_DIST_DIR=%{buildroot}%{_prefix}
57 57
 
58 58
 mkdir -p -m 700 $JNA_DIST_DIR
... ...
@@ -83,6 +83,8 @@ ant
83 83
 %{_prefix}/*.aar
84 84
 
85 85
 %changelog
86
+*   Mon Nov 05 2018 Alexey Makhalov <amakhalov@vmware.com> 4.5.2-3
87
+-   Removed dependency on JAVA8_VERSION macro
86 88
 *   Thu Oct 25 2018 Ankit Jain <ankitja@vmware.com> 4.5.2-2
87 89
 -   Removed clover.jar from jna-devel source-full.zip file
88 90
 *   Mon Sep 10 2018 Ankit Jain <ankitja@vmware.com> 4.5.2-1
... ...
@@ -1,7 +1,7 @@
1 1
 Name:          lightwave
2 2
 Summary:       VMware Lightwave
3 3
 Version:       1.3.1.7
4
-Release:       3%{?dist}
4
+Release:       4%{?dist}
5 5
 License:       Apache 2.0
6 6
 Group:         Applications/System
7 7
 Vendor:        VMware, Inc.
... ...
@@ -21,7 +21,7 @@ Requires:  e2fsprogs
21 21
 Requires:  gawk >= 4.1.3
22 22
 Requires:  krb5 >= 1.14
23 23
 Requires:  likewise-open >= 6.2.11.4
24
-Requires:  openjre8 >= %{JAVA8_VERSION}
24
+Requires:  openjre8
25 25
 Requires:  openssl >= 1.0.2
26 26
 Requires:  lightwave-client = %{version}
27 27
 
... ...
@@ -37,7 +37,7 @@ BuildRequires: e2fsprogs-devel
37 37
 BuildRequires: jansson-devel
38 38
 BuildRequires: krb5-devel >= 1.14
39 39
 BuildRequires: likewise-open-devel >= 6.2.10
40
-BuildRequires: openjdk8 >= %{JAVA8_VERSION}
40
+BuildRequires: openjdk8
41 41
 BuildRequires: openssl-devel >= 1.0.2
42 42
 BuildRequires: python2-devel >= 2.7.8
43 43
 BuildRequires: sqlite-devel >= 3.14
... ...
@@ -53,7 +53,6 @@ VMware Lightwave Server
53 53
 %define _servicedir /lib/systemd/system
54 54
 %define _commons_daemon_home /usr/share/java
55 55
 %define _tomcat_home /var/opt/apache-tomcat
56
-%define _java_home /usr/lib/jvm/OpenJDK-%{JAVA8_VERSION}
57 56
 %define _ant_home /var/opt/apache-ant
58 57
 %define _maven_home /var/opt/apache-maven
59 58
 
... ...
@@ -65,10 +64,6 @@ VMware Lightwave Server
65 65
 %define _likewise_open_sbindir %{_likewise_open_prefix}/sbin
66 66
 %define _lwisbindir %{_likewise_open_bindir}
67 67
 
68
-%if 0%{?_javahome:1} == 0
69
-%define _javahome %{_java_home}
70
-%endif
71
-
72 68
 %define _sasl2dir %{_libdir}/sasl2
73 69
 %define _krb5_lib_dir %{_libdir}
74 70
 %define _krb5_gss_conf_dir /etc/gss
... ...
@@ -104,7 +99,7 @@ Requires: openssl >= 1.0.2
104 104
 Requires: jansson
105 105
 Requires: krb5 >= 1.14
106 106
 Requires: likewise-open >= 6.2.9
107
-Requires: openjdk8 >= %{JAVA8_VERSION}
107
+Requires: openjdk8
108 108
 Requires: boost = 1.66.0
109 109
 Requires: lightwave-client-libs = %{version}-%{release}
110 110
 
... ...
@@ -1143,6 +1138,8 @@ fi
1143 1143
 # %doc ChangeLog README COPYING
1144 1144
 
1145 1145
 %changelog
1146
+*   Mon Nov 05 2018 Alexey Makhalov <amakhalov@vmware.com> 1.3.1.7-4
1147
+-   Removed dependency on JAVA8_VERSION macro
1146 1148
 *   Tue Sep 18 2018 Srivatsa S. Bhat <srivatsa@csail.mit.edu> 1.3.1.7-3
1147 1149
 -   Use boost version 1.66.0
1148 1150
 *   Tue Dec 26 2017 Alexey Makhalov <amakhalov@vmware.com> 1.3.1.7-2
... ...
@@ -336,26 +336,6 @@ class SPECS(object):
336 336
 
337 337
     def initialize(self):
338 338
         # Preparse some files
339
-        # adding openjre8 version rpm macro
340
-        if platform.machine() == "x86_64":
341
-            spec = Specutils(constants.specPath + "/openjdk8/openjdk8.spec")
342
-        else:
343
-            spec = Specutils(constants.specPath + "/openjdk8/openjdk8_aarch64.spec")
344
-        java8version = spec.getVersion()
345
-        constants.addMacro("JAVA8_VERSION", java8version)
346
-
347
-        # adding openjre9 version rpm macro
348
-        if platform.machine() == "x86_64":
349
-            spec = Specutils(constants.specPath + "/openjdk9/openjdk9.spec")
350
-            java9version = spec.getVersion()
351
-            constants.addMacro("JAVA9_VERSION", java9version)
352
-
353
-
354
-        # adding openjre10 version rpm macro
355
-        if platform.machine() == "x86_64":
356
-            spec = Specutils(constants.specPath + "/openjdk10/openjdk10.spec")
357
-            java10version = spec.getVersion()
358
-            constants.addMacro("JAVA10_VERSION", java10version)
359 339
 
360 340
         # adding kernelversion rpm macro
361 341
         spec = Specutils(constants.specPath + "/linux/linux.spec")
... ...
@@ -90,6 +90,15 @@ function check-for-configure()
90 90
     exit 1
91 91
   fi
92 92
 
93
+  grep "%configure" $1 > /dev/null || exit 0
94
+
95
+  grep -Pzo ".*\\\\(\n)%configure.*" $1
96
+  if [ $? -eq 0 ] ; then
97
+    echo
98
+    echo "Trailing backslash before %configure found. Please use export instead"
99
+    exit 1
100
+  fi
101
+
93 102
   for param in prefix exec-prefix bindir sbindir libdir includedir sysconfdir datadir libexecdir sharedstatedir mandir infodir localstatedir; do
94 103
     grep -e "\(configure\|^\)[ \t]\+--$param=%{_$param}" $1
95 104
     if [ $? -eq 0 ] ; then