mieki256's diary



2019/11/15(金) [n年前の日記]

#1 [gimp] texturizeプラグインにpatchを当てる

Debian Linux の、gimp-texturize パッケージのソースを入手する方法が分かった。下のページから入手できた。

_Debian -- sid の gimp-texturize パッケージに関する詳細

ページの右のほうに、「gimp-texturize ソースパッケージをダウンロード」という項目があって、そこからDLできる。
ということで、パッチを当てたソースを作ろうとしたわけで。

作業手順をメモ。 :

以下、Windows10 x64 1903 + msys2 上で作業。

gimp-texturize_2.1-8.debian.tar.xz を解凍。

patchディレクトリの中身は以下。
10_move-image-to-heap.patch
20_fix-cast-warnings.patch
30_remove-non-public-gimpimage-pdb-header.patch
40_unescaped-left-brace.patch
50_replace-huge-by-inf.patch
60_avoid-no-translation-with-DH12.patch
series

ほとんどの *.patch は改行コードが LF (Linuxの改行コード)なのだけど、20_fix-cast-warnings.patch だけ、改行コードが CRLF (Windowsの改行コード)になっている。このままだと、patch を当てるときにエラーが出る。

改行コードの確認方法は以下。
od -c 20_fix-cast-warnings.patch

ずらずらと文字が表示されるけど…。
  • 中に \r \n がチラホラ混ざってるなら Windows の改行コード。
  • \n が混ざってるなら Linux の改行コード。
  • \r だけなら Mac の改行コード。

dos2unix というツールで、Windowsの改行コードを Linux の改行コードに変換できる。
pacman -S dos2unix
dos2unix 20_fix-cast-warnings.patch

gimp-texturize_2.1.orig.tar.gz を解凍。

*.patch を、src/ と同階層にコピー。

patch を当ててみる。
patch -u -p1 < 10_move-image-to-heap.patch
patch -u -p1 < 20_fix-cast-warnings.patch
patch -u -p1 < 30_remove-non-public-gimpimage-pdb-header.patch
patch -u -p1 < 40_unescaped-left-brace.patch
patch -u -p1 < 50_replace-huge-by-inf.patch
patch -u -p1 < 60_avoid-no-translation-with-DH12.patch

  • -u オプションは、パッチの形式だかフォーマットだかを指定しているらしい。
  • -p1 は、パッチ内のファイルパスの、1番目を無視する指定、らしい。hoge/fuga/piyo とファイルパスが書いてあった場合、-p1 なら fuga/piyo、-p2 なら piyo しか見ないのだそうで。

これで、Debian パッケージのソースコードになった。はず。

意味は無かった。 :

しかし、patch を当てた後のソースと、github 版のソースを比較してみたら、実処理の記述部分については github のソースにも修正内容が反映されていた。

_lmanul/gimp-texturize: Texturize plugin for the GIMP

処理部分に関しては、Debian版だけが特別なバグ修正をしてある、というわけではない模様…。

以上です。

過去ログ表示

Prev - 2019/11 - Next
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project