Subject: [alpine-devel] abuild does not handle tags for makedepends

From: Ferris Ellis <[email-masked]>
Date: Sat, 10 Feb 2018 08:58:08 -0500

Hello,

This is my first post to this group! So I apologize in advance if there's a
format I should be following and am not.

I seem to have found a bug in abuild and went to file it but saw that
Github's clone of abuild currently has issues disabled. Thus I thought I'd
post it here. If there's somewhere else this should be filed please let me
know and I'm happy to do it :)

*Issue*

I am running Alpine 3.7 and working on packaging buildah (
https://github.com/projectatomic/buildah) for it. I added "go" to
makedepends with the line *makedepends="go@community=1.9.2-r1"* however
when I attempt to build the package I get the following error:

ERROR: unsatisfiable constraints:
  go-1.9.2-r1:
    masked in: @community

This seems to indicate that abuild isn't grabbing the tag. I thought maybe
I had formatted it wrong but when moving the tag to the end I get back the
following:

ERROR: 'go=1.9.2-r1@community' is not a valid dependency, format is
name(@tag)([<>~=]version)

Which clearly seems to imply that abuild supports tags.

Cheers,
Ferris

---

From: William Pitcock <[email-masked]>
Date: Sat, 10 Feb 2018 08:06:24 -0600

Hello,

On Sat, Feb 10, 2018 at 7:58 AM, Ferris Ellis <[email-masked]> wrote:
> Issue
> I am running Alpine 3.7 and working on packaging buildah
> (https://github.com/projectatomic/buildah) for it. I added "go" to
> makedepends with the line makedepends="go@community=1.9.2-r1" however when I
> attempt to build the package I get the following error:
>
> This seems to indicate that abuild isn't grabbing the tag. I thought maybe I
> had formatted it wrong but when moving the tag to the end I get back the
> following:
>

That message is actually from apk-tools, not abuild, and in this
particular case is misleading.  What abuild does is attach a
dependency set to a virtual package and then marks that virtual
package as a "world dependency".

Package dependencies themselves do not support tags, only "world
dependencies," but if you add just "go" to makedepends I believe it
will fall back to the @community repo.

In general though, community is not meant to be masked, the point of
using tags is to mask repos across versions, such as running a split
stable-edge setup, or ensuring that adding packages from the "testing"
repo requires explicit confirmation.  Either way, community should
normally be set up in the same way as main.

William

---
Unsubscribe:  [email-masked]
Help:         [email-masked]
---