Skip to content

Commit 1c706ea

Browse files
authored
OPSEXP-2129 Create a ARM64 imagemagick version (#48)
1 parent 632dd6a commit 1c706ea

File tree

7 files changed

+112
-1
lines changed

7 files changed

+112
-1
lines changed

.github/actions/release-version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2
1+
3
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
FROM arm64v8/rockylinux:8
2+
3+
COPY entrypoint.sh /entrypoint.sh
4+
5+
COPY override-* /
6+
7+
RUN chmod +x /entrypoint.sh
8+
9+
ENTRYPOINT ["/entrypoint.sh"]
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
name: "RockyLinux build"
2+
description: "Build Imagemagick RPMs from sources for RockyLinux"
3+
outputs:
4+
built-version:
5+
description: 'The package version we built'
6+
inputs:
7+
im-version:
8+
description: 'The imagemagick package version to build'
9+
required: true
10+
runs:
11+
using: "docker"
12+
image: "Dockerfile"
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#!/bin/bash -e
2+
3+
if [ -z "$GITHUB_WORKSPACE" ]; then
4+
echo "GITHUB_WORKSPACE is not set"
5+
exit 1
6+
fi
7+
8+
# Build dependencies
9+
dnf install -y epel-release git make wget 'dnf-command(config-manager)' && \
10+
dnf config-manager --set-enabled powertools && \
11+
dnf install -y rpm-build yum-utils && \
12+
dnf group install -y "Development Tools" && \
13+
dnf clean all
14+
15+
# Imagemagick sources
16+
git clone --depth 1 -b $1 https://github.com/ImageMagick/ImageMagick.git
17+
18+
# Generate updated .src.rpm
19+
cd ImageMagick && \
20+
sed -i '/BuildRequires.*lqr/d; /--with-lqr/d' ImageMagick.spec.in && \
21+
sed -i '/%package lib/a AutoReq: no' ImageMagick.spec.in && \
22+
source /override-$1.sh && \
23+
./configure && \
24+
make dist-xz && \
25+
make srpm
26+
27+
# Finally build rpm
28+
cd $GITHUB_WORKSPACE/ImageMagick && \
29+
yum-builddep -y ImageMagick-$1.src.rpm && \
30+
rpmbuild --rebuild --nocheck ImageMagick-$1.src.rpm
31+
32+
ls /github/home/rpmbuild/RPMS/aarch64
33+
34+
DEST_DIR=$GITHUB_WORKSPACE/rpms
35+
36+
echo "Copying prebuilt packages for $1 to $DEST_DIR"
37+
mkdir -p "$DEST_DIR"
38+
cp /github/home/rpmbuild/RPMS/aarch64/*.rpm "$DEST_DIR"
39+
40+
echo "built-version=$1" >> "$GITHUB_OUTPUT"
41+
42+
exit 0
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#!/bin/bash -e
2+
sed -i '/AutoReq: no/a Requires: /sbin/ldconfig /sbin/ldconfig config(ImageMagick-libs) = 7.0.10-59 ld-linux-aarch64.so.1()(64bit) ld-linux-aarch64.so.1(GLIBC_2.17)(64bit) libHalf.so.12()(64bit) libICE.so.6()(64bit) libIex-2_2.so.12()(64bit) libIexMath-2_2.so.12()(64bit) libIlmImf-2_2.so.22()(64bit) libIlmThread-2_2.so.12()(64bit) libImath-2_2.so.12()(64bit) libSM.so.6()(64bit) libX11.so.6()(64bit) libXext.so.6()(64bit) libXt.so.6()(64bit) libbz2.so.1()(64bit) libc.so.6()(64bit) libc.so.6(GLIBC_2.17)(64bit) libcairo.so.2()(64bit) libfftw3.so.3()(64bit) libfontconfig.so.1()(64bit) libfreetype.so.6()(64bit) libgcc_s.so.1()(64bit) libgcc_s.so.1(GCC_3.3.1)(64bit) libgdk_pixbuf-2.0.so.0()(64bit) libgio-2.0.so.0()(64bit) libglib-2.0.so.0()(64bit) libgobject-2.0.so.0()(64bit) libgomp.so.1()(64bit) libgomp.so.1(GOMP_1.0)(64bit) libgomp.so.1(GOMP_4.0)(64bit) libgomp.so.1(OMP_1.0)(64bit) libgomp.so.1(OMP_3.0)(64bit) libjbig.so.2.1()(64bit) libjpeg.so.62()(64bit) libjpeg.so.62(LIBJPEG_6.2)(64bit) liblcms2.so.2()(64bit) libltdl.so.7()(64bit) liblzma.so.5()(64bit) liblzma.so.5(XZ_5.0)(64bit) libm.so.6()(64bit) libm.so.6(GLIBC_2.17)(64bit) libopenjp2.so.7()(64bit) libpango-1.0.so.0()(64bit) libpangocairo-1.0.so.0()(64bit) libpng16.so.16()(64bit) libpng16.so.16(PNG16_0)(64bit) libpthread.so.0()(64bit) libpthread.so.0(GLIBC_2.17)(64bit) librsvg-2.so.2()(64bit) libtiff.so.5()(64bit) libtiff.so.5(LIBTIFF_4.0)(64bit) libwebp.so.7()(64bit) libwebpdemux.so.2()(64bit) libwebpmux.so.3()(64bit) libwmflite-0.2.so.7()(64bit) libxml2.so.2()(64bit) libxml2.so.2(LIBXML2_2.4.30)(64bit) libxml2.so.2(LIBXML2_2.6.0)(64bit) libz.so.1()(64bit) rtld(GNU_HASH)' ImageMagick.spec.in
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#!/bin/bash -e
2+
sed -i '/AutoReq: no/a Requires: config(ImageMagick-libs) = 7.1.0-16 ld-linux-aarch64.so.1()(64bit) ld-linux-aarch64.so.1(GLIBC_2.17)(64bit) libHalf.so.12()(64bit) libICE.so.6()(64bit) libIex-2_2.so.12()(64bit) libIexMath-2_2.so.12()(64bit) libIlmImf-2_2.so.22()(64bit) libIlmThread-2_2.so.12()(64bit) libImath-2_2.so.12()(64bit) libSM.so.6()(64bit) libX11.so.6()(64bit) libXext.so.6()(64bit) libXt.so.6()(64bit) libbz2.so.1()(64bit) libc.so.6()(64bit) libc.so.6(GLIBC_2.17)(64bit) libcairo.so.2()(64bit) libfontconfig.so.1()(64bit) libfreetype.so.6()(64bit) libgcc_s.so.1()(64bit) libgcc_s.so.1(GCC_3.3.1)(64bit) libgdk_pixbuf-2.0.so.0()(64bit) libgio-2.0.so.0()(64bit) libglib-2.0.so.0()(64bit) libgobject-2.0.so.0()(64bit) libgomp.so.1()(64bit) libgomp.so.1(GOMP_1.0)(64bit) libgomp.so.1(GOMP_4.0)(64bit) libgomp.so.1(OMP_1.0)(64bit) libgomp.so.1(OMP_3.0)(64bit) libjbig.so.2.1()(64bit) libjpeg.so.62()(64bit) libjpeg.so.62(LIBJPEG_6.2)(64bit) liblcms2.so.2()(64bit) libltdl.so.7()(64bit) liblzma.so.5()(64bit) liblzma.so.5(XZ_5.0)(64bit) libm.so.6()(64bit) libm.so.6(GLIBC_2.17)(64bit) libopenjp2.so.7()(64bit) libpango-1.0.so.0()(64bit) libpangocairo-1.0.so.0()(64bit) libpng16.so.16()(64bit) libpng16.so.16(PNG16_0)(64bit) libpthread.so.0()(64bit) libpthread.so.0(GLIBC_2.17)(64bit) libraqm.so.0()(64bit) libraw_r.so.19()(64bit) librsvg-2.so.2()(64bit) libtiff.so.5()(64bit) libtiff.so.5(LIBTIFF_4.0)(64bit) libwebp.so.7()(64bit) libwebpdemux.so.2()(64bit) libwebpmux.so.3()(64bit) libwmflite-0.2.so.7()(64bit) libxml2.so.2()(64bit) libxml2.so.2(LIBXML2_2.4.30)(64bit) libxml2.so.2(LIBXML2_2.6.0)(64bit) libz.so.1()(64bit) rtld(GNU_HASH)' ImageMagick.spec.in

.github/workflows/build.yml

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,50 @@ jobs:
4444
maven-username: ${{ secrets.NEXUS_USERNAME }}
4545
maven-password: ${{ secrets.NEXUS_PASSWORD }}
4646

47+
build_rockylinux_arm64:
48+
name: Rocky 8 ARM64
49+
runs-on: ubuntu-latest
50+
steps:
51+
- name: Checkout
52+
uses: actions/checkout@v3
53+
- name: Set up QEMU
54+
uses: docker/setup-qemu-action@v2
55+
- name: Set up Docker Buildx
56+
uses: docker/setup-buildx-action@v2
57+
- name: Set build variables
58+
id: variables
59+
run: |
60+
echo "imagemagick_version=$(cat ./.github/actions/imagemagick-version)" >> $GITHUB_OUTPUT
61+
echo "imagemagick_release=$(cat ./.github/actions/release-version)" >> $GITHUB_OUTPUT
62+
- name: Build
63+
id: build
64+
uses: ./.github/actions/rockylinux-arm64-build
65+
with:
66+
args:
67+
"${{ steps.variables.outputs.imagemagick_version }}"
68+
- name: Test
69+
run: "rpm -qp --requires rpms/ImageMagick-libs-${{ steps.variables.outputs.imagemagick_version }}.aarch64.rpm | grep -qEv 'libcdt|libcgraph|libgvc|libgs|libMagickCore|libMagickWand'"
70+
- uses: actions/upload-artifact@v3
71+
with:
72+
name: rockylinux-arm64-rpms
73+
path: rpms/*.rpm
74+
- name: Deploy to nexus
75+
uses: Alfresco/alfresco-build-tools/.github/actions/maven-deploy-file@7b0536b4e403e95365d83695c9ab3119b885ce36
76+
if: startsWith(github.ref, 'refs/tags/v')
77+
with:
78+
group-id: org.imagemagick
79+
artifact-id: imagemagick-distribution
80+
repository-url: https://nexus.alfresco.com/nexus/content/repositories/thirdparty/
81+
version: ${{ steps.build.outputs.built-version }}-ci-${{ steps.variables.outputs.imagemagick_release }}
82+
generate-pom: false
83+
file: rpms/ImageMagick-${{ steps.build.outputs.built-version }}.aarch64.rpm
84+
classifier: arm64
85+
files: rpms/ImageMagick-libs-${{ steps.build.outputs.built-version }}.aarch64.rpm
86+
classifiers: arm64-libs
87+
types: rpm
88+
maven-username: ${{ secrets.NEXUS_USERNAME }}
89+
maven-password: ${{ secrets.NEXUS_PASSWORD }}
90+
4791
build_centoslinux:
4892
name: Centos 7
4993
runs-on: ubuntu-latest

0 commit comments

Comments
 (0)