4

独自の常駐 Perl とモジュールがインストールされているアプリケーションの Perl/Tk に変更を加えています (そのため、アプリケーションをドロップして実行できます)。

ここで必要なパッチと思われるものを偶然見つけたという問題を見つけました: http://osdir.com/ml/lang.perl.tk/2004-10/msg00030.html

    バグ確定。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) {


よろしく、
奴隷

このパッチを適用したいのですが、Perl のバージョンを変更する必要のないこのパッチが既に含まれているアップグレード可能な Perl/Tk モジュールの新しいバージョンがある場合は、それを実行してください。

このアプリのインストールから私が見つけることができるものは次のとおりです。

perl -v = 5.8.4 $Tk::version = '8.4' $Tk::patchlevel = '8.4' $Tk::VERSION = '804.027'

そう..

1a) 上記のリンクにパッチを含む新しい Tk VERSION がある場合、このアプリの特定の Perl インストール場所にあるそのモジュールだけをアップグレードするにはどうすればよいですか?

1b) そのアップグレードが Perl の 5.8.4 と互換性があるかどうかを知るにはどうすればよいですか (現時点では perl をアップグレードしたくありません)

2) そうでない場合、そのリンクで定義されているパッチを適用するにはどうすればよいですか?

4

1 に答える 1

3

まず、CPANをチェックして、 Tkの現在のバージョンを確認します。この回答の時点では804.028であるため、バグが修正されている可能性があります。Tkバグキューをチェックして、報告されたバグの状態を確認できますが、特定のバグがキューに入ったことがあるかどうかはわかりません。また、リリースの変更ファイルをチェックして、問題がそこに記載されているかどうかを確認することもできます。

特に何も表示されない場合は、引用されたメッセージの作成者がTkのメンテナーであることに気付くかもしれません。そのため、パッチが適用されている可能性があります。:)

Tkはディストリビューションです。個々のモジュールをアップグレードすることはできません。

Perl / Platformバージョンマトリックスをチェックして、どのバージョンのTkがどのプラットフォームでどのバージョンのPerlで動作するかを確認します。

この1つの変更だけを絶対に適用する必要がある場合は、使用しているTkのバージョンのソースをダウンロードし、パッチを適用して、再構築してください。

于 2010-05-21T20:24:08.427 に答える