On Thu, Jan 16, 2025 at 09:46:33AM +0000, Andrew Cooper wrote:
> On 16/01/2025 8:58 am, Roger Pau Monne wrote:
> > Add a new randconfig job for each FreeBSD version.  This requires some
> > rework of the template so common parts can be shared between the full and
> > the randconfig builds.  Such randconfig builds are relevant because FreeBSD
> > is the only tested system that has a full non-GNU toolchain.
> >
> > While there remove the stale `python` package install in the full build
> > case: this is no longer needed if `python311` is also specified.
> >
> > Signed-off-by: Roger Pau Monné <roger....@citrix.com>
> > ---
> >  .cirrus.yml | 64 +++++++++++++++++++++++++++++++++++++++++------------
> >  1 file changed, 50 insertions(+), 14 deletions(-)
> >
> > diff --git a/.cirrus.yml b/.cirrus.yml
> > index ee80152890f2..f3ea29102cbf 100644
> > --- a/.cirrus.yml
> > +++ b/.cirrus.yml
> > @@ -1,11 +1,24 @@
> >  # 
> > https://cirrus-ci.org/guide/tips-and-tricks/#sharing-configuration-between-tasks
> > -freebsd_template: &FREEBSD_TEMPLATE
> > +freebsd_13: &FREEBSD_13
> > +  freebsd_instance:
> > +    image_family: freebsd-13-4
> > +freebsd_14: &FREEBSD_14
> > +  freebsd_instance:
> > +    image_family: freebsd-14-2
> > +freebsd_15: &FREEBSD_15
> > +  freebsd_instance:
> > +    image_family: freebsd-15-0-snap
> > +
> > +freebsd_template: &FREEBSD_ENV
> >    environment:
> >      APPEND_LIB: /usr/local/lib
> >      APPEND_INCLUDES: /usr/local/include
> >  
> > +freebsd_full_build_template: &FREEBSD_FULL_BUILD_TEMPLATE
> > +  << : *FREEBSD_ENV
> > +
> >    install_script: pkg install -y seabios gmake ninja bash
> > -                                 pkgconf python bison perl5
> > +                                 pkgconf bison perl5
> >                                   yajl lzo2 pixman argp-standalone
> >                                   libxml2 glib git python311
> >  
> > @@ -15,20 +28,43 @@ freebsd_template: &FREEBSD_TEMPLATE
> >      - ./configure --with-system-seabios=/usr/local/share/seabios/bios.bin
> >      - gmake -j`sysctl -n hw.ncpu` clang=y
> >  
> > +freebsd_randconfig_template: &FREEBSD_RANDCONFIG_TEMPLATE
> > +  << : *FREEBSD_ENV
> > +
> > +  install_script: pkg install -y gmake python bison
> 
> It's odd having python311 for the full build but only python for the
> randconfig build.
> 
> IIRC, it's just for Qemu, so there is a split based on whether we build
> tools or not.

Right, this was added by you in order to fix the build with the new
QEMU:

1223375d8b7f CI: Fix builds following qemu-xen update

IIRC you said that on FreeBSD you used 3.11 because it already
includes the required packages (tomllib and ensurepip).

> What will happen when python becomes 3.12?  Does pkg have a way of
> asking "I want any python as long as it's 3.11 or later" ?

Hm, I don't really know.  Maybe we could use a regexp, but that seems
ugly.  Otherwise maybe some shell logic based on the output of `pkg
version`.  I've been told by pkg developers there's no way (yet) to do
such version matching.

One suggestion I've received is to use the python3 meta-package,
which will default to python 3.11 right now (and will keep moving
forward).

Would you be OK with that?

> Relatedly, how likely is python to transform into 3.12 in a bump to the
> minor FreeBSD versions?

It will transform as a result of the change in the ports tree, rather
than a FreeBSD version bump.  When that happens it will affect all
FreeBSD branches mostly equally (as it propagates to the binary package
repositories).

Thanks, Roger.

Reply via email to