Received: from mail.wilcox-tech.com (mail.wilcox-tech.com [45.32.83.9]) by nld3-dev1.alpinelinux.org (Postfix) with ESMTPS id 119CB7819EA for <~alpine/apk-tools@lists.alpinelinux.org>; Tue, 4 Feb 2020 20:59:51 +0000 (UTC) Received: (qmail 25506 invoked from network); 4 Feb 2020 20:59:47 -0000 Received: from localhost (HELO ?IPv6:2600:1702:2a80:1b9f:5bbc:af4c:5dd1:a183?) (awilcox@wilcox-tech.com@127.0.0.1) by localhost with ESMTPA; 4 Feb 2020 20:59:47 -0000 Subject: Re: supporting multiple versions of same package in single repo To: ~alpine/apk-tools@lists.alpinelinux.org References: <20200203222821.wty53efr5u2sx3gk@computer.craftyguy.net> <20200204110646.2d9f80b4@vostro> From: "A. Wilcox" Autocrypt: addr=awilfox@adelielinux.org; prefer-encrypt=mutual; keydata= mQINBE+DjPIBEADTQ1H/e/avDUhgt8+T3TJpjGYoY9Y47EMfHqWMm9LjR9aiZSG6GWRbpjWS 4V0DqzIhNQw7HLkPws9CVqQkmpIeltQyGDV2qcR5AXxJ4lCRWHxwRzWE0cCzhLUR9BBWOO0U NINQY+2IqmzRAqXZ9zL+mGTles/qeheXmaWLKf/T0kqJFihoM+ItQvUWOkWUdVv0prhzXr9Q QUdt0NTIW8n4sPwtuSvQgqwSzCJQArh1myugVSGiIIN38pCU8g41Vh35mHHhbHjbn0o1mhrX B/gbsndGo7QQBKz4CPaSel+Fl92dCvVWTp1XYyjqeZx2xlx1zfDrXOTuzY1WmNHi7BgHYuem tG7Zyp7u9MR6FvLKgQhmvCQZXaa+9oNtwKckxoP/I5R8ede9YRb6pLyG5JC0pTTk7kpUZCX2 tm8pLKy899zomm8BBm71aEJHE44ABEl/PbM7tA7XhSPiWsdBmVCxH4bqpUgGMx0ztqhNsUul SDDhiAWgtYFHATynhmeKBDKthkO7lj4CzwI54dn1uiwDtvUFVyVsPMjJcCxFnONbOPcvm1R9 sDg5sn57dv0f+EtaU3ppZdotutjM9X7OEC93d1flO3k1LO20qn2ZcI24f3tEOLAjn5xZ1GdV 3BYBwrtuaaiO8tMdp0uAtILzkkrcr0vOi2/SngxtXFw+44X+WQARAQABtDNBLiBXaWxjb3gg KEFkw6lsaWUgTGludXgpIDxhd2lsZm94QGFkZWxpZWxpbnV4Lm9yZz6JAjoEEwEIACQCGwMF CwkIBwIGFQgJCgsCBBYCAwECHgECF4AFAlhEpGYCGQEACgkQyynLUZIrnRQu5RAAqxHJdNIQ ucYYUaYX4EHJte4OAZbxXeGgMi4fe4m2qkMrd8U6VDfRbjsqETK7fOJdrIjvp+xrMTMvj36C LZ5YuBVmvTd4+Qn54y+8doMUtZppjW9Njwols3zCeaZR/4Iid2GjS7+avgVEhMuxlo5apygb n84VhdLRPAs2BtyqUWUhlLs2nXg6kzI/yT8frGGCN36Xewe35jrhl7h4d54t7h+wYcYw52Yt GHs/R+yPlCGPrlzh8IGwjDWDaUrQAqWdU3B2UG4g/yn/JYZrkvfbm7AhpBP5trY2jbm7sfTM NoClDDwgf0K8Kfj0LeBUzOLqGgQNBdaJ2x7f1xq5tJjAPmVL6oMElqyDz9ycUXvelLMnxgXI sjndF+K1aKjg6Ok68BfTo+tnUqmEjqAhjLBCSphQJavww8pU9KSPmxOr0GfjoiYELeoCdTe2 U44bhFwCcf5tG1qdu8l4pes1YPRVAVyr4J/BlS2e3FyU3MsYlma9toYghJZ0k9dVOqx5YXj9 B2keDpX1D7uEJUHpoRSPylLYKJCcNuzrsaK0gvczkgUvhaiij8qnlLEmDsv7KMdsv+qxknNC vdCBgoiYn01ZJZJrlllOEXpVAXfQDKcqGnIJ4GX87TIu3hR94tw4LOCayfRpN2Y4zlACPLaZ KiSon4ySDo+ooYQ8WgwH1y1ESsa5Ag0ET4OM8gEQAOI/n9h9v2TBOiLUt/nL+HOdxqvkfrKp mDHXx6ctJSm0VBHhHCxKN6Tk2B0BsUXcgR+BD76Tw4kTQvuj3E87m13xHRtASdCmnkvGhU4c JJ9ZbJbJhPLNr9qPUxwCQxFyMrFri/9GnE0Kbv5FfxsLQy9Slubnyg3CfI/wIP5pOoVFA2qI UmsQS155DmhbV2m0FDf0san01ZRMFYVcUUktcmFo0Xmr6PAxZ0FTaxSF8+921lKrvShcsnMv Osrf5toJGEdQw/IMO5rKH1m+q3qWQAOw4uF4WQJrGvhEsVK8G4mC6EBDTbxFVDtyBTMAGUVS t+Yb5i0iIYiMAP2MEJ+twg58PV+5RglheTGP9iPW0xReI1sOD9jfIrQbwqWpOchDGBUpQx4q DFYzzcbjvAP1k2o0mwMby5DJlVwktUiXXtOWZXKZXfTnCA65x1bC6gbtMrXN1CWkyjKT9xj9 Z5WlpZaeqe2SZkLG3/N7r4bSbw/Z6NsYeJ8CpSe6SfoWSsjebD6kbXlF5dsQf8aMUjaZAHp0 UpinfgWNh+58128yddsRMsidjU/MmwhzcRFsvn3rkgtnK4IwpLEfssChNPa26qwfcsvQ+AQU CCRd/GIZ8AkOVySQ30J8Assa/T3nc6VNKRVgsAiSClkeqVevAZmUMUbvH8f3cTe1VFn6kR3q pvfTABEBAAGJAh8EGAECAAkFAk+DjPICGwwACgkQyynLUZIrnRQifQ//f++reIP4el9Un1w4 11boSy1iBALnv58YSQQHPIZ4dq5hr8P1Hp3GDz+o6JFKeIHq5RYw2ornumS9waDbz7dRD1nc N5sMoVfR2g2P7honq59r3velxX36PmifHMmxb8MTqbCSJJRisqjWTMg7CZxH0NQ28qMtpiAw kvoEb+l2Uc/gKnvcpPfVJ/X0b3go0xAe9GA7Os9thjtl1v+I7c2+xjPUtvv+pDGRb9To2+Sw zOGwogbTrVw7KgAFhktx6i8tenXZRf36O0GTACRY//qHNoNNy5H4LYmfyHj6VU2ehwNJTlkK H/8oYV7fkOdcs6DZAnxeiOXUKpHC6ck0D0sWQ42GTeEraospQevGTrp1FZdYnfXznUFXuC6W jHR9piQehutMJ1vCP+DIRLGOMzV1TFWflpo71lb4AFLU3UOS/N7Cd8F+w1nG3WPn7UjFCMrc Xf268AEe0xwakXgNtwo2MTbtQSAO5AKYyGm/hnoLZg4YQ2eBPU95jUV+GMoEM/8Q0BJgsyF0 66NfhBXtuo50AipcARmnoqi6NDOKpC6mqiEYGsVuyQ9cRtkk9Jl98tXmnjxQlSL2nb4ErwJJ SyJq3hwiKMUJcw88IRNtYBe+dXaW4kDBTRha1k+brWZbu4tUlRWLVcSGjtP1pVukXA/SQ6a1 N7qhRF0UHQZkMW1rGbU= Organization: =?UTF-8?Q?Ad=c3=a9lie_Linux?= Message-ID: <0775a15b-28d3-9bf9-1796-e119b72ca31e@adelielinux.org> Date: Tue, 4 Feb 2020 14:59:43 -0600 User-Agent: Mozilla/5.0 (X11; Linux ppc64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1 MIME-Version: 1.0 In-Reply-To: <20200204110646.2d9f80b4@vostro> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="5wo8m6yPdqkPrE79gVkJ83LMaMIAvpqr4" This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --5wo8m6yPdqkPrE79gVkJ83LMaMIAvpqr4 Content-Type: multipart/mixed; boundary="vn2JQh4lM6Iu3gt7UhkeUs9ONqp0E6h9k" --vn2JQh4lM6Iu3gt7UhkeUs9ONqp0E6h9k Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable On 04/02/2020 03:06, Timo Teras wrote: > Hi >=20 > On Mon, 3 Feb 2020 14:28:21 -0800 > Clayton Craft wrote: >=20 >> In postmarketOS we are attempting to have 2 versions of mesa: 'mesa' >> (from upstream Alpine), and 'mesa-git' (tracks upstream mesa master >> branch). The goal is to have both packages + their respective >> subpackages provide system mesa for an install. Only one (mesa or >> mesa-git) is expected to be installed on a single system at one time. >> When a user installs 'mesa-git', and then (for example) installs a >> package which depends on 'mesa-dev', the idea is that 'mesa-git-dev' >> would be installed instead of 'mesa-dev'. We want 2 versions of mesa >> since some devices pmos supports require a newer mesa than what is >> currently in the latest mesa stable branch. >> >> We are having a very hard time coming up with a mesa-git APKBUILD >> that can do this. In IRC, it was mentioned that we could use a >> virtual package, and rename 'mesa' to something else, and handle >> installing either of the 2 packages in the virtual package. This >> would probably work (?) but is less than ideal since we'd have to >> keep the renamed mesa package in sync with upstream Alpine's mesa >> package. >> >> Arch Linux seems to be able to handle this scenario without issue, >> AUR has a mesa-git package which results in mesa-git-* subpackages >> being installed at the right time (when something depends on >> mesa-dev, etc). Is apk/APKBUILD capable of supporting this, or does >> anyone have any advice/suggestions on how this goal could be achieved?= >=20 > Interesting setup. I wonder if in Arch it is a feature where a global > substitution rule diverts mesa-dev to mesa-git-dev or similar. >=20 > Using purely apk dependencies, you could try the following: >=20 > 1. mesa-git-dev > provides=3D"mesa-dev" > provider_priority=3D1 >=20 > The provides tells it's good for 'mesa-dev'. Since there's no provide= d > version specified it's not good for automatic install; the > provider_priority=3D1 makes that happen. >=20 > One caveat is at least that if someone depends e.g "mesa-dev>19.0", i= t > would not get satisfied with the mesa-git-dev. >=20 > OR >=20 > provides=3D"mesa-dev=3D19.2" >=20 > To make the git act as if it was this version. You probably then want= > a smaller version than what the real mesa is so that the mesa-git-dev= > does not get preferred always. >=20 > 2. mesa-git > depends=3D"!mesa" >=20 > To make sure that depending on 'mesa-dev' does not prefer the real > package and try to pull in it's dependencies. >=20 > Interesting to hear if the above works. >=20 > Timo >=20 We use something like the first one for our kernel build. The package name is easy-kernel-5.4.5-mc0 (for instance), which provides=3D"easy-kernel=3D5.4.5-r0". https://code.foxkit.us/adelie/packages/blob/master/system/easy-kernel/APK= BUILD It works okay, and you could probably use depends=3D on the subpkgs to ensure that they're all consistent. We still sort of wish that it was possible to side-by-side install packages that provides=3D"$pkgname" with different versions, so people could have more than one kernel version installed if the installed files don't conflict (which wouldn't with kernels). But I suppose that is unrelated to this topic. Best, --arw --=20 A. Wilcox (awilfox) Project Lead, Ad=C3=A9lie Linux https://www.adelielinux.org --vn2JQh4lM6Iu3gt7UhkeUs9ONqp0E6h9k-- --5wo8m6yPdqkPrE79gVkJ83LMaMIAvpqr4 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEjNyWOYPU1SaTSMHHyynLUZIrnRQFAl452z8ACgkQyynLUZIr nRS2tA//fIr8PlE1r7OF7wcQl4sOFq0ckld4j/+p0w6j7nY2A/2PZ4GPUcYxWyw/ V0g3ZtbYNkwLWoMF5ruxYboiwLeJ591/zT3QrDocB0NemR0LOS+RHh029Uv34Vbk UsaAhEV5C1vJSQpOdKlwW3TwWZOfIiKG133dl5ULJC9r+qNEafFZ6lbi7pDGQdH5 nhoN48uFL7GkH8TTXAWpFlpZ1s4GqMzOINR57rOn1RAlXtenr2lTK3lDuM2cELdq XUCy7/idyzeatmVc+9QKBjEqFKz5FXlo6dVD1CdRW270DHpBfSm7K7NMLbPeG3VY iyjdBzp44WEV8i9AC1hiT0m2uMIvLK+zI5CRfD10sweGUhTPf3iJwQKd18T3nydE fHL1v24qp6NjaJTyRb6vEIh/q0ntiktY3lZhdoTBeSEU0UGOBuY4UVMnjcxtkvFI wXOepeiMb9U/zIJMfzwpCypyEbNbBAr5KyMCu3e70GrarhTycncAjssRhNuzCZEG 9wN+SlM0tcyC+LxEdsuVVh5UcTjDFb7ERbG8Des6kDJ1XA2mHKTxxD1foFzqXYGO ksuDoRHl7f6BvKbo6iAh1E3ZRL6R2yzb48tHsbc8frJRdzIHDFclxlFsu5BpS05l 233gyZEP2BXXGiKZVI30Pqdr1eWqMJxIyFAsN3Rb0En4DDQPJLw= =/Zl0 -----END PGP SIGNATURE----- --5wo8m6yPdqkPrE79gVkJ83LMaMIAvpqr4--