From mboxrd@z Thu Jan 1 00:00:00 1970 Delivery-date: Tue, 23 Apr 2024 18:28:20 +0200 Received: from metis.whiteo.stw.pengutronix.de ([2a0a:edc0:2:b01:1d::104]) by lore.white.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1rzJ0G-00D0ir-0H for lore@lore.pengutronix.de; Tue, 23 Apr 2024 18:28:20 +0200 Received: from localhost ([127.0.0.1] helo=metis.whiteo.stw.pengutronix.de) by metis.whiteo.stw.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1rzJ0F-0003qe-Qm; Tue, 23 Apr 2024 18:28:19 +0200 Received: from mail-vi1eur05on2100.outbound.protection.outlook.com ([40.107.21.100] helo=EUR05-VI1-obe.outbound.protection.outlook.com) by metis.whiteo.stw.pengutronix.de with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1rzIzw-0003nA-JQ; Tue, 23 Apr 2024 18:28:01 +0200 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LNGGuH2doIw6/SfJGqYcAD3r+i6ny0ne4X5LT6aDPTrqNFSlXOdDRYg+Z2OEekjHoNq8Gdoq1+q6BxlcSKhsM/ofVZEwxXXPCaOIEss8sQw39ho34AeCeGkYlgOl+eBpVejgut7TexcEEGnyUenIFPIHSaS9LkALVhyslNS/ZvmvJu/Q7MyTjeGC56/VmH3HSyWHGPoGKLVt0sulytOhv97RxO19iXG6bKkuBp0s01CI0HhbZ9JHNFhjE+sbRel7e6gmlzV2BUY9q8pzedx+DrAcM/LwDFHkOuFmSe6sAsZCsfeBLJ1k6JPhfnMuyMWvIPB3BHI62jIM16vUamLM2A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ar2xzDs3X107u7FWZqcHb0w+E76QthypZlf49EG4NE4=; b=fJ1pCkjzQrfKEWb6jGUbWX1rs4sOnIqhYhougOvDbZbSqRU3UPr+7fu3VjHD/sKwm1/bZky9hqQL73k0hM/MVWYFr/6FfufMFvhlt9PzQwUrEcZc4qLFTapmCJjvXghdaXgCzKDMm1uJ6+N0QPeOswPidsYOv5ZxOuvN6YmpKOJCyLLNPP1VlOAsxGNap1EzaWhsoKlBVPiMPBOAKzKn0MqezSTwYgUMFsPsyBokUb3awgPPE2YOAc3bgfV1r+u2zSNzTAz1guz+LoKGWQ7+BiFHnGxT80tEt4FvjdoPQMDba83CIEo0awofAW8th1DyXEytVJN7fXV5eQ43hgXBFA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=wolfvision.net; dmarc=pass action=none header.from=wolfvision.net; dkim=pass header.d=wolfvision.net; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=wolfvision.net; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ar2xzDs3X107u7FWZqcHb0w+E76QthypZlf49EG4NE4=; b=CFOUfQct/bLiLFaD0nxykGXqFN0UHtXIRkKrrmYtFpr27qRW8I4WzGI6AwGQ0zbUl3n7fum7/nixRumSmwjpOZPe/pkqhyuuWkLF6GFr1TqLdZpnDTWpxp2MVdORl7rOgiOgYXLHwfu62Q9rKcp7ktnVzA+vFCokY9tY5Hwjz7E= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=wolfvision.net; Received: from DU0PR08MB9155.eurprd08.prod.outlook.com (2603:10a6:10:416::5) by AS8PR08MB8898.eurprd08.prod.outlook.com (2603:10a6:20b:5b7::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7472.44; Tue, 23 Apr 2024 16:27:58 +0000 Received: from DU0PR08MB9155.eurprd08.prod.outlook.com ([fe80::224e:39b5:5107:43de]) by DU0PR08MB9155.eurprd08.prod.outlook.com ([fe80::224e:39b5:5107:43de%3]) with mapi id 15.20.7472.044; Tue, 23 Apr 2024 16:27:58 +0000 Message-ID: <88911eac-fdb4-4c64-a66a-c0a2bea68ad7@wolfvision.net> Date: Tue, 23 Apr 2024 18:27:55 +0200 User-Agent: Mozilla Thunderbird Content-Language: en-US To: Alexander Dahl , ptxdist@pengutronix.de References: <20220129070330.2601433-1-michael.riesch@wolfvision.net> <20220129070330.2601433-4-michael.riesch@wolfvision.net> <1964395.PYKUYFuaPT@ada-pc> From: Michael Riesch Organization: WolfVision GmbH In-Reply-To: <1964395.PYKUYFuaPT@ada-pc> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-ClientProxiedBy: VI1P195CA0070.EURP195.PROD.OUTLOOK.COM (2603:10a6:802:59::23) To DU0PR08MB9155.eurprd08.prod.outlook.com (2603:10a6:10:416::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU0PR08MB9155:EE_|AS8PR08MB8898:EE_ X-MS-Office365-Filtering-Correlation-Id: d53f3bb6-a76a-4ff3-5e80-08dc63b25626 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: =?utf-8?B?NSszRlA5M2daZ0Y4dTNnTmsrN0VHS2RYL3dXT2g1S3VhUFA5ZkttZVM1ZXV1?= =?utf-8?B?MmQwNHNxTWxGdjA5c01oMFo2d3phMytCMU5wTUZnWmZjQkdGVVNnUitLSm5s?= =?utf-8?B?SnA1S2ZzZzFpTG1HdHVkUkRYK00reTFXdnRKbU1RTGZvVnA5Z0NtcW5sSkI3?= =?utf-8?B?aG1iUkhPZXNieGNBdENHNnNWSDlqZm5QVWRETVpqN0FoNXFkZXZpSStYQU5Y?= =?utf-8?B?NWxGemhrVXRtQVh6d2NlZGJIeXZJc2JuQmFHSWs4andDbXBoQUx1UUYxZHVP?= =?utf-8?B?Yk5TUXJmYVdUbTdmRUZ0REROMjBwL1BoalMrdzlXSTRaQktGWVlGUXNsOVd0?= =?utf-8?B?emxVeElxYWlvc3dNaDNmbTd1ZXBoN3hnbWxGaWs0elhoaHFTNTM5V3ZRZlFV?= =?utf-8?B?WTlXNzVMemVDZ3hjb3M3Y1hMSGNPbDFzbDBIM1RkVXpsVFViRENvdllqMHRR?= =?utf-8?B?aGxic1pWd3RJQ1pDVnIvdlRZL3d2RHVOL05vL0ptandzU01qcENPR3E4VzF2?= =?utf-8?B?QlI3UCtrR1crVUNvRExFM0YrUG05REUrS0pPWVkxUVhpT2ZvZE11djlUOW1n?= =?utf-8?B?d2JDQW80NGFwNkJrNUVSN2Mza2RZdHVZQ2xYMUtGMjRCSkNsd1VJak9BVjZt?= =?utf-8?B?R2lhSzJ3clZldnlleGVWL3pNSlpsV3d5cXIvZVVJN1B4bGdxRVYxbmlEcmJX?= =?utf-8?B?T2dDaVRMdWJKcWhiaTNRVEJmaURFNnZRU2NKeUp1WDlxZkdOT25UczV6Mlc3?= =?utf-8?B?cDE1MWJ0VTluQ0V1UloxaTRjbjRKUWJ4aytjaUxwZ3Zhb1FKbklENzMzRS9i?= =?utf-8?B?cnBsTTlTV0dPSDdFcno0MktMR1NLcU11NmxkWDF2QUNGai9PNmF3djRaZzdr?= =?utf-8?B?bUR5QlNPZk1qWG5tOWdyL0g2ejhGdzllK2JqWFVhK1RGb1d6R2xMNVJtT084?= =?utf-8?B?eFFCU3ZTR3BibmZYSU8ra1BBRk5TZlpVOEVMTFBOMUpkaG5qZTRGZ08wdW9N?= =?utf-8?B?Wml5ei9BaTdKOEVhL2FWZUJQVnZjSFNQYmY4UEQxRVNJS2MwdVgvWGdON3hU?= =?utf-8?B?cHRCUk96aVlETGwrc3Z5R3R3TzVqcWlod0NmQytRQTJSdHRWSFcvTml6eUYr?= =?utf-8?B?T0RFVE10ZVIwRkFHQVVzTXR3QXNyZlVBOTRFVTc1akVUV1llU3hWM1BNUHM2?= =?utf-8?B?Sk1IUkVxdS9sUkxXVmxUWno5RmZEM3l4ZmZUSVVBTTBnck14ZCtITjB4T2x1?= =?utf-8?B?OCtwTzZIUkNrQTNBaVdQWnhsSS9Ldk04NDQzc1NMdmxVNmFJd3E1K0Yxci96?= =?utf-8?B?MjZnQjNVelRyeGVjVHVMN29wczBZZ1hUNkNicGMrbDAvTHJpbWlBT2xWcDFr?= =?utf-8?B?NVFpSFQ2ZXpGMTcvbWtPa1NSUUhHanB2RXIvSGNBd09Va0xLc29ZVDdqTzZn?= =?utf-8?B?Zk84eWVXdCtsOVk3R0c0MGw5TjUzOFNGQ1lSRkxEZlkxTitVNTdzUmpnSEgv?= =?utf-8?B?aW94QXo3cXljSVBrSU04cjFDdHcvNFdSSUdBT2xYcHkwWFVxa0JQMHFRRjZa?= =?utf-8?B?dytpWlhKTTdlUjVNSkZZSjBMb0NSTHRSTXVlc0dWbGMrVFowUml1d2RXMk1E?= =?utf-8?B?RW5hcnMyRmVtQU9jMUJzcm0yZDlxczFZTHRaK3VWSUN5T3dOeXBnL0dOV3ht?= =?utf-8?B?eStDeWFzaCtDZmRyaVBUYTRNT0I2bGlQZnJ5a1NOTzM0cFFFWTVHYTVRPT0=?= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR08MB9155.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(376005)(1800799015)(366007); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?TXFjNVVjTlpwL0pqcXZGZEpiR2dKbXR1ZEtrUUdncmxYdzROcExEWGRCc1U3?= =?utf-8?B?blA4MmdzMjJpcHNUZzdLVWNYSFAzWXVtVEVTd3AzRFlMMGFyazY4ZDJrdG5O?= =?utf-8?B?VFlKaXFaZzU1QzNUQmlVc1d5d2g3NHhXOEJKNUZtN2E2T2J1RjBNNGFCRWhu?= =?utf-8?B?bXhSWVRTNVppeDQ4NWI3NExrbnEzK3l4bjVIeVhnTStIY29UR2M0cUg3M0RS?= =?utf-8?B?NGxrYktnZ0dJSGRNczlGb2FPV2xZVlFUb2hhRmhDRHJQRDl2NGxiMndtRFBk?= =?utf-8?B?ZzNZL3hNS05XRzZpeVk3bXRjQk9zSlZNcmdQSnhlSUdlVWk5eGU0NW1KUGVt?= =?utf-8?B?b3dqYmpJNm1meW8raWZMcm5uT1AvQ2pHQzc3d21SbE1ZM0pVTkZsMXF0MEpJ?= =?utf-8?B?RmtBVXhXTW9sQWN5TU5rVVNwK3FUdndtNmNVQitGM1BwMXJCZlArVVB2MG5V?= =?utf-8?B?djlVc1pqd0VadVZwaHY1d244Y3QyM2szejRIaGdBVXAvbTRlSFN2Ykp5czgv?= =?utf-8?B?S1V6SlNTc040d1l6Q2RkL1RuYWRkQVo5TjNxYUE5SW9mcS9zNlNpWlRocno1?= =?utf-8?B?WVhZNFRzb0lQZ3Y2Qmc1MVVOa295cm5UU0ZDZkNTOGc2MGZlYi9yYVpQcDdh?= =?utf-8?B?N0lVall4K05vM1VnNlR1V3UvVGtXSEUwc2RUTlpVWml2cjV6Vld0U0MrMmJC?= =?utf-8?B?MU5kYTZSVWZJb2FMV2pEb3Frc1FncW5kVE5uTHF6R01MQlJyakQxbVFWWCtW?= =?utf-8?B?Q3dwcHJvTXgycmY2U1NTNC9ma0RGOFdkY3d3eFZ4M3Z5VmNHYXoweTk0MnNy?= =?utf-8?B?MmgwaWtjbU85UkI3ZmZMRUNBcit6bTdpWFVUc21RalZMYXVVV2dGdUJJN1lL?= =?utf-8?B?VjZSbkNPOCt3dmNuQ2ZBeFlmK1ZIK2ROWC9DUWtCTlBnbis4ZzBvMk1meTZH?= =?utf-8?B?MDJCSEJoNUNEYXZqa3RBajF6SVRjUjBvWUNHbnVKWlhYREx5RTFIamozTkVP?= =?utf-8?B?MVlhL0wvOThZb2wzVUxSVXZWUUR3SnkrSWs5QUxyWisvSlpVeEN1UXJZZ2FC?= =?utf-8?B?TFF6UHlvZmhlaFlQTmF6bUJiQjdQT2gxbjZZUkROOUN2MjQvQTFIQXBjRnNP?= =?utf-8?B?MmJtTDc4Z1RTcGlybG5ZV3NzNzBMMzNCbGdKWUgxTDJJb1RGYmdMVVhWTmg5?= =?utf-8?B?L21rRTNLMmJQMkh2NFM3RXZIemZrak8vM0Y4SmtCUnlkTjJwK1h1Q2F4bGpK?= =?utf-8?B?a0RYK3JKUUNJalhjMlMwY3JBVFZUSG9ZamdEUFFHL1NuUHdOZWIvdmxRSGIr?= =?utf-8?B?bXZnTmdFUE9LMkpKK2prWUVDU2tTanF6WjYzMUxKZzlIZFEzR2dQUmhSekN3?= =?utf-8?B?NTFvcUQ4OTYyWDF4Qzl0NURiN1I2SWYySHF2L3V6ZzlZdU5kMVFyQlMyQ2ZF?= =?utf-8?B?aW96U09TSlpLZ1B2ODJldWd6NVpCUEx0V1RqVmpVbkxQR1dVNkg2VFJZYVBT?= =?utf-8?B?Q0lobktkWCtMMUdEZDJHSUVhTUhwZlJyRkZIQ3RnelpjQ1NNOEY0QWJobHp5?= =?utf-8?B?RU4xUWUweDc2SFFUbitjUFpSVEhOZmMvWFEzeFVZenZGR3BMR1dtQTY4cG1N?= =?utf-8?B?bXNZczM2dEZyZW1HajRuNGhBcDRMMUJJakI2ZWdtaTJub0RGaUQ0QUJFWE9F?= =?utf-8?B?ZXNOTDVDd29PK2R1elllU1JSbFZFL3lnblNlZmxhNURMYllpcEJCcWJGR0dG?= =?utf-8?B?WUFPcTFyQnpBVmk2UXhtU0RXbHhJSlQwSlhyWkFScUZEb1QyaXJwaEFleGJr?= =?utf-8?B?aFdlOHl1RW9KUW5sMzhuT24rMHVGRmw1NHA0MG1nbVZlUStjZEJReWs3NVpa?= =?utf-8?B?RW0rSnYwMFVyQU9WYVVHV3ZGUG1DWTQ0N0ZFNHZubThwUXlsaTZwTTJjVTI5?= =?utf-8?B?OHU5dUl6akZEQzFqWDQ0WjJXQWoweHdRQklLcEI5NXBiWHZmTzVLNDUraFQr?= =?utf-8?B?emxEbjVUN3BLVG50MGFScFh4cEJsdVJpaHBxWUtUbGlhazRybUxkU1NXMGVu?= =?utf-8?B?OTJPM3VidDdNZzBsWlVzOXRkSjJpZ2ltVDNoU3pWdVpOSTBUYWtmU09jdDlV?= =?utf-8?B?ZnhwN2toandJNWcrMTdkcW01aFZZNHNTZU45bUM1TWFSTEhkaWJzSWFySWdh?= =?utf-8?B?ZlE9PQ==?= X-OriginatorOrg: wolfvision.net X-MS-Exchange-CrossTenant-Network-Message-Id: d53f3bb6-a76a-4ff3-5e80-08dc63b25626 X-MS-Exchange-CrossTenant-AuthSource: DU0PR08MB9155.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Apr 2024 16:27:58.1688 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: e94ec9da-9183-471e-83b3-51baa8eb804f X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 1qN0VRHOv6Lh9EYIIUO2ohcTHJOTxIV9SenHKnRtOlxrIzMiwFVmjcjLTr0HkJGPC9boN4VCs+4nAVI90cB02KMCDZg6hw9jyXMEb7C07jE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB8898 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on metis.whiteo.stw.pengutronix.de X-Spam-Level: X-Spam-Status: No, score=-3.3 required=4.0 tests=AWL,BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS, SPF_PASS autolearn=ham autolearn_force=no version=3.4.2 Subject: Re: [ptxdist] [PATCH v6 3/5] scripts: add helper to inject files into a source directory X-BeenThere: ptxdist@pengutronix.de X-Mailman-Version: 2.1.29 Precedence: list List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: ptxdist@pengutronix.de Cc: Michael Olbrich , m.tretter@pengutronix.de Sender: "ptxdist" X-SA-Exim-Connect-IP: 127.0.0.1 X-SA-Exim-Mail-From: ptxdist-bounces@pengutronix.de X-SA-Exim-Scanned: No (on metis.whiteo.stw.pengutronix.de); SAEximRunCond expanded to false Hi Alex, On 4/23/24 15:52, Alexander Dahl wrote: > Hello Michael, > > I know this has been applied already, but while working on the extension I > asked about last week, I stumbled over some things. See below. Great to hear you find this extension useful. I must admit though that I don't recall most of it anymore... :/ Also, I am still a beginner when it comes to PTXdist script magic. If you feel that this feature can be improved and/or cleaned up, I'd be happy to look over your patches. But apart from that I am afraid I can't help you. Thanks and best regards, Michael > Am Samstag, 29. Januar 2022, 08:03:28 CEST schrieb Michael Riesch: >> Some packages may require certain files that are maintained >> or generated outside of their source repository. For example, >> binary firmware blobs could be excluded from the sources due >> to licensing issues. Add a helper that allows to inject certain >> files into the source directory (usually in the prepare stage). >> >> Signed-off-by: Michael Riesch >> --- >> >> Notes: >> v6: >> - replaced 'break' with 'return' >> >> rules/post/ptxd_make_world_inject.make | 19 ++++++++++++ >> scripts/lib/ptxd_make_world_inject.sh | 42 ++++++++++++++++++++++++++ >> 2 files changed, 61 insertions(+) >> create mode 100644 rules/post/ptxd_make_world_inject.make >> create mode 100644 scripts/lib/ptxd_make_world_inject.sh >> >> diff --git a/rules/post/ptxd_make_world_inject.make >> b/rules/post/ptxd_make_world_inject.make new file mode 100644 >> index 000000000..b7d28e92f >> --- /dev/null >> +++ b/rules/post/ptxd_make_world_inject.make >> @@ -0,0 +1,19 @@ >> +# -*-makefile-*- >> +# >> +# Copyright (C) 2021 by Michael Riesch >> +# >> +# For further information about the PTXdist project and license conditions >> +# see the README file. >> +# >> + >> +world/inject/env = \ >> + $(call world/env, $(1)) \ >> + pkg_inject_path="$($(1)_INJECT_PATH)" \ >> + pkg_inject_files="$($(1)_INJECT_FILES)" \ >> + pkg_source="$($(1)_DIR)" > > Why passing 'pkg_source' here? world/env/impl and thus world/env has > 'pkg_dir' and it has exactly the same content which is available in the shell > script later. > > Second thing: world/env is assigned in > 'rules/post/ptxd_make_world_common.make' and the interesting part looks like > this: > > pkg_dir="$(call ptx/escape,$($(1)_DIR))" > > Same for all the other variables with paths. Why was ptx/escape not used on > _INJECT_PATH and _INJECT_FILES here? > >> + >> +world/inject = \ >> + $(call world/inject/env,$(strip $(1))) \ >> + ptxd_make_world_inject >> + >> +# vim: syntax=make >> diff --git a/scripts/lib/ptxd_make_world_inject.sh >> b/scripts/lib/ptxd_make_world_inject.sh new file mode 100644 >> index 000000000..fe4eb8363 >> --- /dev/null >> +++ b/scripts/lib/ptxd_make_world_inject.sh >> @@ -0,0 +1,42 @@ >> +#!/bin/bash >> +# >> +# Copyright (C) 2021 by Michael Riesch >> +# >> +# For further information about the PTXdist project and license conditions >> +# see the README file. >> +# >> + >> +ptxd_make_inject() { >> + local source target >> + >> + source="$(echo ${inject_file} | cut -d ":" -f 1)" >> + target="${pkg_source}/$(echo ${inject_file} | cut -d ":" -f 2)" >> + if [ -z "${target}" ]; then >> + target="${source}" >> + fi > > Here ${target} can never be empty, because if both ${pkg_source} and $(echo …) > are empty, there's still the '/' in the middle. So the last three lines of > this block make no sense. Some leftover from earlier iterations? > > Greets > Alex > >> + >> + if [[ "${source}" =~ ^/.* ]]; then >> + ptxd_bailout "'${source}' must not be an absolute path!" \ >> + "Use _INJECT_PATH to specify the search path." >> + fi >> + >> + if ! ptxd_in_path pkg_inject_path "${source}"; then >> + ptxd_bailout "Blob '${source}' not found in '${pkg_inject_path}'." >> + fi >> + source="${ptxd_reply}" >> + >> + echo -e "\nInject file $(ptxd_print_path ${source}) into" \ >> + "$(ptxd_print_path ${target})..." >> + cp ${source} ${target} >> +} >> +export -f ptxd_make_inject >> + >> + >> +ptxd_make_world_inject() { >> + ptxd_make_world_init || return >> + >> + for inject_file in ${pkg_inject_files}; do >> + ptxd_make_inject || return >> + done >> +} >> +export -f ptxd_make_world_inject > > > >