From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mark H Weaver Subject: bug#36544: 'set-paths' should exclude 'source' from consideration Date: Sun, 07 Jul 2019 19:26:12 -0400 Message-ID: <871rz1a0kr.fsf@netris.org> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:470:142:3::10]:37891) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hkGYi-0006r6-4U for bug-guix@gnu.org; Sun, 07 Jul 2019 19:27:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hkGYh-0001u8-0r for bug-guix@gnu.org; Sun, 07 Jul 2019 19:27:04 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:48735) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hkGYg-0001tw-QH for bug-guix@gnu.org; Sun, 07 Jul 2019 19:27:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1hkGYg-0005A9-LF for bug-guix@gnu.org; Sun, 07 Jul 2019 19:27:02 -0400 Sender: "Debbugs-submit" Resent-Message-ID: Received: from eggs.gnu.org ([2001:470:142:3::10]:37834) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hkGYM-0006oO-Oa for bug-guix@gnu.org; Sun, 07 Jul 2019 19:26:43 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hkGYL-0001eb-L4 for bug-guix@gnu.org; Sun, 07 Jul 2019 19:26:42 -0400 Received: from world.peace.net ([64.112.178.59]:53214) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hkGYL-0001e6-Hm for bug-guix@gnu.org; Sun, 07 Jul 2019 19:26:41 -0400 List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org Sender: "bug-Guix" To: 36544@debbugs.gnu.org The 'set-paths' phase in (guix build gnu-build-system) currently includes 'source' in the set of candidates for inclusion in the search-path variables. First of all, I think it's undesirable to include subdirectories of the source directory in these search paths. However, if you think it's desirable, there's another problem: it's fragile. It depends on: (1) whether the source is a tarball or an unpacked checkout, and (2) whether the subdirectories specified in the search-paths (e.g. 'include') are within the top source directory. Currently, if you change the 'source' field of a package from a tarball to an (unpacked) VCS checkout, there *might* be additional components added to the environment variables, depending on the source tree layout. For example, this causes our 'linux-libre' package to fail to build if you substitute its 'source' field for a git checkout, as Chris Webber discovered here: https://lists.gnu.org/archive/html/help-guix/2019-07/msg00058.html https://lists.gnu.org/archive/html/help-guix/2019-07/msg00062.html Also, if any package depends on the current behavior, it will break if its 'source' is changed from a VCS checkout to a release tarball. To avoid this unexpected sensitivity on the source origin method, I suggest that we explicitly exclude 'source' from consideration within the 'set-paths' phase. What do you think? Also, does anyone know of other procedures that do something similiar? Thanks, Mark