From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 7163980406052618240 X-Received: by 2002:a05:6512:2015:b0:4b5:9dc4:e783 with SMTP id a21-20020a056512201500b004b59dc4e783mr3615627lfb.568.1671556172299; Tue, 20 Dec 2022 09:09:32 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:6512:3242:b0:4b5:3cdf:5a65 with SMTP id c2-20020a056512324200b004b53cdf5a65ls1737299lfr.2.-pod-prod-gmail; Tue, 20 Dec 2022 09:09:31 -0800 (PST) X-Google-Smtp-Source: AA0mqf6OikGicoayczdVnHClzGmRO7/KBG6bh6RlX2mT3i+qywvEY3OPNMHIEVhLGuF/AyYSrmdP X-Received: by 2002:a05:6512:31d2:b0:4b6:e64c:aebf with SMTP id j18-20020a05651231d200b004b6e64caebfmr13829191lfe.51.1671556171238; Tue, 20 Dec 2022 09:09:31 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1671556171; cv=pass; d=google.com; s=arc-20160816; b=NHuxIblvR72/eND+6EzX7VQHVs5Lggcw79Cb1jq6HWZ3ZaChJHLDrx/rrkdnwJ10kV xNR+E5wJcaBUxd7nWfmo+XjL4fTHLKvmVUsc/0iizBPL+j1j4nGynSKQujyXTIOGh5Qx HbEXkF++oqWyW9Xva1i7wWi0ORRZLS7VNPZ8jJbHNLr3eYOnRI8GnGUOOJUiQ2bioN8u Ji6VtiBbNfJtsbMgclQFdY+B3SxdfjeMCEAjtQpR8vbJEWcwhUrs/gj0vNBOiJ1VrEDS Q1WLAHRyo2IZLy3TDaj6wMGRgfvphGzSzlVtui+IOWCaTu8aWK8aGftlXX+b0J+BrW5/ XAvg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:content-transfer-encoding:content-language :accept-language:in-reply-to:references:message-id:date:thread-index :thread-topic:subject:cc:to:from:dkim-signature; bh=hfOJIhEziI29rwzqvXNemQQzq5/KIbxXIqvJtbg8Peo=; b=cth9TOyEGQ0ga3oX01hhnLDN1b8zM1KSIi7X6cmPPKbiHT2A6LM/OCqSUWMllcCZ4X cwV/JdbPySMNK6RpthmbqJ0BDxYJoXL9kVE+H8WGBWdY/BPkcbfhOvPfLRl60L7bJqpx +1f2jNci20DONyPuZ3LbekP86smHR6ckpUIaRq5q2BHpoYA7WRD4GisSkI7udftGaYvQ RDnhFwvbvwo7Xfgbse3NVWoch547M9vA7qz3xMwHK1U8JfeBUYf3fowp/CYxFbY56gQ3 /hbvyjJq4Fpmj4M2O/FtaPG/2xmEZC0Th6mBTq54nBPBhVFUselCOEzXz7U//gaEwzqw B+1g== ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=V5UqciaB; 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 stefan-koch@siemens.com designates 40.107.21.55 as permitted sender) smtp.mailfrom=stefan-koch@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Return-Path: Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2055.outbound.protection.outlook.com. [40.107.21.55]) by gmr-mx.google.com with ESMTPS id v19-20020ac258f3000000b004b4b3e2e283si544138lfo.13.2022.12.20.09.09.31 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 20 Dec 2022 09:09:31 -0800 (PST) Received-SPF: pass (google.com: domain of stefan-koch@siemens.com designates 40.107.21.55 as permitted sender) client-ip=40.107.21.55; Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@siemens.com header.s=selector2 header.b=V5UqciaB; 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 stefan-koch@siemens.com designates 40.107.21.55 as permitted sender) smtp.mailfrom=stefan-koch@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=htBXrNue+9SzEv7wECF74+H9pMDD/ro7NGCtkNmXxdGK6imOBW4pCeydE5diUiYIq7Zi1XifTiF4pbc0Ej2O09+TlDDi24rOlNIoA09zsaqpCXA3bKbFOlII0jQteZvVCwUJN7YYZRonHb0UCVSQg6k+F/pH/rzQ/7IDWIziij9Cgd7r/kT7V9GJBQXJw+NYUqmFZIX2VMwMSM+rmGstWFpZEf1HTWCw0pMtTTZ5BSuJAmuIIi7NxKuriG28e+2FT0hHjep5z7419WywnK4bS5uYq1ZA4gNcs4ziKGYDZQbnDAPjsd/K4QHwVdpjCW/WMAyROZrjRsNbSmE1IHM6Sg== 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=hfOJIhEziI29rwzqvXNemQQzq5/KIbxXIqvJtbg8Peo=; b=TVLAzpOEvSVb5tOUo1uFTrpuz6U23RekGLTOzBeDaDkIgUEN2xHqj6PmxqgKV3B4jYW+xhqttst2OXS6HzE/6LxMj29Tim97J/wWZbbv6JszTU95FBX5Tc0imUndHLgvRs46j7ka+lHKie0uKZgEe3fsukxVNq3/8bII8lFW8M9oukhwxnEGhaMlGMGX+8H3Wb6Ft2+opgWGXFjUJeEsiq/vfxVGQ1t83Q6NzbYZlL0sEVY+SHQSWdOqRPFHbM54rjaDxHOX2zNLEtGbPlviT0eUIZIO40ycQCp3L3oU3VLqRoDxnkieQd7wp9eIIjouW/DVcjBZlnf2Id9tAhdtug== 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=hfOJIhEziI29rwzqvXNemQQzq5/KIbxXIqvJtbg8Peo=; b=V5UqciaBvYJZ3AD44A4eQECa6CpQ8uPkzqkW44YQVEPpyMfIE/Fyq4UNgO/pRWsNCa5rzITXMrN01ubLm3ifwVps1DjVKjXiMHwJjXXo9PbZcbqBw0B4vlEfMKPotBEmmRHHMlq0L3kS78Yr5/3YLvVX7SFT8oDT7o8guYwtemGGiepGoFk0Pi8i/ec3xIEs1ThHsS3G4P1/mjfPe5+2X/ZUh2AFjKI0tkUOJml4dFVdYkhLElI+y1UdScLG33sMn8lID7I/1E+SxsT1R9I5QxeSkVCwxvae9RSPymd/MpwNdE3+l38+uv5p7z3B274ae2dunECN6j3lQs+VKjU8+A== Received: from AM9PR10MB4959.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:41e::11) by GV1PR10MB6146.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:150:99::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5924.16; Tue, 20 Dec 2022 17:09:29 +0000 Received: from AM9PR10MB4959.EURPRD10.PROD.OUTLOOK.COM ([fe80::3be:f097:9bbc:68f3]) by AM9PR10MB4959.EURPRD10.PROD.OUTLOOK.COM ([fe80::3be:f097:9bbc:68f3%3]) with mapi id 15.20.5924.016; Tue, 20 Dec 2022 17:09:29 +0000 From: "Koch, Stefan" To: "isar-users@googlegroups.com" CC: "Kiszka, Jan" , "ubely@ilbers.de" , "Storm, Christian" , "Adler, Michael" , "Sudler, Simon" , "Koch, Stefan" Subject: [PATCH v2 3/5] dpkg: Add support for additional target and host builds Thread-Topic: [PATCH v2 3/5] dpkg: Add support for additional target and host builds Thread-Index: AQHZFJXR6gNPhZ8IDUiND7i3TCsGrw== Date: Tue, 20 Dec 2022 17:09:28 +0000 Message-ID: <20221220170921.1718503-4-stefan-koch@siemens.com> References: <20221220170921.1718503-1-stefan-koch@siemens.com> In-Reply-To: <20221220170921.1718503-1-stefan-koch@siemens.com> Accept-Language: de-DE, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.30.2 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=siemens.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AM9PR10MB4959:EE_|GV1PR10MB6146:EE_ x-ms-office365-filtering-correlation-id: 7ea22463-75dc-4798-a07c-08dae2acf4d5 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: YkqDHllSSskpaxZS0WA7TdrHyPxuS0499/1RlDsTc1Dy0rzVsUBqfIiHAm4f0xg60sTg/IJIWWcjTqTKPyxSOskqaH5fH/f9QyHzptpVy4S1uzpb/gWFkBhPlJPTW4PstJCGkhPh+UqRVS/r6TvyFU1/NI11ttqQ9oVM/M/KT81e4sZtq1PMzhdASagNYPpY8m6Nx3o4yv4XP/jB4iu9lsAwYaJyoi/nur6HN/ZS3y8St4zbM6p870V9Njl1OfsyUW9vBnA4l+wqiaOBJ+f5jIRnYFFTF2M41n+HwcsPyj4SV/sJa4qP3Uds4Bc8Jw8P2qehTNOLVpH1Wda/AUzOP9z0UD4R02zXZBAFYxYOs/eU3QH3oST0HvZ1TYQbXCoOKbpvMUbUR018tW6cmj15r1xzGXL+s5ly4RAxPszB2rYrPuK+58fuBXPRhMHIhLTYnpcbyUgTVtrZzdr1N1YD45KqsWqKXKEjFFHU0BiEw3GTUNHjU+WPykNWDM4FuvOXBNyQZWNVgk7qB5Fb6NpEH8e/g/Yxl1zeOEpEJp37bj9YeW6Wd1QBR8OKlkGrDiI+nJ/QxU5bn+VzimQvbbbT1kHQTA0w3xHxl3mW/B+ZI5cStgbtqVYtM+rmu8TPBVjrfHjbwiDAVJ0y2b+rxfMsp40JXn3282/zaErZyXIduQlyEOsvP3RNjQaSnYO4DdYylrwBZlZOX/Bf2PvLL7H/ag== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR10MB4959.EURPRD10.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230022)(4636009)(366004)(396003)(39860400002)(346002)(136003)(376002)(451199015)(1076003)(6512007)(186003)(26005)(478600001)(6506007)(8936002)(38070700005)(2616005)(2906002)(107886003)(71200400001)(38100700002)(82960400001)(122000001)(6486002)(36756003)(5660300002)(83380400001)(316002)(54906003)(6916009)(66476007)(66446008)(66946007)(66556008)(41300700001)(4326008)(76116006)(91956017)(64756008)(8676002)(86362001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?VT6rOzJ1ezCEA1+0/usvyCfd3UmYHwDeihVpdBHbioxQ/gaPyiMiX0l4u/?= =?iso-8859-1?Q?WQtWNqkOlTJu5XQJ09wnc4TMnkjaHUwSXKdWktkCqyTnL06CLYt81RjNW5?= =?iso-8859-1?Q?HA0vrCj35N7/zpZLQYbJkHbhK0CC+WKh+iyAH2WT6BVU8/eJnpibDmtt9a?= =?iso-8859-1?Q?V32T7G5j4ijUnxaFhvdcDiMl5HeEM3ZCxyX0bf0IHUlSS01BJN6kqZw39F?= =?iso-8859-1?Q?OIOw2vijtIrat6oEnzFTxU5/nz9w5Nc5slDiWLdAJAj9lcQFGEFXU98AWZ?= =?iso-8859-1?Q?PuHfdLk20P9AKjcidjbstxY6Ex+4p0LcfjiI1pBgT6DVhtg78sxy+s7tf4?= =?iso-8859-1?Q?8U1AZJ9Adz3jsblfsz0almXBEHKZoh3iV3K0BpL+zBezMt9kPofSX6r4GI?= =?iso-8859-1?Q?hHldq2gy7Aix4BKx6J6Gn9Y9yKFbcFgzto55D1IEukrEpL/927WOKj+tIN?= =?iso-8859-1?Q?mw6h1tz2QU228D9XhYQ08bFQmgc1SC/4HQ43cTz6L9OvdzOTMFWvFAHmRV?= =?iso-8859-1?Q?AWc1GWM3kj7rsBg0bIG18WARq8ZaFGtqI2Zxpb2muDNTpjTLoK8m+W9qQQ?= =?iso-8859-1?Q?aDCvmoloB/KWmNdEfqfzMfdPyjxrdOPAGylBtHSZHmbsnh0JAs2RXaHqz6?= =?iso-8859-1?Q?xQxhGI2HaKTjbtDznm7DBzhUDNlyXxJf328LclDhJA8j9VE5zjOAs24FJo?= =?iso-8859-1?Q?Ri2FXoH1jdV7dfuL80ZmS236hGzMvHRWBbfq244AMMBRTwkgW6GprvmSn0?= =?iso-8859-1?Q?V0hgujqmbvcizSz9FCAY5EmuQV4Z+TOrXNYYuuPGzL9Yorupgb2xeLj3yP?= =?iso-8859-1?Q?mszmP/+E0O/mb67iBsK6andyGUn/gRbrO7y8xZpy4M1jP01qySq4lNNg0E?= =?iso-8859-1?Q?KhtW+rRC8upPPPpSQEO5b+lqjp37k5YpA6q5h5alecBUyzADNVQtgmvPuz?= =?iso-8859-1?Q?9Q9utLMIbhrQUlKn9+YsgnrRvPcrDRKgH5GM3C8vw6g7REzChaI5GqFpKW?= =?iso-8859-1?Q?W41Uv6rFkPRdT95np4RwkYf6wB/kr0ZhkINVdowbSQ98IYW+RvRzHvTWH8?= =?iso-8859-1?Q?o2mCCqeyqWLPq885s1Ojw9s7IGMKKtlD0cQJEWX1Z1md7dqYeCTkUC731x?= =?iso-8859-1?Q?SP2Ig8m9EklN236WCEaN/1c4UeEztMVBZQ+BFcnM/FatMFV1OmZG5Mbvh+?= =?iso-8859-1?Q?J8nbXJtWXcoKPV+BL84aMzST91/yu7W9tW0GtXcT6nyGhWN4i5WJ0IVoxQ?= =?iso-8859-1?Q?IEPS8JYQ0PLTmxUrezpHx3Sjv65H8ABCgXRAhXqJmjAtOa5u5ZxrC+JD1M?= =?iso-8859-1?Q?CWR5ZKzlsTWIigOAdW9JJi76lKXLiPA6m6Z8vrVHo2lv7+iQszQ7N9SI1t?= =?iso-8859-1?Q?WO4a9XkY7Zt4BTKH+gHP11yrfMrN4gGg0SMC3p+v8LdJ5SoEhQKu6a1IF5?= =?iso-8859-1?Q?zoJOiL+XsXqOilFd1i6MhgaxWdjaHCZT+DPIQXnmOY+0I3n/X5fd3eZtso?= =?iso-8859-1?Q?oICbs+L3OS6WWDFpWIdOM/ESdscnKa3CXm4wmR8cMKWeO619xTKN/z6uW7?= =?iso-8859-1?Q?Fy3QzMnv0eWouuJexPk0dH4ZICFs6qL3VIl0PQtRRhBbWXpf8vgMbgjwBF?= =?iso-8859-1?Q?49hRvbP3gbnWf9bKmNgwfb9V6Mdt9WQzKOv3hgGHJ9WITnjkszzxdv8A?= =?iso-8859-1?Q?=3D=3D?= Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: siemens.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM9PR10MB4959.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: 7ea22463-75dc-4798-a07c-08dae2acf4d5 X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Dec 2022 17:09:29.1084 (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: yoeanM2jgMqurLBbs2f0P8qTYX/AyjIr7jV85hIClHWnmhnkRwpxcE+pbN3sfSUuNZrpWkiTdhzMxDholR9jxg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR10MB6146 X-TUID: BzzyJCMpkYWM By appending ISAR_BUILDS with "target" or "host" it's possible to run additional target or host builds. There are no "target" and "host" builds enabled by default. When both build modes are enabled then for a cross build a kbuild package for the target and a kbuild package for the host will be created. When "host" build is not enabled instead of the kbuild a kbuild-cross package for the host is generated. Supported modes for ISAR_BUILDS: default: default build (e.g. generic ISAR non-cross or cross build) target: run target architecture build (non-cross, using QEMU) host: run host architecture build Signed-off-by: Stefan Koch --- meta/classes/dpkg-base.bbclass | 51 ++++++++++++++++++++++++++++++---- meta/classes/dpkg.bbclass | 2 +- 2 files changed, 46 insertions(+), 7 deletions(-) diff --git a/meta/classes/dpkg-base.bbclass b/meta/classes/dpkg-base.bbclas= s index 260aa73..3108fee 100644 --- a/meta/classes/dpkg-base.bbclass +++ b/meta/classes/dpkg-base.bbclass @@ -228,7 +228,7 @@ dpkg_runbuild() { =20 def isar_deb_build_profiles(d): deb_build_profiles =3D d.getVar('DEB_BUILD_PROFILES', True) - if d.getVar('ISAR_CROSS_COMPILE', True) =3D=3D "1": + if d.getVar('ISAR_CROSS_COMPILE', True) =3D=3D "1" and not "targetbuil= d" in d.getVar('DEB_BUILD_PROFILES', True): deb_build_profiles +=3D ' cross' return deb_build_profiles.strip() =20 @@ -242,12 +242,51 @@ def isar_export_build_settings(d): os.environ['DEB_BUILD_OPTIONS'] =3D isar_deb_build_options(d) os.environ['DEB_BUILD_PROFILES'] =3D isar_deb_build_profiles(d) =20 +# By default only one dpkg build is executed +# With enabled ISAR_CROSS_COMPILE and different HOST_ARCH from DISTRO_ARCH +# it's possible to run additional target or host builds. +# These can requested by appending the following strings (seperated by spa= ce): +# target: run target architecture build (non-cross, using QEMU) +# host: run host architecture build +# Supported build modes for ISAR_BUILDS: default target host +ISAR_BUILDS ?=3D "default" + python do_dpkg_build() { - bb.build.exec_func('schroot_create_configs', d) - try: - bb.build.exec_func("dpkg_runbuild", d) - finally: - bb.build.exec_func('schroot_delete_configs', d) + # store default build values for restoring + deb_profiles =3D d.getVar('DEB_BUILD_PROFILES', True) + schroot_dir =3D d.getVar('SCHROOT_DIR', True) + + for build in d.getVar('ISAR_BUILDS', True).split(" "): + runbuild =3D False + + # set default build values + d.setVar('DEB_BUILD_PROFILES', deb_profiles) + d.setVar('SCHROOT_DIR', schroot_dir) + d.setVar('SBUILD_BUILD', d.getVar('SBUILD_HOST_ARCH', True)) + d.setVar('SBUILD_HOST', d.getVar('PACKAGE_ARCH', True)) + + if build =3D=3D "default": + runbuild =3D True + elif d.getVar('ISAR_CROSS_COMPILE', True) =3D=3D "1" and d.getVar(= 'HOST_ARCH', True) !=3D d.getVar('DISTRO_ARCH', True): + if build =3D=3D "target": + d.appendVar('DEB_BUILD_PROFILES', ' targetbuild') + d.setVar('SCHROOT_DIR', d.getVar('SCHROOT_TARGET_DIR', Tru= e)) + d.setVar('SBUILD_BUILD', d.getVar('PACKAGE_ARCH', True)) + runbuild =3D True + elif build =3D=3D "host": + d.appendVar('DEB_BUILD_PROFILES', ' hostbuild') + d.setVar('SCHROOT_DIR', d.getVar('SCHROOT_HOST_DIR', True)= ) + d.setVar('SBUILD_BUILD', d.getVar('HOST_ARCH', True)) + d.setVar('SBUILD_HOST', d.getVar('HOST_ARCH', True)) + runbuild =3D True + + # execute build + if runbuild: + bb.build.exec_func('schroot_create_configs', d) + try: + bb.build.exec_func("dpkg_runbuild", d) + finally: + bb.build.exec_func('schroot_delete_configs', d) } =20 addtask dpkg_build diff --git a/meta/classes/dpkg.bbclass b/meta/classes/dpkg.bbclass index 7822b14..70a1c6a 100644 --- a/meta/classes/dpkg.bbclass +++ b/meta/classes/dpkg.bbclass @@ -102,7 +102,7 @@ dpkg_runbuild() { DSC_FILE=3D$(find ${WORKDIR} -name "${DEB_SOURCE_NAME}*.dsc" -print) =20 sbuild -A -n -c ${SBUILD_CHROOT} --extra-repository=3D"${ISAR_APT_REPO= }" \ - --host=3D${PACKAGE_ARCH} --build=3D${SBUILD_HOST_ARCH} ${profiles}= \ + --host=3D${SBUILD_HOST} --build=3D${SBUILD_BUILD} ${profiles} \ --no-run-lintian --no-run-piuparts --no-run-autopkgtest --resolve-= alternatives \ --no-apt-update \ --chroot-setup-commands=3D"echo \"Package: *\nPin: release n=3D${D= EBDISTRONAME}\nPin-Priority: 1000\" > /etc/apt/preferences.d/isar-apt" \ --=20 2.30.2