12 February 2010

(Ubuntu)GimpでExifのソフトウエア名と日時が書き換えられてしまう問題への対処

Gimp 2.6でExifデータの一部が、書き換えられてしまう。(Gimp 2.2 までは、この様なことはなかったので、ずっと古いバージョンを使ってきた)

古いバージョンを使い続けるのは情報弱者のように見られるため、Gimp 2.6で「Exifデータが書き換えられない」ように変更する時の手法のメモ。

ソースコードの入手し、ビルドに必要なライブラリを揃える

# apt-get source gimp
# apt-get build-dep gimp
# cd gimp-2.6.7

ソフトウエア名と日時をオリジナルのまま保つように、次の場所を修正

plug-ins/file-jpeg/jpeg-exif.c
  /* set software to "GIMP" and include the version number */
  if ((entry = exif_content_get_entry (exif_data->ifd[EXIF_IFD_0],
                                       EXIF_TAG_SOFTWARE)))
    {
/***** ここからコメントアウト
      const gchar *name = "GIMP " GIMP_VERSION;
 
      entry->data = (guchar *) g_strdup (name);
      entry->size = strlen (name) + 1;
      entry->components = entry->size;
 ここまでコメントアウト *****/
    }
 
  /*
   * set the date & time image was saved
   * note, date & time of original photo is stored elsewwhere, we
   * aren't losing it.
   */
  if ((entry = exif_content_get_entry (exif_data->ifd[EXIF_IFD_0],
                                       EXIF_TAG_DATE_TIME)))
    {
      /* small memory leak here */
/***** ここからコメントアウト
      entry->data = NULL;
      exif_entry_initialize (entry, EXIF_TAG_DATE_TIME);
 ここまでコメントアウト *****/
    }

この状態で、ビルドを行う。なお、file-jpegが生成された時点でCtrl + Cを押してビルドを中止しても構わない。

# ./configure
# make

出来上がった、file-jpeg プラグインを、オリジナルのものに上書きする。

# sudo cp plug-ins/file-jpeg/.libs/file-jpeg /usr/lib/gimp/2.0/plug-ins/

依存ライブラリ等のバージョン不一致エラー

たとえば、次のようなエラーが出た場合

# ./configure
 〜 中略 〜
checking for GEGL... no
configure: error: Package requirements (gegl-0.2 >= 0.2.0) were not met:
 
No package 'gegl-0.2' found
 
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
 
Alternatively, you may set the environment variables GEGL_CFLAGS
and GEGL_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

システムには gegl-0.3 がインストールされていて、そちらを使いたいが、configureスクリプトには gegl-0.2が指定されている。 (バージョンチェックは、次のように行う)

# pkg-config --exists --print-errors "gegl-0.3 >= 0.2.0"

configureファイル自体をシステムに合わせて再作成するのは、次のようにする

# aclocal
# automake
# autoconf

関連記事

GimpのExifデータ上書き