public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] glibc-2.26 and changes with SunRPC, libtirpc, ntirpc, libnsl (NIS and friends), ...
@ 2017-09-18  9:56 Andreas K. Huettel
  2017-09-18 12:28 ` M. J. Everitt
                   ` (7 more replies)
  0 siblings, 8 replies; 16+ messages in thread
From: Andreas K. Huettel @ 2017-09-18  9:56 UTC (permalink / raw
  To: gentoo-dev; +Cc: toolchain, base-system

[-- Attachment #1: Type: text/plain, Size: 2958 bytes --]

So glibc-2.26 is already out for some time, but we still haven't keyworded it 
yet. Why?

* I want to use the opportunity to make the long-delayed switchover from 
glibc-internal SunRPC (long deprecated and outdated) to external 
implementations (libtirpc, and possibly ntirpc).

* The (outdated and deprecated) NIS(YP) and NIS+ support (libnsl) has been 
removed from glibc (except for a compatibility library that doesnt install 
headers), and is now provided by net-libs/libnsl (increased soversion).

This mail is mainly about how to best structure the transition.
Comments, suggestions, corrections, feedback welcome.

1) About RPC. 

AFACIS there are three implementations:
a) SunRPC, headers in /usr/include, code provided by glibc
b) net-libs/libtirpc, headers in /usr/include/libtirpc, library -l tirpc
c) (?) net-libs/ntirpc, headers in /usr/include/ntirpc, library -l ntirpc

Option a) is going away with sys-libs/glibc-2.26-r1. 
Options b) and c) may in addition need headers from net-libs/rpcsvc-proto
I haven't done any testing with c) yet, will do so.
a), b), and c) are co-installable.

My suggestion for an ideal implementation would be that any package that uses 
RPC defines useflags:
sunrpc - build against glibc
libtirpc - build against net-libs/libtirpc
ntirpc - build against net-libs/ntirpc
with 
REQUIRED_USE="^^ ( sunrpc libtirpc ntirpc )"
If rpc support is optional with useflag rpc, then this becomes
REQUIRED_USE="rpc? ( ^^ ( sunrpc libtirpc ntirpc ) )"

Since the three options are coinstallable I see no problems with a package 
only supporting a subset, but I have no clue how this interacts at runtime.

Of course this "ideal option" is also the most work-intensive.

Both libtirpc and ntirpc supply a packageconfig file. Porting a package means 
pointing it to the right include directory (at compile time) and library name 
(at link time); if that's not done, a build fails because the rpc headers 
cannot be found.
(In my @system chroot, python fails atm.)

2) About YP / NIS / NIS+.

a) The old libnsl implementation is provided by glibc, soversion 1. 
b) An updated and much improved implementation is provided by net-libs/libnsl, 
soversion 2.

glibc-2.26 installs only the library for a), and no headers.
Since I dont want to mess with currently used glibc ebuilds, net-libs/libnsl 
requires at least our glibc-2.26 (otherwise you get file collisions).

Porting a package means adding a dependency in the style of 
|| ( <sys-libs/glibc-2.26 net-libs/libnsl )

It may not always be obvious where this is needed, since net-libs/libnsl is 
already pulled in deep in the dependency tree (my @system chroot has it).


So... that's it for the moment.
Comments, ideas?

Cheers, 
Andreas 
(off for a swim now... https://www.instagram.com/p/BZLJn1qF09B/ )


-- 
Andreas K. Hüttel
dilfridge@gentoo.org
Gentoo Linux developer (council, perl, libreoffice)

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

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

end of thread, other threads:[~2017-09-23 21:05 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-09-18  9:56 [gentoo-dev] glibc-2.26 and changes with SunRPC, libtirpc, ntirpc, libnsl (NIS and friends), Andreas K. Huettel
2017-09-18 12:28 ` M. J. Everitt
2017-09-18 15:36   ` Andreas K. Huettel
2017-09-18 15:40     ` M. J. Everitt
2017-09-18 15:45 ` Andreas K. Huettel
2017-09-18 18:51 ` Alexis Ballier
2017-09-18 19:57   ` Andreas K. Huettel
2017-09-19  5:06 ` [gentoo-dev] " Duncan
2017-09-19 12:53   ` Andreas K. Huettel
2017-09-20 18:33     ` Duncan
2017-09-19  7:14 ` [gentoo-dev] " Michał Górny
2017-09-19 18:44 ` Alexis Ballier
2017-09-19 20:38 ` [gentoo-dev] " Luca Barbato
2017-09-20  8:23   ` Andreas K. Huettel
2017-09-20  9:25     ` Michał Górny
2017-09-23 21:05 ` Update - Re: [gentoo-dev] " Andreas K. Huettel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox