トップ «前の日記(2020年02月01日) 最新 次の日記(2020年05月23日)» 編集

Masa's blog

検索キーワード:

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

必要なファイル類。

# 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   ==='