From patchwork Sun Nov 15 02:19:12 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tim Orling X-Patchwork-Id: 104081 Received: from mail-pj1-f49.google.com (mail-pj1-f49.google.com [209.85.216.49]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.1064.1794709174000554785 for ; Sat, 14 Nov 2026 18:19:34 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20260707 header.b=tkyG6bw6; spf=pass (domain: gmail.com, ip: 209.85.216.49, mailfrom: ticotimo@gmail.com) Received: by mail-pj1-f49.google.com with SMTP id 98e67ed59e1d1-3ae1da332bcso787729a91.2 for ; Sat, 14 Nov 2026 18:19:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20260707; t=1794709173; x=1795313973; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=IxQIJ/H9ZDA39BejsOkq5bLhL3ZRaynTDcM/9uwmkCQ=; b=tkyG6bw6pP/JUvwo7kENg8CeS++1Y4wLCUH8tdNQGrrWkHz1i6dzG01h9Ew5WmyZ5Z Ed+5mIHfMETCQCfeQnlRUlLynOXcazIOwrFMeYbB88gdKOdcrNZlDt7V++Zgc/lVYSjD L0wYCt7S8CtNg9PLfAKHyeXRjUyzCFn6OcaBADUoT8Sx3nuYgytrz+iEDy/7VWJMQW7A XxVBBw6gcwHlmUVynYh3U31ZNE6sPZxRZsdzxwEfwaiNphqIFNqaD0bqwmGlQ/ZobeJ9 o6+IsI8PfonxRR+eJIP8SHlZmT5nyLB3O9XN45/uf0PBM3HFi3qBghCf4YwkEQ44nK7/ WjHg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1794709173; x=1795313973; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=IxQIJ/H9ZDA39BejsOkq5bLhL3ZRaynTDcM/9uwmkCQ=; b=UuMnrKPd4Ox32v0Srlg2mgY3wEwEj6V4Aj0/6N8PYUQecVuk5fLw7NMZjnb4y/W4eH 8mZoGj6GWIk8svVtLPGTb7hGBrxyaXInOh3CROaTUVf6ona5DWKIAQsYlvdoYalBQYqb 8ZUxjOoVlbRH/7i9AHOzYMrlR3efEA97qg/JqUt+TWoIYcxkcZ+f8Hpn/7QXF0THkYvQ s/ipQtaLDGLHtJkbCR6cWFT+O+uOGtzQ2jnv5RzMuLCIl+UWzzlsn461PbzKDm8DfLh9 Nv56g8ONuGC3NsWeRwFb+YmOM6pIxTohpiCi05MsALnhM31S9l0ylvoEOpoP5He7sUOY jCmg== X-Gm-Message-State: APuU4Z94K0hcFOOtMl+AAIJP4Itn2UAaJ+XX+SWsilAiv7wq0F38Ho4L Ri0X/paf9L5ex6w4dWP8Fm8sEBQB5tPOcbMk2v/ORknLxCW0j1sqlNbkbuaAYQ== X-Gm-Gg: AYBFou3UVLP3jzXuJIgMuNzOKwX9bKBdU+I1yFdRFlf9FwC6HpxinwrNaS41BzWksdr IbzaQtozRYl3oZrXoIezWjtwLFEQxJYOH0ApKSMDeHOqer2ZQMjrdm+Pbe7WJjkmLatgGp8St/K JEatY3lPOvchnGIHigBjFAjv33VWEoaJViJfTmQg+RzkDx0gAns6LDe4d5McIPTwJvKJFLsncZ0 AO57LpvrvcsVkDOvdXk4ZD1rbuhjjp4xFDgsHRN0jLfc2KjnqUSI3s8kFMCUwn3Wxsi+5efO3q/ v6VhWmeQkY6KElUOrfKWMrC9UtsMckXBqZm0AGAfjqLD2Kt/VzZqgVcO+7ZRHKT8smnv8GI3JgH tGJ4iADDRpOY/vEI5HSeEtQavWFyYNLKwzrDSU/JA5GwiUrLmMyKsrvDl8HLij71sVv2N5rroPQ rfIHZ2jQY9ZtOIlO6nKd92DzMtskAxLnkNLW9qi37TgIFs262OfOKq/tRgxNRVLRS2i6rwDm7HY Wo/5Fv++nAV91A+VZBCWFd7A1IxB390W0jzBFTtPhfHovfDmu5dvkpX0M6/7Cm+hSLRQv3YEAGY X3UtvZKUgJ2jLwQ+xRnoeweND9wWz5OJwuo7TWo+gYX43MkI178T0xRyjFmGW7ogGwywwWrP+Hf WSZk4FPc= X-Received: by 2002:a17:90b:5910:b0:3b0:aaed:48d0 with SMTP id 98e67ed59e1d1-3b1b0b4d0d0mr6044381a91.37.1794709173259; Sat, 14 Nov 2026 18:19:33 -0800 (PST) Return-Path: Received: from localhost.localdomain ([69.9.132.159]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3b197c6c9c5sm15651545a91.1.2026.11.14.18.19.32 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Sat, 14 Nov 2026 18:19:32 -0800 (PST) From: Tim Orling X-Google-Original-From: Tim Orling To: openembedded-core@lists.openembedded.org Cc: Tim Orling Subject: [PATCH 1/3] lib/oe/distro_check: find the latest Ubuntu release from meta-release Date: Sat, 14 Nov 2026 18:19:12 -0800 Message-ID: <20261115021914.67744-2-tim.orling@konsulko.com> X-Mailer: git-send-email 2.56.1 In-Reply-To: <20261115021914.67744-1-tim.orling@konsulko.com> References: <20261115021914.67744-1-tim.orling@konsulko.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by lin-tor-korg-lkml-alma10-1 with HTTPS for ; Sun, 15 Nov 2026 02:19:40 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/250218 find_latest_ubuntu_release() asked the archive for its dists/ listing newest first and took the first *-updates entry, but the archive ignores the sort and lists the oldest first, so Ubuntu was always xenial. Read the release list that do-release-upgrade uses instead, and take the last supported release. Tested against changelogs.ubuntu.com and archive.ubuntu.com: resolute, with main and updates packages. [YOCTO #16509] AI-Generated: Claude Opus 5.5 Signed-off-by: Tim Orling --- meta/lib/oe/distro_check.py | 26 ++++++++++--------- .../oeqa/selftest/cases/oelib/distro_check.py | 26 +++++++++++++++++++ 2 files changed, 40 insertions(+), 12 deletions(-) diff --git a/meta/lib/oe/distro_check.py b/meta/lib/oe/distro_check.py index 223bed2ec2..814b35b8d8 100644 --- a/meta/lib/oe/distro_check.py +++ b/meta/lib/oe/distro_check.py @@ -131,23 +131,25 @@ def get_latest_released_debian_source_package_list(d): package_names |= get_debian_style_source_package_list(url, "updates", d) return latest, package_names -def find_latest_ubuntu_release(url, d): +def find_latest_ubuntu_release(d): """ - Find the latest listed Ubuntu release on the given ubuntu/dists/ URL. - - To avoid matching development releases look for distributions that have - updates, so the resulting distro could be any supported release. + Find the latest supported Ubuntu release, from the list of releases + that do-release-upgrade reads. The releases are listed oldest first. """ - url += "?C=M;O=D" # Descending Sort by Last Modified - for link in get_links_from_url(url, d): - if "-updates" in link: - distro = link.replace("-updates", "") - return distro - return "_NotFound_" + latest = "_NotFound_" + dist = None + listing = create_socket("https://changelogs.ubuntu.com/meta-release", d).read().decode("utf-8") + for line in listing.splitlines(): + key, _, value = line.partition(":") + if key == "Dist": + dist = value.strip() + elif key == "Supported" and value.strip() == "1" and dist: + latest = dist + return latest def get_latest_released_ubuntu_source_package_list(d): "Returns list of all the name os packages in the latest ubuntu distro" - latest = find_latest_ubuntu_release("http://archive.ubuntu.com/ubuntu/dists/", d) + latest = find_latest_ubuntu_release(d) url = "http://archive.ubuntu.com/ubuntu/dists/%s/main/source/Sources.gz" % latest package_names = get_debian_style_source_package_list(url, "main", d) url = "http://archive.ubuntu.com/ubuntu/dists/%s-updates/main/source/Sources.gz" % latest diff --git a/meta/lib/oeqa/selftest/cases/oelib/distro_check.py b/meta/lib/oeqa/selftest/cases/oelib/distro_check.py index f47d1dd4a4..7545fa0c42 100644 --- a/meta/lib/oeqa/selftest/cases/oelib/distro_check.py +++ b/meta/lib/oeqa/selftest/cases/oelib/distro_check.py @@ -31,6 +31,32 @@ class TestDebianStyleSourcePackageList(TestCase): def test_xz(self): self.check("http://example.com/Sources.xz", lzma.compress(SOURCES)) +META_RELEASE = b"""Dist: noble +Name: Noble Numbat +Version: 24.04.5 LTS +Supported: 1 + +Dist: questing +Name: Questing Quokka +Version: 25.10 +Supported: 0 + +Dist: resolute +Name: Resolute Raccoon +Version: 26.04.1 LTS +Supported: 1 + +Dist: zzz +Name: Not supported any more +Version: 99.10 +Supported: 0 +""" + +class TestFindLatestUbuntuRelease(TestCase): + def test_latest_supported(self): + with mock.patch.object(oe.distro_check, "create_socket", return_value=io.BytesIO(META_RELEASE)): + self.assertEqual(oe.distro_check.find_latest_ubuntu_release(None), "resolute") + class TestCreateDistroPackagesList(TestCase): def test_skip_failed_distro(self): """ From patchwork Sun Nov 15 02:19:13 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tim Orling X-Patchwork-Id: 104080 Received: from mail-pl1-f182.google.com (mail-pl1-f182.google.com [209.85.214.182]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.1066.1794709176870045690 for ; Sat, 14 Nov 2026 18:19:36 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20260707 header.b=qnhQdcgT; spf=pass (domain: gmail.com, ip: 209.85.214.182, mailfrom: ticotimo@gmail.com) Received: by mail-pl1-f182.google.com with SMTP id d9443c01a7336-2e977109392so12788815ad.0 for ; Sat, 14 Nov 2026 18:19:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20260707; t=1794709176; x=1795313976; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=PHJFeKPh9q+8Bgo7YqhSwhLPT8bJoyiRvshXUshE0KM=; b=qnhQdcgTucX5iIJE/3A6F/7pypcrj7zZkq2tL4r55uEIFP4RTqmMAVBo218yNPM657 W/3Mga5ZZL1XAXmOdWm28q7FWzH8qO0cSU66XqwDLZ60zpQeJaFjNEh5var3Nbv8+eM0 aoXdpwUL5C/cCWVakth0Ntjjm0oAT2xvVG2f0hkJ6avhCVcnMhGIimRQvaiZst1UstZV gDmDXSQW14L09Bmh1KGCCxIcCJOCbLva1jmxbVtdQ+qbN1bhiRHGNqQKZfmyfCTgEcOY 7Fyprnr+d1N6Z/JUoGxGkVYre2bf0ZRaQQLpcOHmNhhgV5adcUAMgMwZ0HebvcM8x0En h+TA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1794709176; x=1795313976; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=PHJFeKPh9q+8Bgo7YqhSwhLPT8bJoyiRvshXUshE0KM=; b=b2yJcMm8L1nTOSmvZycvZdo69x+u43sRDhJQuZFHtSsjs5QkzgBYgV08lr/zl+wEK5 wwSfMp8eC+LUrQILIVUlwhUffvK337cpmHYWcs1QSl//04EV/B7uZ3oA+aV/xJd0Ui7I tYF/3ScQWqT+xtTBRlJ8QJ4pYci+z0awgS+Vh9A+zYHRvGBXVbpSu+t9mcPvx9knUTxc MKF+5YTc/fJzBKInhl0y8wC8VBV4Q/By5jm/VezH762UG5iIauKKCE9kWIMtNhveRqLu xiKciIx/3JOhBdZGL0B65t9/nvz91i7/gNYBUcN2UvNjBwgVUsAANPnuiUloUKlX4IJh klog== X-Gm-Message-State: APuU4Z8vJGkVnn5+KF+OgDdUqBP/LPIMDunsB8ffwwtHW0dAWTxuptnG EY0AfsxxSScPz+cYO4kfp3f+GI3rB5rX2cEFy0+VSZEameQE5NniOszs883ZPA== X-Gm-Gg: AYBFou26ILZfUAq71TDJ8gR/ObngHm/VZhbmWYVzZOaqJvh3ab8qIbmbgTa9BoiTn5X A1ECFNJhlrpaAApq8nEQKJvWz7NHBfOcM+674gyJYbpSQj3h7CCcJ2MlDnVlG1/lnlNsRDjfMDk pGUn088aqkqHC/MqcD0YsacqUIpvKtWKktY8sHzbw/buHTQ1H5WQuFyvb0Z3xqGIDSrTjCsulH/ iIQVV8O+yAMhvp2vY/uCwJkqsGEUPHwP6K0j936biJ4Wd2cvI5F+xgs6Uod5HjHND0lCSeWgpiV oDeLJOgRkUEXGwjEooGDz60TTxzmW6DXBBF1ophx424XXQyCOQREra7XWI0/su/5xjQwfT3TGVv Ix4pQambXhVR4GJVfXdlp4M5Vygy531QpBo/TLNbdiBa3XWMiq3rnc8Sncp23xaXDCsEKzJqoXo QgEyUXqVIyfCiRSxvRyq/UBABIXYNQizGMdDfhU7DfoqhpoUB9aWogCko/1yvZi5iromCx6onQm w3UidKITH5SXeEw4sqvT+dEU38RW3CmsvzqQDwaKGNoxG7wrXITIC7Vck0lt4TISpqW7MUUgL3P smOO0seTURID+N8fzsHxmwpzdyt5SAAJH6TwFoknxiKcX/DB0T+XwS0896uFPg== X-Received: by 2002:a17:90b:498f:b0:3a8:59d3:530f with SMTP id 98e67ed59e1d1-3b1b0b86af7mr6271692a91.57.1794709176122; Sat, 14 Nov 2026 18:19:36 -0800 (PST) Return-Path: Received: from localhost.localdomain ([69.9.132.159]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3b197c6c9c5sm15651545a91.1.2026.11.14.18.19.34 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Sat, 14 Nov 2026 18:19:35 -0800 (PST) From: Tim Orling X-Google-Original-From: Tim Orling To: openembedded-core@lists.openembedded.org Cc: Tim Orling Subject: [PATCH 2/3] lib/oe/distro_check: fix the openSUSE Leap package lists Date: Sat, 14 Nov 2026 18:19:13 -0800 Message-ID: <20261115021914.67744-3-tim.orling@konsulko.com> X-Mailer: git-send-email 2.56.1 In-Reply-To: <20261115021914.67744-1-tim.orling@konsulko.com> References: <20261115021914.67744-1-tim.orling@konsulko.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by lin-tor-korg-lkml-alma10-1 with HTTPS for ; Sun, 15 Nov 2026 02:19:39 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/250219 download.opensuse.org's listings now link to "./15.6/", which find_latest_numeric_release() couldn't parse, so the Leap URLs had an empty release and failed with HTTP 404. Accept "./" links, ignore Leap 42.x (which came before 15.0), read the source RPMs from repo/oss/src/, where they now are, and allow for there being no update repository, as for Leap 16. Tested against download.opensuse.org: Leap 16.1 is fetched again. [YOCTO #16510] AI-Generated: Claude Opus 5.5 Signed-off-by: Tim Orling --- meta/lib/oe/distro_check.py | 30 ++++++++++++++++--- .../oeqa/selftest/cases/oelib/distro_check.py | 19 ++++++++++++ 2 files changed, 45 insertions(+), 4 deletions(-) diff --git a/meta/lib/oe/distro_check.py b/meta/lib/oe/distro_check.py index 814b35b8d8..e37599c5d9 100644 --- a/meta/lib/oe/distro_check.py +++ b/meta/lib/oe/distro_check.py @@ -22,7 +22,11 @@ def get_links_from_url(url, d): soup = BeautifulSoup(create_socket(url,d), "html.parser", parse_only=SoupStrainer("a")) hyperlinks = [] for line in soup.find_all('a', href=True): - hyperlinks.append(line['href'].strip('/')) + href = line['href'] + # Some listings (e.g. MirrorCache) link to "./name/" + if href.startswith('./'): + href = href[2:] + hyperlinks.append(href.strip('/')) return hyperlinks def find_latest_numeric_release(url, d): @@ -84,12 +88,30 @@ def get_latest_released_fedora_source_package_list(d): package_names |= get_source_package_list_from_url_by_letter("http://archive.fedoraproject.org/pub/fedora/linux/updates/%s/SRPMS/" % latest, "updates", d) return latest, package_names +def find_latest_opensuse_leap_release(url, d): + "Find the latest Leap release on the given url, ignoring Leap 42.x, which came before 15.0" + releases = [] + for link in get_links_from_url(url, d): + try: + version = tuple(int(n) for n in link.split(".")) + except ValueError: + continue + if version[0] != 42: + releases.append((version, link)) + return max(releases)[1] if releases else "_NotFound_" + def get_latest_released_opensuse_source_package_list(d): "Returns list of all the name os packages in the latest opensuse distro" - latest = find_latest_numeric_release("http://download.opensuse.org/source/distribution/leap", d) + from urllib.error import HTTPError + latest = find_latest_opensuse_leap_release("http://download.opensuse.org/source/distribution/leap/", d) - package_names = get_source_package_list_from_url("http://download.opensuse.org/source/distribution/leap/%s/repo/oss/suse/src/" % latest, "main", d) - package_names |= get_source_package_list_from_url("http://download.opensuse.org/update/leap/%s/oss/src/" % latest, "updates", d) + package_names = get_source_package_list_from_url("http://download.opensuse.org/source/distribution/leap/%s/repo/oss/src/" % latest, "main", d) + # Leap 16 has no separate update repository + try: + package_names |= get_source_package_list_from_url("http://download.opensuse.org/update/leap/%s/oss/src/" % latest, "updates", d) + except HTTPError as e: + if e.code != 404: + raise return latest, package_names def get_latest_released_clear_source_package_list(d): diff --git a/meta/lib/oeqa/selftest/cases/oelib/distro_check.py b/meta/lib/oeqa/selftest/cases/oelib/distro_check.py index 7545fa0c42..7add8d70f9 100644 --- a/meta/lib/oeqa/selftest/cases/oelib/distro_check.py +++ b/meta/lib/oeqa/selftest/cases/oelib/distro_check.py @@ -57,6 +57,25 @@ class TestFindLatestUbuntuRelease(TestCase): with mock.patch.object(oe.distro_check, "create_socket", return_value=io.BytesIO(META_RELEASE)): self.assertEqual(oe.distro_check.find_latest_ubuntu_release(None), "resolute") +class TestOpenSUSE(TestCase): + LISTING = b""".. 15.0-Current/ +15.6/ 16.0/ 42.3/""" + + def test_links_relative_to_current_directory(self): + try: + from bs4 import BeautifulSoup, SoupStrainer + except ImportError: + self.skipTest("bs4 is not available") + with mock.patch.object(oe.distro_check, "create_socket", return_value=io.BytesIO(self.LISTING)): + links = oe.distro_check.get_links_from_url("http://example.com/leap/", None) + self.assertEqual(links, ["..", "15.0-Current", "15.6", "16.0", "42.3"]) + + def test_latest_leap_release(self): + # Leap 42.x came before 15.0 + links = ["..", "15.0-Current", "15.6", "16.0", "16.1", "42.2", "42.3", "42.3-Current"] + with mock.patch.object(oe.distro_check, "get_links_from_url", return_value=links): + self.assertEqual(oe.distro_check.find_latest_opensuse_leap_release("http://example.com/leap/", None), "16.1") + class TestCreateDistroPackagesList(TestCase): def test_skip_failed_distro(self): """ From patchwork Sun Nov 15 02:19:14 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tim Orling X-Patchwork-Id: 104082 Received: from mail-pl1-f169.google.com (mail-pl1-f169.google.com [209.85.214.169]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.1000.1794709179573814094 for ; Sat, 14 Nov 2026 18:19:39 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20260707 header.b=cjbkapgc; spf=pass (domain: gmail.com, ip: 209.85.214.169, mailfrom: ticotimo@gmail.com) Received: by mail-pl1-f169.google.com with SMTP id d9443c01a7336-2e946155442so28212895ad.3 for ; Sat, 14 Nov 2026 18:19:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20260707; t=1794709179; x=1795313979; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=HWhlih1UIGEC7C8IHNZPd4lwkm+odTxWgMQ0Hmrhn1E=; b=cjbkapgcq8BO34dDTU7WRGSwAQV5ccYMO3hS/3RMK4k989XSzFjEC7NWZ5jb4ReGCM sPsinSb6/Cqq+ml3V395qiJ07yfJ1MOU0JrdgAlmm4qqdV5gDFYK3lE1HxBh/CQPvbjN 5XxCgXrrjRQeY8N73S3ttTXtiXJrDtGFvD6Ehrhe9Z8ODnt+XvfZ+0I7sy5vNcAiAdzo jxQPOot0H4egYni8YePiekFbxpslq/+pQRAFRAgkdI1gf5WbgO1C9IX587jQVgqkHgi0 KWUG1P4k+1VLs2w2uHuBVvPNwpXMgdMUBJDw0MFO9Gks0bO6oqkaCewBqYSbJf0j6IGX FK6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1794709179; x=1795313979; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=HWhlih1UIGEC7C8IHNZPd4lwkm+odTxWgMQ0Hmrhn1E=; b=SaOPpzU1Shj4gejdYCnBJsTppY3aJxZBnO2d0J37Nzc59lbkWCpX8ZE4a479Z3uOGt dm3hzhkH42/AX7ExsJ/nLHUZuFY2U/IOP10c44JRj5UDHpU7owwAdUpne7p4QV3hxnl1 NBJZjFdUs7yM+uRCRSw53epL1SUEiXH50QKV0vqC30AThFNL7pv4a0orZDyeCwjiEfOP wqRzFLmJrOV5OcB6VOLwrck1m4haxEL0Cvxelju3rv1Axgi8teGaZoyFqTfxmGvoHdMm 5yDkv+Lz4zbilJ+7EJBH4eDVKQA1F9VmH/k7V5aJYxu7Xy1XQsu08kruZsAF2O/Lndz9 vLUQ== X-Gm-Message-State: APuU4Z9ELjvwIUlzzGFP8mpQ1R92W8OMaSHycmxk5Xv7zfUxj8z3xeQ1 NNNw0YRJjIR0lZBtSzpJMFqJBLZz0JxIyEZfSlfGuIkiFcx/Q+zmpapx+OOv7g== X-Gm-Gg: AYBFou35aEW5fv5TsuhGVUUmYykWF9iTtGD8mTMf/yMAZlabXNzLF+M2b7k5TSoOlOJ 1cKI4bOdZkmJPJRjo0ay0JpVTgT/ChbrcjyIMnSrthrp/gnC76EQ3Cud41FdqaaNmMJo74JRcay Ch9DK9sbVSqUxKXFevAL8XkL55k9SgDE2Kyw82SyxVIs8CC6uYnCR6l84l5a2pc/jyQ0p42nez8 8iSnb3XSfv+iH5/DoJqwXoz/FekEp1NbwZ8LHBE59rjYPRY7Xa67HdxhT1DBcSyMXXS5D9etqru jHz9DU9Wd58E6PFcHO3MqT6gUz+r0byqFPvbIZ9mGDO8gdZTPe/TxVCeM7NA+qyGd2/87TACyZW sHo4RdXSITl8HpJqjd8LigrdIhK2R5vsruA6PMNWLjUH9DVO9NhvbjPFNZKHaFUPZYMeAiPepuh V+L/xPflKXs93QRrAqPb/PJL/Zi6itvrFnkU4e3ibSutI5MAFWj49htJXcdx8hLROKFnTVeUbYi K4ZBzoYfUrgiVvk1j3ILQvhU2M4yA4E1DEhqOyhJth71kwyQVNY5vIaqYr2lhZ5Nh4spK0iInxQ pyLUibGUQImy5ovoLiPdYJGcROFjw5Hz75omyMN0mcQ/Y4XDstaX2RtGMxTp0wkd92zQWVI6TPJ 3/WqDM7o= X-Received: by 2002:a17:90b:28cd:b0:3a5:147a:3b63 with SMTP id 98e67ed59e1d1-3b1b087c1c9mr6197523a91.8.1794709178845; Sat, 14 Nov 2026 18:19:38 -0800 (PST) Return-Path: Received: from localhost.localdomain ([69.9.132.159]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3b197c6c9c5sm15651545a91.1.2026.11.14.18.19.37 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Sat, 14 Nov 2026 18:19:37 -0800 (PST) From: Tim Orling X-Google-Original-From: Tim Orling To: openembedded-core@lists.openembedded.org Cc: Tim Orling Subject: [PATCH 3/3] lib/oe/distro_check: drop Clear Linux Date: Sat, 14 Nov 2026 18:19:14 -0800 Message-ID: <20261115021914.67744-4-tim.orling@konsulko.com> X-Mailer: git-send-email 2.56.1 In-Reply-To: <20261115021914.67744-1-tim.orling@konsulko.com> References: <20261115021914.67744-1-tim.orling@konsulko.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by lin-tor-korg-lkml-alma10-1 with HTTPS for ; Sun, 15 Nov 2026 02:19:40 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/250220 Clear Linux OS was discontinued in 2025 and download.clearlinux.org no longer resolves, so its package list could only ever fail. [YOCTO #16511] AI-Generated: Claude Opus 5.5 Signed-off-by: Tim Orling --- meta/lib/oe/distro_check.py | 6 ------ meta/lib/oeqa/selftest/cases/oelib/distro_check.py | 4 ++-- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/meta/lib/oe/distro_check.py b/meta/lib/oe/distro_check.py index e37599c5d9..03237804b2 100644 --- a/meta/lib/oe/distro_check.py +++ b/meta/lib/oe/distro_check.py @@ -114,11 +114,6 @@ def get_latest_released_opensuse_source_package_list(d): raise return latest, package_names -def get_latest_released_clear_source_package_list(d): - latest = find_latest_numeric_release("https://download.clearlinux.org/releases/", d) - package_names = get_source_package_list_from_url("https://download.clearlinux.org/releases/%s/clear/source/SRPMS/" % latest, "main", d) - return latest, package_names - def find_latest_debian_release(url, d): "Find the latest listed debian release on the given url" @@ -188,7 +183,6 @@ def create_distro_packages_list(distro_check_dir, d): ("Ubuntu", get_latest_released_ubuntu_source_package_list), ("Fedora", get_latest_released_fedora_source_package_list), ("openSUSE", get_latest_released_opensuse_source_package_list), - ("Clear", get_latest_released_clear_source_package_list), ) for name, fetcher_func in per_distro_functions: diff --git a/meta/lib/oeqa/selftest/cases/oelib/distro_check.py b/meta/lib/oeqa/selftest/cases/oelib/distro_check.py index 7add8d70f9..d783384251 100644 --- a/meta/lib/oeqa/selftest/cases/oelib/distro_check.py +++ b/meta/lib/oeqa/selftest/cases/oelib/distro_check.py @@ -89,7 +89,7 @@ class TestCreateDistroPackagesList(TestCase): return "1.0", {"foo:main"} fetchers = {"get_latest_released_%s_source_package_list" % name: ok - for name in ("ubuntu", "fedora", "opensuse", "clear")} + for name in ("ubuntu", "fedora", "opensuse")} fetchers["get_latest_released_debian_source_package_list"] = fail with tempfile.TemporaryDirectory() as tmpdir, \ @@ -99,6 +99,6 @@ class TestCreateDistroPackagesList(TestCase): oe.distro_check.create_distro_packages_list(tmpdir, None) lists = sorted(os.listdir(os.path.join(tmpdir, "package_lists"))) - self.assertEqual(lists, ["Clear-1.0", "Fedora-1.0", "Ubuntu-1.0", "openSUSE-1.0"]) + self.assertEqual(lists, ["Fedora-1.0", "Ubuntu-1.0", "openSUSE-1.0"]) warn.assert_called_once() self.assertIn("Debian", warn.call_args[0][0])