From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6854631734520053760 X-Received: by 2002:a1c:6007:: with SMTP id u7mr9220085wmb.32.1596031565016; Wed, 29 Jul 2020 07:06:05 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:adf:b1cf:: with SMTP id r15ls1310900wra.3.gmail; Wed, 29 Jul 2020 07:06:04 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwswo+nljkAhLknOC14nSMoU+nOu7szPOMzR17GRzdrw/EyLxSeUSzXwpe2WG4FAN9SkYe2 X-Received: by 2002:a5d:618e:: with SMTP id j14mr31082202wru.374.1596031564374; Wed, 29 Jul 2020 07:06:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1596031564; cv=none; d=google.com; s=arc-20160816; b=InojJhlmp0/fmFlCwH2/BA2vy9UrasGB1Y+qwyujk1yUC4zYHXePccCOF8X0rLAxKE CXv624TL0HTN+hcr3fy00JarOgzCOC3c3K8CCrzMlfNFZXC9SeS3dIdraA30dV3KFIfa svZz09ZTVczssS10VQuhOSqMfjqP0v7MUlNbenTmEP7/gxchkAzKI5k8Fw9zvQ5dahdO OBBTanXK7qF64YUPcvPG0oYqEwUkmKjHw9odWgOJxCQsoDU92z3mnR1PBPPoP+b29sVP lnKir269DJFMhPgeo7Ddvi7E/5QDeS191h2av4nFSTMVQtPBeAT7qV7poNY96Eil5/8r ufmA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:content-language:in-reply-to:mime-version :user-agent:date:message-id:from:references:to:subject; bh=eBaWzK+4bnpYGAlHzPbP1+KR6MdeaGXtIgNlmvH36J8=; b=n/7Y3/Q8za+9TvTwAX1hH/75x4c7+jRCwlLzJjiQlnPUdSz2ODbZlOEJbvO3DZghQU 4mN+bizxBnqu2Uay+PMyKzglFaMrhQ9jG0ga5EvtwfQ3kdUpoDpGlV+IEuWfBfYXIpKZ R6PrtmoxS6iHGwTT1u/irVvw+Iig9c1DpbQ5MWjln99KHsbc5D2zBrfmwygNc2zhOv6S 5DlmBi/n2P9QI/cjiE8fIBofoekdsNrM4hst0px96nD/1O8TmGUMJl+6cn4da3IgUgbn gSRR5KSSDDAumq8yYr9kdtnOS0w6UFjaTHyTTjVBpcDTFVUnzmxeB/Fb2iyoUJc7HlFb 9IIw== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of jan.kiszka@siemens.com designates 192.35.17.2 as permitted sender) smtp.mailfrom=jan.kiszka@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Return-Path: Received: from thoth.sbs.de (thoth.sbs.de. [192.35.17.2]) by gmr-mx.google.com with ESMTPS id w6si167811wmk.2.2020.07.29.07.06.04 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 29 Jul 2020 07:06:04 -0700 (PDT) Received-SPF: pass (google.com: domain of jan.kiszka@siemens.com designates 192.35.17.2 as permitted sender) client-ip=192.35.17.2; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of jan.kiszka@siemens.com designates 192.35.17.2 as permitted sender) smtp.mailfrom=jan.kiszka@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Received: from mail2.sbs.de (mail2.sbs.de [192.129.41.66]) by thoth.sbs.de (8.15.2/8.15.2) with ESMTPS id 06TE63BM016866 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 29 Jul 2020 16:06:03 +0200 Received: from [167.87.13.2] ([167.87.13.2]) by mail2.sbs.de (8.15.2/8.15.2) with ESMTP id 06TE63EH021871; Wed, 29 Jul 2020 16:06:03 +0200 Subject: Re: [PATCH 1/2] patch: special-case quilt in debian To: "[ext] Henning Schild" , isar-users@googlegroups.com References: <20200728203153.792-1-henning.schild@siemens.com> From: Jan Kiszka Message-ID: Date: Wed, 29 Jul 2020 16:06:03 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <20200728203153.792-1-henning.schild@siemens.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-TUID: r4NPz21MlgnZ On 28.07.20 22:31, [ext] Henning Schild wrote: > From: Henning Schild > > The OE patch lib uses quilt and so do many debian packages as well. > Those two do not work well together, it is really hard to create a patch > that will apply and not break what debian does later. debian is very > pedantic about unexpected changes so even if patching works, building > might not. > > Introduce a special-case where we detect quilt usage of a debian package > and hook in there. Also make sure we are on top of debian so we do not > risk breaking patches we inherit from there. > > If anyone ever managed to create a patch that works well in the face of > two quilts, that might break with this change. You can set PATCHTOOL to > "quilt" in your recipe to disable the magic. > > Signed-off-by: Henning Schild > --- > meta/classes/patch.bbclass | 28 ++++++++++++++++++++++++++++ > 1 file changed, 28 insertions(+) > > diff --git a/meta/classes/patch.bbclass b/meta/classes/patch.bbclass > index 3060755a5c..06f32a2197 100644 > --- a/meta/classes/patch.bbclass > +++ b/meta/classes/patch.bbclass > @@ -91,6 +91,28 @@ def should_apply(parm, d): > > should_apply[vardepsexclude] = "DATE SRCDATE" > > +def patch_do_debian_quilt(patchdir, d): > + import oe.patch > + class DummyPatchSet(oe.patch.PatchSet): > + def Clean(self): > + True > + > + def Import(self, patch, force): > + os.putenv('QUILT_PATCHES', 'debian/patches') > + # push all so we are on top of debian > + pushed = False > + if os.path.exists(os.path.join(self.dir, 'debian/patches/series')): > + oe.patch.runcmd(["quilt", "push", "-a"], self.dir) > + pushed = True > + oe.patch.runcmd(["quilt", "import", "-f", os.path.join(d.getVar('WORKDIR'), os.path.basename(patch['file']))], self.dir) > + if pushed: > + oe.patch.runcmd(["quilt", "pop", "-a"], self.dir) > + > + def Push(self, force = False): > + True > + > + return DummyPatchSet(patchdir, d) > + > python patch_do_patch() { > import sys > > @@ -118,6 +140,12 @@ python patch_do_patch() { > > s = d.getVar('S') > > + debianformat = os.path.join(s, 'debian/source/format') > + if os.path.exists(debianformat) and d.getVar('PATCHTOOL') != 'quilt': > + with open(debianformat, 'r+') as f: > + if f.readline() == '3.0 (quilt)\n': > + cls = patch_do_debian_quilt > + > os.putenv('PATH', d.getVar('PATH')) > > # We must use one TMPDIR per process so that the "patch" processes > I'm not yet sure I understand the use case of this. Does it obsolete something like https://github.com/siemens/meta-iot2050/blob/master/recipes-security/openssl/openssl_1.1.1d.bb#L22 ie. the quilt import and push? Or where does it help? Jan -- Siemens AG, Corporate Technology, CT RDA IOT SES-DE Corporate Competence Center Embedded Linux