Linux あれこれ

Linux 関連の備忘録です。

「Ubuntu 22.04 LTS」にて「Notepadqq」のOTE 版をビルドしてみた〈H145-3〉

登録日: 2022-01-16 更新日: 2022-03-09

Xubuntu 20.04.4 LTS」をホストOS にした「VirtualBox」に、公開はまだの「Ubuntu 22.04 LTS」のDaily 版(日々更新版)をインストールしました。

-

その環境で、他とはちょっと違う「Notepadqq-OTE 」をビルドして、使えるかどうか、動作を確認しました。その備忘録です。

-

-

ホストOS : Xubuntu 20.04.4 LTS

ゲストOS : Ubuntu 22.04 LTS   ←(今回の作業)

-

-

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

-

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

-

-


目次

-

事前の作業:

ホストOS に「VirtualBox をインストール」

「仮想マシンの作成:」

「Ubuntu 22.04 LTS のインストール」

-

今回の作業:

「ソースをダウンロード:」

「ビルドに必要なパッケージをインストール:」

「ビルド (./configure):」

「ビルド (make):」

「インストール (make install):」

「まとめ へ」

-

「目次詳細 へ」

-

-


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

Ubuntu 22.04 LTS」の画面:

-

デスクトップは使いやすいようにカスタマイズ:

→ドックのアイコンを小さくして、右に移動したぐらい。 デフォルトの壁紙も悪くありません。

-

通常インストールされる「Notepadqq-1.4.8」の画面:

→apt やsnap でインストールされるバージョンです。

「Notepadqq-1.4.8-3」で日本語入力できるようになりました。 メニューの日本語化は一部のみです。また、ヘルプの「閉じる」ボタンが誤表示しています。

-

前回ビルドした、「Notepadqq-2.0.0-beta」の画面:

→メニューも日本語化されて、日本語入力もできます。ヘルプ表示の「閉じる」ボタンの表示も正常です。

画面下のステータスバーのレイアウトが変更されています。

エンジンがQtWebEngine に変わりました。そのせいか起動が遅いです。

-

今回ビルドした、OTE 版の「Notepadqq」の画面:

→メニューも日本語化されて、日本語入力もできます。ヘルプ表示の「閉じる」ボタンの表示も正常です。

エンジンは独自のOTE コンポーネントに入替えてあります。

OTE 版かを見分けるには、ヘルプで背景が暗くなることと、「software libraries:」の表示を確認します。

-

-


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

Ubuntu 22.04 LTS」について

-

リリース:

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="Ubuntu Jammy Jellyfish (development branch)"

→「Alpha 版」ですが、内部エラーも少なく安定しています。

-


現在のバージョンを表示:

2022-01-20 現在

カーネル:

$ uname -r
5.15.0-17-generic

-

-


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

「Notepadqq-OTE」 について

-

公開サイト:

GitHub: JuBan1/notepadqq

→現在は休止中とのこと

-

「Notepadqq-OTE」は、独自のOTE コンポーネントを試すために「Notepadqq」のエンジンをOTE に載せ替えたテキストエディタです。

-

「Notepadqq-OTE」は、「Notepadqq」のフォークから開発されました。

なので、「Notepadqq」と見た目も挙動もそっくりです。 違いは、JavaScript 中心のコンポーネントが OTE (OpenTextEdit) という独自のコンポーネントに入替えてあることです。

-

軽量です。「Notepadqq」の問題点のいくつかが解消されています。

個人的には(今のところHaiku では不安定で起動も遅い)「QtWebEngine」が使われていないことが大きいです。

-

-


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

1. ソースをダウンロード:

-

1). ソースをZIP でダウンロード:

公開されているサイト にて、

緑色の「Code」をクリック→「 Download ZIP 」をクリック

→「ファイルとして保存」

-

→ファイルを「~/ダウンロード/notepadqq/」フォルダに移動

-

2). チェックサムの確認:

$ cd ~/ダウンロード/notepadqq/
$ sha256sum notepadqq-ote.zip
8c1b6969fe2841b2d929feedb0d6a2b087d61d3080c716455706e5ea26ebee92  notepadqq-ote.zip

-

3). 「ote.zip」を右クリック→「ここで展開」

-

4). ファイルの確認:

$ cd ~/ダウンロード/notepadqq/notepadqq-ote/
$ ls
CONTRIBUTING.md  README.md    configure  notepadqq.pro  support_files
COPYING          TODO.txt     doc        snap
Dockerfile       build-tools  images     src

-

-


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

2. インストールガイドからビルドの情報を確認:

-

$ cat ~/ダウンロード/notepadqq/notepadqq-ote/README.md

-

(1). ビルドに必要な依存:
Qt 5.6 以上
libqt5svg5-dev
qttools5-dev-tools
libuchardet-dev

-

(2). 実行に必要な依存:
Qt 5.6 以上
libqt5svg5
coreutils
libuchardet

-

(3). ソースの入手について

git clone でダウンロードする場合:

$ git clone https://github.com/JuBan1/notepadqq.git
$ cd notepadqq

-

(4). ビルドについて
notepadqq$ ./configure --prefix /usr
notepadqq$ make

-

(5). インストールについて
notepadqq$ sudo make install

-

-


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

3. ビルドに必要なパッケージをインストール:

-


1). ビルドに使うツールをインストール:

$ sudo apt install make
:
make はすでに最新バージョン (4.3-4ubuntu2) です。
$ sudo apt install qt5-qmake
:
以下のパッケージが新たにインストールされます:
  qt5-qmake qt5-qmake-bin

-


2). 依存パッケージをインストール:

-

(1). 「qt5-default」をインストール:
$ sudo apt install qt5-default
:       
E: パッケージ 'qt5-default' にはインストール候補がありません

Ubuntu 21.04 以降は、その元になったDebian にて「qt5-default」は廃止されています。

-

(2). 「qt5-default」の代わりとなるパッケージをインストール:
$ sudo apt install qt5-qmake qtbase5-dev-tools qtbase5-dev qtchooser
:
qt5-qmake はすでに最新バージョン (5.15.2+dfsg-14ubuntu3) です。
qtchooser はすでに最新バージョン (66-2build1) です。

以下のパッケージが新たにインストールされます:
  libglu1-mesa-dev libqt5opengl5 libqt5opengl5-dev qtbase5-dev qtbase5-dev-tools

-

(3). 「notepadqq」のビルドに必要な依存をインストール:
$ sudo apt install libqt5svg5-dev libqt5svg5 libuchardet-dev qttools5-dev-tools
:
以下のパッケージが新たにインストールされます:
  libqt5svg5-dev libuchardet-dev

-

(4). 依存がインストールされたかの確認:
$ apt list libqt5svg5-dev libqt5svg5 libuchardet-dev qt5-qmake qtbase5-dev-tools qtbase5-dev qtchooser qttools5-dev-tools 
:
libqt5svg5-dev/jammy,now 5.15.2-4 amd64 [インストール済み]
libqt5svg5/jammy,now 5.15.2-4 amd64 [インストール済み]
libuchardet-dev/jammy,now 0.0.7-1build1 amd64 [インストール済み]
qt5-qmake/jammy,now 5.15.2+dfsg-14ubuntu3 amd64 [インストール済み]
qtbase5-dev-tools/jammy,now 5.15.2+dfsg-14ubuntu3 amd64 [インストール済み]
qtbase5-dev/jammy,now 5.15.2+dfsg-14ubuntu3 amd64 [インストール済み]
qtchooser/jammy,now 66-2build1 amd64 [インストール済み]
qttools5-dev-tools/jammy,now 5.15.2-5 amd64 [インストール済み]

→8個を確認

-

-


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

4. ビルド (./configure):

-

$ cd ~/ダウンロード/notepadqq/notepadqq-ote/

$ ./configure
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 Qt5Widgets library... -lQt5Widgets -lQt5Gui -lQt5Core
checking for Qt5PrintSupport library... -lQt5PrintSupport -lQt5Widgets -lQt5Gui -lQt5Core
checking for Qt5Svg library... -lQt5Svg -lQt5Widgets -lQt5Gui -lQt5Core
checking for uchardet library... -luchardet
generate Makefile... Info: creating stash file /home/ubn/ダウンロード/notepadqq/notepadqq-ote/.qmake.stash
done

→通常は一発では成功しません。依存をインストール →再実行 の繰り返しです。

-

上記のやり方だと、/usr/local/ にインストールされます:

-

/usr/ にインストールしたい場合は:

$ cd ~/ダウンロード/notepadqq/notepadqq-ote/
$ ./configure --prefix /usr

→インストール先を指定できます。

-

-


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

5. 参考: ビルド (make) でのエラーについて:

-

  • すでに解消されています。以下の作業は必要ありません。

  • ソースを修正しておかないと、下記のように「make」でエラーしていました。

→追記: プルリクエストして採用されたので、すでに解消されています。

-


1). 参考: ビルド (make) でのエラーを確認:

-

(1). make その 1:
$ cd ~/ダウンロード/notepadqq/notepadqq-ote/
$ make
:
ote/textedit.cpp:1656:26: error: aggregate ‘QPainterPath path’ has incomplete type and cannot be defined
 1656 |             QPainterPath path;

→エラーしました。

対処:

/home/ubn/ダウンロード/notepadqq/notepadqq-ote/src/ui/ote/textedit.cpp を修正:

#include <QPainter>
#include <QPalette>

#include <QPainter>
#include <QPainterPath>   ←(追加が必要)
#include <QPalette>

-

(2). make その 2:
$ make
:
ote/JKQTMath/jkqtmathtext.cpp:33:109: error: return type ‘class QPainterPath’ is incomplete
   33 |  ybrace, double width, double bw, double cubicshrink = 0.5, double cubiccontrolfac = 0.3)

→エラーしました。

対処:

/home/ubn/ダウンロード/notepadqq/notepadqq-ote/src/ui/ote/JKQTMath/jkqtmathtext.cpp を修正:

#include <QFontMetricsF>

#include <QFontMetricsF>
#include <QPainterPath>   ←(追加が必要)

-

(3). make その 3:
$ make
:
ote/JKQTMath/jkqtptools.cpp:419:22: error: aggregate ‘QPainterPath path’ has incomplete type and cannot be defined
  419 |         QPainterPath path;

→エラーしました。

対処:

/home/ubn/ダウンロード/notepadqq/notepadqq-ote/src/ui/ote/JKQTMath/jkqtptools.cpp を修正:

#include <QLocale>
#include <QPrintDialog>

#include <QLocale>
#include <QPainterPath>   ←(追加が必要)
#include <QPrintDialog>

-


2). 参考: ソースを修正するパッチファイルを作成:

-

$ cd ~/ダウンロード/notepadqq/notepadqq-ote/
$ gedit make-error.patch

↓ 内容を見やすくするために区切っていますが、区切りを無視して連続して、すべて貼り付けてください:

diff -Naur a/src/ui/ote/JKQTMath/jkqtmathtext.cpp b/src/ui/ote/JKQTMath/jkqtmathtext.cpp
index 35231ee..f78eda5 100644
--- a/src/ui/ote/JKQTMath/jkqtmathtext.cpp
+++ b/src/ui/ote/JKQTMath/jkqtmathtext.cpp
@@ -24,6 +24,7 @@
 #include <QDebug>
 #include <QFontDatabase>
 #include <QFontMetricsF>
+#include <QPainterPath>
 
 #include <typeinfo>
 //#define QColor2String(color) QString(jkqtp_rgbtostring((color).red(), (color).green(), (color).blue(),
diff -Naur a/src/ui/ote/JKQTMath/jkqtptools.cpp b/src/ui/ote/JKQTMath/jkqtptools.cpp
index 6f62c4a..82af66c 100644
--- a/src/ui/ote/JKQTMath/jkqtptools.cpp
+++ b/src/ui/ote/JKQTMath/jkqtptools.cpp
@@ -36,6 +36,7 @@ IWR, University of Heidelberg
 #include <QKeyEvent>
 #include <QLabel>
 #include <QLocale>
+#include <QPainterPath>
 #include <QPrintDialog>
 #include <QPrinter>
 #include <QSet>
diff -Naur a/src/ui/ote/textedit.cpp b/src/ui/ote/textedit.cpp
index d78daa0..407c4e0 100644
--- a/src/ui/ote/textedit.cpp
+++ b/src/ui/ote/textedit.cpp
@@ -12,6 +12,7 @@
 #include <QMenu>
 #include <QMimeData>
 #include <QPainter>
+#include <QPainterPath>
 #include <QPalette>
 #include <QRegularExpression>
 #include <QScrollBar>

-


3). 参考: パッチファイルの適用:

-

$ cd ~/ダウンロード/notepadqq/notepadqq-ote/
$ patch -p1 < make-error.patch

-

-


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

6. ビルド (make) :

-

$ make
:
make[1]: ディレクトリ '/home/ubn/ダウンロード/notepadqq/notepadqq-ote/src/ui-tests' から出ます

→しばらく待つと、完了。成功しました。追加した機能の一部の定義に漏れがあったようです。

-

-


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

7. インストール (make install):

-


1). インストール

$ cd ~/ダウンロード/notepadqq/notepadqq-ote/
$ sudo make install
:
/usr/lib/qt5/bin/qmake -install qinstall -exe /home/ubn/ダウンロード/notepadqq/notepadqq-ote/out/release/lib/notepadqq-bin /usr/local/lib/notepadqq/notepadqq-bin
/usr/lib/qt5/bin/qmake -install qinstall /home/ubn/ダウンロード/notepadqq/notepadqq-ote/support_files/icons/hicolor/16x16/apps/notepadqq.png /usr/local/share/icons/hicolor/16x16/apps/notepadqq.png
/usr/lib/qt5/bin/qmake -install qinstall /home/ubn/ダウンロード/notepadqq/notepadqq-ote/support_files/icons/hicolor/22x22/apps/notepadqq.png /usr/local/share/icons/hicolor/22x22/apps/notepadqq.png
/usr/lib/qt5/bin/qmake -install qinstall /home/ubn/ダウンロード/notepadqq/notepadqq-ote/support_files/icons/hicolor/24x24/apps/notepadqq.png /usr/local/share/icons/hicolor/24x24/apps/notepadqq.png
/usr/lib/qt5/bin/qmake -install qinstall /home/ubn/ダウンロード/notepadqq/notepadqq-ote/support_files/icons/hicolor/32x32/apps/notepadqq.png /usr/local/share/icons/hicolor/32x32/apps/notepadqq.png
/usr/lib/qt5/bin/qmake -install qinstall /home/ubn/ダウンロード/notepadqq/notepadqq-ote/support_files/icons/hicolor/48x48/apps/notepadqq.png /usr/local/share/icons/hicolor/48x48/apps/notepadqq.png
/usr/lib/qt5/bin/qmake -install qinstall /home/ubn/ダウンロード/notepadqq/notepadqq-ote/support_files/icons/hicolor/64x64/apps/notepadqq.png /usr/local/share/icons/hicolor/64x64/apps/notepadqq.png
/usr/lib/qt5/bin/qmake -install qinstall /home/ubn/ダウンロード/notepadqq/notepadqq-ote/support_files/icons/hicolor/96x96/apps/notepadqq.png /usr/local/share/icons/hicolor/96x96/apps/notepadqq.png
/usr/lib/qt5/bin/qmake -install qinstall /home/ubn/ダウンロード/notepadqq/notepadqq-ote/support_files/icons/hicolor/128x128/apps/notepadqq.png /usr/local/share/icons/hicolor/128x128/apps/notepadqq.png
/usr/lib/qt5/bin/qmake -install qinstall /home/ubn/ダウンロード/notepadqq/notepadqq-ote/support_files/icons/hicolor/256x256/apps/notepadqq.png /usr/local/share/icons/hicolor/256x256/apps/notepadqq.png
/usr/lib/qt5/bin/qmake -install qinstall /home/ubn/ダウンロード/notepadqq/notepadqq-ote/support_files/icons/hicolor/512x512/apps/notepadqq.png /usr/local/share/icons/hicolor/512x512/apps/notepadqq.png
/usr/lib/qt5/bin/qmake -install qinstall /home/ubn/ダウンロード/notepadqq/notepadqq-ote/support_files/icons/hicolor/scalable/apps/notepadqq.svg /usr/local/share/icons/hicolor/scalable/apps/notepadqq.svg
/usr/lib/qt5/bin/qmake -install qinstall /home/ubn/ダウンロード/notepadqq/notepadqq-ote/out/release/appdata/data /usr/local/share/notepadqq/data
/usr/lib/qt5/bin/qmake -install qinstall /home/ubn/ダウンロード/notepadqq/notepadqq-ote/out/release/appdata/extension_tools /usr/local/share/notepadqq/extension_tools
/usr/lib/qt5/bin/qmake -install qinstall /home/ubn/ダウンロード/notepadqq/notepadqq-ote/out/release/bin/notepadqq /usr/local/bin/notepadqq
/usr/lib/qt5/bin/qmake -install qinstall /home/ubn/ダウンロード/notepadqq/notepadqq-ote/support_files/shortcuts/notepadqq.desktop /usr/local/share/applications/notepadqq.desktop
/usr/lib/qt5/bin/qmake -install qinstall /home/ubn/ダウンロード/notepadqq/notepadqq-ote/support_files/notepadqq.appdata.xml /usr/local/share/metainfo/notepadqq.appdata.xml
chmod 755 "/usr/local/bin/notepadqq"
make[1]: ディレクトリ '/home/ubn/ダウンロード/notepadqq/notepadqq-ote/src/ui' から出ます
cd src/ui-tests/ && ( test -e Makefile || /usr/lib/qt5/bin/qmake -o Makefile /home/ubn/ダウンロード/notepadqq/notepadqq-ote/src/ui-tests/ui-tests.pro PREFIX= QMAKE_CXX=c++ 'QMAKE_CXXFLAGS= ' QMAKE_LFLAGS= 'LRELEASE=/usr/bin/qtchooser -run-tool=lrelease -qt=5' CONFIG+= ) && make -f Makefile install
make[1]: ディレクトリ '/home/ubn/ダウンロード/notepadqq/notepadqq-ote/src/ui-tests' に入ります
make[1]: 'install' に対して行うべき事はありません.
make[1]: ディレクトリ '/home/ubn/ダウンロード/notepadqq/notepadqq-ote/src/ui-tests' から出ます

→ファイルの配置がわかるように、メッセージを記述。「/usr/local/」配下です。

-


2). インストールされたかバージョンを確認:

$ notepadqq --version
Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
Notepadqq 1.4.8

-


3). 起動して確認:

デスクトップ環境はGNOME の場合です。

Windows+A →検索窓に「note」→「Notepadqq」アイコンをクリック

-

起動したOTE 版の「Notepadqq」の画面:

→メニューも日本語化されて、日本語入力もできます。ヘルプ表示でのボタンの表示も正常です。

→バージョンは「1.4.8」です。

-

-


まとめ

ビルドして確認したところ、「Notepadqq」のいくつかの問題点が解消されています。これなら使えそう。 「Notepadqq」を使うとすれば、OTE 版の「Notepadqq」がオススメです。

-

開発は休止しており、更なるバージョンアップは期待できませんが、ソースがあるので(がんばれば個人的に)機能の追加は可能です。

サイトが休止していることを知らずにプルリクエスト(ソースの修正案の提出)したのですが、迷惑にもかかわらず採用(修正案のソースへのマージ)してもらいました。Haiku への移植でパッチの作成が少なくなるのでやりやすくなります。感謝。

こちらのサイトの利用はダウンロードだけに留めるのがよいと思います。

-

-


-

-

    目次

-

「投稿の先頭 へ」

-

-


-

「この目次 の先頭へ」

「本編の目次 に戻る」

-