|
23 | 23 | endif |
24 | 24 |
|
25 | 25 | rpmversion := $(versionnumber)-$(release) |
| 26 | +java_adapter_version:=1.0.0-1 |
26 | 27 |
|
27 | 28 | GRADLE = ./gradlew -PbuildVersion=$(buildversion) |
28 | 29 |
|
29 | 30 | jarfile := cypher-shell.jar |
30 | | -rpm-java8file := cypher-shell-java8-$(rpmversion).noarch.rpm |
31 | | -rpm-java11file := cypher-shell-java11-$(rpmversion).noarch.rpm |
32 | | -rpm-openjava11file := cypher-shell-openjava11-$(rpmversion).noarch.rpm |
| 31 | +rpmfile := cypher-shell-$(rpmversion).noarch.rpm |
33 | 32 | debfile := cypher-shell_$(debversion)_all.deb |
| 33 | +java_adapter_files := neo4j-java-adapter-jre-11-$(java_adapter_version).noarch.rpm \ |
| 34 | + neo4j-java-adapter-jre-11-headless-$(java_adapter_version).noarch.rpm |
34 | 35 |
|
35 | 36 | outputs := cypher-shell cypher-shell.bat $(jarfile) |
36 | 37 | artifacts:=$(patsubst %,cypher-shell/build/install/cypher-shell/%,${outputs}) |
37 | | -rpm-java8_artifacts:=$(patsubst %,out/rpm-java8/BUILD/%,${artifacts}) |
38 | | -rpm-java11_artifacts:=$(patsubst %,out/rpm-java11/BUILD/%,${artifacts}) |
39 | | -rpm-openjava11_artifacts:=$(patsubst %,out/rpm-openjava11/BUILD/%,${artifacts}) |
| 38 | +rpm_artifacts:=$(patsubst %,out/rpm/BUILD/%,${artifacts}) |
40 | 39 | deb_artifacts:=$(patsubst %,out/debian/cypher-shell-$(debversion)/%,${artifacts}) |
| 40 | +java_adapter_artifacts:=$(patsubst %, out/%, ${java_adapter_files}) |
41 | 41 | deb_files:=$(wildcard packaging/debian/*) |
42 | 42 | deb_targets:=$(patsubst packaging/debian/%,out/debian/cypher-shell-$(debversion)/debian/%,${deb_files}) |
43 | 43 |
|
44 | | -DOCKERUUIDRPM := $(shell uuidgen) |
| 44 | +DOCKERUUIDRPM := $(shell uuidgen) |
| 45 | +YUMREPO_VOLUMEID := $(shell uuidgen) |
| 46 | +YUMREPO_IMAGEID := repomaker/$(shell uuidgen | head -c 5) |
45 | 47 |
|
46 | 48 | help: ## Print this help text |
47 | 49 | @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' |
@@ -128,117 +130,79 @@ out/cypher-shell.zip: tmp/cypher-shell.zip |
128 | 130 | mkdir -p out |
129 | 131 | cp $< $@ |
130 | 132 |
|
131 | | -.PHONY: rpm |
132 | | -rpm: rpm-java8 rpm-java11 rpm-openjava11 |
133 | | - |
134 | | -# ======================= RPM java 8 ======================= |
| 133 | +# ======================= RPM JAVA-ADAPTER ======================= |
| 134 | +## Build the java adapter package for java 11 compatibility |
| 135 | +## oracle and openjdk java 11 don't provide the same java package names any more, |
| 136 | +## and rpm might not be advanced enough to support boolean dependencies. |
| 137 | +## To fix that, we have a few empty java packages that provide various standard java package names. |
| 138 | +## This page is helpful for understanding this make code: |
| 139 | +## https://www.gnu.org/software/make/manual/html_node/Automatic-Variables.html |
135 | 140 |
|
136 | | -out/rpm-java8/SPECS/cypher-shell.spec: packaging/rpm-java8/cypher-shell.spec |
137 | | - mkdir -p $(dir $@) |
138 | | - VERSION=$(versionnumber) RELEASE=$(release) envsubst '$${VERSION} $${RELEASE}' < $< > $@ |
| 141 | +.PHONY: java-adapter |
| 142 | +java-adapter: $(java_adapter_artifacts) |
139 | 143 |
|
140 | | -out/rpm-java8/BUILD/%: % |
| 144 | +out/neo4j-java-adapter-%.rpm: out/rpm/RPMS/noarch/neo4j-java-adapter-%.rpm |
141 | 145 | mkdir -p $(dir $@) |
142 | 146 | cp $< $@ |
143 | 147 |
|
144 | | -out/%.rpm: out/rpm-java8/RPMS/noarch/%.rpm |
145 | | - mkdir -p $(dir $@) |
146 | | - cp $< $@ |
| 148 | +out/rpm/RPMS/noarch/neo4j-java-adapter-%-$(java_adapter_version).noarch.rpm: out/rpm/SPECS/neo4j-java-adapter-%.spec |
| 149 | + rpmbuild --define "_topdir $(CURDIR)/out/rpm" -bb --clean $< |
147 | 150 |
|
148 | | -tmp/rpm-java8-test/%.rpm: out/rpm-java8/RPMS/noarch/%.rpm |
| 151 | +out/rpm/SPECS/neo4j-java-adapter-%.spec: packaging/rpm-java-adapter/neo4j-java-adapter-%.spec |
149 | 152 | mkdir -p $(dir $@) |
150 | 153 | cp $< $@ |
151 | 154 |
|
152 | | -tmp/rpm-java8-test/Dockerfile: packaging/test/rpm/Dockerfile |
153 | | - mkdir -p $(dir $@) |
154 | | - RPMFILE=$(rpm-java8file) envsubst '$${RPMFILE}' < $< > $@ |
155 | | - |
156 | | -out/rpm-java8/RPMS/noarch/$(rpm-java8file): out/rpm-java8/SPECS/cypher-shell.spec $(rpm-java8_artifacts) out/rpm-java8/BUILD/Makefile out/rpm-java8/BUILD/cypher-shell.1.md |
157 | | - rpmbuild --define "_topdir $(CURDIR)/out/rpm-java8" -bb --clean $< |
| 155 | +.PHONY: java-adapter-test |
| 156 | +java-adapter-test: tmp/java-adapter-test/tests/java-11-openjdk \ |
| 157 | + tmp/java-adapter-test/tests/java-11-openjdk-headless \ |
| 158 | + tmp/java-adapter-test/tests/java-1.8.0-openjdk \ |
| 159 | + tmp/java-adapter-test/tests/java-1.8.0-openjdk-headless |
158 | 160 |
|
159 | | -.PHONY: rpm-java8 |
160 | | -rpm-java8: out/$(rpm-java8file) ## Build the RPM package |
161 | | - |
162 | | -.PHONY: rpm-java8-test |
163 | | -rpm-java8-test: tmp/rpm-java8-test/$(rpm-java8file) tmp/rpm-java8-test/Dockerfile ## Test the RPM java 8 package (requires Docker) |
164 | | - cd $(dir $<) && docker build . -t $(DOCKERUUIDRPM) && docker run --rm $(DOCKERUUIDRPM) --version |
| 161 | +tmp/java-adapter-test/tests/%: $(java_adapter_artifacts) \ |
| 162 | + out/$(rpmfile) \ |
| 163 | + packaging/test/java-adapter/tempneo4j.repo \ |
| 164 | + packaging/test/java-adapter/Dockerfile \ |
| 165 | + packaging/test/java-adapter/entrypoint.sh |
| 166 | + mkdir -p $@ |
| 167 | + cp $^ $@/ |
| 168 | + TEST_JAVA=$* envsubst '$${TEST_JAVA}' < packaging/test/java-adapter/Dockerfile > $@/Dockerfile |
| 169 | + cd $@ && docker build . -t $(DOCKERUUIDRPM) && docker run --rm $(DOCKERUUIDRPM) |
165 | 170 |
|
166 | 171 |
|
167 | | -# ======================= RPM open java 11 variant (OpenJDK) ======================= |
168 | | -# We unfortunately need to provide two cypher shell rpm packages because |
169 | | -# Oracle and OpenJDK java 11 distros provide incompatible package names: |
170 | | -# a) OpenJDK provides jre-11/java-11 |
171 | | -# b) Oracle provides jre/java/jdk |
| 172 | +# ======================= RPM CYPHER-SHELL ======================= |
172 | 173 |
|
173 | | -out/rpm-openjava11/SPECS/cypher-shell.spec: packaging/rpm-openjava11/cypher-shell.spec |
| 174 | +out/rpm/SPECS/cypher-shell.spec: packaging/rpm/cypher-shell.spec |
174 | 175 | mkdir -p $(dir $@) |
175 | 176 | VERSION=$(versionnumber) RELEASE=$(release) envsubst '$${VERSION} $${RELEASE}' < $< > $@ |
176 | 177 |
|
177 | | -out/rpm-openjava11/BUILD/%: % |
| 178 | +out/rpm/BUILD/%: % |
178 | 179 | mkdir -p $(dir $@) |
179 | 180 | cp $< $@ |
180 | 181 |
|
181 | | -out/%.rpm: out/rpm-openjava11/RPMS/noarch/%.rpm |
| 182 | +out/%.rpm: out/rpm/RPMS/noarch/%.rpm |
182 | 183 | mkdir -p $(dir $@) |
183 | 184 | cp $< $@ |
184 | 185 |
|
185 | | -tmp/rpm-openjava11-test/%.rpm: out/rpm-openjava11/RPMS/noarch/%.rpm |
| 186 | +tmp/rpm-test/%.rpm: out/rpm/RPMS/noarch/%.rpm |
186 | 187 | mkdir -p $(dir $@) |
187 | 188 | cp $< $@ |
188 | 189 |
|
189 | | -tmp/rpm-openjava11-test/Dockerfile: packaging/test/rpm/Dockerfile |
| 190 | +tmp/rpm-test/Dockerfile: packaging/test/rpm/Dockerfile |
190 | 191 | mkdir -p $(dir $@) |
191 | | - RPMFILE=$(rpm11file) envsubst '$${RPMFILE}' < $< > $@ |
192 | | - |
193 | | -out/rpm-openjava11/RPMS/noarch/$(rpm-openjava11file): out/rpm-openjava11/SPECS/cypher-shell.spec $(rpm-openjava11_artifacts) out/rpm-openjava11/BUILD/Makefile out/rpm-openjava11/BUILD/cypher-shell.1.md |
194 | | - rpmbuild --define "_topdir $(CURDIR)/out/rpm-openjava11" -bb --clean $< |
195 | | - |
196 | | -.PHONY: rpm-openjava11 |
197 | | -rpm-openjava11: out/$(rpm-openjava11file) ## Build the RPM package |
| 192 | + RPMFILE=$(rpmfile) envsubst '$${RPMFILE}' < $< > $@ |
198 | 193 |
|
199 | | -.PHONY: rpm-openjava11-test |
200 | | -rpm-openjava11-test: tmp/rpm-openjava11-test/$(rpm-openjava11file) tmp/rpm-openjava11-test/Dockerfile ## Test the RPM java 11 (Oracle) package (requires Docker) |
201 | | - cd $(dir $<) && docker build . -t $(DOCKERUUIDRPM) && docker run --rm $(DOCKERUUIDRPM) --version |
202 | | - |
203 | | -# ======================= RPM java 11 variant (Oracle) ======================= |
204 | | -# We unfortunately need to provide two cypher shell rpm packages because |
205 | | -# Oracle and OpenJDK java 11 distros provide incompatible package names: |
206 | | -# a) OpenJDK provides jre-11/java-11 |
207 | | -# b) Oracle provides jre/java/jdk |
| 194 | +out/rpm/RPMS/noarch/$(rpmfile): out/rpm/SPECS/cypher-shell.spec $(rpm_artifacts) out/rpm/BUILD/Makefile out/rpm/BUILD/cypher-shell.1.md |
| 195 | + rpmbuild --define "_topdir $(CURDIR)/out/rpm" -bb --clean $< |
208 | 196 |
|
209 | | -out/rpm-java11/SPECS/cypher-shell.spec: packaging/rpm-java11/cypher-shell.spec |
210 | | - mkdir -p $(dir $@) |
211 | | - VERSION=$(versionnumber) RELEASE=$(release) envsubst '$${VERSION} $${RELEASE}' < $< > $@ |
212 | | - |
213 | | -out/rpm-java11/BUILD/%: % |
214 | | - mkdir -p $(dir $@) |
215 | | - cp $< $@ |
216 | | - |
217 | | -out/%.rpm: out/rpm-java11/RPMS/noarch/%.rpm |
218 | | - mkdir -p $(dir $@) |
219 | | - cp $< $@ |
220 | | - |
221 | | -tmp/rpm-java11-test/%.rpm: out/rpm-java11/RPMS/noarch/%.rpm |
222 | | - mkdir -p $(dir $@) |
223 | | - cp $< $@ |
224 | | - |
225 | | -tmp/rpm-java11-test/Dockerfile: packaging/test/rpm/Dockerfile |
226 | | - mkdir -p $(dir $@) |
227 | | - RPMFILE=$(rpm11file) envsubst '$${RPMFILE}' < $< > $@ |
228 | | - |
229 | | -out/rpm-java11/RPMS/noarch/$(rpm-java11file): out/rpm-java11/SPECS/cypher-shell.spec $(rpm-java11_artifacts) out/rpm-java11/BUILD/Makefile out/rpm-java11/BUILD/cypher-shell.1.md |
230 | | - rpmbuild --define "_topdir $(CURDIR)/out/rpm-java11" -bb --clean $< |
231 | | - |
232 | | -.PHONY: rpm-java11 |
233 | | -rpm-java11: out/$(rpm-java11file) ## Build the RPM package |
| 197 | +.PHONY: rpm |
| 198 | +rpm: out/$(rpmfile) ## Build the RPM package |
234 | 199 |
|
235 | | -.PHONY: rpm-java11-test |
236 | | -rpm-java11-test: tmp/rpm-java11-test/$(rpm-java11file) tmp/rpm-java11-test/Dockerfile ## Test the RPM java 11 (Oracle) package (requires Docker) |
| 200 | +.PHONY: rpm-test |
| 201 | +rpm-test: tmp/rpm-test/$(rpmfile) tmp/rpm-test/Dockerfile ## Test the RPM package (requires Docker) |
237 | 202 | cd $(dir $<) && docker build . -t $(DOCKERUUIDRPM) && docker run --rm $(DOCKERUUIDRPM) --version |
238 | 203 |
|
239 | 204 |
|
240 | 205 |
|
241 | | - |
242 | 206 | # ======================= DEBIAN ======================= |
243 | 207 |
|
244 | 208 |
|
|
0 commit comments