Blame libxcrypt.spec

cb277a8
# Build with new api?
a164543
%if 0%{?fedora} >= 30 || 0%{?rhel} >= 9
a164543
%bcond_without new_api
a164543
%else
60f1f83
%bcond_with    new_api
a164543
%endif
cb277a8
9633540
d05cf05
# Build the compat package?
7dd854a
%if !(0%{?fedora} >= 999 || 0%{?rhel} >= 99) && %{with new_api}
d05cf05
%bcond_without compat_pkg
904ed6a
%else
904ed6a
%bcond_with    compat_pkg
d05cf05
%endif
cb277a8
9633540
4125fd1
# Replace obsolete functions with a stub?
acd21d6
%if (0%{?fedora} >= 30 || 0%{?rhel} >= 9) && %{with compat_pkg}
4125fd1
%bcond_without enosys_stubs
4125fd1
%else
4125fd1
%bcond_with    enosys_stubs
4125fd1
%endif
4125fd1
9633540
5e0cebb
# Build the static library?
5e0cebb
%bcond_without staticlib
5e0cebb
9633540
177e484
# When we are bootstrapping, we omit the
177e484
# verification of the source tarball with GnuPG.
5f3fa43
%bcond_with    bootstrap
177e484
177e484
1debfd9
# Shared object version of libcrypt.
cb277a8
%if %{with new_api}
60f1f83
%global soc  2
60f1f83
%global sol  0
60f1f83
%global sof  0
60f1f83
%global sov  %{soc}.%{sol}.%{sof}
cb277a8
%else
60f1f83
%global soc  1
60f1f83
%global sol  1
60f1f83
%global sof  0
60f1f83
%global sov  %{soc}.%{sol}.%{sof}
cb277a8
%endif
cb277a8
904ed6a
%if %{with compat_pkg}
904ed6a
%global csoc 1
904ed6a
%global csol 1
904ed6a
%global csof 0
904ed6a
%global csov %{csoc}.%{csol}.%{csof}
904ed6a
%endif
904ed6a
cb277a8
a00e888
# First version of glibc built without libcrypt.
2ce8089
%global glibc_minver     2.28
706b45b
706b45b
706b45b
# The libxcrypt-devel package conflicts with out-dated manuals
706b45b
# shipped with the man-pages packages *before* this EVR.
706b45b
%global man_pages_minver 4.15-3
a00e888
a00e888
3a133e5
# Hash methods and API supported by libcrypt.
3a133e5
# NEVER EVER touch this, if you do NOT know what you are doing!
45a9a1a
%global hash_methods   all
45a9a1a
3a133e5
%if %{with new_api}
3a133e5
%global obsolete_api   no
3a133e5
%else
3a133e5
%global obsolete_api   glibc
3a133e5
%endif
3a133e5
904ed6a
%if %{with compat_pkg}
86e645e
%global compat_methods all
904ed6a
%global compat_api     glibc
904ed6a
%endif
904ed6a
9633540
9633540
# Do we replace the obsolete API functions with stubs?
4125fd1
%if %{with enosys_stubs}
4125fd1
%global enosys_stubs   yes
4125fd1
%else
4125fd1
%global enosys_stubs   no
4125fd1
%endif
4125fd1
3a133e5
862c814
# Needed for the distribution README file.
862c814
%if 0%{?fedora}
862c814
%global distname .fedora
862c814
%else
862c814
%if 0%{?rhel}
862c814
%global distname .rhel
862c814
%else
862c814
%global distname .distribution
862c814
%endif
862c814
%endif
862c814
9633540
cb277a8
# Needed for out-of-tree builds.
a9e5473
%global _configure "$(realpath ../configure)"
cb277a8
1debfd9
3a133e5
# Common configure options.
3a133e5
%global common_configure_options           \\\
1999735
  --disable-failure-tokens                 \\\
3a133e5
  --disable-silent-rules                   \\\
3a133e5
  --enable-shared                          \\\
5e0cebb
%if %{with staticlib}                      \
3a133e5
  --enable-static                          \\\
5e0cebb
%else                                      \
5e0cebb
  --disable-static                         \\\
5e0cebb
%endif                                     \
56fc361
  --disable-valgrind                       \\\
a9e5473
  --srcdir=$(realpath ..)                  \\\
3a133e5
  --with-pkgconfigdir=%{_libdir}/pkgconfig
3a133e5
3a133e5
0a6250d
# Macros for shorthand.
0a6250d
%global _fipsdir %{_libdir}/fipscheck
0a6250d
0a6250d
1debfd9
# Add generation of HMAC checksums of the final stripped
1debfd9
# binaries.  %%define with lazy globbing is used here
1debfd9
# intentionally, because using %%global does not work.
0a6250d
%define __spec_install_post                 \
0a6250d
%{?__debug_package:%{__debug_install_post}} \
0a6250d
%{__arch_install_post}                      \
0a6250d
%{__os_install_post}                        \
0a6250d
libdir="%{buildroot}%{_libdir}"             \
0a6250d
fipsdir="$libdir/fipscheck"                 \
0a6250d
mkdir -p $fipsdir                           \
0a6250d
fipshmac -d $fipsdir                        \\\
0a6250d
  $libdir/libcrypt.so.%{sov}                \
0a6250d
ln -s libcrypt.so.%{sov}.hmac               \\\
0a6250d
  $fipsdir/libcrypt.so.%{soc}.hmac          \
0a6250d
if [[ %{with staticlib} == 1 ]]; then       \
0a6250d
  fipshmac -d $fipsdir                      \\\
0a6250d
    $libdir/libcrypt.a                      \
0a6250d
  if [[ %{without new_api} == 1 ]]; then    \
0a6250d
    ln -s .libcrypt.a.hmac                  \\\
0a6250d
      $fipsdir/libxcrypt.a.hmac             \
0a6250d
  fi                                        \
0a6250d
fi                                          \
0a6250d
if [[ %{with compat_pkg} == 1 ]]; then      \
0a6250d
  fipshmac -d $fipsdir                      \\\
0a6250d
    $libdir/libcrypt.so.%{csov}             \
0a6250d
  ln -s libcrypt.so.%{csov}.hmac            \\\
0a6250d
    $fipsdir/libcrypt.so.%{csoc}.hmac       \
0a6250d
fi                                          \
1debfd9
%{nil}
1debfd9
1debfd9
53b39d5
# Fail linking if there are undefined symbols.
53b39d5
# Required for proper ELF symbol versioning support.
53b39d5
%global _ld_strict_symbol_defs 1
53b39d5
53b39d5
1debfd9
Name:           libxcrypt
bb032f0
Version:        4.4.31
9d106ed
Release:        3%{?dist}
b718b8b
Summary:        Extended crypt library for descrypt, md5crypt, bcrypt, and others
1debfd9
1debfd9
# For explicit license breakdown, see the
1debfd9
# LICENSING file in the source tarball.
c54bafd
License:        LGPLv2+ and BSD and Public Domain
1debfd9
URL:            https://github.com/besser82/%{name}
177e484
Source0:        %{url}/releases/download/v%{version}/%{name}-%{version}.tar.xz
177e484
Source1:        %{url}/releases/download/v%{version}/%{name}-%{version}.tar.xz.asc
177e484
Source2:        %{url}/releases/download/v%{version}/%{name}-gpgkey.gpg
177e484
Source3:        %{url}/releases/download/v%{version}/%{name}-%{version}.tar.xz.sha256sum
1412649
1999735
# Patch 0000 - 2999: Backported patches from upstream.
4015b8c
1999735
# Patch 3000 - 5999: Backported patches from pull requests.
4015b8c
1999735
# Patch 6000 - 9999: Downstream patches.
b112496
1debfd9
BuildRequires:  fipscheck
f53d24b
BuildRequires:  gcc
9d106ed
BuildRequires:  glibc-devel                  >= %{glibc_minver}
5ead205
BuildRequires:  make
da216b6
BuildRequires:  perl-interpreter
9d106ed
BuildRequires:  perl(Class::Struct)
9d106ed
BuildRequires:  perl(Cwd)
9d106ed
BuildRequires:  perl(Exporter)
9d106ed
BuildRequires:  perl(File::Spec::Functions)
9d106ed
BuildRequires:  perl(File::Temp)
da216b6
BuildRequires:  perl(FindBin)
9d106ed
BuildRequires:  perl(if)
da216b6
BuildRequires:  perl(lib)
da216b6
BuildRequires:  perl(open)
9d106ed
BuildRequires:  perl(POSIX)
9d106ed
BuildRequires:  perl(utf8)
9d106ed
BuildRequires:  perl(:VERSION)               >= 5.14.0
9d106ed
BuildRequires:  perl(warnings)
1debfd9
177e484
%if %{without bootstrap}
177e484
# Possibly not available during bootstrap.
177e484
BuildRequires:  gnupg2
177e484
BuildRequires:  %{_bindir}/sha256sum
177e484
%endif
177e484
208761d
# We do not need to keep this forever.
688fb03
%if !(0%{?fedora} > 31 || 0%{?rhel} > 9)
208761d
# Inherited from former libcrypt package.
860bcd6
Obsoletes:      libcrypt-nss           < %{glibc_minver}
860bcd6
Provides:       libcrypt-nss           = %{glibc_minver}
860bcd6
Provides:       libcrypt-nss%{?_isa}   = %{glibc_minver}
8e995be
1999735
# Obsolete former libcrypt properly and provide a virtual libcrypt
1999735
# package as it has been done by the former packages, which were
1999735
# built by glibc before.
860bcd6
Obsoletes:      libcrypt               < %{glibc_minver}
860bcd6
Provides:       libcrypt               = %{glibc_minver}
860bcd6
Provides:       libcrypt%{?_isa}       = %{glibc_minver}
8e995be
d692c1e
# Obsolete former libxcrypt-common properly.
860bcd6
Obsoletes:      %{name}-common         < 4.3.3-4
860bcd6
Provides:       %{name}-common         = %{version}-%{release}
1999735
%endif
cb277a8
904ed6a
%if %{with new_api} && %{without compat_pkg}
860bcd6
Obsoletes:      %{name}-compat         < %{version}-%{release}
904ed6a
%endif
904ed6a
8455ddf
%if !(0%{?fedora} > 34 || 0%{?rhel} > 9)
a00e888
# We need a version of glibc, that doesn't build libcrypt anymore.
860bcd6
Requires:       glibc%{?_isa}         >= %{glibc_minver}
136ca64
%endif
a00e888
ee59f96
%if 0%{?fedora} >= 30
a9e5473
Recommends:     mkpasswd
d15f4b7
%endif
cb277a8
1debfd9
%description
1debfd9
libxcrypt is a modern library for one-way hashing of passwords.  It
cb277a8
supports a wide variety of both modern and historical hashing methods:
0671454
yescrypt, gost-yescrypt, scrypt, bcrypt, sha512crypt, sha256crypt,
0671454
md5crypt, SunMD5, sha1crypt, NT, bsdicrypt, bigcrypt, and descrypt.
0671454
It provides the traditional Unix crypt and crypt_r interfaces, as well
0671454
as a set of extended interfaces pioneered by Openwall Linux, crypt_rn,
0671454
crypt_ra, crypt_gensalt, crypt_gensalt_rn, and crypt_gensalt_ra.
1debfd9
1debfd9
libxcrypt is intended to be used by login(1), passwd(1), and other
0671454
similar programs; that is, to hash a small number of passwords during
0671454
an interactive authentication dialogue with a human. It is not suitable
0671454
for use in bulk password-cracking applications, or in any other situation
0671454
where speed is more important than careful handling of sensitive data.
0671454
However, it is intended to be fast and lightweight enough for use in
0671454
servers that must field thousands of login attempts per minute.
0671454
%if %{with new_api}
cb277a8
This version of the library does not provide the legacy API functions
cb277a8
that have been provided by glibc's libcrypt.so.1.
0671454
%endif
cb277a8
cb277a8
904ed6a
%if %{with compat_pkg}
cb277a8
%package        compat
cb277a8
Summary:        Compatibility library providing legacy API functions
cb277a8
2791665
# For testing the glibc compatibility symbols.
2791665
BuildRequires:  libxcrypt-compat
2791665
860bcd6
Requires:       %{name}%{?_isa}        = %{version}-%{release}
136ca64
8455ddf
%if !(0%{?fedora} > 34 || 0%{?rhel} > 9)
136ca64
# We need a version of glibc, that doesn't build libcrypt anymore.
860bcd6
Requires:       glibc%{?_isa}         >= %{glibc_minver}
136ca64
%endif
cb277a8
cb277a8
%description    compat
f969693
This package contains the library providing the compatibility API
f969693
for applications that are linked against glibc's libxcrypt, or that
f969693
are still using the unsafe and deprecated, encrypt, encrypt_r,
f969693
setkey, setkey_r, and fcrypt functions, which are still required by
f969693
recent versions of POSIX, the Single UNIX Specification, and various
f969693
other standards.
cb277a8
cb277a8
All existing binary executables linked against glibc's libcrypt should
f969693
work unmodified with the library supplied by this package.
cb277a8
%endif
1debfd9
1debfd9
1debfd9
%package        devel
1debfd9
Summary:        Development files for %{name}
1debfd9
706b45b
Conflicts:      man-pages              < %{man_pages_minver}
3716dd8
860bcd6
Requires:       %{name}%{?_isa}        = %{version}-%{release}
860bcd6
Requires:       glibc-devel%{?_isa}   >= %{glibc_minver}
1debfd9
1debfd9
%description    devel
1debfd9
The %{name}-devel package contains libraries and header files for
1debfd9
developing applications that use %{name}.
1debfd9
1debfd9
5e0cebb
%if %{with staticlib}
1debfd9
%package        static
1debfd9
Summary:        Static library for -static linking with %{name}
1debfd9
860bcd6
Requires:       %{name}-devel%{?_isa}  = %{version}-%{release}
860bcd6
Requires:       glibc-devel%{?_isa}   >= %{glibc_minver}
860bcd6
Requires:       glibc-static%{?_isa}  >= %{glibc_minver}
1debfd9
1debfd9
%description    static
7555571
This package contains the libxcrypt static library for -static
cb277a8
linking.
cb277a8
cb277a8
You don't need this, unless you link statically, which is highly
cb277a8
discouraged.
5e0cebb
%endif
1debfd9
1debfd9
1debfd9
%prep
177e484
%if %{without bootstrap}
177e484
# Omitted during bootstrap.
177e484
%{gpgverify} --keyring=%{SOURCE2} --signature=%{SOURCE1} --data=%{SOURCE0}
177e484
pushd %{_sourcedir}
177e484
sha256sum -c %{SOURCE3}
177e484
popd
177e484
%endif
3f81c43
177e484
%autosetup -p 1
3f81c43
862c814
%if %{with new_api}
a9e5473
cat << EOF >> README%{distname}
52f5ae5
This version of the %{name} package ships the libcrypt.so.2
862c814
library and does not provide the legacy API functions that have
862c814
been provided by glibc's libcrypt.so.1.  The removed functions
862c814
by name are encrypt, encrypt_r, setkey, setkey_r, and fcrypt.
d05cf05
%if %{with compat_pkg}
862c814
862c814
If you are using a third-party application that links against
862c814
those functions, or that is linked against glibc's libcrypt,
862c814
you may need to install the %{name}-compat package manually.
862c814
862c814
All existing binary executables linked against glibc's libcrypt
862c814
should work unmodified with the libcrypt.so.1 library supplied
862c814
by the %{name}-compat package.
d05cf05
%endif
862c814
EOF
862c814
%endif
3f81c43
2e32018
%if %{with enosys_stubs}
a9e5473
cat << EOF >> README.posix
2e32018
This version of the libcrypt.so.1 library has entirely removed
2e32018
the functionality of the encrypt, encrypt_r, setkey, setkey_r,
2e32018
and fcrypt functions, while keeping fully binary compatibility
2e32018
with existing (third-party) applications possibly still using
2e32018
those funtions.  If such an application attemps to call one of
2e32018
these functions, the corresponding function will indicate that
2e32018
it is not supported by the system in a POSIX-compliant way.
2e32018
2e32018
For security reasons, the encrypt and encrypt_r functions will
2e32018
also overwrite their data-block argument with random bits.
2e32018
2e32018
All existing binary executables linked against glibc's libcrypt
2e32018
should work unmodified with the provided version of the
2e32018
libcrypt.so.1 library in place.
2e32018
EOF
2e32018
%endif
3f81c43
5e0cebb
%if %{with staticlib}
a9e5473
cat << EOF >> README.static
c001230
Applications that use certain legacy APIs supplied by glibc’s
c001230
libcrypt (encrypt, encrypt_r, setkey, setkey_r, and fcrypt)
c001230
cannot be compiled nor linked against the supplied build of
c001230
the object files provided in the static library libcrypt.a.
c001230
EOF
5e0cebb
%endif
1debfd9
1debfd9
1debfd9
%build
a9e5473
mkdir -p %{_vpath_builddir}
3f81c43
aaff10a
# Build the default system library.
cb277a8
pushd %{_vpath_builddir}
4125fd1
%configure                                       \
4125fd1
  %{common_configure_options}                    \
4125fd1
  --enable-hashes=%{hash_methods}                \
4125fd1
  --enable-obsolete-api=%{obsolete_api}          \
4125fd1
%if %{with new_api}
4125fd1
  --enable-obsolete-api-enosys=%{obsolete_api}
4125fd1
%else
4125fd1
  --enable-obsolete-api-enosys=%{enosys_stubs}
4125fd1
%endif
cb277a8
%make_build
0564db8
%make_build test-programs
cb277a8
popd
aaff10a
904ed6a
%if %{with compat_pkg}
a9e5473
mkdir -p %{_vpath_builddir}-compat
a9e5473
aaff10a
# Build the compatibility library.
cb277a8
pushd %{_vpath_builddir}-compat
4125fd1
%configure                                       \
4125fd1
  %{common_configure_options}                    \
4125fd1
  --enable-hashes=%{compat_methods}              \
4125fd1
  --enable-obsolete-api=%{compat_api}            \
4125fd1
  --enable-obsolete-api-enosys=%{enosys_stubs}
1debfd9
%make_build
0564db8
%make_build test-programs
cb277a8
popd
3a133e5
%endif
1debfd9
6e7fe59
mkdir -p %{_vpath_builddir}-all_possible_tests
6e7fe59
6e7fe59
# The configure scripts want to use -Wl,--wrap to run some
6e7fe59
# special tests, which is not compatible with LTO.
6e7fe59
%global system_lto_cflags_bak %{_lto_cflags}
6e7fe59
%define _lto_cflags %{nil}
6e7fe59
6e7fe59
# Reset compiler flags in env.
6e7fe59
unset CFLAGS
6e7fe59
unset CXXFLAGS
6e7fe59
unset FFLAGS
6e7fe59
unset FCFLAGS
6e7fe59
unset LDFLAGS
6e7fe59
unset LT_SYS_LIBRARY_PATH
6e7fe59
6e7fe59
# Build a library suitable for all possible tests.
6e7fe59
pushd %{_vpath_builddir}-all_possible_tests
100ee22
# Disable arc4random_buf on purpose, so we are able
100ee22
# to run test/getrandom-fallback from testsuite.
6e7fe59
%configure                                       \
100ee22
ac_cv_func_arc4random_buf=no                     \
6e7fe59
%if %{with compat_pkg}
6e7fe59
  %{common_configure_options}                    \
6e7fe59
  --enable-hashes=all                            \
6e7fe59
  --enable-obsolete-api=%{compat_api}            \
6e7fe59
  --enable-obsolete-api-enosys=%{enosys_stubs}
6e7fe59
%else
6e7fe59
  %{common_configure_options}                    \
6e7fe59
  --enable-hashes=%{hash_methods}                \
6e7fe59
  --enable-obsolete-api=%{obsolete_api}          \
6e7fe59
%if %{with new_api}
6e7fe59
  --enable-obsolete-api-enosys=%{obsolete_api}
6e7fe59
%else
6e7fe59
  --enable-obsolete-api-enosys=%{enosys_stubs}
6e7fe59
%endif
6e7fe59
%endif
6e7fe59
%define _lto_cflags %{system_lto_cflags_bak}
6e7fe59
%make_build
0564db8
%make_build test-programs
6e7fe59
popd
6e7fe59
1debfd9
1debfd9
%install
904ed6a
%if %{with compat_pkg}
aaff10a
# Install the compatibility library.
cb277a8
%make_install -C %{_vpath_builddir}-compat
aaff10a
aaff10a
# Cleanup everything we do not need from the compatibility library.
a9e5473
find %{buildroot} -xtype f -not -name 'libcrypt.so.%{csoc}*' -delete -print
a9e5473
find %{buildroot} -type l -not -name 'libcrypt.so.%{csoc}*' -delete -print
cb277a8
%endif
aaff10a
aaff10a
# Install the default system library.
cb277a8
%make_install -C %{_vpath_builddir}
1debfd9
1debfd9
# Get rid of libtool crap.
a9e5473
find %{buildroot} -name '*.la' -delete -print
1debfd9
1debfd9
# Install documentation to shared %%_pkgdocdir.
a9e5473
install -Dpm 0644 -t %{buildroot}%{_pkgdocdir} \
998a988
  ChangeLog NEWS README* THANKS TODO
5e0cebb
15c8ca1
# Drop README.md as it is identical to README.
a9e5473
rm -f %{buildroot}%{_pkgdocdir}/README.md
15c8ca1
1debfd9
1debfd9
%check
a9e5473
build_dirs="%{_vpath_builddir}"
904ed6a
%if %{with compat_pkg}
a9e5473
build_dirs="${build_dirs} %{_vpath_builddir}-compat"
cb277a8
%endif
6e7fe59
build_dirs="${build_dirs} %{_vpath_builddir}-all_possible_tests"
a9e5473
for dir in ${build_dirs}; do
cb277a8
  %make_build -C ${dir} check || \
cb277a8
    {
cb277a8
      rc=$?;
cb277a8
      echo "-----BEGIN TESTLOG: ${dir}-----";
a9e5473
      cat ${dir}/test-suite.log;
cb277a8
      echo "-----END TESTLOG: ${dir}-----";
cb277a8
      exit $rc;
cb277a8
    }
cb277a8
done
1debfd9
1debfd9
6bbf93a
%ldconfig_scriptlets
904ed6a
%if %{with compat_pkg}
cb277a8
%ldconfig_scriptlets compat
cb277a8
%endif
1debfd9
1debfd9
1debfd9
%files
0a6250d
%dir %{_fipsdir}
1debfd9
%doc %dir %{_pkgdocdir}
1debfd9
%doc %{_pkgdocdir}/NEWS
2e32018
%doc %{_pkgdocdir}/README
2e32018
%if %{with new_api}
2e32018
%doc %{_pkgdocdir}/README%{distname}
2e32018
%endif
2e32018
%if %{with enosys_stubs} && %{without compat_pkg}
cd43e1c
%doc %{_pkgdocdir}/README.posix
2e32018
%endif
1debfd9
%doc %{_pkgdocdir}/THANKS
d692c1e
%license AUTHORS COPYING.LIB LICENSING
0a6250d
%{_fipsdir}/libcrypt.so.%{soc}.hmac
0a6250d
%{_fipsdir}/libcrypt.so.%{sov}.hmac
0a6250d
%{_libdir}/libcrypt.so.%{soc}
0a6250d
%{_libdir}/libcrypt.so.%{sov}
0a6250d
%{_mandir}/man5/crypt.5*
1debfd9
1debfd9
904ed6a
%if %{with compat_pkg}
cb277a8
%files          compat
0a6250d
%dir %{_fipsdir}
2e32018
%if %{with enosys_stubs}
cd43e1c
%doc %{_pkgdocdir}/README.posix
2e32018
%endif
0a6250d
%{_fipsdir}/libcrypt.so.%{csoc}.hmac
0a6250d
%{_fipsdir}/libcrypt.so.%{csov}.hmac
0a6250d
%{_libdir}/libcrypt.so.%{csoc}
0a6250d
%{_libdir}/libcrypt.so.%{csov}
cb277a8
%endif
cb277a8
cb277a8
1debfd9
%files          devel
1debfd9
%doc %{_pkgdocdir}/ChangeLog
1debfd9
%doc %{_pkgdocdir}/TODO
0a6250d
%{_libdir}/libcrypt.so
0a6250d
%if %{without new_api}
0a6250d
%{_libdir}/libxcrypt.so
0a6250d
%endif
0a6250d
%{_includedir}/crypt.h
0a6250d
%if %{without new_api}
0a6250d
%{_includedir}/xcrypt.h
0a6250d
%endif
0a6250d
%{_libdir}/pkgconfig/libcrypt.pc
0a6250d
%{_libdir}/pkgconfig/%{name}.pc
0a6250d
%{_mandir}/man3/crypt.3*
0a6250d
%{_mandir}/man3/crypt_r.3*
0a6250d
%{_mandir}/man3/crypt_ra.3*
0a6250d
%{_mandir}/man3/crypt_rn.3*
0a6250d
%{_mandir}/man3/crypt_checksalt.3*
0a6250d
%{_mandir}/man3/crypt_gensalt.3*
0a6250d
%{_mandir}/man3/crypt_gensalt_ra.3*
0a6250d
%{_mandir}/man3/crypt_gensalt_rn.3*
0a6250d
%{_mandir}/man3/crypt_preferred_method.3*
1debfd9
1debfd9
5e0cebb
%if %{with staticlib}
1debfd9
%files          static
0a6250d
%dir %{_fipsdir}
cd43e1c
%doc %{_pkgdocdir}/README.static
0a6250d
%{_fipsdir}/libcrypt.a.hmac
0a6250d
%if %{without new_api}
0a6250d
%{_fipsdir}/libxcrypt.a.hmac
0a6250d
%endif
0a6250d
%{_libdir}/libcrypt.a
0a6250d
%if %{without new_api}
0a6250d
%{_libdir}/libxcrypt.a
0a6250d
%endif
5e0cebb
%endif
1debfd9
1debfd9
1debfd9
%changelog
9d106ed
* Tue Nov 15 2022 Björn Esser <besser82@fedoraproject.org> - 4.4.31-3
9d106ed
- Explicitly list all needed build-time Perl modules
9d106ed
da216b6
* Tue Nov 15 2022 Björn Esser <besser82@fedoraproject.org> - 4.4.31-2
da216b6
- Narrow down BuildRequires for the minimum needed Perl modules
da216b6
bb032f0
* Sun Nov 13 2022 Björn Esser <besser82@fedoraproject.org> - 4.4.31-1
bb032f0
- New upstream release
bb032f0
e4dc5a1
* Tue Nov 08 2022 Björn Esser <besser82@fedoraproject.org> - 4.4.30-3
e4dc5a1
- Backport another upstream patch for a conversion fix
e4dc5a1
2928562
* Tue Nov 08 2022 Björn Esser <besser82@fedoraproject.org> - 4.4.30-2
2928562
- Backport some upstream patches for fixes and optimizations
100ee22
- Explicitly disable arc4random_buf in all_possible_tests configuration
2928562
61c2bff
* Tue Nov 01 2022 Björn Esser <besser82@fedoraproject.org> - 4.4.30-1
61c2bff
- New upstream release
61c2bff
880d0dd
* Mon Oct 31 2022 Björn Esser <besser82@fedoraproject.org> - 4.4.29-1
880d0dd
- New upstream release
880d0dd
9040a58
* Wed Aug 10 2022 Björn Esser <besser82@fedoraproject.org> - 4.4.28-3
9040a58
- Rebuilt for arc4random_buf in glibc 2.36 (or later)
9040a58
37971d5
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 4.4.28-2
37971d5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
37971d5
be13b26
* Tue Feb 01 2022 Björn Esser <besser82@fedoraproject.org> - 4.4.28-1
be13b26
- New upstream release
be13b26
a121dfb
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 4.4.27-3
a121dfb
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
a121dfb
2ce8089
* Tue Jan 04 2022 Björn Esser <besser82@fedoraproject.org> - 4.4.27-2
2ce8089
- Update Obsoletes, Provides, and Requires to glibc 2.28 (or later),
2ce8089
  as this was the first upstream version of glibc with an option to
2ce8089
  be built without shipping libcrypt
688fb03
- Fix rhel version in conditional
2ce8089
17ce4c0
* Fri Dec 17 2021 Björn Esser <besser82@fedoraproject.org> - 4.4.27-1
17ce4c0
- New upstream release
17ce4c0
8455ddf
* Tue Sep 21 2021 Björn Esser <besser82@fedoraproject.org> - 4.4.26-4
8455ddf
- Add some more recent distro releases to previous change
8455ddf
136ca64
* Tue Sep 21 2021 Björn Esser <besser82@fedoraproject.org> - 4.4.26-3
136ca64
- Limit explicit versioned Requires on glibc to older distro releases
136ca64
177e484
* Sat Sep 18 2021 Björn Esser <besser82@fedoraproject.org> - 4.4.26-2
177e484
- Build from signed and verified distribution tarball
177e484
5ae5a7d
* Fri Sep 17 2021 Björn Esser <besser82@fedoraproject.org> - 4.4.26-1
5ae5a7d
- New upstream release
5ae5a7d
0f84d8e
* Mon Aug 30 2021 Björn Esser <besser82@fedoraproject.org> - 4.4.25-3
0f84d8e
- Rebuild (autoconf)
0f84d8e
0564db8
* Mon Aug 16 2021 Björn Esser <besser82@fedoraproject.org> - 4.4.25-2
0564db8
- Compile test-programs during %%build stage
0564db8
db6a27d
* Sun Aug 08 2021 Björn Esser <besser82@fedoraproject.org> - 4.4.25-1
db6a27d
- New upstream release
db6a27d
e67920d
* Wed Aug 04 2021 Björn Esser <besser82@fedoraproject.org> - 4.4.24-1
e67920d
- New upstream release
e67920d
a245a54
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 4.4.23-2
a245a54
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
a245a54
27ab0c6
* Sun Jun 20 2021 Björn Esser <besser82@fedoraproject.org> - 4.4.23-1
27ab0c6
- New upstream release
27ab0c6
e9ef0a7
* Wed Jun 16 2021 Björn Esser <besser82@fedoraproject.org> - 4.4.22-3
e9ef0a7
- Add patches to fix issues with type conversion in the DES code
e9ef0a7
871fd0c
* Sat Jun 05 2021 Björn Esser <besser82@fedoraproject.org> - 4.4.22-2
871fd0c
- Add a patch to fix o_size calculation for gensalt_yescrypt_rn
871fd0c
692cc27
* Thu May 27 2021 Björn Esser <besser82@fedoraproject.org> - 4.4.22-1
692cc27
- New upstream release
692cc27
d942b63
* Wed May 26 2021 Björn Esser <besser82@fedoraproject.org> - 4.4.21-1
d942b63
- New upstream release
d942b63
7a5f863
* Wed May 19 2021 Björn Esser <besser82@fedoraproject.org> - 4.4.20-3
7a5f863
- Run test for glibc compatibility symbols
7a5f863
- Run a build with all possible tests enabled
7a5f863
0bd1b2a
* Sun May 02 2021 Björn Esser <besser82@fedoraproject.org> - 4.4.20-2
0bd1b2a
- Add upstream patch to fix a typo in the documentation
0bd1b2a
c6f393f
* Sat May 01 2021 Björn Esser <besser82@fedoraproject.org> - 4.4.20-1
c6f393f
- New upstream release
c6f393f
616040b
* Thu Apr 08 2021 Björn Esser <besser82@fedoraproject.org> - 4.4.19-1
616040b
- New upstream release
616040b
b13e7d2
* Sat Feb 20 2021 Björn Esser <besser82@fedoraproject.org> - 4.4.18-1
b13e7d2
- New upstream release
5157713
- Add explicit BR: perl-core
b13e7d2
441942b
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 4.4.17-2
441942b
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
441942b
cb82fdc
* Sun Aug 23 2020 Björn Esser <besser82@fedoraproject.org> - 4.4.17-1
cb82fdc
- New upstream release
cb82fdc
043fb82
* Sat Aug 15 2020 Björn Esser <besser82@fedoraproject.org> - 4.4.16-7
043fb82
- Add a patch to add support for LTO builds
a84c06e
- Enable LTO
ea97f58
- Add a patch to fix Wformat-overflow
043fb82
da5f2d0
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 4.4.16-6
da5f2d0
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
da5f2d0
ce003f2
* Tue Jun 30 2020 Jeff Law <law@redhat.com> - 4.4.16-5
ce003f2
- Disable LTO
ce003f2
ef8e0cc
* Fri Jun 19 2020 Björn Esser <besser82@fedoraproject.org> - 4.4.16-4
ef8e0cc
- Trim %%changelog starting with v4.4.0
ef8e0cc
- Remove memcheck conditional
ef8e0cc
53b39d5
* Sat Apr 25 2020 Björn Esser <besser82@fedoraproject.org> - 4.4.16-3
53b39d5
- Explicitly force linking with '-Wl,-z,defs'
53b39d5
0a6250d
* Fri Apr 24 2020 Björn Esser <besser82@fedoraproject.org> - 4.4.16-2
0a6250d
- Move fipscheck hmac checksums to %%{_libdir}/fipscheck
0a6250d
452ffdf
* Sat Apr 04 2020 Björn Esser <besser82@fedoraproject.org> - 4.4.16-1
452ffdf
- New upstream release
452ffdf
c31a4a5
* Thu Apr 02 2020 Björn Esser <besser82@fedoraproject.org> - 4.4.15-2
c31a4a5
- Move library from %%_lib to %%_libdir
c31a4a5
2277b81
* Wed Feb 26 2020 Björn Esser <besser82@fedoraproject.org> - 4.4.15-1
2277b81
- New upstream release
2277b81
679bb85
* Mon Feb 17 2020 Björn Esser <besser82@fedoraproject.org> - 4.4.14-1
679bb85
- New upstream release
679bb85
aa3e27a
* Sun Feb 16 2020 Björn Esser <besser82@fedoraproject.org> - 4.4.13-1
aa3e27a
- New upstream release
aa3e27a
fea5936
* Tue Feb 11 2020 Björn Esser <besser82@fedoraproject.org> - 4.4.12-3
fea5936
- Add an upstream patch to fix a typo in the documentation
fea5936
7e0d482
* Wed Feb 05 2020 Björn Esser <besser82@fedoraproject.org> - 4.4.12-2
7e0d482
- Add two upstream patches to resolve minor bugs
7e0d482
dfb605e
* Thu Jan 30 2020 Björn Esser <besser82@fedoraproject.org> - 4.4.12-1
dfb605e
- New upstream release
dfb605e
dd34951
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 4.4.11-2
dd34951
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
dd34951
f3aca1a
* Sat Jan 18 2020 Björn Esser <besser82@fedoraproject.org> - 4.4.11-1
f3aca1a
- New upstream release
f3aca1a
9ea1d78
* Sun Dec 15 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.10-2
9ea1d78
- Add two upstream patches to fix build with upcoming GCC-10
9ea1d78
a9c4b4a
* Wed Sep 18 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.10-1
a9c4b4a
- New upstream release
a9c4b4a
5cb19e2
* Sat Sep 07 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.9-1
41432a0
- New upstream release (#1750010)
41432a0
4c2b7f6
* Sun Sep 01 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.8-1
4c2b7f6
- New upstream release
4c2b7f6
68849c1
* Sat Aug 24 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.7-1
68849c1
- New upstream release
68849c1
ea6f468
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 4.4.6-3
ea6f468
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
ea6f468
86e645e
* Mon Jun 24 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.6-2
86e645e
- Build all hash methods for the compat package
52244c1
- Add a patch to fix Wformat in crypt-kat.c
86e645e
e873bdf
* Sun May 05 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.6-1
e873bdf
- New upstream release
e873bdf
6edf776
* Sat May 04 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.5-1
6edf776
- New upstream release (#1706419)
8d4af9f
- Add patch to remove an unneeded union keyword
f8a50b8
- Add patch to make unalignment test really unaligned
6edf776
ee59f96
* Fri Mar 15 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.4-2
ee59f96
- Change Recommends: whois-mkpasswd to Fedora 30 and later (#1687870)
ee59f96
4c81cc8
* Mon Mar 04 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.4-1
4c81cc8
- New upstream release
4c81cc8
860bcd6
* Tue Feb 19 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.3-10
860bcd6
- Fix versioned requirements on glibc
860bcd6
bd7ef77
* Tue Feb 19 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.3-9
bd7ef77
- Fix conditional in __spec_install_post
bd7ef77
a00e888
* Tue Feb 19 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.3-8
a00e888
- Update Obsoletes, Provides, and Requires to glibc 2.27
53c4809
- Add Recommends: whois-mkpasswd for Fedora
998a988
- Optimize installation of the documentation files
6d003a5
- Fix %%description
54470d8
- Use an absolute path for the configure script and srcdir
a00e888
ab66fee
* Tue Feb 19 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.3-7
ab66fee
- Add patch to fix the output formatting of a test
ab66fee
45a9a1a
* Wed Feb 06 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.3-6
45a9a1a
- Always build all supported hash methods
f52c6a9
- Drop distcheck at the end of %%check stage
45a9a1a
60713b4
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 4.4.3-5
60713b4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
60713b4
2e32018
* Wed Jan 30 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.3-4
cd43e1c
- Add a README.posix file with information about the stub functions
cd43e1c
- Add a README.static file with information about the static library
2e32018
acd21d6
* Wed Jan 30 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.3-3
acd21d6
- Replace unsafe functions in libxcrypt-compat with stubs (#1670735)
acd21d6
904ed6a
* Thu Jan 24 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.3-2
904ed6a
- Fix and simplify the conditionals for the compat package
4125fd1
- Add an option to replace unsafe functions in the compat lib with a stub
e25ef71
- Add patch to fix another possible format-overflow
904ed6a
dd49144
* Thu Jan 24 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.3-1
dd49144
- New upstream release
dd49144
989ff67
* Thu Jan 24 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.2-8
989ff67
- Optimize file removal for compatibility library
989ff67
d20cc40
* Mon Jan 21 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.2-7
d20cc40
- Add two upstream patches to fix build with GCC 9
d20cc40
6f17715
* Mon Jan 21 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.2-6
6f17715
- Add upstream patch to add proper C++-guards in <xcrypt.h>
6f17715
b369d81
* Mon Jan 14 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.2-5
b369d81
- Build the compat package with glibc hashing methods only
d05cf05
- Add an option to disable the compat-package for future use
b369d81
a164543
* Mon Jan 14 2019 Björn Esser <besser82@fedoraproject.org> - 4.4.2-4
a164543
- Bump SO-name for Fedora >= 30 and enable compat package (#1666033)
862c814
- Add distribution README file
f969693
- Update description of the compat package
7f1126c
- Conditionally remove non-built hashing methods from description
a164543
e3a154a
* Sun Dec 23 2018 Björn Esser <besser82@fedoraproject.org> - 4.4.2-3
e3a154a
- Remove architecture bits from Recommends
e3a154a
b718b8b
* Sun Dec 23 2018 Björn Esser <besser82@fedoraproject.org> - 4.4.2-2
b718b8b
- Update summary
b718b8b
20716d7
* Sat Dec 22 2018 Björn Esser <besser82@fedoraproject.org> - 4.4.2-1
20716d7
- New upstream release
20716d7
75a14f7
* Thu Dec 06 2018 Björn Esser <besser82@fedoraproject.org> - 4.4.1-1
75a14f7
- New upstream release
75a14f7
bcfd76f
* Tue Dec 04 2018 Björn Esser <besser82@fedoraproject.org> - 4.4.0-5
bcfd76f
- Sync -fno-plt patch with upstream commit
bcfd76f
dd0f502
* Tue Dec 04 2018 Björn Esser <besser82@fedoraproject.org> - 4.4.0-4
dd0f502
- Backport upstream commit to fix a memory leak from a static pointer
dd0f502
d0aedfc
* Tue Dec 04 2018 Björn Esser <besser82@fedoraproject.org> - 4.4.0-3
d0aedfc
- Backport upstream PR to build with -fno-plt optimization
d0aedfc
b98b97d
* Mon Nov 26 2018 Björn Esser <besser82@fedoraproject.org> - 4.4.0-2
b98b97d
- Backport upstream commit to use a safer strcpy for the NT method
543d326
- Backport upstream generating base64 encoded output for NT gensalt
da2ba20
- Backport upstream commit to require less rbytes for NT gensalt
097643a
- Backport upstream commit to test incremental hmac-sha256 computation
d15f4b7
- Add Recommends: mkpasswd for Fedora >= 30
b98b97d
d5493fd
* Tue Nov 20 2018 Björn Esser <besser82@fedoraproject.org> - 4.4.0-1
d5493fd
- New upstream release