core: do not attempt downloads with no _VERSION set
PATCH 1/1 core: do not attempt downloads with no _VERSION set
Currently, when the package defines no _SOURCE and no _VERSION variables, we end up trying to download <PACKAGE>-undefined.tar.gz.
This is utterly pointless.
Change the logic to not attempt a download when neither _SOURCE nor _VERSION is set:
- do not set an undefined _VERSION to "undefined"
- do not append an empty (or "undefined") version to the package rawname
- use the package rawname in the MESSAGE macro
Consequently, for packages that have no _VERSION, the build directory will be just the package name (which to some may look nicer than the current "package-undefined").
Furthermore, the message trace is also a bit leaner (to the same people that find "package" nicer than "package-undefined").
--- package/pkg-generic.mk | 6 ++---- package/pkg-utils.mk | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-)
package/pkg-generic.mk +2 -4
@@ -380,8 +380,6 @@ ifndef $(2)_VERSION $(2)_DL_VERSION := $$($(3)_DL_VERSION) else ifdef $(3)_VERSION $(2)_DL_VERSION := $$($(3)_VERSION) - else - $(2)_DL_VERSION = undefined endif else $(2)_DL_VERSION := $$(strip $$($(2)_VERSION))
@@ -392,7 +390,7 @@ ifdef $(3)_OVERRIDE_SRCDIR $(2)_OVERRIDE_SRCDIR ?= $$($(3)_OVERRIDE_SRCDIR) endif -$(2)_BASE_NAME = $(1)-$$($(2)_VERSION) +$(2)_BASE_NAME = $$(if $$($(2)_VERSION),$(1)-$$($(2)_VERSION),$(1)) $(2)_DL_DIR = $$(DL_DIR)/$$($(2)_BASE_NAME) $(2)_DIR = $$(BUILD_DIR)/$$($(2)_BASE_NAME)
@@ -422,7 +420,7 @@ endif ifndef $(2)_SOURCE ifdef $(3)_SOURCE $(2)_SOURCE = $$($(3)_SOURCE) - else + else ifdef $(2)_VERSION $(2)_SOURCE ?= $$($(2)_RAWNAME)-$$($(2)_VERSION).tar.gz endif endif
package/pkg-utils.mk +1 -1
@@ -83,7 +83,7 @@ INFLATE.tar = cat suitable-extractor = $(INFLATE$(suffix $(1))) # MESSAGE Macro -- display a message in bold type -MESSAGE = echo "$(TERM_BOLD)>>> $($(PKG)_NAME) $($(PKG)_VERSION) $(call qstrip,$(1))$(TERM_RESET)" +MESSAGE = echo "$(TERM_BOLD)>>> $($(PKG)_BASE_NAME) $(call qstrip,$(1))$(TERM_RESET)" TERM_BOLD := $(shell tput smso) TERM_RESET := $(shell tput rmso)
Signature · 1 line
2.6.4
PATCH 1/1 core: do not attempt downloads with no _VERSION set
Quoted 16 lines · Alex Suykov
Currently, when the package defines no
_SOURCEand no_VERSIONvariables, we end up trying to download <PACKAGE>-undefined.tar.gz.This is utterly pointless.
Change the logic to not attempt a download when neither
_SOURCEnor_VERSIONis set:
- do not set an undefined_VERSIONto "undefined"
- do not append an empty (or "undefined") version to the package rawname
- use the package rawname in the MESSAGE macroConsequently, for packages that have no
_VERSION, the build directory will be just the package name (which to some may look nicer than the current "package-undefined").
Quoted 6 lines
Furthermore, the message trace is also a bit leaner (to the same people that find "package" nicer than "package-undefined").
Signed-off-by Alex Suykov <[email protected]>Tested-by "Yann E. MORIN" <[email protected]>Reviewed-by "Yann E. MORIN" <[email protected]>
Note that we could also remove the _SOURCE and _VERSION definitions in
pkg-virtual.mk.
Some additional comments below.
Quoted 28 lines
--- package/pkg-generic.mk | 6 ++---- package/pkg-utils.mk | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-)package/pkg-generic.mk +1
-3@@ -380,8 +380,6 @@ ifndef $(2)_VERSION $(2)_DL_VERSION := $$($(3)_DL_VERSION) else ifdef $(3)_VERSION $(2)_DL_VERSION := $$($(3)_VERSION) - else - $(2)_DL_VERSION = undefined endif else $(2)_DL_VERSION := $$(strip $$($(2)_VERSION))@@ -392,7 +390,7 @@ ifdef $(3)_OVERRIDE_SRCDIR $(2)_OVERRIDE_SRCDIR ?= $$($(3)_OVERRIDE_SRCDIR) endif -$(2)_BASE_NAME = $(1)-$$($(2)_VERSION) +$(2)_BASE_NAME = $$(if $$($(2)_VERSION),$(1)-$$($(2)_VERSION),$(1)) $(2)_DL_DIR = $$(DL_DIR)/$$($(2)_BASE_NAME) $(2)_DIR = $$(BUILD_DIR)/$$($(2)_BASE_NAME)
package/pkg-generic.mk endif · line 424
Quoted 6 lines
package/pkg-generic.mk +1
-1@@ -422,7 +420,7 @@ endif ifndef $(2)_SOURCE ifdef $(3)_SOURCE $(2)_SOURCE = $$($(3)_SOURCE) - else + else ifdef $(2)_VERSION $(2)_SOURCE ?= $$($(2)_RAWNAME)-$$($(2)_VERSION).tar.gz
Maybe we should also fix this whitespace gibberish.
package/pkg-utils.mk INFLATE.tar = cat · line 86
Quoted 12 lines
package/pkg-generic.mk +0
-0endif endifpackage/pkg-utils.mk +1
-1@@ -83,7 +83,7 @@ INFLATE.tar = cat suitable-extractor = $(INFLATE$(suffix $(1))) # MESSAGE Macro -- display a message in bold type -MESSAGE = echo "$(TERM_BOLD)>>> $($(PKG)_NAME) $($(PKG)_VERSION) $(call qstrip,$(1))$(TERM_RESET)" +MESSAGE = echo "$(TERM_BOLD)>>> $($(PKG)_BASE_NAME) $(call qstrip,$(1))$(TERM_RESET)"
This part I don't like much. I did like it that the package name and the
version were separated in the messages. The idea of this change is to avoid a double space when PKG_VERSION is empty, but in fact we already have that for the finalizing steps.
So, to eliminate all spaces, I'd make it
MESSAGE = echo "$(TERM_BOLD)>>>" $($(PKG)_NAME) $($(PKG)_VERSION) "$(call qstrip,$(1))$(TERM_RESET)"
this way, empty package name and version will be eliminated by shell parsing.
But that's a separate patch, so I propose to eliminate just this bit from the
patch and apply.
Regards,
Arnout
Quoted 4 lines
package/pkg-utils.mk +0
-0TERM_BOLD := $(shell tput smso) TERM_RESET := $(shell tput rmso)
Signature · 6 lines
Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286500 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
PATCH 1/1 core: do not attempt downloads with no _VERSION set
In reply to Alex SuykovHello,
Quoted 16 lines · Alex Suykov
Currently, when the package defines no
_SOURCEand no_VERSIONvariables, we end up trying to download <PACKAGE>-undefined.tar.gz.This is utterly pointless.
Change the logic to not attempt a download when neither
_SOURCEnor_VERSIONis set:
- do not set an undefined_VERSIONto "undefined"
- do not append an empty (or "undefined") version to the package rawname
- use the package rawname in the MESSAGE macroConsequently, for packages that have no
_VERSION, the build directory will be just the package name (which to some may look nicer than the current "package-undefined").
Quoted 6 lines
Furthermore, the message trace is also a bit leaner (to the same people that find "package" nicer than "package-undefined").
Signed-off-by Alex Suykov <[email protected]>Tested-by "Yann E. MORIN" <[email protected]>Reviewed-by "Yann E. MORIN" <[email protected]>
Thanks for this patch! I just sent a patch series that includes your patch, plus several follow-up patches to clean up existing patches that needlessly define _SOURCE to the empty value.
See http://lists.busybox.net/pipermail/buildroot/2016-July/166270.html
and following e-mails.
Consequently, I've marked your patch as "Changes Requested" in patchwork. Of course, the new iteration preserves your authorship.
Best regards,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com