From 2c6607c8b62d37fb1b64b78372d486bd1388f3b3 Mon Sep 17 00:00:00 2001 From: Toshaan Bharvani Date: Wed, 29 May 2024 19:16:13 +0200 Subject: [PATCH] initial package creation Signed-off-by: Toshaan Bharvani --- SOURCES/1006_openssl1.1_autoverify.patch | 58 ++ SOURCES/imap-2004a-doc.patch | 30 + SOURCES/imap-2007-paths.patch | 18 + SOURCES/imap-2007e-authmd5.patch | 29 + SOURCES/imap-2007e-overflow.patch | 13 + SOURCES/imap-2007e-poll.patch | 192 +++++++ SOURCES/imap-2007e-shared.patch | 74 +++ SOURCES/imap-2007e-system_c_client.patch | 17 + SOURCES/imap-2007f-format-security.patch | 12 + SOURCES/imap-2007f-ldflags.patch | 21 + SOURCES/imap-legacy.pam | 5 + SOURCES/imap-password.pam | 5 + SOURCES/imap-xinetd | 14 + SOURCES/imap.pam | 5 + SOURCES/imaps-xinetd | 14 + SOURCES/ipop2-xinetd | 15 + SOURCES/ipop3-xinetd | 14 + SOURCES/pop3s-xinetd | 13 + SPECS/uw-imap.spec | 700 +++++++++++++++++++++++ 19 files changed, 1249 insertions(+) create mode 100644 SOURCES/1006_openssl1.1_autoverify.patch create mode 100644 SOURCES/imap-2004a-doc.patch create mode 100644 SOURCES/imap-2007-paths.patch create mode 100644 SOURCES/imap-2007e-authmd5.patch create mode 100644 SOURCES/imap-2007e-overflow.patch create mode 100644 SOURCES/imap-2007e-poll.patch create mode 100644 SOURCES/imap-2007e-shared.patch create mode 100644 SOURCES/imap-2007e-system_c_client.patch create mode 100644 SOURCES/imap-2007f-format-security.patch create mode 100644 SOURCES/imap-2007f-ldflags.patch create mode 100644 SOURCES/imap-legacy.pam create mode 100644 SOURCES/imap-password.pam create mode 100644 SOURCES/imap-xinetd create mode 100644 SOURCES/imap.pam create mode 100644 SOURCES/imaps-xinetd create mode 100644 SOURCES/ipop2-xinetd create mode 100644 SOURCES/ipop3-xinetd create mode 100644 SOURCES/pop3s-xinetd create mode 100644 SPECS/uw-imap.spec diff --git a/SOURCES/1006_openssl1.1_autoverify.patch b/SOURCES/1006_openssl1.1_autoverify.patch new file mode 100644 index 0000000..087e747 --- /dev/null +++ b/SOURCES/1006_openssl1.1_autoverify.patch @@ -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 diff --git a/SOURCES/imap-2004a-doc.patch b/SOURCES/imap-2004a-doc.patch new file mode 100644 index 0000000..dcae4ab --- /dev/null +++ b/SOURCES/imap-2004a-doc.patch @@ -0,0 +1,30 @@ +Patch by Robert Scheck for uw-imap >= 2004a, which corrects +paths to imapd, ipop2d and ipop3d in the man pages. + +This patch is based on Red Hat Bugzilla ID #127271 and solves ID #229781. + +--- imap-2004a/src/imapd/imapd.8 2004-05-18 19:46:54.000000000 +0200 ++++ imap-2004a/src/imapd/imapd.8.doc 2004-07-23 15:24:17.000000000 +0200 +@@ -3,7 +3,7 @@ + .SH NAME + IMAPd \- Internet Message Access Protocol server + .SH SYNOPSIS +-.B /usr/etc/imapd ++.B /usr/sbin/imapd + .SH DESCRIPTION + .I imapd + is a server which supports the +--- imap-2004a/src/ipopd/ipopd.8 2004-05-18 19:50:05.000000000 +0200 ++++ imap-2004a/src/ipopd/ipopd.8.doc 2004-07-23 15:23:38.000000000 +0200 +@@ -3,9 +3,9 @@ + .SH NAME + IPOPd \- Post Office Protocol server + .SH SYNOPSIS +-.B /usr/etc/ipop2d ++.B /usr/sbin/ipop2d + .PP +-.B /usr/etc/ipop3d ++.B /usr/sbin/ipop3d + .SH DESCRIPTION + .I ipop2d + and diff --git a/SOURCES/imap-2007-paths.patch b/SOURCES/imap-2007-paths.patch new file mode 100644 index 0000000..a2784d9 --- /dev/null +++ b/SOURCES/imap-2007-paths.patch @@ -0,0 +1,18 @@ +diff -up imap-2007/src/osdep/unix/Makefile.paths imap-2007/src/osdep/unix/Makefile +--- imap-2007/src/osdep/unix/Makefile.paths 2007-12-17 16:10:24.000000000 -0600 ++++ imap-2007/src/osdep/unix/Makefile 2007-12-21 09:30:04.000000000 -0600 +@@ -96,11 +96,11 @@ CHECKPW=std + LOGINPW=std + SIGTYPE=bsd + CRXTYPE=std +-ACTIVEFILE=/usr/lib/news/active +-SPOOLDIR=/usr/spool ++ACTIVEFILE=/var/lib/news/active ++SPOOLDIR=/var/spool + MAILSPOOL=$(SPOOLDIR)/mail + NEWSSPOOL=$(SPOOLDIR)/news +-RSHPATH=/usr/ucb/rsh ++RSHPATH=/usr/bin/rsh + MD5PWD=/etc/cram-md5.pwd + # Tries one of the test alternatives below if not specified. + LOCKPGM= diff --git a/SOURCES/imap-2007e-authmd5.patch b/SOURCES/imap-2007e-authmd5.patch new file mode 100644 index 0000000..66883a1 --- /dev/null +++ b/SOURCES/imap-2007e-authmd5.patch @@ -0,0 +1,29 @@ +diff -up imap-2007e/src/c-client/auth_md5.c.authmd5 imap-2007e/src/c-client/auth_md5.c +--- imap-2007e/src/c-client/auth_md5.c.authmd5 2008-06-04 13:18:34.000000000 -0500 ++++ imap-2007e/src/c-client/auth_md5.c 2009-07-07 19:24:12.348005485 -0500 +@@ -42,17 +42,17 @@ typedef struct { + + /* Prototypes */ + +-long auth_md5_valid (void); +-long auth_md5_client (authchallenge_t challenger,authrespond_t responder, ++static long auth_md5_valid (void); ++static long auth_md5_client (authchallenge_t challenger,authrespond_t responder, + char *service,NETMBX *mb,void *stream, + unsigned long *trial,char *user); +-char *auth_md5_server (authresponse_t responder,int argc,char *argv[]); +-char *auth_md5_pwd (char *user); ++static char *auth_md5_server (authresponse_t responder,int argc,char *argv[]); ++static char *auth_md5_pwd (char *user); + char *apop_login (char *chal,char *user,char *md5,int argc,char *argv[]); +-char *hmac_md5 (char *text,unsigned long tl,char *key,unsigned long kl); +-void md5_init (MD5CONTEXT *ctx); +-void md5_update (MD5CONTEXT *ctx,unsigned char *data,unsigned long len); +-void md5_final (unsigned char *digest,MD5CONTEXT *ctx); ++static char *hmac_md5 (char *text,unsigned long tl,char *key,unsigned long kl); ++static void md5_init (MD5CONTEXT *ctx); ++static void md5_update (MD5CONTEXT *ctx,unsigned char *data,unsigned long len); ++static void md5_final (unsigned char *digest,MD5CONTEXT *ctx); + static void md5_transform (unsigned long *state,unsigned char *block); + static void md5_encode (unsigned char *dst,unsigned long *src,int len); + static void md5_decode (unsigned long *dst,unsigned char *src,int len); diff --git a/SOURCES/imap-2007e-overflow.patch b/SOURCES/imap-2007e-overflow.patch new file mode 100644 index 0000000..86512b2 --- /dev/null +++ b/SOURCES/imap-2007e-overflow.patch @@ -0,0 +1,13 @@ +diff -up imap-2007e/src/c-client/rfc822.c.overflow imap-2007e/src/c-client/rfc822.c +--- imap-2007e/src/c-client/rfc822.c.overflow 2008-12-12 11:08:26.000000000 -0600 ++++ imap-2007e/src/c-client/rfc822.c 2009-07-07 19:27:20.057772757 -0500 +@@ -384,6 +384,9 @@ void rfc822_parse_content (BODY *body,ST + if (CHR (bs) == '\012'){/* following LF? */ + c = SNX (bs); i--; /* yes, slurp it */ + } ++ if (!i) /* Make sure we don't get an overflow for */ ++ break; /* messages ending on \015 (or the following */ ++ /* i-- will cause i to be MAXINT. Not good.) */ + case '\012': /* at start of a line, start with -- ? */ + if (!(i && i-- && ((c = SNX (bs)) == '-') && i-- && + ((c = SNX (bs)) == '-'))) break; diff --git a/SOURCES/imap-2007e-poll.patch b/SOURCES/imap-2007e-poll.patch new file mode 100644 index 0000000..e25f1b6 --- /dev/null +++ b/SOURCES/imap-2007e-poll.patch @@ -0,0 +1,192 @@ +http://anonscm.debian.org/cgit/collab-maint/uw-imap.git/plain/debian/patches/1005_poll.patch + +Description: Use poll(2) instead of select(2) to support more than 1024 file descriptors +Author: Ben Smithurst +Bug-Debian: https://bugs.debian.org/478193 + +diff --git a/src/osdep/unix/os_lnx.c b/src/osdep/unix/os_lnx.c +index 03fd17d..671bbd6 100644 +--- a/src/osdep/unix/os_lnx.c ++++ b/src/osdep/unix/os_lnx.c +@@ -41,6 +41,7 @@ + extern int errno; /* just in case */ + #include + #include "misc.h" ++#include + + + #include "fs_unix.c" +diff --git a/src/osdep/unix/os_slx.c b/src/osdep/unix/os_slx.c +index c94d632..f6bf27d 100644 +--- a/src/osdep/unix/os_slx.c ++++ b/src/osdep/unix/os_slx.c +@@ -42,6 +42,7 @@ extern int errno; /* just in case */ + #include + #include + #include "misc.h" ++#include + + + #include "fs_unix.c" +diff --git a/src/osdep/unix/tcp_unix.c b/src/osdep/unix/tcp_unix.c +index 795fb4f..c69eaec 100644 +--- a/src/osdep/unix/tcp_unix.c ++++ b/src/osdep/unix/tcp_unix.c +@@ -235,12 +235,11 @@ TCPSTREAM *tcp_open (char *host,char *service,unsigned long port) + int tcp_socket_open (int family,void *adr,size_t adrlen,unsigned short port, + char *tmp,int *ctr,char *hst) + { +- int i,ti,sock,flgs; ++ int i,ti,sock,flgs,tmo; ++ struct pollfd pfd; + size_t len; + time_t now; + struct protoent *pt = getprotobyname ("tcp"); +- fd_set rfds,wfds,efds; +- struct timeval tmo; + struct sockaddr *sadr = ip_sockaddr (family,adr,adrlen,port,&len); + blocknotify_t bn = (blocknotify_t) mail_parameters (NIL,GET_BLOCKNOTIFY,NIL); + /* fetid Solaris */ +@@ -252,14 +251,6 @@ int tcp_socket_open (int family,void *adr,size_t adrlen,unsigned short port, + sprintf (tmp,"Unable to create TCP socket: %s",strerror (errno)); + (*bn) (BLOCK_NONSENSITIVE,data); + } +- else if (sock >= FD_SETSIZE) {/* unselectable sockets are useless */ +- sprintf (tmp,"Unable to create selectable TCP socket (%d >= %d)", +- sock,FD_SETSIZE); +- (*bn) (BLOCK_NONSENSITIVE,data); +- close (sock); +- sock = -1; +- errno = EMFILE; +- } + + else { /* get current socket flags */ + flgs = fcntl (sock,F_GETFL,0); +@@ -284,16 +275,11 @@ int tcp_socket_open (int family,void *adr,size_t adrlen,unsigned short port, + if ((sock >= 0) && ctr) { /* want open timeout? */ + now = time (0); /* open timeout */ + ti = ttmo_open ? now + ttmo_open : 0; +- tmo.tv_usec = 0; +- FD_ZERO (&rfds); /* initialize selection vector */ +- FD_ZERO (&wfds); /* initialize selection vector */ +- FD_ZERO (&efds); /* handle errors too */ +- FD_SET (sock,&rfds); /* block for error or readable or writable */ +- FD_SET (sock,&wfds); +- FD_SET (sock,&efds); ++ pfd.fd = sock; ++ pfd.events = POLLIN | POLLOUT; + do { /* block under timeout */ +- tmo.tv_sec = ti ? ti - now : 0; +- i = select (sock+1,&rfds,&wfds,&efds,ti ? &tmo : NIL); ++ tmo = ti ? ti - now : 0; ++ i = poll (&pfd, 1, ti ? tmo * 1000 : -1); + now = time (0); /* fake timeout if interrupt & time expired */ + if ((i < 0) && (errno == EINTR) && ti && (ti <= now)) i = 0; + } while ((i < 0) && (errno == EINTR)); +@@ -302,7 +288,7 @@ int tcp_socket_open (int family,void *adr,size_t adrlen,unsigned short port, + fcntl (sock,F_SETFL,flgs); + /* This used to be a zero-byte read(), but that crashes Solaris */ + /* get socket status */ +- if(FD_ISSET(sock, &rfds)) while (((i = *ctr = read (sock,tmp,1)) < 0) && (errno == EINTR)); ++ if(pfd.revents & POLLIN) while (((i = *ctr = read (sock,tmp,1)) < 0) && (errno == EINTR)); + } + if (i <= 0) { /* timeout or error? */ + i = i ? errno : ETIMEDOUT;/* determine error code */ +@@ -545,9 +531,8 @@ long tcp_getbuffer (TCPSTREAM *stream,unsigned long size,char *s) + stream->ictr -=n; + } + if (size) { +- int i; +- fd_set fds,efds; +- struct timeval tmo; ++ int i, tmo; ++ struct pollfd pfd; + time_t t = time (0); + blocknotify_t bn=(blocknotify_t) mail_parameters (NIL,GET_BLOCKNOTIFY,NIL); + (*bn) (BLOCK_TCPREAD,NIL); +@@ -556,16 +541,13 @@ long tcp_getbuffer (TCPSTREAM *stream,unsigned long size,char *s) + time_t now = tl; + time_t ti = ttmo_read ? now + ttmo_read : 0; + if (tcpdebug) mm_log ("Reading TCP buffer",TCPDEBUG); +- tmo.tv_usec = 0; +- FD_ZERO (&fds); /* initialize selection vector */ +- FD_ZERO (&efds); /* handle errors too */ +- /* set bit in selection vectors */ +- FD_SET (stream->tcpsi,&fds); +- FD_SET (stream->tcpsi,&efds); ++ ++ pfd.events = POLLIN; ++ pfd.fd = stream->tcpsi; + errno = NIL; /* initially no error */ + do { /* block under timeout */ +- tmo.tv_sec = ti ? ti - now : 0; +- i = select (stream->tcpsi+1,&fds,NIL,&efds,ti ? &tmo : NIL); ++ tmo = ti ? ti - now : 0; ++ i = poll (&pfd, 1, ti ? tmo * 1000 : -1); + now = time (0); /* fake timeout if interrupt & time expired */ + if ((i < 0) && (errno == EINTR) && ti && (ti <= now)) i = 0; + } while ((i < 0) && (errno == EINTR)); +@@ -605,9 +587,8 @@ long tcp_getbuffer (TCPSTREAM *stream,unsigned long size,char *s) + + long tcp_getdata (TCPSTREAM *stream) + { +- int i; +- fd_set fds,efds; +- struct timeval tmo; ++ int i, tmo; ++ struct pollfd pfd; + time_t t = time (0); + blocknotify_t bn = (blocknotify_t) mail_parameters (NIL,GET_BLOCKNOTIFY,NIL); + if (stream->tcpsi < 0) return NIL; +@@ -617,15 +598,12 @@ long tcp_getdata (TCPSTREAM *stream) + time_t now = tl; + time_t ti = ttmo_read ? now + ttmo_read : 0; + if (tcpdebug) mm_log ("Reading TCP data",TCPDEBUG); +- tmo.tv_usec = 0; +- FD_ZERO (&fds); /* initialize selection vector */ +- FD_ZERO (&efds); /* handle errors too */ +- FD_SET (stream->tcpsi,&fds);/* set bit in selection vectors */ +- FD_SET (stream->tcpsi,&efds); ++ pfd.fd = stream->tcpsi; ++ pfd.events = POLLIN; + errno = NIL; /* initially no error */ + do { /* block under timeout */ +- tmo.tv_sec = ti ? ti - now : 0; +- i = select (stream->tcpsi+1,&fds,NIL,&efds,ti ? &tmo : NIL); ++ tmo = ti ? ti - now : 0; ++ i = poll (&pfd, 1, ti ? tmo * 1000 : -1); + now = time (0); /* fake timeout if interrupt & time expired */ + if ((i < 0) && (errno == EINTR) && ti && (ti <= now)) i = 0; + } while ((i < 0) && (errno == EINTR)); +@@ -677,9 +655,8 @@ long tcp_soutr (TCPSTREAM *stream,char *string) + + long tcp_sout (TCPSTREAM *stream,char *string,unsigned long size) + { +- int i; +- fd_set fds,efds; +- struct timeval tmo; ++ int i, tmo; ++ struct pollfd pfd; + time_t t = time (0); + blocknotify_t bn = (blocknotify_t) mail_parameters (NIL,GET_BLOCKNOTIFY,NIL); + if (stream->tcpso < 0) return NIL; +@@ -689,15 +666,12 @@ long tcp_sout (TCPSTREAM *stream,char *string,unsigned long size) + time_t now = tl; + time_t ti = ttmo_write ? now + ttmo_write : 0; + if (tcpdebug) mm_log ("Writing to TCP",TCPDEBUG); +- tmo.tv_usec = 0; +- FD_ZERO (&fds); /* initialize selection vector */ +- FD_ZERO (&efds); /* handle errors too */ +- FD_SET (stream->tcpso,&fds);/* set bit in selection vector */ +- FD_SET(stream->tcpso,&efds);/* set bit in error selection vector */ ++ pfd.fd = stream->tcpso; ++ pfd.events = POLLOUT; + errno = NIL; /* block and write */ + do { /* block under timeout */ +- tmo.tv_sec = ti ? ti - now : 0; +- i = select (stream->tcpso+1,NIL,&fds,&efds,ti ? &tmo : NIL); ++ tmo = ti ? ti - now : 0; ++ i = poll (&pfd, 1, ti ? tmo * 1000 : -1); + now = time (0); /* fake timeout if interrupt & time expired */ + if ((i < 0) && (errno == EINTR) && ti && (ti <= now)) i = 0; + } while ((i < 0) && (errno == EINTR)); diff --git a/SOURCES/imap-2007e-shared.patch b/SOURCES/imap-2007e-shared.patch new file mode 100644 index 0000000..92dcdc1 --- /dev/null +++ b/SOURCES/imap-2007e-shared.patch @@ -0,0 +1,74 @@ +diff -up imap-2007e/src/osdep/unix/Makefile.shared imap-2007e/src/osdep/unix/Makefile +--- imap-2007e/src/osdep/unix/Makefile.shared 2009-07-07 19:28:02.909755512 -0500 ++++ imap-2007e/src/osdep/unix/Makefile 2009-07-07 19:29:35.870006799 -0500 +@@ -170,6 +170,10 @@ BUILD=$(MAKE) build EXTRACFLAGS='$(EXTRA + EXTRADRIVERS='$(EXTRADRIVERS)' EXTRAAUTHENTICATORS='$(EXTRAAUTHENTICATORS)'\ + PASSWDTYPE=$(PASSWDTYPE) SSLTYPE=$(SSLTYPE) IP=$(IP) + ++# Need this for the shared library rule to work correctly ++.SUFFIXES: .o .so ++SOFILES=${BINARIES:.o=.so} ++ + + # Here if no make argument established + +@@ -845,18 +849,24 @@ vu2: # VAX Ultrix 2.3, etc. + + # Build it! + +-build: clean once $(ARCHIVE) ++build: clean once $(ARCHIVE) $(SHLIBNAME) + +-all: $(ARCHIVE) ++all: $(ARCHIVE) $(SHLIBNAME) + + $(ARCHIVE): $(BINARIES) + sh -c '$(RM) $(ARCHIVE) || true' + @$(CAT) ARCHIVE + @$(SH) ARCHIVE + +-.c.o: +- `$(CAT) CCTYPE` -c `$(CAT) CFLAGS` $*.c ++$(SHLIBNAME): $(SOFILES) ++ gcc -shared -Wl,-soname,$(SHLIBNAME) -o $(SHLIBNAME) $(SOFILES) `cat LDFLAGS` ++ ln -s $(SHLIBNAME) lib$(SHLIBBASE).so + ++.c.so: osdep.h ++ $(CC) -fPIC -DPIC -D_REENTRANT -c `$(CAT) CFLAGS` ${@:.so=.c} -o $@ ++ ++.c.o: ++ $(CC) -fPIC -DPIC -D_REENTRANT -c `$(CAT) CFLAGS` $*.c + + # Cleanup + +@@ -895,8 +905,7 @@ utf8aux.o: mail.h misc.h osdep.h utf8.h + + + # OS-dependent +- +-osdep.o:mail.h misc.h env.h fs.h ftl.h nl.h tcp.h \ ++OSDEPS= mail.h misc.h env.h fs.h ftl.h nl.h tcp.h \ + osdep.h env_unix.h tcp_unix.h \ + osdep.c env_unix.c fs_unix.c ftl_unix.c nl_unix.c tcp_unix.c ip_unix.c\ + auths.c crexcl.c flockcyg.c flocklnx.c flocksim.c fsync.c \ +@@ -910,12 +919,19 @@ osdep.o:mail.h misc.h env.h fs.h ftl.h n + write.c sslstdio.c \ + strerror.c strpbrk.c strstr.c strtok.c strtoul.c \ + OSCFLAGS ++ ++osdep.o: $(OSDEPS) ++ $(CC) -fPIC -DPIC -D_REENTRANT `$(CAT) CFLAGS` `$(CAT) OSCFLAGS` -c osdep.c ++ @echo ======================================================================== + @echo Building OS-dependent module + @echo If you get No such file error messages for files x509.h, ssl.h, + @echo pem.h, buffer.h, bio.h, and crypto.h, that means that OpenSSL + @echo is not installed on your system. Either install OpenSSL first + @echo or build with command: make `$(CAT) OSTYPE` SSLTYPE=none +- `$(CAT) CCTYPE` -c `$(CAT) CFLAGS` `$(CAT) OSCFLAGS` -c osdep.c ++ @echo ======================================================================== ++ ++osdep.so: $(OSDEPS) ++ $(CC) -fPIC -DPIC -D_REENTRANT `$(CAT) CFLAGS` `cat OSCFLAGS` -c osdep.c -o $@ + + osdep.c: osdepbas.c osdepckp.c osdeplog.c osdepssl.c + $(CAT) osdepbas.c osdepckp.c osdeplog.c osdepssl.c > osdep.c diff --git a/SOURCES/imap-2007e-system_c_client.patch b/SOURCES/imap-2007e-system_c_client.patch new file mode 100644 index 0000000..823af50 --- /dev/null +++ b/SOURCES/imap-2007e-system_c_client.patch @@ -0,0 +1,17 @@ +diff -up imap-2007e/Makefile.system_c_client imap-2007e/Makefile +--- imap-2007e/Makefile.system_c_client 2008-06-04 13:43:35.000000000 -0500 ++++ imap-2007e/Makefile 2011-06-13 14:13:04.467014334 -0500 +@@ -665,9 +665,11 @@ an ua: + @$(MAKE) ssl$(SSLTYPE) + @echo Applying $@ process to sources... + $(TOOLS)/$@ "$(LN)" src/c-client c-client +- $(TOOLS)/$@ "$(LN)" src/ansilib c-client +- $(TOOLS)/$@ "$(LN)" src/charset c-client ++ $(TOOLS)/$@ "$(LN)" src/ansilib c-client ++ $(TOOLS)/$@ "$(LN)" src/charset c-client + $(TOOLS)/$@ "$(LN)" src/osdep/$(SYSTEM) c-client ++ cp -alf /usr/include/imap/* c-client/ ++ #sleep 5 + $(TOOLS)/$@ "$(LN)" src/mtest mtest + $(TOOLS)/$@ "$(LN)" src/ipopd ipopd + $(TOOLS)/$@ "$(LN)" src/imapd imapd diff --git a/SOURCES/imap-2007f-format-security.patch b/SOURCES/imap-2007f-format-security.patch new file mode 100644 index 0000000..244153e --- /dev/null +++ b/SOURCES/imap-2007f-format-security.patch @@ -0,0 +1,12 @@ +diff -Naur imap-2007f.orig/src/osdep/unix/flocklnx.c imap-2007f/src/osdep/unix/flocklnx.c +--- imap-2007f.orig/src/osdep/unix/flocklnx.c 2011-07-23 02:20:11.000000000 +0200 ++++ imap-2007f/src/osdep/unix/flocklnx.c 2014-04-14 19:17:46.429000000 +0200 +@@ -57,7 +57,7 @@ + case ENOLCK: /* lock table is full */ + sprintf (tmp,"File locking failure: %s",strerror (errno)); + mm_log (tmp,WARN); /* give the user a warning of what happened */ +- if (!logged++) syslog (LOG_ERR,tmp); ++ if (!logged++) syslog (LOG_ERR, "%s", tmp); + /* return failure if non-blocking lock */ + if (op & LOCK_NB) return -1; + sleep (5); /* slow down in case it loops */ diff --git a/SOURCES/imap-2007f-ldflags.patch b/SOURCES/imap-2007f-ldflags.patch new file mode 100644 index 0000000..82c6afc --- /dev/null +++ b/SOURCES/imap-2007f-ldflags.patch @@ -0,0 +1,21 @@ +diff -up imap-2007f/src/osdep/unix/Makefile.ldflags imap-2007f/src/osdep/unix/Makefile +--- imap-2007f/src/osdep/unix/Makefile.ldflags 2018-04-24 13:18:45.333043626 +0200 ++++ imap-2007f/src/osdep/unix/Makefile 2018-04-24 13:29:09.262125281 +0200 +@@ -73,7 +73,7 @@ SSLRSA= # -lRSAglue -lrsaref + + SSLCFLAGS= -I$(SSLINCLUDE) -I$(SSLINCLUDE)/openssl\ + -DSSL_CERT_DIRECTORY=\"$(SSLCERTS)\" -DSSL_KEY_DIRECTORY=\"$(SSLKEYS)\" +-SSLLDFLAGS= -L$(SSLLIB) -lssl $(SSLCRYPTO) $(SSLRSA) ++SSLLDFLAGS= -L$(SSLLIB) -lssl $(SSLCRYPTO) $(SSLRSA) $(EXTRALDFLAGS) + + + # Extended flags needed for non-standard passwd types. You may need to modify. +@@ -502,7 +502,7 @@ lnp: # Linux Pluggable Authentication mo + ACTIVEFILE=/var/lib/news/active \ + RSHPATH=/usr/bin/rsh \ + BASECFLAGS="$(GCCCFLAGS)" \ +- BASELDFLAGS="$(PAMLDFLAGS)" ++ BASELDFLAGS="$(EXTRALDFLAGS) $(PAMLDFLAGS)" + + lnx: # Linux non-shadow passwords + @echo You are building for traditional Linux *without* shadow diff --git a/SOURCES/imap-legacy.pam b/SOURCES/imap-legacy.pam new file mode 100644 index 0000000..20dff02 --- /dev/null +++ b/SOURCES/imap-legacy.pam @@ -0,0 +1,5 @@ +#%PAM-1.0 +auth required pam_nologin.so +auth required pam_stack.so service=system-auth +account required pam_stack.so service=system-auth +session required pam_stack.so service=system-auth diff --git a/SOURCES/imap-password.pam b/SOURCES/imap-password.pam new file mode 100644 index 0000000..5b9f05f --- /dev/null +++ b/SOURCES/imap-password.pam @@ -0,0 +1,5 @@ +#%PAM-1.0 +auth required pam_nologin.so +auth include password-auth +account include password-auth +session include password-auth diff --git a/SOURCES/imap-xinetd b/SOURCES/imap-xinetd new file mode 100644 index 0000000..3fc3902 --- /dev/null +++ b/SOURCES/imap-xinetd @@ -0,0 +1,14 @@ +# default: off +# description: The IMAP service allows remote users to access their mail using \ +# an IMAP client such as Mutt, Pine, fetchmail, or Netscape \ +# Communicator. +service imap +{ + socket_type = stream + wait = no + user = root + server = /usr/sbin/imapd + log_on_success += HOST DURATION + log_on_failure += HOST + disable = yes +} diff --git a/SOURCES/imap.pam b/SOURCES/imap.pam new file mode 100644 index 0000000..ccb9105 --- /dev/null +++ b/SOURCES/imap.pam @@ -0,0 +1,5 @@ +#%PAM-1.0 +auth required pam_nologin.so +auth include system-auth +account include system-auth +session include system-auth diff --git a/SOURCES/imaps-xinetd b/SOURCES/imaps-xinetd new file mode 100644 index 0000000..e0896fe --- /dev/null +++ b/SOURCES/imaps-xinetd @@ -0,0 +1,14 @@ +# default: off +# description: The IMAPS service allows remote users to access their mail \ +# using an IMAP client with SSL support such as Netscape \ +# Communicator or fetchmail. +service imaps +{ + socket_type = stream + wait = no + user = root + server = /usr/sbin/imapd + log_on_success += HOST DURATION + log_on_failure += HOST + disable = yes +} diff --git a/SOURCES/ipop2-xinetd b/SOURCES/ipop2-xinetd new file mode 100644 index 0000000..f7a1ab9 --- /dev/null +++ b/SOURCES/ipop2-xinetd @@ -0,0 +1,15 @@ +# default: off +# description: The POP2 service allows remote users to access their mail \ +# using an POP2 client such as fetchmail. In most cases, clients \ +# support POP3 instead of POP2, so enabling this service is rarely \ +# necessary. +service pop2 +{ + socket_type = stream + wait = no + user = root + server = /usr/sbin/ipop2d + log_on_success += HOST DURATION + log_on_failure += HOST + disable = yes +} diff --git a/SOURCES/ipop3-xinetd b/SOURCES/ipop3-xinetd new file mode 100644 index 0000000..d91f049 --- /dev/null +++ b/SOURCES/ipop3-xinetd @@ -0,0 +1,14 @@ +# default: off +# description: The POP3 service allows remote users to access their mail \ +# using an POP3 client such as Netscape Communicator, mutt, \ +# or fetchmail. +service pop3 +{ + socket_type = stream + wait = no + user = root + server = /usr/sbin/ipop3d + log_on_success += HOST DURATION + log_on_failure += HOST + disable = yes +} diff --git a/SOURCES/pop3s-xinetd b/SOURCES/pop3s-xinetd new file mode 100644 index 0000000..943c0f5 --- /dev/null +++ b/SOURCES/pop3s-xinetd @@ -0,0 +1,13 @@ +# default: off +# description: The POP3S service allows remote users to access their mail \ +# using an POP3 client with SSL support such as fetchmail. +service pop3s +{ + socket_type = stream + wait = no + user = root + server = /usr/sbin/ipop3d + log_on_success += HOST DURATION + log_on_failure += HOST + disable = yes +} diff --git a/SPECS/uw-imap.spec b/SPECS/uw-imap.spec new file mode 100644 index 0000000..69b3501 --- /dev/null +++ b/SPECS/uw-imap.spec @@ -0,0 +1,700 @@ + +# Fedora review: http://bugzilla.redhat.com/166008 + +%if 0%{?fedora} || 0%{?rhel} > 6 +%define _with_devel 1 +# ship static lib, matches default upstream config +# as convenience to users, since our hacked shlib can potentially break +# abi semi-often +%global _with_static 1 +%endif + +## don't use even on rhel6, due to libc-client WONTFIX, +## https://bugzilla.redhat.com/show_bug.cgi?id=736120 +#if 0%%{?rhel} == 6 +%if 0 +%global _with_system_libc_client 1 +%endif + +# trim changelog included in binary rpms +%global _changelog_trimtime %(date +%s -d "1 year ago") + +Summary: UW Server daemons for IMAP and POP network mail protocols +Name: uw-imap +Version: 2007f +Release: 27%{?dist} + +# See LICENSE.txt, http://www.apache.org/licenses/LICENSE-2.0 +License: ASL 2.0 +URL: http://www.washington.edu/imap/ +# Old (non-latest) releases live at ftp://ftp.cac.washington.edu/imap/old/ +Source0: ftp://ftp.cac.washington.edu/imap/imap-%{version}%{?beta}%{?dev}%{?snap}.tar.gz + +%global soname c-client +%global shlibname lib%{soname}.so.%{somajor} +%if 0%{?fedora} || 0%{?rhel} > 6 +%global somajor 2007 +%global imap_libs lib%{soname} +%else +# rhel (<7) requires parallel-installable shlib, to not conflict with +# os-provided libc-client +%global somajor %{version} +%global imap_libs lib%{soname}%{somajor} +%endif + +# FC4+ uses %%_sysconfdir/pki/tls, previous releases used %%_datadir/ssl +%global ssldir %(if [ -d %{_sysconfdir}/pki/tls ]; then echo "%{_sysconfdir}/pki/tls"; else echo "%{_datadir}/ssl"; fi) + +# imap -> uw-imap rename +Obsoletes: imap < 1:%{version} + +# newest pam setup, using password-auth common PAM +Source20: imap-password.pam +# new pam setup, using new "include" feature +Source21: imap.pam +# legacy/old pam setup, using pam_stack.so +Source22: imap-legacy.pam + +Source31: imap-xinetd +Source32: imaps-xinetd +Source33: ipop2-xinetd +Source34: ipop3-xinetd +Source35: pop3s-xinetd + +Patch1: imap-2007-paths.patch +# See http://bugzilla.redhat.com/229781 , http://bugzilla.redhat.com/127271 +Patch2: imap-2004a-doc.patch +Patch5: imap-2007e-overflow.patch +Patch9: imap-2007e-shared.patch +Patch10: imap-2007e-authmd5.patch +Patch11: imap-2007e-system_c_client.patch +Patch12: imap-2007f-format-security.patch +Patch13: imap-2007e-poll.patch +# From debian +Patch14: 1006_openssl1.1_autoverify.patch + +Patch15: imap-2007f-ldflags.patch + +BuildRequires: make +BuildRequires: gcc +BuildRequires: krb5-devel +BuildRequires: pam-devel + +Requires: xinetd +Requires(post): openssl + +BuildRequires: openssl-devel + +%if 0%{?_with_system_libc_client} +BuildRequires: libc-client-devel = %{version} +Requires: %{imap_libs}%{?_isa} = %{version} +%else +Requires: %{imap_libs}%{?_isa} = %{version}-%{release} +%endif + +%description +The %{name} package provides UW server daemons for both the IMAP (Internet +Message Access Protocol) and POP (Post Office Protocol) mail access +protocols. The POP protocol uses a "post office" machine to collect +mail for users and allows users to download their mail to their local +machine for reading. The IMAP protocol allows a user to read mail on a +remote machine without downloading it to their local machine. + +%package -n %{imap_libs} +Summary: UW C-client mail library +Obsoletes: libc-client2004d < 1:2004d-2 +Obsoletes: libc-client2004e < 2004e-2 +Obsoletes: libc-client2004g < 2004g-7 +Obsoletes: libc-client2006 < 2006k-2 +%if "%{imap_libs}" != "libc-client2007" +Obsoletes: libc-client2007 < 2007-2 +%endif +%description -n %{imap_libs} +Provides a common API for accessing mailboxes. + +%package devel +Summary: Development tools for programs which will use the UW IMAP library +Requires: %{imap_libs}%{?_isa} = %{version}-%{release} +# imap -> uw-imap rename +Obsoletes: imap-devel < 1:%{version} +%if "%{imap_libs}" == "libc-client" +Obsoletes: libc-client-devel < %{version}-%{release} +Provides: libc-client-devel = %{version}-%{release} +%else +Conflicts: libc-client-devel < %{version}-%{release} +%endif +%description devel +Contains the header files and libraries for developing programs +which will use the UW C-client common API. + +%package static +Summary: UW IMAP static library +Requires: %{name}-devel = %{version}-%{release} +#Provides: libc-client-static = %%{version}-%%{release} +Requires: krb5-devel openssl-devel pam-devel +%description static +Contains static libraries for developing programs +which will use the UW C-client common API. + +%package utils +Summary: UW IMAP Utilities to make managing your email simpler +%if ! 0%{?_with_system_libc_client} +Requires: %{imap_libs}%{?_isa} = %{version}-%{release} +%endif +# imap -> uw-imap rename +Obsoletes: imap-utils < 1:%{version} +%description utils +This package contains some utilities for managing UW IMAP email,including: +* dmail : procmail Mail Delivery Module +* mailutil : mail utility program +* mtest : C client test program +* tmail : Mail Delivery Module +* mlock + + + +%prep +%setup -q -n imap-%{version}%{?dev}%{?snap} + +%patch1 -p1 -b .paths +%patch2 -p1 -b .doc + +%patch5 -p1 -b .overflow + +%patch9 -p1 -b .shared +%patch10 -p1 -b .authmd5 + +%if 0%{?fedora} > 11 || 0%{?rhel} > 5 +install -p -m644 %{SOURCE20} imap.pam +%else +%if 0%{?fedora} > 4 || 0%{?rhel} > 4 +install -p -m644 %{SOURCE21} imap.pam +%else +install -p -m644 %{SOURCE22} imap.pam +%endif +%endif + +%if 0%{?_with_system_libc_client} +%patch11 -p1 -b .system_c_client +%endif + +%patch12 -p1 -b .fmt-sec +%patch13 -p1 -b .poll +%patch14 -p1 -b .openssl11 +%patch15 -p1 -b .ldflags + + +%build + +# Kerberos setup +test -f %{_sysconfdir}/profile.d/krb5-devel.sh && source %{_sysconfdir}/profile.d/krb5-devel.sh +test -f %{_sysconfdir}/profile.d/krb5.sh && source %{_sysconfdir}/profile.d/krb5.sh +GSSDIR=$(krb5-config --prefix) + +# SSL setup, probably legacy-only, but shouldn't hurt -- Rex +export EXTRACFLAGS="$EXTRACFLAGS $(pkg-config --cflags openssl 2>/dev/null)" +# $RPM_OPT_FLAGS +export EXTRACFLAGS="$EXTRACFLAGS -fPIC $RPM_OPT_FLAGS" +# jorton added these, I'll assume he knows what he's doing. :) -- Rex +export EXTRACFLAGS="$EXTRACFLAGS -fno-strict-aliasing" +%if 0%{?fedora} > 4 || 0%{?rhel} > 4 +export EXTRACFLAGS="$EXTRACFLAGS -Wno-pointer-sign" +%endif + +echo -e "y\ny" | \ +make %{?_smp_mflags} lnp \ +IP=6 \ +EXTRACFLAGS="$EXTRACFLAGS" \ +EXTRALDFLAGS="$EXTRALDFLAGS $RPM_LD_FLAGS" \ +EXTRAAUTHENTICATORS=gss \ +SPECIALS="GSSDIR=${GSSDIR} LOCKPGM=%{_sbindir}/mlock SSLCERTS=%{ssldir}/certs SSLDIR=%{ssldir} SSLINCLUDE=%{_includedir}/openssl SSLKEYS=%{ssldir}/private SSLLIB=%{_libdir}" \ +SSLTYPE=unix \ +%if 0%{?_with_system_libc_client} +CCLIENTLIB=%{_libdir}/%{shlibname} \ +%else +CCLIENTLIB=$(pwd)/c-client/%{shlibname} \ +%endif +SHLIBBASE=%{soname} \ +SHLIBNAME=%{shlibname} \ +%if 0%{?_with_system_libc_client} +%endif +# Blank line + + +%install +mkdir -p $RPM_BUILD_ROOT%{_libdir}/ + +%if ! 0%{?_with_system_libc_client} +%if 0%{?_with_static:1} +install -p -m644 ./c-client/c-client.a $RPM_BUILD_ROOT%{_libdir}/ +ln -s c-client.a $RPM_BUILD_ROOT%{_libdir}/libc-client.a +%endif + +install -p -m755 ./c-client/%{shlibname} $RPM_BUILD_ROOT%{_libdir}/ + +# %%ghost'd c-client.cf +touch c-client.cf +install -p -m644 -D c-client.cf $RPM_BUILD_ROOT%{_sysconfdir}/c-client.cf +%endif + +%if 0%{?_with_devel:1} +ln -s %{shlibname} $RPM_BUILD_ROOT%{_libdir}/lib%{soname}.so + +mkdir -p $RPM_BUILD_ROOT%{_includedir}/imap/ +install -m644 ./c-client/*.h $RPM_BUILD_ROOT%{_includedir}/imap/ +# Added linkage.c to fix (#34658) +install -m644 ./c-client/linkage.c $RPM_BUILD_ROOT%{_includedir}/imap/ +install -m644 ./src/osdep/tops-20/shortsym.h $RPM_BUILD_ROOT%{_includedir}/imap/ +%endif + +install -p -D -m644 src/imapd/imapd.8 $RPM_BUILD_ROOT%{_mandir}/man8/imapd.8uw +install -p -D -m644 src/ipopd/ipopd.8 $RPM_BUILD_ROOT%{_mandir}/man8/ipopd.8uw + +mkdir -p $RPM_BUILD_ROOT%{_sbindir} +install -p -m755 ipopd/ipop{2d,3d} $RPM_BUILD_ROOT%{_sbindir}/ +install -p -m755 imapd/imapd $RPM_BUILD_ROOT%{_sbindir}/ +install -p -m755 mlock/mlock $RPM_BUILD_ROOT%{_sbindir}/ + +mkdir -p $RPM_BUILD_ROOT%{_bindir}/ +install -p -m755 dmail/dmail mailutil/mailutil mtest/mtest tmail/tmail $RPM_BUILD_ROOT%{_bindir}/ +mkdir -p $RPM_BUILD_ROOT%{_mandir}/man1/ +install -p -m644 src/{dmail/dmail,mailutil/mailutil,tmail/tmail}.1 $RPM_BUILD_ROOT%{_mandir}/man1/ + +install -p -m644 -D imap.pam $RPM_BUILD_ROOT%{_sysconfdir}/pam.d/imap +install -p -m644 -D imap.pam $RPM_BUILD_ROOT%{_sysconfdir}/pam.d/pop + +install -p -m644 -D %{SOURCE31} $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d/imap +install -p -m644 -D %{SOURCE32} $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d/imaps +install -p -m644 -D %{SOURCE33} $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d/ipop2 +install -p -m644 -D %{SOURCE34} $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d/ipop3 +install -p -m644 -D %{SOURCE35} $RPM_BUILD_ROOT%{_sysconfdir}/xinetd.d/pop3s + +# %ghost'd *.pem files +mkdir -p $RPM_BUILD_ROOT%{ssldir}/certs +touch $RPM_BUILD_ROOT%{ssldir}/certs/{imapd,ipop3d}.pem + + +# FIXME, do on first launch (or not at all?), not here -- Rex +%post +{ +cd %{ssldir}/certs &> /dev/null || : +for CERT in imapd.pem ipop3d.pem ;do + if [ ! -e $CERT ];then + if [ -e stunnel.pem ];then + cp stunnel.pem $CERT &> /dev/null || : + elif [ -e Makefile ];then + make $CERT << EOF &> /dev/null || : +-- +SomeState +SomeCity +SomeOrganization +SomeOrganizationalUnit +localhost.localdomain +root@localhost.localdomain +EOF + fi + fi +done +} || : +/sbin/service xinetd reload > /dev/null 2>&1 || : + +%postun +/sbin/service xinetd reload > /dev/null 2>&1 || : + +%files +%doc docs/SSLBUILD +%config(noreplace) %{_sysconfdir}/pam.d/imap +%config(noreplace) %{_sysconfdir}/pam.d/pop +%config(noreplace) %{_sysconfdir}/xinetd.d/imap +%config(noreplace) %{_sysconfdir}/xinetd.d/ipop2 +%config(noreplace) %{_sysconfdir}/xinetd.d/ipop3 +# These need to be replaced (ie, can't use %%noreplace), or imaps/pop3s can fail on upgrade +# do this in a %trigger or something not here... -- Rex +%config(noreplace) %{_sysconfdir}/xinetd.d/imaps +%config(noreplace) %{_sysconfdir}/xinetd.d/pop3s +%attr(0600,root,root) %ghost %config(missingok,noreplace) %verify(not md5 size mtime) %{ssldir}/certs/imapd.pem +%attr(0600,root,root) %ghost %config(missingok,noreplace) %verify(not md5 size mtime) %{ssldir}/certs/ipop3d.pem +%{_mandir}/man8/* +%{_sbindir}/ipop2d +%{_sbindir}/ipop3d +%{_sbindir}/imapd + +%files utils +%{_bindir}/* +%attr(2755, root, mail) %{_sbindir}/mlock +%{_mandir}/man1/* + +%if ! 0%{?_with_system_libc_client} +%ldconfig_scriptlets -n %{imap_libs} + +%files -n %{imap_libs} +%doc LICENSE.txt NOTICE SUPPORT +%doc docs/RELNOTES docs/*.txt +%ghost %config(missingok,noreplace) %{_sysconfdir}/c-client.cf +%{_libdir}/lib%{soname}.so.* +%endif + +%if 0%{?_with_devel:1} +%files devel +%{_includedir}/imap/ +%{_libdir}/lib%{soname}.so +%endif + +%if 0%{?_with_static:1} +%files static +%{_libdir}/c-client.a +%{_libdir}/libc-client.a +%endif + + +%changelog +* Wed Jan 27 2021 Fedora Release Engineering - 2007f-27 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Wed Jul 29 2020 Fedora Release Engineering - 2007f-26 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Fri Jan 31 2020 Fedora Release Engineering - 2007f-25 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Sat Jul 27 2019 Fedora Release Engineering - 2007f-24 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Sun Feb 03 2019 Fedora Release Engineering - 2007f-23 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Sat Jul 14 2018 Fedora Release Engineering - 2007f-22 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Tue Apr 24 2018 Karsten Hopp - 2007f-21 +- make sure LDFLAGS are used everywhere (rhbz#1541093) + +* Tue Feb 20 2018 Remi Collet - 2007f-19 +- missing BR on C compiler +- use ldconfig_scriptlets + +* Fri Feb 09 2018 Fedora Release Engineering - 2007f-19 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Tue Jan 30 2018 Remi Collet - 2007f-18 +- fix compatibility with OpenSSL 1.1 rhbz#1540020 + using patch from debian + +* Thu Aug 03 2017 Fedora Release Engineering - 2007f-17 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Mon Jul 31 2017 Rex Dieter - 2007f-16 +- -devel for el7+ too (#1473520) + +* Thu Jul 27 2017 Fedora Release Engineering - 2007f-15 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Tue Jul 11 2017 Rex Dieter - 2007f-14 +- .spec cosmetics, %%define -> %%global, drop %%clean +- workaround el6 libc-client WONTFIX brokenness (#736120) +- use compat-openssl10 on f26+ (#1424334) + +* Sat Feb 11 2017 Fedora Release Engineering - 2007f-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Thu Jul 28 2016 Joe Orton - 2007f-12 +- use poll() not select, from Ben Smithusrt via Debian + +* Fri Feb 05 2016 Fedora Release Engineering - 2007f-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Fri Jun 19 2015 Fedora Release Engineering - 2007f-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Mon Aug 18 2014 Fedora Release Engineering - 2007f-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Mon Jul 21 2014 Rex Dieter 2007f-8 +- move scriptlets near corresponding %%files + +* Sun Jun 08 2014 Fedora Release Engineering - 2007f-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Mon Apr 14 2014 Jaromir Capik - 2007f-6 +- Fixing format-security flaws (#1037374) + +* Sun Aug 04 2013 Fedora Release Engineering - 2007f-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Fri Feb 15 2013 Fedora Release Engineering - 2007f-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Sun Jul 22 2012 Fedora Release Engineering - 2007f-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Sat Jan 14 2012 Fedora Release Engineering - 2007f-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Tue Aug 02 2011 Rex Dieter 2007f-1 +- imap-2007f + +* Mon Jun 13 2011 Rex Dieter 2007e-13 +- _with_system_libc_client option (el6+) +- tight deps via %%?_isa +- drop extraneous Requires(post,postun): xinetd + +* Mon Feb 07 2011 Fedora Release Engineering - 2007e-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Tue Apr 27 2010 Rex Dieter - 2007e-11 +- SSL connection through IPv6 fails (#485860) +- fix SSLDIR, set SSLKEYS + +* Wed Sep 16 2009 Tomas Mraz - 2007e-10 +- use password-auth common PAM configuration instead of system-auth + where available + +* Mon Aug 31 2009 Rex Dieter +- omit -devel, -static bits in EPEL builds (#518885) + +* Fri Aug 21 2009 Tomas Mraz - 2007e-9 +- rebuilt with new openssl + +* Sun Jul 26 2009 Fedora Release Engineering - 2007e-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Wed Jul 08 2009 Rex Dieter - 2007e-7 +- fix shared.patch to use CFLAGS for osdep.c too + +* Tue Jul 07 2009 Rex Dieter - 2007e-6 +- build with -fPIC +- rebase patches (patch fuzz=0) + +* Wed Feb 25 2009 Fedora Release Engineering - 2007e-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Sun Jan 18 2009 Tomas Mraz 2007e-4 +- rebuild with new openssl + +* Mon Jan 12 2009 Rex Dieter 2007e-3 +- main/-utils: +Req: %%imap_libs = %%version-%%release + +* Fri Dec 19 2008 Rex Dieter 2007e-1 +- imap-2007e + +* Fri Oct 31 2008 Rex Dieter 2007d-1 +- imap-2007d + +* Wed Oct 01 2008 Rex Dieter 2007b-2 +- fix build (patch fuzz) (#464985) + +* Fri Jun 13 2008 Rex Dieter 2007b-1 +- imap-2007b + +* Tue May 18 2008 Rex Dieter 2007a1-3 +- libc-client: incomplete list of obsoletes (#446240) + +* Wed Mar 19 2008 Rex Dieter 2007a1-2 +- uw-imap conflicts with cyrus-imapd (#222486) + +* Wed Mar 19 2008 Rex Dieter 2007a1-1 +- imap-2007a1 +- include static lib +- utils: update %%description + +* Thu Mar 13 2008 Rex Dieter 2007a-1 +- imap-2007a + +* Fri Feb 08 2008 Rex Dieter 2007-3 +- respin (gcc43) + +* Wed Jan 23 2008 Rex Dieter 2007-2 +- Obsoletes: libc-client2006 (#429796) +- drop libc-client hacks for parallel-installability, fun while it lasted + +* Fri Dec 21 2007 Rex Dieter 2007-1 +- imap-2007 + +* Tue Dec 04 2007 Rex Dieter 2006k-2 +- respin for new openssl + +* Fri Nov 09 2007 Rex Dieter 2006k-1 +- imap-2006k (final) + +* Wed Sep 19 2007 Rex Dieter 2006k-0.1.0709171900 +- imap-2006k.DEV.SNAP-0709171900 + +* Tue Aug 21 2007 Joe Orton 2006j-3 +- fix License + +* Tue Jul 17 2007 Rex Dieter 2006j-2 +- imap-2006j2 + +* Mon Jul 09 2007 Rex Dieter 2006j-1 +- imap-2006j1 + +* Wed Jun 13 2007 Rex Dieter 2006i-1 +- imap-2006i + +* Wed May 09 2007 Rex Dieter 2006h-1 +- imap-2006h +- Obsolete pre-merge libc-client pkgs + +* Fri Apr 27 2007 Rex Dieter 2006g-3 +- imap-2004a-doc.patch (#229781,#127271) + +* Mon Apr 2 2007 Joe Orton 2006g-2 +- use $RPM_OPT_FLAGS during build + +* Mon Apr 02 2007 Rex Dieter 2006g-1 +- imap-2006g + +* Wed Feb 07 2007 Rex Dieter 2006e-3 +- Obsoletes: libc-client2004g +- cleanup/simplify c-client.cf handling + +* Fri Jan 26 2007 Rex Dieter 2006e-2 +- use /etc/profile.d/krb5-devel.sh + +* Fri Jan 26 2007 Rex Dieter 2006e-1 +- imap-2006e + +* Mon Dec 18 2006 Rex Dieter 2006d-1 +- imap-2006d (#220121) + +* Wed Oct 25 2006 Rex Dieter 2006c1-1 +- imap-2006c1 + +* Fri Oct 06 2006 Rex Dieter 2006b-1 +- imap-2006b +- %%ghost %%config(missingok,noreplace) %%{_sysconfdir}/c-client.cf + +* Fri Oct 06 2006 Rex Dieter 2006a-6 +- omit EOL whitespace from c-client.cf + +* Thu Oct 05 2006 Rex Dieter 2006a-5 +- %%config(noreplace) all xinetd.d/pam.d bits + +* Thu Oct 05 2006 Rex Dieter 2006a-4 +- eek, pam.d/xinet.d bits were all mixed up, fixed. + +* Wed Oct 04 2006 Rex Dieter 2006a-3 +- libc-client: move c-client.cf here +- c-client.cf: +set new-folder-format same-as-inbox + +* Wed Oct 04 2006 Rex Dieter 2006a-2 +- omit mixproto patch (lvn bug #1184) + +* Tue Sep 26 2006 Rex Dieter 2006a-1 +- imap-2006a +- omit static lib (for now, at least) + +* Mon Sep 25 2006 Rex Dieter 2006-4 +- -devel-static: package static lib separately. + +* Mon Sep 25 2006 Rex Dieter 2006-3 +- License: Apache 2.0 + +* Fri Sep 15 2006 Rex Dieter 2006-2 +- imap-2006 +- change default (CREATEPROTO) driver to mix +- Obsolete old libc-clients + +* Tue Aug 29 2006 Rex Dieter 2004g-6 +- fc6 respin + +* Fri Aug 18 2006 Rex Dieter 2004g-5 +- cleanup, respin for fc6 + +* Wed Mar 1 2006 Rex Dieter +- fc5: gcc/glibc respin + +* Thu Nov 17 2005 Rex Dieter 2004g-4 +- use pam's "include" feature on fc5 +- cleanup %%doc handling, remove useless bits + +* Thu Nov 17 2005 Rex Dieter 2004g-3 +- omit trailing whitespace in default c-client.cf + +* Wed Nov 16 2005 Rex Dieter 2004g-2 +- rebuild for new openssl + +* Mon Sep 26 2005 Rex Dieter 2004g-1 +- imap-2004g +- /etc -> %%_sysconfdir +- use %%{?_smp_mflags} + +* Mon Aug 15 2005 Rex Dieter 2004e-1 +- imap-2004e +- rename: imap -> uw-imap (yay, we get to drop the Epoch) +- sslcerts=%%{_sysconfdir}/pki/tls/certs if exists, else /usr/share/ssl/certs + +* Fri Apr 29 2005 Rex Dieter 1:2004d-1 +- 2004d +- imap-libs -> lib%%{soname}%%{version} (ie, libc-client2004d), so we can + have multiple versions (shared-lib only) installed +- move mlock to -utils. +- revert RFC2301, locks out too many folks where SSL is unavailable + +* Thu Apr 28 2005 Rex Dieter 1:2004-0.fdr.11.c1 +- change default driver from mbox to mbx +- comply with RFC 3501 security: Unencrypted plaintext passwords are prohibited + +* Fri Jan 28 2005 Rex Dieter 1:2004-0.fdr.10.c1 +- imap-2004c1 security release: + http://www.kb.cert.org/vuls/id/702777 + +* Thu Jan 20 2005 Rex Dieter 1:2004-0.fdr.9.c +- imap2004c +- -utils: dmail,mailutil,tmail +- -libs: include mlock (so it's available for other imap clients, like pine) +- remove extraneous patches +- %%_sysconfigdir/c-client.cf: use to set MailDir (but don't if upgrading from + an older version (ie, if folks don't want/expect a change in behavior) + +* Mon Sep 13 2004 Rex Dieter 1:2004-0.fdr.7.a +- mailsubdir patch (default to ~/Mail instead of ~) + +* Fri Jul 23 2004 Rex Dieter 1:2004-0.fdr.6.a +- remove Obsoletes/Provides: libc-client (they can, in fact, co-xist) +- -devel: remove O/P: libc-client-devel -> Conflicts: libc-client-devel + +* Thu Jul 16 2004 Rex Dieter 1:2004-0.fdr.5.a +- imap2004a + +* Tue Jul 13 2004 Rex Dieter 1:2004-0.fdr.4 +- -devel: Req: %%{name}-libs + +* Tue Jul 13 2004 Rex Dieter 1:2004-0.fdr.3 +- previous imap pkgs had Epoch: 1, we need it too. + +* Wed Jul 07 2004 Rex Dieter 2004-0.fdr.2 +- use %%version as %%somajver (like how openssl does it) + +* Wed Jul 07 2004 Rex Dieter 2004-0.fdr.1 +- imap-2004 +- use mlock, if available. +- Since libc-client is an attrocious name choice, we'll trump it, + and provide imap, imap-libs, imap-devel instead (redhat bug #120873) + +* Wed Apr 07 2004 Kaj J. Niemi 2002e-4 +- Use CFLAGS (and RPM_OPT_FLAGS) during the compilation +- Build the .so through gcc instead of directly calling ld + +* Fri Mar 5 2004 Joe Orton 2002e-3 +- install .so with permissions 0755 +- make auth_md5.c functions static to avoid symbol conflicts +- remove Epoch: 0 + +* Tue Mar 02 2004 Kaj J. Niemi 0:2002e-2 +- "lnp" already uses RPM_OPT_FLAGS +- have us conflict with imap, imap-devel + +* Tue Mar 2 2004 Joe Orton 0:2002e-1 +- add post/postun, always use -fPIC + +* Tue Feb 24 2004 Kaj J. Niemi +- Name change from c-client to libc-client + +* Sat Feb 14 2004 Kaj J. Niemi 0:2002e-0.1 +- c-client 2002e is based on imap-2002d +- Build shared version, build logic is copied from FreeBSD net/cclient +