登録日: 2022-01-16 更新日: 2022-01-17
Haiku にて、Linux アプリをHaiku に移植するときに使われる環境 「Haikuports」を構築 しました。
前回は、テキストエディタの「Notepadqq-1.4.8-3」を最新?の「2.0.0-beta」にアップしようとトライしましたが、移植されていない依存パッケージがあり、今まで移植待ちしていました。
移植されたので、その続きです。その備忘録になります。
-
-
VirtualBox に「nightly ビルド」の「Haiku R1/beta3」をインストール しました。システムとしては最新です。そこで作業しました。
-
-
使用したPC は「ASUS Chromebox CN60」で、 プロセッサは第4世代の「Intel Celeron 2955U 」です。
-
(注)リンクを戻るときはブラウザの左上の「←」をクリック
-
-
目次
-
Haiku での移植の関連情報 :
-
前回の作業 :
-
今回の作業 :
-
-
-
--- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - -
-
「 Haiku R1/beta3」のデスクトップ
-
「nightly ビルド」のデスクトップ画面:
→「nightly ビルド」は開発版になりますが、更新の回数が多いので不具合が解消されている可能性があります。
-
「nightly ビルド」のアイコン:
→立ち上げデバイス(ボリューム)には「てんとう虫」マークが付きます。
-
日本語環境では不具合がある「Notepadqq-1.4.8」
- エンジンは「Qt5WebKit」が使われています。
→「1.4.8-3」で日本語入力できるようになりました。メニューの日本語化は一部のみで、ヘルプ表示の「閉じる」ボタンが誤表示しています。
-
今回ビルドした「Notepadqq-2.0.0-beta」
- エンジンは「Qt5WebEngine」に変更されました。
→今のところ、重たくて不安定です。エンジンの「Qt5WebEngine」のバージョンアップで改善されるかもしれません。
→メニューも日本語化されて、日本語入力もできます。ヘルプ表示でのボタンの表示も正常です。
画面下のステータスバーのレイアウトが変更されています。
-
-
--- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --
-
現在のシステムのバージョン:
-
2022-01-17 現在:
~> uname -v hrev55787 Jan 16 2022 08:13:07
→「nightly ビルド」は、頻繁に更新されています。
-
時々、デスクトップが表示しきれないことがあるので、
もし、立ち上げで背景色のまま、デスクトップが表示されないときは「ココ 」を参照
-
-
--- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - ---
-
1. 準備作業:
-
1). アプリを移植する環境の構築:
→以前に環境を構築してから時間が経つので、自分の把握していない、いくつかのアプリやライブラリのレシピファイル等が更新されているはずです。
なので、clone する親フォルダをリネームするか、削除して、環境をイチから構築し直します。
個人的には、VirtualBox のHaiku をインストールし直して、構築し直しました。
-
2). 「haikuports」ツリーにて、アプリの場所を確認:
> cd ~/Git/haikuporter/ > haikuporter -o notepadqq /boot/home/Git/haikuports/app-editors/notepadqq
-
3). 「notepadqq」のインストール関連の情報:
-
「Notepadqq」公式サイト:
「Notepadqq」:
Qt アプリ。Windows 版のnotepad++ のLinux 版です。タブ(開いていたファイル)履歴で開けるので、ひと手間減らせます。標準で使えるテーマも多いです。
最新は「2.0.0-beta」です。「1.4.8-3」以降の途中のバージョンはありません。
-
ビルドに必要な依存 (Build dependencies:)
Qt 5.6 or higher qtwebengine5-dev ←(注目: 変更されました) libqt5websockets5-dev libqt5svg5-dev qttools5-dev-tools libuchardet-dev pkg-config
-
実行に必要な依存 (Dependencies:)
Qt 5.6 or higher qtwebengine5 ←(注目: 変更されました) libqt5websockets5 libqt5svg5 coreutils libuchardet
-
4). レシピファイル名を変更:
> cd ~/Git/haikuports/app-editors/notepadqq/ > cp notepadqq-1.4.8.recipe notepadqq-1.4.8.recipe-ORG > mv notepadqq-1.4.8.recipe notepadqq-2.0.0.recipe > ls -1 additional-files notepadqq-1.4.8.recipe-ORG notepadqq-2.0.0.recipe patches work-1.4.8
→「notepadqq-2.0.0-beta.recipe」のファイル名にしたいけど、それにすると「パッケージ化」がうまく動きません。
-
5). パッチファイル名を変更:
> cd ~/Git/haikuports/app-editors/notepadqq/patches/ > cp notepadqq-1.4.8.patchset notepadqq-2.0.0.patchset > ls notepadqq-1.4.8.patchset notepadqq-2.0.0.patchset
→こちらもレシピ名に合わせました。
-
6). 「work-1.4.8」、「work-2.0.0」、および「download」フォルダがあれば削除
> ls -1 ~/Git/haikuports/app-editors/notepadqq/ additional-files notepadqq-1.4.8.recipe-ORG notepadqq-2.0.0.recipe patches
-
-
--- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - ----
-
2. レシピファイルに、前回の成果を反映:
-
1). レシピファイルの修正:
> lpe ~/Git/haikuports/app-editors/notepadqq/notepadqq-2.0.0.recipe
↓ すべて置換:
SUMMARY="Multiplatform Notepad++-like editor" DESCRIPTION="Notepadqq is designed from developers, for developers. With its \ more than 100 supported languages, it is the ideal text editor for your daily \ tasks." HOMEPAGE="http://notepadqq.altervista.org/" COPYRIGHT="2012-2019 Notepadqq Project" LICENSE="GNU LGPL v3" REVISION="1" SOURCE_URI="https://github.com/notepadqq/notepadqq/archive/refs/tags/v$portVersion-beta.tar.gz" CHECKSUM_SHA256="7dba81115438f3f44dc29ef0a81d880f6ca98b888b057247308731a39dce234a" SOURCE_DIR="notepadqq-$portVersion-beta" PATCHES="notepadqq-$portVersion.patchset" ADDITIONAL_FILES="notepadqq.rdef.in" ARCHITECTURES="all !x86_gcc2" SECONDARY_ARCHITECTURES="x86" PROVIDES=" notepadqq$secondaryArchSuffix = $portVersion app:Notepadqq$secondaryArchSuffix = $portVersion " REQUIRES=" haiku$secondaryArchSuffix lib:libGL$secondaryArchSuffix lib:libQt5Core$secondaryArchSuffix lib:libQt5Gui$secondaryArchSuffix lib:libQt5Network$secondaryArchSuffix lib:libQt5PrintSupport$secondaryArchSuffix lib:libQt5Svg$secondaryArchSuffix lib:libqt5webengine$secondaryArchSuffix lib:libqt5webenginewidgets$secondaryArchSuffix lib:libQt5Widgets$secondaryArchSuffix lib:libuchardet$secondaryArchSuffix " BUILD_REQUIRES=" haiku${secondaryArchSuffix}_devel devel:libGL$secondaryArchSuffix devel:libQt5Core$secondaryArchSuffix devel:libQt5Gui$secondaryArchSuffix devel:libQt5Network$secondaryArchSuffix devel:libQt5PrintSupport$secondaryArchSuffix devel:libQt5Svg$secondaryArchSuffix devel:libqt5webengine$secondaryArchSuffix devel:libqt5webenginewidgets$secondaryArchSuffix devel:libQt5Widgets$secondaryArchSuffix devel:libuchardet$secondaryArchSuffix " BUILD_PREREQUIRES=" cmd:find cmd:g++$secondaryArchSuffix cmd:gcc$secondaryArchSuffix cmd:ld$secondaryArchSuffix cmd:lrelease$secondaryArchSuffix >= 5 cmd:make cmd:pkg_config$secondaryArchSuffix cmd:qmake$secondaryArchSuffix >= 5 cmd:which " BUILD() { ./configure --prefix "$appsDir/Notepadqq" make $jobArgs } INSTALL() { mkdir -p $appsDir/Notepadqq/Resources make install mv $appsDir/Notepadqq/lib/notepadqq/notepadqq-bin \ $appsDir/Notepadqq/Notepadqq mv $appsDir/Notepadqq/share/notepadqq/* \ $appsDir/Notepadqq/Resources # Cleanup rm -rf $appsDir/Notepadqq/{bin,share,lib} # Icon local MAJOR="`echo "$portVersion" | cut -d. -f1`" local MIDDLE="`echo "$portVersion" | cut -d. -f2`" local MINOR="`echo "$portVersion" | cut -d. -f3`" sed \ -e "s|@MAJOR@|$MAJOR|" \ -e "s|@MIDDLE@|$MIDDLE|" \ -e "s|@MINOR@|$MINOR|" \ $portDir/additional-files/notepadqq.rdef.in > notepadqq.rdef addResourcesToBinaries notepadqq.rdef $appsDir/Notepadqq/Notepadqq addAppDeskbarSymlink $appsDir/Notepadqq/Notepadqq }
- レシピファイル名を「notepadqq-2.0.0-beta.recipe」のように「-beta」を付けると、うまく認識できませんでした。「.tar.gz」の名前は変えられないので工夫が必要でした。
→重要: ダウンロードされたソースは、Haikuporter のデフォルト設定では、<Port Name>-<Port Version>
という名前のディレクトリに解凍されます。それ以外のディレクトリにする場合は、「SOURCE_DIR=」行にてそのディレクトリ名を指定します。
-
2). 念のため、修正したレシピファイル「notepadqq-2.0.0.recipe」を「patches」にコピーして退避しておきました
-
3). 参考: レシピファイル名は「notepadqq-2.0.0~beta.recipe」のように「~beta」を付けた方が良いみたい
ビルドできたので、プルリクエストを送信したら、レシピファイル名を「notepadqq-2.0.0~beta.recipe」のように「~beta」を付けた方が良いという、アドバイスがありました。
→これは簡単ではありません。
-
実際の値で指定すると、途中まではうまく動きましたが、make のところでエラーで停止:
notepadqq-2.0.0~beta.recipe notepadqq-2.0.0~beta.patchset
REVISION="1" SOURCE_URI="https://github.com/notepadqq/notepadqq/archive/refs/tags/v2.0.0-beta.tar.gz" CHECKSUM_SHA256="7dba81115438f3f44dc29ef0a81d880f6ca98b888b057247308731a39dce234a" SOURCE_DIR="notepadqq-2.0.0-beta" PATCHES="notepadqq-$portVersion.patchset" ADDITIONAL_FILES="notepadqq.rdef.in" :
-
hp notepadqq
: chmod 755 "/packages/notepadqq-2.0.0~beta-1/.self/apps/Notepadqq/bin/notepadqq" : make[1]: Leaving directory '/sources/notepadqq-2.0.0-beta/src/ui-tests' rc: Error! notepadqq.rdef:7 syntax error
7 行目:
"minor = @MINOR@,"
→バージョン番号の定義の部分の修正が必要みたい。難しいですね。
-
他の移植されたアプリで「~beta」が含まれるレシピを参考にしてみました:
「haikuports/haikuports」のGitHub にて、検索窓に「~beta」を入力:
-
参考:
「/home/ubn/Git/haikuports/app-office/fcrm/fcrm-0.2.0~beta.recipe」
: REVISION="1" SOURCE_URI="https://github.com/jgaa/f-crm/archive/v${portVersion/\~beta/-beta}.tar.gz" CHECKSUM_SHA256="ac404cdcf7f5413f744a780299717790397bfc59017cbb043997d66b5af63d10" SOURCE_FILENAME="f-crm-${portVersion/\~beta/-beta}.tar.gz" SOURCE_DIR="f-crm-${portVersion/\~beta/-beta}" ADDITIONAL_FILES="fcrm.rdef.in"
-
修正前:
/home/ubn/Git/haikuports/app-editors/notepadqq/notepadqq-2.0.0.recipe :
: REVISION="1" SOURCE_URI="https://github.com/notepadqq/notepadqq/archive/refs/tags/v$portVersion-beta.tar.gz" CHECKSUM_SHA256="7dba81115438f3f44dc29ef0a81d880f6ca98b888b057247308731a39dce234a" SOURCE_DIR="notepadqq-$portVersion-beta" PATCHES="notepadqq-$portVersion.patchset" ADDITIONAL_FILES="notepadqq.rdef.in"
-
参考にして修正後:
-
ファイル名の修正が伴います:
notepadqq-2.0.0~beta.recipe notepadqq-2.0.0-beta.patchset ←(「~」ではないことに注目)
> lpe ~/Git/haikuports/app-editors/notepadqq/notepadqq-2.0.0~beta.recipe
: REVISION="1" SOURCE_URI="https://github.com/notepadqq/notepadqq/archive/refs/tags/v${portVersion/\~beta/-beta}.tar.gz" CHECKSUM_SHA256="7dba81115438f3f44dc29ef0a81d880f6ca98b888b057247308731a39dce234a" SOURCE_FILENAME="notepadqq-${portVersion/\~beta/-beta}" SOURCE_DIR="notepadqq-${portVersion/\~beta/-beta}" PATCHES="notepadqq-${portVersion/\~beta/-beta}.patchset" ←(パッチファイル名: notepadqq-2.0.0-beta.patchset) ADDITIONAL_FILES="notepadqq.rdef.in"
→文字列操作で、ファイル名の「2.0.0~beta」の「~beta」を「-beta」に入れ替えて「2.0.0-beta」にする操作みたい。
→やはり同じエラーで停止:
rc: Error! notepadqq.rdef:7 syntax error
→原因は他にもありそう。
-
4). エラー原因の調査:
-
レシピファイルの最後の2行をコメント化して、パッケージ化を実行
→エラー無く、うまく最後まで行きました。
-
「addResourcesToBinaries notepadqq.rdef $appsDir/Notepadqq/Notepadqq」の行でエラー:
-
下記のファイルを確認:
> cat ~/Git/haikuports/app-editors/notepadqq/work-2.0.0~beta/sources/notepadqq-2.0.0-beta/notepadqq.rdef
resource app_version { major = 2, middle = 0, minor = 0~beta,
↓
resource app_version { major = 2, middle = 0, minor = 0,
と変更するには、
-
レシピファイルにて、
# Icon local MAJOR="`echo "$portVersion" | cut -d. -f1`" local MIDDLE="`echo "$portVersion" | cut -d. -f2`" local MINOR="`echo "$portVersion" | cut -d. -f3`"
↓ 以下のように修正する必要があります
# Icon local MAJOR="`echo "$portVersion" | cut -d. -f1`" local MIDDLE="`echo "$portVersion" | cut -d. -f2`" local MINOR="`echo "$portVersion" | cut -d. -f3 | cut -d~ -f1`"
-
レシピの最後の2行のコマンドの最初の行にて、エラーを検出したようです:
「addResourcesToBinaries notepadqq.rdef $appsDir/Notepadqq/Notepadqq」
-
notepadqq.rdef に設定された
「2.0.0~beta」にある「0~beta」の部分(7行目)は受け付けられない(シンタックスエラー)ということみたい。 「0」に加工が必要です。それは上記の3行目の行末のパイプ処理で行っています。
-
-
--- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - -----
-
3. レシピファイルに、最終的な成果を反映:
-
- ファイル名が変更されていることに注意:
> lpe ~/Git/haikuports/app-editors/notepadqq/notepadqq-2.0.0~beta.recipe
↓ すべて置換:
SUMMARY="Multiplatform Notepad++-like editor" DESCRIPTION="Notepadqq is designed from developers, for developers. With its \ more than 100 supported languages, it is the ideal text editor for your daily \ tasks." HOMEPAGE="http://notepadqq.altervista.org/" COPYRIGHT="2012-2019 Notepadqq Project" LICENSE="GNU LGPL v3" REVISION="1" SOURCE_URI="https://github.com/notepadqq/notepadqq/archive/refs/tags/v${portVersion/\~beta/-beta}.tar.gz" CHECKSUM_SHA256="7dba81115438f3f44dc29ef0a81d880f6ca98b888b057247308731a39dce234a" SOURCE_FILENAME="notepadqq-${portVersion/\~beta/-beta}.tar.gz" SOURCE_DIR="notepadqq-${portVersion/\~beta/-beta}" PATCHES="notepadqq-${portVersion/\~beta/-beta}.patchset" ADDITIONAL_FILES="notepadqq.rdef.in" ARCHITECTURES="all !x86_gcc2" SECONDARY_ARCHITECTURES="x86" PROVIDES=" notepadqq$secondaryArchSuffix = $portVersion app:Notepadqq$secondaryArchSuffix = $portVersion " REQUIRES=" haiku$secondaryArchSuffix lib:libGL$secondaryArchSuffix lib:libQt5Core$secondaryArchSuffix lib:libQt5Gui$secondaryArchSuffix lib:libQt5Network$secondaryArchSuffix lib:libQt5PrintSupport$secondaryArchSuffix lib:libQt5Svg$secondaryArchSuffix lib:libqt5webengine$secondaryArchSuffix lib:libqt5webenginewidgets$secondaryArchSuffix lib:libQt5Widgets$secondaryArchSuffix lib:libuchardet$secondaryArchSuffix " BUILD_REQUIRES=" haiku${secondaryArchSuffix}_devel devel:libGL$secondaryArchSuffix devel:libQt5Core$secondaryArchSuffix devel:libQt5Gui$secondaryArchSuffix devel:libQt5Network$secondaryArchSuffix devel:libQt5PrintSupport$secondaryArchSuffix devel:libQt5Svg$secondaryArchSuffix devel:libqt5webengine$secondaryArchSuffix devel:libqt5webenginewidgets$secondaryArchSuffix devel:libQt5Widgets$secondaryArchSuffix devel:libuchardet$secondaryArchSuffix " BUILD_PREREQUIRES=" cmd:find cmd:g++$secondaryArchSuffix cmd:gcc$secondaryArchSuffix cmd:ld$secondaryArchSuffix cmd:lrelease$secondaryArchSuffix >= 5 cmd:make cmd:pkg_config$secondaryArchSuffix cmd:qmake$secondaryArchSuffix >= 5 cmd:which " BUILD() { ./configure --prefix "$appsDir/Notepadqq" make $jobArgs } INSTALL() { mkdir -p $appsDir/Notepadqq/Resources make install mv $appsDir/Notepadqq/lib/notepadqq/notepadqq-bin \ $appsDir/Notepadqq/Notepadqq mv $appsDir/Notepadqq/share/notepadqq/* \ $appsDir/Notepadqq/Resources # Cleanup rm -rf $appsDir/Notepadqq/{bin,share,lib} # Icon local MAJOR="`echo "$portVersion" | cut -d. -f1`" local MIDDLE="`echo "$portVersion" | cut -d. -f2`" local MINOR="`echo "$portVersion" | cut -d. -f3 | cut -d~ -f1`" sed \ -e "s|@MAJOR@|$MAJOR|" \ -e "s|@MIDDLE@|$MIDDLE|" \ -e "s|@MINOR@|$MINOR|" \ $portDir/additional-files/notepadqq.rdef.in > notepadqq.rdef addResourcesToBinaries notepadqq.rdef $appsDir/Notepadqq/Notepadqq addAppDeskbarSymlink $appsDir/Notepadqq/Notepadqq }
-
バージョンアップがあり、「-beta.tar.gz」名が「.tar.gz」に変更された場合は、下記のように修正します:
→「SOURCE_URI=」行のアドレスを修正して、「SOURCE_DIR=」行は削除します。
-
-
--- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - ----- -
-
4. パッチファイルに、最終的な成果を反映:
-
パッチファイルの修正:
- ファイル名が変更されていることに注意:
> lpe ~/Git/haikuports/app-editors/notepadqq/patches/notepadqq-2.0.0-beta.patchset
↓ すべて置換:
From f4234e9ab4d6728817a092edbde8f4b8984e902a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zolt=C3=A1n=20Mizsei?= <zmizsei@extrowerk.com> Date: Fri, 23 Aug 2019 13:46:42 +0200 Subject: [PATCH 1/2] Disable root check for haiku diff --git a/src/ui/main.cpp b/src/ui/main.cpp index be427b2..a05fe74 100644 --- a/src/ui/main.cpp +++ b/src/ui/main.cpp @@ -92,6 +92,7 @@ int main(int argc, char *argv[]) return EXIT_SUCCESS; } +#ifndef Q_OS_HAIKU // Check if we're running as root if( getuid() == 0 && !parser->isSet("allow-root") ) { qWarning() << QObject::tr( @@ -100,6 +101,7 @@ int main(int argc, char *argv[]) return EXIT_SUCCESS; } +#endif if (a.attachToOtherInstance()) { return EXIT_SUCCESS; -- 2.30.2 From 0aabf29d20ce274506ffaed3f6039fc46b8a61f1 Mon Sep 17 00:00:00 2001 From: Gerasim Troeglazov <3dEyes@gmail.com> Date: Sat, 24 Aug 2019 11:18:35 +1000 Subject: [PATCH 2/2] Fix resources path diff --git a/src/ui/notepadqq.cpp b/src/ui/notepadqq.cpp index b93c0e4..9fd994c 100644 --- a/src/ui/notepadqq.cpp +++ b/src/ui/notepadqq.cpp @@ -23,6 +23,9 @@ QString Notepadqq::appDataPath(QString fileName) #ifdef Q_OS_MACX QString def = QString("%1/../Resources/"). arg(qApp->applicationDirPath()); +#elif defined(Q_OS_HAIKU) + QString def = QString("%1/Resources/"). + arg(qApp->applicationDirPath()); #else QString def = QString("%1/../appdata/"). arg(qApp->applicationDirPath()); -- 2.30.2
- ソースが修正されており、行番号がズレてパッチファイルのエラーが出るので、パッチを見直しました:
→以前のヘッダー部を残しておくのがミソです。コミット番号とgit バージョン以外(つまり、開発者名)は引き継がれます。
-
- ソースが変更され、行がズレるようだと、再び修正が必要です:
-
- フッター(お尻)にある番号は、使っているPC のgit のバージョン番号です:
git のバージョン:
> git --version git version 2.30.2
-
-
--- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - ----- --
-
5. 参考: 「移植待ち」だった依存パッケージの「qtwebengine_bin」をビルド:
-
「Notepadqq-2.0.0-beta」のビルドは中断していました。これで前進できます。
追記: こちらの作業は不要です。すでにバイナリが準備されています。
-
1). 「qtwebengine」パッケージのport の場所を検索
> cd ~/Git/haikuporter/ ~/Git/haikuporter> haikuporter -o qtwebengine /boot/home/Git/haikuports/dev-python/pyqtwebengine5 /boot/home/Git/haikuports/dev-qt/qtwebengine /boot/home/Git/haikuports/dev-qt/qtwebengine_bin
→複数の移植されたパッケージの登録があります。
-
2). 試しにひとつ、パッケージ化を実行
> cd ~/Git/haikuporter/ ~/Git/haikuporter> hp qtwebengine : Checking if any dependency-infos need to be updated ... Looking for stale dependency-infos ... Warning: skipping qtwebengine-5.15.7, as it is untested on the target architecture. Warning: skipping qtwebengine-5.15.2, as it is untested on the target architecture. Error: No version of qtwebengine can be built
→2つあるレシピファイルともに、アーキテクチャでのテストが出来ていないというエラーが出ています。
-
haikuports のファイル構成を確認:
> cd ~/Git/haikuports/dev-qt/qtwebengine/ > ls -1 download patches qtwebengine_bin-5.15.2.recipe qtwebengine-5.15.2.recipe qtwebengine-5.15.7.recipe work-5.15.2 work-5.15.7
→違うバージョンのレシピファイルが2つあります。
-
パッチを見ると:
> ls -1 patches/ qtwebengine-5.15.2.patchset qtwebengine-5.15.7.patchset
ダウンロードを見ると:
> ls -1 download/ qtwebengine_devel-5.15.2-3-x86_64.hpkg qtwebengine_devel-5.15.2-3-x86_64.hpkg.uri qtwebengine-5.15.2-3-x86_64.hpkg qtwebengine-5.15.2-3-x86_64.hpkg.uri
→パッケージ化の実行にて、2つのファイルがダウンロードされました。
-
3). 別の「qtwebengine_bin」のパッケージで、パッケージ化を実行:
> cd ~/Git/haikuporter/ ~/Git/haikuporter> hp qtwebengine_bin : Checking if any dependency-infos need to be updated ... Looking for stale dependency-infos ... ---------------------------------------------------------------------- dev-qt::qtwebengine_bin-5.15.2 /boot/home/Git/haikuports/dev-qt/qtwebengine/qtwebengine_bin-5.15.2.recipe ---------------------------------------------------------------------- : waiting for build package qtwebengine_bin-5.15.2-4 to be activated waiting for build package qtwebengine_bin_devel-5.15.2-4 to be activated Building ... Collecting files to be packaged ... /packages/qtwebengine_bin_devel-5.15.2-4/.self name qtwebengine_bin version 5.15.2-4 architecture x86_64 summary "Chromium-based rendering library for the Qt5 framework" description "QtWebEngine provides a Web browser engine that integrates Chromium's fast moving web capabilities into Qt." packager "FuRuYa7 <mymail@mydomain.org>" vendor "Haiku Project" licenses { "BSD (3-clause)" "GNU LGPL v2.1" } copyrights { "2015-2020 The Qt Company Ltd." } provides { qtwebengine_bin = 5.15.2 compat >= 5 lib:libqt5pdf = 5.15.2 compat >= 5 lib:libqt5pdfwidgets = 5.15.2 compat >= 5 lib:libqt5webengine = 5.15.2 compat >= 5 lib:libqt5webenginecore = 5.15.2 compat >= 5 lib:libqt5webenginewidgets = 5.15.2 compat >= 5 cmd:qwebengine_convert_dict } requires { haiku >= r1~beta3_hrev55774-1 lib:libavcodec >= 58.54.100 lib:libavformat >= 58.29.100 lib:libavutil >= 56.31.100 lib:libdbus_1 lib:libexecinfo >= 1.1 lib:libexpat >= 1.8.1 lib:libfontconfig >= 1.12.0 lib:libfreetype >= 6.18.0 lib:libgl >= 1.0.0 lib:libjpeg >= 62.3.0 lib:liblcms2 >= 2.0.12 lib:libminizip >= 1.2.11 lib:libnspr4 lib:libnss3 lib:libnssutil3 lib:libopus >= 0.7.0 lib:libplc4 lib:libplds4 lib:libpng16 >= 16.37.0 lib:libqt5core >= 5.15.2 lib:libqt5gui >= 5.15.2 lib:libqt5network >= 5.15.2 lib:libqt5positioning >= 5.15.2 lib:libqt5printsupport >= 5.15.2 lib:libqt5qml >= 5.15.2 lib:libqt5qmlmodels >= 5.15.2 lib:libqt5quick >= 5.15.2 lib:libqt5quickwidgets >= 5.15.2 lib:libqt5webchannel >= 5.15.2 lib:libqt5widgets >= 5.15.2 lib:libsmime3 lib:libsnappy >= 1.1.8 lib:libvpx >= 6.4.0 lib:libwebp >= 7.1.2 lib:libwebpdemux >= 2.0.8 lib:libwebpmux >= 3.0.7 lib:libz >= 1.2.11 } conflicts { qtwebengine } urls { "https://www.qt.io" } source-urls { # Download "https://github.com/threedeyes/qtwebengine-haiku/releases/download/5.15.2-3/qtwebengine-5.15.2-3-x86_64.hpkg#noarchive" # Download "https://github.com/threedeyes/qtwebengine-haiku/releases/download/5.15.2-3/qtwebengine_devel-5.15.2-3-x86_64.hpkg#noarchive" } mimesetting files for package qtwebengine_bin-5.15.2-4-x86_64.hpkg ... creating package qtwebengine_bin-5.15.2-4-x86_64.hpkg ... ----- Package Info ---------------- header size: 80 heap size: 86210758 TOC size: 7360 package attributes size: 1970 total size: 86210838 ----------------------------------- name qtwebengine_bin_devel version 5.15.2-4 architecture x86_64 summary "Chromium-based rendering library for the Qt5 framework (development files)" description "QtWebEngine provides a Web browser engine that integrates Chromium's fast moving web capabilities into Qt." packager "FuRuYa7 <mymail@mydomain.org>" vendor "Haiku Project" licenses { "BSD (3-clause)" "GNU LGPL v2.1" } copyrights { "2015-2020 The Qt Company Ltd." } provides { qtwebengine_bin_devel = 5.15.2 compat >= 5 devel:libqt5pdf = 5.15.2 compat >= 5 devel:libqt5pdfwidgets = 5.15.2 compat >= 5 devel:libqt5webengine = 5.15.2 compat >= 5 devel:libqt5webenginecore = 5.15.2 compat >= 5 devel:libqt5webenginewidgets = 5.15.2 compat >= 5 } requires { haiku >= r1~beta3_hrev55774-1 qtwebengine_bin == 5.15.2 base } conflicts { qtwebengine_devel } urls { "https://www.qt.io" } source-urls { # Download "https://github.com/threedeyes/qtwebengine-haiku/releases/download/5.15.2-3/qtwebengine-5.15.2-3-x86_64.hpkg#noarchive" # Location 2 "https://ports-mirror.haiku-os.org/qtwebengine/qtwebengine-5.15.2-3-x86_64.hpkg#noarchive" # Download "https://github.com/threedeyes/qtwebengine-haiku/releases/download/5.15.2-3/qtwebengine_devel-5.15.2-3-x86_64.hpkg#noarchive" # Location 2 "https://ports-mirror.haiku-os.org/qtwebengine/qtwebengine_devel-5.15.2-3-x86_64.hpkg#noarchive" } mimesetting files for package qtwebengine_bin_devel-5.15.2-4-x86_64.hpkg ... creating package qtwebengine_bin_devel-5.15.2-4-x86_64.hpkg ... ----- Package Info ---------------- header size: 80 heap size: 64245 TOC size: 15875 package attributes size: 1114 total size: 64325 ----------------------------------- waiting for build package qtwebengine_bin-5.15.2-4 to be deactivated waiting for build package qtwebengine_bin_devel-5.15.2-4 to be deactivated grabbing qtwebengine_bin-5.15.2-4-x86_64.hpkg and moving it to /boot/home/Git/haikuports/packages/qtwebengine_bin-5.15.2-4-x86_64.hpkg grabbing qtwebengine_bin_devel-5.15.2-4-x86_64.hpkg and moving it to /boot/home/Git/haikuports/packages/qtwebengine_bin_devel-5.15.2-4-x86_64.hpkg
→「qtwebengine_bin」でパッケージ化に成功しました。今回は2つのパッケージが作成されました。
-
4). 作成されたパッケージを確認:
> ls -1 ~/Git/haikuports/packages/ qtwebengine_bin_devel-5.15.2-4-x86_64.hpkg qtwebengine_bin-5.15.2-4-x86_64.hpkg
→ノーマル版と開発版になるのかな。
-
5). 両方のパッケージをインストール:
> pkgman install ~/Git/haikuports/packages/qtwebengine_bin-5.15.2-4-x86_64.hpkg : [system] Done.
-
> pkgman install ~/Git/haikuports/packages/qtwebengine_bin_devel-5.15.2-4-x86_64.hpkg : [system] Done.
-
6). インストールされたか確認:
> pkgman search qtwebengine Status Name Description -------------------------------------------------------------------------------- falkon A QtWebEngine browser falkon_debuginfo A QtWebEngine browser (debug info) falkon_source A QtWebEngine browser (source files) pyqtwebengine5 Python bindings for the Qt WebEngine framework pyqtwebengine5_python38 Python bindings for the Qt WebEngine framework pyqtwebengine5_source Python bindings for the Qt WebEngine framework S qtwebengine_bin Chromium-based rendering library for the Qt5 fr S qtwebengine_bin_devel Chromium-based rendering library for the Qt5 fr
→ちなみに、「falkon」ブラウザをインストールすると「QtWebEngine」がインストールされます。 ただし、「falkon」はまだ安定していないので使える状態ではありません。
-
-
--- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - ----- ---
-
6. 参考: インストールした「qtwebengine_bin」を削除:
-
追記: 上記の項番 4. を実施していなければ、こちらの作業は不要です。
-
1). 上記の項番 4. を実施後、システム更新すると、下記のパッケージの更新が来ました:
qtwebengine_bin 5.15.2-4 qtwebengine_bin_devel 5.15.2-4
→ということは、公式リポジトリにこれらのバイナリがあるということです。 なので、ビルドの必要はなかったということです。
> pkgman search qtwebengine_bin Status Name Description -------------------------------------------------------------------------------- S qtwebengine_bin Chromium-based rendering library for the Qt5 fram S qtwebengine_bin_devel Chromium-based rendering library for the Qt5 fram
→項番 4. を実施して、パッケージ名に「_bin」が付くということがわかったのが収穫でした。
-
2). HaikuDepot を起動して、「qtweb」で検索すると、
「qtwebengine_bin 5.15.2-4」だけのインストールが確認できました。(_devel も含んだ表示みたい)
-
3). レシピファイルがちゃんと動けば、自動的にインストールされるはずです
-
4). なので、HaikuDepot で「qtwebengine_bin」をアンインストールしました
-
5). まぎらわしいので、下記のファイルは削除しておきました:
> ls -1 /boot/home/Git/haikuports/packages/ qtwebengine_bin_devel-5.15.2-4-x86_64.hpkg qtwebengine_bin-5.15.2-4-x86_64.hpkg
→削除したのは項番 4. のビルドで作成されたパッケージです。
-
-
--- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - ----- ----
-
7. 「Notepadqq-2.0.0-beta」 をビルド:
-
「移植待ち」だった依存パッケージがビルドに成功したので、「Notepadqq」をビルドしてみました。
-
→依存パッケージが自動的にインストールされるか確認するため、依存の「qtwebengine_bin 5.15.2-4」はアンインストールしています。
-
1). レシピファイルの修正の確認:
> cat ~/Git/haikuports/app-editors/notepadqq/notepadqq-2.0.0~beta.recipe
-
2). パッチファイルの修正の確認:
> cat ~/Git/haikuports/app-editors/notepadqq/patches/notepadqq-2.0.0-beta.patchset
-
3). 「download」フォルダと「work-2.0.0」フォルダを削除
-
4). パッケージ化を実行
> cd ~/Git/haikuporter/ > hp notepadqq : waiting for build package notepadqq-2.0.0~beta-1 to be deactivated grabbing notepadqq-2.0.0~beta-1-x86_64.hpkg and moving it to /boot/home/Git/haikuports/packages/notepadqq-2.0.0~beta-1-x86_64.hpkg
→パッケージ化が成功しました。レシピファイルとパッチファイルは正常に動いたみたい。
パッケージ化に成功すると、最後の方にパッケージ名が表示されます。
-
5). 作成されたパッケージを確認:
> ls -1 /boot/home/Git/haikuports/packages/ notepadqq-2.0.0~beta-1-x86_64.hpkg
→今回のビルドで作成されたパッケージです。
-
6). インストール:
> pkgman install ~/Git/haikuports/packages/notepadqq-2.0.0~beta-1-x86_64.hpkg : The following changes will be made: in system: install package qtwebengine_bin-5.15.2-4 from repository HaikuPorts install package notepadqq-2.0.0~beta-1 from local file Continue? [yes/no] (yes) : : [system] Done.
→「notepadqq-2.0.0~beta-1」のインストールにて、依存で「qtwebengine_bin-5.15.2-4」も自動的にインストールされました。
動けばいいと思って、レシピファイル名が「notepadqq-2.0.0」にしていた時は、パッケージ名は「notepadqq-2.0.0-1-x86_64.hpkg」だったと思います。beta 版だということを示すためにも、ひと手間必要だったみたい。
-
7). 動作の確認:
-
起動しました
ヘルプの誤表示が修正されています。
テキストファイルを右クリックしての、ファイルを開いての起動もできました。
日本語入力できます。
ヘルプ表示でのバージョンは「v2.0.0-beta」でした。
-
気になるのは、起動が遅いこと、まだ安定しないこと、最近の更新がないこと
→バージョン番号から「-beta」が取れないのは、この辺りがあるのかも。
また、起動が遅いのは、エンジンの「Qt5WebEngine」のバージョンアップで解消されるかもしれませんね。
-
-
まとめ
前回の「Notepadqq-2.0.0-beta」のビルドは、依存パッケージの「Qt5WebEngine 」が不足しており、Haiku に移植されるまで中断していました。
その後移植され、すんなりとビルドできました。貢献された人たちに感謝です。
-
Haiku で使えるアプリやライブラリがさらに増えて行くと良いですね。
-
-
-
-
目次
-
-
- 目次
- --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - -
- 「 Haiku R1/beta3」のデスクトップ
- --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --
- 現在のシステムのバージョン:
- --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - ---
- 1. 準備作業:
- --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - ----
- 2. レシピファイルに、前回の成果を反映:
- --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - -----
- 3. レシピファイルに、最終的な成果を反映:
- --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - ----- -
- 4. パッチファイルに、最終的な成果を反映:
- --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - ----- --
- 5. 参考: 「移植待ち」だった依存パッケージの「qtwebengine_bin」をビルド:
- --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - ----- ---
- 6. 参考: インストールした「qtwebengine_bin」を削除:
- --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - ----- ----
- 7. 「Notepadqq-2.0.0-beta」 をビルド:
- まとめ
- -
-
-
-