- Inkscape 0.92
- Gtk 2
- App bundle
- Inkscape.dmg
- Xcode
- Intell Mac
- Command Line Tools
- MacPorts
Xcodeはライセンス認証が完了している必要があります。
修正したパッケージ作成スクリプト、パッチの類は以下にあります。
https://www.dropbox.com/sh/a0gjwf0u0ymrkl5/AACTDMZ68Gv_Ew6p2D1bVDkna?dl=0
公式サイトからソースコードをダウンロードし、展開します。
$ tar zxf inkscape-0.92.0.tar.bz2
$ cd inkscape-0.92.0
展開したソースコードの直下にあるInfo.plist.in
を修正しておきます。
$ cp Info.plist.in Info.plist
$ vi Info.plist
バージョン番号を埋め込む箇所に@VERSION@
という箇所があるので、これをビルドするバージョンに置き換え。
-> @VERSION@ to 0.92
CMakeLists.txt
にパッチを当てる。パッチは上記のdropboxのリンクから入手。ファイルがpatches
フォルダにあると仮定しています。
$ patch -p0 < patches/CMakeLists.txt.patch
同じ要領でパッチを当てます。osx-app.sh
は上書きで。
$ cd packaging/macosx/
$ patch -p0 < patches/fix_lp476678.patch
$ cp patches/osx-app.sh osx-dmg.sh
まずは必要なツールなど。
$ sudo port install libiconv wget cmake
下記のコマンドで必要なパッケージを確認できます。
$ port deps inkscape
オプションとして+quartz -x11`を追加してインストールします。
まず基本的なパッケージから。
$ sudo port install pkgconfig autoconf automake libtool intltool perl5.24 +quartz -x11
$ sudo port install cairo pango +quartz -x11
$ sudo port install gdk-pixbuf2 -x11 +quartz
残りのパッケージ。
$ sudo port install desktop-file-utils popt boehmgc gsl gtkmm dbus-glib lcms2 poppler boost ImageMagick libcdr-0.1 libexif libvisio-0.1 libwpg-0.3 aspell gtkspell2 potrace py27-lxml py27-numpy +quartz -x11
Exstentionのために下記のパッケージを追加でインストール(2017/02/12 追記)。
sudo port install py27-lxml
面倒であれば以下のように、一度Inkscapeそのものをインストールすれば勝手に依存パッケージが一式インストールされます。
$ sudo port install inkscape +xquartz
$ sudo port uninstall inkscape
[Option]
もしGNOME VFS を有効にしたいのであれば、追加でgnome-vfsmm
をインストールしてください(任意)。
sudo port install gnome-vfsmm
作業用のフォルダを作成して移動します。テスト用のツールをダウンロードするためのスクリプトを実行しておきます。
$ mkdir build && cd build
$ bash ../download-gtest.sh
ビルドに用いるMakefileを生成するため、CMakeを使用します。 Mountain Lion とそれ以降の場合でオプションを変える必要があるので注意してください。
CXXFLAGS="-std=c++11" CPPFLAGS="-I/opt/local/include" LDFLAGS="-L /opt/local/lib " cmake -D WITH_OPENMP=OFF -D ENABLE_OSX_APP_LOCATIONS=ON -D ICONV_INCLUDE_DIR=/opt/local/include -D ICONV_LIBRARIES=/opt/local/lib/libiconv.dylib -DCMAKE_INSTALL_PREFIX=/opt/local ../
CXXFLAGS="-std=c++98 -stdlib=libstdc++" CPPFLAGS="-I/opt/local/include" LDFLAGS="-L /opt/local/lib " cmake -D WITH_OPENMP=OFF -D ENABLE_OSX_APP_LOCATIONS=ON -D ICONV_INCLUDE_DIR=/opt/local/include -D ICONV_LIBRARIES=/opt/local/lib/libiconv.dylib -DCMAKE_INSTALL_PREFIX=/opt/local ..
$ make -j2
コンパイル作業を行うマシンのコア数に応じて-j
の後ろの数字を変更してください。
一時的にコンパイルしたバイナリを/opt/local/
にインストールします。
$ sudo make install
パッケージ作成スクリプトの仕様上、バイナリの存在するフォルダと、依存パッケージのインストール先のフォルダが同じフォルダの配下に存在する必要があります(一つ上のフォルダが共通であるということ)。
この場合、バイナリが/opt/local/bin
、ライブラリが/opt/local/lib
となり、どちらも/opt/local
配下ということになります。
パッケージ作成スクリプトの存在するフォルダへ移動。
$ cd ../packaging/macos
パッケージ作成スクリプトが必要とするパッケージをインストール。
$ sudo port install gtk-engines2 gtk2-murrine +quartz -x11
$ sudo port install gtk3 gnome-themes-standard +quartz
ビルド時には必要ないのにこのタイミングでインストールを要求されるのは不自然に思います。
gonome-themes-standard
に関しては所定の位置にファイルがあればいいように思います。
アイコンのファイル名を変更するためのツールをインストール。
$ sudo port install icon-naming-utils
パッケージ作成スクリプトを実行します。
$ ./osx-app.sh -s -py /usr/lib/python2.7/ -l "/opt/local" -b /opt/local/bin/inkscape -p ../../Info.plist
作業フォルダにInstall.app
が作成されるのでまずはダブルクリックで起動を確認。
Sierraでビルドした場合は、追加でfix_SierraBuild.patch
パッチを当てる必要があります。
問題がなければ下記のコマンドを実行し、Inkscape.dmg
を作成。
$ ./osx-dmg.sh -p Inkscape.app
Inkscape.dmg
をダブルクリックすると、おなじみのウィンドウが表示されるので、アイコンを右から左にドラッグすると、パッケージがインストールされるはず。
もし表示されるアイコンと背景がずれる場合は何かがおかしいです。
原因は不明ですが、外付けモニタを接続していない状態でコマンドを実行したところ、正常なdmg
になっていました。
一時的にインストールしたバイナリを削除しておく。
$ cd -
$ sudo make uninstall
おしまい。
エクステンションの動作のために
py27-lxml
が追加で必要。エクステンションによってはUniconvertor、sk1libsが必要なので、macOS向けのバイナリを確保する。