試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

Mozilla Firefoxの覚え書き(2009/7/1現在)

ここではバージョンチェックによってFirefox 3.5上で動かなくなった拡張に関してを扱う。ビルド設定や新機能などは「Mozilla Firefoxの覚え書き(2009/6/29現在)」で書いている。
ものによっては近い内に対応版が出る可能性があるが、対処できたものについてはメモしておくことにする。

  1. Moonlight
  2. Tab Mix Plus
  3. Personal Menu
  4. goo辞書

Moonlight

バージョン1.0系はそのままではインストールできないが
www.go-mono.com/moonlight-preview/
にあるバージョン2.0系のプレビュー版はそのままインストールできた。

Tab Mix Plus

tmp.garyr.net/forum/viewtopic.php?t=9864
に対応版がある。

Personal Menu

addons.mozilla.org/ja/firefox/addons/versions/3895
から3.5対応版がインストールできる...と思ったが、実際にはinstall.rdf内の記述が3.5対応でないためにインストールできなかった。*1
以下のシェルスクリプトにより修正作業を自動化する。実行に必要なコマンドは「FirefoxのLink And Forminfo拡張でリンク一覧から項目をダブルクリックしたときにそのURLを開かないようにする」のスクリプトと同様。
[任意]ファイル名: personalmenu-4.1.4-fx3.5-patch.sh

#! /bin/bash

# Personal Menuの対応Firefoxバージョンを3.5系までにした.xpiファイルを生成
# 必要なコマンド: wget,unzip,zip,patch,zenity

ADDON_URL=https://addons.mozilla.org/ja/firefox/downloads/file/48476/personal_menu-4.1.4-fx.xpi
cd /tmp
TEMPDIR=$(mktemp -d ${PATCH_NAME}.XXXXXXXXXXXX)
cd ${TEMPDIR}

die()
{
  zenity --error --text "${1}"
  cd - > /dev/null
  rm ${TEMPDIR} -fr
  exit 1
}

wget -O orig.xpi ${ADDON_URL} || die "Download failed"
unzip orig.xpi || die "unzip failed"
cat <<EOF | sed 's:$:\r:' > patch
diff -ur personalmenu-4.1.4.orig/install.rdf personalmenu-4.1.4/install.rdf
--- personalmenu-4.1.4.orig/install.rdf
+++ personalmenu-4.1.4/install.rdf
@@ -6,7 +6,7 @@
 			<Description>
 			<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
 			<em:minVersion>1.5</em:minVersion>
-			<em:maxVersion>3.2a1pre</em:maxVersion>
+			<em:maxVersion>3.6a1pre</em:maxVersion>
 			</Description>
 		</em:targetApplication>
 
EOF
patch -p1 < patch || die "patch failed"
rm patch orig.xpi
find -print0 | xargs -0 zip -9 out.xpi -@
OUTFILE=$(zenity --file-selection --save --confirm-overwrite --title "Output file" --filename ${HOME}/)
if [ ${?} -eq 0 ]; then
  cp out.xpi ${OUTFILE} || zenity --error --text "copy failed"
  zenity --info
fi
cd - > /dev/null
rm ${TEMPDIR} -fr

スクリプト中の「 | sed 's:$:\r:'」というのは(標準入力のデータに対して)改行コードをLFからCR+LFに変換する処理となる(対象のファイルはCR+LF改行で、catコマンドによりパッチを書き出しただけではLFの改行となるために記述)。

goo辞書

対応バージョンから外れているが、動作に問題はない。以下のシェルスクリプトにより修正作業を自動化する。
[任意]ファイル名: goodic-1.0.3-fx3.5-patch.sh

#! /bin/bash

# goo辞書の対応Firefoxバージョンを3.5系までにした.xpiファイルを生成
# 必要なコマンド: wget,unzip,zip,patch,zenity

ADDON_URL=https://addons.mozilla.org/ja/firefox/downloads/file/49535/goo_dictionary-1.0.3-fx.xpi
cd /tmp
TEMPDIR=$(mktemp -d ${PATCH_NAME}.XXXXXXXXXXXX)
cd ${TEMPDIR}

die()
{
  zenity --error --text "${1}"
  cd - > /dev/null
  rm ${TEMPDIR} -fr
  exit 1
}

wget -O orig.xpi ${ADDON_URL} || die "Download failed"
unzip orig.xpi || die "unzip failed"
cat <<EOF > patch
diff -ur goodic-1.0.3.orig/install.rdf goodic-1.0.3/install.rdf
--- goodic-1.0.3.orig/install.rdf
+++ goodic-1.0.3/install.rdf
@@ -37,7 +37,7 @@
       <!-- Firefox -->
 	  <RDF:Description em:id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"
 	                   em:minVersion="2.0"
-	                   em:maxVersion="3.5b4pre" />
+	                   em:maxVersion="3.6a1pre" />
 	</em:targetApplication>
   </RDF:Description>
 </RDF:RDF>
EOF
patch -p1 < patch || die "patch failed"
rm patch orig.xpi
find -print0 | xargs -0 zip -9 out.xpi -@
OUTFILE=$(zenity --file-selection --save --confirm-overwrite --title "Output file" --filename ${HOME}/)
if [ ${?} -eq 0 ]; then
  cp out.xpi ${OUTFILE} || zenity --error --text "copy failed"
  zenity --info
fi
cd - > /dev/null
rm ${TEMPDIR} -fr

使用したバージョン:

*1:ページ内の記述ではバージョン4.1.3について「1.5 - 3.6a1pre」と書かれているがダメだった