From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6854631734520053760 X-Received: by 2002:a19:8607:: with SMTP id i7mr2661236lfd.208.1596033393003; Wed, 29 Jul 2020 07:36:33 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a2e:8610:: with SMTP id a16ls459624lji.8.gmail; Wed, 29 Jul 2020 07:36:32 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyKt3akAm3mZELk0QnQmHRr8tBiW0vXwm+wlGiipsLfwLF3LuBCDT77ATyZs3Xya9nmyEt8 X-Received: by 2002:a2e:b4d0:: with SMTP id r16mr15589478ljm.332.1596033392379; Wed, 29 Jul 2020 07:36:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1596033392; cv=none; d=google.com; s=arc-20160816; b=IzbOp15paZqwKFtgxKwpP0iXw1Sv8HVgChUOuj0qwZbsqloKiAisaOmVsa+GN+02TS HyB/+rgrohRcb6J/jPfQme2gaqVG/H0DWuj+5Hs130/n1roYByB3wK8mdU2xrtIIT2np NTHVLKXbOajPNmG1DvkxpKeGTLeK/BpOjEBytHnm3hRrnlNZJhVUd+Zox+15s+7sOxQ3 B59nRaE50nvD3p/qgTL/gPIKEZ54mcoc1JHtowLm0qEF7F8VLm+rNz6YSlZpM4WO7J/f 7cQgTVV3Z/RRCgJjDYcj0KmxyHWj8zMmiyDtXTFCa4dXaYqmlqeJQGD5dLwh3RXVNUgn aVlw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date; bh=MgzEO8jgAwv9UDyQoAUFwpW4cQHPutTJluXlpAU0UB4=; b=0nHWXOa8ht6XmwohpUcPW+I/Xhj14ctIJp3x3C0T3xW8k/SOn4DibuHrcuogwyr5X9 yK/dQJTxqKaMj6bSEZ9Xizo7R864mEguBibAGV8pg6+ZmdlT51+Aaky0NaSyRwwZw3TX 3yhwBG7zQJ5dwTZUTSYkwJZJWygm2DKFEtH3AZotb3D8/3wqjzNjJXFnvVtcdoHT5Xou oxkBMofqrTFMuxC3l3fpz1DlrSNg31AmzsNknRI062SpOdCLMJ2gZ1212/ceoiMz9hxB b1dD4fzWsqnAxOVJzlzNrSqcDTW4yLZm9JIR5dxe/IeXYUrESKPXEPo+AeenntUkXiPJ Ap6A== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of henning.schild@siemens.com designates 194.138.37.39 as permitted sender) smtp.mailfrom=henning.schild@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Return-Path: Received: from lizzard.sbs.de (lizzard.sbs.de. [194.138.37.39]) by gmr-mx.google.com with ESMTPS id s3si93998lfc.2.2020.07.29.07.36.32 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 29 Jul 2020 07:36:32 -0700 (PDT) Received-SPF: pass (google.com: domain of henning.schild@siemens.com designates 194.138.37.39 as permitted sender) client-ip=194.138.37.39; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of henning.schild@siemens.com designates 194.138.37.39 as permitted sender) smtp.mailfrom=henning.schild@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 lizzard.sbs.de (8.15.2/8.15.2) with ESMTPS id 06TEaVoC022371 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 29 Jul 2020 16:36:31 +0200 Received: from md1za8fc.ad001.siemens.net ([158.92.8.82]) by mail2.sbs.de (8.15.2/8.15.2) with ESMTP id 06TEaVWW022904; Wed, 29 Jul 2020 16:36:31 +0200 Date: Wed, 29 Jul 2020 16:36:30 +0200 From: Henning Schild To: Jan Kiszka Cc: Subject: Re: [PATCH 1/2] patch: special-case quilt in debian Message-ID: <20200729163630.2e9cab45@md1za8fc.ad001.siemens.net> In-Reply-To: References: <20200728203153.792-1-henning.schild@siemens.com> X-Mailer: Claws Mail 3.17.5 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-TUID: o+uUior+2Wi2 On Wed, 29 Jul 2020 16:06:03 +0200 Jan Kiszka wrote: > 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? With the proposed patch your example could drop all but deb_add_changelog together with the apply=no. Henning > Jan >