ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/lib-src/build-jtreg
Revision: 1.14
Committed: Tue Dec 17 23:44:10 2019 UTC (4 years, 11 months ago) by jsr166
Branch: MAIN
CVS Tags: HEAD
Changes since 1.13: +5 -3 lines
Log Message:
update to jtreg 4.2-b16

File Contents

# User Rev Content
1 jsr166 1.1 #!/bin/bash
2     # Builds jar files to run jtreg for jsr166 CVS.
3     #
4     # Leverages the hard work done by Ubuntu and Maven packagers
5    
6     set -eux
7    
8 jsr166 1.5 declare -a MAKE_FLAGS=() DOWNLOADED_MAVEN_JARS=()
9    
10     die() { printf "%s: $1\n" "$0" "${@:2}" >&2; exit 2; }
11 jsr166 1.1
12     def_make_var() {
13     typeset -n varref="$1"
14     varref="$2"
15     MAKE_FLAGS+=("$1=$2")
16     }
17    
18     def_make_file() {
19 jsr166 1.5 [[ -f "$2" ]] || die "%s: no such file" "$2"
20 jsr166 1.1 def_make_var "$@"
21     }
22    
23     def_make_dir() {
24 jsr166 1.5 [[ -d "$2" ]] || die "%s: no such directory" "$2"
25 jsr166 1.1 def_make_var "$@"
26     }
27    
28     download_ubuntu() {
29 jsr166 1.5 local -r pkg="$1"
30     wget -q "http://us.archive.ubuntu.com/ubuntu/pool/universe/${pkg:0:1}/${pkg}"
31 jsr166 1.1 }
32    
33     download_maven_jar() {
34     local -r groupId="$1" artifactId="$2" version="$3"
35     local -r jarfile="${artifactId}-${version}.jar"
36     wget -qO"/tmp/$jarfile" \
37     "http://search.maven.org/remotecontent?filepath=${groupId}/${artifactId}/${version}/${jarfile}"
38     def_make_file "${artifactId^^}_JAR" "/tmp/$jarfile"
39 jsr166 1.5 DOWNLOADED_MAVEN_JARS+=("/tmp/$jarfile")
40 jsr166 1.1 }
41    
42     main() {
43     [[ "$PWD" =~ /lib-src$ ]] || { echo Always run as ./build-jtreg; exit 1; }
44 jsr166 1.7 TESTNG_VERSION="6.9.9"
45 jsr166 1.1 rm -rf "/tmp/testng-$TESTNG_VERSION"*; mkdir "/tmp/testng-$TESTNG_VERSION"
46     def_make_dir TESTNG_HOME "/tmp/testng-$TESTNG_VERSION"
47    
48 jsr166 1.5 # Download a mostly unused testng distribution, because jtreg's
49     # makefiles want both TESTNG_JAR and TESTNG_HOME.
50     # https://github.com/cbeust/testng/releases
51 jsr166 1.1 rm -rf "/tmp/${TESTNG_VERSION}.tar.gz" "/tmp/${TESTNG_VERSION}"
52     wget -qO"/tmp/testng-${TESTNG_VERSION}.tar.gz" \
53     "https://github.com/cbeust/testng/archive/${TESTNG_VERSION}.tar.gz"
54     (
55     cd /tmp
56     tar xzf "/tmp/testng-${TESTNG_VERSION}.tar.gz"
57     rm -f "/tmp/testng-${TESTNG_VERSION}.tar.gz"
58     )
59    
60 jsr166 1.5 download_maven_jar "junit" "junit" "4.10"
61     download_maven_jar "org/testng" "testng" "$TESTNG_VERSION"
62 jsr166 1.8 download_maven_jar "com/beust" "jcommander" "1.72"
63 jsr166 1.5
64 jsr166 1.14 # TODO: Upgrade to jtharness 6.x
65 jsr166 1.1 rm -rf jtharness-4.6; rm -f ./*jtharness*4.6*
66     download_ubuntu "jtharness/jtharness_4.6-1.debian.tar.xz"
67     download_ubuntu "jtharness/jtharness_4.6-1.dsc"
68     download_ubuntu "jtharness/jtharness_4.6.orig.tar.xz"
69     download_ubuntu "jtharness/libjtharness-java_4.6-1_all.deb"
70     tar xJf "jtharness_4.6.orig.tar.xz"
71     def_make_dir JTHARNESS_HOME "$PWD/jtharness-4.6"
72    
73     rm -f ./javahelp2*2.0.05*
74     download_ubuntu "javahelp2/javahelp2_2.0.05.ds1-9.debian.tar.xz"
75     download_ubuntu "javahelp2/javahelp2_2.0.05.ds1-9.dsc"
76     download_ubuntu "javahelp2/javahelp2_2.0.05.ds1-9_all.deb"
77     download_ubuntu "javahelp2/javahelp2_2.0.05.ds1.orig.tar.gz"
78    
79    
80     ## Currently we build jtreg from source, but get its dependencies
81     ## from Ubuntu or Maven Central. Below are past approaches.
82    
83     # rm -f ./jtreg_4.2-b03*
84     # download_ubuntu "jtreg/jtreg_4.2-b03-1~16.04.debian.tar.xz"
85     # download_ubuntu "jtreg/jtreg_4.2-b03-1~16.04_all.deb"
86     # download_ubuntu "jtreg/jtreg_4.2-b03-1~16.04.dsc"
87     # download_ubuntu "jtreg/jtreg_4.2-b03.orig.tar.gz"
88    
89     # rm -f ./testng*6.9*
90     # download_ubuntu "testng/testng_6.9.5-1.debian.tar.xz"
91     # download_ubuntu "testng/testng_6.9.5-1.dsc"
92     # download_ubuntu "testng/testng_6.9.5-1_all.deb"
93     # download_ubuntu "testng/testng_6.9.5.orig.tar.gz"
94    
95     # rm -f ./*jcommander*1.48*
96     # download_ubuntu "jcommander/jcommander_1.48-1.debian.tar.xz"
97     # download_ubuntu "jcommander/jcommander_1.48-1.dsc"
98     # download_ubuntu "jcommander/jcommander_1.48.orig.tar.gz"
99     # download_ubuntu "jcommander/libjcommander-java_1.48-1_all.deb"
100    
101     # rm -f ./*junit4*
102     # download_ubuntu "junit4/junit4_4.12-4ubuntu1.debian.tar.xz"
103     # download_ubuntu "junit4/junit4_4.12-4ubuntu1.dsc"
104     # download_ubuntu "junit4/junit4_4.12-4ubuntu1_all.deb"
105     # download_ubuntu "junit4/junit4_4.12.orig.tar.xz"
106    
107     rm -rf ./extract
108     mkdir extract
109     for deb in *.deb; do dpkg -x $deb extract; done
110     EXTRACT="$PWD/extract"
111     def_make_file JAVATEST_JAR "$(find $EXTRACT/ -name javatest.jar)"
112     def_make_file JAVAHELP_JAR "$(find $EXTRACT/ -name jh.jar)"
113    
114 jsr166 1.8 hg_clone_codetools() {
115     local -r repo="$1" rev="$2"
116     rm -rf "$repo"
117     hg clone -r "$rev" "http://hg.openjdk.java.net/code-tools/${repo}"
118     rm -rf "${repo}/.hg"
119     tar cJf "${repo}.tar.xz" "$repo"
120     }
121    
122 jsr166 1.3 # asmtools is optional, but let's build it for completeness.
123 jsr166 1.13 hg_clone_codetools asmtools 7.0-b06
124 jsr166 1.8 rm -rf "asmtools-"*"-build"
125     (cd "asmtools/build" && ant build)
126 jsr166 1.3 def_make_dir ASMTOOLS_HOME "$PWD/asmtools-"*"-build/release"
127    
128 jsr166 1.14 def_make_var BUILD_NUMBER "b16"
129 jsr166 1.1 JTREG_REV="jtreg4.2-${BUILD_NUMBER}"
130 jsr166 1.8 hg_clone_codetools jtreg "$JTREG_REV"
131 jsr166 1.1
132     def_make_dir JDK17HOME "$HOME/jdk/jdk7"
133     def_make_dir JDK18HOME "$HOME/jdk/jdk8"
134 jsr166 1.14 def_make_dir JDK9HOME "$HOME/jdk/jdk9"
135     def_make_dir JDK11HOME "$HOME/jdk/jdk11"
136     # Observe version collision at JDK15HOME !
137 jsr166 1.1
138     def_make_dir ANTHOME "/usr/share/ant"
139    
140     make "${MAKE_FLAGS[@]}" -C "jtreg/make" clean images
141    
142     cp jtreg/build/images/jtreg/lib/*.jar ../jsr166/lib/.
143    
144 jsr166 1.6 # As a side effect, save a general purpose jtreg "distribution".
145     rsync -a jtreg/build/images/jtreg/ "${JTREG_REV#jtreg}/"
146    
147     # Clean up intermediate artifacts.
148 jsr166 1.3 # asmtools creates a bogus index.html
149     rm -rf asmtools asmtools-*-build index.html \
150 jsr166 1.5 jtreg extract "${DOWNLOADED_MAVEN_JARS[@]}" \
151     "$JTHARNESS_HOME" "$TESTNG_HOME"
152 jsr166 1.1
153     exit 0
154     }
155    
156     main "$@"