From e7172dadb9182efd886939c48274121896fb9957 Mon Sep 17 00:00:00 2001 From: Packit Date: Sep 15 2020 12:21:19 +0000 Subject: Add spec-file for the distribution --- diff --git a/SPECS/libxcrypt.spec b/SPECS/libxcrypt.spec new file mode 100644 index 0000000..cfb4302 --- /dev/null +++ b/SPECS/libxcrypt.spec @@ -0,0 +1,259 @@ +# Shared object version of libcrypt. +%global soc 1 +%global sol 1 +%global sof 0 +%global sov %{soc}.%{sol}.%{sof} + +# 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} \ +%{_bindir}/fipshmac %{buildroot}/%{_lib}/libcrypt.so.%{sov} \ +%{__ln_s} .libcrypt.so.%{sov}.hmac \\\ + %{buildroot}/%{_lib}/.libcrypt.so.%{soc}.hmac \ +%{nil} + + +Name: libxcrypt +Version: 4.1.1 +Release: 4%{?dist} +Summary: Extended crypt library for DES, MD5, Blowfish 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}.tar.gz#/%{name}-%{version}.tar.gz +Patch1: libxcrypt-rh1612157.patch +Patch2: libxcrypt-rh1613537.patch + +BuildRequires: fipscheck +BuildRequires: libtool + +Requires: glibc%{_isa} >= 2.26.9000-46 + +# We do not need to keep this forever. +%if 0%{?fedora} && 0%{?fedora} <= 31 +# Inherited from former libcrypt package. +Obsoletes: libcrypt-nss <= 2.26.9000-33 + +# Obsolete former libcrypt properly. +Obsoletes: libcrypt <= 2.26.9000-46 + +# Provide virtual libcrypt as it has been done +# by former libcrypt{,-nss} packages from glibc. +Provides: libcrypt == 2.26.9000-46.1 +Provides: libcrypt%{?_isa} == 2.26.9000-46.1 +%endif + +%description +libxcrypt is a modern library for one-way hashing of passwords. It +supports DES, MD5, SHA-2-256, SHA-2-512, and bcrypt-based password +hashes, and 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. + +On Linux-based systems, by default libxcrypt will be binary backward +compatible with the libcrypt.so.1 shipped as part of the GNU C Library. +This means that all existing binary executables linked against glibc's +libcrypt should work unmodified with this library's libcrypt.so.1. We +have taken pains to provide exactly the same "symbol versions" as were +used by glibc on various CPU architectures, and to account for the +variety of ways in which the Openwall extensions were patched into +glibc's libcrypt by some Linux distributions. (For instance, +compatibility symlinks for SuSE's "libowcrypt" are provided.) + +However, the converse is not true: programs linked against libxcrypt +will not work with glibc's libcrypt. Also, programs that use certain +legacy APIs supplied by glibc's libcrypt ('encrypt', 'encrypt_r', +'setkey', 'setkey_r', and 'fcrypt') cannot be compiled against libxcrypt. + + +%package devel +Summary: Development files for %{name} + +Requires: %{name}%{?_isa} == %{version}-%{release} +Requires: glibc-devel%{?_isa} >= 2.26.9000-46 +Requires: glibc-headers%{?_isa} >= 2.26.9000-46 +Conflicts: man-pages < 4.15-3 + +%description devel +The %{name}-devel package contains libraries and header files for +developing applications that use %{name}. + + +%package static +Summary: Static library for -static linking with %{name} + +Requires: %{name}-devel%{?_isa} == %{version}-%{release} +Requires: glibc-static%{?_isa} >= 2.26.9000-46 + +%description static +This package contains the libxcrypt static libraries for -static +linking. You don't need this, unless you link statically, which +is highly discouraged. + + +%prep +%autosetup -p 1 +%{_bindir}/autoreconf -fiv + + +%build +%configure \ + --libdir=/%{_lib} \ + --disable-silent-rules \ + --enable-shared \ + --enable-static \ + --disable-failure-tokens \ + --enable-hashes=all \ + --enable-obsolete-api=glibc \ + --with-pkgconfigdir=%{_libdir}/pkgconfig +%make_build + + +%install +%make_install + +# Get rid of libtool crap. +%{_bindir}/find %{buildroot} -name '*.la' -print -delete + +# Install documentation to shared %%_pkgdocdir. +%{__install} -Dpm 0644 -t %{buildroot}%{_pkgdocdir} \ + ChangeLog NEWS README THANKS TODO + + +%check +%make_build check || \ + { + rc=$?; + echo "-----BEGIN TESTLOG-----"; + %{__cat} test-suite.log; + echo "-----END TESTLOG-----"; + exit $rc; + } + + +%ldconfig_scriptlets + + +%files +%license AUTHORS COPYING.LIB LICENSING +%doc %dir %{_pkgdocdir} +%doc %{_pkgdocdir}/NEWS +%doc %{_pkgdocdir}/README +%doc %{_pkgdocdir}/THANKS +/%{_lib}/.libcrypt.so.%{soc}.hmac +/%{_lib}/.libcrypt.so.%{sov}.hmac +/%{_lib}/libcrypt.so.%{soc} +/%{_lib}/libcrypt.so.%{sov} +%{_mandir}/man5/crypt.5.* + + +%files devel +%doc %{_pkgdocdir}/ChangeLog +%doc %{_pkgdocdir}/TODO +/%{_lib}/libcrypt.so +%{_includedir}/crypt.h +%{_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_gensalt.3.* + +%files static +/%{_lib}/libcrypt.a + + +%changelog +* Wed Aug 8 2018 Florian Weimer - 4.1.1-4 +- Move development panpages to libxcrypt-devel (#1613824) + +* Wed Aug 8 2018 Florian Weimer - 4.1.1-3 +- Change crypt, crypt_r to return NULL on failure (#1613537) + +* Wed Aug 8 2018 Florian Weimer - 4.1.1-2 +- Add manpages aliases for crypt, crypt_r, crypt_ra (#1612157) + +* Wed Aug 01 2018 Björn Esser - 4.1.1-1 +- New upstream release + +* Fri Jul 13 2018 Björn Esser - 4.1.0-1 +- New upstream release + +* Fri Jul 13 2018 Björn Esser - 4.0.1-6 +- Make testsuite fail on error again +- Update patch0 with more upstream fixes + +* Fri Jul 13 2018 Björn Esser - 4.0.1-5 +- Add patch to update to recent development branch +- Re-enable SUNMD5 support as it is BSD licensed now +- Build compatibility symbols for glibc only +- Skip failing testsuite once + +* Fri Jul 13 2018 Fedora Release Engineering - 4.0.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Fri Jun 29 2018 Florian Weimer - 4.0.1-3 +- Remove CDDL from license list (#1592445) + +* Fri Jun 29 2018 Florian Weimer - 4.0.1-2 +- Remove SUNMD5 support (#1592445) + +* Wed May 16 2018 Björn Esser - 4.0.1-1 +- New upstream release + +* Sat Feb 17 2018 Björn Esser - 4.0.0-5 +- Switch to %%ldconfig_scriptlets + +* Wed Feb 07 2018 Fedora Release Engineering - 4.0.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Feb 01 2018 Björn Esser - 4.0.0-3 +- Add patch to fix unintialize value in badsalt test + +* Wed Jan 31 2018 Björn Esser - 4.0.0-2 +- Add patch to fix bcrypt test with GCC8 + +* Sat Jan 27 2018 Björn Esser - 4.0.0-1 +- New upstream release + +* Mon Jan 22 2018 Igor Gnatenko - 4.0.0-0.204.20180120git3436e7b +- Fix Obsoletes + +* Sat Jan 20 2018 Björn Esser - 4.0.0-0.203.20180120git3436e7b +- Update to new snapshot fixing cast-align + +* Sat Jan 20 2018 Björn Esser - 4.0.0-0.202.20180120gitde99d27 +- Update to new snapshot (rhbz#1536752) + +* Sat Jan 20 2018 Björn Esser - 4.0.0-0.201.20171109git15447aa +- Use archful Obsoletes for libcrypt +- Add versioned Requires on glibc packages not shipping libcrypt +- Add comments about the packaging logic for replacing former libcrypt + +* Fri Jan 12 2018 Björn Esser - 4.0.0-0.200.20171109git15447aa +- Initial import (rhbz#1532794) +- Add Obsoletes/Provides for libcrypt + +* Wed Jan 10 2018 Björn Esser - 4.0.0-0.101.20171109git15447aa +- Fix style of %%git_{rel,ver} + +* Tue Jan 09 2018 Björn Esser - 4.0.0-0.100.git20171109.15447aa +- Initial rpm release (rhbz#1532794) +- Start revision at 0.100 to superseed builds from COPR