renames folder and adds support for reproducible builds

pull/2/head
nosamad 5 years ago
parent d4487d2e28
commit 3acf2ceecf

@ -3,15 +3,22 @@ default: all
# Overridable defaults
export SOURCE_DATE_EPOCH ?= $(shell $(PROJECT_ROOT)/build/get_source_date_epoch.sh)
export BUILDTIME ?= $(shell date -u -d '@$(SOURCE_DATE_EPOCH)' --rfc-3339 ns 2>/dev/null | sed -e 's/ /T/')
VERBOSE ?=
PROJECT_NAME ?= webfs
PROJECT_ROOT ?= .
OUT ?= $(PROJECT_ROOT)/.build
VERSION ?= $(shell cat $(PROJECT_ROOT)/VERSION)
OUT ?= $(PROJECT_ROOT)/.build
PARALLELMFLAGS ?= -j$(shell nproc)
UID ?= $(shell id -u)
DOCKER ?= docker
DOCKER_BUILDKIT ?=
CONTAINER_USER ?= $(UID)
CONTAINER_GROUP ?= $(shell id -g)
CONTAINER_WORKSPACE ?= /workspace
@ -56,6 +63,7 @@ DOCKER_RUNFLAGS += --init
DOCKER_RUNFLAGS += --user $(CONTAINER_USER):$(CONTAINER_GROUP)
DOCKER_RUNFLAGS += --device /dev/fuse --cap-add SYS_ADMIN --security-opt apparmor:unconfined
DOCKER_RUNFLAGS += --env SOURCE_DATE_EPOCH
DOCKER_RUNFLAGS += --env BUILDTIME
DOCKER_BUILDARGS += CODENAME=$(CODENAME)
DOCKER_BUILDARGS += PARALLELMFLAGS=$(PARALLELMFLAGS)
@ -148,7 +156,7 @@ $(OUT)/docker/qemu-arm-static-$(QEMU_VERSION):
&& curl -fsSL -o $@ $(URL) \
&& chmod +x $@
$(OUT)/% : $(PROJECT_ROOT)/% | $(OUT_DIRS)
$(OUT)/docker/% : $(PROJECT_ROOT)/build/% | $(OUT_DIRS)
cp $< $@
$(OUT)/docker/%: $(OUT)/docker/%.dockerfile $(EXTRACT_TARGETS) $(PROJECT_ROOT)/Makefile | $(OUT_DIRS)

@ -0,0 +1,26 @@
#!/bin/sh
export LANG=C
export LC_ALL=C
[ -n "$TOPDIR" ] && cd "$TOPDIR"
try_git() {
[ -e .git ] || return 1
SOURCE_DATE_EPOCH="$(git log -1 --format=format:%ct)"
[ -n "$SOURCE_DATE_EPOCH" ]
}
try_hg() {
[ -d .hg ] || return 1
SOURCE_DATE_EPOCH="$(hg log --template '{date}' -l 1 | cut -d. -f1)"
[ -n "$SOURCE_DATE_EPOCH" ]
}
try_mtime() {
perl -e 'print((stat $ARGV[0])[9])' "$0"
[ -n "$SOURCE_DATE_EPOCH" ]
}
try_git || try_hg || try_mtime || SOURCE_DATE_EPOCH=""
echo "$SOURCE_DATE_EPOCH"
Loading…
Cancel
Save