X-Original-To: alpine-devel@lists.alpinelinux.org Received: from mail.bitmessage.ch (mail.bitmessage.ch [146.228.112.252]) by lists.alpinelinux.org (Postfix) with ESMTP id 8B3A25C4FC8 for ; Wed, 16 May 2018 20:55:59 +0000 (GMT) dkim-signature: v=1; a=rsa-sha256; d=bitmessage.ch; s=mail; c=relaxed/relaxed; q=dns/txt; h=From:Subject:Date:Message-ID:To:CC:MIME-Version:Content-Type:Content-Transfer-Encoding:In-Reply-To:References; bh=Z4m/p02bQ53FV6BCp8cmQJKfNOt42CZxH7pYKTszLCc=; b=Zp490fypUyKA6/yYFxLO97Pl9vAa7+5TCogJ0QVlGId8STehoNHq+uB6lJni/pCxCvf9XbN0uUGNIuHxJEteWc0sYr7Chzr32/VL0FvJvOh7r800Qc7xx7KAO/6fN8auQyvCW1/+QnVojScJDu8+UWlR+o/1hK7GbnyisZvpOpA= Received: from [127.0.0.1] (BITMESSAGE [127.0.0.1]) by mail.bitmessage.ch with ESMTPA ; Wed, 16 May 2018 22:54:42 +0200 Subject: Re: [alpine-devel] apk and libraries that optionally replace others To: alpine-devel@lists.alpinelinux.org References: <5ad90a46-8c78-ebdd-e022-a94fe7937805@bitmessage.ch> Cc: William Pitcock From: Oliver Smith Openpgp: preference=signencrypt Autocrypt: addr=ollieparanoid@bitmessage.ch; prefer-encrypt=mutual; keydata= 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 Message-ID: <171bdb07-0c96-7184-e412-99e322c60385@bitmessage.ch> Date: Wed, 16 May 2018 20:55:00 +0000 X-Mailinglist: alpine-devel Precedence: list List-Id: Alpine Development List-Unsubscribe: List-Post: List-Help: List-Subscribe: MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Thanks for the quick and detailed reply! With the solution you have described, one can reliably make one package always get installed instead of the other one. I have tried it and it works. But our use case is slightly different: not all devices need libdrm-tegra, so we would like all non-tegra devices to depend on the regular libdrm package. (If we add a higher provider_priority to libdrm-tegra, then *all* devices will use libdrm-tegra.) Can this be done with apk as well? Thanks, Oliver William Pitcock: > Hello, > > On Tue, May 15, 2018 at 11:08 PM, William Pitcock > wrote: >> Hello, >> >> On Tue, May 15, 2018 at 3:57 PM, Oliver Smith >> wrote: >>> Hey folks, >>> >>> in Alpine based postmarketOS we have hit the following use case quite a >>> few times by now, and we're wondering how to solve it properly: >>> Packaging "testlib-b" as a _optional_ replacement for "testlib-a". >>> >>> Both "testlib-a" and "testlib-b" provide the same soname, which means >>> abuild will automatically make both binary packages provide >>> "so:libtestlib.so.1". >> >> By default this means that both packages will provide >> so:libtestlib.so.1 with provider_priority 0. When provider_priority >> is 0, it means to skip automatically resolving the provider. Provider >> selection is based on a combination of priority and overall "cost" of >> choosing that provider. apk will prefer the highest priority provider >> with the lowest cost (dependency chain length) that can yield a >> satiable solution. >> >>> Now there is a "testapp" package, which has "testlib-a" in makedepends >>> and links against "libtestlib.so.1". Therefore abuild puts >>> "so:libtestlib.so.1" in the depends of "testapp". What we would like to >>> achieve is, that whenever installing "testapp", it pulls in "testlib-a". >>> But when "testlib-b" is already installed, it uses "testlib-b" instead >>> of "testlib-a". >> >> testlib-b (libdrm) should have provider_priority 1, testlib-a >> (libdrm-grate) should have provider_priority greater than 1. The >> provides field itself should be left alone. The key is to set a >> priority on both providers, otherwise APK will treat it as a collision >> and behave as you describe. > > For what it's worth, I am open to adding provider_priority=1 to > libdrm. But it's not my package, so I prefer to hear from ncopa who > maintains it first. Otherwise, you will need to rebuild the package. > > William --- Unsubscribe: alpine-devel+unsubscribe@lists.alpinelinux.org Help: alpine-devel+help@lists.alpinelinux.org ---