From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id QK9dK8ySh1/6fAAA0tVLHw (envelope-from ) for ; Thu, 15 Oct 2020 00:07:40 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id 4J4nJ8ySh1+HLgAAbx9fmQ (envelope-from ) for ; Thu, 15 Oct 2020 00:07:40 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 4C654940223 for ; Thu, 15 Oct 2020 00:07:39 +0000 (UTC) Received: from localhost ([::1]:56614 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kSqnw-00060T-Rm for larch@yhetil.org; Wed, 14 Oct 2020 20:07:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:48278) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kSqnn-00060G-Po for help-guix@gnu.org; Wed, 14 Oct 2020 20:07:27 -0400 Received: from lepiller.eu ([89.234.186.109]:37170) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kSqnj-0005Re-TD for help-guix@gnu.org; Wed, 14 Oct 2020 20:07:26 -0400 Received: from lepiller.eu (localhost [127.0.0.1]) by lepiller.eu (OpenSMTPD) with ESMTP id 47be84ec; Thu, 15 Oct 2020 00:07:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=lepiller.eu; h=date :in-reply-to:references:mime-version:content-type :content-transfer-encoding:subject:to:from:message-id; s=dkim; bh=ufc50u+VhKqJkK+em+fJpfl0BkQl6JCZqGzxXJZt0gk=; b=OyLceM10s4Iy F0e27JwpwdMYEFWe1ToV0uD7PjZL1yIeLCPWAtSoObydvQJ+7HOCujFA5RVJkN1t uEp6TQUSPlodoVjs1poaXV+ptOMtpySfrN2fxPsQn6DmAnkeECjfB5PNTVMAj3iy NhiV5M9BkUAVGYTP1XZz8ffG4tRghjqr5cfBnU+t6QDJrucCiQKfeWZjTSfVNqj9 bDl34ZpiLbVsxWMKS0QH6X3ZshvpNRWIBW3hlowSU85i1j1tc/9Vlq72rJ6E/9ro Aqr7J63DfmnAyHIfd48NEMIAqPDmzrP1fL+kJWRGkNi4JxP8M7+NzX2bxwNm0gDO WY/vNXllhg== Received: by lepiller.eu (OpenSMTPD) with ESMTPSA id 8642da00 (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256:NO); Thu, 15 Oct 2020 00:07:11 +0000 (UTC) Date: Wed, 14 Oct 2020 20:07:06 -0400 User-Agent: K-9 Mail for Android In-Reply-To: <87eem0l9qc.fsf@simonsouth.net> References: <87eem0l9qc.fsf@simonsouth.net> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Subject: Re: Specifying dependencies among package outputs? To: help-guix@gnu.org,Simon South From: Julien Lepiller Message-ID: <4891EF4D-D931-4B0A-9553-8FE1BA8D588B@lepiller.eu> Received-SPF: pass client-ip=89.234.186.109; envelope-from=julien@lepiller.eu; helo=lepiller.eu X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/14 20:07:14 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] 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_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: help-guix@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-guix-bounces+larch=yhetil.org@gnu.org Sender: "Help-Guix" X-Scanner: scn0 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=lepiller.eu header.s=dkim header.b=OyLceM10; dmarc=pass (policy=none) header.from=lepiller.eu; spf=pass (aspmx1.migadu.com: domain of help-guix-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=help-guix-bounces@gnu.org X-Spam-Score: -0.71 X-TUID: w8u2erLYtnwT Le 14 octobre 2020 18:32:27 GMT-04:00, Simon South = a =C3=A9crit : >Am I right in thinking there is no way to specify dependencies among >the >outputs of a single package? To specify that a package's "out" output >depends on its "lib" output, for instance=2E The notion of dependencies do not make a lot of sense in guix=2E We talk a= bout inputs: things that are accessible during the build, but don't really = declare which are needed at runtime and which are needed at build-time (gra= nted usually the distinction between native and non native does that job)= =2E For tracking runtime dependencies, guix uses another mechanism: when a pac= kage holds a reference to another package (by embedding the store path of t= hat other package), it depends on it, anl guix will pull them both=2E > >I ask because the Knot package (in gnu/package/dns=2Escm) builds a number >of logically distinct targets---daemon, libraries, administrative >utilities, general-purpose utilities, and documentation---and it would >be nice to separate at least some of these into individual outputs, in >part because we could then specify only the libraries as a dependency >of >Knot Resolver=2E > >However, Knot's daemon and utilities have the same dependency on its >own >libraries, so pulling those into a separate "lib" output would be >liable >to break everything else=2E > >I've searched and can't find an example of this being done, nor can I >find any mention of it in the documentation=2E So I assume it's simply >not >possible, and you would need to define an entirely separate package >that >builds from the same source code---right? We actually do that for a few programs=2E Look at mariadb for an example o= f splitting lependencies to different outputs=2E Mariadb has binaries that = require the libraries=2E During the build, the library path is recorded in = the binaries (using the rpath mechanism)=2E Since the path to the lib outpu= t is present in the binary, it dependg on it and that output is pulled by g= uix=2E Knot could work the same=2E Specify the libdir and make sure the libdir pa= th is embedded in the binaries=2E Then, guix will know that a lependency ex= ists and will pull the libraries=2E Any package that depends on the library rather than the binary will need t= o be adjusted to use knot:lib as an input=2E Other than that, no breakage= =2E