diff mbox series

package/pkg-generic: don't download svn externals by default

Message ID 9482506b370da75aba03e07c5d30ad1da45b648e.1691500661.git.yann.morin@orange.com
State Accepted
Headers show
Series package/pkg-generic: don't download svn externals by default | expand

Commit Message

Yann E. MORIN Aug. 8, 2023, 1:17 p.m. UTC
From: "Yann E. MORIN" <yann.morin@orange.com>

Commit 7dd27cbe5b9e (support/download: add support to exclude svn
externals) departed from the usual opt-in scheme, like is done for
git submodule or large files, in an attempt to keep the previous
behaviour unchanged, that is to download externals by default.

As an afterthought, we've concluded that the chances for svn-hosted
packages with externals that are indeed required to do the build,
are relatively slim. For those cases, it even makes sense to explicitly
requested the use of the externals.

So, we change the default to not download svn externals.

Since the generated archives may change, we bump the version suffix.
This will allow users to more easily catch the situation and decide if
they really need the externals or not.

We have a single in-tree package that uses svn, and it does not use
externals, so the generated archive does not change, and we just need
to update the archive filename in the hash file.

Finally, we add a new section to the manual, in the chapter about
migrating Buildroot to a newer version.

Reported-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Yann E. MORIN <yann.morin@orange.com>
---
 docs/manual/adding-packages-generic.txt |  8 +++-----
 docs/manual/migrating.txt               | 14 ++++++++++++++
 package/libxmlrpc/libxmlrpc.hash        |  2 +-
 package/pkg-download.mk                 |  2 +-
 package/pkg-generic.mk                  |  4 ----
 5 files changed, 19 insertions(+), 11 deletions(-)

Comments

Yann E. MORIN Aug. 20, 2023, 2:32 p.m. UTC | #1
Yann, All,

On 2023-08-08 15:17 +0200, yann.morin@orange.com spake thusly:
> From: "Yann E. MORIN" <yann.morin@orange.com>
> 
> Commit 7dd27cbe5b9e (support/download: add support to exclude svn
> externals) departed from the usual opt-in scheme, like is done for
> git submodule or large files, in an attempt to keep the previous
> behaviour unchanged, that is to download externals by default.
> 
> As an afterthought, we've concluded that the chances for svn-hosted
> packages with externals that are indeed required to do the build,
> are relatively slim. For those cases, it even makes sense to explicitly
> requested the use of the externals.
> 
> So, we change the default to not download svn externals.
> 
> Since the generated archives may change, we bump the version suffix.
> This will allow users to more easily catch the situation and decide if
> they really need the externals or not.
> 
> We have a single in-tree package that uses svn, and it does not use
> externals, so the generated archive does not change, and we just need
> to update the archive filename in the hash file.
> 
> Finally, we add a new section to the manual, in the chapter about
> migrating Buildroot to a newer version.
> 
> Reported-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
> Signed-off-by: Yann E. MORIN <yann.morin@orange.com>

Applied to next, thanks.

Regards,
Yann E. MORIN.

> ---
>  docs/manual/adding-packages-generic.txt |  8 +++-----
>  docs/manual/migrating.txt               | 14 ++++++++++++++
>  package/libxmlrpc/libxmlrpc.hash        |  2 +-
>  package/pkg-download.mk                 |  2 +-
>  package/pkg-generic.mk                  |  4 ----
>  5 files changed, 19 insertions(+), 11 deletions(-)
> 
> diff --git a/docs/manual/adding-packages-generic.txt b/docs/manual/adding-packages-generic.txt
> index 299017f9d2..98f822c55c 100644
> --- a/docs/manual/adding-packages-generic.txt
> +++ b/docs/manual/adding-packages-generic.txt
> @@ -347,11 +347,9 @@ not and can not work as people would expect it should:
>    Git LFS to store large files out of band.  This is only available for
>    packages downloaded with git (i.e. when +LIBFOO_SITE_METHOD=git+).
>  
> -+ +LIBFOO_SVN_EXTERNAL+ can be set to +YES+ (the default) to specify
> -  whether to retrieve the svn external references, or to +NO+ to avoid
> -  retrieving those externals. Note that, contrary to other similar
> -  options like +LIBFOO_GIT_SUBMODULES+ or +LIBFOO_GIT_LFS+, the default
> -  here is to actually retrieve the externals; this is a legacy heritage.
> ++ +LIBFOO_SVN_EXTERNALS+ can be set to +YES+ to create an archive with
> +  the svn external references. This is only available for packages
> +  downloaded with subversion.
>  
>  * +LIBFOO_STRIP_COMPONENTS+ is the number of leading components
>    (directories) that tar must strip from file names on extraction.
> diff --git a/docs/manual/migrating.txt b/docs/manual/migrating.txt
> index cb1f5eacc9..2667aeab96 100644
> --- a/docs/manual/migrating.txt
> +++ b/docs/manual/migrating.txt
> @@ -86,3 +86,17 @@ Whenever a package installs an executable that is linked with a library
>  in +$(HOST_DIR)/lib+, it must have an RPATH pointing to that directory.
>  
>  An RPATH pointing to +$(HOST_DIR)/usr/lib+ is no longer accepted.
> +
> +[[migrating-svn-externals]]
> +=== Migrating to 2023.11
> +
> +Before Buildroot 2023.11, the subversion download backend unconditionally
> +retrieved the external references (objects with an `svn:externals`
> +property). Starting with 2023.11, externals are no longer retrieved by
> +default; if you need them, set +LIBFOO_SVN_EXTERNALS+ to +YES+. This
> +change implies that:
> +
> +* the generated archive content may change, and thus the hashes may need
> +  to be updated appropriately;
> +* the archive version suffix has been updated to +-br3+, so the hash
> +  files must be updated appropriately.
> diff --git a/package/libxmlrpc/libxmlrpc.hash b/package/libxmlrpc/libxmlrpc.hash
> index 5d42dc0558..665ee31836 100644
> --- a/package/libxmlrpc/libxmlrpc.hash
> +++ b/package/libxmlrpc/libxmlrpc.hash
> @@ -1,3 +1,3 @@
>  # Locally computed
> -sha256  626e36295f43b320082bc7bdd961b46f39fbe2719535b5a417975a8e50c8f7f3  libxmlrpc-r3119-br2.tar.gz
> +sha256  626e36295f43b320082bc7bdd961b46f39fbe2719535b5a417975a8e50c8f7f3  libxmlrpc-r3119-br3.tar.gz
>  sha256  db7a6d3f187b218c3534010a83424c6bcdef88e6a0b6b1aa3a8762238bd642e6  doc/COPYING
> diff --git a/package/pkg-download.mk b/package/pkg-download.mk
> index 5a311a95c6..e5cd83d859 100644
> --- a/package/pkg-download.mk
> +++ b/package/pkg-download.mk
> @@ -21,7 +21,7 @@ export LOCALFILES := $(call qstrip,$(BR2_LOCALFILES))
>  # Version of the format of the archives we generate in the corresponding
>  # download backend:
>  BR_FMT_VERSION_git = -br1
> -BR_FMT_VERSION_svn = -br2
> +BR_FMT_VERSION_svn = -br3
>  
>  DL_WRAPPER = support/download/dl-wrapper
>  
> diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
> index 86b9c1f9d3..3592678235 100644
> --- a/package/pkg-generic.mk
> +++ b/package/pkg-generic.mk
> @@ -646,10 +646,6 @@ endif
>  ifndef $(2)_SVN_EXTERNALS
>   ifdef $(3)_SVN_EXTERNALS
>    $(2)_SVN_EXTERNALS = $$($(3)_SVN_EXTERNALS)
> - else
> -  # Legacy: we used to always use externals by default
> -  # Only set it when the package is actually hosted on svn
> -  $(2)_SVN_EXTERNALS = $$(if $$(filter svn,$$($(2)_SITE_METHOD)),YES)
>   endif
>  endif
>  
> -- 
> 2.34.1
> 
> ____________________________________________________________________________________________________________
> Ce message et ses pieces jointes peuvent contenir des informations confidentielles ou privilegiees et ne doivent donc
> pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu ce message par erreur, veuillez le signaler
> a l'expediteur et le detruire ainsi que les pieces jointes. Les messages electroniques etant susceptibles d'alteration,
> Orange decline toute responsabilite si ce message a ete altere, deforme ou falsifie. Merci.
> 
> This message and its attachments may contain confidential or privileged information that may be protected by law;
> they should not be distributed, used or copied without authorisation.
> If you have received this email in error, please notify the sender and delete this message and its attachments.
> As emails may be altered, Orange is not liable for messages that have been modified, changed or falsified.
> Thank you.
> 
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
diff mbox series

Patch

diff --git a/docs/manual/adding-packages-generic.txt b/docs/manual/adding-packages-generic.txt
index 299017f9d2..98f822c55c 100644
--- a/docs/manual/adding-packages-generic.txt
+++ b/docs/manual/adding-packages-generic.txt
@@ -347,11 +347,9 @@  not and can not work as people would expect it should:
   Git LFS to store large files out of band.  This is only available for
   packages downloaded with git (i.e. when +LIBFOO_SITE_METHOD=git+).
 
-+ +LIBFOO_SVN_EXTERNAL+ can be set to +YES+ (the default) to specify
-  whether to retrieve the svn external references, or to +NO+ to avoid
-  retrieving those externals. Note that, contrary to other similar
-  options like +LIBFOO_GIT_SUBMODULES+ or +LIBFOO_GIT_LFS+, the default
-  here is to actually retrieve the externals; this is a legacy heritage.
++ +LIBFOO_SVN_EXTERNALS+ can be set to +YES+ to create an archive with
+  the svn external references. This is only available for packages
+  downloaded with subversion.
 
 * +LIBFOO_STRIP_COMPONENTS+ is the number of leading components
   (directories) that tar must strip from file names on extraction.
diff --git a/docs/manual/migrating.txt b/docs/manual/migrating.txt
index cb1f5eacc9..2667aeab96 100644
--- a/docs/manual/migrating.txt
+++ b/docs/manual/migrating.txt
@@ -86,3 +86,17 @@  Whenever a package installs an executable that is linked with a library
 in +$(HOST_DIR)/lib+, it must have an RPATH pointing to that directory.
 
 An RPATH pointing to +$(HOST_DIR)/usr/lib+ is no longer accepted.
+
+[[migrating-svn-externals]]
+=== Migrating to 2023.11
+
+Before Buildroot 2023.11, the subversion download backend unconditionally
+retrieved the external references (objects with an `svn:externals`
+property). Starting with 2023.11, externals are no longer retrieved by
+default; if you need them, set +LIBFOO_SVN_EXTERNALS+ to +YES+. This
+change implies that:
+
+* the generated archive content may change, and thus the hashes may need
+  to be updated appropriately;
+* the archive version suffix has been updated to +-br3+, so the hash
+  files must be updated appropriately.
diff --git a/package/libxmlrpc/libxmlrpc.hash b/package/libxmlrpc/libxmlrpc.hash
index 5d42dc0558..665ee31836 100644
--- a/package/libxmlrpc/libxmlrpc.hash
+++ b/package/libxmlrpc/libxmlrpc.hash
@@ -1,3 +1,3 @@ 
 # Locally computed
-sha256  626e36295f43b320082bc7bdd961b46f39fbe2719535b5a417975a8e50c8f7f3  libxmlrpc-r3119-br2.tar.gz
+sha256  626e36295f43b320082bc7bdd961b46f39fbe2719535b5a417975a8e50c8f7f3  libxmlrpc-r3119-br3.tar.gz
 sha256  db7a6d3f187b218c3534010a83424c6bcdef88e6a0b6b1aa3a8762238bd642e6  doc/COPYING
diff --git a/package/pkg-download.mk b/package/pkg-download.mk
index 5a311a95c6..e5cd83d859 100644
--- a/package/pkg-download.mk
+++ b/package/pkg-download.mk
@@ -21,7 +21,7 @@  export LOCALFILES := $(call qstrip,$(BR2_LOCALFILES))
 # Version of the format of the archives we generate in the corresponding
 # download backend:
 BR_FMT_VERSION_git = -br1
-BR_FMT_VERSION_svn = -br2
+BR_FMT_VERSION_svn = -br3
 
 DL_WRAPPER = support/download/dl-wrapper
 
diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
index 86b9c1f9d3..3592678235 100644
--- a/package/pkg-generic.mk
+++ b/package/pkg-generic.mk
@@ -646,10 +646,6 @@  endif
 ifndef $(2)_SVN_EXTERNALS
  ifdef $(3)_SVN_EXTERNALS
   $(2)_SVN_EXTERNALS = $$($(3)_SVN_EXTERNALS)
- else
-  # Legacy: we used to always use externals by default
-  # Only set it when the package is actually hosted on svn
-  $(2)_SVN_EXTERNALS = $$(if $$(filter svn,$$($(2)_SITE_METHOD)),YES)
  endif
 endif