From unknown Thu Jun 19 14:01:42 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#45193 <45193@debbugs.gnu.org> To: bug#45193 <45193@debbugs.gnu.org> Subject: Status: Wrapper of Qt programs doesn't extend existing environment variable Reply-To: bug#45193 <45193@debbugs.gnu.org> Date: Thu, 19 Jun 2025 21:01:42 +0000 retitle 45193 Wrapper of Qt programs doesn't extend existing environment va= riable reassign 45193 guix submitter 45193 Zhu Zihao severity 45193 normal thanks From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 12 04:12:07 2020 Received: (at submit) by debbugs.gnu.org; 12 Dec 2020 09:12:07 +0000 Received: from localhost ([127.0.0.1]:43922 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ko0wh-0003U0-AV for submit@debbugs.gnu.org; Sat, 12 Dec 2020 04:12:07 -0500 Received: from lists.gnu.org ([209.51.188.17]:49794) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ko0wc-0003Tq-Uh for submit@debbugs.gnu.org; Sat, 12 Dec 2020 04:12:06 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:38332) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ko0wc-0007PB-3o for bug-guix@gnu.org; Sat, 12 Dec 2020 04:12:02 -0500 Received: from mail-m972.mail.163.com ([123.126.97.2]:43762) by eggs.gnu.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1ko0wW-00009s-OH for bug-guix@gnu.org; Sat, 12 Dec 2020 04:12:01 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=From:Subject:Date:Message-ID:MIME-Version; bh=Jbgy2 ndfhfbtp/hYW/9p9gK+czPmRMqN5p03nw4F49A=; b=ZN5PAV+lPMFVz27tg+mmU W68htkzJkTv57urg6A6ki+75SZTdYY33iiqMApLTbfI3GR7O99QLFCk+t8ZWLQ7N pUe6IkVQpxmTAoiaSctBllWIzxT/stZ4YXN+qb7f6hw3I3jerHtVdyH2VlDhc7cH IeVZnGmyegveYCd0KPY4kk= Received: from asus-laptop (unknown [27.39.89.114]) by smtp2 (Coremail) with SMTP id GtxpCgAHRL1QidRf2lOsEw--.7783S2; Sat, 12 Dec 2020 17:11:44 +0800 (CST) User-agent: mu4e 1.4.13; emacs 27.1 From: Zhu Zihao To: bug-guix@gnu.org Subject: Wrapper of Qt programs doesn't extend existing environment variable Date: Sat, 12 Dec 2020 17:11:40 +0800 Message-ID: <86wnxns81f.fsf@163.com> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-CM-TRANSID: GtxpCgAHRL1QidRf2lOsEw--.7783S2 X-Coremail-Antispam: 1Uf129KBjvdXoW7Jr4rurWruFy8KryxXFWrZrb_yoWfJrX_Ar 97AFZ5Jr4vq392qr43Za1rCrWDGayagryxtw1DXrnIgr98Zws8u3yvgrnrZa4xAFsrKayf uaya9r17t34agjkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT 9fnUUvcSsGvfC2KfnxnUUI43ZEXa7IU8OzVUUUUUU== X-Originating-IP: [27.39.89.114] X-CM-SenderInfo: pdoosuxxwbztlvw6il2tof0z/1tbiFBH4r1aD8V4TQQAAs6 Received-SPF: pass client-ip=123.126.97.2; envelope-from=all_but_last@163.com; helo=mail-m972.mail.163.com 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, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 0.6 (/) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.4 (--) --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Reproduce steps: guix environment --ad-hoc qbittorrent && cat $GUIX_ENVIRONMENT/bin/qbitt= orrent We can see the wrapper generated in qt-build-system doesn't extend existing environment variable. Instead, it overrides them. It was discussed in https://lists.gnu.org/archive/html/guix-devel/2019-12/msg00117.html one year ago. This's not a trivial issue because using input method in Qt program requires an qt plugin(XIM doesn't work here) which is managed by QT_PLUGIN_PATH. We should change following functions: 1. guix/build/qt-build-system.scm(wrap-all-programs) 2. guix/build/qt-utils.scm(wrap-qt-program) It's ideal to make wrap-all-programs use wrap-qt-program internally and we don't need to maintain two copy of wrap code. =2D-=20 Retrieve my PGP public key: https://meta.sr.ht/~citreu.pgp Zihao --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQFJBAEBCAAzFiEE7NCVzXX6efyusptG1SOVn+xGFqYFAl/UiUwVHGFsbF9idXRf bGFzdEAxNjMuY29tAAoJENUjlZ/sRhamT1cH/3vyhdTvFkvTSefggL3zWgAa6nda uYqWCgzpXLo6zSrYiamYG8/T0VQrlDsfAwOzMNTxXjdWGl8+Jct7aRp+hUiUPegO nw/aHmlbXCx2XQJJ2W1ZaiFP+m5yr2irPGvUuvKfbR/93/g4/dWC84tHu55jxE90 ViqY6zHsipIcshtd5tBOmoo2lGihvOml+U7Bybt0D8b8aDJleTUEnTy/qd+7qFzi /5IxTE18duJkqnun1GuY3WFwq7TN6/bbIkZ8Srp88w3FA4Ci4K3ia8/3zfoXJOab sU2ZoMS3/6PeYxMLLIgWL8juWGEWS3xcmoXXIRdkfySVpenTAvMnf1TDx/k= =0r0D -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 12 04:20:29 2020 Received: (at 45193) by debbugs.gnu.org; 12 Dec 2020 09:20:29 +0000 Received: from localhost ([127.0.0.1]:43933 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ko14m-0003i0-JH for submit@debbugs.gnu.org; Sat, 12 Dec 2020 04:20:29 -0500 Received: from mail-m972.mail.163.com ([123.126.97.2]:40658) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ko14h-0003hn-Is for 45193@debbugs.gnu.org; Sat, 12 Dec 2020 04:20:27 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=From:Subject:Date:Message-ID:MIME-Version; bh=VUsfL wWE1n8DnfhptkcWBLeVOKg6ROfS+2U/CY8T3hI=; b=VymMCPwfCOEfUHmvKr7+N m1fJiBJat4y7Czw1g0ZXEftTDpAAgVQhJWI5p/zEd+glH0vp7hDUhYTztoeGX676 4qkpNtKaKhzA2xbCrNGXXzP9U0AxBpBGSmPwAWpkXUbRBF9RBor8bnH+0QeXXjF6 HiA196rD8268LhebcPQPNE= Received: from asus-laptop (unknown [27.39.89.114]) by smtp2 (Coremail) with SMTP id GtxpCgC3Rbo2i9RfojStEw--.18548S2; Sat, 12 Dec 2020 17:19:50 +0800 (CST) References: <86wnxns81f.fsf@163.com> User-agent: mu4e 1.4.13; emacs 27.1 From: Zhu Zihao To: 45193@debbugs.gnu.org Subject: Re: bug#45193: Acknowledgement (Wrapper of Qt programs doesn't extend existing environment variable) In-reply-to: Date: Sat, 12 Dec 2020 17:19:50 +0800 Message-ID: <867dpns7nt.fsf@163.com> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-CM-TRANSID: GtxpCgC3Rbo2i9RfojStEw--.18548S2 X-Coremail-Antispam: 1Uf129KBjDUn29KB7ZKAUJUUUUU529EdanIXcx71UUUUU7v73 VFW2AGmfu7bjvjm3AaLaJ3UbIYCTnIWIevJa73UjIFyTuYvjxUeYFCDUUUU X-Originating-IP: [27.39.89.114] X-CM-SenderInfo: pdoosuxxwbztlvw6il2tof0z/1tbiKRj4r1XlytI2LwAAsX X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45193 Cc: david@craven.ch X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable In guix/build/qt-utils.scm:24:11 (define (wrap-qt-program out program) (define (suffix env-var path) ^^^^^ I can't understand this, if you want to do a suffix wrap, you should do it in "wrap-program"(e.g. `("XDG_DATA_DIRS" suffix (,vars))), it will generate bash codes to do the job. If you use Guile code here, it'll capture build time environment variable values. =2D-=20 Retrieve my PGP public key: https://meta.sr.ht/~citreu.pgp Zihao --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQFJBAEBCAAzFiEE7NCVzXX6efyusptG1SOVn+xGFqYFAl/UizYVHGFsbF9idXRf bGFzdEAxNjMuY29tAAoJENUjlZ/sRhamIPEH/RJ3UhPLosXAgr0vII7nYAJsXIBv +a3V32VMWKrzvddA5StHHs6+MTeRMTZUM6OPl/KHBTTr331kZ17n/G/aX7bTDJUx 0opmwyyFCNVVOZ+cNwJihfjB6p6ZNd8XOBaiQhAvQRPUxuU+jSm0zPI4Cmv7sddR jck3yQThOvB0wkr8MObRy5fl5zLncWsD2j1H67Xqn93VswUkG7IJo4b1z8IhN2q4 mAwTwzIFAMlJ9PCiOT/d1+TR/65VSffcdFo2IUBPrJG0gBS0I0FLX3ZBAouW7ZS2 tWKhGYOusgdCe8cg8E8rKf+RTEKx4iZXJOF4vd5ynJ77pPre21xMcd0Ffns= =06cg -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 14 15:46:23 2020 Received: (at 45193) by debbugs.gnu.org; 14 Dec 2020 20:46:23 +0000 Received: from localhost ([127.0.0.1]:54685 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1koujf-0004Is-0h for submit@debbugs.gnu.org; Mon, 14 Dec 2020 15:46:23 -0500 Received: from world.peace.net ([64.112.178.59]:32884) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1koujd-0004DC-Kg for 45193@debbugs.gnu.org; Mon, 14 Dec 2020 15:46:21 -0500 Received: from mhw by world.peace.net with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1koujX-0003kQ-RP; Mon, 14 Dec 2020 15:46:15 -0500 From: Mark H Weaver To: Zhu Zihao , 45193@debbugs.gnu.org Subject: Re: bug#45193: Wrapper of Qt programs doesn't extend existing environment variable In-Reply-To: <86wnxns81f.fsf@163.com> References: <86wnxns81f.fsf@163.com> Date: Mon, 14 Dec 2020 15:45:23 -0500 Message-ID: <87im94ru9t.fsf@netris.org> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45193 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hi, Zhu Zihao writes: > Reproduce steps: > > guix environment --ad-hoc qbittorrent && cat $GUIX_ENVIRONMENT/bin/qbittorrent > > > We can see the wrapper generated in qt-build-system doesn't extend > existing environment variable. Instead, it overrides them. > > It was discussed in > https://lists.gnu.org/archive/html/guix-devel/2019-12/msg00117.html one > year ago. This's not a trivial issue because using input method in Qt > program requires an qt plugin(XIM doesn't work here) which is managed by > QT_PLUGIN_PATH. > > We should change following functions: > > 1. guix/build/qt-build-system.scm(wrap-all-programs) > 2. guix/build/qt-utils.scm(wrap-qt-program) > > It's ideal to make wrap-all-programs use wrap-qt-program internally and > we don't need to maintain two copy of wrap code. I agree with your analysis. Would you like to propose a patch and test it as thoroughly as you can? Regards, Mark From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 14 20:51:14 2020 Received: (at 45193) by debbugs.gnu.org; 15 Dec 2020 01:51:14 +0000 Received: from localhost ([127.0.0.1]:54956 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kozUg-0006Ns-FO for submit@debbugs.gnu.org; Mon, 14 Dec 2020 20:51:14 -0500 Received: from mail-m972.mail.163.com ([123.126.97.2]:49272) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kozUd-0006Nb-Ku for 45193@debbugs.gnu.org; Mon, 14 Dec 2020 20:51:13 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=From:Subject:Date:Message-ID:MIME-Version; bh=nM9R7 4BFAuVLgnoeFWscUHtH+2w1ld376YiEtBwJxVc=; b=Lf8d2uQ9vvGFPTRaT2BYs sbbJ+gfEu+O6CnHxj7K/Tnt1IsoTSW/65AUveOxeEsHp5VIywrt52btgEYOXl5Us MQaKOP7JgkJ4GQoz1lgczuHnmnrY1LeBuH//+n1Hm45pIWwExF9BeUljK5Qb4SJl 5DnJaerd0mBrGIMAsSP4Xg= Received: from asus-laptop (unknown [112.93.141.84]) by smtp2 (Coremail) with SMTP id GtxpCgCnr++HFthfhXAAFQ--.54930S2; Tue, 15 Dec 2020 09:51:04 +0800 (CST) References: <86wnxns81f.fsf@163.com> <87im94ru9t.fsf@netris.org> User-agent: mu4e 1.4.13; emacs 27.1 From: Zhu Zihao To: Mark H Weaver Subject: Re: bug#45193: Wrapper of Qt programs doesn't extend existing environment variable In-reply-to: <87im94ru9t.fsf@netris.org> Date: Tue, 15 Dec 2020 09:50:57 +0800 Message-ID: <86a6ufon0e.fsf@163.com> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-CM-TRANSID: GtxpCgCnr++HFthfhXAAFQ--.54930S2 X-Coremail-Antispam: 1Uf129KBjDUn29KB7ZKAUJUUUUU529EdanIXcx71UUUUU7v73 VFW2AGmfu7bjvjm3AaLaJ3UbIYCTnIWIevJa73UjIFyTuYvjxU2byCDUUUU X-Originating-IP: [112.93.141.84] X-CM-SenderInfo: pdoosuxxwbztlvw6il2tof0z/1tbiTwn7r1sGW9Su8QAAsf X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45193 Cc: 45193@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Mark H Weaver writes: > I agree with your analysis. Would you like to propose a patch and test > it as thoroughly as you can? I just saw a patch posted by somebody on debbugs. https://issues.guix.gnu.org/45221 Maybe we can go there to improve his patch and we don't have to write it from scratch. =2D-=20 Retrieve my PGP public key: gpg --recv-keys D47A9C8B2AE3905B563D9135BE42B352A9F6821F Zihao --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iIsEARYIADMWIQTUepyLKuOQW1Y9kTW+QrNSqfaCHwUCX9gWgRUcYWxsX2J1dF9s YXN0QDE2My5jb20ACgkQvkKzUqn2gh8q2AEA/xdIjQFf7w+vxJnedbHTb86YUwEI BazknMFrqpcOV2sBAKuOWFHYpoeRJ3sKX+Z6f9n8fZEylpuARfa6xhu2BwsJ =NxHx -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Thu Dec 17 06:36:02 2020 Received: (at 45193) by debbugs.gnu.org; 17 Dec 2020 11:36:02 +0000 Received: from localhost ([127.0.0.1]:34889 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kprZi-0003Z4-1e for submit@debbugs.gnu.org; Thu, 17 Dec 2020 06:36:02 -0500 Received: from mail-m975.mail.163.com ([123.126.97.5]:59902) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kprZc-0003Yg-Kf for 45193@debbugs.gnu.org; Thu, 17 Dec 2020 06:36:00 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=From:Subject:Date:Message-ID:MIME-Version; bh=9hKov Mex/O3MjC3SmUjGrR8zzZSUY2q1OqPqhRrPlGQ=; b=JIJ3oz6SERVKfIw/mOuLF y5UBrtGKcgdq7gmooRAdKVzKlmxNvMqhz0qQ1k4CWVDjic0/AvTlTIPF9IwyJfca qJO7NiO1/NZ5Vr9M8dsk1uFCXCNk2ZJVs6blmYN7/+3e7Dws1+4X7g29yNf6ubyI MYHOll+HgzJzstAQhtt+lA= Received: from asus-laptop (unknown [27.39.89.162]) by smtp5 (Coremail) with SMTP id HdxpCgDn78OUQttfML0GFw--.2210S2; Thu, 17 Dec 2020 19:35:49 +0800 (CST) References: <86wnxns81f.fsf@163.com> <87im94ru9t.fsf@netris.org> User-agent: mu4e 1.4.13; emacs 27.1 From: Zhu Zihao To: Mark H Weaver Subject: Re: bug#45193: Wrapper of Qt programs doesn't extend existing environment variable In-reply-to: <87im94ru9t.fsf@netris.org> Date: Thu, 17 Dec 2020 19:35:43 +0800 Message-ID: <86mtycbr74.fsf@163.com> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-CM-TRANSID: HdxpCgDn78OUQttfML0GFw--.2210S2 X-Coremail-Antispam: 1Uf129KBjvdXoWrZFW7Gr13ZF4UAw1ftFWfGrg_yoW3tFb_Cr n2vFWDGw1DZw17tF13JFsIyr90ga92qry2grZIgw42yr1vq3WUW3yvkF9xtF17W3ZrJw4x Grn2y3y3tr9xujkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT 9fnUUvcSsGvfC2KfnxnUUI43ZEXa7IUj9qXtUUUUU== X-Originating-IP: [27.39.89.162] X-CM-SenderInfo: pdoosuxxwbztlvw6il2tof0z/xtbB8Q39r12MYTk9mwAAsB X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45193 Cc: 45193@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable I try to read and understand how wrap-qt-program in qt-utils.scm works. When building QT program, Guix builder populates qt related environment variable, and wrap-qt-program just record it into wrapper. However, the wrap behaviour in qt-build-system is quite different, it search all inputs and mark them should be included in envvar definition if correspond directory exists. Another difference is, wrap-qt-program will include the directory of output in envvar but qt-build-system won't do. I'm not sure whether we need to include output, and don't know recording build time environment follows reproducible build rule or not. Maybe we need an expert on Qt programming/packaging to give us some hints? :( =2D-=20 Retrieve my PGP public key: gpg --recv-keys D47A9C8B2AE3905B563D9135BE42B352A9F6821F Zihao --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iIsEARYIADMWIQTUepyLKuOQW1Y9kTW+QrNSqfaCHwUCX9tCjxUcYWxsX2J1dF9s YXN0QDE2My5jb20ACgkQvkKzUqn2gh+c9QD/cKZ3Z87d5HzgwiulltcgE5bxbrOC aC2JBT2UTQoPZj4A/iKIPczjj0odC0PBGA/G34p0wwwpeITqLk8YG2aaapIL =QvdP -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 19 08:13:23 2020 Received: (at 45193) by debbugs.gnu.org; 19 Dec 2020 13:13:23 +0000 Received: from localhost ([127.0.0.1]:41040 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqc30-0007uy-3k for submit@debbugs.gnu.org; Sat, 19 Dec 2020 08:13:23 -0500 Received: from mail-out.m-online.net ([212.18.0.10]:33649) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqc2y-0007uo-7x for 45193@debbugs.gnu.org; Sat, 19 Dec 2020 08:13:20 -0500 Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 4CymPq5fLMz1rwb8; Sat, 19 Dec 2020 14:13:15 +0100 (CET) Received: from localhost (dynscan1.mnet-online.de [192.168.6.70]) by mail.m-online.net (Postfix) with ESMTP id 4CymPl5wqnz1tYWm; Sat, 19 Dec 2020 14:13:15 +0100 (CET) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.70]) (amavisd-new, port 10024) with ESMTP id pEB0yagDA3Ft; Sat, 19 Dec 2020 14:13:14 +0100 (CET) Received: from hermia.goebel-consult.de (ppp-188-174-52-104.dynamic.mnet-online.de [188.174.52.104]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.mnet-online.de (Postfix) with ESMTPS; Sat, 19 Dec 2020 14:13:14 +0100 (CET) Received: from lenashee.goebel-consult.de (lenashee.goebel-consult.de [192.168.110.2]) by hermia.goebel-consult.de (Postfix) with ESMTP id 60DA060213; Sat, 19 Dec 2020 14:20:22 +0100 (CET) From: Hartmut Goebel Subject: Wrapper of Qt programs doesn't extend existing environment variable To: Zhu Zihao Organization: crazy-compilers.com Message-ID: <1cc6eb46-813b-ba3c-f796-30d545f35941@crazy-compilers.com> Date: Sat, 19 Dec 2020 14:13:11 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.6.0 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="------------10C834250C9B054ED1837695" Content-Language: en-US X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 45193 Cc: 45193@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) This is a multi-part message in MIME format. --------------10C834250C9B054ED1837695 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Zhu Zihao wrote > When building QT program, Guix builder populates qt related > environmentvariable, and wrap-qt-program just record it into wrapper. > > However, the wrap behaviour in qt-build-system is quite different, > itsearch all inputs and mark them should be included in envvar > definitionif correspond directory exists. This will have the same result in must cases: The environment variables used in qt-utils are defined as "native-search-paths" by some package. So these variables will be set when creating the build environment, based in the inputs. So if the package does not touch these variables, the output should be the same (beside perhaps the order). When using the environment-variables, this would allow the package definition to remove unwanted parts. Nevertheless this is cumbersome (fetching the input, string-append, manipulating the variable value). And AFAIS none of the pacakges using wrap-qt-program does this. I agree that leaking the environments variables from the build environment to the package is not a good idea. Also we might want to add some filters to avoid all imports (including cmake) are going into the wrapping variables - which is much easier when dealing with inputs nor strings. > Another difference is, wrap-qt-program will include the directory > ofoutput in envvar but qt-build-system won't do. If I understand the code correctly,  line 103 of qt-build-system also handle the output directories                              (append (list directory)                                      input-directories)))) and the qt-build-system should even handle different outputs (while qt-tuils does not):   (for-each handle-output outputs) (I may be wrong on this, please double check. -- Regards Hartmut Goebel | Hartmut Goebel |h.goebel@crazy-compilers.com | |www.crazy-compilers.com | compilers which you thought are impossible | --------------10C834250C9B054ED1837695 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: 8bit

Zhu Zihao wrote

When building QT program, Guix builder populates qt related environmentvariable, and wrap-qt-program just record it into wrapper.

However, the wrap behaviour in qt-build-system is quite different, itsearch all inputs and mark them should be included in envvar definitionif correspond directory exists.

This will have the same result in must cases:

The environment variables used in qt-utils are defined as "native-search-paths" by some package. So these variables will be set when creating the build environment, based in the inputs. So if the package does not touch these variables, the output should be the same (beside perhaps the order).

When using the environment-variables, this would allow the package definition to remove unwanted parts. Nevertheless this is cumbersome (fetching the input, string-append, manipulating the variable value). And AFAIS none of the pacakges using wrap-qt-program does this.

I agree that leaking the environments variables from the build environment to the package is not a good idea. Also we might want to add some filters to avoid all imports (including cmake) are going into the wrapping variables - which is much easier when dealing with inputs nor strings.


Another difference is, wrap-qt-program will include the directory ofoutput in envvar but qt-build-system won't do.

If I understand the code correctly,  line 103 of qt-build-system also handle the output directories

                             (append (list directory)
                                     input-directories))))

and the qt-build-system should even handle different outputs (while qt-tuils does not):

  (for-each handle-output outputs)

(I may be wrong on this, please double check.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel          | h.goebel@crazy-compilers.com               |
| www.crazy-compilers.com | compilers which you thought are impossible |
--------------10C834250C9B054ED1837695-- From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 19 13:20:37 2020 Received: (at 45193) by debbugs.gnu.org; 19 Dec 2020 18:20:37 +0000 Received: from localhost ([127.0.0.1]:43133 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqgqL-0001BC-A1 for submit@debbugs.gnu.org; Sat, 19 Dec 2020 13:20:37 -0500 Received: from mail-m973.mail.163.com ([123.126.97.3]:56440) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqgq8-0001An-Q1 for 45193@debbugs.gnu.org; Sat, 19 Dec 2020 13:20:35 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=From:Subject:Date:Message-ID:MIME-Version; bh=CS8Am GyqNYUEmGZ0iMDjylQMCh7P5I9sax4zXPLT42I=; b=HmKTSfyRJhPD5EuCyO3sy sXwCsSvW9PMG9qd9q4ZFwky4elZlJYYj5//zVSAcdc9OTCOA/g1zKi1etFU/0oxU 2zXD9apRqpzq0r3mHSpdmQ+wWMtbf/2l2V+xE5EJue0p/a52hlFbh/JL20/wiHlQ 1oQ/jjZcgiM+R78EvXl0DY= Received: from asus-laptop (unknown [112.93.141.169]) by smtp3 (Coremail) with SMTP id G9xpCgBnFttbRN5f3ggHQA--.42700S2; Sun, 20 Dec 2020 02:20:12 +0800 (CST) References: <1cc6eb46-813b-ba3c-f796-30d545f35941@crazy-compilers.com> User-agent: mu4e 1.4.13; emacs 27.1 From: Zhu Zihao To: Hartmut Goebel Subject: Re: Wrapper of Qt programs doesn't extend existing environment variable In-reply-to: <1cc6eb46-813b-ba3c-f796-30d545f35941@crazy-compilers.com> Date: Sun, 20 Dec 2020 02:20:06 +0800 Message-ID: <86pn35wtd5.fsf@163.com> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-CM-TRANSID: G9xpCgBnFttbRN5f3ggHQA--.42700S2 X-Coremail-Antispam: 1Uf129KBjvJXoW7ZFWkXrWfuF13WF47tr4DCFg_yoW8Gw15pF ZYkw1Yqr4qkryjyw1Iva4I9F10k3y8Cw1akrZ5Za1jkws0gr92vrySka1a93ZrCan3Xr1Y 9a1j9w48C345ZrJanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDUYxBIdaVFxhVjvjDU0xZFpf9x07jbjjgUUUUU= X-Originating-IP: [112.93.141.169] X-CM-SenderInfo: pdoosuxxwbztlvw6il2tof0z/1tbitBwAr1SIjxhjsAAAsf X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 45193 Cc: 45193@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Hartmut Goebel writes: > I agree that leaking the environments variables from the build environmen= t to > the package is not a good idea. Also we might want to add some filters to= avoid > all imports (including cmake) are going into the wrapping variables - whi= ch is > much easier when dealing with inputs nor strings. I just check how Nixpkgs do Qt wrapping, it use same strategy like wrap-qt-= program. Since our environment variable only contains the path to inputs, capture the build-time environment can be forgiven (compare with patch-shebang). I think the main problem is include unwanted directory accidentally and increase the closure size. But it looks like an impossible job to do it automatically. My idea is provide a keyword argument #:qt-wrap-exclude-inputs to prevent qt-build-system to search unwanted inpu= ts. BTW, would you like to use prefix wrap for wrap-qt-program in qt-utils.scm? > If I understand the code correctly, line 103 of qt-build-system also han= dle the > output directories > > (append (list directory) > input-directories)))) > > and the qt-build-system should even handle different outputs (while qt-tu= ils > does not): > > (for-each handle-output outputs) > > (I may be wrong on this, please double check. Yes you're right, output was handled. I misunderstood the code before.=20 =2D-=20 Retrieve my PGP public key: gpg --recv-keys D47A9C8B2AE3905B563D9135BE42B352A9F6821F Zihao --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iIsEARYIADMWIQTUepyLKuOQW1Y9kTW+QrNSqfaCHwUCX95EVhUcYWxsX2J1dF9s YXN0QDE2My5jb20ACgkQvkKzUqn2gh8a+wD9Gej5w9JFo3MrHCsR0ZxbZ+OfvrRd 3eJmofU4bXyeVsMA/RY9Rnz1pBHz33e2EYFGX7scnEdZWgVVYuoSccS22XsI =jqQ+ -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 19 14:12:18 2020 Received: (at 45193) by debbugs.gnu.org; 19 Dec 2020 19:12:18 +0000 Received: from localhost ([127.0.0.1]:43186 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqheM-0002Sh-8e for submit@debbugs.gnu.org; Sat, 19 Dec 2020 14:12:18 -0500 Received: from mail-out.m-online.net ([212.18.0.10]:46914) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqheK-0002SZ-Em for 45193@debbugs.gnu.org; Sat, 19 Dec 2020 14:12:17 -0500 Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 4CywMz0SMPz1rt3q; Sat, 19 Dec 2020 20:12:12 +0100 (CET) Received: from localhost (dynscan1.mnet-online.de [192.168.6.70]) by mail.m-online.net (Postfix) with ESMTP id 4CywMw1zGJz1rbmW; Sat, 19 Dec 2020 20:12:12 +0100 (CET) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.70]) (amavisd-new, port 10024) with ESMTP id DikKuz-go6fR; Sat, 19 Dec 2020 20:12:11 +0100 (CET) Received: from hermia.goebel-consult.de (ppp-188-174-52-104.dynamic.mnet-online.de [188.174.52.104]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.mnet-online.de (Postfix) with ESMTPS; Sat, 19 Dec 2020 20:12:11 +0100 (CET) Received: from lenashee.goebel-consult.de (lenashee.goebel-consult.de [192.168.110.2]) by hermia.goebel-consult.de (Postfix) with ESMTP id 4421E601D4; Sat, 19 Dec 2020 20:19:38 +0100 (CET) Subject: Re: Wrapper of Qt programs doesn't extend existing environment variable To: Zhu Zihao References: <1cc6eb46-813b-ba3c-f796-30d545f35941@crazy-compilers.com> <86pn35wtd5.fsf@163.com> From: Hartmut Goebel Organization: crazy-compilers.com Message-ID: <21d6a47c-6119-349e-07f2-d27b6efef21e@crazy-compilers.com> Date: Sat, 19 Dec 2020 20:12:08 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.6.0 MIME-Version: 1.0 In-Reply-To: <86pn35wtd5.fsf@163.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 45193 Cc: 45193@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Am 19.12.20 um 19:20 schrieb Zhu Zihao: > BTW, would you like to use prefix wrap for wrap-qt-program in qt-utils.scm? I would support your proposal of unifying both wrappers. (Which way round is a matter of closure-size. I assume moving the code to qt-util.scm is the smaller solution.) -- Regards Hartmut Goebel | Hartmut Goebel | h.goebel@crazy-compilers.com | | www.crazy-compilers.com | compilers which you thought are impossible | From debbugs-submit-bounces@debbugs.gnu.org Sun Jan 10 11:35:14 2021 Received: (at 45193) by debbugs.gnu.org; 10 Jan 2021 16:35:14 +0000 Received: from localhost ([127.0.0.1]:54809 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kydgQ-0005P7-Hg for submit@debbugs.gnu.org; Sun, 10 Jan 2021 11:35:14 -0500 Received: from m12-11.163.com ([220.181.12.11]:38189) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kydgI-0005Od-MB for 45193@debbugs.gnu.org; Sun, 10 Jan 2021 11:35:12 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=From:Subject:Date:Message-ID:MIME-Version; bh=z/1SF GfAKuslzVCHxe5705SF3DcvLQIvtaTxOT+YHKA=; b=Hswec60FNGMfzqXaFGeQy C9bWf7suCVxnqRMuO0xPD2jF/s8JEaDptYvMY4qlBTmjpRzsIE5xpRC0RJorVASE A92IYqPWxj7IUl6BkxFX+P709NN+BhHEdZ8z3wH6UOGAEa+EBYIJIwRuIfrf8BpK /eE5lYbc4XS/EcSLtKISJE= Received: from asus-laptop (unknown [113.100.122.53]) by smtp7 (Coremail) with SMTP id C8CowADny9urLPtfB6emIA--.14355S2; Mon, 11 Jan 2021 00:34:52 +0800 (CST) References: <1cc6eb46-813b-ba3c-f796-30d545f35941@crazy-compilers.com> User-agent: mu4e 1.4.13; emacs 27.1 From: Zhu Zihao To: Hartmut Goebel Subject: Re: Wrapper of Qt programs doesn't extend existing environment variable In-reply-to: <1cc6eb46-813b-ba3c-f796-30d545f35941@crazy-compilers.com> Date: Mon, 11 Jan 2021 00:34:46 +0800 Message-ID: <86mtxg7ntl.fsf@163.com> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-CM-TRANSID: C8CowADny9urLPtfB6emIA--.14355S2 X-Coremail-Antispam: 1Uf129KBjDUn29KB7ZKAUJUUUUU529EdanIXcx71UUUUU7v73 VFW2AGmfu7bjvjm3AaLaJ3UbIYCTnIWIevJa73UjIFyTuYvjxU2ApnDUUUU X-Originating-IP: [113.100.122.53] X-CM-SenderInfo: pdoosuxxwbztlvw6il2tof0z/1tbitBkWr1SIkCV8AgABsC X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 45193 Cc: 45193@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Any progress in this patch? It's painful for CJK users that can't use input method for Qt programs :( =2D-=20 Retrieve my PGP public key: gpg --recv-keys D47A9C8B2AE3905B563D9135BE42B352A9F6821F Zihao --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iIsEARYIADMWIQTUepyLKuOQW1Y9kTW+QrNSqfaCHwUCX/ssphUcYWxsX2J1dF9s YXN0QDE2My5jb20ACgkQvkKzUqn2gh/7/gEAp0+RF2l4/WOpqJxR6yFKTvMDbKDL E67dk1v97VwB/4wA/Aw9DNBcZ8XdcxOfu624N9qC1D2Tpl49zhVcsMZwnm8J =CSXi -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Mon Jan 11 03:17:28 2021 Received: (at 45193) by debbugs.gnu.org; 11 Jan 2021 08:17:28 +0000 Received: from localhost ([127.0.0.1]:55550 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kysOG-0003Wc-Dn for submit@debbugs.gnu.org; Mon, 11 Jan 2021 03:17:28 -0500 Received: from mail-out.m-online.net ([212.18.0.9]:36658) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kysOE-0003WT-0W for 45193@debbugs.gnu.org; Mon, 11 Jan 2021 03:17:26 -0500 Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 4DDmlm4bL1z1qs1B; Mon, 11 Jan 2021 09:17:24 +0100 (CET) Received: from localhost (dynscan1.mnet-online.de [192.168.6.70]) by mail.m-online.net (Postfix) with ESMTP id 4DDmlm4KH2z1qqkx; Mon, 11 Jan 2021 09:17:24 +0100 (CET) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.70]) (amavisd-new, port 10024) with ESMTP id JTUS12a5SVq6; Mon, 11 Jan 2021 09:17:23 +0100 (CET) Received: from hermia.goebel-consult.de (ppp-188-174-55-154.dynamic.mnet-online.de [188.174.55.154]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.mnet-online.de (Postfix) with ESMTPS; Mon, 11 Jan 2021 09:17:23 +0100 (CET) Received: from lenashee.goebel-consult.de (lenashee.goebel-consult.de [192.168.110.2]) by hermia.goebel-consult.de (Postfix) with ESMTP id 81D1760120; Mon, 11 Jan 2021 09:17:21 +0100 (CET) Subject: Re: Wrapper of Qt programs doesn't extend existing environment variable From: Hartmut Goebel To: Zhu Zihao References: <1cc6eb46-813b-ba3c-f796-30d545f35941@crazy-compilers.com> <86mtxg7ntl.fsf@163.com> Organization: crazy-compilers.com Message-ID: <83354f9c-c003-f63f-5496-b8140b62ef98@crazy-compilers.com> Date: Mon, 11 Jan 2021 09:17:21 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.6.0 MIME-Version: 1.0 In-Reply-To: <86mtxg7ntl.fsf@163.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 45193 Cc: 45193@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Patches are almost done. Expect the within thee next few days. -- Regards Hartmut Goebel | Hartmut Goebel | h.goebel@crazy-compilers.com | | www.crazy-compilers.com | compilers which you thought are impossible | From debbugs-submit-bounces@debbugs.gnu.org Mon Jan 11 09:41:57 2021 Received: (at 45193) by debbugs.gnu.org; 11 Jan 2021 14:41:57 +0000 Received: from localhost ([127.0.0.1]:56234 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kyyOL-0003fe-9S for submit@debbugs.gnu.org; Mon, 11 Jan 2021 09:41:57 -0500 Received: from mail-out.m-online.net ([212.18.0.10]:35246) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kyyOK-0003fW-47 for 45193@debbugs.gnu.org; Mon, 11 Jan 2021 09:41:56 -0500 Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 4DDxHR1xNFz1s0fq; Mon, 11 Jan 2021 15:41:54 +0100 (CET) Received: from localhost (dynscan1.mnet-online.de [192.168.6.70]) by mail.m-online.net (Postfix) with ESMTP id 4DDxHQ6nyzz1sWcT; Mon, 11 Jan 2021 15:41:54 +0100 (CET) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.70]) (amavisd-new, port 10024) with ESMTP id Q-yJ1aUqLzQC; Mon, 11 Jan 2021 15:41:54 +0100 (CET) Received: from hermia.goebel-consult.de (ppp-188-174-55-154.dynamic.mnet-online.de [188.174.55.154]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.mnet-online.de (Postfix) with ESMTPS; Mon, 11 Jan 2021 15:41:54 +0100 (CET) Received: from lenashee.fritz.box (lenashee.goebel-consult.de [192.168.110.2]) by hermia.goebel-consult.de (Postfix) with ESMTP id 8C48760378; Mon, 11 Jan 2021 15:41:44 +0100 (CET) From: Hartmut Goebel To: 45193@debbugs.gnu.org, guix-patches@gnu.org Subject: [PATCH 2/4] guix: qt-utils: Wrapped executables honor user's envvars. Date: Mon, 11 Jan 2021 15:41:42 +0100 Message-Id: X-Mailer: git-send-email 2.21.3 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 45193 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Prior to this change, wrappers did set the specified environment variables to a fixed value, overwriting any user settings. This inhibited propagating e.g. XDG_DATA_DIRS from a profile to the application. Now user environment variables are prefixed (if the variable defines some "binary" search path, e.g. QT_PLUGIN_PATH) or suffixed (if the variable defines some config or data search path, e.g. XDG_DATA_DIRS). The code could also allow to overwrite, anyhow currently no variable is defined like this. * guix/build/qt-utils.scm (variables-for-wrapping): For each env-var to be wrapped, specify whether it should prefix, suffix or overwrite the user's variable. --- guix/build/qt-utils.scm | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/guix/build/qt-utils.scm b/guix/build/qt-utils.scm index 3fbdb6be61..030059522d 100644 --- a/guix/build/qt-utils.scm +++ b/guix/build/qt-utils.scm @@ -39,14 +39,15 @@ (lambda (var-to-wrap) (not (null? (last var-to-wrap)))) (map (lambda (var-spec) - `(,(first var-spec) = ,(collect-sub-dirs base-directories (last var-spec)))) + (list (first var-spec) (second var-spec) + (collect-sub-dirs base-directories (third var-spec)))) (list ;; these shall match the search-path-specification for Qt and KDE ;; libraries - '("XDG_DATA_DIRS" "/share") - '("XDG_CONFIG_DIRS" "/etc/xdg") - '("QT_PLUGIN_PATH" "/lib/qt5/plugins") - '("QML2_IMPORT_PATH" "/lib/qt5/qml"))))) + '("XDG_DATA_DIRS" suffix "/share") + '("XDG_CONFIG_DIRS" suffix "/etc/xdg") + '("QT_PLUGIN_PATH" prefix "/lib/qt5/plugins") + '("QML2_IMPORT_PATH" prefix "/lib/qt5/qml"))))) (define* (wrap-qt-program* program #:key inputs output-dir) -- 2.21.3 From debbugs-submit-bounces@debbugs.gnu.org Mon Jan 11 09:42:09 2021 Received: (at 45193) by debbugs.gnu.org; 11 Jan 2021 14:42:09 +0000 Received: from localhost ([127.0.0.1]:56237 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kyyOO-0003fz-Jg for submit@debbugs.gnu.org; Mon, 11 Jan 2021 09:42:09 -0500 Received: from mail-out.m-online.net ([212.18.0.9]:35218) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kyyOH-0003fS-8b for 45193@debbugs.gnu.org; Mon, 11 Jan 2021 09:41:59 -0500 Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 4DDxHN0MMMz1qskc; Mon, 11 Jan 2021 15:41:51 +0100 (CET) Received: from localhost (dynscan1.mnet-online.de [192.168.6.70]) by mail.m-online.net (Postfix) with ESMTP id 4DDxHM5rbvz1sWcT; Mon, 11 Jan 2021 15:41:51 +0100 (CET) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.70]) (amavisd-new, port 10024) with ESMTP id 6uWE8wJK4FVf; Mon, 11 Jan 2021 15:41:47 +0100 (CET) Received: from hermia.goebel-consult.de (ppp-188-174-55-154.dynamic.mnet-online.de [188.174.55.154]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.mnet-online.de (Postfix) with ESMTPS; Mon, 11 Jan 2021 15:41:47 +0100 (CET) Received: from lenashee.fritz.box (lenashee.goebel-consult.de [192.168.110.2]) by hermia.goebel-consult.de (Postfix) with ESMTP id 2B64860355; Mon, 11 Jan 2021 15:41:44 +0100 (CET) From: Hartmut Goebel To: 45193@debbugs.gnu.org, guix-patches@gnu.org Subject: [PATCH 1/4] guix: qt-build-system, qt-utils: Unify wrapping of qt-programs. Date: Mon, 11 Jan 2021 15:41:44 +0100 Message-Id: X-Mailer: git-send-email 2.21.3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 1.3 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Unify (guix qt-build-system wrap-all-programs) and (guix qt-utils wrap-qt-program), so both behave the same. The functions now reside in qt-utils to make them easily available for packages not using t [...] Content analysis details: (1.3 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) [212.18.0.9 listed in wl.mailspike.net] -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [212.18.0.9 listed in list.dnswl.org] 2.0 PDS_OTHER_BAD_TLD Untrustworthy TLDs [URI: nixo.xyz (xyz)] 0.0 T_SPF_HELO_TEMPERROR SPF: test of HELO record failed (temperror) 0.0 SPF_NONE SPF: sender does not publish an SPF Record 0.0 RCVD_IN_MSPIKE_WL Mailspike good senders X-Debbugs-Envelope-To: 45193 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) Unify (guix qt-build-system wrap-all-programs) and (guix qt-utils wrap-qt-program), so both behave the same. The functions now reside in qt-utils to make them easily available for packages not using the qt-build-system. * guix/build/qt-build-system.scm (variables-for-wrapping, wrap-all-programs): Move from here ... * guix/build/qt-utils.scm (variables-for-wrapping, wrap-all-qt-programs): ... to here. Base the later on (wrap-qt-program*): New function, carved out from old wrap-all-programs. (wrap-qt-program): Base on wrap-qt-program*, change arguments in an incompatible way. * gnu/packages/bittorrent.scm (qbittorrent)[arguments]{wrap-qt}: Adjust to new interface of wrap-qt-program. * gnu/packages/finance.scm (electron-cash): Likewise. * gnu/packages/geo.scm (qgis): Likewise. * gnu/packages/password-utils.scm (qtpass): Likewise. * gnu/packages/video.scm (openshot): Likewise. * gnu/packages/web-browsers.scm (kristall): Likewise. --- gnu/packages/bittorrent.scm | 6 +- gnu/packages/finance.scm | 8 ++- gnu/packages/geo.scm | 7 ++- gnu/packages/password-utils.scm | 6 +- gnu/packages/video.scm | 6 +- gnu/packages/web-browsers.scm | 5 +- guix/build-system/qt.scm | 1 + guix/build/qt-build-system.scm | 68 +-------------------- guix/build/qt-utils.scm | 105 ++++++++++++++++++++++++++------ 9 files changed, 113 insertions(+), 99 deletions(-) diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm index 08e61d7ba2..6967eccec4 100644 --- a/gnu/packages/bittorrent.scm +++ b/gnu/packages/bittorrent.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2018 Nam Nguyen ;;; Copyright © 2018 Ricardo Wurmus ;;; Copyright © 2019, 2020 Brett Gilio +;;; Copyright © 2020 Hartmut Goebel ;;; ;;; This file is part of GNU Guix. ;;; @@ -447,8 +448,9 @@ desktops.") #:phases (modify-phases %standard-phases (add-after 'install 'wrap-qt - (lambda* (#:key outputs #:allow-other-keys) - (wrap-qt-program (assoc-ref outputs "out") "qbittorrent") + (lambda* (#:key outputs inputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (wrap-qt-program "qbittorrent" #:output out #:inputs inputs)) #t))))) (native-inputs `(("pkg-config" ,pkg-config) diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index e7d58bbcc0..d71df60740 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2015, 2016 Andreas Enge ;;; Copyright © 2016, 2017, 2018 Efraim Flashner ;;; Copyright © 2016 Alex Griffin -;;; Copyright © 2016 Hartmut Goebel +;;; Copyright © 2016, 2020 Hartmut Goebel ;;; Copyright © 2017 Carlo Zancanaro ;;; Copyright © 2017 Theodoros Foradis ;;; Copyright © 2017 Vasile Dumitrascu @@ -611,8 +611,10 @@ other machines/servers. Electrum does not download the Bitcoin blockchain.") (assoc-ref inputs "libsecp256k1") "/lib/libsecp256k1.so.0'"))))) (add-after 'install 'wrap-qt - (lambda* (#:key outputs #:allow-other-keys) - (wrap-qt-program (assoc-ref outputs "out") "electron-cash")))))) + (lambda* (#:key outputs inputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (wrap-qt-program "electron-cash" #:output out #:inputs inputs)) + #t))))) (home-page "https://electroncash.org/") (synopsis "Bitcoin Cash wallet") (description diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm index c682613ff1..a90db90084 100644 --- a/gnu/packages/geo.scm +++ b/gnu/packages/geo.scm @@ -10,7 +10,7 @@ ;;; Copyright © 2019, 2020 Guillaume Le Vaillant ;;; Copyright © 2019, 2020 Efraim Flashner ;;; Copyright © 2019 Wiktor Żelazny -;;; Copyright © 2019 Hartmut Goebel +;;; Copyright © 2019, 2020 Hartmut Goebel ;;; Copyright © 2020 Marius Bakke ;;; Copyright © 2020 Christopher Baines ;;; Copyright © 2020 Felix Gruber @@ -2121,8 +2121,9 @@ growing set of geoscientific methods.") (add-after 'install 'wrap-python (assoc-ref python:%standard-phases 'wrap)) (add-after 'wrap-python 'wrap-qt - (lambda* (#:key outputs #:allow-other-keys) - (wrap-qt-program (assoc-ref outputs "out") "qgis") + (lambda* (#:key outputs inputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (wrap-qt-program "qgis" #:output out #:inputs inputs)) #t)) (add-after 'wrap-qt 'wrap-gis (lambda* (#:key inputs outputs #:allow-other-keys) diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm index bd411f59d0..9091010ed9 100644 --- a/gnu/packages/password-utils.scm +++ b/gnu/packages/password-utils.scm @@ -29,6 +29,7 @@ ;;; Copyright © 2020 Jean-Baptiste Note ;;; Copyright © 2020 Michael Rohleder ;;; Copyright © 2020 Vinicius Monego +;;; Copyright © 2020 Hartmut Goebel ;;; ;;; This file is part of GNU Guix. ;;; @@ -664,8 +665,9 @@ key URIs using the standard otpauth:// scheme.") (install-file "qtpass.1" man) #t))) (add-after 'install 'wrap-qt - (lambda* (#:key outputs #:allow-other-keys) - (wrap-qt-program (assoc-ref outputs "out") "qtpass") + (lambda* (#:key outputs inputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (wrap-qt-program "qtpass" #:output out #:inputs inputs)) #t)) (add-before 'check 'check-setup ;; Make Qt render "offscreen", required for tests. diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 1f68208021..98b2ceaa30 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -47,6 +47,7 @@ ;;; Copyright © 2020 Alexandru-Sergiu Marton ;;; Copyright © 2020 Ivan Kozlov ;;; Copyright © 2020 Antoine Côté +;;; Copyright © 2020 Hartmut Goebel ;;; ;;; This file is part of GNU Guix. ;;; @@ -4445,9 +4446,10 @@ API. It includes bindings for Python, Ruby, and other languages.") (setenv "HOME" "/tmp") #t)) (add-after 'install 'wrap-program - (lambda* (#:key outputs #:allow-other-keys) + (lambda* (#:key outputs inputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) - (wrap-qt-program out "openshot-qt")) + (wrap-qt-program "openshot-qt" + #:output out #:inputs inputs)) #t))))) (home-page "https://www.openshot.org/") (synopsis "Video editor") diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm index b134d29782..1040e79593 100644 --- a/gnu/packages/web-browsers.scm +++ b/gnu/packages/web-browsers.scm @@ -15,6 +15,7 @@ ;;; Copyright © 2020 Michael Rohleder ;;; Copyright © 2020 Nicolò Balzarotti ;;; Copyright © 2020 Alexandru-Sergiu Marton +;;; Copyright © 2020 Hartmut Goebel ;;; ;;; This file is part of GNU Guix. ;;; @@ -433,9 +434,9 @@ access.") "/share/fonts/truetype/NotoColorEmoji"))) #t)) (add-after 'install 'wrap-program - (lambda* (#:key outputs #:allow-other-keys) + (lambda* (#:key outputs inputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) - (wrap-qt-program out "kristall")) + (wrap-qt-program "kristall" #:output out #:inputs inputs)) #t))))) (native-inputs `(("breeze-stylesheet" diff --git a/guix/build-system/qt.scm b/guix/build-system/qt.scm index 118022ec45..1bd89bfa4d 100644 --- a/guix/build-system/qt.scm +++ b/guix/build-system/qt.scm @@ -53,6 +53,7 @@ (define %qt-build-system-modules ;; Build-side modules imported and used by default. `((guix build qt-build-system) + (guix build qt-utils) ,@%cmake-build-system-modules)) (define (default-cmake) diff --git a/guix/build/qt-build-system.scm b/guix/build/qt-build-system.scm index 005157b0a4..a6955ce4c2 100644 --- a/guix/build/qt-build-system.scm +++ b/guix/build/qt-build-system.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2014 Federico Beffa ;;; Copyright © 2014, 2015 Ludovic Courtès ;;; Copyright © 2018 Mark H Weaver -;;; Copyright © 2019, 2020 Hartmut Goebel +;;; Copyright © 2019, 2020, 2021 Hartmut Goebel ;;; ;;; This file is part of GNU Guix. ;;; @@ -22,6 +22,7 @@ (define-module (guix build qt-build-system) #:use-module ((guix build cmake-build-system) #:prefix cmake:) #:use-module (guix build utils) + #:use-module (guix build qt-utils) #:use-module (ice-9 match) #:use-module (ice-9 regex) #:use-module (ice-9 ftw) @@ -47,73 +48,10 @@ (setenv "CTEST_OUTPUT_ON_FAILURE" "1") #t) -(define (variables-for-wrapping base-directories) - - (define (collect-sub-dirs base-directories subdirectory) - (filter-map - (lambda (dir) - (let ((directory (string-append dir subdirectory))) - (if (directory-exists? directory) directory #f))) - base-directories)) - - (filter - (lambda (var-to-wrap) (not (null? (last var-to-wrap)))) - (map - (lambda (var-spec) - `(,(first var-spec) = ,(collect-sub-dirs base-directories (last var-spec)))) - (list - ;; these shall match the search-path-specification for Qt and KDE - ;; libraries - '("XDG_DATA_DIRS" "/share") - '("XDG_CONFIG_DIRS" "/etc/xdg") - '("QT_PLUGIN_PATH" "/lib/qt5/plugins") - '("QML2_IMPORT_PATH" "/lib/qt5/qml"))))) - -(define* (wrap-all-programs #:key inputs outputs - (qt-wrap-excluded-outputs '()) - #:allow-other-keys) - "Implement phase \"qt-wrap\": look for GSettings schemas and -gtk+-v.0 libraries and create wrappers with suitably set environment variables -if found. - -Wrapping is not applied to outputs whose name is listed in -QT-WRAP-EXCLUDED-OUTPUTS. This is useful when an output is known not -to contain any Qt binaries, and where wrapping would gratuitously -add a dependency of that output on Qt." - (define (find-files-to-wrap directory) - (append-map - (lambda (dir) - (if (directory-exists? dir) (find-files dir ".*") (list))) - (list (string-append directory "/bin") - (string-append directory "/sbin") - (string-append directory "/libexec") - (string-append directory "/lib/libexec")))) - - (define input-directories - ;; FIXME: Filter out unwanted inputs, e.g. cmake - (match inputs - (((_ . dir) ...) - dir))) - - (define handle-output - (match-lambda - ((output . directory) - (unless (member output qt-wrap-excluded-outputs) - (let ((bin-list (find-files-to-wrap directory)) - (vars-to-wrap (variables-for-wrapping - (append (list directory) - input-directories)))) - (when (not (null? vars-to-wrap)) - (for-each (cut apply wrap-program <> vars-to-wrap) - bin-list))))))) - - (for-each handle-output outputs) - #t) - (define %standard-phases (modify-phases cmake:%standard-phases (add-before 'check 'check-setup check-setup) - (add-after 'install 'qt-wrap wrap-all-programs))) + (add-after 'install 'qt-wrap wrap-all-qt-programs))) (define* (qt-build #:key inputs (phases %standard-phases) #:allow-other-keys #:rest args) diff --git a/guix/build/qt-utils.scm b/guix/build/qt-utils.scm index d2486ee86c..3fbdb6be61 100644 --- a/guix/build/qt-utils.scm +++ b/guix/build/qt-utils.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 David Craven +;;; Copyright © 2019, 2020, 2021 Hartmut Goebel ;;; ;;; This file is part of GNU Guix. ;;; @@ -18,23 +19,87 @@ (define-module (guix build qt-utils) #:use-module (guix build utils) - #:export (wrap-qt-program)) - -(define (wrap-qt-program out program) - (define (suffix env-var path) - (let ((env-val (getenv env-var))) - (if env-val (string-append env-val ":" path) path))) - - (let ((qml-path (suffix "QML2_IMPORT_PATH" - (string-append out "/lib/qt5/qml"))) - (plugin-path (suffix "QT_PLUGIN_PATH" - (string-append out "/lib/qt5/plugins"))) - (xdg-data-path (suffix "XDG_DATA_DIRS" - (string-append out "/share"))) - (xdg-config-path (suffix "XDG_CONFIG_DIRS" - (string-append out "/etc/xdg")))) - (wrap-program (string-append out "/bin/" program) - `("QML2_IMPORT_PATH" = (,qml-path)) - `("QT_PLUGIN_PATH" = (,plugin-path)) - `("XDG_DATA_DIRS" = (,xdg-data-path)) - `("XDG_CONFIG_DIRS" = (,xdg-config-path))))) + #:use-module (ice-9 match) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) + #:export (wrap-qt-program + wrap-all-qt-programs)) + + +(define (variables-for-wrapping base-directories) + + (define (collect-sub-dirs base-directories subdirectory) + (filter-map + (lambda (dir) + (let ((directory (string-append dir subdirectory))) + (if (directory-exists? directory) directory #f))) + base-directories)) + + (filter + (lambda (var-to-wrap) (not (null? (last var-to-wrap)))) + (map + (lambda (var-spec) + `(,(first var-spec) = ,(collect-sub-dirs base-directories (last var-spec)))) + (list + ;; these shall match the search-path-specification for Qt and KDE + ;; libraries + '("XDG_DATA_DIRS" "/share") + '("XDG_CONFIG_DIRS" "/etc/xdg") + '("QT_PLUGIN_PATH" "/lib/qt5/plugins") + '("QML2_IMPORT_PATH" "/lib/qt5/qml"))))) + + +(define* (wrap-qt-program* program #:key inputs output-dir) + + (define input-directories + ;; FIXME: Filter out unwanted inputs, e.g. cmake + (match inputs + (((_ . dir) ...) + dir))) + + (let ((vars-to-wrap (variables-for-wrapping + (cons output-dir input-directories)))) + (when (not (null? vars-to-wrap)) + (apply wrap-program program vars-to-wrap)))) + + +(define* (wrap-qt-program program-name #:key inputs output) + "Wrap the specified programm (which must reside in the OUTPUT's \"/bin\" +directory) with suitably set environment variables. + +This is like qt-build-systems's phase \"qt-wrap\", but only the named program +is wrapped." + (wrap-qt-program* (string-append output "/bin/" program-name) + #:output-dir output #:inputs inputs)) + + +(define* (wrap-all-qt-programs #:key inputs outputs + (qt-wrap-excluded-outputs '()) + #:allow-other-keys) + "Implement qt-build-systems's phase \"qt-wrap\": look for executables in +\"bin\", \"sbin\" and \"libexec\" of all outputs and create wrappers with +suitably set environment variables if found. + +Wrapping is not applied to outputs whose name is listed in +QT-WRAP-EXCLUDED-OUTPUTS. This is useful when an output is known not +to contain any Qt binaries, and where wrapping would gratuitously +add a dependency of that output on Qt." + (define (find-files-to-wrap output-dir) + (append-map + (lambda (dir) + (if (directory-exists? dir) (find-files dir ".*") (list))) + (list (string-append output-dir "/bin") + (string-append output-dir "/sbin") + (string-append output-dir "/libexec") + (string-append output-dir "/lib/libexec")))) + + (define handle-output + (match-lambda + ((output . output-dir) + (unless (member output qt-wrap-excluded-outputs) + (for-each (cut wrap-qt-program* <> + #:output-dir output-dir #:inputs inputs) + (find-files-to-wrap output-dir)))))) + + (for-each handle-output outputs) + #t) -- 2.21.3 From debbugs-submit-bounces@debbugs.gnu.org Mon Jan 11 09:42:10 2021 Received: (at 45193) by debbugs.gnu.org; 11 Jan 2021 14:42:10 +0000 Received: from localhost ([127.0.0.1]:56242 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kyyOX-0003gh-Px for submit@debbugs.gnu.org; Mon, 11 Jan 2021 09:42:10 -0500 Received: from mail-out.m-online.net ([212.18.0.10]:43287) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kyyON-0003fm-0k for 45193@debbugs.gnu.org; Mon, 11 Jan 2021 09:41:59 -0500 Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 4DDxHV3GTRz1s0fh; Mon, 11 Jan 2021 15:41:58 +0100 (CET) Received: from localhost (dynscan1.mnet-online.de [192.168.6.70]) by mail.m-online.net (Postfix) with ESMTP id 4DDxHV2zcpz1sWcT; Mon, 11 Jan 2021 15:41:58 +0100 (CET) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.70]) (amavisd-new, port 10024) with ESMTP id wYeLFDpbTZ93; Mon, 11 Jan 2021 15:41:57 +0100 (CET) Received: from hermia.goebel-consult.de (ppp-188-174-55-154.dynamic.mnet-online.de [188.174.55.154]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.mnet-online.de (Postfix) with ESMTPS; Mon, 11 Jan 2021 15:41:57 +0100 (CET) Received: from lenashee.fritz.box (lenashee.goebel-consult.de [192.168.110.2]) by hermia.goebel-consult.de (Postfix) with ESMTP id 940E660493; Mon, 11 Jan 2021 15:41:44 +0100 (CET) From: Hartmut Goebel To: 45193@debbugs.gnu.org, guix-patches@gnu.org Subject: [PATCH 3/4] build-system: qt: Exclude useless inputs from wrapped variables. Date: Mon, 11 Jan 2021 15:41:43 +0100 Message-Id: X-Mailer: git-send-email 2.21.3 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 45193 Cc: =?UTF-8?q?Jakub=20K=C4=85dzio=C5=82ka?= X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) From: Jakub Kądziołka * guix/build-system/qt.scm (qt-build)[qt-wrap-excluded-inputs]: New argument. * guix/build/qt-utils.scm (%qt-wrap-excluded-inputs): New variable. (wrap-qt-program*)[qt-wrap-excluded-inputs]: New argument. Filter excluded inputs. (wrap-qt-program)[qt-wrap-excluded-inputs]: New argument. (wrap-all-qt-programs)[qt-wrap-excluded-inputs]: New argument. Co-authored-by: Hartmut Goebel --- guix/build-system/qt.scm | 5 +++++ guix/build/qt-utils.scm | 29 ++++++++++++++++++++--------- 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/guix/build-system/qt.scm b/guix/build-system/qt.scm index 1bd89bfa4d..e1368db1d9 100644 --- a/guix/build-system/qt.scm +++ b/guix/build-system/qt.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2013 Cyril Roelandt ;;; Copyright © 2017 Ricardo Wurmus ;;; Copyright © 2019 Hartmut Goebel +;;; Copyright © 2020 Jakub Kądziołka ;;; ;;; This file is part of GNU Guix. ;;; @@ -22,6 +23,8 @@ (define-module (guix build-system qt) #:use-module (guix store) #:use-module (guix utils) + #:use-module ((guix build qt-utils) + #:select (%qt-wrap-excluded-inputs)) #:use-module (guix derivations) #:use-module (guix search-paths) #:use-module (guix build-system) @@ -125,6 +128,7 @@ (phases '(@ (guix build qt-build-system) %standard-phases)) (qt-wrap-excluded-outputs ''()) + (qt-wrap-excluded-inputs %qt-wrap-excluded-inputs) (system (%current-system)) (imported-modules %qt-build-system-modules) (modules '((guix build qt-build-system) @@ -148,6 +152,7 @@ provides a 'CMakeLists.txt' file as its build system." search-paths) #:phases ,phases #:qt-wrap-excluded-outputs ,qt-wrap-excluded-outputs + #:qt-wrap-excluded-inputs ,qt-wrap-excluded-inputs #:configure-flags ,configure-flags #:make-flags ,make-flags #:out-of-source? ,out-of-source? diff --git a/guix/build/qt-utils.scm b/guix/build/qt-utils.scm index 030059522d..a03b09f05e 100644 --- a/guix/build/qt-utils.scm +++ b/guix/build/qt-utils.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 David Craven ;;; Copyright © 2019, 2020, 2021 Hartmut Goebel +;;; Copyright © 2020 Jakub Kądziołka ;;; ;;; This file is part of GNU Guix. ;;; @@ -23,8 +24,11 @@ #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) #:export (wrap-qt-program - wrap-all-qt-programs)) + wrap-all-qt-programs + %qt-wrap-excluded-inputs)) +(define %qt-wrap-excluded-inputs + '(list "cmake" "extra-cmake-modules" "qttools")) (define (variables-for-wrapping base-directories) @@ -50,13 +54,16 @@ '("QML2_IMPORT_PATH" prefix "/lib/qt5/qml"))))) -(define* (wrap-qt-program* program #:key inputs output-dir) +(define* (wrap-qt-program* program #:key inputs output-dir + qt-wrap-excluded-inputs) (define input-directories - ;; FIXME: Filter out unwanted inputs, e.g. cmake - (match inputs - (((_ . dir) ...) - dir))) + (filter-map + (match-lambda + ((label . directory) + (and (not (member label qt-wrap-excluded-inputs)) + directory))) + inputs)) (let ((vars-to-wrap (variables-for-wrapping (cons output-dir input-directories)))) @@ -64,18 +71,21 @@ (apply wrap-program program vars-to-wrap)))) -(define* (wrap-qt-program program-name #:key inputs output) +(define* (wrap-qt-program program-name #:key inputs output + (qt-wrap-excluded-inputs %qt-wrap-excluded-inputs)) "Wrap the specified programm (which must reside in the OUTPUT's \"/bin\" directory) with suitably set environment variables. This is like qt-build-systems's phase \"qt-wrap\", but only the named program is wrapped." (wrap-qt-program* (string-append output "/bin/" program-name) - #:output-dir output #:inputs inputs)) + #:output-dir output #:inputs inputs + #:qt-wrap-excluded-inputs qt-wrap-excluded-inputs)) (define* (wrap-all-qt-programs #:key inputs outputs (qt-wrap-excluded-outputs '()) + (qt-wrap-excluded-inputs %qt-wrap-excluded-inputs) #:allow-other-keys) "Implement qt-build-systems's phase \"qt-wrap\": look for executables in \"bin\", \"sbin\" and \"libexec\" of all outputs and create wrappers with @@ -99,7 +109,8 @@ add a dependency of that output on Qt." ((output . output-dir) (unless (member output qt-wrap-excluded-outputs) (for-each (cut wrap-qt-program* <> - #:output-dir output-dir #:inputs inputs) + #:output-dir output-dir #:inputs inputs + #:qt-wrap-excluded-inputs qt-wrap-excluded-inputs) (find-files-to-wrap output-dir)))))) (for-each handle-output outputs) -- 2.21.3 From debbugs-submit-bounces@debbugs.gnu.org Mon Jan 11 09:42:10 2021 Received: (at 45193) by debbugs.gnu.org; 11 Jan 2021 14:42:10 +0000 Received: from localhost ([127.0.0.1]:56244 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kyyOY-0003gq-9E for submit@debbugs.gnu.org; Mon, 11 Jan 2021 09:42:10 -0500 Received: from mail-out.m-online.net ([212.18.0.9]:42999) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kyyOQ-0003g4-B0 for 45193@debbugs.gnu.org; Mon, 11 Jan 2021 09:42:02 -0500 Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 4DDxHY5k2Zz1qskh; Mon, 11 Jan 2021 15:42:01 +0100 (CET) Received: from localhost (dynscan1.mnet-online.de [192.168.6.70]) by mail.m-online.net (Postfix) with ESMTP id 4DDxHY5Rw4z1sWcT; Mon, 11 Jan 2021 15:42:01 +0100 (CET) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.70]) (amavisd-new, port 10024) with ESMTP id gOf2oiwBGdqu; Mon, 11 Jan 2021 15:42:00 +0100 (CET) Received: from hermia.goebel-consult.de (ppp-188-174-55-154.dynamic.mnet-online.de [188.174.55.154]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.mnet-online.de (Postfix) with ESMTPS; Mon, 11 Jan 2021 15:42:00 +0100 (CET) Received: from lenashee.fritz.box (lenashee.goebel-consult.de [192.168.110.2]) by hermia.goebel-consult.de (Postfix) with ESMTP id 9C67D604EB; Mon, 11 Jan 2021 15:41:44 +0100 (CET) From: Hartmut Goebel To: 45193@debbugs.gnu.org, guix-patches@gnu.org Subject: [PATCH 4/4] guix: qt-utils: Don't include useless inputs in wrapped variables. Date: Mon, 11 Jan 2021 15:41:44 +0100 Message-Id: X-Mailer: git-send-email 2.21.3 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 45193 Cc: =?UTF-8?q?Jakub=20K=C4=85dzio=C5=82ka?= X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) From: Jakub Kądziołka Include only those inputs into XDG_DATA_DIRS having some subdirectory of /share which is typically used by Qt. * guix/build/qt-utils.scm (variables-for-wrapping): Take the output directory as an argument for special handling. Check for subdirectories of /share used by Qt before including inputs in XDG_DATA_DIRS. (wrap-qt-program*): Pass the output directory to variables-for-wrapping. Co-authored-by: Hartmut Goebel --- guix/build/qt-utils.scm | 36 +++++++++++++++++++++++++++--------- 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/guix/build/qt-utils.scm b/guix/build/qt-utils.scm index a03b09f05e..8e6db10ca1 100644 --- a/guix/build/qt-utils.scm +++ b/guix/build/qt-utils.scm @@ -30,25 +30,42 @@ (define %qt-wrap-excluded-inputs '(list "cmake" "extra-cmake-modules" "qttools")) -(define (variables-for-wrapping base-directories) +;; NOTE: Apart from standard subdirectories of /share, Qt also provides +;; facilities for per-application data directories, such as +;; /share/quassel. Thus, we include the output directory even if it doesn't +;; contain any of the standard subdirectories. +(define (variables-for-wrapping base-directories output-directory) - (define (collect-sub-dirs base-directories subdirectory) + (define (collect-sub-dirs base-directories subdirectory-spec) (filter-map (lambda (dir) - (let ((directory (string-append dir subdirectory))) - (if (directory-exists? directory) directory #f))) + (match + subdirectory-spec + ((subdir) + (and (directory-exists? (string-append dir subdir)) + (string-append dir (car subdirectory-spec)))) + ((subdir children) + (and + (or + (and (string=? dir output-directory) + (directory-exists? (string-append dir subdir))) + (or-map + (lambda (kid) (directory-exists? (string-append dir subdir kid))) + children)) + (string-append dir subdir))))) base-directories)) (filter (lambda (var-to-wrap) (not (null? (last var-to-wrap)))) (map - (lambda (var-spec) - (list (first var-spec) (second var-spec) - (collect-sub-dirs base-directories (third var-spec)))) + (match-lambda + ((var kind . subdir-spec) + `(,var ,kind ,(collect-sub-dirs base-directories subdir-spec)))) (list ;; these shall match the search-path-specification for Qt and KDE ;; libraries - '("XDG_DATA_DIRS" suffix "/share") + '("XDG_DATA_DIRS" suffix "/share" ("/applications" "/fonts" + "/icons" "/mime")) '("XDG_CONFIG_DIRS" suffix "/etc/xdg") '("QT_PLUGIN_PATH" prefix "/lib/qt5/plugins") '("QML2_IMPORT_PATH" prefix "/lib/qt5/qml"))))) @@ -66,7 +83,8 @@ inputs)) (let ((vars-to-wrap (variables-for-wrapping - (cons output-dir input-directories)))) + (cons output-dir input-directories) + output-dir))) (when (not (null? vars-to-wrap)) (apply wrap-program program vars-to-wrap)))) -- 2.21.3 From debbugs-submit-bounces@debbugs.gnu.org Fri Jan 29 17:08:44 2021 Received: (at control) by debbugs.gnu.org; 29 Jan 2021 22:08:44 +0000 Received: from localhost ([127.0.0.1]:53122 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l5bwZ-0005Eb-Ni for submit@debbugs.gnu.org; Fri, 29 Jan 2021 17:08:43 -0500 Received: from mail-out.m-online.net ([212.18.0.9]:34321) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l5bwX-0005ER-7e for control@debbugs.gnu.org; Fri, 29 Jan 2021 17:08:41 -0500 Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 4DSBLc5gMHz1qs0Y for ; Fri, 29 Jan 2021 23:08:40 +0100 (CET) Received: from localhost (dynscan1.mnet-online.de [192.168.6.70]) by mail.m-online.net (Postfix) with ESMTP id 4DSBLc5Z1yz1qqkM for ; Fri, 29 Jan 2021 23:08:40 +0100 (CET) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.70]) (amavisd-new, port 10024) with ESMTP id 1uD68qB3nCdy for ; Fri, 29 Jan 2021 23:08:39 +0100 (CET) Received: from hermia.goebel-consult.de (ppp-188-174-61-127.dynamic.mnet-online.de [188.174.61.127]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.mnet-online.de (Postfix) with ESMTPS for ; Fri, 29 Jan 2021 23:08:39 +0100 (CET) Received: from thisbe.goebel-consult.de (hermia.goebel-consult.de [192.168.110.7]) by hermia.goebel-consult.de (Postfix) with ESMTP id 4E1F760299 for ; Fri, 29 Jan 2021 23:08:37 +0100 (CET) To: control From: Hartmut Goebel Organization: Goebel Consult Message-ID: Date: Fri, 29 Jan 2021 23:08:37 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.12.0 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------662E6DB4B6B89C948A2FC061" Content-Language: de-DE X-Spam-Score: 1.3 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: close 45193 close 42547 merge 45193 45785 45784 45786 45787 Content analysis details: (1.3 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [212.18.0.9 listed in list.dnswl.org] 0.0 SPF_NONE SPF: sender does not publish an SPF Record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) [212.18.0.9 listed in wl.mailspike.net] 1.8 MISSING_SUBJECT Missing Subject: header 0.2 NO_SUBJECT Extra score for no subject 0.0 RCVD_IN_MSPIKE_WL Mailspike good senders X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.3 (/) This is a multi-part message in MIME format. --------------662E6DB4B6B89C948A2FC061 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit close 45193 close 42547 merge 45193 45785 45784 45786 45787 quit Pushed to staging as 104151f4f45f4bc3a816e3ad42256452932e0d8d --------------662E6DB4B6B89C948A2FC061 Content-Type: application/pgp-keys; name="0x7B752811BF773B65.asc" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="0x7B752811BF773B65.asc" -----BEGIN PGP PUBLIC KEY BLOCK----- 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 eqF8FH7cQwCeJrEHw27ePvWnYGTZDbJEN4UMLUA= =5h2l -----END PGP PUBLIC KEY BLOCK----- --------------662E6DB4B6B89C948A2FC061-- From unknown Thu Jun 19 14:01:42 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sat, 27 Feb 2021 12:24:09 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator