summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeroen Roovers <jer@gentoo.org>2010-08-16 21:06:03 +0000
committerJeroen Roovers <jer@gentoo.org>2010-08-16 21:06:03 +0000
commit69b6642fe602961dfa88417287e5e5c66673c870 (patch)
tree3cd6d2f15399a4bd51475f706769f569b4b1ac11 /net-libs/c-client
parentTransfer prefix keywords, add eautoreconf for Interix (diff)
downloadgentoo-2-69b6642fe602961dfa88417287e5e5c66673c870.tar.gz
gentoo-2-69b6642fe602961dfa88417287e5e5c66673c870.tar.bz2
gentoo-2-69b6642fe602961dfa88417287e5e5c66673c870.zip
Respect LDFLAGS, CC, AR, RANLIB by Olivier Huber (bug #331773). Get rid of the useless patch version variables since they are used only once and obscure casual grep epatch *.ebuild outcome. Install RFCs only when USE=doc.
(Portage version: 2.2_rc67/cvs/Linux i686)
Diffstat (limited to 'net-libs/c-client')
-rw-r--r--net-libs/c-client/ChangeLog14
-rw-r--r--net-libs/c-client/c-client-2004g.ebuild99
-rw-r--r--net-libs/c-client/c-client-2006k.ebuild109
-rw-r--r--net-libs/c-client/c-client-2007e-r1.ebuild (renamed from net-libs/c-client/c-client-2004g-r1.ebuild)40
-rw-r--r--net-libs/c-client/files/c-client-2004a-amd64-so-fix.patch13
-rw-r--r--net-libs/c-client/files/c-client-2004g_KOLAB_Annotations.patch448
-rw-r--r--net-libs/c-client/files/c-client-2007e-ldflags.patch35
-rw-r--r--net-libs/c-client/metadata.xml3
8 files changed, 74 insertions, 687 deletions
diff --git a/net-libs/c-client/ChangeLog b/net-libs/c-client/ChangeLog
index e185641970e7..fe8b5411f349 100644
--- a/net-libs/c-client/ChangeLog
+++ b/net-libs/c-client/ChangeLog
@@ -1,6 +1,18 @@
# ChangeLog for net-libs/c-client
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-libs/c-client/ChangeLog,v 1.62 2010/05/24 14:25:14 tove Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-libs/c-client/ChangeLog,v 1.63 2010/08/16 21:06:03 jer Exp $
+
+*c-client-2007e-r1 (16 Aug 2010)
+
+ 16 Aug 2010; Jeroen Roovers <jer@gentoo.org>
+ -files/c-client-2004a-amd64-so-fix.patch, -c-client-2004g.ebuild,
+ -c-client-2004g-r1.ebuild, -files/c-client-2004g_KOLAB_Annotations.patch,
+ -c-client-2006k.ebuild, +c-client-2007e-r1.ebuild,
+ +files/c-client-2007e-ldflags.patch, metadata.xml:
+ Respect LDFLAGS, CC, AR, RANLIB by Olivier Huber (bug #331773). Get rid of
+ the useless patch version variables since they are used only once and
+ obscure casual grep epatch *.ebuild outcome. Install RFCs only when
+ USE=doc.
24 May 2010; Torsten Veller <tove@gentoo.org> metadata.xml:
Remove wrobel from metadata.xml (#111816)
diff --git a/net-libs/c-client/c-client-2004g.ebuild b/net-libs/c-client/c-client-2004g.ebuild
deleted file mode 100644
index 7120a99ddc43..000000000000
--- a/net-libs/c-client/c-client-2004g.ebuild
+++ /dev/null
@@ -1,99 +0,0 @@
-# Copyright 1999-2008 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-libs/c-client/c-client-2004g.ebuild,v 1.15 2008/03/02 20:07:55 robbat2 Exp $
-
-inherit flag-o-matic eutils libtool
-
-MY_PN=imap
-MY_P="${MY_PN}-${PV}"
-S=${WORKDIR}/${MY_P}
-
-DESCRIPTION="UW IMAP c-client library"
-HOMEPAGE="http://www.washington.edu/imap/"
-SRC_URI="ftp://ftp.cac.washington.edu/imap/${MY_P}.tar.Z"
-
-LICENSE="as-is"
-SLOT="0"
-KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~x86-fbsd"
-IUSE="ssl pam kernel_linux kernel_FreeBSD"
-
-RDEPEND="ssl? ( dev-libs/openssl )
- !virtual/imap-c-client"
-DEPEND="${RDEPEND}
- kernel_linux? ( pam? ( >=sys-libs/pam-0.72 ) )"
-PROVIDE="virtual/imap-c-client"
-
-src_unpack() {
- unpack ${A}
-
- # Tarball packed with bad file perms
- chmod -R u+rwX,go-w "${S}"
-
- # lots of things need -fPIC, including various platforms, and this library
- # generally should be built with it anyway.
- append-flags -fPIC
-
- cd "${S}"
-
- # Modifications so we can build it optimally and correctly
- sed \
- -e "s:BASECFLAGS=\".*\":BASECFLAGS=:g" \
- -e 's:SSLDIR=/usr/local/ssl:SSLDIR=/usr:g' \
- -e 's:SSLCERTS=$(SSLDIR)/certs:SSLCERTS=/etc/ssl/certs:g' \
- -i src/osdep/unix/Makefile || die "Makefile sed fixing failed"
-
- # Targets should use the Gentoo (ie linux) fs
- sed -e '/^bsf:/,/^$/ s:ACTIVEFILE=.*:ACTIVEFILE=/var/lib/news/active:g' \
- -i src/osdep/unix/Makefile || die "Makefile sed fixing failed for FreeBSD"
-
- # Apply a patch to only build the stuff we need for c-client
- epatch "${FILESDIR}"/2002d-Makefile.patch || die "epatch failed"
-
- # Apply patch to add the compilation of a .so for PHP
- # This was previously conditional, but is more widely useful.
- epatch "${FILESDIR}"/${PN}-2004a-amd64-so-fix.patch
-
- # Remove the pesky checks about SSL stuff
- sed -e '/read.*exit/d' -i Makefile
- elibtoolize
-}
-
-src_compile() {
- local ssltype target
- use ssl && ssltype="unix" || ssltype="none"
- if use kernel_linux ; then
- use pam && target=lnp || target=lnx
- elif use kernel_FreeBSD ; then
- target=bsf
- fi
- # no parallel builds supported!
- emake -j1 $target SSLTYPE=${ssltype} EXTRACFLAGS="${CFLAGS}" || die "make failed"
-}
-
-src_install() {
- into /usr
-
- # Library binary
- dolib.a c-client/c-client.a || die
- dosym c-client.a /usr/$(get_libdir)/libc-client.a
-
- # Now the shared library
- dolib.so c-client/libc-client.so.1.0.0 || die
- # these are created by ldconfig!
- #cd ${D}/usr/$(get_libdir)
- #ln -s libc-client.so.1.0.0 libc-client.so.1
- #ln -s libc-client.so.1.0.0 libc-client.so
-
- # Headers
- insinto /usr/include/imap
- doins c-client/*.h
- doins c-client/linkage.c
- #exclude these dupes (can't do it before now due to symlink hell)
- rm "${D}"/usr/include/imap/os_*.h
-
- # Docs
- dodoc README docs/*.txt docs/CONFIG docs/RELNOTES
-
- docinto rfc
- dodoc docs/rfc/*.txt
-}
diff --git a/net-libs/c-client/c-client-2006k.ebuild b/net-libs/c-client/c-client-2006k.ebuild
deleted file mode 100644
index 8fc7ecf0f187..000000000000
--- a/net-libs/c-client/c-client-2006k.ebuild
+++ /dev/null
@@ -1,109 +0,0 @@
-# Copyright 1999-2008 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-libs/c-client/c-client-2006k.ebuild,v 1.9 2008/11/04 03:36:33 vapier Exp $
-
-inherit flag-o-matic eutils libtool
-
-MY_PN=imap
-MY_P="${MY_PN}-${PV}"
-S=${WORKDIR}/${MY_P}
-
-MAKEFILE_PATCH_VER="2006k"
-SO_PATCH_VER="2006k"
-KOLAB_PATCH_VER="2006k"
-
-DESCRIPTION="UW IMAP c-client library"
-HOMEPAGE="http://www.washington.edu/imap/"
-SRC_URI="ftp://ftp.cac.washington.edu/imap/old/${MY_P}.tar.Z"
-
-LICENSE="as-is"
-SLOT="0"
-KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~x86-fbsd"
-IUSE="kernel_linux kernel_FreeBSD kolab pam ssl"
-
-RDEPEND="ssl? ( dev-libs/openssl )
- !virtual/imap-c-client"
-DEPEND="${RDEPEND}
- kernel_linux? ( pam? ( >=sys-libs/pam-0.72 ) )"
-PROVIDE="virtual/imap-c-client"
-
-src_unpack() {
- unpack ${A}
-
- # Tarball packed with bad file perms
- chmod -R u+rwX,go-w "${S}"
-
- # lots of things need -fPIC, including various platforms, and this library
- # generally should be built with it anyway.
- append-flags -fPIC
-
- cd "${S}"
-
- # Modifications so we can build it optimally and correctly
- sed \
- -e "s:BASECFLAGS=\".*\":BASECFLAGS=:g" \
- -e 's:SSLDIR=/usr/local/ssl:SSLDIR=/usr:g' \
- -e 's:SSLCERTS=$(SSLDIR)/certs:SSLCERTS=/etc/ssl/certs:g' \
- -i src/osdep/unix/Makefile || die "Makefile sed fixing failed"
-
- # Targets should use the Gentoo (ie linux) fs
- sed -e '/^bsf:/,/^$/ s:ACTIVEFILE=.*:ACTIVEFILE=/var/lib/news/active:g' \
- -i src/osdep/unix/Makefile || die "Makefile sex fixing failed for FreeBSD"
-
- # Apply a patch to only build the stuff we need for c-client
- epatch "${FILESDIR}"/${PN}-${MAKEFILE_PATCH_VER}_GENTOO_Makefile.patch || die "epatch failed"
-
- # Apply patch to add the compilation of a .so for PHP
- # This was previously conditional, but is more widely useful.
- epatch "${FILESDIR}"/${PN}-${SO_PATCH_VER}_GENTOO_amd64-so-fix.patch
-
- # Add kolab support.
- # http://kolab.org/cgi-bin/viewcvs-kolab.cgi/server/patches/imap/
- if use kolab ; then
- epatch "${FILESDIR}"/${PN}-${KOLAB_PATCH_VER}_KOLAB_Annotations.patch || die "epatch failed"
- fi
-
- # Remove the pesky checks about SSL stuff
- sed -e '/read.*exit/d' -i Makefile
- elibtoolize
-}
-
-src_compile() {
- local ssltype target
- use ssl && ssltype="unix" || ssltype="none"
- if use kernel_linux ; then
- use pam && target=lnp || target=lnx
- elif use kernel_FreeBSD ; then
- target=bsf
- fi
- # no parallel builds supported!
- emake -j1 $target SSLTYPE=${ssltype} EXTRACFLAGS="${CFLAGS}" || die "make failed"
-}
-
-src_install() {
- into /usr
-
- # Library binary
- dolib.a c-client/c-client.a || die
- dosym c-client.a /usr/$(get_libdir)/libc-client.a
-
- # Now the shared library
- dolib.so c-client/libc-client.so.1.0.0 || die
- # these are created by ldconfig!
- #cd ${D}/usr/$(get_libdir)
- #ln -s libc-client.so.1.0.0 libc-client.so.1
- #ln -s libc-client.so.1.0.0 libc-client.so
-
- # Headers
- insinto /usr/include/imap
- doins c-client/*.h
- doins c-client/linkage.c
- #exclude these dupes (can't do it before now due to symlink hell)
- rm "${D}"/usr/include/imap/os_*.h
-
- # Docs
- dodoc README docs/*.txt docs/CONFIG docs/RELNOTES
-
- docinto rfc
- dodoc docs/rfc/*.txt
-}
diff --git a/net-libs/c-client/c-client-2004g-r1.ebuild b/net-libs/c-client/c-client-2007e-r1.ebuild
index ba0e3ded1f09..738c24dff046 100644
--- a/net-libs/c-client/c-client-2004g-r1.ebuild
+++ b/net-libs/c-client/c-client-2007e-r1.ebuild
@@ -1,8 +1,10 @@
-# Copyright 1999-2008 Gentoo Foundation
+# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-libs/c-client/c-client-2004g-r1.ebuild,v 1.2 2008/03/02 20:07:55 robbat2 Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-libs/c-client/c-client-2007e-r1.ebuild,v 1.1 2010/08/16 21:06:03 jer Exp $
-inherit flag-o-matic eutils libtool
+EAPI="2"
+
+inherit flag-o-matic eutils libtool toolchain-funcs
MY_PN=imap
MY_P="${MY_PN}-${PV}"
@@ -15,7 +17,7 @@ SRC_URI="ftp://ftp.cac.washington.edu/imap/${MY_P}.tar.Z"
LICENSE="as-is"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd"
-IUSE="kernel_linux kernel_FreeBSD kolab pam ssl"
+IUSE="doc kernel_linux kernel_FreeBSD kolab pam ssl"
RDEPEND="ssl? ( dev-libs/openssl )
!virtual/imap-c-client"
@@ -23,18 +25,14 @@ DEPEND="${RDEPEND}
kernel_linux? ( pam? ( >=sys-libs/pam-0.72 ) )"
PROVIDE="virtual/imap-c-client"
-src_unpack() {
- unpack ${A}
-
+src_prepare() {
# Tarball packed with bad file perms
- chmod -R u+rwX,go-w "${S}"
+ chmod -R u+rwX,go-w .
# lots of things need -fPIC, including various platforms, and this library
# generally should be built with it anyway.
append-flags -fPIC
- cd "${S}"
-
# Modifications so we can build it optimally and correctly
sed \
-e "s:BASECFLAGS=\".*\":BASECFLAGS=:g" \
@@ -47,20 +45,27 @@ src_unpack() {
-i src/osdep/unix/Makefile || die "Makefile sex fixing failed for FreeBSD"
# Apply a patch to only build the stuff we need for c-client
- epatch "${FILESDIR}"/2002d-Makefile.patch || die "epatch failed"
+ epatch "${FILESDIR}"/${PN}-2006k_GENTOO_Makefile.patch || die "epatch failed"
# Apply patch to add the compilation of a .so for PHP
# This was previously conditional, but is more widely useful.
- epatch "${FILESDIR}"/${PN}-2004a-amd64-so-fix.patch
+ epatch "${FILESDIR}"/${PN}-2006k_GENTOO_amd64-so-fix.patch
# Add kolab support.
# http://kolab.org/cgi-bin/viewcvs-kolab.cgi/server/patches/imap/
if use kolab ; then
- epatch "${FILESDIR}/${P}_KOLAB_Annotations.patch" || die "epatch failed"
+ epatch "${FILESDIR}"/${PN}-2006k_KOLAB_Annotations.patch || die "epatch failed"
fi
# Remove the pesky checks about SSL stuff
sed -e '/read.*exit/d' -i Makefile
+
+ # Respect LDFLAGS
+ epatch "${FILESDIR}"/${P}-ldflags.patch
+ sed -e "s/CC=cc/CC=$(tc-getCC)/" -i src/osdep/unix/Makefile
+ sed -e "s/ARRC=ar/ARRC=$(tc-getAR)/" -i src/osdep/unix/Makefile
+ sed -e "s/RANLIB=ranlib/RANLIB=$(tc-getRANLIB)/" -i src/osdep/unix/Makefile
+
elibtoolize
}
@@ -73,7 +78,7 @@ src_compile() {
target=bsf
fi
# no parallel builds supported!
- emake -j1 $target SSLTYPE=${ssltype} EXTRACFLAGS="${CFLAGS}" || die "make failed"
+ emake -j1 SSLTYPE=${ssltype} $target EXTRACFLAGS="${CFLAGS}" EXTRALDFLAGS="${LDFLAGS}" || die "make failed"
}
src_install() {
@@ -99,7 +104,8 @@ src_install() {
# Docs
dodoc README docs/*.txt docs/CONFIG docs/RELNOTES
-
- docinto rfc
- dodoc docs/rfc/*.txt
+ if use doc; then
+ docinto rfc
+ dodoc docs/rfc/*.txt
+ fi
}
diff --git a/net-libs/c-client/files/c-client-2004a-amd64-so-fix.patch b/net-libs/c-client/files/c-client-2004a-amd64-so-fix.patch
deleted file mode 100644
index 1400fc254c6d..000000000000
--- a/net-libs/c-client/files/c-client-2004a-amd64-so-fix.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -ruN src/osdep/unix/Makefile src/osdep/unix/Makefile
---- src/osdep/unix/Makefile 2005-01-29 22:43:25.739341544 +0000
-+++ src/osdep/unix/Makefile 2005-01-29 22:43:50.375596264 +0000
-@@ -912,6 +912,9 @@
- -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)
diff --git a/net-libs/c-client/files/c-client-2004g_KOLAB_Annotations.patch b/net-libs/c-client/files/c-client-2004g_KOLAB_Annotations.patch
deleted file mode 100644
index 77bc81861915..000000000000
--- a/net-libs/c-client/files/c-client-2004g_KOLAB_Annotations.patch
+++ /dev/null
@@ -1,448 +0,0 @@
-Provides get/set ANNOTATIONS support to the c-client library. [Version: 2004g]
-
-diff -r b9fd2c61d881 src/c-client/imap4r1.c
---- a/src/c-client/imap4r1.c Sat Sep 29 08:56:35 2007 +0200
-+++ b/src/c-client/imap4r1.c Sat Sep 29 10:40:13 2007 +0200
-@@ -125,7 +125,8 @@ typedef struct imap_argument {
- #define MULTIAPPEND 13
- #define SNLIST 14
- #define MULTIAPPENDREDO 15
--
-+#define QLIST 16
-+#define QSTRING 17
-
- /* Append data */
-
-@@ -195,12 +196,15 @@ void imap_gc_body (BODY *body);
- void imap_gc_body (BODY *body);
- void imap_capability (MAILSTREAM *stream);
- long imap_acl_work (MAILSTREAM *stream,char *command,IMAPARG *args[]);
-+long imap_annotation_work (MAILSTREAM *stream,char *command,IMAPARG *args[]);
-
- IMAPPARSEDREPLY *imap_send (MAILSTREAM *stream,char *cmd,IMAPARG *args[]);
- IMAPPARSEDREPLY *imap_sout (MAILSTREAM *stream,char *tag,char *base,char **s);
- long imap_soutr (MAILSTREAM *stream,char *string);
- IMAPPARSEDREPLY *imap_send_astring (MAILSTREAM *stream,char *tag,char **s,
- SIZEDTEXT *as,long wildok,char *limit);
-+IMAPPARSEDREPLY *imap_send_qstring (MAILSTREAM *stream,char *tag,char **s,
-+ SIZEDTEXT *as,char *limit);
- IMAPPARSEDREPLY *imap_send_literal (MAILSTREAM *stream,char *tag,char **s,
- STRING *st);
- IMAPPARSEDREPLY *imap_send_spgm (MAILSTREAM *stream,char *tag,char *base,
-@@ -2679,6 +2683,84 @@ long imap_getacl (MAILSTREAM *stream,cha
- args[0] = &ambx; args[1] = NIL;
- return imap_acl_work (stream,"GETACL",args);
- }
-+
-+/* IMAP set annotation
-+ * Accepts: mail stream
-+ * annotation struct
-+ * Returns: T on success, NIL on failure
-+ */
-+
-+long imap_setannotation (MAILSTREAM *stream,ANNOTATION *annotation)
-+{
-+ IMAPARG *args[4],ambx,apth,aval;
-+ long ret;
-+
-+ ambx.type = ASTRING;
-+ ambx.text = (void *) annotation->mbox;
-+ args[0] = &ambx;
-+
-+ apth.type = QSTRING;
-+ apth.text = (void *) annotation->entry;
-+ args[1] = &apth;
-+
-+ STRINGLIST *st,*l;
-+ ANNOTATION_VALUES *v;
-+
-+ l = st = mail_newstringlist();
-+ v = annotation->values;
-+ while(v){
-+ l->text.size = strlen((char *) (l->text.data = (unsigned char*)cpystr(v->attr)));
-+ l->next = mail_newstringlist();
-+ l = l->next;
-+ l->text.size = strlen((char *) (l->text.data = (unsigned char*)cpystr(v->value)));
-+ if(v->next){
-+ l->next = mail_newstringlist();
-+ l = l->next;
-+ }
-+ v = v->next;
-+ }
-+
-+ aval.type = QLIST;
-+ aval.text = (void *)st;
-+ args[2] = &aval;
-+ args[3] = NIL;
-+
-+ ret = imap_annotation_work(stream, "SETANNOTATION",args);
-+ mail_free_stringlist(&st);
-+ return ret;
-+}
-+
-+
-+
-+/* IMAP get annotation
-+ * Accepts: mail stream
-+ * mailbox name
-+ * annotation entry list
-+ * annotation attribute list
-+ * Returns: T on success with data returned via callback, NIL on failure
-+ */
-+
-+long imap_getannotation (MAILSTREAM *stream,char *mailbox,STRINGLIST *entries, STRINGLIST *attributes)
-+{
-+ IMAPARG *args[4],ambx,apth,aattr;
-+ long ret;
-+ ambx.type = ASTRING;
-+ ambx.text = (void*) mailbox;
-+ args[0] = &ambx;
-+
-+
-+ apth.type = QLIST;
-+ apth.text = (void*) entries;
-+ args[1] = &apth;
-+
-+ aattr.type = QLIST;
-+ aattr.text = (void*) attributes;
-+ args[2] = &aattr;
-+
-+ args[3] = NIL;
-+ ret = imap_annotation_work(stream, "GETANNOTATION",args);
-+ return ret;
-+}
-
- /* IMAP list rights
- * Accepts: mail stream
-@@ -2731,6 +2813,16 @@ long imap_acl_work (MAILSTREAM *stream,c
- else mm_log ("ACL not available on this IMAP server",ERROR);
- return ret;
- }
-+ long imap_annotation_work(MAILSTREAM *stream, char *command,IMAPARG *args[])
-+{
-+ long ret = NIL;
-+ IMAPPARSEDREPLY *reply;
-+ if (imap_OK (stream,reply = imap_send (stream,command,args)))
-+ ret = LONGT;
-+ else mm_log (reply->text,ERROR);
-+ return ret;
-+}
-+
-
- /* IMAP set quota
- * Accepts: mail stream
-@@ -2863,6 +2955,11 @@ IMAPPARSEDREPLY *imap_send (MAILSTREAM *
- if (reply = imap_send_astring (stream,tag,&s,&st,NIL,CMDBASE+MAXCOMMAND))
- return reply;
- break;
-+ case QSTRING: /* atom or string, must be literal? */
-+ st.size = strlen ((char *) (st.data = (unsigned char *) arg->text));
-+ if (reply = imap_send_qstring (stream,tag,&s,&st,CMDBASE+MAXCOMMAND))
-+ return reply;
-+ break;
- case LITERAL: /* literal, as a stringstruct */
- if (reply = imap_send_literal (stream,tag,&s,arg->text)) return reply;
- break;
-@@ -2873,6 +2970,18 @@ IMAPPARSEDREPLY *imap_send (MAILSTREAM *
- do { /* for each list item */
- *s++ = c; /* write prefix character */
- if (reply = imap_send_astring (stream,tag,&s,&list->text,NIL,
-+ CMDBASE+MAXCOMMAND)) return reply;
-+ c = ' '; /* prefix character for subsequent strings */
-+ }
-+ while (list = list->next);
-+ *s++ = ')'; /* close list */
-+ break;
-+ case QLIST: /* list of strings */
-+ list = (STRINGLIST *) arg->text;
-+ c = '('; /* open paren */
-+ do { /* for each list item */
-+ *s++ = c; /* write prefix character */
-+ if (reply = imap_send_qstring (stream,tag,&s,&list->text,
- CMDBASE+MAXCOMMAND)) return reply;
- c = ' '; /* prefix character for subsequent strings */
- }
-@@ -3045,6 +3154,32 @@ IMAPPARSEDREPLY *imap_send (MAILSTREAM *
- reply = imap_sout (stream,tag,CMDBASE,&s);
- mail_unlock (stream); /* unlock stream */
- return reply;
-+}
-+
-+/* IMAP send quoted-string
-+ * Accepts: MAIL stream
-+ * reply tag
-+ * pointer to current position pointer of output bigbuf
-+ * atom-string to output
-+ * maximum to write as atom or qstring
-+ * Returns: error reply or NIL if success
-+ */
-+
-+IMAPPARSEDREPLY *imap_send_qstring (MAILSTREAM *stream,char *tag,char **s,
-+ SIZEDTEXT *as,char *limit)
-+{
-+ unsigned long j;
-+ char c;
-+ STRING st;
-+ /* in case needed */
-+ INIT (&st,mail_string,(void *) as->data,as->size);
-+ /* always write literal if no space */
-+ if ((*s + as->size) > limit) return imap_send_literal (stream,tag,s,&st);
-+
-+ *(*s)++ = '"'; /* write open quote */
-+ for (j = 0; j < as->size; j++) *(*s)++ = as->data[j];
-+ *(*s)++ = '"'; /* write close quote */
-+ return NIL;
- }
-
- /* IMAP send atom-string
-@@ -3948,6 +4083,50 @@ void imap_parse_unsolicited (MAILSTREAM
- }
- }
-
-+ else if (!strcmp (reply->key,"ANNOTATION") && (s = reply->text)){
-+ char * mbox;
-+ /* response looks like ANNOTATION "mailbox" "entry" ("attr" "value" ["attr" "value"]) ["entry" ("attr "value" ["attr" "value"] )]*/
-+ getannotation_t an = (getannotation_t) mail_parameters (NIL,GET_ANNOTATION,NIL);
-+
-+ mbox = imap_parse_astring (stream, &s, reply,NIL);
-+
-+ while(*s){
-+ ANNOTATION * al = mail_newannotation();
-+ al->mbox = cpystr(mbox);
-+ t = imap_parse_astring (stream, &s, reply,NIL);
-+ al->entry = t;
-+ STRINGLIST *strlist;
-+ if (s){while (*s == ' ')s++;}
-+
-+ strlist = imap_parse_stringlist(stream, &s,reply);
-+
-+ ANNOTATION_VALUES *vlIter, *vlBegin;
-+ vlIter = vlBegin = NIL;
-+ if (strlist) {
-+ while(strlist){
-+ if(vlIter){
-+ vlIter->next = mail_newannotationvalue();
-+ vlIter = vlIter->next;
-+ }else{
-+ vlIter = mail_newannotationvalue();
-+ vlBegin = vlIter;
-+ }
-+ if ( strlist->text.size )
-+ vlIter->attr = cpystr (strlist->text.data);
-+ strlist = strlist->next;
-+ if(!strlist) continue;
-+ if ( strlist->text.size )
-+ vlIter->value = cpystr (strlist->text.data);
-+ strlist = strlist->next;
-+ }
-+ }
-+ al->values = vlBegin;
-+ if (an)
-+ (*an) (stream,al);
-+ mail_free_annotation(&al);
-+ }
-+ fs_give ((void **)&mbox);
-+ }
- else if (!strcmp (reply->key,"ACL") && (s = reply->text) &&
- (t = imap_parse_astring (stream,&s,reply,NIL))) {
- getacl_t ar = (getacl_t) mail_parameters (NIL,GET_ACL,NIL);
-diff -r b9fd2c61d881 src/c-client/imap4r1.h
---- a/src/c-client/imap4r1.h Sat Sep 29 08:56:35 2007 +0200
-+++ b/src/c-client/imap4r1.h Sat Sep 29 10:40:13 2007 +0200
-@@ -232,3 +232,5 @@ long imap_setquota (MAILSTREAM *stream,c
- long imap_setquota (MAILSTREAM *stream,char *qroot,STRINGLIST *limits);
- long imap_getquota (MAILSTREAM *stream,char *qroot);
- long imap_getquotaroot (MAILSTREAM *stream,char *mailbox);
-+long imap_getannotation (MAILSTREAM *stream,char *mailbox,STRINGLIST *entries,STRINGLIST *attributes);
-+long imap_setannotation (MAILSTREAM *stream,ANNOTATION *annotation);
-diff -r b9fd2c61d881 src/c-client/mail.c
---- a/src/c-client/mail.c Sat Sep 29 08:56:35 2007 +0200
-+++ b/src/c-client/mail.c Sat Sep 29 10:40:13 2007 +0200
-@@ -60,6 +60,7 @@ static newsrcquery_t mailnewsrcquery = N
- static newsrcquery_t mailnewsrcquery = NIL;
- /* ACL results callback */
- static getacl_t mailaclresults = NIL;
-+static getannotation_t mailannotationresults = NIL;
- /* list rights results callback */
- static listrights_t maillistrightsresults = NIL;
- /* my rights results callback */
-@@ -516,6 +517,11 @@ void *mail_parameters (MAILSTREAM *strea
- ret = (void *) (debugsensitive ? VOIDT : NIL);
- break;
-
-+ case SET_ANNOTATION:
-+ mailannotationresults = (getannotation_t) value;
-+ case GET_ANNOTATION:
-+ ret = (void *) mailannotationresults;
-+ break;
- case SET_ACL:
- mailaclresults = (getacl_t) value;
- case GET_ACL:
-@@ -5489,7 +5495,15 @@ ACLLIST *mail_newacllist (void)
- return (ACLLIST *) memset (fs_get (sizeof (ACLLIST)),0,sizeof (ACLLIST));
- }
-
--
-+ANNOTATION *mail_newannotation (void)
-+{
-+ return (ANNOTATION *) memset (fs_get (sizeof (ANNOTATION)),0,sizeof(ANNOTATION));
-+}
-+
-+ANNOTATION_VALUES *mail_newannotationvalue (void)
-+{
-+ return (ANNOTATION_VALUES *) memset (fs_get (sizeof (ANNOTATION_VALUES)),0,sizeof(ANNOTATION_VALUES));
-+}
- /* Mail instantiate new quotalist
- * Returns: new quotalist
- */
-@@ -5812,6 +5826,25 @@ void mail_free_acllist (ACLLIST **al)
- }
- }
-
-+static void mail_free_annotation_values(ANNOTATION_VALUES **val)
-+{
-+ if (*val) {
-+ if ((*val)->attr) fs_give ((void**) &(*val)->attr);
-+ if ((*val)->value) fs_give ((void**) &(*val)->value);
-+ mail_free_annotation_values (&(*val)->next);
-+ fs_give ((void **) val);
-+ }
-+}
-+void mail_free_annotation(ANNOTATION **al)
-+{
-+ if (*al) {
-+ if((*al)->mbox) fs_give ((void**) &(*al)->mbox);
-+ if((*al)->entry) fs_give ((void**) &(*al)->entry);
-+ if((*al)->values)
-+ mail_free_annotation_values(&(*al)->values);
-+ fs_give ((void **) al);
-+ }
-+}
-
- /* Mail garbage collect quotalist
- * Accepts: pointer to quotalist pointer
-diff -r b9fd2c61d881 src/c-client/mail.h
---- a/src/c-client/mail.h Sat Sep 29 08:56:35 2007 +0200
-+++ b/src/c-client/mail.h Sat Sep 29 10:40:13 2007 +0200
-@@ -311,6 +311,8 @@
- #define SET_SNARFPRESERVE (long) 567
- #define GET_INBOXPATH (long) 568
- #define SET_INBOXPATH (long) 569
-+#define GET_ANNOTATION (long) 570
-+#define SET_ANNOTATION (long) 571
-
- /* Driver flags */
-
-@@ -976,6 +978,24 @@ ACLLIST {
- char *identifier; /* authentication identifier */
- char *rights; /* access rights */
- ACLLIST *next;
-+};
-+
-+/* ANNOTATION Response */
-+
-+#define ANNOTATION_VALUES struct annotation_value_list
-+
-+ANNOTATION_VALUES {
-+ char *attr;
-+ char *value;
-+ ANNOTATION_VALUES *next;
-+};
-+
-+#define ANNOTATION struct annotation
-+
-+ANNOTATION {
-+ char *mbox;
-+ char *entry;
-+ ANNOTATION_VALUES * values;
- };
-
- /* Quota resource list */
-@@ -1262,6 +1282,7 @@ typedef long (*sslcertificatequery_t) (c
- typedef long (*sslcertificatequery_t) (char *reason,char *host,char *cert);
- typedef void (*sslfailure_t) (char *host,char *reason,unsigned long flags);
- typedef void (*logouthook_t) (void *data);
-+typedef void (*getannotation_t) (MAILSTREAM *stream,ANNOTATION* annot);
-
- /* Globals */
-
-@@ -1671,7 +1692,10 @@ SORTPGM *mail_newsortpgm (void);
- SORTPGM *mail_newsortpgm (void);
- THREADNODE *mail_newthreadnode (SORTCACHE *sc);
- ACLLIST *mail_newacllist (void);
-+ANNOTATION* mail_newannotation(void);
-+ANNOTATION_VALUES* mail_newannotationvalue(void);
- QUOTALIST *mail_newquotalist (void);
-+void mail_free_annotation(ANNOTATION **a);
- void mail_free_body (BODY **body);
- void mail_free_body_data (BODY *body);
- void mail_free_body_parameter (PARAMETER **parameter);
-diff -r b9fd2c61d881 src/mtest/mtest.c
---- a/src/mtest/mtest.c Sat Sep 29 08:56:35 2007 +0200
-+++ b/src/mtest/mtest.c Sat Sep 29 10:40:13 2007 +0200
-@@ -137,6 +137,8 @@ int main ()
- #endif
- return NIL;
- }
-+
-+void mm_annotation (MAILSTREAM *stream, ANNOTATION *a);
-
- /* MM command loop
- * Accepts: MAIL stream
-@@ -187,6 +189,28 @@ void mm (MAILSTREAM *stream,long debug)
- mail_setflag (stream,arg,"\\DELETED");
- else puts ("?Bad message number");
- break;
-+ case 'A':
-+ {
-+ char parms[MAILTMPLEN];
-+ prompt("Annotation: ",parms);
-+ if (parms) {
-+ mail_parameters(stream,SET_ANNOTATION,mm_annotation);
-+ STRINGLIST *entries = mail_newstringlist();
-+ STRINGLIST *cur = entries;
-+ cur->text.size = strlen((char *) (cur->text.data = (unsigned char*)cpystr (parms)));
-+ cur->next = NIL;
-+
-+ STRINGLIST *attributes = mail_newstringlist();
-+ cur = attributes;
-+ cur->text.size = strlen((char *) (cur->text.data = (unsigned char*)cpystr ("*")));
-+ cur->next = NIL;
-+
-+ imap_getannotation(stream,"INBOX",entries,attributes);
-+ mail_free_stringlist(&entries);
-+ mail_free_stringlist(&attributes);
-+ }
-+ }
-+ break;
- case 'E': /* Expunge command */
- mail_expunge (stream);
- last = 0;
-@@ -339,7 +363,7 @@ void mm (MAILSTREAM *stream,long debug)
- case '?': /* ? command */
- puts ("Body, Check, Delete, Expunge, Find, GC, Headers, Literal,");
- puts (" MailboxStatus, New Mailbox, Overview, Ping, Quit, Send, Type,");
-- puts ("Undelete, Xit, +, -, or <RETURN> for next message");
-+ puts ("Undelete, Xit,Annotation, +, -, or <RETURN> for next message");
- break;
- default: /* bogus command */
- printf ("?Unrecognized command: %s\n",cmd);
-@@ -587,6 +611,18 @@ void prompt (char *msg,char *txt)
-
- /* Interfaces to C-client */
-
-+void mm_annotation (MAILSTREAM *stream, ANNOTATION *a)
-+{
-+ if(a){
-+ fprintf(stderr,"mailbox: %s\nentry: %s\n",a->mbox,a->entry);
-+ ANNOTATION_VALUES * v = a->values;
-+ while(v){
-+ fprintf(stderr,"attr: %s, value: %s\n",v->attr,v->value);
-+ v = v->next;
-+ }
-+ }
-+}
-+
-
- void mm_searched (MAILSTREAM *stream,unsigned long number)
- {
diff --git a/net-libs/c-client/files/c-client-2007e-ldflags.patch b/net-libs/c-client/files/c-client-2007e-ldflags.patch
new file mode 100644
index 000000000000..11b1ff050750
--- /dev/null
+++ b/net-libs/c-client/files/c-client-2007e-ldflags.patch
@@ -0,0 +1,35 @@
+--- src/osdep/unix/Makefile~ 2010-08-08 02:30:48.000000000 -0400
++++ src/osdep/unix/Makefile 2010-08-08 02:31:08.758000018 -0400
+@@ -959,17 +959,17 @@
+ onceenv:
+ @echo Once-only environment setup...
+ echo $(CC) > CCTYPE
+- echo $(BASECFLAGS) '$(EXTRACFLAGS)' -DCHUNKSIZE=$(CHUNKSIZE) > CFLAGS
++ echo `$(CAT) CFLAGS` $(BASECFLAGS) '$(EXTRACFLAGS)' -DCHUNKSIZE=$(CHUNKSIZE) > CFLAGS
+- echo -DCREATEPROTO=$(CREATEPROTO) -DEMPTYPROTO=$(EMPTYPROTO) \
++ echo `$(CAT) OSCFLAGS` -DCREATEPROTO=$(CREATEPROTO) -DEMPTYPROTO=$(EMPTYPROTO) \
+ -DMD5ENABLE=\"$(MD5PWD)\" -DMAILSPOOL=\"$(MAILSPOOL)\" \
+ -DANONYMOUSHOME=\"$(MAILSPOOL)/anonymous\" \
+ -DACTIVEFILE=\"$(ACTIVEFILE)\" -DNEWSSPOOL=\"$(NEWSSPOOL)\" \
+ -DRSHPATH=\"$(RSHPATH)\" -DLOCKPGM=\"$(LOCKPGM)\" \
+ -DLOCKPGM1=\"$(LOCKPGM1)\" -DLOCKPGM2=\"$(LOCKPGM2)\" \
+ -DLOCKPGM3=\"$(LOCKPGM3)\" > OSCFLAGS
+- echo $(BASELDFLAGS) $(EXTRALDFLAGS) > LDFLAGS
++ echo `$(CAT) LDFLAGS` -lcrypt $(BASELDFLAGS) $(EXTRALDFLAGS) > LDFLAGS
+ echo "$(ARRC) $(ARCHIVE) $(BINARIES);$(RANLIB) $(ARCHIVE)" > ARCHIVE
+- echo "`$(CAT) CCTYPE` `$(CAT) CFLAGS` `$(CAT) OSFLAGS` -shared \
++ echo "`$(CAT) CCTYPE` `$(CAT) LDFLAGS` `$(CAT) CFLAGS` `$(CAT) OSFLAGS` -shared \
+ -Wl,-soname,libc-client.so.1 -o libc-client.so.1.0.0 $(BINARIES)" \
+ >> ARCHIVE
+ echo $(OS) > OSTYPE
+--- src/osdep/unix/Makefile~ 2010-08-08 04:25:00.000000000 -0400
++++ src/osdep/unix/Makefile 2010-08-08 04:36:49.720000021 -0400
+@@ -954,7 +954,7 @@
+
+ # Once-only environment setup
+
+-once: onceenv ckp$(PASSWDTYPE) ssl$(SSLTYPE) osdep.c
++once: ssl$(SSLTYPE) onceenv ckp$(PASSWDTYPE) osdep.c
+
+ onceenv:
+ @echo Once-only environment setup...
diff --git a/net-libs/c-client/metadata.xml b/net-libs/c-client/metadata.xml
index 04af52a335d1..d257d4fc66f9 100644
--- a/net-libs/c-client/metadata.xml
+++ b/net-libs/c-client/metadata.xml
@@ -2,4 +2,7 @@
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<herd>net-mail</herd>
+ <use>
+ <flag name="doc">Install RFCs related to IMAP</flag>
+ </use>
</pkgmetadata>