From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp12.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id GO0VHH+Gk2LuegAAbAwnHQ (envelope-from ) for ; Sun, 29 May 2022 16:43:11 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp12.migadu.com with LMTPS id yK3/G3+Gk2K7rwAAauVa8A (envelope-from ) for ; Sun, 29 May 2022 16:43:11 +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 BDDDD2AE80 for ; Sun, 29 May 2022 16:43:10 +0200 (CEST) Received: from localhost ([::1]:33818 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nvK8K-000606-J2 for larch@yhetil.org; Sun, 29 May 2022 10:43:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52528) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nvK7y-0005zu-9n for help-guix@gnu.org; Sun, 29 May 2022 10:42:46 -0400 Received: from mout02.posteo.de ([185.67.36.66]:34335) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nvK7o-0003HI-Te for help-guix@gnu.org; Sun, 29 May 2022 10:42:46 -0400 Received: from submission (posteo.de [185.67.36.169]) by mout02.posteo.de (Postfix) with ESMTPS id AF1C1240107 for ; Sun, 29 May 2022 16:42:34 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.de; s=2017; t=1653835354; bh=TFLuUINeUS6JzPzoDfK1CG4lI7mLl7e3sfdDudomUoQ=; h=Date:Subject:To:Cc:From:From; b=pxZyaALzJVBApyBSgrilY7WekVQds2S37fE5ESl6LqZ5wJIA9LrPai8OycZZIJLgf A3Lr0AfPPELxMXfLyMj65gmUamyVg5JhDSL8r9N+tYS+PXXtipaVSlNdlpKjZx/ZOU Ji7zD0LEFlfZNabjMD5xkIjXInyMYNqqP/5qWE77fWla2GZBRwfPHPoOs0KCP4XSMZ uj6zYdJvl++oYpC00HoZOXid/m1qSw9wJNJptEiF9hKfCQeC/BD6MzAC7kBbyRLx1M 98CGydLck1vKPduI8QDDrycjIdjRPZhhE5lWx65IHH7spLXyW0oaXOVnEUGOPtPkN+ F4YTmTqdlikuw== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4LB1V123GVz6tlh; Sun, 29 May 2022 16:42:33 +0200 (CEST) Message-ID: <47d4043c-bc48-cc10-31af-2d4a212e45b1@posteo.de> Date: Sun, 29 May 2022 14:42:32 +0000 MIME-Version: 1.0 Subject: Re: non-input dependencies Was: guile-dbi from guix not working Content-Language: en-US To: raingloom , Arun Isaac Cc: help-guix References: <87k0a9o1yf.fsf@systemreboot.net> <3d8782db-68e8-eab7-03d4-852759e96d2f@posteo.de> <875yloepp8.fsf@systemreboot.net> <20220529105854.22b1566e@riseup.net> From: Zelphir Kaltstahl In-Reply-To: <20220529105854.22b1566e@riseup.net> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Received-SPF: pass client-ip=185.67.36.66; envelope-from=zelphirkaltstahl@posteo.de; helo=mout02.posteo.de 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_NONE=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=1653835391; 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=uak4XplSvGcTN3IDxO9gOxT0M1ACnJEP0bSs55HfdlY=; b=tmPPHExQce85Z0ySb9+FLZK/pqYKsqWFcp1BORwxqam883lECeantd7KqydfkF8ZsGpthy tgZi4WccysQDEzKUlNiYuB4tTKN7IbUR/HTD2Z8+Wt4P4HGiw1ybTea8G0YRW2UJgjat8j OlnpwGa/kVR7JkzT8PVP9KBM1hnnvZjFmxhsAsxhba4R2tfe7uBvlx2btCGZLmk432aape hWGVkAnbM5GjFBrg+/dQK1zDRNuX357JCUsxenCdM7bRnCRoy+hq1t6XAbzZtl3zqgabPx ANJsdsjphAytEDsvJ/0/RyZMdwkKO+ft1CDUUs2td+tw6+JvNkEkStu4r4LOtg== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1653835391; a=rsa-sha256; cv=none; b=NBTUot93DvEDO86+sOo0Myni57wVhsNjkrOjGCSQ9FxzEwXFc7gSUJFJemNzuk3/leAiZE dJ6qkT6+wv+ZxZnnFSvbnZr3nEaxaojYTLeAmwJYZLuMHJ1jpqRK0rcTrsJX4uEuB1Z4Oo AvkfzSu1kMlzGrEeLAvMITPehK0TpxiqEjIC8b0xc/UQq1V9OJAnlLWP3RMEfybIKLyu8h MWtxTeRoztHKYPO9T+oEfa6EDJEGZg4zwcIv+8flHiBMJHG/SIxhvOOnfPXiRRbnfTmLrj OLE2w+nqXEGG50x6gGCQ+NCh0Y3zdGS9AEcKA8Jpe4zu+0QLlK6i5LcR3w4R2Q== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=posteo.de header.s=2017 header.b=pxZyaALz; dmarc=pass (policy=none) header.from=posteo.de; 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: -9.34 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=posteo.de header.s=2017 header.b=pxZyaALz; dmarc=pass (policy=none) header.from=posteo.de; 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: BDDDD2AE80 X-Spam-Score: -9.34 X-Migadu-Scanner: scn0.migadu.com X-TUID: BBuQBsPDeHjl 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 -- repositories: https://notabug.org/ZelphirKaltstahl