All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH] autofs: use libtirpc instead of internal C implementation
@ 2017-03-21 19:32 Waldemar Brodkorb
  2017-03-21 21:24 ` Thomas Petazzoni
  0 siblings, 1 reply; 7+ messages in thread
From: Waldemar Brodkorb @ 2017-03-21 19:32 UTC (permalink / raw)
  To: buildroot

uClibc-ng plans to remove internal RPC implementation as it
is ipv4 only and can not be used for most important RPC software
rpcbind and nfs-utils.
musl does not implement RPC and GNU C library deprecated the
internal implementation a while ago.

Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
---
I am planning to send patches to convert existing packages
and remove the RPC internal toolchain stuff, before releasing
uClibc-ng without RPC. For a smooth migration.
---
 package/autofs/0004-libtirpc-via-pkgconfig.patch | 83 ++++++++++++++++++++++++
 package/autofs/Config.in                         |  7 +-
 package/autofs/autofs.mk                         |  3 +-
 3 files changed, 88 insertions(+), 5 deletions(-)
 create mode 100644 package/autofs/0004-libtirpc-via-pkgconfig.patch

diff --git a/package/autofs/0004-libtirpc-via-pkgconfig.patch b/package/autofs/0004-libtirpc-via-pkgconfig.patch
new file mode 100644
index 0000000..784b4c6
--- /dev/null
+++ b/package/autofs/0004-libtirpc-via-pkgconfig.patch
@@ -0,0 +1,83 @@
+Use pkg-config to find libtirpc headers
+
+Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
+
+diff -Nur autofs-5.1.2.orig/aclocal.m4 autofs-5.1.2/aclocal.m4
+--- autofs-5.1.2.orig/aclocal.m4	2016-06-15 04:40:44.000000000 +0200
++++ autofs-5.1.2/aclocal.m4	2017-03-21 20:10:06.441615642 +0100
+@@ -411,11 +411,18 @@
+ dnl --------------------------------------------------------------------------
+ AC_DEFUN([AF_CHECK_LIBTIRPC],
+ [
++
++AC_PATH_PROGS(PKG_CONFIG, pkg-config, no)
++
+ # save current flags
+ af_check_libtirpc_save_cflags="$CFLAGS"
+ af_check_libtirpc_save_ldflags="$LDFLAGS"
+-CFLAGS="$CFLAGS -I/usr/include/tirpc"
+-LDFLAGS="$LDFLAGS -ltirpc"
++
++TIRPC_LIBS=`$PKG_CONFIG --libs libtirpc`
++TIRPC_FLAGS=`$PKG_CONFIG --cflags libtirpc`
++
++CFLAGS="$CFLAGS $TIRPC_FLAGS"
++LIBS="$LIBS $TIRPC_LIBS"
+ 
+ AC_TRY_LINK(
+     [ #include <rpc/rpc.h> ],
+@@ -431,7 +438,8 @@
+ if test "$af_have_libtirpc" = "yes"; then
+     AC_DEFINE(WITH_LIBTIRPC,1, [Define to 1 if you have the libtirpc library installed])
+     AC_DEFINE(TIRPC_WORKAROUND,1, [Define to 1 to use the libtirpc tsd usage workaround])
+-    TIRPCLIB="-ltirpc"
++    TIRPCINCLUDE=$TIRPC_FLAGS
++    TIRPCLIB=$TIRPC_LIBS
+ fi
+ 
+ AC_CHECK_FUNCS([getrpcbyname getservbyname])
+@@ -439,6 +447,7 @@
+ # restore flags
+ CFLAGS="$af_check_libtirpc_save_cflags"
+ LDFLAGS="$af_check_libtirpc_save_ldflags"
++
+ ])
+ 
+ AC_DEFUN([AF_WITH_LIBTIRPC],
+diff -Nur autofs-5.1.2.orig/configure.in autofs-5.1.2/configure.in
+--- autofs-5.1.2.orig/configure.in	2016-06-15 04:40:44.000000000 +0200
++++ autofs-5.1.2/configure.in	2017-03-20 22:01:57.191254563 +0100
+@@ -126,6 +126,7 @@
+ #
+ AF_WITH_LIBTIRPC()
+ AC_SUBST(TIRPCLIB)
++AC_SUBST(TIRPCINCLUDE)
+ 
+ #
+ # Optional include dmalloc
+diff -Nur autofs-5.1.2.orig/Makefile.conf.in autofs-5.1.2/Makefile.conf.in
+--- autofs-5.1.2.orig/Makefile.conf.in	2016-06-15 04:40:44.000000000 +0200
++++ autofs-5.1.2/Makefile.conf.in	2017-03-20 21:59:38.341881802 +0100
+@@ -62,6 +62,7 @@
+ 
+ # Use libtirpc if requested and available
+ TIRPCLIB = @TIRPCLIB@
++TIRPCINCLUDE = @TIRPCINCLUDE@
+ 
+ # Use dmalloc for memory debuging
+ DMALLOCLIB = @DMALLOCLIB@
+diff -Nur autofs-5.1.2.orig/Makefile.rules autofs-5.1.2/Makefile.rules
+--- autofs-5.1.2.orig/Makefile.rules	2016-06-15 04:40:44.000000000 +0200
++++ autofs-5.1.2/Makefile.rules	2017-03-20 22:03:25.590675167 +0100
+@@ -45,10 +45,8 @@
+ CFLAGS += -D_REENTRANT -D_FILE_OFFSET_BITS=64
+ LIBS += -lpthread
+ 
+-ifdef TIRPCLIB
+-CFLAGS += -I/usr/include/tirpc
++CFLAGS += $(TIRPCINCLUDE)
+ LIBS += $(TIRPCLIB)
+-endif
+ 
+ ifdef DMALLOCLIB
+ LIBS += $(DMALLOCLIB)
diff --git a/package/autofs/Config.in b/package/autofs/Config.in
index 8e08357..bf1bf47 100644
--- a/package/autofs/Config.in
+++ b/package/autofs/Config.in
@@ -2,8 +2,8 @@ config BR2_PACKAGE_AUTOFS
 	bool "autofs"
 	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
 	depends on BR2_USE_MMU
-	depends on BR2_TOOLCHAIN_HAS_NATIVE_RPC
 	depends on !BR2_STATIC_LIBS # dlfcn
+	select BR2_PACKAGE_LIBTIRPC
 	help
 	  Autofs controls the operation of the automount daemons. The
 	  automount daemons automatically mount filesystems when they
@@ -15,7 +15,6 @@ config BR2_PACKAGE_AUTOFS
 
 	  http://www.linuxfromscratch.org/blfs/view/svn/general/autofs.html
 
-comment "autofs needs a toolchain w/ NPTL, RPC, dynamic library"
+comment "autofs needs a toolchain w/ NPTL and dynamic library"
 	depends on BR2_USE_MMU
-	depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL || BR2_STATIC_LIBS || \
-		!BR2_TOOLCHAIN_HAS_NATIVE_RPC
+	depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL || BR2_STATIC_LIBS
diff --git a/package/autofs/autofs.mk b/package/autofs/autofs.mk
index 23e6836..1add8b2 100644
--- a/package/autofs/autofs.mk
+++ b/package/autofs/autofs.mk
@@ -9,7 +9,7 @@ AUTOFS_SOURCE = autofs-$(AUTOFS_VERSION).tar.xz
 AUTOFS_SITE = $(BR2_KERNEL_MIRROR)/linux/daemons/autofs/v5
 AUTOFS_LICENSE = GPLv2+
 AUTOFS_LICENSE_FILES = COPYING COPYRIGHT
-AUTOFS_DEPENDENCIES = host-flex host-bison
+AUTOFS_DEPENDENCIES = host-flex host-bison libtirpc host-pkgconf
 # For 0002-autofs-configure-check-for-clock_gettime-in-librt.patch and
 # 0003-configure-add-cache-variable-for-Linux-proc-filesyst.patch.
 AUTOFS_AUTORECONF = YES
@@ -27,6 +27,7 @@ AUTOFS_CONF_ENV = \
 AUTOFS_CONF_OPTS = \
 	--disable-mount-locking \
 	--enable-ignore-busy \
+	--with-libtirpc \
 	--without-openldap \
 	--without-sasl \
 	--with-path="$(BR_PATH)" \
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [Buildroot] [PATCH] autofs: use libtirpc instead of internal C implementation
  2017-03-21 19:32 [Buildroot] [PATCH] autofs: use libtirpc instead of internal C implementation Waldemar Brodkorb
@ 2017-03-21 21:24 ` Thomas Petazzoni
  2017-03-22  2:09   ` Waldemar Brodkorb
  0 siblings, 1 reply; 7+ messages in thread
From: Thomas Petazzoni @ 2017-03-21 21:24 UTC (permalink / raw)
  To: buildroot

Hello,

On Tue, 21 Mar 2017 20:32:13 +0100, Waldemar Brodkorb wrote:

> @@ -2,8 +2,8 @@ config BR2_PACKAGE_AUTOFS
>  	bool "autofs"
>  	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
>  	depends on BR2_USE_MMU
> -	depends on BR2_TOOLCHAIN_HAS_NATIVE_RPC
>  	depends on !BR2_STATIC_LIBS # dlfcn
> +	select BR2_PACKAGE_LIBTIRPC

Why should we force people to use libtirpc ? What about instead:

	select BR2_PACKAGE_LIBTIRPC if !BR2_TOOLCHAIN_HAS_NATIVE_RPC

and adjust the .mk file accordingly.

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Buildroot] [PATCH] autofs: use libtirpc instead of internal C implementation
  2017-03-21 21:24 ` Thomas Petazzoni
@ 2017-03-22  2:09   ` Waldemar Brodkorb
  2017-03-22  7:59     ` Thomas Petazzoni
  0 siblings, 1 reply; 7+ messages in thread
From: Waldemar Brodkorb @ 2017-03-22  2:09 UTC (permalink / raw)
  To: buildroot

Hi,
Thomas Petazzoni wrote,

> Hello,
> 
> On Tue, 21 Mar 2017 20:32:13 +0100, Waldemar Brodkorb wrote:
> 
> > @@ -2,8 +2,8 @@ config BR2_PACKAGE_AUTOFS
> >  	bool "autofs"
> >  	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
> >  	depends on BR2_USE_MMU
> > -	depends on BR2_TOOLCHAIN_HAS_NATIVE_RPC
> >  	depends on !BR2_STATIC_LIBS # dlfcn
> > +	select BR2_PACKAGE_LIBTIRPC
> 
> Why should we force people to use libtirpc ? 

Because the internal RPC implementation is mostly useless and
getting removed?

> What about instead:
> 
> 	select BR2_PACKAGE_LIBTIRPC if !BR2_TOOLCHAIN_HAS_NATIVE_RPC
> 
> and adjust the .mk file accordingly.

The idea was to entirely remove BR2_TOOLCHAIN_HAS_NATIVE_RPC in
further patches. This would involve to disable deprecated RPC in
internal Glibc and uClibc-ng toolchains. 
I think RPC support in external toolchains will disappear when
GNU C library will finally remove the code.

best regards
 Waldemar 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Buildroot] [PATCH] autofs: use libtirpc instead of internal C implementation
  2017-03-22  2:09   ` Waldemar Brodkorb
@ 2017-03-22  7:59     ` Thomas Petazzoni
  2017-03-23 21:53       ` Arnout Vandecappelle
  0 siblings, 1 reply; 7+ messages in thread
From: Thomas Petazzoni @ 2017-03-22  7:59 UTC (permalink / raw)
  To: buildroot

Hello,

On Wed, 22 Mar 2017 03:09:46 +0100, Waldemar Brodkorb wrote:

> > On Tue, 21 Mar 2017 20:32:13 +0100, Waldemar Brodkorb wrote:
> >   
> > > @@ -2,8 +2,8 @@ config BR2_PACKAGE_AUTOFS
> > >  	bool "autofs"
> > >  	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
> > >  	depends on BR2_USE_MMU
> > > -	depends on BR2_TOOLCHAIN_HAS_NATIVE_RPC
> > >  	depends on !BR2_STATIC_LIBS # dlfcn
> > > +	select BR2_PACKAGE_LIBTIRPC  
> > 
> > Why should we force people to use libtirpc ?   
> 
> Because the internal RPC implementation is mostly useless and
> getting removed?

I don't quite agree. The one in glibc has been used for years
successfully, and is still useful. So even if uClibc decides to remove
its internal RPC implementation, I'd like to give people the option to
use the internal RPC implementation of glibc.

I agree RPC support in glibc will most likely disappear at some point
in the future, but we're not there yet. So for now, I'd prefer if we
just took the step of dropping RPC support in uClibc, and doing the
necessary changes in packages so that they all build/work fine with
libtirpc. That's anyway a very good preparation step to get rid of
internal RPC support entirely at some point in the future.

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Buildroot] [PATCH] autofs: use libtirpc instead of internal C implementation
  2017-03-22  7:59     ` Thomas Petazzoni
@ 2017-03-23 21:53       ` Arnout Vandecappelle
  2017-03-26  9:22         ` Yann E. MORIN
  0 siblings, 1 reply; 7+ messages in thread
From: Arnout Vandecappelle @ 2017-03-23 21:53 UTC (permalink / raw)
  To: buildroot



On 22-03-17 08:59, Thomas Petazzoni wrote:
> Hello,
> 
> On Wed, 22 Mar 2017 03:09:46 +0100, Waldemar Brodkorb wrote:
> 
>>> On Tue, 21 Mar 2017 20:32:13 +0100, Waldemar Brodkorb wrote:
>>>   
>>>> @@ -2,8 +2,8 @@ config BR2_PACKAGE_AUTOFS
>>>>  	bool "autofs"
>>>>  	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
>>>>  	depends on BR2_USE_MMU
>>>> -	depends on BR2_TOOLCHAIN_HAS_NATIVE_RPC
>>>>  	depends on !BR2_STATIC_LIBS # dlfcn
>>>> +	select BR2_PACKAGE_LIBTIRPC  
>>>
>>> Why should we force people to use libtirpc ?   
>>
>> Because the internal RPC implementation is mostly useless and
>> getting removed?
> 
> I don't quite agree. The one in glibc has been used for years
> successfully, and is still useful. So even if uClibc decides to remove
> its internal RPC implementation, I'd like to give people the option to
> use the internal RPC implementation of glibc.
> 
> I agree RPC support in glibc will most likely disappear at some point
> in the future, but we're not there yet. So for now, I'd prefer if we
> just took the step of dropping RPC support in uClibc, and doing the
> necessary changes in packages so that they all build/work fine with
> libtirpc. That's anyway a very good preparation step to get rid of
> internal RPC support entirely at some point in the future.

 Well, if glibc is the only one that is still going to provide native RPC, I
really don't think it's worth keeping support for it. It's not as if the 125KB
extra from libtirpc are really going to hurt someone who is using glibc, right?
And keeping the option of native RPC or libtirpc is probably going to make the
code more complicated.

 So I tend to agree with Waldemar's approach.

 Regards,
 Arnout

-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Buildroot] [PATCH] autofs: use libtirpc instead of internal C implementation
  2017-03-23 21:53       ` Arnout Vandecappelle
@ 2017-03-26  9:22         ` Yann E. MORIN
  2017-03-28 17:47           ` Waldemar Brodkorb
  0 siblings, 1 reply; 7+ messages in thread
From: Yann E. MORIN @ 2017-03-26  9:22 UTC (permalink / raw)
  To: buildroot

All,

On 2017-03-23 22:53 +0100, Arnout Vandecappelle spake thusly:
> On 22-03-17 08:59, Thomas Petazzoni wrote:
> > Hello,
> > 
> > On Wed, 22 Mar 2017 03:09:46 +0100, Waldemar Brodkorb wrote:
> > 
> >>> On Tue, 21 Mar 2017 20:32:13 +0100, Waldemar Brodkorb wrote:
> >>>   
> >>>> @@ -2,8 +2,8 @@ config BR2_PACKAGE_AUTOFS
> >>>>  	bool "autofs"
> >>>>  	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
> >>>>  	depends on BR2_USE_MMU
> >>>> -	depends on BR2_TOOLCHAIN_HAS_NATIVE_RPC
> >>>>  	depends on !BR2_STATIC_LIBS # dlfcn
> >>>> +	select BR2_PACKAGE_LIBTIRPC  
> >>>
> >>> Why should we force people to use libtirpc ?   
> >>
> >> Because the internal RPC implementation is mostly useless and
> >> getting removed?
> > 
> > I don't quite agree. The one in glibc has been used for years
> > successfully, and is still useful. So even if uClibc decides to remove
> > its internal RPC implementation, I'd like to give people the option to
> > use the internal RPC implementation of glibc.
> > 
> > I agree RPC support in glibc will most likely disappear at some point
> > in the future, but we're not there yet. So for now, I'd prefer if we
> > just took the step of dropping RPC support in uClibc, and doing the
> > necessary changes in packages so that they all build/work fine with
> > libtirpc. That's anyway a very good preparation step to get rid of
> > internal RPC support entirely at some point in the future.
> 
>  Well, if glibc is the only one that is still going to provide native RPC, I
> really don't think it's worth keeping support for it. It's not as if the 125KB
> extra from libtirpc are really going to hurt someone who is using glibc, right?
> And keeping the option of native RPC or libtirpc is probably going to make the
> code more complicated.
> 
>  So I tend to agree with Waldemar's approach.

I would say that I agree with Waldemar and Arnout.

Especially since the internal RPC implementation in glibc is not even
complete (not IPv6-clean for example) so it really makes sense to switch
to libtirpc which is nowadays pretty much stable.

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Buildroot] [PATCH] autofs: use libtirpc instead of internal C implementation
  2017-03-26  9:22         ` Yann E. MORIN
@ 2017-03-28 17:47           ` Waldemar Brodkorb
  0 siblings, 0 replies; 7+ messages in thread
From: Waldemar Brodkorb @ 2017-03-28 17:47 UTC (permalink / raw)
  To: buildroot

Hi,
Yann E. MORIN wrote,

> All,
> 
> On 2017-03-23 22:53 +0100, Arnout Vandecappelle spake thusly:
> > On 22-03-17 08:59, Thomas Petazzoni wrote:
> > > Hello,
> > > 
> > > On Wed, 22 Mar 2017 03:09:46 +0100, Waldemar Brodkorb wrote:
> > > 
> > >>> On Tue, 21 Mar 2017 20:32:13 +0100, Waldemar Brodkorb wrote:
> > >>>   
> > >>>> @@ -2,8 +2,8 @@ config BR2_PACKAGE_AUTOFS
> > >>>>  	bool "autofs"
> > >>>>  	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
> > >>>>  	depends on BR2_USE_MMU
> > >>>> -	depends on BR2_TOOLCHAIN_HAS_NATIVE_RPC
> > >>>>  	depends on !BR2_STATIC_LIBS # dlfcn
> > >>>> +	select BR2_PACKAGE_LIBTIRPC  
> > >>>
> > >>> Why should we force people to use libtirpc ?   
> > >>
> > >> Because the internal RPC implementation is mostly useless and
> > >> getting removed?
> > > 
> > > I don't quite agree. The one in glibc has been used for years
> > > successfully, and is still useful. So even if uClibc decides to remove
> > > its internal RPC implementation, I'd like to give people the option to
> > > use the internal RPC implementation of glibc.
> > > 
> > > I agree RPC support in glibc will most likely disappear at some point
> > > in the future, but we're not there yet. So for now, I'd prefer if we
> > > just took the step of dropping RPC support in uClibc, and doing the
> > > necessary changes in packages so that they all build/work fine with
> > > libtirpc. That's anyway a very good preparation step to get rid of
> > > internal RPC support entirely at some point in the future.
> > 
> >  Well, if glibc is the only one that is still going to provide native RPC, I
> > really don't think it's worth keeping support for it. It's not as if the 125KB
> > extra from libtirpc are really going to hurt someone who is using glibc, right?
> > And keeping the option of native RPC or libtirpc is probably going to make the
> > code more complicated.
> > 
> >  So I tend to agree with Waldemar's approach.
> 
> I would say that I agree with Waldemar and Arnout.
> 
> Especially since the internal RPC implementation in glibc is not even
> complete (not IPv6-clean for example) so it really makes sense to switch
> to libtirpc which is nowadays pretty much stable.

Peter, any opinion?

best regards
 Waldemar

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2017-03-28 17:47 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-03-21 19:32 [Buildroot] [PATCH] autofs: use libtirpc instead of internal C implementation Waldemar Brodkorb
2017-03-21 21:24 ` Thomas Petazzoni
2017-03-22  2:09   ` Waldemar Brodkorb
2017-03-22  7:59     ` Thomas Petazzoni
2017-03-23 21:53       ` Arnout Vandecappelle
2017-03-26  9:22         ` Yann E. MORIN
2017-03-28 17:47           ` Waldemar Brodkorb

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.