mirror of
https://github.com/motioneye-project/motioneyeos.git
synced 2025-07-28 13:46:32 +00:00
core: do not accept multiple definitions of a package
One of the selling points for br2-external is to provide a mean to add new packages. However, it is not supported that a package be defined by Buildroot and then redefined in a br2-external tree. This situation may occur without the user noticing or even willing to redefine the package, for example: - br2-external is first created against a version of Buildroot - a package (missing in Buildroot) is added to that br2-external tree - upstream Buildroot adds this package - user updates to the new Buildroot In this case, the result in undefined, and we can't make any guarantee on the result (working or not). Add a sanity check so that a package redefinition gets caught. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Peter Korsgaard <jacmet@uclibc.org> Cc: Arnout Vandecappelle <arnout@mind.be> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Reviewed-by: Samuel Martin <s.martin49@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
parent
d0185582d0
commit
0ea851c0c0
1
Makefile
1
Makefile
@ -334,6 +334,7 @@ unexport O
|
|||||||
GNU_HOST_NAME := $(shell support/gnuconfig/config.guess)
|
GNU_HOST_NAME := $(shell support/gnuconfig/config.guess)
|
||||||
|
|
||||||
PACKAGES :=
|
PACKAGES :=
|
||||||
|
PACKAGES_ALL :=
|
||||||
|
|
||||||
# silent mode requested?
|
# silent mode requested?
|
||||||
QUIET := $(if $(findstring s,$(filter-out --%,$(MAKEFLAGS))),-q)
|
QUIET := $(if $(findstring s,$(filter-out --%,$(MAKEFLAGS))),-q)
|
||||||
|
@ -341,6 +341,14 @@ endef
|
|||||||
|
|
||||||
define inner-generic-package
|
define inner-generic-package
|
||||||
|
|
||||||
|
# Ensure the package is only declared once, i.e. do not accept that a
|
||||||
|
# package be re-defined by a br2-external tree
|
||||||
|
ifneq ($(call strip,$(filter $(1),$(PACKAGES_ALL))),)
|
||||||
|
$$(error Package '$(1)' defined a second time in '$(pkgdir)'; \
|
||||||
|
previous definition was in '$$($(2)_PKGDIR)')
|
||||||
|
endif
|
||||||
|
PACKAGES_ALL += $(1)
|
||||||
|
|
||||||
# Define default values for various package-related variables, if not
|
# Define default values for various package-related variables, if not
|
||||||
# already defined. For some variables (version, source, site and
|
# already defined. For some variables (version, source, site and
|
||||||
# subdir), if they are undefined, we try to see if a variable without
|
# subdir), if they are undefined, we try to see if a variable without
|
||||||
@ -351,6 +359,7 @@ define inner-generic-package
|
|||||||
$(2)_TYPE = $(4)
|
$(2)_TYPE = $(4)
|
||||||
$(2)_NAME = $(1)
|
$(2)_NAME = $(1)
|
||||||
$(2)_RAWNAME = $$(patsubst host-%,%,$(1))
|
$(2)_RAWNAME = $$(patsubst host-%,%,$(1))
|
||||||
|
$(2)_PKGDIR = $(pkgdir)
|
||||||
|
|
||||||
# Keep the package version that may contain forward slashes in the _DL_VERSION
|
# Keep the package version that may contain forward slashes in the _DL_VERSION
|
||||||
# variable, then replace all forward slashes ('/') by underscores ('_') to
|
# variable, then replace all forward slashes ('/') by underscores ('_') to
|
||||||
|
Loading…
x
Reference in New Issue
Block a user