[Buildroot] [PATCHv2] docs/manual: using a branch name as FOO_VERSION does not work
Thomas De Schampheleire
patrickdepinguin at gmail.com
Fri May 11 19:38:25 UTC 2018
2018-05-11 17:50 GMT+02:00 Yann E. MORIN <yann.morin.1998 at free.fr>:
> For various reasons, we've always suggested users to avoid using a
> branch as version string for their packages, because it does not work
> as a they would expect:
>
> - it is not reproducible, because the branch may change between two
> builds that are done at different times;
>
> - it does not even follow the branch, as Buildroot anyway generates
> a local tarball, which it will reuse on subsequent builds.
> Furthermore, since we fetch and not pull, any existing local branch
> is not updated.
>
> Yet, until recently, using a branch name would just work (with the
> above limitations): the git tree was cloned, the branch checked out,
> and the tarball created.
>
> But with the advent of the git caching, using a branch name does not
> work anymore. Indeed, we now do a git-fetch, and that does not create
> local master branch. So we can't check out master, because it does not
> exist locally. And for other branches, as noticed above, the local
> branch does not get udpated to the remote one.
>
> Furthermore, the local branches are only created by chance, again as a
> side-effect of trying to fetch the "special refs".
>
> So, we can't say that we reliably support the use of a branch name.
>
> Update the manual to state that using a branch does not work. Remove
> the 'stable' example, as it looked like the name of a stable branch;
> instead, replace it with a version string that ressemble a tag.
>
> Fix the layout of the manual by making the version examples an actual
> bulleted list.
>
> Note: the above is only entirely true for git. For Mercurial, CVS and
> subversion, the status may be mixed, but nonetheless, using branches is
> still a bad idea, if at least because it is not reproducible, and
> because Buildroot does not even follow the branch. So, we do not
> differentiate between the various SCMs, and just flatly state that using
> a branch name is not supported.
>
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998 at free.fr>
> Cc: Thomas De Schampheleire <patrickdepinguin at gmail.com>
> Cc: Thomas Petazzoni <thomas.petazzoni at bootlin.com>
> Cc: Maxime Hadjinlian <maxime.hadjinlian at gmail.com>
> Cc: Peter Korsgaard <peter at korsgaard.com>
>
> ---
> Changes v1 -> v2:
> - enhance commit log with additional details (Ricardo)
> - blurb about
> - typoes in commit log (Ricardo)
> ---
> docs/manual/adding-packages-generic.txt | 12 ++++++------
> 1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/docs/manual/adding-packages-generic.txt b/docs/manual/adding-packages-generic.txt
> index 7e1f246752..8ea8ce6037 100644
> --- a/docs/manual/adding-packages-generic.txt
> +++ b/docs/manual/adding-packages-generic.txt
> @@ -199,12 +199,12 @@ information is (assuming the package name is +libfoo+) :
> * +LIBFOO_VERSION+, mandatory, must contain the version of the
> package. Note that if +HOST_LIBFOO_VERSION+ doesn't exist, it is
> assumed to be the same as +LIBFOO_VERSION+. It can also be a
> - revision number, branch or tag for packages that are fetched
> - directly from their revision control system. +
> - Examples: +
> - +LIBFOO_VERSION = 0.1.2+ +
> - +LIBFOO_VERSION = cb9d6aa9429e838f0e54faa3d455bcbab5eef057+ +
> - +LIBFOO_VERSION = stable+
> + revision number or a tag for packages that are fetched directly
> + from their revision control system. Do not use a branch name as
I noticed this is the only place where we say 'revision control
system', other places use 'version control system' which is in line
with the acronym VCS.
I suggest to change this at the same time.
Best regards,
Thomas
More information about the buildroot
mailing list