Skip to content

Commit 70360f2

Browse files
committed
chore: switch patch process in other products
1 parent 455e2fa commit 70360f2

File tree

29 files changed

+74
-795
lines changed

29 files changed

+74
-795
lines changed

druid/stackable/patches/apply_patches.sh

Lines changed: 0 additions & 44 deletions
This file was deleted.

hadoop/Dockerfile

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,16 +54,14 @@ RUN microdnf update && \
5454

5555
WORKDIR /stackable
5656

57-
COPY --chown=${STACKABLE_USER_UID}:0 hadoop/stackable/patches /stackable/patches
57+
COPY --chown=${STACKABLE_USER_UID}:0 hadoop/stackable/patches/${PRODUCT} /stackable/src/hadoop/stackable/patches/${PRODUCT}
5858

5959
# Hadoop Pipes requires libtirpc to build, whose headers are not packaged in RedHat UBI, so skip building this module
6060
# Build from source to enable FUSE module, and to apply custom patches.
6161
# Also skip building the yarn, mapreduce and minicluster modules: this will result in the modules being excluded but not all
6262
# jar files will be stripped if they are needed elsewhere e.g. share/hadoop/yarn will not be part of the build, but yarn jars
6363
# will still exist in share/hadoop/tools as they would be needed by the resource estimator tool. Such jars are removed in a later step.
64-
RUN curl "https://repo.stackable.tech/repository/packages/hadoop/hadoop-${PRODUCT}-src.tar.gz" | tar -xzC . && \
65-
patches/apply_patches.sh ${PRODUCT} && \
66-
cd hadoop-${PRODUCT}-src && \
64+
RUN cd "$(/stackable/patchable --images-repo-root=src checkout hadoop ${PRODUCT})" && \
6765
mvn --batch-mode --no-transfer-progress clean package -Pdist,native -pl '!hadoop-tools/hadoop-pipes,!hadoop-yarn-project,!hadoop-mapreduce-project,!hadoop-minicluster' -Drequire.fuse=true -DskipTests -Dmaven.javadoc.skip=true && \
6866
cp -r hadoop-dist/target/hadoop-${PRODUCT} /stackable/hadoop-${PRODUCT} && \
6967
mv hadoop-dist/target/bom.json /stackable/hadoop-${PRODUCT}/hadoop-${PRODUCT}.cdx.json && \

hadoop/stackable/patches/apply_patches.sh

Lines changed: 0 additions & 43 deletions
This file was deleted.

hbase/Dockerfile

Lines changed: 19 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ COPY hbase/licenses /licenses
2626
USER ${STACKABLE_USER_UID}
2727
WORKDIR /stackable
2828

29-
COPY --chown=${STACKABLE_USER_UID}:0 hbase/stackable/patches /stackable/patches
29+
COPY --chown=${STACKABLE_USER_UID}:0 hbase/stackable/patches/${PRODUCT} /stackable/src/hbase/stackable/patches/${PRODUCT}
3030
COPY --chown=${STACKABLE_USER_UID}:0 hbase/stackable/jmx/config${JMX_EXPORTER} /stackable/jmx
3131

3232
# Cache mounts are owned by root by default
@@ -44,13 +44,7 @@ RUN --mount=type=cache,id=maven-hbase-${PRODUCT},uid=${STACKABLE_USER_UID},targe
4444
###
4545
### HBase
4646
###
47-
curl "https://repo.stackable.tech/repository/packages/hbase/hbase-${PRODUCT}-src.tar.gz" | tar -xzC .
48-
mv hbase-${PRODUCT} hbase-${PRODUCT}-src
49-
50-
chmod +x patches/apply_patches.sh
51-
patches/apply_patches.sh ${PRODUCT}
52-
53-
cd /stackable/hbase-${PRODUCT}-src/
47+
cd "$(/stackable/patchable --images-repo-root=src checkout hbase ${PRODUCT})" && \
5448

5549
# The release scripts of HBase also run the build twice (three times in fact, once again to build the site which we skip here).
5650
# I chose to replicate that exact behavior for consistency so please don't merge the two mvn runs into one unless you really know what you're doing!
@@ -139,8 +133,7 @@ ARG DELETE_CACHES="true"
139133
# so that they are not expanded. Disabling ShellCheck rules in a Dockerfile
140134
# does not work, so please ignore the according warning (SC2016).
141135
COPY --chown=${STACKABLE_USER_UID}:0 hbase/stackable/bin/hbck2.env /stackable/bin/
142-
COPY --chown=${STACKABLE_USER_UID}:0 hbase/hbase-operator-tools/stackable/patches /stackable/patches
143-
COPY --chown=${STACKABLE_USER_UID}:0 hbase/stackable/patches/apply_patches.sh /stackable/patches
136+
COPY --chown=${STACKABLE_USER_UID}:0 hbase/hbase-operator-tools/stackable/patches/${HBASE_OPERATOR_TOOLS} /stackable/src/hbase-operator-tools/stackable/patches/${HBASE_OPERATOR_TOOLS}
144137
COPY --chown=${STACKABLE_USER_UID}:0 --chmod=755 hbase/stackable/bin/hbase-entrypoint.sh /stackable/bin/
145138

146139
USER ${STACKABLE_USER_UID}
@@ -149,30 +142,33 @@ WORKDIR /stackable
149142
# Cache mounts are owned by root by default
150143
# We need to explicitly give the uid to use
151144
RUN --mount=type=cache,id=maven-hbase-operator-tools-${HBASE_OPERATOR_TOOLS},uid=${STACKABLE_USER_UID},target=/stackable/.m2/repository <<EOF
152-
153-
curl "https://repo.stackable.tech/repository/packages/hbase-operator-tools/hbase-operator-tools-${HBASE_OPERATOR_TOOLS}-src.tar.gz" | tar -xzC .
154-
mv hbase-operator-tools-${HBASE_OPERATOR_TOOLS} hbase-operator-tools-${HBASE_OPERATOR_TOOLS}-src
155-
chmod +x patches/apply_patches.sh
156-
patches/apply_patches.sh ${HBASE_OPERATOR_TOOLS} hbase-operator-tools-${HBASE_OPERATOR_TOOLS}-src
145+
cd "$(/stackable/patchable --images-repo-root=src checkout hbase-operator-tools ${HBASE_OPERATOR_TOOLS})"
146+
cd hbase-hbck2
147+
git init
148+
git config user.email "[email protected]"
149+
git config user.name "Fake commiter"
150+
git commit --allow-empty --message "Fake commit, so that we can create a tag"
151+
git tag ${HBASE_OPERATOR_TOOLS}
152+
cd ..
157153

158154
mvn \
159155
--batch-mode \
160156
--no-transfer-progress \
161157
-Dhbase.version=${PRODUCT} \
162158
-Dhbase-thirdparty.version=${HBASE_THIRDPARTY} \
163159
-DskipTests \
164-
-fhbase-operator-tools-${HBASE_OPERATOR_TOOLS}-src \
165160
package assembly:single
166161

167162
# We need the "*" here as the directory won't be the same as the final tar file for SNAPSHOTs which we currently have to use for 2.6
168163
# And we're stripping the top level directory while extracting because it may be called different than the folder name when it's a SNAPSHOT
169164
mkdir /stackable/hbase-operator-tools-${HBASE_OPERATOR_TOOLS}
170165
tar -xz \
171-
-f hbase-operator-tools-${HBASE_OPERATOR_TOOLS}-src/hbase-operator-tools-assembly/target/hbase-operator-tools-*-bin.tar.gz \
166+
-f hbase-operator-tools-assembly/target/hbase-operator-tools-*-bin.tar.gz \
172167
-C /stackable/hbase-operator-tools-${HBASE_OPERATOR_TOOLS}/ \
173168
--strip-components=1
174-
mv hbase-operator-tools-${HBASE_OPERATOR_TOOLS}-src/hbase-operator-tools-assembly/target/bom.json /stackable/hbase-operator-tools-${HBASE_OPERATOR_TOOLS}/hbase-operator-tools-${HBASE_OPERATOR_TOOLS}.cdx.json
175-
rm -rf /stackable/hbase-operator-tools-${HBASE_OPERATOR_TOOLS}-src
169+
mv hbase-operator-tools-assembly/target/bom.json /stackable/hbase-operator-tools-${HBASE_OPERATOR_TOOLS}/hbase-operator-tools-${HBASE_OPERATOR_TOOLS}.cdx.json
170+
cd ..
171+
rm -r ./${HBASE_OPERATOR_TOOLS}
176172

177173
envsubst '${PRODUCT}:${HBASE_OPERATOR_TOOLS}' < /stackable/bin/hbck2.env > /stackable/bin/hbck2
178174
chmod +x /stackable/bin/hbck2
@@ -233,20 +229,13 @@ ARG STACKABLE_USER_UID
233229
# This can be used to speed up builds when disk space is of no concern.
234230
ARG DELETE_CACHES="true"
235231

236-
COPY --chown=${STACKABLE_USER_UID}:0 hbase/phoenix/stackable/patches /stackable/patches
237-
COPY --chown=${STACKABLE_USER_UID}:0 hbase/stackable/patches/apply_patches.sh /stackable/patches
232+
COPY --chown=${STACKABLE_USER_UID}:0 hbase/phoenix/stackable/patches/${PHOENIX} /stackable/src/phoenix/stackable/patches/${PHOENIX}
238233
USER ${STACKABLE_USER_UID}
239234
WORKDIR /stackable
240235

241236
RUN --mount=type=cache,id=maven-phoenix-${PHOENIX},uid=${STACKABLE_USER_UID},target=/stackable/.m2/repository <<EOF
242-
cd /stackable
243-
curl "https://repo.stackable.tech/repository/packages/phoenix/phoenix-${PHOENIX}-src.tar.gz" | tar -xzC .
244-
mv phoenix-${PHOENIX} phoenix-${PHOENIX}-src
245-
246-
chmod +x patches/apply_patches.sh
247-
patches/apply_patches.sh ${PHOENIX} phoenix-${PHOENIX}-src
237+
cd "$(/stackable/patchable --images-repo-root=src checkout phoenix ${PHOENIX})" && \
248238

249-
# Passing "-f" means it'll build in the phoenix source directory without cding into it
250239
# The Maven command can be found inside of the scripts in the create-release folder (release-util.sh as of Phoenix 5.2.0)
251240
# https://github.com/apache/phoenix/tree/5.2.0/dev/create-release
252241
mvn \
@@ -257,15 +246,14 @@ mvn \
257246
-Dhadoop.version=${HADOOP} \
258247
-DskipTests \
259248
-Dcheckstyle.skip=true \
260-
-fphoenix-${PHOENIX}-src \
261249
clean \
262250
package
263251

264252
# We need the "*" here as the directory won't be the same as the final tar file for SNAPSHOTs which we currently have to use for 2.6
265253
# And we're stripping the top level directory while extracting because it may be called different than the folder name when it's a SNAPSHOT
266254
mkdir /stackable/phoenix-${HBASE_PROFILE}-${PHOENIX}-bin
267-
tar -xz -f phoenix-${PHOENIX}-src/phoenix-assembly/target/phoenix-hbase-*-bin.tar.gz -C /stackable/phoenix-${HBASE_PROFILE}-${PHOENIX}-bin/ --strip-components=1
268-
mv phoenix-${PHOENIX}-src/phoenix-assembly/target/bom.json /stackable/phoenix-${HBASE_PROFILE}-${PHOENIX}-bin/phoenix-${HBASE_PROFILE}-${PHOENIX}.cdx.json
255+
tar -xz -f phoenix-assembly/target/phoenix-hbase-*-bin.tar.gz -C /stackable/phoenix-${HBASE_PROFILE}-${PHOENIX}-bin/ --strip-components=1
256+
mv phoenix-assembly/target/bom.json /stackable/phoenix-${HBASE_PROFILE}-${PHOENIX}-bin/phoenix-${HBASE_PROFILE}-${PHOENIX}.cdx.json
269257
rm -rf /stackable/phoenix-${PHOENIX}-src
270258
ln -s "/stackable/phoenix-${HBASE_PROFILE}-${PHOENIX}-bin" /stackable/phoenix
271259

hbase/stackable/patches/apply_patches.sh

Lines changed: 0 additions & 49 deletions
This file was deleted.

hive/Dockerfile

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,19 +19,18 @@ ARG STACKABLE_USER_UID
1919
# This can be used to speed up builds when disk space is of no concern.
2020
ARG DELETE_CACHES="true"
2121

22-
COPY --chown=${STACKABLE_USER_UID}:0 hive/stackable /stackable
22+
# Copy patches into the builder
23+
COPY --chown=${STACKABLE_USER_UID}:0 hive/stackable/patches/${PRODUCT} /stackable/src/hive/stackable/patches/${PRODUCT}
24+
# Copy JMX config into the builder
25+
COPY --chown=${STACKABLE_USER_UID}:0 hive/stackable/jmx /stackable/jmx
2326

2427
USER ${STACKABLE_USER_UID}
2528
WORKDIR /stackable
2629

2730
# Cache mounts are owned by root by default
2831
# We need to explicitly give the uid to use
2932
RUN --mount=type=cache,id=maven-hive-${PRODUCT},uid=${STACKABLE_USER_UID},target=/stackable/.m2/repository <<EOF
30-
curl "https://repo.stackable.tech/repository/packages/hive/apache-hive-${PRODUCT}-src.tar.gz" | tar -xzC .
31-
32-
patches/apply_patches.sh ${PRODUCT}
33-
34-
cd /stackable/apache-hive-${PRODUCT}-src/
33+
cd "$(/stackable/patchable --images-repo-root=src checkout hive ${PRODUCT})"
3534

3635
if [[ "${PRODUCT}" == "3.1.3" ]] ; then
3736
mvn --batch-mode --no-transfer-progress clean package -DskipTests --projects standalone-metastore
@@ -43,17 +42,20 @@ else
4342
mvn --batch-mode --no-transfer-progress clean package -DskipTests --projects metastore-server
4443

4544
# We only seem to get a .tar.gz archive, so let's extract that to the correct location
46-
cd /stackable
47-
tar --extract -f /stackable/apache-hive-${PRODUCT}-src/standalone-metastore/metastore-server/target/apache-hive-standalone-metastore-server-${PRODUCT}-bin.tar.gz
48-
mv /stackable/apache-hive-${PRODUCT}-src/standalone-metastore/metastore-server/target/bom.json /stackable/apache-hive-metastore-${PRODUCT}-bin/apache-hive-metastore-${PRODUCT}.cdx.json
45+
tar --extract --directory=/stackable -f metastore-server/target/apache-hive-standalone-metastore-server-${PRODUCT}-bin.tar.gz
46+
mv metastore-server/target/bom.json /stackable/apache-hive-metastore-${PRODUCT}-bin/apache-hive-metastore-${PRODUCT}.cdx.json
4947

5048
# TODO: Remove once the fix https://github.com/apache/hive/pull/5419 is merged and released
5149
# The schemaTool.sh is still pointing to the class location from Hive < 4.0.0, it seems like it was forgotten to update it
5250
sed -i -e 's/CLASS=org.apache.hadoop.hive.metastore.tools.MetastoreSchemaTool/CLASS=org.apache.hadoop.hive.metastore.tools.schematool.MetastoreSchemaTool/' /stackable/apache-hive-metastore-${PRODUCT}-bin/bin/ext/schemaTool.sh
51+
cd ..
5352
fi
5453

5554
cp /stackable/bin/start-metastore /stackable/apache-hive-metastore-${PRODUCT}-bin/bin
56-
rm -rf /stackable/apache-hive-${PRODUCT}-src
55+
56+
# Remove sourcecode
57+
cd ..
58+
rm -rf ./${PRODUCT}
5759

5860
curl "https://repo.stackable.tech/repository/packages/jmx-exporter/jmx_prometheus_javaagent-${JMX_EXPORTER}.jar" -o "/stackable/jmx/jmx_prometheus_javaagent-${JMX_EXPORTER}.jar"
5961
ln -s "/stackable/jmx/jmx_prometheus_javaagent-${JMX_EXPORTER}.jar" /stackable/jmx/jmx_prometheus_javaagent.jar

hive/stackable/patches/apply_patches.sh

Lines changed: 0 additions & 50 deletions
This file was deleted.

0 commit comments

Comments
 (0)