Message ID | 20250116085852.78273-2-roger.pau@citrix.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [for-4.20,1/2] automation/cirrus-ci: update FreeBSD to 13.4 | expand |
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.pau@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. 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" ? Relatedly, how likely is python to transform into 3.12 in a bump to the minor FreeBSD versions? ~Andrew
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.pau@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.
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 + + build_script: + - cc --version + - gmake -j`sysctl -n hw.ncpu` -C xen clang=y \ + KCONFIG_ALLCONFIG=tools/kconfig/allrandom.config randconfig + - gmake -j`sysctl -n hw.ncpu` build-xen clang=y + task: - name: 'FreeBSD 13' - freebsd_instance: - image_family: freebsd-13-4 - << : *FREEBSD_TEMPLATE + name: 'FreeBSD 13: full build' + << : *FREEBSD_13 + << : *FREEBSD_FULL_BUILD_TEMPLATE task: - name: 'FreeBSD 14' - freebsd_instance: - image_family: freebsd-14-2 - << : *FREEBSD_TEMPLATE + name: 'FreeBSD 14: full build' + << : *FREEBSD_14 + << : *FREEBSD_FULL_BUILD_TEMPLATE task: - name: 'FreeBSD 15' - freebsd_instance: - image_family: freebsd-15-0-snap - << : *FREEBSD_TEMPLATE + name: 'FreeBSD 15: full build' + << : *FREEBSD_15 + << : *FREEBSD_FULL_BUILD_TEMPLATE + +task: + name: 'FreeBSD 13: randconfig' + << : *FREEBSD_13 + << : *FREEBSD_RANDCONFIG_TEMPLATE + +task: + name: 'FreeBSD 14: randconfig' + << : *FREEBSD_14 + << : *FREEBSD_RANDCONFIG_TEMPLATE + +task: + name: 'FreeBSD 15: randconfig' + << : *FREEBSD_15 + << : *FREEBSD_RANDCONFIG_TEMPLATE
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.pau@citrix.com> --- .cirrus.yml | 64 +++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 50 insertions(+), 14 deletions(-)