HomebrewにGTK+2用のGlade3を導入する


現状

  • 2018.6.10 現在、Homebrewでインストールされる glade と pygtk は、以下のようにGTK+のバージョンが合わない。
    • glade 3.22.1 GTK+3
    • pygtk 2.24.0 GTK+2
  • Glade2 + PyGTK2 で書かれた過去のソフトウェアをメンテナンスするために…
    • Glade2形式のファイルからGtkBuilderに移行して、Glade3で編集できるようにしたい。
    • コストを考慮してGTK+3への移行はしたくない。

獲得目標

  • HomebrewでGTK+2対応のGlade3を使えるようにする。

方法

  • GladeがGTK+2をターゲットにしていたのはバージョン3.8までなので、gladeのFormulaを参考に3.8系列の最新版(現時点で3.8.6)をインストールできるようにする。

すんなりいかなかった点

  • glade3-3.8.6のコードが、gtk-mac-integrationの最新版の変数名、関数名の変更をフォローしていなかったため、Formula内でinreplaceを用いて改変する必要があった。

できあがったFormula

  • 余計な記述などリファクタリングの余地はあると思われるが、取り敢えず動く。
glade38.rb
class Glade38 < Formula
  desc "RAD tool for the GTK+ and GNOME environment"
  homepage "https://glade.gnome.org/"
  url "http://ftp.gnome.org/pub/GNOME/sources/glade3/3.8/glade3-3.8.6.tar.xz"
  sha256 "aaeeebffaeb3068fb23757a2eede46adeb4c7cecc740feed7654e065491f5449"
  revision 1

  depends_on "pkg-config" => :build
  depends_on "intltool" => :build
  depends_on "itstool" => :build
  depends_on "docbook-xsl" => :build
  depends_on "gobject-introspection" => :build
  depends_on "gettext"
  depends_on "libxml2"
  depends_on "adwaita-icon-theme"
  depends_on "hicolor-icon-theme"
  depends_on "gtk+"
  depends_on "gtk-mac-integration"

  def install
    # Find our docbook catalog
    ENV["XML_CATALOG_FILES"] = "#{etc}/xml/catalog"

    system "./configure", "--disable-debug",
                          "--disable-dependency-tracking",
                          "--prefix=#{prefix}",
                          "--enable-gladeui",
                          "--enable-introspection"

    inreplace "src/glade-window.c" do |s|
      s.gsub! "GtkOSXApplication", "GtkosxApplication"
      s.gsub! "GTK_TYPE_OSX_APPLICATION", "GTKOSX_TYPE_APPLICATION"
      s.gsub! "gtk_osxapplication_", "gtkosx_application_"
    end

    system "make" # separate steps required
    system "make", "install"
  end

  test do
    system "false"
  end
end

簡単に利用するには

  • 私のリポジトリをタップして使うこともできます
Terminal.app
$ brew tap naito/ecell
$ brew install glade38