glibc: install the obsolete libnsl

Message ID d9f3b3cf8413fcabd4468a6057ee399a3968d20d.1520956780.git.baruch@tkos.co.il
State Accepted
Commit 398747f5fafca8c07e696612d8eded53d4f935c7
Headers show
Series
  • glibc: install the obsolete libnsl
Related show

Commit Message

Baruch Siach March 13, 2018, 3:59 p.m.
glibc 2.27 stopped installing libnsl by default. Restore libnsl install
to fix packages, like exim, that use that library.

Fixes (exim):
http://autobuild.buildroot.net/results/a19/a19df43be7d27cf8815e1257122d25aa8285d75b/
http://autobuild.buildroot.net/results/8ec/8ecfc42a81efec8485784f945e231eb40a087b5b/
http://autobuild.buildroot.net/results/054/054eb702a9b8c66454970333ef45a0afccb7cc80/

Cc: Waldemar Brodkorb <wbx@openadk.org>
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
---
 package/glibc/glibc.mk | 1 +
 1 file changed, 1 insertion(+)

Comments

Luca Ceresoli March 17, 2018, 9:33 p.m. | #1
Hi Baruch,

On 13/03/2018 16:59, Baruch Siach wrote:
> glibc 2.27 stopped installing libnsl by default. Restore libnsl install
> to fix packages, like exim, that use that library.

Are you aware of other packages using it?

> Fixes (exim):
> http://autobuild.buildroot.net/results/a19/a19df43be7d27cf8815e1257122d25aa8285d75b/
> http://autobuild.buildroot.net/results/8ec/8ecfc42a81efec8485784f945e231eb40a087b5b/
> http://autobuild.buildroot.net/results/054/054eb702a9b8c66454970333ef45a0afccb7cc80/
> 
> Cc: Waldemar Brodkorb <wbx@openadk.org>
> Signed-off-by: Baruch Siach <baruch@tkos.co.il>

[Tested on
http://autobuild.buildroot.net/results/cbbb893a03dd1f6dfd67d1144ead0473938e3283/
]
Tested-by: Luca Ceresoli <luca@lucaceresoli.net>
Reviewed-by: Luca Ceresoli <luca@lucaceresoli.net>

However the glibc NEWS file says libnsl is deprecated and has been moved
to an external library [0]. So it will likely be removed at some point,
and thus this is only a temporary solution.

[0]
https://sourceware.org/git/?p=glibc.git;a=blob;f=NEWS;h=5c0a3c6780ba4d8fc550e0eecdb43e1ded228049;hb=HEAD#l748

Regards,
Baruch Siach March 17, 2018, 9:44 p.m. | #2
Hi Luca,

On Sat, Mar 17, 2018 at 10:33:24PM +0100, Luca Ceresoli wrote:
> On 13/03/2018 16:59, Baruch Siach wrote:
> > glibc 2.27 stopped installing libnsl by default. Restore libnsl install
> > to fix packages, like exim, that use that library.
> 
> Are you aware of other packages using it?

I'm not aware of any.

> > Fixes (exim):
> > http://autobuild.buildroot.net/results/a19/a19df43be7d27cf8815e1257122d25aa8285d75b/
> > http://autobuild.buildroot.net/results/8ec/8ecfc42a81efec8485784f945e231eb40a087b5b/
> > http://autobuild.buildroot.net/results/054/054eb702a9b8c66454970333ef45a0afccb7cc80/
> > 
> > Cc: Waldemar Brodkorb <wbx@openadk.org>
> > Signed-off-by: Baruch Siach <baruch@tkos.co.il>
> 
> [Tested on
> http://autobuild.buildroot.net/results/cbbb893a03dd1f6dfd67d1144ead0473938e3283/
> ]
> Tested-by: Luca Ceresoli <luca@lucaceresoli.net>
> Reviewed-by: Luca Ceresoli <luca@lucaceresoli.net>

Thanks.

> However the glibc NEWS file says libnsl is deprecated and has been moved
> to an external library [0]. So it will likely be removed at some point,
> and thus this is only a temporary solution.

When glibc drops libnsl completely we can patch out the libnsl dependency of 
exim, like we do when linking with non-glibc libc. Hopefully upstream exim 
will find a better solution by then.

> [0]
> https://sourceware.org/git/?p=glibc.git;a=blob;f=NEWS;h=5c0a3c6780ba4d8fc550e0eecdb43e1ded228049;hb=HEAD#l748

baruch
Peter Korsgaard March 19, 2018, 8:27 a.m. | #3
>>>>> "Baruch" == Baruch Siach <baruch@tkos.co.il> writes:

 > glibc 2.27 stopped installing libnsl by default. Restore libnsl install
 > to fix packages, like exim, that use that library.

 > Fixes (exim):
 > http://autobuild.buildroot.net/results/a19/a19df43be7d27cf8815e1257122d25aa8285d75b/
 > http://autobuild.buildroot.net/results/8ec/8ecfc42a81efec8485784f945e231eb40a087b5b/
 > http://autobuild.buildroot.net/results/054/054eb702a9b8c66454970333ef45a0afccb7cc80/

 > Cc: Waldemar Brodkorb <wbx@openadk.org>
 > Signed-off-by: Baruch Siach <baruch@tkos.co.il>

Committed, thanks.
Romain Naour April 28, 2018, 2:51 p.m. | #4
Hi Baruch, All,

Le 13/03/2018 à 16:59, Baruch Siach a écrit :
> glibc 2.27 stopped installing libnsl by default. Restore libnsl install
> to fix packages, like exim, that use that library.

Do you know if libnsl can be disabled from exim ?
Is exim is the only remaining program still using/supporting libnsl ?

libnsl from Glibc doesn't build with the upcoming gcc 8, it's not even build
tested by Glibc maintainers (build-many-glibcs.py test script) see [1].

Maybe we can provide libnsl from a package that provide an updated version of
this library [2]?

Can you have a look?

Best regards,
Romain

[1] http://patchwork.sourceware.org/patch/26437
[2] https://github.com/thkukuk/libnsl.git

> 
> Fixes (exim):
> http://autobuild.buildroot.net/results/a19/a19df43be7d27cf8815e1257122d25aa8285d75b/
> http://autobuild.buildroot.net/results/8ec/8ecfc42a81efec8485784f945e231eb40a087b5b/
> http://autobuild.buildroot.net/results/054/054eb702a9b8c66454970333ef45a0afccb7cc80/
> 
> Cc: Waldemar Brodkorb <wbx@openadk.org>
> Signed-off-by: Baruch Siach <baruch@tkos.co.il>
> ---
>  package/glibc/glibc.mk | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/package/glibc/glibc.mk b/package/glibc/glibc.mk
> index 00e114566cbe..f724ced857fe 100644
> --- a/package/glibc/glibc.mk
> +++ b/package/glibc/glibc.mk
> @@ -100,6 +100,7 @@ define GLIBC_CONFIGURE_CMDS
>  		--disable-profile \
>  		--without-gd \
>  		--enable-obsolete-rpc \
> +		--enable-obsolete-nsl \
>  		--enable-kernel=$(call qstrip,$(BR2_TOOLCHAIN_HEADERS_AT_LEAST)) \
>  		--with-headers=$(STAGING_DIR)/usr/include)
>  	$(GLIBC_ADD_MISSING_STUB_H)
>
Baruch Siach April 29, 2018, 4:26 a.m. | #5
Hi Romain,

On Sat, Apr 28, 2018 at 04:51:39PM +0200, Romain Naour wrote:
> Le 13/03/2018 à 16:59, Baruch Siach a écrit :
> > glibc 2.27 stopped installing libnsl by default. Restore libnsl install
> > to fix packages, like exim, that use that library.
> 
> Do you know if libnsl can be disabled from exim ?

Of course. We already do that for non-glibc targets. See 
EXIM_REMOVE_LIBNSL_FROM_MAKEFILE in exim.mk.

> Is exim is the only remaining program still using/supporting libnsl ?

I don't know.

> libnsl from Glibc doesn't build with the upcoming gcc 8, it's not even build
> tested by Glibc maintainers (build-many-glibcs.py test script) see [1].
> 
> Maybe we can provide libnsl from a package that provide an updated version of
> this library [2]?
> 
> Can you have a look?

The simplest solution would be to disable libnsl in exim unconditionally, 
remove libnsl support in glibc, and deal with any other libnsl users as we 
encounter them.

baruch
Romain Naour May 1, 2018, 5:01 p.m. | #6
Hi Baruch,

Le 29/04/2018 à 06:26, Baruch Siach a écrit :
> Hi Romain,
> 
> On Sat, Apr 28, 2018 at 04:51:39PM +0200, Romain Naour wrote:
>> Le 13/03/2018 à 16:59, Baruch Siach a écrit :
>>> glibc 2.27 stopped installing libnsl by default. Restore libnsl install
>>> to fix packages, like exim, that use that library.
>>
>> Do you know if libnsl can be disabled from exim ?
> 
> Of course. We already do that for non-glibc targets. See 
> EXIM_REMOVE_LIBNSL_FROM_MAKEFILE in exim.mk.
> 
>> Is exim is the only remaining program still using/supporting libnsl ?
> 
> I don't know.
> 
>> libnsl from Glibc doesn't build with the upcoming gcc 8, it's not even build
>> tested by Glibc maintainers (build-many-glibcs.py test script) see [1].
>>
>> Maybe we can provide libnsl from a package that provide an updated version of
>> this library [2]?
>>
>> Can you have a look?
> 
> The simplest solution would be to disable libnsl in exim unconditionally, 
> remove libnsl support in glibc, and deal with any other libnsl users as we 
> encounter them.

Ok, let's remove nsl unconditionally from exim and disable the deprecated libnsl
from glibc. I'll post a new series doing so.

Btw, Fedora 28 has switched to the external libnsl in order to support IPV6 [1].
Interested people can add a new libnsl package later.

Best regards,
Romain

|1] https://fedoraproject.org/wiki/Changes/NISIPv6

> 
> baruch
>

Patch

diff --git a/package/glibc/glibc.mk b/package/glibc/glibc.mk
index 00e114566cbe..f724ced857fe 100644
--- a/package/glibc/glibc.mk
+++ b/package/glibc/glibc.mk
@@ -100,6 +100,7 @@  define GLIBC_CONFIGURE_CMDS
 		--disable-profile \
 		--without-gd \
 		--enable-obsolete-rpc \
+		--enable-obsolete-nsl \
 		--enable-kernel=$(call qstrip,$(BR2_TOOLCHAIN_HEADERS_AT_LEAST)) \
 		--with-headers=$(STAGING_DIR)/usr/include)
 	$(GLIBC_ADD_MISSING_STUB_H)