From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from shymkent.ilbers.de ([unix socket]) by shymkent (Cyrus 2.5.10-Debian-2.5.10-3+deb9u2) with LMTPA; Wed, 20 Nov 2024 18:03:13 +0100 X-Sieve: CMU Sieve 2.4 Received: from mail-qv1-f58.google.com (mail-qv1-f58.google.com [209.85.219.58]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 4AKH3CxV006908 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Wed, 20 Nov 2024 18:03:12 +0100 Received: by mail-qv1-f58.google.com with SMTP id 6a1803df08f44-6d415acbbeasf168286d6.1 for ; Wed, 20 Nov 2024 09:03:12 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1732122185; cv=pass; d=google.com; s=arc-20240605; b=NjPpSw+6xiBoAfC/FK73koQ1dLE2hsZpm+FLLPNnUzBMq+C5UcjaNuRr+IeHrCN5/p gxcM7PbjFDkN50iiQyHzltknAU+LUJvOvr0upAh4lle97H/PxNbuV9CJkPh6HsTXYtWl n+j0eqhfTDNTQv8ZubLd1RVdvOm2SYZnelvW0jnUrc26GY6/m6nvoGQeUzVK2xXMA8oH YUFeMDrtiWh+s/S2piwuROfQ+XgGHkZTgk9kKnQeDGg4bcZuNq+Iw9qJBgz0uAWI8YBm vCokOFESBj63VqAtqFV0F/LqcTAwc55JLXeN7ijxnPp83XNgaC840OJIQ8wvIisZZhUF EiiA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to:feedback-id:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=Iv79RXHq4xj9IYc7kX+CrGI/BIf3Hth6zlPC4PRu5Kw=; fh=ix6stbVnDJBMVdVFkk9gQaxlof6SN+XvvmHaIYg530I=; b=EYzPSMm6JZ0A9G1QxZHEI/3Wj+p64TFSwDVMNisRwxTqI0FbqNqb9Iz9/54CU36nbf heT1w17sEtfVjtJzpG/wPOs/GV/IuVFMRX7wTpKkERzr2pGlHZaMX9YxXJpG4Ys0haOl ehF1qA4fktEoF04ySDi7jq1oTrogI7LAVz6NrrVxJWjdGjGmb02LoEKOv7WQT98nji12 mtxm742cGydiTyX21jpkWoVxLZse1g4Vs/YQLoC1EZ47qxZpbdLFQOrIYW+tev27l39Y F4q4g4hWyfBq9cJwjmP84KY4G+bzAta5hDd8vo3+5m+gGfDwYGHS1UOTOMtkv+yR9bAv h8KA==; darn=ilbers.de ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm2 header.b=W5fNZW8Z; spf=pass (google.com: domain of fm-294854-202411201703025ffeba3e1c5bf5765a-dzvbjd@rts-flowmailer.siemens.com designates 185.136.64.228 as permitted sender) smtp.mailfrom=fm-294854-202411201703025ffeba3e1c5bf5765a-dZVbJD@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20230601; t=1732122185; x=1732726985; darn=ilbers.de; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender:feedback-id :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to; bh=Iv79RXHq4xj9IYc7kX+CrGI/BIf3Hth6zlPC4PRu5Kw=; b=Kppc9wMxEmCs/XskQL5zG6uMKzcEz+rAXLTg+KcBMmGveAj7flBcbctm9Q+2x0Wdm6 niaAgH/gOFE/kTVne90hu8rLi3IFoeCxVOQEhUZIjU7ok/ZHShBFkWFdv7u4iHrUVxsq +j+av0ruIi2w/clEivXv1dTfw+cAG2gxqKs83zsp1YdUmpQNQlDAW27NrVEAJx2WPtFo 1wYdFJOKmONtmsN1zFcDwtAVx1kf00KfnT0YTbzq2pk4XFmbMeG2QCzYRC42u1K0CLnV cQ1eQ62B7VtQ5ArFwWjdBctm+WlZej9e4oIf8DaHTSNpH+6++0M7emgbpBgMJAf3VQAr se1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1732122185; x=1732726985; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender:feedback-id :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:x-beenthere:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=Iv79RXHq4xj9IYc7kX+CrGI/BIf3Hth6zlPC4PRu5Kw=; b=KEG3i71DnFvC3DgGvM7Ew+W6NHAlmQqqTaK0lh8rvtmS4sdq4wI98ls6pjVCCz4kEB kzkBSCkIGetGAySjrMNeLYukHt7kuwsXhf6Hqo3R1WQC9J4GHyuzD2RWj5cu0BtC594E NHaOaxdK4TMvI7GgmvSibyO8Ze/2AehWyNAhV/hfl2K13FuVdI3neGAa0W32dZWim9yc 8DcNIBxbdlyzn1yItz6HJbKgbypioIIs9F1UxFd7azdu5Hi9x7sj2TnO5o6BLQwyNnat J0wywBcHsJmtSnYhKoIlnvNzi2RoalbsxofAF2ApS6W55cM6h66z9mrnEVRyplGbD2q4 5u1A== X-Forwarded-Encrypted: i=2; AJvYcCXdys3AhDo062xX0/i5wPfKE99PCb9/6vEpnRaytzXsCJ9MpC2WjpaEZ9YIUHuSMLm4glXH@ilbers.de X-Gm-Message-State: AOJu0Yyomt1/ZubOC3O/YxFcjkjzVqPeAwF2jsioHFKXdfUwHXFPHnQu QAKELVl+zV+TcwzDKfH7q7QAtEExscenjj6PxPx2cL/KA7rvdwvl X-Google-Smtp-Source: AGHT+IHlznZWRFp6fqpscGqO7dA68TIKq45vH+fKWhS8148zsIc+GT5SJVs2Pd61WKsu95ebBBej1w== X-Received: by 2002:a05:6214:dcc:b0:6ce:34d5:8882 with SMTP id 6a1803df08f44-6d437859d96mr53732396d6.39.1732122185221; Wed, 20 Nov 2024 09:03:05 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:6214:f08:b0:6c5:127c:2ebc with SMTP id 6a1803df08f44-6d44241d5d6ls555376d6.2.-pod-prod-05-us; Wed, 20 Nov 2024 09:03:04 -0800 (PST) X-Received: by 2002:a05:6122:1ac5:b0:50d:2769:d741 with SMTP id 71dfb90a1353d-514cfb6e816mr3719216e0c.11.1732122183947; Wed, 20 Nov 2024 09:03:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1732122183; cv=none; d=google.com; s=arc-20240605; b=NT4C3e8/pDTG6cWdTf1TZKDEE9MJ5h6bs6qSwAd27TZ5jL4vAse07zXlb03tdN67tv y4YJIyvgvBJU30nuIMZhoc9kMJ9bHV04iaCw30csXdv1hK3cTAaf5nwUe09mHbNTWjy8 /P2RR3L5GU0JjPlFrhYzqr8TvUDd+7eRnH1XgOEbrmdZXs0IbsvI5n3VKvdfLTh0gF5A q5Ayjdt9qhl8q1BiLC/KHLyTxYflAqpDColxwUwJL3JkIbsSGhYWkunXczXqpvQ+Zekq QssDXBVluDDpjbmPSg9homAQ01nq8OpGCzICAtRCaE6w/Qde+/3cz+5fdqnSqwIp6hpb hp8w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=feedback-id:content-transfer-encoding:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:dkim-signature; bh=Xl38PQkK7qK1k/zNjnAIrhV98xAbhYcrTbelfD58lHg=; fh=TWGwN84gUgHIe5O4CbyH9KISyeWwGbvUX7cnJPxVD70=; b=JZq7EwuWNH6dHdRP8uroqi+s8sHx3A2Ejw/u8VIyosT+W8OogHm9wXiJmnyJTNrYwz DVm28O9S5yQDqLSOMvq7I6jWnLz+Df/1ku2ti5hkJrUpuHB3a8RdGMCr8RoXgf5lveg5 8qizpnKIM3bcfnjy0wfER9yWSDxv0uvJ/opIT9Cw9dvlQZ5wjY+SPc+CvIAYBNrujKrC ttvSB7W16tvVC96+JB+b7XHnrxVCiI5sW0MVEFfGZijUIK4fevFw3Orbpn3OtHUMWexC csvqf6B0zAk+CRKC5e5lmTa1kx+zfkpmpCmDAquI1dih8qkbc2gTTxmA/KHzZ0bgIyVH PLPA==; dara=google.com ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm2 header.b=W5fNZW8Z; spf=pass (google.com: domain of fm-294854-202411201703025ffeba3e1c5bf5765a-dzvbjd@rts-flowmailer.siemens.com designates 185.136.64.228 as permitted sender) smtp.mailfrom=fm-294854-202411201703025ffeba3e1c5bf5765a-dZVbJD@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com 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 71dfb90a1353d-51479dd7b1asi913678e0c.5.2024.11.20.09.03.03 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 20 Nov 2024 09:03:03 -0800 (PST) Received-SPF: pass (google.com: domain of fm-294854-202411201703025ffeba3e1c5bf5765a-dzvbjd@rts-flowmailer.siemens.com designates 185.136.64.228 as permitted sender) client-ip=185.136.64.228; Received: by mta-64-228.siemens.flowmailer.net with ESMTPSA id 202411201703025ffeba3e1c5bf5765a for ; Wed, 20 Nov 2024 18:03:02 +0100 From: "'Jan Kiszka' via isar-users" To: isar-users Cc: Quirin Gylstorff Subject: [PATCH v5 1/7] initramfs-hook: Add infrastructure to ease writing hooks Date: Wed, 20 Nov 2024 18:02:55 +0100 Message-ID: <22c10d97f224599c405086346cbadea5c8797919.1732122181.git.jan.kiszka@siemens.com> In-Reply-To: References: MIME-Version: 1.0 X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-294854:519-21489:flowmailer X-Original-Sender: jan.kiszka@siemens.com X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm2 header.b=W5fNZW8Z; spf=pass (google.com: domain of fm-294854-202411201703025ffeba3e1c5bf5765a-dzvbjd@rts-flowmailer.siemens.com designates 185.136.64.228 as permitted sender) smtp.mailfrom=fm-294854-202411201703025ffeba3e1c5bf5765a-dZVbJD@rts-flowmailer.siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com X-Original-From: Jan Kiszka Reply-To: Jan Kiszka Content-Type: text/plain; charset="UTF-8" Precedence: list Mailing-list: list isar-users@googlegroups.com; contact isar-users+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: isar-users@googlegroups.com X-Google-Group-Id: 914930254986 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , X-Spam-Status: No, score=-4.9 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H2,RCVD_IN_RP_CERTIFIED, RCVD_IN_RP_RNBL,RCVD_IN_RP_SAFE,SPF_PASS 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: SvwU7HV0lAXU From: Jan Kiszka This recipe include shall simplify writing of initramfs hooks. It provides the usual headers for the installation hook as well as the boot scripts, allow to generate that code that installs executables and modules into the image, but also supports expanding the scripts with own snippets or defining own ones completely. Signed-off-by: Jan Kiszka --- .../initramfs-hook/files/hook-header.tmpl | 39 +++++++++ .../initramfs-hook/files/script-header.tmpl | 26 ++++++ .../recipes-initramfs/initramfs-hook/hook.inc | 81 +++++++++++++++++++ 3 files changed, 146 insertions(+) create mode 100644 meta/recipes-initramfs/initramfs-hook/files/hook-header.tmpl create mode 100644 meta/recipes-initramfs/initramfs-hook/files/script-header.tmpl create mode 100644 meta/recipes-initramfs/initramfs-hook/hook.inc diff --git a/meta/recipes-initramfs/initramfs-hook/files/hook-header.tmpl b/meta/recipes-initramfs/initramfs-hook/files/hook-header.tmpl new file mode 100644 index 00000000..ee30d691 --- /dev/null +++ b/meta/recipes-initramfs/initramfs-hook/files/hook-header.tmpl @@ -0,0 +1,39 @@ +#!/bin/sh +# +# Copyright (c) Siemens AG, 2024 +# +# Authors: +# Jan Kiszka +# +# SPDX-License-Identifier: MIT +# + +set -e + +prereqs() +{ + echo "${HOOK_PREREQ}" +} + +case $1 in +prereqs) + prereqs + exit 0 + ;; +esac + +. /usr/share/initramfs-tools/hook-functions + +for module in ${HOOK_ADD_MODULES}; do + manual_add_modules $module +done + +for executable in ${HOOK_COPY_EXECS}; do + if exec_path=$(command -v $executable 2>/dev/null); then + copy_exec "$exec_path" + else + echo "(ERROR): Unable to copy $executable" >&2 + exit 1 + fi +done + diff --git a/meta/recipes-initramfs/initramfs-hook/files/script-header.tmpl b/meta/recipes-initramfs/initramfs-hook/files/script-header.tmpl new file mode 100644 index 00000000..faa1a644 --- /dev/null +++ b/meta/recipes-initramfs/initramfs-hook/files/script-header.tmpl @@ -0,0 +1,26 @@ +#!/bin/sh +# +# Copyright (c) Siemens AG, 2024 +# +# Authors: +# Jan Kiszka +# +# SPDX-License-Identifier: MIT +# + +set -e + +prereqs() +{ + echo "${SCRIPT_PREREQ}" +} + +case $1 in +prereqs) + prereqs + exit 0 + ;; +esac + +. /scripts/functions + diff --git a/meta/recipes-initramfs/initramfs-hook/hook.inc b/meta/recipes-initramfs/initramfs-hook/hook.inc new file mode 100644 index 00000000..c80b781d --- /dev/null +++ b/meta/recipes-initramfs/initramfs-hook/hook.inc @@ -0,0 +1,81 @@ +# +# Copyright (c) Siemens AG, 2024 +# +# Authors: +# Jan Kiszka +# +# SPDX-License-Identifier: MIT +# + +FILESPATH:append := ":${FILE_DIRNAME}/files" + +inherit dpkg-raw + +SRC_URI = " \ + file://hook-header.tmpl \ + file://script-header.tmpl" + +TEMPLATE_FILES = " \ + hook-header.tmpl \ + script-header.tmpl" + +TEMPLATE_VARS:append = " \ + HOOK_PREREQ \ + HOOK_ADD_MODULES \ + HOOK_COPY_EXECS \ + SCRIPT_PREREQ" + +HOOK_PREREQ ?= "" +HOOK_ADD_MODULES ?= "" +HOOK_COPY_EXECS ?= "" +SCRIPT_PREREQ ?= "" + +DEBIAN_DEPENDS = "initramfs-tools" + +def get_initramfs_hook_name(d): + name = d.getVar('BPN') + if name.startswith("initramfs-"): + name = name[10:] + if name.endswith("-hook"): + name = name[:-5] + return name + +INITRAMFS_HOOK_NAME ?= "${@get_initramfs_hook_name(d)}" + +do_install() { + if [ -f "${WORKDIR}/hook" ] || [ -n "${HOOK_COPY_EXECS}" ] || \ + [ -n "${HOOK_ADD_MODULES}" ]; then + rm -rf "${D}/usr/share/initramfs-tools/hooks" + install -d -m 0755 "${D}/usr/share/initramfs-tools/hooks" + + install -m 0755 "${WORKDIR}/hook-header" \ + "${D}/usr/share/initramfs-tools/hooks/${INITRAMFS_HOOK_NAME}" + if [ -f "${WORKDIR}/hook" ]; then + cat "${WORKDIR}/hook" >> \ + "${D}/usr/share/initramfs-tools/hooks/${INITRAMFS_HOOK_NAME}" + else + echo "exit 0" >> \ + "${D}/usr/share/initramfs-tools/hooks/${INITRAMFS_HOOK_NAME}" + fi + fi + + for script in init-top init-premount local-top nfs-top local-block \ + local-premount nfs-premount local-bottom nfs-bottom \ + init-bottom; do + if [ ! -f "${WORKDIR}/$script" ] && [ ! -f "${WORKDIR}/${script}-complete" ]; then + continue + fi + + rm -rf "${D}/usr/share/initramfs-tools/scripts/$script" + install -d -m 0755 "${D}/usr/share/initramfs-tools/scripts/$script" + if [ -f "${WORKDIR}/${script}" ]; then + install -m 0755 "${WORKDIR}/script-header" \ + "${D}/usr/share/initramfs-tools/scripts/$script/${INITRAMFS_HOOK_NAME}" + cat "${WORKDIR}/$script" >> \ + "${D}/usr/share/initramfs-tools/scripts/$script/${INITRAMFS_HOOK_NAME}" + else + install -m 0755 "${WORKDIR}/${script}-complete" \ + "${D}/usr/share/initramfs-tools/scripts/$script/${INITRAMFS_HOOK_NAME}" + fi + done +} -- 2.43.0 -- You received this message because you are subscribed to the Google Groups "isar-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to isar-users+unsubscribe@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/isar-users/22c10d97f224599c405086346cbadea5c8797919.1732122181.git.jan.kiszka%40siemens.com.