From patchwork Sat Jun 6 19:54:48 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tim Orling X-Patchwork-Id: 89440 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 37A0ECD8C93 for ; Sat, 6 Jun 2026 19:55:10 +0000 (UTC) Received: from mail-pg1-f175.google.com (mail-pg1-f175.google.com [209.85.215.175]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.21921.1780775701201488359 for ; Sat, 06 Jun 2026 12:55:01 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20251104 header.b=HLe806Gc; spf=pass (domain: gmail.com, ip: 209.85.215.175, mailfrom: ticotimo@gmail.com) Received: by mail-pg1-f175.google.com with SMTP id 41be03b00d2f7-c8584e80d59so1186172a12.2 for ; Sat, 06 Jun 2026 12:55:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780775700; x=1781380500; darn=lists.yoctoproject.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=FzfMX6Pjy1DT49TWaYR2ywXsvFRdVHg0TcdXy1vSh2k=; b=HLe806Gc62ib9MTKvmLkPzgdzSXfIUb7xD6w/rThXIiP/YO9hjX5yjwhQbzEYmgGAQ 4SzYBH0I9KWt8W2A1PozZhLmVRgGtRQo4E74UouUhn5e6Pz2uc2SlLWnMY2316vrfWGV nZ/XdmUStdRvv7a8msx+GVtLBSBDotnqHWta/awYIxv20UX5b1BwTRpII3tXFI8/L6eB 6JfNu0jMxs2Isdiu8RQD/HttAKVWt1enhNmGfZ6a/Sem6v/u2UJEYYl1Zdl0i/Y3dgog mqAK61WHeNaIPldWb5TYPx4lK/rRx79UZmDTn6ANY0vdR5Tc7vkHxildimR1wCfU2UQZ 3qog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780775700; x=1781380500; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=FzfMX6Pjy1DT49TWaYR2ywXsvFRdVHg0TcdXy1vSh2k=; b=p4+xS2DOStt+BmqiqxIsIqwd8z66VyVShWUDtV1e9ySwdsKv6jWNp5t7RSb937F1Q0 QMcsmTPr4Q3f5+Yd2oKkU6HqYiJEwof49yWcDH7mi3xt1ALR6RLL7fhzjogCPhHaIzOQ IcyqrsuCAfHvRg7S0Dia3jqcLZJRTUpYzRoeDX8XQjbDSDlwcaQMzEKECnRaIyZKM6wR p+fo0IG+r+PF1p2fXT+ZnCFDlFbLJbsXAqiwC/SEvmHBl5FSIwA47l3q5FIC/ya6oNet Ovh5i7GbtVLqipNYKJWfQOhnD5+1wYz5fkNdVUQuuEI4FjCr275sn3wSBpaNdI2vCrBS 6upg== X-Gm-Message-State: AOJu0YzT0bSn1wk9YTSXbSi/TL3fEvyAxkPHo0G8zklO/ZM4JboQw2fl U5TnU1FUtd7VTp1sQk1i/mgiYzkZPhRUW5cF9y6xJEOK+k1E+GmF/5TJchihLQ== X-Gm-Gg: Acq92OFtzEaE3mVXIapgcsEXP8t3rpthTyw1Q2lZ1s17GpHix4YFFxzbfGqzIfTLTwG rV+Y277EF9SodEOjo49a8jSHz9/+LiTOSqOODFibDh0QFYnUtkjU8x07DvQeKEmMW715QJ89k19 irJ20xZ1dqJUiPnwAxRJb2WaM40exLEvOg7p3wq3bNcYPkbdAOs0kJRpOrCxQ9lsfOVPqiVSyET lfnTnfgH5cZ0MXZd4NymlEiSwQuhDgKCy4sx4ltrP7e2qguB5vfKs5wIwG6N0xHwTh5DPBzYF1D WAtWSPer2OiIQQowC/TXLZIRYCDepiarDGyUR3H6ZbVJeiUUD1uBIXX/xLOYtMmuGlw4Icbinmz fFixzcNaoDEZ6gT3wU3SyO5wGP0+RzSm1SyELNicqmXwANti9LET3DMOgyW380FWVACqu2OHHjL nydelR28KDhzDuIhY979dl/K1tM/KHaR6uoL8EM1diMggZOgsAMtIaqorf+7YJfg+OzMu+FTYo2 3uQZXKce3YaFziCU5zMSBv9sZirXk3OAA== X-Received: by 2002:a05:6a20:e390:b0:3b4:8880:2089 with SMTP id adf61e73a8af0-3b4ccd60984mr11621423637.16.1780775700093; Sat, 06 Jun 2026 12:55:00 -0700 (PDT) Received: from localhost.localdomain (c-98-232-159-17.hsd1.or.comcast.net. [98.232.159.17]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-c85df04311bsm10943179a12.9.2026.06.06.12.54.58 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Sat, 06 Jun 2026 12:54:59 -0700 (PDT) From: Tim Orling X-Google-Original-From: Tim Orling To: yocto-patches@lists.yoctoproject.org Cc: Tim Orling Subject: [layerindex-web][PATCH 1/3] Update git.openembedded.org URLs Date: Sat, 6 Jun 2026 12:54:48 -0700 Message-ID: <20260606195450.59191-1-tim.orling@konsulko.com> X-Mailer: git-send-email 2.54.0 MIME-Version: 1.0 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Sat, 06 Jun 2026 19:55:10 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/yocto-patches/message/4166 The old cgit.openembedded.org URLs redirect to git.openembedded. Update all references to use the new URLs and switch from http to https. While we are here, use https for github, gitlab and bitbucket, as http:// URLs redirect for all of these providers as well. Fixes [Yocto #16272] Signed-off-by: Tim Orling --- layerindex/models.py | 2 ++ layerindex/tools/import_layer.py | 32 +++++++++++++------------- layerindex/tools/import_wiki_layers.py | 32 +++++++++++++------------- templates/layerindex/editlayer.html | 32 +++++++++++++------------- 4 files changed, 50 insertions(+), 48 deletions(-) diff --git a/layerindex/models.py b/layerindex/models.py index 6e96342..864264b 100644 --- a/layerindex/models.py +++ b/layerindex/models.py @@ -541,6 +541,8 @@ class Source(models.Model): return self.url elif self.url.startswith('git://github.com'): return drop_dotgit('https' + self.url[3:]) + elif self.url.startswith('git://git.openembedded.org'): + return drop_dotgit('https://git.openembedded.org' + self.url[26:]) elif self.url.startswith('git://git.yoctoproject.org'): return drop_dotgit('https://git.yoctoproject.org' + self.url[26:]) elif self.url.startswith('git://git.kernel.org'): diff --git a/layerindex/tools/import_layer.py b/layerindex/tools/import_layer.py index 4af062e..79c679e 100755 --- a/layerindex/tools/import_layer.py +++ b/layerindex/tools/import_layer.py @@ -34,10 +34,10 @@ def set_vcs_fields(layer, repoval): layer.vcs_url = repoval if repoval.startswith('git://git.openembedded.org/'): reponame = re.sub('^.*/', '', repoval) - layer.vcs_web_url = 'http://cgit.openembedded.org/' + reponame - layer.vcs_web_tree_base_url = 'http://cgit.openembedded.org/' + reponame + '/tree/%path%?h=%branch%' - layer.vcs_web_file_base_url = 'http://cgit.openembedded.org/' + reponame + '/tree/%path%?h=%branch%' - layer.vcs_web_commit_url = 'http://cgit.openembedded.org/' + reponame + '/commit/?id=%hash%' + layer.vcs_web_url = 'https://git.openembedded.org/' + reponame + layer.vcs_web_tree_base_url = 'https://git.openembedded.org/' + reponame + '/tree/%path%?h=%branch%' + layer.vcs_web_file_base_url = 'https://git.openembedded.org/' + reponame + '/tree/%path%?h=%branch%' + layer.vcs_web_commit_url = 'https://git.openembedded.org/' + reponame + '/commit/?id=%hash%' elif repoval.startswith('git://git.yoctoproject.org/'): reponame = re.sub('^.*/', '', repoval) layer.vcs_web_url = 'https://git.yoctoproject.org/' + reponame @@ -47,24 +47,24 @@ def set_vcs_fields(layer, repoval): elif repoval.startswith('git://github.com/') or repoval.startswith('http://github.com/') or repoval.startswith('https://github.com/'): reponame = re.sub('^.*github.com/', '', repoval) reponame = re.sub('.git$', '', reponame) - layer.vcs_web_url = 'http://github.com/' + reponame - layer.vcs_web_tree_base_url = 'http://github.com/' + reponame + '/tree/%branch%/' - layer.vcs_web_file_base_url = 'http://github.com/' + reponame + '/blob/%branch%/' - layer.vcs_web_commit_url = 'http://github.com/' + reponame + '/commit/%hash%' + layer.vcs_web_url = 'https://github.com/' + reponame + layer.vcs_web_tree_base_url = 'https://github.com/' + reponame + '/tree/%branch%/' + layer.vcs_web_file_base_url = 'https://github.com/' + reponame + '/blob/%branch%/' + layer.vcs_web_commit_url = 'https://github.com/' + reponame + '/commit/%hash%' elif repoval.startswith('git://gitlab.com/') or repoval.startswith('http://gitlab.com/') or repoval.startswith('https://gitlab.com/'): reponame = re.sub('^.*gitlab.com/', '', repoval) reponame = re.sub('.git$', '', reponame) - layer.vcs_web_url = 'http://gitlab.com/' + reponame - layer.vcs_web_tree_base_url = 'http://gitlab.com/' + reponame + '/tree/%branch%/' - layer.vcs_web_file_base_url = 'http://gitlab.com/' + reponame + '/blob/%branch%/' - layer.vcs_web_commit_url = 'http://gitlab.com/' + reponame + '/commit/%hash%' + layer.vcs_web_url = 'https://gitlab.com/' + reponame + layer.vcs_web_tree_base_url = 'https://gitlab.com/' + reponame + '/tree/%branch%/' + layer.vcs_web_file_base_url = 'https://gitlab.com/' + reponame + '/blob/%branch%/' + layer.vcs_web_commit_url = 'https://gitlab.com/' + reponame + '/commit/%hash%' elif repoval.startswith('git://bitbucket.org/') or repoval.startswith('http://bitbucket.org/') or repoval.startswith('https://bitbucket.org/'): reponame = re.sub('^.*bitbucket.org/', '', repoval) reponame = re.sub('.git$', '', reponame) - layer.vcs_web_url = 'http://bitbucket.org/' + reponame - layer.vcs_web_tree_base_url = 'http://bitbucket.org/' + reponame + '/src/%branch%/%path%?at=%branch%' - layer.vcs_web_file_base_url = 'http://bitbucket.org/' + reponame + '/src/%branch%/%path%?at=%branch%' - layer.vcs_web_commit_url = 'http://bitbucket.org/' + reponame + '/commits/%hash%' + layer.vcs_web_url = 'https://bitbucket.org/' + reponame + layer.vcs_web_tree_base_url = 'https://bitbucket.org/' + reponame + '/src/%branch%/%path%?at=%branch%' + layer.vcs_web_file_base_url = 'https://bitbucket.org/' + reponame + '/src/%branch%/%path%?at=%branch%' + layer.vcs_web_commit_url = 'https://bitbucket.org/' + reponame + '/commits/%hash%' def readme_extract(readmefn): diff --git a/layerindex/tools/import_wiki_layers.py b/layerindex/tools/import_wiki_layers.py index a9508de..061f6df 100755 --- a/layerindex/tools/import_wiki_layers.py +++ b/layerindex/tools/import_wiki_layers.py @@ -98,10 +98,10 @@ def main(): layer.vcs_url = repoval if repoval.startswith('git://git.openembedded.org/'): reponame = re.sub('^.*/', '', repoval) - layer.vcs_web_url = 'http://cgit.openembedded.org/' + reponame - layer.vcs_web_tree_base_url = 'http://cgit.openembedded.org/' + reponame + '/tree/%path%?h=%branch%' - layer.vcs_web_file_base_url = 'http://cgit.openembedded.org/' + reponame + '/tree/%path%?h=%branch%' - layer.vcs_web_commit_url = 'http://cgit.openembedded.org/' + reponame + '/commit/?id=%hash%' + layer.vcs_web_url = 'https://git.openembedded.org/' + reponame + layer.vcs_web_tree_base_url = 'https://git.openembedded.org/' + reponame + '/tree/%path%?h=%branch%' + layer.vcs_web_file_base_url = 'https://git.openembedded.org/' + reponame + '/tree/%path%?h=%branch%' + layer.vcs_web_commit_url = 'https://git.openembedded.org/' + reponame + '/commit/?id=%hash%' elif repoval.startswith('git://git.yoctoproject.org/'): reponame = re.sub('^.*/', '', repoval) layer.vcs_web_url = 'https://git.yoctoproject.org/' + reponame @@ -111,24 +111,24 @@ def main(): elif repoval.startswith('git://github.com/') or repoval.startswith('http://github.com/') or repoval.startswith('https://github.com/'): reponame = re.sub('^.*github.com/', '', repoval) reponame = re.sub('.git$', '', reponame) - layer.vcs_web_url = 'http://github.com/' + reponame - layer.vcs_web_tree_base_url = 'http://github.com/' + reponame + '/tree/%branch%/' - layer.vcs_web_file_base_url = 'http://github.com/' + reponame + '/blob/%branch%/' - layer.vcs_web_commit_url = 'http://github.com/' + reponame + '/commit/%hash%' + layer.vcs_web_url = 'https://github.com/' + reponame + layer.vcs_web_tree_base_url = 'https://github.com/' + reponame + '/tree/%branch%/' + layer.vcs_web_file_base_url = 'https://github.com/' + reponame + '/blob/%branch%/' + layer.vcs_web_commit_url = 'https://github.com/' + reponame + '/commit/%hash%' elif repoval.startswith('git://gitlab.com/') or repoval.startswith('http://gitlab.com/') or repoval.startswith('https://gitlab.com/'): reponame = re.sub('^.*gitlab.com/', '', repoval) reponame = re.sub('.git$', '', reponame) - layer.vcs_web_url = 'http://gitlab.com/' + reponame - layer.vcs_web_tree_base_url = 'http://gitlab.com/' + reponame + '/tree/%branch%/' - layer.vcs_web_file_base_url = 'http://gitlab.com/' + reponame + '/blob/%branch%/' - layer.vcs_web_commit_url = 'http://gitlab.com/' + reponame + '/commit/%hash%' + layer.vcs_web_url = 'https://gitlab.com/' + reponame + layer.vcs_web_tree_base_url = 'https://gitlab.com/' + reponame + '/tree/%branch%/' + layer.vcs_web_file_base_url = 'https://gitlab.com/' + reponame + '/blob/%branch%/' + layer.vcs_web_commit_url = 'https://gitlab.com/' + reponame + '/commit/%hash%' elif repoval.startswith('git://bitbucket.org/') or repoval.startswith('http://bitbucket.org/') or repoval.startswith('https://bitbucket.org/'): reponame = re.sub('^.*bitbucket.org/', '', repoval) reponame = re.sub('.git$', '', reponame) - layer.vcs_web_url = 'http://bitbucket.org/' + reponame - layer.vcs_web_tree_base_url = 'http://bitbucket.org/' + reponame + '/src/%branch%/%path%?at=%branch%' - layer.vcs_web_file_base_url = 'http://bitbucket.org/' + reponame + '/src/%branch%/%path%?at=%branch%' - layer.vcs_web_commit_url = 'http://bitbucket.org/' + reponame + '/commits/%hash%' + layer.vcs_web_url = 'https://bitbucket.org/' + reponame + layer.vcs_web_tree_base_url = 'https://bitbucket.org/' + reponame + '/src/%branch%/%path%?at=%branch%' + layer.vcs_web_file_base_url = 'https://bitbucket.org/' + reponame + '/src/%branch%/%path%?at=%branch%' + layer.vcs_web_commit_url = 'https://bitbucket.org/' + reponame + '/commits/%hash%' elif '.git' in repoval: res = link_re.match(fields[5].strip()) layer.vcs_web_url = res.groups(1)[0] diff --git a/templates/layerindex/editlayer.html b/templates/layerindex/editlayer.html index f6d4967..a95dab3 100644 --- a/templates/layerindex/editlayer.html +++ b/templates/layerindex/editlayer.html @@ -198,10 +198,10 @@ if( repoval.startsWith('git://git.openembedded.org/') ) { reponame = repoval.replace(/^.*\//, '') - this.vcs_web_url = 'http://cgit.openembedded.org/' + reponame - this.vcs_web_tree_base_url = 'http://cgit.openembedded.org/' + reponame + '/tree/%path%?h=%branch%' - this.vcs_web_file_base_url = 'http://cgit.openembedded.org/' + reponame + '/tree/%path%?h=%branch%' - this.vcs_web_commit_url = 'http://cgit.openembedded.org/' + reponame + '/commit/?id=%hash%' + this.vcs_web_url = 'https://git.openembedded.org/' + reponame + this.vcs_web_tree_base_url = 'https://git.openembedded.org/' + reponame + '/tree/%path%?h=%branch%' + this.vcs_web_file_base_url = 'https://git.openembedded.org/' + reponame + '/tree/%path%?h=%branch%' + this.vcs_web_commit_url = 'https://git.openembedded.org/' + reponame + '/commit/?id=%hash%' this.vcs_web_type = 'cgit' } else if( repoval.startsWith('git://git.yoctoproject.org/') ) { @@ -215,28 +215,28 @@ else if( repoval.startsWith('git://github.com/') ) { reponame = repoval.replace(/^.*github.com\//, '') reponame = reponame.replace(/.git$/, '') - this.vcs_web_url = 'http://github.com/' + reponame - this.vcs_web_tree_base_url = 'http://github.com/' + reponame + '/tree/%branch%/' - this.vcs_web_file_base_url = 'http://github.com/' + reponame + '/blob/%branch%/' - this.vcs_web_commit_url = 'http://github.com/' + reponame + '/commit/%hash%/' + this.vcs_web_url = 'https://github.com/' + reponame + this.vcs_web_tree_base_url = 'https://github.com/' + reponame + '/tree/%branch%/' + this.vcs_web_file_base_url = 'https://github.com/' + reponame + '/blob/%branch%/' + this.vcs_web_commit_url = 'https://github.com/' + reponame + '/commit/%hash%/' this.vcs_web_type = '(custom)' } else if( repoval.startsWith('git://gitlab.com/') ) { reponame = repoval.replace(/^.*gitlab.com\//, '') reponame = reponame.replace(/.git$/, '') - this.vcs_web_url = 'http://gitlab.com/' + reponame - this.vcs_web_tree_base_url = 'http://gitlab.com/' + reponame + '/tree/%branch%/' - this.vcs_web_file_base_url = 'http://gitlab.com/' + reponame + '/blob/%branch%/' - this.vcs_web_commit_url = 'http://gitlab.com/' + reponame + '/commit/%hash%/' + this.vcs_web_url = 'https://gitlab.com/' + reponame + this.vcs_web_tree_base_url = 'https://gitlab.com/' + reponame + '/tree/%branch%/' + this.vcs_web_file_base_url = 'https://gitlab.com/' + reponame + '/blob/%branch%/' + this.vcs_web_commit_url = 'https://gitlab.com/' + reponame + '/commit/%hash%/' this.vcs_web_type = '(custom)' } else if( repoval.startsWith('git://bitbucket.org/') ) { reponame = repoval.replace(/^.*bitbucket.org\//, '') reponame = reponame.replace(/.git$/, '') - this.vcs_web_url = 'http://bitbucket.org/' + reponame - this.vcs_web_tree_base_url = 'http://bitbucket.org/' + reponame + '/src/%branch%/%path%?at=%branch%' - this.vcs_web_file_base_url = 'http://bitbucket.org/' + reponame + '/src/%branch%/%path%?at=%branch%' - this.vcs_web_commit_url = 'http://bitbucket.org/' + reponame + '/commits/%hash%' + this.vcs_web_url = 'https://bitbucket.org/' + reponame + this.vcs_web_tree_base_url = 'https://bitbucket.org/' + reponame + '/src/%branch%/%path%?at=%branch%' + this.vcs_web_file_base_url = 'https://bitbucket.org/' + reponame + '/src/%branch%/%path%?at=%branch%' + this.vcs_web_commit_url = 'https://bitbucket.org/' + reponame + '/commits/%hash%' this.vcs_web_type = '(custom)' } else { From patchwork Sat Jun 6 19:54:49 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tim Orling X-Patchwork-Id: 89438 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 26946CD8C8E for ; Sat, 6 Jun 2026 19:55:10 +0000 (UTC) Received: from mail-pg1-f176.google.com (mail-pg1-f176.google.com [209.85.215.176]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.21923.1780775704902051765 for ; Sat, 06 Jun 2026 12:55:04 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20251104 header.b=pPPm79hn; spf=pass (domain: gmail.com, ip: 209.85.215.176, mailfrom: ticotimo@gmail.com) Received: by mail-pg1-f176.google.com with SMTP id 41be03b00d2f7-c85d8615b09so1851164a12.3 for ; Sat, 06 Jun 2026 12:55:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780775704; x=1781380504; darn=lists.yoctoproject.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; bh=KkK48s8OPz+ZsypHdaN4tvVVUxmGsywaccSWw9AKz3w=; b=pPPm79hnbT4JURwFSTuEfg9U0FYxqmWuZlFs6mMRRsY9LmYpCCh1AEg8JThB/pW5h6 3Ia3U7rV/29+IkguB95GX20u5I4aZCIiPlyBUwgLP71uZd+pbtArwSw0gPDxQNmVxZXR UV9jP4Lxq1rvA0YF4PtlwqNtAtAA/VYdUeDGK9v2syHuEAZH2wVRtU+M060Ogx29tA7R v0As6iaeI0gfNdjx+uEvwQQ3T22Q9tesYolu7a0UJAWSElpHq6ph128+6ywdI317XUF9 4MfcsAl6DZQfO0LeFBZPvOW3mNd70fYcZuNdPu8glOrar0aPUkwwIsR+Nk2yAuNItG8D vHxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780775704; x=1781380504; 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; bh=KkK48s8OPz+ZsypHdaN4tvVVUxmGsywaccSWw9AKz3w=; b=K9s2UbKZpZRQKpH2i2AFItrz+bDZLX6zSJc0qpVRDihG4rq9o5ZfHpIhjL1hXvSDDe YOwL1Ln437/fwz6SJzRcUx7clvRdPwH1CocIciB1XjhO3MYwn2iGT/qetb0HrtGvfTTg dq/TWLQxHkzPYv2L8sEUfZpCjr2Nke1keKed/S+zJ+2ou/lxh2MLYM38029VD0toyUqG fE3gGOdvrAYtjFerhhNYBz5qYBsrQKwEFdBqVieeD1cQy8ULg991TwxUec2rE54+WEij 6h7RjKO16fM1gy4eSe6e1eJF0ARaV5KnWDQHSY+rtVFPs/ykvUZxKOku5wuLdzBwuLet 9GzQ== X-Gm-Message-State: AOJu0YxT8d0/W7BVHsvMfqRUwd0QG4uisB14HUTWUxQ4lOXKO34Ooz7p 2AB4lgh+7ooEutQnzS+gapv7ZfhsjLojWt8N5cDtPb/EEhx81I3QLS2BAp1jWA== X-Gm-Gg: Acq92OHgXzFK/GHD+1i7ALrr+wR/OcMOHiHQtdeN0tXwWDlbLHh2aw+i2/Njq+twr7F XYLEvqD+lEB9qwbzYdJcAVG5zgyt3FItdIrcUAEH6GI3ZE91eCOfLzCcdSnoWcOU4Zmil0ZHSpt BZgK2Fc8CR6wufJJwExAzGH8b4u9Kicq5fZUsrhyMQODIabnToORXjWYcDo4AEPqOWCjMt6tkKp yt2La7gzaL3xsXv0utbO8SBdz+6dzrev9aPdM2XEHf6FYG3scj5E0FTLQf2QNiNh0CF8v619jGx sDuC1GIlGNqEHS5hWf9nsu5TkZZRlL+iXynh3ULjpPk674reVrV/z5hc6VHTZEelj0Voi5AVBBu ZC9ithspxNwJszUEkFBxhHDcvSVTTKmWBLQUarwS5DIpzBKEb7VAMzZXeKnogsmLZGg6TckjHcy /SWkb1BZhQKz45EsMklCOF6rqFYAEjes64CccIwz+ARBFvveGHayIXJTm2PQzcUMk4LBA8ia898 CIs/4b2rGQ63QNpNOkdOKaNfuGBvvu73Q== X-Received: by 2002:a05:6a21:6f0e:b0:3ab:18cd:7da3 with SMTP id adf61e73a8af0-3b4cccffba1mr12095537637.1.1780775704182; Sat, 06 Jun 2026 12:55:04 -0700 (PDT) Received: from localhost.localdomain (c-98-232-159-17.hsd1.or.comcast.net. [98.232.159.17]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-c85df04311bsm10943179a12.9.2026.06.06.12.55.01 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Sat, 06 Jun 2026 12:55:01 -0700 (PDT) From: Tim Orling X-Google-Original-From: Tim Orling To: yocto-patches@lists.yoctoproject.org Cc: Tim Orling Subject: [layerindex-web][PATCH 2/3] Fix remaining git:// urls (replace with https://) Date: Sat, 6 Jun 2026 12:54:49 -0700 Message-ID: <20260606195450.59191-2-tim.orling@konsulko.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260606195450.59191-1-tim.orling@konsulko.com> References: <20260606195450.59191-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 aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Sat, 06 Jun 2026 19:55:10 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/yocto-patches/message/4167 Fix a few other places where git:// urls were used. Fixes [Yocto #16272] Signed-off-by: Tim Orling --- README | 6 +++--- docker/connectivity_check.sh | 2 +- docker/settings.py | 2 +- layerindex/tools/import_classic.py | 8 ++++---- settings.py | 2 +- templates/layerindex/editlayer.html | 4 ++-- tests/test_update.py | 4 ++-- 7 files changed, 14 insertions(+), 14 deletions(-) diff --git a/README b/README index 9e1e659..96c2ddd 100644 --- a/README +++ b/README @@ -124,7 +124,7 @@ setup within it: Layer type: Base Summary: Core metadata Description: Core metadata - Repository URL: git://git.openembedded.org/openembedded-core + Repository URL: https://git.openembedded.org/openembedded-core Repository subdirectory: meta Once you have filled in the required values, click on the @@ -217,11 +217,11 @@ been migrated/superseded). If you want to enable this, do the following: 2. Clone OE-Classic somewhere locally on the machine running the layer index: - git clone git://git.openembedded.org/openembedded + git clone https://git.openembedded.org/openembedded 3. Clone a bitbake somewhere locally and check out the 1.12 branch: - git clone git://git.openembedded.org/bitbake -b 1.12 + git clone https://git.openembedded.org/bitbake -b 1.12 4. Run import_classic.py, specifying the path to OE-Classic and the bitbake you checked out: diff --git a/docker/connectivity_check.sh b/docker/connectivity_check.sh index 59b26b8..2e46ce4 100755 --- a/docker/connectivity_check.sh +++ b/docker/connectivity_check.sh @@ -25,7 +25,7 @@ if ! wget -q $HTTPS_TEST_URL ; then exit 1 fi -GIT_TEST_REPO="git://git.yoctoproject.org/meta-layerindex-test" +GIT_TEST_REPO="https://git.yoctoproject.org/meta-layerindex-test" if ! git clone -q $GIT_TEST_REPO ; then echo "ERROR: failed to clone $GIT_TEST_REPO" cleanup_tmp diff --git a/docker/settings.py b/docker/settings.py index fdf09de..e3ae0fd 100644 --- a/docker/settings.py +++ b/docker/settings.py @@ -250,7 +250,7 @@ LAYER_FETCH_DIR = "/opt/workdir" TEMP_BASE_DIR = "/tmp" # Fetch URL of the BitBake repository for the update script -BITBAKE_REPO_URL = "git://git.openembedded.org/bitbake" +BITBAKE_REPO_URL = "https://git.openembedded.org/bitbake" # Path within the BITBAKE_REPO_URL, usually empty BITBAKE_PATH = "" diff --git a/layerindex/tools/import_classic.py b/layerindex/tools/import_classic.py index 44f8f88..07565ac 100755 --- a/layerindex/tools/import_classic.py +++ b/layerindex/tools/import_classic.py @@ -116,10 +116,10 @@ def main(): layer.layer_type = 'M' layer.summary = 'OE-Classic' layer.description = 'OpenEmbedded-Classic' - layer.vcs_url = 'git://git.openembedded.org/openembedded' - layer.vcs_web_url = 'http://cgit.openembedded.org/openembedded' - layer.vcs_web_tree_base_url = 'http://cgit.openembedded.org/openembedded/tree/%path%' - layer.vcs_web_file_base_url = 'http://cgit.openembedded.org/openembedded/tree/%path%' + layer.vcs_url = 'https://git.openembedded.org/openembedded' + layer.vcs_web_url = 'https://git.openembedded.org/openembedded' + layer.vcs_web_tree_base_url = 'https://git.openembedded.org/openembedded/tree/%path%' + layer.vcs_web_file_base_url = 'https://git.openembedded.org/openembedded/tree/%path%' layer.comparison = True layer.save() diff --git a/settings.py b/settings.py index bbc5aca..94b3dd1 100644 --- a/settings.py +++ b/settings.py @@ -242,7 +242,7 @@ LAYER_FETCH_DIR = "" TEMP_BASE_DIR = "/tmp" # Fetch URL of the BitBake repository for the update script -BITBAKE_REPO_URL = "git://git.openembedded.org/bitbake" +BITBAKE_REPO_URL = "https://git.openembedded.org/bitbake" # Path within the BITBAKE_REPO_URL, usually empty BITBAKE_PATH = "" diff --git a/templates/layerindex/editlayer.html b/templates/layerindex/editlayer.html index a95dab3..e14f953 100644 --- a/templates/layerindex/editlayer.html +++ b/templates/layerindex/editlayer.html @@ -196,7 +196,7 @@ if( repoval[repoval.length-1] == '/' ) repoval = repoval.slice(0, repoval.length-1) - if( repoval.startsWith('git://git.openembedded.org/') ) { + if( repoval.startsWith('git://git.openembedded.org/') || repoval.startsWith('https://git.openembedded.org/') ) { reponame = repoval.replace(/^.*\//, '') this.vcs_web_url = 'https://git.openembedded.org/' + reponame this.vcs_web_tree_base_url = 'https://git.openembedded.org/' + reponame + '/tree/%path%?h=%branch%' @@ -204,7 +204,7 @@ this.vcs_web_commit_url = 'https://git.openembedded.org/' + reponame + '/commit/?id=%hash%' this.vcs_web_type = 'cgit' } - else if( repoval.startsWith('git://git.yoctoproject.org/') ) { + else if( repoval.startsWith('git://git.yoctoproject.org/') || repoval.startsWith('https://git.yoctoproject.org/') ) { reponame = repoval.replace(/^.*\//, '') this.vcs_web_url = 'https://git.yoctoproject.org/' + reponame this.vcs_web_tree_base_url = 'https://git.yoctoproject.org/' + reponame + '/tree/%path%?h=%branch%' diff --git a/tests/test_update.py b/tests/test_update.py index 588b2ed..a0ac897 100644 --- a/tests/test_update.py +++ b/tests/test_update.py @@ -63,8 +63,8 @@ def hack_settings(backup_settings): @pytest.fixture(scope="module") def import_layer(hack_settings): - run_cmd("layerindex/tools/import_layer.py git://git.openembedded.org/openembedded-core -s meta openembedded-core") - run_cmd("layerindex/tools/import_layer.py git://git.yoctoproject.org/meta-layerindex-test -s meta-layerindex-test") + run_cmd("layerindex/tools/import_layer.py https://git.openembedded.org/openembedded-core -s meta openembedded-core") + run_cmd("layerindex/tools/import_layer.py https://git.yoctoproject.org/meta-layerindex-test -s meta-layerindex-test") run_cmd("layerindex/update.py -l meta-layerindex-test") def test_example_recipe(import_layer): From patchwork Sat Jun 6 19:54:50 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Tim Orling X-Patchwork-Id: 89439 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 26905CD8C85 for ; Sat, 6 Jun 2026 19:55:10 +0000 (UTC) Received: from mail-pg1-f180.google.com (mail-pg1-f180.google.com [209.85.215.180]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.21926.1780775709265982005 for ; Sat, 06 Jun 2026 12:55:09 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20251104 header.b=VcHFis+C; spf=pass (domain: gmail.com, ip: 209.85.215.180, mailfrom: ticotimo@gmail.com) Received: by mail-pg1-f180.google.com with SMTP id 41be03b00d2f7-c8584bbbf2cso1998072a12.3 for ; Sat, 06 Jun 2026 12:55:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780775709; x=1781380509; darn=lists.yoctoproject.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; bh=+/YOKm1nJb3S5pFoA9PxW/Ts4pIlulHZWc+XmLv3AjQ=; b=VcHFis+ChBdf7QTDT9dDylcuc/u26GNS4CjHVrFdEIkwnlebRYtNkmwoV2RFymTzyi zJrKC8uvKQAMlREQXONsOvFwYQuEq1Lg9l7mb/BOdWmqn4dN2FzDrp8hOW9VHKnL5WlX jCvFdOg16/eQd1+9wQj6ZtoWZEUSTwfx22GdeiLGK6cvOwZ4WPBwocY0i4zmtt6o80LU Wf71+XQnah+L70nbxRaQyBL7Gu/P5eOrricOCJ1s+0WLFuoikZmtPsOlvH3QdPXlyoEa BGI1KsMfz2cafGWqk/3xdIJSM03KawqmwBgZ08UqgagEsaVDavv2Wxktslge8GpPZiJx Kq1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780775709; x=1781380509; 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; bh=+/YOKm1nJb3S5pFoA9PxW/Ts4pIlulHZWc+XmLv3AjQ=; b=gdWQajhvZ7oBq1hj3yBQjGConWn5EbbZVinM3ojYRdvB0C3zP94o1xfljC9BL5zQwi 46aewkjQXbmrFLPV97CfypXDMcB2NeBR34zUNdIphcWeR/USkCzzKRI7E8RHmIQQKOsv IQ4GSOPKzPgM5LvJ5m7vRz5hct7N0TipXEPSesSXFCHvWdaGiFR8LgrTu68Uo8IE8iOB ndNNEVFqXoh8sZeX2Tl2ei0z7ajwUvaQvV+8a35kVwww7NNSAnaUF7QbLTaopBqohvmG DzQfWuQP976IRXtwXYbruBLkS4zSNsMpUQGGKL9AiRocC6yaFnJNxcnKv8glWByGLGBi dOuA== X-Gm-Message-State: AOJu0Yykxh9yuXwqKKQ4DOJzeSvvRnls4pTT6LQ1Zym5u4w6TD7kHeMi HIKi/nIgx9I3gmVHsruQI1g/68IMay3B7g7lOL4W/8kWW2+b1o12bD5Wc0tuEQ== X-Gm-Gg: Acq92OGqI3DF7rbXkjcLn5QPZpAgRJ27XetWIE+VYhbVGOCQa2Oz1CXT4qBP3FJZ7Ql ye5WvJXSCeL1UWAq8xIQqPVVccUmeYbFS0/YVB5sK4QL0unm7Ni7cb4JsB9Pz7IfafQgyJ3c0jU dkKS7GMhkk9oh8n0YLQaAQpmp6btPEJ29byKyPSlc3HuTHf0lmATnQmgGQHjquGJhUCvCB6yFno i8AzJc8TfXmUhMynOZPT+TBm4heAeFPalSfJnfmcwlATsi920A4TKw8Vag7P6fSEDnFTcYOMXf3 Y9oTbvh/2MDbYwYJEcyzfyq6JJu0AxKUJLW4tzfi7+QNv0RuO8wUTDEQpkzlTt2WAn/VY+/a5Ai 5MCJ00MSE1hcZ+/RyAYVLpKlH2kTgyyj0v9XxbkVi99K3IIaSPDeUHOIsHwWDrAQyJgMt7VufTq 8a9Gy/zTBOdPrib17h6lsjsME8d9ML2VcRwa/Ez1AJMaI73wyaxdhIccPMGVt9+3nUgIrlw/Nat 3MpF3qhnDwKNcJNsJkVEsVV6PfXUEWZUg== X-Received: by 2002:a05:6300:67c7:b0:3b4:b30e:1b4d with SMTP id adf61e73a8af0-3b4cd04c26cmr12020686637.40.1780775708491; Sat, 06 Jun 2026 12:55:08 -0700 (PDT) Received: from localhost.localdomain (c-98-232-159-17.hsd1.or.comcast.net. [98.232.159.17]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-c85df04311bsm10943179a12.9.2026.06.06.12.55.05 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Sat, 06 Jun 2026 12:55:07 -0700 (PDT) From: Tim Orling X-Google-Original-From: Tim Orling To: yocto-patches@lists.yoctoproject.org Cc: Tim Orling Subject: [layerindex-web][PATCH 3/3] layerindex/management/commands/update_git_urls.py Date: Sat, 6 Jun 2026 12:54:50 -0700 Message-ID: <20260606195450.59191-3-tim.orling@konsulko.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260606195450.59191-1-tim.orling@konsulko.com> References: <20260606195450.59191-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 aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Sat, 06 Jun 2026 19:55:10 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/yocto-patches/message/4168 * Run with python manage.py update_git_urls [--dry-run] [--quiet] * For docker compose, run with for example: docker compose exec layersapp python3 /opt/layerindex/manage.py update_git_urls * Updates vcs_url, vcs_web_url, vcs_web_tree_base_url, vcs_web_file_base_url, vcs_web_commit_url on every LayerItem * Rewrites git://git.openembedded.org/ and git://git.yoctoproject.org/ → https://, and as a bonus rewrites the matching http://cgit.openembedded.org/ and http://git.yoctoproject.org/ web-interface URLs to https:// * Rewrites git:// and http:// to https:// for github.com, gitlab.com and bitbucket.org. * Wraps work in a transaction; --dry-run rolls back and just prints the diff per layer Fixes [Yocto #16240] Fixes [Yocto #16305] Signed-off-by: Tim Orling --- layerindex/management/__init__.py | 0 layerindex/management/commands/__init__.py | 0 .../management/commands/update_git_urls.py | 139 ++++++++++++++++++ 3 files changed, 139 insertions(+) create mode 100644 layerindex/management/__init__.py create mode 100644 layerindex/management/commands/__init__.py create mode 100644 layerindex/management/commands/update_git_urls.py diff --git a/layerindex/management/__init__.py b/layerindex/management/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/layerindex/management/commands/__init__.py b/layerindex/management/commands/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/layerindex/management/commands/update_git_urls.py b/layerindex/management/commands/update_git_urls.py new file mode 100644 index 0000000..518a548 --- /dev/null +++ b/layerindex/management/commands/update_git_urls.py @@ -0,0 +1,139 @@ +# Update git:// URLs to https:// in layer metadata +# +# Replaces git://git.openembedded.org/ and git://git.yoctoproject.org/ with +# their https:// equivalents on LayerItem records. Also rewrites legacy +# http:// cgit web-interface URLs for those hosts to https:// so the +# generated browse/tree/file/commit links work. +# +# References: +# https://bugzilla.yoctoproject.org/show_bug.cgi?id=16240 +# https://bugzilla.yoctoproject.org/show_bug.cgi?id=16272 +# +# Usage: +# python manage.py update_git_urls --dry-run +# python manage.py update_git_urls +# +# Copyright (C) 2026 Konsulko Group +# SPDX-License-Identifier: MIT + +from django.core.management.base import BaseCommand +from django.db import transaction + +from layerindex.models import LayerItem + + +# Fields on LayerItem that may carry a URL we want to rewrite. +LAYER_URL_FIELDS = ( + 'vcs_url', + 'vcs_web_url', + 'vcs_web_tree_base_url', + 'vcs_web_file_base_url', + 'vcs_web_commit_url', +) + +# (old_prefix, new_prefix) replacements. Order matters: longer / more-specific +# prefixes must come first so we never partially-match a shorter one. +REPLACEMENTS = ( + # Fetch URLs: git:// -> https:// + ('git://git.openembedded.org/', 'https://git.openembedded.org/'), + ('git://git.yoctoproject.org/', 'https://git.yoctoproject.org/'), + ('git://github.com/', 'https://github.com/'), + ('git://gitlab.com/', 'https://gitlab.com/'), + ('git://bitbucket.org/', 'https://bitbucket.org/'), + # Old /cgit/cgit.cgi/ paths redirect to https://git... + ('http://cgit.openembedded.org/cgit/cgit.cgi/', 'https://git.openembedded.org/'), + ('https://cgit.openembedded.org/cgit/cgit.cgi/', 'https://git.openembedded.org/'), + ('http://git.openembedded.org/cgit/cgit.cgi/', 'https://git.openembedded.org/'), + ('https://git.openembedded.org/cgit/cgit.cgi/', 'https://git.openembedded.org/'), + ('http://git.yoctoproject.org/cgit/cgit.cgi/', 'https://git.yoctoproject.org/'), + ('https://git.yoctoproject.org/cgit/cgit.cgi/', 'https://git.yoctoproject.org/'), + # Web-interface URLs: http:// -> https:// for the same hosts. Both + # cgit.openembedded.org and git.yoctoproject.org redirect http to + # https, but storing https directly avoids the extra round-trip and + # mixed-content warnings inside the layer index UI. + ('http://cgit.openembedded.org/', 'https://git.openembedded.org/'), + ('http://git.yoctoproject.org/', 'https://git.yoctoproject.org/'), + ('http://github.com/', 'https://github.com/'), + ('http://gitlab.com/', 'https://gitlab.com/'), + ('http://bitbucket.org/', 'https://bitbucket.org/'), +) + + +def rewrite(value): + """Return (new_value, changed) after applying REPLACEMENTS.""" + if not value: + return value, False + new_value = value + for old, new in REPLACEMENTS: + if new_value.startswith(old): + new_value = new + new_value[len(old):] + # A given URL only matches one prefix, so we can stop here. + return new_value, True + return value, False + + +class Command(BaseCommand): + help = ( + 'Rewrite legacy git:// (and matching http:// cgit) URLs on layer ' + 'metadata to their https:// equivalents.' + ) + + def add_arguments(self, parser): + parser.add_argument( + '-n', '--dry-run', + action='store_true', + help='Show what would change without writing to the database.', + ) + parser.add_argument( + '-q', '--quiet', + action='store_true', + help='Only print a summary line.', + ) + + def handle(self, *args, **options): + dry_run = options['dry_run'] + quiet = options['quiet'] + + changed_layers = 0 + changed_fields = 0 + + # Wrap the whole pass in a transaction so a --dry-run can be rolled + # back cleanly and a real run is atomic. We bail out at the end if + # this is a dry run. + with transaction.atomic(): + for layer in LayerItem.objects.all().order_by('name'): + layer_changes = [] + for field in LAYER_URL_FIELDS: + old_value = getattr(layer, field) + new_value, changed = rewrite(old_value) + if changed: + setattr(layer, field, new_value) + layer_changes.append((field, old_value, new_value)) + + if layer_changes: + changed_layers += 1 + changed_fields += len(layer_changes) + if not quiet: + self.stdout.write( + self.style.MIGRATE_HEADING( + 'Layer "%s" (id=%d):' % (layer.name, layer.pk) + ) + ) + for field, old_value, new_value in layer_changes: + self.stdout.write( + ' %s:\n - %s\n + %s' + % (field, old_value, new_value) + ) + if not dry_run: + layer.save(update_fields=[c[0] for c in layer_changes]) + + if dry_run: + # Roll back any pending writes (there shouldn't be any since + # we skipped save(), but stay defensive). + transaction.set_rollback(True) + + verb = 'Would update' if dry_run else 'Updated' + self.stdout.write(self.style.SUCCESS( + '%s %d field(s) across %d layer(s).' + % (verb, changed_fields, changed_layers) + ))