rebuilt with current openssl and shared library [release 2007f-2mamba;Thu May 28 2020]

This commit is contained in:
Silvan Calarco 2024-01-06 04:38:58 +01:00
parent c0f1e158b8
commit 7098b4b7ac
4 changed files with 159 additions and 16 deletions

View File

@ -1,4 +1,5 @@
# libimap-c-client
University of Washington IMAP client library.
This package contains the shared libraries.

View File

@ -0,0 +1,58 @@
Description: Support OpenSSL 1.1
When building with OpenSSL 1.1 and newer, use the new built-in
hostname verification instead of code that doesn't compile due to
structs having been made opaque.
Bug-Debian: https://bugs.debian.org/828589
--- a/src/osdep/unix/ssl_unix.c
+++ b/src/osdep/unix/ssl_unix.c
@@ -227,8 +227,16 @@ static char *ssl_start_work (SSLSTREAM *
/* disable certificate validation? */
if (flags & NET_NOVALIDATECERT)
SSL_CTX_set_verify (stream->context,SSL_VERIFY_NONE,NIL);
- else SSL_CTX_set_verify (stream->context,SSL_VERIFY_PEER,ssl_open_verify);
+ else {
+#if OPENSSL_VERSION_NUMBER >= 0x10100000
+ X509_VERIFY_PARAM *param = SSL_CTX_get0_param(stream->context);
+ X509_VERIFY_PARAM_set_hostflags(param, X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS);
+ X509_VERIFY_PARAM_set1_host(param, host, 0);
+#endif
+
+ SSL_CTX_set_verify (stream->context,SSL_VERIFY_PEER,ssl_open_verify);
/* set default paths to CAs... */
+ }
SSL_CTX_set_default_verify_paths (stream->context);
/* ...unless a non-standard path desired */
if (s = (char *) mail_parameters (NIL,GET_SSLCAPATH,NIL))
@@ -266,6 +274,7 @@ static char *ssl_start_work (SSLSTREAM *
if (SSL_write (stream->con,"",0) < 0)
return ssl_last_error ? ssl_last_error : "SSL negotiation failed";
/* need to validate host names? */
+#if OPENSSL_VERSION_NUMBER < 0x10100000
if (!(flags & NET_NOVALIDATECERT) &&
(err = ssl_validate_cert (cert = SSL_get_peer_certificate (stream->con),
host))) {
@@ -275,6 +284,7 @@ static char *ssl_start_work (SSLSTREAM *
sprintf (tmp,"*%.128s: %.255s",err,cert ? cert->name : "???");
return ssl_last_error = cpystr (tmp);
}
+#endif
return NIL;
}
@@ -313,6 +323,7 @@ static int ssl_open_verify (int ok,X509_
* Returns: NIL if validated, else string of error message
*/
+#if OPENSSL_VERSION_NUMBER < 0x10100000
static char *ssl_validate_cert (X509 *cert,char *host)
{
int i,n;
@@ -342,6 +353,7 @@ static char *ssl_validate_cert (X509 *ce
else ret = "Unable to locate common name in certificate";
return ret;
}
+#endif
/* Case-independent wildcard pattern match
* Accepts: base string

View File

@ -0,0 +1,13 @@
diff -r 7c3e6c6ef2ba src/osdep/unix/Makefile
--- a/src/osdep/unix/Makefile Thu Feb 21 18:51:32 2008 +0100
+++ b/src/osdep/unix/Makefile Thu Feb 21 18:53:15 2008 +0100
@@ -962,6 +962,9 @@ onceenv:
-DRSHPATH=\"$(RSHPATH)\" -DLOCKPGM=\"$(LOCKPGM)\" > OSCFLAGS
echo $(BASELDFLAGS) $(EXTRALDFLAGS) > LDFLAGS
echo "$(ARRC) $(ARCHIVE) $(BINARIES);$(RANLIB) $(ARCHIVE)" > ARCHIVE
+ echo "`$(CAT) CCTYPE` `$(CAT) CFLAGS` `$(CAT) OSFLAGS` -shared \
+ -Wl,-soname,libc-client.so.1 -o libc-client.so.1.0.0 $(BINARIES)" \
+ >> ARCHIVE
echo $(OS) > OSTYPE
./drivers $(EXTRADRIVERS) $(DEFAULTDRIVERS) dummy
./mkauths $(EXTRAAUTHENTICATORS) $(DEFAULTAUTHENTICATORS)

View File

@ -1,6 +1,6 @@
Name: libimap-c-client
Version: 2007f
Release: 1mamba
Release: 2mamba
Summary: University of Washington IMAP client library
Group: Network/Libraries
Vendor: openmamba
@ -8,52 +8,123 @@ Distribution: openmamba
Packager: Silvan Calarco <silvan.calarco@mambasoft.it>
URL: http://www.washington.edu/imap/
Source: ftp://ftp.cac.washington.edu/imap/imap-%{version}.tar.gz
Patch0: libimap-c-client-2007f-libopenssl-1.1.patch
Patch1: libimap-c-client-2007f-shared-library.patch
License: Free-Fork License
Requires: libopenssl-devel >= 0.9.7b
## AUTOBUILDREQ-BEGIN
BuildRequires: glibc-devel
BuildRequires: ldconfig
BuildRequires: libe2fs-devel
BuildRequires: libkrb5-devel
BuildRequires: libopenssl-devel
BuildRequires: libpam-devel
## AUTOBUILDREQ-END
BuildRequires: libopenssl-devel >= 1.1.1.g
BuildRoot: %{_tmppath}/%{name}-%{version}-root
%description
University of Washington IMAP client library.
This package contains the shared libraries.
%package -n imap
Summary: Imap C-Client
Group: Applications/Networking
Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release}
%description -n imap
University of Washington IMAP client library.
%package devel
Summary: Development package of %{name}
Group: Development/Libraries
Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release}
%description devel
University of Washington IMAP client library.
This package contains static libraries and header files needed for development.
This package contains static libraries and header files need for development.
%debug_package
%prep
%setup -q -n imap-%{version}
%patch0 -p1
%patch1 -p1
sed \
-e "s:-g -fno-omit-frame-pointer -O6:\${optflags}:" \
-e "s:SSLDIR=/usr/local/ssl:SSLDIR=%{_prefix}:" \
-e "s:SSLCERTS=\$(SSLDIR)/certs:SSLCERTS=/etc/ssl/certs:" \
-i src/osdep/unix/Makefile
%build
make slx SSLDIR=%{_prefix} GCCOPTLEVEL="%{optflags}"
#make slx SSLDIR=%{_prefix} GCCOPTLEVEL="%{optflags}"
echo "y" | make lnp \
EXTRAAUTHENTICATORS=gss \
PASSWDTYPE=pam \
SPECIALAUTHENTICATORS=ssl \
SSLTYPE=unix \
EXTRACFLAGS="${optflags} -fPIC -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lpam"
#\
# EXTRALDFLAGS="${LDFLAGS}"
%install
[ "%{buildroot}" != "/" ] && rm -rf "%{buildroot}"
install -d %{buildroot}%{_libdir}/imap-%{version}/{%{_lib},include}
install -m 644 c-client/*.h \
%{buildroot}%{_libdir}/imap-%{version}/include
install -m 644 c-client/*.c \
%{buildroot}%{_libdir}/imap-%{version}/%{_lib}
install -m 644 c-client/*.a \
%{buildroot}%{_libdir}/imap-%{version}/%{_lib}
# server
install -d %{buildroot}%{_bindir}
install -D -m755 imapd/imapd %{buildroot}%{_bindir}/imapd
install -D -m755 ipopd/ipop2d %{buildroot}%{_bindir}/ipop2d
install -D -m755 ipopd/ipop3d %{buildroot}%{_bindir}/ipop3d
ln -sf imap-%{version} %{buildroot}%{_libdir}/imap
ln -sf c-client.a %{buildroot}%{_libdir}/imap-%{version}/%{_lib}/libc-client.a
## install xinetd.d configs
#install -D -m644 ../imap $pkgdir/etc/xinetd.d/imap
#install -D -m644 ../ipop2 $pkgdir/etc/xinetd.d/ipop2
#install -D -m644 ../ipop3 $pkgdir/etc/xinetd.d/ipop3
# lib
install -d %{buildroot}%{_includedir}/imap
install -m 644 c-client/*.h \
%{buildroot}%{_includedir}/imap
install -D -m 644 c-client/c-client.a \
%{buildroot}%{_libdir}/c-client.a
ln -sf c-client.a %{buildroot}%{_libdir}/libc-client.a
install -D -m755 c-client/libc-client.so.1.0.0 %{buildroot}%{_libdir}/libc-client.so.1.0.0
ln -sf %{_libdir}/libc-client.so.1.0.0 %{buildroot}%{_libdir}/libc-client.so.1
ln -sf %{_libdir}/libc-client.so.1.0.0 %{buildroot}%{_libdir}/libc-client.so
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%clean
[ "%{buildroot}" != "/" ] && rm -rf "%{buildroot}"
%files
%defattr(-,root,root)
%{_libdir}/libc-client.so.*
%files devel
%defattr(-,root,root)
%dir %{_libdir}/imap-%{version}/
%{_libdir}/imap-%{version}/*
%{_libdir}/imap
%dir %{_includedir}/imap
%{_includedir}/imap/*.h
%{_libdir}/libc-client.so
%{_libdir}/c-client.a
%{_libdir}/libc-client.a
%files -n imap
%defattr(-,root,root)
%{_bindir}/imapd
%{_bindir}/ipop2d
%{_bindir}/ipop3d
%changelog
* Thu May 28 2020 Silvan Calarco <silvan.calarco@mambasoft.it> 2007f-2mamba
- rebuilt with current openssl and shared library
* Wed Jul 11 2012 Automatic Build System <autodist@mambasoft.it> 2007f-1mamba
- automatic version update by autodist