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 ==='
2020年05月23日 Shell script to reboot BUFFALO AirStation NFINITI WHR-G301N [長年日記]
_ reboot_whrg301n.sh - 無線AP(WHRG301N)をリブートするシェルスクリプト
#! /bin/sh trap "rm /tmp/reboot_whrg301n.$$.*.tmp; exit 1" INT TERM whrg301n_ip=_IP_ADDRESS_ user=root password=_PASSWORD_ random=`printf "%10.10d" ${RANDOM}${RANDOM}` wget --http-user=${user} \ --http-password=${password} \ -O /tmp/reboot_whrg301n.$$.1.tmp \ "http://${whrg301n_ip}/cgi-bin/cgi?req=frm&frm=init.html&rand=${random}" 2>/dev/null reboot_url=`cat /tmp/reboot_whrg301n.$$.1.tmp |\ tr '<>' '\n\n' |\ egrep 'method="POST"' |\ head -1 |\ sed -e 's/^.*action="//;s/".*$//'` reboot_url="http://${whrg301n_ip}${reboot_url}" reboot=`cat /tmp/reboot_whrg301n.$$.1.tmp |\ tr '<>' '\n\n' |\ LC_ALL=C egrep reboot |\ sed -e 's/^.*value="//;s/".*$//' |\ od -tx1 |\ egrep '^0000000 ' |\ tr -s ' ' |\ cut -d ' ' -f 2-7 |\ sed -e 's/^/%/;s/ /%/g'` sWebSessionnum=`cat /tmp/reboot_whrg301n.$$.1.tmp |\ tr '<>' '\n\n' |\ egrep 'sWebSessionnum' |\ head -1 |\ sed -e 's/^.*value=//;s/>.*$//'` sWebSessionid=`cat /tmp/reboot_whrg301n.$$.1.tmp |\ tr '<>' '\n\n' |\ egrep 'sWebSessionid' |\ head -1 |\ sed -e 's/^.*value=//;s/>.*$//'` wget --http-user=${user} \ --http-password=${password} \ --post-data="sWebSessionnum=${sWebSessionnum}&sWebSessionid=${sWebSessionid}&reboot=${reboot}" \ -O /dev/null \ "${reboot_url}" 2>/dev/null rm -f /tmp/reboot_whrg301n.$$.*.tmp