GNU bug report logs - #50627
[PATCH 0/2] Make wayland-protocols dependency native-input.

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: guix-patches; Reported by: muradm <mail@HIDDEN>; Keywords: patch; dated Thu, 16 Sep 2021 19:24:01 UTC; Maintainer for guix-patches is guix-patches@HIDDEN.

Message received at 50627 <at> debbugs.gnu.org:


Received: (at 50627) by debbugs.gnu.org; 17 Sep 2021 17:01:54 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Sep 17 13:01:54 2021
Received: from localhost ([127.0.0.1]:32879 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1mRHFJ-0005MV-PP
	for submit <at> debbugs.gnu.org; Fri, 17 Sep 2021 13:01:54 -0400
Received: from mail-wr1-f65.google.com ([209.85.221.65]:41572)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <liliana.prikler@HIDDEN>) id 1mRHFF-0005MD-6s
 for 50627 <at> debbugs.gnu.org; Fri, 17 Sep 2021 13:01:53 -0400
Received: by mail-wr1-f65.google.com with SMTP id w29so16232508wra.8
 for <50627 <at> debbugs.gnu.org>; Fri, 17 Sep 2021 10:01:49 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;
 h=message-id:subject:from:to:cc:date:in-reply-to:references
 :user-agent:mime-version:content-transfer-encoding;
 bh=7pdCEfOcmR4TvBorcdaBTU+vikcYuYiS5IzdewiDg2A=;
 b=gnqvf0a9VKOq25f/cgc4E36XBnDUB4tb2VhK3XVr0hs3R1VId9YOtVWEPCF2YgNFOh
 jCtSdnbujuLEA5Vp6qME7h8vBgqaocydv0ap1CfsJTeR2s/+Fr4BrhHPiWCZiTvDEbvk
 CQPS9FhRC/o7TKHb3eIlmhZNpaV8Nv54RXHV4kaPxjh0n9/20TP3pqVv6H1scQ88x1tI
 9jg3hE7A7G0axT6dslZ6TL9/m/bPwJkAQU+by66P8ZFpCPLY+N2Wx6IgmYZq4WdUZCnh
 D+n6/3vcGwPHI2uk+hlDkS4PJOrBwhg7enzg9UCnCNA8rGk6ogyq/t7T/Ne/saWYUsUo
 f3bQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to
 :references:user-agent:mime-version:content-transfer-encoding;
 bh=7pdCEfOcmR4TvBorcdaBTU+vikcYuYiS5IzdewiDg2A=;
 b=oRY1qbLWk8jXuYv6Omhrr4wgJ6fniGnX2JBxxJesax2/Ia/1LqeOkuagXjcd4QuN68
 +jSaaFhzXXvfH3m6hYITw3kAwmsiLW4Lq/nTtr9Mzjm8jk2A7mkqOjFcykiEs5Xitmbr
 cwjyP3fflWn+F6+Z7d88CRP9b3pLSMinWocPnRCqUj67BgrTzfYn7Rw8Z1C2sSMpYD+u
 ZQuyiIzv1ZyqgEP5XsPaWilHpIlnPCQb4S1bv51udL8RYim/KP09h/tl0dCeLLLumE9F
 eQ6EnXesCqMTUqMClIoK/7uCrzoeweSB4xeA+SB71OOgpmgiwWoPxTaSn7aCEsMZP+BD
 08tA==
X-Gm-Message-State: AOAM532tKpGwyJXj8Km+/l6olCMoOqvghuLp0/NBjqc7XcL5YSbL1Lnk
 2ROmTZ2k79GzyXtKfa4yQ9Y=
X-Google-Smtp-Source: ABdhPJyuLETrlFintBHN+7SjamRi2poU4GfDQ7pJ4iOTCZfypPmJSFB055j979w3Q43PXerTePMF0g==
X-Received: by 2002:a5d:58cd:: with SMTP id o13mr13416008wrf.416.1631898103158; 
 Fri, 17 Sep 2021 10:01:43 -0700 (PDT)
Received: from nijino.fritz.box (85-127-52-93.dsl.dynamic.surfer.at.
 [85.127.52.93])
 by smtp.gmail.com with ESMTPSA id n3sm7083295wmi.0.2021.09.17.10.01.42
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 17 Sep 2021 10:01:42 -0700 (PDT)
Message-ID: <80631d7e460be6e07d5108c4fc886a8d568533e3.camel@HIDDEN>
Subject: Re: [PATCH 0/2] Make wayland-protocols dependency native-input.
From: Liliana Marie Prikler <liliana.prikler@HIDDEN>
To: muradm <mail@HIDDEN>
Date: Fri, 17 Sep 2021 19:01:41 +0200
In-Reply-To: <87bl4rdy9m.fsf@HIDDEN>
References: <20210916192331.29606-1-mail@HIDDEN>
 <f6b0cca9359ae6b8e806d54f242b6fe1936c44a4.camel@HIDDEN>
 <87ilyzg96v.fsf@HIDDEN>
 <4bb63f130f3ec7dac628a8139c405cdc202412e9.camel@HIDDEN>
 <875yuzfqqw.fsf@HIDDEN>
 <830e045c54e06b0b0beaee30837f575a25cec986.camel@HIDDEN>
 <87bl4rdy9m.fsf@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
User-Agent: Evolution 3.34.2 
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 50627
Cc: 50627 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Hi,

Am Freitag, den 17.09.2021, 17:11 +0300 schrieb muradm:
> [...]
> I suppose it is impossible, upstream patches are for source in 
> git, gtk+ package is being built from post-processed source tarball.
> When patching upstream target is configure.ac and meson.build, when
> patching source tarball, configure script it self.
You can simply delete the generated configure file and Guix will
bootstrap it again.  So yes, you should be able to apply the upstream
patch.

> [...]
> Btw, gtk+'s native-inputs are interesting tho.. :)
In which way?

> [...]
> > This still doesn't explain the *native*-inputs assertion.
> As you point out below: "... the package is invoked at build time
> (native-inputs) ...", in cases 1, 2 and 3 above, wayland-protocols
> package is needed once, when 1, 2 or 3 target is being built. No 
> other time wayland-protocols package is needed. This is the reason
> why I decided initially to keep it in (native-inputs), because 
> definition of (native-inputs) as you explaining in this conversation
> and as explained in Guix manual, best matches with nature of
> wayland-protocols, at least in my understanding :)
This might be a bit pedantic, but *invoking* and *needing* are
different verbs, particularly in computing.  So no, you're just
confused and trying to justify your confusion.

> [...]
> > In other systems, it might be acceptable to have a package 
> > depend on some other package without said dependency being present
> > at build time. Consider a shell script that wraps youtube-
> > dl.  Since youtube-dl exists at some point between installation and
> > first use, your shell script works™ whether or not youtube-dl is
> > present at build.  Some packages in Guix do work that way, though
> > it's a pretty rare occurrence.  GStreamer is one with a legitimate
> > excuse, for example.  Other than that, *all* "dependencies"
> > (actually inputs) are present at build time, so it makes
> > no sense to distinguish between build time and run time.  Guix 
> > knows which packages it can delete from the store by tracking 
> > references.  What Guix needs to distinguish is whether the package
> > is invoked at build time (native-inputs) or whether it needs to be
> > installed alongside the package being built (propagated-inputs)
> > against none of the two (regular inputs).
> IMHO, this kind of judgement arises from one's experience, 
> demands, intuition etc. I.e. personal perception. One could just make
> it working somehow, another could have experience in what is being
> done, another could stress things to the limits. If it would be up to
> me, I would put everything into (native-inputs) and then gradually
> move things to (inputs) and (propagated-inputs) as needed (of course
> I'm not doing that, I just want to show the point, that everybody's
> judgement is not the same :)). 
This reasoning is dangerously close to the "From my point of view" line
from a prequel to a famous space opera.

While yes, you do get an understanding of what belongs where over time,
the manual does provide guidelines that prohibit the "everything is
native" approach.

> From what you are saying, if it is really requires such level of
> control, I suppose that there should be a chapter in a guide on how
> to measure dependencies, with examples and reasoning behind them,
> just like you mentioned GStreamer case, probably updated with time
> from discussions like this. This could help to bring people more or
> less on the same page.
GStreamer doesn't even concern the native-input vs. input dispute.  It
concerns the having something as an input vs. not having it.

> > So the next time you try to explain things to a first-timer, be 
> > clear that native-inputs is for tools like compilers, linkers, code
> > generators *invoked* at build time.  It will be less confusing 
> > to learn it correctly the first time round rather than having to
> > argue in the mailing lists when submitting some patch.  I
> > understand that keeping one piece of extra information in mind can
> > be hard at times and the temptation to simplify is always there,
> > but in the long term no one benefits from oversimplification.
> IMHO, for one it is unfair and/or unwise to treat everybody in the 
> same way, there could be one who barely saw compiler (if at all),
> and one who did kernel development on embedded hardware :) I believe
> that, especially with new comers, it is always depends on case by
> case basis.
I think when it comes to the point that you're packaging software for
any distro, you ought to be able to distinguish tools from things that
are not tools.  While I'm pretty sure that there are some entities out
there claiming that a bunch of XML files are a tool, I for one don't
think wayland-protocols does that.

Regards





Information forwarded to guix-patches@HIDDEN:
bug#50627; Package guix-patches. Full text available.

Message received at 50627 <at> debbugs.gnu.org:


Received: (at 50627) by debbugs.gnu.org; 17 Sep 2021 15:20:47 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Sep 17 11:20:47 2021
Received: from localhost ([127.0.0.1]:60925 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1mRFfS-0002Xd-QW
	for submit <at> debbugs.gnu.org; Fri, 17 Sep 2021 11:20:47 -0400
Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:58094
 helo=nomad-cl1.muradm.net)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mail@HIDDEN>) id 1mRFfN-0002XQ-5v
 for 50627 <at> debbugs.gnu.org; Fri, 17 Sep 2021 11:20:45 -0400
Received: from [176.234.10.27] (port=7646 helo=localhost)
 by nomad-cl1.muradm.net with esmtps (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2)
 (envelope-from <mail@HIDDEN>)
 id 1mRFfN-0000hF-0n; Fri, 17 Sep 2021 15:20:41 +0000
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; 
 s=mail;
 h=Content-Transfer-Encoding:Content-Type:MIME-Version:Message-ID:
 In-reply-to:Date:Subject:Cc:To:From:References:Sender:Reply-To:Content-ID:
 Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc
 :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe:
 List-Post:List-Owner:List-Archive;
 bh=0RowzlpPO1TKL6bY8klhjzNaDaalNeuiXeKFr4IxysM=; b=NK1DkMvcXMQYUyzTBF70iKh1tt
 RMuN03xorlCwJC7AOm99I3X/ffjd/FTwu9V3n+Gy2RtyFfYuI0vp1UUuHbFbfgDUZKoCvCsRCz+xd
 NaGKqxzczEqQQvs1MiYZnjh3s0HUA2IFvz55lYLfMtjEcEYKTWEROzlmKTySLGCZRGlBc5PbmSkq2
 hiuSayeVWQ5qL/g2PaJ8R0pjq28K7WXdWRY3oeR2DBsTwJHoa901s9tnRPVGVGTbljQzTW4wip0aR
 7nVBo+qlAj7RSpQs4VjhRjxqLIxzosalbBT2rhe2rtUgcXAQ7B6ihWaAFMdw02I1XBcFRWSZ934tY
 bo+BgpIT2+lB1A7un+J0Q0GqHGDRJKnK07rty2vVdWAP+U4KjxLi7mTZxcbBxTiOl2Hb2nnKQt0Rf
 cD31RSkjVx+EnZEwe/fFnVWMfVOkr8Hz/D1nTj/PxvECLtx9aiL472SIZKPDpF2X/7cde3JKndoqD
 vk6ooUPHn2xNtI6MtymZ3jop;
Received: from muradm by localhost with local (Exim 4.94.2)
 (envelope-from <mail@HIDDEN>)
 id 1mRFfJ-0000MC-Uy; Fri, 17 Sep 2021 18:20:37 +0300
References: <20210916192331.29606-1-mail@HIDDEN>
 <f6b0cca9359ae6b8e806d54f242b6fe1936c44a4.camel@HIDDEN>
 <87ilyzg96v.fsf@HIDDEN>
 <4bb63f130f3ec7dac628a8139c405cdc202412e9.camel@HIDDEN>
 <875yuzfqqw.fsf@HIDDEN>
 <830e045c54e06b0b0beaee30837f575a25cec986.camel@HIDDEN>
User-agent: mu4e 1.6.5; emacs 28.0.50
From: muradm <mail@HIDDEN>
To: Liliana Marie Prikler <liliana.prikler@HIDDEN>
Subject: Re: [PATCH 0/2] Make wayland-protocols dependency native-input.
Date: Fri, 17 Sep 2021 17:11:52 +0300
In-reply-to: <830e045c54e06b0b0beaee30837f575a25cec986.camel@HIDDEN>
Message-ID: <87bl4rdy9m.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 50627
Cc: 50627 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)


Apart of comments, I updated the patch, in the way that for now it
only touches gtk+ package. There are two suspect packages remain
who propagate, is wlroots, and enlightenment. enlightenment is=20
most
likely to remain leaf package, wlroots is different, we may look=20
at
it later when updating it.

Thanks in advance,
muradm

Liliana Marie Prikler <liliana.prikler@HIDDEN> writes:

> Hi,
>
> Am Freitag, den 17.09.2021, 11:20 +0300 schrieb muradm:
>> Regardless of comments below, I understand what you are trying=20
>> to
>> point out. It is fine with me to use 'inputs instead of=20
>> 'native-
>> inputs, as the final result won't change. Just in my opinion,=20
>> what I
>> found it that, it need/should not be in 'propagated-inputs. I=20
>> will be
>> updating the patch to make sure that wayland-protocols are=20
>> listed
>> among 'inputs without propagating. It is also fine with me to=20
>> close
>> this issue and don't do anything if you say that it is=20
>> unnecessary, I
>> don't mind :)
> I agree that reducing propagated-inputs is a good thing, it=20
> should just
> be moved to inputs.  When you update the patch, please do use=20
> the
> upstream version of gtk3-wayland-protocols-dependency.patch.
I suppose it is impossible, upstream patches are for source in=20
git, gtk+
package is being built from post-processed source tarball. When=20
patching
upstream target is configure.ac and meson.build, when patching=20
source
tarball, configure script it self.

[...]
>> As with any other kind of protocol, you can implement platform
>> specific encoder/decoder, but protocol remains the same.=20
>> Suppose,
>> connecting from arm, to x86 or vice versa in the context of=20
>> wayland,
>> should protocol change? As you mentioned wayland-scanner below,=20
>> that
>> would be its task to interpret protocol specification in=20
>> platform
>> specific way. So I would speculate that in future these
>> specifications would remain the same.
>> Otherwise, that would defeat the point of having protocol.
> You are probably correct in that those files will likely stay=20
> the same
> for all platforms, but there could be scenarios where for the=20
> sake of
> performance or whatever else you might want to have some=20
> protocol
> extensions.  Platforms that don't support those then wouldn't=20
> ship said
> protocol extensions.
Btw, gtk+'s native-inputs are interesting tho.. :)

[...]
>> > > There are two things which are being changed. First as you
>> > > pointing out is the way Guix treats it, i.e. reducing=20
>> > > closure,
>> > > etc.  Second is propagation of inputs. Currently (without=20
>> > > this
>> > > patch), since it is listed in propagated-inputs (and also
>> > > advertised in .pc files), wayland-protocols as requirement,
>> > > needlessly, getting pushed down then hierarchy.
>> > We ought to move it from propagated-inputs to inputs and=20
>> > either
>> > (if we can) ignore pkg-config or patch the pkg-config
>> > files.  W.r.t. pkg-config I do wonder whether=20
>> > Requires.private
>> > needs propagation, though, it normally should be just=20
>> > Requires.
>> I suppose, it is not in Guix's hands to control how pkg-config
>> files are authored by software owners and/or interpreted by=20
>> build
>> tools.
>> What Guix's can do, it to fix what is already there. This patch
>> illustrates this point.
> The point of authoring is a weird one when Guix can absolutely=20
> still
> patch the file *and* you supplied a patch that was accepted=20
> upstream.
> A patch, which mind you is arguably more correct than the one=20
> you've
> supplied for Guix, patching the build files themselves rather=20
> than
> generated sources.
>
> For other packages with similar issues without an upstream fix,=20
> you
> could on the other hand simply substitute* the .pc file.
Please, see reason mentioned above, on why patch is different.

>> > > Let's take 4 cases that we have here (I do not pretend to=20
>> > > be
>> > > complete, of course, there are might be more=20
>> > > levels/combinations,
>> > > just attempting to illustrate current case in
>> > > simple words/terms):
>> > >
>> > > 1. wayland compositor (weston, wlroots/sway, etc.)
>> > > 2. wayland client application (grim, mpv, etc. applications
>> > > directly interacting with wayland interfaces)
>> > > 3. wayland client library (qt or gtk+ in this case, also
>> > > directly
>> > > interacts with wayland to abstract it for user=20
>> > > applications)
>> > > 4. user application of wayland client library (in this case
>> > > some
>> > > gtk+ based application)
>> > >
>> > > For 1 and 2, both types should have to specify wayland in
>> > > inputs (or propagated-inputs), and wayland-protocols in=20
>> > > native-
>> > > inputs.
>> > Why?
>> One implements the protocol, the other uses it. I.e. both need
>> stubs generated from specification to agree. Which is not the=20
>> case
>> for anything beyond 4. Otherwise, we would defeat whole point=20
>> of
>> introducing abstractions.
> This still doesn't explain the *native*-inputs assertion.
As you point out below: "... the package is invoked at build time
(native-inputs) ...", in cases 1, 2 and 3 above, wayland-protocols
package is needed once, when 1, 2 or 3 target is being built. No=20
other
time wayland-protocols package is needed. This is the reason why I
decided initially to keep it in (native-inputs), because=20
definition
of (native-inputs) as you explaining in this conversation and as
explained in Guix manual, best matches with nature of
wayland-protocols, at least in my understanding :)

>> > > One of purposes to have layer 3, is to abstract from 1 and=20
>> > > 2.
>> > > i.e. when I write gtk application, as user I should not be
>> > > aware of where/how this application is going to run, via=20
>> > > xorg or
>> > > wayland. Then why I should be aware of=20
>> > > wayland/wayland-protocols
>> > > and make sure that it is provided as build input for my
>> > > application?
>> > IIUC you don't need to be aware when gtk propagates the=20
>> > input?
>> > It's similar to how you still need an Xorg server to test=20
>> > your GTK
>> > application.
>> From application using gtk stand point, it does not matter what=20
>> is
>> behind gtk. As you point out, of course me, as user launching
>> application, I have to provide some environment which could be
>> either xorg or wayland. But application's source should not be
>> aware of that fact.
> This and that are different matters.  Application source code=20
> continues
> to be blissfully unaware of the fact, but the toolchains to=20
> build your
> application are not.  Think of it like this: When you use=20
> pkg-config
> (or older -config binaries), they spit out a number of compiler=20
> and
> linker flags to supply to gcc or ld.  You as the application=20
> programmer
> are typically unaware of those flags and their values,=20
> especially if
> you turn down the verbosity of your build system, but that=20
> doesn't mean
> they're not supplied.
I don't know about typical programmer, for me as programmer, when=20
I
write, I do look at every dependency and how it is included. This=20
case
just make uncomfortable when there is dependency which is required
but unused.

[...]
>> I understand what you are saying, however as far as I am aware,
>> people being or not on the same page, tend to use simpler=20
>> definitions
>> for referencing something. I was assuming that in this mailing=20
>> list
>> we are on the same page, and free to choose to how reference=20
>> things.
>> I suppose it would be fine to say "not runtime dependency",=20
>> "build
>> time" or "dependency for host platform when crosscompiling" in
>> reference to 'native-inputs. For instance when explaining this=20
>> to one
>> who sees Guix for the first time, I would say "run time" for=20
>> 'inputs
>> and "build time" for 'native-inputs, not mentioning=20
>> "crosscompiling"
>> at all on day one.
>> Any way, I believe it is more like philosophical subject, than
>> technical.
> I think it is important to acknowledge that people come from=20
> different
> backgrounds, and knowing that to do our best to curb=20
> misunderstandings.
> Comparing Guix' package definitions to other package managers=20
> makes it
> obvious as to why that is the case.  Let me pick Gentoo ebuilds=20
> as an
> example (it's quicker to explain than whatever Debian has).
> There are five (as opposed to three in Guix) kinds of=20
> dependencies:
> - DEPEND, aka build-time dependencies,
> - RDEPEND, aka run-time dependencies,
> - BDEPEND, aka native build-time dependencies,
> - IDEPEND, aka native install-time dependenices, and
> - PDEPEND, aka what the fuck, I think I just introduced a cycle
> somewhere.
> When you say "build-time dependencies go into native inputs",=20
> someone
> with a shallow understanding might think that *all* build time
> dependencies are native inputs, when in fact only build time=20
> tools
> (i.e. BDEPEND in Gentoo parlance) would go there.
>
> In other systems, it might be acceptable to have a package=20
> depend on
> some other package without said dependency being present at=20
> build time.
> Consider a shell script that wraps youtube-dl.  Since youtube-dl=20
> exists
> at some point between installation and first use, your shell=20
> script
> works=E2=84=A2 whether or not youtube-dl is present at build.  Some=20
> packages in
> Guix do work that way, though it's a pretty rare occurrence.=20
> GStreamer
> is one with a legitimate excuse, for example.  Other than that,=20
> *all*
> "dependencies" (actually inputs) are present at build time, so=20
> it makes
> no sense to distinguish between build time and run time.  Guix=20
> knows
> which packages it can delete from the store by tracking=20
> references.
> What Guix needs to distinguish is whether the package is invoked=20
> at
> build time (native-inputs) or whether it needs to be installed
> alongside the package being built (propagated-inputs) against=20
> none of
> the two (regular inputs).
IMHO, this kind of judgement arises from one's experience,=20
demands,
intuition etc. I.e. personal perception. One could just make it=20
working
somehow, another could have experience in what is being done,=20
another
could stress things to the limits. If it would be up to me, I=20
would put
everything into (native-inputs) and then gradually move things to
(inputs) and (propagated-inputs) as needed (of course I'm not=20
doing
that, I just want to show the point, that everybody's judgement is
not the same :)). From what you are saying, if it is really=20
requires
such level of control, I suppose that there should be a chapter in
a guide on how to measure dependencies, with examples and=20
reasoning
behind them, just like you mentioned GStreamer case, probably=20
updated
with time from discussions like this. This could help to bring=20
people
more or less on the same page.

> So the next time you try to explain things to a first-timer, be=20
> clear
> that native-inputs is for tools like compilers, linkers, code
> generators *invoked* at build time.  It will be less confusing=20
> to learn
> it correctly the first time round rather than having to argue in=20
> the
> mailing lists when submitting some patch.  I understand that=20
> keeping
> one piece of extra information in mind can be hard at times and=20
> the
> temptation to simplify is always there, but in the long term no=20
> one
> benefits from oversimplification.
IMHO, for one it is unfair and/or unwise to treat everybody in the=20
same
way, there could be one who barely saw compiler (if at all), and=20
one
who did kernel development on embedded hardware :) I believe that,
especially with new comers, it is always depends on case by case=20
basis.

> Sorry for making you read this huge wall of text and happy=20
> hacking :)
No issue, always good for practice, and history :)




Information forwarded to guix-patches@HIDDEN:
bug#50627; Package guix-patches. Full text available.

Message received at 50627 <at> debbugs.gnu.org:


Received: (at 50627) by debbugs.gnu.org; 17 Sep 2021 14:11:14 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Sep 17 10:11:14 2021
Received: from localhost ([127.0.0.1]:60820 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1mREa9-0004qk-RC
	for submit <at> debbugs.gnu.org; Fri, 17 Sep 2021 10:11:14 -0400
Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:58092
 helo=nomad-cl1.muradm.net)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mail@HIDDEN>) id 1mREa7-0004qa-I3
 for 50627 <at> debbugs.gnu.org; Fri, 17 Sep 2021 10:11:12 -0400
Received: from [176.234.10.27] (port=7294 helo=localhost)
 by nomad-cl1.muradm.net with esmtps (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2)
 (envelope-from <mail@HIDDEN>) id 1mREa7-0000h6-Qz
 for 50627 <at> debbugs.gnu.org; Fri, 17 Sep 2021 14:11:11 +0000
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; 
 s=mail;
 h=Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:
 Message-Id:Date:Subject:To:From:Sender:Reply-To:Cc:Content-Type:Content-ID:
 Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc
 :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe:
 List-Post:List-Owner:List-Archive;
 bh=46hDnFyUuP3vK0FuT9yAh3QHuU9MEOKSkvDb3lFRbXk=; b=rlXeIyo6L82gDuJPhyb7WjL4zb
 j9isj/gyuxKXODOtBsdifq/+h2I9GRfZDCawOTmmgTrUWd+g5x3ywtfHxz6XO1nAAO6+/NDOBIDeK
 7ZKELRMRiL7Yp5D2tlhCFDZQMnj0v2sCJwpBvHrn5hBtmVtW8oweC3jsjVTJZ0Z7+8t4H+hTJhJFk
 3BLKmoSfz7l43NNNhUGIYHOYOMpkqy9H/l0mTirO4lMapMJkUz09Ly2QlA5dW05jomnLpyi4h6CnE
 3pAIeCkCAMJwEn9Ja6d/VPVW/e6qdK2472vSNpIzCWYHXAOBW41nFJlOfseSZiWCd3TMscf7NdPXV
 CAPwu0oPcvCWszthFSWpr+18TdM0JedhpKnxeHIu+LBOs/Gy6SlRcdUSpju0Q9DA8e+YmH8TCWWX6
 UZyd9RIo9knEpZ0WMdwJtStRFpWDUUG/yH2U/YPLPZYum2zvYioHlwBpKQZjscYNnZT3ypoU+gn+O
 +P0pmGKEFbljfiVlx50+fC8n;
Received: from muradm by localhost with local (Exim 4.94.2)
 (envelope-from <mail@HIDDEN>) id 1mREa4-0000D3-RR
 for 50627 <at> debbugs.gnu.org; Fri, 17 Sep 2021 17:11:08 +0300
From: muradm <mail@HIDDEN>
To: 50627 <at> debbugs.gnu.org
Subject: [PATCH v1] gnu: gtk: Move wayland-protocols to inputs.
Date: Fri, 17 Sep 2021 17:11:08 +0300
Message-Id: <20210917141108.801-1-mail@HIDDEN>
X-Mailer: git-send-email 2.33.0
In-Reply-To: <20210916192331.29606-1-mail@HIDDEN>
References: <20210916192331.29606-1-mail@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 50627
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

I was building some packages on Guix. I figured out that
wayland-protocols was listed among propagated-inputs for gtk+ package.

wayland-protocols is not runtime dependency, so I moved it to
inputs of gtk+ package, once moved, building of other applications
that depening on gtk+ started to fail.

Investigation showed that, all .pc (pkg-config) files prepared by gtk+
package, was including:

Requires.private: ... wayland-protocols ...

Since it becomes requirement, other applications was failing with
missing dependency wayland-protocols of dependency gtk+, for instance:

-- Checking for module 'gtk+-3.0'
--   Package 'wayland-protocols', required by 'gdk-3.0', not found

While actually wayland-protocols is not even a build time dependency
of application that depends on gtk+. Advertisement of such
requirement, is a bit misleading, because one does not need it at
runtime, especially applications based on gtk.

Same change also merged upstream for both master and gtk-3-24 branch.

* gnu/packages/patches/gtk3-wayland-protocols-dependency.patch:
Upstream change
* gnu/packages/gtk.scm (gtk+): move wayland-protocols to inputs
---
 gnu/packages/gtk.scm                          |  9 ++++----
 .../gtk3-wayland-protocols-dependency.patch   | 23 +++++++++++++++++++
 2 files changed, 28 insertions(+), 4 deletions(-)
 create mode 100644 gnu/packages/patches/gtk3-wayland-protocols-dependency.patch

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 24c24d5653..f164005416 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -948,7 +948,8 @@ application suites.")
         (base32
          "1a9vg840fjq1mmm403b67k624qrkxh9shaz9pv7z9l8a6bzvyxds"))
        (patches (search-patches "gtk3-respect-GUIX_GTK3_PATH.patch"
-                                "gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch"))))
+                                "gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch"
+                                "gtk3-wayland-protocols-dependency.patch"))))
     (propagated-inputs
      `(("atk" ,atk)
        ("at-spi2-atk" ,at-spi2-atk)
@@ -978,8 +979,7 @@ application suites.")
        ("libxrender" ,libxrender)
        ("mesa" ,mesa)
        ("pango" ,pango)
-       ("wayland" ,wayland)
-       ("wayland-protocols" ,wayland-protocols)))
+       ("wayland" ,wayland)))
     (inputs
      `(("colord" ,colord)
        ("cups" ,cups)
@@ -988,7 +988,8 @@ application suites.")
        ("iso-codes" ,iso-codes)
        ("json-glib" ,json-glib)
        ("libxml2" ,libxml2)
-       ("rest" ,rest)))
+       ("rest" ,rest)
+       ("wayland-protocols" ,wayland-protocols)))
     (native-inputs
      `(("docbook-xml" ,docbook-xml-4.1.2)
        ("gettext" ,gettext-minimal)
diff --git a/gnu/packages/patches/gtk3-wayland-protocols-dependency.patch b/gnu/packages/patches/gtk3-wayland-protocols-dependency.patch
new file mode 100644
index 0000000000..03196713bc
--- /dev/null
+++ b/gnu/packages/patches/gtk3-wayland-protocols-dependency.patch
@@ -0,0 +1,23 @@
+diff --git a/configure b/configure
+index edd41ad..cb36877 100755
+--- a/configure
++++ b/configure
+@@ -23247,7 +23247,8 @@ $as_echo "no" >&6; }
+ 	fi
+ fi
+ 
+-WAYLAND_DEPENDENCIES="wayland-client >= 1.14.91 wayland-protocols >= 1.17 xkbcommon >= 0.2.0 wayland-cursor >= 1.14.91 wayland-egl"
++WAYLAND_RUNTIME_DEPENDENCIES="wayland-client >= 1.14.91 xkbcommon >= 0.2.0 wayland-cursor >= 1.14.91 wayland-egl"
++WAYLAND_DEPENDENCIES="wayland-protocols >= 1.17 $WAYLAND_RUNTIME_DEPENDENCIES"
+ if test "$enable_wayland_backend" = "maybe" ; then
+   # Extract the first word of "wayland-scanner", so it can be a program name with args.
+ set dummy wayland-scanner; ac_word=$2
+@@ -23320,7 +23321,7 @@ if test "$enable_wayland_backend" = "yes"; then
+   GDK_WINDOWING="$GDK_WINDOWING
+ #define GDK_WINDOWING_WAYLAND"
+   backend_immodules="$backend_immodules,wayland"
+-  WAYLAND_PACKAGES="$WAYLAND_DEPENDENCIES"
++  WAYLAND_PACKAGES="$WAYLAND_RUNTIME_DEPENDENCIES"
+   # Extract the first word of "wayland-scanner", so it can be a program name with args.
+ set dummy wayland-scanner; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-- 
2.33.0





Information forwarded to guix-patches@HIDDEN:
bug#50627; Package guix-patches. Full text available.

Message received at 50627 <at> debbugs.gnu.org:


Received: (at 50627) by debbugs.gnu.org; 17 Sep 2021 13:01:15 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Sep 17 09:01:15 2021
Received: from localhost ([127.0.0.1]:58734 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1mRDUQ-0002aw-RN
	for submit <at> debbugs.gnu.org; Fri, 17 Sep 2021 09:01:15 -0400
Received: from mail-wm1-f68.google.com ([209.85.128.68]:44022)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <liliana.prikler@HIDDEN>) id 1mRDUO-0002ag-Pi
 for 50627 <at> debbugs.gnu.org; Fri, 17 Sep 2021 09:01:13 -0400
Received: by mail-wm1-f68.google.com with SMTP id
 a194-20020a1c98cb000000b0030b41ac389fso2107025wme.2
 for <50627 <at> debbugs.gnu.org>; Fri, 17 Sep 2021 06:01:12 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;
 h=message-id:subject:from:to:cc:date:in-reply-to:references
 :user-agent:mime-version:content-transfer-encoding;
 bh=lVYa442mbttea6Ca0EeFrhhm1u5kUigDtjd1UVFFN9A=;
 b=meuQOWgJkoYF1tPH0Yq2+myrK5d+UYz+zAwrJwSo+aIYeOFnqyoHkGC6hTT9fs/sLo
 g1fianNSKPGmNzuVEQ8c0TN45C5SF4ObSK1SH17mHeedOlNx81w+o9txfttiICEwHAD1
 TbM/fRdCxI2ao4YxyzlhqvFBPomzrromahmnnIEyMgpoMzp/PY5f+DXENExjAyzijYT/
 2Ph2//Ap3MeX2d9ecui9YtdttmbmVnACkSznDbMhzKCGnM8DN5qmupckXg63JdM4hpdx
 T59ptTIU3KRZQoTpI9RJ1qECoovIkmQihdtXqzTOiu4FMb7v3uhRcRo6atb/Ds9E3+Rz
 Fyfg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to
 :references:user-agent:mime-version:content-transfer-encoding;
 bh=lVYa442mbttea6Ca0EeFrhhm1u5kUigDtjd1UVFFN9A=;
 b=4TIrPKJQTpcDdRcBW7DdJPq4AdLSZttHr12Ur7IZP/xUvyZCGLIKKN0OcXzBpGKhwC
 erLrORmiEU8VWs1CrK3/bThN5+MQsm67BYsGMepT6D+bKBlhnFNwne2OWUF9KaukxfkW
 Ixwzp8W5vfT5EpaE+BJhsTnUx43xVoWCthAM7YyJo3gfF1vw1WVyOg87DyG7zB4USZRV
 HcUNvLOKaWnz0eUUhqI8kPcS496afE/93ZGrKBd7EbDZu10wnaU5bFjOpTTpjACk8VAr
 5xflmGsD2+7JGQXtAUw8gzPTtyjGfW5NfZRG0UOyxR8WoMpzmM2hsMeuCbnHTvXxziH2
 GtAA==
X-Gm-Message-State: AOAM532wjSGNorl2W3DqJeGVi/j7bpwsWJCOyIVCbHLQkPaXCRjVkYNb
 LmJowNmXaPuckJ1RTV/+aHk=
X-Google-Smtp-Source: ABdhPJyUZPIhfc2dPTeYeA5V34RJmIZFY0/Xh4EzwV+l7OkEuseCEZ6GPytOhXivp1Tclr0GQG5TKw==
X-Received: by 2002:a7b:cb45:: with SMTP id v5mr14561607wmj.184.1631883666526; 
 Fri, 17 Sep 2021 06:01:06 -0700 (PDT)
Received: from nijino.fritz.box (85-127-52-93.dsl.dynamic.surfer.at.
 [85.127.52.93])
 by smtp.gmail.com with ESMTPSA id s24sm6070712wmh.34.2021.09.17.06.01.05
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 17 Sep 2021 06:01:05 -0700 (PDT)
Message-ID: <830e045c54e06b0b0beaee30837f575a25cec986.camel@HIDDEN>
Subject: Re: [PATCH 0/2] Make wayland-protocols dependency native-input.
From: Liliana Marie Prikler <liliana.prikler@HIDDEN>
To: muradm <mail@HIDDEN>
Date: Fri, 17 Sep 2021 15:01:04 +0200
In-Reply-To: <875yuzfqqw.fsf@HIDDEN>
References: <20210916192331.29606-1-mail@HIDDEN>
 <f6b0cca9359ae6b8e806d54f242b6fe1936c44a4.camel@HIDDEN>
 <87ilyzg96v.fsf@HIDDEN>
 <4bb63f130f3ec7dac628a8139c405cdc202412e9.camel@HIDDEN>
 <875yuzfqqw.fsf@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
User-Agent: Evolution 3.34.2 
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 50627
Cc: 50627 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Hi,

Am Freitag, den 17.09.2021, 11:20 +0300 schrieb muradm:
> Regardless of comments below, I understand what you are trying to 
> point out. It is fine with me to use 'inputs instead of 'native-
> inputs, as the final result won't change. Just in my opinion, what I
> found it that, it need/should not be in 'propagated-inputs. I will be
> updating the patch to make sure that wayland-protocols are listed
> among 'inputs without propagating. It is also fine with me to close
> this issue and don't do anything if you say that it is unnecessary, I
> don't mind :)
I agree that reducing propagated-inputs is a good thing, it should just
be moved to inputs.  When you update the patch, please do use the
upstream version of gtk3-wayland-protocols-dependency.patch.

> Liliana Marie Prikler <liliana.prikler@HIDDEN> writes:
> 
> > And what kind of code is generated from them?  I would assume 
> > it's target code.  And since wayland-protocols is no tool to
> > process those XML files, but the files themselves, I'd hazard a
> > guess that it should rather be built for the target.  While
> > currently this appears to make no difference, there might well be a
> > time in which those files differ for some two architectures, which
> > then would cause problems in cross-compiling contexts were it a
> > native input.
> As with any other kind of protocol, you can implement platform 
> specific encoder/decoder, but protocol remains the same. Suppose, 
> connecting from arm, to x86 or vice versa in the context of wayland,
> should protocol change? As you mentioned wayland-scanner below, that
> would be its task to interpret protocol specification in platform
> specific way. So I would speculate that in future these
> specifications would remain the same.
> Otherwise, that would defeat the point of having protocol.
You are probably correct in that those files will likely stay the same
for all platforms, but there could be scenarios where for the sake of
performance or whatever else you might want to have some protocol
extensions.  Platforms that don't support those then wouldn't ship said
protocol extensions.

> > In that case I'd hazard a guess that it's fine, but the phrase
> > "wayland-protocols remains to be an input" is perhaps a bit 
> > weird given the change to native-input.
> Probably, I'd better put single quote in front of the word when it
> means symbol, and don't put one when it is human word :) in this 
> context it was meaning literal input (regardless of type, be it
> 'inputs, 'native-inputs or 'propagated-inputs).
In my personal experience people don't pronounce quotes, so it's better
to be explicit rather than implicit.

> > > There are two things which are being changed. First as you
> > > pointing out is the way Guix treats it, i.e. reducing closure, 
> > > etc.  Second is propagation of inputs. Currently (without this 
> > > patch), since it is listed in propagated-inputs (and also
> > > advertised in .pc files), wayland-protocols as requirement,
> > > needlessly, getting pushed down then hierarchy.
> > We ought to move it from propagated-inputs to inputs and either 
> > (if we can) ignore pkg-config or patch the pkg-config
> > files.  W.r.t. pkg-config I do wonder whether Requires.private
> > needs propagation, though, it normally should be just Requires.
> I suppose, it is not in Guix's hands to control how pkg-config 
> files are authored by software owners and/or interpreted by build
> tools. 
> What Guix's can do, it to fix what is already there. This patch 
> illustrates this point.
The point of authoring is a weird one when Guix can absolutely still
patch the file *and* you supplied a patch that was accepted upstream. 
A patch, which mind you is arguably more correct than the one you've
supplied for Guix, patching the build files themselves rather than
generated sources.

For other packages with similar issues without an upstream fix, you
could on the other hand simply substitute* the .pc file.

> > > Let's take 4 cases that we have here (I do not pretend to be
> > > complete, of course, there are might be more levels/combinations,
> > > just attempting to illustrate current case in
> > > simple words/terms):
> > > 
> > > 1. wayland compositor (weston, wlroots/sway, etc.)
> > > 2. wayland client application (grim, mpv, etc. applications
> > > directly interacting with wayland interfaces)
> > > 3. wayland client library (qt or gtk+ in this case, also 
> > > directly
> > > interacts with wayland to abstract it for user applications)
> > > 4. user application of wayland client library (in this case 
> > > some
> > > gtk+ based application)
> > > 
> > > For 1 and 2, both types should have to specify wayland in 
> > > inputs (or propagated-inputs), and wayland-protocols in native-
> > > inputs.
> > Why?
> One implements the protocol, the other uses it. I.e. both need 
> stubs generated from specification to agree. Which is not the case
> for anything beyond 4. Otherwise, we would defeat whole point of
> introducing abstractions.
This still doesn't explain the *native*-inputs assertion.

> > > One of purposes to have layer 3, is to abstract from 1 and 2.
> > > i.e. when I write gtk application, as user I should not be 
> > > aware of where/how this application is going to run, via xorg or 
> > > wayland. Then why I should be aware of wayland/wayland-protocols
> > > and make sure that it is provided as build input for my
> > > application?
> > IIUC you don't need to be aware when gtk propagates the input? 
> > It's similar to how you still need an Xorg server to test your GTK
> > application.
> From application using gtk stand point, it does not matter what is
> behind gtk. As you point out, of course me, as user launching
> application, I have to provide some environment which could be
> either xorg or wayland. But application's source should not be
> aware of that fact.
This and that are different matters.  Application source code continues
to be blissfully unaware of the fact, but the toolchains to build your
application are not.  Think of it like this: When you use pkg-config
(or older -config binaries), they spit out a number of compiler and
linker flags to supply to gcc or ld.  You as the application programmer
are typically unaware of those flags and their values, especially if
you turn down the verbosity of your build system, but that doesn't mean
they're not supplied.

> [...]
> > >           When cross-compiling, dependencies listed in ‘inputs’ 
> > >           are built for the _target_ architecture; conversely,
> > >           dependencies listed in ‘native-inputs’ are built for 
> > >           the architecture of the _build_ machine.
> > This is the distinction to make here.  "Typically used to list 
> > tools" here means that the package provides a tool (i.e. a binary)
> > that you invoke at some point of your recipe.  This can be a
> > compiler like GCC, a tool to create Makefiles like automake, or an
> > X server to launch tests in.  The only thing in that regard when
> > talking about wayland would be the wayland-scanner tool provided by
> > the wayland package.
> > 
> > Notice the contrast to what you said before with wayland being 
> > an input and wayland-protocols being a native one.  If you need 
> > wayland-scanner for you build, it should be a native-input (as well
> > as an input, probably).  If this does become a problem later on, a
> > bin/lib split for wayland might make sense.
> I understand what you are saying, however as far as I am aware, 
> people being or not on the same page, tend to use simpler definitions
> for referencing something. I was assuming that in this mailing list
> we are on the same page, and free to choose to how reference things.
> I suppose it would be fine to say "not runtime dependency", "build 
> time" or "dependency for host platform when crosscompiling" in
> reference to 'native-inputs. For instance when explaining this to one
> who sees Guix for the first time, I would say "run time" for 'inputs
> and "build time" for 'native-inputs, not mentioning "crosscompiling"
> at all on day one.
> Any way, I believe it is more like philosophical subject, than 
> technical.
I think it is important to acknowledge that people come from different
backgrounds, and knowing that to do our best to curb misunderstandings.
Comparing Guix' package definitions to other package managers makes it
obvious as to why that is the case.  Let me pick Gentoo ebuilds as an
example (it's quicker to explain than whatever Debian has).
There are five (as opposed to three in Guix) kinds of dependencies:
- DEPEND, aka build-time dependencies,
- RDEPEND, aka run-time dependencies,
- BDEPEND, aka native build-time dependencies,
- IDEPEND, aka native install-time dependenices, and
- PDEPEND, aka what the fuck, I think I just introduced a cycle
somewhere.  
When you say "build-time dependencies go into native inputs", someone
with a shallow understanding might think that *all* build time
dependencies are native inputs, when in fact only build time tools
(i.e. BDEPEND in Gentoo parlance) would go there.

In other systems, it might be acceptable to have a package depend on
some other package without said dependency being present at build time.
Consider a shell script that wraps youtube-dl.  Since youtube-dl exists
at some point between installation and first use, your shell script
works™ whether or not youtube-dl is present at build.  Some packages in
Guix do work that way, though it's a pretty rare occurrence.  GStreamer
is one with a legitimate excuse, for example.  Other than that, *all*
"dependencies" (actually inputs) are present at build time, so it makes
no sense to distinguish between build time and run time.  Guix knows
which packages it can delete from the store by tracking references. 
What Guix needs to distinguish is whether the package is invoked at
build time (native-inputs) or whether it needs to be installed
alongside the package being built (propagated-inputs) against none of
the two (regular inputs).

So the next time you try to explain things to a first-timer, be clear
that native-inputs is for tools like compilers, linkers, code
generators *invoked* at build time.  It will be less confusing to learn
it correctly the first time round rather than having to argue in the
mailing lists when submitting some patch.  I understand that keeping
one piece of extra information in mind can be hard at times and the
temptation to simplify is always there, but in the long term no one
benefits from oversimplification.

Sorry for making you read this huge wall of text and happy hacking :)





Information forwarded to guix-patches@HIDDEN:
bug#50627; Package guix-patches. Full text available.

Message received at 50627 <at> debbugs.gnu.org:


Received: (at 50627) by debbugs.gnu.org; 17 Sep 2021 10:20:13 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Sep 17 06:20:13 2021
Received: from localhost ([127.0.0.1]:58577 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1mRAya-0004m1-NV
	for submit <at> debbugs.gnu.org; Fri, 17 Sep 2021 06:20:13 -0400
Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:58090
 helo=nomad-cl1.muradm.net)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mail@HIDDEN>) id 1mRAyY-0004lo-Cm
 for 50627 <at> debbugs.gnu.org; Fri, 17 Sep 2021 06:20:11 -0400
Received: from [176.234.10.27] (port=7008 helo=localhost)
 by nomad-cl1.muradm.net with esmtps (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2)
 (envelope-from <mail@HIDDEN>)
 id 1mRAyY-0000dB-4L; Fri, 17 Sep 2021 10:20:10 +0000
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; 
 s=mail;
 h=Content-Transfer-Encoding:Content-Type:MIME-Version:Message-ID:
 In-reply-to:Date:Subject:Cc:To:From:References:Sender:Reply-To:Content-ID:
 Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc
 :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe:
 List-Post:List-Owner:List-Archive;
 bh=XgQAmSAN78EeE6Pnny7k3vBRgqcoppImUTjHAa4fdU4=; b=HfX9ZSJr4Hx2yDewp8ueoIV5+4
 dG5IFKtpvViGN27M0h4jpYnRISo2BQsXQPa7HEpgF2pAp4xRuq2hedkpO7N9XmTFOh22bC7+OGMel
 Q2QYlx5RLVki7GTDIsrojI5JonSP2RdMZX8Hj3+uEAcrCsVjo6tE9nPAsH23jLwScR03f5WK4uRip
 k7QUDRIIOi6VZVBSzSF3w+PQdKodIBQPrAnS7qk/rnVEpMIx+V4DZCkunOKUM158JHHtwy0fn8WyP
 gAT51awEja30xexivmP5gMdPz7byrPrT7sPV515VJZtLWnd4X/Oyc5dX2v4Q9AKr0xHLddZFlLVP4
 fLKf4MlU6VYNP8Cyl+853+hg0KhQwho3N03dyYVgZrwTLSIDWAH9BcrQc6ThKMXp0s6FFDcXvdUm4
 O1X8ILSvyupah8aMp2AqrNCV9E2y+VQNofYvwrDLGTRNVDN4rEpNc0dBy/yx7v5So5tnwkzTTC/2U
 hqc28pQwWs4CZ+LSEX+7t5Y1;
Received: from muradm by localhost with local (Exim 4.94.2)
 (envelope-from <mail@HIDDEN>)
 id 1mRAyV-0002ze-5s; Fri, 17 Sep 2021 13:20:07 +0300
References: <20210916192331.29606-1-mail@HIDDEN>
 <f6b0cca9359ae6b8e806d54f242b6fe1936c44a4.camel@HIDDEN>
 <87ilyzg96v.fsf@HIDDEN>
 <4bb63f130f3ec7dac628a8139c405cdc202412e9.camel@HIDDEN>
User-agent: mu4e 1.6.5; emacs 28.0.50
From: muradm <mail@HIDDEN>
To: Liliana Marie Prikler <liliana.prikler@HIDDEN>
Subject: Re: [PATCH 0/2] Make wayland-protocols dependency native-input.
Date: Fri, 17 Sep 2021 11:20:10 +0300
In-reply-to: <4bb63f130f3ec7dac628a8139c405cdc202412e9.camel@HIDDEN>
Message-ID: <875yuzfqqw.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 50627
Cc: 50627 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)


Regardless of comments below, I understand what you are trying to=20
point
out. It is fine with me to use 'inputs instead of 'native-inputs,=20
as the
final result won't change. Just in my opinion, what I found it=20
that, it
need/should not be in 'propagated-inputs. I will be updating the=20
patch
to make sure that wayland-protocols are listed among 'inputs=20
without
propagating. It is also fine with me to close this issue and don't=20
do
anything if you say that it is unnecessary, I don't mind :)

Liliana Marie Prikler <liliana.prikler@HIDDEN> writes:

> Hi
>
> Am Freitag, den 17.09.2021, 05:35 +0300 schrieb muradm:
>> Liliana Marie Prikler <liliana.prikler@HIDDEN> writes:
>>
>> > Hi,
>> >
>> > Am Donnerstag, den 16.09.2021, 22:23 +0300 schrieb muradm:
>> > > wayland-protocols is not runtime dependency and only build=20
>> > > time
>> > > dependency for applications that directly using wayland.
>> > Guix does not distinguish between "build time" and run time
>> > dependencies.
>> True, here issue could be related to miss wording, but same
>> wording is used in the manual as well, so do I.
> I'll respond to that in your quote below.
>
>> > > Initially I tought that making wayland-protocols a
>> > > native-inputs dependency as it should, it would reduce=20
>> > > number of
>> > > dependants on it. But it turns out other way around. With=20
>> > > this
>> > > patchset we are fixing gtk+ to not advertise it as=20
>> > > dependency in
>> > > its .pc files, and moving wayland-protocols to=20
>> > > native-inputs
>> > > where it should be.
>> > That's not what native-inputs are used for.  native-inputs
>> > provide binaries that the host/build machine needs to run in=20
>> > order
>> > to compile a package.  It doesn't seem to be the case that=20
>> > wayland-
>> > protocols is such a package, is it?
>> wayland-protocols is different package. It does not include any
>> binaries only protocol specifications (some xml files), which=20
>> are
>> used for code generation. We could consider them as a kind of
>> autoconf/bison like inputs, but tightly scoped for wayland=20
>> needs,
>> although they are not so and not binaries.
> And what kind of code is generated from them?  I would assume=20
> it's
> target code.  And since wayland-protocols is no tool to process=20
> those
> XML files, but the files themselves, I'd hazard a guess that it=20
> should
> rather be built for the target.  While currently this appears to=20
> make
> no difference, there might well be a time in which those files=20
> differ
> for some two architectures, which then would cause problems in=20
> cross-
> compiling contexts were it a native input.
As with any other kind of protocol, you can implement platform=20
specific
encoder/decoder, but protocol remains the same. Suppose,=20
connecting from
arm, to x86 or vice versa in the context of wayland, should=20
protocol
change? As you mentioned wayland-scanner below, that would be its=20
task
to interpret protocol specification in platform specific way. So I=20
would
speculate that in future these specifications would remain the=20
same.
Otherwise, that would defeat the point of having protocol.

>> > > Patch provided for gtk+ also merged with upstream.
>> > >
>> > > Patchset prepared from core-updates-frozen. While it seems=20
>> > > that
>> > > it will impact many other packages, actually this patch=20
>> > > reduces
>> > > number of packages that touches wayland-protocols and=20
>> > > probably
>> > > avoids it at runtime.
>> > But it still impacts a large number of packages in ways that
>> > could
>> > potentially break and haven't been tested, right?
>> Technically, this package does not change anything in terms of
>> binary producing. wayland-protocols remains to be an input as=20
>> it was
>> before. I.e. wayland compositor, wayland application, wayland=20
>> using
>> library, application which uses wayland using library, binary=20
>> output
>> is not impacted. If binary output is the same, is there any=20
>> thing
>> else to test?
> In that case I'd hazard a guess that it's fine, but the phrase
> "wayland-protocols remains to be an input" is perhaps a bit=20
> weird given
> the change to native-input.
Probably, I'd better put single quote in front of the word when it
means symbol, and don't put one when it is human word :) in this=20
context
it was meaning literal input (regardless of type, be it 'inputs,
'native-inputs or 'propagated-inputs).

>> There are two things which are being changed. First as you
>> pointing out is the way Guix treats it, i.e. reducing closure,=20
>> etc.
>> Second is propagation of inputs. Currently (without this=20
>> patch),
>> since it is listed in propagated-inputs (and also advertised in=20
>> .pc
>> files), wayland-protocols as requirement, needlessly, getting=20
>> pushed
>> down then hierarchy.
> We ought to move it from propagated-inputs to inputs and either=20
> (if we
> can) ignore pkg-config or patch the pkg-config files.  W.r.t.=20
> pkg-
> config I do wonder whether Requires.private needs propagation,=20
> though,
> it normally should be just Requires.
I suppose, it is not in Guix's hands to control how pkg-config=20
files are
authored by software owners and/or interpreted by build tools.=20
What
Guix's can do, it to fix what is already there. This patch=20
illustrates
this point.

>> Let's take 4 cases that we have here (I do not pretend to be
>> complete, of course, there are might be more=20
>> levels/combinations,
>> just attempting to illustrate current case in simple=20
>> words/terms):
>>
>> 1. wayland compositor (weston, wlroots/sway, etc.)
>> 2. wayland client application (grim, mpv, etc. applications
>> directly interacting with wayland interfaces)
>> 3. wayland client library (qt or gtk+ in this case, also=20
>> directly
>> interacts with wayland to abstract it for user applications)
>> 4. user application of wayland client library (in this case=20
>> some
>> gtk+ based application)
>>
>> For 1 and 2, both types should have to specify wayland in=20
>> inputs
>> (or propagated-inputs), and wayland-protocols in native-inputs.
> Why?
One implements the protocol, the other uses it. I.e. both need=20
stubs
generated from specification to agree. Which is not the case for
anything beyond 4. Otherwise, we would defeat whole point of
introducing abstractions.

>> One of purposes to have layer 3, is to abstract from 1 and 2.
>> i.e. when I write gtk application, as user I should not be=20
>> aware
>> of where/how this application is going to run, via xorg or=20
>> wayland.
>> Then why I should be aware of wayland/wayland-protocols and=20
>> make
>> sure that it is provided as build input for my application?
> IIUC you don't need to be aware when gtk propagates the input?=20
> It's
> similar to how you still need an Xorg server to test your GTK
> application.
From application using gtk stand point, it does not matter what is
behind gtk. As you point out, of course me, as user launching
application, I have to provide some environment which could be
either xorg or wayland. But application's source should not be
aware of that fact.

>> More over, if I will have some other unrelated package that
>> depends on my gtk application (item 4 above), i still will see
>> wayland-protocols among my inputs.
>>
>> Currently, thanks to Guix, it is getting resolved by having it
>> listed in propagated-inputs.
>>
>> For the long run, it was also fixed in gtk, so that
>> wayland-protocols is not going to be advertised in gtk's .pc=20
>> files
>> any more=20
>> (https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/3960
>> and https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/3961).
> Which is fine in and of its own, but not the right thing w.r.t.=20
> native-
> inputs.
>
>> I suppose that, initially wayland-protocols was listed in
>> propagated-inputs for this same reason, because gtk was
>> advertising it in .pc files.
> Probably.
>
>> > While reducing closure size is generally a good thing, I=20
>> > think we
>> > do need to be careful whenever "build time vs. run time" and=20
>> > native
>> > vs. non-native are confused.
>> I'm using terminology as per documentation :) may be it should=20
>> be
>> reworded in some other way to avoid confusion. 8.2.1 package
>> reference:
>>
>>           =E2=80=98native-inputs=E2=80=99 is typically used to list tool=
s=20
>>           needed
>>           at build time, but not at run time...
> You're quoting the manual out-of-context and (accidentally)=20
> misuse the
> word tool.
>
>>           When cross-compiling, dependencies listed in =E2=80=98inputs=
=E2=80=99=20
>>           are
>>           built for the _target_ architecture; conversely,
>>           dependencies listed in =E2=80=98native-inputs=E2=80=99 are bui=
lt for=20
>>           the
>>           architecture of the _build_ machine.
> This is the distinction to make here.  "Typically used to list=20
> tools"
> here means that the package provides a tool (i.e. a binary) that=20
> you
> invoke at some point of your recipe.  This can be a compiler=20
> like GCC,
> a tool to create Makefiles like automake, or an X server to=20
> launch
> tests in.  The only thing in that regard when talking about=20
> wayland
> would be the wayland-scanner tool provided by the wayland=20
> package.
>
> Notice the contrast to what you said before with wayland being=20
> an input
> and wayland-protocols being a native one.  If you need=20
> wayland-scanner
> for you build, it should be a native-input (as well as an input,
> probably).  If this does become a problem later on, a bin/lib=20
> split for
> wayland might make sense.
I understand what you are saying, however as far as I am aware,=20
people
being or not on the same page, tend to use simpler definitions for
referencing something. I was assuming that in this mailing list we
are on the same page, and free to choose to how reference things.
I suppose it would be fine to say "not runtime dependency", "build=20
time"
or "dependency for host platform when crosscompiling" in reference=20
to
'native-inputs. For instance when explaining this to one who sees=20
Guix
for the first time, I would say "run time" for 'inputs and "build=20
time"
for 'native-inputs, not mentioning "crosscompiling" at all on day=20
one.
Any way, I beleive it is more like phylosophical subject, than=20
technical.

> Regards





Information forwarded to guix-patches@HIDDEN:
bug#50627; Package guix-patches. Full text available.

Message received at 50627 <at> debbugs.gnu.org:


Received: (at 50627) by debbugs.gnu.org; 17 Sep 2021 07:46:13 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Sep 17 03:46:13 2021
Received: from localhost ([127.0.0.1]:58368 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1mR8ZY-0000qT-QF
	for submit <at> debbugs.gnu.org; Fri, 17 Sep 2021 03:46:13 -0400
Received: from mail-wm1-f66.google.com ([209.85.128.66]:34529)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <liliana.prikler@HIDDEN>) id 1mR8ZU-0000q6-5i
 for 50627 <at> debbugs.gnu.org; Fri, 17 Sep 2021 03:46:10 -0400
Received: by mail-wm1-f66.google.com with SMTP id
 v20-20020a1cf714000000b002e71f4d2026so7004968wmh.1
 for <50627 <at> debbugs.gnu.org>; Fri, 17 Sep 2021 00:46:08 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;
 h=message-id:subject:from:to:cc:date:in-reply-to:references
 :user-agent:mime-version:content-transfer-encoding;
 bh=Gh8Qj5H4+jlvDf0z2Z2JS9DkD41yunKHwxqaHwJSuFA=;
 b=VRsB8bk3x9weLImh26ECZ0IEuEzwrAHHZ1+n0lII7qFc28tOjS76u4kjlyZeLxzdmx
 QVjvuJCfkzbiM+6pB7zBWVy8jLcgo5h7HcDZ9JzrgG6sYI2beebQUpvVT23felyz236l
 SbynV3uertD8PxxA9bWhcPz5xfizkYALEvoWzvzVV0+NGKawOlp520NJ7dyUmRMSEvFF
 BtreL5XAIhpo6puNNQRNfgikUwlhSSdJEBgn3Jht0jggSlPzCK2KyS+M1eYBdYRZcQLS
 IBir0aix+pSYmQ/U5dtOsV6tvFdDO7QLRKx2obVrKEfl/vHOZQ5WKPlVFp5ThAvrj9Mb
 KOPA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to
 :references:user-agent:mime-version:content-transfer-encoding;
 bh=Gh8Qj5H4+jlvDf0z2Z2JS9DkD41yunKHwxqaHwJSuFA=;
 b=N07+8FSOMVK5qLCpGv7ezwtmbUhsmGiFR5g9UW19gxnWCqFk01y0j24sjXfjgoXC2X
 4U79GFI2xKjvQSADEbzIVMDRz//XfPGYSRuu8qsessj4vb0il66osRpqM509Vfh+WK6H
 4pG2jpMMPLqiSKyiLJ1upQBCxCetAp2+aMrRdPIKHHI38TLjn6pxroybI1izKDhT1sxB
 IFTH6rvlx3yrTnV7WeMATqHXWr2p6mRsPKX9qYFgrpxrIMgYO9pG0v/p1UkbmztTM5iM
 0XRA+ea2qmTYlTEUUxXDNKi78u3zeH5cTcjfME1zK+q9f9DSnL1FOKPUM6PrcKZEFRuc
 Lzwg==
X-Gm-Message-State: AOAM530bLeRnLH5whjidCqKd2HWTxg0pv9zNXk53H0nF0PsjFZ/4tqdH
 qs7E5vd92zzD3pL9JiSIcF4=
X-Google-Smtp-Source: ABdhPJyK3Lurt2gCqV6XltQ534WCPAPgnDtpQIPZcDlFiS+7frbiG4IHVf9c26oxWnPy7gYOPGrNlw==
X-Received: by 2002:a1c:a747:: with SMTP id q68mr8920551wme.180.1631864761977; 
 Fri, 17 Sep 2021 00:46:01 -0700 (PDT)
Received: from nijino.fritz.box (85-127-52-93.dsl.dynamic.surfer.at.
 [85.127.52.93])
 by smtp.gmail.com with ESMTPSA id c185sm5020634wma.8.2021.09.17.00.46.00
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 17 Sep 2021 00:46:01 -0700 (PDT)
Message-ID: <4bb63f130f3ec7dac628a8139c405cdc202412e9.camel@HIDDEN>
Subject: Re: [PATCH 0/2] Make wayland-protocols dependency native-input.
From: Liliana Marie Prikler <liliana.prikler@HIDDEN>
To: muradm <mail@HIDDEN>
Date: Fri, 17 Sep 2021 09:46:00 +0200
In-Reply-To: <87ilyzg96v.fsf@HIDDEN>
References: <20210916192331.29606-1-mail@HIDDEN>
 <f6b0cca9359ae6b8e806d54f242b6fe1936c44a4.camel@HIDDEN>
 <87ilyzg96v.fsf@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
User-Agent: Evolution 3.34.2 
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 50627
Cc: 50627 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Hi

Am Freitag, den 17.09.2021, 05:35 +0300 schrieb muradm:
> Liliana Marie Prikler <liliana.prikler@HIDDEN> writes:
> 
> > Hi,
> > 
> > Am Donnerstag, den 16.09.2021, 22:23 +0300 schrieb muradm:
> > > wayland-protocols is not runtime dependency and only build time
> > > dependency for applications that directly using wayland.
> > Guix does not distinguish between "build time" and run time
> > dependencies.
> True, here issue could be related to miss wording, but same 
> wording is used in the manual as well, so do I.
I'll respond to that in your quote below.

> > > Initially I tought that making wayland-protocols a 
> > > native-inputs dependency as it should, it would reduce number of
> > > dependants on it. But it turns out other way around. With this
> > > patchset we are fixing gtk+ to not advertise it as dependency in
> > > its .pc files, and moving wayland-protocols to native-inputs
> > > where it should be.
> > That's not what native-inputs are used for.  native-inputs 
> > provide binaries that the host/build machine needs to run in order
> > to compile a package.  It doesn't seem to be the case that wayland-
> > protocols is such a package, is it?
> wayland-protocols is different package. It does not include any 
> binaries only protocol specifications (some xml files), which are
> used for code generation. We could consider them as a kind of
> autoconf/bison like inputs, but tightly scoped for wayland needs,
> although they are not so and not binaries.
And what kind of code is generated from them?  I would assume it's
target code.  And since wayland-protocols is no tool to process those
XML files, but the files themselves, I'd hazard a guess that it should
rather be built for the target.  While currently this appears to make
no difference, there might well be a time in which those files differ
for some two architectures, which then would cause problems in cross-
compiling contexts were it a native input.

> > > Patch provided for gtk+ also merged with upstream.
> > > 
> > > Patchset prepared from core-updates-frozen. While it seems that
> > > it will impact many other packages, actually this patch reduces
> > > number of packages that touches wayland-protocols and probably
> > > avoids it at runtime.
> > But it still impacts a large number of packages in ways that 
> > could
> > potentially break and haven't been tested, right?
> Technically, this package does not change anything in terms of 
> binary producing. wayland-protocols remains to be an input as it was 
> before. I.e. wayland compositor, wayland application, wayland using 
> library, application which uses wayland using library, binary output
> is not impacted. If binary output is the same, is there any thing
> else to test?
In that case I'd hazard a guess that it's fine, but the phrase
"wayland-protocols remains to be an input" is perhaps a bit weird given
the change to native-input.

> There are two things which are being changed. First as you 
> pointing out is the way Guix treats it, i.e. reducing closure, etc.
> Second is propagation of inputs. Currently (without this patch),
> since it is listed in propagated-inputs (and also advertised in .pc
> files), wayland-protocols as requirement, needlessly, getting pushed
> down then hierarchy.
We ought to move it from propagated-inputs to inputs and either (if we
can) ignore pkg-config or patch the pkg-config files.  W.r.t. pkg-
config I do wonder whether Requires.private needs propagation, though,
it normally should be just Requires.

> Let's take 4 cases that we have here (I do not pretend to be 
> complete, of course, there are might be more levels/combinations,
> just attempting to illustrate current case in simple words/terms):
> 
> 1. wayland compositor (weston, wlroots/sway, etc.)
> 2. wayland client application (grim, mpv, etc. applications 
> directly interacting with wayland interfaces)
> 3. wayland client library (qt or gtk+ in this case, also directly
> interacts with wayland to abstract it for user applications)
> 4. user application of wayland client library (in this case some 
> gtk+ based application)
> 
> For 1 and 2, both types should have to specify wayland in inputs 
> (or propagated-inputs), and wayland-protocols in native-inputs.
Why?

> One of purposes to have layer 3, is to abstract from 1 and 2.
> i.e. when I write gtk application, as user I should not be aware 
> of where/how this application is going to run, via xorg or wayland. 
> Then why I should be aware of wayland/wayland-protocols and make
> sure that it is provided as build input for my application?
IIUC you don't need to be aware when gtk propagates the input?  It's
similar to how you still need an Xorg server to test your GTK
application.

> More over, if I will have some other unrelated package that 
> depends on my gtk application (item 4 above), i still will see
> wayland-protocols among my inputs.
> 
> Currently, thanks to Guix, it is getting resolved by having it 
> listed in propagated-inputs.
> 
> For the long run, it was also fixed in gtk, so that 
> wayland-protocols is not going to be advertised in gtk's .pc files
> any more (https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/3960
> and https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/3961).
Which is fine in and of its own, but not the right thing w.r.t. native-
inputs.

> I suppose that, initially wayland-protocols was listed in
> propagated-inputs for this same reason, because gtk was 
> advertising it in .pc files.
Probably.

> > While reducing closure size is generally a good thing, I think we
> > do need to be careful whenever "build time vs. run time" and native
> > vs. non-native are confused.
> I'm using terminology as per documentation :) may be it should be
> reworded in some other way to avoid confusion. 8.2.1 package 
> reference:
> 
>           ‘native-inputs’ is typically used to list tools needed 
>           at build time, but not at run time...
You're quoting the manual out-of-context and (accidentally) misuse the
word tool.

>           When cross-compiling, dependencies listed in ‘inputs’ are
>           built for the _target_ architecture; conversely, 
>           dependencies listed in ‘native-inputs’ are built for the 
>           architecture of the _build_ machine.
This is the distinction to make here.  "Typically used to list tools" 
here means that the package provides a tool (i.e. a binary) that you
invoke at some point of your recipe.  This can be a compiler like GCC,
a tool to create Makefiles like automake, or an X server to launch
tests in.  The only thing in that regard when talking about wayland
would be the wayland-scanner tool provided by the wayland package.  

Notice the contrast to what you said before with wayland being an input
and wayland-protocols being a native one.  If you need wayland-scanner
for you build, it should be a native-input (as well as an input,
probably).  If this does become a problem later on, a bin/lib split for
wayland might make sense.

Regards





Information forwarded to guix-patches@HIDDEN:
bug#50627; Package guix-patches. Full text available.

Message received at 50627 <at> debbugs.gnu.org:


Received: (at 50627) by debbugs.gnu.org; 17 Sep 2021 03:41:50 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Sep 16 23:41:50 2021
Received: from localhost ([127.0.0.1]:58172 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1mR4l4-0002lj-4w
	for submit <at> debbugs.gnu.org; Thu, 16 Sep 2021 23:41:50 -0400
Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:58088
 helo=nomad-cl1.muradm.net)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mail@HIDDEN>) id 1mR4l1-0002lZ-Hr
 for 50627 <at> debbugs.gnu.org; Thu, 16 Sep 2021 23:41:48 -0400
Received: from [176.234.10.27] (port=7478 helo=localhost)
 by nomad-cl1.muradm.net with esmtps (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2)
 (envelope-from <mail@HIDDEN>)
 id 1mR4l1-0000cA-OM; Fri, 17 Sep 2021 03:41:47 +0000
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; 
 s=mail;
 h=Content-Transfer-Encoding:Content-Type:MIME-Version:Message-ID:
 In-reply-to:Date:Subject:Cc:To:From:References:Sender:Reply-To:Content-ID:
 Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc
 :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe:
 List-Post:List-Owner:List-Archive;
 bh=Xv3qPtNgpf3A7+zJTVcN46OYmXo/1y1R6a6VX/cJmWc=; b=ZPMZzdg3OAp1PrE6abFCqyU54o
 2AdShRwSxxBxpnfkX/tq9yYSi8vK1Gtn3y8U/Hm0jk5Hh/r4J4+iOS6gusDiPEIYDdAIQ3TFQiZRj
 YxfQrDxp2Q2/rvAilESIVYD0isQia8xG5AF51AzNFe0Ba8xrLXsKxgqqGyUrsa3CS2iGjs91Ro9YK
 77fyb5qp9OfRmXO6/eXSDb9qdO/p0/6lTYbmF9p9Bzb2F757F4MGK3CSYQkK+GCUl2a10XWUT0Vlj
 K2ubBzg1fFMU7tpVKtJd29zo3sjRASlWfgarY8rDwvkMHgx0W+ztj/rIfay7GOn625QB2VAjRFmiG
 8pDShhWl7AJfqW3Vd8O27ebykIR8axzqPgJ13Qm0r7KH/ffTERMgiJsKaiaaOz4MVpUg3Jn+zztwG
 YV9iCD5+NAjM5Lf86N/j9Q2Y1fVa3baKrzb7gLKs12RTOYqSZemh0Ah32bjKMWiwK/s8/hp+RNAf1
 CjPm2Zog5xwPvIQAotv0beKt;
Received: from muradm by localhost with local (Exim 4.94.2)
 (envelope-from <mail@HIDDEN>)
 id 1mR4ky-0001O0-I0; Fri, 17 Sep 2021 06:41:44 +0300
References: <20210916192331.29606-1-mail@HIDDEN>
 <f6b0cca9359ae6b8e806d54f242b6fe1936c44a4.camel@HIDDEN>
User-agent: mu4e 1.6.5; emacs 28.0.50
From: muradm <mail@HIDDEN>
To: Liliana Marie Prikler <liliana.prikler@HIDDEN>
Subject: Re: [PATCH 0/2] Make wayland-protocols dependency native-input.
Date: Fri, 17 Sep 2021 05:35:42 +0300
In-reply-to: <f6b0cca9359ae6b8e806d54f242b6fe1936c44a4.camel@HIDDEN>
Message-ID: <87ilyzg96v.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 50627
Cc: 50627 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)


Liliana Marie Prikler <liliana.prikler@HIDDEN> writes:

> Hi,
>
> Am Donnerstag, den 16.09.2021, 22:23 +0300 schrieb muradm:
>> wayland-protocols is not runtime dependency and only build time
>> dependency for applications that directly using wayland.
> Guix does not distinguish between "build time" and run time
> dependencies.
True, here issue could be related to miss wording, but same=20
wording
is used in the manual as well, so do I.

>> Initially I tought that making wayland-protocols a=20
>> native-inputs
>> dependency as it should, it would reduce number of dependants=20
>> on
>> it. But it turns out other way around. With this patchset we=20
>> are
>> fixing gtk+ to not advertise it as dependency in its .pc files,
>> and moving wayland-protocols to native-inputs where it should=20
>> be.
> That's not what native-inputs are used for.  native-inputs=20
> provide
> binaries that the host/build machine needs to run in order to=20
> compile a
> package.  It doesn't seem to be the case that wayland-protocols=20
> is such
> a package, is it?
wayland-protocols is different package. It does not include any=20
binaries
only protocol specifications (some xml files), which are used for=20
code
generation. We could consider them as a kind of autoconf/bison=20
like
inputs, but tightly scoped for wayland needs, although they are=20
not so
and not binaries.

>> Patch provided for gtk+ also merged with upstream.
>>
>> Patchset prepared from core-updates-frozen. While it seems that
>> it will impact many other packages, actually this patch reduces
>> number of packages that touches wayland-protocols and probably
>> avoids it at runtime.
> But it still impacts a large number of packages in ways that=20
> could
> potentially break and haven't been tested, right?
Technically, this package does not change anything in terms of=20
binary
producing. wayland-protocols remains to be an input as it was=20
before.
I.e. wayland compositor, wayland application, wayland using=20
library,
application which uses wayland using library, binary output is not
impacted. If binary output is the same, is there any thing else to
test?

There are two things which are being changed. First as you=20
pointing
out is the way Guix treats it, i.e. reducing closure, etc. Second=20
is
propagation of inputs. Currently (without this patch), since it is
listed in propagated-inputs (and also advertised in .pc files),
wayland-protocols as requirement, needlessly, getting pushed down
then hierarchy.

Let's take 4 cases that we have here (I do not pretend to be=20
complete,
of course, there are might be more levels/combinations, just=20
attempting
to illustrate current case in simple words/terms):

1. wayland compositor (weston, wlroots/sway, etc.)
2. wayland client application (grim, mpv, etc. applications=20
directly
interacting with wayland interfaces)
3. wayland client library (qt or gtk+ in this case, also directly
interacts with wayland to abstract it for user applications)
4. user application of wayland client library (in this case some=20
gtk+
based application)

For 1 and 2, both types should have to specify wayland in inputs=20
(or
propagated-inputs), and wayland-protocols in native-inputs.

One of purposes to have layer 3, is to abstract from 1 and 2.
i.e. when I write gtk application, as user I should not be aware=20
of
where/how this application is going to run, via xorg or wayland.=20
Then
why I should be aware of wayland/wayland-protocols and make sure=20
that
it is provided as build input for my application?

More over, if I will have some other unrelated package that=20
depends
on my gtk application (item 4 above), i still will see
wayland-protocols among my inputs.

Currently, thanks to Guix, it is getting resolved by having it=20
listed
in propagated-inputs.

For the long run, it was also fixed in gtk, so that=20
wayland-protocols
is not going to be advertised in gtk's .pc files any more
(https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/3960 and
https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/3961).

I suppose that, initially wayland-protocols was listed in
propagated-inputs for this same reason, because gtk was=20
advertising
it in .pc files.

> While reducing
> closure size is generally a good thing, I think we do need to be
> careful whenever "build time vs. run time" and native vs.=20
> non-native
> are confused.
I'm using terminology as per documentation :) may be it should be
reworded in some other way to avoid confusion. 8.2.1 package=20
reference:

          =E2=80=98native-inputs=E2=80=99 is typically used to list tools n=
eeded=20
          at
          build time, but not at run time...

Thanks in advance,
muradm




Information forwarded to guix-patches@HIDDEN:
bug#50627; Package guix-patches. Full text available.

Message received at 50627 <at> debbugs.gnu.org:


Received: (at 50627) by debbugs.gnu.org; 16 Sep 2021 19:57:52 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Sep 16 15:57:51 2021
Received: from localhost ([127.0.0.1]:56677 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1mQxW3-0005RJ-MB
	for submit <at> debbugs.gnu.org; Thu, 16 Sep 2021 15:57:51 -0400
Received: from mail-wm1-f67.google.com ([209.85.128.67]:37688)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <liliana.prikler@HIDDEN>) id 1mQxVz-0005R2-EJ
 for 50627 <at> debbugs.gnu.org; Thu, 16 Sep 2021 15:57:50 -0400
Received: by mail-wm1-f67.google.com with SMTP id
 c8-20020a7bc008000000b002e6e462e95fso8242713wmb.2
 for <50627 <at> debbugs.gnu.org>; Thu, 16 Sep 2021 12:57:47 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;
 h=message-id:subject:from:to:date:in-reply-to:references:user-agent
 :mime-version:content-transfer-encoding;
 bh=1zs6Jpn0QBy6b2Kzof9r1v1fVDLLbo4y9Xgc43l29fs=;
 b=crgBnnA6A8ICIdRuUFKjjigWIHpX7IgwNfktRHVW5aYaqJVWxFIKRFXx3wlLYFeNxp
 IViaFS1M/isGiYxwwcAZ6ZKEGK7Vf1Gky+TAfX8rDqMWPukDMKtvwpKMsZUur1mQH7El
 lIJkdkMqzDdhZ5jTsunyTQLf5x+9tZdMjILgHWiJssx7zCpKyRwuGRkM127sb4E8qmWF
 St0qfw39GBHdQFyVOfO0rNVOgro31nrhXmIfj3DtBxWJP6MvxMDyn1C6MB4O8NkvGmRE
 YkbbJR72M6Qx6RNdbuapy2+Np8XogqFCpBzrP80xcugt0zxaDe9aBtuWD3KExDvrHPNf
 Rczw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=x-gm-message-state:message-id:subject:from:to:date:in-reply-to
 :references:user-agent:mime-version:content-transfer-encoding;
 bh=1zs6Jpn0QBy6b2Kzof9r1v1fVDLLbo4y9Xgc43l29fs=;
 b=1f2MlMvLY1NQJPamtPZcd+66lL2pZKHfeaV7ogC8XY9MvCtOxIAfHpnTA78K0PUVCc
 Xx2ZeRDrwZpgPcIC/saNjLXXuG6gMZsv9frhWsGgol6uOD0TohVHWJetrOOjtoWyUblI
 91QkkB77/KoO90ATFdOj0lgs1QpEfU5CnehZfu/20ZZyY/qcKstzF8aeFnWLtmSSwm0T
 67FUFoe+OjW/zNAdPMG6RNF2TsL2ooLoROmaAe7HgqSLduZYkb9LC3OjzcQ1LipMYfr7
 Ky3SpBHOg23MOLAfnLefBkZe2lgKCPxi42HCw6LWB7QTz/8OuzEb9ycnA94/3paow/jn
 wOFw==
X-Gm-Message-State: AOAM531QaKctLs6sdcYYQ/LGPAO8H8goUnucQ+L5sKqtanL2la5jgCkf
 1K/8ePpW/Lbm05g3fjbyH2g=
X-Google-Smtp-Source: ABdhPJzG2v7kjgMFSq7mlKZLWSvkV9iWbvt/xw3cYoMZZf+TKRjAqbNWItaQD2aAkHaVGkxT88KTUQ==
X-Received: by 2002:a1c:7d06:: with SMTP id y6mr11376771wmc.23.1631822261451; 
 Thu, 16 Sep 2021 12:57:41 -0700 (PDT)
Received: from nijino.fritz.box (85-127-52-93.dsl.dynamic.surfer.at.
 [85.127.52.93])
 by smtp.gmail.com with ESMTPSA id m29sm4731146wrb.89.2021.09.16.12.57.40
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 16 Sep 2021 12:57:40 -0700 (PDT)
Message-ID: <f6b0cca9359ae6b8e806d54f242b6fe1936c44a4.camel@HIDDEN>
Subject: Re: [PATCH 0/2] Make wayland-protocols dependency native-input.
From: Liliana Marie Prikler <liliana.prikler@HIDDEN>
To: muradm <mail@HIDDEN>, 50627 <at> debbugs.gnu.org
Date: Thu, 16 Sep 2021 21:57:39 +0200
In-Reply-To: <20210916192331.29606-1-mail@HIDDEN>
References: <20210916192331.29606-1-mail@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
User-Agent: Evolution 3.34.2 
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 50627
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Hi,

Am Donnerstag, den 16.09.2021, 22:23 +0300 schrieb muradm:
> wayland-protocols is not runtime dependency and only build time
> dependency for applications that directly using wayland.
Guix does not distinguish between "build time" and run time
dependencies.

> Initially I tought that making wayland-protocols a native-inputs
> dependency as it should, it would reduce number of dependants on
> it. But it turns out other way around. With this patchset we are
> fixing gtk+ to not advertise it as dependency in its .pc files,
> and moving wayland-protocols to native-inputs where it should be.
That's not what native-inputs are used for.  native-inputs provide
binaries that the host/build machine needs to run in order to compile a
package.  It doesn't seem to be the case that wayland-protocols is such
a package, is it?

> Patch provided for gtk+ also merged with upstream.
> 
> Patchset prepared from core-updates-frozen. While it seems that
> it will impact many other packages, actually this patch reduces
> number of packages that touches wayland-protocols and probably
> avoids it at runtime.
But it still impacts a large number of packages in ways that could
potentially break and haven't been tested, right?  While reducing
closure size is generally a good thing, I think we do need to be
careful whenever "build time vs. run time" and native vs. non-native
are confused.

Regards





Information forwarded to guix-patches@HIDDEN:
bug#50627; Package guix-patches. Full text available.

Message received at 50627 <at> debbugs.gnu.org:


Received: (at 50627) by debbugs.gnu.org; 16 Sep 2021 19:26:55 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Sep 16 15:26:55 2021
Received: from localhost ([127.0.0.1]:56607 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1mQx26-0004Ri-0J
	for submit <at> debbugs.gnu.org; Thu, 16 Sep 2021 15:26:54 -0400
Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:58068
 helo=nomad-cl1.muradm.net)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mail@HIDDEN>) id 1mQx22-0004RN-4H
 for 50627 <at> debbugs.gnu.org; Thu, 16 Sep 2021 15:26:51 -0400
Received: from [176.234.10.27] (port=7530 helo=localhost)
 by nomad-cl1.muradm.net with esmtps (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2)
 (envelope-from <mail@HIDDEN>) id 1mQx22-0000Y8-8M
 for 50627 <at> debbugs.gnu.org; Thu, 16 Sep 2021 19:26:50 +0000
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; 
 s=mail;
 h=Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:
 Message-Id:Date:Subject:To:From:Sender:Reply-To:Cc:Content-Type:Content-ID:
 Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc
 :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe:
 List-Post:List-Owner:List-Archive;
 bh=AHsKd9pOi7rTvlpAYVYqziRkCRLBm82WvFhZJSCdaQk=; b=BuxaebyWeMMb+JU96rlVK0IiaL
 Tyh5sPDk47OXglNQbXWP+D5W2LCgdvime+jprWk8NYUtPAjamiMOg9f362Aa7FYFMCjgboGBnCX4U
 VyzmV/xFwkFxzMwFg7r0JWXsTeRdJX9oZtuvBKf1tvTkKujAS100zBuQh0tiXLeQaC2HHyrkxhuda
 2DRm2Fs0QluXEj6jyzEbFwC02r4R2oN90goyr5oLhN4xVLcu59v6uSVZeQKY2I1Aa2PUJJbMd+RST
 WuOJ01ASIXO2yAUZBnNFZ/PXT7TrQPRqVmCGFE/ie4lfJsmAi16x2K64/5Oa+gnVv68p2eXCx26es
 83Ioiyumn47cs1f24aM9wkqHJtugVt2/AkjC3LkzggDOVmTlkc/nSNOj1gDAF3SVsbfoQ6/g78ouL
 CANqx6NDzMxyOOvb7H/DIcPSM+GWZbkSGS5FfcighUIL7e9/uUL8wPFW2TojatmTCk8fC5kpSailC
 RihXBvbjHU0uzAEBO8939Vzj;
Received: from muradm by localhost with local (Exim 4.94.2)
 (envelope-from <mail@HIDDEN>) id 1mQx1z-0007jf-JK
 for 50627 <at> debbugs.gnu.org; Thu, 16 Sep 2021 22:26:47 +0300
From: muradm <mail@HIDDEN>
To: 50627 <at> debbugs.gnu.org
Subject: [PATCH 2/2] gnu: Fix wayland-protocols dependency to be in
 native-inputs.
Date: Thu, 16 Sep 2021 22:26:46 +0300
Message-Id: <20210916192646.29726-2-mail@HIDDEN>
X-Mailer: git-send-email 2.33.0
In-Reply-To: <20210916192646.29726-1-mail@HIDDEN>
References: <20210916192331.29606-1-mail@HIDDEN>
 <20210916192646.29726-1-mail@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 50627
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

While wayland-protocols is a build time dependency, some packages
used it in normal inputs or even propagated-inputs.

This moves wayland-protocols dependency to native-inputs across
related packages.

* gnu/packages/arcan.scm (arcan-wayland): updated
* gnu/packages/enlightenment.scm (efl): updated
* gnu/packages/enlightenment.scm (enlightenment): updated
* gnu/packages/fcitx5.scm (fcitx5): updated
* gnu/packages/freedesktop.scm (weston): updated
* gnu/packages/freedesktop.scm (wev): updated
* gnu/packages/freedesktop.scm (xdg-desktop-portal-wlr): updated
* gnu/packages/gl.scm (mesa): updated
* gnu/packages/gl.scm (glmark2): updated
* gnu/packages/image.scm (grim): updated
* gnu/packages/image.scm (slurp): updated
* gnu/packages/julia-jll.scm (julia-wayland-protocols-jll): updated
* gnu/packages/kde-frameworks.scm (kwayland): updated
* gnu/packages/kodi.scm (kodi/wayland): updated
* gnu/packages/language.scm (nimf): updated
* gnu/packages/sdl.scm (sdl2): updated
* gnu/packages/video.scm (vlc): updated
* gnu/packages/video.scm (mpv): updated
* gnu/packages/video.scm (obs): updated
* gnu/packages/video.scm (obs-wlrobs): updated
* gnu/packages/video.scm (wlstream): updated
* gnu/packages/video.scm (wf-recorder): updated
* gnu/packages/wm.scm (wlroots): updated
* gnu/packages/xdisorg.scm (bemenu): updated
* gnu/packages/xdisorg.scm (libxkbcommon): updated
* gnu/packages/xdisorg.scm (wob): updated
* gnu/packages/xdisorg.scm (wl-clipboard): updated
* gnu/packages/xorg.scm (xorg-server-xwayland): updated
---
 gnu/packages/arcan.scm          |  6 +++---
 gnu/packages/enlightenment.scm  | 10 +++++-----
 gnu/packages/fcitx5.scm         |  4 ++--
 gnu/packages/freedesktop.scm    | 14 +++++++-------
 gnu/packages/gl.scm             | 10 +++++-----
 gnu/packages/image.scm          | 12 ++++++------
 gnu/packages/julia-jll.scm      |  2 +-
 gnu/packages/kde-frameworks.scm |  6 +++---
 gnu/packages/kodi.scm           |  4 +++-
 gnu/packages/language.scm       |  2 +-
 gnu/packages/sdl.scm            |  5 +++--
 gnu/packages/video.scm          | 28 ++++++++++++++--------------
 gnu/packages/wm.scm             |  4 ++--
 gnu/packages/xdisorg.scm        | 20 ++++++++++----------
 gnu/packages/xorg.scm           |  4 +++-
 15 files changed, 68 insertions(+), 63 deletions(-)

diff --git a/gnu/packages/arcan.scm b/gnu/packages/arcan.scm
index 721cd7fd70..da7e445d1e 100644
--- a/gnu/packages/arcan.scm
+++ b/gnu/packages/arcan.scm
@@ -251,14 +251,14 @@ as a window under Arcan.")
     (inherit arcan)
     (name "arcan-wayland")
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     `(("pkg-config" ,pkg-config)
+       ("wayland-protocols" ,wayland-protocols)))
     (inputs
      `(("arcan" ,arcan)
        ("libseccomp" ,libseccomp)
        ("libxkbcommon" ,libxkbcommon)
        ("mesa" ,mesa)
-       ("wayland" ,wayland)
-       ("wayland-protocols" ,wayland-protocols)))
+       ("wayland" ,wayland)))
     (arguments
      `(#:tests? #f
        #:phases
diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm
index 9c83e9b482..63237539aa 100644
--- a/gnu/packages/enlightenment.scm
+++ b/gnu/packages/enlightenment.scm
@@ -82,7 +82,8 @@
     (native-inputs
      `(("check" ,check-0.14)
        ("gettext" ,gettext-minimal)
-       ("pkg-config" ,pkg-config)))
+       ("pkg-config" ,pkg-config)
+       ("wayland-protocols" ,wayland-protocols)))
     (inputs
      `(("curl" ,curl)
        ("giflib" ,giflib)
@@ -110,8 +111,7 @@
        ("libwebp" ,libwebp)
        ("openjpeg" ,openjpeg)
        ("poppler" ,poppler)
-       ("util-linux" ,util-linux "lib")
-       ("wayland-protocols" ,wayland-protocols)))
+       ("util-linux" ,util-linux "lib")))
     (propagated-inputs
      ;; All these inputs are in package config files in section
      ;; Requires.private.
@@ -353,7 +353,8 @@ Libraries with some extra bells and whistles.")
                #t))))))
     (native-inputs
      `(("gettext" ,gettext-minimal)
-       ("pkg-config" ,pkg-config)))
+       ("pkg-config" ,pkg-config)
+       ("wayland-protocols" ,wayland-protocols)))
     (inputs
      `(("alsa-lib" ,alsa-lib)
        ("bc" ,bc)
@@ -371,7 +372,6 @@ Libraries with some extra bells and whistles.")
     (propagated-inputs
      `(("efl" ,efl)
        ("libxkbcommon" ,libxkbcommon)
-       ("wayland-protocols" ,wayland-protocols)
 
        ;; Default font that applications such as IceCat require.
        ("font-dejavu" ,font-dejavu)))
diff --git a/gnu/packages/fcitx5.scm b/gnu/packages/fcitx5.scm
index 737f47f20f..f1f018b292 100644
--- a/gnu/packages/fcitx5.scm
+++ b/gnu/packages/fcitx5.scm
@@ -126,7 +126,6 @@ client.")
        ("pango" ,pango)
        ("unicode-cldr-common" ,unicode-cldr-common)
        ("wayland" ,wayland)
-       ("wayland-protocols" ,wayland-protocols)
        ("xcb-imdkit" ,xcb-imdkit)
        ("xcb-util" ,xcb-util)
        ("xcb-util-keysyms" ,xcb-util-keysyms)
@@ -135,7 +134,8 @@ client.")
     (native-inputs
      `(("gcc" ,gcc-9)                   ; for #include <charconv>
        ("extra-cmake-modules" ,extra-cmake-modules)
-       ("pkg-config" ,pkg-config)))
+       ("pkg-config" ,pkg-config)
+       ("wayland-protocols" ,wayland-protocols)))
     (native-search-paths
      (list (search-path-specification
             (variable "FCITX_ADDON_DIRS")
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 85d9697460..a8fd24e807 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -1083,6 +1083,7 @@ protocol either in Wayland core, or some other protocol in wayland-protocols.")
     (native-inputs
      `(("mscgen" ,mscgen)
        ("pkg-config" ,pkg-config)
+       ("wayland-protocols" ,wayland-protocols)
        ("xorg-server" ,xorg-server)))
     (inputs
      `(("cairo" ,cairo-xcb)
@@ -1111,7 +1112,6 @@ protocol either in Wayland core, or some other protocol in wayland-protocols.")
        ("linux-pam" ,linux-pam)
        ("pango" ,pango)
        ("pipewire" ,pipewire)
-       ("wayland-protocols" ,wayland-protocols)
        ("xorg-server-xwayland" ,xorg-server-xwayland)))
     (propagated-inputs
      `(("libxkbcommon" ,libxkbcommon)
@@ -1193,11 +1193,11 @@ multiplexer to the KMS/DRM Linux kernel devices.")
          (delete 'configure))))
     (native-inputs
      `(("pkg-config" ,pkg-config)
-       ("scdoc" ,scdoc)))
+       ("scdoc" ,scdoc)
+       ("wayland-protocols" ,wayland-protocols)))
     (inputs
      `(("libxkbcommon" ,libxkbcommon)
-       ("wayland" ,wayland)
-       ("wayland-protocols" ,wayland-protocols)))
+       ("wayland" ,wayland)))
     (home-page "https://git.sr.ht/~sircmpwn/wev")
     (synopsis "Wayland event viewer")
     (description "Wev is a tool that opens a window, printing all events
@@ -2454,14 +2454,14 @@ interfaces.")
          "-Dsd-bus-provider=libelogind")))
     (native-inputs
      `(("cmake" ,cmake)
-       ("pkg-config" ,pkg-config)))
+       ("pkg-config" ,pkg-config)
+       ("wayland-protocols" ,wayland-protocols)))
     (inputs
      `(("elogind" ,elogind)
        ("iniparser" ,iniparser)
        ("pipewire" ,pipewire-0.3)
        ("inih" ,libinih)
-       ("wayland" ,wayland)
-       ("wayland-protocols" ,wayland-protocols)))
+       ("wayland" ,wayland)))
     (home-page "https://github.com/emersion/xdg-desktop-portal-wlr")
     (synopsis "@code{xdg-desktop-portal} backend for wlroots")
     (description
diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
index 769389e370..5cf2866c2a 100644
--- a/gnu/packages/gl.scm
+++ b/gnu/packages/gl.scm
@@ -279,8 +279,7 @@ also known as DXTn or DXTC) for Mesa.")
              `(("llvm" ,llvm-11)))
             (_
              `()))
-        ("wayland" ,wayland)
-        ("wayland-protocols" ,wayland-protocols)))
+        ("wayland" ,wayland)))
     (native-inputs
       `(("bison" ,bison)
         ("flex" ,flex)
@@ -293,6 +292,7 @@ also known as DXTn or DXTC) for Mesa.")
         ("pkg-config" ,pkg-config)
         ("python" ,python-wrapper)
         ("python-mako" ,python-mako)
+        ("wayland-protocols" ,wayland-protocols)
         ("which" ,(@ (gnu packages base) which))))
     (outputs '("out" "bin"))
     (arguments
@@ -1118,7 +1118,8 @@ is written in a way that can be used for any general C# application.")
                  (("libGLESv2.so") (string-append mesa "/lib/libGLESv2.so")))
                #t))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     `(("pkg-config" ,pkg-config)
+       ("wayland-protocols" ,wayland-protocols)))
     (inputs
      `(("eudev" ,eudev)
        ("libdrm" ,libdrm)
@@ -1127,8 +1128,7 @@ is written in a way that can be used for any general C# application.")
        ("libx11" ,libx11)
        ("libxcb" ,libxcb)
        ("mesa" ,mesa)
-       ("wayland" ,wayland)
-       ("wayland-protocols" ,wayland-protocols)))
+       ("wayland" ,wayland)))
     (home-page "https://github.com/glmark2/glmark2")
     (synopsis "OpenGL 2.0 and OpenGL ES 2.0 benchmark")
     (description
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 2dd64d7c4c..527fc1d774 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -1980,11 +1980,11 @@ identical visual appearance.")
       (base32 "1l4gwvvc0zvg5b6f6w92xjhmwj7cg9hlgrf43lc7ygaz8dh6cmzg"))))
    (build-system meson-build-system)
    (native-inputs `(("pkg-config" ,pkg-config)
-                    ("scdoc" ,scdoc)))
+                    ("scdoc" ,scdoc)
+                    ("wayland-protocols" ,wayland-protocols)))
    (inputs `(("cairo" ,cairo)
              ("libjpeg-turbo" ,libjpeg-turbo)
-             ("wayland" ,wayland)
-             ("wayland-protocols" ,wayland-protocols)))
+             ("wayland" ,wayland)))
    (home-page "https://github.com/emersion/grim")
    (synopsis "Create screenshots from a Wayland compositor")
    (description "grim can create screenshots from a Wayland compositor.")
@@ -2007,12 +2007,12 @@ identical visual appearance.")
    (build-system meson-build-system)
    (native-inputs
     `(("pkg-config" ,pkg-config)
-      ("scdoc" ,scdoc)))
+      ("scdoc" ,scdoc)
+      ("wayland-protocols" ,wayland-protocols)))
    (inputs
     `(("cairo" ,cairo)
       ("libxkbcommon" ,libxkbcommon)
-      ("wayland" ,wayland)
-      ("wayland-protocols" ,wayland-protocols)))
+      ("wayland" ,wayland)))
    (home-page "https://github.com/emersion/slurp")
    (synopsis "Select a region in a Wayland compositor")
    (description "Slurp can select a region in a Wayland compositor and print it
diff --git a/gnu/packages/julia-jll.scm b/gnu/packages/julia-jll.scm
index d18971ad48..1ad414ef34 100644
--- a/gnu/packages/julia-jll.scm
+++ b/gnu/packages/julia-jll.scm
@@ -1600,7 +1600,7 @@ build tree Yggdrasil.")
                     (string-append "\"" (assoc-ref inputs "wayland-protocols") "\""))))
                ;; There's a Julia file for each platform, override them all
                (find-files "src/wrappers/" "\\.jl$")))))))
-    (inputs
+    (native-inputs
      `(("wayland-protocols" ,wayland-protocols)))
     (propagated-inputs
      `(("julia-jllwrappers" ,julia-jllwrappers)
diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index 83bf7bd95a..bfd7631080 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -1077,12 +1077,12 @@ integration with a custom editor as well as a ready-to-use
     (build-system cmake-build-system)
     (native-inputs
      `(("extra-cmake-modules" ,extra-cmake-modules)
-       ("pkg-config" ,pkg-config)))
+       ("pkg-config" ,pkg-config)
+       ("wayland-protocols" ,wayland-protocols)))
     (inputs
      `(("qtbase" ,qtbase-5)
        ("qtwayland" ,qtwayland)
-       ("wayland" ,wayland)
-       ("wayland-protocols" ,wayland-protocols)))
+       ("wayland" ,wayland)))
     (arguments
      `(#:tests? #f ; FIXME tests require weston to run
                    ; weston requires wayland flags in mesa
diff --git a/gnu/packages/kodi.scm b/gnu/packages/kodi.scm
index 0ed5d829fb..0212e93952 100644
--- a/gnu/packages/kodi.scm
+++ b/gnu/packages/kodi.scm
@@ -474,11 +474,13 @@ plug-in system.")
         `(append '("-DCORE_PLATFORM_NAME=wayland"
                    "-DWAYLAND_RENDER_SYSTEM=gl")
                    ,flags))))
+    (native-inputs
+     `(("waylandp-protocols" ,wayland-protocols)
+       ,@(package-native-inputs kodi)))
     (inputs
      `(("libinput" ,libinput)
        ("libxkbcommon" ,libxkbcommon)
        ("waylandpp" ,waylandpp)
-       ("waylandp-protocols" ,wayland-protocols)
        ,@(package-inputs kodi)))
     (synopsis "Kodi with Wayland rendering backend")))
 
diff --git a/gnu/packages/language.scm b/gnu/packages/language.scm
index 83838b5689..79dad2a60a 100644
--- a/gnu/packages/language.scm
+++ b/gnu/packages/language.scm
@@ -176,6 +176,7 @@
        ("libtool" ,libtool)
        ("perl" ,perl)
        ("pkg-config" ,pkg-config)
+       ("wayland-protocols" ,wayland-protocols)
        ("which" ,which)))
     (inputs
      `(("anthy" ,anthy)
@@ -189,7 +190,6 @@
        ("rime" ,librime)
        ("rsvg" ,librsvg)
        ("wayland" ,wayland)
-       ("wayland-protocols" ,wayland-protocols)
        ("x11" ,libx11)
        ("xkbcommon" ,libxkbcommon)
        ("xklavier" ,libxklavier)))
diff --git a/gnu/packages/sdl.scm b/gnu/packages/sdl.scm
index f2afe763c5..90874a6d67 100644
--- a/gnu/packages/sdl.scm
+++ b/gnu/packages/sdl.scm
@@ -138,6 +138,8 @@ joystick, and graphics hardware.")
           (string-append "LDFLAGS=-Wl,-rpath,"
                          (assoc-ref %build-inputs "eudev") "/lib")
           ,flags))))
+    (native-inputs
+     `(("wayland-protocols" ,wayland-protocols)))
     (inputs
      ;; SDL2 needs to be built with ibus support otherwise some systems
      ;; experience a bug where input events are doubled.
@@ -150,8 +152,7 @@ joystick, and graphics hardware.")
                ("ibus" ,ibus)
                ("libxkbcommon" ,libxkbcommon)
                ("libxcursor" ,libxcursor) ; enables X11 cursor support
-               ("wayland" ,wayland)
-               ("wayland-protocols" ,wayland-protocols))
+               ("wayland" ,wayland))
              (package-inputs sdl)))
     (license bsd-3)))
 
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index be9df8cc65..57fb5e0fee 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -1822,7 +1822,8 @@ videoformats depend on the configuration flags of ffmpeg.")
      `(("flex" ,flex)
        ("bison" ,bison)
        ("gettext" ,gettext-minimal)
-       ("pkg-config" ,pkg-config)))
+       ("pkg-config" ,pkg-config)
+       ("wayland-protocols" ,wayland-protocols)))
     ;; FIXME: Add optional inputs once available.
     (inputs
      `(("alsa-lib" ,alsa-lib)
@@ -1897,7 +1898,6 @@ videoformats depend on the configuration flags of ffmpeg.")
        ("twolame" ,twolame)
        ("unzip" ,unzip)
        ("wayland" ,wayland)
-       ("wayland-protocols" ,wayland-protocols)
        ("x265" ,x265)
        ("xcb-util-keysyms" ,xcb-util-keysyms)))
     (arguments
@@ -2065,7 +2065,8 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
     (native-inputs
      `(("perl" ,perl) ; for zsh completion file
        ("pkg-config" ,pkg-config)
-       ("python-docutils" ,python-docutils)))
+       ("python-docutils" ,python-docutils)
+       ("wayland-protocols" ,wayland-protocols)))
     ;; Missing features: libguess, V4L2
     (inputs
      `(("alsa-lib" ,alsa-lib)
@@ -2102,7 +2103,6 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
        ("vulkan-loader" ,vulkan-loader)
        ("waf" ,python-waf)
        ("wayland" ,wayland)
-       ("wayland-protocols" ,wayland-protocols)
        ("libxkbcommon" ,libxkbcommon)
        ("youtube-dl" ,youtube-dl)
        ("zlib" ,zlib)))
@@ -3215,7 +3215,8 @@ be used for realtime video capture via Linux-specific APIs.")
             (files '("share/obs/obs-plugins")))))
     (native-inputs
      `(("cmocka" ,cmocka)
-       ("pkg-config" ,pkg-config)))
+       ("pkg-config" ,pkg-config)
+       ("wayland-protocols" ,wayland-protocols)))
     (inputs
      `(("alsa-lib" ,alsa-lib)
        ("curl" ,curl)
@@ -3238,7 +3239,6 @@ be used for realtime video capture via Linux-specific APIs.")
        ("speexdsp" ,speexdsp)
        ("v4l-utils" ,v4l-utils)
        ("wayland" ,wayland)
-       ("wayland-protocols" ,wayland-protocols)
        ("zlib" ,zlib)))
     (synopsis "Live streaming software")
     (description "Open Broadcaster Software provides a graphical interface for
@@ -3333,12 +3333,12 @@ programs on your current machine or on other machines.")
           "1faiq2gdb7qis3m1hilm4pz8lkmkab75vzm608dbiazahhybf96p"))))
     (build-system meson-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     `(("pkg-config" ,pkg-config)
+       ("wayland-protocols" ,wayland-protocols)))
     (propagated-inputs `() )
     (inputs `(("obs" ,obs)
               ("libx11" ,libx11 "out")
-              ("wayland" ,wayland)
-              ("wayland-protocols" ,wayland-protocols)))
+              ("wayland" ,wayland)))
     (home-page "https://hg.sr.ht/~scoopta/wlrobs")
     (synopsis "OBS plugin for Wayland (wlroots) screen capture")
     (description
@@ -4789,11 +4789,11 @@ speed and correctness.")
            "01qbcgfl3g9kfwn1jf1z9pdj3bvf5lmg71d1vwkcllc2az24bjqp"))))
       (build-system meson-build-system)
       (native-inputs `(("libdrm" ,libdrm)
-                       ("pkg-config" ,pkg-config)))
+                       ("pkg-config" ,pkg-config)
+                       ("wayland-protocols" ,wayland-protocols)))
       (inputs `(("ffmpeg" ,ffmpeg)
                 ("pulseaudio" ,pulseaudio)
-                ("wayland" ,wayland)
-                ("wayland-protocols" ,wayland-protocols)))
+                ("wayland" ,wayland)))
       (home-page "https://github.com/atomnuker/wlstream")
       (synopsis "Screen capture tool for Wayland sessions")
       (description "Wlstream is a screen capture tool for recording audio and
@@ -5165,12 +5165,12 @@ can also directly record to WebM or MP4 if you prefer.")
                 "1cw6kpcbl33wh95pvy32xrsrm6kkk1awccr3phyh885xjs3b3iim"))))
     (build-system meson-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     `(("pkg-config" ,pkg-config)
+       ("wayland-protocols" ,wayland-protocols)))
     (inputs
      `(("ffmpeg" ,ffmpeg)
        ("pulseaudio" ,pulseaudio)
        ("wayland" ,wayland)
-       ("wayland-protocols" ,wayland-protocols)
        ("libx264" ,libx264)))
     (home-page "https://github.com/ammen99/wf-recorder")
     (synopsis "Screen recorder for wlroots-based compositors")
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 66440e5008..fa8fe391df 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -1452,12 +1452,12 @@ functionality to display information about the most commonly used services.")
        ("mesa" ,mesa)
        ("pixman" ,pixman)
        ("wayland" ,wayland)
-       ("wayland-protocols" ,wayland-protocols)
        ("xcb-util-errors" ,xcb-util-errors)
        ("xcb-util-wm" ,xcb-util-wm)
        ("xorg-server-xwayland" ,xorg-server-xwayland)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     `(("pkg-config" ,pkg-config)
+       ("wayland-protocols" ,wayland-protocols)))
     (home-page "https://github.com/swaywm/wlroots")
     (synopsis "Pluggable, composable, unopinionated modules for building a
 Wayland compositor")
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index 129c90d22c..ed47f916ac 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -292,11 +292,11 @@ used to further tweak the behaviour of the different profiles.")
        ("libxinerama" ,libxinerama)
        ("ncurses" ,ncurses)
        ("pango" ,pango)
-       ("wayland" ,wayland)
-       ("wayland-protocols" ,wayland-protocols)))
+       ("wayland" ,wayland)))
     (native-inputs
      `(("doxygen" ,doxygen)
-       ("pkg-config" ,pkg-config)))
+       ("pkg-config" ,pkg-config)
+       ("wayland-protocols" ,wayland-protocols)))
     (home-page "https://github.com/Cloudef/bemenu")
     (synopsis "Dynamic menu library and client program inspired by dmenu")
     (description
@@ -437,12 +437,12 @@ avoiding password prompts when X11 forwarding has already been setup.")
        ("libxcb" ,libxcb)
        ("libxml2" ,libxml2)
        ("wayland" ,wayland)
-       ("wayland-protocols" ,wayland-protocols)
        ("xkeyboard-config" ,xkeyboard-config)))
     (native-inputs
      `(("bison" ,bison)
        ("doxygen" ,doxygen)
-       ("pkg-config" ,pkg-config)))
+       ("pkg-config" ,pkg-config)
+       ("wayland-protocols" ,wayland-protocols)))
     (arguments
      `(#:configure-flags
        (list (string-append "-Dxkb-config-root="
@@ -1106,11 +1106,11 @@ transparent text on your screen.")
     (build-system meson-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
-       ("scdoc" ,scdoc)))
+       ("scdoc" ,scdoc)
+       ("wayland-protocols" ,wayland-protocols)))
     (inputs
      `(("libseccomp" ,libseccomp)
-       ("wayland" ,wayland)
-       ("wayland-protocols" ,wayland-protocols)))
+       ("wayland" ,wayland)))
     (home-page "https://github.com/francma/wob")
     (synopsis "Lightweight overlay bar for Wayland")
     (description
@@ -2387,11 +2387,11 @@ binary to setuid-binaries:
                 (string-append "\"" (assoc-ref inputs "xdg-utils")
                                "/bin/xdg-mime\""))))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     `(("pkg-config" ,pkg-config)
+       ("wayland-protocols" ,wayland-protocols)))
     (inputs
      `(("coreutils" ,coreutils)
        ("wayland" ,wayland)
-       ("wayland-protocols" ,wayland-protocols)
        ("xdg-utils" ,xdg-utils)))
     (home-page "https://github.com/bugaevc/wl-clipboard")
     (synopsis "Command-line copy/paste utilities for Wayland")
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 95d3442d36..9165476877 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -5525,8 +5525,10 @@ draggable titlebars and borders.")
     (name "xorg-server-xwayland")
     (inputs
      `(("wayland" ,wayland)
-       ("wayland-protocols" ,wayland-protocols)
        ,@(package-inputs xorg-server)))
+    (native-inputs
+     `(("wayland-protocols" ,wayland-protocols)
+       ,@(package-native-inputs xorg-server)))
     (arguments
      (substitute-keyword-arguments (package-arguments xorg-server)
        ((#:configure-flags flags)
-- 
2.33.0





Information forwarded to guix-patches@HIDDEN:
bug#50627; Package guix-patches. Full text available.

Message received at 50627 <at> debbugs.gnu.org:


Received: (at 50627) by debbugs.gnu.org; 16 Sep 2021 19:26:51 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Sep 16 15:26:51 2021
Received: from localhost ([127.0.0.1]:56603 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1mQx22-0004RO-CR
	for submit <at> debbugs.gnu.org; Thu, 16 Sep 2021 15:26:50 -0400
Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:58066
 helo=nomad-cl1.muradm.net)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mail@HIDDEN>) id 1mQx20-0004RC-R4
 for 50627 <at> debbugs.gnu.org; Thu, 16 Sep 2021 15:26:49 -0400
Received: from [176.234.10.27] (port=7038 helo=localhost)
 by nomad-cl1.muradm.net with esmtps (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2)
 (envelope-from <mail@HIDDEN>) id 1mQx20-0000Y5-OM
 for 50627 <at> debbugs.gnu.org; Thu, 16 Sep 2021 19:26:48 +0000
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; 
 s=mail;
 h=Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:
 Message-Id:Date:Subject:To:From:Sender:Reply-To:Cc:Content-Type:Content-ID:
 Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc
 :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe:
 List-Post:List-Owner:List-Archive;
 bh=J/TuWgqOG2BAplCq+gFqkqBbFuo+lwXaWA2K+oI/Hdw=; b=AAi7RMDwPO1htN/P3EnMw6mpQ6
 iADevAXV6PXAWYrXXmLBnvjkkPgbyXPd8eG91I6jhuHXfcCnNMOoBtrbUMDD91QseRJ3tr92Rrdd0
 65eAGNhqH+C/sh/EFoM7Q1X0frS3vye4MSr3Bu4wmEh2aJ8mfXblBBfoW05iQGjhbzG5pCdQTsGn+
 U74MkEeP623oyqStiZlgQgiXBui9T3ZCfSjr+SiCJeu6xpjgACQ9q1tknZgaxXuBiVN09drsn8r02
 1c5n3KN6Evq8Sjm8ETZdnaR2MxHXwMgTXJaVanNItXq4qmaoqAd/kZpXD9f008PC0fzvGS66tg1Be
 AsfSn0+IFpuB9jISf9inCihIfyO66p2tO1Y9cvbOIAU0l4GB9VvMiONNUUCziolMbTAuXmxbiDD/8
 /1zPn+vNV/tu3JEI+umY3LIUpf19YjZP5p7/fIwt+nIHMhx63V/PsPVFcx1G6nYM/fRsgaiqoBFoX
 q4zw97+2juboum7SKWmFhB7u;
Received: from muradm by localhost with local (Exim 4.94.2)
 (envelope-from <mail@HIDDEN>) id 1mQx1y-0007jc-7i
 for 50627 <at> debbugs.gnu.org; Thu, 16 Sep 2021 22:26:46 +0300
From: muradm <mail@HIDDEN>
To: 50627 <at> debbugs.gnu.org
Subject: [PATCH 1/2] gnu: gtk: Move wayland-protocols to native-inputs.
Date: Thu, 16 Sep 2021 22:26:45 +0300
Message-Id: <20210916192646.29726-1-mail@HIDDEN>
X-Mailer: git-send-email 2.33.0
In-Reply-To: <20210916192331.29606-1-mail@HIDDEN>
References: <20210916192331.29606-1-mail@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 50627
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

I was building some packages on Guix. I figured out that
wayland-protocols was listed among propagated-inputs for gtk+ package.

wayland-protocols is not runtime dependency, so I moved it to
native-inputs of gtk+ package, once moved, building of other
applications that depening on gtk+ started to fail.

Investigation showed that, all .pc (pkg-config) files prepared by gtk+
package, was including:

Requires.private: ... wayland-protocols ...

Since it becomes requirement, other applications was failing with
missing dependency wayland-protocols of dependency gtk+, for instance:

-- Checking for module 'gtk+-3.0'
--   Package 'wayland-protocols', required by 'gdk-3.0', not found

While actually wayland-protocols is not even a build time dependency
of application that depends on gtk+. Advertisement of such
requirement, is a bit misleading, because one does not need it at
runtime, especially applications based on gtk.

Same change also merged upstream for both master and gtk-3-24 branch.

* gnu/packages/patches/gtk3-wayland-protocols-dependency.patch:
Upstream change
* gnu/packages/gtk.scm (gtk+): move wayland-protocols to native-inputs
---
 gnu/packages/gtk.scm                          |  7 +++---
 .../gtk3-wayland-protocols-dependency.patch   | 23 +++++++++++++++++++
 2 files changed, 27 insertions(+), 3 deletions(-)
 create mode 100644 gnu/packages/patches/gtk3-wayland-protocols-dependency.patch

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 24c24d5653..2dbfcde6e5 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -948,7 +948,8 @@ application suites.")
         (base32
          "1a9vg840fjq1mmm403b67k624qrkxh9shaz9pv7z9l8a6bzvyxds"))
        (patches (search-patches "gtk3-respect-GUIX_GTK3_PATH.patch"
-                                "gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch"))))
+                                "gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch"
+                                "gtk3-wayland-protocols-dependency.patch"))))
     (propagated-inputs
      `(("atk" ,atk)
        ("at-spi2-atk" ,at-spi2-atk)
@@ -978,8 +979,7 @@ application suites.")
        ("libxrender" ,libxrender)
        ("mesa" ,mesa)
        ("pango" ,pango)
-       ("wayland" ,wayland)
-       ("wayland-protocols" ,wayland-protocols)))
+       ("wayland" ,wayland)))
     (inputs
      `(("colord" ,colord)
        ("cups" ,cups)
@@ -999,6 +999,7 @@ application suites.")
        ("pkg-config" ,pkg-config)
        ("python-wrapper" ,python-wrapper)
        ("sassc" ,sassc)
+       ("wayland-protocols" ,wayland-protocols)
        ;; By using a special xorg-server for GTK+'s tests, we reduce the impact
        ;; of updating xorg-server directly on the master branch.
        ("xorg-server" ,xorg-server-for-tests)
diff --git a/gnu/packages/patches/gtk3-wayland-protocols-dependency.patch b/gnu/packages/patches/gtk3-wayland-protocols-dependency.patch
new file mode 100644
index 0000000000..03196713bc
--- /dev/null
+++ b/gnu/packages/patches/gtk3-wayland-protocols-dependency.patch
@@ -0,0 +1,23 @@
+diff --git a/configure b/configure
+index edd41ad..cb36877 100755
+--- a/configure
++++ b/configure
+@@ -23247,7 +23247,8 @@ $as_echo "no" >&6; }
+ 	fi
+ fi
+ 
+-WAYLAND_DEPENDENCIES="wayland-client >= 1.14.91 wayland-protocols >= 1.17 xkbcommon >= 0.2.0 wayland-cursor >= 1.14.91 wayland-egl"
++WAYLAND_RUNTIME_DEPENDENCIES="wayland-client >= 1.14.91 xkbcommon >= 0.2.0 wayland-cursor >= 1.14.91 wayland-egl"
++WAYLAND_DEPENDENCIES="wayland-protocols >= 1.17 $WAYLAND_RUNTIME_DEPENDENCIES"
+ if test "$enable_wayland_backend" = "maybe" ; then
+   # Extract the first word of "wayland-scanner", so it can be a program name with args.
+ set dummy wayland-scanner; ac_word=$2
+@@ -23320,7 +23321,7 @@ if test "$enable_wayland_backend" = "yes"; then
+   GDK_WINDOWING="$GDK_WINDOWING
+ #define GDK_WINDOWING_WAYLAND"
+   backend_immodules="$backend_immodules,wayland"
+-  WAYLAND_PACKAGES="$WAYLAND_DEPENDENCIES"
++  WAYLAND_PACKAGES="$WAYLAND_RUNTIME_DEPENDENCIES"
+   # Extract the first word of "wayland-scanner", so it can be a program name with args.
+ set dummy wayland-scanner; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-- 
2.33.0





Information forwarded to guix-patches@HIDDEN:
bug#50627; Package guix-patches. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 16 Sep 2021 19:23:49 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Sep 16 15:23:49 2021
Received: from localhost ([127.0.0.1]:56597 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1mQwz6-0004Ja-Ta
	for submit <at> debbugs.gnu.org; Thu, 16 Sep 2021 15:23:49 -0400
Received: from lists.gnu.org ([209.51.188.17]:47800)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mail@HIDDEN>) id 1mQwz2-0004JK-7q
 for submit <at> debbugs.gnu.org; Thu, 16 Sep 2021 15:23:48 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:35160)
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <mail@HIDDEN>) id 1mQwz1-0007vL-Vv
 for guix-patches@HIDDEN; Thu, 16 Sep 2021 15:23:44 -0400
Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:59132
 helo=nomad-cl1.muradm.net)
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <mail@HIDDEN>) id 1mQwyw-0006VS-TP
 for guix-patches@HIDDEN; Thu, 16 Sep 2021 15:23:41 -0400
Received: from [176.234.10.27] (port=7316 helo=localhost)
 by nomad-cl1.muradm.net with esmtps (TLS1.3) tls
 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2)
 (envelope-from <mail@HIDDEN>) id 1mQwys-0000Xv-8f
 for guix-patches@HIDDEN; Thu, 16 Sep 2021 19:23:34 +0000
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; 
 s=mail;
 h=Content-Transfer-Encoding:MIME-Version:Message-Id:Date:Subject:To:
 From:Sender:Reply-To:Cc:Content-Type:Content-ID:Content-Description:
 Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:
 In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe:
 List-Post:List-Owner:List-Archive;
 bh=xHQgm1yF/GrgpFTW0+aWo+9aVuU3oJigUyEi4QSiB5I=; b=KfccB3RZv6J7E6ZfjqpZwu0mvd
 jghE4x5SmU9eAnWE7ZgUzOKWHSVgESBitUwijlkRoLg2PxRmOob2ij4AdP3wqEpMSYBSPKcKWcDuC
 b07wfEbgTtNx95JLINAZzbKZgjfH24Iy51W0jCjdQyk8a78xndpUCz9PliBsBwNIb+dq9sR1fSXXU
 KjtronnyqBjFp10yEmhAUTzG1MYH2sAT6cBRm8ziFXz3msoIwLqqNkHEAeXBoGizGi8XAjzFPdKnE
 OcdBVCRH3ag0O1Ypn0jUhSg3Nf7yYpnr/4K1KwVVncop/Vp9jqTQfHPxhML38W8XtK3RzJXI8Xch1
 ff1Mnw6Mdd/x5PXtDmVsJJOPWYxeLRj3aKkmMFl/KSbN2U7MRc+HMZsDL/LCZKbaVYBhmcwCzYkQG
 kKABOK80iyq+FZ04f1niWZtFW+n8ROhWpWEw+EyC07LqMcR4+KTLXogNDMACQagacZOmt/bTb9XaM
 IhDB6yewVZMnFtT7RYcz6rIP;
Received: from muradm by localhost with local (Exim 4.94.2)
 (envelope-from <mail@HIDDEN>) id 1mQwyp-0007he-Gr
 for guix-patches@HIDDEN; Thu, 16 Sep 2021 22:23:31 +0300
From: muradm <mail@HIDDEN>
To: guix-patches@HIDDEN
Subject: [PATCH 0/2] Make wayland-protocols dependency native-input.
Date: Thu, 16 Sep 2021 22:23:31 +0300
Message-Id: <20210916192331.29606-1-mail@HIDDEN>
X-Mailer: git-send-email 2.33.0
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Received-SPF: pass client-ip=139.162.159.157; envelope-from=mail@HIDDEN;
 helo=nomad-cl1.muradm.net
X-Spam_score_int: -20
X-Spam_score: -2.1
X-Spam_bar: --
X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001,
 SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: -1.4 (-)
X-Debbugs-Envelope-To: submit
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.4 (--)

wayland-protocols is not runtime dependency and only build time
dependency for applications that directly using wayland.

Initially I tought that making wayland-protocols a native-inputs
dependency as it should, it would reduce number of dependants on
it. But it turns out other way around. With this patchset we are
fixing gtk+ to not advertise it as dependency in its .pc files,
and moving wayland-protocols to native-inputs where it should be.

Patch provided for gtk+ also merged with upstream.

Patchset prepared from core-updates-frozen. While it seems that
it will impact many other packages, actually this patch reduces
number of packages that touches wayland-protocols and probably
avoids it at runtime.

muradm (2):
  gnu: gtk: Move wayland-protocols to native-inputs.
  gnu: Fix wayland-protocols dependency to be in native-inputs.

 gnu/packages/arcan.scm                        |  6 ++--
 gnu/packages/enlightenment.scm                | 10 +++----
 gnu/packages/fcitx5.scm                       |  4 +--
 gnu/packages/freedesktop.scm                  | 14 +++++-----
 gnu/packages/gl.scm                           | 10 +++----
 gnu/packages/gtk.scm                          |  7 +++--
 gnu/packages/image.scm                        | 12 ++++----
 gnu/packages/julia-jll.scm                    |  2 +-
 gnu/packages/kde-frameworks.scm               |  6 ++--
 gnu/packages/kodi.scm                         |  4 ++-
 gnu/packages/language.scm                     |  2 +-
 .../gtk3-wayland-protocols-dependency.patch   | 23 +++++++++++++++
 gnu/packages/sdl.scm                          |  5 ++--
 gnu/packages/video.scm                        | 28 +++++++++----------
 gnu/packages/wm.scm                           |  4 +--
 gnu/packages/xdisorg.scm                      | 20 ++++++-------
 gnu/packages/xorg.scm                         |  4 ++-
 17 files changed, 95 insertions(+), 66 deletions(-)
 create mode 100644 gnu/packages/patches/gtk3-wayland-protocols-dependency.patch

-- 
2.33.0





Acknowledgement sent to muradm <mail@HIDDEN>:
New bug report received and forwarded. Copy sent to guix-patches@HIDDEN. Full text available.
Report forwarded to guix-patches@HIDDEN:
bug#50627; Package guix-patches. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Fri, 17 Sep 2021 17:15:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.