From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6989231260094693376 X-Received: by 2002:a2e:a90e:: with SMTP id j14mr12448133ljq.250.1627307216436; Mon, 26 Jul 2021 06:46:56 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:651c:1783:: with SMTP id bn3ls2695609ljb.10.gmail; Mon, 26 Jul 2021 06:46:55 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz4eb1+9pxi/QYAjchXl0KqS0USqa8eBJSyCVr5uU+zgUV5cDurV+fH6pMIZoJhQ9MOVEWN X-Received: by 2002:a2e:9e53:: with SMTP id g19mr12458517ljk.58.1627307215411; Mon, 26 Jul 2021 06:46:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1627307215; cv=none; d=google.com; s=arc-20160816; b=Fx19A9Z1z2OpFsgP/Mb3bAxWvIDbQdIh/qApuvbjRzcLGxIA9pXWg5v7C8bv0Os+Nj b9rd8v4GnxfdDIvb+JUETN+oQHpPcxRc4lKDM0n+xW36/MK46zd6y61zwuf507O5nfW6 +leMB75BoNz6Tz33mHQGZbxdV3yXy8UXIT4f8NWpKsGfVjD0k1Led/BK8dTl7W8VuQk/ 5GIki/sIKltPxN5e/4HNm7iP01NRJuI+7HKPOrF5ROjy7ctCzwAzTg0LgFz6t/ETXY3r mql7C4s8WwOgnGZxtyacwI3Ku9rs3y+1DiVX5cofIPKdfBw71hWhxlY7u7A/QxfIUY1n P3Ow== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=YJVPtBdUFUL9lzK/f7JZuYa62k6l5KUm849hcLGmgNQ=; b=maRO6Lw4wu+TlyIZONiVehXSH7TzgtJwy6k6DSmJT8tc+vhoIWXZR+Ls3CRenW58pI n//xbbv2kedDoz+qxQii3xYFgMnWJ3l0rvfnk+0ITC+Tksn9fG34/pNDCXru1ZQGgrsx XxNAoVLlFkhsVk8HEgdKOJX4FJ7nGjLHECfBySCik3fRcz13X2ue2cNV9/G1/G496JMh HNVTYs5ipGg/A6LFHDz/g60LZ+PslC5yHcM9yH676xP5wT/7k8nZ/iyO3evYkv3C+pMP vnYQv9nvwRHssCwd3/IzutB5UPLaGlgnC5pwk7Z6nzTv/ASGHvpHIWOj4cJ9T30LuOn3 xKIg== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of amikan@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=amikan@ilbers.de Return-Path: Received: from shymkent.ilbers.de (shymkent.ilbers.de. [85.214.156.166]) by gmr-mx.google.com with ESMTPS id d9si1641586lji.3.2021.07.26.06.46.55 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 26 Jul 2021 06:46:55 -0700 (PDT) Received-SPF: pass (google.com: domain of amikan@ilbers.de designates 85.214.156.166 as permitted sender) client-ip=85.214.156.166; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of amikan@ilbers.de designates 85.214.156.166 as permitted sender) smtp.mailfrom=amikan@ilbers.de Received: from localhost.localdomain (mm-198-62-214-37.mgts.dynamic.pppoe.byfly.by [37.214.62.198] (may be forged)) (authenticated bits=0) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8) with ESMTPSA id 16QDknuu019679 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 26 Jul 2021 15:46:54 +0200 From: Anton Mikanovich To: isar-users@googlegroups.com Cc: Anton Mikanovich Subject: [RFC 04/15] linux-module: Do not use shell environment Date: Mon, 26 Jul 2021 16:46:25 +0300 Message-Id: <20210726134636.30800-5-amikan@ilbers.de> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210726134636.30800-1-amikan@ilbers.de> References: <20210726134636.30800-1-amikan@ilbers.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=unavailable autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on shymkent.ilbers.de X-TUID: 4cVAawkkTQl8 To make package build process independent of the shell environment we should remove KDIR and PN passing through export call. KDIR can be prepared during package build. This also will allow not to rely on previous builddeps install task. To pass PN variable we can just migrate to template-based debian/rules file. Signed-off-by: Anton Mikanovich --- .../files/debian/{rules => rules.tmpl} | 10 +++++++- meta/recipes-kernel/linux-module/module.inc | 23 +++++++------------ 2 files changed, 17 insertions(+), 16 deletions(-) rename meta/recipes-kernel/linux-module/files/debian/{rules => rules.tmpl} (55%) diff --git a/meta/recipes-kernel/linux-module/files/debian/rules b/meta/recipes-kernel/linux-module/files/debian/rules.tmpl similarity index 55% rename from meta/recipes-kernel/linux-module/files/debian/rules rename to meta/recipes-kernel/linux-module/files/debian/rules.tmpl index c476bf3..39abc52 100755 --- a/meta/recipes-kernel/linux-module/files/debian/rules +++ b/meta/recipes-kernel/linux-module/files/debian/rules.tmpl @@ -24,11 +24,19 @@ ifneq (,$(findstring 86,$(DEB_HOST_GNU_CPU))) export ARCH=x86 endif +# Custom kernels contain the build folder directly. +KDIR := $(shell dpkg -L linux-headers-${KERNEL_NAME} | grep "/lib/modules/.*/build") +ifeq ($(KDIR),) +# Debian kernels install that folder indirectly via a dependency. +KERNEL_DEP := $(shell dpkg-query -W -f '$${Depends}' linux-headers-${KERNEL_NAME} | sed 's/.*\(linux-headers-[[:graph:]]*\).*/\1/') +KDIR := $(shell dpkg -L $(KERNEL_DEP) | grep "/lib/modules/.*/build") +endif + override_dh_auto_build: $(MAKE) -C $(KDIR) M=$(PWD) modules override_dh_auto_install: - $(MAKE) -C $(KDIR) M=$(PWD) INSTALL_MOD_PATH=$(PWD)/debian/$(PN) modules_install + $(MAKE) -C $(KDIR) M=$(PWD) INSTALL_MOD_PATH=$(PWD)/debian/${PN} modules_install %: CFLAGS= LDFLAGS= dh $@ --parallel diff --git a/meta/recipes-kernel/linux-module/module.inc b/meta/recipes-kernel/linux-module/module.inc index 0515621..5b08623 100644 --- a/meta/recipes-kernel/linux-module/module.inc +++ b/meta/recipes-kernel/linux-module/module.inc @@ -22,8 +22,9 @@ AUTOLOAD ?= "" inherit dpkg TEMPLATE_FILES = "debian/control.tmpl \ - debian/changelog.tmpl" -TEMPLATE_VARS += "KERNEL_NAME" + debian/changelog.tmpl \ + debian/rules.tmpl" +TEMPLATE_VARS += "KERNEL_NAME PN" do_prepare_build() { cp -r ${WORKDIR}/debian ${S}/ @@ -31,18 +32,10 @@ do_prepare_build() { for module in "${AUTOLOAD}"; do echo "echo $module >> /etc/modules" >> ${S}/debian/postinst done -} -dpkg_runbuild_prepend() { - # Custom kernels contain the build folder directly. - export KDIR=$(dpkg -L --root=${BUILDCHROOT_DIR} linux-headers-${KERNEL_NAME} | \ - grep "/lib/modules/.*/build") - if [ -z "$KDIR" ]; then - # Debian kernels install that folder indirectly via a dependency. - KERNEL_DEP=$(dpkg-query -W -f '${Depends}' --admindir=${BUILDCHROOT_DIR}/var/lib/dpkg \ - linux-headers-${KERNEL_NAME} | sed 's/.*\(linux-headers-[[:graph:]]*\).*/\1/') - export KDIR=$(dpkg -L --root=${BUILDCHROOT_DIR} ${KERNEL_DEP} | \ - grep "/lib/modules/.*/build") - fi - export PN=${PN} + # remove templates from the source tree + find ${S}/debian -name *.tmpl | xargs rm -f + + # restore execute permissions + chmod a+x ${S}/debian/rules } -- 2.25.1