--- I changed Svn in doc to uppercase SVN as well.
doc/ref_make_variables.rst | 7 ++++++- scripts/lib/ptxd_make_get.sh | 9 ++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/doc/ref_make_variables.rst b/doc/ref_make_variables.rst index 2ee34856d..beca984ed 100644 --- a/doc/ref_make_variables.rst +++ b/doc/ref_make_variables.rst @@ -196,9 +196,14 @@ Package Definition Git URLs must either start with 'git://' or end with '.git'. They have a mandatory ``tag=<tagname>`` option. - Svn URLs must start with 'svn://'. They have a mandatory + SVN URLs must start with 'svn://'. They have a mandatory ``rev=r<number>`` option. + SVN custom tunnel schemes (e.g. 'svn+ssh') are supported as + well. There is a special treatment for 'svn+https'. In this case + the URL is fixed and 'svn+' is removed from URL. This is useful to + work around firewalls that block 'svn' ports. + ``<PKG>_SOURCE`` The location of the downloaded source archive. There should be no reason to set this to anything other than diff --git a/scripts/lib/ptxd_make_get.sh b/scripts/lib/ptxd_make_get.sh index 77ac98c9e..2b0ad9307 100644 --- a/scripts/lib/ptxd_make_get.sh +++ b/scripts/lib/ptxd_make_get.sh @@ -434,7 +434,14 @@ ptxd_make_get() { ptxd_make_get_download_permitted && ptxd_make_get_git && return ;; - svn://*) + svn://*|svn+*://*) + url=${url/svn+https/https} + if [[ "${url}" =~ ^https ]]; then + echo "svn+https is fixed in URL, using https directly" + fi + if [[ "${url}" =~ ^svn\+ ]]; then + echo "Custom SVN tunnel scheme detected" + fi ptxd_make_get_download_permitted && ptxd_make_get_svn && return ;; -- 2.30.2