- add parts of debian patch

- add patch to fix #235666
This commit is contained in:
Andreas Bierfert 2008-01-04 23:24:38 +00:00
parent c29723a2c4
commit 8e99dbd438
2 changed files with 66 additions and 2 deletions

48
perl-Tk-seg.patch Normal file
View File

@ -0,0 +1,48 @@
--- pTk/mTk/generic/tkConfig.c.orig 2008-01-04 18:50:58.000000000 +0100
+++ pTk/mTk/generic/tkConfig.c 2008-01-05 00:15:15.000000000 +0100
@@ -1210,11 +1210,12 @@
* First, check to see if the object already has the answer cached.
*/
- if (objPtr->typePtr == &tkOptionObjType) {
- if (objPtr->internalRep.twoPtrValue.ptr1 == (VOID *) tablePtr) {
+/* if (objPtr->typePtr == &tkOptionObjType) {
+ if (objPtr->internalRep.twoPtrValue.ptr1 == (VOID *) tablePtr
+ && objPtr->internalRep.twoPtrValue.ptr2 != NULL) {
return (Option *) objPtr->internalRep.twoPtrValue.ptr2;
}
- }
+ }*/
/*
* The answer isn't cached.
@@ -2277,9 +2278,19 @@
if (optionPtr == NULL) {
return NULL;
}
+
+ if (optionPtr->specPtr == NULL) {
+ return NULL;
+ }
+
+ if (!optionPtr->specPtr->type) {
+ return NULL;
+ }
+
if (optionPtr->specPtr->type == TK_OPTION_SYNONYM) {
optionPtr = optionPtr->extra.synonymPtr;
}
+
if (optionPtr->specPtr->objOffset >= 0) {
resultPtr = *((Tcl_Obj **) (recordPtr + optionPtr->specPtr->objOffset));
if (resultPtr == NULL) {
--- pTk/mTk/generic/tkFrame.c.orig 2008-01-04 22:52:12.000000000 +0100
+++ pTk/mTk/generic/tkFrame.c 2008-01-04 23:51:20.000000000 +0100
@@ -769,6 +769,7 @@
result = TCL_ERROR;
goto done;
}
+
objPtr = Tk_GetOptionValue(interp, (char *) framePtr,
framePtr->optionTable, objv[2], framePtr->tkwin);
if (objPtr == NULL) {

View File

@ -3,7 +3,7 @@
Name: perl-Tk
Version: 804.028
Release: 1%{?dist}
Release: 2%{?dist}
Summary: Perl Graphical User Interface ToolKit
Group: Development/Libraries
@ -11,6 +11,10 @@ License: GPL or Artistic
URL: http://search.cpan.org/dist/Tk/
Source0: http://cpan.org/modules/by-module/Tk/Tk-804.028.tar.gz
Patch0: perl-Tk-widget.patch
# modified version of http://ftp.de.debian.org/debian/pool/main/p/perl-tk/perl-tk_804.027-8.diff.gz
Patch1: perl-Tk-debian.patch.gz
# fix segfaults as in #235666 because of broken cashing code
Patch2: perl-Tk-seg.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
# Versions before this have Unicode issues
@ -44,12 +48,19 @@ chmod -x pod/Popup.pod Tixish/lib/Tk/balArrow.xbm
%{__perl} -pi -e \
's,\@demopath\@,%{_datadir}/doc/%{name}-%{version}/demos,g' \
%{_builddir}/Tk-%{version}/demos/widget
# debian patch
%patch1 -p1
# patch to fix #235666 ... seems like caching code is broken
%patch2
%build
%{__perl} Makefile.PL INSTALLDIRS=vendor X11LIB=/usr/X11R6/%{_lib} XFT=1
%{__perl} Makefile.PL INSTALLDIRS=vendor X11LIB=%{_libdir} XFT=1
find . -name Makefile | xargs %{__perl} -pi -e 's/^\tLD_RUN_PATH=[^\s]+\s*/\t/'
make %{?_smp_mflags}
# disable because they need an x screen
#%check
#make test
%install
rm -rf $RPM_BUILD_ROOT
@ -85,6 +96,11 @@ rm -rf $RPM_BUILD_ROOT
%exclude %{perl_vendorarch}/Tk/reindex.pl
%changelog
* Fri Jan 04 2008 Andreas Bierfert <andreas.bierfert[AT]lowlatency.de>
- 804.028-2
- add relevant parts of debian patch
- add patch for #235666
* Wed Jan 02 2008 Andreas Bierfert <andreas.bierfert[AT]lowlatency.de>
- 804.028-1
- version upgrade