Linux あれこれ

Linux 関連の備忘録です。

「Haiku」にてアプリをバージョンアップ「Notepadqq」編〈H136-3〉

登録日: 2021-10-22 更新日: 2021-10-22

前回、Haiku にて、Linux アプリをHaiku に移植するときに使われる環境 「Haikuports」を構築 しました。

すでに移植されているテキストエディタの「Notepadqq-1.4.8」は日本語環境では不具合のあるバージョンです。「Notepadqq-1.4.8-3」で日本語入力できるようになりましたが、まだヘルプのボタンの誤表示が残っています。翻訳ファイルのせいではないみたい。

最新バージョンである「Notepadqq-2.0.0-beta」へのバージョンアップにトライしてみました。その備忘録です。

-

-

USB メモリに「nightly ビルド」の「Haiku R1/beta3」をインストール しました。システムとしては最新です。そこで作業しました。

-

-

使用したPC は「ASUS Chromebox CN60」で、 プロセッサは第4世代の「Intel Celeron 2955U 」です。

-

(注)リンクを戻るときはブラウザの左上の「←」をクリック

-

-


目次

-

「前回の作業」

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

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

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

「git で差分を作成」

「.patchset の正式な形式」

-

今回の最終的な設定ファイルを表示:

1).「Notepadqq-2.0.0-beta」の レシピファイル:

2).「Notepadqq-2.0.0-beta」の パッチファイル:

「まとめ へ」

-

「目次詳細 へ」

-

-


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

-

Haiku R1/beta3」のデスクトップ

-

「nightly ビルド」のデスクトップ画面:

→「nightly ビルド」は開発版と言えますが、更新の回数が多いので不具合が解消されている可能性があります。

壁紙は個人的に変更しています。

-

「nightly ビルド」のアイコン:

→立ち上げデバイス(ボリューム)には「てんとう虫」マークが付きます。

-

日本語環境では不具合がある「Notepadqq-1.4.8」

→ヘルプ表示のボタンが誤表示しています。日本語入力ができませんでしたが、しばらくして日本語入力できるようになりました。

-

-


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

-

現在のシステムのバージョン:

-

2021-10-22 現在:

~> uname -v
hrev55560 Oct 22 2021 06:04:13

→「nightly ビルド」は、頻繁に更新されています。

-

時々、デスクトップが表示しきれないことがあるので、

もし、立ち上げで背景色のまま、デスクトップが表示されないときは「ココ 」を参照

-

-


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

-

1. 前回までの作業:

-

Linux アプリをHaiku に移植するときに使われる環境を準備:

「Haiku」にてアプリを日本語化する準備〈H136-1〉

-

参考となるアプリの移植例:

「Haiku」にてアプリを日本語化 「Koder」編〈H136-2〉

-

今回はその続きです。

-

-


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

-

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

-


テキストエディタ「notepadqq」:

-

在り処の表示:
> cd ~/Git/haikuporter/

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



> cd ~/Git/haikuports/app-editors/notepadqq/

> ls -1
additional-files
notepadqq-1.4.8.recipe     ←(レシピファイル: 必須)
patches              ←(パッチファイルが置かれてます)
work-1.4.8            ←(作業フォルダ)更新チェックで自動で作られたもの

> ls additional-files
notepadqq.rdef.in

> ls patches
notepadqq-1.4.8.patchset

→「.rdef.in 」が置かれている場所はアプリによってはソースの方にある場合もあります。 今回の場合は、パッケージ化のときに作業フォルダに自動でコピーされます。

-

-


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

-

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

-

公式サイト:

GitHub notepadqq/notepadqq

「Notepadqq」:

  • Windows 版のnotepad++ のLinux 版です。タブ(開いていたファイル)履歴で開けるので、ひと手間減らせます。標準で使えるテーマも多いです。Qt アプリ。

  • 最新は「2.0.0-beta」ですが、最近の更新は少ないみたい。惜しいのは途中のバージョンがないこと。

-

ビルドに必要な依存 (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

-

ソースの入手:
> git clone --recursive https://github.com/notepadqq/notepadqq.git
> cd notepadqq

-

ビルド:
notepadqq> ./configure --prefix /usr
notepadqq> make

-

インストール:
notepadqq> sudo make install

-

tags:
v2.0.0-beta
v1.4.8

-

新しいバージョン「v2.0.0-beta」かを見分けるには、

src/ui/include/notepadqq.h

37行目:

#define POINTVERSION "2.0.0-beta" // major.minor.revision

-

-


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

-

4. Ubuntu 系にて「notepadqq」をインストールした例:

参考:

GaliumOS 3.1 にて、 「Notepadqq」をインストール:

→「GaliumOS 3.1」は、Ubuntu 18.04 ベースの軽量なXfce デスクトップ環境です。

-

1). ビルド手順の確認:

README.md

-

2). 使うツールの確認:

-

git:
$ apt list -a git

-

make:
$ apt list make

-

3). ビルドの依存関係をインストール:

-

Ubuntuの場合:
$ sudo apt install qt5-default qttools5-dev-tools qtwebengine5-dev libqt5websockets5-dev libqt5svg5 libqt5svg5-dev libuchardet-dev pkg-config

-

4). ソースを入手:

~/Git$ git clone --recursive https://github.com/notepadqq/notepadqq.git
~/Git$ cd ~/Git/notepadqq/

~/Git/notepadqq$ ls -a
.               .gitignore          Dockerfile   notepadqq.pro
..              .travis             README.md    snap
.clang-format   .travis.yml         build-tools  src
.git            CODE_OF_CONDUCT.md  configure    support_files
.gitattributes  CONTRIBUTING.md     doc
.github         COPYING             images

-

5). git の状態を確認:

~/Git/notepadqq$ git status
ブランチ master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean

→何も編集(修正)されていない最新の状態。

-

ブランチ一覧を表示:
~/Git/notepadqq$ git branch
* master

-

ローカルに登録されているタグの一覧を表示:
~/Git/notepadqq$ git tag
:
v1.3.6
v1.4.0
v1.4.2
v1.4.4
v1.4.6
:     ←「スペース」キーで続きを表示
v1.4.8
v2.0.0-beta  ←(最新は v2.0.0-beta)
(END)

「q」キーで表示を終了

-

タグの情報を確認:
$ git show v2.0.0-beta

tag v2.0.0-beta
Tagger: Daniele Di Sarli <danieleds0@gmail.com>
Date:   Sat Oct 12 10:49:41 2019 +0200     ←(2019年10月12日(土)10:49:41)

v2.0.0-beta

commit 5317c21678e71687aaab56862339354e1ea07306 (tag: v2.0.0-beta)
Author: Daniele Di Sarli <danieleds0@gmail.com>
Date:   Sat Oct 12 10:49:15 2019 +0200
: 

「q」キーで表示を終了

-

6). ビルド:

~/Git/notepadqq$ ./configure --prefix /usr

checking for QT5 qmake... /usr/bin/qtchooser -run-tool=qmake -qt=5
checking for lrelease... /usr/bin/qtchooser -run-tool=lrelease -qt=5
checking for c++... /usr/bin/c++
checking whether c++ compiler builds test program... ok
checking whether c++ compiler supports -std=c++0x... ok
checking whether compiled test program works... ok
checking for make... /usr/bin/make
checking for pkg-config... /usr/bin/pkg-config
checking for Qt5Core library... -lQt5Core
checking for Qt5Gui library... -lQt5Gui -lQt5Core
checking for Qt5Network library... -lQt5Network -lQt5Core
checking for Qt5WebEngine library... -lQt5WebEngine -lQt5WebEngineCore -lQt5Quick -lQt5Gui -lQt5WebChannel -lQt5Qml -lQt5Network -lQt5Positioning -lQt5Core
checking for Qt5Widgets library... -lQt5Widgets -lQt5Gui -lQt5Core
checking for Qt5WebEngineWidgets library... -lQt5WebEngineWidgets -lQt5WebEngineCore -lQt5WebChannel -lQt5Positioning -lQt5Quick -lQt5Qml -lQt5Network -lQt5PrintSupport -lQt5Widgets -lQt5Gui -lQt5Core
checking for Qt5PrintSupport library... -lQt5PrintSupport -lQt5Widgets -lQt5Gui -lQt5Core
checking for Qt5Svg library... -lQt5Svg -lQt5Widgets -lQt5Gui -lQt5Core
checking for Qt5WebSockets library... -lQt5WebSockets -lQt5Network -lQt5Core
checking for Qt5WebChannel library... -lQt5WebChannel -lQt5Qml -lQt5Network -lQt5Core
checking for uchardet library... -luchardet
generate Makefile... Info: creating stash file /home/ubn/Git/notepadqq/.qmake.stash
done

→最後のメッセージを確認。違うようなら問題あり。

-

確認:
~/Git$ ls -a
.               .github       CODE_OF_CONDUCT.md  README.md    notepadqq.pro
..              .gitignore    CONTRIBUTING.md     build-tools  snap
.clang-format   .qmake.stash  COPYING             configure    src
.git            .travis       Dockerfile          doc          support_files
.gitattributes  .travis.yml   Makefile            images

→「Makefile」と「.qmake.stash」が増えました。

-

7). make:

~/Git/notepadqq$ make
:
make[1]: ディレクトリ '/home/ubn/Git/notepadqq/src/ui-tests' から出ます

→最後のメッセージを確認。違うようなら問題あり。

-

8). インストール:

~/Git/notepadqq$ sudo make install
:
Updating '/home/ubn/Git/notepadqq/src/ui/../translations/notepadqq_ja.qm'...
     447 件のメッセージを翻訳しました(完了 447 件、未完了 0 件)
     5 件の未翻訳のソーステキストを無視しました
:
/usr/lib/qt5/bin/qmake -install qinstall /home/ubn/Git/notepadqq/support_files/icons/hicolor/48x48/apps/notepadqq.png /usr/share/icons/hicolor/48x48/apps/notepadqq.png
:
make[1]: ディレクトリ '/home/ubn/Git/notepadqq/src/ui-tests' から出ます

→最後のメッセージを確認。違うようなら問題あり。

-

確認:
$ whereis notepadqq
notepadqq: /usr/bin/notepadqq /usr/lib/notepadqq /usr/share/notepadqq

$ which notepadqq
/usr/bin/notepadqq

→アプリはインストールされています。

-

$ apt list notepadqq
$ 

→ビルドしてインストールだと、APT では認識されません。 つまり、アンインストールは手動です。

-

$ notepadqq --version
Notepadqq 2.0.0-beta+git

→「Wayland」が使われていないのでエラー が表示されていません。今のところは正常に使えそう。

-

9). 起動:

$ notepadqq

もしくは、

メニュー→開発→「Notepadqq」

-

-


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

-

5. Haiku に移植されている「Notepadqq-1.4.8」の情報:

-

1). 「.rdef.in」ファイル:

> cat ~/Git/haikuports/app-editors/notepadqq/additional-files/notepadqq.rdef.in
resource app_flags B_MULTIPLE_LAUNCH;

resource app_version {
    major  = @MAJOR@,
    middle = @MIDDLE@,
    minor  = @MINOR@,
    variety = B_APPV_FINAL,
    internal = 0,
    short_info = "Programmer editor",
    long_info = "Notepad++-like editor"
};

resource app_signature "application/x-vnd.notepadqq";

resource("QT:QPA_FLAGS") "Q_REF_TO_ARGV|Q_REF_TO_FORK";

resource file_types message {
    "types" = "text/plain",
    "types" = "text/x-source-code",
    "types" = "text",
    "types" = "text/x-makefile",
    "types" = "text/x-rez",
    "types" = "text/x-jamfile",
    "types" = "application/xhtml+xml"
};

resource vector_icon {
    $"6E6369660803010000020006023CC7EE389BC0BA16573E39B04977C842ADC700"
    $"EAB1B1FFDA7676020006023AF85036C922BA16573E39B048FE7441945C00DC65"
    $"65FFAC3C3C020016023CC7EE389BC0BA16573E39B04977C842ADC700FFFFF202"
    $"0016023C96323A4D3FBAFC013D5A974B57A549844D0057FFB502001602BC592F"
    $"BB29A73C0CE4BD0B7C4892C04B796600BEFFFF02001602BC592FBB29A73C0CE4"
    $"BD0B7C4892C04B79660057FFF4040180070607A62B223C49445B5A3E5838583B"
    $"58355A3139250A04223C293F412839250A04293F444B5A3141280606AE0B444B"
    $"4252424E4256445B5A3E5838583B58355A310605E602223C49445B4252425642"
    $"4E444B0A05445D495D603E5A3B5B3F08022540434E0A0A070105000A00010010"
    $"01178400040A010102000A020101000A040103000A050104000A030010011782"
    $"00040A0601061240212037DF1AB7E7B0401C723FA1FE443BFC01178200040A06"
    $"0106123F972B36F2F4B6E6F33F49DF4491BC46B70E01178200040A0601061001"
    $"17820004"
};

-

2). レシピファイル:

> cat ~/Git/haikuports/app-editors/notepadqq/notepadqq-1.4.8.recipe

-

3). パッチファイル:

> cat ~/Git/haikuports/app-editors/notepadqq/patches/notepadqq-1.4.8.patchset
From ad36c58d4ded001703a53e5cb32b1ffda333d9a8 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: Disable root check for haiku


diff --git a/src/ui/main.cpp b/src/ui/main.cpp
index da417af..9a358e6 100644
--- a/src/ui/main.cpp
+++ b/src/ui/main.cpp
@@ -87,6 +87,7 @@ int main(int argc, char *argv[])
     // Check for "run-and-exit" options like -h or -v
     const auto parser = Notepadqq::getCommandLineArgumentsParser(QApplication::arguments());
 
+#ifndef Q_OS_HAIKU
     // Check if we're running as root
     if( getuid() == 0 && !parser->isSet("allow-root") ) {
         qWarning() << QObject::tr(
@@ -95,6 +96,7 @@ int main(int argc, char *argv[])
 
         return EXIT_SUCCESS;
     }
+#endif
 
     if (a.attachToOtherInstance()) {
         return EXIT_SUCCESS;
-- 
2.23.0


From ea2dd9ad34997684e5a76abd4aacfce014762ba7 Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Sat, 24 Aug 2019 11:18:35 +1000
Subject: Fix resources path


diff --git a/src/ui/notepadqq.cpp b/src/ui/notepadqq.cpp
index ae84c27..c017024 100644
--- a/src/ui/notepadqq.cpp
+++ b/src/ui/notepadqq.cpp
@@ -22,6 +22,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.23.0

-

-


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

-

6. レシピファイルの修正:

-


1). 最新バージョンの「v2.0.0-beta」をダウンロードする指定:

https://github.com/notepadqq/notepadqq/archive/refs/tags/v2.0.0-beta.zip

> sha256sum notepadqq-2.0.0-beta.tar.gz
7dba81115438f3f44dc29ef0a81d880f6ca98b888b057247308731a39dce234a  notepadqq-2.0.0-beta.tar.gz

-


2). レシピファイルの名前の変更:

> 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」のファイル名にすると、パッケージ化がうまく動きません。

-


3). レシピファイルの修正:

> lpe ~/Git/haikuports/app-editors/notepadqq/notepadqq-2.0.0.recipe
SOURCE_URI="https://github.com/notepadqq/notepadqq/archive/v$portVersion.tar.gz"
CHECKSUM_SHA256="13fba9abd84c59de27fbe92f74e2763b57588fcf9c88af10ec67313b0abbc9d0"
PATCHES="notepadqq-$portVersion.patchset"
ADDITIONAL_FILES="notepadqq.rdef.in"

↓ 下記に置換:

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」にある「-beta」はうまく認識できませんでした。「.tar.gz」の名前は変えられないので工夫が必要。

→ダウンロードされたソースは、Haikuporter のデフォルト設定である、<Port Name>-<Port Version> という名前のディレクトリに解凍されます。それ以外のディレクトリにする場合は、「SOURCE_DIR=」にてそのディレクトリ名を指定します。

-


4). パッチファイルの名前の変更:

> 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

→こちらもレシピ名に合わせました。

-


5). 「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

-


6). アプリのパッケージ化を実行:

> cd ~/Git/haikuporter/
> hp notepadqq
:
2021-10-19 21:51:45 (1.50 MB/s) - `/boot/home/Git/haikuports/app-editors/notepadqq/download/v2.0.0-beta.tar.gz' へ保存終了 [4516680]
Validating checksum of v2.0.0-beta.tar.gz
Unpacking source of v2.0.0-beta.tar.gz

Initialized empty Git repository in /boot/home/Git/haikuports/app-editors/notepadqq/work-2.0.0/sources/notepadqq-2.0.0-beta/.git/
Applying patchset "/boot/home/Git/haikuports/app-editors/notepadqq/patches/notepadqq-2.0.0.patchset" ...
:
error: sha1 information is lacking or useless (src/ui/main.cpp).
error: could not build fake ancestor
hint: Use 'git am --show-current-patch=diff' to see the failed patch
Command '['git', 'am', '--ignore-whitespace', '-3', '--keep-cr', '/boot/home/Git/haikuports/app-editors/notepadqq/patches/notepadqq-2.0.0.patchset']' returned non-zero exit status 128.

→パッチファイルのエラーです。パッチの見直しが必要です。

-


7). 行番号がズレているので 2つのファイルともに修正しました:

> cd ~/Git/haikuports/app-editors/notepadqq/patches/
> lpe notepadqq-2.0.0.patchset
From ad36c58d4ded001703a53e5cb32b1ffda333d9a8 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: Disable root check for haiku


diff --git a/src/ui/main.cpp b/src/ui/main.cpp
--- a/src/ui/main.cpp   2019-10-12 17:49:15.000000000 +0900
+++ b/src/ui/main.cpp   2021-10-19 22:41:31.068943784 +0900
@@ -92,6 +92,7 @@
         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 @@
 
         return EXIT_SUCCESS;
     }
+#endif
 
     if (a.attachToOtherInstance()) {
         return EXIT_SUCCESS;
-- 
2.23.0


From ea2dd9ad34997684e5a76abd4aacfce014762ba7 Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Sat, 24 Aug 2019 11:18:35 +1000
Subject: Fix resources path


diff --git a/src/ui/notepadqq.cpp b/src/ui/notepadqq.cpp
--- a/src/ui/notepadqq.cpp  2019-10-12 17:49:15.000000000 +0900
+++ b/src/ui/notepadqq.cpp  2021-10-19 22:46:52.152172438 +0900
@@ -23,6 +23,9 @@
 #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.23.0

→以前のヘッダー部を残しておくのがミソです。コミット番号とgit バージョン以外(つまり、開発者名)は引き継がれます。

-


8). レシピファイル「notepadqq-2.0.0.recipe」を「patches」にコピーして退避

-


9). レシピファイル「notepadqq-2.0.0.recipe」の「BUILD()」以降をごっそり削除

→パッケージ作成途中で、「パッチを適用」してから停止させ、その修正された差分を表示できるようにしました。 最後まで行くと、差分表示しづらくなります。

-


10). 「download」フォルダと「work-2.0.0」フォルダを削除

-


11). パッケージ化を実行

> cd ~/Git/haikuporter/
> hp notepadqq

-


12). Haiku のパッチファイルの形式でファイル出力:

  • コミットされていないと作成されません。

  • コミット数の指定が必要です。

-

> cd ~/Git/haikuports/app-editors/notepadqq/work-2.0.0/sources/notepadqq-2.0.0-beta/

> git format-patch -2
0001-Add-translation-file-Japanese-etc.patch
0002-Translation-correction-Japanese.patch

→コミットごとにパッチファイルが作成されます。

-

コミット番号は違いますが、コミットが以前のAuthor 名で残っています:

> cd ~/Git/haikuports/app-editors/notepadqq/work-2.0.0/sources/notepadqq-2.0.0-beta/
> git log
commit 0aabf29d20ce274506ffaed3f6039fc46b8a61f1 (HEAD -> haikuport)
Author: Gerasim Troeglazov <3dEyes@gmail.com>
Date:   Sat Aug 24 11:18:35 2019 +1000

    Fix resources path

commit f4234e9ab4d6728817a092edbde8f4b8984e902a
Author: Zoltán Mizsei <zmizsei@extrowerk.com>
Date:   Fri Aug 23 13:46:42 2019 +0200

    Disable root check for haiku

commit 49e953feebe7ef1c6bc22dd575321ae77e922d7d (tag: ORIGIN)
Author: FuRuYa7 <mymail@mydomain.org>
Date:   Tue Oct 19 23:31:15 2021 +0900

    import

-

コミット番号を合わせるため、パッチファイルを作成し直し:

> cd ~/Git/haikuports/app-editors/notepadqq/work-2.0.0/sources/notepadqq-2.0.0-beta/
> git format-patch -2
0001-Disable-root-check-for-haiku.patch
0002-Fix-resources-path.patch

→コミット番号は一種のチェックサムsha1)とも言えるので、改ざん防止にもなります。

-

2つを合わせて、パッチファイルを修正:

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

---
 src/ui/main.cpp | 2 ++
 1 file changed, 2 insertions(+)

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

---
 src/ui/notepadqq.cpp | 3 +++
 1 file changed, 3 insertions(+)

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

→番号順そのままで、合わせるときに、2行開けるとちょうど良いです。

  • フッター(お尻)にある番号は、使っているgit のバージョン番号です。

-

git のバージョン:
> git --version
git version 2.30.2

-

Subject: にある [PATCH 1/2]、 [PATCH 2/2] の部分を除いた表題が、パッケージ化のパッチ適用のときに、メッセージとして表示されます:

Applying patchset "/boot/home/Git/haikuports/app-editors/notepadqq/patches/notepadqq-2.0.0.patchset" ...
Applying: Disable root check for haiku
Applying: Fix resources path

-

-


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

-

7. 依存パッケージの関連を確認:

-


1). レシピファイルの内容:

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="3"
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:libQt5WebKit$secondaryArchSuffix
    lib:libQt5WebKitWidgets$secondaryArchSuffix
    lib:libQt5Widgets$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:libQt5WebKit$secondaryArchSuffix
    devel:libQt5WebKitWidgets$secondaryArchSuffix
    devel:libQt5Widgets$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
}

-


2). notepadqq のパッケージ化のときのメッセージとエラー

~/Git/haikuporter> hp notepadqq

Checking if any dependency-infos need to be updated ...
Looking for stale dependency-infos ...
----------------------------------------------------------------------
app-editors::notepadqq-2.0.0
        /boot/home/Git/haikuports/app-editors/notepadqq/notepadqq-2.0.0.recipe
----------------------------------------------------------------------

Downloading: https://github.com/notepadqq/notepadqq/archive/refs/tags/v2.0.0-beta.tar.gz ...
--2021-10-20 08:34:36--  https://github.com/notepadqq/notepadqq/archive/refs/tags/v2.0.0-beta.tar.gz
github.com をDNSに問いあわせています... 52.69.186.44
github.com|52.69.186.44|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 302 Found
場所: https://codeload.github.com/notepadqq/notepadqq/tar.gz/refs/tags/v2.0.0-beta [続く]
--2021-10-20 08:34:37--  https://codeload.github.com/notepadqq/notepadqq/tar.gz/refs/tags/v2.0.0-beta
codeload.github.com をDNSに問いあわせています... 13.112.159.149
codeload.github.com|13.112.159.149|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 特定できません [application/x-gzip]
`/boot/home/Git/haikuports/app-editors/notepadqq/download/v2.0.0-beta.tar.gz' に保存中
     0K ........ ........ ........ ........ ........ ........ 1.71M
  3072K ........ ........ ....                                1.81M=2.5s
2021-10-20 08:34:39 (1.74 MB/s) - `/boot/home/Git/haikuports/app-editors/notepadqq/download/v2.0.0-beta.tar.gz' へ保存終了 [4516680]  ←(☆ダウンロード)
Validating checksum of v2.0.0-beta.tar.gz  ←(☆ダウンロードのチェックサム確認)
Unpacking source of v2.0.0-beta.tar.gz  ←(☆ダウンロードの展開)
Initialized empty Git repository in /boot/home/Git/haikuports/app-editors/notepadqq/work-2.0.0/sources/notepadqq-2.0.0-beta/.git/  ←(☆git 環境の構築: フォルダ名に注目)
Applying patchset "/boot/home/Git/haikuports/app-editors/notepadqq/patches/notepadqq-2.0.0.patchset" ...
Applying: Disable root check for haiku  ←(☆パッチの適用: コミット1)
Applying: Fix resources path      ←(☆パッチの適用: コミット2)

chroot has these packages active:  ←(☆ビルド処理中に使えるインストール済みのパッケージ)
        /boot/system/packages/aspell-0.60.8-1-x86_64.hpkg
        /boot/system/packages/assimp-5.0.1-2-x86_64.hpkg

:

        /boot/system/packages/xz_utils-5.2.5-1-x86_64.hpkg
        /boot/system/packages/zlib-1.2.11-4-x86_64.hpkg
        /boot/system/packages/zstd-1.5.0-2-x86_64.hpkg
----- Package Info ----------------
header size:                     80
heap size:                      858
TOC size:                        41
package attributes size:       1066
total size:                     938
-----------------------------------
waiting for build package notepadqq-2.0.0-3 to be activated
Building ...              ←(☆ビルドに必要なパッケージの確認)
checking for QT5 qmake... /bin/qmake
checking for lrelease... /bin/lrelease
checking for c++... /bin/c++
checking whether c++ compiler builds test program... ok
checking whether c++ compiler supports -std=c++0x... ok
checking whether compiled test program works... ok
checking for make... /bin/make
checking for pkg-config... /bin/pkg-config
checking for Qt5Core library... -L/packages/qt5-5.15.2-6/.self/develop/lib -lQt5Core
checking for Qt5Gui library... -L/packages/qt5-5.15.2-6/.self/develop/lib -lQt5Gui -lQt5Core
checking for Qt5Network library... -L/packages/qt5-5.15.2-6/.self/develop/lib -lQt5Network -lQt5Core

checking for Qt5WebEngine library... not found!   ←(★依存なし1)
checking for Qt5Widgets library... -L/packages/qt5-5.15.2-6/.self/develop/lib -lQt5Widgets -lQt5Gui -lQt5Core

checking for Qt5WebEngineWidgets library... not found!  ←(★依存なし2)
checking for Qt5PrintSupport library... -L/packages/qt5-5.15.2-6/.self/develop/lib -lQt5PrintSupport -lQt5Widgets -lQt5Gui -lQt5Core
checking for Qt5Svg library... -L/packages/qt5-5.15.2-6/.self/develop/lib -lQt5Svg -lQt5Widgets -lQt5Gui -lQt5Core
checking for Qt5WebSockets library... -L/packages/qt5-5.15.2-6/.self/develop/lib -lQt5WebSockets -lQt5Network -lQt5Core
checking for Qt5WebChannel library... -L/packages/qt5-5.15.2-6/.self/develop/lib -lQt5WebChannel -lQt5Qml -lQt5Network -lQt5Core

checking for uchardet library... not found!  ←(★依存なし3)
generate Makefile... Info: creating stash file /sources/notepadqq-2.0.0-beta/.qmake.stash
done
cd src/ui-tests/ && ( test -e Makefile || /bin/qmake -o Makefile /sources/notepadqq-2.0.0-beta/src/ui-tests/ui-tests.pro PREFIX=/packages/notepadqq-2.0.0-3/.self/apps/Notepadqq QMAKE_CXX=c++ 'QMAKE_CXXFLAGS= ' QMAKE_LFLAGS= LRELEASE=/bin/lrelease CONFIG+= ) && make -f Makefile 
cd src/ui/ && ( test -e Makefile || /bin/qmake -o Makefile /sources/notepadqq-2.0.0-beta/src/ui/ui.pro PREFIX=/packages/notepadqq-2.0.0-3/.self/apps/Notepadqq QMAKE_CXX=c++ 'QMAKE_CXXFLAGS= ' QMAKE_LFLAGS= LRELEASE=/bin/lrelease CONFIG+= ) && make -f Makefile 
Project MESSAGE: Release build

Project ERROR: Unknown module(s) in QT: webenginewidgets  ←(★エラー2)
Makefile:72: recipe for target 'sub-src-ui-tests-make_first' failed
make: *** [sub-src-ui-tests-make_first] Error 3
make: *** Waiting for unfinished jobs....

WARNING: Project ERROR: Unknown module(s) in QT: webenginewidgets  ←(★エラー2)

Updating '/sources/notepadqq-2.0.0-beta/src/ui/../translations/notepadqq_de.qm'...
    Generated 453 translation(s) (453 finished and 0 unfinished)  ←(☆翻訳ファイルの変換)
:
    Generated 359 translation(s) (359 finished and 0 unfinished)
Updating '/sources/notepadqq-2.0.0-beta/src/ui/../translations/notepadqq_uk.qm'...
    Generated 453 translation(s) (453 finished and 0 unfinished)
Updating '/sources/notepadqq-2.0.0-beta/src/ui/../translations/notepadqq_zh.qm'...
    Generated 448 translation(s) (448 finished and 0 unfinished)

Project ERROR: uchardet development package not found  ←(★エラー3)一番目に付くエラー
Makefile:47: recipe for target 'sub-src-ui-make_first' failed
make: *** [sub-src-ui-make_first] Error 3
Warning: Command '['bash', '-c', '. /wrapper-script']' returned non-zero exit status 2.
Error: Build has failed - stopping.

→最終的なエラーしか目に付きませんが、 それよりも前の段階の「ビルドに必要なパッケージの確認」( ./configure --prefix /usr ) でエラーしています。

-


3). 3つの依存パッケージが不足:

1. checking for Qt5WebEngine library... not found! 
2. checking for Qt5WebEngineWidgets library... not found!
3. checking for uchardet library... not found!

→上2つは「Qt5WebEngine」のインストールで解決しそうですが、移植されてません。

-


4). 3番めの「uchardet」はインストールできました:

~> pkgman install uchardet_devel

~> pkgman search uchardet
Status  Name             Description                                                         
---------------------------------------------------------------------------------------------
S       uchardet         An encoding detector library ported from Mozilla                    
S       uchardet_devel   An encoding detector library ported from Mozilla (development files)
        uchardet_source  An encoding detector library ported from Mozilla (source files)     

→「uchardet」と「uchardet_devel」の2つがインストールされました。

-


5). 3番めは、レシピファイルに追加が必要でした:

> lpe ~/Git/haikuports/app-editors/notepadqq/notepadqq-2.0.0.recipe
REQUIRES="
    haiku$secondaryArchSuffix
    lib:libGL$secondaryArchSuffix
    lib:libQt5Core$secondaryArchSuffix
    lib:libQt5Gui$secondaryArchSuffix
    lib:libQt5Network$secondaryArchSuffix
    lib:libQt5PrintSupport$secondaryArchSuffix
    lib:libQt5Svg$secondaryArchSuffix
    lib:libQt5WebKit$secondaryArchSuffix
    lib:libQt5WebKitWidgets$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:libQt5WebKit$secondaryArchSuffix
    devel:libQt5WebKitWidgets$secondaryArchSuffix
    devel:libQt5Widgets$secondaryArchSuffix
    devel:libuchardet$secondaryArchSuffix  ←(追加)
    "

-


6). パッケージ化を実行したときに表示されるメッセージ:

:
checking for uchardet library... -L/packages/uchardet-0.0.7-1/.self/develop/lib -luchardet
→依存パッケージが認識されました

-


7). レシピファイルに登録した依存パッケージが、自動でインストールされるのかを確認:

→1回目で依存パッケージがインストールされますがエラーで停止します。そのまま再度バッケージ化を実行すればうまく行きます。1度で実行できないのは惜しいところ。 ただし、パッケージが存在しない(移植されていない)とエラーで停止します。

-

(1). アンインストール:
~> pkgman uninstall uchardet_devel uchardet

~> pkgman search uchardet
Status  Name             Description                                            
--------------------------------------------------------------------------------
        uchardet         An encoding detector library ported from Mozilla       
        uchardet_devel   An encoding detector library ported from Mozilla (devel
        uchardet_source  An encoding detector library ported from Mozilla (sourc

-

(2). 「download」フォルダと「work-2.0.0」フォルダを削除

-

(3). パッケージ化を実行
> cd ~/Git/haikuporter/
> hp notepadqq
:
Applying: Disable root check for haiku
Applying: Fix resources path
Fetching package for devel:libuchardet ...
'NoneType' object has no attribute 'packageInfo'

→パッチファイルの適用後に、「libuchardet」を読み込もうとしてエラーして、パッケージ化が停止しました。

たぶん、「libuchardet」がインストールされていないからだろうと思われます:

> ls /boot/home/Git/haikuports/repository/libuchardet*
ls: cannot access '/boot/home/Git/haikuports/repository/libuchardet*': No such file or directory

-

(4). エラーで停止したけど、「libuchardet」がインストールされたかの確認:
> pkgman search uchardet
Status  Name             Description                                                         
---------------------------------------------------------------------------------------------
S       uchardet         An encoding detector library ported from Mozilla                    
S       uchardet_devel   An encoding detector library ported from Mozilla (development files)
        uchardet_source  An encoding detector library ported from Mozilla (source files)     

→インストールされました。

-

(5). そのままパッケージ化を実行

作業フォルダを削除していないのがポイント:

> cd ~/Git/haikuporter/
> hp notepadqq
:
checking for uchardet library... -L/packages/uchardet-0.0.7-1/.self/develop/lib -luchardet
:

→目的の「uchardet」は認識されました。当然ながら、パッケージ化は完了しません。

-

ライブラリの確認:
> ls -1 /boot/system/develop/lib/libuchardet*
/boot/system/develop/lib/libuchardet.so
/boot/system/develop/lib/libuchardet.so.0
/boot/system/develop/lib/libuchardet.so.0.0.7

> ls -1 /boot/system/lib/libuchardet*
/boot/system/lib/libuchardet.so.0
/boot/system/lib/libuchardet.so.0.0.7

> ls -l /boot/system/lib/libuchardet*
lr-xr-xr-x 1 user root     20 1月  23  2021 /boot/system/lib/libuchardet.so.0 -> libuchardet.so.0.0.7
-r-xr-xr-x 1 user root 222840 1月  23  2021 /boot/system/lib/libuchardet.so.0.0.7

→レシピファイルにある定義行はこれを表しているのかも。

-


8). 残りの2つの依存は「Qt5WebEngine」がインストールできれば解決できそうですが、移植されてません

工数が大きすぎるので「Notepadqq-2.0.0-beta」へのバージョンアップは断念しました。

もし、「Qt5WebEngine」が移植されてインストールできるようになったときは、項番 5) と同じようにレシピファイルへの追加が必要です。

たぶん、

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  ←(追加済)
    "

-


9). 参考: もし、パッケージ化できて、インストールしたいときは、

-

(1). パッケージ化に成功すると、最後にパッケージ名が表示されます:
~/Git/haikuporter> hp koder
:
grabbing notepadqq-2.0.0-3-x86_64.hpkg and moving it to /boot/home/Git/haikuports/packages/notepadqq-2.0.0-3-x86_64.hpkg

-

(2). 確認:
> ls -1 ~/Git/haikuports/packages/
notepadqq-2.0.0-3-x86_64.hpkg  ←(追加)

-

(3). インストール:
> pkgman install ~/Git/haikuports/packages/notepadqq-2.0.0-3-x86_64.hpkg

→システム更新のタイミングで、メニューからの起動は、正規のアプリに上書きされるので注意。でも、右クリックで場所をホームに指定すれば起動は可能。

-

-


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

-

8. 最終的な「Notepadqq-2.0.0-beta」? の設定ファイルを表示:

-

1). レシピファイル:

> cat ~/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="3"
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
}

→依存関連がまだ解決していません。

  • 「qt5webengine」パッケージが移植されて、インストールできたときの修正です。

  • 「-beta.tar.gz」名が「.tar.gz」に変更になったら 2箇所の修正が必要です。

→「SOURCE_URI=」行は修正。「SOURCE_DIR=」行は削除。

-

2). パッチファイル:

~> cat ~/Git/haikuports/app-editors/notepadqq/patches/notepadqq-2.0.0.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

---
 src/ui/main.cpp | 2 ++
 1 file changed, 2 insertions(+)

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

---
 src/ui/notepadqq.cpp | 3 +++
 1 file changed, 3 insertions(+)

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

→ソースが変更され、行がズレるようだと、再び修正が必要です。

-

-


まとめ

今回は、すでに移植されている「Notepadqq-1.4.8」を「Notepadqq-2.0.0-beta」にアップできるかトライしました。

まずは、アプリ名に「-beta」と付いているところが曲者でした。もしかしたら「.0beta」や「_beta」だったら楽だったかも。こういうアプリ名は多そうです。

-

順調でしたが、いくつかの依存パッケージの不足で、ビルド時にエラーします。 想定内でしたが、問題なのは移植されていない「Qt5WebEngine 」が足りないこと。

-

Ubuntu 系の「GaliumOS 3.1」にて、「Notepadqq-2.0.0-beta」をインストールしたときは、依存のパッケージは apt コマンドで簡単にインストールできました。なので、このパッケージの依存は、あまり気にしていませんでした。

調べると「Qt5WebEngine」は依存が多く、ソースからビルドするだけでも大変そうです。

参考: QtWebEngine/How to Try

Haiku にこれまで移植されていなかった理由です。なので、残念ですが「断念」しました。 その他にも、これに依存しているQt アプリがあるかもしれませんね。

-

移植されているアプリで、バージョンが低いままのアプリが多いのは、レシピやパッチの修正が必要なこともですが、 「依存するパッケージが移植されていない」ケースもありそうです。勉強になりました。

-

やってみないとわからないし、勉強になることも多いので、これからもトライします。

-

-


-

-

    目次

-

「投稿の先頭 へ」

-

-


-

「この目次 の先頭へ」

「本編の目次 に戻る」

-

「Haiku」にてアプリを日本語化 「Koder」編〈H136-2〉

登録日: 2021-10-19 更新日: 2021-10-19

前回、Haiku にて、Linux アプリをHaiku に移植するときに使われる環境 「Haikuports」を構築 しました。

今回は、その環境でHaiku 専用のテキストエディタである「Koder-0.5.3」の日本語化にトライしました。 その備忘録です。

-

「Koder-0.5.3」のメニューは英語ですが、ヘルプには日本語の貢献者の表示がありました。 変だと思い、ports ツリーを見ると日本語の翻訳ファイルがあります。でも日本語は表示されてません。

日本語のメニューが表示されるように、色々と調べました。

-

追記: 当記事の編集中に「Koder」のバージョンアップがあり、日本語化されました。

本投稿は、以前のバージョンの「Koder-0.5.3」の日本語化についてです。新しいバージョンなら、本作業をしなくても日本語化されています。ただし、本作業を通じて、Haiku 専用アプリでの日本語化や、git での差分の出し方など、色々と勉強になりました。備忘録を兼ねての投稿です。

-

-

USB メモリに「nightly ビルド」の「Haiku R1/beta3」をインストール しました。システムとしては最新です。そこで作業しました。

-

-

使用したPC は「ASUS Chromebox CN60」で、 プロセッサは第4世代の「Intel Celeron 2955U 」です。

-

(注)リンクを戻るときはブラウザの左上の「←」をクリック

-

-


目次

-

「前回の作業」

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

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

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

「git で差分を作成」

「.patchset の正式な形式」

「Koder-0.5.3 の日本語化」

「まとめ へ」

-

「目次詳細 へ」

-

-


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

-

Haiku R1/beta3」のデスクトップ

-

「nightly ビルド」のデスクトップ画面:

→「nightly ビルド」は開発版と言えますが、更新の回数が多いので不具合が解消されている可能性があります。

-

「nightly ビルド」のアイコン:

→立ち上げデバイス(ボリューム)には「てんとう虫」マークが付きます。

-

日本語化した「Koder」アプリ:

→「Koder」はテキストエディタです。Haiku 専用のアプリに付き、日本語入力時にインライン変換ができます。 StyledEdit を除くと、Haiku で日本語入力時にインライン変換ができるテキストエディタは、これくらいです。

メニューは英語表示でしたが、日本語化(というか日本語化されるように修正)しました。 その後のバージョンアップで正規に日本語化されました。

-

「Koder」のテーマをダーク系に変更:

→テーマを選べるのも利点です。Haiku だとライト系が合うみたい。

-

「Koder」の日本語化に使ったファイル群:

Haiku でフォルダを開くとこのようになります。 フォルダ別に開いた位置を覚えているので、見やすい位置に調整すれば、使い込むほど開きやすくなります。

-

ちなみに、Window キーを押しながら、フォルダを開くと、以前のフォルダを閉じることができます。

-

-


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

-

現在のシステムのバージョン:

-

2021-10-17 現在:

~> uname -v
hrev55507 Oct 13 2021 07:33:22

→「nightly ビルド」は、頻繁に更新されています。

-

時々、デスクトップが表示しきれないことがあるので、

もし、立ち上げで背景色のまま、デスクトップが表示されないときは「ココ 」を参照

-

-


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

-

1. 前回までの作業:

-

Linux アプリをHaiku に移植するときに使われる環境を準備:

前回の作業

-

今回はその続きです。

-

-


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

-

2.「haikuports」ツリーにて、Haiku 専用に作られたアプリを確認:

-


例: テキストエディタ「koder」:

-

在り処の表示:
~/Git/haikuporter> haikuporter -o koder
/boot/home/Git/haikuports/haiku-apps/koder

> cd /boot/home/Git/haikuports/haiku-apps/koder/
> ls -1
koder-0.5.3.recipe        ←(レシピファイル: 必須)
work-0.5.3             ←(作業フォルダ)更新チェックで自動で作られたもの

→アプリによりますが、「.rdef.in 」はソースの方に準備されていました。

-

→移植されたアプリだけでなく、Haiku 専用のアプリも確認や修正ができることに感謝。

-

-


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

-

3. レシピファイルについて

-

レシピファイルはソースファイルをビルドして、パッケージ化するためのスクリプト

Linux のアプリをHaiku に移植するときに使われる、アプリのパッケージ化を自動で行うための指示書と言えます。

Arch Linux のAUR で使われる「PKGBUILD 」ファイルと似たようなものと言えば、ピンとくる方もいると思います。

移植に成功すれば、そのレシピやパッチをアップして共有できます。アプリのバージョンごとに依存しているパッケージなどは違うので、アプリのバージョンが変われば、それに合わせて修正が必要です。

-

  • 流れとしては、GitHub の「haikuports/haikuports 」に置かれているレシピファイルが、ツリーごと、こちらのローカルのフォルダにダウンロードされます。

  • アプリのパッケージ化のコマンドを投入すると、そのレシピファイルに従って、アプリごとの作業フォルダに、ローカルのリポジトリ(git 環境)が作成され、パッチの適用、ビルド、リンク、パッケージ化が行われます。

  • 後は、ローカルにあるパッケージとして、インストールが可能です。

→パッケージ化したとしても、インストールする、しないは自由です。パッケージをダウンロードした状態と同じと言えます。なのでテキストエディタとして「koder」を使いながら作業ができます。

-

レシピの作成で指摘されやすい項目:

レシピファイルを記述するときのルールがあります。

-

参考:

レシピのガイドライン

HaikuPorts のレシピを書くときの注意点

-

-


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

-

4. パッチファイルについて

-

同じアプリでも、OS が変わると、ソースやMakefile 等の修正が必要になる場合があります。

他のディストリビューションと共通な場合は、本家のアプリの方にプルリクエスト(改善案の組み込み依頼)することを優先すべきです。それが採用(マージ)されれば、ソースが対応して余計なバッチファイルは要らなくなります。

ただし、中にはパッチファイルを使わないとうまく動かないアプリもあり得ます。

-

また、別の使い方としては、個人で使う範囲で、アプリのカスタマイズができます。

-

-


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

-

5. Haiku の「ソースファイルの記述」のルール:

-

  • パッチファイルを作るときの元になる、ソースの修正で使う、記述のしかたです。

-

参考:

コーディングガイドライン

-

ソースコードの記述のしかた(抜粋):
- タブを使用してブロックをインデントします。
- 1行の列数は100を超えてはなりません。     ←(別の記述では「70」)
- 長すぎる行を折り返す場合は、折り返した部分に少なくとも1つのタブを追加し、式レベルごとに1つのタブを追加します(たとえば、括弧のある複雑な条件では、各括弧レベルはさらに1タブインデントされます)。
- 名前空間の関数/クラスはインデントされません。
- 演算子は常に両側にスペースを入れて区切り、コンマの後にスペースを使います。
- 関数間、インクルードブロックと定義ブロックの間、および定義と変数または関数定義の間に、正確に2行の空白行を配置します。
- 行末のスペースは削除します。
- すべてのファイルの終わりに改行を含めます。

-

-


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

-

6. 参考: ローカルで差分を作成するには:

-

  • git の環境にないときに使えるやり方です。

-

差分を表示させるには、git の基準となる(.git が存在する)であろうフォルダにて、「a」と「b」のフォルダを作成し、実際のファイルを置きます。サブフォルダもソースに合わせて作っておくと、修正が要りません。

> cat a/test.txt
123
456
789

> cat b/test.txt
123
456
abc
def
789

-

差分の表示:
> diff -Naur a b
diff -Naur a/test.txt b/test.txt
--- a/test.txt  2021-10-18 07:49:40.291999403 +0900
+++ b/test.txt  2021-10-18 07:50:45.908725000 +0900
@@ -1,4 +1,6 @@
 123
 456
+abc
+def
 789

→フォルダだけの指定でOK 。「-u」で差分をunified 形式にして、git の表示と合わせています。

-

プルリクエストに使うなら、patchset に追加した差分コマンドの行を書き換え:
diff -Naur a/testf.txt b/testf.txt

↓ git での表示に合わせます(コメント行なのでパッチの動作に影響しません)

diff --git a/testf.txt b/testf.txt

→上記のように修正したとしても、Haiku の場合は、付加すべきヘッダー部に「コミット番号」が必要なので二度手間になります。ただし、他のディストリビューションのパッチに使うには便利です。

-

-


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

-

7. git で差分を表示できるようにします:

-

  • 「git」コマンドを使うには、「git」の環境が必要です。

→「Haikuports」に置かれたアプリを「git」の環境にするには、一度アプリのパッケージを作成する必要があります。 そのときに自動で作られます。

-

ただし、アプリのパッケージの作成の完了まで行うと、ビルド等が走ってコミットだらけで、ごちゃつきます。そのまま使い、コミットを追加して、そこで「-2」とか「--author="name"」 とか抽出しても使えますが、

今回は「git」の状態の変化を見たいので、レシピファイルを修正して、ビルド寸前で停止させました。

-


1). 作業フォルダのgit の環境にて、ファイルが修正されていない初期の状態を確認:

→それには、レシピファイルを修正して、パッチを適用せずに、ビルド寸前で停止させます。

-

(1). レシピファイルのパッチファイルの定義の行を削除、「BUILD()」の行以下をすべて削除。

-

日本語化する以前のバージョンのレシピ koder-0.5.3.recipe を使用:
> cd ~/Git/haikuports/haiku-apps/koder/
> ls -1
download
koder-0.5.3.recipe
patches
work-0.5.3

→もし、「koder-0.5.4.recipe」があったら「koder-0.5.4.recipe-ORG」に名前を変更しておきます。

-

> lpe koder-0.5.3.recipe

↓ 「$portVersion」を直に指定して「"0.5.3"」に変更した状態です:

SUMMARY="A code editor"
DESCRIPTION="Koder is a code editor for Haiku based on Scintilla editing \
component. It supports syntax highlighting for several programming languages \
and additional languages can be added by the user. It also features multiline \
editing, folding, brace highlighting, and some other things supported by \
Scintilla."
HOMEPAGE="https://github.com/KapiX/Koder"
COPYRIGHT="2016-2020 Kacper Kasper"
LICENSE="MIT"
REVISION="1"
SOURCE_URI="https://github.com/KapiX/Koder/archive/0.5.3.tar.gz"
CHECKSUM_SHA256="8dbbf9fc73e0e8ad461e702b793a72c009b9098752bc36c70e374100db4fb1eb"
SOURCE_DIR="Koder-0.5.3"

ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"

USER_SETTINGS_FILES="
    settings/Koder directory
    "

PROVIDES="
    koder$secondaryArchSuffix ="0.5.3"
    app:Koder ="0.5.3"
    "
REQUIRES="
    haiku$secondaryArchSuffix
    scintilla${secondaryArchSuffix}_lexers
    lib:libscintilla$secondaryArchSuffix
    lib:libyaml_cpp$secondaryArchSuffix
    "

BUILD_REQUIRES="
    haiku${secondaryArchSuffix}_devel
    devel:libscintilla$secondaryArchSuffix
    devel:libyaml_cpp$secondaryArchSuffix
    "
BUILD_PREREQUIRES="
    makefile_engine
    cmd:g++$secondaryArchSuffix
    cmd:make
    "
   ←(差分ファイルの確認に使うだけなので、これ以降は削除)

→パッケージ化を最後まで実行しても、ソースの一部が変更されているのか、以前は通ったものが今はエラーします。

-

(2). 「work-0.5.3」フォルダと「download」フォルダを削除

-

(3). アプリをパッケージ化するコマンドを入力:
> cd ~/Git/haikuporter/
> hp koder
:
grabbing koder-0.5.3-1-x86_64.hpkg and moving it to /boot/home/Git/haikuports/packages/koder-0.5.3-1-x86_64.hpkg

エイリアスが登録されているときに使えるコマンドです。

途中で停止するはずですが、パッケージが正常に作成されたみたいなメッセージが表示されます。

-

(4). 作業フォルダのgit の状態を確認:
  • ファイルが修正されていない「git が作られたばかりの、初期の状態」です。

-

> cd ~/Git/haikuports/haiku-apps/koder/work-0.5.3/sources/Koder-0.5.3/
> ls -a
.   .editorconfig  .gitignore  data        LICENSE  Makefile   src
..  .git           artwork     Koder.rdef  locales  README.md

> git branch
* haikuport

> git tag
ORIGIN

> git status
On branch haikuport
nothing to commit, working tree clean

→まだ何もファイルの修正はされていない、表示です。

-

ただし、リポジトリが作成されたときのコミットが登録されています:

> git log
commit 1de36e8916b1507d593e69cc9a3d05d08f1fca1e (HEAD -> haikuport, tag: ORIGIN)
Author: FuRuYa7 <mymail@mydomain.org>
Date:   Mon Oct 18 18:53:31 2021 +0900

    import

→コミットのAuthor は自分になっています。構築するときに設定ファイルで設定した値です。

-

その状態でソースファイルを修正:

表示以外の「git」の操作をしません。

-

> cd ~/Git/haikuports/haiku-apps/koder/work-0.5.3/sources/Koder-0.5.3/

> echo "test" > test.txt
> cat test.txt
test
> git status
On branch haikuport
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        test.txt

nothing added to commit but untracked files present (use "git add" to track)

→更新のあった(新規作成した)ファイル名が赤色で表示されます。

和訳: コミットするために何も追加されていませんが、追跡されていないファイルが存在します(追跡するには「gitadd」を使用してください)

-

その状態で、その差分を表示:
> cd ~/Git/haikuports/haiku-apps/koder/work-0.5.3/sources/Koder-0.5.3/
> git diff
>

→修正したファイルの差分が表示されます。ステージングやコミットすると表示されなくなります。 ただし、新規に作成したファイルは表示されません。

git 管理の対象とされていない(追跡されていない)ファイルがある場合は、git diff では、新しいファイルが存在しないことが時々起こります。その場合は、作成したファイルをステージングします。コミットまですると、表示されないので注意。

-

git add でステージング(ステージングエリアに移動):

-

git add で指定したファイルのみをステージングする場合:
> git add test.txt

> git status
On branch haikuport
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        new file:   test.txt

→ファイル名が緑色表示に変わりました。

-

git add で新規のファイルも含めて、修正したすべてのファイルをステージングする場合:
> git add -A

-

  • ステージングが必要なのは、コミットするファイル群を選びやすくするためと、git の管理の対象となっていないファイルを追加するため。

-

ステージングしたファイルの差分のみを表示:
> git dif
>

→表示なし

> git diff --cached

または、

> git diff --staged
diff --git a/test.txt b/test.txt
new file mode 100644
index 0000000..9daeafb
--- /dev/null
+++ b/test.txt
@@ -0,0 +1 @@
+test

→ステージングされたファイルのみが表示され、コミットすると表示されなくなります。

つまり、修正したファイルがある場合、「git diff」と「git diff --staged」の両方をしないと差分表示できません。

-


2). パッケージ作成途中で、「パッチを適用」して停止させ、その修正された差分を表示:

→それには、レシピファイルを修正して、パッチを適用して、ビルド寸前で停止させます。

-

(1). 「patches」フォルダを作ります

そこにパッチファイル「koder-0.5.3.patchset」を置きます

$ cd ~/Git/haikuports/haiku-apps/koder/

$ ls -1
koder-0.5.3.recipe
patches

$ ls patches/
koder-0.5.3.patchset

→「patches/」フォルダ配下に置きます。

-

(2). その「patches」フォルダに、仮のパッチファイル「koder-0.5.3.patchset」を作成:
  • 仮としているのは、ヘッダー(表題)に使う「コミット番号」がまだないからです。

  • ひとつのコミットに複数のファイルの差分が含まれていてもOK です。

  • フッター(お尻)にある番号は、使っているgit のバージョン番号です。任意でかまいません。

-

git のバージョン:
> git --version
git version 2.30.2

-

仮のパッチファイル「koder-0.5.3.patchset」を作成:
> cd ~/Git/haikuports/haiku-apps/koder/

> lpe patches/koder-0.5.3.patchset

From 00000000000000000000000000000000000001 Fri Sep 24 00:00:00 2021
From: FuRuYa7 <mymail@mydomain.org>
Date: 2021-09-24 10:48:00.000000000 +0900
Subject: Add translation file (Japanese + etc)


diff --git a/Makefile b/Makefile
index f317d4e..979c9b6 100644
--- a/Makefile
+++ b/Makefile
@@ -23,7 +23,7 @@ SYSTEM_INCLUDE_PATHS = \
        $(shell findpaths -e -a $(shell uname -p) B_FIND_PATH_HEADERS_DIRECTORY scintilla)
 
 LOCAL_INCLUDE_PATHS = src/controls src/support src/windows
-LOCALES = de en en_GB es fr pt pl ro ru uk
+LOCALES = ca de en en_GB es fi fr fur hu id it ja lt pl pt ro ru sv tr uk
 
 SYMBOLS := FALSE
 DEBUGGER := FALSE
--
2.30.2


From 00000000000000000000000000000000000002 Fri Sep 24 00:00:00 2021
From: FuRuYa7 <mymail@mydomain.org>
Date: 2021-09-24 10:48:00.000000000 +0900
Subject: Translation correction (Japanese)


diff --git a/locales/ja.catkeys b/locales/ja.catkeys
index 86927ee..4a91f88 100644
--- a/locales/ja.catkeys
+++ b/locales/ja.catkeys
@@ -61,7 +61,6 @@ Undo  EditorWindow            元に戻す
 Unix format    EditorWindow            Unix 形式
 Unsaved changes        EditorWindow            保存されていない変更
 Untitled       EditorWindow            無題
-
 View   EditorWindow            表示
 Windows format EditorWindow            Windows 形式
 Wrap lines     EditorWindow            行を折り返す
--
2.30.2

→「lpe」は、GUIテキストエディタ「Pe」をターミナルから起動するためのコマンドです。 Haiku での切り貼りは、Alt+C、Alt+V、です。 また、右クリックが貼り付け。

  • デバッグ時は、ファイルごとにコミットして、差分を分けておくと、パッチが適用される時のメッセージも別々に表示されてわかりやすいです。

-

(3). レシピファイルにパッチファイルの定義の行を追加、「BUILD()」の行以下をすべて削除

-

日本語化のレシピ koder-0.5.3.recipe を適用:
> lpe koder-0.5.3.recipe

↓ パッチファイルを使う定義「PATCHES=」を追加:

SUMMARY="A code editor"
DESCRIPTION="Koder is a code editor for Haiku based on Scintilla editing \
component. It supports syntax highlighting for several programming languages \
and additional languages can be added by the user. It also features multiline \
editing, folding, brace highlighting, and some other things supported by \
Scintilla."
HOMEPAGE="https://github.com/KapiX/Koder"
COPYRIGHT="2016-2020 Kacper Kasper"
LICENSE="MIT"
REVISION="1"
SOURCE_URI="https://github.com/KapiX/Koder/archive/0.5.3.tar.gz"
CHECKSUM_SHA256="8dbbf9fc73e0e8ad461e702b793a72c009b9098752bc36c70e374100db4fb1eb"
SOURCE_DIR="Koder-0.5.3"
PATCHES="koder-0.5.3.patchset"

ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"

USER_SETTINGS_FILES="
    settings/Koder directory
    "

PROVIDES="
    koder$secondaryArchSuffix ="0.5.3"
    app:Koder ="0.5.3"
    "
REQUIRES="
    haiku$secondaryArchSuffix
    scintilla${secondaryArchSuffix}_lexers
    lib:libscintilla$secondaryArchSuffix
    lib:libyaml_cpp$secondaryArchSuffix
    "

BUILD_REQUIRES="
    haiku${secondaryArchSuffix}_devel
    devel:libscintilla$secondaryArchSuffix
    devel:libyaml_cpp$secondaryArchSuffix
    "
BUILD_PREREQUIRES="
    makefile_engine
    cmd:g++$secondaryArchSuffix
    cmd:make
    "
   ←(差分ファイルの確認に使うだけなので、これ以降は削除)

→1行追加しただけです。

-

(4). 「work-0.5.3」フォルダと「download」フォルダを削除

-

(5). アプリをパッケージ化するコマンドを入力:
> cd ~/Git/haikuporter/
> hp koder
:
Applying patchset "/boot/home/Git/haikuports/haiku-apps/koder/patches/koder-0.5.3.patchset" ...
Applying: Add translation file (Japanese + etc)
Applying: Translation correction (Japanese)
:
grabbing koder-0.5.3-1-x86_64.hpkg and moving it to /boot/home/Git/haikuports/packages/koder-0.5.3-1-x86_64.hpkg

エイリアスが登録されているときに使えるコマンドです。

途中で停止しているはずですが、メッセージとしてはパッケージが正常に作成されたみたいな表示で完了します。途中で、パッチに登録されているコミットの数だけ「コミットメッセージ」が表示されます。

-

(6). 作業フォルダのgit の状態を確認:
  • コミットされた状態と同じになりました。

-

> cd ~/Git/haikuports/haiku-apps/koder/work-0.5.3/sources/Koder-0.5.3/

> git diff
> git diff --cached

> git status
On branch haikuport
nothing to commit, working tree clean

→コミットすると、上記2つのコマンドでは、差分の表示はできなくなります。

-

-


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

-

8. git で差分を表示:

-

1). コミット履歴からコミット番号を確認:

> cd ~/Git/haikuports/haiku-apps/koder/work-0.5.3/sources/Koder-0.5.3/
> git log

commit acb89e81e4afd1aa92ab6b3973354a7669987abd (HEAD -> haikuport)
Author: FuRuYa7 <mymail@mydomain.org>
Date:   Fri Sep 24 10:48:00 2021 +0900

    Translation correction (Japanese)

commit 3e7a49851aa14bbd9800f59e7b2f43a18becae00
Author: FuRuYa7 <mymail@mydomain.org>
Date:   Fri Sep 24 10:48:00 2021 +0900

    Add translation file (Japanese + etc)

commit 41750ca9059316212af2301bb48ace343705457d (tag: ORIGIN)
Author: FuRuYa7 <mymail@mydomain.org>
Date:   Mon Oct 18 19:25:13 2021 +0900

    import

-

2). コミット間で差分を表示:

> cd ~/Git/haikuports/haiku-apps/koder/work-0.5.3/sources/Koder-0.5.3/
> git diff 41750ca905..acb89e81e4

diff --git a/Makefile b/Makefile
index f317d4e..979c9b6 100644
--- a/Makefile
+++ b/Makefile
@@ -23,7 +23,7 @@ SYSTEM_INCLUDE_PATHS = \
        $(shell findpaths -e -a $(shell uname -p) B_FIND_PATH_HEADERS_DIRECTORY scintilla)
 
 LOCAL_INCLUDE_PATHS = src/controls src/support src/windows
-LOCALES = de en en_GB es fr pt pl ro ru uk
+LOCALES = ca de en en_GB es fi fr fur hu id it ja lt pl pt ro ru sv tr uk
 
 SYMBOLS := FALSE
 DEBUGGER := FALSE
diff --git a/locales/ja.catkeys b/locales/ja.catkeys
index 86927ee..4a91f88 100644
--- a/locales/ja.catkeys
+++ b/locales/ja.catkeys
@@ -61,7 +61,6 @@ Undo  EditorWindow            元に戻す
 Unix format    EditorWindow            Unix 形式
 Unsaved changes        EditorWindow            保存されていない変更
 Untitled       EditorWindow            無題
-
 View   EditorWindow            表示
 Windows format EditorWindow            Windows 形式
 Wrap lines     EditorWindow            行を折り返す

→ヘッダー(エントリー部)は表示されません。

-

3). 「git show」コマンドで最新のコミットログを表示:

> cd ~/Git/haikuports/haiku-apps/koder/work-0.5.3/sources/Koder-0.5.3/
> git show

commit acb89e81e4afd1aa92ab6b3973354a7669987abd (HEAD -> haikuport)
Author: FuRuYa7 <mymail@mydomain.org>
Date:   Fri Sep 24 10:48:00 2021 +0900

    Translation correction (Japanese)

diff --git a/locales/ja.catkeys b/locales/ja.catkeys
index 86927ee..4a91f88 100644
--- a/locales/ja.catkeys
+++ b/locales/ja.catkeys
@@ -61,7 +61,6 @@ Undo  EditorWindow            元に戻す
 Unix format    EditorWindow            Unix 形式
 Unsaved changes        EditorWindow            保存されていない変更
 Untitled       EditorWindow            無題
-
 View   EditorWindow            表示
 Windows format EditorWindow            Windows 形式
 Wrap lines     EditorWindow            行を折り返す

→ヘッダー(エントリー部)は表示されましたが、コミットが1件のみです。

-

4). 「git log -p」コマンドで、最新のコミット履歴から2つを表示:

> cd ~/Git/haikuports/haiku-apps/koder/work-0.5.3/sources/Koder-0.5.3/
> git log -p -2

commit acb89e81e4afd1aa92ab6b3973354a7669987abd (HEAD -> haikuport)
Author: FuRuYa7 <mymail@mydomain.org>
Date:   Fri Sep 24 10:48:00 2021 +0900

    Translation correction (Japanese)

diff --git a/locales/ja.catkeys b/locales/ja.catkeys
index 86927ee..4a91f88 100644
--- a/locales/ja.catkeys
+++ b/locales/ja.catkeys
@@ -61,7 +61,6 @@ Undo  EditorWindow            元に戻す
 Unix format    EditorWindow            Unix 形式
 Unsaved changes        EditorWindow            保存されていない変更
 Untitled       EditorWindow            無題
-
 View   EditorWindow            表示
 Windows format EditorWindow            Windows 形式
 Wrap lines     EditorWindow            行を折り返す

commit 3e7a49851aa14bbd9800f59e7b2f43a18becae00
Author: FuRuYa7 <mymail@mydomain.org>
Date:   Fri Sep 24 10:48:00 2021 +0900

    Add translation file (Japanese + etc)

diff --git a/Makefile b/Makefile
index f317d4e..979c9b6 100644
--- a/Makefile
+++ b/Makefile
@@ -23,7 +23,7 @@ SYSTEM_INCLUDE_PATHS = \
        $(shell findpaths -e -a $(shell uname -p) B_FIND_PATH_HEADERS_DIRECTORY scintilla)
 
 LOCAL_INCLUDE_PATHS = src/controls src/support src/windows
-LOCALES = de en en_GB es fr pt pl ro ru uk
+LOCALES = ca de en en_GB es fi fr fur hu id it ja lt pl pt ro ru sv tr uk
 
 SYMBOLS := FALSE
 DEBUGGER := FALSE

→修正ファイル2つを別々のコミットとしたパッチファイルなので、これでOKです。 ただし、ヘッダーの形式が違うのと、フッターがありません。

-

どちらにしても、編集は 2回に分けて行い、その都度、コミットするやり方が、デバッグ時は見やすいです。 ただし、プルリクエストするときはひとつにまとめた方がコメントがわかりやすくなると思います。

-

-


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

-

9. 「.patchset」の正式な形式を調べました:

-

プルリクエストに含めた「.patchset」は手動で作成したため「間違っている」と指摘を受けました。

パッチの適用には使えましたが、プルリクエストで受け付けてもらえないので、正式な作り方を調べました。 なかなか見つからなかったのですが、やっと見つけました。

-

  • 「git」の機能としての、ソースファイルの差分をメールで送信するための形式でした。

→メールで使われる「UNIX mailbox format」と呼ばれる形式で、送られてきたパッチを「git-am」コマンドを使うとリポジトリに反映できます。

-

  • 形式としては、空白行で区切られた、「mbox 形式」と呼ばれる単一の From 行を頭に付加した、複数のメッセージ(差分の内容)が含まれたひとつのファイルです。

→付加された頭の部分には、標準のRFC 電子メール形式の一部であるFrom:行が必要です。

→付加された後ろの部分には、作成に使った「git」のバージョンが付加されます。

-

参考:

git format-patchで外に出す用のパッチを生成する

-


1). Haiku のパッチファイルの形式でファイル出力:

  • コミットされていないと作成されません。

  • コミット数の指定が必要です。

-

> cd ~/Git/haikuports/haiku-apps/koder/work-0.5.3/sources/Koder-0.5.3/

> git format-patch -2
0001-Add-translation-file-Japanese-etc.patch
0002-Translation-correction-Japanese.patch

→コミットごとにパッチファイルが作成されます。

末尾にディレクトリ名やファイル名を指定すると、その中で更新されたものだけを抽出してくれます。

-

内容の確認:
> cat 0001-Add-translation-file-Japanese-etc.patch

From 3e7a49851aa14bbd9800f59e7b2f43a18becae00 Mon Sep 17 00:00:00 2001
From: FuRuYa7 <mymail@mydomain.org>
Date: Fri, 24 Sep 2021 10:48:00 +0900
Subject: [PATCH 1/2] Add translation file (Japanese + etc)

---
 Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Makefile b/Makefile
index f317d4e..979c9b6 100644
--- a/Makefile
+++ b/Makefile
@@ -23,7 +23,7 @@ SYSTEM_INCLUDE_PATHS = \
        $(shell findpaths -e -a $(shell uname -p) B_FIND_PATH_HEADERS_DIRECTORY scintilla)
 
 LOCAL_INCLUDE_PATHS = src/controls src/support src/windows
-LOCALES = de en en_GB es fr pt pl ro ru uk
+LOCALES = ca de en en_GB es fi fr fur hu id it ja lt pl pt ro ru sv tr uk
 
 SYMBOLS := FALSE
 DEBUGGER := FALSE
-- 
2.30.2
> cat 0002-Translation-correction-Japanese.patch

From acb89e81e4afd1aa92ab6b3973354a7669987abd Mon Sep 17 00:00:00 2001
From: FuRuYa7 <mymail@mydomain.org>
Date: Fri, 24 Sep 2021 10:48:00 +0900
Subject: [PATCH 2/2] Translation correction (Japanese)

---
 locales/ja.catkeys | 1 -
 1 file changed, 1 deletion(-)

diff --git a/locales/ja.catkeys b/locales/ja.catkeys
index 86927ee..4a91f88 100644
--- a/locales/ja.catkeys
+++ b/locales/ja.catkeys
@@ -61,7 +61,6 @@ Undo  EditorWindow            元に戻す
 Unix format    EditorWindow            Unix 形式
 Unsaved changes        EditorWindow            保存されていない変更
 Untitled       EditorWindow            無題
-
 View   EditorWindow            表示
 Windows format EditorWindow            Windows 形式
 Wrap lines     EditorWindow            行を折り返す
--          ←(フッター)
2.30.2       ←(フッター: 自動で付加。作成に使ったgit のバージョン)

→ヘッダーもフッターも付いていてOK です。「Subject」に書かれた連番の順に連結して、間を2行ほど空ければ、パッチファイルとしてそのまま使えます。簡単にパッチファイルが作成できました。

-

ファイル名は、コミットメッセージ

-

先頭のヘッダーの 1行目の数字は「コミット番号」:

→ その後ろに続く「Mon Sep 17 00:00:00 2001」は固定、これで「git format-patch」で作られたとわかります。

-

最後のフッターの数字は「git のバージョン番号」:
> git --version
git version 2.30.2

→メールとして相手に送るので、作成したときのgit のバージョンも知らせているみたい。

-

  • 形式がわかったので、手動で作成できそうですが、コミットしないと番号がわかりません。 コミットしたらこのコマンドが使えます。なのでわざわざ手動で行う必要はありません。

-


2). 最新のコミットが 1つのパッチファイルを生成:

> git format-patch -1
0001-Translation-correction-Japanese.patch

もしくは、

> git format-patch HEAD^
0001-Translation-correction-Japanese.patch

-


3). 最新のコミットから 2つのパッチファイルを生成:

> git format-patch -2
0001-Add-translation-file-Japanese-etc.patch
0002-Translation-correction-Japanese.patch

もしくは、

> git format-patch HEAD^^
0001-Add-translation-file-Japanese-etc.patch
0002-Translation-correction-Japanese.patch

→ファイル名に、コミットメッセージが含まれます。

-


4). コミットの並びに注目:

> git log -2

commit acb89e81e4afd1aa92ab6b3973354a7669987abd (HEAD -> haikuport)
Author: FuRuYa7 <mymail@mydomain.org>
Date:   Fri Sep 24 10:48:00 2021 +0900

    Translation correction (Japanese)

commit 3e7a49851aa14bbd9800f59e7b2f43a18becae00
Author: FuRuYa7 <mymail@mydomain.org>
Date:   Fri Sep 24 10:48:00 2021 +0900

    Add translation file (Japanese + etc)

→コミットの履歴としては一番上が最新ですが、パッチを適用するときは一番最後になります。 ちゃんとパッチする順番の番号(逆順)が振られています。

-

-


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

-

10. 「Koder」が日本語化される前のバージョンに戻しました:

-

本投稿は、以前のバージョンの「Koder-0.5.3」の日本語化についてです。 最新バージョンは日本語化されており、本作業は必要ありません。

また、「Koder-0.5.3」では、関連するパッケージが更新されたのか、 以前は完了した作業が、現在はアプリのパッケージ化の途中でエラーします。

残念ながらインストールしての確認テストまではできませんが、 Haiku 専用アプリの日本語化については色々と学べると思います。

-


1). 「Koder-0.5.3」にて、翻訳ファイルはあるけど日本語化されていなかった原因:

-

原因1.「Makefile」のLOCALESに日本語を含むいくつかの言語の指定がありません

→ビルド時に翻訳されません。翻訳ファイルを追加した時に「Makefile」が修正されていなかったみたい。

-

原因2. 翻訳ファイルの「ja.catkeys」の64行目に空白行があるため、翻訳変換中にエラーが発生

-

原因3. 他の言語に設定のHaiku のファイル属性が「ja.catkeys」にはなく、翻訳変換中にエラーが発生

→上記の「ja.catkeys」の空白行を削除後に、Haiku 上で「ja.catkeys」のファイル属性を追加する必要があります。 (もしくは、.tar.gz を作成する前に追加を実施)

-

Haiku 上で下記の操作が必要:
> addattr -t mime "BEOS:TYPE" locale/x-vnd.Be.locale-catalog.plaintext locales/ja.catkeys
> addattr -t string "BEOS:LOCALE_LANGUAGE" Japanese locales/ja.catkeys
> addattr -t string "BEOS:LOCALE_SIGNATURE" x-vnd.KapiX-Koder locales/ja.catkeys
> addattr -t uint32 "BEOS:LOCALE_FINGERPRINT" 822155924 locales/ja.catkeys

Haiku の翻訳ファイルには、「SIGNATURE」の属性が設定されており、翻訳変換時に「SIGNATURE」を「koder」の実行ファイルに埋め込むことで、どの言語を使うべきかを判断しているみたい。なので、翻訳ファイルにファイル属性が設定されていないとエラーします。Haiku のファイル属性(テキストファイルなのに、上記のファイル属性を持てます)を利用したロケールのやり方なので、他のディストリビューションでは考えられない原因になります。

-

Haiku のファイル属性は、BeFS でのみ有効。etx4 やfat32 に持っていくと消えます

→「.tar.gz」にしておけば保持されます。

-

原因4. 実際にパッケージ化してインストールしても、その国の人でないと気づきません。確認漏れです

ちなみに、多くの翻訳者は、翻訳ファイルを提供するだけです。他のディストリビューションでの翻訳だと、アプリが国際化に対応されていれば、翻訳ファイルの変換と配置だけで翻訳が正しいかは翻訳者でも確認します。Haiku ではシステムは書き込み保護されているので、ビルドしてパッケージ化してインストールが必要です。多くの翻訳者がパッケージ化してインストールするまでしての確認は行わないと思われます。

翻訳ファイルが採用されたか、されなかったかは、翻訳者にはその時点ではわかりません。その後にアプリをインストールして翻訳されていないことに気づいても「採用されなかった」と思うだけです。また、翻訳されていないことはその国の人でないと気づきません。ほとんどの国の人がそうだったようで、長い間(2年ほど)気づかれなかった理由だろうと思います。Makefile に有効化するための設定があるとは知りません。アプリの作り方しだいとは思います。

-


2). 「Koder-0.5.3」を日本語化するために行ったこと:

-

対策1. 「パッチファイル」で、ソースファイルの「Makefile」と「locales/ja.catkeys」を修正

-

対策2. 「レシピファイル」にて、パッチが適用されて、ビルドされる前に「locales/ja.catkeys」に対するファイル属性の設定が行われるように設定

-

対策3. 「レシピファイル」にて、どの言語の翻訳ファイルが登録されたかがわかるように、システムに置かれる場所に翻訳ファイルを置きました

→アプリの実行ファイルに埋め込まれるので、翻訳ファイルの配置がなくても支障がないことも要因。置くのは無駄と思うかは開発者しだい。

  • この設定は個人的なデバッグ用です。また、システムに自由にファイルが置けるかのテストも兼ねています。 なので、プルリクエストには含めていません。

-


3). 今回、いじれるように古いバージョン(koder-0.5.3)を復活:

> cd ~/Git/haikuports/haiku-apps/koder/
> ls

> cp koder-0.5.4.recipe koder-0.5.4.recipe-ORG
> cp koder-0.5.4.recipe koder-0.5.3.recipe
> ls

→以前に「Haikuports」の環境を作ったのなら、最新のレシピをダウンロードしなければ、koder-0.5.3 のままです。 開発環境なので、勝手に更新されません。なので、新しいレシピをダウンロードした場合の操作です。

-


4). バージョンが上がり、日本語化された「koder-0.5.4.recipe」:

koder: bump version (#6260)   ←(bump version とはバージョンアップ版ということ)

diversys merged 1 commit into haikuports:master from KapiX:koder-0.5.4

KapiX deleted the koder-0.5.4 branch

→以前の「0.5.3」と同じtags 管理で「0.5.4」です。「master」ブランチの更新は停止していることに注意。 ここには日本語の翻訳ファイルは置かれていません。タグを切り替えないと見つかりません。

-

プルリクエストの対象になる最新バージョンはこのGitHub の場合は、「master」ブランチや「0.5.4」タグではなく、「0.5」ブランチになります。数字の大きさに惑わされないように注意です。自分も Issues で教えてもらうまで気づきませんでした。

シンプルに「master」ブランチが最新だと楽ですが、ブランチの作成やpush 、プルリクエスト時の切り替えなど、それらがいつもとは違う操作になるので、自分のような git 初心者には敷居が高いですね。管理者が管理しやすいのが一番なので、その辺りはしかたないこと。

-

koder-0.5.4.recipe

$ cd ~/Git/haikuports/haiku-apps/koder/

$ ls -1
koder-0.5.4.recipe

-

$ cat koder-0.5.4.recipe

:
SOURCE_URI="https://github.com/KapiX/Koder/archive/$portVersion.tar.gz"
CHECKSUM_SHA256="7a873283f8439a885b908f9c933a7433929df65b7fe8d4304b9bb21947f195e2"
:

→レシピのバージョンが上がりました:

haiku-apps/koder/koder-0.5.3.recipe → haiku-apps/koder/koder-0.5.4.recipe

→レシピファイルとしては、チェックサムが変更されただけです。

ソースで不具合は吸収(アップストリームで対処)されたので、パッチファイルは要りません。

-

-


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

-

11. 「Koder-0.5.3」の日本語化を実行:

-

こちらの場合はパッチファイルが必要でした。

-


1). 最終的な、日本語化のレシピ koder-0.5.3.recipe を配置:

> cd ~/Git/haikuports/haiku-apps/koder/
> lpe koder-0.5.3.recipe

↓ 「$portVersion」を直に指定して「"0.5.3"」に変更した状態です:

SUMMARY="A code editor"
DESCRIPTION="Koder is a code editor for Haiku based on Scintilla editing \
component. It supports syntax highlighting for several programming languages \
and additional languages can be added by the user. It also features multiline \
editing, folding, brace highlighting, and some other things supported by \
Scintilla."
HOMEPAGE="https://github.com/KapiX/Koder"
COPYRIGHT="2016-2020 Kacper Kasper"
LICENSE="MIT"
REVISION="1"
SOURCE_URI="https://github.com/KapiX/Koder/archive/0.5.3.tar.gz"
CHECKSUM_SHA256="8dbbf9fc73e0e8ad461e702b793a72c009b9098752bc36c70e374100db4fb1eb"
SOURCE_DIR="Koder-0.5.3"
PATCHES="koder-0.5.3.patchset"

ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"

USER_SETTINGS_FILES="
    settings/Koder directory
    "

PROVIDES="
    koder$secondaryArchSuffix ="0.5.3"
    app:Koder ="0.5.3"
    "
REQUIRES="
    haiku$secondaryArchSuffix
    scintilla${secondaryArchSuffix}_lexers
    lib:libscintilla$secondaryArchSuffix
    lib:libyaml_cpp$secondaryArchSuffix
    "

BUILD_REQUIRES="
    haiku${secondaryArchSuffix}_devel
    devel:libscintilla$secondaryArchSuffix
    devel:libyaml_cpp$secondaryArchSuffix
    "
BUILD_PREREQUIRES="
    makefile_engine
    cmd:g++$secondaryArchSuffix
    cmd:make
    "

BUILD()
{
    addattr -t mime "BEOS:TYPE" locale/x-vnd.Be.locale-catalog.plaintext locales/ja.catkeys
    addattr -t string "BEOS:LOCALE_LANGUAGE" Japanese locales/ja.catkeys
    addattr -t string "BEOS:LOCALE_SIGNATURE" x-vnd.KapiX-Koder locales/ja.catkeys
    addattr -t uint32 "BEOS:LOCALE_FINGERPRINT" 822155924 locales/ja.catkeys
    make $jobArgs OBJ_DIR=objects
    make bindcatalogs OBJ_DIR=objects
}

INSTALL()
{
    mkdir -p $appsDir
    cp -af objects/Koder $appsDir

    mkdir -p $dataDir/Koder
    cp -r data/* $dataDir/Koder

    mkdir -p $dataDir/locale/catalogs/x-vnd.KapiX-Koder
    cp -r locales/* $dataDir/locale/catalogs/x-vnd.KapiX-Koder

    addAppDeskbarSymlink $appsDir/Koder
}

→パッチファイルの定義の行を追加。「BUILD() 」のところにファイル属性の設定コマンドを 4つ追加。「INSTALL()」のところにデバッグ用として 翻訳ファイルを配置(動作には関係しません)。

-


2). 最終的な、日本語化のパッチファイル「koder-0.5.3.patchset」を配置:

> cd ~/Git/haikuports/haiku-apps/koder/
> lpe patches/koder-0.5.3.patchset
From 3e7a49851aa14bbd9800f59e7b2f43a18becae00 Mon Sep 17 00:00:00 2001
From: FuRuYa7 <mymail@mydomain.org>
Date: Fri, 24 Sep 2021 10:48:00 +0900
Subject: [PATCH 1/2] Add translation file (Japanese + etc)

---
 Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Makefile b/Makefile
index f317d4e..979c9b6 100644
--- a/Makefile
+++ b/Makefile
@@ -23,7 +23,7 @@ SYSTEM_INCLUDE_PATHS = \
        $(shell findpaths -e -a $(shell uname -p) B_FIND_PATH_HEADERS_DIRECTORY scintilla)
 
 LOCAL_INCLUDE_PATHS = src/controls src/support src/windows
-LOCALES = de en en_GB es fr pt pl ro ru uk
+LOCALES = ca de en en_GB es fi fr fur hu id it ja lt pl pt ro ru sv tr uk
 
 SYMBOLS := FALSE
 DEBUGGER := FALSE
-- 
2.30.2


From acb89e81e4afd1aa92ab6b3973354a7669987abd Mon Sep 17 00:00:00 2001
From: FuRuYa7 <mymail@mydomain.org>
Date: Fri, 24 Sep 2021 10:48:00 +0900
Subject: [PATCH 2/2] Translation correction (Japanese)

---
 locales/ja.catkeys | 1 -
 1 file changed, 1 deletion(-)

diff --git a/locales/ja.catkeys b/locales/ja.catkeys
index 86927ee..4a91f88 100644
--- a/locales/ja.catkeys
+++ b/locales/ja.catkeys
@@ -61,7 +61,6 @@ Undo  EditorWindow            元に戻す
 Unix format    EditorWindow            Unix 形式
 Unsaved changes        EditorWindow            保存されていない変更
 Untitled       EditorWindow            無題
-
 View   EditorWindow            表示
 Windows format EditorWindow            Windows 形式
 Wrap lines     EditorWindow            行を折り返す
-- 
2.30.2

-


3). 「work-0.5.3」フォルダと「download」フォルダを削除

-


4). アプリをパッケージ化するコマンドを入力:

> cd ~/Git/haikuporter/
> hp koder

エイリアスが登録されているときに使えるコマンドです。

→バージョンアップする前までは動いていたのですが、どこか変更されたようで、現在はビルドの途中でエラーします。

/boot/system/develop/tools/lib/gcc/x86_64-unknown-haiku/8.3.0/include/c++/bits/hashtable_policy.h:810:76: internal compiler error: Illegal instruction
       using __node_type = _Hash_node<_Value, _Traits::__hash_cached::value>;
                                                                            ^

→もはや使われているバージョンではないので調べてもしかたありません。なので中断。

-

  • あとは日本語化された、新しいバージョンの「koder」を「HaikuDepot」でインストールして使います。

-

-


ちなみに、Koder-0.5.4 でパッケージ化して、正常時のファイル属性を確認すると:

-

1). パッケージ化を実行:
> ls ~/Git/haikuports/haiku-apps/koder/
koder-0.5.4.recipe

~> cd ~/Git/haikuporter
~/Git/haikuporter> hp koder

> ls ~/Git/haikuports/haiku-apps/koder/
download  koder-0.5.4.recipe  work-0.5.4

> cd ~/Git/haikuports/haiku-apps/koder/work-0.5.4/sources/Koder-0.5.4/

Koder-0.5.4> ls
artwork  data  Koder.rdef  LICENSE  locales  Makefile  objects  README.md  src

Koder-0.5.4> ls locales
ca.catkeys     es.catkeys   hu.catkeys  lt.catkeys  ro.catkeys  uk.catkeys
de.catkeys     fi.catkeys   id.catkeys  nl.catkeys  ru.catkeys
en_GB.catkeys  fr.catkeys   it.catkeys  pl.catkeys  sv.catkeys
en.catkeys     fur.catkeys  ja.catkeys  pt.catkeys  tr.catkeys

-

2). ファイルの属性を一覧表示:

listattr ファイル名

-

Koder-0.5.4> listattr locales/ja.catkeys
File: locales/ja.catkeys
        Type       Size  Name                                
----------------------------------------------------------
 MIME String        41  "BEOS:TYPE"
        Text         9  "BEOS:LOCALE_LANGUAGE"
        Text        18  "BEOS:LOCALE_SIGNATURE"
     Uint-32         4  "BEOS:LOCALE_FINGERPRINT"

72 bytes total in attributes.

→属性の内容は表示されません。

-

3). 指定されたファイルの属性の内容を表示:

catattr 属性 ファイル名

-

Koder-0.5.4> catattr "BEOS:TYPE"  locales/ja.catkeys
locales/ja.catkeys : 'MIMS' : locale/x-vnd.Be.locale-catalog.plaintext ←(翻訳ファイルの原本)

Koder-0.5.4> catattr "BEOS:LOCALE_LANGUAGE"  locales/ja.catkeys
locales/ja.catkeys : string : Japanese     ←(注目)

Koder-0.5.4> catattr "BEOS:LOCALE_SIGNATURE"  locales/ja.catkeys
locales/ja.catkeys : string : x-vnd.KapiX-Koder  ←(翻訳を結びつけるキー: 重要)

Koder-0.5.4> catattr "BEOS:LOCALE_FINGERPRINT"  locales/ja.catkeys
locales/ja.catkeys : uint32 : 822155924 ←(int みたいに値を表現する形式のひとつで、その値)

-

Koder-0.5.4> catattr "BEOS:LOCALE_LANGUAGE"  locales/fr.catkeys
locales/fr.catkeys : string : French      ←(注目)

→テキストファイルなのに、こんなにたくさんの属性がセットできることと、これらの属性の中には違う内容の属性があることに注目。また、これらの属性の情報はファイルサイズに含まれません。

ちなみに、テキストファイルがすべてこれらの属性を持っているわけではなく、 「翻訳ファイル」の変換ツールで必要な情報なので特別にセットされているだけです。また、違うエディタで編集すると、使われたアプリの属性もセットされたりして、どんどんファイルによって増えていきます。

属性の内容がコマンドでは一覧表示できないのは面倒です。この辺りはGUI でも操作できますが、変に日本語化されていて実際の「uint32」とかの値がわかりづらくなっています。どう使われるかがわかっている人でないと単に翻訳しただけでは役に立ちません。逆に素のままが良い場合もあります。個人的な意見。

-

参考:

Haiku のファイル「属性

-

-


4). 参考: パッケージ化したので、インストールしたいときは、

パッケージ化に成功すると、最後にパッケージ名が表示されます:

~/Git/haikuporter> hp koder
:
grabbing koder-0.5.4-1-x86_64.hpkg and moving it to /boot/home/Git/haikuports/packages/koder-0.5.4-1-x86_64.hpkg

-

確認:

> ls -1 ~/Git/haikuports/packages/
flac-1.3.3-2-x86_64.hpkg
flac_devel-1.3.3-2-x86_64.hpkg
koder-0.5.4-1-x86_64.hpkg    ←(追加)

→いろいろなアプリのパッケージ化を試したので、そのときのアプリが残っていました。

-

インストール:

> pkgman install ~/Git/haikuports/packages/koder-0.5.4-1-x86_64.hpkg

→システム更新のタイミングで、メニューからの起動は、正規のアプリに上書きされるので注意。でも、右クリックで場所をホームに指定すれば起動は可能。

-

-


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

-

12. 「git」についての学習:

-

Linux基本コマンドTips一覧 よりの抜粋:

-

  • gitコマンドが扱う「リポジトリ(repository)」とは、ソースコードや変更履歴、コメントなどを一括して保管する場所です。

  • リポジトリには、自分のPC上に作る「ローカルリポジトリ」と、「GitHub」などのWebサービス上に作る「リモートリポジトリ」があり、両者を連携させることで複数の開発者による開発を1本にまとめることができます。

  • 保管場所であるリポジトリに対し、ファイルの編集などを行う場所を「ワークツリー」あるいは「ワーキングエリア」などと呼びます。「git clone」や「git pull」で取得した最新版のファイルはワークツリーに配置されます。つまり「作業ディレクトリ」です。

  • ワークツリー(作業ディレクトリ)で編集した結果をリポジトリに反映する操作を「コミット」と呼びます。

  • 「git add」コマンドでコミットしたいファイルを「インデックス」あるいは「ステージングエリア」と呼ばれる領域に追加します。インデックスにはファイルの変更箇所などが記録されます。

  • インデックスの内容は「git commit」コマンドでローカルリポジトリにコミットされ、「git push」コマンドでローカルリポジトリの内容をリモートリポジトリに反映します。

  • 「git add」や「git commit」などを行わなければ、自分の環境で編集した内容がリポジトリに影響を与えることはありません。自由に編集し、テストできます。なお、ワークツリーのファイルを過去の任意のコミット状態に戻すことも可能です。

  • 開発中のソースコードやドキュメントを、枝分かれさせたり、それらを合流させたりする機能もあります。枝分かれしたそれぞれのバージョンを「ブランチ」(branch)と呼び、ブランチを合流させることを「マージ」(merge)と呼びます。

→「プルリクエスト」したコミットを採用することが「マージ」で、それは管理者が判断します。

-

  • 開発中のソースコードやドキュメントのある段階で「タグ」(tags)を付けて、ソースを利用しやすくすることができます。単なる印なので「ブランチ」とは違いますが、似た名前にすると混乱します。

-

-


まとめ

Haiku 専用のテキストエディタである「Koder-0.5.3」の日本語化にトライしました。 色々と調べているうちに、投稿が遅くなり、「Koder-0.5.4」が出て日本語化されてしまいました。

手順としては役に立たなくなりましたが、おかげで色々と勉強になりました。

-

-


-

-

    目次

-

「投稿の先頭 へ」

-

-


-

「この目次 の先頭へ」

「本編の目次 に戻る」

-

「Haiku」にてアプリを日本語化する準備〈H136-1〉

登録日: 2021-10-07 更新日: 2021-10-18

Haiku にて、アプリの日本語化にトライしました。その備忘録です。

-

Haiku ではシステムが書き込み保護されており、直接システムをいじれないので、いつもとは違うアプローチが必要でした。

Linux アプリをHaiku に移植するときに使われる環境を落とし、それを使ってアプリの日本語化にトライしました。 一度作っておくと、欲しいアプリの日本語化、および、アプリの移植にトライできます。

-

今回は、そのアプリの日本語化にトライするための環境づくりです。

USB メモリに「nightly ビルド」の「Haiku R1/beta3」をインストール しました。システムとしては最新です。そこで作業しました。

-

-

使用したPC は「ASUS Chromebox CN60 」で、 プロセッサは第4世代の「Intel Celeron 2955U 」です。

-

(注)リンクを戻るときはブラウザの左上の「←」をクリック

-

-


目次

-

「アプリの移植について」

「作業フォルダ作成の流れ」

「日本語入力のインストール」

「haikuporter ツールをインストール」

「haikuporter ツールを実際に使用」

「Linux から移植されたアプリを確認」

「Haiku 専用に作られたアプリを確認」

「まとめ へ」

-

「目次詳細 へ」

-

-


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

-

Haiku R1/beta3」のデスクトップ

-

立ち上げ時に「ブートスクリーン」が表示されます:

-

「nightly ビルド」のデスクトップ画面:

→「nightly ビルド」は開発版と言えますが、更新の回数が多いので不具合が解消されている可能性があります。

-

「nightly ビルド」のアイコン:

→立ち上げデバイス(ボリューム)には「てんとう虫」マークが付きます。

-

現在使っているデスクトップ画面:

テキストエディタは日本語入力時にインライン変換ができる「Koder」にしました。ブラウザは確実に動く「Otter Browser」です。

-

左側は「Koder」アプリのウィンドウです。英語表示を日本語化(というか日本語化されるように修正)しました。 時々見かけますが、翻訳ファイルがあっても日本語化されていないのはもったいないですね。 メニューを日本語化しただけで、使いやすく感じます。

-

-


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

-

現在のシステムのバージョン:

-

2021-10-07 現在:

~> uname -v
hrev55489 Oct  7 2021 06:03:30

-

時々、デスクトップが表示しきれないことがあるので、

もし、立ち上げで背景色のまま、デスクトップが表示されないときは「ココ 」を参照

-

-


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

-

アプリの移植について:

-

1). リモートにあるリポジトリの一覧:

~>  pkgman list-repos
        Haiku
                base-url:  https://eu.hpkg.haiku-os.org/haiku/master/x86_64/current
                identifier: tag:haiku-os.org,2001:repositories/haiku/master/x86_64
                priority:  1
        HaikuPorts
                base-url:  https://eu.hpkg.haiku-os.org/haikuports/master/x86_64/current
                identifier: tag:haikuports.org,2013:repositories/haikuports/master/x86_64
                priority:  1

→「Haiku」はHaiku アプリのリポジトリで、「HaikuPorts」はLinux から移植されたアプリのリポジトリです。 パッケージ化(ビルドしてバイナリ化してまとめた)されたアプリが格納されています。

-

  • 「haikuporter」ツールが使えるようになったことで、Linux から移植されたアプリが増えました。

  • 一般的によく使われているアプリがもっと増えていけば、実際に使えるOS に近づくと思います。

  • Haiku が生き残れるかは、システムの安定性と使えるアプリ次第だろうと思います。

-

2). 今回は、リモートの「HaikuPorts」リポジトリにあるアプリの「ソース」に対してビルドの指示をする「レシピ」ファイルをローカルに置いて作業しました

-

3). すべてのアプリの「レシピ」ファイルと「パッチ」ファイルをごっそりダウンロード

-

4). 一度パッケージ化を実行すると、作業フォルダが削除されずに残ります

作業フォルダが残ることの利点は、システムにインストールされたアプリだけでなく、作業フォルダにあるビルド済みのアプリ(実行ファイル)も、右クリックのときに指定できることです。

システム更新でアプリが上書きされてしまうことがありますが、メニューからは起動できなくなっても、パッケージ化が済んで、実行したことがあれば、右クリックで(実行ファイルの場所が表示されるので)ホームの作業フォルダに置かれたアプリを指定して起動できます。

-

5). Haiku 向けに作られたアプリでの注意点

アプリによっては、Haikuファイルシステムの「BeFS」だけが持つファイル属性 を持たせたものがありました。Ext4Fat32 にファイルをコピーするとその属性は消えます。

なので、Haiku 上でしかビルドできませんし、ソースファイルであっても、使われるツールでチェックされたりするので、ビルド前に指定されたファイル属性を付与して、tar.gz してサイトに置くか、ビルド時にファイル属性を付与するしかけを作る必要があります。

→例えば、Haiku で使われる翻訳ファイルが該当します。翻訳ファイルのバイナリ変換ツールはファイル属性(シグネチャー)をチェックしており、翻訳ファイルに属性がセットされていないと、ビルドの途中でエラーします。

アプリの実行ファイルは埋め込まれたシグネチャーにより、どの翻訳ファイルを使うかを決めており、埋め込みをされた実行ファイルでないと翻訳できません。Haiku 向けアプリでよく使われる、Haiku 独自のしくみです。

-

6). 移植されたアプリでの注意点

移植されているアプリが最新バージョンとは限りません。たぶん、古いバージョンです。 アプリはバージョン指定で移植されています。

それは、バージョンによって依存するパッケージやライブラリが異なるので、「レシピ」ファイルも修正しないとビルドできないからです。アプリによっては、ソースやMakefile の修正も必要になります。つまり、パッチファイルの作成です。

また、実行時に使われるconfig ファイル等が書き込みできない領域に配置されることで、支障が出る場合があります。

→featherpad のヘルプファイルはテキストファイルで、個人的な備忘録として使える機能がありますが、Haiku では書き込みできないので使えません。

-

-


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

-

作業フォルダ作成の流れ

-

「Koder-0.5.3」の場合:

-

1). アプリをパッケージ化するコマンドを入力:

> cd ~/Git/haikuports/
> hp koder

エイリアスが登録 されているときに使えるコマンドです。

-

アプリのレシピに、ダウンロードすべきバージョンの.tar.gz が書かれています:

~/Git/haikuports/haiku-apps/koder/koder-0.5.3.recipe の指定:

SOURCE_URI="https://github.com/KapiX/Koder/archive/$portVersion.tar.gz"

-

それが「download」フォルダにダウンロードされます。

その後に「work-0.5.3/sources」に展開され、その展開された「Koder-0.5.3」フォルダにローカルのリポジトリ(.git フォルダ)が作成されます。

ブランチ名は「haikuport」で、タグ名は「ORIGIN」です。

ソースなので個別に手を加えられますし、git で管理されているので、複数のファイルの変更を行っても、差分ファイルの作成が簡単で、パッチファイルを作成しやすくなります。

-

アプリのGitHub からそのままgit clone するのでなく、指定したバージョンのみを.tar.gz でダウンロードして、移植用のローカルのリポジトリを作り直しているところがエライと思います。本家のgit の管理のやり方は色々なので、それに左右されないのはgood です。

-

2). ソースを修正したのであれば、レシピにパッチファイルの定義の行を追加します:

~/Git/haikuports/haiku-apps/koder/koder-0.5.3.recipe の指定:

PATCHES="koder-$portVersion.patchset"

→汎用性のある作りにしてあり、番号は自動で入ります。

-

作成したパッチファイル:
~/Git/haikuports/haiku-apps/koder/patches/koder-0.5.3.patchset

→差分ファイルを元に作成。

-

3). パッチファイルの指定があれば実行され、ソースが書き換えられます

レシピにあるビルドの指定により、ビルドされます。

-

4). ビルドの結果が「~/Git/haikuports/haiku-apps/koder/work-0.5.3/sources/Koder-0.5.3/objects/」フォルダに書き込まれます

→出力先に「objects/」フォルダが指定されているときのみ。

-

5). ビルド後のインストール(リンクとシステムのフォルダの作成と配置)が成功すれば、パッケージファイルが作成されます

~/Git/haikuports/packages/koder-0.5.3-1-x86_64.hpkg

→パッケージ作成の最後に、作成された「場所とパッケージ名」が表示されます。

-

6). パッケージ名を指定してのインストールができます:

> pkgman install ~/Git/haikuports/packages/koder-0.5.3-1-x86_64.hpkg

→システム更新があって上書きされるまでは、メニューからアプリが起動できます。

-

7). インストールしたアプリは、下記にも登録されます:

/boot/system/packages/koder-0.5.3-1-x86_64.hpkg

→通常、アプリがインストールされると、ここに登録されます。

ここに登録されると、システム更新の対象になるため、システム更新があるタイミングで、パッケージ名が同じであれば上書きされます。せっかく日本語化しても元に戻るので、メニューからのアプリの起動は英語になります。

-

8). 上書きされても、作業フォルダを削除しないかぎり、右クリックからアプリを選択して、日本語表示で起動できます

インストールして正常に動いたら、早めにプルリクエストして貢献するか、個人的にパッケージ名を変更してパッケージを作成するか、です。

-

9). アプリをインストールして起動できたら、実際の動作を確認

単にビルドが通っただけで、実際に日本語化されるとは限りません。 ソースや、Makefile などの修正が必要かもしれませんし、locale の設定で変わるかもしれません。

作業ファイルに実際のソースが残っているので、それを使って色々と試行錯誤します。 ここで、Haiku の知識と、プログラミング言語のスキルが問われます。アプリによって使われているプログラミング言語や、使われているライブラリも違うので、勉強になります。うまくすれば、それらはさわらなくて済むかもしれません。

-

修正が済んだら「git diff」で差分を作成、「patches/koder-0.5.3.patchset」に反映。 「koder-0.5.3.recipe」の修正が必要なときもあります。

-

「download」フォルダと「work-0.5.3」フォルダを(必要なファイルがあれば保存してから)削除します。 パッケージ化を実行します。新たな「download」フォルダと「work-0.5.3」フォルダが作られます。

-

パッケージをインストールして動作確認。

それの繰り返しです。

-

注意: こちらに投稿しているやり方の、手動で作成した「.patchset」はプルリクエストに使えないので、「個人的に使う」だけにして下さい。

→個人的にはパッチが動けばOK です。念の為に形式を合わせましたが、手動で作成した「.patchset」はプルリクエストしても受け付けてもらえませんでした。

ヘッダー部とフッター部を追加したときに、パッチの動作には無関係と思ってヘッダー部の1行目を適当に作成したのが良くなかったのでしょう。正式?な「.patchset」ファイルを作成してくれる「ツール」とか、正式な形式の書き方とかを知りたいところ。ネットでは情報はヒットしません。

もしかしたら、「BeBook」をインストールして覗いてみれば、書かれているかもしれません。 まずは、他を片付けてからです。

-

-


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

-

1. システム更新:

-

コマンドで、システム更新:

~> pkgman refresh
~> pkgman update

-

-


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

-

2. 日本語入力「mozc」のインストール:

-

アプリの移植とは関係ありませんが、日本語入力できると便利です。

-

「mozc」のインストール:

~> pkgman install mozc

→インストールで右上のパネルのシステムトレイに「キーボード」アイコンが表示され、 再起動しなくても「半角/全角」キーで日本語オン/オフして、日本語入力できました。

-

残念ながら、日本語入力で「インライン変換」できるのは、今のところ、Haiku 向けに作られたアプリのみです。

Haiku に移植されたほとんどのアプリは「インライン変換」ではなく、日本語変換の窓が入力している位置よりも離れた場所に表示されます。視界から入力位置がズレているので入力しづらいです。

-

Linux とは違うOS なので、入力に使われている関数の作りも違うようです。 初期のLinux ではほとんどが「インライン変換」できませんでした。 なので、それができるしくみができれば、使い勝手も大きく違ってくると思います。

-

-


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

-

3. パッケージ作成ツールの「haikuporter」をインストール:

-

参考:

Building packages with haikuporter

-


1). 「python3」のインストール:

ツールに必要です。

-

(1). パッケージの確認:
> pkgman search python3 | grep Core
:
        packaging_python3               Core utilities for Python packages       ←(Python 3.7-10-5)
        packaging_python38              Core utilities for Python packages      ←(Python 3.8)
        packaging_python39              Core utilities for Python packages      ←(Python 3.9)

→3つのバージョンの python3 から選べます。標準の3.7 を選択。 好みで選ぶのではなく、ツールがどれで出来ているかです。これが無難そう。

-

(2). 「python3」のインストール:
> pkgman install packaging_python3

> pkgman search python3 | grep Core
S       packaging_python3               Core utilities for Python packages                                              
        packaging_python38              Core utilities for Python packages                                              
        packaging_python39              Core utilities for Python packages                              

→行頭に「S」が付くのがインストールされている印です。

-

バージョンの確認:

> python3 --version
Python 3.7.10

-

参考: ちなみに、「python3」がインストールされていない場合:

haikuporter の起動でエラー:

~> cd ~/Git/haikuporter/
> haikuporter --help
env: 'python3': No such file or directory

-


2). 「HaikuPorter」ツールと、すべてのRecipes(レシピ)を含む「haikuports」ツリーを入手:

-

(1). 「git」があるか確認:
~> git --version
git version 2.30.2

-

(2). 「Git」フォルダの準備(任意):
~> cd
~> mkdir Git
~> cd Git

→サイト上のガイドでは作っていませんが、大文字を入れるとわかりやすくなるので管理が楽です。

-

(3). 「haikuporter」ツールを入手:
~> cd ~/Git/
~/Git> git clone https://github.com/haikuports/haikuporter.git --depth=30

Cloning into 'haikuporter'...
remote: Enumerating objects: 213, done.
remote: Counting objects: 100% (213/213), done.
remote: Compressing objects: 100% (142/142), done.
remote: Total 213 (delta 98), reused 136 (delta 67), pack-reused 0
Receiving objects: 100% (213/213), 153.94 KiB | 967.00 KiB/s, done.
Resolving deltas: 100% (98/98), done.

Python の「haikuporter」ツールが入った「haikuporter」フォルダが作られました。

-

(4). 「haikuports」ツリーを入手:
~> cd ~/Git/
~/Git> git clone https://github.com/haikuports/haikuports.git --depth=30

Cloning into 'haikuports'...
remote: Enumerating objects: 14439, done.
remote: Counting objects: 100% (14439/14439), done.
remote: Compressing objects: 100% (9723/9723), done.
remote: Total 14439 (delta 3460), reused 11607 (delta 2814), pack-reused 0
Receiving objects: 100% (14439/14439), 15.52 MiB | 270.00 KiB/s, done.
Resolving deltas: 100% (3460/3460), done.
Updating files: 100% (5296/5296), done.

→「haikuports」ツリーが入った「haikuports」フォルダが作られました。すべてのアプリが「.recipe」ファイルを持ち、カテゴリ別にフォルダ分けされています。

-

  • 「--depth=30」を付けて、クローン作成を最後の30 コミットまでに制限、ダウンロード時間とディスク容量を節約。もう少し減らしてもいいかも。逆に最新のソースでなく、過去のソースが必要なら増やす必要があります。

-

(5). 2つのフォルダが作成されました:
~> ls -1 ~/Git/
haikuporter   ←(ツールがあるフォルダ)
haikuports   ←(ツリーがあるフォルダ)

Haiku のガイドでは、「Git」フォルダは作成されていません。任意ですが管理しやすくなります。

-


3). HaikuPorter の「パス」の設定:

  • HaikuPorter コマンドの「パス」を通して、他のコマンドと同じように使えるようにリンクを作成:
~> cd ~/Git/haikuporter/

> ls -l
:
-rw-r--r-- 1 user root  190 9月  25 23:41 AUTHORS.txt
drwxr-xr-x 1 user root 2048 9月  25 23:41 buildmaster
drwxr-xr-x 1 user root 2048 9月  25 23:41 doc
drwxr-xr-x 1 user root 2048 9月  25 23:41 generic
-rwxr-xr-x 1 user root  623 9月  25 23:41 haikuporter
drwxr-xr-x 1 user root 2048 9月  25 23:41 HaikuPorter
-rw-r--r-- 1 user root 2237 9月  25 23:41 haikuports-sample.conf
-rw-r--r-- 1 user root 3258 9月  25 23:41 README.md
-rwxr-xr-x 1 user root  625 9月  25 23:41 setup.py
drwxr-xr-x 1 user root 2048 9月  25 23:41 tools

> ln -s haikuporter ~/config/non-packaged/bin/

> ls -l ~/config/non-packaged/bin/
:
lrwxrwxrwx 1 user root 11 9月  25 23:46 haikuporter -> haikuporter

→これを見るといつインストールしたかがわかりますね。

-


4). HaikuPorter の設定:

-

(1). haikuports の設定ファイル「 haikuports.conf」をコピー:
~> cd ~/Git/haikuporter/
~/Git/haikuporter> cp haikuports-sample.conf ~/config/settings/haikuports.conf

-

(2). 「 haikuports.conf」の修正:
> lpe ~/config/settings/haikuports.conf

→「lpe」コマンドでGUI の「Pe」が起動されます。ハイライト表示されて見やすいです。

左下に行番号が表示されます。

Pe やStyledEdit は、日本語を含んでいると文字化けしやすいので、日本語は避けた方が無難。(文字コードのデフォルトがユニコードUTF-16 でなく、UTF-8 です。日本語のファイルに書き込むと、違う文字コードで書き込まれ文字化け)

-

TREE_PATH

→haikuports ツリーのクローンを作成した場所 (例: 「/boot/home/haikuports」)

TREE_PATH="/boot/home/Git/haikuports"

-

PACKAGER

パッケージの作成者です。

→あなたの名前とメールアドレス (例: 「Humdinger humdinger@mymail.com」)

FuRuYa7 <mymail@mydomain.org>

→自分のPC にインストールした「git」 に登録した名前とメールアドレス(任意、ダミーでも必要)です。

-

TARGET_ARCHITECTURE="x86_gcc2"

アプリが対応するアーキテクチャ

TARGET_ARCHITECTURES="x86_64"

→つまり、64ビット アプリを使うということ 以前の「all !x86_gcc2」は使えなくなっていました。

-

SECONDARY_TARGET_ARCHITECTURE="x86"

32ビットアプリを使うことがあるかどうか。

#SECONDARY_TARGET_ARCHITECTURE="x86"

→32ビット アプリ(以前のアプリ)を使わないのならコメントを解除せずにそのままにします。

これは、公式の32ビットHaiku(gcc2hybrid)を実行するためのものです。古いgcc2 コンパイラBeOS 互換性を維持するためのデフォルトです。「x86」は古いgcc2 でビルドされないアプリケーション用の最新のコンパイラ(現在はgcc5.4)です。

-

→修正が終わったら、保存

-

ちなみに、「SECONDARY_TARGET_ARCHITECTURE=」のコメントを解除した場合:

抜粋:

        updating dependency infos of kunitconversion-5.80.0
        updating dependency infos of kunitconversion_x86-5.80.0

→チェックしたときに 2つの版が準備されました。 32ビット アプリは使わないし時間と容量は少ない方が良いので、コメントのままにしました。

-


5). haikuporter の確認:

-

バージョンの確認:
~> cd ~/Git/haikuporter/
~/Git/haikuporter> haikuporter --version
haikuporter 1.2.6

→これで、HaikuPorter が使えるようになりました。

-


6). 便利なコマンドを使えるようにしました:

  • 「inpatch 文字列」 →パッチファイルで、「文字列」を含む行を表示

  • 「inrecipe 文字列」 →レシピファイルで、「文字列」を含む行を表示

  • 「hp パッケージ名」→パッケージの作成をするコマンドの簡略型です。

-

「~/config/settings/profile」の作成:
> cd ~/config/settings/
> lpe profile

下記を追記:

function inpatch () { grep -rni $1 /boot/home/Git/haikuports/*/*/patches/*; }
function inrecipe () { find /boot/home/Git/haikuports -maxdepth 3 -name "*.recipe" \
| xargs grep -ni --col $1; }

alias hp="haikuporter -S -j2 --no-source-packages --get-dependencies"

→シェル関数を 2つとエイリアスを定義しました。 エイリアスの「-j2」の値は自分のPC が持つプロセッサ数を入れると処理が速く終わります。

-

誤って入力した、シェル関数を削除:
~> unset inpatches

-

再起動

-

定義したシェル関数を表示:
~> declare -f
inpatch () 
{ 
    grep --color=auto -rni $1 /boot/home/Git/haikuports/*/*/patches/*
}
inrecipe () 
{ 
    find /boot/home/Git/haikuports -maxdepth 3 -name "*.recipe" | xargs grep -ni --col $1
}
whence () 
:

-

使い方:

-

パッチファイルで、「makefile」を含む行を表示:
~> inpatch makefile

-

レシピファイルで、「koader」を含む行を表示:
~> inrecipe koader

-

パッケージの作成:
~> cd ~/Git/haikuporter/
~/Git/haikuporter> hp koader

→以降にある、「4. 「haikuporter」ツールを使う:」になってから試してください。だんまりになります。

-


7). ヘルプの表示:

「haikuporter」のすべてのオプションを表示

~> cd ~/Git/haikuporter/
~/Git/haikuporter> haikuporter --help

Usage: haikuporter [options] portname[-portversion]

Options:
  --version             show program's version number and exit
  -h, --help            show this help message and exit
  -l, --list            list available ports
  --list-packages       list available packages
  -a, --about           show description of the specified port
  -s, --search          search for a port (regex)
  --search-packages     search for a package (regex)
  -o, --location        print out the location of a recipe (via search, for
                        scripted editing)
  -q, --quiet           suppress output from build actions
  -v, --verbose         show why the recipe is broken
  -y, --yes             answer yes to all questions
  -j JOBS, --jobs=JOBS  the number of concurrent jobs to build with
  -S, --strict-policy   require strict packaging policy adherence; packaging
                        will fail on any policy violation
  --debug               show Python stack traces for fatal errors
  -n, --nopatch         don't patch the sources, just download and unpack
  -e, --extract-patchset
                        extract current patchset(s) from port source(s)
  -G, --no-git-repo     don't create git-repo(s) for port source(s)
  -B, --patch-files-only
                        don't build the port, just download, unpack and apply
                        patch files; don't call PATCH() though
  -b, --nobuild         don't build the port, just download, unpack and patch
  -p, --nopackage       don't create package, stop after build
  --all-dependencies    build all outdated dependencies for the given port.
  --get-dependencies    install all needed dependencies, then build the port
  --update-dependencies
                        build or update required dependencies (stop on hpkg),
                        then build the port
  --missing-dependencies
                        build missing direct and indirect dependencies, then
                        build the port
  --no-source-packages  don't create any source packages
  --test                run tests on resulting binaries
  -C, --nochroot        build without a chroot()-environment - meant for
                        debugging the build/install process
  -E, --enter-chroot    just enter the chroot()-environment, do not build
  -f, --force           force to perform the steps (unpack, patch, build)
  -F, --preserve-flags  don't clear any flags when a changed recipe file is
                        detected
  -P PORTSFILE, --portsfile=PORTSFILE
                        handle all ports in the given file
  --create-source-packages
                        build only the (regular) source packages
  --create-source-packages-for-bootstrap
                        build only source packages as required by thebootstrap
                        image
  --do-bootstrap        build all packages with cyclic dependencies
  -w WHY, --why=WHY     determine why the given port is pulled in as a
                        dependency of the port to be built
  -D, --analyze-dependencies
                        analyze dependencies between ports and print
                        information; no port parameter required
  -c, --clean           clean the working directory of the specified port
  --purge               clean the working directory and remove downloads of
                        the specified port
  -g, --get             get/update the ports tree
  -t, --tree            print out the location of the haikuports source tree
  --lint                scan the ports tree for problems
  --config=CONFIGFILE   specifies the location of the global config file; the
                        default is "~/config/settings/haikuports.conf"
  --cross-devel-package=CROSSDEVELPACKAGE
                        path to the cross development package (the actual
                        "sysroot" package); the default (when cross-building
                        at all) is the one to be found in
                        "/boot/system/develop/cross" matching the target
                        architecture
  --secondary-cross-devel-packages=SECONDARYCROSSDEVELPACKAGES
                        comma-separated list of paths to a secondary cross
                        development package (the actual "sysroot" package);
                        one path must be specified for each configured
                        secondary target architecture (specified in the same
                        order)
  --licenses=LICENSESDIRECTORY
                        path to the directory containing the well-known
                        licenses; the default is "<systemDir>/data/licenses"
  --system-mimedb=SYSTEMMIMEDB
                        path to the directory containing the system MIME DB;
                        the default is "<systemDir>/data/mime_db"
  --command-mimeset=COMMANDMIMESET
                        specifies the "mimeset" command; the default is
                        "mimeset"
  --command-package=COMMANDPACKAGE
                        specifies the "package" command; the default is
                        "package"
  --command-package-repo=COMMANDPACKAGEREPO
                        specifies the "package_repo" command; the default is
                        "package_repo"
  --cross-tools=CROSSTOOLS
                        specifies the path to the cross-tools directory
                        created by the Haiku build system's configure script
  --sourceforge-mirror=SOURCEFORGEMIRROR
                        mirror to be used for sourceforge
  --no-system-packages  do not use system packages to resolve dependencies
  --system-packages-directory=SYSTEMPACKAGESDIRECTORY
                        specifies the directory to be used to look up system
                        packages (only applies to build master mode)
  --list-dependencies   list dependencies of a port
  --build-master        run as build master and delegate builds to builders
  --build-master-output-dir=BUILDMASTEROUTPUTDIR
                        specifies where build master output shall be written
  --local-builders=LOCALBUILDERS
                        number of local builders
  --console             display a build master curses console
  --repository-update   update dependency infos in the repository
  --check-repository-consistency
                        check the consistency of the repository
  --no-repository-update
                        do not update dependency infos in the repository
  --no-package-obsoletion
                        do not move obsolete packages out of packages dir
  --prune-package-repository
                        prune the package repository
  --create-package-repository=CREATEPACKAGEREPOSITORY
                        create a package repository at the given output path
  --check-package-repository-consistency
                        check consistency of package repository by dependency
                        solving all packages
  --literal-search-strings
                        treat search strings as literals instead of as
                        expressions
  --print-raw           print machine readable output for use by scripts
  --print-filenames     print filenames instead of package names in package
                        listings and searches
  --ignore-messages     ignore messages within recipes
  --ports-for-files     list all ports affected by the supplied list of files
  --ports-for-packages  list ports producing the supplied list of packages
  --active-versions-only
                        only check in active versions of ports instead of all
                        ports
  --check-ports-releases
                        check for newer releases of ports published upstream

→この一覧が表示されないと、haikuporter の準備に失敗しています。

ports 名だけでなく、ports のバージョン名が指定できるのがポイント。

-

-


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

-

4. 「haikuporter」ツールを最初に起動したとき、すべての更新が実行:

-

セットアップ後に、最初に起動したときのみ、全ての「ports」のチェックと更新が実行されます

ヘルプとバージョンの表示を除いた、どのコマンドを使っても、最初だけ、全ての「ports」のチェックと更新が入ります。更新されないと前に進みません。

また、「ports」の中に、使われるアーキテクチャごとに作業ファイルが作成されます。

-

例: 最初に「ports」の更新を確認:

~> cd ~/Git/haikuporter/
~/Git/haikuporter> haikuporter -v

Warning: Found old repository format - repopulating the repository ...(水色のメッセージがひとつ)

:
packageEntries: warning: "devel" doesn't seem to be a valid package suffix.
packageEntries: warning: "devel" doesn't seem to be a valid package suffix.

→和訳:

警告:古いリポジトリフォーマットを見つけました - リポジトリの再配置... : packageEntries: 警告:「devel」は有効なパッケージサフィックスではないようです

haikuporter (どのコマンドでも)を起動した最初にだけ表示。設定に合わせたツリーの正常性や更新をチェックをしているみたい。

→処理中しばらくだんまりになるので、何を実行しているのかわかるように、最初だけコマンドに「-v」を付けました。ports のアルファベット順にメッセージが流れるので時間の経過がわかり安心できます。

-

遅いUSB メモリを使っていると1時間ほど、だんまりになります。 USB 2.0 のUSB メモリの場合、1時間ほどで正常に戻りましたが、何もできなくなりました。 USB 3.0 ならもっと早く終わるはずです。

しばらくパソコンが使えなくなるかもしれないので、タイミングを見計らって実施します。 更新が終われば、更新されていない個別の「ports」だけが対象なので、通常の速度に戻ります。

-

-


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

-

5. 「haikuporter」ツールを使う:

-


1). すべての「ports」の更新と状態を確認:

~> cd ~/Git/haikuporter/
~/Git/haikuporter> haikuporter -v

-

レシピが置かれたフォルダに「work-0.9.2 」のようなバージョン番号を含んだフォルダが自動で追加されました:

パッケージ化の前のビルドする時の作業フォルダです。32 ビットも指定すると、さらに「x86」付きのフォルダが増えます。

> cd /boot/home/Git/haikuports/app-editors/featherpad/
> ls -1
additional-files
featherpad-0.9.2.recipe
work-0.9.2

> ls -1 work-0.9.2
port.recipe  ←内容は「featherpad-0.9.2.recipe」と同じ

-

2). 有効な ports の一覧表示:

  • 「ローカルのリポジトリ」にパッケージ化する前のソースがあるかの表示
~/Desktop> cd
~> haikuporter --list
bash: haikuporter: コマンドが見つかりません

~> cd ~/Git/haikuporter
~/Git/haikuporter> haikuporter --list
0ad
0ad_data
:
zziplib

→パスが通っていません。

-

3).「grep」で欲しいアプリがあるかを確認:

~/Git/haikuporter> haikuporter --list | grep font

arabeyes_fonts
croscorefonts
farsi_fonts
fira_fonts
fontawesome     ←(注目)
fontboy
fontconfig
fontforge
fontsproto
fonttools
fontutil
kacst_fonts
lateef_font
lato_fonts
liberation_fonts
libfontenc
libxfont
msttcorefonts
nanumfont
scheherazade_font
timgmsoundfont
ubuntu_font_family
ukijorgfonts
unifont
urw_base35_fonts
x_series_fonts

Haiku での「grep」は抽出、および、該当文字列が「赤く」表示されます。

-

4).「リモートのリポジトリ」にパッケージ化されたアプリがあるかの表示:

~/Git/haikuporter> pkgman search fontawe
Status  Name         Description                            
------------------------------------------------------------
        fontawesome  A font containing scalable vector icons

→こちらは、ダウンロードした「ローカルのリポジトリ」でなく、ネット上のリポジトリにあります。 すでにパッケージ化された状態なので、すぐにインストール可能です。

-

  • ports をダウンロードして、「ローカルのリポジトリ」を作成する利点は、ソースがあり、パッケージ化する前なので、自分で加工しやすいこと。

-

-


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

-

6.「haikuports」ツリーにて、Linux から移植されたアプリを確認:

-


例: テキストエディタ「featherpad」:

-

在り処の表示:
~/Git/haikuporter> haikuporter --location featherpad

もしくは、

~/Git/haikuporter> haikuporter -o featherpad
/boot/home/Git/haikuports/app-editors/featherpad
/boot/home/Git/haikuports/app-editors/featherpad_x86

→32 ビットも指定していた場合に、「_x86」の行は表示(ports が作成)されます。 指定されていないときは、表示(作成)されません。

-

> cd /boot/home/Git/haikuports/app-editors/featherpad/
> ls -1
additional-files         ←(アプリによっては、あったりなかったり)
featherpad-0.9.2.recipe    ←(レシピファイル: 必須)
work-0.9.2            ←(作業フォルダ)自動で作られたもの

-

> ls -1 additional-files/
featherpad.rdef.in      ←(featherpad.rdef に付け加えたい内容を記述)

> ls -1 work-0.9.2
port.recipe           ←( featherpad-0.9.2.recipe と内容は同じ)

→作業フォルダは更新チェック、またはパッケージの作成時に自動的に作成されます。 最初は「レシピ」ファイルのみが入っています。

-

-


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

-

7.「haikuports」ツリーにて、Haiku 専用に作られたアプリを確認:

-


例: テキストエディタ「koder」:

-

在り処の表示:
~/Git/haikuporter> haikuporter -o koder
/boot/home/Git/haikuports/haiku-apps/koder

> cd /boot/home/Git/haikuports/haiku-apps/koder/
> ls -1
koder-0.5.3.recipe        ←(レシピファイル: 必須)
work-0.5.3             ←(作業フォルダ)自動で作られたもの

→アプリによりますが、「.rdef.in 」はソースの方に準備されていました。

-

→移植されたアプリだけでなく、Haiku のアプリも確認や修正ができます。感謝。

-

  • GitHub の「haikuports/haikuports 」に置かれているファイルが (ダウンロードされて)こちらに表示されています。

→「haikuports」にて、作業した成果(例えば、日本語化したアプリのレシピやパッチ)をアップしたいときのプルリクエスト先になります。

-

-


次の投稿に続く

-

-


まとめ

「HaikuPorter」ツールと、レシピファイルとパッチファイルを含んだ「haikuports」ツリーを入手しました。

レシピファイルは、Arch Linux の特徴といえるAUR で使われる「PKGBUILD 」ファイルと似たものと理解しました。たぶんベースは同じなんだろうと思います。理解の助けになったので、色々と手を出しておくべきですね。

-

ただし、プログラム言語のスキルが不足しているのがこれからの問題になりそう。

HaikuLinux ではありませんが、Linux からのアプリの移植が進んでいるのは、Haiku の特徴のひとつの「POSIX 互換」が大きく、アプリが「POSIX」に沿った作りであれば移植しやすいのだろうと思います。逆に有名どころの中にはそれに沿っておらず移植しづらいアプリがあるかもしれません。

-

環境が整ったので、これでアプリの日本語化に挑戦できます。

-

-


-

-

    目次

-

「投稿の先頭 へ」

-

-


-

「この目次 の先頭へ」

「本編の目次 に戻る」

-

USB メモリに、「nightly ビルド」の「Haiku R1/beta3」をインストール〈H135-3〉

登録日: 2021-10-04 更新日: 2021-10-22

現在も開発が続いているBeOS R5 のコミュニティ版の「Haiku R1/beta3」をインストールしました。 20年以上も永く開発が続いているのは、魅力があるOS ということです。やはり現在でも新鮮に感じます。

beta3 になったHaiku の備忘録です。(以前に投稿した情報も合わせて追記)

-

今回は、「nightly ビルド」の「ライブCD イメージ」で立ち上げて、そのライブ USB メモリの空きに「Haiku R1/beta3」をインストールしました。そういうことができるのもHaiku の特徴です。「nightly ビルド」だとリスクはありますがシステムは最新です。

-

-

使用したPC は「ASUS Chromebox CN60 」で、プロセッサは第4世代の「Intel Celeron 2955U 」です。

-

(注)リンクを戻るときはブラウザの左上の「←」をクリック

-

-


目次

-

「Haiku のiso イメージをダウンロード:」

「ライブUSB メモリの後ろの空きにHaiku をインストール:」

「立ち上げの度に「Haiku Boot Loader」が表示される件を回避:」

「UEFI メニューにメニューを追加:」

「日本語入力:」

「Haiku にて、気づいたところ:」

「まとめ へ」

-

「目次詳細 へ」

-

-


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

-

Haiku R1/beta3」のデスクトップ

-

立ち上げ時に「ブートスクリーン」が表示されます:

→ズラズラ流れるメッセージとか、クルクル回るアイコンよりもずっとクール。

どこまでステップが進んだかがわかります。余計なものは表示せず、さっさと立ち上がって欲しい人は中にはいるかもしれません。

-

「nightly ビルド」のデスクトップ画面:

→こちらは開発版ですが、更新が多いので不具合が解消されている可能性があります。

更新が遅れがちなドキュメント類はサイトで確認するので、デスクトップにあったドキュメント類のアイコンはありません。その他のアプリは同じように入っているようです。

-

「nightly ビルド」のアイコン:

→立ち上げデバイスには「てんとう虫」マークが付きます。「バグ(虫)がありますよ」ということかな。

-

現在使っているデスクトップ画面:

Haiku にはシンプルな明るめの壁紙が合うみたい。もう少し明るくてもいいかも。

テキストエディタは日本語のインライン変換ができる「Koder」を、ブラウザは確実に動く「Otter Browser」をインストールしました。どちらも馴染みがないアプリですが「おすすめのアプリ」として登録されていました。 たくさん試して、どんどん使っていけばいいと思います。

-

ちなみに、壁紙の設定をしていて気づいたのですが、デフォルトの壁紙は水色の背景に任意の位置に「水色の背景のHaiku の画像」を配置したものでした。つまり、水色(任意)の背景に、好きな写真を好きな位置にドラッグして配置できます(ありそうで、なかった機能)。

-

現在のシステムのバージョン:

2021-10-22 現在:

~> uname -v
hrev55560 Oct 22 2021 06:04:13

-

-


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

-

インストールの参考:

-

自分のPC はUEFI 立ち上げしかできないマシンです。

事前に、VirtualBox を「UEFI 立ち上げ」に設定して、 「Haiku R1/beta3」のインストールを確認 しました。

-

-


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

-

「ライブUSB メモリ」を作成、それをインストール先に利用:

-

開発版の「nightly ビルド 」を使いました:

-

  • 安定版との違いは、ローカルのドキュメント類が入っていないことと、 逐次更新されているので、システムが最新であること。

→ただし、選択したイメージが安定しているかは試してみないとわかりません。

-

UEFI 立ち上げのPC で「Haiku R1/beta3」のUSB メモリを立ち上げ:

-


「ライブUSB メモリ」自体の、後ろの空き領域に別のHaiku をインストール:

前回の投稿 の「やり方 A」を行ってから、「やり方 C 」を行う手順です

-

  • この手順の利点は、インストールの手間を減らせて、簡単にシステム領域(Haiku-USB)を拡げられること、および、使うUSB メモリが1本で済むことです。

→今回は、高速で大容量のUSB メモリ(USB 3.0 64GB)にインストールしました。

-

このやり方でなく、普通のやり方でインストールしたいときは、前回の投稿の「やり方 D 」にすれば良いです。

最初は手間ですが、一度システムが立ち上がるようになれば、インストールし直すとき、BeFS の領域だけ、BeFSで初期化して、そこに何度でもインストールできます。

-


おおまかな流れ:

-

1. 作成した「ライブUSB メモリ」を立ち上げ

2. 「ライブUSB メモリ」では、最初の立ち上げの時だけ「言語の選択」画面が表示されます。

3. 「日本語」を選ぶと、再起動後は、「言語の選択」画面は表示されないで日本語のデスクトップが表示されます。

→「インストーラー」アイコンはデスクトップから消えました。

→「ライブUSB メモリ」は、再起動すると、インストールをした状態と同じになり、そのまま使えます。保存も設定変更も可能です。(ありそうで、なかった機能)

4. 「ライブUSB メモリ」の後ろの空き領域にシステムを作成(Haiku-USB)

→インストール元に、「ライブCD」イメージを使用。

5. 再起動

6. 先頭にあるシステムをデータ交換用として、FAT(usb-data)で初期化

→不具合があるので、ちょっとしたコツがありました。

-

-


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

-

1. 「Haiku R1/beta3」の「nightly ビルド」のiso イメージをダウンロード:

-

ダウンロードについて:

-

途中のバージョンをダウンロードしても、インストールしてシステム更新すると、最新のバージョンになるので、 最新版をダウンロードするのが効率的です:

→「nightly ビルド」は開発版ですが、beta3 までになれば多くの不具合が解消されているはずなので、 最新にした方が安定している可能性があります。

→「nightly ビルド」の更新は多いので、2〜3日すると新しい版が出ていたりします。できるだけ一番上の最新版をダウンロードするようにすると良いです。すでにインストール済みでも、システム更新すれば最新版になるので、再インストールの必要はありません。

-

最新版のダウンロードを確認:

nightly ビルド

-

作業時点での最新版をダウンロード:

2021-10-04 現在:

tag name: hrev55482

-

ファイルを「~/ダウンロード/Haiku/」フォルダに移動

-

チェックサムの確認:

$ cd ~/ダウンロード/Haiku/

$ sha256sum haiku-master-hrev55482-x86_64-anyboot.zip
953a3c7cb9594ad4940a0c4e8979e652126dcb7031413ff319c9075259c343c8  haiku-master-hrev55482-x86_64-anyboot.zip

-

-


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

-

2. 「ライブUSB メモリ」の作成:

  • まれに、Linux 等が立ち上がらないUSB メモリもあるので、使っているPC で、ライブUSB メモリとして使ったことがある製品だと安心です。

-

EFI パーティションの確認:

f:id:FuRuYa7:20210913194846j:plain

→CD と同じでファイル名は大文字です。VirtualBox での立ち上げではないので支障はありません。

-

-


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

-

3. 作成した「ライブUSB メモリ」を挿して、「Haiku」を立ち上げ

-

PC により、キー操作は異なります。

以降は自分のPC の場合:

-

1). ライブUSB メモリをPC に挿入して、電源オン。

→「白いうさぎ」は、Chromebook で「フルROM」のファームウェア置換をしたときに表示される「Coreboot 」のロゴ画面です。一般的なPC では表示されません。

-

2).「白いうさぎ」画面が表示されたらすぐに「Esc」キー

  • 「白いうさぎ」画面が表示されないときは「Esc」キーを押したまま電源オン。

-

3). 「UEFI 設定」メニューが表示

「Boot Menu」

→一覧の一番下に表示されている「USB: SanDisk Extreme 0001」(USB メーカーと製品名)を選びました。

-

→ライブCD で立ち上がりました:

-


4). 「言語選択」画面が表示:

→「日本語」を選んで、「Haiku を試用」をクリック

-


5). 日本語のデスクトップが表示

-

-


6). パネルのトレイにある時計にて、時刻の設定:

時計が乱れているので、最初に設定しました。

タイムゾーンの設定と「同期」の実施

-


7). 再起動

-


8). 日本語のデスクトップが表示

これ以降は、インストールをした状態と同じになり、 「言語の選択」画面は表示されないで日本語のデスクトップが表示されます。

→「インストーラー」アイコンは消えていますが、メニューから起動できます。

-

ちなみに、インストーラーの画面は少しだけ違います。

→赤いスタンプが押されています。

-


9). 参考: 「nightly ビルド」のライブUSB メモリで色々と調べてみました:

-

確認:

~> ls /
bin  boot  dev  etc  Haiku  packages  system  tmp  var

~> ls /boot/
_packages_  home  system  trash

~> ls /boot/home
config  Desktop  mail  screenshot1.png

~> ls /boot/home/Desktop/
Home

~> ls /boot/system/
add-ons  data           haiku_loader.bios_ia32  packages        Tracker
apps     demos          kernel_x86_64           preferences     var
bin      Deskbar        lib                     runtime_loader
boot     develop        non-packaged            servers
cache    documentation  package-links           settings

-

~> ls /boot/system/demos/
Chart  Cortex    GLTeapot  Mandelbrot    Pairs     Playground  Sudoku
Clock  FontDemo  Haiku3d   OverlayImage  PatchBay  Pulse

→デモも入っています。

~> ls /boot/system/apps/
AboutSystem      DriveSetup              MediaPlayer        ShowImage
ActivityMonitor  Expander                MidiPlayer         SoftwareUpdater
AutoRaise        GLInfo                  NetworkStatus      SoundRecorder
BootManager      HaikuDepot              Pe                 StyledEdit
CharacterMap     Icon-O-Matic            People             Terminal
CodyCam          Installer               PoorMan            TextSearch
Debugger         LaunchBox               PowerStatus        TV
DeskCalc         LegacyPackageInstaller  ProcessController  Vision
Devices          Magnify                 RemoteDesktop      WebPositive
DiskProbe        Mail                    Screenshot         Workspaces
DiskUsage        MediaConverter          SerialConnect

→通常のアプリも入っています。

~> df
 Mount             Type      Total     Free      Flags   Device
----------------- --------- --------- --------- ------- ------------------------
/boot             bfs       600.0 MiB 103.7 MiB QAM-P-W /dev/disk/usb/0/0/0
/boot/system      packagefs   4.0 KiB   4.0 KiB QAM-P-- 
/boot/home/config packagefs   4.0 KiB   4.0 KiB QAM-P-- 

→ローカルのドキュメント類が入っていないので、システムの空きは「103.7 MiB」です。

-

-


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

-

4. 「ライブUSB メモリ」の後ろの空きに、「Haiku」をインストール:

-


1). メニュー →Applications →Drivesetup

-


2). USB の後ろの「空のスペース」を選んで、右クリック→新規作成

パーティションサイズ: 「残りすべて」
パーティション名: 「Haiku-USB」
パーティション種別: 「Be File System」

→「新規作成」→「変更を書き込む」

→「未フォーマット(Be File System)」が表示されました:

-

USB の「未フォーマット(Be File System)」を選んで、右クリック→フォーマット→「Be File System」

→「続ける」

-

ボリューム名: 「Haiku-USB」そのまま
ブロックサイズ: 「2048(推奨)」そのまま

→「フォーマット」→「変更を書き込む」→「OK」

-

Drivesetup を閉じます。

-


3). メニュー →Applications →「インストーラー」

→「続ける」

-


4). 「インストーラー」が起動:

インストール元: 「Haiku - 710.00 MiB」 ←(日本語に設定されたCD イメージ)
インストール先: 「haiku-USB - 57.85 GiB」を指定

-

→「開始」をクリック

-


5). インストールが完了:

→「終了」

-


6). メニュー →シャットダウン →「再起動」

-


7).「白いうさぎ」画面が表示されたらすぐに「Esc」キー

-


8). 「UEFI 設定」メニューが表示

「Boot Menu」

→一覧の一番下に表示されている「USB: SanDisk Extreme 0001」(USB メーカーと製品名)を選びました。

-


9). Enter したら、すぐに「スペース」を連打:

遅れるとライブCD イメージ (Haiku) で立ち上がります。

→うまく行けば、「Haiku Boot Loader」画面が表示:

-


10). 「Haiku Boot Loader」画面が表示:

-

-

下記に変更:

Select boot volume  (Current: Haiku-USB) 

→「Haiku」はCD のボリューム名で、「Haiku-USB」は今回作成したシステムのボリューム名です。

-

「Continue booting」が選ばれているので、Enter

-


11). 新しくインストールした「Haiku-USB」でデスクトップが立ち上がりました:

→デスクトップの「Haiku-USB」アイコンに「てんとう虫」アイコンが付いていることを確認。

-


12). メニュー →Applications →Drivesetup

-


13). 先頭にあるシステム「Haiku」を選んで、右クリック →「マウント解除」

Haiku」を選んで、右クリック →削除

→「続ける」

「空きのスペース」になりました。

-


14). メニュー →シャットダウン →「再起動」

→正常に立ち上げできました。

-

-


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

-

5. 先頭にできた「空きのスペース」をFAT にフォーマットしたら問題発生:

-

「空きのスペース」をそのままにしておけば問題はなかったのですが、

先頭にある「空きのスペース」を使おうと、FAT にフォーマットしたら、「以前遭遇した問題 」に似た現象が発生しました。

-


問題: 立ち上げの度に「Haiku Boot Loader」が表示されます:

  • インストールのときに、「Select boot volume」にパーティション名が登録できないことがあるみたい。

→以前は「None」の表示でしたが、今回は「Haiku-USB」が登録されていて、「Haiku Boot Loader」が表示されます。 少し現象が違うみたい。

-


1). ライブUSB メモリを利用するときは、先頭に「空きスペース」が必要でした

  • GPT でなく、MBR フォーマット(Intel フォーマット)の場合、つまり、「ライブUSB メモリ」では、
ドライブの先頭に「空きスペース」のパーティションがないと、「Haiku Boot Loader」が表示されます

-

  • 先頭を「空きのスペース」のままにしておけば問題は出ませんが、もったいないです。

→ちなみに、そのままフォーマットするのでなく、一度削除して新規作成すると使える領域が5MB ほど増えます。また、「空きのスペース」の先頭の一部だけを「空きのスペース」にするのは、Haiku のツールでは難しかったです。

-


2). Haiku の「DriveSetup」ツールは、途中にある先頭の「空きスペース」のパーティションを表示しません

  • ext4 のフォーマットもできません。

パーティション操作が難しいので、他のディストリビューションにマウントして「gparted」で操作しました。

-


3). 回避策 1/2: 他のディストリビューションにて操作:

-

(1). 今回は、Xubuntu 20.04.3 にUSB メモリをマウントして、「gparted」を起動

-

(2). USB メモリを選択

-

(3). 先頭にある「Haiku」(bfs) を削除

-

(4). できた「未割り当て」に、「ext4」で「1MB」の領域を作成

→フォーマットで最小サイズが決まっています。fat32 だと32MB、fat16 だと16MB 必要でした。

-

(5). できた「未割り当て」に、「fat32」で「すべて」の領域を作成

→適用

-


4). 回避策 2/2: 「Haiku」にて操作:

-

(1). 「Haiku-USB」で立ち上げ

→スペース連打しなくても「Haiku Boot Loader」が表示されるので、「Haiku-USB」を選択

-

(2). 「DriveSetup」を起動

-

Ext4 は未サポートのフォーマットなので「Ext2 File System」と表示されています。

-

(3). 「FAT32 File System」の「usb-data」を右クリックして「FAT32 File System」でフォーマット

-

(4). 先頭の「Ext2 File System」を右クリックして削除:

→すべてのデバイス番号の最後の数字が変わりました。先頭の「空きのスペース」は表示されません。

-

(5). 再立ち上げ

→「Haiku Boot Loader」が表示されなくなりました

-

(6). ちなみに、gparted で確認すると:

→先頭の「空きのスペース」は存在していました。

-

-


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

-

6. インストール後の設定:

-


1). USB メモリを挿して、電源オン

-


2). 立ち上げで、「白いうさぎ」画面が表示されたらすぐに「Esc」キー

-


3). 「UEFI 設定」メニューが表示

-


4). 手動で、UEFI メニューに「Haiku-USB」を登録:

-

(1). Boot Mnager →Add Boot Option

-

(2). USB に着目して、下記を選択:
Haiku-USB,
:

→Enter

-

<EFI> フォルダを選択して、Enter

<BOOT> フォルダを選択して、Enter

→「BOOTX64.EFI」ファイルを選択して、Enter

-

(3). 「Input the description」(メニュー項目名)を選択して、Enter

→「Haiku-USB」を入力して、Enter

-

(4). 「Commit Changes and Exit」(変更の書き込み)を選択して、Enter

-

(5). Esc で上位に戻ります

-


5). 手動で、UEFI メニューの並びを変更:

メニューの一番下に登録されていて、使いづらいので変更:

-

(1). Boot Mnager →Change Boot Order

-

(2). メニュー項目一覧全体が選ばれているので、

→Enter

-

(3). 作成した「Haiku-USB」を選んで、テンキーの「+」「-」で 2番め(任意)に移動

→Enter

-

(4). 「Commit Changes and Exit」(変更の書き込み)を選択して、Enter

-

(5). Esc で上位に戻ります

-


6). 「Boot Menu」

→2番めの「Haiku-USB」を選んで、Enter

-


7). 日本語のデスクトップが表示

-


8). パネルのトレイの時計が正しいか確認

時計が乱れていたら、

タイムゾーンの設定して、「同期」を実施

-

-


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

-

7. 参考: Haiku で、システム更新:

-


GUI で、システム更新:

メニュー →Applications →「ソフトウェアの更新」

→時間がかかりました。

-


コマンドで、システム更新:

~> pkgman refresh

~> pkgman update

→「~>」は「作業ディレクトリ名」を含んだプロンプトです。

-

メニュー →シャットダウン →再起動

-

-


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

-

8. 参考: 「HaikuDeport」にて、アプリをインストール:

-

  • 「すべてのアプリ」タブを選んで、検索、インストール

-

1). 日本語入力: 「mozc」

→現在、Haiku で日本語入力するなら、これになります。 「半角/全角」キーで日本語オン/オフできます。

  • いつもだとインストールしたらすぐ使えるのですが、今回は再起動が必要でした。

→再起動後、システムトレイ(右上の 2段目)に「キーボード」アイコンが表示されました。

-

2). ブラウザ: 「Ottr-browser」

Haiku 標準のブラウザ「WebPositive」だと、もたつくだけでなく、「はてなブログ」のログイン画面で固まってしまいます。ブログの編集ができないのは個人的には致命的です。

「Ottr-browser」は少し重め。「WebPositive」よりはマシだし、なにより「はてなブログ」のログインが可能です。

  • Haiku に対応のブラウザは少ないので、使っています。

  • 「Ottr-browser」ではフレームの表示ができないサイト(Qiita の投稿画面)がありました。

  • 「WebPositive」はHaiku のドキュメントビュワーと割り切りました。

→追記:

開発版のnightly ビルドの「hrev55438」で「WebPositive」のもたつきと「はてなブログ」のログイン画面で固まる件は解消。

今度は、Web フォントがダウンロードできません。たぶん、これで回避したのかも。 これだと「はてなブログ」の編集で、編集アイコンや「写真」カテゴリとかのマークが表示されません。

しばらく使わずにいたら、「hrev55560」では再びログイン画面から前に進まなくなっています。 試行錯誤しているのかな。ブログの編集ができないのは個人的には致命的。

-

他に使えるブラウザがないので、ブラウザは「Ottr browser」を使っています。ときどきコケますが、再起動すると前の状態に復帰できます。優秀と言えます。

-

-

3). アプリのパスのコピーに: 「CopyNameToClipboard」

アプリを右クリック→アドオン→「CopyNameToClipboard」にて、そのアプリのパスをクリップボードにコピーできます。その後、右クリックで貼り付けできます。

ターミナルとか、テキストエディタの編集時に活躍します。

-

4). テキストエディタ: 「koder」

Haiku 専用のアプリなので、「Mozc」での日本語入力時にインライン変換できます。これは移植されたアプリよりも優れた大きなポイント。メニューも最近日本語化されました。

-

5). テキストエディタ: 「featherpad」

Qt5 アプリなので、「Ottr-browser」をインストールするのなら、依存が少なくて済みます。 バージョンが低く、メニューは日本語化されていませんが、初期設定が済めば支障はありません。

-

6). テキストエディタ: 「kwrite」

Haiku 標準のエディタは行番号が行頭に表示されないし、テーマも指定できません。それらの機能のあるテキストエディタをインストールしてみました。

メニューが日本語化され、日本語入力でき、背景にダーク系 (Monokai) が選べ、行番号が表示でき、編集していたファイルを記憶しています。Markdown ファイルのハイライト表示にも対応。

KDE アプリなので、依存が多くて使われるサイズが大きくなります。

-

7). 画像編集: 「KolourPaint」

Haiku のキャプチャー画像を加工するのに使っています。

一度、単体で起動してやらないと、右クリックのアプリの一覧に表示されませんでした。 その後は、右クリックから起動できるようになりました。

-


8). その他の設定は前回の投稿を参照:

前回の投稿

-

-


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

-

9. 「Haiku」にて、気づいたところ

-


1). 注意: 「StyledEdit」にて「日本語を含むテキストファイル」を保存するときは、

ファイル →名前を付けて保存 →「文字コード」タブ →「ユニコード(UTF-16)」→保存

-

→日本語が含まれていると、Xubuntu の「mousepad」にて読み込み時に「不正なUTF-8」となり開けませんでした。

→「featherpad」で開くと日本語が文字化けしました。

  • 英語圏の人やコードしか書かない人向きです。日本語を使うには面倒くさいです。

→日本語のインライン変換ができる「koder」を見つけたので、そちらがメインになりそう。

-


2). 問題 : 自分のPC でHaiku を使うと、CPU ファンが回転しません? :

→熱くなったら、ファンが回るXubuntu に切り替えることで、冷やしています。

-

使っているPC で、長時間の運用をするなら、時々さわってみた方がいいかも。 また、USB 接続の低速ファンを付けるのも有効そう。

ちなみに、Haiku で温度監視できるアプリは見つからず。あっても良さそう。

-

→syslog (/boot/system/var/log/syslog) を確認すると、ACPI の初期化でエラーしています。 個別のPC の問題かもしれませんが、情報提供も兼ねて、不具合報告しました。

自分のPC はファームウェアを変更しているので、サポート外かも。

-

発行した不具合報告:

Haiku Ticket #17296

-

参考:

Haiku の不具合報告と検索

Haiku では不具合報告のことを「Ticket」と読んでおり、発行番号で管理されています。 まずは、同じ現象がないか検索して、存在しないときだけ発行するのがルールのようです。

-

報告にはHaiku のアカウントを登録する必要があります。その後、上記のページで検索、および発行ができます。

→注意点: アカウント登録時のパスワード入力の下にある入力欄には、その下に表示される質問の答えを入力します。 失敗すると人間でなくロボットかい、と言ってきます。

-

参考: 添付した情報:

-

  • システムの情報:
sysinfo > sysinfo.txt

-

  • Haiku のシステムのメインログ
cat /boot/system/var/log/syslog > syslog.txt

-

  • 使用されているドライバーのリスト:
listimage | grep drivers/ > listimage.txt

-

  • ベンダーと PCI id を含む詳細なハードウェアのリスト:
listdev > listdev.txt

-

  • USB 関連の情報:
listusb -v > listusb.txt

-


参考: KDL

カーネルで問題があるときは、

kdebug> 

というプロンプトに落ちるときがありますが、通常でも、Alt+Print+D で意図的に入ることが出来ます。 KDL 自体はシェルの一種で、システム情報を出力(表示)するコマンドを実行できます。

-

カーネルでなくアプリが落ちたときは、デバッガー(Debugger )が起動されて、「save report」コマンドでデスクトップ上にテキストファイルとして情報を残せるときもあります。

また、ログ表示みたいなものもあります。「open /var/log/syslog」としたときと似たような画面です。

-


3). 追記 : 参考: システム更新中に固まって、再起動したら立ち上げでデスクトップを表示しきれず

→背景が水色で、「手の平」のマウスカーソルが表示されたままになりました。

-

Ctrl+Alt+Del にて、「チームモニター」ダイアログが開きます:

-

「デスクトップの再起動」ボタンがあれば、それを押すとデスクトップが表示
ボタンがない場合は「強制再起動」ボタンを押します。

-

デスクトップが立ち上がったら、

コマンドで、システム更新:
~> pkgman refresh
~> pkgman update

→再起動

正常にデスクトップが表示されるようになりました。

-

-


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

-

10. 「WebPositive」で気づいたところ

-

  • 「nightly ビルド」のシステム更新で、 「WebPositive」のもたつきと「はてなブログ」のログイン画面で固まる件が解消されました

→ただし、「WebPositive」の新たな問題が見つかりました:

-

問題: 「nightly ビルド」の「hrev55438」にて、「WebPositive」で記号アイコンが豆腐文字、または表示されず

-

最初はフォントの全角記号と思っていましたが、Web フォント だったみたい。 ローカルでなく、リモートに置けるフォントのようです。使うフォントを同じにすることで見た目のデザインを統一できる利点があります。

-

参考:

Webフォントとは?メリット・デメリットなど 完全ガイド初級編【まとめ】

-

「WebPositive」の問題か切り分けるために「Otter Brawser」をインストール:

-

例1. 「はてなブログ」にログインして、ブログの編集画面を表示:

-

「WebPositive」の場合:

→左側の「編集」ボタンが豆腐文字です。また、編集サイドバーの左の「>」やその下にある「カテゴリー」アイコンが表示されていません。よく使う「写真」アイコンには豆腐文字もないので位置がわからないのが辛いところ。

-

「Otter Brawser」の場合:

→正常です。編集ボタンと「>」の下にある「カテゴリー」アイコンに注目

-

例2. 「Qiita」のサイトを表示:

-

「WebPositive」の場合:

→「GitHub」や「Twitter」のアイコンが表示されていません。文字があるため、Web フォントのロードに失敗していても使えます。

-

「Otter Brawser」の場合:

→正常です。ただし、別の投稿画面ではフレームを意図された位置に表示できません。これは「Otter Brawser」にも問題点があり、万能ではないということです。閲覧には支障ありません。

-

調べたら、「WebPositive」は、サーバーからWeb フォントを(今は?)ダウンロードできないみたい。

事前にダウンロードしておけば解決しそうですが、上記のサイトで使われているフォントは自社のサーバーに自前のWeb フォントを置いて使っているみたいなので難しそう。またフォントの変更にはCSS ファイルの修正が必要なので、個人での対応は無理みたい。

→「はてなブログ」の編集が必要な人には「WebPositive」は使いづらいブラウザということです。

-

それはそれとして、Web フォントがロードできなくても、代替えの文字が表示されるような支障ないサイトにしてほしいところ。「写真」カテゴリの位置に、豆腐文字も表示されないのはどうかなと思います。 マウスを持っていけば「吹き出し」 が表示されるようなので、ギリギリセーフ。

-

ちなみに、「WebPositive」の情報を検索するとき、英語圏のレビューでは「Web+」と表現している場合が多いようです。

-

-


まとめ

「nightly ビルド」なので不安定なのかと思ったら、通常版よりもpanic になる頻度がぐっと減り安定しています。あとは、個人のPC としては、CPU ファンが回ってくれれば(気づかないとPC の寿命に影響するので)安心して使えそう。

-

次回は、アプリの日本語化に挑戦。

-

-


-

-

    目次

-

「投稿の先頭 へ」

-

-


-

「この目次 の先頭へ」

「本編の目次 に戻る」

-

USB メモリに、UEFI 立ち上げで「Haiku R1/beta3」をインストール 後編〈H135-2〉

登録日: 2021-09-30 更新日: 2021-10-20

現在も開発が続いているBeOS R5 のコミュニティ版の「Haiku R1/beta3」をインストールしました。 20年以上も永く開発が続いているのは、魅力があるOS ということです。やはり現在でも新鮮に感じます。

beta3 になったHaiku の備忘録です。(以前に投稿した情報も合わせて追記)

-

USB メモリに「Haiku R1/beta3」をインストールするやり方の後編で、 「ライブCD イメージ」で立ち上げての、USB メモリへのインストール手順です。

-

-

使用したPC は「ASUS Chromebox CN60 」で、プロセッサは第4世代の「Intel Celeron 2955U 」です。

-

(注)リンクを戻るときはブラウザの左上の「←」をクリック

-

-


目次

-

「Haiku のiso イメージをダウンロード:」

「やり方 A: 作成した「ライブUSB メモリ」にて、再起動してそのまま使う:」

「やり方 B: 作成した「ライブUSB メモリ」にて、アプリ等を削って空きを作る:」

「やり方 C: 作成した「ライブUSB メモリ」にて、別の領域にインストール:」

「やり方 D: 手動でパーティションを分割して、インストール:」

「UEFI 設定のメニューの設定:」

「日本語入力:」

「まとめ へ」

-

「目次詳細 へ」

-

-


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

-

Haiku R1/beta3」のデスクトップ

-

立ち上げ時に「ブートスクリーン」が表示されます:

-

通常版のデスクトップ画面:

-

→インストールにて、モニタの解像度の最大値である「1920x1080」に自動で設定されました。

インストールのやり方は色々ですが、違いがわかるのは、デスクトップにある「ボリューム名」や一緒に並んでいるアイコンなどです。

-

通常版のアイコン:

→立ち上げデバイスのアイコンには「木の葉」マークが付きます。

-

-


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

-

インストールの参考:

-

自分のPC はUEFI 立ち上げしかできないマシンです。

事前に、VirtualBox を「UEFI 立ち上げ」に設定して、 「Haiku R1/beta3」のインストールを確認 しました。

-

-


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

-

1. 「Haiku R1/beta3」のiso イメージをダウンロード:

-

ダウンロード:

Get Haiku!

-

ミラーリストを選択:

Location: New York, United States (64-bit iso)

→「ファイルを保存する」

-

ファイルを「~/ダウンロード/Haiku/」に移動

-

チェックサムの確認:

$ cd ~/ダウンロード/Haiku/

$ sha256sum haiku-r1beta3-x86_64-anyboot.iso
33c8b58c4bd3d6479554afbd3a9b08709c8f8086e98ad339b866722e9bb1e820  haiku-r1beta3-x86_64-anyboot.iso

-

-


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

-

2. 「ライブUSB メモリ」の作成:

  • 使っているPC で、ライブUSB メモリとして使ったことがある製品だと安心です。

→まれに、Linux 等が立ち上がらないUSB メモリもあります。

-

EFI パーティションを確認:

f:id:FuRuYa7:20210913194846j:plain

→当然ですが、CD と同じでファイル名は大文字です。VirtualBox での立ち上げではないので支障ありません。

-

-


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

-

3. 作成した「ライブUSB メモリ」をセットして、「Haiku」を立ち上げ

-

PC により、キー操作は異なります。

以降は自分のPC の場合:

-

1). ライブUSB メモリをPC に挿入して、電源オン。

→「白いうさぎ」は、Chromebook で「フルROM」のファームウェア置換をしたときに表示される「Coreboot 」のロゴ画面です。一般的なPC では表示されません。

-

2).「白いうさぎ」画面が表示されたらすぐに「Esc」キー

  • 「白いうさぎ」画面が表示されないときは「Esc」キーを押したまま電源オン。

-

3). 「UEFI 設定」メニューが表示

「Boot Menu」

→一覧の一番下に表示されている「USB: Verbatim Store N Go」(USB メーカーと製品名)を選びました。

-

→ライブCD で立ち上がりました:

-


4). 「言語選択」画面が表示:

→「日本語」を選んで、「Haiku を試用」をクリック

-


5). 日本語のデスクトップが表示

-

-

-


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

-

インストールのやり方は色々:

-

UEFI 立ち上げで「Haiku R1/beta3」のUSB メモリを立ち上げる場合:

-

-


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

-

やり方 A: 作成した「ライブUSB メモリ」にて、再起動してそのまま使う:

-

  1. 作成した「ライブUSB メモリ」を立ち上げ

  2. 「ライブUSB メモリ」の最初の立ち上げの時だけ「言語の選択」画面が表示されます。

  3. 「日本語」を選ぶと、再起動後は、「言語の選択」画面は表示されずに、すぐに日本語のデスクトップが表示。 また、「インストーラー」アイコンが消えました。

-

→「ライブUSB メモリ」は、再起動すると、インストールをした状態と同じになり、そのまま使えます

-


1). 作成した「ライブUSB メモリ」で立ち上げ

-


2). パネルのトレイにある時計にて、時刻の設定

時計が乱れているので、最初に設定しました。

タイムゾーンの設定と「同期」の実施

-


3). 再起動

-


4). システム更新は、空きが少ないので出来ませんでした:

-

問題は、システムの領域(Haiku)がCD のサイズ(710 MiB) しかないこと:

-

試しに、システム更新:

→システム更新に失敗

-

空きが無くなり、この表示:

→緑のバーが赤色。

-

  • システム更新やアプリの追加はせずに、「ファイル修正」や「緊急時」に使うとか、「インストール元」として使う、ことになりそう。

  • 後ろにある「空のスペース」は、BeFS やFAT でフォーマットすれば、データの保存先に使えます。

-

-


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

-

やり方 B: 作成した「ライブUSB メモリ」にて、アプリ等を削って空きを作る:

-

やり方 A: の続きです。

-

  • システムの領域が狭いので、アプリ等を削って空きを作り、システム更新だけ、もしくはアプリのインストールだけ実施しました。

  • 大きなアプリのインストールは無理なので、素直に「やり方 C」を実施した方が楽です。

ただし、こちらを試すことで、Haiku のシステムの書き込み保護のしくみを勉強できました。

-

参考: GUI でインストールを行う「HaikuDept」は便利ですが空きが減ります

→最初の起動でおすすめアプリのアイコンがダウンロードされます。その分だけ空きが減りました。

→pkgman コマンドでインストールすればダウンロードされませんが、「HaikuDept」でないと表示されないアプリがあります。移植されたアプリ等。

-


1). 「ライブUSB メモリ」で立ち上げ

-


2). システムのバージョン(コミットのタグ名)の確認:

~> uname -v
hrev55181+51 Jul 22 2021 12:18:

通常よく使う下記はリリース番号の表示です:

~> uname -r
1

-


3). システムの空きを確認:

~> df
 Mount             Type      Total     Free      Flags   Device
----------------- --------- --------- --------- ------- ------------------------
/boot             bfs       710.0 MiB  44.6 MiB QAM-P-W /dev/disk/usb/0/0/0
/boot/system      packagefs   4.0 KiB   4.0 KiB QAM-P-- 
/boot/home/config packagefs   4.0 KiB   4.0 KiB QAM-P-- 

→インストール直後のシステムの空きは「44.6 MiB」でした。

この表示を見ると、システムのフォルダはファイルシステム(packagefs) としてマウントされているようです。

-


4). ドキュメント類は削除してもオンラインで確認できるので削除:

-

(1). be_book (BeOS API Documentation) の削除:
~> pkgman uninstall be_book

-

(2). userguide (各言語用のユーザガイド)の確認:
~> pkgman search userguide
Status  Name                   Description                                          
------------------------------------------------------------------------------------
S       haiku_userguide_ca     The Haiku user documentation (Catalan translation)   
S       haiku_userguide_de     Das Haiku Benutzerhandbuch auf Deutsch               
S       haiku_userguide_en     The Haiku user documentation                         
S       haiku_userguide_es     The Haiku user documentation (Spanish translation)   
S       haiku_userguide_fi     The Haiku user documentation (Finnish translation)   
S       haiku_userguide_fr     The Haiku user documentation (French translation)    
S       haiku_userguide_fur    The Haiku user documentation (Friulian translation)  
S       haiku_userguide_hu     The Haiku user documentation (Hungarian translation) 
S       haiku_userguide_id     The Haiku user documentation (Indonesian translation)
S       haiku_userguide_it     The Haiku user documentation (Italian translation)   
S       haiku_userguide_jp     The Haiku user documentation (Japanese translation)  
S       haiku_userguide_pl     The Haiku user documentation (Polish translation)    
S       haiku_userguide_pt_br  The Haiku user documentation (Brazilian translation) 
S       haiku_userguide_pt_pt  The Haiku user documentation (Portuguese translation)
S       haiku_userguide_ro     The Haiku user documentation (Romanian translation)  
S       haiku_userguide_ru     The Haiku user documentation (Russian translation)   
S       haiku_userguide_sk     The Haiku user documentation (Slovak translation)    
S       haiku_userguide_sv_se  The Haiku user documentation (Swedish translation)   
S       haiku_userguide_tr     The Haiku user documentation (Turkish translation)   
S       haiku_userguide_uk     The Haiku user documentation (Ukrainian translation) 
S       haiku_userguide_zh_cn  The Haiku user documentation (Chinese translation)   

→日本語(jp) と英語(en) だけを残すやり方もありますが、すべて削除してもオンラインで検索できます。

参考: デスクトップに置かれたアイコンに登録されているのは「xml」ファイルです。そこから見に行くローカルの「XSL」ファイルがアンインストールで削除されるのでアイコンからは開けなくなります。ブラウザにURL のブックマークを登録すれば支障はありません。

-

(3). userguide (各言語用のユーザガイド)の削除:
~> pkgman uninstall haiku_userguide_*

-


5). 個人的にあまり使わないパッケージを削除:

-

(1). 「Haiku にようこそ」の削除:
~> pkgman uninstall haiku_welcome

→最初の日本語化に使われますが、インストールが終われば要りません。

-

(2). vision (IRC client) の削除:
~> pkgman uninstall vision

-

(3). wpa_supplicant (無線のWPA、WPA2 のサポート) の削除:

自分のPC は有線LAN 接続なので無線LAN 関連は要りません。

~> pkgman uninstall wpa_supplicant

-

(4). pe (Haiku 標準のテキストエディタ) の削除:
  • stylededit があるし、日本語のインライン変換や行番号の表示もできないので個人的には要りません。

-

~> pkgman uninstall pe

-

(5). webpositive (Haiku 標準のWeb ブラウザ) の削除:
  • 空きを増やすために一時的に削除。「Otter Browser」を代わりにインストールするつもりでした。
~> pkgman uninstall webpositive

-

(6). bepdf (Haiku 標準のPDF ビュワー) の削除:
  • 空きを増やすために一時的に削除。システム更新後に再インストールできればいいけど?
~> pkgman uninstall bepdf

-


6). パッケージ管理ツールを使うと、削除してもバックアップが残ります:

  • パッケージを削除しても、空きを増やすにはバックアップの削除が必要でした。

-

(1). 空きの確認:
~> df
 Mount             Type      Total     Free      Flags   Device
----------------- --------- --------- --------- ------- ------------------------
/boot             bfs       710.0 MiB  44.4 MiB QAM-P-W /dev/disk/usb/0/0/0
/boot/system      packagefs   4.0 KiB   4.0 KiB QAM-P-- 
/boot/home/config packagefs   4.0 KiB   4.0 KiB QAM-P-- 

→多くのパッケージを削除しましたが、空きはあまり増えていません。

-

(2). パッケージを削除したときに表示されるメッセージを抜粋:
Old activation state backed up in "state_2021-09-17_22:57:32"

-

-

(3). バックアップされているかの確認:
~> ls -1  /boot/system/packages/administrative/
activated-packages
state_2021-09-18_18:15:37
state_2021-09-18_18:16:01
state_2021-09-18_18:16:23
state_2021-09-18_18:16:41
state_2021-09-18_18:17:00
state_2021-09-18_18:17:19
state_2021-09-18_18:17:38
state_2021-09-18_18:17:54
writable-files

→アプリのインストールやアインインストール、システム更新などがあるたびにバックアップされます。 立ち上げ時にスペース連打で「Haiku Boot Loader」を起動して、その時点を指定して戻れます。(データは別、アプリのみ)

-

(4). 「state_2021-xxx」フォルダだけを削除:
~> cd /boot/system/packages/administrative/
> rm -r state_2021*
> ls -1
activated-packages
writable-files

-


7). システムフォルダの「_pacages_」フォルダを削除:

-

(1). 確認:
~> ls /
bin  boot  dev  etc  Haiku  packages  system  tmp  var

~> ls /boot/
_packages_  home  system  trash

-

(2). ライブUSB メモリーのみにだけある「_pacages_」フォルダ:
~> ls /boot/_packages_/

autoconf-2.69-8-x86_64.hpkg
automake-1.16.3-1-x86_64.hpkg
binutils-2.31.1-2-x86_64.hpkg
bison-3.7.6-1-x86_64.hpkg
cdrtools-3.02~a09-1-x86_64.hpkg
flex-2.6.4-2-x86_64.hpkg
gcc-8.3.0_2019_05_24-10-x86_64.hpkg
haiku_devel-r1~beta3_hrev55181_51-1-x86_64.hpkg
jam-2.5_2018_11_21-8-x86_64.hpkg
libjpeg_turbo_devel-2.1.0-1-x86_64.hpkg
libpng16_devel-1.6.37-1-x86_64.hpkg
m4-1.4.18-3-x86_64.hpkg
make-4.1-4-x86_64.hpkg
makefile_engine-r1~beta3_hrev55181_51-1-any.hpkg
mkdepend-1.7-5-x86_64.hpkg
mpc-1.2.1-1-x86_64.hpkg
mpfr-4.1.0-1-x86_64.hpkg
nasm-2.14.02-2-x86_64.hpkg
openssl_devel-1.1.1k-1-x86_64.hpkg
patch-2.7.6-2-x86_64.hpkg
pkgconfig-0.29.2-4-x86_64.hpkg
texinfo-6.7-2-x86_64.hpkg
zlib_devel-1.2.11-4-x86_64.hpkg

→詳細で確認するとサイズが「91.88 MiB」ありました。

中身を見ると、たぶん、最初の立ち上げにて、システムにパッチを当てるためのパッケージ群?かも。

-

(3-1). 削除:
~> cd /boot/
> ls
_packages_  home  system  trash

> rm -r _packages_
> ls
home  system  trash

-

(3-2). もしくは、

_packages_」フォルダを右クリックして→ゴミ箱に送る

-


8). 「Haiku」フォルダ内にある「ゴミ箱」を空にしました:

-


9). 空きが増えたかの確認:

~> df
 Mount             Type      Total     Free      Flags   Device
----------------- --------- --------- --------- ------- ------------------------
/boot             bfs       710.0 MiB 262.2 MiB QAM-P-W /dev/disk/usb/0/0/0
/boot/system      packagefs   4.0 KiB   4.0 KiB QAM-P-- 
/boot/home/config packagefs   4.0 KiB   4.0 KiB QAM-P-- 
/usb-data         fat         2.9 GiB   2.9 GiB --M-PRW /dev/disk/usb/0/0/2

→空きは「262.2 MiB」、 「Haiku」アイコンを右クリック→詳細 でも確認できます。

-


10). 参考: 削除したいけど、削除できない個人的に使っていないアプリ:

  • パッケージではなくて、バイナリとしてシステムに登録されている(システム込の)アプリがありました。

→パッケージではないので、パッケージ管理ツールでは操作できません。

-


11). システムの書き込み保護のしくみ:

-

(1). デバイスを立ち上げ、つまり、/boot/ 配下のときだけ「すべて」のフォルダが表示されます:
> ls /boot/system/
add-ons  data           haiku_loader.bios_ia32  packages        Tracker
apps     demos          kernel_x86_64           preferences     var
bin      Deskbar        lib                     runtime_loader
boot     develop        non-packaged            servers
cache    documentation  package-links           settings

-

(2). 外部でマウントできるのは「一部のみ」のフォルダです:
> ls /Haiku-USB/system/
cache  non-packaged  packages  settings  var

Haiku がインストールされているボリュームなのですが、マウントでは一部しか表示されないことでシステムが保護されています。また、端末から強制的にアクセスしても「読み取りのみ」の属性で保護されています。

-

(3). 難点はシステムファイルの修正ができないこと:

「ホーム」フォルダだけでなく、システムにも設定ファイルを置く(Haiku に移植することを考えていない)アプリがあります。その場合は日本語化等で苦労します。

ホーム側のみに設定ファイルを置く設計にしてあると日本語化しやすいのですが…。

アプリのインストール時にファイルが配置されるときだけがチャンスです。

-


12). →マウントしたときに表示される下記のフォルダだけが修正できます:

> ls /Haiku-USB/system/
cache  non-packaged  packages  settings  var

-

参考: マウントしたときに表示されない、修正できないフォルダ:

-

(1). 「デモ」フォルダ:
> ls -1 /boot/system/demos/
Chart
Clock
Cortex
FontDemo
GLTeapot
Haiku3d
Mandelbrot
OverlayImage
Pairs
PatchBay
Playground
Pulse
Sudoku

→このフォルダのファイルが削除できればシステムの空きを増やせますが、「読み取り」属性で削除できません。

デモは一度見れば使うことはないので、削除できるようにしてほしいところ。

-

(2). 「アプリケーション」フォルダ:
> ls -l /boot/system/apps/
:
-r-xr-xr-x 1 user root  193336 7月  22 21:32 AboutSystem
-r-xr-xr-x 1 user root  252667 7月  22 21:32 ActivityMonitor
-r-xr-xr-x 1 user root   85852 7月  22 21:32 AutoRaise
dr-xr-xr-x 1 user root       0 5月  11  2020 BePDF    ←(パッケージ管理で削除できます)
-r-xr-xr-x 1 user root  200213 7月  22 21:32 BootManager
-r-xr-xr-x 1 user root  192206 7月  22 21:32 CharacterMap
-r-xr-xr-x 1 user root  211248 7月  22 21:32 CodyCam    ←(削除したいけど、削除できず)
-r-xr-xr-x 1 user root 1384292 7月  22 21:32 Debugger
-r-xr-xr-x 1 user root  280551 7月  22 21:32 DeskCalc
-r-xr-xr-x 1 user root 2395260 7月  22 21:32 Devices
-r-xr-xr-x 1 user root  504599 7月  22 21:32 DiskProbe
-r-xr-xr-x 1 user root  192632 7月  22 21:32 DiskUsage
-r-xr-xr-x 1 user root  430494 7月  22 21:32 DriveSetup
-r-xr-xr-x 1 user root  181499 7月  22 21:32 Expander
-r-xr-xr-x 1 user root  257840 7月  22 21:32 GLInfo
-r-xr-xr-x 1 user root 1978810 7月  22 21:32 HaikuDepot
-r-xr-xr-x 1 user root 1525652 7月  22 21:32 Icon-O-Matic
-r-xr-xr-x 1 user root  257850 7月  22 21:32 Installer
-r-xr-xr-x 1 user root  181202 7月  22 21:32 LaunchBox
-r-xr-xr-x 1 user root  231074 7月  22 21:32 LegacyPackageInstaller
-r-xr-xr-x 1 user root  135841 7月  22 21:32 Magnify
-r-xr-xr-x 1 user root  708337 7月  22 21:32 Mail
-r-xr-xr-x 1 user root  170115 7月  22 21:32 MediaConverter
-r-xr-xr-x 1 user root 1031042 7月  22 21:32 MediaPlayer
-r-xr-xr-x 1 user root   88372 7月  22 21:32 MidiPlayer    ←(削除したいけど、削除できず)
-r-xr-xr-x 1 user root  124567 7月  22 21:32 NetworkStatus
dr-xr-xr-x 1 user root       0 1月   8  2018 Pe    ←(パッケージ管理で削除できます)
-r-xr-xr-x 1 user root  171597 7月  22 21:32 People
-r-xr-xr-x 1 user root  216347 7月  22 21:32 PoorMan    ←(削除したいけど、削除できず)
-r-xr-xr-x 1 user root  167323 7月  22 21:32 PowerStatus
-r-xr-xr-x 1 user root  214625 7月  22 21:32 ProcessController
-r-xr-xr-x 1 user root  115808 7月  22 21:32 RemoteDesktop
-r-xr-xr-x 1 user root  102507 7月  22 21:32 Screenshot
-r-xr-xr-x 1 user root  170179 7月  22 21:32 SerialConnect
-r-xr-xr-x 1 user root  357831 7月  22 21:32 ShowImage
-r-xr-xr-x 1 user root  226011 7月  22 21:32 SoftwareUpdater
-r-xr-xr-x 1 user root  286944 7月  22 21:32 SoundRecorder
-r-xr-xr-x 1 user root  208772 7月  22 21:32 StyledEdit
-r-xr-xr-x 1 user root  591714 7月  22 21:32 Terminal
-r-xr-xr-x 1 user root  177364 7月  22 21:32 TextSearch
-r-xr-xr-x 1 user root  164435 7月  22 21:32 TV    ←(削除したいけど、削除できず)
dr-xr-xr-x 1 user root       0 5月  24 15:42 Vision    ←(パッケージ管理で削除できます)
-r-xr-xr-x 1 user root  873935 7月  22 21:32 WebPositive ←(パッケージ管理で削除できます)
-r-xr-xr-x 1 user root   86550 7月  22 21:32 Workspaces

→削除できるのは一部のみ。パッケージ管理で表示されるアプリなら、パッケージ管理で削除できます。

ちなみに、日本語のデスクトップで開くと「apps」ではなく「アプリケーション」フォルダとして表示されます。

-

(3). 上記でフォルダになっているアプリを抜粋:
> ls -l /boot/system/apps/BePDF/
:
-r-xr-xr-x 1 user root 4353448 5月  11  2020 BePDF
dr-xr-xr-x 1 user root       0 5月  11  2020 docs
dr-xr-xr-x 1 user root       0 5月  11  2020 encodings
dr-xr-xr-x 1 user root       0 5月  11  2020 fonts
dr-xr-xr-x 1 user root       0 5月  11  2020 license


> ls -l /boot/system/apps/Pe/
:
dr-xr-xr-x 1 user root       0 1月   8  2018 Documentation
dr-xr-xr-x 1 user root       0 1月   8  2018 Extensions
dr-xr-xr-x 1 user root       0 1月   8  2018 Languages
dr-xr-xr-x 1 user root       0 1月   8  2018 lib
-r-x--x--x 1 user root   21944 1月   8  2018 lpe
-r-x--x--x 1 user root 1337028 1月   8  2018 Pe


> ls -l /boot/system/apps/Vision/
:
-r--r--r-- 1 user root    4946 5月  24 15:42 InitialSettings
-r--r--r-- 1 user root   25477 5月  24 15:42 LICENSE
-r-xr-xr-x 1 user root 2338172 5月  24 15:42 Vision

→システムに設定ファイル等を置いているアプリです。どのアプリもパッケージ管理で表示されました。

-

こちらのフォルダは「読み取り」属性なので、書き込みできません。

もうひとつの個人としての置き場所の、ホームの「/boot/home/config/settings/」フォルダに置かれた設定ファイルであれば「読み書き」でマウントすれば修正できます。

-


13). システムの空きが増えましたが、限りある空きを有効に使うため:

-

案1: システム更新 →コマンドで「WebPositive」のインストール

→「BePDF」のインストールはギリギリ?

-

案2: 「HaikuDeport」で「otter_browser」のインストール →システム更新

→アイコンが赤くなり、ギリギリ:

  • 移植版のアプリは pkgman コマンドではインストールできません。リポジトリが違います。

  • 「WebPositive」だと「はてなブログ」のログイン画面で固まるので、ブログ編集に使えません。

-

案3: システム更新せずに →「HaikuDeport」で「otter_browser」のインストール

→「mozc」のインストール

→「featherpad」のインストールはギリギリ?

  • 同じQt5 アプリなので依存が少なくて済みます。

-

-


14). コマンドでのシステム更新のやり方:

-

リポジトリの更新:
~> pkgman refresh

-

システム更新:
~> pkgman update
:
Continue? [yes/no] (yes) : 

[system] Cleaning up ...
[system] Done.
A reboot is necessary to complete the installation process.

-

-


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

-

やり方 C: 作成した「ライブUSB メモリ」にて、別の領域にインストール:

-

やり方 A: の続きです。

-

  • 後ろの空きエリアにシステムを作成(Haiku-USB)

→インストール元に、「ライブCD」イメージを使うか、設定した「ライブUSB メモリ」を使うかで、新しいシステムは変わります。

  • 再起動

  • 先頭にあるシステムをデータ交換用として、FAT(usb-data)で初期化

-

簡単にシステム領域(Haiku-USB)を拡げられました:

→インストールの手間を減らせて、普通に使えます。 高速で大容量のUSB メモリにインストールして使っても良さそう。

-


1). メニュー →Applications →Drivesetup

-


2). USB の後ろの「空のスペース」を選んで、右クリック→新規作成

パーティションサイズ: 「残りすべて」
パーティション名: 「Haiku-USB」
パーティション種別: 「Be File System」

→「新規作成」→「変更を書き込む」

→「未フォーマット(Be File System)」が表示されました:

-

USB の「未フォーマット(Be File System)」を選んで、右クリック→フォーマット→「Be File System」

→「続ける」

-

ボリューム名: 「Haiku-USB」そのまま
ブロックサイズ: 「2048(推奨)」そのまま

→「フォーマット」→「変更を書き込む」→「OK」

-

Drivesetup を閉じます。

-


3). メニュー →Applications →「インストーラー」

→「続ける」

-


4). 「インストーラー」が起動:

-

インストール元: 「Haiku - 710.00 MiB」 ←(CD イメージ)
インストール先: 「haiku-USB - 57.85 GiB」を指定

-

→「開始」をクリック

-


5). インストールが完了:

→「終了」

-


6). メニュー →シャットダウン →「再起動」

-


7).「白いうさぎ」画面が表示されたらすぐに「Esc」キー

-


8). 「UEFI 設定」メニューが表示

「Boot Menu」

→一覧の一番下に表示されている「USB: GH PicoN」(USB メーカーと製品名)を選びました。

-


9). Enter したら、すぐに「スペース」を連打:

遅れるとライブCD イメージ (Haiku) で立ち上がります。

→うまく行けば、「Haiku Boot Loader」画面が表示:

-


10). 「Haiku Boot Loader」画面が表示:

-

-

下記に変更:

Select boot volume  (Current: Haiku-USB) 

→「Haiku」はCD のボリューム名で、「Haiku-USB」は今回作成したシステムのボリューム名です。

-

「Continue booting」が選ばれているので、Enter

-


11). 新しくインストールした「Haiku-USB」でデスクトップが立ち上がりました:

→デスクトップの「Haiku-USB」アイコンに「楓(かえで)」アイコンが付いていることを確認。

-


12). メニュー →Applications →Drivesetup

-


13). 先頭にあるシステム「Haiku」を選んで、右クリック →「マウント解除」

Haiku」を選んで、右クリック →フォーマット →「FAT File System」

→「続ける」

-

名前: 「usb-data」に変更
FAT bits: 自動(既定値)→「32」に変更

→「フォーマット」→「変更を書き込む」→「OK」

-

画像:

-

「Drivesetup」を閉じます。

-


14). インストール後の設定へ:

-

-


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

-

やり方 D: 手動でパーティションを分割して、インストール:

-

自動でパーティション分割がされないときに、よく使われるインストールのやり方です:

  • BeFS はマウントしてファイルの読み取りはできますが、特殊なファイル属性を持つので書き込みは禁止されています。

→使いやすいように、他のディストリビューションとのデータ交換用に2GB のFAT の領域(usb-data)を追加しました。安心して読み書きできるので便利。

-

→こちらは、MBR ではなく、GPT でフォーマットしました。

-

-


1). ライブCD で、日本語のデスクトップを立ち上げ

-


2). 準備した、「fat32」で初期化したUSB メモリを挿入

警告メッセージ:

→「Mount read/write」をクリック

-

「no name」(USB アイコン) がデスクトップに表示(マウント)されました:

-


3). メニュー →「マウント」→「haiku esp」(CD のアイコン)

→「haiku esp」(CD のアイコン) がデスクトップにマウントされました。

-


4). メニュー →Applications →Drivesetup

USB の「Fat32」(/dev/disk/usb/0/0/0) を選んで、右クリック→マウント解除

その行の上にある、USB の「SanDisk Extreme 0001」(メーカ、製品名)を選んで、

ディスク→初期化→「GUID Partition Map」

→「続ける」→「変更を書き込む」→「OK」

→「空のスペース」が表示されました:

-

USB の「空のスペース」を選んで、右クリック→新規作成

パーティションサイズ: 「3」
パーティション名: 「usb-esp」
パーティション種別: 「EFI system data」

→「新規作成」→「変更を書き込む」

→「未フォーマット(EFI system data)」が表示されました:

-

USB の「未フォーマット(EFI system data)」を選んで、右クリック→フォーマット→「FAT32 File System」

→「続ける」

-

名前: 「usb-esp」に変更
FAT bits: 自動(既定値)→「32」に変更

→「フォーマット」→「変更を書き込む」→「OK」

-

USB の「空のスペース」を選んで、右クリック→新規作成

パーティションサイズ: 「2000」
パーティション名: 「usb-data」
パーティション種別: 「FAT File System」

→「新規作成」→「変更を書き込む」

→「未フォーマット(FAT File System)」が表示されました:

-

USB の「未フォーマット(FAT File System)」を選んで、右クリック→フォーマット→「FAT File System」

→「続ける」

-

名前: 「usb-data」
FAT bits: 自動(既定値)→「32」に変更

→「フォーマット」→「変更を書き込む」→「OK」

-

USB の「空のスペース」を選んで、右クリック→新規作成

パーティションサイズ: 「残りすべて」
パーティション名: 「Haiku-USB」
パーティション種別: 「Be File System」

→「新規作成」→「変更を書き込む」

→「未フォーマット(Be File System)」が表示されました:

-

USB の「未フォーマット(Be File System)」を選んで、右クリック→フォーマット→「Be File System」

→「続ける」

-

ボリューム名: 「Haiku-USB」そのまま
ブロックサイズ: 「2048(推奨)」そのまま

→「フォーマット」→「変更を書き込む」→「OK」

-

画像:

→「usb-esp」は「10」から「3」に変更しています。

-

「Drivesetup」を閉じます。

-


5). USB のEFI パティションをマウント:

メニュー→マウント→「usb-esp」(USB アイコン)

-

警告メッセージ:

→「Mount read/write」をクリック

「usb-esp」(USB アイコン) がデスクトップに表示(マウント)されました。

-


6). CD のEFI パティションの「EFI」フォルダをコピー

デスクトップにある「haiku esp」(CD のアイコン) のフォルダを開きます。

EFI」フォルダを右クリック→「次へコピー」→「usb-esp」(USB アイコン)

-

画像:

-


7). デスクトップの「インストーラー」をダブルクリック

→「続ける」

-


8). 「インストーラー」が起動:

-

インストール元: 「Haiku - 710.00 MiB」 ←(CD イメージ)
インストール先: 「haiku-USB - 57.85 GiB」を指定

-

→「開始」をクリック

-


9). インストールが完了:

→「終了」

-


10). メニュー →シャットダウン →「電源を切る」

-

-


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

-

インストール後の設定:

-


1). USB メモリを挿して、電源オン

-


2). 立ち上げで、「白いうさぎ」画面が表示されたらすぐに「Esc」キー

-


3). 「UEFI 設定」メニューが表示

-


4). 手動で、UEFI メニューに「Haiku-USB」を登録:

-

(1). Boot Mnager →Add Boot Option

-

(2). USB に着目して、下記を選択:
Haiku-USB,
:

→Enter

-

<EFI> フォルダを選択して、Enter

<BOOT> フォルダを選択して、Enter

→「BOOTX64.EFI」ファイルを選択して、Enter

-

(3). 「Input the description」(メニュー項目名)を選択して、Enter

→「Haiku-USB」を入力して、Enter

-

(4). 「Commit Changes and Exit」(変更の書き込み)を選択して、Enter

-

(5). Esc で上位に戻ります

-


5). 手動で、UEFI メニューの並びを変更:

メニューの一番下に登録されていて、使いづらいので変更:

-

(1). Boot Mnager →Change Boot Order

-

(2). メニュー項目一覧全体が選ばれているので、

→Enter

-

(3). 作成した「Haiku-USB」を選んで、テンキーの「+」「-」で 2番め(任意)に移動

→Enter

-

(4). 「Commit Changes and Exit」(変更の書き込み)を選択して、Enter

-

(5). Esc で上位に戻ります

-


6). 「Boot Menu」

→2番めの「Haiku-USB」を選んで、Enter

-


7). 日本語のデスクトップが表示

-


8). パネルのトレイの時計が正しいか確認

時計が乱れていたら、

タイムゾーンの設定して、「同期」を実施

-

-


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

-

参考: Haiku で、システム更新:

-


GUI で、システム更新:

メニュー →Applications →「ソフトウェアの更新」

→時間がかかりました。

-


コマンドで、システム更新:

~> pkgman refresh

~> pkgman update

→「~>」は「作業ディレクトリ名」を含んだプロンプトです。

-

メニュー →シャットダウン →再起動

-

-


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

-

参考: 「HaikuDeport」にて、アプリをインストール:

-

  • 「すべてのアプリ」タブを選んで、検索、インストール

-

1). 日本語入力: 「mozc」

→現在、Haiku で日本語入力するなら、これになります。 「半角/全角」キーで日本語オン/オフできます。

  • いつもだとインストールしたらすぐ使えるのですが、今回は再起動が必要でした。

→再起動後、システムトレイ(右上の 2段目)に「キーボード」アイコンが表示されました。

-

2). ブラウザ: 「Ottr-browser」

Haiku 標準のブラウザ「WebPositive」だと、もたつくだけでなく、「はてなブログ」のログイン画面で固まってしまいます。ブログの編集ができないのは個人的には致命的です。

「Ottr-browser」は少し重め。「WebPositive」よりはマシだし、なにより「はてなブログ」のログインが可能です。

  • Haiku に対応のブラウザは少ないので、使っています。

  • 「Ottr-browser」ではフレームの表示ができないサイト(Qiita の投稿画面)がありました。

  • 「WebPositive」はHaiku のドキュメントビュワーと割り切りました。

→追記:

開発版のnightly ビルドの「hrev55438」で「WebPositive」のもたつきと「はてなブログ」のログイン画面で固まる件は解消。

今度は、Web フォントがダウンロードできません。 これだと「はてなブログ」の編集で、編集アイコンや「写真」カテゴリとかのマークが表示されません。

-

「WebPositive」というひとつのアプリで、システムに融合したブラウザ?と一般的なブラウザ機能を実現しようとしているから苦労しているみたい。分離した方が良さそう。

個人的には場面に合わせて使い分け。

-

-

3). テキストエディタ: 「featherpad」

Qt5 アプリなので、「Ottr browser」をインストールするのなら、依存が少なくて済みます。 日本語化されたバージョンではありませんが、最初の設定が済めば支障はありません。

-

4). テキストエディタ: 「kwrite」

Haiku 標準のエディタは行番号が行頭に表示されないし、テーマも指定できません。それらの機能のあるテキストエディタをインストールしてみました。

メニューが日本語化され、日本語入力でき、背景にダーク系 (Monokai) が選べ、行番号が表示でき、編集していたファイルを記憶しています。Markdown ファイルのハイライト表示にも対応。

KDE アプリなので、依存が多くて使われるサイズが大きくなります。

-

5). 画像編集: 「KolourPaint」

Haiku のキャプチャー画像を加工するのに使っています。

一度、単体で起動してやらないと、右クリックのアプリの一覧に表示されませんでした。 その後は、右クリックから起動できるようになりました。

-


6). その他の設定は前回の投稿を参照:

前回の投稿

-

-


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

-

Haiku」にて、気づいたところ:

-


1). 注意: 「StyledEdit」にて「日本語を含むテキストファイル」を保存するときは、

ファイル →名前を付けて保存 →「文字コード」タブ →「ユニコード(UTF-16)」→保存

追記: 上記を行ってはいけません。

-

UTF-8」と「UTF-16」はコード体系が違う、まったくの別物でした。勘違いでした。 一度変換すると、使われているコード範囲が違うので、逆の変換でファイルが壊れます。

-

→なぜか、日本語が含まれていると、Xubuntu の「mousepad」にて読み込み時に「不正なUTF-8」となり開けませんでした。

→「featherpad」で開くと日本語が文字化けしました。

原因は不明ですが、Haiku の標準アプリ「StyledEdit」や「Pe」でUSB メモリに作った「Fat32」の領域を保存先にすると壊れるみたい。

Haiku で確認するとファイル属性が「めちゃくちゃ」です。ファイルシステムの違いが影響しているのかも?内部のBeFS 内で使う分には支障ありません。また、どちらも「リードオンリー」ならOK

いちいち面倒なので、現在は、Web ブラウザ(Ottr browser)で、ブログ上の「編集データ」にして、やり取りしています。

-


2). 問題 : Haiku ではCPU ファンの制御がされていない? :

  • PC のボディがいつも使っているよりも熱いです。

→熱くなったら再起動してXubuntu に切り替えています。Xubuntu ではファン制御がされているので、冷やしてもらえます。すぐに電源オフするよりも安全です。

ちなみに、Haiku で温度監視できるアプリは見つからず。

-

長時間の運用なら、時々さわってみたり、USB 接続の低速ファンを付けることを検討した方がいいかも。

現在は、佃煮の大きなガラス瓶をヒートシンク代わりに、3つの瓶を交互に置くようにしています。瓶の底が結構熱くなるので効果はあるかも。熱くなったガラス瓶は底を上にして、次に備えて冷やしておきます。

-

この件で、「Tickets」の書き方の勉強も兼ねて、Haiku にバグ報告

PC 固有の問題(acpi の初期化でエラーしてました)だろうから返答は来ないだろうけど、個人的には致命的ですし、情報提供にはなるかも。

2021-10-02

#17296 new bug [hrev55464] When using "Haiku", the CPU FAN is not spinning.

-

まずは、ログインするためのアカウントを作成します。ロボットか判断するため、下の方にコンピュータの問題が出たと思う?のでその答えを入力するのがポイントでした。メールに応答するとアカウントが有効になります。

次に、ログインして、「NEW TICKET」タブを選ぶと、「Type:」で「bug」と「enhancement」と「task」から選ぶようになっています。後で変更できないみたいなので、よく考えて選びます。

「bug」→ 不具合報告について
「enhancement」→ 強化?について
「task」→ 課題について

-

後は、「Keywords:」を忘れずに入力しておくこと。今回は「FAN」を入れておきました。 「Tickets」の数は膨大で埋もれます。自分が見直したいときに探すのがたいへん。あまり使われないけど忘れないキーにしておきます。後で楽をします。

-

ちなみに、「Tickets」の書き方で独特なのは、コードブロックの囲み方です。「編集」ボタンがあるので入力は楽です。後はMarkdown の書き方でやれば見やすいです。

{{{
$ uname -r
5.11.0-37-generic
}}}

-

よくわからなかったのは、複数の添付ファイルを送るやり方。わからないので、ひとつずつ追加しました。 ひとつのフォルダにまとめて圧縮するのは読む側がたいへんなのでやめた方が良いです。

-

-


まとめ

UEFI 立ち上げで「Haiku」をインストールしました。

問題点はありますが、UEFI 立ち上げしかできない自分のPC でも、インストール、および使えるように設定できました。

-

次回に投稿予定ですが、不具合の解消がより多いと思われる「nightly ビルド」のイメージを使うのが個人的にはオススメ。通常版も「nightly ビルド」版も今のところ、どちらも開発版と言えますから。

-

-


-

-

    目次

-

「投稿の先頭 へ」

-

-


-

「この目次 の先頭へ」

「本編の目次 に戻る」

-

USB メモリに、UEFI 立ち上げで「Haiku R1/beta3」をインストール 前編〈H135-1〉

登録日: 2021-09-12 更新日: 2021-09-30

現在も開発が続いているBeOS R5 のコミュニティ版の「Haiku R1/beta3」をインストールしました。 20年以上も永く開発が続いているのは、魅力があるOS ということです。やはり現在でも新鮮に感じます。

beta3 になったHaiku の備忘録です。(以前に投稿した情報も合わせて追記)

-

今回は「UEFI 立ち上げ」しかできない自分のPC にて、USB メモリに「Haiku R1/beta3」をインストールしました。

-

インストールのやり方はひとつではないので、わかりやすいように 投稿を2つに分けました。

その前編で、Haiku の特徴のひとつともいえる、「VirtualBox」を使ったUSB メモリへのインストール手順です。

-

-

ホストOS : Xubuntu 20.04.3 LTS

ゲストOS : Haiku R1/beta3  ←(今回作業した環境)

-

-

使用したPC は「ASUS Chromebox CN60 」で、プロセッサは第4世代の「Intel Celeron 2955U 」です。

-

(注)リンクを戻るときはブラウザの左上の「←」をクリック

-

-


目次

-

「Haiku のiso イメージをダウンロード:」

「仮想マシンで、USB メモリの前処理:」

「仮想マシンで、USB メモリにインストール:」

「実際のPC で、USB メモリを立ち上げ:」

「はじめの設定:」

「まとめ へ」

-

「目次詳細 へ」

-

-


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

-

Haiku R1/beta3」のデスクトップ

-

立ち上げ時に「ブートスクリーン」が表示されます:

-

「ブートステージ」ごとにアイコンが順次表示:
1. モジュールの初期化
2. rootfs (/) の作成と devfs (/dev) のマウント
3. デバイスマネージャーの初期化
4. 起動ディスクのマウント
5. CPU 固有のモジュールの読み込み
6. サブシステムの最終初期化
7. Launch_daemon がシステムを起動

-

設定した後のデスクトップ:

-

→インストールすると、モニタの解像度の最大値の「1920x1080」に自動で設定されました。

ブラウザの「Ottr-browser」と、テキストエディタの「kwrite」を追加しました。 標準のアプリにはすぐに使える良さがありますが、その他にも、インストールできるアプリが増えています。自分にとって使いやすい環境にしていけば良いと思います。

-

ちなみに、アプリのウィンドウのタイトルバーが半欠けなのは、意味があります。 2つのウィンドウをひとつにまとめて、タブ切り替えで使うことができます。色々な工夫が詰まっています。

-

-


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

-

前回の作業を参考にインストール:

-

自分のPC はUEFI 立ち上げしかできないマシンです。

前回は、VirtualBox を「UEFI 立ち上げ」に設定して、 自分のPC と同じように「Haiku R1/beta3」がインストールできるか確認しました。

-

前回の作業 を参照

-

-


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

-

1. 「Haiku R1/beta3」のiso イメージをダウンロード:

-

-


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

-

2. 仮想マシンHaiku で、インストール先のUSB メモリの前処理:

→今回は仮想マシンVirtualBoxHaiku )を使用

-


1). VirtualBox を起動:

-


2). 仮想マシンの設定:

-

設定を確認:

-

システム →マザーボード →「EFI を有効化」のチェックが外れていること

→操作が確実で楽です。

-

USB →「USB 3.0 (xHCI) コントローラー」にチェック

→インストール先として準備したUSB メモリが「USB 3.0」です。

-


3). CD イメージをセット

-

右側の「ストレージ」にて、「ISO イメージ」をセット

IDE セカンダリマスター: [光学ドライブ] 空 をクリック

「ディスクファイルを選択」の下にある、

→「~/ダウンロード/Haiku/haiku-r1beta3-x86_64-anyboot.iso」にチェック

なければ、「ディスクファイルを選択…」

-

「空」→「haiku-r1beta3-x86_64-anyboot.iso」に変わりました。

-


4). 仮想マシンHaiku を起動:

ライブCD で立ち上がりました:

-


5). 「言語選択」画面表示:

→「日本語」を選んで、「Haiku を試用」をクリック

-


6). デスクトップ画面 (1024x768 32bit)

-

-


7). 準備した、「fat32」で初期化したUSB メモリを挿入

  • ホストOS のフィルマネージャが開きますが無視して、ウィンドウを閉じます。

-

VirtualBox のウィンドウの右下の「USB」アイコンを右クリック→「Sandisk Extreme [0010]」(メーカー、製品名)にチェック

-

警告メッセージ:

→「Mount read/write」をクリック

-

「no name」(USB アイコン) がデスクトップに表示(マウント)されました:

-


8). メニュー →「マウント」→「haiku esp」(CD のアイコン)

→「haiku esp」(CD のアイコン) がデスクトップにマウントされました。

-


9). メニュー →Applications →Drivesetup

USB の「Fat32」(/dev/disk/usb/0/0/0) を選んで、右クリック→マウント解除

その行の上にある、USB の「SanDisk Extreme 0001」(メーカ、製品名)を選んで、

ディスク→初期化→「GUID Partition Map」

→「続ける」→「変更を書き込む」→「OK」

→「空のスペース」が表示されました:

-

USB の「空のスペース」を選んで、右クリック→新規作成

パーティションサイズ: 「600」  ←(追記: 10 でOK)
パーティション名: 
パーティション種別: 「EFI system data」

→「新規作成」→「変更を書き込む」

→「未フォーマット(EFI system data)」が表示されました:

-

USB の「未フォーマット(EFI system data)」を選んで、右クリック→フォーマット→「FAT32 File System」

→「続ける」

-

名前: 「USB esp」に変更
FAT bits: 自動(既定値)→「32」に変更

→「フォーマット」→「変更を書き込む」→「OK」

-

USB の「空のスペース」を選んで、右クリック→新規作成

パーティションサイズ: 「残りすべて」
パーティション名: 「Haiku-USB」
パーティション種別: 「Be File System」

→「新規作成」→「変更を書き込む」

→「未フォーマット(Be File System)」が表示されました:

-

USB の「未フォーマット(Be File System)」を選んで、右クリック→フォーマット→「Be File System」

→「続ける」

-

ボリューム名: 「Haiku-USB」そのまま
ブロックサイズ: 「2048(推奨)」そのまま

→「フォーマット」→「変更を書き込む」→「OK」

-

画像:

-

「Drivesetup」を閉じます。

-


10). USB のEFI パティションにフォルダを作成:

メニュー→マウント→「usb esp」(USB アイコン)

-

警告メッセージ:

→「Mount read/write」をクリック

「usb esp」(USB アイコン) がデスクトップに表示(マウント)されました。

-

デスクトップにある「usb esp」(USB アイコン) のフォルダを開きます。

空きで右クリック→新規→「フォルダー」→「EFI」Enter

-

EFI」フォルダを開いて、空きで右クリック→新規→「フォルダー」→「boot」Enter

-


11). USB のEFI パティションに「BOOTX64.EFI」をコピー

デスクトップにある「haiku esp」(CD のアイコン) のフォルダを開きます。

EFI」→「BOOT」

「BOOTX64.EFI」を右クリック→「次へコピー」→「usb esp」(USB アイコン)

→「EFI」→「boot」

-


12). 名前の変更:

デスクトップにある「usb esp」(USB アイコン) のフォルダを開きます。

EFI」→「boot」

「BOOTX64.EFI」を右クリック→「名前の変更」→「bootx64.efi」Enter

-

画像:

→最終的な表示です。

-


13). 電源オフ

メニュー→シャットダウン→電源オフ

-


14). USB メモリがホストOS(Xubuntu)でマウントされていたら、アンマウントして抜きます

-

-


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

-

3. 仮想マシンHaiku で、UEFI の「Haiku」の立ち上げのUSB メモリを作成:

-

Haiku の場合は、こういうことができるのが特徴で、インストールも速いです。

VirtualBox を使うので、準備するUSB メモリは 1本で済みます。

-


1). 「UEFI 立ち上げ」でライブCDを立ち上げる設定に変更:

  • USB メモリのインストールは、念の為、「UEFI 立ち上げ」にして行いました。

Haiku に当てはまるかはわかりませんが、「UEFI 立ち上げ」でないと インストールできても「UEFI 立ち上げ」できません。

-

仮想マシンを選んで、

システム →マザーボード →「EFI を有効化」にチェック

-

USB →「USB 3.0 (xHCI) コントローラー」にチェック

-

CD イメージがセットされていることを確認

→インストール元にしたいドライブで立ち上げます。

本当は、アプリを入れているHDD をインストール元にしたいところですが、インストールが不安定なようなので、確実なCD イメージにしました。

-

CD イメージがセットされていない場合:

-

右側の「ストレージ」にて、「ISO イメージ」をセット

IDE セカンダリマスター: [光学ドライブ] 空 をクリック

「ディスクファイルを選択」の下にある、

→「~/ダウンロード/Haiku/haiku-r1beta3-x86_64-anyboot.iso」にチェック

-

「空」→「haiku-r1beta3-x86_64-anyboot.iso」に変わりました。

-


2). 「起動」(緑色の右矢印)ボタンをクリックしたら、すぐに「スペース」を連打:

-


3-1). EFI シェルに落ちてしまうときは:

-

EFI シェル:

-

(1). ドライブ名を確認:
Shell> map

→すでに情報は表示されているので、不要ですが、表示のさせ方の勉強。 mount コマンドみたいなもの。使用できる(マウントされている)デバイスを表示

-

抜粋:

FS0:  ←インストール済みの仮想ディスクのEFI パーティション
FS1:  ←(CDROM の文字列に注目): ライブCD のEFI パーティション

→FS はファイルシステムの略みたい。今回は上記でしたが、ドライブ番号は変わるので確認が必要:

-

(2). ファイルがあるかを確認:
Shell> ls FS1:\EFI\BOOT\BOOTX64.EFI

MS-DOS 風にドライブ番号が頭に付き、区切り文字は「\」です。

英語配列なので「:」はShift+「;」で、「\」は「む」の位置。

-

→緑色の「BOOTX64.EFI」が表示されればOK

-

(3). CD ドライブで立ち上げ:

「↑」キーで上記の履歴を表示させて修正

Shell> FS1:\EFI\BOOT\BOOTX64.EFI

→Enter したら、すぐに「スペース」を連打:

-

遅れると、CD ではなく、(インストールされている)ディスクで立ち上がります。

→うまく行けば、「Haiku Boot Loader」画面が表示:

-


3-2). もしくは、EFI シェルを使わずに、GUI で操作できます:

-

(1). EFI シェルを抜けます:
Shell> exit

-

(2). UEFI 設定画面が表示:

→「Boot Mantenance Manager」→「Boot From File」

-

「File Explorer」画面:

→「CDROM」の文字列を参考に、下記のボリュームを選択:

Haiku ESP,
[PciRoot(0x0)/Pcu(0x1m0x1)/Ata(Secondary,Master,0x0)
/CDROM(0x1,0x22,0x1680)]

-

<EFI> フォルダを選択して Enter

-

<BOOT> フォルダを選択して Enter

-

→「BOOTX64.EFI」ファイルを選択

-

(3). ファイルを選択してEnter したら、すぐに「スペース」を連打:

-

遅れると、CD ではなく、(インストールされている)ディスクで立ち上がります。

→うまく行けば、「Haiku Boot Loader」画面が表示:

-


4). 「Haiku Boot Loader」画面が表示:

-

-

下記に変更:

Select boot volume  (Current: Haiku)  ←(Haiku はCD のボリューム名です)

Select video mode (Current: 1024x768 32 bit)  ←(解像度は小さければ任意)

-

「Countinue booting」を選んで、Enter

-


5). 水色の背景に「言語設定」の画面が表示:

-


6). 「日本語」を選んで、「Haiku を試用」をクリック

→「日本語」を選んで、「Haiku を試用」をクリック

-


7). デスクトップ画面 (1024x768 32bit)

-


8). 準備した、「fat32」で初期化したUSB メモリを挿入

  • ホストOS のフィルマネージャが開きますが無視して、ウィンドウを閉じます。

-

VirtualBox のウィンドウの右下の「USB」アイコンを右クリック→「Sandisk Extreme [0010]」(メーカー、製品名)にチェック

-

警告メッセージ:

Mounting volume 'usb esp'

→「Mount read/write」をクリック

「usb esp」(USB アイコン)と「Haiku-USB」(USB アイコン) がデスクトップに表示(マウント)されました。

-


9). デスクトップの「インストーラー」をダブルクリック

→「続ける」

-


10). 「インストーラー」が起動:

-

インストール元: 「Haiku - 710.00 MiB」 ←(CD イメージ)
インストール先: 「haiku-USB - 57.85 GiB」を指定

-

→「開始」をクリック

-


11). インストールが完了:

→「終了」

-

メニュー→シャットダウン→「電源を切る」

-


12). 電源が切れたら、ISO イメージを取り外し

「ストレージ」設定にて、

右側の [光学ドライブ] 空 をクリックして、「仮想ドライブからドライブを除去」

-

VirtualBox を終了

ホストOS をシャットダウンして、電源オフ

-

-


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

-

4. 実際のPC で、VirtualBox で作成したUSB メモリを立ち上げ:

-

  • USB メモリを指定して立ち上げる必要があります。

→自分のPC で「UEFI 設定メニュー」を表示するには、立ち上げ時に「Esc」キーを押します。 PC によって対応するキーは違います。

-

  • 解像度は問題ありません。モニタの解像度の「1920x1080」が自動で設定されています。

-


問題 1: CPU ファンが回っていません? :

PC のボディがいつもよりも熱いです。ファン制御されていないみたい。

時々、再起動して、Xubuntu で立ち上げて冷やしています。電源を切るよりも確実に冷えます。Xubuntu では熱くなるとファンが低速で回転します。負荷が高いと高速回転です。

常時ファンが回転しているデスクトップマシンは良いかもしれませんが、ファン制御されている少電力のパソコンや、ラップトップなんかは、時々パソコンにさわってみるのが良さそう。寿命が縮みます。 気になるようならUSB 接続の低速ファンを付けた方がいいかも。

-

ちなみに、Haiku のアプリで「CPU 温度を表示する」アプリはないみたい。個人的には、最初に欲しいアプリかも。

-


問題 2: 自分のPC では、UEFI 設定メニューに自動で「Haiku」が登録されません

→メニューに「Haiku」がないので、毎回「USB メモリ」を指定して立ち上げてます。

-

いつもは、ディストリビューションのインストール作業では自動でメニューに登録されていました。

Haiku」は、VirtualBox 上でインストール作業を行ったので、メニューに登録はありません。

-

手動で、UEFI メニューに登録:

-

(1). Boot Mnager →Add Boot Option

-

(2). USB に着目して、下記を選択:

NO VOLUME LABEL,
[PciRoot(0x0)/Pci(0x14,0x0)/USB(0x9,0x0)/
HD(1,GPT,5937〜5DBD,0x800,0x12C000)]

→Enter

-

<EFI> フォルダを選択して、Enter

<boot> フォルダを選択して、Enter

→「bootx64.efi」ファイルを選択して、Enter

-

(3). 「Input the description」(メニュー項目名)を選択して、Enter

→「Haiku-USB」を入力して、Enter

-

(4). 「Commit Changes and Exit」(変更の書き込み)を選択して、Enter

-

(5). Esc で上位に戻ります

-

手動で、UEFI メニューの並びを変更:

メニューの一番下に登録されていて、使いづらいので変更:

-

(1). Boot Mnager →Change Boot Order

-

(2). メニュー項目一覧全体が選ばれているので、

→Enter

-

(3). 作成した「Haiku-USB」を選んで、テンキーの「+」「-」で 2番め(任意)に移動

→Enter

-

(4). 「Commit Changes and Exit」(変更の書き込み)を選択して、Enter

-

(5). Esc で上位に戻ります

-

ちなみに、「Haiku」のEFI パーティションに置かれている「bootx64.efi」は「Haiku」で準備されたファイルです。

-


問題 3: 立ち上げの度に「Haiku Boot Loader」が表示されます:

  • VirtualBox で「Haiku Boot Loader」を表示させるには、特別な操作が必要につき、これは正常な状態ではありません。

  • インストールのときに、「Select boot volume」にパーティション名が登録できないことがあるみたい。

→1 度めのインストールでは失敗して、「None」となっており、「Haiku Boot Loader」が表示されました。 2 度めのインストールでは成功して「Haiku-USB」が登録されており、「Haiku Boot Loader」は表示されませんでした。

-

  • 2度めのインストールで行ったことは、最初に起動して UEFI 設定メニューを表示したときに、その場でメニューに登録しました。それが効いたのかな。

-

Haiku Boot Loader」が表示されたときの操作:
  • 内蔵ディスク、および、増えていく履歴(日時)のどれを使うかを指定します。

→(Haiku のガイドからの抜粋): パッケージをアンインストール / インストールするたびに、以前の状態は保存されます。あるパッケージをインストールした後に起動時の問題が発生したら、問題が起きる前の Haiku のバージョンを起動して、問題となるパッケージをアンインストールできます。

→パッケージ管理だけの履歴(スナップショット)で、たぶん、データは戻せないと思われます。

-

-


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

-

5. はじめの設定:

-


1). パネルのトレイにある時計にて、時刻の設定

時計が乱れているので、最初に設定しました。

タイムゾーンの設定と「同期」の実施

-


2-1). システム更新:

メニュー →Applications →「ソフトウェアの更新」

→時間がかかりました。

-


2-2). もしくは、「HaikuDepot」でシステム更新:

メニュー →Applications →「HaikuDepot」

-

「HaikuDepot」→「リポジトリの更新」

「HaikuDepot」→「更新のチェック…」

-


2-3). もしくは、コマンドでシステム更新:

~> pkgman refresh

~> pkgman update

→「~>」は「作業ディレクトリ名」を含んだプロンプトです。

-

メニュー →シャットダウン →再起動

-


3). その他の設定は前回の投稿を参照:

前回の投稿

-

-


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

-

6. 「HaikuDeport」にて、アプリをインストール:

-

  • 「すべてのアプリ」タブを選んで、検索、インストールしました。

-


1). ブラウザ: 「Ottr-browser」

Haiku 標準のブラウザ「WebPositive」でブログ編集すると、もたつくので、インストールしました。

-

  • 利点はしっかり表示してくれること。成功率が高いです。

→ただし、フォームのデザインによっては、サイドバーの位置がうまく再現できないサイトがありました。

Qiita の投稿画面は、左のサイドバーが縦に最初に表示されます。

→逆に画面幅を広く表示できるので、もしかしたら利点?

-

  • 「Ottr-browser」の難点は依存パッケージが多くてサイズが大きいこと、軽くはない(少し重め)こと。

  • 「WebPositive」は、問題が多いのでHaiku のドキュメント ビュワーと割り切りました。

→追記: 開発版の「hrev55438」で「WebPositive」のもたつきと「はてなブログ」のログイン画面で固まる件は解消していました。

→「Ottr-browser」は不要になるかと思ったら、ブログ投稿時の文字属性などを指定できる「編集」ボタンや、「GitHub」、「Twitter」のアイコンが豆腐に化けます。また、写真を貼り付ける「カテゴリー」アイコンは表示されません。しばらくは両方入れておくことになりそう。

-


2). 日本語入力: 「mozc」

→現在、Haiku で日本語入力したいときは、これになりそう。 「半角/全角」キーで日本語オン/オフできます。

  • インストールしたら、再起動が必要でした。

→再起動後、システムトレイ(右上の 2段目)に「キーボード」アイコンが表示されました。

-

  • 移植版のアプリでは日本語入力がインライン変換されません。日本語入力が別のウィンドウとして開きます。

→標準で入っている「Pe」は移植されたアプリだったようで、インライン変換されません。

-

  • Haiku では、日本語キーボードのキーの配列の定義が足りず、Linux とは異なるので、Mozc 設定での個別のキー割当(無変換を日本語オフ、ひらがなを日本語オン に割当)を行うのはあきらめました。

-

  • ちなみに、Haiku のときは、Ctrl+C、Ctrl+V のショートカットキーは忘れて、Alt+C、Alt+V に早く慣れた方が幸せになれます。

→最初に設定で切り替えていましたが、未対応のアプリ (nano) などがあり面倒です。ファイルマネージャなどの操作系も覚えることがあるので、Haiku での操作はそういうものと一緒に覚えれば、すぐに慣れます。

-

3). テキストエディタ: 「kwrite」

Haiku 標準のエディタは行番号は表示できないし背景のテーマも設定できないので、Linux で時々使うテキストエディタをインストールしました。(この辺りは好み)

メニューが日本語化され、日本語入力でき、背景にダーク系 (Monokai) が選べ、行番号が表示でき、編集していたファイルを記憶しています。Markdown ファイルのハイライト表示にも対応。

KDE アプリなので多くの依存パッケージが入るのが難点。「KolourPaint」も入れれば少しは稼げます。

-


4). テキストエディタ: 「featherpad」

  • 軽くて、日本語入力でき、背景にダーク系 (微調整可能) が選べ、行番号が表示でき、編集していたファイルを記憶しておく設定が選べます。

  • Markdown のハイライト表示がくっきりしていて見やすいです(この辺りは好み)

  • 登録されているバージョンが低いので、日本語の翻訳ファイルがなく、メニューは日本語化されていません。

→ 翻訳ファイルを落としてやればメニューの日本語化ができそうですが、Haiku の場合はシステム領域に置かれているので書き込みできません。

→初期の設定さえ済ませれば、使うのに支障はありません。

-

  • ヘルプファイルがテキストファイルなので、本来はCtrl+H で呼び出せる個人的な備忘録として使えますが、Haiku の場合はシステム領域に置かれているので書き込みできません。

  • Qt5 アプリなので多くの依存パッケージが入るのが難点。「Ottr-browser」も入れれば少しは稼げます。

  • Mousepad では不正な文字コードで開けない、日本語が含まれたテキストファイル(unicode UTF-8)も日本語が文字化けしますが開けました。

→日本語が含まれたテキストファイルは(unicode UTF-16)で保存が必要です。

-


5). 画像編集: 「KolourPaint」

  • Haiku のキャプチャー画像を加工するのに使っています。欲しい機能があり、操作が簡単なのが利点。

→一度、単体で起動してやらないと、右クリックのアプリの一覧に表示されませんでした。 その後は、右クリックから起動できるようになりました。

  • KDE アプリなので多くの依存パッケージが入るのが難点。「kwrite」も入れれば少しは稼げます。

-

-


6). 「Otter Browser」で、はてなブログを編集していたら(たまたま?)デバッガーに落ちました

  • 急に、GUI 操作できなくなり、また、デスクトップの描画がされなくなりました。

→マウスを動かすと、黒板消しのように、下のデスクトップ画面がそこだけ表示。

→Enter を数回押すと、デバッガー画面が表示されていることがわかりました。

debuger> help
debuger> save-report

→デスクトップに「app_server-451-debug-10-09-2021-11-30-43.report」ファイルが登録されました。

内容を見ると、「Otter Browser」とは直接関係ない? システムのモジュールでした。

-

  • 不具合報告のときに添付が必要なファイルみたいです。出力しておくとよいかも。

貢献するには不具合報告のやり方の勉強が必要です。

-

-


まとめ

UEFI 立ち上げしかできない自分のPC にて、「Haiku」が立ち上がりました。

VirtualBox を利用してUSB メモリにインストールできるのは便利です。他のディストリビューションでは真似できないことです。システムとしては共通で使えるイメージのようです。 ハードウェアの違いは、立ち上げ時にハードウェアに合わせて、関連のモジュールが自動で組み込まれているようです。

立ち上げ時の「ブートスクリーン 」を見ていると、そう思えます。

-

-


-

-

    目次

-

「投稿の先頭 へ」

-

-


-

「この目次 の先頭へ」

「本編の目次 に戻る」

-

VirtualBox にUEFI 立ち上げで「Haiku R1/beta3」をインストール〈H134〉

登録日: 2021-09-08 更新日: 2021-09-12

現在も開発が続いているBeOS R5 のコミュニティ版の「Haiku R1/beta3」をVirtualBox にインストールしました。 20年以上も永く開発が続いているのは、魅力があるOS ということです。やはり現在でも新鮮に感じます。

beta3 になったHaiku の備忘録です。(以前に投稿した情報も合わせて追記)

-

その続きで、今回は「UEFI 立ち上げ」でのインストールにトライしました。

USB メモリにインストールするための事前の確認作業です。 勉強にはなりますが問題が多いだけです。通常使用するなら、通常の立ち上げ(前回の手順 )でインストールしてください。

-

ホストOS : Xubuntu 20.04.3 LTS

ゲストOS : Haiku R1/beta3  ←(今回の作業)

-

-

使用したPC は「ASUS Chromebox CN60 」で、プロセッサは第4世代の「Intel Celeron 2955U 」です。

→現在は「UEFI 立ち上げ」しかできないファームウェアに置換しています。

-

(注)リンクを戻るときはブラウザの左上の「←」をクリック

-

-


目次

-

「前回の作業:」

「UEFI 立ち上げでの問題点:」

「UEFI 立ち上げで「Haiku」をインストール:」

「問題点の対策:」

「まとめ へ」

-

「目次詳細 へ」

-

-


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

-

Haiku R1/beta3」のデスクトップ

-

立ち上げ時に「ブートスクリーン」を表示:

-

→黒い背景のウィンドウが表示されるタイミングで表示されるはずですが、UEFI 立ち上げでは「最大解像度にセットされる」問題があるため、表示範囲ではない中央に置かれて表示されません。

Haiku Boot Loader」で 解像度を指定して起動 すれば 表示されます。

-

ログイン画面はありません:

開発された頃は、個人で使うマシンを別々のアカウントで使う考えはなかったようです。 その代わりに、システムで使われるフォルダは書き込み保護されています。

-

現在のデスクトップ画面の配置:

→「画面」アプリの解像度の値は見えないかもしれませんが、UEFIVirtualBoxHaiku を立ち上げると、最大解像度(7680x4320)に設定されてしまいます。

-

最大解像度にセットされてもメニューを使えるように、「Deskbar」パネルを左上に移動して、 ウィンドウの中で安全に使える領域がわかりやすいように、壁紙にて使えない領域を木目にしました。

Xubuntu との共存もしやすいので、その木目の部分だけウィンドウ幅を狭めました。そのときの画面です。 (ウィンドウの右の枠の狭い黒いところがその木目部分です)

-

Haiku Boot Loader」で 解像度を指定して起動 すれば、これらの対策 は不要です。ただし、使える解像度は指定した解像度だけですし、再起動で設定がクリアされるので、毎回設定し直さないといけないので面倒です。

-

追記:

実機にインストールして確認したところ、最大解像度にはなりますが、物理的なモニタの解像度の「1920x1080」にセットされました。「Haiku Boot Loader」で選べる解像度もそれが上限です。VirtualBox だと最大解像度を認識できないようです。

-

-


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

-

前回の作業の続き:

-

前回の作業 は、VirtualBox ではデフォルトになる「UEFI 立ち上げではない」設定でのインストール作業です。

-

自分のPC はUEFI 立ち上げしかできないマシンです。

自分のPC にて、「Haiku R1/beta3」がインストールできるか確認するために、 VirtualBox を「UEFI 立ち上げ」に設定して、インストールしてみました。

-

-


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

-

1. VirtualBoxUEFI 立ち上げにすると、「Haiku」のインストールで問題が発生:

-

問題1: UEFI に設定すると、Haiku の起動で「EFI シェル」に落ちました:

-

  • UEFI で立ち上げるには、EFI パーティション(/boot/efi/) に「EFI/boot/bootx64.efi」ファイルが必要ですが、 CD ドライブに格納されていたのは大文字の「EFI/BOOT/BOOTX64.EFI」ファイルでした。

VirtualBox 上では、小文字を大文字にすると違うファイルとして認識されるようです。

-

-

問題2: UEFI で立ち上げると、解像度が「最大値 (7680x4320 32 bit)」にセットされ、最初に表示されている領域しかマウス操作できません

-

問題1 を回避して立ち上げると、水色の背景のフル画面にマウスカーソルだけが表示:

  • 全画面の設定をしていないのに、スクロールバー付きの全画面になります。

  • ライブ立ち上げしたときの「ブートスクリーン」、および、その後の「言語設定の画面」が表示されません。

VirtualBox マネージャの「プレビュー」画面をみると、小さな白いウィンドウで表示されていました。

→表示されてるけど、「ブートスクリーン」、および、その後の「言語設定の画面」が表示の範囲外に置かれています。

-

  • ウィンドウの左右のスクロールバーを使い、上下/左右ともに画面の真ん中に持ってくると、

→「言語設定とインストーラを起動するかの画面」が表示されました:

f:id:FuRuYa7:20210831104923j:plain

→画面の解像度の設定が「とても大きい値」になっていました。

-

  • 一番の問題は、スクロールバーで移動して表示させても「マウスカーソルが消えて操作できない」ことです。 (最初に表示されている画面の領域ならマウス操作できました)

→最大解像度になると、マウス操作できなくなります。 VirtualBox のマウスの「キャプチャー」制御がうまく行かないようです。

-

  • 解像度を設定する「画面」(screen) アプリも大画面の中央に表示されており、 スクロールバーで表示させても操作できません。

→「画面」(screen) アプリを使える領域に移動して確認すると、最大値 (7680x4320 32 bit) しか選べませんでした。他の選択肢はなし。

-

  • マウスが使えないため、ライブ立ち上げで「インストーラ」も「デスクトップ」も起動できませんでした。

-

  • たぶん、VirtualBox のみで起きていると思われますが、UEFI 立ち上げのPC でも確認の必要があります。

良かれと思って、最初から全画面で表示するようになっているのかもしれません。  ←(正解みたい)

-

追記:

実機にインストールして確認したところ、最大解像度にはなりますが、物理的なモニタの解像度の「1920x1080」にセットされました。「Haiku Boot Loader」で選べる解像度もそれが上限です。VirtualBox だと最大解像度を認識できないようです。

-

-


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

-

2. 回避策を含めて、UEFI 立ち上げで「Haiku」をインストール

-

-

1). 仮想マシンの「システム」の設定を変更:

「システム」をクリック→「マザーボード」タブ

- 「EFI を有効化」にチェック

-

2). 右側の「ストレージ」にて、「ISO イメージ」をセット

-

追記:

「領域の分割ができない」は勘違い。「空き」があればパーティションを追加できるみたい。

すべてパーティションを削除して、頭からサイズ指定でパーティションを作成していけば、作れると思われます(未確認)。パーティションテーブルの初期化で「Intel format」だとMBR になるので注意。GPT にしたいところ。gparted を使うのが無難かな。

-

→使い慣れた「debian」のライブイメージを使いましたが、領域分割できるアプリが準備できるのなら何でもOK。

-

IDE セカンダリマスター: [光学ドライブ] 空 をクリック

→「ディスクファイルを選択」

→「~/ダウンロード/Debian/debian-live-11.0.0-amd64-mate.iso」を選んで「開く」

「空」→「debian-live-11.0.0-amd64-mate.iso」に変わりました。

-

3). 「起動」(緑色の右矢印)ボタンをクリック

仮想マシンが起動

-

(1). gparted が入っていなかったので、インストール:
$ sudo apt update
$ sudo apt install gparted

-

(2). メニュー →System Tools →「gparted」

Device →「Create Partition Table...」

type: gpt

→Apply

-

(3). 「unallocated」の領域を選んで、右クリック→「New」
New size (MiB): 「600」
Partition name: 「eps」
file system: 「fat32」

→Add

-

(4). 「fat32」の領域を選んで、右クリック→Format to: 「fat32

→上部の「チェック」(適用)をクリック

→Apply

→完了したら、「Close」

-

(5). 「fat32」の領域を選んで、右クリック→「Manage flags」
「boot」、「esp」にチェック

→「Close」

-

→右上の「x」でアプリを閉じました。

-

(6). メニュー →System →Shoutdown →「Shoutdown」

仮想マシンが電源オフされました。

-

-

4). 右側の「ストレージ」にて、「ISO イメージ」をセット

-

IDE セカンダリマスター: [光学ドライブ] 空 をクリック

→「ディスクファイルを選択」

→「~/ダウンロード/Haiku/haiku-r1beta3-x86_64-anyboot.iso」を選んで「開く」

「空」→「haiku-r1beta3-x86_64-anyboot.iso」に変わりました。

-

5). 「起動」(緑色の右矢印)ボタンをクリック

仮想マシンが起動

-

6). Haiku の起動で、EFI シェルに落ちました:

-

-

Shell>

-

7). EFI パーティションの作成:

-

(1). ドライブの対応:
FS0:  ←(HDD efi): 今回作成した仮想ディスクのEFI パーティション
FS2:  ←(CD efi): ライブCD のEFI パーティション

→FS はファイルシステムの略みたい。

-

(2). 確認:
Shell> ls FS2:\EFI\BOOT\BOOTX64.EFI

MS-DOS 風にドライブ番号が頭に付き、区切り文字は「\」です。

英語配列なので「:」はShift+「;」で、「\」は「む」の位置。

-

(3). /boot/efi/EFI/boot/bootx64.efi ファイルが必要なのでライブCD から拝借:
Shell> FS0:

FS0:\> mkdir EFI
FS0:\> cd EFI
FS0:\EFI\> mkdir boot
FS0:\EFI\> cd boot

FS0:\EFI\boot\> cp FS2:\EFI\BOOT\BOOTX64.EFI bootx64.efi
Copying FS2:\EFI\BOOT\BOOTX64.EFI -> FS0:\EFI\boot\bootx64.efi
- [ok]

-

(4). EFI シェルを抜けました:

shell> exit

-

8). 仮想マシン→「ACPI シャットダウン」

-

9). 「起動」(緑色の右矢印)ボタンをクリック

→クリックしたら、すぐに「スペース」を連打(これが確実):

-

10). 「Haiku Boot Loader」画面が表示:

-

下記を選んで、

Select video mode (Current: 7680x4320 32 bit)  ←(最大値がセットされていました)

→Enter

-

解像度の一覧から、下記を選んで、

1024x768 32 bit

→Enter

-

下記に表示が変わりました:

Select video mode (Current: 1024x768 32 bit)  ←(サイズが小さくなりました)

-

下記を選んで、

Select boot volume  (Current: VBOX HARDDISK) 

→Enter

-

ディスクの一覧から、下記(CDドライブ)を選んで、

Haiku

→Enter

-

下記に表示が変わりました:

Select boot volume  (Current: Haiku)  ←(Haiku はCDドライブです)

-

画面表示:

-

下記を選んで、

Countinue booting  ←(これにしないと設定がクリアされます)

→Enter

-

11). 水色の背景に、言語設定とインストーラを起動するかの画面が表示:

-

12). 「日本語」を選択:

-

13). 「Haiku を試用」を選ぶと、日本語環境でデスクトップが立ち上がりました:

-

14). 「DriveSetup」を起動:

-

(1). メニュー →Applications →「DriveSetup」

-

-

(2). 「ハードディスク」の「空のスペース」を右クリック→新規作成
パーティション名: haiku-hd
パーティション種別: Be File System

→「変更を書き込む」

-

(3). 「未フォーマット(Be File System)」と表示が変わりました:

-

(4). 右クリック→フォーマット→「Be File System」

→「続ける」→「フォーマット」→「変更を書き込む」

→「OK」

-

-

(5). 左上の □ をクリックして、「DriveSetup」アプリを閉じました

-

15). デスクトップの「インストーラー」をダブルクリック

インストール元: 「Haiku - 710.00 MiB」 ←(ISO イメージ)
インストール先: 「haiku-hd - 29.41 GiB」を指定

-

→「開始」をクリック

-

16). インストールが完了:

→「終了」をクリック

-

17). 電源を切り、ISO イメージを取り外し

-

仮想マシンの電源が落ちたら、

「ストレージ」設定にて、

右側の [光学ドライブ] 空 をクリックして、「仮想ドライブからドライブを除去」

-

18). 「起動」(緑色の右矢印)ボタンをクリック

→クリックしたら、すぐに「スペース」を連打(確実):

-

19). 「Haiku Boot Loader」画面が表示:

-

「video mode」を選びます:

Select video mode (Current: 7680x4320 32 bit)  ←(最大値がセットされていました)

→Enter

-

-

解像度の一覧から、下記を選んで、

1600x900 32 bit

→Enter

-

表示が変わりました:

Select video mode (Current: 1600x900 32 bit)  ←(サイズが小さくなりました)

-

「boot volume」を確認:

Select boot volume  (Current: haiku-hd) 

-

画面を確認:

-

起動します:

Countinue booting  ←(これで起動しないと今までの設定がクリアされます)

→Enter

-

20). デスクトップ画面が表示:

-

  • 設定した画面の解像度 (1600x900 32 bit) で起動されました:

→「画面」(screen) アプリに表示される解像度は上記のみで、他は選べません。

-

-


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

-

3. 問題点の対策:

-


1). 右側に横スクロールしなくてもアプリが起動できるように、パネルを左側に移動:

-

-

システムトレイの左右にある「縦棒」のハンドルをつかんで操作:
  • ウィンドウの外側の「縦棒」をつかんで、左上までマウスを持ってきて離すと、パネルがそこに移動。

  • ウィンドウの内側の「縦棒」をつかんで、横に移動すると、パネルの幅の調整ができます。

-

最大解像度で立ち上がっても、左上にパネルがあればパネルが操作できます:

→最大解像度なので、スクロールバーが右と下に表示されています。

-

  • アプリによっては、起動したときに範囲外に起動されるものがあります。 そのときは使えないので、パネルの下に表示されているウィンドウリストからそのアプリを選んで終了できます。

→その後、解像度 (1600x900 32 bit) を指定して起動して、そのアプリを左上に寄せておくと、 ウィンドウの位置を記憶するので、左上で起動できるようになります。

-


2). 最大解像度で立ち上がっても、安全に使える領域がわかる壁紙に変更:

-

(1). 安全に使える領域を確認:

→横が「1532」(フルHD にて右 1/6 位)を堺に、そこを超えてマウスカーソルを動かすとマウスカーソルの残像が残りました。リスクが高くなります。

-

(2). 安全に使える領域がわかる壁紙を準備:
haiku-test2.jpg   ←(Haiku の文字なし)
haiku-test3.jpg   ←(Haiku の文字あり)

-

参考: 壁紙「haiku-test2.jpg 」:

→1920x1080 (FHD) の壁紙で、1532 より右側を木目にしました。

-

(3). USB 2.0 (fat32) 経由でHaiku のホームにコピー:

haiku-hd」→「ホーム」→「My」→「Pic」→「haiku-test3.jpg」

-

(4). 背景に指定:

メニュー →Preferences→「背景」

「手動」指定にすると、そのまま左上に置けます。

-

→右の木目の領域は、マウスカーソルの残像が(今回は 2つ)残っており、使わない方が安全な領域です。

-

(5). ウィンドウの幅を狭くしました:

やらなくても良いけど、VirtualBox のウィンドウの右下を木目の分だけ左にドラッグして、狭くすると安全に操作でき、ホストOS のアプリと共存しやすくなります。

-

  • 無駄なリソースを使わないので、毎回、解像度 (1600x900 32 bit) で起動するのが良いのですが、 面倒なので、いつもはそのまま最大解像度で使えるように工夫しました。

-

-


3). コマンドでシステム更新:

~> pkgman refresh

~> pkgman update

→「~>」は「作業ディレクトリ名」を含んだプロンプトです。

-

メニュー →シャットダウン →再起動

-


4). その他の設定は前回の投稿を参照:

前回の投稿

-

-


まとめ

VirtualBox にて、UEFI 立ち上げで「Haiku」をインストールしました。

問題点はありますが、UEFI 立ち上げしかできない自分のPC でも、インストール、および使えるように設定できそうです。

たぶん、VirtualBox の画面解像度の制約がないので、実機の方が楽にインストールできると思われます。 また、ブラウザもサクサク動くのではと期待できます。

-

-


-

-

    目次

-

「投稿の先頭 へ」

-

-


-

「この目次 の先頭へ」

「本編の目次 に戻る」

-