From patchwork Thu Oct 9 09:21:26 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ilya Maximets X-Patchwork-Id: 2147528 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=openvswitch.org (client-ip=2605:bc80:3010::136; helo=smtp3.osuosl.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=patchwork.ozlabs.org) Received: from smtp3.osuosl.org (smtp3.osuosl.org [IPv6:2605:bc80:3010::136]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4cj4Dj6bM1z1y1V for ; Thu, 9 Oct 2025 20:23:33 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id 81D47612A5; Thu, 9 Oct 2025 09:23:32 +0000 (UTC) X-Virus-Scanned: amavis at osuosl.org Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP id tDUS1X2Lex7O; Thu, 9 Oct 2025 09:23:31 +0000 (UTC) X-Comment: SPF check N/A for local connections - client-ip=140.211.9.56; helo=lists.linuxfoundation.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver= DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org 9B2856121C Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by smtp3.osuosl.org (Postfix) with ESMTPS id 9B2856121C; Thu, 9 Oct 2025 09:23:31 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 8F2C1C060E; Thu, 9 Oct 2025 09:23:31 +0000 (UTC) X-Original-To: ovs-dev@openvswitch.org Delivered-To: ovs-dev@lists.linuxfoundation.org Received: from smtp3.osuosl.org (smtp3.osuosl.org [IPv6:2605:bc80:3010::136]) by lists.linuxfoundation.org (Postfix) with ESMTP id 05865C060D for ; Thu, 9 Oct 2025 09:23:30 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id F35456121A for ; Thu, 9 Oct 2025 09:23:04 +0000 (UTC) X-Virus-Scanned: amavis at osuosl.org Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP id yVSjyA7RfMDu for ; Thu, 9 Oct 2025 09:23:03 +0000 (UTC) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=209.85.221.66; helo=mail-wr1-f66.google.com; envelope-from=i.maximets.ovn@gmail.com; receiver= DMARC-Filter: OpenDMARC Filter v1.4.2 smtp3.osuosl.org 6AB4B611D6 Authentication-Results: smtp3.osuosl.org; dmarc=none (p=none dis=none) header.from=ovn.org DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org 6AB4B611D6 Received: from mail-wr1-f66.google.com (mail-wr1-f66.google.com [209.85.221.66]) by smtp3.osuosl.org (Postfix) with ESMTPS id 6AB4B611D6 for ; Thu, 9 Oct 2025 09:23:03 +0000 (UTC) Received: by mail-wr1-f66.google.com with SMTP id ffacd0b85a97d-3f99ac9acc4so640058f8f.3 for ; Thu, 09 Oct 2025 02:23:03 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760001781; x=1760606581; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=YGuHu6Y2oFA//mcAgArAs5M1wIQOwAmwlv+XvNhrVSs=; b=qsd91S6ygsWXlotaxbs64IWqpUOEkyHmlDZstC7UGxLO32fRtMeyOwWOGbUI/bqkn4 BcsCTP4gmdqQVuq5wKapnVNnTFzz9WNtZv1KqeYYrZk7x06a67keJhv3ee9W9MWzlJYj jen/aNMo8QIN8xrvxnwrpm84USxft3ZupEHAEPJtbJ/R/OK1mVujqbjK6hVx7Cdo249X NHkO8MkkDggG7N7zT39LWmoePCH3OKAsatBc8IGQXcSAh5r/ajY8ZkBzVC6shQrZNAsV J2dvpzcQQeTD6Cg62MUXSfI7O37tg9+alj9Api4OxuDFZ7CPO5hD13w/TIleZZ8dk5sm QCFw== X-Gm-Message-State: AOJu0YyX+SKnXa+kebpdMc5ZDKRDfOp7xXOKAA+KGykyHhPHXA9mOW01 HdZSGcYZDl+uIjo76pUP8zPmWgswHJSksukOeyjAjUMxyl5OlbAhI+jMx2c682i4 X-Gm-Gg: ASbGncvtM1rN1HfU/9Y+ZtnjGl69MH+zjq6THakmmrAMcsIYcm9L2K1eHBznurmQihl 5o/5bL6qRFggijXyaDLXwVEDYhH/N0sj0dM5i8DutgOkyA4aMBIS3MMujDCQSg0L/ANG9qh0g2U BUklfdv9V+VK0vsPdCc5g8CO8cNuYxJVyXYgjbQlvBcKaubCj6dCBGq168XVkMbmUTY3HGRt1es fkMYPrmleHn/O5YRpYTWmCKNt1xUSSRTUZqkavxTNIvAuZBxpXkahOaSO50sxVlBljVG+8cAHRn t+S4JnMsqZ1hEXhiTLhaFCRFW4m137qwUqYrzhl9pQ3vMfMkRwSRGQpF8uCcsIuEmLKteXb2bzy BlOwI5yAYCJhh147OG1pHMykI/OChtCWFk9fL2pGwv1cZF3Y3Mrof/eMtZN8zcVMNiCGGfwuI/4 PYp3obyotxH9E= X-Google-Smtp-Source: AGHT+IEBgQ7tEe4YUce74bKW5we9YcU5Y2Px96AsnGr/tI+Z357SbgeXlgl3w08aiSogfvaHGhru0w== X-Received: by 2002:a05:6000:2681:b0:407:4928:ac82 with SMTP id ffacd0b85a97d-4266e8dd3fcmr4274119f8f.53.1760001781244; Thu, 09 Oct 2025 02:23:01 -0700 (PDT) Received: from im-t490s.redhat.com (37-48-48-237.nat.epc.tmcz.cz. [37.48.48.237]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-4255d8f0392sm34313629f8f.42.2025.10.09.02.23.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 09 Oct 2025 02:23:00 -0700 (PDT) From: Ilya Maximets To: ovs-dev@openvswitch.org Cc: Ilya Maximets Date: Thu, 9 Oct 2025 11:21:26 +0200 Message-ID: <20251009092228.382349-7-i.maximets@ovn.org> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251009092228.382349-1-i.maximets@ovn.org> References: <20251009092228.382349-1-i.maximets@ovn.org> MIME-Version: 1.0 Subject: [ovs-dev] [PATCH 6/6] github: Add a job to build on ubuntu-14.04. X-BeenThere: ovs-dev@openvswitch.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: ovs-dev-bounces@openvswitch.org Sender: "dev" While adding new code we frequently miss that certain compiler features may be relatively new, or more often that some system headers are not available or do not have certain definitions in them. This results in builds failing on older systems. Adding a new CI job that runs inside Ubuntu 14.04 container, which is the oldest Ubuntu that is in the "legacy support" mode: https://ubuntu.com/about/release-cycle This image has GCC 4.8 that is missing a lot of modern features and it's based on Linux v3.13 kernel that also has a lot of definitions missing in uAPI headers, compared to modern ones. This makes this image a good candidate for a baseline "old distribution" testing. This job can't cover everything and there will be different configurations and distributions that may still fail, especially if they have custom backports or some packages much newer than others. But it should cover the vast majority of potential issues. Since we're running inside a very old container, we can't use any of the pre-defined GitHub workflows like 'checkout' or 'cache', as they are based on Node.js that is built for much newer version of Ubuntu and so requires much newer glibc to run. Hence doing everything manually. Need to disable SSL, as we require OpenSSL 1.1.1+, which can probably be built, but it seems like a bit of a waste of time to re-build so many large things from sources. Need to build a newer python though, as python >= 3.7 is required in order to build OVS. Building python 3.12 because it's the same as in other tests. We could also find and choose the latest 3.12.z release automatically, but it's much less code to just manually stick to the current latest 3.12.11. There should be no reason to update it frequently. Signed-off-by: Ilya Maximets Acked-by: Kevin Traynor Acked-by: Eelco Chaudron --- .github/workflows/build-and-test.yml | 39 ++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 1e70231f7..f7ca4d1f0 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -582,6 +582,45 @@ jobs: name: logs-osx-clang---disable-ssl path: config.log + build-old-linux-distribution: + env: + dependencies: git make automake libtool gcc libnuma-dev zlib1g-dev + python_version: 3.12.11 + + name: linux gcc (ubuntu-14.04) + runs-on: ubuntu-24.04 + container: ubuntu:14.04 + timeout-minutes: 30 + + strategy: + fail-fast: false + + steps: + - name: update APT cache + run: sudo apt update || true + + - name: install dependencies + run: sudo apt install -y ${{ env.dependencies }} + + - name: build python + run: | + git clone --branch v${{ env.python_version }} --depth 1 \ + https://github.com/python/cpython cpython + cd cpython && ./configure && sudo make -j4 install + python3 --version + + - name: checkout + run: | + SHA=${{ github.event.pull_request.head.sha || github.sha }} + git clone https://github.com/${{ github.repository }}.git ovs + cd ovs && git fetch origin $SHA && git checkout $SHA + + - name: prepare + run: cd ovs && ./boot.sh && ./configure --disable-ssl --enable-Werror + + - name: build + run: cd ovs && make -j4 + build-linux-deb: env: deb_dependencies: |