[RFCv3,11/15] package/pkg-generic: handle host-fakedate as a regular dependency

Message ID 20171201205352.24287-12-thomas.petazzoni@free-electrons.com
State Superseded
Headers show
Series
  • Per-package host/target directory support
Related show

Commit Message

Thomas Petazzoni Dec. 1, 2017, 8:53 p.m.
This commit moves the host-fakedate dependency handling from
DEPENDENCIES_HOST_PREREQ to a proper regular dependency handled by the
package infrastructure.

host-fakedate is added as dependency to all packages, except
host-skeleton, because we depend on it.

In addition, we make sure that host-fakedate does not grow a
dependency on host-{tar,xz,lzip,ccache} to avoid circular
dependencies. host-fakedate does not need any extraction tool and does
not need to build C/C++ code (the source code is just a shell script
available in Buildroot).

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
Changes since v2:
 - New patch
---
 Makefile               |  1 -
 package/pkg-generic.mk | 14 ++++++++++----
 2 files changed, 10 insertions(+), 5 deletions(-)

Comments

Yann E. MORIN Dec. 29, 2017, 3:50 p.m. | #1
Thomas, All,

On 2017-12-01 21:53 +0100, Thomas Petazzoni spake thusly:
> This commit moves the host-fakedate dependency handling from
> DEPENDENCIES_HOST_PREREQ to a proper regular dependency handled by the
> package infrastructure.
> 
> host-fakedate is added as dependency to all packages, except
> host-skeleton, because we depend on it.
> 
> In addition, we make sure that host-fakedate does not grow a
> dependency on host-{tar,xz,lzip,ccache} to avoid circular
> dependencies. host-fakedate does not need any extraction tool and does
> not need to build C/C++ code (the source code is just a shell script
> available in Buildroot).
> 
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>

Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

But see below...

> ---
> Changes since v2:
>  - New patch
> ---
>  Makefile               |  1 -
>  package/pkg-generic.mk | 14 ++++++++++----
>  2 files changed, 10 insertions(+), 5 deletions(-)
> 
> diff --git a/Makefile b/Makefile
> index 56bf083098..f31834682c 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -255,7 +255,6 @@ export LC_ALL = C
>  export GZIP = -n
>  BR2_VERSION_GIT_EPOCH = $(shell GIT_DIR=$(TOPDIR)/.git $(GIT) log -1 --format=%at)
>  export SOURCE_DATE_EPOCH ?= $(if $(wildcard $(TOPDIR)/.git),$(BR2_VERSION_GIT_EPOCH),$(BR2_VERSION_EPOCH))
> -DEPENDENCIES_HOST_PREREQ += host-fakedate
>  endif
>  
>  # To put more focus on warnings, be less verbose as default
> diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
> index cb5889c9ef..7c5d951af9 100644
> --- a/package/pkg-generic.mk
> +++ b/package/pkg-generic.mk
> @@ -587,24 +587,30 @@ ifneq ($(1),host-skeleton)
>  $(2)_DEPENDENCIES += host-skeleton
>  endif
>  
> -ifeq ($(filter host-tar host-skeleton,$(1)),)
> +ifeq ($(filter host-tar host-skeleton host-fakedate,$(1)),)
>  $(2)_EXTRACT_DEPENDENCIES += $(BR2_TAR_HOST_DEPENDENCY)
>  endif
>  
> -ifeq ($(filter host-tar host-skeleton host-xz host-lzip,$(1)),)
> +ifeq ($(filter host-tar host-skeleton host-xz host-lzip host-fakedate,$(1)),)
>  $(2)_EXTRACT_DEPENDENCIES += $(BR2_XZCAT_HOST_DEPENDENCY)
>  endif
>  
> -ifeq ($(filter host-tar host-skeleton host-xz host-lzip,$(1)),)
> +ifeq ($(filter host-tar host-skeleton host-xz host-lzip host-fakedate,$(1)),)
>  $(2)_EXTRACT_DEPENDENCIES += $(BR2_LZIP_HOST_DEPENDENCY)
>  endif
>  
>  ifeq ($(BR2_CCACHE),y)
> -ifeq ($(filter host-tar host-skeleton host-xz host-lzip,$(1)),)
> +ifeq ($(filter host-tar host-skeleton host-xz host-lzip host-fakedate,$(1)),)

Those last three conditions are using the exact same list, maybe we can
re-factorise the code to avoid duplicating that list?

Regards,
Yann E. MORIN.

>  $(2)_DEPENDENCIES += host-ccache
>  endif
>  endif
>  
> +ifeq ($(BR2_REPRODUCIBLE),y)
> +ifeq ($(filter host-skeleton,$(1)),)
> +$(2)_DEPENDENCIES += host-fakedate
> +endif
> +endif
> +
>  # Eliminate duplicates in dependencies
>  $(2)_FINAL_DEPENDENCIES = $$(sort $$($(2)_DEPENDENCIES))
>  $(2)_FINAL_EXTRACT_DEPENDENCIES = $$(sort $$($(2)_EXTRACT_DEPENDENCIES))
> -- 
> 2.13.6
>

Patch

diff --git a/Makefile b/Makefile
index 56bf083098..f31834682c 100644
--- a/Makefile
+++ b/Makefile
@@ -255,7 +255,6 @@  export LC_ALL = C
 export GZIP = -n
 BR2_VERSION_GIT_EPOCH = $(shell GIT_DIR=$(TOPDIR)/.git $(GIT) log -1 --format=%at)
 export SOURCE_DATE_EPOCH ?= $(if $(wildcard $(TOPDIR)/.git),$(BR2_VERSION_GIT_EPOCH),$(BR2_VERSION_EPOCH))
-DEPENDENCIES_HOST_PREREQ += host-fakedate
 endif
 
 # To put more focus on warnings, be less verbose as default
diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
index cb5889c9ef..7c5d951af9 100644
--- a/package/pkg-generic.mk
+++ b/package/pkg-generic.mk
@@ -587,24 +587,30 @@  ifneq ($(1),host-skeleton)
 $(2)_DEPENDENCIES += host-skeleton
 endif
 
-ifeq ($(filter host-tar host-skeleton,$(1)),)
+ifeq ($(filter host-tar host-skeleton host-fakedate,$(1)),)
 $(2)_EXTRACT_DEPENDENCIES += $(BR2_TAR_HOST_DEPENDENCY)
 endif
 
-ifeq ($(filter host-tar host-skeleton host-xz host-lzip,$(1)),)
+ifeq ($(filter host-tar host-skeleton host-xz host-lzip host-fakedate,$(1)),)
 $(2)_EXTRACT_DEPENDENCIES += $(BR2_XZCAT_HOST_DEPENDENCY)
 endif
 
-ifeq ($(filter host-tar host-skeleton host-xz host-lzip,$(1)),)
+ifeq ($(filter host-tar host-skeleton host-xz host-lzip host-fakedate,$(1)),)
 $(2)_EXTRACT_DEPENDENCIES += $(BR2_LZIP_HOST_DEPENDENCY)
 endif
 
 ifeq ($(BR2_CCACHE),y)
-ifeq ($(filter host-tar host-skeleton host-xz host-lzip,$(1)),)
+ifeq ($(filter host-tar host-skeleton host-xz host-lzip host-fakedate,$(1)),)
 $(2)_DEPENDENCIES += host-ccache
 endif
 endif
 
+ifeq ($(BR2_REPRODUCIBLE),y)
+ifeq ($(filter host-skeleton,$(1)),)
+$(2)_DEPENDENCIES += host-fakedate
+endif
+endif
+
 # Eliminate duplicates in dependencies
 $(2)_FINAL_DEPENDENCIES = $$(sort $$($(2)_DEPENDENCIES))
 $(2)_FINAL_EXTRACT_DEPENDENCIES = $$(sort $$($(2)_EXTRACT_DEPENDENCIES))