Message ID | 20170724182751.18261-35-f4bug@amsat.org |
---|---|
State | New |
Headers | show |
Philippe Mathieu-Daudé <f4bug@amsat.org> writes: > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > --- > .../docker/dockerfiles/debian-bleeding-dev.docker | 94 ++++++++++++++++++++++ > 1 file changed, 94 insertions(+) > create mode 100644 tests/docker/dockerfiles/debian-bleeding-dev.docker > > diff --git a/tests/docker/dockerfiles/debian-bleeding-dev.docker b/tests/docker/dockerfiles/debian-bleeding-dev.docker > new file mode 100644 > index 0000000000..d6ae20692c > --- /dev/null > +++ b/tests/docker/dockerfiles/debian-bleeding-dev.docker > @@ -0,0 +1,94 @@ > +# > +# Docker x86_64 bleeding image > +# > +# This docker target builds on the debian unstable base image. Further > +# libraries which are not widely available are installed by hand. > +# Not for 2.10 please. > +FROM debian:unstable > + > +MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org> > + > +RUN echo 'Acquire::ForceIPv4 "true";' >> /etc/apt/apt.conf.d/01network > + > +# Duplicate deb line as deb-src > +RUN cat /etc/apt/sources.list | sed "s/^deb\ /deb-src /" >> /etc/apt/sources.list > + > +# Install common build utilities > +RUN apt-get update && \ > + DEBIAN_FRONTEND=noninteractive apt-get install -yy eatmydata > +RUN DEBIAN_FRONTEND=noninteractive eatmydata \ > + apt-get install -y --no-install-recommends \ > + bison \ > + build-essential \ > + ca-certificates \ > + ccache \ > + flex \ > + git \ > + less \ > + pkg-config \ > + psmisc \ > + python \ > + texinfo \ > + $(apt-get -s build-dep qemu | egrep ^Inst | fgrep '[all]' | cut -d\ -f2) > + > +RUN DEBIAN_FRONTEND=noninteractive eatmydata \ > + apt-get install -y --no-install-recommends \ > + binutils-multiarch \ > + gdb-multiarch \ > + libnewlib-dev \ > + musl-dev \ > + uclibc-source > + > +############################################################################ > +# GCC 7 > + > +RUN echo deb http://httpredir.debian.org/debian experimental main >> \ > + /etc/apt/sources.list.d/experimental.list && apt-get update > +RUN DEBIAN_FRONTEND=noninteractive eatmydata \ > + apt-get install -y --no-install-recommends \ > + gcc-7 \ > + gcc-7-cross-base-ports \ > + gcc-7-multilib \ > + g++-7 > + > +############################################################################ > +# Clang 5 > + > +RUN DEBIAN_FRONTEND=noninteractive eatmydata \ > + apt-get install -y --no-install-recommends \ > + curl gnupg > +RUN curl http://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - && \ > + echo 'deb http://apt.llvm.org/unstable/ llvm-toolchain main' \ > + > /etc/apt/sources.list.d/llvm.list && \ > + apt-get update > +RUN DEBIAN_FRONTEND=noninteractive eatmydata \ > + apt-get install -y --no-install-recommends \ > + clang-5.0 \ > + lldb-5.0 \ > + llvm-5.0 && \ > + test -x /usr/bin/clang || ln -s clang-5.0 /usr/bin/clang > + > +############################################################################ > +# QEMU specific starts here > + > +RUN DEBIAN_FRONTEND=noninteractive eatmydata \ > + apt-get build-dep -yy qemu > + > +RUN DEBIAN_FRONTEND=noninteractive eatmydata \ > + apt-get install -y --no-install-recommends \ > + libbz2-dev \ > + liblzo2-dev \ > + librdmacm-dev \ > + libsnappy-dev \ > + libvte-dev > + > +# virgl > +RUN DEBIAN_FRONTEND=noninteractive eatmydata \ > + apt-get install -y --no-install-recommends \ > + libegl1-mesa-dev \ > + libepoxy-dev \ > + libgbm-dev > +RUN git clone git://anongit.freedesktop.org/virglrenderer /usr/src/virglrenderer > +RUN cd /usr/src/virglrenderer && ./autogen.sh && ./configure > --with-glx --disable-tests && make install There are a lot of moving parts basing this in debian unstable and compiling extra bleeding edge stuff. What does this buy that the clang and toolchain builds in Travis don't already cover? > + > +ENV QEMU_CONFIGURE_OPTS --host-cc=clang-5.0 --cc=clang-5.0 --cxx=clang++-5.0 -- Alex Bennée
On Tue, Jul 25, 2017 at 03:15:07PM +0100, Alex Bennée wrote: > > Philippe Mathieu-Daudé <f4bug@amsat.org> writes: > > > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > > --- > > .../docker/dockerfiles/debian-bleeding-dev.docker | 94 ++++++++++++++++++++++ > > 1 file changed, 94 insertions(+) > > create mode 100644 tests/docker/dockerfiles/debian-bleeding-dev.docker > > > > diff --git a/tests/docker/dockerfiles/debian-bleeding-dev.docker b/tests/docker/dockerfiles/debian-bleeding-dev.docker > > new file mode 100644 > > index 0000000000..d6ae20692c > > --- /dev/null > > +++ b/tests/docker/dockerfiles/debian-bleeding-dev.docker > > +RUN git clone git://anongit.freedesktop.org/virglrenderer /usr/src/virglrenderer > > +RUN cd /usr/src/virglrenderer && ./autogen.sh && ./configure > > --with-glx --disable-tests && make install > > There are a lot of moving parts basing this in debian unstable and > compiling extra bleeding edge stuff. What does this buy that the clang > and toolchain builds in Travis don't already cover? FWIW, the clang version in Travis is somewhat old compared to the version that Peter uses during merge testing. I recently had a pull request that passed travis tests, but failed with modern clang. Doesn't neccessarily mean we need debian bleeding edge though - a Fedora 26 image would have detected that since it has new clang. Regards, Daniel
Daniel P. Berrange <berrange@redhat.com> writes: > On Tue, Jul 25, 2017 at 03:15:07PM +0100, Alex Bennée wrote: >> >> Philippe Mathieu-Daudé <f4bug@amsat.org> writes: >> >> > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> >> > --- >> > .../docker/dockerfiles/debian-bleeding-dev.docker | 94 ++++++++++++++++++++++ >> > 1 file changed, 94 insertions(+) >> > create mode 100644 tests/docker/dockerfiles/debian-bleeding-dev.docker >> > >> > diff --git a/tests/docker/dockerfiles/debian-bleeding-dev.docker b/tests/docker/dockerfiles/debian-bleeding-dev.docker >> > new file mode 100644 >> > index 0000000000..d6ae20692c >> > --- /dev/null >> > +++ b/tests/docker/dockerfiles/debian-bleeding-dev.docker > > >> > +RUN git clone git://anongit.freedesktop.org/virglrenderer /usr/src/virglrenderer >> > +RUN cd /usr/src/virglrenderer && ./autogen.sh && ./configure >> > --with-glx --disable-tests && make install >> >> There are a lot of moving parts basing this in debian unstable and >> compiling extra bleeding edge stuff. What does this buy that the clang >> and toolchain builds in Travis don't already cover? > > FWIW, the clang version in Travis is somewhat old compared to the version > that Peter uses during merge testing. I recently had a pull request that > passed travis tests, but failed with modern clang. > > Doesn't neccessarily mean we need debian bleeding edge though - a Fedora > 26 image would have detected that since it has new clang. Yeah I think from a compiler testing point of view it would be nice to have two images, one for latest clang, one for latest gcc that are pre-set up to build with them for QEMU_CONFIGURE_OPTS. I'd rather those on a stable base distro than taking a potshot on the status of a rolling distro on any given day. The virgl and other tip of tree installs are done once and probably don't need repeating in other trees. -- Alex Bennée
On 07/25/2017 11:15 AM, Alex Bennée wrote: >> +++ b/tests/docker/dockerfiles/debian-bleeding-dev.docker >> @@ -0,0 +1,94 @@ >> +# >> +# Docker x86_64 bleeding image >> +# >> +# This docker target builds on the debian unstable base image. Further >> +# libraries which are not widely available are installed by hand. >> +# > > Not for 2.10 please. Surely not ;) Also unlikely to get merged in mainline... [...] > There are a lot of moving parts basing this in debian unstable and > compiling extra bleeding edge stuff. What does this buy that the clang > and toolchain builds in Travis don't already cover? Bleeding is bleeding :) This is an implicit No Warranty clause... It might trigger something useful or give you slow death. https://wiki.debian.org/DebianUnstable "If you are a hardcore developer or tester you should use this release." https://www.debian.org/doc/manuals/securing-debian-howto/ch10.en.html#s10.1.3 "you should not use Debian's unstable branch for production-level systems"
Philippe Mathieu-Daudé <f4bug@amsat.org> writes: > On 07/25/2017 11:15 AM, Alex Bennée wrote: >>> +++ b/tests/docker/dockerfiles/debian-bleeding-dev.docker >>> @@ -0,0 +1,94 @@ >>> +# >>> +# Docker x86_64 bleeding image >>> +# >>> +# This docker target builds on the debian unstable base image. Further >>> +# libraries which are not widely available are installed by hand. >>> +# >> >> Not for 2.10 please. > > Surely not ;) Also unlikely to get merged in mainline... > > [...] >> There are a lot of moving parts basing this in debian unstable and >> compiling extra bleeding edge stuff. What does this buy that the clang >> and toolchain builds in Travis don't already cover? > > Bleeding is bleeding :) This is an implicit No Warranty clause... > It might trigger something useful or give you slow death. > > https://wiki.debian.org/DebianUnstable > "If you are a hardcore developer or tester you should use this release." > > https://www.debian.org/doc/manuals/securing-debian-howto/ch10.en.html#s10.1.3 > "you should not use Debian's unstable branch for production-level systems" Quite but from a QEMU point of view these are being used for CI loops and proving a known state of something for users to test on. As I said in reply elsewhere I think to get the benefit of recent Clang and GCCs it would be best to base of some sort of stable base. -- Alex Bennée
diff --git a/tests/docker/dockerfiles/debian-bleeding-dev.docker b/tests/docker/dockerfiles/debian-bleeding-dev.docker new file mode 100644 index 0000000000..d6ae20692c --- /dev/null +++ b/tests/docker/dockerfiles/debian-bleeding-dev.docker @@ -0,0 +1,94 @@ +# +# Docker x86_64 bleeding image +# +# This docker target builds on the debian unstable base image. Further +# libraries which are not widely available are installed by hand. +# +FROM debian:unstable + +MAINTAINER Philippe Mathieu-Daudé <f4bug@amsat.org> + +RUN echo 'Acquire::ForceIPv4 "true";' >> /etc/apt/apt.conf.d/01network + +# Duplicate deb line as deb-src +RUN cat /etc/apt/sources.list | sed "s/^deb\ /deb-src /" >> /etc/apt/sources.list + +# Install common build utilities +RUN apt-get update && \ + DEBIAN_FRONTEND=noninteractive apt-get install -yy eatmydata +RUN DEBIAN_FRONTEND=noninteractive eatmydata \ + apt-get install -y --no-install-recommends \ + bison \ + build-essential \ + ca-certificates \ + ccache \ + flex \ + git \ + less \ + pkg-config \ + psmisc \ + python \ + texinfo \ + $(apt-get -s build-dep qemu | egrep ^Inst | fgrep '[all]' | cut -d\ -f2) + +RUN DEBIAN_FRONTEND=noninteractive eatmydata \ + apt-get install -y --no-install-recommends \ + binutils-multiarch \ + gdb-multiarch \ + libnewlib-dev \ + musl-dev \ + uclibc-source + +############################################################################ +# GCC 7 + +RUN echo deb http://httpredir.debian.org/debian experimental main >> \ + /etc/apt/sources.list.d/experimental.list && apt-get update +RUN DEBIAN_FRONTEND=noninteractive eatmydata \ + apt-get install -y --no-install-recommends \ + gcc-7 \ + gcc-7-cross-base-ports \ + gcc-7-multilib \ + g++-7 + +############################################################################ +# Clang 5 + +RUN DEBIAN_FRONTEND=noninteractive eatmydata \ + apt-get install -y --no-install-recommends \ + curl gnupg +RUN curl http://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - && \ + echo 'deb http://apt.llvm.org/unstable/ llvm-toolchain main' \ + > /etc/apt/sources.list.d/llvm.list && \ + apt-get update +RUN DEBIAN_FRONTEND=noninteractive eatmydata \ + apt-get install -y --no-install-recommends \ + clang-5.0 \ + lldb-5.0 \ + llvm-5.0 && \ + test -x /usr/bin/clang || ln -s clang-5.0 /usr/bin/clang + +############################################################################ +# QEMU specific starts here + +RUN DEBIAN_FRONTEND=noninteractive eatmydata \ + apt-get build-dep -yy qemu + +RUN DEBIAN_FRONTEND=noninteractive eatmydata \ + apt-get install -y --no-install-recommends \ + libbz2-dev \ + liblzo2-dev \ + librdmacm-dev \ + libsnappy-dev \ + libvte-dev + +# virgl +RUN DEBIAN_FRONTEND=noninteractive eatmydata \ + apt-get install -y --no-install-recommends \ + libegl1-mesa-dev \ + libepoxy-dev \ + libgbm-dev +RUN git clone git://anongit.freedesktop.org/virglrenderer /usr/src/virglrenderer +RUN cd /usr/src/virglrenderer && ./autogen.sh && ./configure --with-glx --disable-tests && make install + +ENV QEMU_CONFIGURE_OPTS --host-cc=clang-5.0 --cc=clang-5.0 --cxx=clang++-5.0
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> --- .../docker/dockerfiles/debian-bleeding-dev.docker | 94 ++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 tests/docker/dockerfiles/debian-bleeding-dev.docker