RHEL 9.0.0 Alpha bootstrap
The content of this branch was automatically imported from Fedora ELN with the following as its source: https://src.fedoraproject.org/rpms/libxcrypt#cb82fdc2770a57d1e1a4376035192d4268420573
This commit is contained in:
		
							parent
							
								
									87e6b223e9
								
							
						
					
					
						commit
						4d4108f8e0
					
				
							
								
								
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -0,0 +1,2 @@ | |||||||
|  | /libxcrypt-*.rpm | ||||||
|  | /libxcrypt-*.tar.* | ||||||
							
								
								
									
										70
									
								
								libxcrypt-4.4.17-enable_LTO_build.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								libxcrypt-4.4.17-enable_LTO_build.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,70 @@ | |||||||
|  | From a1bff4255fb9cad501a8a5d4bffb8f95df0f615f Mon Sep 17 00:00:00 2001 | ||||||
|  | From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= <besser82@fedoraproject.org> | ||||||
|  | Date: Thu, 13 Aug 2020 18:51:50 +0200 | ||||||
|  | Subject: [PATCH] crypt-port: Add the bits for compiling with link-time | ||||||
|  |  optimization. | ||||||
|  | 
 | ||||||
|  | GCC 10.2 and LLVM/Clang 10 offer initial support for building | ||||||
|  | libraries, that are using symbol versioning features, with LTO. | ||||||
|  | 
 | ||||||
|  | To make use of this with GCC 10.2, the exported versioned symbols | ||||||
|  | need to be declared explicitly with __attribute__((symver (...))). | ||||||
|  | 
 | ||||||
|  | LLVM/Clang 10 supports symbol versioning with LTO out of the box | ||||||
|  | without any changes needed. | ||||||
|  | 
 | ||||||
|  | Fixes #24. | ||||||
|  | ---
 | ||||||
|  |  lib/crypt-port.h | 25 ++++++++++++++++++++++++- | ||||||
|  |  1 file changed, 24 insertions(+), 1 deletion(-) | ||||||
|  | 
 | ||||||
|  | diff --git a/lib/crypt-port.h b/lib/crypt-port.h
 | ||||||
|  | index bec36ac..ca86261 100644
 | ||||||
|  | --- a/lib/crypt-port.h
 | ||||||
|  | +++ b/lib/crypt-port.h
 | ||||||
|  | @@ -179,11 +179,29 @@ _crypt_strcpy_or_abort (void *, const size_t, const void *);
 | ||||||
|  |  # define _strong_alias(name, aliasname) \ | ||||||
|  |    extern __typeof (name) aliasname __THROW __attribute__ ((alias (#name))) | ||||||
|  |   | ||||||
|  | +/* Starting with GCC 10.2, we can use the symver attribute, which also works
 | ||||||
|  | +   with link-time optimization enabled.  */
 | ||||||
|  | +# if __GNUC__ > 10 || (__GNUC__ == 10 && __GNUC_MINOR__ >= 2)
 | ||||||
|  | +
 | ||||||
|  | +/* Referencing specific _compatibility_ symbols still needs inline asm.  */
 | ||||||
|  | +# define _symver_ref(extstr, intname, version) \
 | ||||||
|  | +  __asm__ (".symver " #intname "," extstr "@" #version)
 | ||||||
|  | +
 | ||||||
|  | +/* Set the symbol version for EXTNAME, which uses INTNAME as its
 | ||||||
|  | +   implementation.  */
 | ||||||
|  | +# define symver_set(extstr, intname, version, mode) \
 | ||||||
|  | +  extern __typeof (intname) intname __THROW \
 | ||||||
|  | +    __attribute__((symver (extstr mode #version)))
 | ||||||
|  | +
 | ||||||
|  | +# else
 | ||||||
|  | +
 | ||||||
|  |  /* Set the symbol version for EXTNAME, which uses INTNAME as its | ||||||
|  |     implementation.  */ | ||||||
|  |  # define symver_set(extstr, intname, version, mode) \ | ||||||
|  |    __asm__ (".symver " #intname "," extstr mode #version) | ||||||
|  |   | ||||||
|  | +# endif
 | ||||||
|  | +
 | ||||||
|  |  #else | ||||||
|  |  # error "Don't know how to do symbol versioning with this compiler" | ||||||
|  |  #endif | ||||||
|  | @@ -239,9 +257,14 @@ _crypt_strcpy_or_abort (void *, const size_t, const void *);
 | ||||||
|  |   | ||||||
|  |  /* Tests may need to _refer_ to compatibility symbols, but should never need | ||||||
|  |     to _define_ them.  */ | ||||||
|  | -
 | ||||||
|  |  #define symver_ref(extstr, intname, version) \ | ||||||
|  | +  _symver_ref(extstr, intname, version)
 | ||||||
|  | +
 | ||||||
|  | +/* Generic way for referencing specific _compatibility_ symbols.  */
 | ||||||
|  | +#ifndef _symver_ref
 | ||||||
|  | +#define _symver_ref(extstr, intname, version) \
 | ||||||
|  |    symver_set(extstr, intname, version, "@") | ||||||
|  | +#endif
 | ||||||
|  |   | ||||||
|  |  /* Define configuration macros used during compile-time by the | ||||||
|  |     GOST R 34.11-2012 "Streebog" hash function.  */ | ||||||
							
								
								
									
										662
									
								
								libxcrypt.spec
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										662
									
								
								libxcrypt.spec
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,662 @@ | |||||||
|  | # Build with new api? | ||||||
|  | %if 0%{?fedora} >= 30 || 0%{?rhel} >= 9 | ||||||
|  | %bcond_without new_api | ||||||
|  | %else | ||||||
|  | %bcond_with    new_api | ||||||
|  | %endif | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # Build the compat package? | ||||||
|  | %if !(0%{?fedora} >= 999 || 0%{?rhel} >= 99) && %{with new_api} | ||||||
|  | %bcond_without compat_pkg | ||||||
|  | %else | ||||||
|  | %bcond_with    compat_pkg | ||||||
|  | %endif | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # Replace obsolete functions with a stub? | ||||||
|  | %if (0%{?fedora} >= 30 || 0%{?rhel} >= 9) && %{with compat_pkg} | ||||||
|  | %bcond_without enosys_stubs | ||||||
|  | %else | ||||||
|  | %bcond_with    enosys_stubs | ||||||
|  | %endif | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # Build the static library? | ||||||
|  | %bcond_without staticlib | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # Shared object version of libcrypt. | ||||||
|  | %if %{with new_api} | ||||||
|  | %global soc  2 | ||||||
|  | %global sol  0 | ||||||
|  | %global sof  0 | ||||||
|  | %global sov  %{soc}.%{sol}.%{sof} | ||||||
|  | %else | ||||||
|  | %global soc  1 | ||||||
|  | %global sol  1 | ||||||
|  | %global sof  0 | ||||||
|  | %global sov  %{soc}.%{sol}.%{sof} | ||||||
|  | %endif | ||||||
|  | 
 | ||||||
|  | %if %{with compat_pkg} | ||||||
|  | %global csoc 1 | ||||||
|  | %global csol 1 | ||||||
|  | %global csof 0 | ||||||
|  | %global csov %{csoc}.%{csol}.%{csof} | ||||||
|  | %endif | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # First version of glibc built without libcrypt. | ||||||
|  | %global glibc_minver     2.27 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # The libxcrypt-devel package conflicts with out-dated manuals | ||||||
|  | # shipped with the man-pages packages *before* this EVR. | ||||||
|  | %global man_pages_minver 4.15-3 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # Hash methods and API supported by libcrypt. | ||||||
|  | # NEVER EVER touch this, if you do NOT know what you are doing! | ||||||
|  | %global hash_methods   all | ||||||
|  | 
 | ||||||
|  | %if %{with new_api} | ||||||
|  | %global obsolete_api   no | ||||||
|  | %else | ||||||
|  | %global obsolete_api   glibc | ||||||
|  | %endif | ||||||
|  | 
 | ||||||
|  | %if %{with compat_pkg} | ||||||
|  | %global compat_methods all | ||||||
|  | %global compat_api     glibc | ||||||
|  | %endif | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # Do we replace the obsolete API functions with stubs? | ||||||
|  | %if %{with enosys_stubs} | ||||||
|  | %global enosys_stubs   yes | ||||||
|  | %else | ||||||
|  | %global enosys_stubs   no | ||||||
|  | %endif | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # Needed for the distribution README file. | ||||||
|  | %if 0%{?fedora} | ||||||
|  | %global distname .fedora | ||||||
|  | %else | ||||||
|  | %if 0%{?rhel} | ||||||
|  | %global distname .rhel | ||||||
|  | %else | ||||||
|  | %global distname .distribution | ||||||
|  | %endif | ||||||
|  | %endif | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # Needed for out-of-tree builds. | ||||||
|  | %global _configure "$(realpath ../configure)" | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # Common configure options. | ||||||
|  | %global common_configure_options           \\\ | ||||||
|  |   --disable-failure-tokens                 \\\ | ||||||
|  |   --disable-silent-rules                   \\\ | ||||||
|  |   --enable-shared                          \\\ | ||||||
|  | %if %{with staticlib}                      \ | ||||||
|  |   --enable-static                          \\\ | ||||||
|  | %else                                      \ | ||||||
|  |   --disable-static                         \\\ | ||||||
|  | %endif                                     \ | ||||||
|  |   --disable-valgrind                       \\\ | ||||||
|  |   --srcdir=$(realpath ..)                  \\\ | ||||||
|  |   --with-pkgconfigdir=%{_libdir}/pkgconfig | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # Macros for shorthand. | ||||||
|  | %global _fipsdir %{_libdir}/fipscheck | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # Add generation of HMAC checksums of the final stripped | ||||||
|  | # binaries.  %%define with lazy globbing is used here | ||||||
|  | # intentionally, because using %%global does not work. | ||||||
|  | %define __spec_install_post                 \ | ||||||
|  | %{?__debug_package:%{__debug_install_post}} \ | ||||||
|  | %{__arch_install_post}                      \ | ||||||
|  | %{__os_install_post}                        \ | ||||||
|  | libdir="%{buildroot}%{_libdir}"             \ | ||||||
|  | fipsdir="$libdir/fipscheck"                 \ | ||||||
|  | mkdir -p $fipsdir                           \ | ||||||
|  | fipshmac -d $fipsdir                        \\\ | ||||||
|  |   $libdir/libcrypt.so.%{sov}                \ | ||||||
|  | ln -s libcrypt.so.%{sov}.hmac               \\\ | ||||||
|  |   $fipsdir/libcrypt.so.%{soc}.hmac          \ | ||||||
|  | if [[ %{with staticlib} == 1 ]]; then       \ | ||||||
|  |   fipshmac -d $fipsdir                      \\\ | ||||||
|  |     $libdir/libcrypt.a                      \ | ||||||
|  |   if [[ %{without new_api} == 1 ]]; then    \ | ||||||
|  |     ln -s .libcrypt.a.hmac                  \\\ | ||||||
|  |       $fipsdir/libxcrypt.a.hmac             \ | ||||||
|  |   fi                                        \ | ||||||
|  | fi                                          \ | ||||||
|  | if [[ %{with compat_pkg} == 1 ]]; then      \ | ||||||
|  |   fipshmac -d $fipsdir                      \\\ | ||||||
|  |     $libdir/libcrypt.so.%{csov}             \ | ||||||
|  |   ln -s libcrypt.so.%{csov}.hmac            \\\ | ||||||
|  |     $fipsdir/libcrypt.so.%{csoc}.hmac       \ | ||||||
|  | fi                                          \ | ||||||
|  | %{nil} | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # Fail linking if there are undefined symbols. | ||||||
|  | # Required for proper ELF symbol versioning support. | ||||||
|  | %global _ld_strict_symbol_defs 1 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | Name:           libxcrypt | ||||||
|  | Version:        4.4.17 | ||||||
|  | Release:        1%{?dist} | ||||||
|  | Summary:        Extended crypt library for descrypt, md5crypt, bcrypt, and others | ||||||
|  | 
 | ||||||
|  | # For explicit license breakdown, see the | ||||||
|  | # LICENSING file in the source tarball. | ||||||
|  | License:        LGPLv2+ and BSD and Public Domain | ||||||
|  | URL:            https://github.com/besser82/%{name} | ||||||
|  | Source0:        %{url}/archive/v%{version}/%{name}-%{version}.tar.gz | ||||||
|  | 
 | ||||||
|  | # Patch 0000 - 2999: Backported patches from upstream. | ||||||
|  | 
 | ||||||
|  | # Patch 3000 - 5999: Backported patches from pull requests. | ||||||
|  | Patch3000:      libxcrypt-4.4.17-enable_LTO_build.patch | ||||||
|  | 
 | ||||||
|  | # Patch 6000 - 9999: Downstream patches. | ||||||
|  | 
 | ||||||
|  | BuildRequires:  autoconf | ||||||
|  | BuildRequires:  automake | ||||||
|  | BuildRequires:  fipscheck | ||||||
|  | BuildRequires:  gcc | ||||||
|  | BuildRequires:  glibc-devel           >= %{glibc_minver} | ||||||
|  | BuildRequires:  libtool | ||||||
|  | 
 | ||||||
|  | # We do not need to keep this forever. | ||||||
|  | %if !(0%{?fedora} > 31 || 0%{?rhel} > 10) | ||||||
|  | # Inherited from former libcrypt package. | ||||||
|  | Obsoletes:      libcrypt-nss           < %{glibc_minver} | ||||||
|  | Provides:       libcrypt-nss           = %{glibc_minver} | ||||||
|  | Provides:       libcrypt-nss%{?_isa}   = %{glibc_minver} | ||||||
|  | 
 | ||||||
|  | # Obsolete former libcrypt properly and provide a virtual libcrypt | ||||||
|  | # package as it has been done by the former packages, which were | ||||||
|  | # built by glibc before. | ||||||
|  | Obsoletes:      libcrypt               < %{glibc_minver} | ||||||
|  | Provides:       libcrypt               = %{glibc_minver} | ||||||
|  | Provides:       libcrypt%{?_isa}       = %{glibc_minver} | ||||||
|  | 
 | ||||||
|  | # Obsolete former libxcrypt-common properly. | ||||||
|  | Obsoletes:      %{name}-common         < 4.3.3-4 | ||||||
|  | Provides:       %{name}-common         = %{version}-%{release} | ||||||
|  | %endif | ||||||
|  | 
 | ||||||
|  | %if %{with new_api} && %{without compat_pkg} | ||||||
|  | Obsoletes:      %{name}-compat         < %{version}-%{release} | ||||||
|  | %endif | ||||||
|  | 
 | ||||||
|  | # We need a version of glibc, that doesn't build libcrypt anymore. | ||||||
|  | Requires:       glibc%{?_isa}         >= %{glibc_minver} | ||||||
|  | 
 | ||||||
|  | %if 0%{?fedora} >= 30 | ||||||
|  | Recommends:     mkpasswd | ||||||
|  | %endif | ||||||
|  | 
 | ||||||
|  | %description | ||||||
|  | libxcrypt is a modern library for one-way hashing of passwords.  It | ||||||
|  | supports a wide variety of both modern and historical hashing methods: | ||||||
|  | yescrypt, gost-yescrypt, scrypt, bcrypt, sha512crypt, sha256crypt, | ||||||
|  | md5crypt, SunMD5, sha1crypt, NT, bsdicrypt, bigcrypt, and descrypt. | ||||||
|  | It provides the traditional Unix crypt and crypt_r interfaces, as well | ||||||
|  | as a set of extended interfaces pioneered by Openwall Linux, crypt_rn, | ||||||
|  | crypt_ra, crypt_gensalt, crypt_gensalt_rn, and crypt_gensalt_ra. | ||||||
|  | 
 | ||||||
|  | libxcrypt is intended to be used by login(1), passwd(1), and other | ||||||
|  | similar programs; that is, to hash a small number of passwords during | ||||||
|  | an interactive authentication dialogue with a human. It is not suitable | ||||||
|  | for use in bulk password-cracking applications, or in any other situation | ||||||
|  | where speed is more important than careful handling of sensitive data. | ||||||
|  | However, it is intended to be fast and lightweight enough for use in | ||||||
|  | servers that must field thousands of login attempts per minute. | ||||||
|  | %if %{with new_api} | ||||||
|  | This version of the library does not provide the legacy API functions | ||||||
|  | that have been provided by glibc's libcrypt.so.1. | ||||||
|  | %endif | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | %if %{with compat_pkg} | ||||||
|  | %package        compat | ||||||
|  | Summary:        Compatibility library providing legacy API functions | ||||||
|  | 
 | ||||||
|  | Requires:       %{name}%{?_isa}        = %{version}-%{release} | ||||||
|  | Requires:       glibc%{?_isa}         >= %{glibc_minver} | ||||||
|  | 
 | ||||||
|  | %description    compat | ||||||
|  | This package contains the library providing the compatibility API | ||||||
|  | for applications that are linked against glibc's libxcrypt, or that | ||||||
|  | are still using the unsafe and deprecated, encrypt, encrypt_r, | ||||||
|  | setkey, setkey_r, and fcrypt functions, which are still required by | ||||||
|  | recent versions of POSIX, the Single UNIX Specification, and various | ||||||
|  | other standards. | ||||||
|  | 
 | ||||||
|  | All existing binary executables linked against glibc's libcrypt should | ||||||
|  | work unmodified with the library supplied by this package. | ||||||
|  | %endif | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | %package        devel | ||||||
|  | Summary:        Development files for %{name} | ||||||
|  | 
 | ||||||
|  | Conflicts:      man-pages              < %{man_pages_minver} | ||||||
|  | 
 | ||||||
|  | Requires:       %{name}%{?_isa}        = %{version}-%{release} | ||||||
|  | Requires:       glibc-devel%{?_isa}   >= %{glibc_minver} | ||||||
|  | 
 | ||||||
|  | %description    devel | ||||||
|  | The %{name}-devel package contains libraries and header files for | ||||||
|  | developing applications that use %{name}. | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | %if %{with staticlib} | ||||||
|  | %package        static | ||||||
|  | Summary:        Static library for -static linking with %{name} | ||||||
|  | 
 | ||||||
|  | Requires:       %{name}-devel%{?_isa}  = %{version}-%{release} | ||||||
|  | Requires:       glibc-devel%{?_isa}   >= %{glibc_minver} | ||||||
|  | Requires:       glibc-static%{?_isa}  >= %{glibc_minver} | ||||||
|  | 
 | ||||||
|  | %description    static | ||||||
|  | This package contains the libxcrypt static library for -static | ||||||
|  | linking. | ||||||
|  | 
 | ||||||
|  | You don't need this, unless you link statically, which is highly | ||||||
|  | discouraged. | ||||||
|  | %endif | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | %prep | ||||||
|  | %autosetup -p 1 | ||||||
|  | 
 | ||||||
|  | $(realpath ./autogen.sh) | ||||||
|  | 
 | ||||||
|  | %if %{with new_api} | ||||||
|  | cat << EOF >> README%{distname} | ||||||
|  | This version of the %{name} package ships the libcrypt.so.2 | ||||||
|  | library and does not provide the legacy API functions that have | ||||||
|  | been provided by glibc's libcrypt.so.1.  The removed functions | ||||||
|  | by name are encrypt, encrypt_r, setkey, setkey_r, and fcrypt. | ||||||
|  | %if %{with compat_pkg} | ||||||
|  | 
 | ||||||
|  | If you are using a third-party application that links against | ||||||
|  | those functions, or that is linked against glibc's libcrypt, | ||||||
|  | you may need to install the %{name}-compat package manually. | ||||||
|  | 
 | ||||||
|  | All existing binary executables linked against glibc's libcrypt | ||||||
|  | should work unmodified with the libcrypt.so.1 library supplied | ||||||
|  | by the %{name}-compat package. | ||||||
|  | %endif | ||||||
|  | EOF | ||||||
|  | %endif | ||||||
|  | 
 | ||||||
|  | %if %{with enosys_stubs} | ||||||
|  | cat << EOF >> README.posix | ||||||
|  | This version of the libcrypt.so.1 library has entirely removed | ||||||
|  | the functionality of the encrypt, encrypt_r, setkey, setkey_r, | ||||||
|  | and fcrypt functions, while keeping fully binary compatibility | ||||||
|  | with existing (third-party) applications possibly still using | ||||||
|  | those funtions.  If such an application attemps to call one of | ||||||
|  | these functions, the corresponding function will indicate that | ||||||
|  | it is not supported by the system in a POSIX-compliant way. | ||||||
|  | 
 | ||||||
|  | For security reasons, the encrypt and encrypt_r functions will | ||||||
|  | also overwrite their data-block argument with random bits. | ||||||
|  | 
 | ||||||
|  | All existing binary executables linked against glibc's libcrypt | ||||||
|  | should work unmodified with the provided version of the | ||||||
|  | libcrypt.so.1 library in place. | ||||||
|  | EOF | ||||||
|  | %endif | ||||||
|  | 
 | ||||||
|  | %if %{with staticlib} | ||||||
|  | cat << EOF >> README.static | ||||||
|  | Applications that use certain legacy APIs supplied by glibc’s | ||||||
|  | libcrypt (encrypt, encrypt_r, setkey, setkey_r, and fcrypt) | ||||||
|  | cannot be compiled nor linked against the supplied build of | ||||||
|  | the object files provided in the static library libcrypt.a. | ||||||
|  | EOF | ||||||
|  | %endif | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | %build | ||||||
|  | mkdir -p %{_vpath_builddir} | ||||||
|  | 
 | ||||||
|  | # Build the default system library. | ||||||
|  | pushd %{_vpath_builddir} | ||||||
|  | %configure                                       \ | ||||||
|  |   %{common_configure_options}                    \ | ||||||
|  |   --enable-hashes=%{hash_methods}                \ | ||||||
|  |   --enable-obsolete-api=%{obsolete_api}          \ | ||||||
|  | %if %{with new_api} | ||||||
|  |   --enable-obsolete-api-enosys=%{obsolete_api} | ||||||
|  | %else | ||||||
|  |   --enable-obsolete-api-enosys=%{enosys_stubs} | ||||||
|  | %endif | ||||||
|  | %make_build | ||||||
|  | popd | ||||||
|  | 
 | ||||||
|  | %if %{with compat_pkg} | ||||||
|  | mkdir -p %{_vpath_builddir}-compat | ||||||
|  | 
 | ||||||
|  | # Build the compatibility library. | ||||||
|  | pushd %{_vpath_builddir}-compat | ||||||
|  | %configure                                       \ | ||||||
|  |   %{common_configure_options}                    \ | ||||||
|  |   --enable-hashes=%{compat_methods}              \ | ||||||
|  |   --enable-obsolete-api=%{compat_api}            \ | ||||||
|  |   --enable-obsolete-api-enosys=%{enosys_stubs} | ||||||
|  | %make_build | ||||||
|  | popd | ||||||
|  | %endif | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | %install | ||||||
|  | %if %{with compat_pkg} | ||||||
|  | # Install the compatibility library. | ||||||
|  | %make_install -C %{_vpath_builddir}-compat | ||||||
|  | 
 | ||||||
|  | # Cleanup everything we do not need from the compatibility library. | ||||||
|  | find %{buildroot} -xtype f -not -name 'libcrypt.so.%{csoc}*' -delete -print | ||||||
|  | find %{buildroot} -type l -not -name 'libcrypt.so.%{csoc}*' -delete -print | ||||||
|  | %endif | ||||||
|  | 
 | ||||||
|  | # Install the default system library. | ||||||
|  | %make_install -C %{_vpath_builddir} | ||||||
|  | 
 | ||||||
|  | # Get rid of libtool crap. | ||||||
|  | find %{buildroot} -name '*.la' -delete -print | ||||||
|  | 
 | ||||||
|  | # Install documentation to shared %%_pkgdocdir. | ||||||
|  | install -Dpm 0644 -t %{buildroot}%{_pkgdocdir} \ | ||||||
|  |   ChangeLog NEWS README* THANKS TODO | ||||||
|  | 
 | ||||||
|  | # Drop README.md as it is identical to README. | ||||||
|  | rm -f %{buildroot}%{_pkgdocdir}/README.md | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | %check | ||||||
|  | build_dirs="%{_vpath_builddir}" | ||||||
|  | %if %{with compat_pkg} | ||||||
|  | build_dirs="${build_dirs} %{_vpath_builddir}-compat" | ||||||
|  | %endif | ||||||
|  | for dir in ${build_dirs}; do | ||||||
|  |   %make_build -C ${dir} check || \ | ||||||
|  |     { | ||||||
|  |       rc=$?; | ||||||
|  |       echo "-----BEGIN TESTLOG: ${dir}-----"; | ||||||
|  |       cat ${dir}/test-suite.log; | ||||||
|  |       echo "-----END TESTLOG: ${dir}-----"; | ||||||
|  |       exit $rc; | ||||||
|  |     } | ||||||
|  | done | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | %ldconfig_scriptlets | ||||||
|  | %if %{with compat_pkg} | ||||||
|  | %ldconfig_scriptlets compat | ||||||
|  | %endif | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | %files | ||||||
|  | %dir %{_fipsdir} | ||||||
|  | %doc %dir %{_pkgdocdir} | ||||||
|  | %doc %{_pkgdocdir}/NEWS | ||||||
|  | %doc %{_pkgdocdir}/README | ||||||
|  | %if %{with new_api} | ||||||
|  | %doc %{_pkgdocdir}/README%{distname} | ||||||
|  | %endif | ||||||
|  | %if %{with enosys_stubs} && %{without compat_pkg} | ||||||
|  | %doc %{_pkgdocdir}/README.posix | ||||||
|  | %endif | ||||||
|  | %doc %{_pkgdocdir}/THANKS | ||||||
|  | %license AUTHORS COPYING.LIB LICENSING | ||||||
|  | %{_fipsdir}/libcrypt.so.%{soc}.hmac | ||||||
|  | %{_fipsdir}/libcrypt.so.%{sov}.hmac | ||||||
|  | %{_libdir}/libcrypt.so.%{soc} | ||||||
|  | %{_libdir}/libcrypt.so.%{sov} | ||||||
|  | %{_mandir}/man5/crypt.5* | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | %if %{with compat_pkg} | ||||||
|  | %files          compat | ||||||
|  | %dir %{_fipsdir} | ||||||
|  | %if %{with enosys_stubs} | ||||||
|  | %doc %{_pkgdocdir}/README.posix | ||||||
|  | %endif | ||||||
|  | %{_fipsdir}/libcrypt.so.%{csoc}.hmac | ||||||
|  | %{_fipsdir}/libcrypt.so.%{csov}.hmac | ||||||
|  | %{_libdir}/libcrypt.so.%{csoc} | ||||||
|  | %{_libdir}/libcrypt.so.%{csov} | ||||||
|  | %endif | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | %files          devel | ||||||
|  | %doc %{_pkgdocdir}/ChangeLog | ||||||
|  | %doc %{_pkgdocdir}/TODO | ||||||
|  | %{_libdir}/libcrypt.so | ||||||
|  | %if %{without new_api} | ||||||
|  | %{_libdir}/libxcrypt.so | ||||||
|  | %endif | ||||||
|  | %{_includedir}/crypt.h | ||||||
|  | %if %{without new_api} | ||||||
|  | %{_includedir}/xcrypt.h | ||||||
|  | %endif | ||||||
|  | %{_libdir}/pkgconfig/libcrypt.pc | ||||||
|  | %{_libdir}/pkgconfig/%{name}.pc | ||||||
|  | %{_mandir}/man3/crypt.3* | ||||||
|  | %{_mandir}/man3/crypt_r.3* | ||||||
|  | %{_mandir}/man3/crypt_ra.3* | ||||||
|  | %{_mandir}/man3/crypt_rn.3* | ||||||
|  | %{_mandir}/man3/crypt_checksalt.3* | ||||||
|  | %{_mandir}/man3/crypt_gensalt.3* | ||||||
|  | %{_mandir}/man3/crypt_gensalt_ra.3* | ||||||
|  | %{_mandir}/man3/crypt_gensalt_rn.3* | ||||||
|  | %{_mandir}/man3/crypt_preferred_method.3* | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | %if %{with staticlib} | ||||||
|  | %files          static | ||||||
|  | %dir %{_fipsdir} | ||||||
|  | %doc %{_pkgdocdir}/README.static | ||||||
|  | %{_fipsdir}/libcrypt.a.hmac | ||||||
|  | %if %{without new_api} | ||||||
|  | %{_fipsdir}/libxcrypt.a.hmac | ||||||
|  | %endif | ||||||
|  | %{_libdir}/libcrypt.a | ||||||
|  | %if %{without new_api} | ||||||
|  | %{_libdir}/libxcrypt.a | ||||||
|  | %endif | ||||||
|  | %endif | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | %changelog | ||||||
|  | * Sun Aug 23 2020 Björn Esser <besser82@fedoraproject.org> - 4.4.17-1 | ||||||
|  | - New upstream release | ||||||
|  | 
 | ||||||
|  | * Sat Aug 15 2020 Björn Esser <besser82@fedoraproject.org> - 4.4.16-7 | ||||||
|  | - Add a patch to add support for LTO builds | ||||||
|  | - Enable LTO | ||||||
|  | - Add a patch to fix Wformat-overflow | ||||||
|  | 
 | ||||||
|  | * Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 4.4.16-6 | ||||||
|  | - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild | ||||||
|  | 
 | ||||||
|  | * Tue Jun 30 2020 Jeff Law <law@redhat.com> - 4.4.16-5 | ||||||
|  | - Disable LTO | ||||||
|  | 
 | ||||||
|  | * Fri Jun 19 2020 Björn Esser <besser82@fedoraproject.org> - 4.4.16-4 | ||||||
|  | - Trim %%changelog starting with v4.4.0 | ||||||
|  | - Remove memcheck conditional | ||||||
|  | 
 | ||||||
|  | * Sat Apr 25 2020 Björn Esser <besser82@fedoraproject.org> - 4.4.16-3 | ||||||
|  | - Explicitly force linking with '-Wl,-z,defs' | ||||||
|  | 
 | ||||||
|  | * Fri Apr 24 2020 Björn Esser <besser82@fedoraproject.org> - 4.4.16-2 | ||||||
|  | - Move fipscheck hmac checksums to %%{_libdir}/fipscheck | ||||||
|  | 
 | ||||||
|  | * Sat Apr 04 2020 Björn Esser <besser82@fedoraproject.org> - 4.4.16-1 | ||||||
|  | - New upstream release | ||||||
|  | 
 | ||||||
|  | * Thu Apr 02 2020 Björn Esser <besser82@fedoraproject.org> - 4.4.15-2 | ||||||
|  | - Move library from %%_lib to %%_libdir | ||||||
|  | 
 | ||||||
|  | * Wed Feb 26 2020 Björn Esser <besser82@fedoraproject.org> - 4.4.15-1 | ||||||
|  | - New upstream release | ||||||
|  | 
 | ||||||
|  | * Mon Feb 17 2020 Björn Esser <besser82@fedoraproject.org> - 4.4.14-1 | ||||||
|  | - New upstream release | ||||||
|  | 
 | ||||||
|  | * Sun Feb 16 2020 Björn Esser <besser82@fedoraproject.org> - 4.4.13-1 | ||||||
|  | - New upstream release | ||||||
|  | 
 | ||||||
|  | * Tue Feb 11 2020 Björn Esser <besser82@fedoraproject.org> - 4.4.12-3 | ||||||
|  | - Add an upstream patch to fix a typo in the documentation | ||||||
|  | 
 | ||||||
|  | * Wed Feb 05 2020 Björn Esser <besser82@fedoraproject.org> - 4.4.12-2 | ||||||
|  | - Add two upstream patches to resolve minor bugs | ||||||
|  | 
 | ||||||
|  | * Thu Jan 30 2020 Björn Esser <besser82@fedoraproject.org> - 4.4.12-1 | ||||||
|  | - New upstream release | ||||||
|  | 
 | ||||||
|  | * Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 4.4.11-2 | ||||||
|  | - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild | ||||||
|  | 
 | ||||||
|  | * Sat Jan 18 2020 Björn Esser <besser82@fedoraproject.org> - 4.4.11-1 | ||||||
|  | - New upstream release | ||||||
|  | 
 | ||||||
|  | * Sun Dec 15 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.10-2 | ||||||
|  | - Add two upstream patches to fix build with upcoming GCC-10 | ||||||
|  | 
 | ||||||
|  | * Wed Sep 18 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.10-1 | ||||||
|  | - New upstream release | ||||||
|  | 
 | ||||||
|  | * Sat Sep 07 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.9-1 | ||||||
|  | - New upstream release (#1750010) | ||||||
|  | 
 | ||||||
|  | * Sun Sep 01 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.8-1 | ||||||
|  | - New upstream release | ||||||
|  | 
 | ||||||
|  | * Sat Aug 24 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.7-1 | ||||||
|  | - New upstream release | ||||||
|  | 
 | ||||||
|  | * Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 4.4.6-3 | ||||||
|  | - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild | ||||||
|  | 
 | ||||||
|  | * Mon Jun 24 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.6-2 | ||||||
|  | - Build all hash methods for the compat package | ||||||
|  | - Add a patch to fix Wformat in crypt-kat.c | ||||||
|  | 
 | ||||||
|  | * Sun May 05 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.6-1 | ||||||
|  | - New upstream release | ||||||
|  | 
 | ||||||
|  | * Sat May 04 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.5-1 | ||||||
|  | - New upstream release (#1706419) | ||||||
|  | - Add patch to remove an unneeded union keyword | ||||||
|  | - Add patch to make unalignment test really unaligned | ||||||
|  | 
 | ||||||
|  | * Fri Mar 15 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.4-2 | ||||||
|  | - Change Recommends: whois-mkpasswd to Fedora 30 and later (#1687870) | ||||||
|  | 
 | ||||||
|  | * Mon Mar 04 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.4-1 | ||||||
|  | - New upstream release | ||||||
|  | 
 | ||||||
|  | * Tue Feb 19 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.3-10 | ||||||
|  | - Fix versioned requirements on glibc | ||||||
|  | 
 | ||||||
|  | * Tue Feb 19 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.3-9 | ||||||
|  | - Fix conditional in __spec_install_post | ||||||
|  | 
 | ||||||
|  | * Tue Feb 19 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.3-8 | ||||||
|  | - Update Obsoletes, Provides, and Requires to glibc 2.27 | ||||||
|  | - Add Recommends: whois-mkpasswd for Fedora | ||||||
|  | - Optimize installation of the documentation files | ||||||
|  | - Fix %%description | ||||||
|  | - Use an absolute path for the configure script and srcdir | ||||||
|  | 
 | ||||||
|  | * Tue Feb 19 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.3-7 | ||||||
|  | - Add patch to fix the output formatting of a test | ||||||
|  | 
 | ||||||
|  | * Wed Feb 06 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.3-6 | ||||||
|  | - Always build all supported hash methods | ||||||
|  | - Drop distcheck at the end of %%check stage | ||||||
|  | 
 | ||||||
|  | * Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 4.4.3-5 | ||||||
|  | - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild | ||||||
|  | 
 | ||||||
|  | * Wed Jan 30 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.3-4 | ||||||
|  | - Add a README.posix file with information about the stub functions | ||||||
|  | - Add a README.static file with information about the static library | ||||||
|  | 
 | ||||||
|  | * Wed Jan 30 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.3-3 | ||||||
|  | - Replace unsafe functions in libxcrypt-compat with stubs (#1670735) | ||||||
|  | 
 | ||||||
|  | * Thu Jan 24 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.3-2 | ||||||
|  | - Fix and simplify the conditionals for the compat package | ||||||
|  | - Add an option to replace unsafe functions in the compat lib with a stub | ||||||
|  | - Add patch to fix another possible format-overflow | ||||||
|  | 
 | ||||||
|  | * Thu Jan 24 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.3-1 | ||||||
|  | - New upstream release | ||||||
|  | 
 | ||||||
|  | * Thu Jan 24 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.2-8 | ||||||
|  | - Optimize file removal for compatibility library | ||||||
|  | 
 | ||||||
|  | * Mon Jan 21 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.2-7 | ||||||
|  | - Add two upstream patches to fix build with GCC 9 | ||||||
|  | 
 | ||||||
|  | * Mon Jan 21 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.2-6 | ||||||
|  | - Add upstream patch to add proper C++-guards in <xcrypt.h> | ||||||
|  | 
 | ||||||
|  | * Mon Jan 14 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.2-5 | ||||||
|  | - Build the compat package with glibc hashing methods only | ||||||
|  | - Add an option to disable the compat-package for future use | ||||||
|  | 
 | ||||||
|  | * Mon Jan 14 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.2-4 | ||||||
|  | - Bump SO-name for Fedora >= 30 and enable compat package (#1666033) | ||||||
|  | - Add distribution README file | ||||||
|  | - Update description of the compat package | ||||||
|  | - Conditionally remove non-built hashing methods from description | ||||||
|  | 
 | ||||||
|  | * Sun Dec 23 2018 Björn Esser <besser82@fedoraproject.org> - 4.4.2-3 | ||||||
|  | - Remove architecture bits from Recommends | ||||||
|  | 
 | ||||||
|  | * Sun Dec 23 2018 Björn Esser <besser82@fedoraproject.org> - 4.4.2-2 | ||||||
|  | - Update summary | ||||||
|  | 
 | ||||||
|  | * Sat Dec 22 2018 Björn Esser <besser82@fedoraproject.org> - 4.4.2-1 | ||||||
|  | - New upstream release | ||||||
|  | 
 | ||||||
|  | * Thu Dec 06 2018 Björn Esser <besser82@fedoraproject.org> - 4.4.1-1 | ||||||
|  | - New upstream release | ||||||
|  | 
 | ||||||
|  | * Tue Dec 04 2018 Björn Esser <besser82@fedoraproject.org> - 4.4.0-5 | ||||||
|  | - Sync -fno-plt patch with upstream commit | ||||||
|  | 
 | ||||||
|  | * Tue Dec 04 2018 Björn Esser <besser82@fedoraproject.org> - 4.4.0-4 | ||||||
|  | - Backport upstream commit to fix a memory leak from a static pointer | ||||||
|  | 
 | ||||||
|  | * Tue Dec 04 2018 Björn Esser <besser82@fedoraproject.org> - 4.4.0-3 | ||||||
|  | - Backport upstream PR to build with -fno-plt optimization | ||||||
|  | 
 | ||||||
|  | * Mon Nov 26 2018 Björn Esser <besser82@fedoraproject.org> - 4.4.0-2 | ||||||
|  | - Backport upstream commit to use a safer strcpy for the NT method | ||||||
|  | - Backport upstream generating base64 encoded output for NT gensalt | ||||||
|  | - Backport upstream commit to require less rbytes for NT gensalt | ||||||
|  | - Backport upstream commit to test incremental hmac-sha256 computation | ||||||
|  | - Add Recommends: mkpasswd for Fedora >= 30 | ||||||
|  | 
 | ||||||
|  | * Tue Nov 20 2018 Björn Esser <besser82@fedoraproject.org> - 4.4.0-1 | ||||||
|  | - New upstream release | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user