From patchwork Fri Jul 24 20:04:16 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sumanth Gavini X-Patchwork-Id: 93470 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8163CC5321A for ; Fri, 24 Jul 2026 20:04:54 +0000 (UTC) Received: from mx0a-0064b401.pphosted.com (mx0a-0064b401.pphosted.com [205.220.166.238]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.27385.1784923483079563606 for ; Fri, 24 Jul 2026 13:04:45 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@windriver.com header.s=PPS06212021 header.b=Rd65vl2R; spf=permerror, err=parse error for token &{10 18 %{ir}.%{v}.%{d}.spf.has.pphosted.com}: invalid domain name (domain: windriver.com, ip: 205.220.166.238, mailfrom: prvs=1665965d86=sumanth.gavini@windriver.com) Received: from pps.filterd (m0250810.ppops.net [127.0.0.1]) by mx0a-0064b401.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66OGrPLU2220615 for ; Fri, 24 Jul 2026 13:04:42 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=windriver.com; h=cc:content-transfer-encoding:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= PPS06212021; bh=9fHc6cgZgRbhKyjY4NXr914NBxt6aPRaq7TIYGoB/pY=; b= Rd65vl2R/JX78AbUxxX6S/Mzd+ULy/B0921TtCbp+FEL+tuy80p6d8PFmPIcnsQt udHk+Xjf17c/NDf+dNTbdDukwOvJ9FF3gyUtDFocVxWrIzUpvcOL94WnHm02sMdL ctMHNwGgf1juWsD5BxRxGJCnrXcqjQLmcVtSv/sn7M3YfCkqT7o2B45+e9VcHu7Q 9qHaHagD6IpqVla10pSW23ue/maWPNC5ANGeQZjAaDlrhi01xLZ/Qx6ygxZRJ8r0 AjOVW3SLnCMiX/6VwnRInEYLR09Wpqnw8u5hPTnZyREy9wppBFLJ8NnRb4w3uH7y QG3rl85bmknhsnXBuwzbSQ== Received: from bn1pr04cu002.outbound.protection.outlook.com (mail-eastus2azon11010036.outbound.protection.outlook.com [52.101.56.36]) by mx0a-0064b401.pphosted.com (PPS) with ESMTPS id 4fm8ay0q0n-2 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Fri, 24 Jul 2026 13:04:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=FDhzfGaM+2HZ449o0+OQGv1SUzDfAci6UiPIroKZMfb90Dk/f1DdMaJpYysNTtmi3NhS6t/9pfNZX4lIld6IzQdZEDlMpknFfXHvckeAkx8pc0DhZRHq0q54CBPlZSOV7/QeiDxtfpPFIPTofCdP4lSu0HCtNA38EeLqkD0MjiDangu+Z5a8p84QxHlSugGOyijyaD9i1wKcrwC5mqtYv1En5mZvP7PP+83Dx5h8QTRbxYVKR/x/+u9SEKhv3DW013YpEiQdkO9bCvJtkUOA7jcICk6Qxc7PgEL5l7aIKlay8rTR4+G3PhAdibpFF4W2mntE1YsRQfm/ucjkOp6jJQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=9fHc6cgZgRbhKyjY4NXr914NBxt6aPRaq7TIYGoB/pY=; b=AuxRyhMZESyVTa0Vw/M8li5EB0sZ2eQ5yKsOm8H2+HGUoI5USDJD52Wjb0zQNIrQQlq3Y5B5PX1qrueMohNvj5s1YscA0xhrmMEQ5opoKIb7vxGHQKjzChMQvnXHM6fC0bGMqDPiA2x3vmZ4FKbgAQlHIwWJgEYynRnx62hQCJC1jFasuM25TL3fl1g/AUL3JLKlTuUCUAmJ8HV3jpBpVr5jvmleMQdZ2Edv7dzAd9wpu7MJuEUrauRD8kL3EBCvMnjNPQX9eHz2lHx7iQvIcX58Uj8K94dQrCzIhksqN3COHiXVL46ouudPD4wMwHIH9zOviSLL64wVOI2JLlUxgg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=windriver.com; dmarc=pass action=none header.from=windriver.com; dkim=pass header.d=windriver.com; arc=none Received: from IA3PR11MB9256.namprd11.prod.outlook.com (2603:10b6:208:57f::21) by PH8PR11MB6562.namprd11.prod.outlook.com (2603:10b6:510:1c1::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.245.10; Fri, 24 Jul 2026 20:04:38 +0000 Received: from IA3PR11MB9256.namprd11.prod.outlook.com ([fe80::8355:9462:c4fe:5a23]) by IA3PR11MB9256.namprd11.prod.outlook.com ([fe80::8355:9462:c4fe:5a23%4]) with mapi id 15.21.0245.012; Fri, 24 Jul 2026 20:04:38 +0000 From: Sumanth Gavini To: openembedded-core@lists.openembedded.org, alex.kanavin@gmail.com Cc: esparlin@cisco.com, mathieu.dubois-briand@bootlin.com, mattware@cisco.com, peter.marko@siemens.com, randy.macleod@windriver.com, sumanth.gavini@windriver.com Subject: [PATCH v9 1/8] package_rpm.bbclass: Drop external dependency generator to support rpm 6 Date: Fri, 24 Jul 2026 13:04:16 -0700 Message-ID: <20260724200424.954199-2-sumanth.gavini@windriver.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20260724200424.954199-1-sumanth.gavini@windriver.com> References: <20260724200424.954199-1-sumanth.gavini@windriver.com> X-ClientProxiedBy: SJ0PR03CA0003.namprd03.prod.outlook.com (2603:10b6:a03:33a::8) To IA3PR11MB9256.namprd11.prod.outlook.com (2603:10b6:208:57f::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: IA3PR11MB9256:EE_|PH8PR11MB6562:EE_ X-MS-Office365-Filtering-Correlation-Id: 73812b0f-1654-40df-2b51-08dee9beca48 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|23010399003|376014|52116014|38350700014|6133799003|56012099006|10067099003|4143699003|11063799006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: xY7VJYxLOvNf5IMvMW6d06zyZlZZ4mF0xdZG5CRS3Z4DzX5eRBvCO5jkbOoWV1nAgjQoobvq7KoRSQZmjU2GVRAQfsNCWS3Yr+A1MmvYMO0IHjvxXVQCjVrdbtTIOdtf2nZ9zX1DUqOqis3wR85OiGvLzDxKHqkdvB0blaHzzdkbX7wAWj21iNav4NJS6eWdoCXHAaC46pV6+762Za/cPIWIOYtz+nMkJuGYbYpRoFYj7J/9XsekWF8GRRhqY3bPiqX/F+o5uqkrLLWYEw66rkbg0Raoj9OW8wfp1wqVp3X1PpMs35ifNQq+8W3tJODQcXbpEiKULoNh4Wp4+CP6eEUPnnrxFTRCSLUCXMP2qoRs7qtiAPcqnpiNHOSipeddTzi/AwHWB8qOZvb4quFXPKLenMtgK+kDSuHOMM9xDWHqQUQWB99sftw/2YtF555DYaDi74sKSWyt+kDNJSw1ZYheeD2jMcLUKe+gmh0i38OC4Ehld1CnwktbO6CWTiWTAThYsJFa5NaMblVitsrnV7u1t54R2tEFQrjD0hMyK+c/H1rQCay6cqvicejcakWOZRKCVTKd4UpBWsspXeX/6yzWl/npEWKU/lto4hbi8jcmf++UG/eKweRcMiLvJ8KGK4DGRGb5QmklE5DQQ4tOUP72j7/UUsu2qmyjWWl4SHNP1yl/8sKULoQiky7ql92ugxNWYFCvixC8fbD5/+tve5fTYuYKnJ3IsYJcP2R873k= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA3PR11MB9256.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(23010399003)(376014)(52116014)(38350700014)(6133799003)(56012099006)(10067099003)(4143699003)(11063799006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: COybKPUmvUswQe2Y21kekuGGAI1Sib8/rQdVfrrrBx+3/yOdVQb8uzR0nbrMJXO3hpBSiqMz+8z5lB0QdyBgmixbvfz8/9DgwRCPuMsmS8Z7k2MX1tjl75CBP2fGz0XCLprUKEywNWoKhZT5BwIgRWYxqy7BY9GhV4KLNPa0wyaF54Aj357wTj1ObpVNavVemcTBtM8dlkkz8qsZPOlBXmyKVHfmZXafn0xJQ+/mX0PIHSssEpahPoQXml0riTEtWR0njbrBM4LqGQWFBajw9NW0ItUiDk4fCJUCG28jFkJspkmvJEtfVE1OdYqKfTpGyJluXsRqOZdc050lPn55koPX9s1zF62Eo79GAulJkVjSgCBsD1HKuRaHy5fLsQnF9juwfFWPTdt1xABXBwVrrPXLMDXQNEK401So61IV2ZaLrOTHyn4/ooYMYmFQpbNagOQKxW5yDgzDCyBiOv9MjQXmHIu+vRt3VNWTKG39x6TY8ShUUSnc3/rWhLDWylkzvFkfZgorMq8UiMSTqBhEycsmehl9AOIxhEtHryvJ1CiN5fU8gWfF6enHmMp2ZjGIJ84BYhRNzL5LpXiFO3J2NZxQvqzt23yw+a5OWGp+3ZOHhxR+lAimw2w4YBIEd28A8t1mFaX8XmTo3iTU9f5/iTh/ndtkfwMQi2lXxY/D8CnVNogO+otGjN3+8uItzK6hl4Hr48Sea9ESmkyUpyX+OT0r+tEf642wLMv4X9x+ibHN77zXFeGpOUFInwDQeF+gucEtQXzBMM0R21Tzyrcg09jEQbNUHXZlQoocQ68KrLN8Zbs/e6y/XZNrWFrcxWJMAvEj5ZW9mzzwMGq1agwao+QjxJckazKNlRlwFaqsXr5aIDwzuJVRtZm7IZCA2h6zShmI8y66PqiwXrD6lpfoSxsuiBsVsonzAwIx6KHg0R8aHZVhOVj7p4w90bTO7WqiZkkn8x/HEsElGzl0sxjv3z1WdRfUJ1UfYaY6Cilbyc+yejPDW3yyLe90L2vRkpXsO18dT1jJlMOycljhWqF5xpa/qCPfx10kS0uG1jb7fP7h9duWAbM3cIf67s2cNvXbEAu2pSXo8pePAmbzL1U9ma2RuH3Vd28ZvpI30bwxzQDcctLCanvRDIJcznWHcK2PDFTuqVunPtsWto0Z4PWkLu/e5WsWjz6zIXxaH7O7nRZeDi0zTDz5FmAdrpu7d23R06+0WutD1KG2p2xN3PFritDvFSu5OT8tcMq9xKOORJePE1gHfbnBK1wrklKdRHgF4US4QmIZc91qSabyUPe83Ju9FOCpm4BV20xxUfLXRI5ExQNOtDUhzz68e6dRCeKlpbAeQjRriUF8HurrI3D0TABTrUcRljnNM9L0cGI1q6VvHN9btQYg9xI8iy31odzZTC3Xqh0HoUxHm42V4K0i7rhjRUhtz2TYTVaUnKFS0X6qGiuNf4VAZXLaqjZKEa0UHDHJGA/7RvJ6tjRg/57uiwG2EMOi60JXFuaOy/JoyBwYqpaAryCQ5Kt8J7G53NIq/80XL53UZTXBjW2ciomCKbhXAA/ve9HPzVtlFaGR9tJoPY6l82Bjm1D+ZURXEs8Jjc+TLLDW5QkbChnQI8ptHrzJik1jUgZ3LXV7bkN/rDP1KKLmZenXBI1No0Unxv6wH3ry8r/fKCpCcBQS+Fej04ERIegToIPPvogl2Y0R3yvDCWNctl9PyL8UoxGNL8DiSsm8rDIBVUdR8jfmd0Wn1QtpHwpWXzIgQLwgP8jByso= X-Exchange-RoutingPolicyChecked: Qgt/ZN8bz4jycxj4PtYumP+9DEVDP+KmAIYmwL/bHvu0LLpu2sCPZ4z2PPUqXgltUmz5Z9hFLlltp5i2t9HLQ3bjsROgn10rKb1B6Vu0UTbdoydJLSMHJF5vX3cQXxJ+wNAElbrwXqWxqWOM2qHoAYi2afJ7J6Dn44NRiAbLc0jCNc41Ly52SGdXjzel0ldzsVAU7dRsN5B2HjtsS6bsFfEud7W/wANTUkklDVcUDxsluOk6Lpuf1T6lzPf4Nzc0jzGr3fBb0bgB5mKWsTJZAFFFsI/ycD7lNnMowo+a+20HcP0sMy6dqgSN80yGESK/tNWhp/Lpo1ekDRTq8n6WMg== X-OriginatorOrg: windriver.com X-MS-Exchange-CrossTenant-Network-Message-Id: 73812b0f-1654-40df-2b51-08dee9beca48 X-MS-Exchange-CrossTenant-AuthSource: IA3PR11MB9256.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2026 20:04:38.2263 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8ddb2873-a1ad-4a18-ae4e-4644631433be X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: MvhVcNs5OeXX6PpalfJpL86q7vfE69TxwoiQajNP/GPLca7mP8R3yA4OW87ZMZ34l+4LT02Ygy54iyBFdcS/bAeshguQ85DGhXfIbJvrWck= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR11MB6562 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Proofpoint-ORIG-GUID: M9gwmtkalspMj4oK6P7iKOS0lH3jOZlE X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzI0MDE4MCBTYWx0ZWRfX1b60PjeKgKtR FVufCuM7lmWGKFzvlVvo/cgDQuf1J36jYoaUrcXkcmwejtUFijF3gwyeumPPWtvUgbz4p6zXTcD +cKV39y5rAJf3iMqzjj23G2/MzISLxdDqVbTgn1LkQWvPD7xzq89KWZM5lAcj69qadLb3FKokpr IQQ9KsnenBwTTU3oiiY8U5QjhoN+PtTRtvl+suWD7HzVl8GewW1HSH/X5Ps+duoYLyQw7+DvkAC T5l1x8lI2Xn1j9ulykHHjD/rq9kbIX9lsONfmKaboLgml5/qibxIBYC3eX/+YduVexAZ2BOyR1Q u4iVZpN9LhkWw6Y9WoNpfwOnZu/FdbjHNAoStZYzVmrURNGJElIW9N//dy+Ba9QyN8zYWabxxqt CJefNkPLNXRFy3qcTEKxrSZ8TZDpZkddL+8sb7HpV2gm4pU4kFNZq6YxOZmA6ZxLERm8gvC2UZQ gBr6QUQS8zjEnA205gw== X-Authority-Analysis: v=2.4 cv=LOFWhpW9 c=1 sm=1 tr=0 ts=6a63c55a cx=c_pps a=tl4IwOQKiBOeKWF7Rad3dg==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=RAioF0-LDSMA:10 a=VkNPw1HP01LnGYTKEx00:22 a=bi6dqmuHe4P4UrxVR6um:22 a=HK-ge7EqtdluswH-FwHe:22 a=t7CeM3EgAAAA:8 a=gH8vcDOTmKDoYkm8A40A:9 a=FdTzh2GWekK77mhwV6Dw:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzI0MDE4MCBTYWx0ZWRfX2nSO6APosK6T S/LyhpOWgps7h7B292XqPcdv4yYjoNkU2XJ2dKzxEYY1pjqPY8k84rlqafWSjrUK93WAz5/zbc4 I8sfRGecExB0jkNtuUaQf+N8gAonKc51BeRORAr/rp3ZfZ53avlw X-Proofpoint-GUID: rdrjz-f5DHe8ND3Dm-ftm-hQSzApdwCb X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-24_04,2026-07-24_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 bulkscore=0 clxscore=1011 impostorscore=0 adultscore=0 lowpriorityscore=0 priorityscore=1501 suspectscore=0 malwarescore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607240180 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Fri, 24 Jul 2026 20:04:54 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/241944 The rpm 6 doesn't support external dependency generator. Oe-core used it for per file dependency which was saved into pn.requires and pn.provides,but that hasn't been used any more since 2012 (rev: be40f6d0bb80274366af00461112af65687a4de8), and there were no complains or updates in the past 13 years, so just drop it to support rpm 6. Signed-off-by: Robert Yang Signed-off-by: Sumanth Gavini --- meta/classes-global/package_rpm.bbclass | 84 +------------------------ 1 file changed, 3 insertions(+), 81 deletions(-) diff --git a/meta/classes-global/package_rpm.bbclass b/meta/classes-global/package_rpm.bbclass index 9eacd91cbc..f286d3a0e2 100644 --- a/meta/classes-global/package_rpm.bbclass +++ b/meta/classes-global/package_rpm.bbclass @@ -14,10 +14,6 @@ RPMBUILD_COMPMODE ?= "${@'w%dT%d.zstdio' % (int(d.getVar('ZSTD_COMPRESSION_LEVEL PKGWRITEDIRRPM = "${WORKDIR}/deploy-rpms" -# Maintaining the perfile dependencies has significant overhead when writing the -# packages. When set, this value merges them for efficiency. -MERGEPERFILEDEPS = "1" - # Filter dependencies based on a provided function. def filter_deps(var, f): import collections @@ -36,67 +32,6 @@ def filter_nativesdk_deps(srcname, var): var = filter_deps(var, lambda dep: not dep.startswith('/') and dep != 'perl' and not dep.startswith('perl(')) return var -# Construct per file dependencies file -def write_rpm_perfiledata(srcname, d): - import oe.package - workdir = d.getVar('WORKDIR') - packages = d.getVar('PACKAGES') - pkgd = d.getVar('PKGD') - - def dump_filerdeps(varname, outfile, d): - outfile.write("#!/usr/bin/env python3\n\n") - outfile.write("# Dependency table\n") - outfile.write('deps = {\n') - for pkg in packages.split(): - dependsflist_key = 'FILE' + varname + 'FLIST' + ":" + pkg - dependsflist = (d.getVar(dependsflist_key) or "") - for dfile in dependsflist.split(): - key = "FILE" + varname + ":" + dfile + ":" + pkg - deps = filter_nativesdk_deps(srcname, d.getVar(key) or "") - depends_dict = bb.utils.explode_dep_versions(deps) - file = oe.package.file_reverse_translate(dfile) - outfile.write('"' + pkgd + file + '" : "') - for dep in depends_dict: - ver = depends_dict[dep] - if dep and ver: - ver = ver.replace("(", "") - ver = ver.replace(")", "") - outfile.write(dep + " " + ver + " ") - else: - outfile.write(dep + " ") - outfile.write('",\n') - outfile.write('}\n\n') - outfile.write("import sys\n") - outfile.write("while 1:\n") - outfile.write("\tline = sys.stdin.readline().strip()\n") - outfile.write("\tif not line:\n") - outfile.write("\t\tsys.exit(0)\n") - outfile.write("\tif line in deps:\n") - outfile.write("\t\tprint(deps[line] + '\\n')\n") - - # OE-core dependencies a.k.a. RPM requires - outdepends = workdir + "/" + srcname + ".requires" - - dependsfile = open(outdepends, 'w') - - dump_filerdeps('RDEPENDS', dependsfile, d) - - dependsfile.close() - os.chmod(outdepends, 0o755) - - # OE-core / RPM Provides - outprovides = workdir + "/" + srcname + ".provides" - - providesfile = open(outprovides, 'w') - - dump_filerdeps('RPROVIDES', providesfile, d) - - providesfile.close() - os.chmod(outprovides, 0o755) - - return (outdepends, outprovides) - - python write_specfile () { import oe.packagedata import os,pwd,grp,stat @@ -311,7 +246,6 @@ python write_specfile () { spec_files_top = [] spec_files_bottom = [] - perfiledeps = (d.getVar("MERGEPERFILEDEPS") or "0") == "0" extra_pkgdata = (d.getVar("RPM_EXTRA_PKGDATA") or "0") == "1" for pkg in packages.split(): @@ -365,10 +299,9 @@ python write_specfile () { splitrpostrm = localdata.getVar('pkg_postrm') - if not perfiledeps: - # Add in summary of per file dependencies - splitrdepends = splitrdepends + " " + get_perfile('RDEPENDS', pkg, d) - splitrprovides = splitrprovides + " " + get_perfile('RPROVIDES', pkg, d) + # Add in summary of per file dependencies + splitrdepends = splitrdepends + " " + get_perfile('RDEPENDS', pkg, d) + splitrprovides = splitrprovides + " " + get_perfile('RPROVIDES', pkg, d) splitrdepends = filter_nativesdk_deps(srcname, splitrdepends) @@ -630,10 +563,6 @@ python do_package_rpm () { d.setVar('OUTSPECFILE', outspecfile) bb.build.exec_func('write_specfile', d) - perfiledeps = (d.getVar("MERGEPERFILEDEPS") or "0") == "0" - if perfiledeps: - outdepends, outprovides = write_rpm_perfiledata(srcname, d) - # Setup the rpmbuild arguments... rpmbuild = d.getVar('RPMBUILD') rpmbuild_compmode = d.getVar('RPMBUILD_COMPMODE') @@ -658,7 +587,6 @@ python do_package_rpm () { cmd = cmd + " --define '_topdir " + workdir + "' --define '_rpmdir " + pkgwritedir + "'" cmd = cmd + " --define '_builddir " + d.getVar('B') + "'" cmd = cmd + " --define '_build_name_fmt %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm'" - cmd = cmd + " --define '_use_internal_dependency_generator 0'" cmd = cmd + " --define '_binaries_in_noarch_packages_terminate_build 0'" cmd = cmd + " --define '_build_id_links none'" cmd = cmd + " --define '_smp_ncpus_max 4'" @@ -668,12 +596,6 @@ python do_package_rpm () { cmd = cmd + " --define 'use_source_date_epoch_as_buildtime 1'" cmd = cmd + " --define '_buildhost reproducible'" cmd = cmd + " --define '__font_provides %{nil}'" - if perfiledeps: - cmd = cmd + " --define '__find_requires " + outdepends + "'" - cmd = cmd + " --define '__find_provides " + outprovides + "'" - else: - cmd = cmd + " --define '__find_requires %{nil}'" - cmd = cmd + " --define '__find_provides %{nil}'" cmd = cmd + " --define '_unpackaged_files_terminate_build 0'" cmd = cmd + " --define 'debug_package %{nil}'" cmd = cmd + " --define '_tmppath " + workdir + "'" From patchwork Fri Jul 24 20:04:17 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sumanth Gavini X-Patchwork-Id: 93466 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 105CBC53219 for ; Fri, 24 Jul 2026 20:04:54 +0000 (UTC) Received: from mx0a-0064b401.pphosted.com (mx0a-0064b401.pphosted.com [205.220.166.238]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.27435.1784923483259228261 for ; Fri, 24 Jul 2026 13:04:43 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@windriver.com header.s=PPS06212021 header.b=O+cHS94N; spf=permerror, err=parse error for token &{10 18 %{ir}.%{v}.%{d}.spf.has.pphosted.com}: invalid domain name (domain: windriver.com, ip: 205.220.166.238, mailfrom: prvs=1665965d86=sumanth.gavini@windriver.com) Received: from pps.filterd (m0250810.ppops.net [127.0.0.1]) by mx0a-0064b401.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66OGr66Y2220133 for ; Fri, 24 Jul 2026 13:04:43 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=windriver.com; h=cc:content-transfer-encoding:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= PPS06212021; bh=PMSnjZ0Om9lyxUFPVbIQJjkiscHUQYRXHfWjUy1dvfU=; b= O+cHS94N8McnsIi3N4QGTngy4bk2tkGHQESnF+2+2cgmOvVXoroO2zDvk6UJcEHZ GEQuvbt0zEEDvVpptTzqzm7WahFBSWPDoKTOUZh9n7GNLlzX3wlUNc2fq7LBQbQH /BDp36NJEpI5rvxsnlr6fMOYU1LVeI5Tn86lLkyeBX9DWQKLhicDSHXT+dCoMYvp 4/+AcefDhT5SOUX5KJI6eQEOk1UDkt7ftuJG+1cdc55PSlD6eHXnOS7qymx+0U67 5iJjv0fnNN6b26tgCjtNdsf+0IMpwKtE0iL9BDuuJqyW0YjLa0Y+g9TrB3ac28El QXv60yrPk95dM4JxVcpYjg== Received: from bn1pr04cu002.outbound.protection.outlook.com (mail-eastus2azon11010036.outbound.protection.outlook.com [52.101.56.36]) by mx0a-0064b401.pphosted.com (PPS) with ESMTPS id 4fm8ay0q0n-3 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Fri, 24 Jul 2026 13:04:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=SjaLPA1qipITfmVkfe41fcpccgHTuR1xXMyBXZyxkj6eKk7dN/uc+tvi6+/iTpPcqrApTcu8anwXyqUjzA5E8jaTHZ5DKAzeVudtYVBZLnogHJyuWZ3flkDTRWUkhc7fe4Dlc6KzVOA3hJuUn+AZKwnLvm0elyDKbGHQZuGeXf8aqeTqoHBY5zyMeVTuphHQcOHyYo/1bpEqWh63b3b4117cbG3vPht16YDsFd0jjKrJOb8wFNMD9pc3ie2hilRezAVAw8nysYyRx9dwqwWrw0OsNtrBdFQH8oQm6VVe0lzJbX8lrHUsAMpO39xvFhACiLVj3K+SrB5SmP7/dJqrNA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=PMSnjZ0Om9lyxUFPVbIQJjkiscHUQYRXHfWjUy1dvfU=; b=l3Pnuv4wc5kNqd76QBBUq2VAjMELFOimKog90Uqi81zTe9MJVx6qIqk8OTQuFemCY5gy5f7W4cVL+jtP18BFmUZdZrF+Renv3iWOzV/dBdpLggBeEP7waBvPtBRtuynsnvMlqpR3C3FnH1Gtrx7maVs/R/aUxPFHV56mmELx1VczaWcTSALclQv5fpLGg7ArgRxdAHMHH8BdF/E7F1yjvizarWPP66xi4WqRaNF+lRaB9QAxbh6ev5f0LnfniRyQvgSvXWmnN3as22b4vLXGqbPmnR2bgBOHg5YpSfcp1eoeoNDjAtPqzeHXWccGAGZxVs+Ei5WoWcgJEO7Scan1IQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=windriver.com; dmarc=pass action=none header.from=windriver.com; dkim=pass header.d=windriver.com; arc=none Received: from IA3PR11MB9256.namprd11.prod.outlook.com (2603:10b6:208:57f::21) by PH8PR11MB6562.namprd11.prod.outlook.com (2603:10b6:510:1c1::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.245.10; Fri, 24 Jul 2026 20:04:39 +0000 Received: from IA3PR11MB9256.namprd11.prod.outlook.com ([fe80::8355:9462:c4fe:5a23]) by IA3PR11MB9256.namprd11.prod.outlook.com ([fe80::8355:9462:c4fe:5a23%4]) with mapi id 15.21.0245.012; Fri, 24 Jul 2026 20:04:39 +0000 From: Sumanth Gavini To: openembedded-core@lists.openembedded.org, alex.kanavin@gmail.com Cc: esparlin@cisco.com, mathieu.dubois-briand@bootlin.com, mattware@cisco.com, peter.marko@siemens.com, randy.macleod@windriver.com, sumanth.gavini@windriver.com Subject: [PATCH v9 2/8] package_rpm.bbclass: Define _lib and _libdir for rpmbuild Date: Fri, 24 Jul 2026 13:04:17 -0700 Message-ID: <20260724200424.954199-3-sumanth.gavini@windriver.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20260724200424.954199-1-sumanth.gavini@windriver.com> References: <20260724200424.954199-1-sumanth.gavini@windriver.com> X-ClientProxiedBy: SJ0PR03CA0003.namprd03.prod.outlook.com (2603:10b6:a03:33a::8) To IA3PR11MB9256.namprd11.prod.outlook.com (2603:10b6:208:57f::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: IA3PR11MB9256:EE_|PH8PR11MB6562:EE_ X-MS-Office365-Filtering-Correlation-Id: 32101975-6e21-47d9-55bc-08dee9becaf8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|23010399003|376014|52116014|38350700014|56012099006|10067099003|4143699003|11063799006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: zBqh5V84k1bJrDimGUSMQsBcKrUGtt8ggKmqL/fQQaZrbTPToX7pdPo8FxEdnhH06kMR229eJjASGnzm00iIBx20/m0HIGkp9vb2VAOz3Pplqq8ZEUsmVXsytP3psrL9aCyzH6Sf5e5ORb+asRCnzPmOKySOZse9jbd6I0/jpdzjSE1R89FcJIyOb8d4Iy1MZhNCvrVL5DfWyO4uJb7Yz6PVlf63dYR7146pE4sMawy1rIUfUzfdvmQfXAKbnm2SwPh2zyb+9fHE4FGQJgudbW8njPsAYaDNBlj7ZaMfiX2/roQHkM2KW0wmXNgDuwUMNVF91ABiJaMQ4/lxXZOrMcn3b4RqkgrjfMPkRjGXsBxFxn8ZPRGy7gRK4SeMQ1m1AMa4DaOKNQiVJJOvYlwSxpfTB4V2qBm5QnOb9i6BPY0tkwi3RZWtjS3Vy2q6nS1LuIuZam7MOAC1RU/b5l4PV9ePl2ykz7jfPJtDSdbmYAFEWCSn84U15WsF1ceucoCtlqDk5+CD1+Hd2okO2AFbNCCYrkCvYDAG4gwl7rskerXL0jfTY3HbxZ7x5CtJVxi7PAGdJGTMA7gkrL5cBHaPmYAF8QUj/t5gxSsEb7hmpFtwx7EGRrBBxYu3GchP9kOAW8+n/D2KPmOTGCQ0l8xpQcOLoTjVlohBDkIJQaJZKOokM2JZq8HV/GlMQwcnsA32kgqMfH0omnUFEmIvFzRlkDpcJ7MsaKMeRTRYHbYVDTY= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA3PR11MB9256.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(23010399003)(376014)(52116014)(38350700014)(56012099006)(10067099003)(4143699003)(11063799006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: cAwPv1Iv9TptSNEGWsmP8t/zVVtLG/iSxJp6Iu6tVMhZZDCeS9ec2pVCjMPeaxewPBxaD7yimaM8BzWTyZT6zvgL43e2Na32egrzUIxivV8w0kQy2AVcxw0czZgkkAzgyKZm6p2ZgU8y1kiRTx4f374sua2UBnhRgFOj+5dNFujMcJuX22Ym1osHCUq6zhyerGU71lgq07xHOkYCedD2B+hjDKrf7rhbQ2DRh4mva380p2qpCjNK181lDV/DlA0c2FFpLIDXnjxglksxV/yKY1MgjFdnnGWJcxBuYCd9N3lBnLywvq9dbJAjn0NyX10Gjw726+Dbw8zz4dCkc7bnFIahWrnDBrlb9SdwMiMBfIBc8SmDq5G36GonOZ8Mmis9W2v4lWIfN7h4HdLpWCqdQOTm4lJLUGOzrbWN0Dlm7/1fPzsgHw7NgYS3lll8TGCkGcRCGl/6TsiRRW2OzVFhza709EM0A0O928URw+zsd4VLP+8su87YXP27OvAcEB4OTkM5eSXcGJksQrt3T0mE7DWxJa9QtlmyIVAjdZHzIru5cJzJAkivsNQxxdKPvBO2yzwZGdB7X8A8+9+eaAQ6eBigJdDY7CI8yjLHcHRgQhU5KaQcBQuMxN97tORfcIaYFZBJIpmrXiQbOgA9PO8Z4WrSkbRmG3da2UNy8pCFbfB5N/ziXuiRi2T4L/+LrsfTof3H98TxDS4Q+abOPr0NDFqMdogw4vrJ9GWqKoJikGcC7wbDB8fSU6mz95h47lRBRE7y+ij3PlDvUhwE4ulR+uFVl1adpm9t2rCSOx069OSZ40YglQTx48iiE/TvXUqIWoHr1+U2Rsnc70QTbJXulwm4OujKHzDEjhnMUklt8Qi9sA1ZZgDhwpGihVJdKRGo4+lb6bmHqNwhTRWOJxCBMNShfGZihy5FA039uwF/aCqlg4uygaUqUUcdX5BQrToX0o6AG2NGvpeSt6peaJoRTOGCjzeYuV+sitQJ/bYr/hL2wmib38IMrzIe2nSN5CmoTvBMWZi6e4+YQCaJ4A9uporEO7K3LeJxmV659Dm9G3KJlBcoain47QfoqRTBqBNqiE68Va+oS/EJMBDqGtxWkWL4PHVKXINOQSEawZWlHOxbl40Qv2d98/kk2vykdnsvz+sU4t635Zt+AjTpS4qK9OuxMxln4bhqTyhnoUX/Fu1JCHs6IEaJjfZBnG+RYSbpouKtf81L2lfdg0d80QWqGUV+wlQY+GySJnOM+ATU8KL7MamK3sF3dSNb1Q9u2Xn50xryajc+mUoDpUztFsaymsll4jpX3ADiAqVB1yuJpGwQ5tD6anvFNnWEao/UUfSRON+0xQmaWgKm4r/tCOIUPmLC5PQPrgvERCqfFX8frQ97TFCZinKHfxp5kfca20EzUhgF+YwgOvYjlMbYorbXTcrF84jT+Yv45dgTCfEnKYyIePnGFMpDagBtOzfEsQlcgr62t+09dE+C6LnJyGHdZPE98HnsH+xGbvfDKCQNnXWcVKuoGrtaXwGHJHLr/FqQW6t/8mOGKXiAyZUUvnjaAMRGW1AtMXjIuro1b7R9bqm1XDJzjvqVf/qNKb1lHwxyE0coisGaF0VkKNGkadTOItJ7TlFwwjpb+dGMIT78m+h2xc9LmTOfA8eHWgBgBUU0DOWDKsCdfw8+go06uWd7u58KuOYG1KPSkJYObnVcyBbohO7D60BrExJRNFlgX1yHPhi8YKu1Li4kfyk4btZDHphv6y350YYUUkAwOviYLHE= X-Exchange-RoutingPolicyChecked: rGC+WpyDbn06pXz2A07A8Ad/bArKgdZeuC5nOQVzkOARrXXQqbSznvB7UIOjhiLIOkKUMS7fY+VyHXh0FpjNGTfsMTVJvYzK1UMnGx3v+hl+2+/fOUF/A1AV6ZJxsbw4gg+KBTsHQTu7OLdAZE/95562nrbBPxIlYxUDimqzZ3Ti0jfax5YK38Vm5lrYvF/2wxeUAreX1dQ+sDdS8joX+jHyLH0Khgzo2wu+vOjQon5dMVuzAsahsRpJGq0ltgYUSIrk/Q/gzVtuaJ5aLXAwH51UmOZfXuvO5B9FIsNicA+ZskImoDE/xglB0sQ6DSZVR6Gwb5hPqi72+Wh3D7qgzg== X-OriginatorOrg: windriver.com X-MS-Exchange-CrossTenant-Network-Message-Id: 32101975-6e21-47d9-55bc-08dee9becaf8 X-MS-Exchange-CrossTenant-AuthSource: IA3PR11MB9256.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2026 20:04:39.2750 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8ddb2873-a1ad-4a18-ae4e-4644631433be X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: /EyLS2Cy0x/eEfIATTs9i+GgxdHx24Q4aDkBz1UcR09AWyhpNjhdAlnSlcJO5IuZx6ADqfQrqJzNrhfYia/M6/BBnPTncDr3RGZ59nAajCo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR11MB6562 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Proofpoint-ORIG-GUID: sWT7LQNOM59s3QmdohD35EUZBZesBVa1 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzI0MDE4MCBTYWx0ZWRfX6N6kHp8YlSRa 4Y5f1eHUYNB3qZJMtpQrFIbckBhdgBdbEYl8l5hRAhsL1mmHyiKn+fHqlsT2mdHWGEvR5Z9cJex YRQ+JAZGLi/xVKXF6+NgZcBgpmuqH2u5ED8Tmkljd76oUkGgp3FRJn80AhJmpOF9rwAyt9KBC7I 1ik5rkrSyy6SBZvW4lla8znrPEf8aI2l5wQrrbtk0oE75lCzzmJ3SprWhCZxyH1GhxskMFUIZND YIGxWfK9NsVt2Qx9yofkF094svZ2PctJ6lK22SDzDnHZljqfv0tEBbEc2KrBuF+VZZspFCgYC05 IYaII0LReIHhrvmTh5zzcAlHC0gg9eCB5ZhJaR9+o1EG0OomrbzEzFLFPywNvKNVLWmax3fS4CI ixScLMjXJfiNHGnuhiYe5s9ZPRX6zP8HCqtVjvekHr42bIyNQmBktJQ4TgMyyeq5Oi0mzt54tMy UkjBIyha50FhoTnuf5w== X-Authority-Analysis: v=2.4 cv=LOFWhpW9 c=1 sm=1 tr=0 ts=6a63c55a cx=c_pps a=tl4IwOQKiBOeKWF7Rad3dg==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=RAioF0-LDSMA:10 a=VkNPw1HP01LnGYTKEx00:22 a=bi6dqmuHe4P4UrxVR6um:22 a=HK-ge7EqtdluswH-FwHe:22 a=t7CeM3EgAAAA:8 a=uhQZ5Q_QBcnTBNJc4ooA:9 a=FdTzh2GWekK77mhwV6Dw:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzI0MDE4MCBTYWx0ZWRfXw0VC9JhQKSF6 dFKqQJA6Xb5i9/WBUw7kPqBTsRPgx+twBHPS9HGa6BzVxWZC03Rf7trNdreGj44nV7LYF5sRnAV EPPMafDN57DimrFLONpG0NtBjOUVdmQHimmRdgwhw4ca96mmEosj X-Proofpoint-GUID: aqArKMmk0JDZvFI9xFTKYSQiZJwuZAW7 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-24_04,2026-07-24_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 bulkscore=0 clxscore=1011 impostorscore=0 adultscore=0 lowpriorityscore=0 priorityscore=1501 suspectscore=0 malwarescore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607240180 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Fri, 24 Jul 2026 20:04:54 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/241943 The rpmbuild is from rpm-native, the lib and _libdir may be incorrect for target, for example: * rpm 4.20.1: No pkg-config files can be found for qemux86-64 or qemuarm64 * rpm 6.0.2: - qemux86-64: The _lib is lib64, this is incorrect when multilib is not enabled, and _libdir is RECIPE_SYSROOT_NATIVE/usr/lib,this makes the pkg-config files can't be matched. - qemuarm64/qemux86: The _lib is lib64, this is incorrect, but _libdir is correct (/usr/lib), so the pkg-config files can be found, this also looks wild. The rpmbuild is like cross build, define the values when run it can fix the problems for rpm 6.0.2. Signed-off-by: Robert Yang Signed-off-by: Sumanth Gavini --- meta/classes-global/package_rpm.bbclass | 2 ++ 1 file changed, 2 insertions(+) diff --git a/meta/classes-global/package_rpm.bbclass b/meta/classes-global/package_rpm.bbclass index f286d3a0e2..9af4cbdd94 100644 --- a/meta/classes-global/package_rpm.bbclass +++ b/meta/classes-global/package_rpm.bbclass @@ -585,6 +585,8 @@ python do_package_rpm () { cmd = rpmbuild cmd = cmd + " --noclean --nodeps --short-circuit --target " + pkgarch + " --buildroot " + pkgd cmd = cmd + " --define '_topdir " + workdir + "' --define '_rpmdir " + pkgwritedir + "'" + cmd = cmd + " --define '_lib ${BASELIB}'" + cmd = cmd + " --define '_libdir ${libdir}'" cmd = cmd + " --define '_builddir " + d.getVar('B') + "'" cmd = cmd + " --define '_build_name_fmt %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm'" cmd = cmd + " --define '_binaries_in_noarch_packages_terminate_build 0'" From patchwork Fri Jul 24 20:04:18 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sumanth Gavini X-Patchwork-Id: 93468 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9B8C6C5321B for ; Fri, 24 Jul 2026 20:04:54 +0000 (UTC) Received: from mx0a-0064b401.pphosted.com (mx0a-0064b401.pphosted.com [205.220.166.238]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.27436.1784923483800001637 for ; Fri, 24 Jul 2026 13:04:43 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@windriver.com header.s=PPS06212021 header.b=cr6yvoEu; spf=permerror, err=parse error for token &{10 18 %{ir}.%{v}.%{d}.spf.has.pphosted.com}: invalid domain name (domain: windriver.com, ip: 205.220.166.238, mailfrom: prvs=1665965d86=sumanth.gavini@windriver.com) Received: from pps.filterd (m0250810.ppops.net [127.0.0.1]) by mx0a-0064b401.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66OIcLbv2402631 for ; Fri, 24 Jul 2026 13:04:43 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=windriver.com; h=cc:content-transfer-encoding:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= PPS06212021; bh=ChkSXHBN90OlHgTVmPukZEsj2cKzcbqwXqvI6ioPI3s=; b= cr6yvoEuaFH4G/pG1ISKXLIErDCa+SkHV8pWDBCxDahgA8E1JB7YKjzDqldopEes op7TEJx85gkETZGXJ/VG4QBN5hV/t3/180dJfG6Jy45ZyKwCseGEj3dT5nfWDFv9 MBxGrHnbqq3IW79obVaIK1maTyaLCbiuSBLMkPLRdk26blnq9CBWmb25J7MG4Se9 1U/DckQCmSk0n5X+q9W8tj2brQgYb65kgDqr9b3q72/6gAmbQvequFPt/q8AnoGk 7lLhKGyQyoYMmMJ5PVT/ygG0KdCgtJzz3SClr26nJu8QW7G/4KQ/dr6K82rAOzfN p36uB8u1Oijw/nts8vqIpg== Received: from bn1pr04cu002.outbound.protection.outlook.com (mail-eastus2azon11010036.outbound.protection.outlook.com [52.101.56.36]) by mx0a-0064b401.pphosted.com (PPS) with ESMTPS id 4fm8ay0q0n-4 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Fri, 24 Jul 2026 13:04:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=PEsb+94IK7zRlKNUNyIpdOc8RwKFdIUIsqsjlyf+R1IQXepfJ9lPJ9nW8lt2gFKQUIABj0n+LjFp3w1Z5ehsiRg2TaXvI4G8a0UGaKaSDVDMMJKOvtcBy/nsOM8HQHXcT2yV54bsjFvY/7bjL2Shp1HMXBpCeQHuwiehzQYIg4xXSn6Cm0EHUAanQucFr7IT499WdalLnAAXr2uh7H4tnLmSRPxfTdJ2ZGhatwDjuEmoEEiAQ+OJ1Dtg+fdPMqpLhNttrJl5V3MpV2OCYQ4PN0KEDlVzu0Z7pM3U4ffjE0v2RfTDaTijUDH7x6ARqf3sGM2BQRhGQbb3kpwWIulJcA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=ChkSXHBN90OlHgTVmPukZEsj2cKzcbqwXqvI6ioPI3s=; b=ZUj4ekxf+Sw3lgpVXiv875qvfd+/pXjySRzO+BsDeCtcOCEENn7+a+q/m1OXx9jMj3zCmSIe7Wc/6yPoqy5sQhHk1+yZ67wKh7h5lCjZA2KKQH8rUFGV9GJm96zMJur7gZxpPFLhxGByvT3WwGaHyh+UecQ7G7UDFuUhkBodA6Xh3t3LyynhfIDPQvI7jMN84pmMGuLxiLkZFxA8gE5hyY0ea7Mgn2FQQF0Db403q0he9LgNdH+PGLMWynwObahhs25w+mQR6N6v1L0EbdOl6f0YIXwwQe7oS0xKf4K5Aka6DotCARTcBWj31mA2H5kQxZCo3z5EAAmDP7i9yoCEIg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=windriver.com; dmarc=pass action=none header.from=windriver.com; dkim=pass header.d=windriver.com; arc=none Received: from IA3PR11MB9256.namprd11.prod.outlook.com (2603:10b6:208:57f::21) by PH8PR11MB6562.namprd11.prod.outlook.com (2603:10b6:510:1c1::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.245.10; Fri, 24 Jul 2026 20:04:40 +0000 Received: from IA3PR11MB9256.namprd11.prod.outlook.com ([fe80::8355:9462:c4fe:5a23]) by IA3PR11MB9256.namprd11.prod.outlook.com ([fe80::8355:9462:c4fe:5a23%4]) with mapi id 15.21.0245.012; Fri, 24 Jul 2026 20:04:40 +0000 From: Sumanth Gavini To: openembedded-core@lists.openembedded.org, alex.kanavin@gmail.com Cc: esparlin@cisco.com, mathieu.dubois-briand@bootlin.com, mattware@cisco.com, peter.marko@siemens.com, randy.macleod@windriver.com, sumanth.gavini@windriver.com Subject: [PATCH v9 3/8] lib/oe/package.py: Don't add ldconfig_postinst_fragment for glibc or musl Date: Fri, 24 Jul 2026 13:04:18 -0700 Message-ID: <20260724200424.954199-4-sumanth.gavini@windriver.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20260724200424.954199-1-sumanth.gavini@windriver.com> References: <20260724200424.954199-1-sumanth.gavini@windriver.com> X-ClientProxiedBy: SJ0PR03CA0003.namprd03.prod.outlook.com (2603:10b6:a03:33a::8) To IA3PR11MB9256.namprd11.prod.outlook.com (2603:10b6:208:57f::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: IA3PR11MB9256:EE_|PH8PR11MB6562:EE_ X-MS-Office365-Filtering-Correlation-Id: c1d94918-ecd8-43e7-3b21-08dee9becb90 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|23010399003|376014|52116014|38350700014|6133799003|56012099006|10067099003|4143699003|11063799006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: mvWxvrDyMQMYzx/Nh7Q7X+yMEYkcnkfHTwor2zA+Lf8ZBfEmQ3RyjoRhfBLQIu6MIPek0Puk25bAiNzBP4aaINFa5ArD6UCxciEWivc8vJ9J7JihrcHH8MrOJq4gRizO7Lj96IGzUAH5U0nnbWIZVTZVAWnw9IPcmEG2VNSxAqDddbdjEnAJZQ58yd3vmi3VM3hC+9n8Dykxw+fX+GBwMsaYa214GBvVc9+wclacs1lVWnQh9OMjoICwYxhefdsX/ttWBPB3QfsES+4CzcnzzODOa4jqGkX1esBEkIvOR9Ihj+Vu4OEL234OyXRVO2HhEQNk33ZWjeGgktisql7dKKB2X3T0UYGdURHw9OA+F6w2SgnfZon9ZC9+j7lgTz2bCGnq3s99yH6wh7gxg4WER3XH7qiVTm/KmHbj0eZN7MNXOD3ho+6XEEvzHjkz25zZuMb6HP1eKZSO0X8mhLJVoS+t6MAVRJr3MGWJABFI9HeHKG8brmDMSwcbcxWHvuHahdjokhFpbg9mt9hfOtjc0D0AgtXThY9/nbDJoJ7PUl4qUZ1youlDyUprWcHqps6UvTyzD2q/id4dN+hsf80/pEV0SoDdwq2SgjtkqiVghx1Fa3zta6NYbmVcn/LHhIrAe3Nvhxfl/FDkxJUZrGojWF8S07LAoPIceSEbxdydEGrpfaWrPezIBkdtsHoc/Q3akybdrD4URCZvlFwDKc+qAYpPeVDDQiC62A1FAkvBeNM= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA3PR11MB9256.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(23010399003)(376014)(52116014)(38350700014)(6133799003)(56012099006)(10067099003)(4143699003)(11063799006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: VOjqCP9AByQ4cln0rIvtSYbvXmOOXCoGMejWAYmbhmG02v3xmt4clkGIdnmckn2//Q0uO1xREJKJZRZyAXp41wi0KVlRG9koR9VXWX8InPjgVtaFDbfZNgv5R2y4KVsgwLKRCDWpUPI2hG6Tkf73sqmkCrpCATVHdQsahuWPKebqOHnSUhHjG7qsDYcH1WNjk9ZruNZVEUsLhzJzUhyjOuSi8C4SHOs6yDcWRGW0k8dza968QdNcvHlRcpJWf9SPhHPnmpDgbIMVEUpdiQCQsipWWbhdM3ZNWlzh1lYtAObDCFyYMy9G8Wo+l9v0eEPBv8C5ic23asayF0UczzdTwTLHe7Q2HS3j7y0RwYOAe2SGgy7gur5mShKKwZFNcM6xQJliSFyqOeRvZqdca3Su5/V6JqZFJUDYdnRbCJarTz5bnFQ0IlruLPj22sxHHKnYcUlWG7Inm1RMcsboUop+PEBpiIolJ0mDbO9/O0YiYICGtBr/Z8GYtQUqQNpCuSY64lAtuRcOLtVQuRWTKD8GdGEbn6LdAA5fia7YhBya9WZaYtR9+eCfdH+YGeoKBuPLeZKObhAhvAUSwJ3AQazMb6DWp5C9scxGViYvb2YqwQCieKCUN0d8XTABEig5SG/ImUy8iebh3ZxnuCSI7lK30LzrlA4KG0ABG9OWtWGwkpMSbIEJhbclNVe5OG1eNAofvybXRxmJE64rfqsY+ju4nZwct/CpsGzxYDR9NVtFxVZo465W2Kif6ZoZHl5yKYxM3pYZ4zaj8wlxB86pcE5uT6US6VHsNuIQ+clV4X8DtTqkFpUXb2WnaarDxsxmn+7FQJO242ZlHDCXBZziIA5vY7k9G8qJbY7RvAv7IZ7X+nNtcdS5/WVd0x0lol/okj2HSeH34GwvbTFpkRCeMRtTmCwMCW7OhWGOBUiRSdzrXqvdOXhCI+i/K9H3x6N67nbEI2kbosGv7qmsvJFUtDEtljqiwVxuS7//E2LMOfQ+OBs7+OZKIWEi74MoFkm8ieHy4vMOALLTZensT4ZmhP1glZGxXNzEjmfJqOp//3JKu9FoU16BxlFKH9kfeTCm58YVLTF7CNAAZgDz21aBJH2gllJKy5T1Y1QpT80022yUgQ2uDK9Xij79S3ZYpE6ZFIId+pNzZYBMUIHpHZL/5iJOfoDeBaNS9frschYqpoAwp5dvMcDHBQ4K1Q9E8PaLq8JmBQhQvBPL6c5BCezodPJHCi5oytU+PBCtZqbB1wv7WWBiVhCe7KTpQLOWdMyRp5AHwYAaNwzdG3BrqUkEQNSpSU2KWKmbWZL+oMvAq8x3MByf/2pbveAXLIfr8QvIuomQAOrxZby12CFddAlzhpE5P3ffEUvy2wa/b4GomlQ9ikuZycoXJ2a67ScU9tz3joy/WK+5ypkG1a8R3PqA8khrocURMFVuoB+QU3hokLxvO+SoiS/k14aB9ALN7DPUh5hBDQ515C8gOzLGwR6Ewqt7xObVwudR7M5SRz9IThPdKElg/HqcN57IAgOw3C22SvA8kAXQeeI1z/eTRUBZeM4dpCMnrc9uj5xc0BQiXLDxm0H8AFqVzhEdvvlJaTqfOgeZVfhEvcoWLwhoDtYwcPqfMBJ3RYmt7CKhI5UG8nSOIBAukl2vnX9NAYjNK4ZUaWm8sMxRJsbyBL4T+zkXZD8VyyB4i+lUAbfdqzSsCGSlPVYCNgE+pl/WBp3ZWgD5lOAfVD7xAkh8xR5k4u8YAfeK2cy91X0UgqvUPMVbhCRQdf0= X-Exchange-RoutingPolicyChecked: Z7D/FB/t7m4peq7l5qd4SEZDSbkcBq0RJz3iQi04wIsXLECrdhmCCNyfu0+s2zMIfoL2M09f9lugfwR3UvlZ4k99vrPDw5I3/qBoN/zM46LDZtYQCx+0bEaCGOz5qdz85xaRZiq2mxDVFDsIJ9r4VRWBjH0fJzJ1GOWqbJQkP+6XNJ8eSbrTcyabGOO6xEF/MzCFnqGxG2KVXDgVPe7/nkmklNeBv9erT4nx3jTsQ/uumPlRMU75uOxHXyugLAUH4IKx1bYSGqE4IjE1wwxfpwrYfb6+9s7AGLrV+hkfNnsv/JSuPD654rh/eKH4gZFkiqCdTpnesTQfR23YlPueqQ== X-OriginatorOrg: windriver.com X-MS-Exchange-CrossTenant-Network-Message-Id: c1d94918-ecd8-43e7-3b21-08dee9becb90 X-MS-Exchange-CrossTenant-AuthSource: IA3PR11MB9256.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2026 20:04:40.3751 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8ddb2873-a1ad-4a18-ae4e-4644631433be X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 6nPbwO8zNeWWchxPVNTtLihZ7GlI84KHSdFDmzH6P3W54RVCa33tAitwdsfgSuWkF5y9aVEvqMW0S5TjWwSNaWwoWtekaRZbfXBV/SeAEXg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR11MB6562 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Proofpoint-ORIG-GUID: 8PCoFVr6ef7kovJCb2cgM5cS_NI-G4kg X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzI0MDE4MCBTYWx0ZWRfX/lpALMNvKffn hmRNOvmJMGfoA10YtbA27IpBlGtUG+shGTa5Gpm66JHvdUB2TkPa5sN8oROuewP80aDnoUtcT4B MTwLfSifodRNREV8qTYmoaVOtx6Z2lw1scG2vemL5722zn2d4ITDejrFit4g+eiwQcrKaeTsVYS fZOl3QVkBqyDDeyP83t892iQ5+WgO0eB9AuROw9sgkxe/5t7nfgT1rZG5xPfVJfV/9+vqHa859a AxNMsTTHmb66xrkH82xBn9GGkQF9bWw/AuxZwLX+XHQHH6WvvRrcBbz9mZqZO4tQvRX2jF1eTpZ 8xYHcnW/LatVdCTtpubGALF29SvG2gAadd8ZvCosrrXqzBx6+0wTV5r7nkNnEcakeBdlMVbUQhY jBWUne5hnLRbb4JW2pEB0Pp0GAC39r59VRVaObN+fja2cyKd+BeJS3U8OlNaWcMeL1CxZcw772h k6XO7L2qitARgiQu3Qw== X-Authority-Analysis: v=2.4 cv=LOFWhpW9 c=1 sm=1 tr=0 ts=6a63c55b cx=c_pps a=tl4IwOQKiBOeKWF7Rad3dg==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=RAioF0-LDSMA:10 a=VkNPw1HP01LnGYTKEx00:22 a=bi6dqmuHe4P4UrxVR6um:22 a=HK-ge7EqtdluswH-FwHe:22 a=t7CeM3EgAAAA:8 a=YcdC0ctDMGJcGoIPl8kA:9 a=FdTzh2GWekK77mhwV6Dw:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzI0MDE4MCBTYWx0ZWRfX+E3zFUY01faA kes4Kerv0Ki4/ZCLE/v6WTdt9UudeoYTEtTgGOwcolXP/9wOnZapqoTOXPNgM50WYwn1smTFgL6 c44xEaO+beCYyYGQz3y2vgsNmjAASRfxFfHrp9iqrwC1c0zxq3Ba X-Proofpoint-GUID: iSrKcC-ed7_dL-KzxK9kqALvgbQtordK X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-24_04,2026-07-24_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 bulkscore=0 clxscore=1011 impostorscore=0 adultscore=0 lowpriorityscore=0 priorityscore=1501 suspectscore=0 malwarescore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607240180 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Fri, 24 Jul 2026 20:04:54 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/241941 Fixed: $ bitbake core-image-full-cmdline:do_testimage %post(busybox-1.38.0-r0.x86_64_v3): execv(/bin/sh) pid 679 error: failed to exec scriptlet interpreter /bin/sh: No such file or directory It is because busybox and libc6 depends on each other, busybox' elf files depends on libc6, and libc6's postin depends on busybox' /bin/sh, the do_rootfs works well is because dnf-native has set RPM_NO_CHROOT_FOR_SCRIPTS=1, but it would be failed without it. In rpm 4.20.1, it let the installed files' Requires win, so it installed busybox firstly, but in rpm 6.0.1, it let the postin's Requires win since postin would run immediately after the files are installed, this does make sense, so it installed busybox (which provides /bin/sh required by libc6' postin) firstly, then we got the errors. I couldn't find which commit made this change because a lot of files and functions are refactored during 4.20.1 and 6.0.0 (not .1), I also tried bisect, but failed because a lot of do_patch or do_configure/do_compile failures for each build. For libc6's the postin is: #!/bin/sh if [ x"$D" = "x" ]; then if [ -x /sbin/ldconfig ]; then /sbin/ldconfig ; fi fi This doesn't make sense for libc6 since there is no /bin/sh or ldconfig when libc6 is not ready yet, so just not add ldconfig_postinst_fragment for glibc to fix the problem. And also remove the workarounds in oeqa/runtime/cases/dnf.py, they are not needed any more since the loop dependency is fixed. Similar to musl. Signed-off-by: Robert Yang Signed-off-by: Sumanth Gavini --- meta/lib/oe/package.py | 3 ++- meta/recipes-core/glibc/glibc-package.inc | 5 +++++ meta/recipes-core/musl/musl_git.bb | 4 ++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/meta/lib/oe/package.py b/meta/lib/oe/package.py index d047e41a78..8ccd89a190 100644 --- a/meta/lib/oe/package.py +++ b/meta/lib/oe/package.py @@ -1853,7 +1853,8 @@ def process_shlibs(pkgfiles, d): if s[0] not in shlib_provider: shlib_provider[s[0]] = {} shlib_provider[s[0]][s[1]] = (pkg, pkgver) - if needs_ldconfig: + if needs_ldconfig and \ + not bb.utils.to_boolean(d.getVar('SKIP_LDCONFIG_POSTINST_FRAGMENT:%s' % pkg)): bb.debug(1, 'adding ldconfig call to postinst for %s' % pkg) postinst = d.getVar('pkg_postinst:%s' % pkg) if not postinst: diff --git a/meta/recipes-core/glibc/glibc-package.inc b/meta/recipes-core/glibc/glibc-package.inc index 3d721d8f69..bea841b047 100644 --- a/meta/recipes-core/glibc/glibc-package.inc +++ b/meta/recipes-core/glibc/glibc-package.inc @@ -298,6 +298,11 @@ pkg_postinst:nscd () { fi fi } + +# Avoid loop dependencies between /bin/sh and libc.so.6 +SKIP_LDCONFIG_POSTINST_FRAGMENT:${PN} = "1" +do_package[vardeps] += "SKIP_LDCONFIG_POSTINST_FRAGMENT:${PN}" + CONFFILES:nscd = "${sysconfdir}/nscd.conf" SYSTEMD_PACKAGES = "nscd" diff --git a/meta/recipes-core/musl/musl_git.bb b/meta/recipes-core/musl/musl_git.bb index 3aec643c40..057113bf16 100644 --- a/meta/recipes-core/musl/musl_git.bb +++ b/meta/recipes-core/musl/musl_git.bb @@ -80,4 +80,8 @@ LEAD_SONAME = "libc.so" INSANE_SKIP:${PN}-dev = "staticdev" INSANE_SKIP:${PN} = "libdir" +# Avoid loop dependencies between /bin/sh and libc.so +SKIP_LDCONFIG_POSTINST_FRAGMENT:${PN} = "1" +do_package[vardeps] += "SKIP_LDCONFIG_POSTINST_FRAGMENT:${PN}" + UPSTREAM_CHECK_COMMITS = "1" From patchwork Fri Jul 24 20:04:19 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Sumanth Gavini X-Patchwork-Id: 93469 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id A72A2C54EFC for ; Fri, 24 Jul 2026 20:04:54 +0000 (UTC) Received: from mx0a-0064b401.pphosted.com (mx0a-0064b401.pphosted.com [205.220.166.238]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.27390.1784923485135981018 for ; Fri, 24 Jul 2026 13:04:45 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="dkim: body hash did not verify" header.i=@windriver.com header.s=PPS06212021 header.b=O8F70u8z; spf=permerror, err=parse error for token &{10 18 %{ir}.%{v}.%{d}.spf.has.pphosted.com}: invalid domain name (domain: windriver.com, ip: 205.220.166.238, mailfrom: prvs=1665965d86=sumanth.gavini@windriver.com) Received: from pps.filterd (m0250809.ppops.net [127.0.0.1]) by mx0a-0064b401.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66OJjjkG2457569 for ; Fri, 24 Jul 2026 13:04:44 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=windriver.com; h=cc:content-transfer-encoding:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= PPS06212021; bh=4+0dxCybc5ePyEfvH4ko8Y4mCaOMbfKRW4IO5xEUdAE=; b= O8F70u8zyQL++4kdONqSJMWNScMZzUeDNub4kmayMk+OZbcalgpMBo7T2S2UMXow qKpH+6blnypjyFuIScE2KJ67AwaeCAY49X4fgQN0eaLLte/vQhw+quXKrdJFC1eQ tY19+ZgB1fG4IfHSeTjtDvqOBJoHA5D6Znq4tMmPkCCDSGctF5/Lo8YPmK/PFTbY F1dnV2CmthjU/y87p3HeGDdRY+YOEwc1DXDrldFJnwk8sG2/85emMqS3tmMFLbgW ioGnGOqARwH0gbx1mA9GNebD5gooXTQZr5wpatNmyr84SS22sn2z/maKwv7huFRW lZhaxTs/smvRLQWsVmXh5w== Received: from bn1pr04cu002.outbound.protection.outlook.com (mail-eastus2azon11010014.outbound.protection.outlook.com [52.101.56.14]) by mx0a-0064b401.pphosted.com (PPS) with ESMTPS id 4fjt3u5g7p-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Fri, 24 Jul 2026 13:04:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=eOpfTy6CqoA2vZ1nSnkyxm5C66STd3z/+WkmCG+OkCP9De1/dSxgCY0Oz/Bo0HehRgs4Jpc2mj+lFBM0QW6OSAL5Xqs0RI/oL45A90hJqRFttrgu6AeRmAAiI32UqlEzg1QtOVMt00Th7T8B4bfi8Za4QgHtPuxzismVsbZTjTAev8aUVd+H1Fpk20tHH99E4zS25ofQPOXAFnPcYPFYMjJ8SiWt6/zr9a0q1FnHaIzs0YwHOtcvnmP181zlUdv5pGpYnhPkrPJrirUXLyCIpHiKEsaS7eKB/jdaGknT9wdS+zi5PuavvYOF5u4eL2W6OwJdJiYTEuzACO+dtAlahA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=4+0dxCybc5ePyEfvH4ko8Y4mCaOMbfKRW4IO5xEUdAE=; b=aD4ZrIRvDnRF9cZQeQr/vahec/b3VI95liLqKD2ZCRzkKQIPoolYIC/5Xv+4L3Zi4f4jlF+1Db381brZJHKu6Tf3maOxyp0k12FXS4pSWnVEqqBDISwLNNfqLhfpQyyTjsIf4D988Ty3uiOWaVP2rLkXme9y/8McQN+vUmd3uCni+rjuiZfNFZcIUsaaQZ0ssrYoE0nw6DzSgcI8hmYkvgciFfiJocQsVLiIRqkMCZBhV31kZ8AN1ijn4BSGKHLv35Wy/IYIRx2gxSkPKQpdT5JeQQJEXlTi1fT7MpmhqSM4Fr1SHNH0Pgvj5Z116krk13W+1a1HOwAznW0DdLHKzg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=windriver.com; dmarc=pass action=none header.from=windriver.com; dkim=pass header.d=windriver.com; arc=none Received: from IA3PR11MB9256.namprd11.prod.outlook.com (2603:10b6:208:57f::21) by PH8PR11MB6562.namprd11.prod.outlook.com (2603:10b6:510:1c1::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.245.10; Fri, 24 Jul 2026 20:04:41 +0000 Received: from IA3PR11MB9256.namprd11.prod.outlook.com ([fe80::8355:9462:c4fe:5a23]) by IA3PR11MB9256.namprd11.prod.outlook.com ([fe80::8355:9462:c4fe:5a23%4]) with mapi id 15.21.0245.012; Fri, 24 Jul 2026 20:04:41 +0000 From: Sumanth Gavini To: openembedded-core@lists.openembedded.org, alex.kanavin@gmail.com Cc: esparlin@cisco.com, mathieu.dubois-briand@bootlin.com, mattware@cisco.com, peter.marko@siemens.com, randy.macleod@windriver.com, sumanth.gavini@windriver.com Subject: [PATCH v9 4/8] lib/oe/package.py: Filter out /usr/bin/pkg-config file dependency Date: Fri, 24 Jul 2026 13:04:19 -0700 Message-ID: <20260724200424.954199-5-sumanth.gavini@windriver.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20260724200424.954199-1-sumanth.gavini@windriver.com> References: <20260724200424.954199-1-sumanth.gavini@windriver.com> X-ClientProxiedBy: SJ0PR03CA0003.namprd03.prod.outlook.com (2603:10b6:a03:33a::8) To IA3PR11MB9256.namprd11.prod.outlook.com (2603:10b6:208:57f::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: IA3PR11MB9256:EE_|PH8PR11MB6562:EE_ X-MS-Office365-Filtering-Correlation-Id: 0504fb6d-1891-4708-7483-08dee9becc46 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|23010399003|376014|52116014|38350700014|6133799003|56012099006|10067099003|5023799004|4143699003|11063799006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: TgYQOgCcRR0uEwCjkCNkb4UoSKeMtwvjr/uK+XCLpBf8veMs/cUjJ0Zxtp21b4QxS5u/mEve1BP4VdzwZjk+a8zaW5OhrIdgQ59r+Pe1fT6JZ2Gtu+/8EDwP3PdUL3rq15nwLYhIwhyC89FdabeWDwSW5TRU53AFBBkjNId7JTRVsDJ+1nR2a7bbtgGWyCrnwdofJK7nVdqWEwoKRyEwGkyRix/bWLU9CcC+4Fyr60i5LUCdhpNW6m6k0xzbfKUTiOfnW9MERVforqCP6B1sw8lQCJNoCdST2KCBhT33TTKMIo5IPjr02Yq0AN6ReN4aHLx7y72E/m4k4Dw/dzJBhHCWZ7RpPHhIXiwZ1y6p2iPq82E/3Ai5cXeGHLLKI9vF6DzebAPppcCMDACeG9bzSD/fUOpQtESGsqiTj1L2kNRsItH+j/Gx9yjpF5k6k63f6uV2EYjeqaArN+ASXZrYxSgnwgLcMwO2OET4TTV9i+XgaDyqhXhuzNJ7A3SoteDdGKTJPOsxwg9SZqpt4Stf6vWpBGFgwX/vt7iMKnvursvr2n5qIEDooZ3ALl/TRvufFKFzOKbfjBGfTyLPo7BDofAM54SgUWR5HV9khK5g+V4uFmX6+7KFZjTDA/XhMPK9Di4iBYtmizwqE2JdHpSywBa1bJ/QHutpbpPHyRB/t+gQaHgY3GDLQCHwBw/42XTI1RDQwujFUCk0tk0OE9+S06z0pl6EYMjLZDUtmv4grpc= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA3PR11MB9256.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(23010399003)(376014)(52116014)(38350700014)(6133799003)(56012099006)(10067099003)(5023799004)(4143699003)(11063799006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?FrQPum3f8cZsSkbB/MdsgKcB5h61?= =?utf-8?q?AbXb3wKOB40uVwYSDizc9PVnlwwLs6GokctxRR3Alsr7hR2GKrWFtkM8bot/uk0Iq?= =?utf-8?q?Ufh07d+9gfyaXOaFw1jSOO5YCnx1Akj7RSKtvNvluOAD84nIDB0PxZuGBF91QJC13?= =?utf-8?q?NM+9Ecko3bvXZ1UX5kkqg2CNw2QkbJpaEBviGvx26cgx0W5mdeDrahs6U9J+pxLW2?= =?utf-8?q?HOaECS9hNVq5Kx3JrYYKnppgNe4Bg8S4lUH6jifZlbZ6sEa/aQVrHYLum3gtcFftT?= =?utf-8?q?jkRSHxhHJ1joNRzN6F2DOfZFn9cgac//owGWElSUBhvgJeB0KbKI+CaksNxga3O/G?= =?utf-8?q?Jq/NzD3urqXIcQAMw6ssNH4sh7cHV6j8wE9uUfwO9ZDU+M/TR7TEXlQ6oAapZO2DL?= =?utf-8?q?EzsUq7+SC6MVgN5mAcyqFeIgT9+6fpgiL+jHEuxTrTfanMEsMiR1TPAqN823zyVJX?= =?utf-8?q?fu97u5DS7iAOSO8bU+uYXB7OrtxahOcfCVgYQO24mrOGjXnpUgev7b1kyacpXIsPI?= =?utf-8?q?h51o4TG2PphH8ZPl8iErw808xlknAl9oweJ9n2XLMYufyrOO2gq6JTDPHR8jEAQWY?= =?utf-8?q?FhMjpgmlIXCOaKQH4/4CukMHBxzl+AzlKGXHMikauLLjW/WGrkQVwuoJeRDSYFbIH?= =?utf-8?q?Eim9mKWoUkvTy1EPpNC47KkwvJUq9QGjuG9CKQBRTm+VW+SJK/QkdNOtN6Da3sIHO?= =?utf-8?q?gZMxByfXVEIprsUYmrHffFcnd5glADNp97nn17XwL6HCH2orEGFVKgR95JvvBGwOG?= =?utf-8?q?599e+m0TheF220d0IN4BmoRr/ypmfyY1YPXkcmv5jrmAiemIX/PC0FOYkw0ec0862?= =?utf-8?q?m0KoZvTAoeWTgQwHvasjf6VsLJoft/2V8EbSprNjklkeKugYiquCzfLSTaJ+33o5P?= =?utf-8?q?mu5K6ZAf98VeCdUjNxjWQLA+6NaKTb2+DHNUafcrXDddY0lhiVxpzam1kf9WQRwzh?= =?utf-8?q?AMQA6naD1gxdlCSgCsvJTNsNrA7sXzbnN6nUAO+C6QdPQmSl1e8FkAC46vq9RNMGU?= =?utf-8?q?MrC8W8/zGG/g+AR7ys9sAlu5M1aCM3Xg2LJMewL54QNYwPmnj/dR0VqoetzJDnsVD?= =?utf-8?q?V939xcImk4oulCEtpz5srgO5LthjMeijDFeRYyn4uO6rZ6ihWRnzdWgc2iuyyqVde?= =?utf-8?q?jBEwHhszuXtRua22erfP9KxhqRsKLtzHwWgUtt/ogKr4QDbIyczRHheifg/JHeFri?= =?utf-8?q?zhqplq2wv0OMhok+2RkoK6YnLmLOtIu0eeuQ6cehb3HwTGfCaCQKWY0zHx3/g9GZZ?= =?utf-8?q?l1JkTM6CHrkChxlgoHKZGWGso75EMJ79ZX5OgvCjFGZ/GjULFxrOBQ2uzGihel5y/?= =?utf-8?q?HZWcyNnu/7W6zNBJ/T9gvIxWNMyRq7FGiqMjnXvpWPtyLffTLlqINfgyoxurO+mif?= =?utf-8?q?8ECrQ1KUJidzUZzbmwFtsVUmj472+ZvLoMn+19hv36IWg6rPxkX63L6uj52YBUZIF?= =?utf-8?q?C3xzEblab4Ck8d93G3hiYwUWuTdXOINSxvFVZbvUrT7/tynEaU/MUtFsNxG1UQjRm?= =?utf-8?q?4xhtM4Z/icgeIzPHpTP8RVM1iN3E2C0O3YLlt814xssiVTOWBe7ROoBvheFSW4TIq?= =?utf-8?q?klhkzYmmsfsgwy58Byagc5kui+6ih9YZJ027mMTkDsvU7OnAsX7Y7VSqLJZ/Ucqz7?= =?utf-8?q?DWbYl4XZC2pRTGShNEgYwDmd/icjUNgEJ13BrDjLsZ2x73AAZB8cc=3D?= X-Exchange-RoutingPolicyChecked: BoAmEbyO4xKozjZcMEwtW5XPYLMQfIq7R295YV48AI7s3zc4dZNevrA6QZ74xZGb50x0fr37l4IE9ozzUQOJyo6SpgmvGXBw1LBCalWbff7sDNHXF/YRCFM+y44xEXTiE6CVGQCkbVasEjraN2q/ZWPOsNkvwnh1q5u8QFQ7fhBitkRz8fj0ZfPvrpeqU6gU8SG70mg9IkzFHifDd8vkMr3X2TUNkPx0PDRlfMJ9rhfJvtlHgcgl0Lx6YEv+MjmK9Kz4ctfbOZYssGuA/+ShjBOWvx9aHWQcruAa8Vx6g/g1NinjeNW4AKdzsxCNz9XyWWiAyxvXEEjHHfSWwzK8uA== X-OriginatorOrg: windriver.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0504fb6d-1891-4708-7483-08dee9becc46 X-MS-Exchange-CrossTenant-AuthSource: IA3PR11MB9256.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2026 20:04:41.4911 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8ddb2873-a1ad-4a18-ae4e-4644631433be X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: QQEamQfbJkD9L2bOno32641FBOANVbAqNMWqsMJhSBHRjETfGWTNLO2FjCD0+H9vbjc9QXqZ2LiSJJWfeM1Ln335VPZtDWxd6PpPrU/fO0o= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR11MB6562 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzI0MDE4MCBTYWx0ZWRfX098tYe6KYCp8 U7NWmswkcOqf6lcCZUXM1tn8ZCKl1sNgNDEt6p3KngvY5ea8W9t/lkx8/wsesfwTKlAZkn2HyN6 qF5hQ+VrN+rVTJKypKHAsebqLD4ZQGvAUapSWrKZM8vN+O8DOT0cVgIsz88pPkxISTeY6XqkLaU 4LrgWMsktoWge45iyT4przSd7hOHzhWLiCE7a0nndf4HB7sOWo7pm6XfxH0BpPuz5JNYg12DQIK 0QrLFc2AT0KNPEFWg2apBVriAHw7FT3yLLhUFbeZoOi2Nc1fucLTayTNgtOf67hi12CdJJoeGrx UiXwg/2QjKNsw2cjtl4sXZYrsfa9ytxP50UJw2YweinZY00lRez4LzKVKnOARpbNQ6lAmA2M6jn KbplmJVXjUppArGIT/i/S40aGb5dBW4wSuDmrqQB9/NxXG5ZsqvTXMscEPcW2vNNVb6H6FKzjch FOJqIhKVCn9mZLEV6nA== X-Proofpoint-Spam-Info: AW1haW4tMjYwNzI0MDE4MCBTYWx0ZWRfX8D4NJLCpvHce N5KcsvLRLVJOYCKOlCQy5WJOgAv7vJ/LxgKUZpxJ6g2O3UOB5iujp2p7OON8bNRItwdgUyuid2E 9OVkpAY0g+0VRXc8PxdqwsjVQVXYBmLuu6kkFyCrsqVzugjZDTA9 X-Proofpoint-GUID: ghQF21bf6VaufXSxWTpvQI3iqFp5oS-f X-Authority-Analysis: v=2.4 cv=U9yiy+ru c=1 sm=1 tr=0 ts=6a63c55c cx=c_pps a=A0MaZ9OvLBUdx9ibaoeqQQ==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=VkNPw1HP01LnGYTKEx00:22 a=bi6dqmuHe4P4UrxVR6um:22 a=iKiJcTA2PjBS6x5JeXcw:22 a=t7CeM3EgAAAA:8 a=cXaodKgrPycq8dEL5jgA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=FdTzh2GWekK77mhwV6Dw:22 X-Proofpoint-ORIG-GUID: lpVNTDtoSk9_LLjmlkyCA3h4TpnJGfo5 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-24_04,2026-07-24_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1011 malwarescore=0 bulkscore=0 spamscore=0 priorityscore=1501 lowpriorityscore=0 adultscore=0 impostorscore=0 phishscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607240180 X-MIME-Autoconverted: from 8bit to quoted-printable by mx0a-0064b401.pphosted.com id 66OJjjkG2457569 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Fri, 24 Jul 2026 20:04:54 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/241945 RPM's pkgconfig.attr fileattr auto-detects /usr/bin/pkg-config as a Requires dependency for any package that ships .pc files. This causes every -dev package to have a hard runtime dependency on pkg-config. pkg-config is a development/build tool used at compile time to locate libraries and flags via .pc files. It is not required at runtime on the target. Without this filter, do_rootfs and do_populate_sdk fail with errors like: Error: nothing provides /usr/bin/pkg-config needed by python3-dev-3.14.6-r0.x86_64_v3 from oe-repo This is triggered when IMAGE_FEATURES includes "ptest-pkgs" or "dev-pkgs", or when building SDKs, because -dev packages are pulled in and dnf cannot resolve the /usr/bin/pkg-config file dependency. The fix filters this dependency at package generation time in filedeprunner(), consistent with the existing filtering of python() and perl() auto-dependencies in the same function. Note: pkgconfig(foo) symbolic dependencies (e.g., pkgconfig(glib-2.0)) are NOT affected by this filter they continue to work correctly for build-time dependency resolution. Signed-off-by: Sumanth Gavini --- meta/lib/oe/package.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/meta/lib/oe/package.py b/meta/lib/oe/package.py index 8ccd89a190..d210b4a73b 100644 --- a/meta/lib/oe/package.py +++ b/meta/lib/oe/package.py @@ -253,6 +253,20 @@ def filedeprunner(pkg, pkgfiles, rpmdeps, pkgdest): if dep.startswith("python("): continue + # Ignore the file dependency on /usr/bin/pkg-config. RPM's + # pkgconfig.attr fileattr auto-detects this as a Requires for + # any package that ships .pc files. However, pkg-config is a + # development/build tool used at compile time to locate + # libraries and their flags — it is not needed at runtime. + # Without this filter, every -dev package would pull in + # pkg-config as a hard runtime dependency, causing do_rootfs + # and do_populate_sdk failures when pkg-config is not + # explicitly included in IMAGE_INSTALL or TOOLCHAIN_TARGET_TASK. + # This is consistent with how we already filter python() and + # perl() auto-dependencies above. + if dep == '/usr/bin/pkg-config': + continue + # Ignore all perl(VMS::...) and perl(Mac::...) dependencies. These # are typically used conditionally from the Perl code, but are # generated as unconditional dependencies. From patchwork Fri Jul 24 20:04:20 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sumanth Gavini X-Patchwork-Id: 93467 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 04822C531F9 for ; Fri, 24 Jul 2026 20:04:54 +0000 (UTC) Received: from mx0a-0064b401.pphosted.com (mx0a-0064b401.pphosted.com [205.220.166.238]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.27391.1784923486187949111 for ; Fri, 24 Jul 2026 13:04:46 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@windriver.com header.s=PPS06212021 header.b=qUP6UTq3; spf=permerror, err=parse error for token &{10 18 %{ir}.%{v}.%{d}.spf.has.pphosted.com}: invalid domain name (domain: windriver.com, ip: 205.220.166.238, mailfrom: prvs=1665965d86=sumanth.gavini@windriver.com) Received: from pps.filterd (m0250810.ppops.net [127.0.0.1]) by mx0a-0064b401.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66OGr06r2219733 for ; Fri, 24 Jul 2026 13:04:46 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=windriver.com; h=cc:content-transfer-encoding:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= PPS06212021; bh=MfgyRssN+UdYrwV1SraStVNFPJX3DlPW/QUr//Ar+pY=; b= qUP6UTq3vos+XUqpyDiFfackdLIWlZI7QSM3OphWRtTwbcx7twBWja5BLtZnkBxe ODUwsxL5ov3hRSWOCMTJoqgA7SNJiObmi4JusczizKZgiARMaQHSCjy5FwtL8pN+ Y3rKMO+YmUtFmAP6pwismAQPQTGQpADlhMjNh9Lm4w07q+Zu5uxhHyYsZ8d1gJpp t5Gc2SipS/VK0GX92klyKV0M7ni+f3aGWXOE4sOJkcsZTKmdPC1nP4OjBjo3OwYU OcAotJETVz0nYEKpehnRWYAyWwAiwS074SmU/Pxsj3NsT1+UZ+vm3O6VBnbrRN1h oB3VowNDfUkS+EifqkGvyg== Received: from bn1pr04cu002.outbound.protection.outlook.com (mail-eastus2azon11010046.outbound.protection.outlook.com [52.101.56.46]) by mx0a-0064b401.pphosted.com (PPS) with ESMTPS id 4fm8ay0q11-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Fri, 24 Jul 2026 13:04:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=gc7yCGCcsRy5dGkQPbnNSF8QH10QA/zR/2l1MVXaMdi/lzkl40ur13aWD1l59UPfeLeDh9ztU3eW8bXcFGtQVJ+ncx7rt4ps3JNV/RlmYg1bP6iSCT8sFnYM7W1//lVzSY2ZgpnI4OtRPVql8NoTAyVzuQyhIAzvv1A30jXj3RBFnmK50tNd6osz/P5fE/gOfKo2ybZFo/GqT+CfOTxaDBkwwQuKiQCHpeCPxapuHBCRsHx5nfoYq3v4yDNbZ7qi8RYlurykdmuyijWBjonNMNpjIZLHWqgiS7tnpCu/9o8uQ6Xe47f9Xi8uKFBiDEzmqTbgvI5WOc7w6/3aKPoVng== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=MfgyRssN+UdYrwV1SraStVNFPJX3DlPW/QUr//Ar+pY=; b=OxK/6ATS2zh/3eaOck7YtHGEpU3dMKVo+jP9b24Ka1JahMHpsDNAN36JJ4ar6dp9Aj3cRimC5xpfmPxRbrArxvWz+P1cm5hCVPMOV8bptHVKrjMli9zr6pnfF/gsqHWd/1IqWA33j3ambCQZjLc+7YIImH6WOIeG6PLmajhGFmsgiObsHXHhUDFATVb3rL8amO3uV1qUgozIzUrhdYh24ZebCrTGlq2jNe5f6yXPyvOBL0sb18VYqj+zOsY0Wt5ZzG09ogfYlPmiZxzqr9MoXM9gn0YwUDHzCOG+UFlWQPbTDzH1PWBkmYGkaTZDpwuiEwOydWDwed5XgfZz2Iy86Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=windriver.com; dmarc=pass action=none header.from=windriver.com; dkim=pass header.d=windriver.com; arc=none Received: from IA3PR11MB9256.namprd11.prod.outlook.com (2603:10b6:208:57f::21) by PH8PR11MB6562.namprd11.prod.outlook.com (2603:10b6:510:1c1::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.245.10; Fri, 24 Jul 2026 20:04:42 +0000 Received: from IA3PR11MB9256.namprd11.prod.outlook.com ([fe80::8355:9462:c4fe:5a23]) by IA3PR11MB9256.namprd11.prod.outlook.com ([fe80::8355:9462:c4fe:5a23%4]) with mapi id 15.21.0245.012; Fri, 24 Jul 2026 20:04:42 +0000 From: Sumanth Gavini To: openembedded-core@lists.openembedded.org, alex.kanavin@gmail.com Cc: esparlin@cisco.com, mathieu.dubois-briand@bootlin.com, mattware@cisco.com, peter.marko@siemens.com, randy.macleod@windriver.com, sumanth.gavini@windriver.com Subject: [PATCH v9 5/8] lib/oe/package.py: Don't redirect stderr Date: Fri, 24 Jul 2026 13:04:20 -0700 Message-ID: <20260724200424.954199-6-sumanth.gavini@windriver.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20260724200424.954199-1-sumanth.gavini@windriver.com> References: <20260724200424.954199-1-sumanth.gavini@windriver.com> X-ClientProxiedBy: SJ0PR03CA0003.namprd03.prod.outlook.com (2603:10b6:a03:33a::8) To IA3PR11MB9256.namprd11.prod.outlook.com (2603:10b6:208:57f::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: IA3PR11MB9256:EE_|PH8PR11MB6562:EE_ X-MS-Office365-Filtering-Correlation-Id: 2f8c94b8-49fe-47eb-bb80-08dee9beccee X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|23010399003|376014|52116014|38350700014|56012099006|10067099003|4143699003|11063799006|22082099003|18002099003|3023799007; X-Microsoft-Antispam-Message-Info: BxkCRO0Tm12Y7ZdS7gWrR67dGNInbxRn2xY3l/DyacTgzCW9KTIuPdpCTetjb/3bQypqqDcvJogciiUHzNT+y9VfS+vR2h7koM1JJtCQKb4Jy4ZpBPr723nnozyvHGxU2cCNB3V3dzxVGy4vOChOslkt7G8Lo6SppyYY7YSyNnJ11COrXkG3OJYu4mR6DUknfr9tJ0oeXhFmzc5aJTItv//kBGGrFAyhVHzCW+vHZ/2VKGmWWstASfOwmM6P4qLfxtKgZ5leVnj9INbozPF//Av6OY05InG6+YBg4oFe7l6TySjWYmTb95sN2ctqsSwuXhGvJh3K5R2tKkErDkXl7QwXuKxu/F39ln7POCGiz1hyFA+1jFUwKnTGgTYjiglWg9jIRvwtYF6Byzuzv0KMMqLS+TfkmHnJZ5Yn9QzwHJrWYmgUcImr6e9QpYuflDpnlBniBSJnfqxSGPtMDmV6KwktUHRbndWKPqMfZ9PvQvcHheP3A10p+aShvV98U+3ojhHr0TdQMgo5iLjDN2lNU/UdikLxo1kXnv7PWa4a9CCrrrz9349WcmjKrQ5TTQFDhSF+Uc6XwqdKFxGIsfm9JbDnNjAg86B2oRUBg4x2HJWX9tOut6mp2oEOkfFF7K8LNFejGVLtYAaZozPV55J3VqxuMojb5hQy8qEjBjurpSVgGfE3SJcEuZFxzQgXmmlJgAyG4+Wkam9LzqibiWlu5AldfaYOrEFzodVwKWaFBek= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA3PR11MB9256.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(23010399003)(376014)(52116014)(38350700014)(56012099006)(10067099003)(4143699003)(11063799006)(22082099003)(18002099003)(3023799007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: AvymXEDyDQnupiTnEFurcwmYRJvd+UyisTVNQuObS5YhpLQdj2PUS7YBgSCmoMez4YQY56usp9KPzItyT5NdgaqWqJ+O+Os1rLzOUdYluH8o41dneIy3F7o1rWrwrjnz5ibcrxMqFUjTzwH8A1f/VYAkK9ejt6C/H5mXN2RiUa1mrH4gGkMLh4KM/picEjDxZeIXPIqWwKjVoJGmGofSIB/luQI0o3sz2ZFLJd5Lkr8heJLKMmhwr1wvVb82pUb2x7Lqnu4Xn80NPUHCN0/6FqcHbVZ39QRcFrccdDx0/ZXzkbjaKqs3VnfJxif9R5rh7RpoG9wWwGKiFypw+w5CeaQD/w3qiUQn9eWDYcOacT2khCWsnZmRUgmfaipRH+ICfDEuwrTOraACPrg1intrzGHlQ2yxy0k8z6/CgXkvCFtSSifcj8KXXn+llKkYHTQvXOAX9REfTLCsp816AR9vpcuCB03xurbtEr3/vaWb1ABu54ewPbfN+RhHhat3LiVLSPyDyja2dAJO5v4cyq0MIv2IK/OqxY2kom3wifg+W12zQ8V8oSxZgSXd6cr9h5djrOHkByutB+BQR+y0gyoNTt3+6ZSNoXlRBdFaMjOV5SHzPKy6mhAzK6i+jzwIu5M8vpPfcjbAq6h7ygZKCMFLIGAZll0U5UGSyw55VS/F0Y+UR18+Ei22Qv7HyCHZ4VrVS/bUb47W0Pj17E26Vfr/rLuul4LmT8UnFKMKPDDM9TO/cNuZdumIHSGXahWv/+Xwfx4VXptR9Nz9Go8+cC1SMbr+m/VffS6ANPZWuFgFb8HGXKvxVMB6vs2z0Sld2Zpa72vsc/YTRB/l26BKZXY8keHmeQF/hS4VGrIPtDCoBFcbdctPjuZGdjQA14atS/DZiw+Tq+nI1jUD/Jc8fa/mQDo+17id01AoD/MnP49ctBKMMxSp7QTFHY8obL7u8ypdT6hLuEm1IJkbrBkjFW5/ftbIj5kzD9JUTTDxP2P+bhEyfcMNVyGXA7fV6cXG37xlFGU60+XgpGNPdgfUmz1OjeKL5g9cujERiaHz1QjTSYcNJWCTP1gdDv3VPrwP6+kiOvBg4PezLVWGDK2K991mRooioAfPD98Ft2PJ4xpavmJZLhxKe8g9SiK3Astt8LSajQ/ieT4zrDYqkKfDxda3wnYB1t77RiWXgMs+GJQVNjJ2VPslvC5J7IrOznq3D7rbqGbhSRWozU6RV8YPDlR23fRL/TbQt2NTGqN5HKDzBxhHLjiDrnb48AwnYKn37i6aeqOF6eH1F7+RgBVSkpG6sM8agGy53x6zIxYCnKGtpDj/1rYpVgJ5VjWQJEkfia2dI435FiCAgzCk8vtVlZuPFS4lBL7zAugsmOlAPmJzu0Z5HfN7FD+xGDHh6nFeWOaKRNfGzASTUvJHAO2Gs7nXhvPeG4pNCwRhGb8IHUR17x3kdz/q+Jw96tquE7N0jH7mXU0irmcah5anUJcfytDmby2fDDcGAuNTIqeYffwtQMdorzP811D4hwzBbXgf8TPjKw+uNAWD/1nAjMAc2gxcA5LdwxmhX3ictTJxPXqx10613UOk2Lepx+vaIyMp1oQL1Ri8E3yYpyLYI8Fr3b10Ij4YwDkbpED/UxdJNZnT2jtBpENjfld+2D9q5Lh0xS+VFlloqnNki6/striXw0jQhdF7f33HSGJHcG2GJY687PYxPzL+VvpUuDawjasrh/8yHdYMPzRdzKcSoAEaiTbp4vEWEqMg+LmIYlgJo8zqFOw= X-Exchange-RoutingPolicyChecked: nD0ymubvPNBrFI3ZQFUXgV5VAQA2HDTbR2RFGD+kh/fxtwrkndgAqktYTrekNHoahU/0yKoHwk2jmD9OPWoY83AsdN0xxghu6hv5ZtSG42tS7LqizoCjjyCJsMG/QsgpkaK22gjp5Wu9kjMOJ5k5kPfQizS+1/j0QxBgi80YSd1LGIPUHSK9BSvJVE2RzHhRI0Ys8BNax9jELuRCCCDrU99pBzn3h7epxNaBs1aHisT9q3u1j3+mPW13IyXZUvJ/Wp+r8tMmPKlJGgBeygMkWmStwYpA7oan6UvjwvSatlD9ijffb5DfoheFc2T/50tDGUDJIsLoFG0ms0E2eu//Yw== X-OriginatorOrg: windriver.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2f8c94b8-49fe-47eb-bb80-08dee9beccee X-MS-Exchange-CrossTenant-AuthSource: IA3PR11MB9256.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2026 20:04:42.6717 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8ddb2873-a1ad-4a18-ae4e-4644631433be X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 7tYx5Bw4RJ0X1kaAjThcs/V6PC+LBjsHvtCe3V/bIAa+71nBXPSdjUd6+hcpR5KkJG19IOe/WICACbHeOdxfonDCAa1GEVyvmtkYkU2T7E0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR11MB6562 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Proofpoint-ORIG-GUID: gjc4Z6AkqFdRKsjHkqJaPza6Mx0GGXOR X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzI0MDE4MCBTYWx0ZWRfX1wes7Kz+0zkn SD2arjp0wILn1T0m0dw7VWj2ME3jVXAeyZtt2/I495wV9rbmRgpwTg+vZNspK3IYjjLOnhyly1c OBeWFVvPILi3z/onqMFjtOV2fEKtAhyi5gQRqyDaVpCfqhv03413EmirpmSKHMqffbafRQzXZhX HX6zZwsP4+84Y/JONdpzVxKCQfh4h96cz0/Z+I4Y0MP4feMroGdqitCWa9F05CTg49RC+flJ9uX 29OnZ/aL6ANcGirGD9agcbYlYYwE84ElmWSkvQfHkliwpc+pgW0iJv9P3VtbDadRUG8ZX7NgZoL UBsTNZzGvg+TdHfkWc5t/5ywJX5JUDon8YXq6zjgW8Fv4hGwR2Y1KfigHJLS1qNTbBH6WdwVf4P 4CJ4X2c53t7lYB+f2IXixY1eLjRdfpTPpsyETJvWXHoYFlkl5uC0bSl3C7as7n8w+ECScmJU1fs o2m/+JmunpKFiyCIJLw== X-Authority-Analysis: v=2.4 cv=LOFWhpW9 c=1 sm=1 tr=0 ts=6a63c55d cx=c_pps a=miuBlqXM8bFb40OTON37XA==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=RAioF0-LDSMA:10 a=VkNPw1HP01LnGYTKEx00:22 a=bi6dqmuHe4P4UrxVR6um:22 a=HK-ge7EqtdluswH-FwHe:22 a=t7CeM3EgAAAA:8 a=gZyeYKPtWqWysoXHKEgA:9 a=FdTzh2GWekK77mhwV6Dw:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzI0MDE4MCBTYWx0ZWRfX3L3TMoDDPnZE eG9DOacQPqzh2yHpIh48hmLTTkuvLBTJ/ZsTYmYj+xrIROj4oawyp0YdfcvLBjOMwIN46xdfNYq m9QmhEP8IomTUqfFS8wdoO88NQAI0PkAw1N5HEYyTxSwCEUhPIQA X-Proofpoint-GUID: oHcXEz9bhSGSoSgrUAplbv1UspyVB3Tl X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-24_04,2026-07-24_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 bulkscore=0 clxscore=1015 impostorscore=0 adultscore=0 lowpriorityscore=0 priorityscore=1501 suspectscore=0 malwarescore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607240180 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Fri, 24 Jul 2026 20:04:54 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/241946 This can make the debug easier. Signed-off-by: Robert Yang Signed-off-by: Sumanth Gavini --- meta/lib/oe/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta/lib/oe/package.py b/meta/lib/oe/package.py index d210b4a73b..d6617cbac3 100644 --- a/meta/lib/oe/package.py +++ b/meta/lib/oe/package.py @@ -291,7 +291,7 @@ def filedeprunner(pkg, pkgfiles, rpmdeps, pkgdest): return provides, requires - output = subprocess.check_output(shlex.split(rpmdeps) + pkgfiles, stderr=subprocess.STDOUT).decode("utf-8") + output = subprocess.check_output(shlex.split(rpmdeps) + pkgfiles).decode("utf-8") provides, requires = process_deps(output, pkg, pkgdest, provides, requires) return (pkg, provides, requires) From patchwork Fri Jul 24 20:04:21 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sumanth Gavini X-Patchwork-Id: 93464 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id B6950C531FC for ; Fri, 24 Jul 2026 20:04:53 +0000 (UTC) Received: from mx0a-0064b401.pphosted.com (mx0a-0064b401.pphosted.com [205.220.166.238]) by mx.groups.io with SMTP id smtpd.msgproc02-g2.27392.1784923486998240835 for ; Fri, 24 Jul 2026 13:04:47 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@windriver.com header.s=PPS06212021 header.b=VtY89Q9i; spf=permerror, err=parse error for token &{10 18 %{ir}.%{v}.%{d}.spf.has.pphosted.com}: invalid domain name (domain: windriver.com, ip: 205.220.166.238, mailfrom: prvs=1665965d86=sumanth.gavini@windriver.com) Received: from pps.filterd (m0250810.ppops.net [127.0.0.1]) by mx0a-0064b401.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66OGsN6X2222015 for ; Fri, 24 Jul 2026 13:04:46 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=windriver.com; h=cc:content-transfer-encoding:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= PPS06212021; bh=/ud+6qTwHGthzRQFY/Zq22ZvMOftx95yhtndj1FM5ws=; b= VtY89Q9i2csvhq+bsWevTQVP/gkji5WudT/lXLLH+YWbgcF7+uVdVlIBb2GLqoEP 22QlrY0OMkzWvbwEfJthEzObniseOcsUtyBNNHKIUFeUB76XtSMEGp38RikBorCV MzMUJo/VV0ZS6ACJMy++q9eTQ2vJFabI/rb3c9cm74iqe3AI9HCJ+Ae9tAI/Zr74 /OXmujf5b1ztf0vrvkLCyIiMTQBzsouI8lKteAgPBGQJS8ELAYajPyj44IMo5YGn iF+rRZGI9VUKgnV6kNMQphwVEMfLmqzGbbiEl+cq9nWnfFBE9yDGyf0tWBzvzMUf URdvjCldyERnKFGgMig/og== Received: from byapr05cu005.outbound.protection.outlook.com (mail-westusazon11010056.outbound.protection.outlook.com [52.101.85.56]) by mx0a-0064b401.pphosted.com (PPS) with ESMTPS id 4fm8ay0q16-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Fri, 24 Jul 2026 13:04:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=pIhzflqQyfzSNGGs+GcJyRpnb/WP1jzhtqhokhn1zlrb6Lo4V4RcwvJ6wApc++dnvwOUfM8tlD+QUERCKljS4404BouUfO7Zo9vie3fAou/pgZyYLxG0RKtJtfXBX6lc5JuM65Xg0rpLBEtSZ+VHF2mXBhAMzPj2vBmJpAQqsN7I2tThb2IRYTsaIdiCw7ydZH2KahGmG382NQUznIRXorxQyGkwYhaOhsML+kjKHYqj+UiPxE0ELOerrNJ6JEkORHWJ+wOr9p2ewyDYgb+u1Bl0bIIYHd+8WPuiWPJW7pdpdKnHXKiCkCk2yz7oei+BuVeUXkFk/uAzBwC1bhsgOQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=/ud+6qTwHGthzRQFY/Zq22ZvMOftx95yhtndj1FM5ws=; b=uwo5lKDyTUQ9Qt8EmOODGBUrAkCpYEbT6Esu4mPXXimTTmS02P9fUAH/SMCDkFMkUqjRBFdS+SA6lfmNC2htoY9oMDAlZpXZocbFzXKmkkr3YQAKXbQ7CmomVxLQGsZqXcZPOzoTkdogR/LnDZOQFY6kAQCANGvHLWgUmtQK/sKm21TPxkPhSsqF5TykgXvszcQv8kifUYNW7I5h4voWuvrgN/8dlAkw++y1zhJCQgEu1ELxIk21WjLbQEeDZETB5B9tPQtackFxwM51t2H4OZWHiQhxmXaLQVvL3ymnjSn590P9cKOZJyESs0qbZi6aysi6qIOkggl51Ra0GiXedw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=windriver.com; dmarc=pass action=none header.from=windriver.com; dkim=pass header.d=windriver.com; arc=none Received: from IA3PR11MB9256.namprd11.prod.outlook.com (2603:10b6:208:57f::21) by PH8PR11MB6562.namprd11.prod.outlook.com (2603:10b6:510:1c1::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.245.10; Fri, 24 Jul 2026 20:04:43 +0000 Received: from IA3PR11MB9256.namprd11.prod.outlook.com ([fe80::8355:9462:c4fe:5a23]) by IA3PR11MB9256.namprd11.prod.outlook.com ([fe80::8355:9462:c4fe:5a23%4]) with mapi id 15.21.0245.012; Fri, 24 Jul 2026 20:04:43 +0000 From: Sumanth Gavini To: openembedded-core@lists.openembedded.org, alex.kanavin@gmail.com Cc: esparlin@cisco.com, mathieu.dubois-briand@bootlin.com, mattware@cisco.com, peter.marko@siemens.com, randy.macleod@windriver.com, sumanth.gavini@windriver.com Subject: [PATCH v9 6/8] target-sdk-provides-dummy: Add pkg-config to DUMMYPROVIDES Date: Fri, 24 Jul 2026 13:04:21 -0700 Message-ID: <20260724200424.954199-7-sumanth.gavini@windriver.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20260724200424.954199-1-sumanth.gavini@windriver.com> References: <20260724200424.954199-1-sumanth.gavini@windriver.com> X-ClientProxiedBy: SJ0PR03CA0003.namprd03.prod.outlook.com (2603:10b6:a03:33a::8) To IA3PR11MB9256.namprd11.prod.outlook.com (2603:10b6:208:57f::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: IA3PR11MB9256:EE_|PH8PR11MB6562:EE_ X-MS-Office365-Filtering-Correlation-Id: 8bde510b-440c-4189-e976-08dee9becda2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|23010399003|376014|52116014|38350700014|56012099006|10067099003|4143699003|11063799006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: lccPAbd0HDt5KVa0PKMBETYXnqx932FGhHM1D0nKPGyE6fyX765YIUIqiBqA8KxPvk70nvaM8tOWB+Wk09EkyHEsOfNECtHPj7x8h4oXpCYvv7kSJSTbwKEWcxC8sUMeTaLKpbhy3S5hz2lOjIiv2WElgfWkJDcqR4iDoPt5lD/HcgBLh8QL3GsgLNoFPl7wBDQNSZJ6leZDbyyb0r7FLNZFACKpmKhociZ758Vha/kEryofuSK03/mOZmJqf6tABb6RK7TCTBVDWip2rrlwb7AGjV9dmoYwEdd8BOgmw9mlGVNtlJNhH/Pg91ni0/DvJLcvtlL7O7I4x2e/H59qHhRV3Xbr0NEScUZlHP079D7+tZwCqdEfGUv8jrdtnP0YedHYDnWFWn4ntI9G3YPLfzdf0YM7Vm4dr0H1A8mM9PWoW92/DMcr1OZ55PM5auGnW7mu3/r+FJs59qCrhbymcu/1GCMntDJEOycM1xyF6EOeZ+L5SE4Q5nhknWqaMMjD8xxdEF6kLuYyriJavBR9/h/Q04ZeweVycqEH+Sp0cjUWUl9y77kKEgk/L4r7lPEoU2ZyEfjDwHuKPg5EQ/WsAbrv9Zy2/amon5XJiUklUJMNxYdpmUP7RQswTNfgJrr6mDsIX2sR5iLJ/PSKxtrMpDggmM6KGhSzKyOmBv8QsfUXV5IdId01Xju+ZQxfGESBsWKByET79ZkmpE5c+Fy9dwOoeOpTXFgEmyJB+3LlefY= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA3PR11MB9256.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(23010399003)(376014)(52116014)(38350700014)(56012099006)(10067099003)(4143699003)(11063799006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: ZFt8A2sWucz+PKPMk7dZ4c4vJD3BVcMpOuY/zLXl9O2piIfdbY6xzg/HmfHo0NwnuZsi/xfugUy8pL/v0qOpmP1RaDUklvzRmUpIrT5SHSoO2qWXKUcJ5TagtRdx0rS7LJngyZKkyfdGZIFyhq9gzGf208DQCototlJlgGxoA+Go/xdPTwZ8sO/MPWeyWRFU7eLJAzC6G9SeH10I2tvQ6AOi/UPAKIZzrfAFBtHp9LLJaJoKksz2b8ooOOIzmy6LYC5R15r7Ua8NQgrYw/zld//zlGtgOuZm40ty4FoXiVf9n/myDPopid2ra9Xix+LI9sux02xZQ5hln0DM00Jsi/8f+wk91iR1fOyBLUptXGhcOqQSN9zjby01mUk/JLBWByYxQc26mVPV/b8v+zmGX4u2QB8HB3LP44eICobnNIBXoa0hgiZNyuh85pmgzSXxS8Su1d4EQdKCYQUt+ndpxTsr163NPag9SYs1o0NaLLvOcnKiPjsswdlpX9oqtoVkeK9zNXJcxvn0BXfbuKjxm4l4AFJjxkQsv8SZ9/FYuDwwwdHtliayJuE85wSvO9ZsnKE7zEZZ8PlLhkbWkS8cJ74ch0x9lr9FHiVe+OjtYWbh5UgM5yYLep8znBb+Hzx4sHqHCzk7CTr7OuO+H08nFBbs4XXA+3B5BUsA4607oWLzcdaR0rt9Tla6/s7MHl2GJ/EymKpeBqLA6T48xmTSb01CwG7sfENfZsxIa3mF/xZ2CCANrnQVSiPjGVI4pcmlvW+0EsfnbT9Ey4cLua+j5aN5z7wz36SJ9KaJtEofwQHaiLm2otrrOrVzIcCrjvrtsKd9ssa3kjOxSyzl0766igBVApI91UmBMgd/XRpTmxIog6O4gCZDmFWLAn893edsAHTSwsMtjOe4up8EmNEeu3OYdetnJnXQX+kvwcz74T90ySHi69YZko39y7YTU4mgCUe4evoe5w77BuNuATH6oIgNyVbTUrUc9kvE8SDQlbqirzEtomsAQZTX6x+oFXV6s4qDNAYKCI9OQqpFQoBhV9MRQxgygs9ghZ0nlDIJbtbbe/AGN3r2kw0GWvbZT5Va7eSMZNoDrzXCmDKVEJ2EKLHSo/lVV7FT1XkuTRe3KEK2fvzD2p8d64RJ+MuonbIy2LXckSMpuSR7Obi+Xsk+NlrinIhQXz1PLUi/uZ3jJSaU1kJLKF7Zw56SBzUWuMLZINgmykvhM6KCatieLUCauf8nM4izdoyt8vBJWx2kzqr91aOoQUHUa62vscVJFcNrSNPPdlQRNMcasXbVcKzGhY+sq4VmL22ybzBA6/fc/PBVV9xzGg1hZqj4pQiK7PMup8zuyhiVnJgVl1t3VOEgTmnUY0b2Sv3XlIRZhmuOuHtqHQFxtRdnuvhDSbto2icq+Y7h5rtpIIHc4ie2+RCw866j8I53TGlUofjxyDoAVtEvhNqL4dT04eRmFhN/dzyjlw5luT74bNzHE+O4Tx07gI0DkiQYr9WAwwjA6l57gvp1mwHx9yO0NZ/ATqgrSTdtqpN0EAIJMKHFKBUbyfrXK3+/j5bK7m6gUfLi0RAZGMrn7a7UEk3s02MV4r7dIqhbengH3Php9JyL21UPj0CvFlGy0cvnb9h1xF0DH0/24RUhlNHoGxnlPePUn/uCjdmEw4RMGtKhS+lrTCK5ZOzDPK3DBvKCXvD1ZEVNPVl7QE1KSwmK1/rfW0JeFPbxrx2DyUTMYKyICqk/AKdX07HeC+iVTzGLDP+ZKyJp2dVa2e0= X-Exchange-RoutingPolicyChecked: qA6Kcv0ObA3TivTWue7oyTIvBSLijpzSRUC0iimZdWxNTEle5ICgSZrKGwTmVEDQ6txhbjlc8qmAhQujrHvbf6S59fm3mDNrIO5xckCDEz2Hjrw3AasHK3bT9SKf7+wLh3EgjNcb6LYLVTTJIk5Y/eouuHvnDtcvAGVYcSeaCIhJ9F6o6Wj373mXfOhturKzNtcOfBi41EW8b1jK8z/Cao3KbwFtXbPo+E/s0alb+OdAdkPJdHmlw0ugyxYC2KB6bKkItFQzk4JNxDZ5R7wXgfgrCSjriWFvzUc9SElFE2J8fS66r34gcfOjICOHyCzgW6QoiNjncX7zQn/yNVet5A== X-OriginatorOrg: windriver.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8bde510b-440c-4189-e976-08dee9becda2 X-MS-Exchange-CrossTenant-AuthSource: IA3PR11MB9256.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2026 20:04:43.7758 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8ddb2873-a1ad-4a18-ae4e-4644631433be X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: iaF8MWfNTfz19P07mLPGLYznzsnQYZ9bmrtQfJmpXKY6gDdk6auGORrFy1HtEajyGS5JpeULeEHGQXtA3PpqyDCX3NOaSFkPLwHNnUKtf7Q= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR11MB6562 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Proofpoint-ORIG-GUID: xMSOKbvq4FsaCKn7Z6IoXTHsWv3gyPxk X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzI0MDE4MCBTYWx0ZWRfX/mTD1esgte2N x/Q+UMPzFwvUX/FDs498/9Nu0SmfVDeVSzs3Quub1zMODvMShGiXgEhMmqT+Z22Iu3Nges+gVah em5hkcKA9vaaHM62LSnAxixdu4GmRGvI3Yj4q+Qkvny7jplP7nU0wwuR5QUZXotvI9IpduvKWaW jx7GDRs1lDo/47zH94z1vwCJIfrWIlEwtrAo3uhvq14ShGpKTDXQlurAK/5UM0hxhrsBmV7WpFW 5o5e5Xj/lC8HjG6YZ3VISefVk/u+Tl5dKQw1LE2MSUgBEGgcOcuFLKgRw+2dC4nqyXBDlFf8d1o hx/aTftTfhdsDt5Uw3th7SX7ntzgMng8wimGSyiRgPzAuWYSsZyZXwcINS9blRfyxcX2z4cHF9p kfz75V18OYXGK4cNSwJifP6UpJjXJdH5hLomlq2e9BIW+cRp5TZ0vXLI1TMDztFI4DOlZkdU3Af 0WevlCBqv4SLvxd+igw== X-Authority-Analysis: v=2.4 cv=LOFWhpW9 c=1 sm=1 tr=0 ts=6a63c55e cx=c_pps a=CnS1ju6qDdjTg6bRefQovg==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=RAioF0-LDSMA:10 a=VkNPw1HP01LnGYTKEx00:22 a=bi6dqmuHe4P4UrxVR6um:22 a=HK-ge7EqtdluswH-FwHe:22 a=t7CeM3EgAAAA:8 a=lZurfIDJcIjVqGklx3sA:9 a=FdTzh2GWekK77mhwV6Dw:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzI0MDE4MCBTYWx0ZWRfX4cn0dGwo7h6f crQ4V8kJCE76tni6TbuZfYsolvbtj+wxWdgwJb1Q39JyCGzJPvqgbtCtGrwCgyqscbqX4a9Yk4G BVIqoiFdBDj+G2fR0tRl+N3bNXjaWsN6X6iG5qmrCr96tbq8F+EY X-Proofpoint-GUID: QJ_9YpinrwN-slZ5Ru5m9EFzuRWqr7Y1 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-24_04,2026-07-24_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 bulkscore=0 clxscore=1015 impostorscore=0 adultscore=0 lowpriorityscore=0 priorityscore=1501 suspectscore=0 malwarescore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607240180 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Fri, 24 Jul 2026 20:04:53 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/241947 The rpm package requires /usr/bin/pkg-config when it has .pc files. Fixed: 1) target-sdk-provides-dummy.bb: - package acl-dev-2.3.2-r0.core2_64 from oe-repo requires /usr/bin/pkg-config, but none of the providers can be installed 2) nativesdk-sdk-provides-dummy.bb: - package nativesdk-wayland-dev-1.24.0-r0.x86_64_nativesdk from oe-repo requires /usr/bin/pkg-config, but none of the providers can be installed Signed-off-by: Robert Yang Signed-off-by: Sumanth Gavini --- meta/recipes-core/meta/nativesdk-sdk-provides-dummy.bb | 1 + meta/recipes-core/meta/target-sdk-provides-dummy.bb | 1 + 2 files changed, 2 insertions(+) diff --git a/meta/recipes-core/meta/nativesdk-sdk-provides-dummy.bb b/meta/recipes-core/meta/nativesdk-sdk-provides-dummy.bb index 37dad54409..6075770bf0 100644 --- a/meta/recipes-core/meta/nativesdk-sdk-provides-dummy.bb +++ b/meta/recipes-core/meta/nativesdk-sdk-provides-dummy.bb @@ -11,6 +11,7 @@ DUMMYPROVIDES = "\ /bin/sh \ /bin/bash \ /usr/bin/env \ + /usr/bin/pkg-config \ libGL.so()(64bit) \ libGL.so \ " diff --git a/meta/recipes-core/meta/target-sdk-provides-dummy.bb b/meta/recipes-core/meta/target-sdk-provides-dummy.bb index 65b87fd97d..ca155d0705 100644 --- a/meta/recipes-core/meta/target-sdk-provides-dummy.bb +++ b/meta/recipes-core/meta/target-sdk-provides-dummy.bb @@ -54,6 +54,7 @@ DUMMYPROVIDES = "\ /bin/bash \ /usr/bin/env \ /usr/bin/perl \ + /usr/bin/pkg-config \ libperl.so.5 \ libperl.so.5()(64bit) \ " From patchwork Fri Jul 24 20:04:22 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sumanth Gavini X-Patchwork-Id: 93465 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8FC0EC531C9 for ; Fri, 24 Jul 2026 20:04:53 +0000 (UTC) Received: from mx0a-0064b401.pphosted.com (mx0a-0064b401.pphosted.com [205.220.166.238]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.27441.1784923488299704513 for ; Fri, 24 Jul 2026 13:04:48 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@windriver.com header.s=PPS06212021 header.b=Fdpu/4MC; spf=permerror, err=parse error for token &{10 18 %{ir}.%{v}.%{d}.spf.has.pphosted.com}: invalid domain name (domain: windriver.com, ip: 205.220.166.238, mailfrom: prvs=1665965d86=sumanth.gavini@windriver.com) Received: from pps.filterd (m0250810.ppops.net [127.0.0.1]) by mx0a-0064b401.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66OGrVnm2220630 for ; Fri, 24 Jul 2026 13:04:48 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=windriver.com; h=cc:content-transfer-encoding:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= PPS06212021; bh=XddR0/jmFczF+a/KF7fzzJ59dUhFigBtOkt7u8ptAlw=; b= Fdpu/4MCEyLb6fvEAX2Ql1kng3+1GXXpOs5XELkMkvGadDm5KKlOYzufbfbWCE19 C4PQ2zn9L72DS7GT1iK8quFUReXL72TwcMTW/eRuCIBhZ9sEHh2eokpXVkRW4wjh 8xU4zIdfaDp9mTFom0cIclFcakKh6g95W6p3CIhw5cD1x3UpIc3bkGZEK/78yUva MGVtwYXTXuo1uU7DvbC3iW9dZzxiz5IWetxhzzlsdonUiGCQ+ODGblXoTzMzrWYP 4+yW74NQZ0ve+WLz+eZs1fG3LKRcUXjzidNGifTvZX6ZaWyHkwLIrIzZa3crsEQK XoMwRywSZw1rihgN6Bszgg== Received: from byapr05cu005.outbound.protection.outlook.com (mail-westusazon11010053.outbound.protection.outlook.com [52.101.85.53]) by mx0a-0064b401.pphosted.com (PPS) with ESMTPS id 4fm8ay0q1d-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Fri, 24 Jul 2026 13:04:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=FGYrbHPD6ixUwv1s4sT5WWuLDA5A1MY4S0BJVbuTQqa4FL99y15K4Y6K2x7qI/JaI+6t7I8KTlcXBcFKRx2iQUmDsIB9lR1IuIjOu9AggzEgvOa7HLKTpCaNuWnDXg0i7rmyKmqdA7f+PDFmMM0DxEzbNGvWpnnJo+p08qWjkzgcmnpDqxsCF6rieZQSdePPkpbeqZ3VtS/pybEGWeGKqhmtq0tO6d59tkZWtnIXEAM9g2lMEpKg9BAbXYuB25ZNSFDDCsS+A9wUqy3gxyjmeJbe/PeXleiTeqr6ORfGfESI+nOJp8K8gTr6UU54qu+lRKEo9w/QXPlk37zAyGtnKg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=XddR0/jmFczF+a/KF7fzzJ59dUhFigBtOkt7u8ptAlw=; b=CL72miMq+AZMtEnX08s9wUZos+XLPzznqxemZLbrQrHwJX4yrQr2Ss6sE1ZKJLHnVhXtEDCpDmkLi5Qnrq3eZ0SEZ7X7DWDgdoQmhEdgNkSINnyQBjftQFz/yzpdEr74Q5vH2klNt/NtvPsJMPRw05hfkX2XD2DMaJyFjbRHtvjIz+ALXyWRsnyaeNTVaNhIDoBU3Hhk3SfF3kWOKMw4CikXQg4HDAji5R1XQNX/ceuXU5i1Y7K8GQxDpJVTX4jQMhJ/lTkJb5w1XpE+zzBCbIyNnGpzQ7ctgzbgidcW9wFP0THIY8TEJu5Mh16CIlIygYBnQ9TqRi9A+wCCIgMcUQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=windriver.com; dmarc=pass action=none header.from=windriver.com; dkim=pass header.d=windriver.com; arc=none Received: from IA3PR11MB9256.namprd11.prod.outlook.com (2603:10b6:208:57f::21) by PH8PR11MB6562.namprd11.prod.outlook.com (2603:10b6:510:1c1::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.245.10; Fri, 24 Jul 2026 20:04:45 +0000 Received: from IA3PR11MB9256.namprd11.prod.outlook.com ([fe80::8355:9462:c4fe:5a23]) by IA3PR11MB9256.namprd11.prod.outlook.com ([fe80::8355:9462:c4fe:5a23%4]) with mapi id 15.21.0245.012; Fri, 24 Jul 2026 20:04:45 +0000 From: Sumanth Gavini To: openembedded-core@lists.openembedded.org, alex.kanavin@gmail.com Cc: esparlin@cisco.com, mathieu.dubois-briand@bootlin.com, mattware@cisco.com, peter.marko@siemens.com, randy.macleod@windriver.com, sumanth.gavini@windriver.com Subject: [PATCH v9 7/8] rpm: 4.20.1 -> 6.0.2 Date: Fri, 24 Jul 2026 13:04:22 -0700 Message-ID: <20260724200424.954199-8-sumanth.gavini@windriver.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20260724200424.954199-1-sumanth.gavini@windriver.com> References: <20260724200424.954199-1-sumanth.gavini@windriver.com> X-ClientProxiedBy: SJ0PR03CA0003.namprd03.prod.outlook.com (2603:10b6:a03:33a::8) To IA3PR11MB9256.namprd11.prod.outlook.com (2603:10b6:208:57f::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: IA3PR11MB9256:EE_|PH8PR11MB6562:EE_ X-MS-Office365-Filtering-Correlation-Id: 9ca6f556-2814-49e1-c40d-08dee9bece4f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|23010399003|376014|52116014|13003099007|38350700014|6133799003|56012099006|10067099003|5023799004|4143699003|11063799006|22082099003|18002099003|3023799007; X-Microsoft-Antispam-Message-Info: wPR73cxWo6uj5ko9drUXoM1Yk0ICg3BIFSJvkoBGSzbWKHfQXybxx2xYmi/300YYTImwgx7CttL25Oh4UbQlrd6LY+xYvig9qyScf9GA30uND2RdVEka06REy41b4lP0I7+ZH+EA5zAvCjRumyLJ3m/FgtwjvuK/EQEyFCd7gtwdhS4xxaz6dHYUoiLoTXYy6lVCT3Q3eSJTZyMuh242Jj1P+U8GtU4gvHIK5jliODaUMDGHS8zWhf/iwqxuv3EybVJzhNJ8tySeKSLYxjZGwq2aHsP9UhwrlABc02CDVOHP9KBYGA4rFC4ky52qrTtgI5gcWCswDpvfUVGQUhbr9dF23VVLQGjTMSMOlNTqcM+5h+vr/LSbBPk3EP8FYrg33ZBR6kN/AQ4+DRU7F8NdaKt0U9VWprrCc/1XPFCey5d5+qkIlp4TInvhhWTN0GnIaJNNX+FrMFoZs7kj25dm1957vdDASehW87MWAOe6rjHzjeeHqFFzYze6lxYt48jbgIz/sQBgrGSfwtfx45mySR1EvoENgTGspbbipvXbKN2ZAmxt3Kdz2b919judHNs/9+z0hY5BfZNC02TyOY9bevohnirJOp1UMy9fTT/tmsATzU5HB1/qlHDv8OOCbAJJYdgUoGFGNxscIq/2a7rsmNBE2LcZ95/M5UwfKPsGmT8= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA3PR11MB9256.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(23010399003)(376014)(52116014)(13003099007)(38350700014)(6133799003)(56012099006)(10067099003)(5023799004)(4143699003)(11063799006)(22082099003)(18002099003)(3023799007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: suJvcUlFjpTd30Im/0chOmB1ltwipOL2/QBVy2vR8JKJeFMMVW1+Ct8Zon9oIZBQGW5/gUnF8hi0S9q+Tv1eCcp160h3xqfjA49fB3UO589RpJhnV27wMY5aCfM8Y9jh4pU/U67Dw1Isy7TcXDwgjSx1is3FUJb33CZaFs9YEK/6ts9LSXjv/i1vQycFz9dXgnzj7WqaDc6M8Nz+N7zR7uixMJ8pheUZhj1yVNes9xAUF4b1d3hKvOrKUVgdwAxSBS7yaOuFVg1wden0jPnpylStc9ruzt1Fqo6lUTHDifv1WATd3dIVv3nK1yrhOEgE7ARrtBmt0wNokepCiVRCYPn5zig1JQ9L9AZWDMVWkJYinNj1WpCBStse5FWxZEpJSybtcRZspya3U/RrqokLWmXmCrAawkSWbIY/8BIsCs8DGWtp7I+4KdbmV1OiR+mf7WwN0ccGATeRolMzFx9bXWbyOhkTkQG+u8GI+WicybKet7XcgVlFJysOGNNWffB9/AQv9ecsOSwNEdqpZWGMmNGsYBQZb8IQipxKmO2k08sswukCBiWF8/Wyyn5UaWuSOY4KCWOTMEBT26TuWfOfzPMG0g38vNL/32EoP0ajM/2xBkeGtu65oXM6eY0L28818Cn5gEzJT85CRUgfzinO6kekpa5noMKW88BVy01dgT4qFw7JGaeS5l8kduwZKwNa6i4eKYUREMiEK4MWkGgnA8FlMZVLvydjVncd0CVvjLfyoeLWkHqeLctqgDRs33yY/eFl8XxAP5Dz4rdkRLjhcVoThyGBvRiK9jTn386molI3eWqqpdmnCD6r9zLWnFDbqHUW1Mp6gT56fES+7OaZDyP1WjdZQfTM3e4HshvgJPMTdMjWvFta97f3Gr+P+HFNUWrZySyYTm4RTUmZMAysbZUrg92ESjamH5tCHvX1a4+WpvPYV2W3IR8B5Vth3RcqjXuCEbffyjknI+WF5rCmy71BsnjhydPbMLlK3wqAp97otfFV3U8MptJFcX/PUPq6ALaDAxEXW6iR9uPsTF8qFrrthysOQzQV8tHcRnnM20DJdpTYzItHzuSNLyk2iS6lQy+dNLC+xqQwrjoAAYGbSRwD9g4GRLO7/Iq3fwPtvpMmbF1L1D8r8fAYnnRpLchBFpei5JOJIv4ubYPvwbFmlWDDr2DB0VHjMtOZ/8a5c5GVoiH805cqimPAQSJge9lBDllMyH8gcbSouXwmDOpDhETyRbsJ4SUXzBWHTntxKdxSFtaDAH+J2DgeNJQaybnzG9JucXUDQdS1pqPI0xoQCqYJ7Z3g1IIL1dTOCJ2ORWkq+Ox311YYFaoPsBOqoe8OWqKS/DeaGhxWvKGbFK3ACuLEY8/k8AghNW6aUITJyZTIHVB5f7JHjqevG6EEugPxyCy8APRwsFy26r1NcSFDsy5hKiJuPZcgTehUJtAvixHpgN+0RaFZ55udSAQadThWMJqClYM80DJXEDAbRAmIKC11sDnwQfUamzz2N174o/kCnjyIdPuUDzLXlSLuH1AjxK+scu2UJcvdqQN42ul0jbk3u5CC8oMrHb670FM9KSzUPvH0PEmefOlqXSR80LRDb4e4CeJOP3RKM6Qlg1jNcVLhDjYXQD0voE35F6RkNCcIRVAu9f746KF9GSDYWQs8j7mmQYmXjsRtLZiA97GN1DCfWNyi/kShsE8EYSUwaMM7Mvlk5wxM/0MlCutlbgTnoz+mwXGSmpCp4Iv1AX6xTHdSD3FMvgYr9msvCoX/QD0= X-Exchange-RoutingPolicyChecked: ZZwtD347qqP/AsseVtRCRRfNeIdcNu5sD0DbZkjhEvp5NheVE9wgaVPYzvudzUQyRxyQfv4PkiAKsCYvSW7RW4gRsmTOQda9OWP56qXFrXdcY9/3owCKMW3CzdnTt47ownazGUBgsk3pze/QYKFZ33/NFL1KG6fMkvMiEZjUS9xgd6INgB8lkWqAf6/DxbqBQRnDDAOTEhM5nAYetfvudLP40D4QHIod+6XWxdZ6kAhjG3226Dnqj/Lr9uuCyAE9SXuJSLvfrU6k3MHGnJcuEaxeM8ONZiSRNAB34E5FVgg4KBy4VH2e1VRyyvBWjtjt2Qhmkc/RPRy3vCCXttDdSQ== X-OriginatorOrg: windriver.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9ca6f556-2814-49e1-c40d-08dee9bece4f X-MS-Exchange-CrossTenant-AuthSource: IA3PR11MB9256.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2026 20:04:44.9573 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8ddb2873-a1ad-4a18-ae4e-4644631433be X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: N9E0dCqdnaEYmwpMeGf0rHUKH7Dz+zgPlhthYJHFQhS0BDyf4wKYmj+545/2c68xYh9qSrA5wNuUH3hNtZ0hRPvjyqdPKbVPRoPcWZRTb4o= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR11MB6562 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Proofpoint-ORIG-GUID: rRY-RfrmpZqgKyuXKy6aWwNblUp9OfKR X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzI0MDE4MCBTYWx0ZWRfX5rsnORWa9Q0s 3LiHOZ+RBDnb9zy4NvS8hcoTSv2RFdz5egCNx0EBawWiW3o4Q/wIlFQqH3dLFhglbJw3JU/+cf9 i1+wFtd23ARaT3/b5xGyAVr/Jk1o6BE4E7W5a0LSjrYaDVJpeyWKZZryzbexwwUyB/qf4PDIPH+ NDXkt/r6GATjuflGUz/giWMO8p1DmkC0GpHQHAM3SGlrT+OHA7N7zriB8qD39RQbtWc4O6nQTsh IQLENz8R1Z45eq3kp8oSvFRWP/rq3KXk2dZzyOv1h/V790FhcC31qk0snxxiWcVSWyGgOvPLzPW iD66PNLv6XdUUsUqxZdl4VSPBKhZKq1m1dEsdZzo3dymWI4gMwQ593FWSDO1pJf87ehs9VveRMi kgTdjlxuLG2EGoSxgEEoJCFMyIPxoFq6j78s9rNKwrW2REpUU51x0qcuBdSRB41EFfHVlQJHFr6 BDRlPKbUO7TNetmkJrw== X-Authority-Analysis: v=2.4 cv=LOFWhpW9 c=1 sm=1 tr=0 ts=6a63c55f cx=c_pps a=m6tRWrYHdetyOVyhMCHtWA==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=RAioF0-LDSMA:10 a=VkNPw1HP01LnGYTKEx00:22 a=bi6dqmuHe4P4UrxVR6um:22 a=HK-ge7EqtdluswH-FwHe:22 a=NEAV23lmAAAA:8 a=Q4-j1AaZAAAA:8 a=GMGn13PZAAAA:8 a=t7CeM3EgAAAA:8 a=pGLkceISAAAA:8 a=Ia9td_k3mc_TV5fArrgA:9 a=2yX8oE26ukr_L8MB:21 a=O8hF6Hzn-FEA:10 a=9H3Qd4_ONW2Ztcrla5EB:22 a=jIF0orF5dxDFSsn8Ms5I:22 a=FdTzh2GWekK77mhwV6Dw:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzI0MDE4MCBTYWx0ZWRfX0ry9fVPt3gTk 7wUwNHQnZ0rK942OMVXGt1gLzaV9aEmsKn4yx1WLwj9XkrAtaWQDfuuK/vvRRPudMk09qHaPa2e SxyySL2zz3nzyFLxNirwWAnnI+iIoqGud6K8XPELCeIrKLLC8p+x X-Proofpoint-GUID: cPHb5GWZ-QZQcXH-9RYhAVvyBFso-u3G X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-24_04,2026-07-24_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 bulkscore=0 clxscore=1011 impostorscore=0 adultscore=0 lowpriorityscore=0 priorityscore=1501 suspectscore=0 malwarescore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607240180 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Fri, 24 Jul 2026 20:04:53 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/241948 * Add a tag to SRC_URI so that there will be errors when only change the filename during upgrade it, as suggested by Alexander. * Rebase the following patch: - 0001-Add-a-color-setting-for-mips64_n32-binaries.patch - 0001-Do-not-add-an-unsatisfiable-dependency-when-building.patch - 0001-Do-not-read-config-files-from-HOME.patch - 0001-Do-not-reset-the-PATH-environment-variable-before-ru.patch - 0001-When-cross-installing-execute-package-scriptlets-wit.patch - 0001-build-pack.c-do-not-insert-payloadflags-into-.rpm-me.patch - 0001-lib-transaction.c-fix-file-conflicts-for-MIPS64-N32.patch - 0002-Add-support-for-prefixing-etc-from-RPM_ETCCONFIGDIR-.patch - 0002-rpmio-rpmglob.c-avoid-using-GLOB_BRACE-if-undefined-.patch - 0016-rpmscript.c-change-logging-level-around-scriptlets-t.patch * Updated 0001-Do-not-hardcode-lib-rpm-as-the-installation-path-for.patch Remove the changes for macros.in since it doesn't work for rpmbuild, rpmbuild is like cross build, will define the values in package_rpm.bbclass. * Remove 0001-CMakeLists.txt-set-libdir-to-CMAKE_INSTALL_FULL_LIBD.patch, there are no such warnings in rpm 6.0.2. * Remove backported patch 0001-CMakeLists.txt-Fix-checking-for-CFLAGS.patch * Add the following patches: - 0001-tools-elfdeps.cc-Remove-format-module.patch There is no format until gcc 13.1, so remove the format module to make it work on hosts such as Ubuntu 22.04. - 0001-macros.in-Set-_pkgverify_level-to-digest-as-RCPM-4.2.patch Fixed: GPG check FAILED * Fix filter /usr/bin/pkg-config file dependency pkg-config is a build-time tool, not a runtime dependency. Filter the /usr/bin/pkg-config file dependency that RPM pkgconfig.attr auto-detects for packages with .pc files, preventing unnecessary hard dependencies in -dev packages. * Add scdoc-native to DEPENDS to fix do_configure error for both native and target: Could not find SCDOC using the following names: scdoc Note, both target and native need scdoc-native, it is used for generating the manual, the man pages in *man/* are scdoc sources * Add /etc/rpm to nativesdk-rpm to fix: ERROR: nativesdk-rpm-1_6.0.1-r0 do_package: QA Issue: nativesdk-rpm: Files/directories were installed but not shipped in any package: /etc /etc/rpm * Add /etc/rpm to nativesdk-rpm to fix: * Fix build with systemd, the rpm's sysuser creation doesn't work with cross build, and we don't need rpm to create the users since we have useradd.bbclass. The fix is: cmd = cmd + " --define '__sysusers_path %{nil}'" The error is: /var/tmp/rpm-tmp.U4iaJX: line 114: tr: command not found * Make rpmbuild can find the pkgconfig (.pc) files in /usr/share/pkgconfig: cmd = cmd + " --define '_datadir ${datadir}'" The error is: - nothing provides pkgconfig(shared-mime-info) needed by libgdk-pixbuf-2.0-dev-2.44.5-r0.x86_6 Signed-off-by: Sumanth Gavini --- meta/classes-global/package_rpm.bbclass | 4 ++ ...olor-setting-for-mips64_n32-binaries.patch | 22 ++++---- ...akeLists.txt-Fix-checking-for-CFLAGS.patch | 46 ----------------- ...et-libdir-to-CMAKE_INSTALL_FULL_LIBD.patch | 50 ------------------- ...satisfiable-dependency-when-building.patch | 18 ++++--- ...lib-rpm-as-the-installation-path-for.patch | 24 +++------ ...1-Do-not-read-config-files-from-HOME.patch | 18 ++++--- ...-PATH-environment-variable-before-ru.patch | 16 +++--- ...lling-execute-package-scriptlets-wit.patch | 12 +++-- ...not-insert-payloadflags-into-.rpm-me.patch | 18 ++++--- ....c-fix-file-conflicts-for-MIPS64-N32.patch | 18 ++++--- ...kgverify_level-to-digest-as-RCPM-4.2.patch | 35 +++++++++++++ ...ools-elfdeps.cc-Remove-format-module.patch | 38 ++++++++++++++ ...prefixing-etc-from-RPM_ETCCONFIGDIR-.patch | 26 ++++++---- ...avoid-using-GLOB_BRACE-if-undefined-.patch | 14 ++++-- ...ge-logging-level-around-scriptlets-t.patch | 14 +++--- .../rpm/{rpm_4.20.1.bb => rpm_6.0.2.bb} | 14 +++--- 17 files changed, 199 insertions(+), 188 deletions(-) delete mode 100644 meta/recipes-devtools/rpm/files/0001-CMakeLists.txt-Fix-checking-for-CFLAGS.patch delete mode 100644 meta/recipes-devtools/rpm/files/0001-CMakeLists.txt-set-libdir-to-CMAKE_INSTALL_FULL_LIBD.patch create mode 100644 meta/recipes-devtools/rpm/files/0001-macros.in-Set-_pkgverify_level-to-digest-as-RCPM-4.2.patch create mode 100644 meta/recipes-devtools/rpm/files/0001-tools-elfdeps.cc-Remove-format-module.patch rename meta/recipes-devtools/rpm/{rpm_4.20.1.bb => rpm_6.0.2.bb} (96%) diff --git a/meta/classes-global/package_rpm.bbclass b/meta/classes-global/package_rpm.bbclass index 9af4cbdd94..51ad195baa 100644 --- a/meta/classes-global/package_rpm.bbclass +++ b/meta/classes-global/package_rpm.bbclass @@ -587,6 +587,7 @@ python do_package_rpm () { cmd = cmd + " --define '_topdir " + workdir + "' --define '_rpmdir " + pkgwritedir + "'" cmd = cmd + " --define '_lib ${BASELIB}'" cmd = cmd + " --define '_libdir ${libdir}'" + cmd = cmd + " --define '_datadir ${datadir}'" cmd = cmd + " --define '_builddir " + d.getVar('B') + "'" cmd = cmd + " --define '_build_name_fmt %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm'" cmd = cmd + " --define '_binaries_in_noarch_packages_terminate_build 0'" @@ -601,6 +602,7 @@ python do_package_rpm () { cmd = cmd + " --define '_unpackaged_files_terminate_build 0'" cmd = cmd + " --define 'debug_package %{nil}'" cmd = cmd + " --define '_tmppath " + workdir + "'" + cmd = cmd + " --define '__sysusers_path %{nil}'" cmd = cmd + " --define '_use_weak_usergroup_deps 1'" cmd = cmd + " --define '_passwd_path " + "/completely/bogus/path" + "'" cmd = cmd + " --define '_group_path " + "/completely/bogus/path" + "'" @@ -622,6 +624,8 @@ python do_package_rpm () { python () { if d.getVar('PACKAGES') != '': deps = ' rpm-native:do_populate_sysroot virtual/fakeroot-native:do_populate_sysroot' + # The pkgconfig-native is required by rpm's pkgconfigdeps.sh + deps += ' pkgconfig-native:do_populate_sysroot' d.appendVarFlag('do_package_write_rpm', 'depends', deps) d.setVarFlag('do_package_write_rpm', 'fakeroot', '1') diff --git a/meta/recipes-devtools/rpm/files/0001-Add-a-color-setting-for-mips64_n32-binaries.patch b/meta/recipes-devtools/rpm/files/0001-Add-a-color-setting-for-mips64_n32-binaries.patch index 769d7b3409..a808009058 100644 --- a/meta/recipes-devtools/rpm/files/0001-Add-a-color-setting-for-mips64_n32-binaries.patch +++ b/meta/recipes-devtools/rpm/files/0001-Add-a-color-setting-for-mips64_n32-binaries.patch @@ -5,16 +5,20 @@ Subject: [PATCH] Add a color setting for mips64_n32 binaries Upstream-Status: Inappropriate [oe-core specific] Signed-off-by: Alexander Kanavin + +Rebased to 6.0.2 +Signed-off-by: Robert Yang +Signed-off-by: Sumanth Gavini --- - build/rpmfc.c | 4 ++++ + build/rpmfc.cc | 4 ++++ rpmrc.in | 2 ++ 2 files changed, 6 insertions(+) -diff --git a/build/rpmfc.c b/build/rpmfc.c -index 86dd36d14..df421a23f 100644 ---- a/build/rpmfc.c -+++ b/build/rpmfc.c -@@ -716,6 +716,7 @@ static int rpmfcHelper(rpmfc fc, int *fnx, int nfn, const char *proto, +diff --git a/build/rpmfc.cc b/build/rpmfc.cc +index 833e56fa8..d50a3407f 100644 +--- a/build/rpmfc.cc ++++ b/build/rpmfc.cc +@@ -690,6 +690,7 @@ static int rpmfcHelper(rpmfc fc, int *fnx, int nfn, const char *proto, static const struct rpmfcTokens_s rpmfcTokens[] = { { "directory", RPMFC_INCLUDE }, @@ -22,7 +26,7 @@ index 86dd36d14..df421a23f 100644 { "ELF 32-bit", RPMFC_ELF32|RPMFC_INCLUDE }, { "ELF 64-bit", RPMFC_ELF64|RPMFC_INCLUDE }, -@@ -1258,6 +1259,9 @@ static uint32_t getElfColor(const char *fn) +@@ -1191,6 +1192,9 @@ static uint32_t getElfColor(const char *fn) color = 0; break; } @@ -33,10 +37,10 @@ index 86dd36d14..df421a23f 100644 if (elf) elf_end(elf); diff --git a/rpmrc.in b/rpmrc.in -index 8646a966b..7349fdfd3 100644 +index 8fd0d7ee1..4cc52ceb3 100644 --- a/rpmrc.in +++ b/rpmrc.in -@@ -142,6 +142,8 @@ archcolor: mipsr6el 1 +@@ -152,6 +152,8 @@ archcolor: mipsr6el 1 archcolor: mips64r6 2 archcolor: mips64r6el 2 diff --git a/meta/recipes-devtools/rpm/files/0001-CMakeLists.txt-Fix-checking-for-CFLAGS.patch b/meta/recipes-devtools/rpm/files/0001-CMakeLists.txt-Fix-checking-for-CFLAGS.patch deleted file mode 100644 index 412e1c146d..0000000000 --- a/meta/recipes-devtools/rpm/files/0001-CMakeLists.txt-Fix-checking-for-CFLAGS.patch +++ /dev/null @@ -1,46 +0,0 @@ -From e14502834fe6a9c6c9a439401ac3d2c8fd979267 Mon Sep 17 00:00:00 2001 -From: Robert Yang -Date: Sun, 8 Jun 2025 00:36:38 -0700 -Subject: [PATCH] CMakeLists.txt: Improve checking for CFLAGS - -The previous log wasn't clear: --- Performing Test found --- Performing Test found - Success --- Performing Test found --- Performing Test found - Success --- Performing Test found --- Performing Test found - Failed - -Use a new var compiler-supports${flag} will make it more clear: --- Performing Test compiler-supports-fno-strict-overflow --- Performing Test compiler-supports-fno-strict-overflow - Success --- Performing Test compiler-supports-fno-delete-null-pointer-checks --- Performing Test compiler-supports-fno-delete-null-pointer-checks - Success --- Performing Test compiler-supports-fhardened --- Performing Test compiler-supports-fhardened - Failed - -Upstream-Status: Backport [https://github.com/rpm-software-management/rpm/commit/e14502834fe6a9c6c9a439401ac3d2c8fd979267] - -Signed-off-by: Robert Yang ---- - CMakeLists.txt | 5 ++--- - 1 file changed, 2 insertions(+), 3 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 08e3e5274..f275c396b 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -416,11 +416,10 @@ endif() - - # try to ensure some compiler sanity and hardening options where supported - foreach (flag -fno-strict-overflow -fno-delete-null-pointer-checks -fhardened) -- check_c_compiler_flag(${flag} found) -- if (found) -+ check_c_compiler_flag(${flag} compiler-supports${flag}) -+ if (compiler-supports${flag}) - add_compile_options(${flag}) - endif() -- unset(found) - endforeach() - - # generated sources diff --git a/meta/recipes-devtools/rpm/files/0001-CMakeLists.txt-set-libdir-to-CMAKE_INSTALL_FULL_LIBD.patch b/meta/recipes-devtools/rpm/files/0001-CMakeLists.txt-set-libdir-to-CMAKE_INSTALL_FULL_LIBD.patch deleted file mode 100644 index 7db643871f..0000000000 --- a/meta/recipes-devtools/rpm/files/0001-CMakeLists.txt-set-libdir-to-CMAKE_INSTALL_FULL_LIBD.patch +++ /dev/null @@ -1,50 +0,0 @@ -From cb5355da9b47166253dbe5ab3215e433b55068d1 Mon Sep 17 00:00:00 2001 -From: Yi Zhao -Date: Fri, 26 Jul 2024 17:18:30 +0800 -Subject: [PATCH] CMakeLists.txt: set libdir to ${CMAKE_INSTALL_FULL_LIBDIR} in - macros - -There is a patch in oe-core[1] to avoid hardcoded paths in macros. It -tries to use libdir to expand %_libdir in macros.in. However, in -upstream commit[2], libdir for macros in CMakeLists.txt is set to -${prefix}/=LIB=, which causes %_libdir to expand to ${prefix}/=LIB= -instead of the correct path in the final macros. - -On target: -$ rpm --showrc | grep _libdir -[snip] --13: _libdir ${prefix}/=LIB= -[snip] - -This also causes %__pkgconfig_path in fileattrs/pkgconfig.attr to become -an invalid regular expression when building rpm packages. This results a -warning in log.do_package_write_rpm in all packages: - -Warning: Ignoring invalid regular expression ^((${prefix}/=LIB=|usr/share)/pkgconfig/.*.pc|usr/bin/pkg-config)$ - -Set libdir to ${CMAKE_INSTALL_FULL_LIBDIR} instead of ${prefix}/=LIB= to -make sure it is expanded to the correct path in macros. - -[1] https://git.openembedded.org/openembedded-core/tree/meta/recipes-devtools/rpm/files/0001-Do-not-hardcode-lib-rpm-as-the-installation-path-for.patch -[2] https://github.com/rpm-software-management/rpm/commit/d2abb7a48760418aacd7f17c8b64e39c25ca50c9 - -Upstream-Status: Inappropriate [oe specific] - -Signed-off-by: Yi Zhao ---- - CMakeLists.txt | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 08dabffd3..1b7661139 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -96,7 +96,7 @@ function(makemacros) - set(sysconfdir "${CMAKE_INSTALL_FULL_SYSCONFDIR}") - set(sharedstatedir "${CMAKE_INSTALL_FULL_SHAREDSTATEDIR}") - set(localstatedir "${CMAKE_INSTALL_FULL_LOCALSTATEDIR}") -- set(libdir "\${prefix}/=LIB=") -+ set(libdir "${CMAKE_INSTALL_FULL_LIBDIR}") - set(includedir "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}") - set(oldincludedir "${CMAKE_INSTALL_FULL_OLDINCLUDEDIR}") - set(infodir "\${prefix}/${CMAKE_INSTALL_INFODIR}") diff --git a/meta/recipes-devtools/rpm/files/0001-Do-not-add-an-unsatisfiable-dependency-when-building.patch b/meta/recipes-devtools/rpm/files/0001-Do-not-add-an-unsatisfiable-dependency-when-building.patch index 96a5e14999..63a10df0d5 100644 --- a/meta/recipes-devtools/rpm/files/0001-Do-not-add-an-unsatisfiable-dependency-when-building.patch +++ b/meta/recipes-devtools/rpm/files/0001-Do-not-add-an-unsatisfiable-dependency-when-building.patch @@ -9,16 +9,20 @@ hand produces rpms that way by design. Upstream-Status: Inappropriate [oe-core specific] Signed-off-by: Alexander Kanavin + +Rebased to 6.0.2 +Signed-off-by: Robert Yang +Signed-off-by: Sumanth Gavini --- - build/pack.c | 4 ---- + build/pack.cc | 4 ---- 1 file changed, 4 deletions(-) -diff --git a/build/pack.c b/build/pack.c -index eb9c7b3f1..fb1f1bed8 100644 ---- a/build/pack.c -+++ b/build/pack.c -@@ -712,10 +712,6 @@ static rpmRC packageBinary(rpmSpec spec, Package pkg, const char *cookie, int ch - headerPutBin(pkg->header, RPMTAG_SOURCEPKGID, spec->sourcePkgId,16); +diff --git a/build/pack.cc b/build/pack.cc +index 49c9d0a58..b1cda6d75 100644 +--- a/build/pack.cc ++++ b/build/pack.cc +@@ -805,10 +805,6 @@ static rpmRC packageBinary(rpmSpec spec, Package pkg, const char *cookie, int ch + headerPutBin(pkg->header, RPMTAG_SOURCESIGMD5, spec->sourcePkgId,16); } - if (cheating) { diff --git a/meta/recipes-devtools/rpm/files/0001-Do-not-hardcode-lib-rpm-as-the-installation-path-for.patch b/meta/recipes-devtools/rpm/files/0001-Do-not-hardcode-lib-rpm-as-the-installation-path-for.patch index 6a44f4f22d..309320cf43 100644 --- a/meta/recipes-devtools/rpm/files/0001-Do-not-hardcode-lib-rpm-as-the-installation-path-for.patch +++ b/meta/recipes-devtools/rpm/files/0001-Do-not-hardcode-lib-rpm-as-the-installation-path-for.patch @@ -6,10 +6,16 @@ Subject: [PATCH] Do not hardcode "lib/rpm" as the installation path for Upstream-Status: Denied [https://github.com/rpm-software-management/rpm/pull/263] Signed-off-by: Alexander Kanavin + +Updated for rpm 6.0.2: +Remove the changes for macros.in since it doesn't work for rpmbuild, rpmbuild +is like cross build, will define the values in package_rpm.bbclass. + +Signed-off-by: Robert Yang +Signed-off-by: Sumanth Gavini --- CMakeLists.txt | 2 +- - macros.in | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) + 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index de0b578a6..9a3aba071 100644 @@ -23,17 +29,3 @@ index de0b578a6..9a3aba071 100644 +set(RPM_CONFIGDIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/rpm" CACHE PATH "rpm home") set(RPM_MACROSDIR "${RPM_CONFIGDIR}/macros.d") set(RPM_VENDOR "vendor" CACHE STRING "rpm vendor string") - -diff --git a/macros.in b/macros.in -index 4d3e8afdc..66e31320f 100644 ---- a/macros.in -+++ b/macros.in -@@ -964,7 +964,7 @@ Supplements: (%{name} = %{version}-%{release} and langpacks-%{1})\ - %_sharedstatedir %{_var}/lib - %_localstatedir %{_prefix}/var - %_lib lib --%_libdir %{_exec_prefix}/%{_lib} -+%_libdir @libdir@ - %_includedir %{_prefix}/include - %_infodir %{_datadir}/info - %_mandir %{_datadir}/man diff --git a/meta/recipes-devtools/rpm/files/0001-Do-not-read-config-files-from-HOME.patch b/meta/recipes-devtools/rpm/files/0001-Do-not-read-config-files-from-HOME.patch index bfc9a74b6c..ae47499e22 100644 --- a/meta/recipes-devtools/rpm/files/0001-Do-not-read-config-files-from-HOME.patch +++ b/meta/recipes-devtools/rpm/files/0001-Do-not-read-config-files-from-HOME.patch @@ -5,15 +5,19 @@ Subject: [PATCH] Do not read config files from $HOME Upstream-Status: Inappropriate [oe-core specific] Signed-off-by: Alexander Kanavin + +Rebased to 6.0.2 +Signed-off-by: Robert Yang +Signed-off-by: Sumanth Gavini --- - lib/rpmrc.c | 6 ++---- + lib/rpmrc.cc | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) -diff --git a/lib/rpmrc.c b/lib/rpmrc.c -index 5d778b8b7..dc8d42aeb 100644 ---- a/lib/rpmrc.c -+++ b/lib/rpmrc.c -@@ -485,8 +485,7 @@ static void setDefaults(void) +diff --git a/lib/rpmrc.cc b/lib/rpmrc.cc +index 2b3baeddc..cea6f4bc5 100644 +--- a/lib/rpmrc.cc ++++ b/lib/rpmrc.cc +@@ -390,8 +390,7 @@ static void setDefaults(void) if (!defrcfiles) { defrcfiles = rstrscat(NULL, confdir, "/rpmrc", ":", confdir, "/" RPM_VENDOR "/rpmrc", ":", @@ -23,7 +27,7 @@ index 5d778b8b7..dc8d42aeb 100644 } /* macrofiles may be pre-set from --macros */ -@@ -498,8 +497,7 @@ static void setDefaults(void) +@@ -403,8 +402,7 @@ static void setDefaults(void) confdir, "/" RPM_VENDOR "/macros", ":", SYSCONFDIR "/rpm/macros.*", ":", SYSCONFDIR "/rpm/macros", ":", diff --git a/meta/recipes-devtools/rpm/files/0001-Do-not-reset-the-PATH-environment-variable-before-ru.patch b/meta/recipes-devtools/rpm/files/0001-Do-not-reset-the-PATH-environment-variable-before-ru.patch index d3263896ef..05c8b79f29 100644 --- a/meta/recipes-devtools/rpm/files/0001-Do-not-reset-the-PATH-environment-variable-before-ru.patch +++ b/meta/recipes-devtools/rpm/files/0001-Do-not-reset-the-PATH-environment-variable-before-ru.patch @@ -8,15 +8,19 @@ We add lots of native stuff into it and scriptlets rely on that. Upstream-Status: Inappropriate [oe-core specific] Signed-off-by: Alexander Kanavin + +Rebased to 6.0.2 +Signed-off-by: Robert Yang +Signed-off-by: Sumanth Gavini --- - lib/rpmscript.c | 2 +- + lib/rpmscript.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/lib/rpmscript.c b/lib/rpmscript.c -index 060fd8124..4dc6466a8 100644 ---- a/lib/rpmscript.c -+++ b/lib/rpmscript.c -@@ -251,7 +251,7 @@ static void doScriptExec(ARGV_const_t argv, ARGV_const_t prefixes, +diff --git a/lib/rpmscript.cc b/lib/rpmscript.cc +index b75a62085..2d7a4c889 100644 +--- a/lib/rpmscript.cc ++++ b/lib/rpmscript.cc +@@ -260,7 +260,7 @@ static void doScriptExec(ARGV_const_t argv, ARGV_const_t prefixes, if (ipath && ipath[5] != '%') path = ipath; diff --git a/meta/recipes-devtools/rpm/files/0001-When-cross-installing-execute-package-scriptlets-wit.patch b/meta/recipes-devtools/rpm/files/0001-When-cross-installing-execute-package-scriptlets-wit.patch index b71156fe12..90f5322573 100644 --- a/meta/recipes-devtools/rpm/files/0001-When-cross-installing-execute-package-scriptlets-wit.patch +++ b/meta/recipes-devtools/rpm/files/0001-When-cross-installing-execute-package-scriptlets-wit.patch @@ -26,15 +26,17 @@ Upstream-Status: Inappropriate [oe-core specific] Signed-off-by: Alexander Kanavin Rebased to 4.20.1 +Rebased to 6.0.2 Signed-off-by: Robert Yang +Signed-off-by: Sumanth Gavini --- - lib/rpmscript.c | 9 +++++++-- + lib/rpmscript.cc | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) -diff --git a/lib/rpmscript.c b/lib/rpmscript.c -index eb14870b3..1785e8f30 100644 ---- a/lib/rpmscript.c -+++ b/lib/rpmscript.c +diff --git a/lib/rpmscript.cc b/lib/rpmscript.cc +index b75a62085..7d667b7f5 100644 +--- a/lib/rpmscript.cc ++++ b/lib/rpmscript.cc @@ -456,8 +456,7 @@ exit: Fclose(out); /* XXX dup'd STDOUT_FILENO */ diff --git a/meta/recipes-devtools/rpm/files/0001-build-pack.c-do-not-insert-payloadflags-into-.rpm-me.patch b/meta/recipes-devtools/rpm/files/0001-build-pack.c-do-not-insert-payloadflags-into-.rpm-me.patch index 0c29e5543a..fe4e029830 100644 --- a/meta/recipes-devtools/rpm/files/0001-build-pack.c-do-not-insert-payloadflags-into-.rpm-me.patch +++ b/meta/recipes-devtools/rpm/files/0001-build-pack.c-do-not-insert-payloadflags-into-.rpm-me.patch @@ -1,7 +1,7 @@ From e688eb54fd54d65181e94b854b3568d99cbf3a24 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Tue, 31 Aug 2021 10:37:05 +0200 -Subject: [PATCH] build/pack.c: do not insert payloadflags into .rpm metadata +Subject: [PATCH] build/pack.cc: do not insert payloadflags into .rpm metadata The flags look like '19T56' where 19 is the compression level (deterministic), and 56 is the amount of threads (varies from one @@ -9,15 +9,19 @@ host to the next and breaks reproducibility for .rpm). Upstream-Status: Inappropriate [oe-core specific] Signed-off-by: Alexander Kanavin + +Rebased to 6.0.2 +Signed-off-by: Robert Yang +Signed-off-by: Sumanth Gavini --- - build/pack.c | 2 +- + build/pack.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/build/pack.c b/build/pack.c -index fb1f1bed8..45885a6ac 100644 ---- a/build/pack.c -+++ b/build/pack.c -@@ -330,7 +330,7 @@ static char *getIOFlags(Package pkg) +diff --git a/build/pack.cc b/build/pack.cc +index b1cda6d75..1425d27ba 100644 +--- a/build/pack.cc ++++ b/build/pack.cc +@@ -338,7 +338,7 @@ static char *getIOFlags(Package pkg) headerPutString(pkg->header, RPMTAG_PAYLOADCOMPRESSOR, compr); buf = xstrdup(rpmio_flags); buf[s - rpmio_flags] = '\0'; diff --git a/meta/recipes-devtools/rpm/files/0001-lib-transaction.c-fix-file-conflicts-for-MIPS64-N32.patch b/meta/recipes-devtools/rpm/files/0001-lib-transaction.c-fix-file-conflicts-for-MIPS64-N32.patch index 7d443ccc6c..5dc059493c 100644 --- a/meta/recipes-devtools/rpm/files/0001-lib-transaction.c-fix-file-conflicts-for-MIPS64-N32.patch +++ b/meta/recipes-devtools/rpm/files/0001-lib-transaction.c-fix-file-conflicts-for-MIPS64-N32.patch @@ -1,7 +1,7 @@ From ad530868e37f09e9236c085d25a834304750704b Mon Sep 17 00:00:00 2001 From: Changqing Li Date: Thu, 7 May 2020 17:40:58 +0800 -Subject: [PATCH] lib/transaction.c: fix file conflicts for MIPS64 N32 +Subject: [PATCH] lib/transaction.cc: fix file conflicts for MIPS64 N32 This patch is from: https://github.com/rpm-software-management/rpm/issues/193 @@ -27,15 +27,19 @@ Fixed by performing a 'last-in-wins' resolution when "neither is preferred". Upstream-Status: Submitted Signed-off-by: Changqing Li + +Rebased to 6.0.2 +Signed-off-by: Robert Yang +Signed-off-by: Sumanth Gavini --- - lib/transaction.c | 13 ++++++++++++- + lib/transaction.cc | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) -diff --git a/lib/transaction.c b/lib/transaction.c -index 5e4414d2a..b1c55bd44 100644 ---- a/lib/transaction.c -+++ b/lib/transaction.c -@@ -400,7 +400,18 @@ static int handleColorConflict(rpmts ts, +diff --git a/lib/transaction.cc b/lib/transaction.cc +index de7cdabb2..697268733 100644 +--- a/lib/transaction.cc ++++ b/lib/transaction.cc +@@ -375,7 +375,18 @@ static int handleColorConflict(rpmts ts, rpmfsSetAction(ofs, ofx, FA_CREATE); rpmfsSetAction(fs, fx, FA_SKIPCOLOR); rConflicts = 0; diff --git a/meta/recipes-devtools/rpm/files/0001-macros.in-Set-_pkgverify_level-to-digest-as-RCPM-4.2.patch b/meta/recipes-devtools/rpm/files/0001-macros.in-Set-_pkgverify_level-to-digest-as-RCPM-4.2.patch new file mode 100644 index 0000000000..500a667a1b --- /dev/null +++ b/meta/recipes-devtools/rpm/files/0001-macros.in-Set-_pkgverify_level-to-digest-as-RCPM-4.2.patch @@ -0,0 +1,35 @@ +From 1cb53934b83b794c319813106c9f12d75cce66d2 Mon Sep 17 00:00:00 2001 +From: Robert Yang +Date: Sun, 18 Jan 2026 19:24:42 -0800 +Subject: [PATCH] macros.in: Set _pkgverify_level to digest as RPM 4.20.1 + +Fixed: +$ bitbake core-image-minimal +Package bash-5.3-r0.16.x86_64_v3.rpm is not signed +GPG check FAILED + +Set _pkgverify_level to digest as RPM 4.20.1 can fix the problem. + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Robert Yang +Signed-off-by: Sumanth Gavini +--- + macros.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/macros.in b/macros.in +index 38066f00c..7fe00ad09 100644 +--- a/macros.in ++++ b/macros.in +@@ -680,7 +680,7 @@ Supplements: (%{name} = %{version}-%{release} and langpacks-%{1})\ + # signature require valid signature(s) + # digest require valid digest(s) + # none traditional rpm behavior, nothing required +-%_pkgverify_level all ++%_pkgverify_level digest + + # Disabler flags for package verification (similar to vsflags) + # Set to 0x0 for full compatibility with v4 packages. +-- +2.49.0 + diff --git a/meta/recipes-devtools/rpm/files/0001-tools-elfdeps.cc-Remove-format-module.patch b/meta/recipes-devtools/rpm/files/0001-tools-elfdeps.cc-Remove-format-module.patch new file mode 100644 index 0000000000..25f5496bde --- /dev/null +++ b/meta/recipes-devtools/rpm/files/0001-tools-elfdeps.cc-Remove-format-module.patch @@ -0,0 +1,38 @@ +From 3536ef6bb74144cf9dce10200cd62c2ad9f7cae4 Mon Sep 17 00:00:00 2001 +From: Robert Yang +Date: Thu, 15 Jan 2026 19:36:17 -0800 +Subject: [PATCH] tools/elfdeps.cc: Remove format module + +There is no format until gcc 13.1, so remove the format module to make it work +on hosts such as Ubuntu 22.04. + +Upstream-Status: Inappropriate [oe-core specific] +Signed-off-by: Robert Yang +Signed-off-by: Sumanth Gavini +--- + tools/elfdeps.cc | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/tools/elfdeps.cc b/tools/elfdeps.cc +index 17884b24e..33ff8d740 100644 +--- a/tools/elfdeps.cc ++++ b/tools/elfdeps.cc +@@ -1,6 +1,5 @@ + #include "system.h" + +-#include + #include + #include + +@@ -105,7 +104,7 @@ static void addSoDep(std::vector & deps, + if (ver.empty() && marker.empty()) { + addDep(deps, soname); + } else { +- auto dep = std::format("{}({}){}", soname, ver, marker); ++ std::string dep = soname + "(" + ver + ")" + marker; + addDep(deps, dep); + } + } +-- +2.49.0 + diff --git a/meta/recipes-devtools/rpm/files/0002-Add-support-for-prefixing-etc-from-RPM_ETCCONFIGDIR-.patch b/meta/recipes-devtools/rpm/files/0002-Add-support-for-prefixing-etc-from-RPM_ETCCONFIGDIR-.patch index 082fb343c2..1004253ff8 100644 --- a/meta/recipes-devtools/rpm/files/0002-Add-support-for-prefixing-etc-from-RPM_ETCCONFIGDIR-.patch +++ b/meta/recipes-devtools/rpm/files/0002-Add-support-for-prefixing-etc-from-RPM_ETCCONFIGDIR-.patch @@ -9,15 +9,19 @@ from target rootfs instead of its own native sysroot. Upstream-Status: Inappropriate [oe-core specific] Signed-off-by: Alexander Kanavin + +Rebased to 6.0.2 +Signed-off-by: Robert Yang +Signed-off-by: Sumanth Gavini --- - lib/rpmrc.c | 18 +++++++++++++----- + lib/rpmrc.cc | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) -diff --git a/lib/rpmrc.c b/lib/rpmrc.c -index dc8d42aeb..3f2996850 100644 ---- a/lib/rpmrc.c -+++ b/lib/rpmrc.c -@@ -481,11 +481,14 @@ static void setDefaults(void) +diff --git a/lib/rpmrc.cc b/lib/rpmrc.cc +index cea6f4bc5..e6cf21e1b 100644 +--- a/lib/rpmrc.cc ++++ b/lib/rpmrc.cc +@@ -386,11 +386,14 @@ static void setDefaults(void) userrc = xstrdup(oldrc); } } @@ -33,7 +37,7 @@ index dc8d42aeb..3f2996850 100644 } /* macrofiles may be pre-set from --macros */ -@@ -495,9 +498,9 @@ static void setDefaults(void) +@@ -400,9 +403,9 @@ static void setDefaults(void) confdir, "/platform/%{_target}/macros", ":", confdir, "/fileattrs/*.attr", ":", confdir, "/" RPM_VENDOR "/macros", ":", @@ -46,7 +50,7 @@ index dc8d42aeb..3f2996850 100644 } free(usermacros); -@@ -1142,7 +1145,11 @@ static void read_auxv(void) +@@ -1048,7 +1051,11 @@ static void read_auxv(void) */ static void defaultMachine(rpmrcCtx ctx, const char ** arch, const char ** os) { @@ -55,11 +59,11 @@ index dc8d42aeb..3f2996850 100644 + if (etcconfdir == NULL) + etcconfdir = ""; + -+ const char * const platform_path = rstrscat(NULL, etcconfdir, SYSCONFDIR "/rpm/platform", NULL); ++ char * const platform_path = rstrscat(NULL, etcconfdir, SYSCONFDIR "/rpm/platform", NULL); static struct utsname un; char * chptr; - canonEntry canon; -@@ -1462,6 +1469,7 @@ static void defaultMachine(rpmrcCtx ctx, const char ** arch, const char ** os) + int rc; +@@ -1378,6 +1385,7 @@ static void defaultMachine(rpmrcCtx ctx, const char ** arch, const char ** os) if (arch) *arch = un.machine; if (os) *os = un.sysname; diff --git a/meta/recipes-devtools/rpm/files/0002-rpmio-rpmglob.c-avoid-using-GLOB_BRACE-if-undefined-.patch b/meta/recipes-devtools/rpm/files/0002-rpmio-rpmglob.c-avoid-using-GLOB_BRACE-if-undefined-.patch index 00fe19108e..59855466da 100644 --- a/meta/recipes-devtools/rpm/files/0002-rpmio-rpmglob.c-avoid-using-GLOB_BRACE-if-undefined-.patch +++ b/meta/recipes-devtools/rpm/files/0002-rpmio-rpmglob.c-avoid-using-GLOB_BRACE-if-undefined-.patch @@ -1,7 +1,7 @@ From d8972ff7fa0a30e199144ba135223bf561874e01 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Tue, 16 Jan 2024 09:59:26 +0100 -Subject: [PATCH] rpmio/rpmglob.c: avoid using GLOB_BRACE if undefined by C +Subject: [PATCH] rpmio/rpmglob.cc: avoid using GLOB_BRACE if undefined by C library This addresses musl failures; if there is code out there relying on @@ -11,14 +11,18 @@ This is unlikely to be trivially fixable upstream. Upstream-Status: Inappropriate [reported at https://github.com/rpm-software-management/rpm/issues/2844] Signed-off-by: Alexander Kanavin + +Rebased to 6.0.2 +Signed-off-by: Robert Yang +Signed-off-by: Sumanth Gavini --- - rpmio/rpmglob.c | 6 ++++++ + rpmio/rpmglob.cc | 6 ++++++ 1 file changed, 6 insertions(+) -diff --git a/rpmio/rpmglob.c b/rpmio/rpmglob.c +diff --git a/rpmio/rpmglob.cc b/rpmio/rpmglob.cc index eb439cad8..1eef0b851 100644 ---- a/rpmio/rpmglob.c -+++ b/rpmio/rpmglob.c +--- a/rpmio/rpmglob.cc ++++ b/rpmio/rpmglob.cc @@ -33,6 +33,12 @@ #include "debug.h" diff --git a/meta/recipes-devtools/rpm/files/0016-rpmscript.c-change-logging-level-around-scriptlets-t.patch b/meta/recipes-devtools/rpm/files/0016-rpmscript.c-change-logging-level-around-scriptlets-t.patch index bac2d6331c..84f909c68b 100644 --- a/meta/recipes-devtools/rpm/files/0016-rpmscript.c-change-logging-level-around-scriptlets-t.patch +++ b/meta/recipes-devtools/rpm/files/0016-rpmscript.c-change-logging-level-around-scriptlets-t.patch @@ -1,7 +1,7 @@ From 452b696ea3e1975ea30cf7a92678aa4b316e6300 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Thu, 10 Jan 2019 18:14:18 +0100 -Subject: [PATCH] rpmscript.c: change logging level around scriptlets to INFO +Subject: [PATCH] rpmscript.cc: change logging level around scriptlets to INFO from DEBUG That way we can debug scriptlet failures without writing lots of @@ -11,15 +11,17 @@ Upstream-Status: Inappropriate [oe-core specific] Signed-off-by: Alexander Kanavin Rebased to 4.20.1 +Rebased to 6.0.2 Signed-off-by: Robert Yang +Signed-off-by: Sumanth Gavini --- - lib/rpmscript.c | 8 ++++---- + lib/rpmscript.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) -diff --git a/lib/rpmscript.c b/lib/rpmscript.c -index e9f288ae0..f0c628708 100644 ---- a/lib/rpmscript.c -+++ b/lib/rpmscript.c +diff --git a/lib/rpmscript.cc b/lib/rpmscript.cc +index fe5fc9138..861fd8ca8 100644 +--- a/lib/rpmscript.cc ++++ b/lib/rpmscript.cc @@ -299,7 +299,7 @@ static char * writeScript(const char *cmd, const char *script) if (Ferror(fd)) goto exit; diff --git a/meta/recipes-devtools/rpm/rpm_4.20.1.bb b/meta/recipes-devtools/rpm/rpm_6.0.2.bb similarity index 96% rename from meta/recipes-devtools/rpm/rpm_4.20.1.bb rename to meta/recipes-devtools/rpm/rpm_6.0.2.bb index 17e75c3e14..e8977aa31a 100644 --- a/meta/recipes-devtools/rpm/rpm_4.20.1.bb +++ b/meta/recipes-devtools/rpm/rpm_6.0.2.bb @@ -24,7 +24,7 @@ HOMEPAGE = "http://www.rpm.org" LICENSE = "GPL-2.0-only" LIC_FILES_CHKSUM = "file://COPYING;md5=066ecde17828e5c8911ec9eae8be78f4" -SRC_URI = "git://github.com/rpm-software-management/rpm;branch=rpm-4.20.x;protocol=https \ +SRC_URI = "git://github.com/rpm-software-management/rpm;branch=rpm-6.0.x;protocol=https \ file://0001-Do-not-add-an-unsatisfiable-dependency-when-building.patch \ file://0001-Do-not-read-config-files-from-HOME.patch \ file://0001-When-cross-installing-execute-package-scriptlets-wit.patch \ @@ -37,14 +37,14 @@ SRC_URI = "git://github.com/rpm-software-management/rpm;branch=rpm-4.20.x;protoc file://0001-build-pack.c-do-not-insert-payloadflags-into-.rpm-me.patch \ file://0001-CMakeLists.txt-look-for-lua-with-pkg-config-rather-t.patch \ file://0002-rpmio-rpmglob.c-avoid-using-GLOB_BRACE-if-undefined-.patch \ - file://0001-CMakeLists.txt-set-libdir-to-CMAKE_INSTALL_FULL_LIBD.patch \ - file://0001-CMakeLists.txt-Fix-checking-for-CFLAGS.patch \ + file://0001-tools-elfdeps.cc-Remove-format-module.patch \ + file://0001-macros.in-Set-_pkgverify_level-to-digest-as-RCPM-4.2.patch \ " PE = "1" -SRCREV = "c8dc5ea575a2e9c1488036d12f4b75f6a5a49120" +SRCREV = "a7f89afb57a98f6419d0eff35ca792198293b682" -DEPENDS = "lua libgcrypt file popt xz bzip2 elfutils python3 sqlite3 zstd" +DEPENDS = "lua libgcrypt file popt xz bzip2 elfutils python3 sqlite3 zstd scdoc-native" DEPENDS:append:class-native = " file-replacement-native bzip2-replacement-native" EXTRA_OECMAKE:append = " -D__CURL:FILEPATH=curl" @@ -154,7 +154,8 @@ do_install:append () { FILES:${PN} += "${libdir}/rpm-plugins/*.so \ " -FILES:${PN}:append:class-nativesdk = " ${SDKPATHNATIVE}/environment-setup.d/rpm.sh" +FILES:${PN}:append:class-nativesdk = " ${SDKPATHNATIVE}/environment-setup.d/rpm.sh \ + /etc/rpm" FILES:${PN}-dev += "${libdir}/rpm-plugins/*.la \ " @@ -181,6 +182,7 @@ FILES:${PN}-build = "\ ${libdir}/rpm/mkinstalldirs \ ${libdir}/rpm/macros.p* \ ${libdir}/rpm/fileattrs/* \ + ${libdir}/rpm/rpm-setup-autosign \ " FILES:${PN}-sign = "\ From patchwork Fri Jul 24 20:04:23 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sumanth Gavini X-Patchwork-Id: 93471 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4982EC53209 for ; Fri, 24 Jul 2026 20:04:54 +0000 (UTC) Received: from mx0a-0064b401.pphosted.com (mx0a-0064b401.pphosted.com [205.220.166.238]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.27444.1784923489399843625 for ; Fri, 24 Jul 2026 13:04:49 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@windriver.com header.s=PPS06212021 header.b=FkQZItuv; spf=permerror, err=parse error for token &{10 18 %{ir}.%{v}.%{d}.spf.has.pphosted.com}: invalid domain name (domain: windriver.com, ip: 205.220.166.238, mailfrom: prvs=1665965d86=sumanth.gavini@windriver.com) Received: from pps.filterd (m0250810.ppops.net [127.0.0.1]) by mx0a-0064b401.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66OGsN6Y2222015 for ; Fri, 24 Jul 2026 13:04:49 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=windriver.com; h=cc:content-transfer-encoding:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to; s= PPS06212021; bh=+NFcXtWA/VF3/sOB88NaVGEEVYNqr3EMLxHm/LSwVM8=; b= FkQZItuvQ/3moM4/cB+sMxmcdavbb7xaHqPROCOhd+sH3W/AtyL7w3snRCcsEsNs M4NxTO4qSUl0szApdTLgEtCQD83v+xbIwYqmVoUabUEXKfizzuQUPnZJ+eCgvHGY WFUPz+Pgme0Vy1RoqbgLIMJB/9DfM0x5/me5hA3NrtLwVQ6uksYYRNNO/K9lt+98 JoPjuR1nHkd2j3rYBxm+UzpEOLYSoE0foAtZpZECGIk9XZy8IDhCeRhDPIHnlZW+ ahTMFedPhY25li5e12s0zOtex5X4jAdx1E5nPqZx2c4dcmxYOagNxalcJrCGIG75 701JaioNXGGf9TeKFzWZAQ== Received: from byapr05cu005.outbound.protection.outlook.com (mail-westusazon11010014.outbound.protection.outlook.com [52.101.85.14]) by mx0a-0064b401.pphosted.com (PPS) with ESMTPS id 4fm8ay0q1j-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Fri, 24 Jul 2026 13:04:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=dA335sajSNRtfI9hGTCZTAGEvVcFD79Cbzk324xs/DVlzyQ9lzltDHipdZO1a0zYjdsSuTVzINFEdD4Nd6fL+3Su8b3BWZ/fhkaxU1MweDjfSqK2WSD2Yjw/XPoOS8l5YkHMZ8NCHmrjnS5BT+r8rMUTs7Vtf3nKJEGPVLYd2C7uBY2ZLaXo7tdh7kk/a8rfaBrqnkVATMEmXKrvf3YeMuGcsGPDTZRsEutTDkvwe1YXtzZBze5Atl7NtKkM286Eeqb5O/ror/802ebX9HrASLESbOye+ogycwi47rLTcUin8jm26CkyLSIjruN55SavqN62o7092p67FEbO09GdXQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=+NFcXtWA/VF3/sOB88NaVGEEVYNqr3EMLxHm/LSwVM8=; b=bB0/fqyRftsGKU9wEZoh+8mOaIKHRKDxx5KojaPnnKf7T29kGjgk4iG8VTaiRXSauxjJf19VI0ZD5UIRlhPGakMouPZA3pyPnaOXZx5iVWTCkHOKb4tsF/5JkuHNaZX+i/2BeFGLcG1+T014yQcrr4xQ2fJ0WhD8jBjYEMdLOlN9I5mdGzQ1iOcq8wFGLcGuvOI22AxfGPkEClqM1rty5vbYRvJeQpLAG7aavPzFI4GUJaB7HmMPMVttNwm5O53oclzvtx5YI51aL76oEpssyYGEBPRZX/4n2OHUpw26a/gHTi1UtHa3lb7iZZy9GPcFmKShnhctiOIvjxhYaJx5aQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=windriver.com; dmarc=pass action=none header.from=windriver.com; dkim=pass header.d=windriver.com; arc=none Received: from IA3PR11MB9256.namprd11.prod.outlook.com (2603:10b6:208:57f::21) by PH8PR11MB6562.namprd11.prod.outlook.com (2603:10b6:510:1c1::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.245.10; Fri, 24 Jul 2026 20:04:46 +0000 Received: from IA3PR11MB9256.namprd11.prod.outlook.com ([fe80::8355:9462:c4fe:5a23]) by IA3PR11MB9256.namprd11.prod.outlook.com ([fe80::8355:9462:c4fe:5a23%4]) with mapi id 15.21.0245.012; Fri, 24 Jul 2026 20:04:46 +0000 From: Sumanth Gavini To: openembedded-core@lists.openembedded.org, alex.kanavin@gmail.com Cc: esparlin@cisco.com, mathieu.dubois-briand@bootlin.com, mattware@cisco.com, peter.marko@siemens.com, randy.macleod@windriver.com, sumanth.gavini@windriver.com Subject: [PATCH v9 8/8] libarchive: Make it work with rpm 6 Date: Fri, 24 Jul 2026 13:04:23 -0700 Message-ID: <20260724200424.954199-9-sumanth.gavini@windriver.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20260724200424.954199-1-sumanth.gavini@windriver.com> References: <20260724200424.954199-1-sumanth.gavini@windriver.com> X-ClientProxiedBy: SJ0PR03CA0003.namprd03.prod.outlook.com (2603:10b6:a03:33a::8) To IA3PR11MB9256.namprd11.prod.outlook.com (2603:10b6:208:57f::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: IA3PR11MB9256:EE_|PH8PR11MB6562:EE_ X-MS-Office365-Filtering-Correlation-Id: aae92ff6-c28c-4d5c-3203-08dee9becef8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|23010399003|376014|52116014|13003099007|38350700014|6133799003|29003799003|12006099003|56012099006|10067099003|4143699003|11063799006|25016099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: 3TlaTOW8xYbtJxWZchupA4lIo7GU5GDykY2j0IE9xdlkLZcATBt1xAgYE8kewtKvnVfD1HdV7OIy0a3vsnwvWOo0nShJy615aACqDPGMrbiXVAALo3UQ3GrZaDy2x/qQwBtdqPIuOMK99FJ1zQoKRfO8nC3gHBqYkKMiTfGOIinAK6tB8lOty6GVndES/iGE+ldAnrnMdCUImdSwf1LXO6Yaie2vU2JWUsx3QlycLLWap1eilkmtwJ3S0UWTLPi1Mspa2EtthOwlbx7zfJcqubQdrVLUx9hRBL+uzEx5iMT3dbv8MEMIZOLa+LP2b0vqLfjFTimZQwCNUIv4D9bPVCT3cMKzqLcL4vD60LEhuyyPasiZunndaTCk2N3j+f2r60BvzT3D1pviTQyjjXv8DJK7saPj0dhFJMpCoDmBH+zjqkbLBW8SSQworN48z10nTrEPpwzqcQL+Y27sl+LuV3Vue/ImQRPQyEp10BYENVvWHmqhHQSWnrim30ONTAGWJAKHeiXTaXXkVKIj9sxklX5s4zN7kv9ErZK765T6A64pscZjXosC4FZVsl7xde3AszLNL3zS2s99aNnbp0k0H31daJ4LyORBq6VCrCPNZ1/hyWzNJ4XRFUwrgBh/OzR02iCz6gffUBnAGAGPT1PbKAkXsGUfJB3dSPXXOveCETk= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA3PR11MB9256.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(23010399003)(376014)(52116014)(13003099007)(38350700014)(6133799003)(29003799003)(12006099003)(56012099006)(10067099003)(4143699003)(11063799006)(25016099003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: ZkYenR3iQK+oSngKmtHSGMJ2Q2TmYkEhpvyHpV++GfmigDcHFVNWLymOd8Hg12RzrQhT+Sw4ktM/6bGN28azmljVBsCGpT7wyzyxFxEpkyb/Yn/0pQqvfNQiwh5HZz+Jj3gkmLZE9zP9GrHin4RqPBquRSgzIK5Di9EpW2KvIHbukHCj1bHgS2bXVYrgr3GnXks1TSQWntNr9eDkM8UgSsB05lBsxabSmLsm7m9lzjkT5YsZ4A0eymW8F/B5KivdXNZI2GuTUxFALyZy18r82gBwjo9ZJgfUsN3UaUikzZAz6fA+PUNp50XeIBLAR5BJc/1fRwzyRz7i6itwTu1bMd4Ryj7OOBbEf3JkGTAWCHHWOe5oDcrkhfFkPmFULpxXN7JIW5tkvXf1E/5x6asDilXz07AM3obDRbdiC0y10OiPXkirwZxwm7rOxJqPqwVn55ET+gesZRB21I6oHNx29QZd003LcNP7DVkiO1lRjbxb8q+iRMwWsy4RVE1FDAOA9o5fo2LAl5ojgy45QrWRDWdu+vWZBl3fIOum/r9lxtdoeFvwTGdPU5j0OmiSI+5a7BKpUslVilu8EIXfgP09fypLy5IoA2+rcx2jRXLShUQNxkmuspSLbk+W0Gcgsn0lbgaZLKOKR1WQ3HUW+WFGeK3KyC0TAX6oO/Xh2w6LCib7FiQHBI/+9qB2nVuA/AtPEUMtVuxlw6OqZlj9DULoIm6z4nmwD+Okjb5hNILYCWRnmnH2HQ2AKoMOQEKXyIMLCmvqg/jT+kA7ZCJjoSaUV3R81f4+/2e+KA/IzYeoyQJbcOz3SG5xWsZs8hRsQaauxVp+c1r7lD/AOQiBb7SuRo64cFgPZ4hD9RQU34xBUmx6mUvdh3VP2ouTjDbaLnWIQscvErokPVu/oPIj591vDe3LdZHx5bsW/IYUEDiIu3Jm5GpM3TdJqQueQK4u/yvFVyqnA0uCahYG1EVL4N+X0Gm4KkaSwQjVS5z9e/gJedw2K9oAa9y9x4EBcnNC6wkC5ICQTaPbsaGqrZsOP0KBETbXryKOCB9t91jJYdAQgBTL+ZY9A3Q242ZWVhUtWZPlV64zMdJ++9dtb//DgsoGL/4bQtL2J5Dq+8K/nz5d0Bfo9XARjCIEqMoJUz8qiorQd6OurvPo6jOH0qHTWyv9iRrAcXWyXDDQhX3sX4uvxmVz1+UvJtnXFm4xOQzlMlrSyQAJsPSq5dboU1yHjerBZNfgud6EZCnCrwcQq5pt3CrFSgSvpo1pg/qy7dj8aNcgpHKwi/7D3LB9s/wlcyyJtl7WweqhcOfhzqVEPhSUvS07bWkkZ3zBeXQsX7dD5biE9I0n1zVmI5b3M9gzJUvgYuf+Y3fehpUfH37xwMe8ThrdzI+o3pflCa+gEAJG3cYYSNi/6CPynItPLWQPGN9TNWT6b6/X+Yzq2Jsa2CGSMsY783WMZB3LDX7J1oXyvaZgJmMC9J8wcsZv79MmJ4xeKZIf+5fxemtmdu/agPSgZQsTSSvxpcBNWbDTRh7FKKdDqVBLC+r8JFXgNB+ZaZaJ0pYqdbbNFZODQYuUR7L2rJZWUss08lRBdrQLOcoK6JSJ50fxnfw1u3rm6dNjINklh9dlj4d4TkwGwWaPHy/os63Y2MNc/lBf+Fi0pDIYTKn0dp7gMUP8znPAnVSoplzDmxPOmet0D5zxDXZqTlL3Fgby9B76I//s+FJJa/6BZtUL+Pws0wFUaEWG2+g8hx6VtTwtt2/GW1qJhBVWdkAbg6k= X-Exchange-RoutingPolicyChecked: pQGiUf4NLeLfDM5sUc9GjoQ53fkc+Y4+5G2C2hG7vYQsNs/zVD/IAGSF9b0TmHjjExJcpWrFsGIfZ3GoAQy47v+vj9P1vGg5wLppQmbLujo9XD+p3t2rPL6UBjpzFHPaifT9vgzZrGBt1G8azn8cJxuzrY/wgcgLCETMFajZ97popcz7FghPy1a/d7Y0+fibZ7N6BTUNROo5DV0LxeLOdFvo+G3L0bayFA0sfzp24OtKPfFwD8WJdwhXekE9uT4fHSq9E2naDKNR0ZtTZFqZ5Pv6cGCYUa52+mHqI+bVjk0vqjsXxLvanH9kY2ZsPaO7Q0bJTLyO8X4VFUztL9/4oA== X-OriginatorOrg: windriver.com X-MS-Exchange-CrossTenant-Network-Message-Id: aae92ff6-c28c-4d5c-3203-08dee9becef8 X-MS-Exchange-CrossTenant-AuthSource: IA3PR11MB9256.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2026 20:04:46.0842 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8ddb2873-a1ad-4a18-ae4e-4644631433be X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: yd/7rVllD08Hzsm1xjaLH3sq281jN+RGeLg22vYbOWL4PJiE8zrp63fK64RajWtGJm0B0edZe9TMkF1kwfHlmwJkkWzw0ziDIHtECMNbBT4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR11MB6562 X-Proofpoint-Reinject: loops=2 maxloops=12 X-Proofpoint-ORIG-GUID: N72Squ6ZRFXNwZ6xNfSeq3D9r_l4_tCp X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzI0MDE4MCBTYWx0ZWRfXwPRIAlmyBuuD VTBmZGlzPjtHlfKteEkRjQlUthF86NB7y4hVRflO+1UfeRpDw58sQ+lUFUAEqVtpnzZwzXydlDQ S0SfWL+/5hGQh0KZxZGpm2Ne+9X5SXOjTD0DRN5XKXKSQ7Mqlq1zC1tJKb56YzW89t1YNrv6/CV HQ/A4aFUiLV83o9ta/vUsWQpQg0EM4I7tDfL6p+H8ybNY4ML4F8Pa4fxs4ZZVEFQcL7unJxgULP toLiH7ChkHehRIa/li1A/iPk1jY5ZdkikEtTnsfRhp69shUBNQIQv5bCym/GyFrmpg9fRLS+lMV Crg9SFr7Ya2EvqkFAZIJ3CbxMOTe+q4i07ct0cXbvihGrux1sybgh/k+xAbKZIbfu1DOoOIyj1k bcyo/3tNQz6em74FimKFOhCoA+YMXIDah5Wglfy2EWwwQysLsZPuwvm5XAazt8FWE1/q34v0DCy wsVfGslA8j9PPWlPGUA== X-Authority-Analysis: v=2.4 cv=LOFWhpW9 c=1 sm=1 tr=0 ts=6a63c560 cx=c_pps a=guboMCJq5DUNhCsQxgR9jQ==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=RAioF0-LDSMA:10 a=VkNPw1HP01LnGYTKEx00:22 a=bi6dqmuHe4P4UrxVR6um:22 a=HK-ge7EqtdluswH-FwHe:22 a=NEAV23lmAAAA:8 a=3uWsZ661AAAA:8 a=t7CeM3EgAAAA:8 a=euk1RaLsmzy09tC774oA:9 a=fR96lXpKwm2L3qOM:21 a=fYNom5PXsM5enKJDCoVv:22 a=FdTzh2GWekK77mhwV6Dw:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzI0MDE4MCBTYWx0ZWRfX7Old4RncL5F/ /Vxu4GlvZlYwOqQyynwiV7hCPphvFFf91dQkC3HlhQuqDFWbcualG9+DmZOhss0qLFcyLOS2al0 HBNrT5g4Qj9w7QvldJAfLenlMndbFbt2Su+7pi8jXzR/07rYyqUB X-Proofpoint-GUID: AP5GGyb3B8dd8ISTr4uyjGzIF9tG1eBP X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-24_04,2026-07-24_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 bulkscore=0 clxscore=1015 impostorscore=0 adultscore=0 lowpriorityscore=0 priorityscore=1501 suspectscore=0 malwarescore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607240180 List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Fri, 24 Jul 2026 20:04:54 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/241949 The patch is from: https://github.com/libarchive/libarchive/pull/2846 Fixed: $ oe-selftest -r debuginfod.Debuginfod.test_debuginfod_native cannot open archive from pipe /path/to/tmp-debuginfod/work/x86-64-v3-poky-linux/xz/5.8.2/localpkgfeed/x86_64_v3/bash-locale-vi-5.3-r0.x86_64_v3.rpm libarchive error: cannot open archive from pipe: Unrecognized archive format exceptions encountered during archive scan Signed-off-by: Robert Yang Signed-off-by: Sumanth Gavini --- ...end_filter-Keep-iterating-even-if-na.patch | 49 + ...egister_bidder-Allow-ARCHIVE_STATE_H.patch | 46 + ...er-into-a-proper-format-supporting-b.patch | 1693 +++++++++++++++++ .../libarchive/libarchive_3.8.8.bb | 3 + 4 files changed, 1791 insertions(+) create mode 100644 meta/recipes-extended/libarchive/libarchive/0001-archive_read_append_filter-Keep-iterating-even-if-na.patch create mode 100644 meta/recipes-extended/libarchive/libarchive/0002-__archive_read_register_bidder-Allow-ARCHIVE_STATE_H.patch create mode 100644 meta/recipes-extended/libarchive/libarchive/0003-Convert-RPM-reader-into-a-proper-format-supporting-b.patch diff --git a/meta/recipes-extended/libarchive/libarchive/0001-archive_read_append_filter-Keep-iterating-even-if-na.patch b/meta/recipes-extended/libarchive/libarchive/0001-archive_read_append_filter-Keep-iterating-even-if-na.patch new file mode 100644 index 0000000000..9de4531103 --- /dev/null +++ b/meta/recipes-extended/libarchive/libarchive/0001-archive_read_append_filter-Keep-iterating-even-if-na.patch @@ -0,0 +1,49 @@ +From 26401df2e74e6d72e86fab165445949c9dd3eba9 Mon Sep 17 00:00:00 2001 +From: Davide Beatrici +Date: Sat, 21 Feb 2026 02:55:40 +0100 +Subject: [PATCH 1/3] archive_read_append_filter(): Keep iterating even if name + is null + +While working on the RPM format I noticed the zstd filter failed to append. + +Turns out there are two unknown filters that are registered with a null name: + +bidder candidate bzip2 +bidder candidate compress (.Z) +bidder candidate gzip +bidder candidate lzip +bidder candidate lzma +bidder candidate xz +bidder candidate uu +bidder candidate lrzip +bidder candidate (null) +bidder candidate (null) +bidder candidate lz4 +bidder candidate zstd + +I'm not sure if anonymous filters are expected behavior, but I believe this change doesn't hurt. + +Upstream-Status: Submitted [https://github.com/libarchive/libarchive/pull/2846] + +Signed-off-by: Robert Yang +Signed-off-by: Sumanth Gavini +--- + libarchive/archive_read_append_filter.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libarchive/archive_read_append_filter.c b/libarchive/archive_read_append_filter.c +index cd88df11..9475b704 100644 +--- a/libarchive/archive_read_append_filter.c ++++ b/libarchive/archive_read_append_filter.c +@@ -117,7 +117,7 @@ archive_read_append_filter(struct archive *_a, int code) + bidder = a->bidders; + for (i = 1; i < number_bidders; i++, bidder++) + { +- if (!bidder->name || !strcmp(bidder->name, str)) ++ if (bidder->name && !strcmp(bidder->name, str)) + break; + } + if (!bidder->name || strcmp(bidder->name, str)) +-- +2.49.0 + diff --git a/meta/recipes-extended/libarchive/libarchive/0002-__archive_read_register_bidder-Allow-ARCHIVE_STATE_H.patch b/meta/recipes-extended/libarchive/libarchive/0002-__archive_read_register_bidder-Allow-ARCHIVE_STATE_H.patch new file mode 100644 index 0000000000..b3a21330e6 --- /dev/null +++ b/meta/recipes-extended/libarchive/libarchive/0002-__archive_read_register_bidder-Allow-ARCHIVE_STATE_H.patch @@ -0,0 +1,46 @@ +From 8eafdb93fd551bfed7184bc7519f5d455811cefb Mon Sep 17 00:00:00 2001 +From: Davide Beatrici +Date: Sat, 21 Feb 2026 05:33:36 +0100 +Subject: [PATCH 2/3] __archive_read_register_bidder(): Allow + ARCHIVE_STATE_HEADER, check if already registered + +This allows formats to apply filters when they know what they need. + +In the case of RPM, that's after parsing the (uncompressed) header. + +Upstream-Status: Submitted [https://github.com/libarchive/libarchive/pull/2846] + +Signed-off-by: Robert Yang +Signed-off-by: Sumanth Gavini +--- + libarchive/archive_read.c | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git a/libarchive/archive_read.c b/libarchive/archive_read.c +index c9b9d598..bc6305ae 100644 +--- a/libarchive/archive_read.c ++++ b/libarchive/archive_read.c +@@ -1232,13 +1232,18 @@ __archive_read_register_bidder(struct archive_read *a, + int i, number_slots; + + archive_check_magic(&a->archive, ARCHIVE_READ_MAGIC, +- ARCHIVE_STATE_NEW, "__archive_read_register_bidder"); ++ ARCHIVE_STATE_NEW | ARCHIVE_STATE_HEADER, ++ "__archive_read_register_bidder"); + + number_slots = sizeof(a->bidders) / sizeof(a->bidders[0]); + + for (i = 0; i < number_slots; i++) { +- if (a->bidders[i].vtable != NULL) ++ if (a->bidders[i].vtable != NULL) { ++ if (a->bidders[i].vtable == vtable) ++ /* Already registered. */ ++ return (ARCHIVE_OK); + continue; ++ } + memset(a->bidders + i, 0, sizeof(a->bidders[0])); + bidder = (a->bidders + i); + bidder->data = bidder_data; +-- +2.49.0 + diff --git a/meta/recipes-extended/libarchive/libarchive/0003-Convert-RPM-reader-into-a-proper-format-supporting-b.patch b/meta/recipes-extended/libarchive/libarchive/0003-Convert-RPM-reader-into-a-proper-format-supporting-b.patch new file mode 100644 index 0000000000..0e12e58e86 --- /dev/null +++ b/meta/recipes-extended/libarchive/libarchive/0003-Convert-RPM-reader-into-a-proper-format-supporting-b.patch @@ -0,0 +1,1693 @@ +From e8dcbdba0e3d2369a93d335907fc7f7c21806872 Mon Sep 17 00:00:00 2001 +From: Davide Beatrici +Signed-off-by: Sumanth Gavini +--- + Makefile.am | 2 +- + contrib/android/Android.mk | 2 +- + libarchive/CMakeLists.txt | 1 - + libarchive/archive.h | 6 +- + libarchive/archive_read_append_filter.c | 4 - + libarchive/archive_read_private.h | 2 +- + libarchive/archive_read_set_format.c | 3 + + libarchive/archive_read_support_filter_all.c | 2 - + .../archive_read_support_filter_by_code.c | 2 - + libarchive/archive_read_support_filter_rpm.c | 252 ---- + libarchive/archive_read_support_format_all.c | 1 + + libarchive/archive_read_support_format_rpm.c | 1126 +++++++++++++++++ + libarchive/test/test_archive_read_support.c | 2 +- + .../test_read_format_cpio_svr4_bzip2_rpm.c | 4 +- + .../test_read_format_cpio_svr4_gzip_rpm.c | 4 +- + libarchive/test/test_read_format_huge_rpm.c | 9 +- + 16 files changed, 1144 insertions(+), 278 deletions(-) + delete mode 100644 libarchive/archive_read_support_filter_rpm.c + create mode 100644 libarchive/archive_read_support_format_rpm.c + +diff --git a/Makefile.am b/Makefile.am +index 58bc73e..bc441c1 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -191,7 +191,6 @@ libarchive_la_SOURCES= \ + libarchive/archive_read_support_filter_lzop.c \ + libarchive/archive_read_support_filter_none.c \ + libarchive/archive_read_support_filter_program.c \ +- libarchive/archive_read_support_filter_rpm.c \ + libarchive/archive_read_support_filter_uu.c \ + libarchive/archive_read_support_filter_xz.c \ + libarchive/archive_read_support_filter_zstd.c \ +@@ -208,6 +207,7 @@ libarchive_la_SOURCES= \ + libarchive/archive_read_support_format_rar.c \ + libarchive/archive_read_support_format_rar5.c \ + libarchive/archive_read_support_format_raw.c \ ++ libarchive/archive_read_support_format_rpm.c \ + libarchive/archive_read_support_format_tar.c \ + libarchive/archive_read_support_format_warc.c \ + libarchive/archive_read_support_format_xar.c \ +diff --git a/contrib/android/Android.mk b/contrib/android/Android.mk +index 9e1c72f..d09d721 100644 +--- a/contrib/android/Android.mk ++++ b/contrib/android/Android.mk +@@ -74,7 +74,6 @@ libarchive_src_files := libarchive/archive_acl.c \ + libarchive/archive_read_support_filter_lzop.c \ + libarchive/archive_read_support_filter_none.c \ + libarchive/archive_read_support_filter_program.c \ +- libarchive/archive_read_support_filter_rpm.c \ + libarchive/archive_read_support_filter_uu.c \ + libarchive/archive_read_support_filter_xz.c \ + libarchive/archive_read_support_filter_zstd.c \ +@@ -91,6 +90,7 @@ libarchive_src_files := libarchive/archive_acl.c \ + libarchive/archive_read_support_format_rar.c \ + libarchive/archive_read_support_format_rar5.c \ + libarchive/archive_read_support_format_raw.c \ ++ libarchive/archive_read_support_format_rpm.c \ + libarchive/archive_read_support_format_tar.c \ + libarchive/archive_read_support_format_warc.c \ + libarchive/archive_read_support_format_xar.c \ +diff --git a/libarchive/CMakeLists.txt b/libarchive/CMakeLists.txt +index b296637..00e52c1 100644 +--- a/libarchive/CMakeLists.txt ++++ b/libarchive/CMakeLists.txt +@@ -93,7 +93,6 @@ SET(libarchive_SOURCES + archive_read_support_filter_lzop.c + archive_read_support_filter_none.c + archive_read_support_filter_program.c +- archive_read_support_filter_rpm.c + archive_read_support_filter_uu.c + archive_read_support_filter_xz.c + archive_read_support_filter_zstd.c +diff --git a/libarchive/archive.h b/libarchive/archive.h +index 159a3d5..8742871 100644 +--- a/libarchive/archive.h ++++ b/libarchive/archive.h +@@ -314,7 +314,7 @@ typedef const char *archive_passphrase_callback(struct archive *, + #define ARCHIVE_FILTER_LZMA 5 + #define ARCHIVE_FILTER_XZ 6 + #define ARCHIVE_FILTER_UU 7 +-#define ARCHIVE_FILTER_RPM 8 ++/*#define ARCHIVE_FILTER_RPM 8*/ + #define ARCHIVE_FILTER_LZIP 9 + #define ARCHIVE_FILTER_LRZIP 10 + #define ARCHIVE_FILTER_LZOP 11 +@@ -385,6 +385,7 @@ typedef const char *archive_passphrase_callback(struct archive *, + #define ARCHIVE_FORMAT_7ZIP 0xE0000 + #define ARCHIVE_FORMAT_WARC 0xF0000 + #define ARCHIVE_FORMAT_RAR_V5 0x100000 ++#define ARCHIVE_FORMAT_RPM 0x110000 + + /* + * Codes returned by archive_read_format_capabilities(). +@@ -478,7 +479,6 @@ __LA_DECL int archive_read_support_filter_program(struct archive *, + __LA_DECL int archive_read_support_filter_program_signature + (struct archive *, const char * /* cmd */, + const void * /* match */, size_t); +-__LA_DECL int archive_read_support_filter_rpm(struct archive *); + __LA_DECL int archive_read_support_filter_uu(struct archive *); + __LA_DECL int archive_read_support_filter_xz(struct archive *); + __LA_DECL int archive_read_support_filter_zstd(struct archive *); +@@ -499,6 +499,8 @@ __LA_DECL int archive_read_support_format_mtree(struct archive *); + __LA_DECL int archive_read_support_format_rar(struct archive *); + __LA_DECL int archive_read_support_format_rar5(struct archive *); + __LA_DECL int archive_read_support_format_raw(struct archive *); ++ ++__LA_DECL int archive_read_support_format_rpm(struct archive *); + __LA_DECL int archive_read_support_format_tar(struct archive *); + __LA_DECL int archive_read_support_format_warc(struct archive *); + __LA_DECL int archive_read_support_format_xar(struct archive *); +diff --git a/libarchive/archive_read_append_filter.c b/libarchive/archive_read_append_filter.c +index 04c3627..44f14c8 100644 +--- a/libarchive/archive_read_append_filter.c ++++ b/libarchive/archive_read_append_filter.c +@@ -80,10 +80,6 @@ archive_read_append_filter(struct archive *_a, int code) + str = "uu"; + r1 = archive_read_support_filter_uu(_a); + break; +- case ARCHIVE_FILTER_RPM: +- str = "rpm"; +- r1 = archive_read_support_filter_rpm(_a); +- break; + case ARCHIVE_FILTER_LZ4: + str = "lz4"; + r1 = archive_read_support_filter_lz4(_a); +diff --git a/libarchive/archive_read_private.h b/libarchive/archive_read_private.h +index 0c374f4..7efcf51 100644 +--- a/libarchive/archive_read_private.h ++++ b/libarchive/archive_read_private.h +@@ -205,7 +205,7 @@ struct archive_read { + int (*cleanup)(struct archive_read *); + int (*format_capabilties)(struct archive_read *); + int (*has_encrypted_entries)(struct archive_read *); +- } formats[16]; ++ } formats[18]; + struct archive_format_descriptor *format; /* Active format. */ + + /* +diff --git a/libarchive/archive_read_set_format.c b/libarchive/archive_read_set_format.c +index 552ab12..6a176e3 100644 +--- a/libarchive/archive_read_set_format.c ++++ b/libarchive/archive_read_set_format.c +@@ -81,6 +81,9 @@ archive_read_set_format(struct archive *_a, int code) + case ARCHIVE_FORMAT_RAW: + str = "raw"; + break; ++ case ARCHIVE_FORMAT_RPM: ++ str = "rpm"; ++ break; + case ARCHIVE_FORMAT_TAR: + str = "tar"; + break; +diff --git a/libarchive/archive_read_support_filter_all.c b/libarchive/archive_read_support_filter_all.c +index f086773..e611c62 100644 +--- a/libarchive/archive_read_support_filter_all.c ++++ b/libarchive/archive_read_support_filter_all.c +@@ -60,8 +60,6 @@ archive_read_support_filter_all(struct archive *a) + archive_read_support_filter_xz(a); + /* The decode code doesn't use an outside library. */ + archive_read_support_filter_uu(a); +- /* The decode code doesn't use an outside library. */ +- archive_read_support_filter_rpm(a); + /* The decode code always uses "lrzip -d -q" command-line. */ + archive_read_support_filter_lrzip(a); + /* Lzop decompress falls back to "lzop -d" command-line. */ +diff --git a/libarchive/archive_read_support_filter_by_code.c b/libarchive/archive_read_support_filter_by_code.c +index 4c8b6cb..1c9a405 100644 +--- a/libarchive/archive_read_support_filter_by_code.c ++++ b/libarchive/archive_read_support_filter_by_code.c +@@ -49,8 +49,6 @@ archive_read_support_filter_by_code(struct archive *a, int filter_code) + return archive_read_support_filter_xz(a); + case ARCHIVE_FILTER_UU: + return archive_read_support_filter_uu(a); +- case ARCHIVE_FILTER_RPM: +- return archive_read_support_filter_rpm(a); + case ARCHIVE_FILTER_LZIP: + return archive_read_support_filter_lzip(a); + case ARCHIVE_FILTER_LRZIP: +diff --git a/libarchive/archive_read_support_filter_rpm.c b/libarchive/archive_read_support_filter_rpm.c +deleted file mode 100644 +index 1213df6..0000000 +--- a/libarchive/archive_read_support_filter_rpm.c ++++ /dev/null +@@ -1,252 +0,0 @@ +-/*- +- * Copyright (c) 2009 Michihiro NAKAJIMA +- * All rights reserved. +- * +- * Redistribution and use in source and binary forms, with or without +- * modification, are permitted provided that the following conditions +- * are met: +- * 1. Redistributions of source code must retain the above copyright +- * notice, this list of conditions and the following disclaimer. +- * 2. Redistributions in binary form must reproduce the above copyright +- * notice, this list of conditions and the following disclaimer in the +- * documentation and/or other materials provided with the distribution. +- * +- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR +- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +- * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, +- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +- */ +- +-#include "archive_platform.h" +- +-#ifdef HAVE_ERRNO_H +-#include +-#endif +-#ifdef HAVE_STDLIB_H +-#include +-#endif +- +-#include "archive.h" +-#include "archive_endian.h" +-#include "archive_private.h" +-#include "archive_read_private.h" +- +-struct rpm { +- int data_reached; +-}; +-#define RPM_LEAD_SIZE 96 /* Size of 'Lead' section. */ +-#define RPM_MIN_HEAD_SIZE 16 /* Minimum size of 'Head'. */ +- +-static int rpm_bidder_bid(struct archive_read_filter_bidder *, +- struct archive_read_filter *); +-static int rpm_bidder_init(struct archive_read_filter *); +- +-static ssize_t rpm_filter_read(struct archive_read_filter *, +- const void **); +-static int rpm_filter_close(struct archive_read_filter *); +- +-#if ARCHIVE_VERSION_NUMBER < 4000000 +-/* Deprecated; remove in libarchive 4.0 */ +-int +-archive_read_support_compression_rpm(struct archive *a) +-{ +- return archive_read_support_filter_rpm(a); +-} +-#endif +- +-static const struct archive_read_filter_bidder_vtable +-rpm_bidder_vtable = { +- .bid = rpm_bidder_bid, +- .init = rpm_bidder_init, +-}; +- +-int +-archive_read_support_filter_rpm(struct archive *_a) +-{ +- struct archive_read *a = (struct archive_read *)_a; +- +- return __archive_read_register_bidder(a, NULL, "rpm", +- &rpm_bidder_vtable); +-} +- +-static int +-rpm_bidder_bid(struct archive_read_filter_bidder *self, +- struct archive_read_filter *filter) +-{ +- const unsigned char *b; +- int bits_checked; +- +- (void)self; /* UNUSED */ +- +- b = __archive_read_filter_ahead(filter, 8, NULL); +- if (b == NULL) +- return (0); +- +- bits_checked = 0; +- /* +- * Verify Header Magic Bytes : 0XED 0XAB 0XEE 0XDB +- */ +- if (memcmp(b, "\xED\xAB\xEE\xDB", 4) != 0) +- return (0); +- bits_checked += 32; +- /* +- * Check major version. +- */ +- if (b[4] != 3 && b[4] != 4) +- return (0); +- bits_checked += 8; +- /* +- * Check package type; binary or source. +- */ +- if (b[6] != 0) +- return (0); +- bits_checked += 8; +- if (b[7] != 0 && b[7] != 1) +- return (0); +- bits_checked += 8; +- +- return (bits_checked); +-} +- +-static const struct archive_read_filter_vtable +-rpm_reader_vtable = { +- .read = rpm_filter_read, +- .close = rpm_filter_close, +-}; +- +-static int +-rpm_bidder_init(struct archive_read_filter *self) +-{ +- struct rpm *rpm; +- +- self->code = ARCHIVE_FILTER_RPM; +- self->name = "rpm"; +- +- rpm = calloc(1, sizeof(*rpm)); +- if (rpm == NULL) { +- archive_set_error(&self->archive->archive, ENOMEM, +- "Can't allocate data for rpm"); +- return (ARCHIVE_FATAL); +- } +- +- self->data = rpm; +- rpm->data_reached = 0; +- self->vtable = &rpm_reader_vtable; +- +- return (ARCHIVE_OK); +-} +- +-static ssize_t +-skip_padding(struct archive_read_filter *self) +-{ +- const unsigned char *h; +- ssize_t avail, count, r; +- +- do { +- h = __archive_read_filter_ahead(self->upstream, 1, &avail); +- if (h == NULL) +- return (ARCHIVE_FATAL); +- for (count = 0; count < avail && *h++ == '\0'; count++) +- ; +- r = __archive_read_filter_consume(self->upstream, count); +- if (r < 0) +- return (r); +- } while (count == avail); +- +- return (ARCHIVE_OK); +-} +- +-static ssize_t +-skip_prologue(struct archive_read_filter *self) +-{ +- const unsigned char *h; +- ssize_t r; +- int header, seen_header = 0; +- +- /* Skip lead size. */ +- r = __archive_read_filter_consume(self->upstream, RPM_LEAD_SIZE); +- if (r < 0) +- return (r); +- +- do { +- /* Read header intro. */ +- h = __archive_read_filter_ahead(self->upstream, +- RPM_MIN_HEAD_SIZE, NULL); +- if (h == NULL) +- return (ARCHIVE_FATAL); +- +- header = (memcmp(h, "\x8E\xAD\xE8\x01", 4) == 0); +- if (header) { +- int64_t bytes, length, section; +- +- seen_header = 1; +- +- /* Calculate header length. */ +- section = archive_be32dec(h + 8); +- bytes = archive_be32dec(h + 12); +- length = RPM_MIN_HEAD_SIZE + section * 16 + bytes; +- +- /* Skip header. */ +- r = __archive_read_filter_consume(self->upstream, +- length); +- if (r < 0) +- return (r); +- +- /* Skip padding. */ +- r = skip_padding(self); +- if (r != ARCHIVE_OK) +- return (r); +- } +- } while (header); +- +- /* At least one header must have been encountered. */ +- if (!seen_header) { +- archive_set_error( +- &self->archive->archive, +- ARCHIVE_ERRNO_FILE_FORMAT, +- "Unrecognized rpm header"); +- return (ARCHIVE_FATAL); +- } +- +- return (ARCHIVE_OK); +-} +- +-static ssize_t +-rpm_filter_read(struct archive_read_filter *self, const void **buff) +-{ +- struct rpm *rpm; +- ssize_t r; +- +- rpm = (struct rpm *)self->data; +- +- if (!rpm->data_reached) { +- r = skip_prologue(self); +- if (r != ARCHIVE_OK) +- return (r); +- rpm->data_reached = 1; +- } +- +- *buff = __archive_read_filter_ahead(self->upstream, 1, &r); +- if (r > 0) +- __archive_read_filter_consume(self->upstream, r); +- +- return r; +-} +- +-static int +-rpm_filter_close(struct archive_read_filter *self) +-{ +- struct rpm *rpm; +- +- rpm = (struct rpm *)self->data; +- free(rpm); +- +- return (ARCHIVE_OK); +-} +- +diff --git a/libarchive/archive_read_support_format_all.c b/libarchive/archive_read_support_format_all.c +index 3b53c9a..067f274 100644 +--- a/libarchive/archive_read_support_format_all.c ++++ b/libarchive/archive_read_support_format_all.c +@@ -58,6 +58,7 @@ archive_read_support_format_all(struct archive *a) + archive_read_support_format_empty(a); + archive_read_support_format_lha(a); + archive_read_support_format_mtree(a); ++ archive_read_support_format_rpm(a); + archive_read_support_format_tar(a); + archive_read_support_format_xar(a); + archive_read_support_format_warc(a); +diff --git a/libarchive/archive_read_support_format_rpm.c b/libarchive/archive_read_support_format_rpm.c +new file mode 100644 +index 0000000..fe0e500 +--- /dev/null ++++ b/libarchive/archive_read_support_format_rpm.c +@@ -0,0 +1,1126 @@ ++/*- ++ * Copyright (c) 2026 Davide Beatrici ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++ ++#include "archive_platform.h" ++ ++#ifdef HAVE_ERRNO_H ++#include ++#endif ++ ++#ifdef HAVE_STDLIB_H ++#include ++#endif ++#ifdef HAVE_STRING_H ++#include ++#endif ++ ++#include "archive.h" ++#include "archive_endian.h" ++#include "archive_entry.h" ++#include "archive_entry_locale.h" ++#include "archive_private.h" ++#include "archive_read_private.h" ++ ++#define MAX_NFILES 100000 ++#define STR_SIZE_LIMIT (1024 * 1024) /* 1 MiB */ ++ ++#define LEAD_MAGIC "\xed\xab\xee\xdb" ++#define HEADER_MAGIC "\x8e\xad\xe8\x01\x00\x00\x00\x00" ++ ++#define CPIO_END_MARK "TRAILER!!!" ++#define CPIO_END_MARK_SIZE 10 ++ ++#define CPIO_HEADER_STR_SIZE 16 ++#define CPIO_HEADER_SVR_SIZE 110 ++#define CPIO_HEADER_SVR_PATH_OFF 94 ++ ++#define CPIO_MAGIC_SIZE 6 ++#define CPIO_MAGIC_STR "07070X" ++#define CPIO_MAGIC_SVR4_CRC "070702" ++#define CPIO_MAGIC_SVR4_NOCRC "070701" ++ ++#define TAG_FILESIZES 1028 ++#define TAG_FILEMODES 1030 ++#define TAG_FILERDEVS 1033 ++#define TAG_FILEMTIMES 1034 ++#define TAG_FILEUSERNAMES 1039 ++#define TAG_FILEGROUPNAMES 1040 ++#define TAG_FILEDEVICES 1095 ++#define TAG_FILEINODES 1096 ++ ++#define TAG_DIRINDEXES 1116 ++#define TAG_BASENAMES 1117 ++#define TAG_DIRNAMES 1118 ++ ++#define TAG_PAYLOADCOMPRESSOR 1125 ++ ++#define TAG_LONGFILESIZES 5008 ++ ++enum rpm_cpio_format { ++ CPIO_UNKNOWN, ++ CPIO_STR, ++ CPIO_SVR4_CRC, ++ CPIO_SVR4_NOCRC ++}; ++ ++struct rpm_file_info { ++ char *pathname; ++ char *uname; ++ char *gname; ++ uint64_t size; ++ uint16_t mode; ++ int32_t dev; ++ int16_t rdev; ++ uint32_t mtime; ++ uint32_t ino; ++}; ++ ++struct rpm_inode_info { ++ uint32_t n_files; ++ struct rpm_file_info **files; ++ uint32_t n_processed; ++}; ++ ++struct rpm_inode_temp_entry { ++ uint64_t ino; ++ struct rpm_file_info **files; ++ uint32_t n_files; ++ size_t capacity; ++ struct rpm_inode_temp_entry *next; ++}; ++ ++struct rpm_lead { ++ unsigned char magic[4]; ++ unsigned char major, minor; ++ short type; ++ short archnum; ++ char name[66]; ++ short osnum; ++ short signature_type; ++ char reserved[16]; ++}; ++ ++struct rpm_header { ++ unsigned char magic[8]; ++ uint32_t n_entries; ++ uint32_t data_size; ++}; ++ ++struct rpm_entry { ++ uint32_t tag; ++ uint32_t type; ++ int32_t offset; ++ uint32_t count; ++}; ++ ++struct rpm { ++ enum { ++ ST_LEAD, ++ ST_HEADER, ++ ST_PADDING, ++ ST_ARCHIVE ++ } state; ++ uint8_t first_header; ++ ++ char *compressor; ++ ++ uint32_t n_files; ++ uint32_t n_inodes; ++ struct rpm_file_info *files; ++ struct rpm_inode_info *inodes; ++ ++ struct inode_hash_entry { ++ uint64_t ino; ++ struct rpm_inode_info *info; ++ struct inode_hash_entry *next; ++ } **inode_hash; ++ ++ size_t inode_hash_size; ++ ++ ssize_t entry_bytes_remaining; ++ ssize_t entry_bytes_unconsumed; ++ ssize_t entry_offset; ++ ssize_t entry_padding; ++}; ++ ++static int archive_read_format_rpm_bid(struct archive_read *, int); ++static int archive_read_format_rpm_read_header(struct archive_read *, ++ struct archive_entry *); ++static int archive_read_format_rpm_read_data(struct archive_read *, ++ const void **, size_t *, int64_t *); ++static int archive_read_format_rpm_read_data_skip(struct archive_read *); ++static int archive_read_format_rpm_cleanup(struct archive_read *); ++ ++static int rpm_add_entry(struct archive_read *, struct archive_entry *); ++static int rpm_parse_main_header(struct archive_read *, ++ const struct rpm_header *header); ++ ++static struct rpm_inode_info *rpm_get_inode(struct archive_read *, uint32_t); ++static enum rpm_cpio_format rpm_get_cpio_format(struct archive_read *); ++static uint8_t rpm_is_eof(struct archive_read *); ++ ++static uint16_t rpm_be16_at(const void *buf_start, ++ const void *buf_end, const size_t off); ++static uint32_t rpm_be32_at(const void *buf_start, ++ const void *buf_end, const size_t off); ++static uint64_t rpm_be64_at(const void *buf_start, ++ const void *buf_end, const size_t off); ++ ++static inline size_t rpm_limit_bytes(size_t, size_t); ++static char *rpm_strndup(struct archive_read *, const char *, size_t); ++static char *rpm_strread(struct archive_read *, size_t); ++static void rpm_strcat(struct archive_string *, const void *, const void *); ++static const char *rpm_strlist_at(const char *, const void *, ++ uint64_t, uint64_t); ++ ++static void rpm_free_inode_temp_hash(struct rpm_inode_temp_entry **, size_t); ++ ++int ++archive_read_support_format_rpm(struct archive *_a) ++{ ++ struct archive_read *a = (struct archive_read *)_a; ++ struct rpm *rpm; ++ int r; ++ ++ archive_check_magic(_a, ARCHIVE_READ_MAGIC, ++ ARCHIVE_STATE_NEW, "archive_read_support_format_rpm"); ++ ++ rpm = calloc(1, sizeof(*rpm)); ++ if (!rpm) { ++ archive_set_error(&a->archive, ++ ENOMEM, ++ "Can't allocate rpm data"); ++ return ARCHIVE_FATAL; ++ } ++ ++ r = __archive_read_register_format(a, ++ rpm, ++ "rpm", ++ archive_read_format_rpm_bid, ++ NULL, ++ archive_read_format_rpm_read_header, ++ archive_read_format_rpm_read_data, ++ archive_read_format_rpm_read_data_skip, ++ NULL, ++ archive_read_format_rpm_cleanup, ++ NULL, ++ NULL); ++ ++ if (r != ARCHIVE_OK) ++ free(rpm); ++ ++ return ARCHIVE_OK; ++} ++ ++static int ++archive_read_format_rpm_bid(struct archive_read *a, int best_bid) ++{ ++ const unsigned char *p; ++ ++ (void)best_bid; ++ ++ if ((p = __archive_read_ahead(a, sizeof(LEAD_MAGIC) - 1, NULL)) == NULL) ++ return -1; ++ ++ if (memcmp(p, LEAD_MAGIC, sizeof(LEAD_MAGIC) - 1) == 0) ++ return 48; ++ else ++ return ARCHIVE_WARN; ++} ++ ++static int ++archive_read_format_rpm_read_header(struct archive_read *a, ++ struct archive_entry *entry) ++{ ++ struct rpm *rpm = a->format->data; ++ const unsigned char *p; ++ int r; ++ ++ a->archive.archive_format = ARCHIVE_FORMAT_RPM; ++ ++ for (;;) { ++ switch (rpm->state) { ++ case ST_LEAD: { ++ const struct rpm_lead *lead = __archive_read_ahead(a, sizeof(*lead), NULL); ++ if (lead == NULL) { ++ archive_set_error(&a->archive, ++ ARCHIVE_ERRNO_FILE_FORMAT, ++ "Truncated lead"); ++ return ARCHIVE_FATAL; ++ } ++ ++ if (memcmp(lead->magic, LEAD_MAGIC, sizeof(lead->magic)) != 0) { ++ archive_set_error(&a->archive, ++ ARCHIVE_ERRNO_FILE_FORMAT, ++ "Unrecognized lead"); ++ return ARCHIVE_FATAL; ++ } ++ ++ __archive_read_consume(a, sizeof(*lead)); ++ ++ rpm->state = ST_HEADER; ++ rpm->first_header = 1; ++ break; ++ } ++ case ST_HEADER: { ++ struct rpm_header header; ++ ++ p = __archive_read_ahead(a, sizeof(header), NULL); ++ if (p == NULL) { ++ archive_set_error(&a->archive, ++ ARCHIVE_ERRNO_FILE_FORMAT, ++ "Truncated header"); ++ return ARCHIVE_FATAL; ++ } ++ ++ memcpy(&header, p, sizeof(header)); ++ ++ if (memcmp(header.magic, HEADER_MAGIC, sizeof(header.magic)) != 0) { ++ archive_set_error(&a->archive, ++ ARCHIVE_ERRNO_FILE_FORMAT, ++ "Unrecognized header"); ++ return ARCHIVE_FATAL; ++ } ++ ++ header.n_entries = archive_be32dec(&header.n_entries); ++ header.data_size = archive_be32dec(&header.data_size); ++ ++ __archive_read_consume(a, sizeof(header)); ++ ++ r = rpm_parse_main_header(a, &header); ++ if (r != ARCHIVE_OK) ++ return r; ++ ++ rpm->state = ST_PADDING; ++ break; ++ } ++ case ST_PADDING: { ++ for (;;) { ++ p = __archive_read_ahead(a, 1, NULL); ++ if (p == NULL) { ++ archive_set_error(&a->archive, ++ ARCHIVE_ERRNO_FILE_FORMAT, ++ "Truncated padding"); ++ return ARCHIVE_FATAL; ++ } ++ ++ if (*p != 0) ++ break; ++ ++ __archive_read_consume(a, 1); ++ } ++ ++ if (rpm->first_header) { ++ rpm->first_header = 0; ++ rpm->state = ST_HEADER; ++ } else { ++ enum rpm_cpio_format cpio_format; ++ ++ if (!rpm->compressor) { ++ /* No compression. */ ++ } else if (strcmp(rpm->compressor, "zstd") == 0) { ++ r = archive_read_append_filter(&a->archive, ARCHIVE_FILTER_ZSTD); ++ } else if (strcmp(rpm->compressor, "xz") == 0) { ++ archive_read_append_filter(&a->archive, ARCHIVE_FILTER_XZ); ++ } else if (strcmp(rpm->compressor, "gzip") == 0) { ++ archive_read_append_filter(&a->archive, ARCHIVE_FILTER_GZIP); ++ } else if (strcmp(rpm->compressor, "bzip2") == 0) { ++ archive_read_append_filter(&a->archive, ARCHIVE_FILTER_BZIP2); ++ } else if (strcmp(rpm->compressor, "lzma") == 0) { ++ archive_read_append_filter(&a->archive, ARCHIVE_FILTER_LZMA); ++ } else { ++ archive_set_error(&a->archive, ++ ARCHIVE_ERRNO_FILE_FORMAT, ++ "Unrecognized compressor: %s", rpm->compressor); ++ return ARCHIVE_FATAL; ++ } ++ ++ if (r != ARCHIVE_OK) { ++ archive_set_error(&a->archive, r, "Cannot append %s filter", ++ rpm->compressor); ++ return r; ++ } ++ ++ cpio_format = rpm_get_cpio_format(a); ++ switch (cpio_format) { ++ case CPIO_STR: ++ a->archive.archive_format_name = "RPM (stripped CPIO)"; ++ break; ++ case CPIO_SVR4_CRC: ++ a->archive.archive_format_name = "RPM (SVR4 cpio with CRC)"; ++ break; ++ case CPIO_SVR4_NOCRC: ++ a->archive.archive_format_name = "RPM (SVR4 cpio with no CRC)"; ++ break; ++ case CPIO_UNKNOWN: ++ default: ++ return ARCHIVE_FATAL; ++ } ++ ++ rpm->state = ST_ARCHIVE; ++ } ++ break; ++ } ++ case ST_ARCHIVE: ++ return rpm_add_entry(a, entry); ++ } ++ } ++} ++ ++static int ++archive_read_format_rpm_read_data(struct archive_read *a, ++ const void **buff, size_t *size, int64_t *offset) ++{ ++ struct rpm *rpm = a->format->data; ++ ssize_t bytes_read; ++ ++ if (rpm->entry_bytes_unconsumed > 0) { ++ __archive_read_consume(a, rpm->entry_bytes_unconsumed); ++ rpm->entry_bytes_unconsumed = 0; ++ } ++ ++ if (rpm->entry_bytes_remaining > 0) { ++ *buff = __archive_read_ahead(a, 1, &bytes_read); ++ if (bytes_read <= 0) ++ return ARCHIVE_FATAL; ++ ++ if (bytes_read > rpm->entry_bytes_remaining) ++ bytes_read = (ssize_t)rpm->entry_bytes_remaining; ++ ++ *size = bytes_read; ++ rpm->entry_bytes_unconsumed = bytes_read; ++ *offset = rpm->entry_offset; ++ rpm->entry_offset += bytes_read; ++ rpm->entry_bytes_remaining -= bytes_read; ++ ++ return ARCHIVE_OK; ++ } else { ++ if (rpm->entry_padding != ++ __archive_read_consume(a, rpm->entry_padding)) { ++ return ARCHIVE_FATAL; ++ } ++ ++ rpm->entry_padding = 0; ++ *buff = NULL; ++ *size = 0; ++ *offset = rpm->entry_offset; ++ ++ return ARCHIVE_EOF; ++ } ++} ++ ++static int ++archive_read_format_rpm_read_data_skip(struct archive_read *a) ++{ ++ struct rpm *rpm = a->format->data; ++ const ssize_t to_skip = rpm->entry_bytes_remaining + rpm->entry_padding ++ + rpm->entry_bytes_unconsumed; ++ ++ if (to_skip != __archive_read_consume(a, to_skip)) ++ return ARCHIVE_FATAL; ++ ++ rpm->entry_bytes_remaining = 0; ++ rpm->entry_padding = 0; ++ rpm->entry_bytes_unconsumed = 0; ++ ++ return ARCHIVE_OK; ++} ++ ++static int ++archive_read_format_rpm_cleanup(struct archive_read *a) ++{ ++ struct rpm *rpm = a->format->data; ++ size_t i; ++ ++ free(rpm->compressor); ++ ++ if (rpm->inode_hash) { ++ for (i = 0; i < rpm->inode_hash_size; ++i) { ++ free(rpm->inode_hash[i]); ++ } ++ ++ free(rpm->inode_hash); ++ } ++ ++ if (rpm->inodes != NULL) { ++ for (i = 0; i < rpm->n_inodes; i++) { ++ free(rpm->inodes[i].files); ++ } ++ ++ free(rpm->inodes); ++ } ++ ++ if (rpm->files != NULL) { ++ for (i = 0; i < rpm->n_files; i++) { ++ free(rpm->files[i].pathname); ++ free(rpm->files[i].uname); ++ free(rpm->files[i].gname); ++ } ++ ++ free(rpm->files); ++ } ++ ++ free(rpm); ++ ++ a->format->data = NULL; ++ ++ return ARCHIVE_OK; ++} ++ ++static int ++rpm_add_entry(struct archive_read *a, struct archive_entry *entry) ++{ ++ struct rpm *rpm = a->format->data; ++ struct rpm_file_info *file = NULL; ++ struct rpm_inode_info *inode; ++ uint64_t idx_ino; ++ const void *p; ++ ++ const enum rpm_cpio_format cpio_format = rpm_get_cpio_format(a); ++ ++ p = __archive_read_ahead(a, CPIO_HEADER_STR_SIZE, NULL); ++ if (!p) { ++ archive_set_error(&a->archive, ++ ARCHIVE_ERRNO_FILE_FORMAT, ++ "Premature EOF"); ++ return ARCHIVE_FATAL; ++ } ++ ++ char hex_str[9] = {0}; ++ memcpy(hex_str, p + CPIO_MAGIC_SIZE, sizeof(idx_ino)); ++ idx_ino = strtoull(hex_str, NULL, 16); ++ ++ switch (cpio_format) { ++ case CPIO_STR: ++ __archive_read_consume(a, CPIO_HEADER_STR_SIZE); ++ ++ if (rpm_is_eof(a)) ++ return ARCHIVE_EOF; ++ ++ if (idx_ino >= rpm->n_files) { ++ archive_set_error(&a->archive, ++ ARCHIVE_ERRNO_FILE_FORMAT, ++ "File index %" PRIu64 " out of range (max %u)", idx_ino, rpm->n_files - 1); ++ return ARCHIVE_FATAL; ++ } ++ ++ file = &rpm->files[idx_ino]; ++ inode = rpm_get_inode(a, file->ino); ++ if (!inode) ++ return ARCHIVE_FATAL; ++ ++ break; ++ case CPIO_SVR4_CRC: ++ case CPIO_SVR4_NOCRC: { ++ size_t i; ++ uint64_t size; ++ char *path; ++ ++ p = __archive_read_ahead(a, CPIO_HEADER_SVR_SIZE, NULL); ++ if (!p) { ++ archive_set_error(&a->archive, ++ ARCHIVE_ERRNO_FILE_FORMAT, ++ "Truncated SVR4 header"); ++ return ARCHIVE_FATAL; ++ } ++ ++ memcpy(hex_str, p + CPIO_HEADER_SVR_PATH_OFF, sizeof(size)); ++ ++ __archive_read_consume(a, CPIO_HEADER_SVR_SIZE); ++ ++ if (rpm_is_eof(a)) ++ return ARCHIVE_EOF; ++ ++ inode = rpm_get_inode(a, idx_ino); ++ if (!inode) ++ return ARCHIVE_FATAL; ++ ++ size = strtoull(hex_str, NULL, 16); ++ ++ path = rpm_strread(a, size); ++ if (!path) ++ return ARCHIVE_FATAL; ++ ++ for (i = 0; i < inode->n_files; ++i) { ++ if (strcmp(inode->files[i]->pathname, path) == 0) { ++ file = inode->files[i]; ++ break; ++ } ++ } ++ ++ free(path); ++ ++ if (!file) { ++ archive_set_error(&a->archive, ++ ARCHIVE_ERRNO_FILE_FORMAT, ++ "Path not found"); ++ return ARCHIVE_FATAL; ++ } ++ ++ /* Pad name to 2 more than a multiple of 4. */ ++ size += (2 - size) & 3; ++ __archive_read_consume(a, size); ++ ++ break; ++ } ++ default: ++ return ARCHIVE_FATAL; ++ } ++ ++ archive_entry_set_pathname_utf8(entry, file->pathname); ++ archive_entry_set_uname_utf8(entry, file->uname); ++ archive_entry_set_gname_utf8(entry, file->gname); ++ archive_entry_set_dev(entry, file->dev); ++ archive_entry_set_ino(entry, file->ino); ++ archive_entry_set_mode(entry, file->mode); ++ archive_entry_set_rdev(entry, file->rdev); ++ archive_entry_set_mtime(entry, file->mtime, 0); ++ archive_entry_set_nlink(entry, inode->n_files); ++ ++ /* Hardlink: only last entry carries payload */ ++ if (++inode->n_processed == inode->n_files) ++ rpm->entry_bytes_remaining = file->size; ++ else ++ rpm->entry_bytes_remaining = 0; ++ ++ /* Pad file contents to a multiple of 4. */ ++ rpm->entry_padding = 3 & -rpm->entry_bytes_remaining; ++ rpm->entry_offset = 0; ++ rpm->entry_bytes_unconsumed = 0; ++ ++ if (S_ISLNK(file->mode)) { ++ char *target = rpm_strread(a, file->size); ++ if (!target) ++ return ARCHIVE_FATAL; ++ ++ __archive_read_consume(a, rpm->entry_bytes_remaining); ++ rpm->entry_bytes_remaining = 0; ++ ++ archive_entry_set_symlink_utf8(entry, target); ++ ++ free(target); ++ } ++ ++ archive_entry_set_size(entry, rpm->entry_bytes_remaining); ++ ++ return ARCHIVE_OK; ++} ++ ++static int ++rpm_parse_main_header(struct archive_read *a, const struct rpm_header *header) ++{ ++ struct rpm *rpm = a->format->data; ++ ++ struct rpm_header_parse { ++ uint32_t n_files; ++ ++ const char *basenames; ++ uint32_t n_basenames; ++ ++ const char *dirnames; ++ uint32_t n_dirnames; ++ ++ const char *usernames; ++ uint32_t n_usernames; ++ ++ const char *groupnames; ++ uint32_t n_groupnames; ++ ++ union { ++ const int64_t *filesizes64; ++ const int32_t *filesizes32; ++ }; ++ uint8_t is_filesizes64; ++ ++ const int32_t *dirindexes; ++ const int16_t *filemodes; ++ const int32_t *filedevices; ++ const int16_t *filerdevs; ++ const int32_t *filemtimes; ++ const int32_t *fileinodes; ++ } hp; ++ ++ const struct rpm_entry *entries; ++ struct rpm_inode_temp_entry **temp_hash; ++ size_t hlen, temp_hash_size = 1; ++ uint64_t i, ino = 0; ++ ++ memset(&hp, 0, sizeof(hp)); ++ ++ hlen = sizeof(struct rpm_entry) ++ * (size_t)header->n_entries ++ + (size_t)header->data_size; ++ ++ entries = __archive_read_ahead(a, hlen, NULL); ++ if (entries == NULL) ++ return ARCHIVE_EOF; ++ ++ if (rpm->first_header) { ++ __archive_read_consume(a, hlen); ++ return ARCHIVE_OK; ++ } ++ ++ for (i = 0; i < header->n_entries; i++) { ++ uint32_t tag, cnt; ++ int32_t off; ++ const void *p; ++ ++ tag = archive_be32dec(&entries[i].tag); ++ off = archive_be32dec(&entries[i].offset); ++ cnt = archive_be32dec(&entries[i].count); ++ ++ if (off < 0 || (uint32_t)off >= header->data_size) ++ continue; ++ ++ p = (const uint8_t *)&entries[header->n_entries] + off; ++ ++ switch (tag) { ++ case TAG_PAYLOADCOMPRESSOR: ++ rpm->compressor = rpm_strndup(a, p ? p : "", 0); ++ break; ++ case TAG_BASENAMES: ++ hp.basenames = p; ++ hp.n_basenames = cnt; ++ break; ++ case TAG_DIRNAMES: ++ hp.dirnames = p; ++ hp.n_dirnames = cnt; ++ break; ++ case TAG_FILEUSERNAMES: ++ hp.usernames = p; ++ hp.n_usernames = cnt; ++ break; ++ case TAG_FILEGROUPNAMES: ++ hp.groupnames = p; ++ hp.n_groupnames = cnt; ++ break; ++ case TAG_LONGFILESIZES: ++ hp.filesizes64 = p; ++ hp.n_files = cnt; ++ hp.is_filesizes64 = 1; ++ break; ++ case TAG_FILESIZES: ++ /* This tag should never appear when Longfilesizes is present, ++ * but checking doesn't hurt. */ ++ if (!hp.is_filesizes64) { ++ hp.filesizes32 = p; ++ hp.n_files = cnt; ++ } ++ break; ++ case TAG_DIRINDEXES: ++ hp.dirindexes = p; ++ break; ++ case TAG_FILEINODES: ++ hp.fileinodes = p; ++ break; ++ case TAG_FILEMODES: ++ hp.filemodes = p; ++ break; ++ case TAG_FILEDEVICES: ++ hp.filedevices = p; ++ break; ++ case TAG_FILERDEVS: ++ hp.filerdevs = p; ++ break; ++ case TAG_FILEMTIMES: ++ hp.filemtimes = p; ++ break; ++ } ++ } ++ ++ if (hp.n_files >= MAX_NFILES) { ++ archive_set_error(&a->archive, ++ ARCHIVE_ERRNO_FILE_FORMAT, ++ "n_files out of range"); ++ return ARCHIVE_FATAL; ++ } ++ ++ rpm->files = calloc(hp.n_files, sizeof(*rpm->files)); ++ if (rpm->files == NULL) { ++ archive_set_error(&a->archive, ++ ENOMEM, ++ "Can't allocate files data"); ++ return ARCHIVE_FATAL; ++ } ++ ++ rpm->n_files = hp.n_files; ++ ++ while (temp_hash_size < hp.n_files * 2) ++ temp_hash_size <<= 1; ++ ++ temp_hash = calloc(temp_hash_size, sizeof(*temp_hash)); ++ if (!temp_hash) { ++ archive_set_error(&a->archive, ++ ENOMEM, ++ "Can't allocate temp hash"); ++ return ARCHIVE_FATAL; ++ } ++ ++ for (i = 0; i < hp.n_files; i++) { ++ const void *hbuf_end = (const uint8_t *)entries + hlen; ++ struct rpm_file_info *file = &rpm->files[i]; ++ struct rpm_inode_temp_entry *group; ++ struct archive_string as; ++ const char *dname, *bname, *uname, *gname; ++ size_t bucket; ++ ++ if (hp.dirindexes != NULL) { ++ const uint32_t diri = rpm_be32_at(hp.dirindexes, hbuf_end, i); ++ ++ if (diri >= hp.n_dirnames) { ++ rpm_free_inode_temp_hash(temp_hash, temp_hash_size); ++ archive_set_error(&a->archive, ++ ARCHIVE_ERRNO_FILE_FORMAT, ++ "dirindex out of range"); ++ return ARCHIVE_FATAL; ++ } ++ ++ dname = rpm_strlist_at(hp.dirnames, hbuf_end, diri, hp.n_dirnames); ++ } else ++ dname = NULL; ++ ++ bname = rpm_strlist_at(hp.basenames, hbuf_end, i, hp.n_basenames); ++ uname = rpm_strlist_at(hp.usernames, hbuf_end, i, hp.n_usernames); ++ gname = rpm_strlist_at(hp.groupnames, hbuf_end, i, hp.n_groupnames); ++ ++ archive_string_init(&as); ++ archive_strappend_char(&as, '.'); ++ rpm_strcat(&as, dname, hbuf_end); ++ rpm_strcat(&as, bname, hbuf_end); ++ file->pathname = strdup(as.s); ++ archive_string_free(&as); ++ ++ file->uname = rpm_strndup(a, uname ? uname : "", 0); ++ file->gname = rpm_strndup(a, gname ? gname : "", 0); ++ ++ if (hp.is_filesizes64) ++ file->size = rpm_be64_at(hp.filesizes64, hbuf_end, i); ++ else ++ file->size = rpm_be32_at(hp.filesizes32, hbuf_end, i); ++ file->mode = rpm_be16_at(hp.filemodes, hbuf_end, i); ++ file->dev = rpm_be32_at(hp.filedevices, hbuf_end, i); ++ file->rdev = rpm_be16_at(hp.filerdevs, hbuf_end, i); ++ file->mtime = rpm_be32_at(hp.filemtimes, hbuf_end, i); ++ file->ino = rpm_be32_at(hp.fileinodes, hbuf_end, i); ++ ++ bucket = file->ino & (temp_hash_size - 1); ++ group = temp_hash[bucket]; ++ ++ while (group) { ++ if (group->ino == file->ino) ++ break; ++ ++ group = group->next; ++ } ++ ++ if (!group) { ++ group = calloc(1, sizeof(*group)); ++ if (!group) { ++ rpm_free_inode_temp_hash(temp_hash, temp_hash_size); ++ archive_set_error(&a->archive, ++ ENOMEM, ++ "Can't allocate inode group"); ++ return ARCHIVE_FATAL; ++ } ++ ++ group->ino = file->ino; ++ group->files = NULL; ++ group->n_files = 0; ++ group->capacity = 0; ++ ++ group->next = temp_hash[bucket]; ++ temp_hash[bucket] = group; ++ } ++ ++ if (group->n_files >= group->capacity) { ++ group->capacity = group->capacity ? group->capacity * 2 : 8; ++ void *prev_ptr = group->files; ++ ++ group->files = realloc(group->files, group->capacity * sizeof(*group->files)); ++ if (!group->files) { ++ free(prev_ptr); ++ rpm_free_inode_temp_hash(temp_hash, temp_hash_size); ++ archive_set_error(&a->archive, ++ ENOMEM, ++ "Can't grow inode file list"); ++ return ARCHIVE_FATAL; ++ } ++ } ++ ++ group->files[group->n_files++] = file; ++ } ++ ++ rpm->n_inodes = 0; ++ for (i = 0; i < temp_hash_size; i++) { ++ for (struct rpm_inode_temp_entry *e = temp_hash[i]; e; e = e->next) ++ rpm->n_inodes++; ++ } ++ ++ rpm->inodes = calloc(rpm->n_inodes, sizeof(*rpm->inodes)); ++ if (!rpm->inodes) { ++ rpm_free_inode_temp_hash(temp_hash, temp_hash_size); ++ archive_set_error(&a->archive, ++ ENOMEM, ++ "Can't allocate inodes array"); ++ return ARCHIVE_FATAL; ++ } ++ ++ for (i = 0; i < temp_hash_size; i++) { ++ struct rpm_inode_temp_entry *e = temp_hash[i]; ++ while (e) { ++ struct rpm_inode_info *info = &rpm->inodes[ino++]; ++ info->n_files = e->n_files; ++ info->files = e->files; ++ info->n_processed = 0; ++ ++ struct rpm_inode_temp_entry *next = e->next; ++ free(e); ++ e = next; ++ } ++ } ++ ++ free(temp_hash); ++ ++ rpm->inode_hash_size = 1; ++ while (rpm->inode_hash_size < rpm->n_inodes * 2) ++ rpm->inode_hash_size <<= 1; ++ ++ rpm->inode_hash = calloc(rpm->inode_hash_size, sizeof(*rpm->inode_hash)); ++ if (!rpm->inode_hash) { ++ archive_set_error(&a->archive, ++ ENOMEM, ++ "Can't allocate inode hash"); ++ return ARCHIVE_FATAL; ++ } ++ ++ for (i = 0; i < rpm->n_inodes; i++) { ++ uint64_t raw = rpm->inodes[i].files[0]->ino; ++ size_t bucket = raw & (rpm->inode_hash_size - 1); ++ ++ struct inode_hash_entry *e = malloc(sizeof(*e)); ++ if (!e) { ++ archive_set_error(&a->archive, ++ ENOMEM, ++ "Can't allocate inode hash entry"); ++ return ARCHIVE_FATAL; ++ } ++ ++ e->ino = raw; ++ e->info = &rpm->inodes[i]; ++ e->next = rpm->inode_hash[bucket]; ++ rpm->inode_hash[bucket] = e; ++ } ++ ++ __archive_read_consume(a, hlen); ++ ++ return ARCHIVE_OK; ++} ++ ++static struct rpm_inode_info * ++rpm_get_inode(struct archive_read *a, const uint32_t ino) ++{ ++ const struct rpm *rpm = a->format->data; ++ struct inode_hash_entry *e; ++ size_t bucket; ++ ++ if (!rpm->inode_hash) ++ return NULL; ++ ++ bucket = ino & (rpm->inode_hash_size - 1); ++ ++ for (e = rpm->inode_hash[bucket]; e; e = e->next) ++ if (e->ino == ino) ++ return e->info; ++ ++ return NULL; ++} ++ ++static enum rpm_cpio_format ++rpm_get_cpio_format(struct archive_read *a) ++{ ++ const char *magic = __archive_read_ahead(a, CPIO_MAGIC_SIZE, NULL); ++ if (!magic) { ++ archive_set_error(&a->archive, ++ ARCHIVE_ERRNO_FILE_FORMAT, ++ "Premature EOF"); ++ return ARCHIVE_FATAL; ++ } ++ ++ if (memcmp(magic, CPIO_MAGIC_STR, CPIO_MAGIC_SIZE) == 0) ++ return CPIO_STR; ++ else if (memcmp(magic, CPIO_MAGIC_SVR4_CRC, CPIO_MAGIC_SIZE) == 0) ++ return CPIO_SVR4_CRC; ++ else if (memcmp(magic, CPIO_MAGIC_SVR4_NOCRC, CPIO_MAGIC_SIZE) == 0) ++ return CPIO_SVR4_NOCRC; ++ else { ++ archive_set_error(&a->archive, ++ ARCHIVE_ERRNO_FILE_FORMAT, ++ "Unrecognized magic"); ++ return CPIO_UNKNOWN; ++ } ++} ++ ++static uint8_t ++rpm_is_eof(struct archive_read *a) ++{ ++ const void *p = __archive_read_ahead(a, CPIO_END_MARK_SIZE, NULL); ++ if (!p) ++ return 1; ++ ++ return memcmp(p, CPIO_END_MARK, CPIO_END_MARK_SIZE) == 0; ++} ++ ++static uint16_t ++rpm_be16_at(const void *buf_start, const void *buf_end, size_t off) ++{ ++ off *= sizeof(uint16_t); ++ ++ if (!buf_start || (buf_end <= buf_start) || ++ (size_t)(buf_end - buf_start) < (off + sizeof(uint16_t))) ++ return 0; ++ ++ return archive_be16dec(buf_start + off); ++} ++ ++static uint32_t ++rpm_be32_at(const void *buf_start, const void *buf_end, size_t off) ++{ ++ off *= sizeof(uint32_t); ++ ++ if (!buf_start || (buf_end <= buf_start) || ++ (size_t)(buf_end - buf_start) < (off + sizeof(uint32_t))) ++ return 0; ++ ++ return archive_be32dec(buf_start + off); ++} ++ ++static uint64_t ++rpm_be64_at(const void *buf_start, const void *buf_end, size_t off) ++{ ++ off *= sizeof(uint64_t); ++ ++ if (!buf_start || (buf_end <= buf_start) || ++ (size_t)(buf_end - buf_start) < (off + sizeof(uint64_t))) ++ return 0; ++ ++ return archive_be64dec(buf_start + off); ++} ++ ++static inline size_t ++rpm_limit_bytes(const size_t bytes, const size_t max) ++{ ++ return (bytes > max ? max : bytes); ++} ++ ++static char * ++rpm_strndup(struct archive_read *a, const char *s, size_t len) ++{ ++ if (s == NULL) ++ return NULL; ++ ++ if (len == 0) ++ len = strnlen(s, STR_SIZE_LIMIT); ++ ++ if (len > STR_SIZE_LIMIT) { ++ archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, ++ "String too long (malformed?)"); ++ return NULL; ++ } ++ ++ return strndup(s, len); ++} ++ ++static char * ++rpm_strread(struct archive_read *a, size_t len) { ++ const void *p; ++ ++ if (len > STR_SIZE_LIMIT) { ++ archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, ++ "String too long"); ++ return NULL; ++ } ++ ++ p = __archive_read_ahead(a, len, NULL); ++ if (!p) { ++ archive_set_error(&a->archive, ARCHIVE_ERRNO_FILE_FORMAT, ++ "Truncated string"); ++ return NULL; ++ } ++ ++ return rpm_strndup(a, p, len); ++} ++ ++static void ++rpm_strcat(struct archive_string *a, const void *s, const void *buf_end) ++{ ++ if (!s || s >= buf_end) ++ return; ++ ++ archive_strncat(a, s, rpm_limit_bytes(buf_end - s, STR_SIZE_LIMIT)); ++} ++ ++static const char * ++rpm_strlist_at(const char *p, const void *end, uint64_t i, uint64_t n) ++{ ++ uint64_t k; ++ ++ if (p == NULL || i >= n || (const char *)end < p) ++ return NULL; ++ ++ for (k = 0; k < n; k++) { ++ const uint64_t max_len = rpm_limit_bytes((const char *)end - p, ++ STR_SIZE_LIMIT); ++ const uint64_t len = strnlen(p, max_len); ++ if (len == max_len) ++ /* Unterminated or absurdly long string. */ ++ return NULL; ++ ++ if (k == i) ++ return p; ++ ++ p += len + 1; ++ ++ if (p >= (const char *)end) ++ return NULL; ++ } ++ ++ return NULL; ++} ++ ++static void ++rpm_free_inode_temp_hash(struct rpm_inode_temp_entry **hash, const size_t hash_size) ++{ ++ for (size_t i = 0; i < hash_size; i++) { ++ struct rpm_inode_temp_entry *e = hash[i]; ++ while (e) { ++ struct rpm_inode_temp_entry *next = e->next; ++ free(e->files); ++ free(e); ++ e = next; ++ } ++ } ++ ++ free(hash); ++} +diff --git a/libarchive/test/test_archive_read_support.c b/libarchive/test/test_archive_read_support.c +index b0c9280..bc256a1 100644 +--- a/libarchive/test/test_archive_read_support.c ++++ b/libarchive/test/test_archive_read_support.c +@@ -91,6 +91,7 @@ DEFINE_TEST(test_archive_read_support) + test_filter_or_format(archive_read_support_format_iso9660); + test_filter_or_format(archive_read_support_format_lha); + test_filter_or_format(archive_read_support_format_mtree); ++ test_filter_or_format(archive_read_support_format_rpm); + test_filter_or_format(archive_read_support_format_tar); + test_filter_or_format(archive_read_support_format_xar); + test_filter_or_format(archive_read_support_format_zip); +@@ -140,7 +141,6 @@ DEFINE_TEST(test_archive_read_support) + test_filter_or_format(archive_read_support_filter_lzip); + test_filter_or_format(archive_read_support_filter_lzma); + test_filter_or_format(archive_read_support_filter_none); +- test_filter_or_format(archive_read_support_filter_rpm); + test_filter_or_format(archive_read_support_filter_uu); + test_filter_or_format(archive_read_support_filter_xz); + } +diff --git a/libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c b/libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c +index 1c421df..550b5be 100644 +--- a/libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c ++++ b/libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c +@@ -97,8 +97,6 @@ DEFINE_TEST(test_read_format_cpio_svr4_bzip2_rpm) + return; + } + assertEqualIntA(a, ARCHIVE_OK, r); +- assertEqualIntA(a, ARCHIVE_OK, +- archive_read_support_filter_rpm(a)); + assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); + extract_reference_file(name); + assertEqualIntA(a, ARCHIVE_OK, archive_read_open_filename(a, name, 2)); +@@ -121,7 +119,7 @@ DEFINE_TEST(test_read_format_cpio_svr4_bzip2_rpm) + /* Verify that the format detection worked. */ + assertEqualInt(archive_filter_code(a, 0), ARCHIVE_FILTER_BZIP2); + assertEqualString(archive_filter_name(a, 0), "bzip2"); +- assertEqualInt(archive_format(a), ARCHIVE_FORMAT_CPIO_SVR4_NOCRC); ++ assertEqualInt(archive_format(a), ARCHIVE_FORMAT_RPM); + + assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a)); + assertEqualInt(ARCHIVE_OK, archive_read_free(a)); +diff --git a/libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c b/libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c +index 6062c48..11dbbb4 100644 +--- a/libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c ++++ b/libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c +@@ -97,8 +97,6 @@ DEFINE_TEST(test_read_format_cpio_svr4_gzip_rpm) + return; + } + assertEqualIntA(a, ARCHIVE_OK, r); +- assertEqualIntA(a, ARCHIVE_OK, +- archive_read_support_filter_rpm(a)); + assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); + extract_reference_file(name); + assertEqualIntA(a, ARCHIVE_OK, archive_read_open_filename(a, name, 2)); +@@ -121,7 +119,7 @@ DEFINE_TEST(test_read_format_cpio_svr4_gzip_rpm) + /* Verify that the format detection worked. */ + assertEqualInt(archive_filter_code(a, 0), ARCHIVE_FILTER_GZIP); + assertEqualString(archive_filter_name(a, 0), "gzip"); +- assertEqualInt(archive_format(a), ARCHIVE_FORMAT_CPIO_SVR4_NOCRC); ++ assertEqualInt(archive_format(a), ARCHIVE_FORMAT_RPM); + + assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a)); + assertEqualInt(ARCHIVE_OK, archive_read_free(a)); +diff --git a/libarchive/test/test_read_format_huge_rpm.c b/libarchive/test/test_read_format_huge_rpm.c +index 51208c7..1bb3703 100644 +--- a/libarchive/test/test_read_format_huge_rpm.c ++++ b/libarchive/test/test_read_format_huge_rpm.c +@@ -26,6 +26,7 @@ + + DEFINE_TEST(test_read_format_huge_rpm) + { ++ struct archive_entry *ae; + struct archive *a; + const char *name = "test_read_format_huge_rpm.rpm"; + +@@ -34,11 +35,9 @@ DEFINE_TEST(test_read_format_huge_rpm) + assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); + extract_reference_file(name); + /* This archive is truncated -- if it has data, the bid has screwed up */ +- assertEqualIntA(a, ARCHIVE_FATAL, archive_read_open_filename(a, name, 2)); +- assertEqualStringA(a, "Truncated input file " +- "(needed 34359738384 bytes, only 10256 available)", +- archive_error_string(a)); +- ++ assertEqualIntA(a, ARCHIVE_OK, archive_read_open_filename(a, name, 2)); ++ assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae)); ++ assertEqualInt(ARCHIVE_FORMAT_RPM, archive_format(a)); + assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a)); + assertEqualInt(ARCHIVE_OK, archive_read_free(a)); + } diff --git a/meta/recipes-extended/libarchive/libarchive_3.8.8.bb b/meta/recipes-extended/libarchive/libarchive_3.8.8.bb index 2c8bf922a6..e82ebf120c 100644 --- a/meta/recipes-extended/libarchive/libarchive_3.8.8.bb +++ b/meta/recipes-extended/libarchive/libarchive_3.8.8.bb @@ -31,6 +31,9 @@ EXTRA_OECONF += "--enable-largefile --without-iconv" SRC_URI = "https://libarchive.org/downloads/libarchive-${PV}.tar.gz \ file://run-ptest \ + file://0001-archive_read_append_filter-Keep-iterating-even-if-na.patch \ + file://0002-__archive_read_register_bidder-Allow-ARCHIVE_STATE_H.patch \ + file://0003-Convert-RPM-reader-into-a-proper-format-supporting-b.patch \ " UPSTREAM_CHECK_URI = "https://www.libarchive.org/"