diff mbox series

[1/2] package/exim: remove libnsl linking with Glibc.

Message ID 20180501200508.13974-1-romain.naour@gmail.com
State Superseded
Headers show
Series [1/2] package/exim: remove libnsl linking with Glibc. | expand

Commit Message

Romain Naour May 1, 2018, 8:05 p.m. UTC
libnsl has been deprecated from Glibc and no other libc provide it.
Also there is no libnsl package in Buildroot yet, so remove -lnsl for
all toolchains.

libnsl is now a library that can be packaged later if needed. [1]

Note: Fedora 28 has switched to the new libnsl library that bring
IPV6 support. [2]

[1] https://github.com/thkukuk/libnsl.git
[2] https://fedoraproject.org/wiki/Changes/NISIPv6

Signed-off-by: Romain Naour <romain.naour@gmail.com>
Cc: Baruch Siach <baruch@tkos.co.il>
---
 package/exim/exim.mk | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Thomas Petazzoni May 1, 2018, 8:12 p.m. UTC | #1
Hello,

On Tue,  1 May 2018 22:05:07 +0200, Romain Naour wrote:
> libnsl has been deprecated from Glibc and no other libc provide it.
> Also there is no libnsl package in Buildroot yet, so remove -lnsl for
> all toolchains.
> 
> libnsl is now a library that can be packaged later if needed. [1]
> 
> Note: Fedora 28 has switched to the new libnsl library that bring
> IPV6 support. [2]
> 
> [1] https://github.com/thkukuk/libnsl.git
> [2] https://fedoraproject.org/wiki/Changes/NISIPv6

This commit log doesn't really explain the motivation for the change.
What is the ultimate goal here ?

Thomas
Romain Naour May 1, 2018, 8:19 p.m. UTC | #2
Hi Thomas,

Le 01/05/2018 à 22:12, Thomas Petazzoni a écrit :
> Hello,
> 
> On Tue,  1 May 2018 22:05:07 +0200, Romain Naour wrote:
>> libnsl has been deprecated from Glibc and no other libc provide it.
>> Also there is no libnsl package in Buildroot yet, so remove -lnsl for
>> all toolchains.
>>
>> libnsl is now a library that can be packaged later if needed. [1]
>>
>> Note: Fedora 28 has switched to the new libnsl library that bring
>> IPV6 support. [2]
>>
>> [1] https://github.com/thkukuk/libnsl.git
>> [2] https://fedoraproject.org/wiki/Changes/NISIPv6
> 
> This commit log doesn't really explain the motivation for the change.
> What is the ultimate goal here ?

The motivation is to remove libnsl provided by Glibc. Since the new libnsl is
not packaged in Buildroot. Remove -lnsl from the exim Makefile.

Best regards,
Romain

> 
> Thomas
>
Thomas Petazzoni May 1, 2018, 8:37 p.m. UTC | #3
Hello,

On Tue, 1 May 2018 22:19:13 +0200, Romain Naour wrote:

> Le 01/05/2018 à 22:12, Thomas Petazzoni a écrit :
> > Hello,
> > 
> > On Tue,  1 May 2018 22:05:07 +0200, Romain Naour wrote:  
> >> libnsl has been deprecated from Glibc and no other libc provide it.
> >> Also there is no libnsl package in Buildroot yet, so remove -lnsl for
> >> all toolchains.
> >>
> >> libnsl is now a library that can be packaged later if needed. [1]
> >>
> >> Note: Fedora 28 has switched to the new libnsl library that bring
> >> IPV6 support. [2]
> >>
> >> [1] https://github.com/thkukuk/libnsl.git
> >> [2] https://fedoraproject.org/wiki/Changes/NISIPv6  
> > 
> > This commit log doesn't really explain the motivation for the change.
> > What is the ultimate goal here ?  
> 
> The motivation is to remove libnsl provided by Glibc. Since the new libnsl is
> not packaged in Buildroot. Remove -lnsl from the exim Makefile.

I think the explanation in the commit log should be improved then.

Perhaps something like:

""""
glibc now considers its built-in libnsl as being obsolete, and requires
passing --enable-obsolete-libnsl to have it built and installed. libnsl
is now provided as a separate project, but it isn't packaged yet in
Buildroot.

In preparation for dropping --enable-obsolete-libnsl from the glibc
package, this commit ensures that exim doesn't use libnsl. It was
already the case for uclibc and musl toolchains, so this commit simply
extends that to make sure libnsl is also not used with glibc toolchains.
""""

Does this capture the problem properly ?

Remains some questions though: why is exim linking with libnsl in the
first place ? Doesn't it use symbols from this library ?

Thomas
Romain Naour May 4, 2018, 8:54 p.m. UTC | #4
Hi Thomas, Baruch,

Le 01/05/2018 à 22:37, Thomas Petazzoni a écrit :
> Hello,
> 
> On Tue, 1 May 2018 22:19:13 +0200, Romain Naour wrote:
> 
>> Le 01/05/2018 à 22:12, Thomas Petazzoni a écrit :
>>> Hello,
>>>
>>> On Tue,  1 May 2018 22:05:07 +0200, Romain Naour wrote:  
>>>> libnsl has been deprecated from Glibc and no other libc provide it.
>>>> Also there is no libnsl package in Buildroot yet, so remove -lnsl for
>>>> all toolchains.
>>>>
>>>> libnsl is now a library that can be packaged later if needed. [1]
>>>>
>>>> Note: Fedora 28 has switched to the new libnsl library that bring
>>>> IPV6 support. [2]
>>>>
>>>> [1] https://github.com/thkukuk/libnsl.git
>>>> [2] https://fedoraproject.org/wiki/Changes/NISIPv6  
>>>
>>> This commit log doesn't really explain the motivation for the change.
>>> What is the ultimate goal here ?  
>>
>> The motivation is to remove libnsl provided by Glibc. Since the new libnsl is
>> not packaged in Buildroot. Remove -lnsl from the exim Makefile.
> 
> I think the explanation in the commit log should be improved then.
> 
> Perhaps something like:
> 
> """"
> glibc now considers its built-in libnsl as being obsolete, and requires
> passing --enable-obsolete-libnsl to have it built and installed. libnsl
> is now provided as a separate project, but it isn't packaged yet in
> Buildroot.
> 
> In preparation for dropping --enable-obsolete-libnsl from the glibc
> package, this commit ensures that exim doesn't use libnsl. It was
> already the case for uclibc and musl toolchains, so this commit simply
> extends that to make sure libnsl is also not used with glibc toolchains.
> """"
> 
> Does this capture the problem properly ?

Yes

> 
> Remains some questions though: why is exim linking with libnsl in the
> first place ? Doesn't it use symbols from this library ?

Exim itself doesn't need libnsl.
Only Exim's nis.so and nisplus.so lookup modules require libnsl but they are not
even build by default.

For now, we can safely remove -lnsl from exim Makefile.

Best regards,
Romain

> 
> Thomas
>
diff mbox series

Patch

diff --git a/package/exim/exim.mk b/package/exim/exim.mk
index 37eab501a4..bc3a8eefd5 100644
--- a/package/exim/exim.mk
+++ b/package/exim/exim.mk
@@ -72,13 +72,13 @@  define EXIM_USE_DEFAULT_CONFIG_FILE_OPENSSL
 endef
 endif
 
-# only glibc provides libnsl, remove -lnsl for all other toolchains
+# libnsl has been deprecated from Glibc and no other libc provide it.
+# There is no libnsl package in Buildroot yet.
+# Remove -lnsl for all toolchains.
 # http://bugs.exim.org/show_bug.cgi?id=1564
-ifeq ($(BR2_TOOLCHAIN_USES_GLIBC),)
 define EXIM_REMOVE_LIBNSL_FROM_MAKEFILE
 	$(SED) 's/-lnsl//g' $(@D)/OS/Makefile-Linux
 endef
-endif
 
 # musl does not provide struct ip_options nor struct ip_opts (but it is
 # available with both glibc and uClibc)