From 51d8f4b0b2d327654b3b667dd601da6d371ad5cf Mon Sep 17 00:00:00 2001 From: Steffen Winterfeldt Date: Mon, 24 Oct 2022 18:25:53 +0200 Subject: [PATCH] support 'repo' scheme for add-ons (jsc#SLE-22578, jsc#SLE-24584) --- src/modules/AddOnProduct.rb | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/modules/AddOnProduct.rb b/src/modules/AddOnProduct.rb index 55065bcb..5c3f4c2b 100644 --- a/src/modules/AddOnProduct.rb +++ b/src/modules/AddOnProduct.rb @@ -5,6 +5,8 @@ require "packager/product_patterns" require "y2packager/resolvable" require "y2packager/repository" +require "uri" +require "yast2/rel_url" # Yast namespace module Yast @@ -405,6 +407,22 @@ def GetBaseProductURL # "relurl://./Product_CD1/" # ) -> "username:password@ftp://www.example.org/dir/Product_CD1/" def GetAbsoluteURL(base_url, url) + url_parsed = URI(url) + + if url_parsed.scheme == "repo" + base_url = InstURL.installInf2Url("") + if base_url.empty? + log.error "no ZyppRepoURL in /etc/install.inf" + else + rel_url = "relurl:" + url_parsed.path + url = Yast2::RelURL.from_installation_repository(rel_url).absolute_url.to_s + log.info("base url + relative path: #{URL.HidePassword(base_url)} + #{url_parsed.path}") + log.info("absolute url: #{URL.HidePassword(url)}") + end + + return url + end + if !Builtins.regexpmatch(url, "^relurl://") Builtins.y2debug("Not a relative URL: %1", URL.HidePassword(url)) return url