On 1/19/21 8:41 AM, Thomas Huth wrote:
On 18/01/2021 11.33, Daniel P. Berrangé wrote:
On Mon, Jan 18, 2021 at 02:38:07PM +0800, Jiaxun Yang wrote:
Alpine Linux[1] is a security-oriented, lightweight Linux distribution
based on musl libc and busybox.
It it popular among Docker guests and embedded applications.
Adding it to test against different libc.
[1]: https://alpinelinux.org/
Signed-off-by: Jiaxun Yang <jiaxun.yang@xxxxxxxxxxx>
---
tests/docker/dockerfiles/alpine.docker | 57 ++++++++++++++++++++++++++
1 file changed, 57 insertions(+)
create mode 100644 tests/docker/dockerfiles/alpine.docker
diff --git a/tests/docker/dockerfiles/alpine.docker
b/tests/docker/dockerfiles/alpine.docker
new file mode 100644
index 0000000000..5be5198d00
--- /dev/null
+++ b/tests/docker/dockerfiles/alpine.docker
@@ -0,0 +1,57 @@
+
+FROM alpine:edge
+
+RUN apk update
+RUN apk upgrade
+
+# Please keep this list sorted alphabetically
+ENV PACKAGES \
+ alsa-lib-dev \
+ bash \
+ bison \
This shouldn't be required.
bison and flex were required to avoid some warnings in the past while
compiling the dtc submodule ... but I thought we got rid of the problem
at one point in time, so this can be removed now, indeed.
+ build-base \
This seems to be a meta packae that pulls in other
misc toolchain packages. Please list the pieces we
need explicitly instead.
Looking at the "Depends" list on
https://pkgs.alpinelinux.org/package/v3.3/main/x86/build-base there are
only 6 dependencies and we need most of those for QEMU anyway, so I
think it is ok to keep build-base here.
+ coreutils \
+ curl-dev \
+ flex \
This shouldn't be needed.
+ git \
+ glib-dev \
+ glib-static \
+ gnutls-dev \
+ gtk+3.0-dev \
+ libaio-dev \
+ libcap-dev \
Should not be required, as we use cap-ng.
Right.
+ libcap-ng-dev \
+ libjpeg-turbo-dev \
+ libnfs-dev \
+ libpng-dev \
+ libseccomp-dev \
+ libssh-dev \
+ libusb-dev \
+ libxml2-dev \
+ linux-headers \
Is this really needed ? We don't install kernel-headers on other
distros AFAICT.
I tried a build without this package, and it works fine indeed.
+ lzo-dev \
+ mesa-dev \
+ mesa-egl \
+ mesa-gbm \
+ meson \
+ ncurses-dev \
+ ninja \
+ paxmark \
What is this needed for ?
Seems like it also can be dropped.
+ perl \
+ pulseaudio-dev \
+ python3 \
+ py3-sphinx \
+ shadow \
Is this really needed ?
See:
https://www.spinics.net/lists/kvm/msg231556.html
I can remove the superfluous packages when picking up the patch, no need
to respin just because of this.
Thomas
You can refer to my post earlier this January for a "minimal" Alpine
Linux build, if you wish.
My goal was to find the smallest set of packages possible without
passing any explicit configure flags.
I wonder if it's worth having layered "core build" and "test build"
images so that we can smoke test the minimalistic build from time to
time -- I seem to recall Dan posting information about a dependency
management tool for Dockerfiles, but I admit I didn't look too closely
at what problem that solves, exactly.
--js