diff mbox series

[5/6] travis.yml: Update Travis to use Bionic and Focal instead of Xenial

Message ID 20200918103430.297167-6-thuth@redhat.com (mailing list archive)
State New, archived
Headers show
Series Update Travis from Xenial to Bionic and Focal | expand

Commit Message

Thomas Huth Sept. 18, 2020, 10:34 a.m. UTC
According to our support policy, we do not support Xenial anymore.
Time to switch the bigger parts of the builds to Focal instead.
Some few jobs have to be updated to Bionic instead, since they are
currently still failing on Focal otherwise. Also "--disable-pie" is
causing linker problems with newer versions of Ubuntu ... so remove
that switch from the jobs now (we still test it in a gitlab CI job,
so we don't lose much test coverage here).

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 .travis.yml | 24 +++++++++++++-----------
 1 file changed, 13 insertions(+), 11 deletions(-)

Comments

Cleber Rosa Sept. 21, 2020, 11:39 p.m. UTC | #1
On Fri, Sep 18, 2020 at 12:34:29PM +0200, Thomas Huth wrote:
> According to our support policy, we do not support Xenial anymore.
> Time to switch the bigger parts of the builds to Focal instead.
> Some few jobs have to be updated to Bionic instead, since they are
> currently still failing on Focal otherwise. Also "--disable-pie" is
> causing linker problems with newer versions of Ubuntu ... so remove
> that switch from the jobs now (we still test it in a gitlab CI job,
> so we don't lose much test coverage here).
> 
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
>  .travis.yml | 24 +++++++++++++-----------
>  1 file changed, 13 insertions(+), 11 deletions(-)
> 
> diff --git a/.travis.yml b/.travis.yml
> index 1fc49b0746..80da4ebc8e 100644
> --- a/.travis.yml
> +++ b/.travis.yml
> @@ -2,7 +2,7 @@
>  # Additional builds with specific requirements for a full VM need to
>  # be added as additional matrix: entries later on
>  os: linux
> -dist: xenial
> +dist: focal
>  language: c
>  compiler:
>    - gcc
> @@ -10,7 +10,7 @@ cache:
>    # There is one cache per branch and compiler version.
>    # characteristics of each job are used to identify the cache:
>    # - OS name (currently only linux)
> -  # - OS distribution (for Linux, xenial, trusty, or precise)
> +  # - OS distribution (for Linux, bionic or focal)
>    # - Names and values of visible environment variables set in .travis.yml or Settings panel
>    timeout: 1200
>    ccache: true
> @@ -27,7 +27,7 @@ addons:
>        - libattr1-dev
>        - libbrlapi-dev
>        - libcap-ng-dev
> -      - libgcc-4.8-dev
> +      - libgcc-7-dev
>        - libgnutls28-dev
>        - libgtk-3-dev
>        - libiscsi-dev
> @@ -211,8 +211,10 @@ jobs:
>  
>      # gprof/gcov are GCC features
>      - name: "GCC gprof/gcov"
> +      dist: bionic
>        env:
> -        - CONFIG="--enable-gprof --enable-gcov --disable-pie --target-list=${MAIN_SOFTMMU_TARGETS}"
> +        - CONFIG="--enable-gprof --enable-gcov --disable-libssh
> +                  --target-list=${MAIN_SOFTMMU_TARGETS}"

While the commit message describes the reason for dropping
'--disable-pie', it doesn't talk about why it adds '--disable-libssh'.
Other than that, it's working fine, according to:

  https://travis-ci.org/github/clebergnu/qemu/builds/729121964

Reviewed-by: Cleber Rosa <crosa@redhat.com>
Tested-by: Cleber Rosa <crosa@redhat.com>
Thomas Huth Sept. 22, 2020, 6:55 a.m. UTC | #2
On 22/09/2020 01.39, Cleber Rosa wrote:
> On Fri, Sep 18, 2020 at 12:34:29PM +0200, Thomas Huth wrote:
>> According to our support policy, we do not support Xenial anymore.
>> Time to switch the bigger parts of the builds to Focal instead.
>> Some few jobs have to be updated to Bionic instead, since they are
>> currently still failing on Focal otherwise. Also "--disable-pie" is
>> causing linker problems with newer versions of Ubuntu ... so remove
>> that switch from the jobs now (we still test it in a gitlab CI job,
>> so we don't lose much test coverage here).
>>
>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>> ---
>>  .travis.yml | 24 +++++++++++++-----------
>>  1 file changed, 13 insertions(+), 11 deletions(-)
>>
>> diff --git a/.travis.yml b/.travis.yml
>> index 1fc49b0746..80da4ebc8e 100644
>> --- a/.travis.yml
>> +++ b/.travis.yml
>> @@ -2,7 +2,7 @@
>>  # Additional builds with specific requirements for a full VM need to
>>  # be added as additional matrix: entries later on
>>  os: linux
>> -dist: xenial
>> +dist: focal
>>  language: c
>>  compiler:
>>    - gcc
>> @@ -10,7 +10,7 @@ cache:
>>    # There is one cache per branch and compiler version.
>>    # characteristics of each job are used to identify the cache:
>>    # - OS name (currently only linux)
>> -  # - OS distribution (for Linux, xenial, trusty, or precise)
>> +  # - OS distribution (for Linux, bionic or focal)
>>    # - Names and values of visible environment variables set in .travis.yml or Settings panel
>>    timeout: 1200
>>    ccache: true
>> @@ -27,7 +27,7 @@ addons:
>>        - libattr1-dev
>>        - libbrlapi-dev
>>        - libcap-ng-dev
>> -      - libgcc-4.8-dev
>> +      - libgcc-7-dev
>>        - libgnutls28-dev
>>        - libgtk-3-dev
>>        - libiscsi-dev
>> @@ -211,8 +211,10 @@ jobs:
>>  
>>      # gprof/gcov are GCC features
>>      - name: "GCC gprof/gcov"
>> +      dist: bionic
>>        env:
>> -        - CONFIG="--enable-gprof --enable-gcov --disable-pie --target-list=${MAIN_SOFTMMU_TARGETS}"
>> +        - CONFIG="--enable-gprof --enable-gcov --disable-libssh
>> +                  --target-list=${MAIN_SOFTMMU_TARGETS}"
> 
> While the commit message describes the reason for dropping
> '--disable-pie', it doesn't talk about why it adds '--disable-libssh'.

Ah, well, right. I should have mentioned that... but we've hit that
problem in the past so often that my mind apparently sorted it into the
well-known category and did not came up with the idea that it would be
good to mention it ;-)

The problem is that libssh is very much broken in Bionic. Ubuntu
backported some patches into that version so that QEMU's configure
script thinks that it is a newer version, but they did not backport some
other important patches so that compilation later fails. Since it's
rather a bug in the distro and not in QEMU, we never "fixed" this issue,
so libssh can not be used in Bionic. See also:

 https://bugs.launchpad.net/qemu/+bug/1838763

> Reviewed-by: Cleber Rosa <crosa@redhat.com>
> Tested-by: Cleber Rosa <crosa@redhat.com>

 Thanks!
  Thomas
diff mbox series

Patch

diff --git a/.travis.yml b/.travis.yml
index 1fc49b0746..80da4ebc8e 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -2,7 +2,7 @@ 
 # Additional builds with specific requirements for a full VM need to
 # be added as additional matrix: entries later on
 os: linux
-dist: xenial
+dist: focal
 language: c
 compiler:
   - gcc
@@ -10,7 +10,7 @@  cache:
   # There is one cache per branch and compiler version.
   # characteristics of each job are used to identify the cache:
   # - OS name (currently only linux)
-  # - OS distribution (for Linux, xenial, trusty, or precise)
+  # - OS distribution (for Linux, bionic or focal)
   # - Names and values of visible environment variables set in .travis.yml or Settings panel
   timeout: 1200
   ccache: true
@@ -27,7 +27,7 @@  addons:
       - libattr1-dev
       - libbrlapi-dev
       - libcap-ng-dev
-      - libgcc-4.8-dev
+      - libgcc-7-dev
       - libgnutls28-dev
       - libgtk-3-dev
       - libiscsi-dev
@@ -211,8 +211,10 @@  jobs:
 
     # gprof/gcov are GCC features
     - name: "GCC gprof/gcov"
+      dist: bionic
       env:
-        - CONFIG="--enable-gprof --enable-gcov --disable-pie --target-list=${MAIN_SOFTMMU_TARGETS}"
+        - CONFIG="--enable-gprof --enable-gcov --disable-libssh
+                  --target-list=${MAIN_SOFTMMU_TARGETS}"
       after_success:
         - ${SRC_DIR}/scripts/travis/coverage-summary.sh
 
@@ -271,6 +273,7 @@  jobs:
 
     # Using newer GCC with sanitizers
     - name: "GCC9 with sanitizers (softmmu)"
+      dist: bionic
       addons:
         apt:
           update: true
@@ -286,7 +289,7 @@  jobs:
             - libattr1-dev
             - libbrlapi-dev
             - libcap-ng-dev
-            - libgnutls-dev
+            - libgnutls28-dev
             - libgtk-3-dev
             - libiscsi-dev
             - liblttng-ust-dev
@@ -294,14 +297,13 @@  jobs:
             - libncurses5-dev
             - libnss3-dev
             - libpixman-1-dev
-            - libpng12-dev
+            - libpng-dev
             - librados-dev
             - libsdl2-dev
             - libsdl2-image-dev
             - libseccomp-dev
             - libspice-protocol-dev
             - libspice-server-dev
-            - libssh-dev
             - liburcu-dev
             - libusb-1.0-0-dev
             - libvte-2.91-dev
@@ -311,11 +313,11 @@  jobs:
       compiler: none
       env:
         - COMPILER_NAME=gcc CXX=g++-9 CC=gcc-9
-        - CONFIG="--cc=gcc-9 --cxx=g++-9 --disable-pie --disable-linux-user"
+        - CONFIG="--cc=gcc-9 --cxx=g++-9 --disable-linux-user"
         - TEST_CMD=""
       before_script:
         - mkdir -p ${BUILD_DIR} && cd ${BUILD_DIR}
-        - ${SRC_DIR}/configure ${CONFIG} --extra-cflags="-g3 -O0 -Wno-error=stringop-truncation -fsanitize=thread" --extra-ldflags="-fuse-ld=gold" || { cat config.log && exit 1; }
+        - ${SRC_DIR}/configure ${CONFIG} --extra-cflags="-g3 -O0 -fsanitize=thread" || { cat config.log && exit 1; }
 
 
     # Run check-tcg against linux-user
@@ -357,7 +359,7 @@  jobs:
 
     - name: "[aarch64] GCC check-tcg"
       arch: arm64
-      dist: xenial
+      dist: focal
       addons:
         apt_packages:
           - libaio-dev
@@ -390,7 +392,7 @@  jobs:
 
     - name: "[ppc64] GCC check-tcg"
       arch: ppc64le
-      dist: xenial
+      dist: focal
       addons:
         apt_packages:
           - libaio-dev