* [Buildroot] [PATCH] pkg-generic: Fix host _DL_VERSION corner case
@ 2015-02-24 22:26 Clayton Shotwell
2015-03-04 22:56 ` Thomas Petazzoni
0 siblings, 1 reply; 7+ messages in thread
From: Clayton Shotwell @ 2015-02-24 22:26 UTC (permalink / raw)
To: buildroot
In the case when a package has a host version, the package is dependent
on the host version, and the version contains a '/', the host version
does not evaluate properly. The host version will contain a '_' instead
of a '/', resulting in a failed download. To solve this corner case, add
a check to see if the _DL_VERSION of the package has been defined before
defining the host _DL_VERSION. If the package _DL_VERSION has not been
defined yet, then the version string has not been formatted yet and is
still good to use.
This error occured on a package in a BR2_EXTERNAL that uses a git repo
for its remote storage with '/' in the tag names. I do not believe this
affects any packages in the Buildroot mainline but it could in the
future.
Signed-off-by: Clayton Shotwell <clayton.shotwell@rockwellcollins.com>
---
package/pkg-generic.mk | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
index 1b09955..fcef461 100644
--- a/package/pkg-generic.mk
+++ b/package/pkg-generic.mk
@@ -323,7 +323,11 @@ $(2)_RAWNAME = $$(patsubst host-%,%,$(1))
# version control system branch or tag, for example remotes/origin/1_10_stable.
ifndef $(2)_VERSION
ifdef $(3)_VERSION
- $(2)_DL_VERSION := $$(strip $$($(3)_VERSION))
+ ifdef $(3)_DL_VERSION
+ $(2)_DL_VERSION := $$(strip $$($(3)_DL_VERSION))
+ else
+ $(2)_DL_VERSION := $$(strip $$($(3)_VERSION))
+ endif
$(2)_VERSION := $$(subst /,_,$$(strip $$($(3)_VERSION)))
else
$(2)_VERSION = undefined
--
1.9.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH] pkg-generic: Fix host _DL_VERSION corner case
2015-02-24 22:26 [Buildroot] [PATCH] pkg-generic: Fix host _DL_VERSION corner case Clayton Shotwell
@ 2015-03-04 22:56 ` Thomas Petazzoni
2015-03-04 23:17 ` Clayton Shotwell
0 siblings, 1 reply; 7+ messages in thread
From: Thomas Petazzoni @ 2015-03-04 22:56 UTC (permalink / raw)
To: buildroot
Dear Clayton Shotwell,
On Tue, 24 Feb 2015 16:26:10 -0600, Clayton Shotwell wrote:
> In the case when a package has a host version, the package is dependent
> on the host version, and the version contains a '/', the host version
> does not evaluate properly. The host version will contain a '_' instead
> of a '/', resulting in a failed download. To solve this corner case, add
> a check to see if the _DL_VERSION of the package has been defined before
> defining the host _DL_VERSION. If the package _DL_VERSION has not been
> defined yet, then the version string has not been formatted yet and is
> still good to use.
>
> This error occured on a package in a BR2_EXTERNAL that uses a git repo
> for its remote storage with '/' in the tag names. I do not believe this
> affects any packages in the Buildroot mainline but it could in the
> future.
>
> Signed-off-by: Clayton Shotwell <clayton.shotwell@rockwellcollins.com>
So, I had a look at the issue, and I can confirm it. I did the
following stupid change:
-LIBGLIB2_VERSION = $(LIBGLIB2_VERSION_MAJOR).0
+LIBGLIB2_VERSION = $(LIBGLIB2_VERSION_MAJOR).0/bar
(which obviously doesn't work, but we don't care)
And then dumped the interesting variables:
$ make printvars 2> /dev/null | grep LIBGLIB2 | grep VERSION
HOST_LIBGLIB2_DL_VERSION=2.42.0_bar (2.42.0_bar)
HOST_LIBGLIB2_VERSION=2.42.0_bar (2.42.0_bar)
LIBGLIB2_DL_VERSION=2.42.0/bar (2.42.0/bar)
LIBGLIB2_VERSION=2.42.0_bar (2.42.0_bar)
So indeed, HOST_LIBGLIB2_DL_VERSION is wrong, it should be '2.42.0/bar'.
> diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
> index 1b09955..fcef461 100644
> --- a/package/pkg-generic.mk
> +++ b/package/pkg-generic.mk
> @@ -323,7 +323,11 @@ $(2)_RAWNAME = $$(patsubst host-%,%,$(1))
> # version control system branch or tag, for example remotes/origin/1_10_stable.
> ifndef $(2)_VERSION
> ifdef $(3)_VERSION
> - $(2)_DL_VERSION := $$(strip $$($(3)_VERSION))
> + ifdef $(3)_DL_VERSION
> + $(2)_DL_VERSION := $$(strip $$($(3)_DL_VERSION))
> + else
> + $(2)_DL_VERSION := $$(strip $$($(3)_VERSION))
> + endif
However, I haven't yet made up my mind on whether this proposed
solution is the best one, or if we have a chance of doing something
clearer/nicer for this _VERSION vs. _DL_VERSION thing.
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH] pkg-generic: Fix host _DL_VERSION corner case
2015-03-04 22:56 ` Thomas Petazzoni
@ 2015-03-04 23:17 ` Clayton Shotwell
2015-03-05 8:25 ` Thomas Petazzoni
0 siblings, 1 reply; 7+ messages in thread
From: Clayton Shotwell @ 2015-03-04 23:17 UTC (permalink / raw)
To: buildroot
Thomas,
On Wed, Mar 4, 2015 at 4:56 PM, Thomas Petazzoni
<thomas.petazzoni@free-electrons.com> wrote:
> $ make printvars 2> /dev/null | grep LIBGLIB2 | grep VERSION
> HOST_LIBGLIB2_DL_VERSION=2.42.0_bar (2.42.0_bar)
> HOST_LIBGLIB2_VERSION=2.42.0_bar (2.42.0_bar)
> LIBGLIB2_DL_VERSION=2.42.0/bar (2.42.0/bar)
> LIBGLIB2_VERSION=2.42.0_bar (2.42.0_bar)
>
> So indeed, HOST_LIBGLIB2_DL_VERSION is wrong, it should be '2.42.0/bar'.
That is exactly what I was running into.
>
>> diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
>> index 1b09955..fcef461 100644
>> --- a/package/pkg-generic.mk
>> +++ b/package/pkg-generic.mk
>> @@ -323,7 +323,11 @@ $(2)_RAWNAME = $$(patsubst host-%,%,$(1))
>> # version control system branch or tag, for example remotes/origin/1_10_stable.
>> ifndef $(2)_VERSION
>> ifdef $(3)_VERSION
>> - $(2)_DL_VERSION := $$(strip $$($(3)_VERSION))
>> + ifdef $(3)_DL_VERSION
>> + $(2)_DL_VERSION := $$(strip $$($(3)_DL_VERSION))
>> + else
>> + $(2)_DL_VERSION := $$(strip $$($(3)_VERSION))
>> + endif
>
> However, I haven't yet made up my mind on whether this proposed
> solution is the best one, or if we have a chance of doing something
> clearer/nicer for this _VERSION vs. _DL_VERSION thing.
This was the simplest solution I could come up with without reworking
a lot of the pkg-download logic. I figured that if the _DL_VERSION of
non-host version was already set then it should be used, otherwise the
_VERSION string should be modified.
Thanks,
Clayton
Clayton Shotwell
Senior Software Engineer, Rockwell Collins
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH] pkg-generic: Fix host _DL_VERSION corner case
2015-03-04 23:17 ` Clayton Shotwell
@ 2015-03-05 8:25 ` Thomas Petazzoni
2015-07-11 15:21 ` Arnout Vandecappelle
0 siblings, 1 reply; 7+ messages in thread
From: Thomas Petazzoni @ 2015-03-05 8:25 UTC (permalink / raw)
To: buildroot
Dear Clayton Shotwell,
On Wed, 4 Mar 2015 17:17:50 -0600, Clayton Shotwell wrote:
> >> diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
> >> index 1b09955..fcef461 100644
> >> --- a/package/pkg-generic.mk
> >> +++ b/package/pkg-generic.mk
> >> @@ -323,7 +323,11 @@ $(2)_RAWNAME = $$(patsubst host-%,%,$(1))
> >> # version control system branch or tag, for example remotes/origin/1_10_stable.
> >> ifndef $(2)_VERSION
> >> ifdef $(3)_VERSION
> >> - $(2)_DL_VERSION := $$(strip $$($(3)_VERSION))
> >> + ifdef $(3)_DL_VERSION
> >> + $(2)_DL_VERSION := $$(strip $$($(3)_DL_VERSION))
> >> + else
> >> + $(2)_DL_VERSION := $$(strip $$($(3)_VERSION))
> >> + endif
> >
> > However, I haven't yet made up my mind on whether this proposed
> > solution is the best one, or if we have a chance of doing something
> > clearer/nicer for this _VERSION vs. _DL_VERSION thing.
>
> This was the simplest solution I could come up with without reworking
> a lot of the pkg-download logic. I figured that if the _DL_VERSION of
> non-host version was already set then it should be used, otherwise the
> _VERSION string should be modified.
Note that I was not saying that your proposal is not good. It's just
that it was already almost midnight my time, and it was too late to
really think about the right solution :-)
Thanks,
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH] pkg-generic: Fix host _DL_VERSION corner case
2015-03-05 8:25 ` Thomas Petazzoni
@ 2015-07-11 15:21 ` Arnout Vandecappelle
2015-07-11 15:40 ` [Buildroot] [PATCH v3] " Arnout Vandecappelle
0 siblings, 1 reply; 7+ messages in thread
From: Arnout Vandecappelle @ 2015-07-11 15:21 UTC (permalink / raw)
To: buildroot
In the case when a package has a host version, the package is dependent
on the host version, and the version contains a '/', the host version
does not evaluate properly. The host version will contain a '_' instead
of a '/', resulting in a failed download. To solve this corner case, add
a check to see if the _DL_VERSION of the package has been defined before
defining the host _DL_VERSION. If the package _DL_VERSION has not been
defined yet, then the version string has not been formatted yet and is
still good to use.
[Arnout: further simplify things by lifting the override over _VERSION
out of the condition - it is always the same.]
This error occured on a package in a BR2_EXTERNAL that uses a git repo
for its remote storage with '/' in the tag names. I do not believe this
affects any packages in the Buildroot mainline but it could in the
future.
[Arnout: rebase on master, fix existing whitespace error in the else
branch.]
Signed-off-by: Clayton Shotwell <clayton.shotwell@rockwellcollins.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
---
package/pkg-generic.mk | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
index 9fe01b8..5f630e4 100644
--- a/package/pkg-generic.mk
+++ b/package/pkg-generic.mk
@@ -298,17 +298,17 @@ $(2)_RAWNAME = $$(patsubst host-%,%,$(1))
# Similar for spaces and colons (:) that may appear in date-based revisions for
# CVS.
ifndef $(2)_VERSION
- ifdef $(3)_VERSION
- $(2)_DL_VERSION := $$(strip $$($(3)_VERSION))
- $(2)_VERSION := $$(call sanitize,$$($(3)_VERSION))
+ ifdef $(3)_DL_VERSION
+ $(2)_DL_VERSION := $$($(3)_DL_VERSION)
+ else ifdef $(3)_VERSION
+ $(2)_DL_VERSION := $$($(3)_VERSION)
else
- $(2)_VERSION = undefined
$(2)_DL_VERSION = undefined
endif
else
- $(2)_DL_VERSION := $$(strip $$($(2)_VERSION))
- $(2)_VERSION := $$(call sanitize,$$($(2)_VERSION))
+ $(2)_DL_VERSION := $$(strip $$($(2)_VERSION))
endif
+$(2)_VERSION := $$(call sanitize,$$($(2)_DL_VERSION))
$(2)_BASE_NAME = $(1)-$$($(2)_VERSION)
$(2)_DL_DIR = $$(DL_DIR)/$$($(2)_BASE_NAME)
--
2.1.4
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH v3] pkg-generic: Fix host _DL_VERSION corner case
2015-07-11 15:21 ` Arnout Vandecappelle
@ 2015-07-11 15:40 ` Arnout Vandecappelle
2015-07-11 22:50 ` Thomas Petazzoni
0 siblings, 1 reply; 7+ messages in thread
From: Arnout Vandecappelle @ 2015-07-11 15:40 UTC (permalink / raw)
To: buildroot
From: Clayton Shotwell <clayton.shotwell@rockwellcollins.com>
In the case when a package has a host version, the package is dependent
on the host version, and the version contains a '/', the host version
does not evaluate properly. The host version will contain a '_' instead
of a '/', resulting in a failed download. To solve this corner case, add
a check to see if the _DL_VERSION of the package has been defined before
defining the host _DL_VERSION. If the package _DL_VERSION has not been
defined yet, then the version string has not been formatted yet and is
still good to use.
[Arnout: further simplify things by lifting the override over _VERSION
out of the condition - it is always the same.]
This error occured on a package in a BR2_EXTERNAL that uses a git repo
for its remote storage with '/' in the tag names. I do not believe this
affects any packages in the Buildroot mainline but it could in the
future.
[Arnout: rebase on master, fix existing whitespace error in the else
branch.]
Signed-off-by: Clayton Shotwell <clayton.shotwell@rockwellcollins.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
---
v3: Re-instate Clayton as author - sorry about that
v2: rebase, fix whitespace error, lift _VERSION assignment out of condition
---
package/pkg-generic.mk | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
index 9fe01b8..5f630e4 100644
--- a/package/pkg-generic.mk
+++ b/package/pkg-generic.mk
@@ -298,17 +298,17 @@ $(2)_RAWNAME = $$(patsubst host-%,%,$(1))
# Similar for spaces and colons (:) that may appear in date-based revisions for
# CVS.
ifndef $(2)_VERSION
- ifdef $(3)_VERSION
- $(2)_DL_VERSION := $$(strip $$($(3)_VERSION))
- $(2)_VERSION := $$(call sanitize,$$($(3)_VERSION))
+ ifdef $(3)_DL_VERSION
+ $(2)_DL_VERSION := $$($(3)_DL_VERSION)
+ else ifdef $(3)_VERSION
+ $(2)_DL_VERSION := $$($(3)_VERSION)
else
- $(2)_VERSION = undefined
$(2)_DL_VERSION = undefined
endif
else
- $(2)_DL_VERSION := $$(strip $$($(2)_VERSION))
- $(2)_VERSION := $$(call sanitize,$$($(2)_VERSION))
+ $(2)_DL_VERSION := $$(strip $$($(2)_VERSION))
endif
+$(2)_VERSION := $$(call sanitize,$$($(2)_DL_VERSION))
$(2)_BASE_NAME = $(1)-$$($(2)_VERSION)
$(2)_DL_DIR = $$(DL_DIR)/$$($(2)_BASE_NAME)
--
2.1.4
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH v3] pkg-generic: Fix host _DL_VERSION corner case
2015-07-11 15:40 ` [Buildroot] [PATCH v3] " Arnout Vandecappelle
@ 2015-07-11 22:50 ` Thomas Petazzoni
0 siblings, 0 replies; 7+ messages in thread
From: Thomas Petazzoni @ 2015-07-11 22:50 UTC (permalink / raw)
To: buildroot
Dear Arnout Vandecappelle (Essensium/Mind),
On Sat, 11 Jul 2015 17:40:14 +0200, Arnout Vandecappelle
(Essensium/Mind) wrote:
> From: Clayton Shotwell <clayton.shotwell@rockwellcollins.com>
>
> In the case when a package has a host version, the package is dependent
> on the host version, and the version contains a '/', the host version
> does not evaluate properly. The host version will contain a '_' instead
> of a '/', resulting in a failed download. To solve this corner case, add
> a check to see if the _DL_VERSION of the package has been defined before
> defining the host _DL_VERSION. If the package _DL_VERSION has not been
> defined yet, then the version string has not been formatted yet and is
> still good to use.
>
> [Arnout: further simplify things by lifting the override over _VERSION
> out of the condition - it is always the same.]
>
> This error occured on a package in a BR2_EXTERNAL that uses a git repo
> for its remote storage with '/' in the tag names. I do not believe this
> affects any packages in the Buildroot mainline but it could in the
> future.
>
> [Arnout: rebase on master, fix existing whitespace error in the else
> branch.]
>
> Signed-off-by: Clayton Shotwell <clayton.shotwell@rockwellcollins.com>
> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
> ---
> v3: Re-instate Clayton as author - sorry about that
> v2: rebase, fix whitespace error, lift _VERSION assignment out of condition
> ---
> package/pkg-generic.mk | 12 ++++++------
> 1 file changed, 6 insertions(+), 6 deletions(-)
Applied, thanks.
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2015-07-11 22:50 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-02-24 22:26 [Buildroot] [PATCH] pkg-generic: Fix host _DL_VERSION corner case Clayton Shotwell
2015-03-04 22:56 ` Thomas Petazzoni
2015-03-04 23:17 ` Clayton Shotwell
2015-03-05 8:25 ` Thomas Petazzoni
2015-07-11 15:21 ` Arnout Vandecappelle
2015-07-11 15:40 ` [Buildroot] [PATCH v3] " Arnout Vandecappelle
2015-07-11 22:50 ` Thomas Petazzoni
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox