rpms/perl/F-8 perl-5.8.8-U31996.patch, NONE, 1.1 perl-5.8.8-U32018.patch, NONE, 1.1 perl-5.8.8-U32019.patch, NONE, 1.1 perl-5.8.8-U32025.patch, NONE, 1.1 perl-5.8.0-sharedlinker.patch, 1.1, 1.2 perl-5.8.8-U28775.patch, 1.1, 1.2 perl.spec, 1.152, 1.153
Tom Callaway
spot at fedoraproject.org
Thu Aug 28 13:53:12 UTC 2008
- Previous message (by thread): rpms/k3b/devel k3b-1.0.5-hidden.patch, 1.2, 1.3 k3b.spec, 1.64, 1.65 k3b-i18n-0.12.17-rellink.patch, 1.1, NONE
- Next message (by thread): rpms/gnome-session/devel .cvsignore, 1.62, 1.63 gnome-session.spec, 1.185, 1.186 sources, 1.66, 1.67
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: spot
Update of /cvs/pkgs/rpms/perl/F-8
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv19962
Modified Files:
perl-5.8.0-sharedlinker.patch perl-5.8.8-U28775.patch
perl.spec
Added Files:
perl-5.8.8-U31996.patch perl-5.8.8-U32018.patch
perl-5.8.8-U32019.patch perl-5.8.8-U32025.patch
Log Message:
fix bless/overload with upstream patches
perl-5.8.8-U31996.patch:
--- NEW FILE perl-5.8.8-U31996.patch ---
diff -up perl-5.8.8/sv.c.U31996 perl-5.8.8/sv.c
--- perl-5.8.8/sv.c.U31996 2008-08-27 10:04:08.000000000 -0400
+++ perl-5.8.8/sv.c 2008-08-27 10:07:51.000000000 -0400
@@ -8016,6 +8016,55 @@ S_reset_amagic(pTHX_ SV *rv, const bool
/* There was only 1 reference to this object. */
return;
}
+ /* References to objects may be via RVs, or anything else that can hold
+ a reference count (AVs, HVs, GVs, and arbitrary C code)
+ Object-ness can only be accessed via true RVs, including the overloading
+ part of object-ness, so for that part it doesn't matter that the
+ overloading flag (pre 5.10) is on the reference. But the overloading
+ mechanism itself checks the referent, the object itself, hence they
+ can get out of sync.
+
+ We'll assume two common cases - either we got here through a real
+ reference, and the referent is a value in the pad of the current
+ subroutine (hence a reference count of 2 or more), during construction
+ of the reference, or that there is a second (or more) reference to
+ the object (but no arrays, hashes, pads, typeglobs or other things)
+ pointing to it.
+
+ The first case is likely to involve quite a small search.
+ The second case is O(n) on the number of SVs, but we can make it
+ terminate early if we find every reference is accounted for by an RV.
+ [Terminating early is still O(n), but with a smaller constant.]
+ */
+ {
+ /* So before trying the large O(n) linear search of all SVs, start by
+ seeing if we can find the other references in the current pad.
+ This avoids the big search for constructions such as
+ my $string = ...;
+ my $obj = bless \$string, $class;
+ which modules like URI use. */
+
+ U32 how_many_in_pad = how_many;
+ CV *const current_sub = find_runcv(NULL);
+ AV *const padlist = CvPADLIST(current_sub);
+ AV *const curpad = (AV*) AvARRAY(padlist)[CvDEPTH(current_sub)];
+ SV ** const start = AvARRAY(curpad);
+ SV ** end = start + AvFILLp(curpad);
+
+ while (end >= start) {
+ SV *const sv = *end--;
+ if (sv == target) {
+ if (--how_many_in_pad == 0) {
+ /* We have found them all. */
+ return;
+ }
+ }
+ }
+ }
+
+ /* Right, didn't find all the other referneces were lexicals or temporaries
+ in the pad, so need to do an exhaustive search to find all references.
+ */
for (sva = PL_sv_arenaroot; sva; sva = (SV*)SvANY(sva)) {
register const SV * const svend = &sva[SvREFCNT(sva)];
@@ -8037,6 +8086,10 @@ S_reset_amagic(pTHX_ SV *rv, const bool
}
}
}
+
+ /* Can get here if the object happens to be lexical somewhere else, a
+ global, an element in an array or hash, etc. But we will have found all
+ the references. */
}
/*
perl-5.8.8-U32018.patch:
--- NEW FILE perl-5.8.8-U32018.patch ---
diff -up perl-5.8.8/lib/overload.t.U32018 perl-5.8.8/lib/overload.t
--- perl-5.8.8/lib/overload.t.U32018 2008-08-27 10:11:02.000000000 -0400
+++ perl-5.8.8/lib/overload.t 2008-08-27 10:13:21.000000000 -0400
@@ -31,7 +31,7 @@ use overload (
qw(
"" stringify
-0+ numify) # Order of arguments unsignificant
+0+ numify) # Order of arguments insignificant
);
sub new {
@@ -47,7 +47,7 @@ sub numify { 0 + "${$_[0]}" } # Not need
package main;
$| = 1;
-use Test::More tests => 508;
+use Test::More tests => 514;
$a = new Oscalar "087";
@@ -744,10 +744,10 @@ else {
}, 'deref';
# Hash:
my @cont = sort %$deref;
- if ("\t" eq "\011") { # ascii
+ if ("\t" eq "\011") { # ASCII
is("@cont", '23 5 fake foo');
}
- else { # ebcdic alpha-numeric sort order
+ else { # EBCDIC alpha-numeric sort order
is("@cont", 'fake foo 23 5');
}
my @keys = sort keys %$deref;
@@ -986,7 +986,7 @@ unless ($aaa) {
main::is("$int_x", 1054);
}
-# make sure that we don't inifinitely recurse
+# make sure that we don't infinitely recurse
{
my $c = 0;
package Recurse;
@@ -1131,7 +1131,7 @@ like ($@, qr/zap/);
like(overload::StrVal($no), qr/^no_overload=ARRAY\(0x[0-9a-f]+\)$/);
}
-# These are all check that overloaded values rather than reference addressess
+# These are all check that overloaded values rather than reference addresses
# are what is getting tested.
my ($two, $one, $un, $deux) = map {new Numify $_} 2, 1, 1, 2;
my ($ein, $zwei) = (1, 2);
@@ -1205,7 +1205,7 @@ foreach my $op (qw(<=> == != < <= > >=))
my $obj;
$obj = bless {name => 'cool'}, 'Sklorsh';
$obj->delete;
- ok(eval {if ($obj) {1}; 1}, $@ || 'reblessed into nonexist namespace');
+ ok(eval {if ($obj) {1}; 1}, $@ || 'reblessed into nonexistent namespace');
$obj = bless {name => 'cool'}, 'Sklorsh';
$obj->delete_with_self;
@@ -1246,3 +1246,46 @@ foreach my $op (qw(<=> == != < <= > >=))
undef $obj;
is ($ref, undef);
}
+
+{
+ # Subtle bug pre 5.10, as a side effect of the overloading flag being
+ # stored on the reference rather than the referent. Despite the fact that
+ # objects can only be accessed via references (even internally), the
+ # referent actually knows that it's blessed, not the references. So taking
+ # a new, unrelated, reference to it gives an object. However, the
+ # overloading-or-not flag was on the reference prior to 5.10, and taking
+ # a new reference didn't (use to) copy it.
+
+ package kayo;
+
+ use overload '""' => sub {${$_[0]}};
+
+ sub Pie {
+ return "$_[0], $_[1]";
+ }
+
+ package main;
+
+ my $class = 'kayo';
+ my $string = 'bam';
+ my $crunch_eth = bless \$string, $class;
+
+ is("$crunch_eth", $string);
+ is ($crunch_eth->Pie("Meat"), "$string, Meat");
+
+ my $wham_eth = \$string;
+
+ is("$wham_eth", $string,
+ 'This reference did not have overloading in 5.8.8 and earlier');
+ is ($crunch_eth->Pie("Apple"), "$string, Apple");
+
+ my $class = ref $wham_eth;
+ $class =~ s/=.*//;
+
+ # Bless it back into its own class!
+ bless $wham_eth, $class;
+
+ is("$wham_eth", $string);
+ is ($crunch_eth->Pie("Blackbird"), "$string, Blackbird");
+}
+
diff -up perl-5.8.8/pp.c.U32018 perl-5.8.8/pp.c
--- perl-5.8.8/pp.c.U32018 2008-08-27 10:13:55.000000000 -0400
+++ perl-5.8.8/pp.c 2008-08-27 10:14:20.000000000 -0400
@@ -503,6 +503,13 @@ S_refto(pTHX_ SV *sv)
sv_upgrade(rv, SVt_RV);
SvRV_set(rv, sv);
SvROK_on(rv);
+ /* As overloading is stored on the reference, not the referant, need to
+ propagate this flag to the new reference we create. */
+ if (SvOBJECT(sv)) {
+ HV *const stash = SvSTASH(sv);
+ if (Gv_AMG(stash))
+ SvAMAGIC_on(rv);
+ }
return rv;
}
perl-5.8.8-U32019.patch:
--- NEW FILE perl-5.8.8-U32019.patch ---
diff -up perl-5.8.8/sv.c.U32019 perl-5.8.8/sv.c
--- perl-5.8.8/sv.c.U32019 2008-08-27 10:15:56.000000000 -0400
+++ perl-5.8.8/sv.c 2008-08-27 10:17:26.000000000 -0400
@@ -8038,13 +8038,47 @@ S_reset_amagic(pTHX_ SV *rv, const bool
*/
{
/* So before trying the large O(n) linear search of all SVs, start by
- seeing if we can find the other references in the current pad.
+ seeing if we can find the other references as temporaries on the
+ stack or in the current pad.
+
This avoids the big search for constructions such as
my $string = ...;
my $obj = bless \$string, $class;
which modules like URI use. */
U32 how_many_in_pad = how_many;
+
+ {
+ /* Search the tmps stack */
+ I32 ix = PL_tmps_ix;
+
+ while (ix >= 0) {
+ SV *const sv = PL_tmps_stack[ix];
+
+ if (sv == target) {
+ if (--how_many_in_pad == 0) {
+ /* We have found them all. */
+ return;
+ }
+ } else if (SvTYPE(sv) != SVTYPEMASK
+ && (sv->sv_flags & SVf_ROK) == SVf_ROK
+ && SvREFCNT(sv)
+ && SvRV(sv) == target
+ && sv != rv) {
+ if (on)
+ SvAMAGIC_on(sv);
+ else
+ SvAMAGIC_off(sv);
+ if (--how_many == 0) {
+ /* We have found them all. */
+ return;
+ }
+ }
+ --ix;
+ }
+ }
+
+ {
CV *const current_sub = find_runcv(NULL);
AV *const padlist = CvPADLIST(current_sub);
AV *const curpad = (AV*) AvARRAY(padlist)[CvDEPTH(current_sub)];
@@ -8060,6 +8094,7 @@ S_reset_amagic(pTHX_ SV *rv, const bool
}
}
}
+ }
}
/* Right, didn't find all the other referneces were lexicals or temporaries
perl-5.8.8-U32025.patch:
--- NEW FILE perl-5.8.8-U32025.patch ---
diff -up perl-5.8.8/embed.fnc.U32025 perl-5.8.8/embed.fnc
--- perl-5.8.8/embed.fnc.U32025 2008-08-27 10:32:39.000000000 -0400
+++ perl-5.8.8/embed.fnc 2008-08-27 10:33:11.000000000 -0400
@@ -1277,6 +1277,9 @@ s |bool |utf8_mg_pos |NN SV *sv|NN MAGIC
s |bool |utf8_mg_pos_init |NN SV *sv|NN MAGIC **mgp \
|NN STRLEN **cachep|I32 i|I32 offsetp \
|NN const U8 *s|NN const U8 *start
+s |U32 |process_sub |NN CV *const current_sub|U32 how_many_in_pad \
+ |NN const SV *const target|NN SV *const rv \
+ |const bool on
s |void |reset_amagic |NN SV *rv|const bool on
#endif
diff -up perl-5.8.8/embed.h.U32025 perl-5.8.8/embed.h
--- perl-5.8.8/embed.h.U32025 2008-08-27 10:33:27.000000000 -0400
+++ perl-5.8.8/embed.h 2008-08-27 10:34:01.000000000 -0400
@@ -1349,6 +1349,7 @@
#ifdef PERL_CORE
#define utf8_mg_pos S_utf8_mg_pos
#define utf8_mg_pos_init S_utf8_mg_pos_init
+#define process_sub S_process_sub
#define reset_amagic S_reset_amagic
#endif
#endif
@@ -3393,6 +3394,7 @@
#ifdef PERL_CORE
#define utf8_mg_pos(a,b,c,d,e,f,g,h,i) S_utf8_mg_pos(aTHX_ a,b,c,d,e,f,g,h,i)
#define utf8_mg_pos_init(a,b,c,d,e,f,g) S_utf8_mg_pos_init(aTHX_ a,b,c,d,e,f,g)
+#define process_sub(a,b,c,d,e) S_process_sub(aTHX_ a,b,c,d,e)
#define reset_amagic(a,b) S_reset_amagic(aTHX_ a,b)
#endif
#endif
diff -up perl-5.8.8/proto.h.U32025 perl-5.8.8/proto.h
--- perl-5.8.8/proto.h.U32025 2008-08-27 10:34:10.000000000 -0400
+++ perl-5.8.8/proto.h 2008-08-27 10:34:42.000000000 -0400
@@ -1876,6 +1876,7 @@ STATIC I32 S_expect_number(pTHX_ char**
#
STATIC bool S_utf8_mg_pos(pTHX_ SV *sv, MAGIC **mgp, STRLEN **cachep, I32 i, I32 *offsetp, I32 uoff, const U8 **sp, const U8 *start, const U8 *send);
STATIC bool S_utf8_mg_pos_init(pTHX_ SV *sv, MAGIC **mgp, STRLEN **cachep, I32 i, I32 offsetp, const U8 *s, const U8 *start);
+STATIC U32 S_process_sub(pTHX_ CV *const current_sub, U32 how_many_in_pad, const SV *const target, SV *const rv, const bool on);
STATIC void S_reset_amagic(pTHX_ SV *rv, const bool on);
#endif
diff -up perl-5.8.8/sv.c.U32025 perl-5.8.8/sv.c
--- perl-5.8.8/sv.c.U32025 2008-08-27 10:28:34.000000000 -0400
+++ perl-5.8.8/sv.c 2008-08-27 10:32:28.000000000 -0400
@@ -7993,6 +7993,47 @@ Perl_sv_setref_pvn(pTHX_ SV *rv, const c
return rv;
}
+/* For this subroutine, for each level of recursion, check the pad for either
+ direct pointers to the target object, or perl references to it.
+ We assume that arrays and hashes (and deeper structures) in lexicals
+ rarely point to objects. */
+static U32
+S_process_sub(pTHX_ CV *const current_sub, U32 how_many_in_pad,
+ const SV *const target, SV *const rv, const bool on) {
+ AV *const padlist = CvPADLIST(current_sub);
+ long depth = CvDEPTH(current_sub);
+
+ while (depth > 0) {
+ AV *const curpad = (AV*) AvARRAY(padlist)[depth];
+ SV ** const start = AvARRAY(curpad);
+ SV ** end = start + AvFILLp(curpad);
+
+ while (end >= start) {
+ SV *const sv = *end--;
+ if (sv == target) {
+ if (--how_many_in_pad == 0) {
+ /* We have found them all. */
+ return 0;
+ }
+ } else if ((sv->sv_flags & SVf_ROK) == SVf_ROK
+ && SvRV(sv) == target
+ && sv != rv) {
+ if (on)
+ SvAMAGIC_on(sv);
+ else
+ SvAMAGIC_off(sv);
+ if (--how_many_in_pad == 0) {
+ /* We have found them all. */
+ return 0;
+ }
+ }
+ }
+ --depth;
+ };
+ return how_many_in_pad;
+}
+
+
/* This is a hack to cope with reblessing from class with overloading magic to
one without (or the other way). Search for every reference pointing to the
object. Can't use S_visit() because we would need to pass a parameter to
@@ -8031,6 +8072,11 @@ S_reset_amagic(pTHX_ SV *rv, const bool
the object (but no arrays, hashes, pads, typeglobs or other things)
pointing to it.
+ Actually, need to extend that to any pad in the call chain, and any
+ temporaries. Fortunately, we can do this in a way that doesn't involve
+ visiting any location twice, so we don't need to keep track of what
+ we've seen.
+
The first case is likely to involve quite a small search.
The second case is O(n) on the number of SVs, but we can make it
terminate early if we find every reference is accounted for by an RV.
@@ -8039,7 +8085,7 @@ S_reset_amagic(pTHX_ SV *rv, const bool
{
/* So before trying the large O(n) linear search of all SVs, start by
seeing if we can find the other references as temporaries on the
- stack or in the current pad.
+ stack or in the pads of the current subroutine call chain.
This avoids the big search for constructions such as
my $string = ...;
@@ -8060,9 +8106,7 @@ S_reset_amagic(pTHX_ SV *rv, const bool
/* We have found them all. */
return;
}
- } else if (SvTYPE(sv) != SVTYPEMASK
- && (sv->sv_flags & SVf_ROK) == SVf_ROK
- && SvREFCNT(sv)
+ } else if ((sv->sv_flags & SVf_ROK) == SVf_ROK
&& SvRV(sv) == target
&& sv != rv) {
if (on)
@@ -8079,26 +8123,50 @@ S_reset_amagic(pTHX_ SV *rv, const bool
}
{
- CV *const current_sub = find_runcv(NULL);
- AV *const padlist = CvPADLIST(current_sub);
- AV *const curpad = (AV*) AvARRAY(padlist)[CvDEPTH(current_sub)];
- SV ** const start = AvARRAY(curpad);
- SV ** end = start + AvFILLp(curpad);
+ /* This code is pilfered from Perl_find_runcv */
+ PERL_SI *si;
- while (end >= start) {
- SV *const sv = *end--;
- if (sv == target) {
- if (--how_many_in_pad == 0) {
+ for (si = PL_curstackinfo; si; si = si->si_prev) {
+ I32 ix;
+ for (ix = si->si_cxix; ix >= 0; ix--) {
+ const PERL_CONTEXT *cx = &(si->si_cxstack[ix]);
+ if (CxTYPE(cx) == CXt_SUB || CxTYPE(cx) == CXt_FORMAT) {
+ CV * const cv = cx->blk_sub.cv;
+ /* Process all levels of recursion the first time we
+ see a subroutine. */
+ if (cx->blk_sub.olddepth + 1 == CvDEPTH(cv)) {
+ how_many_in_pad = process_sub(cv, how_many_in_pad,
+ target, rv, on);
+ if (how_many_in_pad == 0) {
+ /* We have found them all. */
+ return;
+ }
+ }
+ }
+ else if (CxTYPE(cx) == CXt_EVAL && !CxTRYBLOCK(cx)) {
+ how_many_in_pad
+ = process_sub(PL_compcv, how_many_in_pad, target,
+ rv, on);
+ if (how_many_in_pad == 0) {
+ /* We have found them all. */
+ return;
+ }
+ }
+ }
+ how_many_in_pad
+ = process_sub(PL_main_cv, how_many_in_pad, target, rv, on);
+ if (how_many_in_pad == 0) {
/* We have found them all. */
return;
}
}
}
- }
}
- /* Right, didn't find all the other referneces were lexicals or temporaries
+ /* Right, didn't find all the other references were lexicals or temporaries
in the pad, so need to do an exhaustive search to find all references.
+ It doesn't matter if we've already set the AMAGIC flag to the correct
+ value on some of the other references.
*/
for (sva = PL_sv_arenaroot; sva; sva = (SV*)SvANY(sva)) {
perl-5.8.0-sharedlinker.patch:
Index: perl-5.8.0-sharedlinker.patch
===================================================================
RCS file: /cvs/pkgs/rpms/perl/F-8/perl-5.8.0-sharedlinker.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- perl-5.8.0-sharedlinker.patch 9 Sep 2004 10:02:23 -0000 1.1
+++ perl-5.8.0-sharedlinker.patch 28 Aug 2008 13:53:11 -0000 1.2
@@ -1,8 +1,9 @@
---- perl-5.8.0/Makefile.SH.sharedlinker Tue Jun 18 12:36:27 2002
-+++ perl-5.8.0/Makefile.SH Tue Jun 18 12:37:31 2002
-@@ -61,6 +61,9 @@
- netbsd*|freebsd[234]*|openbsd*)
+diff -up perl-5.8.8/Makefile.SH.sharedlinker perl-5.8.8/Makefile.SH
+--- perl-5.8.8/Makefile.SH.sharedlinker 2008-08-27 09:55:34.000000000 -0400
++++ perl-5.8.8/Makefile.SH 2008-08-27 09:56:02.000000000 -0400
+@@ -80,6 +80,9 @@ true)
linklibperl="-L. -lperl"
+ shrpldflags="$shrpldflags -Wl,--image-base,0x57000000"
;;
+ linux*)
+ shrpldflags="$shrpldflags $ldflags $perllibs $cryptlib"
perl-5.8.8-U28775.patch:
Index: perl-5.8.8-U28775.patch
===================================================================
RCS file: /cvs/pkgs/rpms/perl/F-8/perl-5.8.8-U28775.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- perl-5.8.8-U28775.patch 22 Jun 2007 20:16:01 -0000 1.1
+++ perl-5.8.8-U28775.patch 28 Aug 2008 13:53:11 -0000 1.2
@@ -280,9 +280,10 @@
OP *
---- perl-5.8.8/op.h-26
-+++ perl-5.8.8/op.h
-@@ -103,5 +103,7 @@
+--- perl-5.8.8/op.h.U28775 2008-08-27 09:57:52.000000000 -0400
++++ perl-5.8.8/op.h 2008-08-27 09:58:21.000000000 -0400
+@@ -102,6 +102,8 @@ Deprecated. Use C<GIMME_V> instead.
+ /* On OP_DBSTATE, indicates breakpoint
* (runtime property) */
/* On OP_AELEMFAST, indiciates pad var */
+ /* On OP_ANONHASH and OP_ANONLIST, create a
@@ -290,10 +291,9 @@
/* old names; don't use in new code, but don't break them, either */
#define OPf_LIST OPf_WANT_LIST
-
---- perl-5.8.8/pp.c-101
-+++ perl-5.8.8/pp.c
-@@ -4036,16 +4036,17 @@
+--- perl-5.8.8/pp.c.orig 2008-08-27 09:59:48.000000000 -0400
++++ perl-5.8.8/pp.c 2008-08-27 10:02:28.000000000 -0400
+@@ -4126,16 +4126,17 @@ PP(pp_anonlist)
{
dSP; dMARK; dORIGMARK;
const I32 items = SP - MARK;
@@ -314,12 +314,13 @@
while (MARK < SP) {
SV * const key = *++MARK;
-@@ -4057,7 +4058,8 @@
+@@ -4147,7 +4148,8 @@ PP(pp_anonhash)
(void)hv_store_ent(hv,key,val,0);
}
SP = ORIGMARK;
- XPUSHs((SV*)hv);
+ XPUSHs(sv_2mortal((PL_op->op_flags & OPf_SPECIAL)
-+ ? newRV_noinc((SV*) hv) : (SV*)hv));
++ ? newRV_noinc((SV*) hv) : (SV*)hv));
RETURN;
}
+
Index: perl.spec
===================================================================
RCS file: /cvs/pkgs/rpms/perl/F-8/perl.spec,v
retrieving revision 1.152
retrieving revision 1.153
diff -u -r1.152 -r1.153
--- perl.spec 9 Jun 2008 08:38:00 -0000 1.152
+++ perl.spec 28 Aug 2008 13:53:12 -0000 1.153
@@ -24,7 +24,7 @@
Name: perl
Version: %{perl_version}
-Release: 40%{?dist}
+Release: 41%{?dist}
Epoch: %{perl_epoch}
Summary: The Perl programming language
Group: Development/Languages
@@ -142,6 +142,14 @@
Patch49: perl-5.8.8-rhbz238581.patch
# buffer overflow for unicode characters in regexp
Patch50: perl-5.8.8-CVE-2008-1927.patch
+# Another bless overload fix (U31996)
+Patch51: perl-5.8.8-U31996.patch
+# Still another bless overload fix (U32018)
+Patch52: perl-5.8.8-U32018.patch
+# Yet another bless overload fix (U32019)
+Patch53: perl-5.8.8-U32019.patch
+# Yes. Another bless overload fix (U32025)
+Patch54: perl-5.8.8-U32025.patch
BuildRoot: %{_tmppath}/%{name}-%{perl_version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: tcsh, dos2unix, man, groff
@@ -419,6 +427,10 @@
%patch48 -p1
%patch49 -p1
%patch50 -p1
+%patch51 -p1
+%patch52 -p1
+%patch53 -p1
+%patch54 -p1
#
# Candidates for doc recoding (need case by case review):
@@ -820,6 +832,9 @@
# Nothing. Nada. Zilch. Zarro. Uh uh. Nope. Sorry.
%changelog
+* Wed Aug 27 2008 Tom "spot" Callaway <tcallawa at redhat.com> - 4:5.8.8-41
+- apply bless/overload fixes from upstream (U31996, U32018, U32019, U32025)
+
* Mon Jun 9 2008 Marcela Maslanova <mmaslano at redhat.com> - 4:5.8.8-40
- 450289 CGI updato to 3.37
- Previous message (by thread): rpms/k3b/devel k3b-1.0.5-hidden.patch, 1.2, 1.3 k3b.spec, 1.64, 1.65 k3b-i18n-0.12.17-rellink.patch, 1.1, NONE
- Next message (by thread): rpms/gnome-session/devel .cvsignore, 1.62, 1.63 gnome-session.spec, 1.185, 1.186 sources, 1.66, 1.67
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-extras-commits
mailing list