diff mbox series

[4/4] configure: Disable building libcrypt by default

Message ID 20230629184156.2789945-5-siddhesh@sourceware.org
State New
Headers show
Series Update default build configuration | expand

Commit Message

Siddhesh Poyarekar June 29, 2023, 6:41 p.m. UTC
We mentioned eventual dropping of libcrypt in the 2.28 NEWS.  Actually
put that plan in motion by first disabling building libcrypt by default.
In the near future we need to drop it completely but ISTM that Gentoo
still uses it to fix some perl compatibility issues.

Signed-off-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
---
 INSTALL             | 12 ++++++------
 NEWS                |  5 +++++
 configure           |  6 +++---
 configure.ac        |  6 +++---
 manual/install.texi | 13 +++++++------
 5 files changed, 24 insertions(+), 18 deletions(-)

Comments

Dmitry V. Levin June 29, 2023, 6:45 p.m. UTC | #1
On Thu, Jun 29, 2023 at 02:41:47PM -0400, Siddhesh Poyarekar via Libc-alpha wrote:
> We mentioned eventual dropping of libcrypt in the 2.28 NEWS.  Actually
> put that plan in motion by first disabling building libcrypt by default.
> In the near future we need to drop it completely but ISTM that Gentoo
> still uses it to fix some perl compatibility issues.
> 
> Signed-off-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
> ---
>  INSTALL             | 12 ++++++------
>  NEWS                |  5 +++++
>  configure           |  6 +++---
>  configure.ac        |  6 +++---
>  manual/install.texi | 13 +++++++------
>  5 files changed, 24 insertions(+), 18 deletions(-)
> 
> diff --git a/INSTALL b/INSTALL
> index 88ffe7748f..263e8ce75a 100644
> --- a/INSTALL
> +++ b/INSTALL
> @@ -229,12 +229,12 @@ if ‘CFLAGS’ is specified it must enable optimization.  For example:
>       By default for x86_64, the GNU C Library is built with the vector
>       math library.  Use this option to disable the vector math library.
>  
> -‘--disable-crypt’
> -     Do not install the passphrase-hashing library ‘libcrypt’ or the
> -     header file ‘crypt.h’.  ‘unistd.h’ will still declare the function
> -     ‘crypt’.  Using this option does not change the set of programs
> -     that may need to be linked with ‘-lcrypt’; it only means that the
> -     GNU C Library will not provide that library.
> +‘--enable-crypt’
> +     Install the passphrase-hashing library ‘libcrypt’ and the header
> +     file ‘crypt.h’.  ‘unistd.h’ will declare the function ‘crypt’
> +     regardless of this option.  Using this option does not change the
> +     set of programs that may need to be linked with ‘-lcrypt’; it only
> +     means that the GNU C Library will not provide that library.

Sorry, will provide or will not provide?
Siddhesh Poyarekar June 29, 2023, 7:02 p.m. UTC | #2
On 2023-06-29 14:45, Dmitry V. Levin wrote:
> On Thu, Jun 29, 2023 at 02:41:47PM -0400, Siddhesh Poyarekar via Libc-alpha wrote:
>> We mentioned eventual dropping of libcrypt in the 2.28 NEWS.  Actually
>> put that plan in motion by first disabling building libcrypt by default.
>> In the near future we need to drop it completely but ISTM that Gentoo
>> still uses it to fix some perl compatibility issues.
>>
>> Signed-off-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
>> ---
>>   INSTALL             | 12 ++++++------
>>   NEWS                |  5 +++++
>>   configure           |  6 +++---
>>   configure.ac        |  6 +++---
>>   manual/install.texi | 13 +++++++------
>>   5 files changed, 24 insertions(+), 18 deletions(-)
>>
>> diff --git a/INSTALL b/INSTALL
>> index 88ffe7748f..263e8ce75a 100644
>> --- a/INSTALL
>> +++ b/INSTALL
>> @@ -229,12 +229,12 @@ if ‘CFLAGS’ is specified it must enable optimization.  For example:
>>        By default for x86_64, the GNU C Library is built with the vector
>>        math library.  Use this option to disable the vector math library.
>>   
>> -‘--disable-crypt’
>> -     Do not install the passphrase-hashing library ‘libcrypt’ or the
>> -     header file ‘crypt.h’.  ‘unistd.h’ will still declare the function
>> -     ‘crypt’.  Using this option does not change the set of programs
>> -     that may need to be linked with ‘-lcrypt’; it only means that the
>> -     GNU C Library will not provide that library.
>> +‘--enable-crypt’
>> +     Install the passphrase-hashing library ‘libcrypt’ and the header
>> +     file ‘crypt.h’.  ‘unistd.h’ will declare the function ‘crypt’
>> +     regardless of this option.  Using this option does not change the
>> +     set of programs that may need to be linked with ‘-lcrypt’; it only
>> +     means that the GNU C Library will not provide that library.
> 
> Sorry, will provide or will not provide?
> 
> 

Oops, fixed.

Thanks,
Sid
Sam James July 14, 2023, 6:21 a.m. UTC | #3
Siddhesh Poyarekar via Libc-alpha <libc-alpha@sourceware.org> writes:

> We mentioned eventual dropping of libcrypt in the 2.28 NEWS.  Actually
> put that plan in motion by first disabling building libcrypt by default.
> In the near future we need to drop it completely but ISTM that Gentoo
> still uses it to fix some perl compatibility issues.

Thanks. This is fine for us: we did the migration in two stages in
Mid-to-late 2021.

You are right that we've got a workaround for some Perl rebuild issues,
but that should've been fixed on our end in the package manager last
month, so no problem from us. Thank you for checking!
>  
> +* libcrypt is no longer built by default, one may use the --enable-crypt
> +  option to build libcrypt.  It is recommended that applications port
> +  away from the GNU C Library implementation of libcrypt since it will
> +  likely be removed in a future release.

I feel like we ought to explicitly name libxcrypt as a possible
provider - I don't really like relying on word of mouth for this.

We don't need to endorse it/recommend it (although what's the
alternative?), but I think mentioning it is worthwhile.

(ditto for texi change.)

> -  --disable-crypt         do not build nor install the passphrase hashing
> -                          library, libcrypt
> +  --enable-crypt          build and install the passphrase hashing library,
> +                          libcrypt

"build and install the deprecated ..." (legacy is fine too, if you like)
Siddhesh Poyarekar July 17, 2023, 3:24 p.m. UTC | #4
On 2023-07-14 02:21, Sam James wrote:
> 
> Siddhesh Poyarekar via Libc-alpha <libc-alpha@sourceware.org> writes:
> 
>> We mentioned eventual dropping of libcrypt in the 2.28 NEWS.  Actually
>> put that plan in motion by first disabling building libcrypt by default.
>> In the near future we need to drop it completely but ISTM that Gentoo
>> still uses it to fix some perl compatibility issues.
> 
> Thanks. This is fine for us: we did the migration in two stages in
> Mid-to-late 2021.
> 
> You are right that we've got a workaround for some Perl rebuild issues,
> but that should've been fixed on our end in the package manager last
> month, so no problem from us. Thank you for checking!
>>   
>> +* libcrypt is no longer built by default, one may use the --enable-crypt
>> +  option to build libcrypt.  It is recommended that applications port
>> +  away from the GNU C Library implementation of libcrypt since it will
>> +  likely be removed in a future release.
> 
> I feel like we ought to explicitly name libxcrypt as a possible
> provider - I don't really like relying on word of mouth for this.
> 
> We don't need to endorse it/recommend it (although what's the
> alternative?), but I think mentioning it is worthwhile.
> 
> (ditto for texi change.)
> 

Should we put a date on it, i.e. say explicitly that it will be removed 
in 2.39?

Thanks,
Sid
Sam James July 17, 2023, 5:26 p.m. UTC | #5
Siddhesh Poyarekar <siddhesh@sourceware.org> writes:

> On 2023-07-14 02:21, Sam James wrote:
>> Siddhesh Poyarekar via Libc-alpha <libc-alpha@sourceware.org>
>> writes:
>> 
>>> We mentioned eventual dropping of libcrypt in the 2.28 NEWS.  Actually
>>> put that plan in motion by first disabling building libcrypt by default.
>>> In the near future we need to drop it completely but ISTM that Gentoo
>>> still uses it to fix some perl compatibility issues.
>> Thanks. This is fine for us: we did the migration in two stages in
>> Mid-to-late 2021.
>> You are right that we've got a workaround for some Perl rebuild
>> issues,
>> but that should've been fixed on our end in the package manager last
>> month, so no problem from us. Thank you for checking!
>>>   +* libcrypt is no longer built by default, one may use the
>>> --enable-crypt
>>> +  option to build libcrypt.  It is recommended that applications port
>>> +  away from the GNU C Library implementation of libcrypt since it will
>>> +  likely be removed in a future release.
>> I feel like we ought to explicitly name libxcrypt as a possible
>> provider - I don't really like relying on word of mouth for this.
>> We don't need to endorse it/recommend it (although what's the
>> alternative?), but I think mentioning it is worthwhile.
>> (ditto for texi change.)
>> 
>
> Should we put a date on it, i.e. say explicitly that it will be
> removed in 2.39?

Yeah, no objection from me. We're all fed up of it anyway.

best,
sam
diff mbox series

Patch

diff --git a/INSTALL b/INSTALL
index 88ffe7748f..263e8ce75a 100644
--- a/INSTALL
+++ b/INSTALL
@@ -229,12 +229,12 @@  if ‘CFLAGS’ is specified it must enable optimization.  For example:
      By default for x86_64, the GNU C Library is built with the vector
      math library.  Use this option to disable the vector math library.
 
-‘--disable-crypt’
-     Do not install the passphrase-hashing library ‘libcrypt’ or the
-     header file ‘crypt.h’.  ‘unistd.h’ will still declare the function
-     ‘crypt’.  Using this option does not change the set of programs
-     that may need to be linked with ‘-lcrypt’; it only means that the
-     GNU C Library will not provide that library.
+‘--enable-crypt’
+     Install the passphrase-hashing library ‘libcrypt’ and the header
+     file ‘crypt.h’.  ‘unistd.h’ will declare the function ‘crypt’
+     regardless of this option.  Using this option does not change the
+     set of programs that may need to be linked with ‘-lcrypt’; it only
+     means that the GNU C Library will not provide that library.
 
      This option is for hackers and distributions experimenting with
      independently-maintained implementations of libcrypt.  It may
diff --git a/NEWS b/NEWS
index 264fad5d86..9d82c5ba62 100644
--- a/NEWS
+++ b/NEWS
@@ -55,6 +55,11 @@  Major new features:
 * Lazy binding is now disabled by default and can be overridden with the
   --disable-bind-now configure flag.
 
+* libcrypt is no longer built by default, one may use the --enable-crypt
+  option to build libcrypt.  It is recommended that applications port
+  away from the GNU C Library implementation of libcrypt since it will
+  likely be removed in a future release.
+
 Deprecated and removed features, and other changes affecting compatibility:
 
 * In the Linux kernel for the hppa/parisc architecture some of the
diff --git a/configure b/configure
index 6d4b05df18..4d924c4c21 100755
--- a/configure
+++ b/configure
@@ -1480,8 +1480,8 @@  Optional Features:
                           architectures
   --enable-memory-tagging enable memory tagging if supported by the
                           architecture [default=no]
-  --disable-crypt         do not build nor install the passphrase hashing
-                          library, libcrypt
+  --enable-crypt          build and install the passphrase hashing library,
+                          libcrypt
   --enable-nss-crypt      enable libcrypt to use nss
   --enable-systemtap      enable systemtap static probe points [default=no]
   --disable-build-nscd    disable building and installing the nscd daemon
@@ -4569,7 +4569,7 @@  if test ${enable_crypt+y}
 then :
   enableval=$enable_crypt; build_crypt=$enableval
 else $as_nop
-  build_crypt=yes
+  build_crypt=no
 fi
 
 
diff --git a/configure.ac b/configure.ac
index 6fc72df700..8d9ab7d0b6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -316,10 +316,10 @@  fi
 AC_SUBST(memory_tagging)
 
 AC_ARG_ENABLE([crypt],
-              AS_HELP_STRING([--disable-crypt],
-                             [do not build nor install the passphrase hashing library, libcrypt]),
+              AS_HELP_STRING([--enable-crypt],
+                             [build and install the passphrase hashing library, libcrypt]),
               [build_crypt=$enableval],
-              [build_crypt=yes])
+              [build_crypt=no])
 AC_SUBST(build_crypt)
 
 AC_ARG_ENABLE([nss-crypt],
diff --git a/manual/install.texi b/manual/install.texi
index ae43dc51ac..db7a0346b2 100644
--- a/manual/install.texi
+++ b/manual/install.texi
@@ -256,12 +256,13 @@  configure with @option{--disable-werror}.
 By default for x86_64, @theglibc{} is built with the vector math library.
 Use this option to disable the vector math library.
 
-@item --disable-crypt
-Do not install the passphrase-hashing library @file{libcrypt} or the
-header file @file{crypt.h}.  @file{unistd.h} will still declare the
-function @code{crypt}.  Using this option does not change the set of
-programs that may need to be linked with @option{-lcrypt}; it only
-means that @theglibc{} will not provide that library.
+@item --enable-crypt
+Install the passphrase-hashing library @file{libcrypt} and the
+header file @file{crypt.h}.  @file{unistd.h} will declare the
+function @code{crypt} regardless of this option.  Using this option does
+not change the set of programs that may need to be linked with
+@option{-lcrypt}; it only means that @theglibc{} will not provide that
+library.
 
 This option is for hackers and distributions experimenting with
 independently-maintained implementations of libcrypt.  It may become