2020年05月10日 Building firefox-76.0.1 on Slackware64-14.2 [長年日記]
_ Building firefox-76.0.1 on Slackware64-14.2
firefox-76.0.1をSlackware64-14.2でビルドした時の記録。
autoconf-2.13(そう、まさに2.13が要求される!)
$ wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.13.tar.gz $ tar xvf autoconf-2.13.tar.gz $ cd autoconf-2.13 $ ./configure --prefix=/usr/local/autoconf-2.13 $ make # make install # cd /usr/local/autoconf-2.13/bin/ && ln -s autoconf autoconf-2.13
以下のツール類をバージョンアップする必要があった。
rust
$ PATH="/home/m-ito/.cargo/bin:/usr/local/autoconf-2.13/bin:${PATH}"; export PATH
$ curl https://sh.rustup.rs -sSf | sh
$ rustup update
cbindgen-0.14.2
$ PATH="/home/m-ito/.cargo/bin:/usr/local/autoconf-2.13/bin:${PATH}"; export PATH
$ wget https://github.com/eqrion/cbindgen/archive/v0.14.2.tar.gz
$ tar xvf cbindgen-0.14.2.tar.gz
$ cd cbindgen-0.14.2
$ cargo install --force cbindgen
node-v12.15.0
$ wget https://nodejs.org/dist/v12.15.0/node-v12.15.0.tar.gz $ tar xvf node-v12.15.0.tar.gz $ cd node-v12.15.0 $ ./configure && make && sudo make install
Python-3.7.4
$ wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tar.xz $ tar xvf Python-3.7.4.tar.xz $ cd Python-3.7.4 $ ./configure --with-threads --enable-ipv6 --enable-shared && make && sudo make install
llvm-8.0.1
必要なファイル類。
- cfe-8.0.1.src.tar.xz
- clang-tools-extra-8.0.1.src.tar.xz
- compiler-rt-8.0.1.src.tar.xz
- llvm-8.0.1.src.tar.xz
- llvm.Slackbuild
# sh llvm.SlackBuild # installpkg /tmp/llvm-8.0.1-x86_64-2.txz
isl-0.18
$ wget -c -np --passive-ftp -r https://slackbuilds.org/repository/14.2/libraries/isl/ # cd slackbuilds.org/repository/14.2/libraries/isl # sh isl.SlackBuild # installpkg /tmp/isl-0.18-x86_64-1_SBo.tgz
gcc-9.3.0
$ wget -c -np --passive-ftp -r https://mirrors.slackware.com/slackware/slackware64-current/source/d/gcc/ # cd mirrors.slackware.com/slackware/slackware64-current/source/d/gcc # sh gcc.SlackBuild # installpkg /tmp/gcc-go-9.3.0-x86_64-2.txz # installpkg /tmp/gcc-objc-9.3.0-x86_64-2.txz # installpkg /tmp/gcc-9.3.0-x86_64-2.txz # installpkg /tmp/gcc-gdc-9.3.0-x86_64-2.txz # installpkg /tmp/gcc-g++-9.3.0-x86_64-2.txz # installpkg /tmp/gcc-gfortran-9.3.0-x86_64-2.txz # installpkg /tmp/gcc-brig-9.3.0-x86_64-2.txz # installpkg /tmp/gcc-gnat-9.3.0-x86_64-2.txz
ようやく、ビルド作業が開始できる。
.mozconfig
firefox-76.0.1のソースディレクトリ直下に作成する。
export LDFLAGS="-latomic" . $topsrcdir/browser/config/mozconfig ac_add_options --enable-optimize ac_add_options --enable-default-toolkit=cairo-gtk3 ac_add_options --disable-debug ac_add_options --disable-tests
ビルドの実行
$ PATH="/home/m-ito/.cargo/bin:/usr/local/autoconf-2.13/bin:${PATH}"; export PATH
$ tar xvf firefox-76.0.1.source.tar.xz
$ cd firefox-76.0.1
$ make clean; nice ./mach build && nice ./mach build package
make cleanが重要! make cleanをしないと、pythonのバージョンがらみの矛盾でビルドに失敗する :P
インストールを実行する
# mkdir /usr/local/firefox-76.0.1 # cd /usr/local/firefox-76.0.1 # tar xvf /home/m-ito/tmp/firefox-76.0.1/obj-x86_64-pc-linux-gnu/dist/firefox-76.0.1.en-US.linux-x86_64.tar.bz2
その他
- about:config -> intl.locale.requested=ja_JP
- export MOZ_DISABLE_CONTENT_SANDBOX=1
- export MOZ_PLUGIN_PATH=/usr/lib64/mozilla/plugins
_ Slackwareシステムを更新するためのシェルスクリプト
update_system.sh
#! /bin/sh
slackpkg -batch=on -default_answer=y update
slackpkg -batch=on -default_answer=y install-new
slackpkg -batch=on -default_answer=y upgrade-all
slackpkg -batch=on -default_answer=y clean-system
echo '=== check .new files start ==='
for i in `locate '*\.new' | egrep 'new$'`
do
org=`echo $i | sed -e 's/\.new$//'`
if [ -r ${org} ]
then
diff -c ${org} $i 2>&1
fi
done
echo '=== check .new files end ==='
[ツッコミを入れる]