トップ 最新 追記

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

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