[cyrus-imapd] Patch to work with Perl 5.14

Iain Arnell iarnell at fedoraproject.org
Wed Jun 22 03:30:03 UTC 2011


commit 1c765ef33ccec876c5b67c5733e5c8da39348da2
Author: Iain Arnell <iarnell at gmail.com>
Date:   Wed Jun 22 05:22:29 2011 +0200

    Patch to work with Perl 5.14

 cyrus-imapd-perl5.14.patch |   96 ++++++++++++++++++++++++++++++++++++++++++++
 cyrus-imapd.spec           |   10 ++++-
 2 files changed, 105 insertions(+), 1 deletions(-)
---
diff --git a/cyrus-imapd-perl5.14.patch b/cyrus-imapd-perl5.14.patch
new file mode 100644
index 0000000..ddc04bf
--- /dev/null
+++ b/cyrus-imapd-perl5.14.patch
@@ -0,0 +1,96 @@
+diff -up cyrus-imapd-2.4.8/perl/imap/IMAP.xs.perl5.14 cyrus-imapd-2.4.8/perl/imap/IMAP.xs
+--- cyrus-imapd-2.4.8/perl/imap/IMAP.xs.perl5.14	2011-04-13 16:35:22.000000000 +0200
++++ cyrus-imapd-2.4.8/perl/imap/IMAP.xs	2011-06-21 08:08:16.841989447 +0200
+@@ -125,10 +125,10 @@ void imclient_xs_cb(struct imclient *cli
+   SAVETMPS;
+   PUSHMARK(SP);
+   XPUSHs(sv_2mortal(newSVpv("-client", 0)));
+-  rv = newSVsv(&sv_undef);
++  rv = newSVsv(&PL_sv_undef);
+   sv_setref_pv(rv, NULL, (void *) rock->client);
+   XPUSHs(rv);
+-  if (rock->prock != &sv_undef) {
++  if (rock->prock != &PL_sv_undef) {
+     XPUSHs(sv_2mortal(newSVpv("-rock", 0)));
+     XPUSHs(sv_mortalcopy(rock->prock));
+   }
+@@ -393,7 +393,7 @@ CODE:
+ 	ST(0) = sv_newmortal();
+ 
+ 	if(client->authenticated) {
+-	  ST(0) = &sv_no;
++	  ST(0) = &PL_sv_no;
+ 	  return;
+ 	}
+ 
+@@ -415,10 +415,10 @@ CODE:
+ 	rc = imclient_authenticate(client->imclient, mechlist, service, user,
+ 				   minssf, maxssf);
+ 	if (rc)
+-	  ST(0) = &sv_no;
++	  ST(0) = &PL_sv_no;
+ 	else {
+ 	  client->authenticated = 1;
+-	  ST(0) = &sv_yes;
++	  ST(0) = &PL_sv_yes;
+ 	}
+ 
+ int
+@@ -450,12 +450,12 @@ CODE:
+ #ifdef HAVE_SSL
+ 	rc = imclient_starttls(client->imclient, tls_cert_file, tls_key_file, CAfile, CApath);
+ 	if (rc)
+-	  ST(0) = &sv_no;
++	  ST(0) = &PL_sv_no;
+ 	else {
+-	  ST(0) = &sv_yes;
++	  ST(0) = &PL_sv_yes;
+ 	}
+ #else
+-	ST(0) = &sv_no;
++	ST(0) = &PL_sv_no;
+ #endif /* HAVE_SSL */
+ 
+ void
+@@ -515,7 +515,7 @@ PPCODE:
+ 	      (val = hv_fetch(cb, "Rock", 4, 0)))
+ 	    prock = *val;
+ 	  else
+-	    prock = &sv_undef;
++	    prock = &PL_sv_undef;
+ 	  /*
+ 	   * build our internal rock, which is used by our internal
+ 	   * callback handler to invoke the Perl callback
+@@ -526,7 +526,7 @@ PPCODE:
+ 	    rock = (struct xsccb *) safemalloc(sizeof *rock);
+ 	    /* bump refcounts on these so they don't go away */
+ 	    rock->pcb = SvREFCNT_inc(pcb);
+-	    if (!prock) prock = &sv_undef;
++	    if (!prock) prock = &PL_sv_undef;
+ 	    rock->prock = SvREFCNT_inc(prock);
+ 	    rock->client = client;
+ 	    rock->autofree = 0;
+@@ -653,9 +653,9 @@ PPCODE:
+ 	    EXTEND(SP, 1);
+ 	    pcb = av_shift(av);
+ 	    if (strcmp(SvPV(pcb, arg), "OK") == 0)
+-	      PUSHs(&sv_yes);
++	      PUSHs(&PL_sv_yes);
+ 	    else
+-	      PUSHs(&sv_no);
++	      PUSHs(&PL_sv_no);
+ 	    pcb = perl_get_sv("@", TRUE);
+ 	    sv_setsv(pcb, av_shift(av));
+ 	    if (av_len(av) != -1) {
+@@ -688,9 +688,9 @@ PPCODE:
+ 	EXTEND(SP, 2);
+ 	PUSHs(sv_2mortal(newSViv(fd)));
+ 	if (writep)
+-	  PUSHs(&sv_yes);
++	  PUSHs(&PL_sv_yes);
+ 	else
+-	  PUSHs(&sv_no);
++	  PUSHs(&PL_sv_no);
+ 
+ void
+ imclient_fromURL(client,url)
diff --git a/cyrus-imapd.spec b/cyrus-imapd.spec
index 426de47..6a18102 100644
--- a/cyrus-imapd.spec
+++ b/cyrus-imapd.spec
@@ -1,6 +1,6 @@
 Name: cyrus-imapd
 Version: 2.4.8
-Release: 4%{?dist}
+Release: 5%{?dist}
 
 %define ssl_pem_file %{_sysconfdir}/pki/%{name}/%{name}.pem
 
@@ -51,6 +51,10 @@ Patch6: cyrus-imapd-2.3.12p2-current-db.patch
 # temporary workaround, rhbz#553011, https://bugzilla.andrew.cmu.edu/show_bug.cgi?id=3206
 Patch7: cyrus-imapd-2.3.16-nodenny.patch
 
+# compatibility with perl 5.14
+# adapted from http://bugzilla.cyrusimap.org/bugzilla3/show_bug.cgi?id=3478
+Patch8: cyrus-imapd-perl5.14.patch
+
 BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
 
 BuildRequires: autoconf
@@ -127,6 +131,7 @@ one running the server.
 %patch3 -p1 -b .flock
 %patch4 -p1 -b .authid_normalize
 %patch6 -p1 -b .db4.7
+%patch8 -p1 -b .perl5.14
 
 install -m 644 %{SOURCE4} %{SOURCE5} %{SOURCE11} doc/
 
@@ -486,6 +491,9 @@ fi
 %{_mandir}/man1/*
 
 %changelog
+* Wed Jun 22 2011 Iain Arnell <iarnell at gmail.com> 2.4.8-5
+- Patch to work with Perl 5.14
+
 * Mon Jun 20 2011 Marcela Mašláňová <mmaslano at redhat.com> - 2.4.8-4
 - Perl mass rebuild
 


More information about the scm-commits mailing list