From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id OAebKgyQk2IyGwAAbAwnHQ (envelope-from ) for ; Sun, 29 May 2022 17:23:56 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id 4K+kKgyQk2JVCAEA9RJhRA (envelope-from ) for ; Sun, 29 May 2022 17:23:56 +0200 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 E561C17637 for ; Sun, 29 May 2022 17:23:55 +0200 (CEST) Received: from localhost ([::1]:43816 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nvKln-0006qw-18 for larch@yhetil.org; Sun, 29 May 2022 11:23:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:57206) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nvKlH-0006ql-IY for help-guix@gnu.org; Sun, 29 May 2022 11:23:23 -0400 Received: from mx1.riseup.net ([198.252.153.129]:44388) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nvKlF-0008Up-4S for help-guix@gnu.org; Sun, 29 May 2022 11:23:22 -0400 Received: from fews1.riseup.net (fews1-pn.riseup.net [10.0.1.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "mail.riseup.net", Issuer "R3" (not verified)) by mx1.riseup.net (Postfix) with ESMTPS id 4LB2P315C7zDq78; Sun, 29 May 2022 08:23:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=riseup.net; s=squak; t=1653837799; bh=MI3EKxfukrh0kV8kjw8XtdKmjdYrPk2mfPKrjYtmUko=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=LBCg+VTbmF5vpPPiaVhlDu2y7FYleCQXrPbyhxJO17dApCt2Pyev14nexecSizBD1 OscQuFTADMVVCDYsKozLCLDXWQkN/cDF+KdkR0+G6PYEI8GwBESJQylpQGknvTcCwP avz/JKzUlVzqdD1UUHh+gdcixQtK/UB18FHIdMzI= X-Riseup-User-ID: CF131F5F6F74172A5FA7B57D18AB794AB9BAA3F2CD0B98503F96CDF42384E685 Received: from [127.0.0.1] (localhost [127.0.0.1]) by fews1.riseup.net (Postfix) with ESMTPSA id 4LB2P14J56z5vXX; Sun, 29 May 2022 08:23:17 -0700 (PDT) Date: Sun, 29 May 2022 17:23:14 +0200 From: raingloom To: Zelphir Kaltstahl Cc: Arun Isaac , help-guix Subject: Re: non-input dependencies Was: guile-dbi from guix not working Message-ID: <20220529172314.5fabbe36@riseup.net> In-Reply-To: <47d4043c-bc48-cc10-31af-2d4a212e45b1@posteo.de> References: <87k0a9o1yf.fsf@systemreboot.net> <3d8782db-68e8-eab7-03d4-852759e96d2f@posteo.de> <875yloepp8.fsf@systemreboot.net> <20220529105854.22b1566e@riseup.net> <47d4043c-bc48-cc10-31af-2d4a212e45b1@posteo.de> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Received-SPF: pass client-ip=198.252.153.129; envelope-from=raingloom@riseup.net; helo=mx1.riseup.net X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: help-guix@gnu.org X-Mailman-Version: 2.1.29 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-Migadu-Flow: FLOW_IN X-Migadu-To: larch@yhetil.org X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1653837836; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=XagQGMFhzJ7wrC5lkNx2tqQYmTeoXAF9bH0pLIt9qTc=; b=Jx9j5cb2+zbOEQXRjJQiFmLzqwy0zgSUmu2ZsNCavIokK5sNR94WbTvR2JfUOuU2vCFqpf djmNe1i8NF9Kagc2hWghKOYfOmmlNOLG2OhgavWyB3pyw2RDAa5GHP2FKLxHO3c+RuBbFp 3aHk/vlMQH6lTGBZqkLjJvEsvoI8OIjMyUkt4getqBjlUz0X3TqmoC2OpCOPkJBphuK5eB f8X7S3f5hHynM8Ir5spnjqibgKmGmt0N3JYISlVtXOEb7u6sWRoUt75ZM6Q6f5u+3zsdlh Fww/aqQZXOoJPIaD/CKx6ys6K5H71Qy2NV9l3xniraSFINkM8bVhuhfD9SC+fA== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1653837836; a=rsa-sha256; cv=none; b=Nrs69WQ9h2azAIPZfbn0i0hnQkQLyQxF+FypoQC7qVntD06nfz8Ni1UEMTwR56/YXMcXFl g2rdWhizAxQWNXfnCS1iRR+YQWOmeMr8jaYJxXl9kz3ZbW+UZBz79E4Jw5ksRCEic88dRF utNjX1fFajeBd3jfkJ1LWEIhxoDdOe4SMdIAmPdLaX0MuYwOonFWZSIcZ/lh1ZAyc52vQv ykB1gzSjSrXf7n5xfBXRpPpdTWIh7dgXcjKXLINHP2RatADl1JnacnwDOTXCsgnj9bsbht 7t1OmmfrPjg95c8YtxeNS9fC53dF2k0Zt3bgENm4r+JGTofjThoaj/qkCwGR5w== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=riseup.net header.s=squak header.b=LBCg+VTb; dmarc=pass (policy=none) header.from=riseup.net; spf=pass (aspmx1.migadu.com: domain of "help-guix-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="help-guix-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: -7.44 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=riseup.net header.s=squak header.b=LBCg+VTb; dmarc=pass (policy=none) header.from=riseup.net; spf=pass (aspmx1.migadu.com: domain of "help-guix-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="help-guix-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: E561C17637 X-Spam-Score: -7.44 X-Migadu-Scanner: scn0.migadu.com X-TUID: rilhIu7Z7HC1 On Sun, 29 May 2022 14:42:32 +0000 Zelphir Kaltstahl wrote: > Hi! > > On 5/29/22 10:58, raingloom wrote: > > On Sun, 29 May 2022 13:27:23 +0530 > > Arun Isaac wrote: > > > >> Hi Zelphir, > >> > >>> Should guile-dbd-sqlite3 not be a dependency of guile-dbi then? > >>> But on the other hand, what if one only wanted to interact with > >>> one database type and not the other? So maybe not a must have > >>> dependency then. Hm. What is the typical Guix solution for this > >>> kind of "specialization" of a library? I think in the Python > >>> world, in requirements files it would be something like > >>> `library[specialization] == version`, to install that variant. > >> You can think of guile-dbd-* as plugins for guile-dbi. So, you > >> install guile-dbi along with whatever plugins you want for > >> guile-dbi. It's no different from installing emacs and installing > >> emacs packages of interest. I don't think we need a special Guix > >> feature for this. > >> > >> But, guile-dbi should be fixed to produce a proper error message > >> that a required plugin is missing. It should not produce > >> misleading error messages like "file not found". If you're up for > >> it, you can try reporting this to guile-dbi upstream. > >> > >> Cheers! > >> Arun > >> > > I disagree, Guix packages should make it clear when they have > > non-input dependencies. Users should not be forced to play > > dependency-whack-a-mole. > > Run-time dependencies should either be listed in the package > > description or in some extra field. > > I absolutely hate it that I have to go look at bug trackers and > > external docs to find out why a package I installed isn't working > > correctly, especially when other package managers have already > > solved this issue. > > We don't have to do the exact same thing as them, but there has to > > be some way for a user to know if, for example, they need ffmpeg in > > their manifest if they want to use yt-dlp. > > I think I get both of your viewpoints. I did not think of the > database specific packages as plugins, but it makes sense. However, > it also makes sense, that you need at least one of them, to actually > do anything with guile-dbi (as far as I know), so it is also not the > case, that you could make much use of guile-dbi without any of those > packages. > > Maybe one solution could be having 1 general package acting like > guile-dbi package is acting now, in terms of dependencies, and also > having N packages, one for each guile-dbi + database specific > combination, so that you can install a package that does take care of > installing all things required for working with that specific > database. > > But maybe that would become too many packages in the future to keep > track of and update accordingly. And also now I know what mistake I > made and things work. But what about the next person? Is there some > way, that there could be a hint, when installing guile-dbi, that you > might need another package as well? And how often is there such a > situation? Maybe creating a general solution is not worth it, or > maybe it is. > > Of course, the error message could be better, as it also directed me > to tripple and quadruppel checking, that I am specifying the correct > filename and that I am not insane. > > Anyway, thanks for the help and the explanations all : ) > > Best regards, > Zelphir > IMHO as a first step we should just add this information to the package descriptions. Simple, backwards compatible, doesn't restrict us, etc. Eg.: for emacs-geiser, just add a line that says: "To use it with a given Scheme dialect, install emacs-geiser- in the same environment." Bam, no more confusion over why a package isn't doing anything.