如何最好地处理Perl/Tk所需的补丁?
我对Perl/Tk做了一个更改,用于一个有自己的常驻Perl和模块安装的应用程序(这样我们就可以将该应用程序放入并运行) 我发现了一个我正在经历的问题,我只是偶然发现了我在这里需要的补丁: 我想应用这个补丁,或者如果我可以升级到一个新版本的Perl/Tk模块,它已经包含了这个补丁,不需要我更改Perl的版本,那么就这样做 以下是我可以从该应用程序的安装中找到的内容: perl-v=5.8.4 $Tk::版本='8.4' $Tk::patchlevel='8.4' $Tk::版本='804.027' 所以 1a)如果有一个更新的Tk版本包含上述链接中的补丁,我如何在该应用程序的特定Perl安装位置升级该模块 1b)如何知道该升级是否与Perl的5.8.4兼容(此时我不想升级Perl) 2) 如果没有,如何应用该链接中定义的修补程序?首先,检查当前版本的。在做出此响应时,它是804.028,因此您的bug可能已经修复。您可以检查以查看报告的bug的状态,尽管我不知道您的特定bug是否已输入队列。您还可以检查发布的文件,看看是否有提到您的问题 如果您没有看到任何具体内容,您可能会注意到引用的消息的作者是Tk的维护者,因此很可能已经应用了修补程序。:) Tk是一种分布。您不能升级单个模块 检查以查看哪些版本的Tk在哪些平台上工作,以及在哪些版本的Perl下工作如何最好地处理Perl/Tk所需的补丁?,perl,tk,perl-module,Perl,Tk,Perl Module,我对Perl/Tk做了一个更改,用于一个有自己的常驻Perl和模块安装的应用程序(这样我们就可以将该应用程序放入并运行) 我发现了一个我正在经历的问题,我只是偶然发现了我在这里需要的补丁: 我想应用这个补丁,或者如果我可以升级到一个新版本的Perl/Tk模块,它已经包含了这个补丁,不需要我更改Perl的版本,那么就这样做 以下是我可以从该应用程序的安装中找到的内容: perl-v=5.8.4 $Tk::版本='8.4' $Tk::patchlevel='8.4' $Tk::版本='804.027
如果您必须只应用这一个更改,请下载您正在使用的Tk版本的源代码,应用补丁,然后重新构建它。Michael,谢谢您的评论。如果包含Tk发行版,我将如何将其从804.027升级到804.028?如果不是,我只想要补丁,我怎么做你在最后一句中的建议?步骤是什么?如果您正在运行ActivePerl,请使用随附的
ppm
实用程序。否则,请尝试cpan
shell。如果所有其他操作都失败,请下载发行版,解压缩它,然后执行make
,make test
,make install
。
Bug confirmed. Here's the patch against Tk804.027:
--- Tk-804.027/pTk/mTk/generic/tkEntry.c Sat Mar 20 19:54:48 2004
+++ Tk-804.027-perl5.8.3d/pTk/mTk/generic/tkEntry.c Tue Oct 19 22:50:31 2004
@@ -3478,6 +3478,18 @@
Tcl_DStringFree(&script);
#else
+ switch (type) {
+ case VALIDATE_INSERT:
+ type = 1;
+ break;
+ case VALIDATE_DELETE:
+ type = 0;
+ break;
+ default:
+ type = -1;
+ break;
+ }
+
code = LangDoCallback(entryPtr->interp, entryPtr->validateCmd, 1, 5, "%s
%s %s %d %d",
new, change, entryPtr->string, index, type);
if (code != TCL_OK && code != TCL_RETURN) {
Regards,
Slaven