Linux あれこれ

Linux 関連の備忘録です。

「Haiku」にて「Notepadqq」を「2.2.0-beta」にバージョンアップ〈H136-8〉

登録日: 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 での移植の関連情報 :

「レシピファイルについて」

「パッチファイルについて」

「ローカルで差分を作成」

「git で差分を作成」

「.patchset の正式な形式」

-

前回の作業 :

-

今回の作業 :

「レシピファイルに、最終的な成果を反映」

「パッチファイルに、最終的な成果を反映」

「Notepadqq-2.0.0-beta をビルド」

「まとめ へ」

-

「目次詳細 へ」

-

-


--- - --- - --- - --- - --- - --- - --- - --- - --- - --- - --- - -

-

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 する親フォルダをリネームするか、削除して、環境をイチから構築し直します。

個人的には、VirtualBoxHaiku をインストールし直して、構築し直しました。

-

2). 「haikuports」ツリーにて、アプリの場所を確認:

> cd ~/Git/haikuporter/

> haikuporter -o notepadqq
/boot/home/Git/haikuports/app-editors/notepadqq

-

3). 「notepadqq」のインストール関連の情報:

-

「Notepadqq」公式サイト:

GitHub 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 で使えるアプリやライブラリがさらに増えて行くと良いですね。

-

-


-

-

    目次

-

「投稿の先頭 へ」

-

-


-

「この目次 の先頭へ」

「本編の目次 に戻る」

-