[Buildroot] [PATCH 1/3] package/pkg-generic: allow to use <pkg>_DL_VERSION in packages .mk files
Victor Huesca
victor.huesca at bootlin.com
Wed Jul 10 11:15:15 UTC 2019
Hi Arnout,
On 09/07/2019 20:30, Arnout Vandecappelle wrote:
> Hi Victor,
>
> On 09/07/2019 09:45, Victor Huesca wrote:
>> This patch continue the work done here http://buildroot-busybox.2317881.n4.nabble.com/PATCH-0-4-Sanetize-packages-version-tp225554.html
>
> It's generally nices to summarize the discussion and put the reference as a
> footnote, e.g.:
>
> The _VERSION values should correspond to the ones on release-monitoring.org, so
> we can easily check if there is an update for a package. For downloaded
> packages, we can just add any prefix/suffix as part of the _SOURCE and/or _SITE
> variables. However, for VCS-downloaded packages, the _VERSION is used directly
> by the download infra.
>
> This patch makes the DL_VERSION public, i.e. packages can set it (to a different
> value than _VERSION). This way, we can handle the missing corner cases without
> changes all over the places. See [1] for the full discussion.
>
> [1]
> http://buildroot-busybox.2317881.n4.nabble.com/PATCH-0-4-Sanetize-packages-version-tp225554.html
>
>
>
> However, I don't think the discussion said anything more than what I wrote
> above, so I don't think adding the reference is very valuable. It's up to you.
I see, thank you, I'll use this for the v2.
>> By making this DL_VERSION public we should be able to handle the missing corner-cases
>> with package version sanitizeing.
>>
>> Signed-off-by: Victor Huesca <victor.huesca at bootlin.com>
>> ---
>> package/pkg-generic.mk | 4 +++-
>> 1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
>> index 9620dec524..c48f54a2b7 100644
>> --- a/package/pkg-generic.mk
>> +++ b/package/pkg-generic.mk
>> @@ -447,7 +447,9 @@ $(2)_PKGDIR = $(pkgdir)
>> # version control system branch or tag, for example remotes/origin/1_10_stable.
>> # Similar for spaces and colons (:) that may appear in date-based revisions for
>> # CVS.
>
> Maybe it would be good to add a comment like this:
>
> # Since _DL_VERSION and _VERSION are defined based on themselves, we need to use
> # := assignment. Also, since they may be calculated through functions, it's best
> # to strip them - this makes it easier for the packages themselves.
>
>
>> -ifndef $(2)_VERSION
>> +ifdef $(2)_DL_VERSION
>> + $(2)_DL_VERSION := $$(strip $$($(2)_DL_VERSION))
>
> This will not work as intended... A few lines below, we have:
>
> $(2)_VERSION := $$(call sanitize,$$($(2)_DL_VERSION))
>
> so the _VERSION defined by the package will not be used at all...
>
> I'm surprised that you didn't notice this. Maybe I'm mistaken? Or is there some
> situation where the correct _VERSION does end up getting used?
You're right, I was focused on making the download work and forgot that
now that _DL_VERSION and _VERSION can differs we should keep _VERSION
rather than _DL_VERSION.
> I think the only solution is something like:
>
> ifdef $(2)_DL_VERSION
> $(2)_DL_VERSION := $$(strip $$($(2)_DL_VERSION))
> $(2)_VERSION := $$(call sanitize,$$($(2)_DL_VERSION))> else
> ifndef $(2)_VERSION
> ifdef $(3)_DL_VERSION
> $(2)_DL_VERSION := $$($(3)_DL_VERSION)
> else ifdef $(3)_VERSION
> $(2)_DL_VERSION := $$($(3)_VERSION)
> endif
> else
> $(2)_DL_VERSION := $$(strip $$($(2)_VERSION))
> endif
> endif
Maybe I am mistaken but to me this code produce exactly the same results
as mine...
Anyway, now that you pointed out to me that we should keep the original
_VERSION I can make a v2 that take this in account.
--
Victor Huesca, Bootlin
Embedded Linux and kernel engineering
https://bootlin.com
More information about the buildroot
mailing list