[v2,00/30] nss_dns move into libc

Message ID cover.1625755445.git.fweimer@redhat.com
Headers
Series nss_dns move into libc |

Message

Florian Weimer July 8, 2021, 2:59 p.m. UTC
  This is a rebase of the previous series.  The final patch (direct
loading) has been integrated with the nss_files changes.

Re-tested on i686-linux-gnu, x86_64-linux-gnu.  Built with
build-many-glibcs.py.

Thanks,
Florian

Florian Weimer (30):
  socket: Add hidden prototype for setsockopt
  resolv: Deprecate legacy interfaces in <resolv.h>
  resolv: Sort Makefile routines and Versions lexicographically
  nss_dns: Do not use deprecated packet parsing functions
  resolv: Move ns_name_ntop to its own file and into libc
  resolv: Move ns_name_unpack to its own file and into libc
  resolv: Move ns_name_skip to its own file and into libc
  resolv: Move ns_name_uncompress into its own file and into libc
  resolv: Move ns_name_pton into its own file and into libc
  resolv: Move ns_name_pack into its own file and into libc
  resolv: Move ns_name_compress into its own file and into libc
  resolv: Move dn_expand to its own file and into libc
  resolv: Move _getlong, _getshort, __putlong, __putshort to res-putget
  resolv: Move dn_comp to its own file and into libc
  resolv: Move dn_skipname to its own file and into libc
  resolv: Rename res_comp.c to res-name-checking.c and move into libc
  resolv: Remove unnecessary res_isourserver_p call from send_dg
  resolv: Move __res_get_nsaddr to its own file and into libc
  resolv: Move res_isourserver to its own file and reformat to GNU style
  resolv: Move ns_makecanon into its own file, and into libc
  resolv: Move ns_samename into its own file, and into libc
  resolv: Move res_nameinquery to its own file and into libc
  resolv: Move res_queriesmatch to its own file and into libc
  resolv: Move __res_context_hostalias into its own file and into libc
  resolv: Move res_hostalias into its own file, along with hostalias
  resolv: Move res_send, res_nsend into libc
  resolv: Move res_mkquery, res_nmkquery into libc
  resolv: Move res_query functions into libc
  resolv: Move nss_dns into libc
  nss: Directly load nss_dns, without going through dlsym/dlopen

 NEWS                                          |   4 +
 include/arpa/nameser.h                        |  28 +-
 include/nss_dns.h                             |  39 ++
 include/resolv.h                              |  22 +-
 include/sys/socket.h                          |   3 +-
 nss/nss_files_functions.c                     |   6 -
 nss/nss_module.c                              |  55 +-
 nss/nss_module.h                              |  10 +-
 resolv/Makefile                               |  85 ++-
 resolv/Versions                               | 256 ++++++--
 resolv/arpa/nameser.h                         |  33 +-
 resolv/compat-gethnamaddr.c                   |  13 +-
 resolv/dn_comp.c                              | 103 +++
 resolv/dn_expand.c                            | 112 ++++
 resolv/dn_skipname.c                          | 103 +++
 resolv/ns_makecanon.c                         |  50 ++
 resolv/ns_name.c                              | 614 ------------------
 resolv/ns_name_compress.c                     |  50 ++
 resolv/ns_name_ntop.c                         | 145 +++++
 resolv/ns_name_pack.c                         | 202 ++++++
 resolv/ns_name_pton.c                         | 157 +++++
 resolv/ns_name_skip.c                         |  62 ++
 resolv/ns_name_uncompress.c                   |  45 ++
 resolv/ns_name_unpack.c                       | 115 ++++
 resolv/ns_parse.c                             |   4 +-
 resolv/ns_print.c                             |   8 +-
 resolv/ns_samedomain.c                        |  62 +-
 resolv/ns_samename.c                          |  38 ++
 resolv/nss_dns/dns-canon.c                    |  25 +-
 resolv/nss_dns/dns-host.c                     |  78 +--
 resolv/nss_dns/dns-network.c                  |  15 +-
 resolv/nss_dns_functions.c                    |  40 ++
 resolv/{res_comp.c => res-name-checking.c}    | 116 +---
 resolv/res-putget.c                           | 112 ++++
 resolv/res_context_hostalias.c                | 132 ++++
 resolv/res_debug.c                            |   4 +-
 resolv/res_enable_icmp.c                      |   4 +-
 resolv/res_get_nsaddr.c                       |  39 ++
 resolv/res_hostalias.c                        |  51 ++
 resolv/res_isourserver.c                      | 134 ++++
 resolv/res_mkquery.c                          |  48 +-
 resolv/res_nameinquery.c                      | 115 ++++
 resolv/res_queriesmatch.c                     | 129 ++++
 resolv/res_query.c                            | 158 ++---
 resolv/res_send.c                             | 238 ++-----
 resolv/resolv-deprecated.c                    |  56 ++
 resolv/resolv-internal.h                      |  21 +-
 resolv/resolv.h                               | 101 +--
 sysdeps/mach/hurd/i386/libc.abilist           |  48 ++
 sysdeps/mach/hurd/i386/libresolv.abilist      |  24 -
 sysdeps/mach/hurd/setsockopt.c                |   2 +-
 sysdeps/unix/sysv/linux/aarch64/libc.abilist  |  48 ++
 .../unix/sysv/linux/aarch64/libresolv.abilist |  24 -
 sysdeps/unix/sysv/linux/alpha/libc.abilist    |  53 ++
 .../unix/sysv/linux/alpha/libresolv.abilist   |  29 -
 sysdeps/unix/sysv/linux/arc/libc.abilist      |  48 ++
 sysdeps/unix/sysv/linux/arc/libresolv.abilist |  24 -
 sysdeps/unix/sysv/linux/arm/be/libc.abilist   |  48 ++
 .../unix/sysv/linux/arm/be/libresolv.abilist  |  24 -
 sysdeps/unix/sysv/linux/arm/le/libc.abilist   |  48 ++
 .../unix/sysv/linux/arm/le/libresolv.abilist  |  24 -
 sysdeps/unix/sysv/linux/csky/libc.abilist     |  48 ++
 .../unix/sysv/linux/csky/libresolv.abilist    |  24 -
 sysdeps/unix/sysv/linux/hppa/libc.abilist     |  53 ++
 .../unix/sysv/linux/hppa/libresolv.abilist    |  29 -
 sysdeps/unix/sysv/linux/i386/libc.abilist     |  53 ++
 .../unix/sysv/linux/i386/libresolv.abilist    |  29 -
 sysdeps/unix/sysv/linux/ia64/libc.abilist     |  53 ++
 .../unix/sysv/linux/ia64/libresolv.abilist    |  29 -
 .../sysv/linux/m68k/coldfire/libc.abilist     |  48 ++
 .../linux/m68k/coldfire/libresolv.abilist     |  24 -
 .../unix/sysv/linux/m68k/m680x0/libc.abilist  |  53 ++
 .../sysv/linux/m68k/m680x0/libresolv.abilist  |  29 -
 .../sysv/linux/microblaze/be/libc.abilist     |  48 ++
 .../linux/microblaze/be/libresolv.abilist     |  24 -
 .../sysv/linux/microblaze/le/libc.abilist     |  48 ++
 .../linux/microblaze/le/libresolv.abilist     |  24 -
 .../sysv/linux/mips/mips32/fpu/libc.abilist   |  53 ++
 .../sysv/linux/mips/mips32/libresolv.abilist  |  29 -
 .../sysv/linux/mips/mips32/nofpu/libc.abilist |  53 ++
 .../sysv/linux/mips/mips64/n32/libc.abilist   |  53 ++
 .../linux/mips/mips64/n32/libresolv.abilist   |  29 -
 .../sysv/linux/mips/mips64/n64/libc.abilist   |  53 ++
 .../linux/mips/mips64/n64/libresolv.abilist   |  29 -
 sysdeps/unix/sysv/linux/nios2/libc.abilist    |  48 ++
 .../unix/sysv/linux/nios2/libresolv.abilist   |  24 -
 .../linux/powerpc/powerpc32/fpu/libc.abilist  |  53 ++
 .../linux/powerpc/powerpc32/libresolv.abilist |  29 -
 .../powerpc/powerpc32/nofpu/libc.abilist      |  53 ++
 .../linux/powerpc/powerpc64/be/libc.abilist   |  48 ++
 .../powerpc/powerpc64/be/libresolv.abilist    |  24 -
 .../linux/powerpc/powerpc64/le/libc.abilist   |  48 ++
 .../powerpc/powerpc64/le/libresolv.abilist    |  24 -
 .../unix/sysv/linux/riscv/rv32/libc.abilist   |  48 ++
 .../sysv/linux/riscv/rv32/libresolv.abilist   |  24 -
 .../unix/sysv/linux/riscv/rv64/libc.abilist   |  48 ++
 .../sysv/linux/riscv/rv64/libresolv.abilist   |  24 -
 .../unix/sysv/linux/s390/s390-32/libc.abilist |  53 ++
 .../sysv/linux/s390/s390-32/libresolv.abilist |  29 -
 .../unix/sysv/linux/s390/s390-64/libc.abilist |  48 ++
 .../sysv/linux/s390/s390-64/libresolv.abilist |  24 -
 sysdeps/unix/sysv/linux/setsockopt.c          |   5 +-
 sysdeps/unix/sysv/linux/sh/be/libc.abilist    |  53 ++
 .../unix/sysv/linux/sh/be/libresolv.abilist   |  29 -
 sysdeps/unix/sysv/linux/sh/le/libc.abilist    |  53 ++
 .../unix/sysv/linux/sh/le/libresolv.abilist   |  29 -
 .../sysv/linux/sparc/sparc32/libc.abilist     |  53 ++
 .../linux/sparc/sparc32/libresolv.abilist     |  29 -
 .../sysv/linux/sparc/sparc64/libc.abilist     |  53 ++
 .../linux/sparc/sparc64/libresolv.abilist     |  29 -
 .../unix/sysv/linux/x86_64/64/libc.abilist    |  48 ++
 .../sysv/linux/x86_64/64/libresolv.abilist    |  24 -
 .../unix/sysv/linux/x86_64/x32/libc.abilist   |  48 ++
 .../sysv/linux/x86_64/x32/libresolv.abilist   |  24 -
 114 files changed, 4365 insertions(+), 2160 deletions(-)
 create mode 100644 include/nss_dns.h
 create mode 100644 resolv/dn_comp.c
 create mode 100644 resolv/dn_expand.c
 create mode 100644 resolv/dn_skipname.c
 create mode 100644 resolv/ns_makecanon.c
 create mode 100644 resolv/ns_name_compress.c
 create mode 100644 resolv/ns_name_ntop.c
 create mode 100644 resolv/ns_name_pack.c
 create mode 100644 resolv/ns_name_pton.c
 create mode 100644 resolv/ns_name_skip.c
 create mode 100644 resolv/ns_name_uncompress.c
 create mode 100644 resolv/ns_name_unpack.c
 create mode 100644 resolv/ns_samename.c
 create mode 100644 resolv/nss_dns_functions.c
 rename resolv/{res_comp.c => res-name-checking.c} (73%)
 create mode 100644 resolv/res-putget.c
 create mode 100644 resolv/res_context_hostalias.c
 create mode 100644 resolv/res_get_nsaddr.c
 create mode 100644 resolv/res_hostalias.c
 create mode 100644 resolv/res_isourserver.c
 create mode 100644 resolv/res_nameinquery.c
 create mode 100644 resolv/res_queriesmatch.c
 create mode 100644 resolv/resolv-deprecated.c
  

Comments

Carlos O'Donell July 15, 2021, 4:58 a.m. UTC | #1
On 7/8/21 10:59 AM, Florian Weimer via Libc-alpha wrote:
> This is a rebase of the previous series.  The final patch (direct
> loading) has been integrated with the nss_files changes.

OK for glibc 2.34 in general, with a few patches needing v3.
Please repost the series and I'll ack the remaining patches quickly
when I see which are left without Reviewed-by.

Thank you for tackling this. I think having nss_files and nss_dns
within libc allows for some straight forward use cases that allow
a process to use 'files' and 'dns' entries in nss regardless of
the current system state and that is often sufficient functionality
in a container/chroot to do the required work.

I've reviewed the entire series and I think we should include
it immediately for glibc 2.34 to go with the other ABI changes.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
 
> Re-tested on i686-linux-gnu, x86_64-linux-gnu.  Built with
> build-many-glibcs.py.
> 
> Thanks,
> Florian
> 
> Florian Weimer (30):
>   socket: Add hidden prototype for setsockopt
>   resolv: Deprecate legacy interfaces in <resolv.h>
>   resolv: Sort Makefile routines and Versions lexicographically
>   nss_dns: Do not use deprecated packet parsing functions
>   resolv: Move ns_name_ntop to its own file and into libc
>   resolv: Move ns_name_unpack to its own file and into libc
>   resolv: Move ns_name_skip to its own file and into libc
>   resolv: Move ns_name_uncompress into its own file and into libc
>   resolv: Move ns_name_pton into its own file and into libc
>   resolv: Move ns_name_pack into its own file and into libc
>   resolv: Move ns_name_compress into its own file and into libc
>   resolv: Move dn_expand to its own file and into libc
>   resolv: Move _getlong, _getshort, __putlong, __putshort to res-putget
>   resolv: Move dn_comp to its own file and into libc
>   resolv: Move dn_skipname to its own file and into libc
>   resolv: Rename res_comp.c to res-name-checking.c and move into libc
>   resolv: Remove unnecessary res_isourserver_p call from send_dg
>   resolv: Move __res_get_nsaddr to its own file and into libc
>   resolv: Move res_isourserver to its own file and reformat to GNU style
>   resolv: Move ns_makecanon into its own file, and into libc
>   resolv: Move ns_samename into its own file, and into libc
>   resolv: Move res_nameinquery to its own file and into libc
>   resolv: Move res_queriesmatch to its own file and into libc
>   resolv: Move __res_context_hostalias into its own file and into libc
>   resolv: Move res_hostalias into its own file, along with hostalias
>   resolv: Move res_send, res_nsend into libc
>   resolv: Move res_mkquery, res_nmkquery into libc
>   resolv: Move res_query functions into libc
>   resolv: Move nss_dns into libc
>   nss: Directly load nss_dns, without going through dlsym/dlopen
> 
>  NEWS                                          |   4 +
>  include/arpa/nameser.h                        |  28 +-
>  include/nss_dns.h                             |  39 ++
>  include/resolv.h                              |  22 +-
>  include/sys/socket.h                          |   3 +-
>  nss/nss_files_functions.c                     |   6 -
>  nss/nss_module.c                              |  55 +-
>  nss/nss_module.h                              |  10 +-
>  resolv/Makefile                               |  85 ++-
>  resolv/Versions                               | 256 ++++++--
>  resolv/arpa/nameser.h                         |  33 +-
>  resolv/compat-gethnamaddr.c                   |  13 +-
>  resolv/dn_comp.c                              | 103 +++
>  resolv/dn_expand.c                            | 112 ++++
>  resolv/dn_skipname.c                          | 103 +++
>  resolv/ns_makecanon.c                         |  50 ++
>  resolv/ns_name.c                              | 614 ------------------
>  resolv/ns_name_compress.c                     |  50 ++
>  resolv/ns_name_ntop.c                         | 145 +++++
>  resolv/ns_name_pack.c                         | 202 ++++++
>  resolv/ns_name_pton.c                         | 157 +++++
>  resolv/ns_name_skip.c                         |  62 ++
>  resolv/ns_name_uncompress.c                   |  45 ++
>  resolv/ns_name_unpack.c                       | 115 ++++
>  resolv/ns_parse.c                             |   4 +-
>  resolv/ns_print.c                             |   8 +-
>  resolv/ns_samedomain.c                        |  62 +-
>  resolv/ns_samename.c                          |  38 ++
>  resolv/nss_dns/dns-canon.c                    |  25 +-
>  resolv/nss_dns/dns-host.c                     |  78 +--
>  resolv/nss_dns/dns-network.c                  |  15 +-
>  resolv/nss_dns_functions.c                    |  40 ++
>  resolv/{res_comp.c => res-name-checking.c}    | 116 +---
>  resolv/res-putget.c                           | 112 ++++
>  resolv/res_context_hostalias.c                | 132 ++++
>  resolv/res_debug.c                            |   4 +-
>  resolv/res_enable_icmp.c                      |   4 +-
>  resolv/res_get_nsaddr.c                       |  39 ++
>  resolv/res_hostalias.c                        |  51 ++
>  resolv/res_isourserver.c                      | 134 ++++
>  resolv/res_mkquery.c                          |  48 +-
>  resolv/res_nameinquery.c                      | 115 ++++
>  resolv/res_queriesmatch.c                     | 129 ++++
>  resolv/res_query.c                            | 158 ++---
>  resolv/res_send.c                             | 238 ++-----
>  resolv/resolv-deprecated.c                    |  56 ++
>  resolv/resolv-internal.h                      |  21 +-
>  resolv/resolv.h                               | 101 +--
>  sysdeps/mach/hurd/i386/libc.abilist           |  48 ++
>  sysdeps/mach/hurd/i386/libresolv.abilist      |  24 -
>  sysdeps/mach/hurd/setsockopt.c                |   2 +-
>  sysdeps/unix/sysv/linux/aarch64/libc.abilist  |  48 ++
>  .../unix/sysv/linux/aarch64/libresolv.abilist |  24 -
>  sysdeps/unix/sysv/linux/alpha/libc.abilist    |  53 ++
>  .../unix/sysv/linux/alpha/libresolv.abilist   |  29 -
>  sysdeps/unix/sysv/linux/arc/libc.abilist      |  48 ++
>  sysdeps/unix/sysv/linux/arc/libresolv.abilist |  24 -
>  sysdeps/unix/sysv/linux/arm/be/libc.abilist   |  48 ++
>  .../unix/sysv/linux/arm/be/libresolv.abilist  |  24 -
>  sysdeps/unix/sysv/linux/arm/le/libc.abilist   |  48 ++
>  .../unix/sysv/linux/arm/le/libresolv.abilist  |  24 -
>  sysdeps/unix/sysv/linux/csky/libc.abilist     |  48 ++
>  .../unix/sysv/linux/csky/libresolv.abilist    |  24 -
>  sysdeps/unix/sysv/linux/hppa/libc.abilist     |  53 ++
>  .../unix/sysv/linux/hppa/libresolv.abilist    |  29 -
>  sysdeps/unix/sysv/linux/i386/libc.abilist     |  53 ++
>  .../unix/sysv/linux/i386/libresolv.abilist    |  29 -
>  sysdeps/unix/sysv/linux/ia64/libc.abilist     |  53 ++
>  .../unix/sysv/linux/ia64/libresolv.abilist    |  29 -
>  .../sysv/linux/m68k/coldfire/libc.abilist     |  48 ++
>  .../linux/m68k/coldfire/libresolv.abilist     |  24 -
>  .../unix/sysv/linux/m68k/m680x0/libc.abilist  |  53 ++
>  .../sysv/linux/m68k/m680x0/libresolv.abilist  |  29 -
>  .../sysv/linux/microblaze/be/libc.abilist     |  48 ++
>  .../linux/microblaze/be/libresolv.abilist     |  24 -
>  .../sysv/linux/microblaze/le/libc.abilist     |  48 ++
>  .../linux/microblaze/le/libresolv.abilist     |  24 -
>  .../sysv/linux/mips/mips32/fpu/libc.abilist   |  53 ++
>  .../sysv/linux/mips/mips32/libresolv.abilist  |  29 -
>  .../sysv/linux/mips/mips32/nofpu/libc.abilist |  53 ++
>  .../sysv/linux/mips/mips64/n32/libc.abilist   |  53 ++
>  .../linux/mips/mips64/n32/libresolv.abilist   |  29 -
>  .../sysv/linux/mips/mips64/n64/libc.abilist   |  53 ++
>  .../linux/mips/mips64/n64/libresolv.abilist   |  29 -
>  sysdeps/unix/sysv/linux/nios2/libc.abilist    |  48 ++
>  .../unix/sysv/linux/nios2/libresolv.abilist   |  24 -
>  .../linux/powerpc/powerpc32/fpu/libc.abilist  |  53 ++
>  .../linux/powerpc/powerpc32/libresolv.abilist |  29 -
>  .../powerpc/powerpc32/nofpu/libc.abilist      |  53 ++
>  .../linux/powerpc/powerpc64/be/libc.abilist   |  48 ++
>  .../powerpc/powerpc64/be/libresolv.abilist    |  24 -
>  .../linux/powerpc/powerpc64/le/libc.abilist   |  48 ++
>  .../powerpc/powerpc64/le/libresolv.abilist    |  24 -
>  .../unix/sysv/linux/riscv/rv32/libc.abilist   |  48 ++
>  .../sysv/linux/riscv/rv32/libresolv.abilist   |  24 -
>  .../unix/sysv/linux/riscv/rv64/libc.abilist   |  48 ++
>  .../sysv/linux/riscv/rv64/libresolv.abilist   |  24 -
>  .../unix/sysv/linux/s390/s390-32/libc.abilist |  53 ++
>  .../sysv/linux/s390/s390-32/libresolv.abilist |  29 -
>  .../unix/sysv/linux/s390/s390-64/libc.abilist |  48 ++
>  .../sysv/linux/s390/s390-64/libresolv.abilist |  24 -
>  sysdeps/unix/sysv/linux/setsockopt.c          |   5 +-
>  sysdeps/unix/sysv/linux/sh/be/libc.abilist    |  53 ++
>  .../unix/sysv/linux/sh/be/libresolv.abilist   |  29 -
>  sysdeps/unix/sysv/linux/sh/le/libc.abilist    |  53 ++
>  .../unix/sysv/linux/sh/le/libresolv.abilist   |  29 -
>  .../sysv/linux/sparc/sparc32/libc.abilist     |  53 ++
>  .../linux/sparc/sparc32/libresolv.abilist     |  29 -
>  .../sysv/linux/sparc/sparc64/libc.abilist     |  53 ++
>  .../linux/sparc/sparc64/libresolv.abilist     |  29 -
>  .../unix/sysv/linux/x86_64/64/libc.abilist    |  48 ++
>  .../sysv/linux/x86_64/64/libresolv.abilist    |  24 -
>  .../unix/sysv/linux/x86_64/x32/libc.abilist   |  48 ++
>  .../sysv/linux/x86_64/x32/libresolv.abilist   |  24 -
>  114 files changed, 4365 insertions(+), 2160 deletions(-)
>  create mode 100644 include/nss_dns.h
>  create mode 100644 resolv/dn_comp.c
>  create mode 100644 resolv/dn_expand.c
>  create mode 100644 resolv/dn_skipname.c
>  create mode 100644 resolv/ns_makecanon.c
>  create mode 100644 resolv/ns_name_compress.c
>  create mode 100644 resolv/ns_name_ntop.c
>  create mode 100644 resolv/ns_name_pack.c
>  create mode 100644 resolv/ns_name_pton.c
>  create mode 100644 resolv/ns_name_skip.c
>  create mode 100644 resolv/ns_name_uncompress.c
>  create mode 100644 resolv/ns_name_unpack.c
>  create mode 100644 resolv/ns_samename.c
>  create mode 100644 resolv/nss_dns_functions.c
>  rename resolv/{res_comp.c => res-name-checking.c} (73%)
>  create mode 100644 resolv/res-putget.c
>  create mode 100644 resolv/res_context_hostalias.c
>  create mode 100644 resolv/res_get_nsaddr.c
>  create mode 100644 resolv/res_hostalias.c
>  create mode 100644 resolv/res_isourserver.c
>  create mode 100644 resolv/res_nameinquery.c
>  create mode 100644 resolv/res_queriesmatch.c
>  create mode 100644 resolv/resolv-deprecated.c
>