libxcrypt: Update to version 4.4.38

Message ID 20250122124315.14489-7-adolf.belka@ipfire.org
State Superseded
Headers
Series libxcrypt: Update to version 4.4.38 |

Commit Message

Adolf Belka Jan. 22, 2025, 12:43 p.m. UTC
  - Update from version 4.4.36 to 4.4.38
- Update of rootfile
- Changelog
    4.4.38
	* Fix several "-Wunterminated-string-initialization", which are seen by
	  upcoming GCC 15.x (issue #194).
	* Fix "-Wmaybe-uninitialized" in crypt.c, which is seen by GCC 13.3.0.
	* Skip test/explicit-bzero if compiling with ASAN.
	* Drop hard requirement for the pkg-config binary (issue #198).
    4.4.37
	* Several fixes to the manpages (issue #185).
	* Add binary compatibility for x86_64 GNU/Hurd (issue #189).
	* Only test the needed makecontext signature during configure (issue #178).
	* Fix -Werror=strict-overflow in lib/crypt-bcrypt.c, which is seen
	  by GCC 4.8.5 (issue #197).

Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
---
 config/rootfiles/common/libxcrypt | 3 +--
 lfs/libxcrypt                     | 6 +++---
 2 files changed, 4 insertions(+), 5 deletions(-)
  

Comments

Michael Tremer Feb. 22, 2025, 1:40 p.m. UTC | #1
Hello Adolf,

> On 22 Jan 2025, at 12:43, Adolf Belka <adolf.belka@ipfire.org> wrote:
> 
> - Update from version 4.4.36 to 4.4.38
> - Update of rootfile
> - Changelog
>    4.4.38
> * Fix several "-Wunterminated-string-initialization", which are seen by
>  upcoming GCC 15.x (issue #194).
> * Fix "-Wmaybe-uninitialized" in crypt.c, which is seen by GCC 13.3.0.
> * Skip test/explicit-bzero if compiling with ASAN.
> * Drop hard requirement for the pkg-config binary (issue #198).
>    4.4.37
> * Several fixes to the manpages (issue #185).
> * Add binary compatibility for x86_64 GNU/Hurd (issue #189).
> * Only test the needed makecontext signature during configure (issue #178).
> * Fix -Werror=strict-overflow in lib/crypt-bcrypt.c, which is seen
>  by GCC 4.8.5 (issue #197).
> 
> Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
> ---
> config/rootfiles/common/libxcrypt | 3 +--
> lfs/libxcrypt                     | 6 +++---
> 2 files changed, 4 insertions(+), 5 deletions(-)
> 
> diff --git a/config/rootfiles/common/libxcrypt b/config/rootfiles/common/libxcrypt
> index 1cbb05816..7febd9254 100644
> --- a/config/rootfiles/common/libxcrypt
> +++ b/config/rootfiles/common/libxcrypt
> @@ -1,3 +1,4 @@
> +#root/libcrypt.pc

Can we have a fix for this where the pkg-config files are installed in /usr/lib/pkgconfig again?

I think there is just a configure switch required and auto-detection seems to fail.

If other packages cannot find lib(x)crypt through pkg-config, they might fall back to their own implementation which we don’t want.

Best,
-Michael

> #usr/include/crypt.h
> #usr/include/xcrypt.h
> #usr/lib/libcrypt.la
> @@ -7,8 +8,6 @@ usr/lib/libcrypt.so.1.1.0
> #usr/lib/libowcrypt.so
> #usr/lib/libowcrypt.so.1
> #usr/lib/libxcrypt.so
> -#usr/lib/pkgconfig/libcrypt.pc
> -#usr/lib/pkgconfig/libxcrypt.pc
> #usr/share/man/man3/crypt.3
> #usr/share/man/man3/crypt_checksalt.3
> #usr/share/man/man3/crypt_gensalt.3
> diff --git a/lfs/libxcrypt b/lfs/libxcrypt
> index 4ec63516a..2f40385ca 100644
> --- a/lfs/libxcrypt
> +++ b/lfs/libxcrypt
> @@ -1,7 +1,7 @@
> ###############################################################################
> #                                                                             #
> # IPFire.org - A linux based firewall                                         #
> -# Copyright (C) 2007-2023  IPFire Team  <info@ipfire.org>                     #
> +# Copyright (C) 2007-2025  IPFire Team  <info@ipfire.org>                     #
> #                                                                             #
> # This program is free software: you can redistribute it and/or modify        #
> # it under the terms of the GNU General Public License as published by        #
> @@ -24,7 +24,7 @@
> 
> include Config
> 
> -VER        = 4.4.36
> +VER        = 4.4.38
> 
> THISAPP    = libxcrypt-$(VER)
> DL_FILE    = $(THISAPP).tar.xz
> @@ -47,7 +47,7 @@ objects = $(DL_FILE)
> 
> $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
> 
> -$(DL_FILE)_BLAKE2 = 9f028e0fe2cb7bb4273f3f6d1e579e0fe93cd71eba21286aa7dc078c904ea3cdce38b2955bdcd618853f7657b01aea7e28c4d898680e69fdf75f812b5a304c1d
> +$(DL_FILE)_BLAKE2 = 42d594fe36f61a1b5343d9fda22541b09373fe74c587537db8203f9c92120b6c73edef2e1b3d7febda14ae979845405b5fdaeb31dd2b89eedc423b0924ea7cff
> 
> install : $(TARGET)
> 
> -- 
> 2.48.1
>
  
Adolf Belka Feb. 23, 2025, 6:04 p.m. UTC | #2
Hi Michael,

On 22/02/2025 14:40, Michael Tremer wrote:
> Hello Adolf,
> 
>> On 22 Jan 2025, at 12:43, Adolf Belka <adolf.belka@ipfire.org> wrote:
>>
>> - Update from version 4.4.36 to 4.4.38
>> - Update of rootfile
>> - Changelog
>>     4.4.38
>> * Fix several "-Wunterminated-string-initialization", which are seen by
>>   upcoming GCC 15.x (issue #194).
>> * Fix "-Wmaybe-uninitialized" in crypt.c, which is seen by GCC 13.3.0.
>> * Skip test/explicit-bzero if compiling with ASAN.
>> * Drop hard requirement for the pkg-config binary (issue #198).
>>     4.4.37
>> * Several fixes to the manpages (issue #185).
>> * Add binary compatibility for x86_64 GNU/Hurd (issue #189).
>> * Only test the needed makecontext signature during configure (issue #178).
>> * Fix -Werror=strict-overflow in lib/crypt-bcrypt.c, which is seen
>>   by GCC 4.8.5 (issue #197).
>>
>> Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
>> ---
>> config/rootfiles/common/libxcrypt | 3 +--
>> lfs/libxcrypt                     | 6 +++---
>> 2 files changed, 4 insertions(+), 5 deletions(-)
>>
>> diff --git a/config/rootfiles/common/libxcrypt b/config/rootfiles/common/libxcrypt
>> index 1cbb05816..7febd9254 100644
>> --- a/config/rootfiles/common/libxcrypt
>> +++ b/config/rootfiles/common/libxcrypt
>> @@ -1,3 +1,4 @@
>> +#root/libcrypt.pc
> 
> Can we have a fix for this where the pkg-config files are installed in /usr/lib/pkgconfig again?

Sorry that I missed that.

> 
> I think there is just a configure switch required and auto-detection seems to fail.

No it turned  out that there was no configure switch to use. After a lot of investigating it turned out that in version 4.4.37 they made it a requirement that pkg-config was installed as a dependency.

That caused some users a problem when installing libxcrypt early in a distribution before pkg-config was available and then the libxcrypt build would fail.

So in version 4.4.38 it was changed so that if pkg-config was not found the build continued but then of course the pkg-config  files are not installed.

In version 4.4.36 the .pc files were installed whether pkg-config was available already or not. The pkgconfig directory was even created if it was not already present.

The fix was to move pkg-config to before libxcrypt and the files were available again.

The only alternative would have been to patch the Makefile.in to allow the install of the .pc files whether pkg-config was already installed or not but that would have been too complex for me and moving pkg-config to before libxcrypt seems to have worked without any issues.

V2 patch submission will be submitted shortly.

Regards,

Adolf.

> 
> If other packages cannot find lib(x)crypt through pkg-config, they might fall back to their own implementation which we don’t want.
> 
> Best,
> -Michael
> 
>> #usr/include/crypt.h
>> #usr/include/xcrypt.h
>> #usr/lib/libcrypt.la
>> @@ -7,8 +8,6 @@ usr/lib/libcrypt.so.1.1.0
>> #usr/lib/libowcrypt.so
>> #usr/lib/libowcrypt.so.1
>> #usr/lib/libxcrypt.so
>> -#usr/lib/pkgconfig/libcrypt.pc
>> -#usr/lib/pkgconfig/libxcrypt.pc
>> #usr/share/man/man3/crypt.3
>> #usr/share/man/man3/crypt_checksalt.3
>> #usr/share/man/man3/crypt_gensalt.3
>> diff --git a/lfs/libxcrypt b/lfs/libxcrypt
>> index 4ec63516a..2f40385ca 100644
>> --- a/lfs/libxcrypt
>> +++ b/lfs/libxcrypt
>> @@ -1,7 +1,7 @@
>> ###############################################################################
>> #                                                                             #
>> # IPFire.org - A linux based firewall                                         #
>> -# Copyright (C) 2007-2023  IPFire Team  <info@ipfire.org>                     #
>> +# Copyright (C) 2007-2025  IPFire Team  <info@ipfire.org>                     #
>> #                                                                             #
>> # This program is free software: you can redistribute it and/or modify        #
>> # it under the terms of the GNU General Public License as published by        #
>> @@ -24,7 +24,7 @@
>>
>> include Config
>>
>> -VER        = 4.4.36
>> +VER        = 4.4.38
>>
>> THISAPP    = libxcrypt-$(VER)
>> DL_FILE    = $(THISAPP).tar.xz
>> @@ -47,7 +47,7 @@ objects = $(DL_FILE)
>>
>> $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
>>
>> -$(DL_FILE)_BLAKE2 = 9f028e0fe2cb7bb4273f3f6d1e579e0fe93cd71eba21286aa7dc078c904ea3cdce38b2955bdcd618853f7657b01aea7e28c4d898680e69fdf75f812b5a304c1d
>> +$(DL_FILE)_BLAKE2 = 42d594fe36f61a1b5343d9fda22541b09373fe74c587537db8203f9c92120b6c73edef2e1b3d7febda14ae979845405b5fdaeb31dd2b89eedc423b0924ea7cff
>>
>> install : $(TARGET)
>>
>> -- 
>> 2.48.1
>>
>
  
Michael Tremer Feb. 24, 2025, 10:30 a.m. UTC | #3
Hello,

Brilliant fix :) Merged.

-Michael

> On 23 Feb 2025, at 18:04, Adolf Belka <adolf.belka@ipfire.org> wrote:
> 
> Hi Michael,
> 
> On 22/02/2025 14:40, Michael Tremer wrote:
>> Hello Adolf,
>>> On 22 Jan 2025, at 12:43, Adolf Belka <adolf.belka@ipfire.org> wrote:
>>> 
>>> - Update from version 4.4.36 to 4.4.38
>>> - Update of rootfile
>>> - Changelog
>>>    4.4.38
>>> * Fix several "-Wunterminated-string-initialization", which are seen by
>>>  upcoming GCC 15.x (issue #194).
>>> * Fix "-Wmaybe-uninitialized" in crypt.c, which is seen by GCC 13.3.0.
>>> * Skip test/explicit-bzero if compiling with ASAN.
>>> * Drop hard requirement for the pkg-config binary (issue #198).
>>>    4.4.37
>>> * Several fixes to the manpages (issue #185).
>>> * Add binary compatibility for x86_64 GNU/Hurd (issue #189).
>>> * Only test the needed makecontext signature during configure (issue #178).
>>> * Fix -Werror=strict-overflow in lib/crypt-bcrypt.c, which is seen
>>>  by GCC 4.8.5 (issue #197).
>>> 
>>> Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
>>> ---
>>> config/rootfiles/common/libxcrypt | 3 +--
>>> lfs/libxcrypt                     | 6 +++---
>>> 2 files changed, 4 insertions(+), 5 deletions(-)
>>> 
>>> diff --git a/config/rootfiles/common/libxcrypt b/config/rootfiles/common/libxcrypt
>>> index 1cbb05816..7febd9254 100644
>>> --- a/config/rootfiles/common/libxcrypt
>>> +++ b/config/rootfiles/common/libxcrypt
>>> @@ -1,3 +1,4 @@
>>> +#root/libcrypt.pc
>> Can we have a fix for this where the pkg-config files are installed in /usr/lib/pkgconfig again?
> 
> Sorry that I missed that.
> 
>> I think there is just a configure switch required and auto-detection seems to fail.
> 
> No it turned  out that there was no configure switch to use. After a lot of investigating it turned out that in version 4.4.37 they made it a requirement that pkg-config was installed as a dependency.
> 
> That caused some users a problem when installing libxcrypt early in a distribution before pkg-config was available and then the libxcrypt build would fail.
> 
> So in version 4.4.38 it was changed so that if pkg-config was not found the build continued but then of course the pkg-config  files are not installed.
> 
> In version 4.4.36 the .pc files were installed whether pkg-config was available already or not. The pkgconfig directory was even created if it was not already present.
> 
> The fix was to move pkg-config to before libxcrypt and the files were available again.
> 
> The only alternative would have been to patch the Makefile.in to allow the install of the .pc files whether pkg-config was already installed or not but that would have been too complex for me and moving pkg-config to before libxcrypt seems to have worked without any issues.
> 
> V2 patch submission will be submitted shortly.
> 
> Regards,
> 
> Adolf.
> 
>> If other packages cannot find lib(x)crypt through pkg-config, they might fall back to their own implementation which we don’t want.
>> Best,
>> -Michael
>>> #usr/include/crypt.h
>>> #usr/include/xcrypt.h
>>> #usr/lib/libcrypt.la
>>> @@ -7,8 +8,6 @@ usr/lib/libcrypt.so.1.1.0
>>> #usr/lib/libowcrypt.so
>>> #usr/lib/libowcrypt.so.1
>>> #usr/lib/libxcrypt.so
>>> -#usr/lib/pkgconfig/libcrypt.pc
>>> -#usr/lib/pkgconfig/libxcrypt.pc
>>> #usr/share/man/man3/crypt.3
>>> #usr/share/man/man3/crypt_checksalt.3
>>> #usr/share/man/man3/crypt_gensalt.3
>>> diff --git a/lfs/libxcrypt b/lfs/libxcrypt
>>> index 4ec63516a..2f40385ca 100644
>>> --- a/lfs/libxcrypt
>>> +++ b/lfs/libxcrypt
>>> @@ -1,7 +1,7 @@
>>> ###############################################################################
>>> #                                                                             #
>>> # IPFire.org - A linux based firewall                                         #
>>> -# Copyright (C) 2007-2023  IPFire Team  <info@ipfire.org>                     #
>>> +# Copyright (C) 2007-2025  IPFire Team  <info@ipfire.org>                     #
>>> #                                                                             #
>>> # This program is free software: you can redistribute it and/or modify        #
>>> # it under the terms of the GNU General Public License as published by        #
>>> @@ -24,7 +24,7 @@
>>> 
>>> include Config
>>> 
>>> -VER        = 4.4.36
>>> +VER        = 4.4.38
>>> 
>>> THISAPP    = libxcrypt-$(VER)
>>> DL_FILE    = $(THISAPP).tar.xz
>>> @@ -47,7 +47,7 @@ objects = $(DL_FILE)
>>> 
>>> $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
>>> 
>>> -$(DL_FILE)_BLAKE2 = 9f028e0fe2cb7bb4273f3f6d1e579e0fe93cd71eba21286aa7dc078c904ea3cdce38b2955bdcd618853f7657b01aea7e28c4d898680e69fdf75f812b5a304c1d
>>> +$(DL_FILE)_BLAKE2 = 42d594fe36f61a1b5343d9fda22541b09373fe74c587537db8203f9c92120b6c73edef2e1b3d7febda14ae979845405b5fdaeb31dd2b89eedc423b0924ea7cff
>>> 
>>> install : $(TARGET)
>>> 
>>> -- 
>>> 2.48.1
  

Patch

diff --git a/config/rootfiles/common/libxcrypt b/config/rootfiles/common/libxcrypt
index 1cbb05816..7febd9254 100644
--- a/config/rootfiles/common/libxcrypt
+++ b/config/rootfiles/common/libxcrypt
@@ -1,3 +1,4 @@ 
+#root/libcrypt.pc
 #usr/include/crypt.h
 #usr/include/xcrypt.h
 #usr/lib/libcrypt.la
@@ -7,8 +8,6 @@  usr/lib/libcrypt.so.1.1.0
 #usr/lib/libowcrypt.so
 #usr/lib/libowcrypt.so.1
 #usr/lib/libxcrypt.so
-#usr/lib/pkgconfig/libcrypt.pc
-#usr/lib/pkgconfig/libxcrypt.pc
 #usr/share/man/man3/crypt.3
 #usr/share/man/man3/crypt_checksalt.3
 #usr/share/man/man3/crypt_gensalt.3
diff --git a/lfs/libxcrypt b/lfs/libxcrypt
index 4ec63516a..2f40385ca 100644
--- a/lfs/libxcrypt
+++ b/lfs/libxcrypt
@@ -1,7 +1,7 @@ 
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2023  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2025  IPFire Team  <info@ipfire.org>                     #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -24,7 +24,7 @@ 
 
 include Config
 
-VER        = 4.4.36
+VER        = 4.4.38
 
 THISAPP    = libxcrypt-$(VER)
 DL_FILE    = $(THISAPP).tar.xz
@@ -47,7 +47,7 @@  objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_BLAKE2 = 9f028e0fe2cb7bb4273f3f6d1e579e0fe93cd71eba21286aa7dc078c904ea3cdce38b2955bdcd618853f7657b01aea7e28c4d898680e69fdf75f812b5a304c1d
+$(DL_FILE)_BLAKE2 = 42d594fe36f61a1b5343d9fda22541b09373fe74c587537db8203f9c92120b6c73edef2e1b3d7febda14ae979845405b5fdaeb31dd2b89eedc423b0924ea7cff
 
 install : $(TARGET)