* [PATCH 1/6] Port containerise
2025-04-10 11:46 [PATCH TEST-ARTEFACTS v2 0/6] Cleanup and Linux ARM64 support Andrew Cooper
@ 2025-04-10 11:46 ` Andrew Cooper
2025-04-10 13:18 ` Anthony PERARD
2025-04-10 11:46 ` [PATCH 2/6] Clean up Gitlab yaml Andrew Cooper
` (4 subsequent siblings)
5 siblings, 1 reply; 13+ messages in thread
From: Andrew Cooper @ 2025-04-10 11:46 UTC (permalink / raw)
To: Xen-devel
Cc: Andrew Cooper, Roger Pau Monné, Stefano Stabellini,
Michal Orzel, Marek Marczykowski-Górecki, Anthony PERARD
While it pains me to keep the wrong spelling, do so for consistency.
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
CC: Anthony PERARD <anthony.perard@vates.tech>
v2:
* Switch back to alpine:x86_64-rootfs as the rename isn't in the series yet.
---
containerize | 94 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 94 insertions(+)
create mode 100755 containerize
diff --git a/containerize b/containerize
new file mode 100755
index 000000000000..fd488cc57596
--- /dev/null
+++ b/containerize
@@ -0,0 +1,94 @@
+#!/bin/bash
+
+#
+# DOCKER_CMD should be either `docker` or `podman`.
+#
+# if using (rootless) podman, remember to set /etc/subuid
+# and /etc/subgid.
+#
+docker_cmd=${DOCKER_CMD:-"docker"}
+[ "$DOCKER_CMD" = "podman" ] && userns_podman="--userns=keep-id" selinux=",z"
+
+einfo() {
+ echo "$*" >&2
+}
+
+die() {
+ echo "$*" >&2
+ exit 1
+}
+
+#
+# The caller is expected to override the CONTAINER environment
+# variable with the container they wish to launch.
+#
+BASE="registry.gitlab.com/xen-project/hardware/test-artifacts"
+case "_${CONTAINER}" in
+ _alpine-x86_64-rootfs) CONTAINER="${BASE}/alpine:x86_64-rootfs" ;;
+ _alpine-x86_64-build|_) CONTAINER="${BASE}/alpine:x86_64-build" ;;
+esac
+
+# Use this variable to control whether root should be used
+case "_${CONTAINER_UID0}" in
+ _1) userarg="-u 0" ;;
+ _0|_) userarg="-u $(id -u) $userns_podman" ;;
+esac
+
+# Save the commands for future use
+cmd=("$@")
+
+# If no command was specified, just drop us into a shell if we're interactive
+[ $# -eq 0 ] && tty -s && cmd=("/bin/bash")
+
+# Are we in an interactive terminal?
+tty -s && termint=t
+
+#
+# Fetch the latest version of the container in hub.docker.com,
+# unless it's a newly created local copy.
+#
+if [[ "_${CONTAINER_NO_PULL}" != "_1" ]]; then
+ einfo "*** Ensuring ${CONTAINER} is up to date"
+ ${docker_cmd} pull ${CONTAINER} > /dev/null || \
+ die "Failed to update container"
+fi
+
+if hash greadlink > /dev/null 2>&1; then
+ READLINK=greadlink
+elif [[ $(uname -s) == "Darwin" ]]; then
+ echo "Unable to forward SSH agent without coreutils installed"
+ unset SSH_AUTH_SOCK
+else
+ READLINK=readlink
+fi
+
+# Ensure we've got what we need for SSH_AUTH_SOCK
+if [[ -n ${SSH_AUTH_SOCK} ]]; then
+ fullpath_sock=$(${READLINK} -f ${SSH_AUTH_SOCK} 2> /dev/null)
+ if [ $? -ne 0 ]; then
+ echo "Invalid SSH_AUTH_SOCK: ${SSH_AUTH_SOCK}"
+ unset SSH_AUTH_SOCK
+ else
+ SSH_AUTH_DIR=$(dirname ${fullpath_sock})
+ SSH_AUTH_NAME=$(basename ${fullpath_sock})
+ fi
+fi
+
+# Figure out the base of what we want as our sources
+# by using the top of the git repo
+if [[ -z ${CONTAINER_PATH} ]]; then
+ CONTAINER_PATH=$(git rev-parse --show-toplevel)
+fi
+
+# Kick off Docker
+einfo "*** Launching container ..."
+exec ${docker_cmd} run \
+ ${userarg} \
+ ${SSH_AUTH_SOCK:+-e SSH_AUTH_SOCK="/tmp/ssh-agent/${SSH_AUTH_NAME}"} \
+ -v "${CONTAINER_PATH}":/build:rw${selinux} \
+ -v "${HOME}/.ssh":/root/.ssh:ro \
+ ${SSH_AUTH_DIR:+-v "${SSH_AUTH_DIR}":/tmp/ssh-agent${selinux}} \
+ ${CONTAINER_ARGS} \
+ -${termint}i --rm -- \
+ ${CONTAINER} \
+ "${cmd[@]}"
--
2.39.5
^ permalink raw reply related [flat|nested] 13+ messages in thread* Re: [PATCH 1/6] Port containerise
2025-04-10 11:46 ` [PATCH 1/6] Port containerise Andrew Cooper
@ 2025-04-10 13:18 ` Anthony PERARD
0 siblings, 0 replies; 13+ messages in thread
From: Anthony PERARD @ 2025-04-10 13:18 UTC (permalink / raw)
To: Andrew Cooper
Cc: Xen-devel, Roger Pau Monné, Stefano Stabellini, Michal Orzel,
Marek Marczykowski-Górecki
On Thu, Apr 10, 2025 at 12:46:23PM +0100, Andrew Cooper wrote:
> While it pains me to keep the wrong spelling, do so for consistency.
>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>
Thanks,
--
Anthony Perard | Vates XCP-ng Developer
XCP-ng & Xen Orchestra - Vates solutions
web: https://vates.tech
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 2/6] Clean up Gitlab yaml
2025-04-10 11:46 [PATCH TEST-ARTEFACTS v2 0/6] Cleanup and Linux ARM64 support Andrew Cooper
2025-04-10 11:46 ` [PATCH 1/6] Port containerise Andrew Cooper
@ 2025-04-10 11:46 ` Andrew Cooper
2025-04-10 12:25 ` Marek Marczykowski-Górecki
2025-04-10 13:20 ` Anthony PERARD
2025-04-10 11:46 ` [PATCH 3/6] Adjust Linux build script to work with other major versions Andrew Cooper
` (3 subsequent siblings)
5 siblings, 2 replies; 13+ messages in thread
From: Andrew Cooper @ 2025-04-10 11:46 UTC (permalink / raw)
To: Xen-devel
Cc: Andrew Cooper, Roger Pau Monné, Stefano Stabellini,
Michal Orzel, Marek Marczykowski-Górecki, Anthony PERARD
Factor out the registry into a common location. Drop the worflow name, as all
it does is hide the commit message of the change that triggered the pipeline.
List all the stages. Set a default expiry of 1 month.
Note all the current jobs as legacy. Their naming scheme needs changing, and
we'll use this opportunity to switch formats too. However, the artefacts need
to stay using the old name until the final staging-* branch using them is
phased out.
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
CC: Anthony PERARD <anthony.perard@vates.tech>
v2:
* Drop the workflow name.
---
.gitlab-ci.yml | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 36ec6a7e1ee5..734f3982c46f 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,12 +1,16 @@
-workflow:
- name: "xen test artifacts"
+variables:
+ REGISTRY: registry.gitlab.com/xen-project/hardware/test-artifacts
+
+stages:
+ - build
.artifacts:
stage: build
image:
- name: registry.gitlab.com/xen-project/hardware/test-artifacts/${CONTAINER}
+ name: ${REGISTRY}/${CONTAINER}
artifacts:
name: "${CI_JOB_NAME_SLUG}"
+ expire_in: 1 month
paths:
- binaries/
exclude:
@@ -19,6 +23,9 @@ workflow:
variables:
CONTAINER: alpine:x86_64-build
+#
+# The jobs below here are legacy and being phased out.
+#
x86_64-kernel-linux-6.6.56:
extends: .x86_64-artifacts
script:
--
2.39.5
^ permalink raw reply related [flat|nested] 13+ messages in thread* Re: [PATCH 2/6] Clean up Gitlab yaml
2025-04-10 11:46 ` [PATCH 2/6] Clean up Gitlab yaml Andrew Cooper
@ 2025-04-10 12:25 ` Marek Marczykowski-Górecki
2025-04-10 13:20 ` Anthony PERARD
1 sibling, 0 replies; 13+ messages in thread
From: Marek Marczykowski-Górecki @ 2025-04-10 12:25 UTC (permalink / raw)
To: Andrew Cooper
Cc: Xen-devel, Roger Pau Monné, Stefano Stabellini, Michal Orzel,
Anthony PERARD
[-- Attachment #1: Type: text/plain, Size: 2068 bytes --]
On Thu, Apr 10, 2025 at 12:46:24PM +0100, Andrew Cooper wrote:
> Factor out the registry into a common location. Drop the worflow name, as all
> it does is hide the commit message of the change that triggered the pipeline.
> List all the stages. Set a default expiry of 1 month.
>
> Note all the current jobs as legacy. Their naming scheme needs changing, and
> we'll use this opportunity to switch formats too. However, the artefacts need
> to stay using the old name until the final staging-* branch using them is
> phased out.
>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
> ---
> CC: Roger Pau Monné <roger.pau@citrix.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Michal Orzel <michal.orzel@amd.com>
> CC: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
> CC: Anthony PERARD <anthony.perard@vates.tech>
>
> v2:
> * Drop the workflow name.
> ---
> .gitlab-ci.yml | 13 ++++++++++---
> 1 file changed, 10 insertions(+), 3 deletions(-)
>
> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> index 36ec6a7e1ee5..734f3982c46f 100644
> --- a/.gitlab-ci.yml
> +++ b/.gitlab-ci.yml
> @@ -1,12 +1,16 @@
> -workflow:
> - name: "xen test artifacts"
> +variables:
> + REGISTRY: registry.gitlab.com/xen-project/hardware/test-artifacts
> +
> +stages:
> + - build
>
> .artifacts:
> stage: build
> image:
> - name: registry.gitlab.com/xen-project/hardware/test-artifacts/${CONTAINER}
> + name: ${REGISTRY}/${CONTAINER}
> artifacts:
> name: "${CI_JOB_NAME_SLUG}"
> + expire_in: 1 month
> paths:
> - binaries/
> exclude:
> @@ -19,6 +23,9 @@ workflow:
> variables:
> CONTAINER: alpine:x86_64-build
>
> +#
> +# The jobs below here are legacy and being phased out.
> +#
> x86_64-kernel-linux-6.6.56:
> extends: .x86_64-artifacts
> script:
> --
> 2.39.5
>
--
Best Regards,
Marek Marczykowski-Górecki
Invisible Things Lab
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread* Re: [PATCH 2/6] Clean up Gitlab yaml
2025-04-10 11:46 ` [PATCH 2/6] Clean up Gitlab yaml Andrew Cooper
2025-04-10 12:25 ` Marek Marczykowski-Górecki
@ 2025-04-10 13:20 ` Anthony PERARD
1 sibling, 0 replies; 13+ messages in thread
From: Anthony PERARD @ 2025-04-10 13:20 UTC (permalink / raw)
To: Andrew Cooper
Cc: Xen-devel, Roger Pau Monné, Stefano Stabellini, Michal Orzel,
Marek Marczykowski-Górecki
On Thu, Apr 10, 2025 at 12:46:24PM +0100, Andrew Cooper wrote:
> Factor out the registry into a common location. Drop the worflow name, as all
> it does is hide the commit message of the change that triggered the pipeline.
> List all the stages. Set a default expiry of 1 month.
>
> Note all the current jobs as legacy. Their naming scheme needs changing, and
> we'll use this opportunity to switch formats too. However, the artefacts need
> to stay using the old name until the final staging-* branch using them is
> phased out.
>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>
Thanks,
--
Anthony Perard | Vates XCP-ng Developer
XCP-ng & Xen Orchestra - Vates solutions
web: https://vates.tech
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 3/6] Adjust Linux build script to work with other major versions
2025-04-10 11:46 [PATCH TEST-ARTEFACTS v2 0/6] Cleanup and Linux ARM64 support Andrew Cooper
2025-04-10 11:46 ` [PATCH 1/6] Port containerise Andrew Cooper
2025-04-10 11:46 ` [PATCH 2/6] Clean up Gitlab yaml Andrew Cooper
@ 2025-04-10 11:46 ` Andrew Cooper
2025-04-10 12:09 ` Marek Marczykowski-Górecki
2025-04-10 11:46 ` [PATCH 4/6] Factor our x86-isms in the linux build script Andrew Cooper
` (2 subsequent siblings)
5 siblings, 1 reply; 13+ messages in thread
From: Andrew Cooper @ 2025-04-10 11:46 UTC (permalink / raw)
To: Xen-devel
Cc: Andrew Cooper, Roger Pau Monné, Stefano Stabellini,
Michal Orzel, Marek Marczykowski-Górecki, Anthony PERARD
Simply the tar expression, as 'tar xf' can figure out the compression
automatically.
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
CC: Anthony PERARD <anthony.perard@vates.tech>
v2:
* Use 'tar xf'
---
scripts/x86_64-kernel-linux.sh | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/scripts/x86_64-kernel-linux.sh b/scripts/x86_64-kernel-linux.sh
index 2a816f0b3204..5ed5608628bc 100755
--- a/scripts/x86_64-kernel-linux.sh
+++ b/scripts/x86_64-kernel-linux.sh
@@ -11,9 +11,10 @@ WORKDIR="${PWD}"
COPYDIR="${WORKDIR}/binaries/"
# Build Linux
+MAJOR=${LINUX_VERSION%%.*}
curl -fsSLO \
- https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-"${LINUX_VERSION}".tar.xz
-tar xJf linux-"${LINUX_VERSION}".tar.xz
+ https://cdn.kernel.org/pub/linux/kernel/v"${MAJOR}".x/linux-"${LINUX_VERSION}".tar.xz
+tar xf linux-"${LINUX_VERSION}".tar.xz
cd linux-"${LINUX_VERSION}"
make ARCH=x86 defconfig
make ARCH=x86 xen.config
--
2.39.5
^ permalink raw reply related [flat|nested] 13+ messages in thread* Re: [PATCH 3/6] Adjust Linux build script to work with other major versions
2025-04-10 11:46 ` [PATCH 3/6] Adjust Linux build script to work with other major versions Andrew Cooper
@ 2025-04-10 12:09 ` Marek Marczykowski-Górecki
0 siblings, 0 replies; 13+ messages in thread
From: Marek Marczykowski-Górecki @ 2025-04-10 12:09 UTC (permalink / raw)
To: Andrew Cooper
Cc: Xen-devel, Roger Pau Monné, Stefano Stabellini, Michal Orzel,
Anthony PERARD
[-- Attachment #1: Type: text/plain, Size: 1502 bytes --]
On Thu, Apr 10, 2025 at 12:46:25PM +0100, Andrew Cooper wrote:
> Simply the tar expression, as 'tar xf' can figure out the compression
> automatically.
>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
> ---
> CC: Roger Pau Monné <roger.pau@citrix.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Michal Orzel <michal.orzel@amd.com>
> CC: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
> CC: Anthony PERARD <anthony.perard@vates.tech>
>
> v2:
> * Use 'tar xf'
> ---
> scripts/x86_64-kernel-linux.sh | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/scripts/x86_64-kernel-linux.sh b/scripts/x86_64-kernel-linux.sh
> index 2a816f0b3204..5ed5608628bc 100755
> --- a/scripts/x86_64-kernel-linux.sh
> +++ b/scripts/x86_64-kernel-linux.sh
> @@ -11,9 +11,10 @@ WORKDIR="${PWD}"
> COPYDIR="${WORKDIR}/binaries/"
>
> # Build Linux
> +MAJOR=${LINUX_VERSION%%.*}
> curl -fsSLO \
> - https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-"${LINUX_VERSION}".tar.xz
> -tar xJf linux-"${LINUX_VERSION}".tar.xz
> + https://cdn.kernel.org/pub/linux/kernel/v"${MAJOR}".x/linux-"${LINUX_VERSION}".tar.xz
> +tar xf linux-"${LINUX_VERSION}".tar.xz
> cd linux-"${LINUX_VERSION}"
> make ARCH=x86 defconfig
> make ARCH=x86 xen.config
> --
> 2.39.5
>
--
Best Regards,
Marek Marczykowski-Górecki
Invisible Things Lab
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 4/6] Factor our x86-isms in the linux build script
2025-04-10 11:46 [PATCH TEST-ARTEFACTS v2 0/6] Cleanup and Linux ARM64 support Andrew Cooper
` (2 preceding siblings ...)
2025-04-10 11:46 ` [PATCH 3/6] Adjust Linux build script to work with other major versions Andrew Cooper
@ 2025-04-10 11:46 ` Andrew Cooper
2025-04-10 11:46 ` [PATCH 5/6] Infrastructure for arm64 linux builds Andrew Cooper
2025-04-10 11:46 ` [PATCH 6/6] Linux builds for x86 and ARM64 Andrew Cooper
5 siblings, 0 replies; 13+ messages in thread
From: Andrew Cooper @ 2025-04-10 11:46 UTC (permalink / raw)
To: Xen-devel
Cc: Andrew Cooper, Marek Marczykowski-Górecki,
Roger Pau Monné, Stefano Stabellini, Michal Orzel,
Anthony PERARD
... in preparation to use it for arm64 too. Rename the script.
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
CC: Anthony PERARD <anthony.perard@vates.tech>
---
.gitlab-ci.yml | 3 +-
...{x86_64-kernel-linux.sh => build-linux.sh} | 34 +++++++++++++------
2 files changed, 24 insertions(+), 13 deletions(-)
rename scripts/{x86_64-kernel-linux.sh => build-linux.sh} (55%)
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 734f3982c46f..a8e56b165ed6 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -28,8 +28,7 @@ stages:
#
x86_64-kernel-linux-6.6.56:
extends: .x86_64-artifacts
- script:
- - . scripts/x86_64-kernel-linux.sh
+ script: ./scripts/build-linux.sh
variables:
LINUX_VERSION: 6.6.56
diff --git a/scripts/x86_64-kernel-linux.sh b/scripts/build-linux.sh
similarity index 55%
rename from scripts/x86_64-kernel-linux.sh
rename to scripts/build-linux.sh
index 5ed5608628bc..c78cd6ca46da 100755
--- a/scripts/x86_64-kernel-linux.sh
+++ b/scripts/build-linux.sh
@@ -9,6 +9,7 @@ set -ex -o pipefail
WORKDIR="${PWD}"
COPYDIR="${WORKDIR}/binaries/"
+UNAME=$(uname -m)
# Build Linux
MAJOR=${LINUX_VERSION%%.*}
@@ -16,17 +17,28 @@ curl -fsSLO \
https://cdn.kernel.org/pub/linux/kernel/v"${MAJOR}".x/linux-"${LINUX_VERSION}".tar.xz
tar xf linux-"${LINUX_VERSION}".tar.xz
cd linux-"${LINUX_VERSION}"
-make ARCH=x86 defconfig
-make ARCH=x86 xen.config
+
+make defconfig
./scripts/config --enable BRIDGE
./scripts/config --enable IGC
./scripts/config --enable TUN
-cp .config .config.orig
-cat .config.orig \
- | grep 'XEN' \
- | grep '=m' \
- | sed 's/=m/=y/g' \
- >> .config
-make ARCH=x86 olddefconfig
-make -s -j "$(nproc)" ARCH=x86
-cp arch/x86/boot/bzImage "${COPYDIR}"
+
+case $UNAME in
+ x86_64)
+ make xen.config
+ cp .config .config.orig
+ cat .config.orig \
+ | grep 'XEN' \
+ | grep '=m' \
+ | sed 's/=m/=y/g' >> .config
+ ;;
+esac
+
+make olddefconfig
+
+case $UNAME in
+ x86_64)
+ make -j$(nproc) bzImage
+ cp arch/x86/boot/bzImage "${COPYDIR}"
+ ;;
+esac
--
2.39.5
^ permalink raw reply related [flat|nested] 13+ messages in thread* [PATCH 5/6] Infrastructure for arm64 linux builds
2025-04-10 11:46 [PATCH TEST-ARTEFACTS v2 0/6] Cleanup and Linux ARM64 support Andrew Cooper
` (3 preceding siblings ...)
2025-04-10 11:46 ` [PATCH 4/6] Factor our x86-isms in the linux build script Andrew Cooper
@ 2025-04-10 11:46 ` Andrew Cooper
[not found] ` <Z_fM44HXEnpwa8q6@l14>
2025-04-10 11:46 ` [PATCH 6/6] Linux builds for x86 and ARM64 Andrew Cooper
5 siblings, 1 reply; 13+ messages in thread
From: Andrew Cooper @ 2025-04-10 11:46 UTC (permalink / raw)
To: Xen-devel
Cc: Andrew Cooper, Roger Pau Monné, Stefano Stabellini,
Michal Orzel, Marek Marczykowski-Górecki, Anthony PERARD
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
CC: Anthony PERARD <anthony.perard@vates.tech>
v2:
* Drop musl-dev. It's brought in by build-base.
* Include findutils to fix build warnings.
---
.gitlab-ci.yml | 7 ++++++
containerize | 1 +
images/alpine/3.18-arm64-build.dockerfile | 27 +++++++++++++++++++++++
scripts/build-linux.sh | 10 +++++++++
4 files changed, 45 insertions(+)
create mode 100644 images/alpine/3.18-arm64-build.dockerfile
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index a8e56b165ed6..6faa85d8dd7c 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -16,6 +16,13 @@ stages:
exclude:
- binaries/.gitignore
+.arm64-artifacts:
+ extends: .artifacts
+ tags:
+ - arm64
+ variables:
+ CONTAINER: alpine:3.18-arm64-build
+
.x86_64-artifacts:
extends: .artifacts
tags:
diff --git a/containerize b/containerize
index fd488cc57596..7abeb119ff6a 100755
--- a/containerize
+++ b/containerize
@@ -24,6 +24,7 @@ die() {
#
BASE="registry.gitlab.com/xen-project/hardware/test-artifacts"
case "_${CONTAINER}" in
+ _alpine-3.18-arm64-build) CONTAINER="${BASE}/alpine:3.18-arm64-build" ;;
_alpine-x86_64-rootfs) CONTAINER="${BASE}/alpine:x86_64-rootfs" ;;
_alpine-x86_64-build|_) CONTAINER="${BASE}/alpine:x86_64-build" ;;
esac
diff --git a/images/alpine/3.18-arm64-build.dockerfile b/images/alpine/3.18-arm64-build.dockerfile
new file mode 100644
index 000000000000..b6d9bd1af531
--- /dev/null
+++ b/images/alpine/3.18-arm64-build.dockerfile
@@ -0,0 +1,27 @@
+# syntax=docker/dockerfile:1
+FROM --platform=linux/arm64/v8 alpine:3.18
+LABEL maintainer.name="The Xen Project" \
+ maintainer.email="xen-devel@lists.xenproject.org"
+
+RUN apk --no-cache add bash
+
+RUN bash -ex <<EOF
+ adduser -D user --shell bash
+
+ DEPS=(# Base environment
+ build-base
+ curl
+
+ # Linux build deps
+ bison
+ findutils
+ flex
+ openssl-dev
+ perl
+ )
+
+ apk add --no-cache "\${DEPS[@]}"
+EOF
+
+USER user
+WORKDIR /build
diff --git a/scripts/build-linux.sh b/scripts/build-linux.sh
index c78cd6ca46da..652fdba7b9d1 100755
--- a/scripts/build-linux.sh
+++ b/scripts/build-linux.sh
@@ -21,6 +21,7 @@ cd linux-"${LINUX_VERSION}"
make defconfig
./scripts/config --enable BRIDGE
./scripts/config --enable IGC
+./scripts/config --enable IPV6
./scripts/config --enable TUN
case $UNAME in
@@ -32,6 +33,10 @@ case $UNAME in
| grep '=m' \
| sed 's/=m/=y/g' >> .config
;;
+
+ aarch64)
+ ./scripts/config --enable XEN_NETDEV_BACKEND
+ ;;
esac
make olddefconfig
@@ -41,4 +46,9 @@ case $UNAME in
make -j$(nproc) bzImage
cp arch/x86/boot/bzImage "${COPYDIR}"
;;
+
+ aarch64)
+ make -j$(nproc) Image
+ cp arch/arm64/boot/Image "${COPYDIR}"
+ ;;
esac
--
2.39.5
^ permalink raw reply related [flat|nested] 13+ messages in thread* [PATCH 6/6] Linux builds for x86 and ARM64
2025-04-10 11:46 [PATCH TEST-ARTEFACTS v2 0/6] Cleanup and Linux ARM64 support Andrew Cooper
` (4 preceding siblings ...)
2025-04-10 11:46 ` [PATCH 5/6] Infrastructure for arm64 linux builds Andrew Cooper
@ 2025-04-10 11:46 ` Andrew Cooper
2025-04-10 14:03 ` Anthony PERARD
5 siblings, 1 reply; 13+ messages in thread
From: Andrew Cooper @ 2025-04-10 11:46 UTC (permalink / raw)
To: Xen-devel
Cc: Andrew Cooper, Roger Pau Monné, Stefano Stabellini,
Michal Orzel, Marek Marczykowski-Górecki, Anthony PERARD
For ARM64, the tests in Xen currently use 6.6.74, but 6.6.86 works so update
to the latest.
For x86, stay at 6.6.56. There's a PVH regression upstream in need of fixing.
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Michal Orzel <michal.orzel@amd.com>
CC: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
CC: Anthony PERARD <anthony.perard@vates.tech>
v2:
* Move x86 back to 6.6.56 until the PVH regression is fixed.
---
.gitlab-ci.yml | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 6faa85d8dd7c..670f9621e26d 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -30,6 +30,24 @@ stages:
variables:
CONTAINER: alpine:x86_64-build
+#
+# ARM64 artifacts
+#
+linux-6.6.86-arm64:
+ extends: .arm64-artifacts
+ script: ./scripts/build-linux.sh
+ variables:
+ LINUX_VERSION: 6.6.86
+
+#
+# x86_64 artifacts
+#
+linux-6.6.56-x86_64:
+ extends: .x86_64-artifacts
+ script: ./scripts/build-linux.sh
+ variables:
+ LINUX_VERSION: 6.6.56
+
#
# The jobs below here are legacy and being phased out.
#
--
2.39.5
^ permalink raw reply related [flat|nested] 13+ messages in thread* Re: [PATCH 6/6] Linux builds for x86 and ARM64
2025-04-10 11:46 ` [PATCH 6/6] Linux builds for x86 and ARM64 Andrew Cooper
@ 2025-04-10 14:03 ` Anthony PERARD
0 siblings, 0 replies; 13+ messages in thread
From: Anthony PERARD @ 2025-04-10 14:03 UTC (permalink / raw)
To: Andrew Cooper
Cc: Xen-devel, Roger Pau Monné, Stefano Stabellini, Michal Orzel,
Marek Marczykowski-Górecki
On Thu, Apr 10, 2025 at 12:46:28PM +0100, Andrew Cooper wrote:
> For ARM64, the tests in Xen currently use 6.6.74, but 6.6.86 works so update
> to the latest.
>
> For x86, stay at 6.6.56. There's a PVH regression upstream in need of fixing.
>
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Anthony PERARD <anthony.perard@vates.tech>
Thanks,
--
Anthony Perard | Vates XCP-ng Developer
XCP-ng & Xen Orchestra - Vates solutions
web: https://vates.tech
^ permalink raw reply [flat|nested] 13+ messages in thread