LoginSignup
0
0

More than 5 years have passed since last update.

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

Posted at

現状

  • 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

簡単に利用するには

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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0