diff --git a/include/package-defaults.mk b/include/package-defaults.mk index af2db4712c..5bb6d1d2f4 100644 --- a/include/package-defaults.mk +++ b/include/package-defaults.mk @@ -64,6 +64,7 @@ ifneq ($(strip $(PKG_UNPACK)),) define Build/Prepare/Default $(PKG_UNPACK) [ ! -d ./src/ ] || $(CP) ./src/. $(PKG_BUILD_DIR) + -find $(PKG_BUILD_DIR) -mindepth 1 -type f -printf '%T@\n' 2>/dev/null | head -n1 | cut -d. -f1 > $(PKG_BUILD_DIR)/version.date $(Build/Patch) endef endif diff --git a/include/package-pack.mk b/include/package-pack.mk index 96ec8fe8ba..493619f7aa 100644 --- a/include/package-pack.mk +++ b/include/package-pack.mk @@ -439,7 +439,7 @@ $$(call addfield,Depends,$$(Package/$(1)/DEPENDS) )$$(call addfield,LicenseFiles,$(LICENSE_FILES) )$$(call addfield,Section,$(SECTION) )$$(call addfield,Require-User,$(USERID) -)$$(call addfield,SourceDateEpoch,$(PKG_SOURCE_DATE_EPOCH) +)$$(call addfield,SourceDateEpoch,$$(PKG_SOURCE_DATE_EPOCH) )$$(call addfield,URL,$(URL) )$$(if $$(ABIV_$(1)),ABIVersion: $$(ABIV_$(1)) )$(if $(PKG_CPE_ID),CPE-ID: $(PKG_CPE_ID) @@ -453,8 +453,7 @@ $(_endef) $$(PACK_$(1)) : export CONTROL=$$(Package/$(1)/CONTROL) $$(PACK_$(1)) : $(call shexport,Package/$(1)/description) $$(PACK_$(1)) : export PATH=$$(TARGET_PATH_PKG) - $$(PACK_$(1)) : export PKG_SOURCE_DATE_EPOCH:=$(PKG_SOURCE_DATE_EPOCH) - $$(PACK_$(1)) : export SOURCE_DATE_EPOCH:=$(PKG_SOURCE_DATE_EPOCH) + $$(PACK_$(1)) : export SOURCE_DATE_EPOCH=$$(PKG_SOURCE_DATE_EPOCH) $(PKG_INFO_DIR)/$(1).provides $$(PACK_$(1)): $(STAMP_BUILT) $(INCLUDE_DIR)/package-pack.mk rm -rf $$(IDIR_$(1)) ifeq ($$(CONFIG_USE_APK),) diff --git a/include/package.mk b/include/package.mk index f3c4373249..cad8dc922f 100644 --- a/include/package.mk +++ b/include/package.mk @@ -15,7 +15,8 @@ PKG_SKIP_DOWNLOAD=$(USE_SOURCE_DIR)$(USE_GIT_TREE)$(USE_GIT_SRC_CHECKOUT) MAKE_J:=$(if $(MAKE_JOBSERVER),$(MAKE_JOBSERVER) $(if $(filter 3.% 4.0 4.1,$(MAKE_VERSION)),-j)) -PKG_SOURCE_DATE_EPOCH:=$(if $(DUMP),,$(shell $(TOPDIR)/scripts/get_source_date_epoch.sh $(CURDIR))) +PKG_SOURCE_DATE_EPOCH = $(if $(DUMP),,$(shell $(TOPDIR)/scripts/get_source_date_epoch.sh \ + $(if $(wildcard $(PKG_BUILD_DIR)/version.date),$(PKG_BUILD_DIR),$(CURDIR)))) ifeq ($(strip $(PKG_BUILD_PARALLEL)),0) PKG_JOBS?=-j1 @@ -324,7 +325,7 @@ define Build/CoreTargets ifneq ($(CONFIG_AUTOREMOVE),) compile: -touch -r $(PKG_BUILD_DIR)/.built $(PKG_BUILD_DIR)/.autoremove 2>/dev/null >/dev/null - $(FIND) $(PKG_BUILD_DIR) -mindepth 1 -maxdepth 1 -not '(' -type f -and -name '.*' -and -size 0 ')' -and -not -name '.pkgdir' -print0 | \ + $(FIND) $(PKG_BUILD_DIR) -mindepth 1 -maxdepth 1 -not '(' -type f -and -name '.*' -and -size 0 ')' -and -not -name '.pkgdir' -and -not -name 'version.date' -print0 | \ $(XARGS) -0 rm -rf endif endef diff --git a/scripts/ipkg-build b/scripts/ipkg-build index d2beb41844..2e18194abd 100755 --- a/scripts/ipkg-build +++ b/scripts/ipkg-build @@ -15,9 +15,7 @@ FIND="${FIND:-$(command -v gfind)}" TAR="${TAR:-$(command -v tar)}" # try to use fixed source epoch -if [ -n "$PKG_SOURCE_DATE_EPOCH" ]; then - TIMESTAMP=$(date --date="@$PKG_SOURCE_DATE_EPOCH") -elif [ -n "$SOURCE_DATE_EPOCH" ]; then +if [ -n "$SOURCE_DATE_EPOCH" ]; then TIMESTAMP=$(date --date="@$SOURCE_DATE_EPOCH") else TIMESTAMP=$(date)