diff mbox series

[for-4.19,4/4] CI: Rework the CentOS7 container

Message ID 20240703142002.1662874-5-andrew.cooper3@citrix.com (mailing list archive)
State New
Headers show
Series CI: Fixes, part 1 | expand

Commit Message

Andrew Cooper July 3, 2024, 2:20 p.m. UTC
CentOS 7 is fully End-of-life as of 2024-06-30, and the Yum repo configuration
points at URLs which have become non-existent.

First, start by using a heredoc RUN for legibility.  It's important to use
`set -e` to offset the fact that we're no longer chaining every command
together with an &&.

Also, because we're using a single RUN command to perform all RPM operations,
we no longer need to work around the OverlayFS bug.

Adjust the CentOS-*.repo files to point at vault.centos.org.

Take the opportunity to split the Xen deps from Tools deps, and to adjust the
other packages we use:

 * We need bzip2-devel for the dombuilder, not just bzip2.
 * zstd-devel is another optional dependency since the last time this package
   list was refreshed.
 * openssl-devel hasn't been a dependency since Xen 4.6.
 * We long ago ceased being able to build Qemu and SeaBIOS in this container,
   so drop their dependencies too.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Doug Goldstein <cardoe@cardoe.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
 automation/build/centos/7.dockerfile | 70 +++++++++++++++-------------
 1 file changed, 37 insertions(+), 33 deletions(-)

Comments

Roger Pau Monné July 3, 2024, 2:55 p.m. UTC | #1
On Wed, Jul 03, 2024 at 03:20:02PM +0100, Andrew Cooper wrote:
> CentOS 7 is fully End-of-life as of 2024-06-30, and the Yum repo configuration
> points at URLs which have become non-existent.
> 
> First, start by using a heredoc RUN for legibility.  It's important to use
> `set -e` to offset the fact that we're no longer chaining every command
> together with an &&.
> 
> Also, because we're using a single RUN command to perform all RPM operations,
> we no longer need to work around the OverlayFS bug.
> 
> Adjust the CentOS-*.repo files to point at vault.centos.org.
> 
> Take the opportunity to split the Xen deps from Tools deps, and to adjust the
> other packages we use:
> 
>  * We need bzip2-devel for the dombuilder, not just bzip2.
>  * zstd-devel is another optional dependency since the last time this package
>    list was refreshed.
>  * openssl-devel hasn't been a dependency since Xen 4.6.
>  * We long ago ceased being able to build Qemu and SeaBIOS in this container,
>    so drop their dependencies too.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Acked-by: Roger Pau Monné <roiger.pau@citrix.com>

> ---
> CC: Anthony PERARD <anthony.perard@vates.tech>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Doug Goldstein <cardoe@cardoe.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
>  automation/build/centos/7.dockerfile | 70 +++++++++++++++-------------
>  1 file changed, 37 insertions(+), 33 deletions(-)
> 
> diff --git a/automation/build/centos/7.dockerfile b/automation/build/centos/7.dockerfile
> index 657550f308bb..9e66d72a5bd5 100644
> --- a/automation/build/centos/7.dockerfile
> +++ b/automation/build/centos/7.dockerfile
> @@ -6,44 +6,48 @@ LABEL maintainer.name="The Xen Project" \
>  RUN mkdir /build
>  WORKDIR /build
>  
> -# work around https://github.com/moby/moby/issues/10180
> -# and add EPEL for dev86
> -RUN rpm --rebuilddb && \
> -    yum -y install \
> -        yum-plugin-ovl \
> -        epel-release \
> -    && yum clean all && \
> -    rm -rf /var/cache/yum
> +RUN <<EOF
> +    set -e
> +
> +    # Fix up Yum config now that mirror.centos.org doesn't exist
> +    sed -e 's/mirror.centos.org/vault.centos.org/g' \
> +        -e 's/^#.*baseurl=https\?/baseurl=https/g' \
> +        -e 's/^mirrorlist=https\?/#mirrorlist=https/g' \

Why do you also need to uncomment baseurl and comment mirrorlist?
Isn't baseurl already enabled, and having extra mirrorlist won't harm
as it's just extra location to search for packages? (IOW: even if they
don't exist it shouldn't be an issue).

Thanks, Roger.
Andrew Cooper July 3, 2024, 3:09 p.m. UTC | #2
On 03/07/2024 3:55 pm, Roger Pau Monné wrote:
> On Wed, Jul 03, 2024 at 03:20:02PM +0100, Andrew Cooper wrote:
>> CentOS 7 is fully End-of-life as of 2024-06-30, and the Yum repo configuration
>> points at URLs which have become non-existent.
>>
>> First, start by using a heredoc RUN for legibility.  It's important to use
>> `set -e` to offset the fact that we're no longer chaining every command
>> together with an &&.
>>
>> Also, because we're using a single RUN command to perform all RPM operations,
>> we no longer need to work around the OverlayFS bug.
>>
>> Adjust the CentOS-*.repo files to point at vault.centos.org.
>>
>> Take the opportunity to split the Xen deps from Tools deps, and to adjust the
>> other packages we use:
>>
>>  * We need bzip2-devel for the dombuilder, not just bzip2.
>>  * zstd-devel is another optional dependency since the last time this package
>>    list was refreshed.
>>  * openssl-devel hasn't been a dependency since Xen 4.6.
>>  * We long ago ceased being able to build Qemu and SeaBIOS in this container,
>>    so drop their dependencies too.
>>
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> Acked-by: Roger Pau Monné <roiger.pau@citrix.com>

Thanks.

>
>> ---
>> CC: Anthony PERARD <anthony.perard@vates.tech>
>> CC: Stefano Stabellini <sstabellini@kernel.org>
>> CC: Doug Goldstein <cardoe@cardoe.com>
>> CC: Roger Pau Monné <roger.pau@citrix.com>
>> CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
>> ---
>>  automation/build/centos/7.dockerfile | 70 +++++++++++++++-------------
>>  1 file changed, 37 insertions(+), 33 deletions(-)
>>
>> diff --git a/automation/build/centos/7.dockerfile b/automation/build/centos/7.dockerfile
>> index 657550f308bb..9e66d72a5bd5 100644
>> --- a/automation/build/centos/7.dockerfile
>> +++ b/automation/build/centos/7.dockerfile
>> @@ -6,44 +6,48 @@ LABEL maintainer.name="The Xen Project" \
>>  RUN mkdir /build
>>  WORKDIR /build
>>  
>> -# work around https://github.com/moby/moby/issues/10180
>> -# and add EPEL for dev86
>> -RUN rpm --rebuilddb && \
>> -    yum -y install \
>> -        yum-plugin-ovl \
>> -        epel-release \
>> -    && yum clean all && \
>> -    rm -rf /var/cache/yum
>> +RUN <<EOF
>> +    set -e
>> +
>> +    # Fix up Yum config now that mirror.centos.org doesn't exist
>> +    sed -e 's/mirror.centos.org/vault.centos.org/g' \
>> +        -e 's/^#.*baseurl=https\?/baseurl=https/g' \
>> +        -e 's/^mirrorlist=https\?/#mirrorlist=https/g' \
> Why do you also need to uncomment baseurl and comment mirrorlist?
> Isn't baseurl already enabled, and having extra mirrorlist won't harm
> as it's just extra location to search for packages? (IOW: even if they
> don't exist it shouldn't be an issue).

It appears that having an uncontactable mirror list, as opposed to no
mirror list, is fatal.

I didn't end up with this because I like the look of the sed expression.

~Andrew
Roger Pau Monné July 4, 2024, 8:15 a.m. UTC | #3
On Wed, Jul 03, 2024 at 04:09:48PM +0100, Andrew Cooper wrote:
> On 03/07/2024 3:55 pm, Roger Pau Monné wrote:
> > On Wed, Jul 03, 2024 at 03:20:02PM +0100, Andrew Cooper wrote:
> >> CentOS 7 is fully End-of-life as of 2024-06-30, and the Yum repo configuration
> >> points at URLs which have become non-existent.
> >>
> >> First, start by using a heredoc RUN for legibility.  It's important to use
> >> `set -e` to offset the fact that we're no longer chaining every command
> >> together with an &&.
> >>
> >> Also, because we're using a single RUN command to perform all RPM operations,
> >> we no longer need to work around the OverlayFS bug.
> >>
> >> Adjust the CentOS-*.repo files to point at vault.centos.org.
> >>
> >> Take the opportunity to split the Xen deps from Tools deps, and to adjust the
> >> other packages we use:
> >>
> >>  * We need bzip2-devel for the dombuilder, not just bzip2.
> >>  * zstd-devel is another optional dependency since the last time this package
> >>    list was refreshed.
> >>  * openssl-devel hasn't been a dependency since Xen 4.6.
> >>  * We long ago ceased being able to build Qemu and SeaBIOS in this container,
> >>    so drop their dependencies too.
> >>
> >> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> > Acked-by: Roger Pau Monné <roiger.pau@citrix.com>
> 
> Thanks.
> 
> >
> >> ---
> >> CC: Anthony PERARD <anthony.perard@vates.tech>
> >> CC: Stefano Stabellini <sstabellini@kernel.org>
> >> CC: Doug Goldstein <cardoe@cardoe.com>
> >> CC: Roger Pau Monné <roger.pau@citrix.com>
> >> CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> >> ---
> >>  automation/build/centos/7.dockerfile | 70 +++++++++++++++-------------
> >>  1 file changed, 37 insertions(+), 33 deletions(-)
> >>
> >> diff --git a/automation/build/centos/7.dockerfile b/automation/build/centos/7.dockerfile
> >> index 657550f308bb..9e66d72a5bd5 100644
> >> --- a/automation/build/centos/7.dockerfile
> >> +++ b/automation/build/centos/7.dockerfile
> >> @@ -6,44 +6,48 @@ LABEL maintainer.name="The Xen Project" \
> >>  RUN mkdir /build
> >>  WORKDIR /build
> >>  
> >> -# work around https://github.com/moby/moby/issues/10180
> >> -# and add EPEL for dev86
> >> -RUN rpm --rebuilddb && \
> >> -    yum -y install \
> >> -        yum-plugin-ovl \
> >> -        epel-release \
> >> -    && yum clean all && \
> >> -    rm -rf /var/cache/yum
> >> +RUN <<EOF
> >> +    set -e
> >> +
> >> +    # Fix up Yum config now that mirror.centos.org doesn't exist
> >> +    sed -e 's/mirror.centos.org/vault.centos.org/g' \
> >> +        -e 's/^#.*baseurl=https\?/baseurl=https/g' \
> >> +        -e 's/^mirrorlist=https\?/#mirrorlist=https/g' \
> > Why do you also need to uncomment baseurl and comment mirrorlist?
> > Isn't baseurl already enabled, and having extra mirrorlist won't harm
> > as it's just extra location to search for packages? (IOW: even if they
> > don't exist it shouldn't be an issue).
> 
> It appears that having an uncontactable mirror list, as opposed to no
> mirror list, is fatal.
> 
> I didn't end up with this because I like the look of the sed expression.

I wouldn't mind a comment to note the above, but it might be obvious
for people more familiar to yum than myself, hence no strong
request.

Thanks, Roger.
Oleksii July 4, 2024, 11:46 a.m. UTC | #4
On Wed, 2024-07-03 at 15:20 +0100, Andrew Cooper wrote:
> CentOS 7 is fully End-of-life as of 2024-06-30, and the Yum repo
> configuration
> points at URLs which have become non-existent.
> 
> First, start by using a heredoc RUN for legibility.  It's important
> to use
> `set -e` to offset the fact that we're no longer chaining every
> command
> together with an &&.
> 
> Also, because we're using a single RUN command to perform all RPM
> operations,
> we no longer need to work around the OverlayFS bug.
> 
> Adjust the CentOS-*.repo files to point at vault.centos.org.
> 
> Take the opportunity to split the Xen deps from Tools deps, and to
> adjust the
> other packages we use:
> 
>  * We need bzip2-devel for the dombuilder, not just bzip2.
>  * zstd-devel is another optional dependency since the last time this
> package
>    list was refreshed.
>  * openssl-devel hasn't been a dependency since Xen 4.6.
>  * We long ago ceased being able to build Qemu and SeaBIOS in this
> container,
>    so drop their dependencies too.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> CC: Anthony PERARD <anthony.perard@vates.tech>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Doug Goldstein <cardoe@cardoe.com>
> CC: Roger Pau Monné <roger.pau@citrix.com>
> CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Release-Acked-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

~ Oleksii

> ---
>  automation/build/centos/7.dockerfile | 70 +++++++++++++++-----------
> --
>  1 file changed, 37 insertions(+), 33 deletions(-)
> 
> diff --git a/automation/build/centos/7.dockerfile
> b/automation/build/centos/7.dockerfile
> index 657550f308bb..9e66d72a5bd5 100644
> --- a/automation/build/centos/7.dockerfile
> +++ b/automation/build/centos/7.dockerfile
> @@ -6,44 +6,48 @@ LABEL maintainer.name="The Xen Project" \
>  RUN mkdir /build
>  WORKDIR /build
>  
> -# work around https://github.com/moby/moby/issues/10180
> -# and add EPEL for dev86
> -RUN rpm --rebuilddb && \
> -    yum -y install \
> -        yum-plugin-ovl \
> -        epel-release \
> -    && yum clean all && \
> -    rm -rf /var/cache/yum
> +RUN <<EOF
> +    set -e
> +
> +    # Fix up Yum config now that mirror.centos.org doesn't exist
> +    sed -e 's/mirror.centos.org/vault.centos.org/g' \
> +        -e 's/^#.*baseurl=https\?/baseurl=https/g' \
> +        -e 's/^mirrorlist=https\?/#mirrorlist=https/g' \
> +        -i /etc/yum.repos.d/*.repo
> +
> +    # Add the EPEL repo to get dev86
> +    yum -y install epel-release
> +
> +    yum -y update
>  
> -# install Xen depends
> -RUN yum -y update \
> -    && yum -y install \
> +    # Xen deps
> +    yum -y install \
> +        bison \
> +        binutils \
> +        checkpolicy \
> +        flex \
>          gcc \
> +        make \
> +
> +    # Tools/stubdom/docs deps
> +    yum -y install \
> +        acpica-tools \
> +        bzip2-devel \
> +        dev86 \
>          gcc-c++ \
> -        ncurses-devel \
> -        zlib-devel \
> -        openssl-devel \
> -        python-devel \
> +        git \
>          libuuid-devel \
> +        ncurses-devel \
> +        patch \
>          pkgconfig \
> -        flex \
> -        bison \
> -        libaio-devel \
> -        glib2-devel \
> -        yajl-devel \
> -        pixman-devel \
> -        glibc-devel \
> -        make \
> -        binutils \
> -        git \
> -        wget \
> -        acpica-tools \
> +        python-devel \
>          python-markdown \
> -        patch \
> -        checkpolicy \
> -        dev86 \
> +        wget \
>          xz-devel \
> -        bzip2 \
> -        nasm \
> -    && yum clean all && \
> +        yajl-devel \
> +        zlib-devel \
> +        zstd-devel \
> +
> +    yum clean all
>      rm -rf /var/cache/yum
> +EOF
Andrew Cooper July 4, 2024, 6:59 p.m. UTC | #5
On 04/07/2024 9:15 am, Roger Pau Monné wrote:
> On Wed, Jul 03, 2024 at 04:09:48PM +0100, Andrew Cooper wrote:
>> On 03/07/2024 3:55 pm, Roger Pau Monné wrote:
>>> On Wed, Jul 03, 2024 at 03:20:02PM +0100, Andrew Cooper wrote:
>>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>> Acked-by: Roger Pau Monné <roiger.pau@citrix.com>
>> Thanks.

I've taken the liberty of correcting your email address when taking this
tag.

~Andrew
diff mbox series

Patch

diff --git a/automation/build/centos/7.dockerfile b/automation/build/centos/7.dockerfile
index 657550f308bb..9e66d72a5bd5 100644
--- a/automation/build/centos/7.dockerfile
+++ b/automation/build/centos/7.dockerfile
@@ -6,44 +6,48 @@  LABEL maintainer.name="The Xen Project" \
 RUN mkdir /build
 WORKDIR /build
 
-# work around https://github.com/moby/moby/issues/10180
-# and add EPEL for dev86
-RUN rpm --rebuilddb && \
-    yum -y install \
-        yum-plugin-ovl \
-        epel-release \
-    && yum clean all && \
-    rm -rf /var/cache/yum
+RUN <<EOF
+    set -e
+
+    # Fix up Yum config now that mirror.centos.org doesn't exist
+    sed -e 's/mirror.centos.org/vault.centos.org/g' \
+        -e 's/^#.*baseurl=https\?/baseurl=https/g' \
+        -e 's/^mirrorlist=https\?/#mirrorlist=https/g' \
+        -i /etc/yum.repos.d/*.repo
+
+    # Add the EPEL repo to get dev86
+    yum -y install epel-release
+
+    yum -y update
 
-# install Xen depends
-RUN yum -y update \
-    && yum -y install \
+    # Xen deps
+    yum -y install \
+        bison \
+        binutils \
+        checkpolicy \
+        flex \
         gcc \
+        make \
+
+    # Tools/stubdom/docs deps
+    yum -y install \
+        acpica-tools \
+        bzip2-devel \
+        dev86 \
         gcc-c++ \
-        ncurses-devel \
-        zlib-devel \
-        openssl-devel \
-        python-devel \
+        git \
         libuuid-devel \
+        ncurses-devel \
+        patch \
         pkgconfig \
-        flex \
-        bison \
-        libaio-devel \
-        glib2-devel \
-        yajl-devel \
-        pixman-devel \
-        glibc-devel \
-        make \
-        binutils \
-        git \
-        wget \
-        acpica-tools \
+        python-devel \
         python-markdown \
-        patch \
-        checkpolicy \
-        dev86 \
+        wget \
         xz-devel \
-        bzip2 \
-        nasm \
-    && yum clean all && \
+        yajl-devel \
+        zlib-devel \
+        zstd-devel \
+
+    yum clean all
     rm -rf /var/cache/yum
+EOF