X-Git-Url: https://git.pld-linux.org/?p=packages%2Flibxcrypt.git;a=blobdiff_plain;f=libxcrypt.spec;h=8b4b921b224dd74c514c5d5b9cb10136973d8426;hp=90a441d2dda6c5c98a8d33c4003ad342f12333af;hb=HEAD;hpb=7de2424dc882b9899552992899e32783c451c223 diff --git a/libxcrypt.spec b/libxcrypt.spec index 90a441d..147752e 100644 --- a/libxcrypt.spec +++ b/libxcrypt.spec @@ -1,17 +1,19 @@ # # Conditional build: -%bcond_without default_crypt # build as default libcrypt provider +%bcond_without compat_pkg # compat package (libcrypt.so.1 with legacy APIs) +%bcond_without default_crypt # libxcrypt as default libcrypt +%bcond_without tests # testing Summary: Crypt Library for DES, MD5, and Blowfish Summary(pl.UTF-8): Biblioteka szyfrująca hasła obsługująca DES, MD5 i Blowfish Name: libxcrypt -Version: 4.4.26 +Version: 4.4.36 Release: 1 License: LGPL v2.1+ Group: Libraries #Source0Download: https://github.com/besser82/libxcrypt/releases Source0: https://github.com/besser82/libxcrypt/archive/v%{version}/%{name}-%{version}.tar.gz -# Source0-md5: 4036f4dda35ad8d18b894da426dbf7cd +# Source0-md5: ab64e1c0687d9e08b9c690129dc38ea7 Patch0: %{name}-xcrypt.patch URL: https://github.com/besser82/libxcrypt BuildRequires: autoconf >= 2.62 @@ -22,18 +24,17 @@ BuildRequires: libtool >= 2:2 BuildRequires: pkgconfig >= 1:0.27 %if %{with default_crypt} Provides: crypt(blowfish) -Obsoletes: glibc-libcrypt +Obsoletes: glibc-libcrypt < 6:2.37 %endif BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) -%undefine __cxx +%undefine __cxx %if %{with default_crypt} -%define libname libcrypt -%define libver 1 +%define libname libcrypt %else -%define libname libxcrypt -%define libver 2 +%undefine with_compat_pkg +%define libname libxcrypt %endif %description @@ -52,6 +53,7 @@ Summary(pl.UTF-8): Plik nagłówkowy biblioteki libxcrypt License: LGPL v2.1+ Group: Development/Libraries Requires: %{name} = %{version}-%{release} +%{?with_default_crypt:Conflicts: glibc-devel-doc < 6:2.34-7} %description devel This package contains the header file to develop software using @@ -75,6 +77,33 @@ development. %description static -l pl.UTF-8 Ten pakiet zawiera statyczną wersję biblioteki libxcrypt. +%package compat +Summary: Compatibility library providing legacy API functions +Summary(pl.UTF-8): Biblioteka zgodności wstecznej dostarczająca dawne funkcje API +Requires: %{name} = %{version}-%{release} + +%description compat +This package contains the library providing the compatibility API for +applications that are linked against glibc's libcrypt, 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. + +%description compat -l pl.UTF-8 +Ten pakiet zawiera bibliotekę dostarczającą API zgodności wstecznej +dla aplikacji skonsolidowanych z biblioteką libcrypt z glibc lub +nadal wykorzystujących niebezpieczne i przestarzałe funkcje encrypt, +encrypt_r, setkey, setkey_r oraz fcrypt, nadal wymagane przez obecne +wersje standardów POSIX, Single UNIX Specification i innych. + +Wszystkie istniejące programy wykonywalne skonsolidowane z biblioteką +libcrypt z glibc powinny działać bez modyfikacji z biblioteką +dostarczaną przez ten pakiet. + %prep %setup -q %{!?with_default_crypt:%patch0 -p1} @@ -85,10 +114,14 @@ Ten pakiet zawiera statyczną wersję biblioteki libxcrypt. %{__autoconf} %{__autoheader} %{__automake} -%configure \ + +install -d regular +cd regular +../%configure \ + --enable-hashes=all \ %if %{with default_crypt} - --enable-obsolete-api=glibc \ - --enable-obsolete-api-enosys=yes \ + --disable-obsolete-api \ + --disable-obsolete-api-enosys \ %else --includedir=%{_includedir}/xcrypt \ --disable-xcrypt-compat-files \ @@ -96,15 +129,44 @@ Ten pakiet zawiera statyczną wersję biblioteki libxcrypt. --disable-werror %{__make} +%if %{with tests} +%{__make} check +%endif +cd .. + +%if %{with compat_pkg} +install -d compat +cd compat +../%configure \ + --enable-hashes=all \ + --enable-obsolete-api=glibc \ + --enable-obsolete-api-enosys \ + --disable-werror +%{__make} + +%if %{with tests} +%{__make} check +%endif +cd .. +%endif + %install rm -rf $RPM_BUILD_ROOT install -d $RPM_BUILD_ROOT/%{_lib} -%{__make} install \ +%if %{with compat_pkg} +%{__make} -C compat install \ + DESTDIR=$RPM_BUILD_ROOT + +# clean everything beside library +find $RPM_BUILD_ROOT -not -type d -not -name 'libcrypt.so.1*' -delete -print +%endif + +%{__make} -C regular install \ DESTDIR=$RPM_BUILD_ROOT %{__mv} $RPM_BUILD_ROOT%{_libdir}/%{libname}.so.* $RPM_BUILD_ROOT/%{_lib} -ln -snf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/%{libname}.so.*.*.*) $RPM_BUILD_ROOT%{_libdir}/%{libname}.so +ln -snf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/%{libname}.so.2.*.*) $RPM_BUILD_ROOT%{_libdir}/%{libname}.so # obsoleted by pkg-config %{__rm} $RPM_BUILD_ROOT%{_libdir}/%{libname}.la @@ -119,28 +181,29 @@ ln -snf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/%{libname}.so.*.*.*) $RPM_BU %clean rm -rf $RPM_BUILD_ROOT -%post -p /sbin/ldconfig -%postun -p /sbin/ldconfig +%post -p /sbin/ldconfig +%postun -p /sbin/ldconfig + +%post compat -p /sbin/ldconfig +%postun compat -p /sbin/ldconfig -%posttrans -if [ ! -L /%{_lib}/%{libname}.so.%{libver} ]; then - %{__rm} -f /%{_lib}/%{libname}.so.%{libver} +%posttrans compat +if [ ! -L /%{_lib}/libcrypt.so.1 ]; then + %{__rm} -f /%{_lib}/libcrypt.so.1 /sbin/ldconfig fi %files %defattr(644,root,root,755) %doc AUTHORS ChangeLog LICENSING NEWS README.md THANKS TODO.md -%attr(755,root,root) /%{_lib}/%{libname}.so.*.*.* -%attr(755,root,root) %ghost /%{_lib}/%{libname}.so.%{libver} +%attr(755,root,root) /%{_lib}/%{libname}.so.2.*.* +%attr(755,root,root) %ghost /%{_lib}/%{libname}.so.2 %files devel %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/%{libname}.so %if %{with default_crypt} %{_includedir}/crypt.h -%{_includedir}/xcrypt.h -%attr(755,root,root) %{_libdir}/libxcrypt.so %else %{_includedir}/xcrypt %endif @@ -160,6 +223,10 @@ fi %files static %defattr(644,root,root,755) %{_libdir}/%{libname}.a -%if %{with default_crypt} -%{_libdir}/libxcrypt.a + +%if %{with compat_pkg} +%files compat +%defattr(644,root,root,755) +%attr(755,root,root) /%{_lib}/libcrypt.so.1.*.* +%attr(755,root,root) %ghost /%{_lib}/libcrypt.so.1 %endif