From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7187242631035879424 X-Received: by 2002:a05:6402:ea0:b0:461:eea0:514c with SMTP id h32-20020a0564020ea000b00461eea0514cmr8360733eda.296.1673410386062; Tue, 10 Jan 2023 20:13:06 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:6402:51c9:b0:479:6c1:ef04 with SMTP id r9-20020a05640251c900b0047906c1ef04ls5863945edd.0.-pod-prod-gmail; Tue, 10 Jan 2023 20:13:04 -0800 (PST) X-Google-Smtp-Source: AMrXdXtjhPLJzQyUdLRhomlY7CPQtz48hi4JIM7wKr/PWpsivBCQPzu6gTg+XM43ZGcVd3osmg2U X-Received: by 2002:a05:6402:1c0f:b0:499:8849:5fb6 with SMTP id ck15-20020a0564021c0f00b0049988495fb6mr8726233edb.30.1673410384678; Tue, 10 Jan 2023 20:13:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1673410384; cv=none; d=google.com; s=arc-20160816; b=FCn8ffeAORqOZ8JPvHgixznxnI8DTACO6NWBjez4j9i4zP5FYwQbk4xaofeKgsFhDU XYkhpWyVwfJSzFThpAfd7AwAgbLDdy8sKQqTXH/xBcJ5p7XGk5rF4ICBBLjxwknM5b+5 LeBVEvQ/swZXE30aW39gQxRbmfYznHrKvmZd6J4qnPXmT3TCVL9DsKA7+EcGqCtnhPAy Ln3y3/c2gkUkLEJ82NOjWYY5shL+di/kVnDiTh9pQP7eXF4w+Voo0s7j7Urxj7z6K2Oy bs7AwH+DoC9IeGfHM/0D6qCHBLIT0DtIYivgmprhdEsei5lJjp0UbFTGRdBBzwR0e7Rr z2ag== 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=I3LAsBWa9nMgjNfEr/0P6s50e714OELFVmUUsDTTHfur40LUtQ5NZDr5w5uUxhRTWw ztaFLD4UXDiXSW6eaDlDG7GWJ2UKGbUZNoYSke3TTf8GOJ1LW1yymyhrrMF24mynhX7K 8/kgQRuemk8cyUpTa7AIzisVQxEbyoeK3F9R2Rv2bZ+ZDJirnZb/X1z+wDFkjCJKniTk gjV/flMfmvtx5SKyCxPJEMiQ5/jkgErMHEVLf9WWpe6puTY5LJgcK19Rm9y8/6tfkuf7 iCaUfNBp0aJbQUOmQYLC9Fgnli3TpZ3Q4kKh9hL/V9Ay28TrRWY1245G1Qt/mRkIQn+Q FLSw== ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm1 header.b=Ablk2Fvz; spf=pass (google.com: domain of fm-72506-202301110413041e6894ed3d125ae40c-jn1swi@rts-flowmailer.siemens.com designates 185.136.65.225 as permitted sender) smtp.mailfrom=fm-72506-202301110413041e6894ed3d125ae40c-jn1sWi@rts-flowmailer.siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Return-Path: Received: from mta-65-225.siemens.flowmailer.net (mta-65-225.siemens.flowmailer.net. [185.136.65.225]) by gmr-mx.google.com with ESMTPS id u6-20020aa7d0c6000000b0046920d68fe2si597488edo.4.2023.01.10.20.13.04 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 10 Jan 2023 20:13:04 -0800 (PST) Received-SPF: pass (google.com: domain of fm-72506-202301110413041e6894ed3d125ae40c-jn1swi@rts-flowmailer.siemens.com designates 185.136.65.225 as permitted sender) client-ip=185.136.65.225; Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm1 header.b=Ablk2Fvz; spf=pass (google.com: domain of fm-72506-202301110413041e6894ed3d125ae40c-jn1swi@rts-flowmailer.siemens.com designates 185.136.65.225 as permitted sender) smtp.mailfrom=fm-72506-202301110413041e6894ed3d125ae40c-jn1sWi@rts-flowmailer.siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Received: by mta-65-225.siemens.flowmailer.net with ESMTPSA id 202301110413041e6894ed3d125ae40c for ; Wed, 11 Jan 2023 05:13:04 +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=Ablk2FvzuZhGeYsfqrpRPDeFChnqYdn1Ur93ePwfryMFnK2i7aXgs5+He0bJohMmM4chFv UU1SnceKE3n1McvlAtDb1I4W5kOfJ1CR54xu1iMC5gBbY14lrCCQ1sjoTw18ap3qreqKyBZN Qz2CWrkP9ZjfN4lGl4jfxCrhTTysM=; 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 11/11] make custom linux-image bit-by-bit reproducible Date: Wed, 11 Jan 2023 04:11:40 +0000 Message-Id: <20230111041140.3460393-12-felix.moessbauer@siemens.com> In-Reply-To: <20230111041140.3460393-1-felix.moessbauer@siemens.com> References: <20230111041140.3460393-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: OhBu3Ni/C+hW 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