From f2c82f2232b2ebdf1e643b38b406e41923181a72 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Petr=20=C5=A0tetiar?= Date: Sun, 11 Jan 2026 09:43:43 +0100 Subject: [PATCH] phase2: add support for overriding feeds host MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Port the feeds_host_override functionality from phase1 to phase2, allowing phase2 builds to use alternate feed hosts. Signed-off-by: Petr Å tetiar --- phase2/config.ini.example | 1 + phase2/master.cfg | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/phase2/config.ini.example b/phase2/config.ini.example index eda9763..fcb6f06 100644 --- a/phase2/config.ini.example +++ b/phase2/config.ini.example @@ -10,6 +10,7 @@ status_user = example status_password = example port = 9990 persistent = false +feeds_host_override = git_ssh = true git_ssh_key = -----BEGIN RSA PRIVATE KEY----- MIIEpAIBAAKCAQEAuCJwo6OmrRDxcGfsMgBhq0vdzp2ZIdqnedFH8u6tVYLt9WDU diff --git a/phase2/master.cfg b/phase2/master.cfg index 0a5bd7e..939d688 100644 --- a/phase2/master.cfg +++ b/phase2/master.cfg @@ -136,6 +136,9 @@ repo_branch = "main" if ini.has_option("repo", "branch"): repo_branch = ini.get("repo", "branch") +if feeds_host_override: + repo_url = re.sub(r"git\.openwrt\.org/openwrt", feeds_host_override, repo_url) + usign_key = None usign_comment = "untrusted comment: " + repo_branch.replace("-", " ").title() + " key" @@ -153,6 +156,7 @@ archnames = [ ] if not os.path.isdir(work_dir+'/source.git'): subprocess.call(["git", "clone", "--depth=1", "--branch="+repo_branch, repo_url, work_dir+'/source.git']) else: + subprocess.call(["git", "remote", "set-url", "origin", repo_url], cwd = work_dir+'/source.git') subprocess.call(["git", "pull"], cwd = work_dir+'/source.git') os.makedirs(work_dir+'/source.git/tmp', exist_ok=True) @@ -321,6 +325,13 @@ def IsSignEnabled(step): IsUsignEnabled(step) or IsApkSigningEnabled(step) or IsGpgSigningEnabled(step) ) +def IsFeedsHostOverrideEnabled(step): + return bool(feeds_host_override) + +@util.renderer +def GetFeedsHostOverride(props): + return feeds_host_override + @defer.inlineCallbacks def getNewestCompleteTime(bldr): """Returns the complete_at of the latest completed and not SKIPPED @@ -548,6 +559,18 @@ for arch in arches: command = ["./ccache.sh"], haltOnFailure = True)) + factory.addStep(ShellCommand( + name = "feeds-override", + description = "Creating feeds.conf with host override", + descriptionDone = "feeds.conf with override created", + workdir = "build/sdk", + command = Interpolate( + "sed -E 's;git.openwrt.org/(feed|project);%(kw:host)s;' feeds.conf.default > feeds.conf", + host=GetFeedsHostOverride, + ), + doStepIf = IsFeedsHostOverrideEnabled, + haltOnFailure = True)) + factory.addStep(ShellCommand( name = "updatefeeds", description = "Updating feeds", @@ -562,6 +585,15 @@ for arch in arches: command = ["./scripts/feeds", "install", "-a"], haltOnFailure = True)) + factory.addStep(ShellCommand( + name = "feeds-cleanup", + description = "Removing feeds.conf override", + descriptionDone = "feeds.conf override removed", + workdir = "build/sdk", + command = ["rm", "-f", "feeds.conf"], + doStepIf = IsFeedsHostOverrideEnabled, + haltOnFailure = True)) + factory.addStep(ShellCommand( name = "logclear", description = "Clearing failure logs", -- 2.30.2