diff options
author | Jeroen Roovers <jer@gentoo.org> | 2010-08-16 21:06:03 +0000 |
---|---|---|
committer | Jeroen Roovers <jer@gentoo.org> | 2010-08-16 21:06:03 +0000 |
commit | 69b6642fe602961dfa88417287e5e5c66673c870 (patch) | |
tree | 3cd6d2f15399a4bd51475f706769f569b4b1ac11 /net-libs/c-client | |
parent | Transfer prefix keywords, add eautoreconf for Interix (diff) | |
download | gentoo-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/ChangeLog | 14 | ||||
-rw-r--r-- | net-libs/c-client/c-client-2004g.ebuild | 99 | ||||
-rw-r--r-- | net-libs/c-client/c-client-2006k.ebuild | 109 | ||||
-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.patch | 13 | ||||
-rw-r--r-- | net-libs/c-client/files/c-client-2004g_KOLAB_Annotations.patch | 448 | ||||
-rw-r--r-- | net-libs/c-client/files/c-client-2007e-ldflags.patch | 35 | ||||
-rw-r--r-- | net-libs/c-client/metadata.xml | 3 |
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> |