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; Sat, 16 Nov 2024 11:56:04 +0100 X-Sieve: CMU Sieve 2.4 Received: from mail-il1-f189.google.com (mail-il1-f189.google.com [209.85.166.189]) by shymkent.ilbers.de (8.15.2/8.15.2/Debian-8+deb9u1) with ESMTPS id 4AGAu2gu013473 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Sat, 16 Nov 2024 11:56:03 +0100 Received: by mail-il1-f189.google.com with SMTP id e9e14a558f8ab-3a4f3d7d13fsf20206135ab.0 for ; Sat, 16 Nov 2024 02:56:03 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1731754557; cv=pass; d=google.com; s=arc-20240605; b=UlJBEmYJI+eLWgQN4oJwspkOgNWZ6YcXODn237HF+RNVJRrV1BU+4QokVTVTsgxVYY nIKLl7Aie31JgUO6BWXH3LCXNZ3inYegXP716JIcHUNYYDzV3JWb/U8aTPO4HJatrh0L N5YTUKcCrv2yTpvW6M+CiCpNbE7DVmoFOfM1n7yqPAFE6cbU1RQ+SaqFMEFknoPUf/Js JYucOk9ibx9sWwzGTqJscAxSl4neBihJC+6vr3VgINV5FanEnbUXakAKODZwL76LoYs+ P1kMo/VcJqHxDS7UhAgN6kxFQhmu5Mui/GoYYC+0B4FjoTVLT/vjIPnwKr4qP0pEXp+2 /uig== 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=xRPEKDQHRNxDOFRNG5gYCCigFl9cyaatDiRIQ4Sl1F0=; fh=PCPtObbOF3plBWKT99YPLYdiDS/l0AGxifJ8z4zusII=; b=gQ+KdVB92y4733BviAbMpBADVAkp7Ns00ylpbXP1SVout9dhHrXL2kupHpA+hLORdm TKoS+eQ5KsNTWDoXvtyqpQrX+HxOIeOpPPN62t0oHT9D9T19Rw2a5+fQnEF3XlYsfRyR Eu90588w1nisgo9kDmVp8lKvaBrDU3BqXiJiyuBKsu8HuRyrlRNyFipI4rSUu9g7m/rQ unYtpQoRfULT5ivBccCOmNLuYTpznwd/5Y2zUqPrtZWqIqg7FTyfqf4u+KmYf37p73uT fUMUY+AI1khqJ2BQPM4uqa31JVFHXD3RW2JmByue4ZHq12DbtWUiU+eZ5Y94x7aYjxQ+ OVkQ==; darn=ilbers.de ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm1 header.b=TJyoxYac; spf=pass (google.com: domain of fm-294854-20241116105553d2c4da3917f5cbbe3a-vxkfj4@rts-flowmailer.siemens.com designates 185.136.64.228 as permitted sender) smtp.mailfrom=fm-294854-20241116105553d2c4da3917f5cbbe3a-VXkfJ4@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=1731754557; x=1732359357; 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=xRPEKDQHRNxDOFRNG5gYCCigFl9cyaatDiRIQ4Sl1F0=; b=WXFYklIC8UJdx+yXG9EqIuv7hLdP0p4ssk39+2qPniu1g0U6CSKr0w8a3CcOfq5Z6s h8nWo6QMGYD2feR0DZRGcEG7iM/yu6W9xN47638AmmNNo7g8DQk5nru2ITAF7zyddlwD fWrTNweS5sBe4rMGXldgMxVhIDKNxxMIW0XQl0998p5ds4PuJqW//z+t75+01SJeqVnE Se1nBHL/J0kTDLFkyPa5bCIaS1uBVw8GyGOOXRo4G8mSB96+1TbMsYAdcdZHGEUqPSPR Y6bsQnQDNrELcu9tEkI9L7t+N/5b0Bxx8gfdSKMO7SxQbBjSK5PxMHYq1u1zhZrLvTi4 I00g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1731754557; x=1732359357; 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=xRPEKDQHRNxDOFRNG5gYCCigFl9cyaatDiRIQ4Sl1F0=; b=ssfB7eDNIuI/4bs2WF7tHuG9BO5eu/+iRYIdJSbysYbRXh0bQUHu/ROCiqjoXkWRzQ Ta+HWqjaJZzM1kH6fgpVrY/nLMyFr9CSOsAuxPDERGuAQcTl+dk5xdmm75b7Nf8nK3BJ GYJfyWrLVKieuWIAv7tcQee02n5RDvoQZiHb73C9Q9k72vjCwlMZyNHiptiGNTrD4TUd YT81WR11I2IIOXSiir/R+90BrEPetHXcwnQg9qMdvQIdCQUOwn60cykWKYL19AHLpZCd byIsfk5aR6yPrmmP8bpV47/Q+/OmIrQ9JaqcEDQANvk2vW/TkGD2nQu0rSaFQiu31O00 sWJA== X-Forwarded-Encrypted: i=2; AJvYcCUY0tfeJ50W8ZMJe1nA1/pa1lIWPtgkfXj7vgfECLqW2Pc2WNLTqv6MY73m58N6wCnGK+Kt@ilbers.de X-Gm-Message-State: AOJu0YwXSy10uM9fJxXGKH8Q8Sq8FB3jcSjJyxzUdsVh9bSUqfbBPkFI WJUEFBpsLN+9IvBgs0Aikx7m3bNhft/tR3xR/Fg15Mi7eNVAi/cK X-Google-Smtp-Source: AGHT+IHPtAhJeXqelpU/Xju80m85hjnJ8Rx6ryFiZBZmNhPa26MYeejygQhDbmHhmbGybsN9YSnRqg== X-Received: by 2002:a05:6e02:1a26:b0:3a7:172f:1299 with SMTP id e9e14a558f8ab-3a74802cb47mr66401465ab.12.1731754557212; Sat, 16 Nov 2024 02:55:57 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a92:c5c5:0:b0:3a7:158d:67d9 with SMTP id e9e14a558f8ab-3a74803791dls7798645ab.1.-pod-prod-03-us; Sat, 16 Nov 2024 02:55:56 -0800 (PST) X-Received: by 2002:a05:6e02:1a8d:b0:3a6:b445:dc9c with SMTP id e9e14a558f8ab-3a747ff7fc7mr79269405ab.3.1731754555973; Sat, 16 Nov 2024 02:55:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1731754555; cv=none; d=google.com; s=arc-20240605; b=HLyLPycik8a/KZs0jml3+5t3KpRMTycM8Q60T4gcaKX8o8tDc2qKjlzHUFGcxM++ZO 3Oh3NZZ3X3tN3otUBDNgA7JPNNdAgCPbaqE+SpbTCrmMuZLpl01kV3GrxXtBlCmwd3/X AH+Zv2dnCQXOpw03gSOn+EZiFt842IbsWUKf7QA8yOCEO5ByvQMc+p7izGtMxlQStIzM I5m32+byHie/xPh/0ed4LajRjFE5/8RG9feGC0ffvUoP74LP9kIimA1MFulpAAo6FsPg L7ddEDoUhqDOsuBCjVTqKFJFfA2J7Fuc0SmjcG51V94mAIdBl1tTuYpb7+pvSg7+DBpg GswQ== 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=7EU6YckRabf024yXnVkL6BMsC9wvRooCqyNfekm8K58=; fh=TWGwN84gUgHIe5O4CbyH9KISyeWwGbvUX7cnJPxVD70=; b=QdclUkX4JxDbGw0eduMr94IEIkzfeNWStyGUlpXWD58voumpjRkQZWfQSL5itMqKBA fSefBjPC2NWotth+xSmzcGck3GulsFPrRP29qzwiUafnFsZLglIs4XNgwc+AR4tJ7qiH AbM/xGBKsg9jhPMai9SW2HljwuS+t4nXbA+VteGot2OhxBalf5e+G8+tfIbnrRG4OjRN d36QXfanaJ70oP84ehfmRLBrJIQG1rvf6nYS0n6w6kMy1Lo+poqDzh3kS+0bjlI9DaUp Kj6Qs8QrDb8Cmpg3FwotcsPdfqlX0A+XknAlLEghmcNzdlZwotIDa8tC3iDka9AbuMxy 2JUA==; dara=google.com ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=fm1 header.b=TJyoxYac; spf=pass (google.com: domain of fm-294854-20241116105553d2c4da3917f5cbbe3a-vxkfj4@rts-flowmailer.siemens.com designates 185.136.64.228 as permitted sender) smtp.mailfrom=fm-294854-20241116105553d2c4da3917f5cbbe3a-VXkfJ4@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 e9e14a558f8ab-3a747fc3e04si1609295ab.0.2024.11.16.02.55.55 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sat, 16 Nov 2024 02:55:55 -0800 (PST) Received-SPF: pass (google.com: domain of fm-294854-20241116105553d2c4da3917f5cbbe3a-vxkfj4@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 20241116105553d2c4da3917f5cbbe3a for ; Sat, 16 Nov 2024 11:55:54 +0100 From: "'Jan Kiszka' via isar-users" To: isar-users Cc: Quirin Gylstorff Subject: [PATCH v3 1/7] initramfs-hook: Add infrastructure to ease writing hooks Date: Sat, 16 Nov 2024 11:55:46 +0100 Message-ID: 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=fm1 header.b=TJyoxYac; spf=pass (google.com: domain of fm-294854-20241116105553d2c4da3917f5cbbe3a-vxkfj4@rts-flowmailer.siemens.com designates 185.136.64.228 as permitted sender) smtp.mailfrom=fm-294854-20241116105553d2c4da3917f5cbbe3a-VXkfJ4@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: C8ZCz+V1xJkU 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. 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 | 74 +++++++++++++++++++ 3 files changed, 139 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..5509c074 --- /dev/null +++ b/meta/recipes-initramfs/initramfs-hook/hook.inc @@ -0,0 +1,74 @@ +# +# 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" ]; then + continue + fi + + rm -rf "${D}/usr/share/initramfs-tools/scripts/$script" + install -d -m 0755 "${D}/usr/share/initramfs-tools/scripts/$script" + install -m 0755 "${WORKDIR}/$script" \ + "${D}/usr/share/initramfs-tools/scripts/$script/${INITRAMFS_HOOK_NAME}" + 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/de5e67a62f0ea01998bcf1b215b1b5cdf5cc8f26.1731754552.git.jan.kiszka%40siemens.com.