Windows向けバイナリ差分取得/パッチ当てツールWinIPSのWine向け自動ダウンロード/ビルド/インストールスクリプトを更新(2012年3月末時点)
「Windows向けバイナリ差分取得/パッチ当てツールWinIPSをWineでビルドして使用するための自動インストールスクリプト」で扱ったWinIPSのバージョンが0.66に上がっているので、以前作成した自動ダウンロード/ビルド/インストールスクリプトを更新したものを貼り付ける。
メモ
ソースへの変更点について
- Wine 1.4
- WinIPS 0.66
- GCC 4.5.3
の時点では、基本的にビルドのエラーを発生させるような問題点はなく、動作上の大きな問題もない。しかし、「オプション」メニューの「常に手前に表示」の「表示」が「侮ヲ」になるのは変わっていないため、これに関する修正のみは入れている。
x86_64版ディストリで32bit向けのビルドを行うための指定
x86_64版ディストリではそのままではビルド段階でエラーが発生するが、ビルドのルールの書かれたファイルを生成するwinemakerの実行時に--wine32(「--win32」ではない)オプションを付けることで32bit(のWine)向けとしてビルドするようになり、その後(以前のスクリプトで行っていたように)CFLAGSを指定したりする必要はない。
$ winemaker --wine32 winips.dsp Winemaker 0.8.1 (中略) Fixing the source files... ./ini.c ./ips.c ./ipslib.c ./myfunc.c ./winips.c ./resource.rc ./ini.h ./ips.h ./ipslib.h ./myfunc.h ./resource.h ./resrc1.h ./strres.h ./winips.h Generating project files.. $ make [オプション...] (正常にビルドが行われる)
スクリプト
[任意]ファイル名: wine-winips-install.sh ライセンス: LGPL-2 (or lator)
#! /bin/sh # download/patch/build/install script for WinIPS 0.66 # version 20120331 # (C) 2010-2012 kakurasan # Licensed under LGPLv2+ # # Requirements: # * Wine (development files) # * wget or curl # * unzip # * desktop-file-utils URL=smblabo.web.fc2.com/files/src/wi066src.zip TEMPDIR=$(mktemp --tmpdir -d install_winips.XXXXXXXX) if [ ${?} -ne 0 ]; then echo "cannot create tempdir" exit 1 fi cd ${TEMPDIR} export WINEPREFIX="${WINEPREFIX:-${HOME}/.wine-winips}" APPDIR="${WINEPREFIX}"/dosdevices/c:/"Program Files"/winips APPDIR_DOS="$(winepath -w "${APPDIR}" | sed 's:\\:\\\\:g')" # fetch if ! wget ${URL}; then if ! curl ${URL}; then exit 1 fi fi echo "a7294ba0de3235601f3814de1d8a160b wi066src.zip" | md5sum -c || exit 1 # extract unzip $(basename ${URL}) || exit 1 # fix japanese text cat <<EOF | base64 -d | zcat | patch -p1 H4sIABKtdk8CA0vJTEtT0C0tUijPzMssKNY10DMz08svykzXL0otzi8tSk7VK0pGlkQW59LV1cWr kUtbWxunZgcHBV1DE1MdcwVtCOXgwKUAAq5+LrwQVoB/QGiAgtLWM/f3rLuroRagqQSVcHJ19/Tj 5dJVgAJfV79QzxBXXwWl/rdNJ/teTPRvOjk1pm+ZhlqIppKOAhx4uvjG+weEePr7xTv6hDtGBvv7 hfgH8HJp4zeIBJOw++DszTP3NdQ80N0PAJTVEFx+AQAA EOF # build info winemaker --wine32 winips.dsp || exit 1 # build make -j $(egrep -c "^processor\s:\s[0-9]+$" /proc/cpuinfo) || exit 1 # set PATH / create wine prefix cat <<EOF > path.reg || exit 1 REGEDIT4 [HKEY_CURRENT_USER\Environment] "PATH"="${APPDIR_DOS}" EOF regedit path.reg || exit 1 # install mkdir -p "${APPDIR}" || exit 1 strip winips.exe.so || exit 1 cp winips.exe.so "${APPDIR}" || exit 1 cp -a *.txt appicon.ico "${APPDIR}" || exit 1 # .desktop mkdir -p ~/.local/share/applications/wine/Programs/ || exit 1 cat <<EOF > ~/.local/share/applications/wine/Programs/winips.desktop || exit 1 [Desktop Entry] Name=WinIPS Comment=Binary diff/patch utility Exec=env WINEPREFIX="${WINEPREFIX}" wine winips.exe.so Type=Application StartupWMClass=Wine Path=${APPDIR} Icon=${APPDIR}/appicon.ico EOF update-desktop-database ~/.local/share/applications || exit 1 # cleanup cd .. rm ${TEMPDIR} -fr
以前のときにも書いたが、アンインストールする場合は
- Wine環境の[ホームディレクトリ]/.wine-winips/以下を消す
- [ホームディレクトリ]/.local/share/applications/wine/Programs/winips.desktopを消す
- コマンド「update-desktop-database ~/.local/share/applications」を実行
の流れで作業を行う。
関連記事:
使用したバージョン:
- Wine 1.4
- WinIPS 0.66
- GCC 4.5.3