From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7231094895937585152 X-Received: by 2002:a05:6512:2010:b0:4fe:db6:cb41 with SMTP id a16-20020a056512201000b004fe0db6cb41mr1162654lfb.39.1695809134347; Wed, 27 Sep 2023 03:05:34 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:6402:1a25:b0:522:3a21:f230 with SMTP id be5-20020a0564021a2500b005223a21f230ls132146edb.1.-pod-prod-09-eu; Wed, 27 Sep 2023 03:05:32 -0700 (PDT) X-Google-Smtp-Source: AGHT+IH9IZW5od8Clun7/SIC2Y32wNppDEFMpItDXNKCWroUli6DQdw8w8KWbuDV1KI0a9GJIdpX X-Received: by 2002:aa7:cf13:0:b0:534:2e79:6b01 with SMTP id a19-20020aa7cf13000000b005342e796b01mr1648684edy.21.1695809132216; Wed, 27 Sep 2023 03:05:32 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1695809132; cv=pass; d=google.com; s=arc-20160816; b=vTp9erFR0Z/4o7hB+XkpYFVEPKqM/GjJ/YGUaIDZxtLprP1gywRTnFstQ/GkK7m/tr nntNJloYrnUP4gQFgqA4jHQ71o4dxXqUv38COVZvwjosbAS5aG8XEp3QvQXiHdsTdKuD pvxmNXWKRi0pqOdUcUxaNl8TTnN4qtMTrzwy6nOWeUJXe+p8BlRtcBQ5hTXqvCspQx1n UFocO50OgozCWodfRQyJ7FvLroIxVFcrm4qq6eocZmDchE/nm7phlC6/TntNkkqMlIEe G/HhGoqyYMW42ml+AZHr/V7s+wkeDVt8POhv9zQyrg3lRwCByQHumYcUr2Hm61l/tF1q aruQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:content-transfer-encoding:in-reply-to:from:references :to:content-language:subject:user-agent:date:message-id :dkim-signature; bh=KeH1eoF3kSb7+Aq7TvJyL7kkwZV0/6oPcGCD5PPi1vY=; fh=Ya44QEZijmGwi3iM06vY2ri2uPgFJ4O2CEdNzu8WM0o=; b=t5EYhRgyqOUNNtuK8IQak872KdYW8uHQE1iTov1hwv811LJIgHqEp6sE1ns5L1cMmL mfiUcsIMEr1q6QEhv5c3kr8qmwBzEaQHdq9+qdKeba1VOncaKARwxauEw7yGJkKnYeUp pBt3FBkIDr+37+Hzsp9LOpaAsXcI4j60fL6qKmDJaBooP7ACcheBQ7hFJA9hvyCEVaEi zZEwByuKbEueqstHH5XmlRm7BQfrR0LZyyHvBU+7nj9iQhYbYE2aYuimHmvJes6YOlg2 sYDGX1Vo6eumjvCYaLFLuy1zbHwvMCs0IvdYTI/+3g2koOXKqBmq+kh6NHz3Y+kd38fD skmQ== ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=XBLLobWr; arc=pass (i=1 spf=pass spfdomain=siemens.com dkim=pass dkdomain=siemens.com dmarc=pass fromdomain=siemens.com); spf=pass (google.com: domain of jan.kiszka@siemens.com designates 2a01:111:f400:fe12::61f as permitted sender) smtp.mailfrom=jan.kiszka@siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com Return-Path: Received: from EUR02-DB5-obe.outbound.protection.outlook.com (mail-db5eur02on2061f.outbound.protection.outlook.com. [2a01:111:f400:fe12::61f]) by gmr-mx.google.com with ESMTPS id g19-20020a056402321300b0051fe05f750asi1226251eda.2.2023.09.27.03.05.32 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 27 Sep 2023 03:05:32 -0700 (PDT) Received-SPF: pass (google.com: domain of jan.kiszka@siemens.com designates 2a01:111:f400:fe12::61f as permitted sender) client-ip=2a01:111:f400:fe12::61f; Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=XBLLobWr; arc=pass (i=1 spf=pass spfdomain=siemens.com dkim=pass dkdomain=siemens.com dmarc=pass fromdomain=siemens.com); spf=pass (google.com: domain of jan.kiszka@siemens.com designates 2a01:111:f400:fe12::61f as permitted sender) smtp.mailfrom=jan.kiszka@siemens.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=siemens.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ng13Q41VWtAptMpJuxuRUgd7Bo1yyM8UhmylqBablDwuTcqhnwo3K/i0Q2zgoJuj7+S3IMivDsRG6MYcQoMGQFEkPSYmQBkeB/bZUxEhQnzpRdwjrdqwLUQaU/CqxIxjd2YNS9A6t3OHt0T3yRY4PC24THfeCu7oP66oy/qQVYBGjDqgPQBZQdqdH4tfUhQ9cI/cQ0nwlwfbp9FjIpebAC930q/QfJ9XYAp/AeR5uWeI1ShthcPBc5UCP51z1bBuP8QmxtRBdCt45vyHvafcbEvd16ej2zVdH+jxVUNHQeWS4zaViiISK38JbHRgl2OQG2LXFXOqSqlJCbR10imzWA== 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=KeH1eoF3kSb7+Aq7TvJyL7kkwZV0/6oPcGCD5PPi1vY=; b=SnDCIBhX/1kf/5iC76vzMvvETdr5g6zuJ6gW86HChvCiTUrMs0XpWqu6JSItih0jrGtaZFKMaMXsQbUTRAcGEoIK1nxgbGlNsK3N2Rjhe6uMsIDXwy1JueMRVqSt4GQWrnYUXr7laN5wSxmM8It/HSKPDKrf36sToBWnnODKT5GrZvPvuE/WCEMhO85aTlIz9HH8iSKJ5GtbDT4eElKwHSuOfSi0PxybKvPROIBRXAz2hWT9SKWjarhrTgTBp4+3nDtrbP1KgWHlX+5MBr9qWAYd5bLajZSjNUghcGMya5QiPoLy82zT1O55wUN5SIXhcrqEUuCb6UgLqGM20EtJqA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=siemens.com; dmarc=pass action=none header.from=siemens.com; dkim=pass header.d=siemens.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=siemens.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=KeH1eoF3kSb7+Aq7TvJyL7kkwZV0/6oPcGCD5PPi1vY=; b=XBLLobWreL4X+8LPOrzU4fJ+HF+CPMaVOkrS5ID7svpPorTEofKiPvFv+6yYAXs1jrdtkqZwD9bmrq4HuR1+ouNRwy+h1nP3n/l8OVHZR7Vzwt8zbaVBr1oy2n611vAFxTY5NBKoO58jIiyUktZuXuEowjFmfw5N3CG8aZcniz/kliVSmi8UN6ALlbURQdDt3YvIS2YvvSCZnuUlNSCb+WgJWngADJ/HLbOvoR3DIf2BZZBWWDyil7ilN2h2TrujHr+Lp/F3PK8BSE5hrU/KlaPiVqKEEkPkoB3XdhPrsfsRrF5r5TNl+puMjPkCUs6YktkHwYz06ymsqQ/Ch6LJ7A== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=siemens.com; Received: from AS4PR10MB6181.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:588::19) by PAVPR10MB6961.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:102:30d::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6813.19; Wed, 27 Sep 2023 10:05:30 +0000 Received: from AS4PR10MB6181.EURPRD10.PROD.OUTLOOK.COM ([fe80::7f20:d403:b43d:12e2]) by AS4PR10MB6181.EURPRD10.PROD.OUTLOOK.COM ([fe80::7f20:d403:b43d:12e2%3]) with mapi id 15.20.6838.016; Wed, 27 Sep 2023 10:05:30 +0000 Message-ID: Date: Wed, 27 Sep 2023 12:05:23 +0200 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v4 2/6] isar-bootstrap: Move preparations to hooks Content-Language: en-US To: Uladzimir Bely , isar-users@googlegroups.com References: <20230927043320.6264-1-ubely@ilbers.de> <20230927043320.6264-3-ubely@ilbers.de> From: Jan Kiszka In-Reply-To: <20230927043320.6264-3-ubely@ilbers.de> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: CH2PR18CA0046.namprd18.prod.outlook.com (2603:10b6:610:55::26) To AS4PR10MB6181.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:588::19) Return-Path: jan.kiszka@siemens.com MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS4PR10MB6181:EE_|PAVPR10MB6961:EE_ X-MS-Office365-Filtering-Correlation-Id: b773ed66-7bc5-4864-6dd2-08dbbf414801 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 6V+mEpjs7xdsHkZkiICqqj886QCXEIS7VYUYfiDbYxfW+1N2ROqOU7lRHArE93YaKJucZAlvSFBt+V+ne+tryKYN5NqoeLxsPm6JGzkbDl0m/MWiE37gCn6J7yIdj8R/tEy7U0oC+WjfXZHaKbj2m+KrD71sYD2pfuYggnKhwSC/yITocJ52as6ZPclUKgsVIFbHnc/a/FNshKg5UqqwcUUPzzLm0TyxwGT8ux2D7zC5eub/x8vWgFoyhAE/PzCsY9rEbTfKb54bF092fTJofi/NwQVyIr58NjuIC23K1Zorrg059/Ef35AsHO0NgxbUbEfT0Q6GLaYS6C4ZXBt+KyB81113f5GJEyuKG+dEQqU4IPvj9Ma/KoQ+vU3Lb1x+J2YgQXHzjsaOf2iM3eiXuFoHF/hCbVJoBEgnNhOk2Dv5P8gOOF4PYSHvZLWQsm1icdDgiaavR0frg0/JTbo/RQAiL5RolrrLFF9y0VNcrx1v8GGqj52bvBzc/31pu1LarWbFKmTHOIvp4N7Lex3sBCNNSoL/15I/Xx0cF6lgIBCRMtbYYSJsItiuO00xqTBsy4UgrONmwNmcZzKvC0eVsPJozYBNhyQbCT1Ct13BbpCcNWJb5h01NK6DuBIVT95eW1M2jFRxKWd28/lCRdv3Iw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS4PR10MB6181.EURPRD10.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230031)(396003)(136003)(346002)(39860400002)(376002)(366004)(230922051799003)(451199024)(1800799009)(186009)(83380400001)(478600001)(6506007)(6512007)(53546011)(6666004)(36756003)(6486002)(26005)(8936002)(66556008)(5660300002)(2906002)(44832011)(316002)(66476007)(30864003)(8676002)(41300700001)(38100700002)(31696002)(86362001)(66946007)(82960400001)(2616005)(31686004)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?UDRJTnlsT3Q3UkJSdHBwMytxWGhHak0rb3gzTHhES1BxbGkwU1R6YUQrWHUw?= =?utf-8?B?UmFYRjdHYjEvTktBT0dEUzMyenA4SUYyelFyMHRVMm1DN2ZMR1daTElsWGQ1?= =?utf-8?B?RWZZMnl2T21VQml5UmRVU2lEaHRDY2VFNnF2M1E0ZWQvN3RJMzNPbnl2aFNa?= =?utf-8?B?K2MwWlVEQmZvdDVma3hjM3VCUUNoQ0JGc3FvenVDRkV0VXhTckN2K0NBZ1c1?= =?utf-8?B?RktzdzFYNkxnL0hyRStUL2IzaDFWUmpQaFFnVE44OTZ4T1NLa3RGSEc2UWEz?= =?utf-8?B?QkhCaytleDlUL2k2VFhoNklSUUhBREtpaklaZnJXVlk0b3lqRERZTWYvUkxC?= =?utf-8?B?NFl5UDZLNlZQL3JKQUl2MllCQXBjWFpBZFRiWC9qQS9tUDVydytnV3JIMUlL?= =?utf-8?B?eGhJVzgxSUphazlER2UwNU12YmZPK2xoTDJicTBYSmc1UVdWblh2ZC9hSzJr?= =?utf-8?B?UGtnWjdidnNlUWJLb2tsZysvQUFKZVpSWXVOUGxWeEFLM0E2QTN1eXJjUDF0?= =?utf-8?B?OFJ4b2ZQREhscXQ5bHNTd1NKWFZYcWR4dDBPTnB1UzBQSGY2cEUxbzZUdDlr?= =?utf-8?B?UG9oV2tKNmZxaEhyblJmVU1ObFhpTzhURU43ZVppQ1JBdGpZeE9PU1YvVG1r?= =?utf-8?B?Y0xZbTUxb0dxTVpjbmM2TVdRM014OTN2VGRQcnozQkxTdHFIMUFqd0NsaXU1?= =?utf-8?B?WWhpQ1dud05mVWtxdlVsTDB6clhxUzdPSmZnU0FjeXk3QzYvVzJ6aXJBVDBJ?= =?utf-8?B?ektUSy94V3ZqWlR0RmQrMzdzaThHeGhZRzY1c1JDdWh0L3Foa1FZVjk5WmJW?= =?utf-8?B?V0drOWh1TUMrd0NURG0zL0tiekRLS1cxY05mVW9HZ2h0SDVib3NyUFNvdE9K?= =?utf-8?B?UFJnZzVnS1RXTmR0bThOS0ozWkNtRFVtVW4waHZvVm5kVCsvSzhkejlZSG5B?= =?utf-8?B?cG90aDBVemhQWDJuOTVQaGNEQ1haa0RnSm9vSk9aN2lhUU1uV0syTkFXRWhL?= =?utf-8?B?WVhlbTdEWllKZ2tONDRIb2hUTGFFd1g5dk00NFVPN1hZQlY1eUZRKzlWTGZS?= =?utf-8?B?K0c1YTJMSFJvWjYvWWVGc3FBRWVtd0NySS9PVGxsaFo0U2JKdkFZVmlXOU80?= =?utf-8?B?MWtXMC9TeGxYUWg3S1VlOHg0TUdvL0JqVnJjaHlBMS9UODhiQWliRTVlQ2R3?= =?utf-8?B?ZHV5Y01Cb1JpK1V1dHh6OHJzeCtEWW83bzd1MFBTUEJWMjZnNkZaV0FpQjA3?= =?utf-8?B?czBQRDlLbExvRE8xbFNXNFZVaG9oZDdpQ2FhUWpGM1VYNDRodDRyTzdmS01X?= =?utf-8?B?UGpMOWgrcHJYY09oK1RCeUNzRlAyT0lyZDBESEhHbEhEQ0pzZi9QVjVFREQz?= =?utf-8?B?TmtMNzVRTWNDRlp6VmVkV2MyVzgyLzQxb2FhZWpaWlJGSnJydUF5TjEyREk0?= =?utf-8?B?dlBvcHQ1aWdONGdid2ZBZFZ2KzVUY2ZPZDJmT2QxSjhUdEgrNmo4Skx2NUhk?= =?utf-8?B?RnBaWlRla1RnT1lnY1ZQTGRaU0srb3prempKRmNtZzJ2NENiL0JjQ1dsekxU?= =?utf-8?B?eFlSZGNFaEpBNDZ4VGpSMGxhQXI4Tm5scDNpVDl2U0E5UFBFQVRvUnkwMHBa?= =?utf-8?B?VENLMVB0QlROSDdUU0xNS1FFU1dDWTVEZEFEZ29BY01WN0pZdjhSa1dFcnFT?= =?utf-8?B?MFM3ME9oYW1uc04wMmJSa21nZEFWL21DbmtNZjExWnNYcld5WVF2U0kwTE5V?= =?utf-8?B?SGUrZ3Z6cGlLTllPZm5nOFBJMzdoNm5TVHJZRVhJYi9CQThOQWllbEhuOHlM?= =?utf-8?B?RW1wYzlxL2k3ckFUVjMrMXp6bFY2YkEraXRRdkhmSnlxdmRpQThuYUNoOEdp?= =?utf-8?B?dFNSWkZLR1VSc2tWbERtczhpZ09HYXphczVxNUJEcEl0YmQ2VWhDaFdPOTh5?= =?utf-8?B?cXFlVDdSZGJDMzVLQ1RhTkRTc1RDWnVGcHZtcDE3MFlQV0RUazBxZUZxb2pZ?= =?utf-8?B?b3dFWXRhVVNJT3cvZk92SkJnQ1U3elJMQkRvTnNnUUVUUytvK1dpeXM3bStQ?= =?utf-8?B?V2JKZHpEVnB6Tml4OGNudkE4MWZZU1RQRy9taFlCa3hEaThEUlV5NktxWnJu?= =?utf-8?B?ajlpUnVHS3FSTDlab1BNaVFtRHlJb1NrWmVjTk1LeXdUU1pCWkhkY01PMjhD?= =?utf-8?B?UkE9PQ==?= X-OriginatorOrg: siemens.com X-MS-Exchange-CrossTenant-Network-Message-Id: b773ed66-7bc5-4864-6dd2-08dbbf414801 X-MS-Exchange-CrossTenant-AuthSource: AS4PR10MB6181.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Sep 2023 10:05:30.5857 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 38ae3bcd-9579-4fd4-adda-b42e1495d55a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ms3rjMBd+us7UT0CDgOMNl3K6NSfAdBsK8Fy9ditVEASfRqIo3sI56wBHRx2lpe/677Fe7hZEtjePrv6E4180g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR10MB6961 X-TUID: R2aT1lfWeIpX On 27.09.23 06:33, Uladzimir Bely wrote: > From: Anton Mikanovich > > Move all bootstrap rootfs prepare logic into mmdebstrap hooks. > > Signed-off-by: Anton Mikanovich > --- > .../isar-bootstrap/isar-bootstrap.inc | 196 +++++++++--------- > 1 file changed, 102 insertions(+), 94 deletions(-) > > diff --git a/meta/recipes-core/isar-bootstrap/isar-bootstrap.inc b/meta/recipes-core/isar-bootstrap/isar-bootstrap.inc > index 637018c6..d8ac9d00 100644 > --- a/meta/recipes-core/isar-bootstrap/isar-bootstrap.inc > +++ b/meta/recipes-core/isar-bootstrap/isar-bootstrap.inc > @@ -211,24 +211,21 @@ def get_distro_components_argument(d): > else: > return "" > > -APT_KEYS_DIR = "${WORKDIR}/aptkeys" > DISTRO_BOOTSTRAP_KEYRING = "${WORKDIR}/distro-keyring.gpg" > > -do_generate_keyrings[cleandirs] = "${APT_KEYS_DIR}" > -do_generate_keyrings[dirs] = "${DL_DIR}" > +do_generate_keyrings[cleandirs] = "${WORKDIR}/trusted.gpg.d" > +do_generate_keyrings[dirs] = "${DEBDIR}" > do_generate_keyrings[vardeps] += "DISTRO_BOOTSTRAP_KEYS THIRD_PARTY_APT_KEYS" > do_generate_keyrings[network] = "${TASK_USE_SUDO}" > do_generate_keyrings() { > if [ -n "${@d.getVar("THIRD_PARTY_APT_KEYFILES") or ""}" ]; then > - chmod 777 "${APT_KEYS_DIR}" > for keyfile in ${@d.getVar("THIRD_PARTY_APT_KEYFILES")}; do > - cp "$keyfile" "${APT_KEYS_DIR}"/"$(basename "$keyfile")" > + sudo apt-key --keyring "${DISTRO_BOOTSTRAP_KEYRING}" add $keyfile Isn't apt-key deprecated? Why re-introducing it then? > done > fi > if [ -n "${@d.getVar("DISTRO_BOOTSTRAP_KEYFILES") or ""}" ]; then > for keyfile in ${@d.getVar("DISTRO_BOOTSTRAP_KEYFILES")}; do > sudo apt-key --keyring "${DISTRO_BOOTSTRAP_KEYRING}" add $keyfile > - cp "$keyfile" "${APT_KEYS_DIR}"/"$(basename "$keyfile")" > done > fi > } > @@ -269,12 +266,14 @@ do_bootstrap[vardeps] += " \ > ISAR_ENABLE_COMPAT_ARCH \ > ${DISTRO_VARS_PREFIX}DISTRO_APT_SOURCES \ > " > -do_bootstrap[dirs] = "${DEPLOY_DIR_BOOTSTRAP} ${BOOTSTRAP_TMPDIR}" > +do_bootstrap[dirs] = "${DEPLOY_DIR_BOOTSTRAP} ${BOOTSTRAP_TMPDIR} ${WORKDIR}/trusted.gpg.d ${WORKDIR}/sources.list.d" > do_bootstrap[depends] = "base-apt:do_cache isar-apt:do_cache_config" > do_bootstrap[network] = "${TASK_USE_NETWORK_AND_SUDO}" > > inherit compat > > +DEB_DL_LOCK ?= "${DEBDIR}/${BOOTSTRAP_BASE_DISTRO}-${BASE_DISTRO_CODENAME}.lock" > + > do_bootstrap() { > if [ "${ISAR_ENABLE_COMPAT_ARCH}" = "1" ]; then > if [ -z "${COMPAT_DISTRO_ARCH}" ]; then > @@ -284,124 +283,133 @@ do_bootstrap() { > debootstrap_args="--verbose --variant=minbase --include=${DISTRO_BOOTSTRAP_BASE_PACKAGES}" > if [ -f "${DISTRO_BOOTSTRAP_KEYRING}" ]; then > debootstrap_args="$debootstrap_args --keyring=${DISTRO_BOOTSTRAP_KEYRING}" > + cp "${DISTRO_BOOTSTRAP_KEYRING}" "${WORKDIR}/trusted.gpg.d/" > fi > E="${@ isar_export_proxies(d)}" > - export BOOTSTRAP_FOR_HOST > > - deb_dl_dir_import "${ROOTFSDIR}" "${BOOTSTRAP_BASE_DISTRO}-${BASE_DISTRO_CODENAME}" > sudo rm -rf --one-file-system "${ROOTFSDIR}" > mkdir -p "${ROOTFSDIR}" > > + if [ "${ISAR_USE_CACHED_BASE_REPO}" = "1" ]; then > + base_apt_tmp="$(mktemp -d /tmp/isar-base-aptXXXXXXXXXX)" > + bootstrap_list="${WORKDIR}/sources.list.d/base-apt.list" > + line="copy://$base_apt_tmp/${BOOTSTRAP_BASE_DISTRO} ${BASE_DISTRO_CODENAME} main" > + if [ -z "${BASE_REPO_KEY}" ]; then > + line="[trusted=yes] ${line}" > + fi > + echo "deb ${line}" > "${WORKDIR}/sources.list.d/base-apt.list" > + line="copy://$base_apt_tmp/${BASE_DISTRO} ${BASE_DISTRO_CODENAME} main" > + if [ -z "${BASE_REPO_KEY}" ]; then > + line="[trusted=yes] ${line}" > + fi > + echo "deb-src ${line}" >> "${WORKDIR}/sources.list.d/base-apt.list" > + > + # no need to sync /var/cache/apt/archives if base-apt used > + syncin='echo skip sync-in' > + syncout='echo skip sync-out' > + extra_setup="mount --bind '${REPO_BASE_DIR}' $base_apt_tmp" > + extra_extract="$syncout" > + # save mmdebstrap tempdir for cleanup > + extra_essential="mkdir -p \$1/$base_apt_tmp && \ > + echo \$1 > ${WORKDIR}/mmtmpdir && \ > + mount --bind '${REPO_BASE_DIR}' \$1/$base_apt_tmp" > + # replace base-apt mount in tmp with /base-apt mount > + extra_customize="sed -i \"s|copy://$base_apt_tmp|file:///base-apt|g\" \ > + \$1/etc/apt/sources.list.d/*.list && \ > + mkdir -p \$1/base-apt && \ > + mount --bind '${REPO_BASE_DIR}' \$1/base-apt && \ > + chroot \$1 apt-get update -y \ > + -o APT::Update::Error-Mode=any && \ > + umount \$1/base-apt && \ > + umount \$1/$base_apt_tmp && rm ${WORKDIR}/mmtmpdir && \ > + umount $base_apt_tmp && rm -rf --one-file-system $base_apt_tmp" > + else > + deb_dl_dir_import "${WORKDIR}/dl_dir" "${BOOTSTRAP_BASE_DISTRO}-${BASE_DISTRO_CODENAME}" > + > + bootstrap_list="${WORKDIR}/sources.list.d/bootstrap.list" > + install -v -m644 "${APTSRCS}" \ > + "${WORKDIR}/sources.list.d/bootstrap.list" > + > + syncin='flock -s ${DEB_DL_LOCK} cp -n --no-preserve=owner \ > + "${WORKDIR}/dl_dir/var/cache/apt/archives/"*.deb \ > + "$1/var/cache/apt/archives/" || true' > + syncout='flock -s ${DEB_DL_LOCK} cp -n --no-preserve=owner \ > + "$1/var/cache/apt/archives/"*.deb \ > + "${WORKDIR}/dl_dir/var/cache/apt/archives/"' > + extra_setup="$syncin" > + extra_extract="$syncout" > + # prefetch apt debs because mmdebstrap will clean them on next stage > + extra_essential='apt-get install apt -y -d \ > + -o Dir::State="$1/var/lib/apt" \ > + -o Dir::Etc="$1/etc/apt" \ > + -o Dir::Cache="$1/var/cache/apt" \ > + -o Apt::Architecture="${BOOTSTRAP_DISTRO_ARCH}"' > + extra_essential="$extra_essential && $syncout" > + extra_customize="$syncout" > + fi > + > if [ ! -z "${SOURCE_DATE_EPOCH}" ]; then > export SOURCE_DATE_EPOCH="${SOURCE_DATE_EPOCH}" > fi > > arch_param="--arch=${BOOTSTRAP_DISTRO_ARCH},${DISTRO_ARCH}" > + if [ "${ISAR_ENABLE_COMPAT_ARCH}" = "1" ]; then > + arch_param="$arch_param,${COMPAT_DISTRO_ARCH}" > + fi > + > + # Cleanup mounts if fails > + trap 'exit 1' INT HUP QUIT TERM ALRM USR1 > + trap '[ -r "${WORKDIR}/mmtmpdir" ] && tmpdir=$(cat "${WORKDIR}/mmtmpdir") \ > + && rm "${WORKDIR}/mmtmpdir"; \ > + [ -d "$tmpdir" ] && mountpoint -q $tmpdir/$base_apt_tmp \ > + && sudo umount $tmpdir/$base_apt_tmp; \ > + [ -d "$tmpdir" ] && mountpoint -q $tmpdir/base-apt \ > + && sudo umount $tmpdir/base-apt; \ > + [ -d "$tmpdir" ] && sudo rm -rf --one-file-system $tmpdir; \ > + [ -n "$base_apt_tmp" ] && mountpoint -q $base_apt_tmp \ > + && sudo umount $base_apt_tmp \ > + && rm -rf --one-file-system $base_apt_tmp' EXIT > > sudo TMPDIR="${BOOTSTRAP_TMPDIR}" ${DEBOOTSTRAP} $debootstrap_args \ > $arch_param \ > --mode=unshare \ > + --setup-hook='mkdir -p "$1/var/cache/apt/archives/"' \ > + --setup-hook="$extra_setup" \ > + --setup-hook='upload "${APTPREFS}" /etc/apt/preferences.d/bootstrap' \ > + --setup-hook='upload "${APTSRCS_INIT}" /etc/apt/sources-list' \ > + --setup-hook='upload "${WORKDIR}/locale" /etc/locale' \ > + --setup-hook='mkdir -p "$1/etc/apt/trusted.gpg.d"' \ > + --setup-hook='sync-in "${WORKDIR}/trusted.gpg.d" /etc/apt/trusted.gpg.d' \ > + --setup-hook='install -v -m755 "${WORKDIR}/chroot-setup.sh" "$1/chroot-setup.sh"' \ > + --extract-hook="$extra_extract" \ > + --essential-hook="$extra_essential" \ > + --customize-hook="$extra_customize" \ > + --customize-hook='sed -i "/en_US.UTF-8 UTF-8/s/^#//g" "$1/etc/locale.gen"' \ > + --customize-hook='chroot "$1" /usr/sbin/locale-gen' \ > + --customize-hook='chroot "$1" /usr/bin/apt-get -y clean' \ > + --skip=cleanup/apt \ > + --skip=download/empty \ > ${@get_distro_components_argument(d)} \ > "${@get_distro_suite(d)}" \ > "${WORKDIR}/rootfs.tar.zst" \ > - "${@get_distro_source(d)}" > + "$bootstrap_list" > > sudo -E -s <<'EOSUDO' > set -e > > tar -xf "${WORKDIR}/rootfs.tar.zst" -C "${ROOTFSDIR}" --exclude="./dev/console" > > - # Install apt config > - mkdir -p "${ROOTFSDIR}/etc/apt/preferences.d" > - install -v -m644 "${APTPREFS}" \ > - "${ROOTFSDIR}/etc/apt/preferences.d/bootstrap" > - mkdir -p "${ROOTFSDIR}/etc/apt/sources.list.d" > - if [ "${ISAR_USE_CACHED_BASE_REPO}" = "1" ]; then > - line="file:///base-apt/${BOOTSTRAP_BASE_DISTRO} ${BASE_DISTRO_CODENAME} main" > - if [ -z "${BASE_REPO_KEY}" ]; then > - line="[trusted=yes] ${line}" > - fi > - echo "deb ${line}" > "${ROOTFSDIR}/etc/apt/sources.list.d/base-apt.list" > - line="file:///base-apt/${BASE_DISTRO} ${BASE_DISTRO_CODENAME} main" > - if [ -z "${BASE_REPO_KEY}" ]; then > - line="[trusted=yes] ${line}" > - fi > - echo "deb-src ${line}" >> "${ROOTFSDIR}/etc/apt/sources.list.d/base-apt.list" > - > - mkdir -p ${ROOTFSDIR}/base-apt > - mount --bind ${REPO_BASE_DIR} ${ROOTFSDIR}/base-apt > - else > - install -v -m644 "${APTSRCS}" \ > - "${ROOTFSDIR}/etc/apt/sources.list.d/bootstrap.list" > - fi > - install -v -m644 "${APTSRCS_INIT}" "${ROOTFSDIR}/etc/apt/sources-list" > - rm -f "${ROOTFSDIR}/etc/apt/sources.list" > - rm -rf "${ROOTFSDIR}/var/lib/apt/lists/"* > - find ${APT_KEYS_DIR}/ -type f | while read keyfile > - do > - MY_GPGHOME="$(chroot "${ROOTFSDIR}" mktemp -d /tmp/gpghomeXXXXXXXXXX)" > - echo "Created temporary directory ${MY_GPGHOME} for gpg-agent" > - export GNUPGHOME="${MY_GPGHOME}" > - APT_KEY_APPEND="--homedir ${MY_GPGHOME}" > - > - kfn="$(basename $keyfile)" > - cp $keyfile "${ROOTFSDIR}/tmp/$kfn" > - chroot "${ROOTFSDIR}" /usr/bin/gpg-agent --daemon -- /usr/bin/apt-key \ > - --keyring ${THIRD_PARTY_APT_KEYRING} ${APT_KEY_APPEND} add "/tmp/$kfn" > - rm "${ROOTFSDIR}/tmp/$kfn" > - > - echo "Removing ${MY_GPGHOME}" > - rm -rf "${ROOTFSDIR}${MY_GPGHOME}" > - done > - > - # Set locale > - install -v -m644 "${WORKDIR}/locale" "${ROOTFSDIR}/etc/locale" > - > - sed -i '/en_US.UTF-8 UTF-8/s/^#//g' "${ROOTFSDIR}/etc/locale.gen" > - chroot "${ROOTFSDIR}" /usr/sbin/locale-gen > - > # setup chroot > install -v -m755 "${WORKDIR}/chroot-setup.sh" "${ROOTFSDIR}/chroot-setup.sh" > "${ROOTFSDIR}/chroot-setup.sh" "setup" "${ROOTFSDIR}" > > - # update APT > - mount -o bind,private /dev ${ROOTFSDIR}/dev > - mount --bind /dev/pts ${ROOTFSDIR}/dev/pts > - mount -t tmpfs none "${ROOTFSDIR}/dev/shm" > - mount -t proc none ${ROOTFSDIR}/proc > - mount --rbind /sys ${ROOTFSDIR}/sys > - mount --make-rslave ${ROOTFSDIR}/sys > - > - export DEBIAN_FRONTEND=noninteractive > - > - if [ "${BOOTSTRAP_FOR_HOST}" = "1" ]; then > - chroot "${ROOTFSDIR}" /usr/bin/dpkg --add-architecture ${DISTRO_ARCH} > - fi > - > - if [ "${ISAR_ENABLE_COMPAT_ARCH}" = "1" ]; then > - chroot "${ROOTFSDIR}" /usr/bin/dpkg --add-architecture ${COMPAT_DISTRO_ARCH} > - fi > - > - chroot "${ROOTFSDIR}" /usr/bin/apt-get update -y \ > - -o APT::Update::Error-Mode=any > - chroot "${ROOTFSDIR}" /usr/bin/apt-get install -y -f > - chroot "${ROOTFSDIR}" /usr/bin/apt-get dist-upgrade -y \ > - -o Debug::pkgProblemResolver=yes > - > - umount -l "${ROOTFSDIR}/dev/shm" > - umount -l "${ROOTFSDIR}/dev/pts" > - umount -l "${ROOTFSDIR}/dev" > - umount -l "${ROOTFSDIR}/proc" > - umount -l "${ROOTFSDIR}/sys" > - umount -l "${ROOTFSDIR}/base-apt" || true > - > # Finalize debootstrap by setting the link in deploy > ln -Tfsr "${ROOTFSDIR}" "${DEPLOY_ISAR_BOOTSTRAP}" > EOSUDO > - deb_dl_dir_export "${ROOTFSDIR}" "${BOOTSTRAP_BASE_DISTRO}-${BASE_DISTRO_CODENAME}" > - > - # Cleanup apt cache > - sudo -Es chroot "${ROOTFSDIR}" /usr/bin/apt-get -y clean > + if [ "${ISAR_USE_CACHED_BASE_REPO}" != "1" ]; then > + deb_dl_dir_export "${WORKDIR}/dl_dir" "${BOOTSTRAP_BASE_DISTRO}-${BASE_DISTRO_CODENAME}" > + sudo rm -rf --one-file-system "${WORKDIR}/dl_dir" > + fi > } > > addtask bootstrap before do_build after do_generate_keyrings Jan -- Siemens AG, Technology Linux Expert Center