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
[ツッコミを入れる]