]> git.pld-linux.org Git - packages/libxcrypt.git/blobdiff - libxcrypt.spec
up to 4.4.36
[packages/libxcrypt.git] / libxcrypt.spec
index b578ca25fb92cb3cf14ce33b8f11d92880692761..147752e2cd4a1689ebadbdf479e692f6d8da3352 100644 (file)
@@ -1,18 +1,19 @@
 #
 # Conditional build:
-%bcond_without default_crypt   # build as default libcrypt provider
-%bcond_without  tests
+%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.33
+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: 1cfd40c89ab1e3d4a1f030c9842474e9
+# Source0-md5: ab64e1c0687d9e08b9c690129dc38ea7
 Patch0:                %{name}-xcrypt.patch
 URL:           https://github.com/besser82/libxcrypt
 BuildRequires: autoconf >= 2.62
@@ -23,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
@@ -77,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}
@@ -87,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 \
@@ -101,16 +132,41 @@ Ten pakiet zawiera statyczną wersję biblioteki libxcrypt.
 %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
@@ -125,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
@@ -166,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
This page took 0.246948 seconds and 4 git commands to generate.