Skip to content

Commit

Permalink
feat: qemu 6.0.0-1
Browse files Browse the repository at this point in the history
  • Loading branch information
Sergei Kuvakin authored and lafin committed Jul 21, 2021
1 parent 3f5929a commit 0042fea
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 28 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/actions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ jobs:
qemu-user-static:
runs-on: ubuntu-latest
env:
VERSION: 5.2.0-11
ORIGIN_VERSION: 5.2+dfsg-11
VERSION: 6.0.0-1
ORIGIN_VERSION: 6.0+dfsg-1~exp0
steps:
- uses: actions/checkout@v2
- name: Set variables
Expand Down
2 changes: 1 addition & 1 deletion containers/latest/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
FROM busybox
ENV QEMU_BIN_DIR=/usr/bin
ADD ./register.sh /register
ADD https://raw.githubusercontent.com/qemu/qemu/7c81570d932268a9626457a662f1c5046ebc455e/scripts/qemu-binfmt-conf.sh /qemu-binfmt-conf.sh
ADD https://raw.githubusercontent.com/qemu/qemu/e75941331e4cdc05878119e08635ace437aae721/scripts/qemu-binfmt-conf.sh /qemu-binfmt-conf.sh
RUN chmod +x /qemu-binfmt-conf.sh
COPY qemu-*-static /usr/bin/
ENTRYPOINT ["/register"]
54 changes: 29 additions & 25 deletions run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -19,47 +19,51 @@ shift $((OPTIND-1))

[ "$1" = "--" ] && shift

base_path=$(pwd)
cd releases/usr/bin/
for file in *; do
tar -czf $file.tar.gz $file;
mv $file.tar.gz x86_64_$file.tar.gz
done
cd ${base_path}

from_arch="x86_64"
to_archs="aarch64 aarch64_be alpha arm armeb cris hppa i386 m68k microblaze microblazeel mips mips64 mips64el mipsel mipsn32 mipsn32el nios2 or1k ppc ppc64 ppc64le riscv32 riscv64 s390x sh4 sh4eb sparc sparc32plus sparc64 x86_64 xtensa xtensaeb"

# Build container images creating the directory.
# containers/
# latest/ - An image including /usr/bin/qemu-$arch-status and /register script.
# ${from_arch}_qemu-${to_arch}/ - Images including /usr/bin/qemu-$arch-status
# register/ - An image including /register script.

from_arch="x86_64"
root_dir=$(pwd)
out_dir="containers"
releases_dir="releases/usr/bin/"

cd ${releases_dir}
for file in *; do
tar -czf $file.tar.gz $file;
mv $file.tar.gz x86_64_$file.tar.gz
done
cd ${root_dir}

# Generate register files.
cp -p "${out_dir}/latest/register.sh" "${out_dir}/register/"
cp -p "${out_dir}/latest/Dockerfile" "${out_dir}/register/"
# Comment out the line to copy qemu-*-static not to provide those.
sed -i '/^COPY qemu/ s/^/#/' "${out_dir}/register/Dockerfile"

for to_arch in $to_archs; do
if [ "$from_arch" != "$to_arch" ]; then
work_dir="${out_dir}/${from_arch}_qemu-${to_arch}"
mkdir -p "${work_dir}"
cp -p "releases/usr/bin/qemu-${to_arch}-static" ${work_dir}
cp -p "${work_dir}/qemu-${to_arch}-static" "${out_dir}/latest/"
cat > ${work_dir}/Dockerfile -<<EOF
for file in ${releases_dir}*
do
if [[ $file =~ qemu-(.+)-static ]]; then
to_arch=${BASH_REMATCH[1]}
if [ "$from_arch" != "$to_arch" ]; then
work_dir="${out_dir}/${from_arch}_qemu-${to_arch}"
mkdir -p "${work_dir}"
cp -p "${releases_dir}qemu-${to_arch}-static" ${work_dir}
cp -p "${work_dir}/qemu-${to_arch}-static" "${out_dir}/latest/"
cat > ${work_dir}/Dockerfile -<<EOF
FROM scratch
COPY qemu-${to_arch}-static /usr/bin/
EOF
docker build -t ${DOCKER_REPO}:$from_arch-$to_arch-${TAG_VER} ${work_dir}
for target in "${DOCKER_REPO}:$from_arch-$to_arch" \
"${DOCKER_REPO}:$to_arch-${TAG_VER}" \
"${DOCKER_REPO}:$to_arch" ; do
docker tag ${DOCKER_REPO}:$from_arch-$to_arch-${TAG_VER} ${target}
done
rm -rf "${work_dir}"
docker build -t ${DOCKER_REPO}:$from_arch-$to_arch-${TAG_VER} ${work_dir}
for target in "${DOCKER_REPO}:$from_arch-$to_arch" \
"${DOCKER_REPO}:$to_arch-${TAG_VER}" \
"${DOCKER_REPO}:$to_arch" ; do
docker tag ${DOCKER_REPO}:$from_arch-$to_arch-${TAG_VER} ${target}
done
rm -rf "${work_dir}"
fi
fi
done

Expand Down

0 comments on commit 0042fea

Please sign in to comment.