diff mbox series

[20/12] CI: Swap from perl to perl-base in build containers

Message ID 20240713180952.3363596-1-andrew.cooper3@citrix.com (mailing list archive)
State New
Headers show
Series CI: part 3 (slimline, and PPC/RISCV fixes) | expand

Commit Message

Andrew Cooper July 13, 2024, 6:09 p.m. UTC
We only need a basic perl environment, not the things that a primarily-perl
project would want.

Discovered during the Fedora refresh where the difference is ~40M, but it's
more modest for OpenSUSE and Ubuntu.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Anthony PERARD <anthony.perard@vates.tech>
CC: Juergen Gross <jgross@suse.com>
CC: Roger Pau Monné <roger.pau@citrix.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>

https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/1372507213
---
 automation/build/opensuse/leap-15.6-x86_64.dockerfile  | 2 +-
 automation/build/opensuse/tumbleweed-x86_64.dockerfile | 2 +-
 automation/build/ubuntu/16.04-x86_64.dockerfile        | 2 +-
 automation/build/ubuntu/18.04-x86_64.dockerfile        | 2 +-
 automation/build/ubuntu/20.04-x86_64.dockerfile        | 2 +-
 automation/build/ubuntu/22.04-x86_64.dockerfile        | 2 +-
 automation/build/ubuntu/24.04-x86_64.dockerfile        | 2 +-
 7 files changed, 7 insertions(+), 7 deletions(-)

Comments

Anthony PERARD July 15, 2024, 12:46 p.m. UTC | #1
On Sat, Jul 13, 2024 at 07:09:52PM +0100, Andrew Cooper wrote:
> We only need a basic perl environment, not the things that a primarily-perl
> project would want.
> 
> Discovered during the Fedora refresh where the difference is ~40M, but it's
> more modest for OpenSUSE and Ubuntu.

"perl-base" on Ubuntu is quite different from "perl-base" on OpenSUSE
Leap. I haven't check Tumbleweed but is probably the same as Leap.
So, I think these would deserve to be in separated patches.

On Ubuntu, installing "perl" or "perl-base" or none of them makes no
difference. We install "build-essentials" which pulls "dpkg-dev" which
pulls "perl", so we don't test properly if "perl-base" is enough or if
we need more.

I tried to find out which Perl module we would need, and I've got this
list:

- get_maintainer
    Getopt::Long;
- add_maintainer
    Getopt::Long;
    File::Basename;
    List::MoreUtils;
    IO::Handle;
- stubdom/vtpmmgr:
    Digest::SHA qw(sha1);
    Math::BigInt only => 'GMP';
- kconfig
    Getopt::Long;
- ocaml/lib/xc/abi-check
    Data::Dumper;
- docs/gen-html-index
    Getopt::Long;
    IO::File;
    File::Basename;
- docs/xen-headers
    Getopt::Long;
    File::Find;
    IO::File;
(there's also tools/examples/xeninfo.pl, I dont't if that can still work
or if we need to purge it)

Then I've got whatever module is in "perl-base" pkg.

For Leap's perl-base:
    getopt:long
    file:basename
    io:handle
    io:file
    file:find
    data:dumper
    digest:sha
So, add_maintainer.pl and the script in stubdom/vtpmmgr won't work. So
that's probably fine for Leap.

For Ubuntu 22.04 (not check others, but likely about the same)
there's more packages:
    perl-base
        getopt::long
        file:basename
        io:handle
        io:file
    perl-modules-5.34
        file:find
        math:bigint
    libperl5.34
        data:dumper
        digest:sha
    liblist-moreutils-perl
        list:MoreUtils
    librpc-xml-perl
        rpc:xml
("perl" pkg pulls "perl-modules-5.34" and "libperl5.34")

So with just "perl-base", the ocaml's abi-check wouldn't work, as well
as the docs's script (probably ok for "docs" if we don't use containers
to build them). Also add_maintainer and stubdom/vtpmmgr like for Leap.


So I would suggest to not touch the Ubuntu containers, make the change
to the OpenSUSE one and maybe add the limitation to the commit message.

Cheers,
Andrew Cooper July 15, 2024, 1:02 p.m. UTC | #2
On 15/07/2024 1:46 pm, Anthony PERARD wrote:
> On Sat, Jul 13, 2024 at 07:09:52PM +0100, Andrew Cooper wrote:
>> We only need a basic perl environment, not the things that a primarily-perl
>> project would want.
>>
>> Discovered during the Fedora refresh where the difference is ~40M, but it's
>> more modest for OpenSUSE and Ubuntu.
> "perl-base" on Ubuntu is quite different from "perl-base" on OpenSUSE
> Leap. I haven't check Tumbleweed but is probably the same as Leap.

/sigh - because that would have been too easy.

> So, I think these would deserve to be in separated patches.
>
> On Ubuntu, installing "perl" or "perl-base" or none of them makes no
> difference. We install "build-essentials" which pulls "dpkg-dev" which
> pulls "perl", so we don't test properly if "perl-base" is enough or if
> we need more.

Fine - lets leave the Ubuntu's alone.

>
> I tried to find out which Perl module we would need, and I've got this
> list:
>
> - get_maintainer
>     Getopt::Long;
> - add_maintainer
>     Getopt::Long;
>     File::Basename;
>     List::MoreUtils;
>     IO::Handle;
> - stubdom/vtpmmgr:
>     Digest::SHA qw(sha1);
>     Math::BigInt only => 'GMP';
> - kconfig
>     Getopt::Long;
> - ocaml/lib/xc/abi-check
>     Data::Dumper;
> - docs/gen-html-index
>     Getopt::Long;
>     IO::File;
>     File::Basename;
> - docs/xen-headers
>     Getopt::Long;
>     File::Find;
>     IO::File;
> (there's also tools/examples/xeninfo.pl, I dont't if that can still work
> or if we need to purge it)

Ewww.

my %xenhosts = ("192.0.2.10" => {"port" => "9363"}, ...

is enough to demonstrate it's a special purpose script.

That file isn't referenced by the Makefile, nor is anything in the vnc/
dir, so we should purge the lot.

>
> Then I've got whatever module is in "perl-base" pkg.
>
> For Leap's perl-base:
>     getopt:long
>     file:basename
>     io:handle
>     io:file
>     file:find
>     data:dumper
>     digest:sha
> So, add_maintainer.pl and the script in stubdom/vtpmmgr won't work. So
> that's probably fine for Leap.

vtpmmgr isn't built by default, so gets 0 testing in CI.  I don't expect
people to be using add_maintainer inside the containers either.

>
> For Ubuntu 22.04 (not check others, but likely about the same)
> there's more packages:
>     perl-base
>         getopt::long
>         file:basename
>         io:handle
>         io:file
>     perl-modules-5.34
>         file:find
>         math:bigint
>     libperl5.34
>         data:dumper
>         digest:sha
>     liblist-moreutils-perl
>         list:MoreUtils
>     librpc-xml-perl
>         rpc:xml
> ("perl" pkg pulls "perl-modules-5.34" and "libperl5.34")
>
> So with just "perl-base", the ocaml's abi-check wouldn't work, as well
> as the docs's script (probably ok for "docs" if we don't use containers
> to build them).

Hmm yeah - we wouldn't want to break that.

>  Also add_maintainer and stubdom/vtpmmgr like for Leap.
>
>
> So I would suggest to not touch the Ubuntu containers, make the change
> to the OpenSUSE one and maybe add the limitation to the commit message.

Ok - I'll do this.

~Andrew
diff mbox series

Patch

diff --git a/automation/build/opensuse/leap-15.6-x86_64.dockerfile b/automation/build/opensuse/leap-15.6-x86_64.dockerfile
index ea70dffe2afc..d9ee34ff240f 100644
--- a/automation/build/opensuse/leap-15.6-x86_64.dockerfile
+++ b/automation/build/opensuse/leap-15.6-x86_64.dockerfile
@@ -31,7 +31,7 @@  RUN <<EOF
         git-core
         gzip
         patch
-        perl
+        perl-base
         pkg-config
         wget
         # libxenguest dombuilder
diff --git a/automation/build/opensuse/tumbleweed-x86_64.dockerfile b/automation/build/opensuse/tumbleweed-x86_64.dockerfile
index 61e840fc67da..cd90f7357a50 100644
--- a/automation/build/opensuse/tumbleweed-x86_64.dockerfile
+++ b/automation/build/opensuse/tumbleweed-x86_64.dockerfile
@@ -31,7 +31,7 @@  RUN <<EOF
         git-core
         gzip
         patch
-        perl
+        perl-base
         pkg-config
         wget
         # libxenguest dombuilder
diff --git a/automation/build/ubuntu/16.04-x86_64.dockerfile b/automation/build/ubuntu/16.04-x86_64.dockerfile
index d8617bfade5e..7dc2ad8c3ef5 100644
--- a/automation/build/ubuntu/16.04-x86_64.dockerfile
+++ b/automation/build/ubuntu/16.04-x86_64.dockerfile
@@ -27,7 +27,7 @@  RUN <<EOF
         git-core
         gzip
         patch
-        perl
+        perl-base
         pkg-config
         wget
         # libxenguest dombuilder
diff --git a/automation/build/ubuntu/18.04-x86_64.dockerfile b/automation/build/ubuntu/18.04-x86_64.dockerfile
index 336697ad954b..12522cf48045 100644
--- a/automation/build/ubuntu/18.04-x86_64.dockerfile
+++ b/automation/build/ubuntu/18.04-x86_64.dockerfile
@@ -27,7 +27,7 @@  RUN <<EOF
         git-core
         gzip
         patch
-        perl
+        perl-base
         pkg-config
         wget
         # libxenguest dombuilder
diff --git a/automation/build/ubuntu/20.04-x86_64.dockerfile b/automation/build/ubuntu/20.04-x86_64.dockerfile
index 39fb297519ee..d071949bfe5c 100644
--- a/automation/build/ubuntu/20.04-x86_64.dockerfile
+++ b/automation/build/ubuntu/20.04-x86_64.dockerfile
@@ -27,7 +27,7 @@  RUN <<EOF
         git-core
         gzip
         patch
-        perl
+        perl-base
         pkg-config
         wget
         # libxenguest dombuilder
diff --git a/automation/build/ubuntu/22.04-x86_64.dockerfile b/automation/build/ubuntu/22.04-x86_64.dockerfile
index 230903f624d9..4f52b9d475ad 100644
--- a/automation/build/ubuntu/22.04-x86_64.dockerfile
+++ b/automation/build/ubuntu/22.04-x86_64.dockerfile
@@ -27,7 +27,7 @@  RUN <<EOF
         git-core
         gzip
         patch
-        perl
+        perl-base
         pkg-config
         wget
         # libxenguest dombuilder
diff --git a/automation/build/ubuntu/24.04-x86_64.dockerfile b/automation/build/ubuntu/24.04-x86_64.dockerfile
index 277f92facfd9..d125b9f739fa 100644
--- a/automation/build/ubuntu/24.04-x86_64.dockerfile
+++ b/automation/build/ubuntu/24.04-x86_64.dockerfile
@@ -27,7 +27,7 @@  RUN <<EOF
         git-core
         gzip
         patch
-        perl
+        perl-base
         pkg-config
         wget
         # libxenguest dombuilder