From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7187242631035879424 X-Received: by 2002:a5d:58d1:0:b0:2b3:62cf:aa3e with SMTP id o17-20020a5d58d1000000b002b362cfaa3emr1086869wrf.703.1673503073586; Wed, 11 Jan 2023 21:57:53 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a5d:4943:0:b0:298:bd4a:4dd9 with SMTP id r3-20020a5d4943000000b00298bd4a4dd9ls1279737wrs.1.-pod-prod-gmail; Wed, 11 Jan 2023 21:57:52 -0800 (PST) X-Google-Smtp-Source: AMrXdXu5M+oOIgMhbPs+gvu/Io4h5LbDj3fluQ+MAeCfs5qgWclofB3bWfLyl9c/53nZW6padfoa X-Received: by 2002:a5d:4487:0:b0:2bd:d8f1:2edf with SMTP id j7-20020a5d4487000000b002bdd8f12edfmr4856wrq.49.1673503072198; Wed, 11 Jan 2023 21:57:52 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1673503072; cv=none; d=google.com; s=arc-20160816; b=i2byPZVpB8ldddiAhXAPtPioSN832WhR7jT92DuiRkKGRZip1Vj0ax7RyFTGpAID1b b/8FlhfMWUYydZq8hFmI9cq6Mj1n+OKI7RwL2psoVD42f1nmXthlsrQtpFZv6jnzvO7Y SmhPHdBYphxwvIzXViLOfIR8u5gAgEpRuD6b3Lu+BIHtcBp9EODWz3vX3kFu8QaApL6z VErUeWi3ktECm413oZcoaAHT4y7uWHn+Vq7nZC2/fr/jQKOYgeop4tvtvz4mpw4r8hxP Q2uVXX2l31BuOqGj7qpcwpo/uyhUlSUhktGmLhkvMKpYVeuhg3svbzYZ+6UkGBT5IMOO 7m4w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=feedback-id:content-transfer-encoding:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature; bh=Zem2NDa9zc/UV8kzTLu5ox256Tx4+iPPwUbQZnwLv64=; b=Zfubx9YdGOuLCJ5mQj1zjGTCUG4tEq/8LiwkvYnPv2zo31ENb8oXjvejl2aHuWADcO D0e6ITb87RJZhzBcGkSOhKXeRWJ+YP564GojZwHGSASO3z7cLbEF+uHOLeJP4T21XCxl x54uyOyxYdMIKmH2DacNKoe/l9gIsUSlzTfIkm2Cj67ODUPuwOPlbgjGU5QjTA3c6Hsc 7OuB2wtGQDI3tLBWTb7Mu5hTTkbRChtaKF3tKtQEqAaWhi9CKhXZhGQ9+TX/a6XmedFS ZcYh+yt4AL/M+3IaUtRs75L086K58aX3+zNFqvaaqXSiUPbE0OVsHjdPxcJlU5dvKBh8 jkMQ== ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm1 header.b=DO452WkM; spf=pass (google.com: domain of fm-72506-202301120557528cd33c759cea19c78c-gklvcl@rts-flowmailer.siemens.com designates 185.136.64.228 as permitted sender) smtp.mailfrom=fm-72506-202301120557528cd33c759cea19c78c-GKlVcL@rts-flowmailer.siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Return-Path: Received: from mta-64-228.siemens.flowmailer.net (mta-64-228.siemens.flowmailer.net. [185.136.64.228]) by gmr-mx.google.com with ESMTPS id az7-20020adfe187000000b002416691399csi718452wrb.4.2023.01.11.21.57.52 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 11 Jan 2023 21:57:52 -0800 (PST) Received-SPF: pass (google.com: domain of fm-72506-202301120557528cd33c759cea19c78c-gklvcl@rts-flowmailer.siemens.com designates 185.136.64.228 as permitted sender) client-ip=185.136.64.228; Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm1 header.b=DO452WkM; spf=pass (google.com: domain of fm-72506-202301120557528cd33c759cea19c78c-gklvcl@rts-flowmailer.siemens.com designates 185.136.64.228 as permitted sender) smtp.mailfrom=fm-72506-202301120557528cd33c759cea19c78c-GKlVcL@rts-flowmailer.siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Received: by mta-64-228.siemens.flowmailer.net with ESMTPSA id 202301120557528cd33c759cea19c78c for ; Thu, 12 Jan 2023 06:57:52 +0100 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; s=fm1; d=siemens.com; i=felix.moessbauer@siemens.com; h=Date:From:Subject:To:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:Cc:References:In-Reply-To; bh=Zem2NDa9zc/UV8kzTLu5ox256Tx4+iPPwUbQZnwLv64=; b=DO452WkMu08lB3o2PEnqBDcF2UFXs9JS2o8KGqmhdzrN4xmYS4cPOnRKl9TeBTipUNynZ+ GHvz6AB5PW5RZDyDHv0K7zNJFEB4YqSMA9r+G+BPc27T6Pw7oMJZC253lHDLSgBwVLp5LzGZ 4REB0CqTQ1wrk9rSlQ/c5RL+5wx34=; From: Felix Moessbauer To: isar-users@googlegroups.com Cc: jan.kiszka@siemens.com, daniel.bovensiepen@siemens.com, henning.schild@siemens.com, venkata.pyla@toshiba-tsip.com, Felix Moessbauer Subject: [PATCH v2 10/10] make custom linux-image bit-by-bit reproducible Date: Thu, 12 Jan 2023 05:56:19 +0000 Message-Id: <20230112055619.843445-11-felix.moessbauer@siemens.com> In-Reply-To: <20230112055619.843445-1-felix.moessbauer@siemens.com> References: <20230112055619.843445-1-felix.moessbauer@siemens.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-72506:519-21489:flowmailer X-TUID: ZjEDV5ExVo2E This patch makes the build of custom linux kernels bit-by-bit reproducible. By that, we can remove the dh_strip_nondeterminism step, which significantly reduces the kernel build time. The implementation is similar to how upstream debian builds their kernel images and extracts all information from the changelog. As the DISTRIBUTOR field is not part of the changelog, we inject it via a bb variable which is defaulted to ISAR. Signed-off-by: Felix Moessbauer --- .../linux/files/debian/isar/build.tmpl | 1 + meta/recipes-kernel/linux/files/debian/rules.tmpl | 14 +++++++++++++- meta/recipes-kernel/linux/linux-custom.inc | 2 ++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/meta/recipes-kernel/linux/files/debian/isar/build.tmpl b/meta/recipes-kernel/linux/files/debian/isar/build.tmpl index 94cfbe0..e7e0479 100644 --- a/meta/recipes-kernel/linux/files/debian/isar/build.tmpl +++ b/meta/recipes-kernel/linux/files/debian/isar/build.tmpl @@ -34,6 +34,7 @@ print_settings() { # --------------- # ARCH=${ARCH} # CROSS_COMPILE=${CROSS_COMPILE} +# KBUILD_BUILD_TIMESTAMP=${KBUILD_BUILD_TIMESTAMP} EOF } diff --git a/meta/recipes-kernel/linux/files/debian/rules.tmpl b/meta/recipes-kernel/linux/files/debian/rules.tmpl index 8063c49..e8ae3da 100755 --- a/meta/recipes-kernel/linux/files/debian/rules.tmpl +++ b/meta/recipes-kernel/linux/files/debian/rules.tmpl @@ -2,6 +2,11 @@ CROSS_COMPILE:=$(DEB_HOST_GNU_TYPE)- +MAINTAINER := $(shell sed -ne 's,^Maintainer: .[^<]*<\([^>]*\)>,\1,p' debian/control) +DISTRIBUTOR := ${DISTRIBUTOR} +SOURCE_DATE := $(shell dpkg-parsechangelog -SDate) +SOURCE_DATE_UTC_ISO := $(shell date -u -d '$(SOURCE_DATE)' +%Y-%m-%d) + O:=$(CURDIR)/${KERNEL_BUILD_DIR} S:=$(CURDIR) deb_top_dir:=$(S)/debian @@ -14,7 +19,11 @@ isar_env=$(strip \ export MAKE='$(MAKE)' && \ export O='${O}' && \ export S='${S}' && \ - export CURDIR='$(CURDIR)' \ + export CURDIR='$(CURDIR)' && \ + export KBUILD_BUILD_TIMESTAMP='$(SOURCE_DATE)' && \ + export KBUILD_BUILD_VERSION_TIMESTAMP='$(DISTRIBUTOR) $(DEB_VERSION_UPSTREAM) ($(SOURCE_DATE_UTC_ISO))' && \ + export KBUILD_BUILD_USER='$(word 1,$(subst @, ,$(MAINTAINER)))' && \ + export KBUILD_BUILD_HOST='$(word 2,$(subst @, ,$(MAINTAINER)))' \ ) %: @@ -35,5 +44,8 @@ override_dh_auto_install: override_dh_auto_test: true +override_dh_strip_nondeterminism: + true + override_dh_strip: unset DEB_HOST_GNU_TYPE && dh_strip -Xvmlinu --no-automatic-dbgsym diff --git a/meta/recipes-kernel/linux/linux-custom.inc b/meta/recipes-kernel/linux/linux-custom.inc index 447d4e8..6c539c0 100644 --- a/meta/recipes-kernel/linux/linux-custom.inc +++ b/meta/recipes-kernel/linux/linux-custom.inc @@ -12,6 +12,7 @@ CHANGELOG_V = "${PV}+${PR}" DESCRIPTION ?= "Custom kernel" MAINTAINER ?= "isar-users " +DISTRIBUTOR ?= "ISAR" KBUILD_DEPENDS ?= "build-essential:native, \ libelf-dev:native, \ @@ -79,6 +80,7 @@ TEMPLATE_VARS += " \ KERNEL_NAME_PROVIDED \ KERNEL_CONFIG_FRAGMENTS \ KCFLAGS \ + DISTRIBUTOR \ " inherit dpkg -- 2.34.1