From 1c765ef33ccec876c5b67c5733e5c8da39348da2 Mon Sep 17 00:00:00 2001 From: Iain Arnell Date: Wed, 22 Jun 2011 05:22:29 +0200 Subject: [PATCH] Patch to work with Perl 5.14 --- cyrus-imapd-perl5.14.patch | 96 ++++++++++++++++++++++++++++++++++++++ cyrus-imapd.spec | 10 +++- 2 files changed, 105 insertions(+), 1 deletion(-) create mode 100644 cyrus-imapd-perl5.14.patch 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 2.4.8-5 +- Patch to work with Perl 5.14 + * Mon Jun 20 2011 Marcela Mašláňová - 2.4.8-4 - Perl mass rebuild