Fix creating a window with perl 5.20 and freetype detection
This commit is contained in:
parent
87582097ec
commit
ac137c1229
72
Tk-804.032-fix-race-condition-in-errordialog.t.patch
Normal file
72
Tk-804.032-fix-race-condition-in-errordialog.t.patch
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
From 04794000cf849e0c03a9e056222fb4758a55b04b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Slaven Rezic <slaven@rezic.de>
|
||||||
|
Date: Sun, 27 Apr 2014 21:06:21 +0200
|
||||||
|
Subject: [PATCH 06/10] fix race condition in errordialog.t
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Test used to fail if the afterIdle callback with the die() was
|
||||||
|
executed after the checking callback. This could happen on slow (e.g.
|
||||||
|
remote) X11 connections.
|
||||||
|
|
||||||
|
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||||
|
---
|
||||||
|
t/errordialog.t | 33 +++++++++++++++++++--------------
|
||||||
|
1 file changed, 19 insertions(+), 14 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/t/errordialog.t b/t/errordialog.t
|
||||||
|
index 3036e5b..ffd1b71 100755
|
||||||
|
--- a/t/errordialog.t
|
||||||
|
+++ b/t/errordialog.t
|
||||||
|
@@ -27,21 +27,13 @@ use_ok 'Tk::ErrorDialog';
|
||||||
|
my $mw = tkinit;
|
||||||
|
$mw->geometry("+10+10");
|
||||||
|
|
||||||
|
-my $errmsg = "Intentional error.";
|
||||||
|
-$mw->afterIdle(sub { die "$errmsg\n" });
|
||||||
|
-
|
||||||
|
my $ed;
|
||||||
|
-$mw->after(100, sub {
|
||||||
|
- my $dialog = search_error_dialog($mw);
|
||||||
|
- isa_ok($dialog, "Tk::Dialog", "dialog");
|
||||||
|
- $ed = $dialog;
|
||||||
|
- my $error_stacktrace_toplevel = search_error_stacktrace_toplevel($mw);
|
||||||
|
- isa_ok($error_stacktrace_toplevel, 'Tk::ErrorDialog', 'Found stacktrace window');
|
||||||
|
- is($error_stacktrace_toplevel->state, 'withdrawn', 'Stacktrace not visible');
|
||||||
|
- $error_stacktrace_toplevel->geometry('+0+0'); # for WMs with interactive placement
|
||||||
|
- $dialog->SelectButton('Stack trace');
|
||||||
|
- second_error();
|
||||||
|
- });
|
||||||
|
+
|
||||||
|
+my $errmsg = "Intentional error.";
|
||||||
|
+$mw->afterIdle(sub {
|
||||||
|
+ $mw->after(100, \&first_error);
|
||||||
|
+ die "$errmsg\n";
|
||||||
|
+ });
|
||||||
|
|
||||||
|
$mw->after(20*1000, sub {
|
||||||
|
if (Tk::Exists($mw)) {
|
||||||
|
@@ -51,6 +43,19 @@ $mw->after(20*1000, sub {
|
||||||
|
});
|
||||||
|
MainLoop;
|
||||||
|
|
||||||
|
+# fills $ed
|
||||||
|
+sub first_error {
|
||||||
|
+ my $dialog = search_error_dialog($mw);
|
||||||
|
+ isa_ok($dialog, "Tk::Dialog", "dialog");
|
||||||
|
+ $ed = $dialog;
|
||||||
|
+ my $error_stacktrace_toplevel = search_error_stacktrace_toplevel($mw);
|
||||||
|
+ isa_ok($error_stacktrace_toplevel, 'Tk::ErrorDialog', 'Found stacktrace window');
|
||||||
|
+ is($error_stacktrace_toplevel->state, 'withdrawn', 'Stacktrace not visible');
|
||||||
|
+ $error_stacktrace_toplevel->geometry('+0+0'); # for WMs with interactive placement
|
||||||
|
+ $dialog->SelectButton('Stack trace');
|
||||||
|
+ second_error();
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
sub second_error {
|
||||||
|
$mw->afterIdle(sub { die "$errmsg\n" });
|
||||||
|
$mw->after(100, sub {
|
||||||
|
--
|
||||||
|
1.9.3
|
||||||
|
|
@ -0,0 +1,40 @@
|
|||||||
|
From 1ca4589ef5a87999ec564081900bc8fdaed83c74 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Slaven Rezic <slaven@rezic.de>
|
||||||
|
Date: Sun, 2 Mar 2014 12:10:31 +0100
|
||||||
|
Subject: [PATCH 01/10] look also for /usr/include/freetype2/freetype.h
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
In some freetype installations (e.g. Debian/jessie) the intermediate
|
||||||
|
"freetype" directory may be missing in the include path.
|
||||||
|
|
||||||
|
This should fix
|
||||||
|
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=740207
|
||||||
|
|
||||||
|
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||||
|
---
|
||||||
|
myConfig | 7 ++++++-
|
||||||
|
1 file changed, 6 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/myConfig b/myConfig
|
||||||
|
index 02d2ee5..3ca8144 100755
|
||||||
|
--- a/myConfig
|
||||||
|
+++ b/myConfig
|
||||||
|
@@ -147,7 +147,12 @@ sub Ift
|
||||||
|
{
|
||||||
|
foreach (map { "$_/freetype2" } @_)
|
||||||
|
{
|
||||||
|
- if (-d $_ && -d "$_/freetype" && -r "$_/freetype/freetype.h")
|
||||||
|
+ if (-r "$_/freetype.h") # location in Debian (since jessie)
|
||||||
|
+ {
|
||||||
|
+ print "Using -I$_ to find $_/freetype/freetype.h\n";
|
||||||
|
+ return "-I$_";
|
||||||
|
+ }
|
||||||
|
+ if (-r "$_/freetype/freetype.h") # location in FreeBSD (up to version 10.0) and Debian (up to wheezy)
|
||||||
|
{
|
||||||
|
print "Using -I$_ to find $_/freetype/freetype.h\n";
|
||||||
|
return "-I$_";
|
||||||
|
--
|
||||||
|
1.9.3
|
||||||
|
|
@ -0,0 +1,33 @@
|
|||||||
|
From ba3a92a779f7adcf655b7e45b40ee5b0cb79bc8b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Slaven Rezic <slaven@rezic.de>
|
||||||
|
Date: Fri, 14 Mar 2014 16:00:05 +0100
|
||||||
|
Subject: [PATCH 02/10] no segfaults if Tk::MainWindow::Create was called
|
||||||
|
without args
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
However, this case never happened in real life, as this function was
|
||||||
|
not supposed to be used directly anyway.
|
||||||
|
|
||||||
|
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||||
|
---
|
||||||
|
tkGlue.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/tkGlue.c b/tkGlue.c
|
||||||
|
index 57f0bca..ae595bf 100644
|
||||||
|
--- a/tkGlue.c
|
||||||
|
+++ b/tkGlue.c
|
||||||
|
@@ -2370,7 +2370,7 @@ XS(XS_Tk__MainWindow_Create)
|
||||||
|
STRLEN na;
|
||||||
|
Tcl_Interp *interp = Tcl_CreateInterp();
|
||||||
|
SV **args = &ST(0);
|
||||||
|
- char *appName = SvPV(ST(1),na);
|
||||||
|
+ char *appName = items >= 1 ? SvPV(ST(1),na) : "";
|
||||||
|
int offset = args - sp;
|
||||||
|
int code;
|
||||||
|
if (!initialized)
|
||||||
|
--
|
||||||
|
1.9.3
|
||||||
|
|
@ -0,0 +1,39 @@
|
|||||||
|
From 567210e099deb8b3c77e8d24161563f8bdec4a08 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Slaven Rezic <slaven@rezic.de>
|
||||||
|
Date: Fri, 14 Mar 2014 16:05:09 +0100
|
||||||
|
Subject: [PATCH 03/10] test case for Tk::MainWindow::Create without args
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||||
|
---
|
||||||
|
t/create.t | 5 ++++-
|
||||||
|
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/t/create.t b/t/create.t
|
||||||
|
index 8843acc..a367530 100644
|
||||||
|
--- a/t/create.t
|
||||||
|
+++ b/t/create.t
|
||||||
|
@@ -80,7 +80,7 @@ BEGIN
|
||||||
|
($^O eq 'cygwin' and defined($Tk::platform)
|
||||||
|
and $Tk::platform eq 'MSWin32'));
|
||||||
|
|
||||||
|
- plan test => (15*@class+3);
|
||||||
|
+ plan test => (15*@class+4);
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
@@ -93,6 +93,9 @@ ok($@, "", "can't create MainWindow");
|
||||||
|
ok(Tk::Exists($mw), 1, "MainWindow creation failed");
|
||||||
|
eval { $mw->geometry('+10+10'); }; # This works for mwm and interactivePlacement
|
||||||
|
|
||||||
|
+eval { Tk::MainWindow::Create() };
|
||||||
|
+ok($@ =~ qr{wrong # args: should be .*Tk::MainWindow::Create pathName}, 1, "no segfault for Tk::MainWindow::Create without args");
|
||||||
|
+
|
||||||
|
my $w;
|
||||||
|
foreach my $class (@class)
|
||||||
|
{
|
||||||
|
--
|
||||||
|
1.9.3
|
||||||
|
|
29
Tk-804.032-travis-ci-test-5.20-instead-of-5.19.patch
Normal file
29
Tk-804.032-travis-ci-test-5.20-instead-of-5.19.patch
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
From 823f367d5e0952cead89646e0c7b7278a5e633b6 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Slaven Rezic <slaven@rezic.de>
|
||||||
|
Date: Fri, 8 Aug 2014 08:56:51 +0200
|
||||||
|
Subject: [PATCH 10/10] travis-ci: test 5.20 instead of 5.19
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||||
|
---
|
||||||
|
.travis.yml | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/.travis.yml b/.travis.yml
|
||||||
|
index 8d4e90c..3cdb98f 100644
|
||||||
|
--- a/.travis.yml
|
||||||
|
+++ b/.travis.yml
|
||||||
|
@@ -15,7 +15,7 @@ before_install:
|
||||||
|
- (sleep 10; env DISPLAY=:123 $WINDOW_MANAGER) &
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- - perl: "5.19"
|
||||||
|
+ - perl: "5.20"
|
||||||
|
env: DISPLAY=:123 WINDOW_MANAGER=twm
|
||||||
|
## t/fbox.t fails, not reproducible on a freebsd system
|
||||||
|
# - perl: "5.18"
|
||||||
|
--
|
||||||
|
1.9.3
|
||||||
|
|
35
Tk-804.032-update-comment-about-freetype.h-location.patch
Normal file
35
Tk-804.032-update-comment-about-freetype.h-location.patch
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
From e938fd3c94cd6f91fed4eb8aa217ec855dd4f00b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Slaven Rezic <slaven@rezic.de>
|
||||||
|
Date: Sun, 27 Apr 2014 20:50:58 +0200
|
||||||
|
Subject: [PATCH 05/10] update comment about freetype.h location
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||||
|
---
|
||||||
|
myConfig | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/myConfig b/myConfig
|
||||||
|
index 3ca8144..a498b3a 100755
|
||||||
|
--- a/myConfig
|
||||||
|
+++ b/myConfig
|
||||||
|
@@ -147,12 +147,12 @@ sub Ift
|
||||||
|
{
|
||||||
|
foreach (map { "$_/freetype2" } @_)
|
||||||
|
{
|
||||||
|
- if (-r "$_/freetype.h") # location in Debian (since jessie)
|
||||||
|
+ if (-r "$_/freetype.h") # location in Debian (since jessie) and in newer versions of the FreeBSD port
|
||||||
|
{
|
||||||
|
print "Using -I$_ to find $_/freetype/freetype.h\n";
|
||||||
|
return "-I$_";
|
||||||
|
}
|
||||||
|
- if (-r "$_/freetype/freetype.h") # location in FreeBSD (up to version 10.0) and Debian (up to wheezy)
|
||||||
|
+ if (-r "$_/freetype/freetype.h") # location in FreeBSD (older versions of freetype2 port) and Debian (up to wheezy)
|
||||||
|
{
|
||||||
|
print "Using -I$_ to find $_/freetype/freetype.h\n";
|
||||||
|
return "-I$_";
|
||||||
|
--
|
||||||
|
1.9.3
|
||||||
|
|
@ -1,19 +0,0 @@
|
|||||||
--- a/perl-Tk-freetype25.patch
|
|
||||||
+++ a/perl-Tk-freetype25.patch
|
|
||||||
@@ -0,0 +1,16 @@
|
|
||||||
+diff --git a/myConfig b/myConfig
|
|
||||||
+index e0ace45..c0ae343 100755
|
|
||||||
+--- a/myConfig
|
|
||||||
++++ b/myConfig
|
|
||||||
+@@ -147,9 +147,9 @@ sub Ift
|
|
||||||
+ {
|
|
||||||
+ foreach (map { "$_/freetype2" } @_)
|
|
||||||
+ {
|
|
||||||
+- if (-d $_ && -d "$_/freetype" && -r "$_/freetype/freetype.h")
|
|
||||||
++ if (-d $_ && -r "$_/freetype.h")
|
|
||||||
+ {
|
|
||||||
+- print "Using -I$_ to find $_/freetype/freetype.h\n";
|
|
||||||
++ print "Using -I$_ to find $_/freetype.h\n";
|
|
||||||
+ return "-I$_";
|
|
||||||
+ }
|
|
||||||
+ }
|
|
28
perl-Tk.spec
28
perl-Tk.spec
@ -4,7 +4,7 @@
|
|||||||
Name: perl-Tk
|
Name: perl-Tk
|
||||||
# devel version fix for perl 5.14:
|
# devel version fix for perl 5.14:
|
||||||
Version: 804.032
|
Version: 804.032
|
||||||
Release: 3%{?dist}
|
Release: 4%{?dist}
|
||||||
Summary: Perl Graphical User Interface ToolKit
|
Summary: Perl Graphical User Interface ToolKit
|
||||||
|
|
||||||
Group: Development/Libraries
|
Group: Development/Libraries
|
||||||
@ -16,11 +16,21 @@ Patch0: perl-Tk-widget.patch
|
|||||||
Patch1: perl-Tk-debian.patch.gz
|
Patch1: perl-Tk-debian.patch.gz
|
||||||
# fix segfaults as in #235666 because of broken cashing code
|
# fix segfaults as in #235666 because of broken cashing code
|
||||||
Patch2: perl-Tk-seg.patch
|
Patch2: perl-Tk-seg.patch
|
||||||
# Fix freetype detection with 2.5
|
# Fix freetype detection with 2.5, CPAN RT#98480
|
||||||
Patch4: perl-Tk-freetype25.patch
|
Patch3: Tk-804.032-look-also-for-usr-include-freetype2-freetype.h.patch
|
||||||
|
# Fix creating a window with perl 5.20, bug #1141117, CPAN RT#96280
|
||||||
|
Patch4: Tk-804.032-no-segfaults-if-Tk-MainWindow-Create-was-called-with.patch
|
||||||
|
# Fix creating a window with perl 5.20, bug #1141117, CPAN RT#96280
|
||||||
|
Patch5: Tk-804.032-test-case-for-Tk-MainWindow-Create-without-args.patch
|
||||||
|
# Fix freetype detection with 2.5, CPAN RT#98480
|
||||||
|
Patch6: Tk-804.032-update-comment-about-freetype.h-location.patch
|
||||||
|
# Fix race in tests
|
||||||
|
Patch7: Tk-804.032-fix-race-condition-in-errordialog.t.patch
|
||||||
|
|
||||||
|
|
||||||
# Versions before this have Unicode issues
|
# Versions before this have Unicode issues
|
||||||
BuildRequires: perl-devel >= 3:5.8.3
|
BuildRequires: perl-devel >= 3:5.8.3
|
||||||
|
BuildRequires: freetype-devel
|
||||||
BuildRequires: libjpeg-devel
|
BuildRequires: libjpeg-devel
|
||||||
BuildRequires: libpng-devel
|
BuildRequires: libpng-devel
|
||||||
BuildRequires: libX11-devel
|
BuildRequires: libX11-devel
|
||||||
@ -79,7 +89,15 @@ chmod -x pod/Popup.pod Tixish/lib/Tk/balArrow.xbm
|
|||||||
# patch to fix #235666 ... seems like caching code is broken
|
# patch to fix #235666 ... seems like caching code is broken
|
||||||
%patch2 -p1 -b .seg
|
%patch2 -p1 -b .seg
|
||||||
# freetype-2.5 detection
|
# freetype-2.5 detection
|
||||||
|
%patch3 -p1
|
||||||
|
# perl 5.20
|
||||||
%patch4 -p1
|
%patch4 -p1
|
||||||
|
# perl 5.20
|
||||||
|
%patch5 -p1
|
||||||
|
# freetype-2.5 detection
|
||||||
|
%patch6 -p1
|
||||||
|
# test race
|
||||||
|
%patch7 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%{__perl} Makefile.PL INSTALLDIRS=vendor X11LIB=%{_libdir} XFT=1
|
%{__perl} Makefile.PL INSTALLDIRS=vendor X11LIB=%{_libdir} XFT=1
|
||||||
@ -126,6 +144,10 @@ find __demos/ -type f -exec chmod -x {} \;
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Sep 12 2014 Petr Pisar <ppisar@redhat.com> - 804.032-4
|
||||||
|
- Fix freetype detection
|
||||||
|
- Fix creating a window with perl 5.20 (bug #1141117)
|
||||||
|
|
||||||
* Tue Aug 26 2014 Jitka Plesnikova <jplesnik@redhat.com> - 804.032-3
|
* Tue Aug 26 2014 Jitka Plesnikova <jplesnik@redhat.com> - 804.032-3
|
||||||
- Perl 5.20 rebuild
|
- Perl 5.20 rebuild
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user