ci: switch to Fedora 37

Message ID 20230421143447.3618180-1-david.marchand@redhat.com (mailing list archive)
State Accepted, archived
Delegated to: Thomas Monjalon
Headers
Series ci: switch to Fedora 37 |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/loongarch-compilation success Compilation OK
ci/loongarch-unit-testing success Unit Testing PASS
ci/Intel-compilation success Compilation OK
ci/github-robot: build success github build: passed
ci/intel-Testing success Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-broadcom-Functional success Functional Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-testing success Testing PASS
ci/iol-x86_64-unit-testing success Testing PASS
ci/iol-aarch64-unit-testing success Testing PASS
ci/iol-abi-testing success Testing PASS
ci/iol-unit-testing success Testing PASS
ci/intel-Functional success Functional PASS
ci/iol-x86_64-compile-testing success Testing PASS
ci/iol-aarch64-compile-testing success Testing PASS

Commit Message

David Marchand April 21, 2023, 2:34 p.m. UTC
  Fedora 35 has been declared EOL in 2022/12 (see [1]).
Fedora 36 will soon be EOL too.

Move to Fedora 37.
Fedora 37 libbpf does not support AF_XDP anymore, now provided by
libxdp.

1: https://docs.fedoraproject.org/en-US/releases/eol/

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 .github/workflows/build.yml | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
  

Comments

Aaron Conole April 21, 2023, 9:06 p.m. UTC | #1
David Marchand <david.marchand@redhat.com> writes:

> Fedora 35 has been declared EOL in 2022/12 (see [1]).
> Fedora 36 will soon be EOL too.
>
> Move to Fedora 37.
> Fedora 37 libbpf does not support AF_XDP anymore, now provided by
> libxdp.
>
> 1: https://docs.fedoraproject.org/en-US/releases/eol/
>
> Signed-off-by: David Marchand <david.marchand@redhat.com>
> ---

Acked-by: Aaron Conole <aconole@redhat.com>

FYI, Fedora 38 also just got released.  Perhaps that can be a candidate
as well, but I didn't try it out.
  
David Marchand April 25, 2023, 1:13 p.m. UTC | #2
Hello Aaron,

On Fri, Apr 21, 2023 at 11:06 PM Aaron Conole <aconole@redhat.com> wrote:
> David Marchand <david.marchand@redhat.com> writes:
> > Fedora 35 has been declared EOL in 2022/12 (see [1]).
> > Fedora 36 will soon be EOL too.
> >
> > Move to Fedora 37.
> > Fedora 37 libbpf does not support AF_XDP anymore, now provided by
> > libxdp.
> >
> > 1: https://docs.fedoraproject.org/en-US/releases/eol/
> >
> > Signed-off-by: David Marchand <david.marchand@redhat.com>
> > ---
>
> Acked-by: Aaron Conole <aconole@redhat.com>
>
> FYI, Fedora 38 also just got released.  Perhaps that can be a candidate
> as well, but I didn't try it out.

At a first glance, gcc 13 raises some new warnings, at least for
examples (ip-pipeline and ntb).
We can switch to f38 once builds are fine with gcc 13.
  
Stephen Hemminger April 25, 2023, 11:20 p.m. UTC | #3
On Tue, 25 Apr 2023 15:13:50 +0200
David Marchand <david.marchand@redhat.com> wrote:

> Hello Aaron,
> 
> On Fri, Apr 21, 2023 at 11:06 PM Aaron Conole <aconole@redhat.com> wrote:
> > David Marchand <david.marchand@redhat.com> writes:  
> > > Fedora 35 has been declared EOL in 2022/12 (see [1]).
> > > Fedora 36 will soon be EOL too.
> > >
> > > Move to Fedora 37.
> > > Fedora 37 libbpf does not support AF_XDP anymore, now provided by
> > > libxdp.
> > >
> > > 1: https://docs.fedoraproject.org/en-US/releases/eol/
> > >
> > > Signed-off-by: David Marchand <david.marchand@redhat.com>
> > > ---  
> >
> > Acked-by: Aaron Conole <aconole@redhat.com>
> >
> > FYI, Fedora 38 also just got released.  Perhaps that can be a candidate
> > as well, but I didn't try it out.  
> 
> At a first glance, gcc 13 raises some new warnings, at least for
> examples (ip-pipeline and ntb).
> We can switch to f38 once builds are fine with gcc 13.

What errors, just tried and current main branch builds clean on new F38 VM.
  
David Marchand April 26, 2023, 5:45 a.m. UTC | #4
On Wed, Apr 26, 2023 at 1:20 AM Stephen Hemminger
<stephen@networkplumber.org> wrote:
> > > FYI, Fedora 38 also just got released.  Perhaps that can be a candidate
> > > as well, but I didn't try it out.
> >
> > At a first glance, gcc 13 raises some new warnings, at least for
> > examples (ip-pipeline and ntb).
> > We can switch to f38 once builds are fine with gcc 13.
>
> What errors, just tried and current main branch builds clean on new F38 VM.

Fixes welcome:

[root@7e1b3663cd03 dpdk]# cat /etc/redhat-release
Fedora release 38 (Thirty Eight)
[root@7e1b3663cd03 dpdk]# rpm -q gcc
gcc-13.0.1-0.12.fc38.x86_64

[root@7e1b3663cd03 dpdk]# ninja -C build -vvvv
ninja: Entering directory `build'
[1/4] cc -Iexamples/dpdk-ip_pipeline.p -Iexamples -I../examples
-Iexamples/ip_pipeline -I../examples/ip_pipeline -I../examples/common
-I. -I.. -Iconfig -I../config -Ilib/eal/include -I../lib/eal/include
-Ilib/eal/linux/include -I../lib/eal/linux/include
-Ilib/eal/x86/include -I../lib/eal/x86/include -Ilib/eal/common
-I../lib/eal/common -Ilib/eal -I../lib/eal -Ilib/kvargs
-I../lib/kvargs -Ilib/metrics -I../lib/metrics -Ilib/telemetry
-I../lib/telemetry -Ilib/mempool -I../lib/mempool -Ilib/ring
-I../lib/ring -Ilib/net -I../lib/net -Ilib/mbuf -I../lib/mbuf
-Ilib/ethdev -I../lib/ethdev -Ilib/meter -I../lib/meter -Ilib/cmdline
-I../lib/cmdline -Ilib/pipeline -I../lib/pipeline -Ilib/port
-I../lib/port -Ilib/sched -I../lib/sched -Ilib/ip_frag
-I../lib/ip_frag -Ilib/hash -I../lib/hash -Ilib/rcu -I../lib/rcu
-Ilib/cryptodev -I../lib/cryptodev -Ilib/eventdev -I../lib/eventdev
-Ilib/timer -I../lib/timer -Ilib/table -I../lib/table -Ilib/lpm
-I../lib/lpm -Ilib/acl -I../lib/acl -Ilib/ipsec -I../lib/ipsec
-Ilib/security -I../lib/security -Idrivers/bus/pci
-I../drivers/bus/pci -I../drivers/bus/pci/linux -Ilib/pci -I../lib/pci
-fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch
-Wextra -O3 -include rte_config.h -Wcast-qual -Wdeprecated -Wformat
-Wformat-nonliteral -Wformat-security -Wmissing-declarations
-Wmissing-prototypes -Wnested-externs -Wold-style-definition
-Wpointer-arith -Wsign-compare -Wstrict-prototypes -Wundef
-Wwrite-strings -Wno-address-of-packed-member -Wno-packed-not-aligned
-Wno-missing-field-initializers -Wno-zero-length-bounds -D_GNU_SOURCE
-march=native -Wno-format-truncation -DALLOW_EXPERIMENTAL_API -MD -MQ
examples/dpdk-ip_pipeline.p/ip_pipeline_thread.c.o -MF
examples/dpdk-ip_pipeline.p/ip_pipeline_thread.c.o.d -o
examples/dpdk-ip_pipeline.p/ip_pipeline_thread.c.o -c
../examples/ip_pipeline/thread.c
In function ‘thread_msg_handle’,
    inlined from ‘thread_main’ at ../examples/ip_pipeline/thread.c:3130:6:
../examples/ip_pipeline/thread.c:535:20: warning: ‘req’ may be used
uninitialized [-Wmaybe-uninitialized]
  535 |                 if (req == NULL)
      |                    ^
../examples/ip_pipeline/thread.c: In function ‘thread_main’:
../examples/ip_pipeline/thread.c:433:32: note: ‘req’ was declared here
  433 |         struct thread_msg_req *req;
      |                                ^~~
[2/4] cc -Iexamples/dpdk-ntb.p -Iexamples -I../examples -Iexamples/ntb
-I../examples/ntb -I../examples/common -I. -I.. -Iconfig -I../config
-Ilib/eal/include -I../lib/eal/include -Ilib/eal/linux/include
-I../lib/eal/linux/include -Ilib/eal/x86/include
-I../lib/eal/x86/include -Ilib/eal/common -I../lib/eal/common
-Ilib/eal -I../lib/eal -Ilib/kvargs -I../lib/kvargs -Ilib/metrics
-I../lib/metrics -Ilib/telemetry -I../lib/telemetry -Ilib/mempool
-I../lib/mempool -Ilib/ring -I../lib/ring -Ilib/net -I../lib/net
-Ilib/mbuf -I../lib/mbuf -Ilib/ethdev -I../lib/ethdev -Ilib/meter
-I../lib/meter -Ilib/cmdline -I../lib/cmdline -Ilib/rawdev
-I../lib/rawdev -Idrivers/raw/ntb -I../drivers/raw/ntb -Ilib/pci
-I../lib/pci -Idrivers/bus/pci -I../drivers/bus/pci
-I../drivers/bus/pci/linux -fdiagnostics-color=always -Wall
-Winvalid-pch -Wextra -O3 -include rte_config.h -Wcast-qual
-Wdeprecated -Wformat -Wformat-nonliteral -Wformat-security
-Wmissing-declarations -Wmissing-prototypes -Wnested-externs
-Wold-style-definition -Wpointer-arith -Wsign-compare
-Wstrict-prototypes -Wundef -Wwrite-strings
-Wno-address-of-packed-member -Wno-packed-not-aligned
-Wno-missing-field-initializers -Wno-zero-length-bounds -D_GNU_SOURCE
-march=native -Wno-format-truncation -D_FILE_OFFSET_BITS=64
-DALLOW_EXPERIMENTAL_API -MD -MQ examples/dpdk-ntb.p/ntb_ntb_fwd.c.o
-MF examples/dpdk-ntb.p/ntb_ntb_fwd.c.o.d -o
examples/dpdk-ntb.p/ntb_ntb_fwd.c.o -c ../examples/ntb/ntb_fwd.c
../examples/ntb/ntb_fwd.c: In function ‘ntb_stats_display’:
../examples/ntb/ntb_fwd.c:945:23: warning: ‘rte_rawdev_xstats_get’
accessing 8 bytes in a region of size 0 [-Wstringop-overflow=]
  945 |         if (nb_ids != rte_rawdev_xstats_get(dev_id, ids,
values, nb_ids)) {
      |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../examples/ntb/ntb_fwd.c:945:23: note: referencing argument 3 of type
‘uint64_t[0]’ {aka ‘long unsigned int[]’}
In file included from ../examples/ntb/ntb_fwd.c:17:
../lib/rawdev/rte_rawdev.h:504:1: note: in a call to function
‘rte_rawdev_xstats_get’
  504 | rte_rawdev_xstats_get(uint16_t dev_id,
      | ^~~~~~~~~~~~~~~~~~~~~
[3/4] cc  -o examples/dpdk-ip_pipeline
examples/dpdk-ip_pipeline.p/ip_pipeline_action.c.o
examples/dpdk-ip_pipeline.p/ip_pipeline_cli.c.o
examples/dpdk-ip_pipeline.p/ip_pipeline_conn.c.o
examples/dpdk-ip_pipeline.p/ip_pipeline_cryptodev.c.o
examples/dpdk-ip_pipeline.p/ip_pipeline_kni.c.o
examples/dpdk-ip_pipeline.p/ip_pipeline_link.c.o
examples/dpdk-ip_pipeline.p/ip_pipeline_main.c.o
examples/dpdk-ip_pipeline.p/ip_pipeline_mempool.c.o
examples/dpdk-ip_pipeline.p/ip_pipeline_parser.c.o
examples/dpdk-ip_pipeline.p/ip_pipeline_pipeline.c.o
examples/dpdk-ip_pipeline.p/ip_pipeline_swq.c.o
examples/dpdk-ip_pipeline.p/ip_pipeline_tap.c.o
examples/dpdk-ip_pipeline.p/ip_pipeline_thread.c.o
examples/dpdk-ip_pipeline.p/ip_pipeline_tmgr.c.o -Wl,--as-needed
-Wl,--no-undefined -Wl,-O1 -Wl,--whole-archive -Wl,--start-group
lib/librte_node.a lib/librte_graph.a lib/librte_pipeline.a
lib/librte_table.a lib/librte_pdump.a lib/librte_port.a
lib/librte_fib.a lib/librte_ipsec.a lib/librte_vhost.a
lib/librte_stack.a lib/librte_security.a lib/librte_sched.a
lib/librte_reorder.a lib/librte_rib.a lib/librte_dmadev.a
lib/librte_mldev.a lib/librte_regexdev.a lib/librte_rawdev.a
lib/librte_power.a lib/librte_pcapng.a lib/librte_member.a
lib/librte_lpm.a lib/librte_latencystats.a lib/librte_jobstats.a
lib/librte_ip_frag.a lib/librte_gso.a lib/librte_gro.a
lib/librte_gpudev.a lib/librte_eventdev.a lib/librte_efd.a
lib/librte_distributor.a lib/librte_cryptodev.a
lib/librte_compressdev.a lib/librte_cfgfile.a lib/librte_bpf.a
lib/librte_bitratestats.a lib/librte_bbdev.a lib/librte_acl.a
lib/librte_timer.a lib/librte_hash.a lib/librte_metrics.a
lib/librte_cmdline.a lib/librte_pci.a lib/librte_ethdev.a
lib/librte_meter.a lib/librte_net.a lib/librte_mbuf.a
lib/librte_mempool.a lib/librte_rcu.a lib/librte_ring.a
lib/librte_eal.a lib/librte_telemetry.a lib/librte_kvargs.a
drivers/librte_bus_pci.a drivers/librte_bus_vdev.a
drivers/librte_mempool_ring.a drivers/librte_net_bnxt.a
drivers/librte_net_i40e.a drivers/librte_net_ixgbe.a
drivers/librte_raw_ntb.a -Wl,--no-whole-archive -Wl,--no-as-needed
-pthread -lm -ldl -lnuma -Wl,--end-group -Wl,--export-dynamic
[4/4] cc  -o examples/dpdk-ntb examples/dpdk-ntb.p/ntb_ntb_fwd.c.o
-Wl,--as-needed -Wl,--no-undefined -Wl,-O1 -Wl,--whole-archive
-Wl,--start-group lib/librte_node.a lib/librte_graph.a
lib/librte_pipeline.a lib/librte_table.a lib/librte_pdump.a
lib/librte_port.a lib/librte_fib.a lib/librte_ipsec.a
lib/librte_vhost.a lib/librte_stack.a lib/librte_security.a
lib/librte_sched.a lib/librte_reorder.a lib/librte_rib.a
lib/librte_dmadev.a lib/librte_mldev.a lib/librte_regexdev.a
lib/librte_rawdev.a lib/librte_power.a lib/librte_pcapng.a
lib/librte_member.a lib/librte_lpm.a lib/librte_latencystats.a
lib/librte_jobstats.a lib/librte_ip_frag.a lib/librte_gso.a
lib/librte_gro.a lib/librte_gpudev.a lib/librte_eventdev.a
lib/librte_efd.a lib/librte_distributor.a lib/librte_cryptodev.a
lib/librte_compressdev.a lib/librte_cfgfile.a lib/librte_bpf.a
lib/librte_bitratestats.a lib/librte_bbdev.a lib/librte_acl.a
lib/librte_timer.a lib/librte_hash.a lib/librte_metrics.a
lib/librte_cmdline.a lib/librte_pci.a lib/librte_ethdev.a
lib/librte_meter.a lib/librte_net.a lib/librte_mbuf.a
lib/librte_mempool.a lib/librte_rcu.a lib/librte_ring.a
lib/librte_eal.a lib/librte_telemetry.a lib/librte_kvargs.a
drivers/librte_bus_pci.a drivers/librte_bus_vdev.a
drivers/librte_mempool_ring.a drivers/librte_net_bnxt.a
drivers/librte_net_i40e.a drivers/librte_net_ixgbe.a
drivers/librte_raw_ntb.a -Wl,--no-whole-archive -Wl,--no-as-needed
-pthread -lm -ldl -lnuma -Wl,--end-group -Wl,--export-dynamic
  
Thomas Monjalon May 23, 2023, 9:49 a.m. UTC | #5
25/04/2023 15:13, David Marchand:
> Hello Aaron,
> 
> On Fri, Apr 21, 2023 at 11:06 PM Aaron Conole <aconole@redhat.com> wrote:
> > David Marchand <david.marchand@redhat.com> writes:
> > > Fedora 35 has been declared EOL in 2022/12 (see [1]).
> > > Fedora 36 will soon be EOL too.
> > >
> > > Move to Fedora 37.
> > > Fedora 37 libbpf does not support AF_XDP anymore, now provided by
> > > libxdp.
> > >
> > > 1: https://docs.fedoraproject.org/en-US/releases/eol/
> > >
> > > Signed-off-by: David Marchand <david.marchand@redhat.com>
> > > ---
> >
> > Acked-by: Aaron Conole <aconole@redhat.com>
> >
> > FYI, Fedora 38 also just got released.  Perhaps that can be a candidate
> > as well, but I didn't try it out.
> 
> At a first glance, gcc 13 raises some new warnings, at least for
> examples (ip-pipeline and ntb).
> We can switch to f38 once builds are fine with gcc 13.

Let's switch to Fedora 37 as a first step (we skipped Fedora 36).

Applied, thanks.
  

Patch

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index edd39cbd62..7322eb59b7 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -149,7 +149,7 @@  jobs:
       fail-fast: false
       matrix:
         config:
-          - image: fedora:35
+          - image: fedora:37
 
     steps:
     - name: Generate various keys
@@ -198,9 +198,9 @@  jobs:
       fail-fast: false
       matrix:
         config:
-          - image: fedora:35
+          - image: fedora:37
             compiler: gcc
-          - image: fedora:35
+          - image: fedora:37
             compiler: clang
 
     steps:
@@ -250,7 +250,7 @@  jobs:
       run: docker exec -i dpdk dnf update -y || true
     - name: Install packages
       run: docker exec -i dpdk dnf install -y ccache jansson-devel
-        libarchive-devel libatomic libbsd-devel libbpf-devel libfdt-devel
+        libarchive-devel libatomic libbsd-devel libxdp-devel libfdt-devel
         libpcap-devel ninja-build numactl-devel openssl-devel python3-pip
         python3-pyelftools python3-setuptools python3-wheel rdma-core-devel
         zlib-devel