~alpine/devel

2 2

[alpine-devel] supporting multiple libc's

Natanael Copa <ncopa@alpinelinux.org>
Details
Message ID
<20130719143510.1a22ce06@ncopa-desktop.alpinelinux.org>
Sender timestamp
1374237310
DKIM signature
missing
Download raw message
Hi,

While working on musl/arm we have again bumped into the need for
specifying what libc we use and how to make conditionals in apkbuilds.

Currently we use ALPINE_LIBC in some apkbuilds. We also have some
packages that checks the CHOST. Then we have a libc package that works
as a 'virtual' package providing the correct libc. So on eglibc systems
libc-dev will pull in eglibc-dev as a dependency.

We will introduce a new variable: CLIBC, which should be then name of
the current libc. So if you have a hard dependency for uclibc-dev then
you can use $CLIBC-dev.

This means that ALPINE_LIBC will go away. We will need to fix the
affected apkbuilds. (should be easy enough).

Now, we will need some way to filter out packages based on CLIBC. You
might not want build some package on given libc. How should we specify
that?

Do we want a separate variable for it, like 'arch'?

If so, what should it be called? libcmask?

If not, can we use $options for it?

Some alternives/examples:
#1 whitelist what to build on (like arch)

  libcmask="uclibc eglibc musl"

or
  libcmask="all"


#2 blacklist, and use 'all' if unset

  libcmask="!musl !eglibc"

#3 blacklist via 'options'. assume 'all' if unset.

  options="!musl"


Other ideas?

-nc


---
Unsubscribe:  alpine-devel+unsubscribe@lists.alpinelinux.org
Help:         alpine-devel+help@lists.alpinelinux.org
---
Timo Teras <timo.teras@iki.fi>
Details
Message ID
<20130719154746.17b0a3cb@vostro>
In-Reply-To
<20130719143510.1a22ce06@ncopa-desktop.alpinelinux.org> (view parent)
Sender timestamp
1374238066
DKIM signature
missing
Download raw message
On Fri, 19 Jul 2013 14:35:10 +0200
Natanael Copa <ncopa@alpinelinux.org> wrote:

> Now, we will need some way to filter out packages based on CLIBC. You
> might not want build some package on given libc. How should we specify
> that?
> 
> Do we want a separate variable for it, like 'arch'?
> 
> If so, what should it be called? libcmask?
> 
> If not, can we use $options for it?
> 
> Some alternives/examples:
> #1 whitelist what to build on (like arch)
> 
>   libcmask="uclibc eglibc musl"
> 
> or
>   libcmask="all"
> 
> 
> #2 blacklist, and use 'all' if unset
> 
>   libcmask="!musl !eglibc"
> 
> #3 blacklist via 'options'. assume 'all' if unset.
> 
>   options="!musl"

If using options, I'd go with options="!libc_musl" or similar.

I think we should aim at trying to have everything regardless of libc.
So the default should be "all". And just blacklist things. Though, it
might that at this stage with musl, we might get quite a bit of those.

I'd perhaps go with #2.

- Timo


---
Unsubscribe:  alpine-devel+unsubscribe@lists.alpinelinux.org
Help:         alpine-devel+help@lists.alpinelinux.org
---
Natanael Copa <ncopa@alpinelinux.org>
Details
Message ID
<20130719160543.0d88c1c2@ncopa-desktop.alpinelinux.org>
In-Reply-To
<20130719154746.17b0a3cb@vostro> (view parent)
Sender timestamp
1374242743
DKIM signature
missing
Download raw message
On Fri, 19 Jul 2013 15:47:46 +0300
Timo Teras <timo.teras@iki.fi> wrote:

> > Some alternives/examples:
> > #1 whitelist what to build on (like arch)
> > 
> >   libcmask="uclibc eglibc musl"
> > 
> > or
> >   libcmask="all"
> > 
> > 
> > #2 blacklist, and use 'all' if unset
> > 
> >   libcmask="!musl !eglibc"
> > 
> > #3 blacklist via 'options'. assume 'all' if unset.
> > 
> >   options="!musl"
> 
> If using options, I'd go with options="!libc_musl" or similar.
> 
> I think we should aim at trying to have everything regardless of libc.
> So the default should be "all". And just blacklist things. Though, it
> might that at this stage with musl, we might get quite a bit of those.

Makes sense.

> I'd perhaps go with #2.

I liked options="!libc_musl"

-nc


---
Unsubscribe:  alpine-devel+unsubscribe@lists.alpinelinux.org
Help:         alpine-devel+help@lists.alpinelinux.org
---
Reply to thread Export thread (mbox)