Falkon ソースコンパイル 32bit

昨日、導入を試みたブラウザ Falkon ですが、公式ページの手順では 32bit環境に導入できなかったのでリベンジです。

長文になるので、先に結論を記載しておきます。

目次

結論

64bit専用です。

※「ブラウザの32bit・64bit対応状況:Linux編」に追記しました

ソースコンパイル

そうはいっても、コンパイル手順は公開しておくと何かの役に立つかもしれないので、アップしておきます。

環境

コンパイルを試みたPCです。
32bit専用機です。

概要 スペック
NEC notePC VersaPro VY12M/C-3
CPU Celeron M 443, 32bit
MEM 1.5GB
SSD 128GB
OS Lubuntu 16.04.4 LTS x86

インストール

準備

上記、公式ページからダウンロードしたファイルを解凍します。
私は、tmpディレクトリにしました(tmpfsとしてマウントされているので再起動で削除されるので)。

ビルド手順

解凍した直下にインストールマニュアルがあります。

README.md

= Falkon Web Browser =

QtWebEngine web browser.

== Building ==

Falkon uses CMake, to build it run:

mkdir build && cd build
cmake ..
make

ビルド

マニュアル通りに作業を進めます。

$ cd /tmp/falkon-3.0.1
/tmp/falkon-3.0.1$ mkdir build && cd build
/tmp/falkon-3.0.1/build$ cmake ..
プログラム 'cmake' はまだインストールされていません。 次のように入力することでインストールできます:
sudo apt install cmake

あっさり出鼻をくじかれたので素直に cmake を導入します。

/tmp/falkon-3.0.1/build$ sudo apt install cmake

以下の追加パッケージがインストールされます:
  binutils cmake-data gcc gcc-5 libasan2 libatomic1 libc-dev-bin libc6-dev
  libcc1-0 libcilkrts5 libgcc-5-dev libitm1 libjsoncpp1 libmpx0 libubsan0
  linux-libc-dev make manpages-dev
提案パッケージ:
  binutils-doc codeblocks eclipse ninja-build gcc-multilib autoconf automake
  libtool flex bison gdb gcc-doc gcc-5-multilib gcc-5-doc gcc-5-locales
  libgcc1-dbg libgomp1-dbg libitm1-dbg libatomic1-dbg libasan2-dbg
  liblsan0-dbg libtsan0-dbg libubsan0-dbg libcilkrts5-dbg libmpx0-dbg
  libquadmath0-dbg glibc-doc make-doc
以下のパッケージが新たにインストールされます:
  binutils cmake cmake-data gcc gcc-5 libasan2 libatomic1 libc-dev-bin
  libc6-dev libcc1-0 libcilkrts5 libgcc-5-dev libitm1 libjsoncpp1 libmpx0
  libubsan0 linux-libc-dev make manpages-dev
アップグレード: 0 個、新規インストール: 19 個、削除: 0 個、保留: 0 個。

再度、ビルド

$ cmake ..
-- The C compiler identification is GNU 5.4.0
-- The CXX compiler identification is unknown
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
CMake Error at CMakeLists.txt:5 (project):
  No CMAKE_CXX_COMPILER could be found.

  Tell CMake where to find the compiler by setting either the environment
  variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path
  to the compiler, or to the compiler name if it is in the PATH.


-- Configuring incomplete, errors occurred!
See also "/tmp/falkon-3.0.1/build/CMakeFiles/CMakeOutput.log".
See also "/tmp/falkon-3.0.1/build/CMakeFiles/CMakeError.log".

CMAKE_CXX_COMPILER(コンパイラ)のパスが無い、というエラーになりました。
そう言われてみれば、当該ノートPCで開発はしないので開発ツール全般が入っていません...。

開発ツール導入

$ sudo apt-get install build-essential

以下の追加パッケージがインストールされます:
  dpkg-dev fakeroot g++ g++-5 libalgorithm-diff-perl libalgorithm-diff-xs-perl
  libalgorithm-merge-perl libdpkg-perl libfakeroot libfile-fcntllock-perl
  libstdc++-5-dev
提案パッケージ:
  debian-keyring g++-multilib g++-5-multilib gcc-5-doc libstdc++6-5-dbg
  libstdc++-5-doc
以下のパッケージが新たにインストールされます:
  build-essential dpkg-dev fakeroot g++ g++-5 libalgorithm-diff-perl
  libalgorithm-diff-xs-perl libalgorithm-merge-perl libdpkg-perl libfakeroot
  libfile-fcntllock-perl libstdc++-5-dev
アップグレード: 0 個、新規インストール: 12 個、削除: 0 個、保留: 0 個。

再度、ビルド2

$ cmake ..
-- The CXX compiler identification is GNU 5.4.0
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Warning at CMakeLists.txt:9 (find_package):
  Could not find a package configuration file provided by "ECM" (requested
  version 5.27.0) with any of the following names:

    ECMConfig.cmake
    ecm-config.cmake

  Add the installation prefix of "ECM" to CMAKE_PREFIX_PATH or set "ECM_DIR"
  to a directory containing one of the above files.  If "ECM" provides a
  separate development package or SDK, be sure it has been installed.


-- 
 * ECM (required version >= 5.27.0) , Extra CMake Modules. , <https://projects.kde.org/projects/frameworks/extra-cmake-modules>

CMake Error at /usr/share/cmake-3.5/Modules/FeatureSummary.cmake:556 (message):
  feature_summary() Error: REQUIRED package(s) are missing, aborting CMake
  run.
Call Stack (most recent call first):
  CMakeLists.txt:11 (feature_summary)


-- Configuring incomplete, errors occurred!
See also "/tmp/falkon-3.0.1/CMakeFiles/CMakeOutput.log".
See also "/tmp/falkon-3.0.1/CMakeFiles/CMakeError.log".

今度は、ECM が無い、というエラーになりました。
仕方がないので、導入します。

ECM導入

$ sudo apt-get install extra-cmake-modules

提案パッケージ:
  qt5-qmake qtbase5-dev
以下のパッケージが新たにインストールされます:
  extra-cmake-modules
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。

再度、ビルド3

$ cmake ..
-- The C compiler identification is GNU 5.4.0
-- The CXX compiler identification is GNU 5.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Warning at CMakeLists.txt:9 (find_package):
  Could not find a configuration file for package "ECM" that is compatible
  with requested version "5.27.0".

  The following configuration files were considered but not accepted:

    /usr/share/ECM/cmake/ECMConfig.cmake, version: 5.18.0



-- 
 * ECM (required version >= 5.27.0) , Extra CMake Modules. , <https://projects.kde.org/projects/frameworks/extra-cmake-modules>

CMake Error at /usr/share/cmake-3.5/Modules/FeatureSummary.cmake:556 (message):
  feature_summary() Error: REQUIRED package(s) are missing, aborting CMake
  run.
Call Stack (most recent call first):
  CMakeLists.txt:11 (feature_summary)


-- Configuring incomplete, errors occurred!
See also "/tmp/falkon-3.0.1/build/CMakeFiles/CMakeOutput.log".

なんか、ECMのバージョンが古い(5.18.0)と言われてしまいました。
バージョン 5.27.0 以上が必要とのこと。

一応、先ほど導入したECMのバージョンを確認してみます。

/tmp/falkon-3.0.1/build$ dpkg -l | grep extra-cmake-modules
ii  extra-cmake-modules                        5.18.0-0ubuntu1                              i386         Extra modules and scripts for CMake

確かに、5.18.0 です・・・。

ECM導入2

そうはいっても公式の ECM のバージョンは 5.18.0 です。

base on extra-cmake-modules package : Ubuntu

The Xenial Xerus (supported) extra-cmake-modules trunk series
5.18.0-0ubuntu1 release (universe) 2016-04-08

そこで今回は UbuntuUpdates.org を使うことにしました。
バージョン 5.36.0 が公開されています。

base on UbuntuUpdates - Package "extra-cmake-modules" (xenial 16.04)

Name extra-cmake-modules
Description ExtramodulesandscriptsforCMake
Latestversion 5.36.0-0ubuntu1~ubuntu16.04~ppa1
Release xenial(16.04)

debパッケージを取得できるので、ダウンロード後にインストールします。

念のためバージョンを見ると、適用されていることが確認できます。

$ dpkg -l | grep extra-cmake-modules
ii  extra-cmake-modules                        5.36.0-0ubuntu1~ubuntu16.04~ppa1             i386         Extra modules and scripts for CMake

再度、ビルド4

$ cmake ..

CMake Warning at /usr/share/ECM/modules/ECMQueryQmake.cmake:16 (message):
  Should specify a qmake Qt5 binary.  Can't check QT_INSTALL_PREFIX
Call Stack (most recent call first):
  /usr/share/ECM/kde-modules/KDEInstallDirs.cmake:448 (query_qmake)
  CMakeLists.txt:15 (include)


-- Could not set up the appstream test. appstreamcli is missing.
-- Looking for __GLIBC__
-- Looking for __GLIBC__ - found
-- Performing Test _OFFT_IS_64BIT
-- Performing Test _OFFT_IS_64BIT - Failed
-- Performing Test HAVE_DATE_TIME
-- Performing Test HAVE_DATE_TIME - Success
CMake Error at CMakeLists.txt:48 (find_package):
  By not providing "FindQt5.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "Qt5", but
  CMake did not find one.

  Could not find a package configuration file provided by "Qt5" (requested
  version 5.9.0) with any of the following names:

    Qt5Config.cmake
    qt5-config.cmake

  Add the installation prefix of "Qt5" to CMAKE_PREFIX_PATH or set "Qt5_DIR"
  to a directory containing one of the above files.  If "Qt5" provides a
  separate development package or SDK, be sure it has been installed.


-- Configuring incomplete, errors occurred!
See also "/tmp/falkon-3.0.1/build/CMakeFiles/CMakeOutput.log".
See also "/tmp/falkon-3.0.1/build/CMakeFiles/CMakeError.log".

Performing Test _OFFT_IS_64BIT - Failed

意訳すると「64bitの規格適合テストに齟齬があります」みたいな感じでしょうか。

Linuxの32bit環境への導入は敷居が高いです。