From mboxrd@z Thu Jan 1 00:00:00 1970 From: Pierre Neidhardt Subject: Re: ASDF Builder (Common Lisp) & "package-inferred-system" Packages Date: Sat, 03 Aug 2019 10:04:59 +0200 Message-ID: <87sgqiu11w.fsf@ambrevar.xyz> References: <8736q082h8.fsf@gmail.com> <87fttzd0uo.fsf@ambrevar.xyz> <87wonb6wdn.fsf@gmail.com> <87lg3p7hfd.fsf@gmail.com> <20190113141426.00360523@mailservices.uwaterloo.ca> <87h8ec6qek.fsf@gmail.com> <874l2zv8el.fsf@ambrevar.xyz> <87ef238g8t.fsf@gmail.com> Mime-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" Return-path: Received: from eggs.gnu.org ([2001:470:142:3::10]:37953) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1htp2I-0004Ee-13 for guix-devel@gnu.org; Sat, 03 Aug 2019 04:05:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1htp2G-0004vC-Re for guix-devel@gnu.org; Sat, 03 Aug 2019 04:05:05 -0400 Received: from relay10.mail.gandi.net ([217.70.178.230]:49887) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1htp2G-0004sN-HV for guix-devel@gnu.org; Sat, 03 Aug 2019 04:05:04 -0400 In-Reply-To: <87ef238g8t.fsf@gmail.com> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Katherine Cox-Buday Cc: guix-devel@gnu.org --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Hi Katherine! One of the issue that we have with the current build system is that it does not find the dependencies properly for the inferred packages. Robert from the ASDF team suggested a solution: https://gitlab.common-lisp.net/asdf/asdf/issues/10 I think if we use his more general function, we can properly populate the *source-registry*. So that would be a solution to the first of our problems, that of the missing inputs. The main other issue is the one you mention: we need to compile the .fasl files right. > - Stop rolling all code into system-fasls > - Output each file's equivalent fasl to a common directory for the > system > - Set a search path in the profile to recursively search the SBCL fasl > output tree for systems. This sounds reasonable. Also you mentioned above that concatenating the generated fasl files into a single one manually worked for you. If it works, then why not! > In the interim, an idea I had was to borrow the "base package" concept I > came across when packaging other, non package-inferred, systems. I > haven't tried it yet, but I think it should work, even if it sounds > tedious to me. > > Sticking with the dbus example, it looks like we have the following > situation: > > - dbus > - dbus/all > - dbus/utils > - dbus/protocols > - ... > > I think what we could do is define a `dbus-base` package which is > hidden, and then start defining "sub-packages" which simply inherit from > the base package, i.e.: > > - dbus-base > - dbus-utils (inherit from dbus-base) > - dbus-protocols (inherit from dbus-base) > - ... > - dbus-all (inherit from dbus-base; require dbus-utils, > dbus-protocols, etc.) > > In essence we would be manually defining the dependency tree that ASDF > is inferring. We could probably lean on Common Lisp and ASDF itself to > generate these packages within a hypothetical importer. I don't think that would work, because the inferred packages can have circular dependencies, e.g. dbus-utils depends on dbus-protocols which depends on dbus-utils (correct me if I'm wrong). But this is not allowed in Guix (the dependency graph is acyclic). > But as I said, this seems quite tedious. We really should make our > Common Lisp packaging smarter. I believe your above solution could work. Wanna give it a shot? Andy, what do you think? =2D-=20 Pierre Neidhardt https://ambrevar.xyz/ --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQEzBAEBCAAdFiEEUPM+LlsMPZAEJKvom9z0l6S7zH8FAl1FQCsACgkQm9z0l6S7 zH/wmwf+JHhDNTG30GcZQyWN898UQgZSxuNoYDYyD9ZJUs/QbiuV1HstVt+IEMnX XSURkY/gEBoEPoAvxbct1k7/pDqO9UffJlb8La0alARXyUDs4nM2e3XJ7EZkHR/g bwWm9EFNkcofTZfL5HEkKz8u4jgBSjYIwPYiH/fvXv+6vmK7RkEBdP54SbLJ8zX0 tO3h+cLH5tt5GHnWZezeY6NzxGq5vlcIq0VZuK3K9nTGjPYxMrMNsX2DP491updU qysY6bdIBjVqT2frc97uFBsavL7O4zLpr5Ufa41iDL5G5eNh2cNk4/S33Ntf/5IJ 8r9a9HEzL4F5Yqy4axK9Zhvz/u81lQ== =34h8 -----END PGP SIGNATURE----- --=-=-=--