Linux あれこれ

Linux 関連(一部 Windows11 )の備忘録です。

「Alpine Linux」にて、アプリをビルドしてインストール〈H158-2〉

登録日: 2022-11-19 更新日: 2023-03-08

Xubuntu 22.04.1 LTS」の「Boxes」に、「Alpine Linux edge (3.17)」(ローリングリリース )をインストールしました。

使えるアプリが増えるように、アプリのビルドにトライしました。

その備忘録です。

-

-

-

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

UEFI 立ち上げ」のPC です。

-

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

-

-


目次

-

参考:

  1. 「vi」について:

  2. アプリのインストール:

  3. ゲームのインストール:

  4. 「Flatpak」のインストール:

  5. Flatpak で「Notepadqq」がインストールできるか確認:

  6. 「Alpine Linux」での、ビルドとパッケージの作成について:

  7. 「APKBUILD」の書き方の参考に「Aports ツリー」を参照:

-

今回の作業:

  1. 「Alpine Linux」で、ビルドするための準備:

  2. 「featherpad」の既存バージョン「1.1.0」をビルド:

  3. 「featherpad」の最新バージョン「1.3.3」をビルド:

  4. 「Notepadqq」の「1.4.8」 OTE 版 をビルド:

  5. 「Notepadqq」の 「2.0.0_beta」をビルド:

-

「まとめ へ」

-

「目次詳細 へ」

-

-


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

Xubuntu 22.04.1 LTS で、「Boxes」の「Alpine Linux」を起動:

-

全画面で、できるだけ画面が広くなる解像度で表示:

→解像度をモニタの解像度と同じ「1920x1080」(16:9) 」に変更しました:

きっちりの解像度ではないので、左右に黒い余白があります。

-

ビルドした「Notepadqq」の OTE 版 を表示:

→「Notepadqq」(1.4.8) の フォークで、リポジトリに登録されていないアプリですが、ビルドすることで使えるようになりました。

よく使うアプリがリポジトリにないときは、ビルドできないか試してみると良いです。

-

-


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

「Boxes」について:

-

「Boxes」は シンプルな「仮想マシン」を動かす環境です

GNOME アプリであり、簡単にゲストOS (ボックス)を作成できます。

-

公式サイト:

GNOME Boxes

-

-


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

「Alpine Linux」について:

-

超軽量 の Linux ディストリビューション:

「Alpine Linux」は、カーネルにセキュリティ強化のパッチを提供、軽量の「BusyBox」をベースに、「libc」として「musl」を使った、プロ志向のシンプルで軽量な Linuxディストリビューションです。

-

公式サイト:

Alpine Linux

→ホーム右上の「横3本線」アイコンから見たいページに飛べます

-

公式 リポジトリ:

gitlab.alpinelinux.org

-

-


「Alpine Linux」の現在のバージョン:

2022-11-19 現在:

-

カーネル:

$ uname -r
5.15.77-0-lts

リリース:

$ cat /etc/os-release
NAME="Alpine Linux"
ID=alpine
VERSION_ID=3.17_alpha20220809
PRETTY_NAME="Alpine Linux edge"
HOME_URL="https://alpinelinux.org/"
BUG_REPORT_URL="https://gitlab.alpinelinux.org/alpine/aports/-/issues"

→「Alpine Linux edge」はローリングリリースです。

-

-


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

1. 「Alpine Linux」における、ビルドとパッケージの作成について:

-

情報が散らばっているので、その都度、気になる部分を抜粋して追記しました。

-

参考:

Category talk:Developer Documentation 」サイトにて、
「Building from source and creating packages」の項目を参照しました:

-

  • 「APKBUILD」ファイルは、「Alpine Linux」のプログラムをビルド/コンパイルするやり方を記述した「レシピ」を含むファイルです。

  • 「Aports ツリー」は、「APKBUILD」ファイル集になります。Alpine Linux のすべてのパッケージやプログラムをビルドするときに使われる「APKBUILD」ファイルを含むディレクトリが含まれています。

  • 「abuild」スクリプトは、ソースからビルドするときに使われるコマンドで、「APKBUILD」ファイルを読み取り、パッケージの作成に必要な手順を実行します。

  • ソースからビルドされた、「iso」または「tar.gz」には「APKBUILD」ファイルは含まれていません。

-


1). 「APKBUILD」ファイルについての説明を表示:

$ man APKBUILD

→実行するには、man のインストールが必要です。

-


2).「abuild」コマンド(スクリプト)のオプション:

$ abuild -h

一部を和訳しました:

使用法: abuild [オプション] [-P REPODEST] [-s SRCDEST] [-D DESCRIPTION] [コマンド] ...

       abuild [-c] -n PKGNAME[-PKGVER]

オプション:
 -A  CARCH を出力して終了
 -c  カラー出力を有効
 -d  依存関係チェックを無効
 -D  APKINDEX の説明を設定 (デフォルト: $repo $(git describe))
 -f  指定されたコマンドを強制実行 (チェックをスキップ: apk up to date, arch, libc)
 -F  ルートとして強制実行
 -h  このヘルプを表示
 -k  APKBUILD またはソースが新しい場合でも、ビルドされたパッケージを保持
 -K  ビルド時の一時ディレクトリとファイルを保持 (srcdir/pkgdir/deps)
 -m  カラーを無効にします (モノクロ)
 -P  作成されたパッケージのリポジトリの場所として REPODEST を設定します
 -q  おだやかな表示
 -r  不足している依存関係をシステム リポジトリからインストール (sudo を使用)
 -s  ソース パッケージの宛先ディレクトリを設定します
 -v  Verbose: 実行中のすべてのコマンドを表示 (うるさいです)

コマンド:
  build       パッケージをコンパイルして $pkgdir にインストールします
  check       パッケージに関する定義済みのテストを実行します
  checksum    APKBUILD に含めるチェックサムを生成します
  clean       ビルドとインストールに使われた一時的なディレクトリを削除
  cleancache  ダウンロードしたファイルを $SRCDEST から削除
  cleanoldpkg 現在のバージョン以外のバイナリ パッケージを削除
  cleanpkg    ビルド済みのバイナリと、ソース パッケージを削除
  deps        smakedepends と depends にリストされているパッケージをインストール
  fetch       ソースを $SRCDEST に読み込みます (右も考えること: 'abuild fetch verify')
  index       $REPODEST でインデックスを再生成します
  listpkg     対象パッケージの一覧表示
  package     プロジェクトをインストール
  prepare     patches パッチを適用
  rootbld     clean chroot でパッケージをビルド
  rootpkg    「package」を実行、分割関数を作成し、apk を fakeroot として作成します
  sanitycheck APKBUILD の基本的な健全性をチェック
  snapshot    $giturl または $svnurl のスナップショットを作成し、$disturl にアップロードします
  sourcecheck リモート ソース パッケージが上流に存在するかどうかを確認
  srcpkg      ソースパッケージを作ります
  undeps      makedepends および depends にリストされているパッケージをアンインストールします
  unpack      ソースを $srcdir に解凍
  up2date     ターゲットとソースの日付を比較します
  verify      チェックサムを検証

クロス コンパイルを有効にするには、環境で次のように指定します:
  CHOST       パッケージを生成するマシンの Arch または hostspec を指定
  CTARGET     コンパイラを生成するマシンの Arch または hostspec を指定

-


3).「newapkbuild」コマンドのオプション:

$ newapkbuild -h

一部を和訳しました:

newapkbuild 3.10.0_rc1-r2 - 新しい APKBUILD を生成します

使用法: newapkbuild [-n PKGNAME] [-d PKGDESC] [-l LICENSE] [-u URL]
       [-a | -C | -m | -p | -y | -r] [-s] [-c] [-f] [-h]
       PKGNAME[-PKGVER] | SRCURL

オプション:
  -n  パッケージ名を PKGNAME に設定 (SRCURL でのみ使用)
  -d  パッケージの説明を PKGDESC に設定
  -l  パッケージ ライセンスを LICENSE に設定し、次の識別子を使用します:
      <https://spdx.org/licenses/>
  -u  パッケージの URL の設定
  -a  autotools パッケージを作成 (./configure ... を使用)
  -C  CMake パッケージを作成 (ここに、cmake/ があると仮定)
  -m  meson パッケージを作成 (ここに、meson.build があると仮定)
  -p  perl パッケージを作成 (ここに、Makefile.PL があると仮定)
  -y  python パッケージを作成 (ここに、setup.py があると仮定)
  -r  rust パッケージを作成 (ここに、Cargo.toml があると仮定)
  -s  sourceforge のソース URL を使用します
  -c  サンプルの init.d、conf.d、およびインストール スクリプトをコピーします
  -f  ディレクトリが既に存在する場合でも強制実行します
  -h  このヘルプを表示

-

注: 以前の古い Alpine Linux システムでは、「abuild -c -n packagename」が APKBUILD ファイルを作成するやり方だったようです。

「packagename」は -n オプションのパラメータになるので、-c と -n の順序に意味があり重要です。

-

「-c」オプションは、initd スクリプトを必要とする「デーモン」パッケージを作成する場合に使われます:

$ newapkbuild -c 「パッケージ名」

→サンプルの initd および confd ファイル、sample.install ファイルがビルド ディレクトリにコピーされます。

-


4). 「Alpine でのパッケージの作成」が書かれたサイト:

Creating an Alpine package

-


5). 「Alpine Linux」のパッケージのビルドについて知るには:

「Alpine Linux」のパッケージ管理は、「Arch Linux」のビルド スクリプトとよく似ています:

-

以前の「Alpine Linux」は、「Gentoo Linux」のパッケージ管理である「ebuild」がベース:

 「Gentoo Linux」のアプリのカテゴリ分けの一覧が表示。
 「Alpine Linux」では、アプリのカテゴリ分けはせずに、リポジトリで分けているだけです。

-


6). 「APKBUILD」ファイルの記述のルール:

「aports/.editorconfig」ファイルにルールの記述がありました:
indent_style = tab                  ←インデントコード: Tab
end_of_line = lf                    ←行末コード: LF
insert_final_newline = true         ←最後の改行を挿入
trim_trailing_whitespace = true     ←末尾の空白を削除

-


7). リモートの「alpine/aportsリポジトリ

→「Alpine Linux」のパッケージのすべての「APKBUILD」ファイルと、必要なパッチおよびスクリプトが含まれています。

-

-


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

2.「Alpine Linux」にて、アプリをビルドするための準備:

-

1). root で、ユーザを作成

前回の投稿で、作成済み です。

→「Alpine Linux」のセットアップ時に、ユーザを作成しています。

-

もし、コマンドで作成するときは:
# adduser ubn

→「ubn」はユーザ名です。

-

2). ユーザが sudo を使えるようにroot にて設定:

前回の投稿で、設定済み です。

-

3). 再起動後、パッケージをビルドするユーザでログイン

$ id ubn
:
uid=1000(ubn) gid=1000(ubn) groups=1000(ubn),10(wheel),18(audio),27(video),28(netdev),109(flatpak)

→「ubn」はユーザ名です。「wheel」があることを確認。

-

$ sudo ls

→パスワード入力後、ls が表示されることを確認。

-

4). 「alpine-sdk」パッケージをインストール:

$ sudo apk add alpine-sdk
:
(1/22) Upgrading musl (1.2.3-r2 -> 1.2.3-r4)            ←(注目)
(2/22) Installing fakeroot (1.29-r0)                    ←(注目)
(3/22) Installing libattr (2.5.1-r1)
(4/22) Installing attr (2.5.1-r1)
(5/22) Installing tar (1.34-r1)
(6/22) Installing patch (2.7.6-r8)                      ←(注目)
(7/22) Installing lzip (1.23-r0)
(8/22) Installing curl (7.86.0-r1)
(9/22) Installing abuild (3.10.0_rc1-r2)                ←(注目)
Executing abuild-3.10.0_rc1-r2.pre-install
(10/22) Installing binutils (2.39-r2)
(11/22) Installing isl25 (0.25-r0)
(12/22) Installing mpc1 (1.2.1-r1)
(13/22) Installing gcc (12.2.1_git20220924-r4)
(14/22) Installing libstdc++-dev (12.2.1_git20220924-r4)
(15/22) Installing musl-dev (1.2.3-r4)
(16/22) Installing libc-dev (0.7.2-r3)                 ←(注目)
(17/22) Installing g++ (12.2.1_git20220924-r4)
(18/22) Installing make (4.3-r1)                       ←(注目)
(19/22) Installing fortify-headers (1.1-r1)
(20/22) Installing build-base (0.5-r3)
(21/22) Installing git (2.38.1-r0)                     ←(注目)
(22/22) Installing alpine-sdk (1.0-r1)                 ←(注目)

→apk パッケージのビルドに必要なパッケージです。

こちらの依存でインストールされるパッケージ: abuild、build-base、git

-

5). git に、自分の名前とメールアドレスを設定:

$ git config --global user.name "Your Full Name"

$ git config --global user.email "your@email.address"

-

作業例:

$ git config --global user.name "FuRuYa7"
$ git config --global user.email "my@email.address"

→git (Github) のアカウントに登録した、自分の「ユーザ名」と「メールアドレス」を指定してください。

一時しのぎなら、「--global」パラメータは要りませんが、その時々で設定が必要なので面倒です。 公開しない個人的な作業であれば、ダミーのユーザ名とメールアドレスでも OK

ただし、アプリのインストール時の認証コードにメールアドレスが組み込まれるので、管理できるメールアドレスにしておかないと、ビルドで作成した apk ファイルを他のPC で使いたいときは支障が出るかも。

-

6). 「aports」ツリーのクローンを作成:

つまり、「aports」ツリーのダウンロードです:

$ mkdir -p ~/Git
$ cd ~/Git/
$ git clone https://gitlab.alpinelinux.org/alpine/aports --depth=3
:
Cloning into 'aports'...
warning: redirecting to https://gitlab.alpinelinux.org/alpine/aports.git/
remote: Enumerating objects: 27560, done.
remote: Counting objects: 100% (27560/27560), done.
remote: Compressing objects: 100% (19292/19292), done.
remote: Total 27560 (delta 1348), reused 20122 (delta 1051), pack-reused 0
Receiving objects: 100% (27560/27560), 13.15 MiB | 52.00 KiB/s, done.
Resolving deltas: 100% (1348/1348), done.
Updating files: 100% (18000/18000), done.

→データが大きいとダウンロードの時間がかかるので、3世代までのダウンロードに制限しました。

古いバージョンのソースを見たい場合は、もっと値を大きくします。

-

7). /etc/abuild.conf ファイルに、自分の名前とメールアドレスを設定:

$ sudo vi /etc/abuild.conf
#PACKAGER="Your Name <your@email.address>"

↓ 修正:

#PACKAGER="Your Name <your@email.address>"
PACKAGER="FuRuYa7 <my@email.address>"

-

8). ユーザを「abuild」グループに追加:

$ sudo addgroup ubn abuild

→「abuild」コマンドを使用するには、abuild グループに属している必要があります。

-

確認:

$ id ubn
:
uid=1000(ubn) gid=1000(ubn) groups=1000(ubn),10(wheel),18(audio),27(video),28(netdev),300(abuild),109(flatpak)

→「ubn」はユーザ名です。

-

9). ログアウト →ログイン

→グループの変更が反映されます。

-

10). 「/var/cache/distfiles」ディレクトリを作成:

$ sudo mkdir -p /var/cache/distfiles

→ダウンロードしたソースコードが置かれるキャッシュディレクトリです。

-

11). キャッシュディレクトリを書き込み可能に設定:

$ sudo chmod a+w /var/cache/distfiles

-

確認:

$ ls -l /var/cache/
:
drwxr-xr-x   2 root   root     4096 Nov 17 08:30 apk
drwxrwxrwx   2 root   abuild   4096 Nov 17 09:34 distfiles    ←(注目)
drwxr-xr-x   2 root   root     4096 Oct 30 23:22 fontconfig
drwx--x--x   3 root   root     4096 Oct 24 15:22 lightdm
drwxr-xr-x   2 root   root     4096 Oct 25 17:55 misc
drwxr-xr-x   3 root   root     4096 Nov  7 01:27 swcatalog

-

12). 「abuild-keygen」で、公開鍵と秘密鍵を生成します:

「abuild」コマンドを使うには、公開/秘密 RSA キー ペアが必要です。

-

「~/.abuild/abuild.conf」に PACKAGER_PRIVKEY を設定:

注意:

  • 「sudo」を付けて実行してはいけません。

  • メールアドレスの設定が事前に必要です。

 →メールアドレスがセキュリティキーの識別に使われます

-

$ abuild-keygen -a -i
:
>>> Generating public/private rsa key pair for abuild
Enter file in which to save the key [/home/ubn/.abuild/my@email.address-636fce9c.rsa]: ←Enter
writing RSA key
>>> 
>>> You'll need to install /home/ubn/.abuild/my@email.address-636fce9c.rsa.pub into 
>>> /etc/apk/keys to be able to install packages and repositories signed with
>>> /home/ubn/.abuild/my@email.address-636fce9c.rsa
>>> 
>>> Please remember to make a safe backup of your private key:
>>> /home/ubn/.abuild/my@email.address-636fce9c.rsa
>>> 

オプションの説明:

    -a  abuild.conf で PACKAGER_PRIVKEY=<生成されたキー> を設定
    -i  sudo を使用して公開鍵を /etc/apk/keys にインストールします

→ここでビルドした apk ファイルを他のマシン上でインストールするには、ここで生成した公開鍵の .rsa.pub ファイルを /etc/apk/keys/ 以下に置く必要があります。

-

確認:

$ ls -1 ~/.abuild/
:
abuild.conf
my@email.address-636fce9c.rsa
my@email.address-636fce9c.rsa.pub

-

$ cat ~/.abuild/abuild.conf
PACKAGER_PRIVKEY="/home/ubn/.abuild/my@email.address-636fce9c.rsa"

→コマンドの実行で自動で生成され、自動で設定されます。

「ubn」はユーザ名です。「my@email.address」はメールアドレスです。

-

参考: もし、「sudo abuild-keygen -a -i」として、実行した場合:
$ sudo ls -1 /root/.abuild/
:
abuild.conf
my@email.address-636fa062.rsa
my@email.address-636fa062.rsa.pub
$ ls /etc/apk/keys
alpine-devel@lists.alpinelinux.org-4a6a0840.rsa.pub
alpine-devel@lists.alpinelinux.org-5243ef4b.rsa.pub
alpine-devel@lists.alpinelinux.org-5261cecb.rsa.pub
alpine-devel@lists.alpinelinux.org-6165ee59.rsa.pub
alpine-devel@lists.alpinelinux.org-61666e3f.rsa.pub
my@email.address-636fa062.rsa.pub    ←(注目: -i で登録)

→違うキー番号で登録されます。ビルドするときはユーザで行うので、 /root に置かれていても、キーが登録されていないのと同じなので、

以下のように、ビルドでエラーします:

$ abuild -r
:
No private key found. Use 'abuild-keygen' to generate the keys.
Then you can either:
  * set the PACKAGER_PRIVKEY in /home/ubn/.abuild/abuild.conf
    ('abuild-keygen -a' does this for you)
  * set the PACKAGER_PRIVKEY in /etc/abuild.conf
  * specify the key with the -k option to abuild-sign

>>> ERROR: featherpad: all failed

→「秘密鍵が見つかりません」

-

-


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

3. 確実にビルドできる、リポジトリに登録された「アプリ」の「APKBUILD」で、ビルドを試す:

-

まずは、featherpad (Ver 1.1.0) の「APKBUILD」で試しました。

ちなみに、「featherpad」の最新バージョン「1.3.3」のビルドも「項番 4」で行っています。

-

「APKBUILD」の書き方のルール:

pkgname は小文字のみで、 pkgname は、「APKBUILD」ファイルがあるフォルダ名と「一致させる」必要があります。

-

今回は、同じアプリのバージョンを複数ビルドするので、個人的に使うこともあり、

APKBUILD ファイルがあるフォルダ名とパッケージ名は「一致させていません」:

$ ls -1 ~/Git/aports/testing/featherpad*
:
/home/ubn/Git/aports/testing/featherpad:
APKBUILD              ←(既存のファイルをさわらないで済みます)

/home/ubn/Git/aports/testing/featherpad-1.1.0:
APKBUILD              ←(保存を兼ねた、既存のファイルのコピーです)

/home/ubn/Git/aports/testing/featherpad-1.3.3:
APKBUILD              ←(上記をコピーしての修正版です)

→アプリのバージョン管理は楽ですが、下 2つはルール違反になるのでオススメしません。

-

普通、アプリの APKBUILD を修正するときは、アプリのバージョンアップの時で、フォルダ名はアプリ名と同じなので、フォルダ名は変更しません。

-


1). 「APKBUILD」ファイルの作成のやり方は色々あります:

こちらで作成している、アプリのフォルダ名の付け方は、投稿での項番がわかりやすい名前にしています。「APKBUILD」ファイルのパッケージ名とは異なっており、本当ならルール違反です。

-

-


1-a).「APKBUILD」ファイルの作成: newapkbuild コマンドで登録フォルダと雛形を作成、それを修正する場合:

-

(1). 今回は、何もオプションを指定せずに、「newapkbuild」コマンドを実行:
$ cd ~/Git/aports/testing/
$ newapkbuild featherpad-test1a
$

→ちなみに、指定するパッケージ名には、「パッケージ名の制限」が適用されます:

例えば、

「featherpad-test-2-1」と指定すると「featherpad-test-2」が生成され、
「featherpad-test2-1」と指定すると「featherpad-test2」が生成されました。

-

以下のファイルが生成されました:

$ ls -l ~/Git/aports/testing/featherpad-test1a
:
-rw-r--r--    1 ubn  ubn   435 Nov 16 17:51 APKBUILD
drwxr-sr-x    2 ubn  ubn  4096 Nov 16 17:51 src

→指定したパッケージ名のフォルダが作成されました。
その配下に、雛形の「APKBUILD」ファイルと、空の「src」フォルダが作成されています。

$ tree featherpad-test1a
featherpad-test1a
├── APKBUILD      ←ファイル(雛形)
└── src           ←フォルダ(空)ソースファイルが落ちて、展開される作業場所。

1 directory, 1 file

→「src」フォルダのありなしは気にしなくて OK。以降の作業中に自動で作成されます。

-

(2). APKBUILD の雛形の内容:
$ cat featherpad-test1a/APKBUILD
# Contributor: FuRuYa7 <my@email.address>  ←(設定したメールアドレスが自動設定)
# Maintainer:        ←(デフォルトは空ですが、上記をコピーする設定にもできます)
pkgname=featherpad-test1a         ←(指定したパッケージ名が自動設定)
pkgver=
pkgrel=0
pkgdesc=""
url=""
arch="all"
license=""
depends=""
makedepends=""
checkdepends=""
install=""
subpackages="$pkgname-dev $pkgname-doc"
source=""
builddir="$srcdir/"

build() {
    # Replace with proper build command(s)
    :
}

check() {
    # Replace with proper check command(s)
    :
}

package() {
    # Replace with proper package command(s)
    :
}
              ←(注目: 「sha512sums=」の行がありません)

事前に設定したメールアドレスが使われ、パッケージ名が設定され、一番下の「sha512sums=」の行がないことに注目。

ちなみに、先頭の「# Contributor:」行(投稿者名)は省略してあることが多いみたい

-

(3). こちらの雛形を修正して使います。

-

-


1-b).「APKBUILD」ファイルの作成: Web サイト(リモート)にある「Aports ツリー」の「APKBUILD」ファイルを利用する場合:

-

(1). 登録するフォルダの準備:
$ cd ~/Git/aports/testing/
$ mkdir -p ~/Git/aports/testing/featherpad-test1b

-

(2). APKBUILD に貼り付ける準備:
$ cd ~/Git/aports/testing/featherpad-test1b/

$ vi APKBUILD

-

(3). 参考: "Alpine Linux" で使えるパッケージをブラウザで検索:

Alpine Linux packages

「featherpad」でヒット:

/usr/bin/featherpad   featherpad   edge   testing   x86_64 

→こちらの検索でヒットするパッケージが「Aports ツリー」にあり、
 「Aports ツリー」には、ビルドで使う「APKBUILD」ファイルが置かれています。

-

(4). alpine master/aports にて、

右上の「Find file」をクリック→「featherpad」を入力

検索文字列の貼り付けだと、別のものが選択されうまく行きませんでした。
貼り付けるなら、「featherpa」を貼付後に「d」を入力。

→「testing/featherpad: 1.1.0」がヒット:

aports/testing/featherpad/APKBUILD :

-

(5). ブラウザで「APKBUILD」ファイルが開くので、右上の「Open in Web IDE」の右隣の、「Copy file contents」ボタンをクリック

-

(6). vi で開いている「APKBUILD」で、Esc「i」アイ で編集モードにして、マウスの右クリック→Paste

先頭に余分な空行ができたら、その行で、Esc「dd」で削除できます。
中止したいときは、Esc「:q!」Enter

vi 以外のテキストエディタが使えるなら、そちらを使っても OK

-

「aports/testing/featherpad/APKBUILD」:

「 ~/Git/aports/testing/featherpad-test1b/APKBUILD

# Maintainer: Antoni Aloy <aaloytorrens@gmail.com>
pkgname=featherpad
pkgver=1.1.0
pkgrel=0
pkgdesc="Lightweight Qt plain-text editor"
url="https://github.com/tsujan/FeatherPad"
license="GPL-3.0-or-later"
arch="all"
makedepends="
    cmake libx11-dev qt5-qtbase-dev qt5-qtsvg-dev
    qt5-qttools-dev qt5-qtx11extras-dev hunspell-dev
    "
subpackages="$pkgname-lang"
options="!check" # no test suite
source="https://github.com/tsujan/FeatherPad/releases/download/V$pkgver/FeatherPad-$pkgver.tar.xz"
builddir="$srcdir/FeatherPad-$pkgver"

build() {
    if [ "$CBUILD" != "$CHOST" ]; then
        CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
    fi
    cmake -B build \
        -DCMAKE_BUILD_TYPE=None \
        -DCMAKE_INSTALL_PREFIX=/usr \
        -DBUILD_SHARED_LIBS=True \
        $CMAKE_CROSSOPTS .
    cmake --build build
}

package() {
    DESTDIR="$pkgdir" cmake --install build
}

lang() {
    amove usr/share/featherpad/translations
}

sha512sums="
0a4dcdbdb6edc1a11a6dba5dd3afa04bb435f1d722211c45c7f8ca465b67accced706cb56e0989788b5be7624c6b31cf4782735c91c5e819df2e6a32947ec1f0  FeatherPad-1.1.0.tar.xz
"

→Esc「:wq」Enter にて、保存して終了

日本語オンになっていると、vi の編集コマンドが効かないので注意。

-

-


1-c).「APKBUILD」ファイルの作成: ダウンロードした「Aports ツリー」の「APKBUILD」ファイルを利用する場合:

今回は、こちらの手順を利用しました。

-

「項番 2」の「項番 6) 」で、「Aports ツリー」はダウンロード済みです。

-

(1). 登録するフォルダの準備:
$ cp -r ~/Git/aports/testing/featherpad ~/Git/aports/testing/featherpad-1.1.0

-

(2). 「APKBUILD」ファイルの確認:
$ cd ~/Git/aports/testing/featherpad-1.1.0/

$ cat APKBUILD
# Maintainer: Antoni Aloy <aaloytorrens@gmail.com>
pkgname=featherpad
pkgver=1.1.0
pkgrel=0
pkgdesc="Lightweight Qt plain-text editor"
url="https://github.com/tsujan/FeatherPad"
license="GPL-3.0-or-later"
arch="all"
makedepends="
    cmake libx11-dev qt5-qtbase-dev qt5-qtsvg-dev
    qt5-qttools-dev qt5-qtx11extras-dev hunspell-dev
    "
subpackages="$pkgname-lang"
options="!check" # no test suite
source="https://github.com/tsujan/FeatherPad/releases/download/V$pkgver/FeatherPad-$pkgver.tar.xz"
builddir="$srcdir/FeatherPad-$pkgver"

build() {
    if [ "$CBUILD" != "$CHOST" ]; then
        CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
    fi
    cmake -B build \
        -DCMAKE_BUILD_TYPE=None \
        -DCMAKE_INSTALL_PREFIX=/usr \
        -DBUILD_SHARED_LIBS=True \
        $CMAKE_CROSSOPTS .
    cmake --build build
}

package() {
    DESTDIR="$pkgdir" cmake --install build
}

lang() {
    amove usr/share/featherpad/translations
}

sha512sums="
0a4dcdbdb6edc1a11a6dba5dd3afa04bb435f1d722211c45c7f8ca465b67accced706cb56e0989788b5be7624c6b31cf4782735c91c5e819df2e6a32947ec1f0  FeatherPad-1.1.0.tar.xz
"

→「abuild checksum」コマンドで自動的にソースがダウンロードされ、そのときに最後のチェックサムの「sha512sums=」の行の記述が追加、または変更されます。

-

コマンドを実行すれば、「sha512sums=」の行は、書いていても、書かなくても、値やファイル名が間違っていても、OK です。

正確な「sha512sums=」の行の記述があれば、コマンドの実行を省略できますが、予想外のファイル名だったりするので、実行していた方が無難です。

-

-


2). ソースコードのダウンロードと checksum の更新:

$ cd ~/Git/aports/testing/featherpad-1.1.0/
$ abuild checksum
:
>>> featherpad: Fetching https://github.com/tsujan/FeatherPad/releases/download/V1.1.0/FeatherPad-1.1.0.tar.xz
>>> featherpad: Updating the sha512sums in APKBUILD...

→ダウンロードされ、sha512ハッシュ値が計算され、APKBUILD ファイルの「checksum」の値が更新されました:

-

$ cd ~/Git/aports/testing/featherpad-1.1.0/
$ ls -l
-rw-r--r--   1 ubn  ubn   1086 Nov 16 18:42 APKBUILD  ←(日時が更新)
drwxr-sr-x   2 ubn  ubn   4096 Nov 16 18:42 src       ←(ダウンロード)
$ ls -l src
lrwxrwxrwx   1 ubn  ubn     44 Nov 16 18:42 FeatherPad-1.1.0.tar.xz -> /var/cache/distfiles/FeatherPad-1.1.0.tar.xz

-

$ tree
.
├── APKBUILD
└── src
    └── FeatherPad-1.1.0.tar.xz -> /var/cache/distfiles/FeatherPad-1.1.0.tar.xz

1 directory, 2 files

→ダウンロードされたソースがキャッシュディレクトリにリンクされています:

$ ls -l /var/cache/distfiles/FeatherPad-1.1.0.tar.xz
-rw-r--r--   1 ubn  ubn   690796 Nov 13 01:01 /var/cache/distfiles/FeatherPad-1.1.0.tar.xz

→ちなみに、ビルド時に「APKBUILD」のあるフォルダにダウンロードされたソースファイルは、展開して使われ、ビルド終了後に削除されますが、こちらのフォルダにあるソースファイルは残ります。

-

3). APKBUILD ファイルからパッケージをビルド:

最初に、パッケージ ディレクトリ (APKBUILD ファイルのあるディレクトリ) に cd で移動してから、ビルドを実行します。

-

作業前:

$ ls ~/
:
Downloads     ダウンロード  デスクトップ  ビデオ        画像
Git           テンプレート  ドキュメント  公開          音楽

-

4). APKBUILD ファイルにて、パッケージをビルド:

$ cd ~/Git/aports/testing/featherpad-1.1.0/
$ abuild -r
:
>>> featherpad: Updating the testing/x86_64 repository index...    ←(注目)
>>> featherpad: Signing the index...    ←(注目)

→index (APKINDEX.tar.gz) が更新されれば、正常終了です。

-

5). エラーがなければ、ビルドした apk ファイルは「~/packages/testing/x86_64/」以下に配置されます:

$ ls ~/
:
Downloads     packages      テンプレート  ドキュメント  公開          音楽
Git           ダウンロード  デスクトップ  ビデオ        画像

→「packages」フォルダができました。

-

$ tree ~/packages/
/home/ubn/packages/
└── testing
    └── x86_64
        ├── APKINDEX.tar.gz
        ├── featherpad-1.1.0-r0.apk
        └── featherpad-lang-1.1.0-r0.apk

2 directories, 3 files

-

$ ls -l ~/packages/testing/x86_64/
:
-rw-r--r--   1 ubn  ubn     1162 Nov 16 19:07 APKINDEX.tar.gz
-rw-r--r--   1 ubn  ubn   712348 Nov 16 19:07 featherpad-1.1.0-r0.apk
-rw-r--r--   1 ubn  ubn   460401 Nov 16 19:07 featherpad-lang-1.1.0-r0.apk

-

6). apk ファイルのインストール:

Add a local Package

-

(1). インストール:
$ cd ~/packages/testing/x86_64/
$ sudo apk add featherpad-1.1.0-r0.apk featherpad-lang-1.1.0-r0.apk
:
ERROR: featherpad-1.1.0-r0.apk: UNTRUSTED signature

→信頼できない署名エラー

-

(2). 信頼を無視するパラメータを付けて、インストール:
$ cd ~/packages/testing/x86_64/
$ sudo apk add --allow-untrusted featherpad-1.1.0-r0.apk featherpad-lang-1.1.0-r0.apk
:
(1/2) Installing featherpad (1.1.0-r0)
(2/2) Installing featherpad-lang (1.1.0-r0)
  • ローカル パッケージをインストールするときは、すべての依存関係を指定する必要があります

  • ローカル パッケージをインストールするときは、「--allow-untrusted」を指定する必要があります

-

(3). 確認:
$ featherpad --version
FeatherPad 1.1.0
(4). 別のインストールのやり方:

上記のパスを「/etc/apk/repositories」に追記してから、下記でインストール:

$ sudo apk add 「パッケージ名」

-

7). アプリの起動:

メニュー →Accessories →「FeatherPad」

→英語で表示

-

8). 現在、インストールしている「featherpad」の確認:

$ apk list featherpad* --installed
$

→ビルドしてインストールしたアプリの場合は、apk list で表示されません。

-

インストールされているかの確認:
$ which featherpad
/usr/bin/featherpad

-

9). 次の項番で、最新バージョンをビルドするので、今回インストールした「featherpad」を削除:

$ sudo apk del featherpad featherpad-lang
:
(1/2) Purging featherpad (1.1.0-r0)
(2/2) Purging featherpad-lang (1.1.0-r0)

→apk list で表示されませんが、apk del で削除はできます。

-

-


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

4. 「featherpad」の最新バージョン「1.3.3」をビルド:

-

ビルドのエラーにトライした備忘録は「項番 8」を参照:

-


1). ローカルの「Aports ツリー」に、「featherpad」の最新の「1.3.3」のAPKBUILD を作成:

$ mkdir -p ~/Git/aports/testing/featherpad-1.3.3
$ cd ~/Git/aports/testing/featherpad-1.3.3

$ vi APKBUILD

下記を貼り付け:

# Maintainer: Antoni Aloy <aaloytorrens@gmail.com>
pkgname=featherpad
pkgver=1.3.3
pkgrel=0
pkgdesc="Lightweight Qt plain-text editor"
url="https://github.com/tsujan/FeatherPad"
license="GPL-3.0-or-later"
arch="all"
makedepends="
    cmake libx11-dev qt5-qtbase-dev qt5-qtsvg-dev
    qt5-qttools-dev qt5-qtx11extras-dev hunspell-dev
    "
subpackages="$pkgname-lang"
options="!check" # no test suite
source="https://github.com/tsujan/FeatherPad/releases/download/V$pkgver/FeatherPad-$pkgver.tar.xz"
builddir="$srcdir/FeatherPad-$pkgver"

build() {
    if [ "$CBUILD" != "$CHOST" ]; then
        CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
    fi
    cmake -B build \
        -DCMAKE_BUILD_TYPE=None \
        -DCMAKE_INSTALL_PREFIX=/usr \
        -DBUILD_SHARED_LIBS=True \
        $CMAKE_CROSSOPTS .
    cmake --build build
}

package() {
    DESTDIR="$pkgdir" cmake --install build
}

lang() {
    amove usr/share/featherpad/translations
}

sha512sums="
4064afab24a5fae5ba5e203ad83a7256d0e8cfab6a3e3da10431254c0885e714eebb80219dad3fdb05f6d89f2eac9d588848adc0ecdb203084a01072e9076fe4  FeatherPad-1.3.3.tar.xz
"

→ビルド前に「abuild checksum」コマンドを実行すれば、「sha512sums=」の行は、書いていても、書かなくても、値やファイル名が間違っていても、OK です。

-

2). ソースコードのダウンロードと checksum の更新:

$ cd ~/Git/aports/testing/featherpad-1.3.3

$ abuild checksum
:
>>> featherpad: Fetching https://github.com/tsujan/FeatherPad/releases/download/V1.3.3/FeatherPad-1.3.3.tar.xz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100  694k  100  694k    0     0   501k      0  0:00:01  0:00:01 --:--:-- 1128k
>>> featherpad: Updating the sha512sums in APKBUILD...

→ソースがダウンロードされ、sha512 ハッシュ値が計算され、APKBUILD にある「sha512sums=」の行が正確な記述に置き換えられます。すでにソースが「/var/cache/distfiles/」にダウンロードされていると、実行されません。

ファイルを削除するか、違う名前に指定するとダウンロードが実行されます。

-

確認:

$ tail -n 3 ~/Git/aports/testing/featherpad-1.3.3/APKBUILD
:
sha512sums="
4064afab24a5fae5ba5e203ad83a7256d0e8cfab6a3e3da10431254c0885e714eebb80219dad3fdb05f6d89f2eac9d588848adc0ecdb203084a01072e9076fe4  FeatherPad-1.3.3.tar.xz
"

-

3). ビルド時にインデックスの更新エラーとならないように、事前に「APKINDEX.tar.gz」のみ削除:

$ cd ~/packages/testing/x86_64/
$ rm APKINDEX.tar.gz
$ ls -l
:
-rw-r--r--   1 ubn   ubn   712348 Nov 16 19:07 featherpad-1.1.0-r0.apk
-rw-r--r--   1 ubn   ubn   460401 Nov 16 19:07 featherpad-lang-1.1.0-r0.apk

→ビルドが初めてだとエラーしませんが、二度目以降は必要な処置です。ただし、インデックスの「APKINDEX.tar.gz」が更新されないだけで、パッケージの作成は完了しています。

-

4). APKBUILD ファイルで、パッケージをビルド:

$ cd ~/Git/aports/testing/featherpad-1.3.3

$ abuild -r
:
>>> featherpad: Updating the testing/x86_64 repository index...    ←(注目)
>>> featherpad: Signing the index...    ←(注目)

→index (APKINDEX.tar.gz) が更新されれば、正常終了です。

-

5). エラーがなければ、ビルドした apk ファイルは「~/packages/testing/x86_64/」以下に配置されます:

$ ls -l ~/packages/testing/x86_64/
:
-rw-r--r--    1 ubn  ubn     1281 Nov 16 22:04 APKINDEX.tar.gz
-rw-r--r--    1 ubn  ubn   712348 Nov 16 19:07 featherpad-1.1.0-r0.apk
-rw-r--r--    1 ubn  ubn   735696 Nov 16 22:04 featherpad-1.3.3-r0.apk
-rw-r--r--    1 ubn  ubn   460401 Nov 16 19:07 featherpad-lang-1.1.0-r0.apk
-rw-r--r--    1 ubn  ubn   492007 Nov 16 22:04 featherpad-lang-1.3.3-r0.apk

-

6). apk ファイルのインストール:

-

(1). 事前確認:
$ apk list featherpad*
featherpad-1.1.0-r0 x86_64 {featherpad} (GPL-3.0-or-later)
featherpad-lang-1.1.0-r0 x86_64 {featherpad} (GPL-3.0-or-later)

$ apk list featherpad* --installed
$

→インストールなし。アプリ本体のパッケージ名とライセンスが表示されていることに注目。

-

(2). 信頼を無視するパラメータを付けて、インストール:
$ cd ~/packages/testing/x86_64/
$ sudo apk add --allow-untrusted featherpad-1.3.3-r0.apk featherpad-lang-1.3.3-r0.apk
:
(1/2) Installing featherpad (1.3.3-r0)
(2/2) Installing featherpad-lang (1.3.3-r0)

→言語パッケージとは分離されています。

-

(3). 確認:
$ apk list featherpad*
$

→apk list で表示されなくなりました。

$ which featherpad
/usr/bin/featherpad
$ featherpad --version
FeatherPad 1.3.3

-

(4). 別のインストールのやり方:

上記のパスを「/etc/apk/repositories」に追記してから、下記でインストール:

$ sudo apk add 「パッケージ名」

-

7). アプリの起動:

メニュー →Accessories →「FeatherPad」

→英語で表示

日本語オンにできないので、日本語入力できません。

-


8). メニューからの「featherpad」の起動を日本語化する「Bash シェルスクリプトの作成」:

前回の投稿 で実施していたら、こちらの「Bash シェルスクリプトの作成」の作業は要りません。

-

(1). 作業フォルダの作成:
$ mkdir -p ~/Downloads/apps

-

(2). Bash シェルスクリプトの作成:
$ cd ~/Downloads/apps/

$ featherpad featherpad_run

↓ 下記を貼付:

#!/bin/bash

# 「featherpad」メニュー起動対策: ターミナル起動しないと日本語ON/OFFできないので作成
export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus
export LANG=ja_JP.UTF-8

FILESTRING=${1}
featherpad $FILESTRING

-

(3). 作成したファイルの属性を変更:
$ cd ~/Downloads/apps/
$ chmod 755 featherpad_run

-

9). デスクトップファイルの修正:
$ sudo featherpad /usr/share/applications/featherpad.desktop

↓ 下記のように、3箇所を修正:

#Exec=featherpad %U
Exec=/home/ubn/Downloads/apps/featherpad_run %U
#Exec=featherpad --win
Exec=/home/ubn/Downloads/apps/featherpad_run --win
#Exec=featherpad --standalone
Exec=/home/ubn/Downloads/apps/featherpad_run --standalone

→検索に「Exec=」を入れて、ジャンプしながら貼り付けて修正すると楽です。

-

10). アプリの起動:

メニュー →Accessories →「FeatherPad」

→日本語で表示。日本語入力できました。

-

11). 修正が済んだデスクトップファイルを退避:

$ cd /usr/share/applications/
$ sudo cp featherpad.desktop featherpad.desktop-New

-

-


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

5.「Notepadqq」の OTE 版 をビルド:

-

「Notepadqq」を使うときは、軽くて安定しているので、個人的にはこちらを使っています。

ビルドのエラーにトライした備忘録は「項番 9」を参照:

-


「Notepadqq-OTE」 について:

-

公式サイト:

GitHub: JuBan1/notepadqq

→こちらのサイトは休止中。

-

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

「Notepadqq」と見た目も挙動もそっくりですが、エンジンは独自のOTE コンポーネントに入替えてあり、 (その当時の時点では)本家の「Notepadqq」よりも動きが軽いです。

OTE 版かを見分けるには、ヘルプに「software libraries:」の表示が含まれているかで、確認できます。

-


1). ローカルの「Aports ツリー」に、「notepadqq-ote-edition」のAPKBUILD を作成:

$ mkdir -p ~/Git/aports/testing/notepadqq-ote-edition/
$ cd ~/Git/aports/testing/notepadqq-ote-edition/

$ featherpad APKBUILD

下記を貼付け:

# Maintainer: JuBan1 <JuBan1@email.address>
pkgname=notepadqq-ote-edition
pkgver=1.4.8
pkgrel=0
pkgdesc="Notepadqq is designed from developers, for developers"
url="http://notepadqq.altervista.org/"
license="GPL-3.0"
arch="all"
makedepends="
    make
    uchardet-dev
    qt5-qtbase qt5-qtbase-dev
    qt5-qtsvg qt5-qtsvg-dev
    qt5-qttools-dev
    "
options="!check" # no test suite
source="https://github.com/JuBan1/notepadqq/archive/ote.tar.gz"
builddir="$srcdir/notepadqq-ote"

build() {
    ./configure \
        --prefix=/usr
    make
}

package() {
    make INSTALL_ROOT="$pkgdir" install
}

sha512sums="
3ac86e312d5bcfa01ec14e9b75afbc8e7b5284dd844294a26b1e366f47af96e932968fecf359dbf53ec197d1118e86bf5eb7ba1deee207520fd567392c3a5294  ote.tar.gz
"

→メールアドレスの公開はなし。メールアドレスは省略できず、ビルドでエラーするので、ダミーです。

-

2). ソースコードのダウンロードと checksum の更新:

$ cd ~/Git/aports/testing/notepadqq-ote-edition/

$ abuild checksum
:
>>> notepadqq: Fetching https://github.com/JuBan1/notepadqq/archive/ote.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 2877k    0 2877k    0     0   997k      0 --:--:--  0:00:02 --:--:-- 1373k
>>> notepadqq: Updating the sha512sums in APKBUILD...

-

確認:

$ tail -n 3 ~/Git/aports/testing/notepadqq-ote-edition/APKBUILD
sha512sums="
3ac86e312d5bcfa01ec14e9b75afbc8e7b5284dd844294a26b1e366f47af96e932968fecf359dbf53ec197d1118e86bf5eb7ba1deee207520fd567392c3a5294  ote.tar.gz
"

-

3). ビルドで更新エラーとなる「APKINDEX.tar.gz」を削除:

$ cd ~/packages/testing/x86_64/
$ rm APKINDEX.tar.gz
$ ls -l ~/packages/testing/x86_64/
:
-rw-r--r--    1 ubn  ubn   712348 Nov 16 19:07 featherpad-1.1.0-r0.apk
-rw-r--r--    1 ubn  ubn   735696 Nov 16 22:04 featherpad-1.3.3-r0.apk
-rw-r--r--    1 ubn  ubn   460401 Nov 16 19:07 featherpad-lang-1.1.0-r0.apk
-rw-r--r--    1 ubn  ubn   492007 Nov 16 22:04 featherpad-lang-1.3.3-r0.apk

-

4). APKBUILD ファイルで、パッケージをビルド:

$ cd ~/Git/aports/testing/notepadqq-ote-edition/
$ abuild -r
:
>>> notepadqq: Updating the testing/x86_64 repository index...  ←(注目)
>>> notepadqq: Signing the index...    ←(注目)

→index (APKINDEX.tar.gz) が更新されれば、正常終了です。

-

5). パッケージが作成されたか確認:

$ ls -l ~/packages/testing/x86_64/
:
-rw-r--r--   1 ubn  ubn     1642 Nov 17 08:00 APKINDEX.tar.gz  ←(注目)
-rw-r--r--   1 ubn  ubn   712348 Nov 16 19:07 featherpad-1.1.0-r0.apk
-rw-r--r--   1 ubn  ubn   735696 Nov 16 22:04 featherpad-1.3.3-r0.apk
-rw-r--r--   1 ubn  ubn   460401 Nov 16 19:07 featherpad-lang-1.1.0-r0.apk
-rw-r--r--   1 ubn  ubn   492007 Nov 16 22:04 featherpad-lang-1.3.3-r0.apk
-rw-r--r--   1 ubn  ubn  2585727 Nov 17 08:00 notepadqq-ote-edition-1.4.8-r0.apk  ←(注目)

-


6). 作成された、「apk」ファイルで「notepadqq」をインストール:

-

(1). 信頼を無視するパラメータを付けて、インストール:
$ cd ~/packages/testing/x86_64/
$ sudo apk add --allow-untrusted notepadqq-ote-edition-1.4.8-r0.apk
:
(1/2) Installing uchardet (0.0.7-r1)
(2/2) Installing notepadqq-ote-edition (1.4.8-r0)

→パッケージ名は「notepadqq-ote-edition」です。

-

(2). 確認:
$ notepadqq --version
:
Qt: Session management error: Authentication Rejected, reason : None of the authentication protocols specified are supported and host-based authentication failed

Notepadqq 1.4.8

→アプリ名は「notepadqq」です。変化なし。

-

(3). 別のインストールのやり方:

上記のパスを「/etc/apk/repositories」に追記してから、下記でインストール:

$ sudo apk add 「パッケージ名」

-

7). アプリの起動:

メニュー →Development →「Notepadqq」

→日本語で表示:

-

→日本語オンにできないので、日本語入力できません。

-

カテゴリが「Development」になっていることに注目。

-


8). 日本語入力できるように設定:

-

(1). Bash シェルスクリプト ファイルの作成:

使用するテキストエディタは、何を使ってもよいです。 自分自身(notepadqq)でも、貼り付けるだけなので使えます。

-

$ mkdir -p ~/Downloads/apps
$ cd ~/Downloads/apps/
$ featherpad notepadqq_run

↓ 下記を貼付:

#!/bin/bash

# 「Notepadqq」メニュー起動対策: ターミナル起動しないと日本語ON/OFFできないので作成
export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus
export LANG=ja_JP.UTF-8

FILESTRING=${1}
notepadqq $FILESTRING

-

(2). 作成したファイルの属性を変更:
$ cd ~/Downloads/apps/
$ chmod 755 notepadqq_run

-

(3). デスクトップファイルの修正:
$ sudo featherpad /usr/share/applications/notepadqq.desktop

↓ 下記のように、3箇所を修正:

#Exec=notepadqq %U
Exec=/home/ubn/Downloads/apps/notepadqq_run %U
#Exec=notepadqq --new-window
Exec=/home/ubn/Downloads/apps/notepadqq_run --new-window
#Exec=notepadqq
Exec=/home/ubn/Downloads/apps/notepadqq_run

→検索に「Exec=」を入れて、ジャンプしながら貼り付けて修正すると楽です。

-

9). メニューからアプリを起動:

メニュー →Development →「Notepadqq」

→日本語で表示

日本語オン/オフができ、日本語入力できました。

-

10). 修正が済んだデスクトップファイルを退避:

$ cd /usr/share/applications/
$ sudo cp notepadqq.desktop notepadqq.desktop-OTE

-

-


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

6.「Notepadqq」の 本家版 をビルド:

-

自分の PC では不安定 (Segmentation fault でコケます) です。PC によっては動くかも。

ビルドのエラーにトライした備忘録は「項番 10」、「項番 11」を参照:

-

1). 最新のソースを選択(したつもり):

しばらく更新はなかったみたい。たぶん、これが最新です。

-


2). すでにインストールしている「notepadqq」を削除:

$ sudo apk del notepadqq
:
(1/2) Purging notepadqq (1.4.8-r0)
(2/2) Purging uchardet (0.0.7-r1)

-

3). ビルドで更新エラーとなる作成されたインデックスを削除:

$ rm ~/packages/testing/x86_64/APKINDEX.tar.gz

-

確認:

$ ls -l ~/packages/testing/x86_64/
:
-rw-r--r--    1 ubn  ubn   712348 Nov 16 19:07 featherpad-1.1.0-r0.apk
-rw-r--r--    1 ubn  ubn   735696 Nov 16 22:04 featherpad-1.3.3-r0.apk
-rw-r--r--    1 ubn  ubn   460401 Nov 16 19:07 featherpad-lang-1.1.0-r0.apk
-rw-r--r--    1 ubn  ubn   492007 Nov 16 22:04 featherpad-lang-1.3.3-r0.apk
-rw-r--r--    1 ubn  ubn  2585727 Nov 17 08:00 notepadqq-ote-edition-1.4.8-r0.apk

-


4). ローカルの「Aports ツリー」に、「notepadqq2.0.0-beta」の APKBUILD を作成:

-

$ mkdir -p ~/Git/aports/testing/notepadqq2.0.0-beta/
$ cd ~/Git/aports/testing/notepadqq2.0.0-beta/

$ featherpad APKBUILD

↓ 下記のように修正:

# Maintainer: notepadqq <notepadqq@email.address>
pkgname=notepadqq
pkgver=2.0.0_beta
_pkgver=${pkgver/_/-}
pkgrel=0
pkgdesc="Notepadqq is designed from developers, for developers"
url="http://notepadqq.altervista.org/"
license="GPL-3.0-or-later"
arch="all"
makedepends="
    make
    uchardet-dev
    qt5-qtbase qt5-qtbase-dev
    qt5-qtsvg qt5-qtsvg-dev
    qt5-qttools-dev
    qt5-qtwebengine-dev
    qt5-qtwebsockets-dev
    "
options="!check" # no test suite
source="https://github.com/notepadqq/notepadqq/archive/refs/heads/master.tar.gz"
builddir="$srcdir/$pkgname-master"

build() {
    ./configure \
        --prefix=/usr
    make
}

package() {
    make INSTALL_ROOT="$pkgdir" install
}

sha512sums="
5f1eab3aaa2da501c9b0f5d74db960c5e02d7cd40cdbcd1d72342dfe461ebe9bc611654e7d31b15dfd6c7fb93467d7c7c5b81764b57ea8811f728f80849b69a5  master.tar.gz
"

→メールアドレスは省略できません。ビルドでエラーするので、ダミーです。

-

5). ソースコードのダウンロードと checksum の更新:

$ cd ~/Git/aports/testing/notepadqq2.0.0-beta/

$ abuild checksum
:
>>> notepadqq: Fetching https://github.com/notepadqq/notepadqq/archive/refs/heads/master.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 4411k    0 4411k    0     0  1483k      0 --:--:--  0:00:02 --:--:-- 1936k
>>> notepadqq: Updating the sha512sums in APKBUILD...

-

確認:

$ tail -n 3 ~/Git/aports/testing/notepadqq2.0.0-beta/APKBUILD
sha512sums="
5f1eab3aaa2da501c9b0f5d74db960c5e02d7cd40cdbcd1d72342dfe461ebe9bc611654e7d31b15dfd6c7fb93467d7c7c5b81764b57ea8811f728f80849b69a5  master.tar.gz
"

→上記の「APKBUILD」のファイルの最後がこちらに置換されました。ダウンロードも完了。

-

6). APKBUILD ファイルからパッケージをビルド:

$ cd ~/Git/aports/testing/notepadqq2.0.0-beta/
$ abuild -r
:
>>> notepadqq: Updating the testing/x86_64 repository index...  ←(注目)
>>> notepadqq: Signing the index...    ←(注目)

→index (APKINDEX.tar.gz) が更新されれば、正常終了です。

-

7). パッケージが作成されたか確認:

$ ls -l ~/packages/testing/x86_64/
:
-rw-r--r--    1 ubn  ubn     1537 Nov 17 08:36 APKINDEX.tar.gz    ←(日時に注目)
-rw-r--r--    1 ubn  ubn   712348 Nov 16 19:07 featherpad-1.1.0-r0.apk
-rw-r--r--    1 ubn  ubn   735696 Nov 16 22:04 featherpad-1.3.3-r0.apk
-rw-r--r--    1 ubn  ubn   460401 Nov 16 19:07 featherpad-lang-1.1.0-r0.apk
-rw-r--r--    1 ubn  ubn   492007 Nov 16 22:04 featherpad-lang-1.3.3-r0.apk
-rw-r--r--    1 ubn  ubn  2585727 Nov 17 08:00 notepadqq-ote-edition-1.4.8-r0.apk
-rw-r--r--    1 ubn  ubn  3887200 Nov 17 08:36 notepadqq-2.0.0_beta-r0.apk  ←(日時に注目)

→「pkgver=」をbeta 版に修正しました。

-


8). 作成した「apk」ファイルで「notepadqq」をインストール:

-

パラメータを付けて、インストール:
$ cd ~/packages/testing/x86_64/
$ sudo apk add --allow-untrusted notepadqq-2.0.0_beta-r0.apk
:
(1/6) Installing qt5-qtwebchannel (5.15.6_git20220907-r0)
(2/6) Installing re2 (2022.06.01-r1)
(3/6) Installing snappy (1.1.9-r4)
(4/6) Installing qt5-qtwebengine (5.15.11-r3)
(5/6) Installing uchardet (0.0.7-r1)
(6/6) Installing notepadqq (2.0.0_beta-r0)  ←(注目)

-

確認:

$ notepadqq --version
:
libEGL warning: DRI2: failed to authenticate
libEGL warning: MESA-LOADER: failed to open swrast: Error loading shared library /usr/lib/xorg/modules/dri/swrast_dri.so: No such file or directory (search paths /usr/lib/xorg/modules/dri, suffix _dri)

libEGL warning: DRI2: failed to authenticate
libEGL warning: MESA-LOADER: failed to open swrast: Error loading shared library /usr/lib/xorg/modules/dri/swrast_dri.so: No such file or directory (search paths /usr/lib/xorg/modules/dri, suffix _dri)

QXcbIntegration: Cannot create platform OpenGL context, neither GLX nor EGL are enabled
Qt: Session management error: Authentication Rejected, reason : None of the authentication protocols specified are supported and host-based authentication failed

Notepadqq 2.0.0-beta+git

→バージョン表示が更新されました。

-


9). アプリの起動:

メニュー →Development →「Notepadqq」

→日本語で「未保存の変更を復元しますか?」ダイアログが表示:

→「Yes」

以前開いたファイルがタブ表示されましたが、 フォントサイズとテーマの設定は解除されています。

-

日本語表示されました:

→日本語表示されました。

日本語オンオフでき、日本語の入力も出来ました。

-

デスクトップファイルを修正しなくても、日本語オンオフできるのはだいぶ改善されています。

ただし、さわっていたら、画面が閉じてしまいました。

-

端末で起動して確認:
$ notepadqq

-

コケたときの表示:
Segmentation fault
$ 

→「セグメンテーション違反」です。

初期バージョンと同じエラーで改善されていません。

-

10). 「Notepadqq」の 本家版 の最新バージョンを試してみた結論:

アプリの起動は速くなっています。日本語表示も日本語入力も可能です。

デスクトップファイの修正は要りません。

-

「セグメンテーション違反」でウィンドウが閉じます。不安定です。

-


11). 安定している「notepadqq-ote」のパッケージに、インストールし直し:

-

(1). 削除:
$ sudo apk del notepadqq
:
(1/6) Purging notepadqq (2.0.0_beta-r0)
(2/6) Purging qt5-qtwebengine (5.15.11-r3)
(3/6) Purging qt5-qtwebchannel (5.15.6_git20220907-r0)
(4/6) Purging re2 (2022.06.01-r1)
(5/6) Purging snappy (1.1.9-r4)
(6/6) Purging uchardet (0.0.7-r1)

-

(2). インストール:
$ cd ~/packages/testing/x86_64/
$ sudo apk add --allow-untrusted notepadqq-1.4.8-r0.apk
:
(1/2) Installing uchardet (0.0.7-r1)
(2/2) Installing notepadqq (1.4.8-r0)

-

12). アプリの起動:

メニュー →Development →「Notepadqq」

→日本語入力できません。

-

13). デスクトップファイルの復元:

$ cd /usr/share/applications/
$ sudo cp notepadqq.desktop-OTE notepadqq.desktop

-

14). アプリの起動:

メニュー →Development →「Notepadqq」

→日本語入力できました。

-

-


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

7. 「APKBUILD」の書き方の参考に「Aports ツリー」を参照:

-

「Aports ツリー」のダウンロードをしていたので、「APKBUILD」の書き方の参考にしました:

-

「検索したい文字列が含まれるファイル」を検索するやり方:

grep [検索したい文字列] -rl [検索するフォルダがあるパス]

-

1).「./configure」で検索:

$ grep "./configure"  -rl  ~/Git/aports/testing/ | sort

-

抜粋した APKBUILD:
$ cat /home/ubn/Git/aports/testing/adwaita-xfce-icon-theme/APKBUILD
:
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=adwaita-xfce-icon-theme
pkgver=0.0.2
pkgrel=0
pkgdesc="Adwaita missing icons that are used in Xfce"
url="https://github.com/shimmerproject/adwaita-xfce-icon-theme"
arch="noarch !s390x !riscv64" # adwaita-icon-theme
license="GPL-2.0-only"
options="!check" # no testsuite. just icons
depends="adwaita-icon-theme"
source="https://github.com/shimmerproject/adwaita-xfce-icon-theme/archive/refs/tags/$pkgver/adwaita-xfce-icon-theme-$pkgver.tar.gz"

build() {
    ./configure \
        --prefix=/usr
    make
}

package() {
    make DESTDIR="$pkgdir" install
}

sha512sums="
91adcb08777a740c0c82942261146f275ed3fc916b837906ff364d95d791d31035b5ca390298b2555528e6503f7497589e4ab8d4f820bf5ce11af3a273fd3bf4  adwaita-xfce-icon-theme-0.0.2.tar.gz
"

-

2).「lang()」で検索:

$ grep "lang()" -rl ~/Git/aports/testing/ | sort

-

抜粋した APKBUILD:
$ cat /home/ubn/Git/aports/testing/ghostwriter/APKBUILD
:
# Maintainer: psykose <alice@ayaya.dev>
pkgname=ghostwriter
pkgver=2.2.0
pkgrel=0
pkgdesc="Distraction-free markdown editor"
url="https://github.com/wereturtle/ghostwriter"
# qt6-qtwebengine
arch="aarch64 x86_64"
license="GPL-3.0-or-later"
depends="qt6-qtsvg"
makedepends="
    hunspell-dev
    qt6-qt5compat-dev
    qt6-qtsvg-dev
    qt6-qttools-dev
    qt6-qtbase-dev
    qt6-qtwebchannel-dev
    qt6-qtwebengine-dev
    "
subpackages="$pkgname-doc $pkgname-lang"     ←(複数の指定: 説明書、言語パック)
source="$pkgname-$pkgver.tar.gz::https://github.com/wereturtle/ghostwriter/archive/refs/tags/$pkgver.tar.gz"
options="!check" # no tests

build() {
    qmake6 \
        QMAKE_CXXFLAGS="$CXXFLAGS -flto=auto" \
        PREFIX=/usr \
        ghostwriter.pro
    make
}

package() {
    make INSTALL_ROOT="$pkgdir" install
}

lang() {
    install_if="lang $pkgname=$pkgver-r$pkgrel"
    pkgdesc="Languages for package $pkgname"

    amove usr/share/ghostwriter/translations
}

sha512sums="
ef58764a4c7c66a3866ca0dd0c49ece29ae748bc7d3948b5d6d9a19411365f1b26805d05ef19732b15587d36e93eedebc10dc0d1ee1600dafea9f8f0e213b1e9  ghostwriter-2.2.0.tar.gz
"

-

3).「beta」で検索:

$ grep "beta"  -rl  ~/Git/aports/testing/ | sort

-

抜粋した APKBUILD:
$ cat /home/ubn/Git/aports/testing/btcd/APKBUILD
:
# Maintainer: Michał Adamski <michal@ert.pl>
pkgname=btcd
pkgver=0.22.0_beta
_pkgver=${pkgver/_/-}
pkgrel=8
pkgdesc="Alternative full node bitcoin implementation written in Go"
url="https://github.com/btcsuite/btcd#btcd"
arch="all"
license="ISC"
makedepends="go"
source="https://github.com/btcsuite/btcd/archive/v$_pkgver/btcd-$_pkgver.tar.gz
    fix-test.patch
    "
builddir="$srcdir/$pkgname-$_pkgver"

export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"

build() {
    mkdir bin
    go build -trimpath -v -o bin . ./cmd/...
}

check() {
    export GOFLAGS="${GOFLAGS/-trimpath/}"
    go test ./...
}

package() {
    for bin in bin/*; do
        install -Dm755 $bin "$pkgdir"/usr/$bin
    done
}
sha512sums="
cae1bf46900890e4bc01b817f72cbf6654636af5bac887032a85afba91a813162e5b2e1bcb23cd0a013e8b0711d9e7a68d6ff08f8767c6b375a2df7d8d72c291  btcd-0.22.0-beta.tar.gz
ba6a8a79ca5c4419c4983042f9c49548ff3548b1002705ae106c2123424bc492a477e9693334fb5264ebe38f01cac6a9b36c8fe392cec0f4257ac5e78534578e  fix-test.patch
"

-

パッチファイルの確認:
$ ls -1 /home/ubn/Git/aports/testing/btcd/
APKBUILD
fix-test.patch
$ cat /home/ubn/Git/aports/testing/btcd/fix-test.patch
:
--- a/mempool/mempool_test.go
+++ b/mempool/mempool_test.go
@@ -560,7 +560,7 @@
 
        // Ensure no transactions were reported as accepted.
        if len(acceptedTxns) != 0 {
-           t.Fatal("ProcessTransaction: reported %d accepted "+
+           t.Fatalf("ProcessTransaction: reported %d accepted "+
                "transactions from failed orphan attempt",
                len(acceptedTxns))
        }

-

抜粋した APKBUILD:
$ cat /home/ubn/Git/aports/testing/firefox-developer-edition/APKBUILD
:
# Maintainer: psykose <alice@ayaya.dev>
pkgname=firefox-developer-edition
pkgver=107.0_beta9
_pkgver=${pkgver/_beta/b}
_releasedate=2022-11-04
pkgrel=1
pkgdesc="Firefox web browser"
:

-

-


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

8. 「featherpad」の最新バージョン「1.3.3」をビルドしたときの備忘録:

-

こちらを整理した手順は「項番 4」を参照:

-

1). 「Aports ツリー」にて、パッケージを検索:

サイト上部の「虫めがね」アイコンをクリック→「featherpad」で検索:

→「testing/featherpad: 1.1.0」がヒット:

aports/testing/featherpad/APKBUILD :

-

2). 既存のバージョン「1.1.0」のAPKBUILD の内容:

# Maintainer: Antoni Aloy <aaloytorrens@gmail.com>
pkgname=featherpad
pkgver=1.1.0
pkgrel=0
pkgdesc="Lightweight Qt plain-text editor"
url="https://github.com/tsujan/FeatherPad"
license="GPL-3.0-or-later"
arch="all"
makedepends="
    cmake libx11-dev qt5-qtbase-dev qt5-qtsvg-dev
    qt5-qttools-dev qt5-qtx11extras-dev hunspell-dev
    "
subpackages="$pkgname-lang"
options="!check" # no test suite
source="https://github.com/tsujan/FeatherPad/releases/download/V$pkgver/FeatherPad-$pkgver.tar.xz"
builddir="$srcdir/FeatherPad-$pkgver"

build() {
    if [ "$CBUILD" != "$CHOST" ]; then
        CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
    fi
    cmake -B build \
        -DCMAKE_BUILD_TYPE=None \
        -DCMAKE_INSTALL_PREFIX=/usr \
        -DBUILD_SHARED_LIBS=True \
        $CMAKE_CROSSOPTS .
    cmake --build build
}

package() {
    DESTDIR="$pkgdir" cmake --install build
}

lang() {
    amove usr/share/featherpad/translations
}

sha512sums="
0a4dcdbdb6edc1a11a6dba5dd3afa04bb435f1d722211c45c7f8ca465b67accced706cb56e0989788b5be7624c6b31cf4782735c91c5e819df2e6a32947ec1f0  FeatherPad-1.1.0.tar.xz
"

-

3). 最新の「featherpad」を github で確認:

公式サイト:

https://github.com/tsujan/FeatherPad

-

1.3.3 Latest

FeatherPad-1.3.3.tar.xz

https://github.com/tsujan/FeatherPad/releases/download/V1.3.3/FeatherPad-1.3.3.tar.xz

-

4). 既存のバージョン「1.1.0」の APKBUILD を退避:

$ cd ~/Git/aports/testing/featherpad/

$ cp APKBUILD APKBUILD-110

-

5). APKBUILD を最新の「1.3.3」に修正:

$ cd ~/Git/aports/testing/featherpad/

$ vi APKBUILD

下記に修正:

# Maintainer: Antoni Aloy <aaloytorrens@gmail.com>
pkgname=featherpad
pkgver=1.3.3
pkgrel=0
pkgdesc="Lightweight Qt plain-text editor"
url="https://github.com/tsujan/FeatherPad"
license="GPL-3.0-or-later"
arch="all"
makedepends="
    cmake libx11-dev qt5-qtbase-dev qt5-qtsvg-dev
    qt5-qttools-dev qt5-qtx11extras-dev hunspell-dev
    "
subpackages="$pkgname-lang"
options="!check" # no test suite
source="https://github.com/tsujan/FeatherPad/releases/download/V$pkgver/FeatherPad-$pkgver.tar.xz"
builddir="$srcdir/FeatherPad-$pkgver"

build() {
    if [ "$CBUILD" != "$CHOST" ]; then
        CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
    fi
    cmake -B build \
        -DCMAKE_BUILD_TYPE=None \
        -DCMAKE_INSTALL_PREFIX=/usr \
        -DBUILD_SHARED_LIBS=True \
        $CMAKE_CROSSOPTS .
    cmake --build build
}

package() {
    DESTDIR="$pkgdir" cmake --install build
}

lang() {
    amove usr/share/featherpad/translations
}

sha512sums="
0a4dcdbdb6edc1a11a6dba5dd3afa04bb435f1d722211c45c7f8ca465b67accced706cb56e0989788b5be7624c6b31cf4782735c91c5e819df2e6a32947ec1f0  FeatherPad-1.1.0.tar.xz
"

-

6). ソースコードのダウンロードと checksum の更新:

$ cd ~/Git/aports/testing/featherpad/

$ abuild checksum
:
>>> featherpad: Fetching https://github.com/tsujan/FeatherPad/releases/download/V1.3.3/FeatherPad-1.3.3.tar.xz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- -  0     0    0     0    0     0      0      0 --:--:-- --:--:-- -  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
 11  694k   11 81911    0     0  71549      0  0:00:09  0:00:01  100  694k  100  694k    0     0   547k      0  0:00:01  0:00:01 --:--:-- 5033k
>>> featherpad: Updating the sha512sums in APKBUILD...

-

確認:

$ tail -n 3 ~/Git/aports/testing/featherpad/APKBUILD
sha512sums="
4064afab24a5fae5ba5e203ad83a7256d0e8cfab6a3e3da10431254c0885e714eebb80219dad3fdb05f6d89f2eac9d588848adc0ecdb203084a01072e9076fe4  FeatherPad-1.3.3.tar.xz
"

-

7). APKBUILD ファイルの指示で、パッケージをビルド:

$ cd ~/Git/aports/testing/featherpad/
$ abuild -r
:
>>> featherpad: Updating the testing/x86_64 repository index...
ERROR: APKINDEX.tar.gz: UNTRUSTED signature     ←(信頼できない署名)
>>> ERROR: featherpad: Failed to create index
>>> featherpad: Uninstalling dependencies...     ←(依存関係のアンインストール)
ERROR: No such package: .makedepends-featherpad
→終わり間際でエラーで停止。「信頼できない署名」のエラーです。

「--allow-untrusted」のパラメータを付けないで、ロカールの .apkファイルを使ってインストールしたときと同じエラーです。

-

作業前に、既存のバージョンの「1.1.0」の「featherpad」のビルドを試したので、そのときの「APKINDEX.tar.gz」が残っていたのが影響。それと、作業前に、インストールした「1.1.0」の「featherpad」を手動でアンインストールしたのも良くなかったみたい。中途半端だったということです。

-

追記: ビルドは正常終了。「.apk」ファイルも作成されていました。
一緒に置かれている「APKINDEX.tar.gz」を更新しようとして、セキュリティのチェックに引っ掛かったみたい。

-

ビルドの実行前に、「~/packages/testing/x86_64/APKINDEX.tar.gz」を削除しておくのが良さそうです。

-

$ ls -l ~/packages/testing/x86_64/
:
-rw-r--r--   1 ubn  ubn     1186 Nov 13 02:07 APKINDEX.tar.gz
-rw-r--r--   1 ubn  ubn   712366 Nov 13 02:07 featherpad-1.1.0-r0.apk
-rw-r--r--   1 ubn  ubn   735721 Nov 13 13:36 featherpad-1.3.3-r0.apk
-rw-r--r--   1 ubn  ubn   460412 Nov 13 02:07 featherpad-lang-1.1.0-r0.apk
-rw-r--r--   1 ubn  ubn   492010 Nov 13 13:36 featherpad-lang-1.3.3-r0.apk

→「APKINDEX.tar.gz」だけが更新されていません。つまり、更新しようとしてエラー発生。

-

8). 試しに、「APKINDEX.tar.gz」だけ削除して、ビルドをトライ:

$ cd ~/packages/testing/x86_64/
$ rm APKINDEX.tar.gz
$ ls -l
:
-rw-r--r--   1 ubn  ubn   712366 Nov 13 02:07 featherpad-1.1.0-r0.apk
-rw-r--r--   1 ubn  ubn   735721 Nov 13 13:36 featherpad-1.3.3-r0.apk
-rw-r--r--   1 ubn  ubn   460412 Nov 13 02:07 featherpad-lang-1.1.0-r0.apk
-rw-r--r--   1 ubn  ubn   492010 Nov 13 13:36 featherpad-lang-1.3.3-r0.apk

-

9). APKBUILD ファイルの指示で、パッケージをビルド:

$ cd ~/Git/aports/testing/featherpad/
$ abuild -r
:
>>> featherpad: Updating the testing/x86_64 repository index...
>>> featherpad: Signing the index...

→あれれ、ビルドが実行されずに「APKINDEX.tar.gz」だけが更新され、すぐに終了しました。

-

「APKINDEX.tar.gz」を更新する(整合をとる)には、削除して、「abuild -r」を実行すれば良いみたい。

-

結果の確認:

$ ls -l ~/packages/testing/x86_64/
:
-rw-r--r--   1 ubn  ubn     1306 Nov 13 15:57 APKINDEX.tar.gz   ←(サイズと日時に注目)
-rw-r--r--   1 ubn  ubn   712366 Nov 13 02:07 featherpad-1.1.0-r0.apk
-rw-r--r--   1 ubn  ubn   735721 Nov 13 13:36 featherpad-1.3.3-r0.apk
-rw-r--r--   1 ubn  ubn   460412 Nov 13 02:07 featherpad-lang-1.1.0-r0.apk
-rw-r--r--   1 ubn  ubn   492010 Nov 13 13:36 featherpad-lang-1.3.3-r0.apk

-

10). 参考: ビルド時に作成される「APKINDEX.tar.gz」の中身をのぞいて見ました:

-

(1). 作業フォルダにコピー:
$ cp ~/packages/testing/x86_64/APKINDEX.tar.gz ~/ダウンロード/
$ cd ~/ダウンロード/

-

(2). 展開:
$ tar -zxvf APKINDEX.tar.gz
.SIGN.RSA.my@email.address-636fce9c.rsa.pub  ←(セキュリティキー)
DESCRIPTION
APKINDEX
$ ls -1
APKINDEX
APKINDEX.tar.gz
DESCRIPTION

-

(3).「APKINDEX」の内容を確認:
$ cat APKINDEX
C:Q11ip2RXVWoIO6yQnXI083w3A+8CI=
P:featherpad-lang
V:1.3.3-r0
A:x86_64
S:492010
I:1708032
T:Lightweight Qt plain-text editor
U:https://github.com/tsujan/FeatherPad
L:GPL-3.0-or-later
o:featherpad
m:Antoni Aloy <aaloytorrens@gmail.com>
t:1668313636
c:d2156fc658762bab14b23937242fe5c5ae7fa3e8-dirty

C:Q1zcKp3F2OEbtoZmyohIcZg4sVcBE=
P:featherpad-lang
V:1.1.0-r0
A:x86_64
S:460412
I:1626112
T:Lightweight Qt plain-text editor
U:https://github.com/tsujan/FeatherPad
L:GPL-3.0-or-later
o:featherpad
m:Antoni Aloy <aaloytorrens@gmail.com>
t:1668268868
c:d2156fc658762bab14b23937242fe5c5ae7fa3e8-dirty

C:Q1NSIZdCi/Skx/1m0BkaAXvl/434I=
P:featherpad
V:1.1.0-r0
A:x86_64
S:712366
I:1912832
T:Lightweight Qt plain-text editor
U:https://github.com/tsujan/FeatherPad
L:GPL-3.0-or-later
o:featherpad
m:Antoni Aloy <aaloytorrens@gmail.com>
t:1668268868
c:d2156fc658762bab14b23937242fe5c5ae7fa3e8-dirty
D:so:libQt5Core.so.5 so:libQt5Gui.so.5 so:libQt5Network.so.5 so:libQt5PrintSupport.so.5 so:libQt5Svg.so.5 so:libQt5Widgets.so.5 so:libQt5X11Extras.so.5 so:libX11.so.6 so:libc.musl-x86_64.so.1 so:libgcc_s.so.1 so:libhunspell-1.7.so.0 so:libstdc++.so.6
p:cmd:featherpad=1.1.0-r0 cmd:fpad=1.1.0-r0

C:Q1alcBDMt9q6vDzi1dvJ/VlcNkYGo=
P:featherpad
V:1.3.3-r0
A:x86_64
S:735721
I:1966080
T:Lightweight Qt plain-text editor
U:https://github.com/tsujan/FeatherPad
L:GPL-3.0-or-later
o:featherpad
m:Antoni Aloy <aaloytorrens@gmail.com>
t:1668313636
c:d2156fc658762bab14b23937242fe5c5ae7fa3e8-dirty
D:so:libQt5Core.so.5 so:libQt5DBus.so.5 so:libQt5Gui.so.5 so:libQt5PrintSupport.so.5 so:libQt5Svg.so.5 so:libQt5Widgets.so.5 so:libQt5X11Extras.so.5 so:libX11.so.6 so:libc.musl-x86_64.so.1 so:libgcc_s.so.1 so:libhunspell-1.7.so.0 so:libstdc++.so.6
p:cmd:featherpad=1.3.3-r0 cmd:fpad=1.3.3-r0

→4つのファイルの詳細が記述されています。項目名は省略名です。ちなみに「D:」は依存するパッケージです。

-

(4).「DESCRIPTION」の内容の確認:
$ cat DESCRIPTION
testing

-

-


11). apk ファイルのインストール:

-

(1). パラメータを付けて、インストール:
$ cd ~/packages/testing/x86_64/
$ sudo apk add --allow-untrusted featherpad-1.3.3-r0.apk featherpad-lang-1.3.3-r0.apk
:
(1/2) Installing featherpad (1.3.3-r0)
(2/2) Installing featherpad-lang (1.3.3-r0)
Executing busybox-1.35.0-r27.trigger
Executing gtk-update-icon-cache-3.24.34-r7.trigger
Executing desktop-file-utils-0.26-r1.trigger
OK: 2010 MiB in 594 packages
  • ローカル パッケージをインストールするときは、すべての依存関係を指定する必要があります

  • ローカル パッケージをインストールするときは、「--allow-untrusted」を指定する必要があります

-

(2). 確認:
$ featherpad --version
FeatherPad 1.3.3

-

(3). 別のインストールのやり方:

上記のパスを「/etc/apk/repositories」に追記してから、下記でインストール:

$ sudo apk add 「パッケージ名」

-

12). アプリの起動:

メニュー →Accessories →「FeatherPad」

→英語で表示。

-


13). メニューからの「featherpad」の起動を日本語化:

前回の投稿 で、実施していたら、こちらの作業は要りません。

-

(1). 作業フォルダの作成:
$ mkdir -p ~/Downloads/apps

-

(2). Bash シェルスクリプトの作成:
$ cd ~/Downloads/apps/

$ featherpad featherpad_run

↓ 下記を貼付:

#!/bin/bash

# 「featherpad」メニュー起動対策: ターミナル起動しないと日本語ON/OFFできないので作成
export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus
export LANG=ja_JP.UTF-8

FILESTRING=${1}
featherpad $FILESTRING

-

(3). 作成したファイルの属性を変更:
$ cd ~/Downloads/apps/
$ chmod 755 featherpad_run

-

(4). デスクトップファイルの修正:
$ sudo featherpad /usr/share/applications/featherpad.desktop

↓ 下記のように、3箇所を修正:

#Exec=featherpad %U
Exec=/home/ubn/Downloads/apps/featherpad_run %U
#Exec=featherpad --win
Exec=/home/ubn/Downloads/apps/featherpad_run --win
#Exec=featherpad --standalone
Exec=/home/ubn/Downloads/apps/featherpad_run --standalone

→検索に「Exec=」を入れて、ジャンプしながら貼り付けて修正すると楽です。

-

14). メニューからアプリを起動:

メニュー →Accessories →「FeatherPad」

→日本語で表示。日本語オン/オフができ、日本語入力できました。

-

15). 修正が済んだデスクトップファイルを退避:

$ cd /usr/share/applications/
$ sudo cp featherpad.desktop featherpad.desktop-New

-

-


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

9. 参考:「Notepadqq」のOTE 版をビルドしたときの備忘録:

-

こちらを整理した手順は「項番 5」を参照:

-

参考:

-


「Notepadqq-OTE」 について:

-

公式サイト:

GitHub: JuBan1/notepadqq

→こちらのサイトは休止中。

不具合があっても、プルリクエストは受け付けてもらえませんが、現在の機能だけでも、感謝。

もし、不具合を修正したいときは、ビルドで使う、パッチファイルを(自力で)準備する必要があります。

-

(ちなみに、本家のサイト は活動中で、対象のアプリなら、プルリクエストも可能です)

-

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

「Notepadqq」と見た目も挙動もそっくりですが、エンジンは独自のOTE コンポーネントに入替えてあります。

OTE 版かを見分けるには、ヘルプに「software libraries:」の表示が含まれているかで、確認できます。

-

本家よりも動きが軽いです。「Notepadqq」の(休止前の時点での)問題点のいくつかが解消されています。

個人的には、依存パッケージが違うのでビルドが楽なことと、(休止前の時点で)起動が遅かった「QtWebEngine」が使われていないことが大きいです。

本家 notepadqq アプリの現在のバージョンの動作は未確認。 動きが改善されたかは、使っている「QtWebEngine」の進歩しだいです。

-

1). APKBUILD を「Notepadqq-OTE」に修正:

$ mkdir -p ~/Git/aports/testing/notepadqq/
$ cd ~/Git/aports/testing/notepadqq/

$ vi APKBUILD

下記に修正:

# Maintainer: JuBan1 <my@email.address>
pkgname=notepadqq
pkgver=1.4.8
pkgrel=0
pkgdesc="Notepadqq is designed from developers, for developers"
url="http://notepadqq.altervista.org/"
license="GPL-3.0"
arch="all"
makedepends="
    make
    uchardet-dev
    qt5-qtbase qt5-qtbase-dev
    qt5-qtsvg qt5-qtsvg-dev
    qt5-qttools-dev
    "
options="!check" # no test suite
source="$pkgname-$pkgver.tar.gz::https://github.com/JuBan1/notepadqq/archive/ote.tar.gz"
builddir="$srcdir/$pkgname-ote"

build() {
    ./configure \
        --prefix=/usr
    make
}

package() {
    make INSTALL_ROOT="$pkgdir" install
}

sha512sums="
3ac86e312d5bcfa01ec14e9b75afbc8e7b5284dd844294a26b1e366f47af96e932968fecf359dbf53ec197d1118e86bf5eb7ba1deee207520fd567392c3a5294  notepadqq-1.4.8.tar.gz
"

警告: qtchooser は qt5-base と衝突します。 Qt のパッケージ qt5-base は /usr/bin にバイナリ (例: qmake) および -qt5 のシンボリックリンクを提供します。

-

2). ソースコードのダウンロードと checksum の更新:

$ cd ~/Git/aports/testing/notepadqq/

$ abuild checksum
:
>>> notepadqq: Fetching notepadqq-1.4.8.tar.gz::https://github.com/JuBan1/notepadqq/archive/ote.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 2877k    0 2877k    0     0  1028k      0 --:--:--  0:00:02 --:--:-- 1356k
>>> notepadqq: Updating the sha512sums in APKBUILD...

-

確認:

$ tail -n 3 ~/Git/aports/testing/notepadqq/APKBUILD
sha512sums="
3ac86e312d5bcfa01ec14e9b75afbc8e7b5284dd844294a26b1e366f47af96e932968fecf359dbf53ec197d1118e86bf5eb7ba1deee207520fd567392c3a5294  notepadqq-1.4.8.tar.gz
"

-

3). ビルドで更新エラーとなる「APKINDEX.tar.gz」を削除:

$ cd ~/packages/testing/x86_64/
$ rm APKINDEX.tar.gz
$ ls -l ~/packages/testing/x86_64/
:
-rw-r--r--   1 ubn  ubn  712366 Nov 13 02:07 featherpad-1.1.0-r0.apk
-rw-r--r--   1 ubn  ubn  735721 Nov 13 13:36 featherpad-1.3.3-r0.apk
-rw-r--r--   1 ubn  ubn  460412 Nov 13 02:07 featherpad-lang-1.1.0-r0.apk
-rw-r--r--   1 ubn  ubn  492010 Nov 13 13:36 featherpad-lang-1.3.3-r0.apk

-

4). APKBUILD ファイルで、パッケージをビルド:

$ cd ~/Git/aports/testing/notepadqq/
$ abuild -r
:
>>> notepadqq: Building testing/notepadqq 1.4.8-r0 (using abuild 3.10.0_rc1-r2) started Mon, 14 Nov 2022 01:42:20 +0900
>>> notepadqq: Checking sanity of /home/ubn/Git/aports/testing/notepadqq/APKBUILD...
>>> notepadqq: Analyzing dependencies...
>>> notepadqq: Installing for build: build-base make uchardet-dev qt5-qtbase qt5-qtbase-dev qt5-qtsvg qt5-qtsvg-dev qt5-qttools-dev
WARNING: Ignoring /home/ubn/packages//testing: No such file or directory
WARNING: Ignoring /home/ubn/packages//community: No such file or directory
WARNING: Ignoring /home/ubn/packages//main: No such file or directory
(1/68) Installing uchardet (0.0.7-r1)
(2/68) Installing uchardet-dev (0.0.7-r1)
(3/68) Installing qt5-qtbase-sqlite (5.15.6_git20221010-r0)
(4/68) Installing unixodbc (2.3.11-r0)
(5/68) Installing qt5-qtbase-odbc (5.15.6_git20221010-r0)
(6/68) Installing libpq (14.5-r3)
(7/68) Installing qt5-qtbase-postgresql (5.15.6_git20221010-r0)
(8/68) Installing mariadb-connector-c (3.3.3-r0)
(9/68) Installing qt5-qtbase-mysql (5.15.6_git20221010-r0)
(10/68) Installing freetds (1.3.14-r0)
(11/68) Installing qt5-qtbase-tds (5.15.6_git20221010-r0)
(12/68) Installing libfdisk (2.38.1-r0)
(13/68) Installing libsmartcols (2.38.1-r0)
(14/68) Installing util-linux-dev (2.38.1-r0)
(15/68) Installing dbus-dev (1.14.4-r0)
(16/68) Installing expat-dev (2.5.0-r0)
(17/68) Installing brotli (1.0.9-r9)
(18/68) Installing brotli-dev (1.0.9-r9)
(19/68) Installing zlib-dev (1.2.13-r0)
(20/68) Installing libpng-dev (1.6.38-r0)
(21/68) Installing freetype-dev (2.12.1-r0)
(22/68) Installing fontconfig-dev (2.14.1-r0)
(23/68) Installing bzip2-dev (1.0.8-r3)
(24/68) Installing gettext-asprintf (0.21.1-r1)
(25/68) Installing gettext-libs (0.21.1-r1)
(26/68) Installing gettext (0.21.1-r1)
(27/68) Installing gettext-dev (0.21.1-r1)
(28/68) Installing linux-headers (5.19.5-r0)
(29/68) Installing libffi-dev (3.4.4-r0)
(30/68) Installing bsd-compat-headers (0.7.2-r3)
(31/68) Installing ncurses-dev (6.3_p20221105-r0)
(32/68) Installing libedit-dev (20221030.3.1-r0)
(33/68) Installing libpcre2-32 (10.40-r0)
(34/68) Installing pcre2-dev (10.40-r0)
(35/68) Installing glib-dev (2.74.1-r2)
(36/68) Installing xorgproto (2022.2-r0)
(37/68) Installing libice-dev (1.0.10-r1)
(38/68) Installing libsm-dev (1.2.3-r1)
(39/68) Installing libxau-dev (1.0.10-r0)
(40/68) Installing xcb-proto (1.15.2-r0)
(41/68) Installing libxdmcp-dev (1.1.3-r1)
(42/68) Installing libxcb-dev (1.15-r0)
(43/68) Installing xtrans (1.4.0-r2)
(44/68) Installing libx11-dev (1.8.2-r0)
(45/68) Installing libxext-dev (1.3.5-r0)
(46/68) Installing libpciaccess-dev (0.17-r0)
(47/68) Installing libdrm-dev (2.4.114-r0)
(48/68) Installing libxfixes-dev (6.0.0-r0)
(49/68) Installing libxdamage-dev (1.1.5-r1)
(50/68) Installing libxshmfence-dev (1.3.1-r0)
(51/68) Installing mesa-gles (22.2.3-r0)
(52/68) Installing llvm15-libs (15.0.4-r0)
(53/68) Installing mesa-osmesa (22.2.3-r0)
(54/68) Installing mesa-xatracker (22.2.3-r0)
(55/68) Installing libxxf86vm-dev (1.1.5-r0)
(56/68) Installing mesa-dev (22.2.3-r0)
(57/68) Installing openssl-dev (3.0.7-r0)
(58/68) Installing perl (5.36.0-r0)
(59/68) Installing sqlite-dev (3.39.4-r0)
(60/68) Installing qt5-qtbase-dev (5.15.6_git20221010-r0)
(61/68) Installing qt5-qtsvg-dev (5.15.6_git20220908-r0)
(62/68) Installing clang15-libclang (15.0.4-r0)
(63/68) Installing qt5-qttools (5.15.6_git20220907-r1)
(64/68) Installing qt5-qttools-dev (5.15.6_git20220907-r1)
(65/68) Installing .makedepends-notepadqq (20221113.164223)
(66/68) Installing perl-error (0.17029-r1)
(67/68) Installing perl-git (2.38.1-r0)
(68/68) Installing git-perl (2.38.1-r0)
Executing busybox-1.35.0-r27.trigger
Executing glib-2.74.1-r2.trigger
Executing gtk-update-icon-cache-3.24.34-r7.trigger
Executing desktop-file-utils-0.26-r1.trigger
OK: 2332 MiB in 662 packages

-

ビルドでエラー1:
>>> notepadqq: Cleaning up srcdir
>>> notepadqq: Cleaning up pkgdir
>>> notepadqq: Fetching notepadqq-1.4.8.tar.gz::https://github.com/JuBan1/notepadqq/archive/ote.tar.gz
>>> notepadqq: Fetching notepadqq-1.4.8.tar.gz::https://github.com/JuBan1/notepadqq/archive/ote.tar.gz
>>> notepadqq: Checking sha512sums...
notepadqq-1.4.8.tar.gz: OK
>>> notepadqq: Unpacking /var/cache/distfiles/notepadqq-1.4.8.tar.gz...
/usr/bin/abuild: line 22: ./configure: not found
>>> ERROR: notepadqq: build failed
>>> notepadqq: Uninstalling dependencies...

→「notepadqq-1.4.8.tar.gz」を展開したら「notepadqq-1.4.8」フォルダが作られそうだけど、「notepadqq-ote」が作られ、期待したフォルダ名ではないので、中にある「./configure」が見つかりません。

-

対処:
source="https://github.com/JuBan1/notepadqq/archive/ote.tar.gz"
builddir="$srcdir/$pkgname-$pkgver"

↓ 修正:

source="$pkgname-$pkgver.tar.gz::https://github.com/JuBan1/notepadqq/archive/ote.tar.gz"
builddir="$srcdir/$pkgname-ote"

-

ビルドでエラー2:
>>> notepadqq: Unpacking /var/cache/distfiles/ote.tar.gz...
checking for QT5 qmake... not found!\n Try to run configure with `--qmake /path/to/qmake-executable'.
>>> ERROR: notepadqq: build failed
>>> notepadqq: Uninstalling dependencies...

→「qmake」が見つかりません。

-

警告: qtchooser は qt5-base と衝突します。 Qt のパッケージ qt5-base は /usr/bin にバイナリ (例: qmake) および -qt5 のシンボリックリンクを提供します。

-

対処:

→依存の「qtchooser」を削除して、「qt5-base」を追加。

-

ビルドでエラー3:
mkdir: can't create directory '/usr/lib/notepadqq/': Permission denied  ←(アクセス拒否)
make[1]: *** [Makefile:2214: install_target] Error 1
make[1]: *** Waiting for unfinished jobs....
Error copying /home/ubn/Git/aports/testing/notepadqq/src/notepadqq-ote/support_files/icons/hicolor/16x16/apps/notepadqq.png to /usr/share/icons/hicolor/16x16/apps/notepadqq.png: Cannot create /usr/share/icons/hicolor/16x16/apps/notepadqq.png for output
make[1]: *** [Makefile:2224: install_icon_h16] Error 3
make[1]: Leaving directory '/home/ubn/Git/aports/testing/notepadqq/src/notepadqq-ote/src/ui'
make: *** [Makefile:60: sub-src-ui-install_subtargets] Error 2
>>> ERROR: notepadqq*: package failed
>>> ERROR: notepadqq: rootpkg failed
>>> notepadqq: Uninstalling dependencies...

→ビルドの結果をシステムに配置しようとして、書き込み権限がなくて失敗。 つまり、「make install」まで来ています。

-

対処:
package() {
    make DESTDIR="$pkgdir" install
}

↓ 修正:

package() {
    make INSTALL_ROOT="$pkgdir" install
}

→つまり、「sudo make install」です。

-

ビルドでエラー4:
>>> notepadqq-lang*: Running split function lang...
mv: can't rename '/home/ubn/Git/aports/testing/notepadqq/pkg/notepadqq/usr/share/notepadqq/translations': No such file or directory
'/home/ubn/Git/aports/testing/notepadqq/pkg/notepadqq/usr/share/notepadqq/translations' -> '/home/ubn/Git/aports/testing/notepadqq/pkg/notepadqq-lang/usr/share/notepadqq/translations'
>>> ERROR: notepadqq-lang*: lang failed
>>> ERROR: notepadqq*: prepare_subpackages failed
>>> ERROR: notepadqq: rootpkg failed
>>> notepadqq: Uninstalling dependencies...

→言語パッケージの分離作成でエラー:

-

対処:

言語パックを分離してのパッケージ化は取りやめ:

翻訳のやり方が違うみたい。

subpackages="$pkgname-lang"
:
lang() {
    install_if="lang $pkgname=$pkgver-r$pkgrel"
    pkgdesc="Languages for package $pkgname"

    amove usr/share/notepadqq/translations
}

↓ 修正:

# subpackages="$pkgname-lang"
:
# lang() {
#
#   install_if="lang $pkgname=$pkgver-r$pkgrel"
#   pkgdesc="Languages for package $pkgname"
#
#   amove usr/share/notepadqq/translations
# }

→追記: コメントにして無効にしたけど日本語化できました。なので、これらの行は削除。

-

-

再び、ビルドし直し:
$ cd ~/Git/aports/testing/notepadqq/
$ abuild -r
:
Executing busybox-1.35.0-r27.trigger
Executing glib-2.74.1-r2.trigger
Executing gtk-update-icon-cache-3.24.34-r7.trigger
Executing desktop-file-utils-0.26-r1.trigger
OK: 2010 MiB in 594 packages
>>> notepadqq: Updating the testing/x86_64 repository index...  ←(注目)
>>> notepadqq: Signing the index...    ←(注目)

→index (APKINDEX.tar.gz) が更新されれば、正常終了です。

ちなみに、ビルド完了(もしくは、エラー発生)後、ビルド実行時に必要でインストールされた(makedepends= で指定の)依存パッケージは、その都度、パージ(削除)されます。ビルドするときだけのインストールになります。

つまり、その後に同じ依存パッケージを使うアプリをビルドしても、それらの依存パッケージのインストールを省略できるわけではありません。

アプリの実行時に必要な(depends= で指定の)依存パッケージの方は、ビルド完了でパージ(削除)されるかは未確認ですが、アプリのインストール時に、依存パッケージがインストールされるので、たぶんこちらも削除されています。

-

5). パッケージが作成されたか確認:

$ cd ~/packages/testing/x86_64/

$ ls -l ~/packages/testing/x86_64/
:
-rw-r--r--   1 ubn  ubn     1474 Nov 14 02:26 APKINDEX.tar.gz    ←(日時に注目)
-rw-r--r--   1 ubn  ubn   712366 Nov 13 02:07 featherpad-1.1.0-r0.apk
-rw-r--r--   1 ubn  ubn   735721 Nov 13 13:36 featherpad-1.3.3-r0.apk
-rw-r--r--   1 ubn  ubn   460412 Nov 13 02:07 featherpad-lang-1.1.0-r0.apk
-rw-r--r--   1 ubn  ubn   492010 Nov 13 13:36 featherpad-lang-1.3.3-r0.apk
-rw-r--r--   1 ubn  ubn  2585655 Nov 14 02:26 notepadqq-1.4.8-r0.apk  ←(日時に注目)

→ちなみに、ビルド実行前に、更新エラーを回避するため「APKINDEX.tar.gz」は削除していました。

「notepadqq-1.4.8-r0.apk」は言語パックが分離されていないので、サイズが大きいことに注目。 こちらにある、featherpad は言語パックが分離されています。

ただし、これらのサイズだけではアプリの実行に必要なサイズは判断できません。 実行に必要な依存パッケージのサイズも加味する必要があります。

-


6). 作成された、「apk」ファイルで「notepadqq」をインストール:

-

(1). パラメータを付けて、インストール:
$ cd ~/packages/testing/x86_64/
$ sudo apk add --allow-untrusted notepadqq-1.4.8-r0.apk
:
(1/2) Installing uchardet (0.0.7-r1)
(2/2) Installing notepadqq (1.4.8-r0)
  • ローカル パッケージをインストールするときは、すべての依存関係を指定する必要があります

  • ローカル パッケージをインストールするときは、「--allow-untrusted」を指定する必要があります

-

(2). 確認:
$ notepadqq --version
:
Qt: Session management error: Authentication Rejected, reason : None of the authentication protocols specified are supported and host-based authentication failed
Notepadqq 1.4.8

-

(3). 別のインストールのやり方:

上記のパスを「/etc/apk/repositories」に追記してから、下記でインストール:

$ sudo apk add 「パッケージ名」

-

7). アプリの起動:

メニュー →Development →「Notepadqq」

→日本語で表示。ただし、日本語オンにできないので、日本語入力できません。

-


8). 日本語入力できるように設定:

-

(1). Bash シェルスクリプト ファイルの作成:

使用するテキストエディタは、何を使ってもよいです。 自分自身(notepadqq)でも、貼り付けるだけなので使えます。

-

$ mkdir -p ~/Downloads/apps
$ cd ~/Downloads/apps/
$ featherpad notepadqq_run

↓ 下記を貼付:

#!/bin/bash

# 「Notepadqq」メニュー起動対策: ターミナル起動しないと日本語ON/OFFできないので作成
export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus
export LANG=ja_JP.UTF-8

FILESTRING=${1}
notepadqq $FILESTRING

-

(2). 作成したファイルの属性を変更:
$ cd ~/Downloads/apps/
$ chmod 755 notepadqq_run

-

(3). デスクトップファイルの修正:
$ sudo featherpad /usr/share/applications/notepadqq.desktop

↓ 下記のように、3箇所を修正:

#Exec=notepadqq %U
Exec=/home/ubn/Downloads/apps/notepadqq_run %U
#Exec=notepadqq --new-window
Exec=/home/ubn/Downloads/apps/notepadqq_run --new-window
#Exec=notepadqq
Exec=/home/ubn/Downloads/apps/notepadqq_run

→検索に「Exec=」を入れて、ジャンプしながら貼り付けて修正すると楽です。

-

9). メニューからアプリを起動:

メニュー →Development →「Notepadqq」

→日本語で表示。日本語オン/オフができ、日本語入力できました。

カテゴリが「Development」になっていることに注目。

-

10). 修正が済んだデスクトップファイルを退避:

$ cd /usr/share/applications/
$ sudo cp notepadqq.desktop notepadqq.desktop-OTE

-

-


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

10. 参考:「Notepadqq」の 本家版 をビルドしたときの備忘録:

-

こちらを整理した手順は「項番 6」を参照:

-

追記: こちらは、最新のバージョン番号だけど、まったく改修されていない版のビルドでした。 公開された初期の頃の問題が確認できます。

ダウンロードからやり直したときの備忘録は「項番 11」を参照:

-

参考:

-


「Notepadqq」 について:

-

本家の公式サイト:

Github: notepadqq/notepadqq

→こちらのサイトは活動中です。改善案があれば、プルリクエストできると思います。

-

Windows で人気?のテキストエディタ「Notepad++」がありました。そのLinux 版として「Notepadqq」が作られました。

アプリ名は、「pp」を鏡に映すと「qq」ということみたい。

-

現在のバージョンは、「QtWebEngine」を使うようになってからの、初期バージョン(ベータ版)です。

当時、こちらのバージョンは動きが遅くて、個人的には別のバージョン(OTE 版)を使っていました。 その当時と同じバージョンのベータ版のままですが、アプリの動きは、その後の修正と「QtWebEngine」の進歩しだいと思います。

-

現在の「Notepadqq」のバージョン:

2022-11-14 現在:

v2.0.0-beta(プレリリース)

→正式なリリース版でなく、ベータ版(プレリリース)です。

-


1). ダウンロード:

Source code (tar.gz)

https://github.com/notepadqq/notepadqq/archive/refs/tags/beta.tar.gz

-

追記: ダウンロードすべきファイルを間違えました。最新バージョンではありませんでした。

バージョン番号は最新バージョンですが、現在までの修正が中身にかかっていませんでした。まったくの初期バージョンでした。それが代表になっていました。

また、リンクされたファイル名だと、リンクが漏れている可能性があるので、実際のバージョン番号のあるファイル名にした方が確実です。登録のタイムラグもありえるので、Github なら、「heads」指定が確実です。

ただし、「tags」の方に最新バージョンを置いているサイトもあったので、注意。

-

→最新のダウンロードファイルはどれか確認:
  • [Source code (tar.gz) Sep 14, 2018] →2018年9月14日

(https://github.com/notepadqq/notepadqq/archive/refs/tags/beta.tar.gz)

-

  • [Source code (tar.gz) Oct 12, 2019 5317c21] →2019年10月12日

(https://github.com/notepadqq/notepadqq/archive/refs/tags/v2.0.0-beta.tar.gz)

-

  • [Downloads ZIP Aug 26, 2021 (4f906c1)] →2021年8月26日

(https://github.com/notepadqq/notepadqq/archive/refs/heads/master.tar.gz)

→一番最新ですが、これでも 1年前のソースです。

-

ビルド時の依存関係:
Qt 5.6 ~
qtwebengine5-dev    ←(注目: 変更)
libqt5websockets5-dev
libqt5svg5-dev  libqt5svg5
qttools5-dev-tools
libuchardet-dev
pkg-config

-


2). 「notepadqq2」にある APKBUILD を修正:

-

事前にビルドした、OTE 版とアプリ名が重なるので、登録するフォルダ名を「notepadqq2」としました。 支障が出るようなら、「notepadqq」にするつもり。

-

追記: 登録するフォルダ名は自由に設定でき、ビルドに支障ありません

逆に、APKBUILD というファイル名は変更できないので、 「notepadqq-OTE」とか、「notepadqq-2.0.0-beta2」とか、フォルダ名でバージョンの管理をするのが楽です。

-

$ mkdir -p ~/Git/aports/testing/notepadqq2/
$ cd ~/Git/aports/testing/notepadqq2/

$ notepadqq APKBUILD

下記を貼付け:

# Maintainer: notepadqq <my@email.address>
pkgname=notepadqq
pkgver=2.0.0
pkgrel=0
pkgdesc="Notepadqq is designed from developers, for developers"
url="http://notepadqq.altervista.org/"
license="GPL-3.0"
arch="all"
makedepends="
    make
    uchardet-dev
    qt5-qtbase qt5-qtbase-dev
    qt5-qtsvg qt5-qtsvg-dev
    qt5-qttools-dev
    qt5-qtwebengine-dev
    qt5-qtwebsockets-dev
    "
options="!check" # no test suite
source="$pkgname-$pkgver.tar.gz::https://github.com/notepadqq/notepadqq/archive/refs/tags/beta.tar.gz"
builddir="$srcdir/$pkgname-beta"

build() {
    ./configure \
        --prefix=/usr
    make
}

package() {
    make INSTALL_ROOT="$pkgdir" install
}

警告: qtchooser は qt5-base と衝突します。 Qt のパッケージ qt5-base は /usr/bin にバイナリ (例: qmake) および -qt5 のシンボリックリンクを提供します。

-

3). ソースコードのダウンロードと checksum の更新:

$ cd ~/Git/aports/testing/notepadqq2/

$ abuild checksum
:
>>> notepadqq: Fetching notepadqq-2.0.0-beta.tar.gz::https://github.com/notepadqq/notepadqq/archive/refs/tags/beta.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 4333k    0 4333k    0     0  1375k      0 --:--:--  0:00:03 --:--:-- 2396k
>>> notepadqq: Updating the sha512sums in APKBUILD...

-

確認:

$ tail -n 3 ~/Git/aports/testing/notepadqq2/APKBUILD
sha512sums="
0ad1f627b7263fc94c8b62c9eaab606389d05eaee2e8ee5a64081611cea659a495422d89589d7684e87c956693ac9aba4d78cbd53fd5b31265975a12b264753c  notepadqq-2.0.0-beta.tar.gz
"

→上記の「notepadqq2/APKBUILD」のファイルの最後に、こちらの 3行が追記されました。ダウンロードも完了。

ダウンロードファイル名は、「notepadqq-2.0.0-beta.tar.gz」です。(本来は、「beta.tar.gz」)

-

4). キャッシュディレクトリにある、ビルドで更新エラーとなる「APKINDEX.tar.gz」を削除:

ビルドを実行すると、インデックスファイルの更新エラーになるので、その回避策です。

$ cd ~/packages/testing/x86_64/
$ rm APKINDEX.tar.gz
$ ls -l ~/packages/testing/x86_64/
:
-rw-r--r--   1 ubn  ubn   712366 Nov 13 02:07 featherpad-1.1.0-r0.apk
-rw-r--r--   1 ubn  ubn   735721 Nov 13 13:36 featherpad-1.3.3-r0.apk
-rw-r--r--   1 ubn  ubn   460412 Nov 13 02:07 featherpad-lang-1.1.0-r0.apk
-rw-r--r--   1 ubn  ubn   492010 Nov 13 13:36 featherpad-lang-1.3.3-r0.apk
-rw-r--r--   1 ubn  ubn  2585655 Nov 14 02:26 notepadqq-1.4.8-r0.apk

今までにビルドした、アプリのファイルが残っています。

これを見ると「pkgrel=0」の指示が、「-r0」になるみたい。

-

5). APKBUILD ファイルからパッケージをビルド:

$ cd ~/Git/aports/testing/notepadqq2/
$ abuild -r

-

ビルドでエラー1:
>>> notepadqq: Building testing/notepadqq 2.0.0-beta-r0 (using abuild 3.10.0_rc1-r2) started Tue, 15 Nov 2022 02:08:59 +0900
>>> notepadqq: Checking sanity of /home/ubn/Git/aports/testing/notepadqq2/APKBUILD...
>>> ERROR: notepadqq: 2.0.0-beta is not a valid version

→APKBUILD の健全性のチェックで、「有効なバージョンではありません」となりました。

-

対処:

$ cd ~/Git/aports/testing/notepadqq2/
$ notepadqq APKBUILD

-

pkgver=2.0.0-beta

↓ 修正:

pkgver=2.0.0\~beta

-

ソースコードのダウンロードと checksum の更新:
$ abuild checksum
:
>>> notepadqq: Fetching notepadqq-2.0.0~beta.tar.gz::https://github.com/notepadqq/notepadqq/archive/refs/tags/beta.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 4333k    0 4333k    0     0  2603k      0 --:--:--  0:00:01 --:--:-- 6988k
>>> notepadqq: Updating the sha512sums in APKBUILD...

-

確認:

$ tail -n 3 ~/Git/aports/testing/notepadqq2/APKBUILD
sha512sums="
0ad1f627b7263fc94c8b62c9eaab606389d05eaee2e8ee5a64081611cea659a495422d89589d7684e87c956693ac9aba4d78cbd53fd5b31265975a12b264753c  notepadqq-2.0.0~beta.tar.gz
"

→ダウンロードファイル名が「notepadqq-2.0.0~beta.tar.gz」に変わりました。

-

ビルドでエラー2:
>>> notepadqq: Building testing/notepadqq 2.0.0-beta-r0 (using abuild 3.10.0_rc1-r2) started Tue, 15 Nov 2022 02:08:59 +0900
>>> notepadqq: Checking sanity of /home/ubn/Git/aports/testing/notepadqq2/APKBUILD...
>>> ERROR: notepadqq: 2.0.0-beta is not a valid version

→APKBUILD の健全性のチェックで、「有効なバージョンではありません」となりました。

「pkgver=」は数字だけしかダメみたい。

-

対処:

$ cd ~/Git/aports/testing/notepadqq2/
$ notepadqq APKBUILD

-

pkgver=2.0.0\~beta

↓ 修正:

pkgver=2.0.0

-

ソースコードのダウンロードと checksum の更新:
$ abuild checksum
:
>>> notepadqq: Fetching notepadqq-2.0.0.tar.gz::https://github.com/notepadqq/notepadqq/archive/refs/tags/beta.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 4333k    0 4333k    0     0  2658k      0 --:--:--  0:00:01 --:--:-- 7406k
>>> notepadqq: Updating the sha512sums in APKBUILD...

-

$ tail -n 3 ~/Git/aports/testing/notepadqq2/APKBUILD
sha512sums="
0ad1f627b7263fc94c8b62c9eaab606389d05eaee2e8ee5a64081611cea659a495422d89589d7684e87c956693ac9aba4d78cbd53fd5b31265975a12b264753c  notepadqq-2.0.0.tar.gz
"

→ダウンロードファイル名が「notepadqq-2.0.0.tar.gz」に変わりました。

-


6). APKBUILD ファイルからパッケージをビルド、やり直し:

$ cd ~/Git/aports/testing/notepadqq2/
$ abuild -r
>>> notepadqq: Building testing/notepadqq 2.0.0-r0 (using abuild 3.10.0_rc1-r2) started Tue, 15 Nov 2022 02:30:21 +0900
>>> notepadqq: Checking sanity of /home/ubn/Git/aports/testing/notepadqq2/APKBUILD...
>>> notepadqq: Analyzing dependencies...
>>> notepadqq: Installing for build: build-base make uchardet-dev qt5-qtbase qt5-qtbase-dev qt5-qtsvg qt5-qtsvg-dev qt5-qttools-dev qt5-qtwebengine-dev qt5-qtwebsockets-dev
WARNING: Ignoring /home/ubn/packages//testing: No such file or directory
WARNING: Ignoring /home/ubn/packages//community: No such file or directory
WARNING: Ignoring /home/ubn/packages//main: No such file or directory
fetch http://dl-cdn.alpinelinux.org/alpine/v3.16/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.16/community/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz
(1/94) Installing uchardet-dev (0.0.7-r1)
(2/94) Installing qt5-qtbase-sqlite (5.15.6_git20221010-r0)
(3/94) Installing unixodbc (2.3.11-r0)
(4/94) Installing qt5-qtbase-odbc (5.15.6_git20221010-r0)
(5/94) Installing libpq (14.5-r3)
(6/94) Installing qt5-qtbase-postgresql (5.15.6_git20221010-r0)
(7/94) Installing mariadb-connector-c (3.3.3-r0)
(8/94) Installing qt5-qtbase-mysql (5.15.6_git20221010-r0)
(9/94) Installing freetds (1.3.14-r0)
(10/94) Installing qt5-qtbase-tds (5.15.6_git20221010-r0)
(11/94) Upgrading libbz2 (1.0.8-r3 -> 1.0.8-r4)
(12/94) Upgrading xz-libs (5.2.7-r0 -> 5.2.8-r0)
(13/94) Installing libfdisk (2.38.1-r0)
(14/94) Installing libsmartcols (2.38.1-r0)
(15/94) Installing util-linux-dev (2.38.1-r0)
(16/94) Installing dbus-dev (1.14.4-r0)
(17/94) Installing expat-dev (2.5.0-r0)
(18/94) Installing brotli (1.0.9-r9)
(19/94) Installing brotli-dev (1.0.9-r9)
(20/94) Installing zlib-dev (1.2.13-r0)
(21/94) Installing libpng-dev (1.6.38-r0)
(22/94) Installing freetype-dev (2.12.1-r0)
(23/94) Installing fontconfig-dev (2.14.1-r0)
(24/94) Installing bzip2-dev (1.0.8-r4)
(25/94) Installing gettext-asprintf (0.21.1-r1)
(26/94) Installing gettext-libs (0.21.1-r1)
(27/94) Installing gettext (0.21.1-r1)
(28/94) Installing gettext-dev (0.21.1-r1)
(29/94) Installing linux-headers (5.19.5-r0)
(30/94) Installing libffi-dev (3.4.4-r0)
(31/94) Installing bsd-compat-headers (0.7.2-r3)
(32/94) Installing ncurses-dev (6.3_p20221105-r0)
(33/94) Installing libedit-dev (20221030.3.1-r0)
(34/94) Installing libpcre2-32 (10.40-r0)
(35/94) Installing pcre2-dev (10.40-r0)
(36/94) Installing glib-dev (2.74.1-r2)
(37/94) Installing xorgproto (2022.2-r0)
(38/94) Installing libice-dev (1.0.10-r1)
(39/94) Installing libsm-dev (1.2.3-r1)
(40/94) Installing libxau-dev (1.0.10-r0)
(41/94) Installing xcb-proto (1.15.2-r0)
(42/94) Installing libxdmcp-dev (1.1.3-r1)
(43/94) Installing libxcb-dev (1.15-r0)
(44/94) Installing xtrans (1.4.0-r2)
(45/94) Installing libx11-dev (1.8.2-r0)
(46/94) Installing libxext-dev (1.3.5-r0)
(47/94) Installing libpciaccess-dev (0.17-r0)
(48/94) Installing libdrm-dev (2.4.114-r0)
(49/94) Installing libxfixes-dev (6.0.0-r0)
(50/94) Installing libxdamage-dev (1.1.5-r1)
(51/94) Installing libxshmfence-dev (1.3.1-r0)
(52/94) Installing mesa-gles (22.2.3-r0)
(53/94) Installing llvm15-libs (15.0.4-r0)
(54/94) Installing mesa-osmesa (22.2.3-r0)
(55/94) Installing mesa-xatracker (22.2.3-r0)
(56/94) Installing libxxf86vm-dev (1.1.5-r0)
(57/94) Installing mesa-dev (22.2.3-r0)
(58/94) Installing openssl-dev (3.0.7-r0)
(59/94) Installing perl (5.36.0-r0)
(60/94) Installing sqlite-dev (3.39.4-r0)
(61/94) Installing qt5-qtbase-dev (5.15.6_git20221010-r0)
(62/94) Installing qt5-qtsvg-dev (5.15.6_git20220908-r0)
(63/94) Installing clang15-libclang (15.0.4-r0)
(64/94) Installing qt5-qttools (5.15.6_git20220907-r1)
(65/94) Installing qt5-qttools-dev (5.15.6_git20220907-r1)
(66/94) Installing ffmpeg-dev (5.1.2-r1)
(67/94) Installing wayland-dev (1.21.0-r1)
(68/94) Installing xz-dev (5.2.8-r0)
(69/94) Installing libxml2-dev (2.10.3-r1)
(70/94) Installing gstreamer-dev (1.20.4-r0)
(71/94) Installing orc-compiler (0.4.33-r0)
(72/94) Installing orc-dev (0.4.33-r0)
(73/94) Installing gst-plugins-base-dev (1.20.4-r0)
(74/94) Installing icu (72.1-r1)
(75/94) Installing icu-dev (72.1-r1)
(76/94) Installing libxcomposite-dev (0.4.5-r1)
(77/94) Installing libxkbcommon-dev (1.4.1-r0)
(78/94) Installing libxkbfile-dev (1.1.1-r0)
(79/94) Installing libxrender-dev (0.9.11-r0)
(80/94) Installing libxslt-dev (1.1.37-r0)
(81/94) Installing samurai (1.2-r2)
(82/94) Installing qt5-qtdeclarative-dev (5.15.6_git20220908-r0)
(83/94) Installing qt5-qtwebchannel (5.15.6_git20220907-r0)
(84/94) Installing qt5-qtwebchannel-dev (5.15.6_git20220907-r0)
(85/94) Installing re2 (2022.06.01-r1)
(86/94) Installing snappy (1.1.9-r4)
(87/94) Installing qt5-qtwebengine (5.15.11-r3)
(88/94) Installing qt5-qtwebengine-dev (5.15.11-r3)
(89/94) Installing qt5-qtwebsockets (5.15.6_git20220907-r0)
(90/94) Installing qt5-qtwebsockets-dev (5.15.6_git20220907-r0)
(91/94) Installing .makedepends-notepadqq (20221114.173030)
(92/94) Installing perl-error (0.17029-r1)
(93/94) Installing perl-git (2.38.1-r0)
(94/94) Installing git-perl (2.38.1-r0)
Executing busybox-1.35.0-r27.trigger
Executing glib-2.74.1-r2.trigger
Executing gtk-update-icon-cache-3.24.34-r7.trigger
Executing desktop-file-utils-0.26-r1.trigger
OK: 2552 MiB in 688 packages

→APKBUILD の整合性のチェックと、指定した依存パッケージのインストールまで完了。

-

ビルドでエラー3:
>>> notepadqq: Cleaning up srcdir
>>> notepadqq: Cleaning up pkgdir
>>> notepadqq: Fetching notepadqq-2.0.0.tar.gz::https://github.com/notepadqq/notepadqq/archive/refs/tags/beta.tar.gz
>>> notepadqq: Fetching notepadqq-2.0.0.tar.gz::https://github.com/notepadqq/notepadqq/archive/refs/tags/beta.tar.gz
>>> notepadqq: Checking sha512sums...
notepadqq-2.0.0.tar.gz: OK

>>> notepadqq: Unpacking /var/cache/distfiles/notepadqq-2.0.0.tar.gz...
/usr/bin/abuild: line 23: ./configure: not found
>>> ERROR: notepadqq: build failed
>>> notepadqq: Uninstalling dependencies...

→ダウンロードしたソースの展開後、「./configure」が見つかりません。

-

確認:

$ ls src/
notepadqq-2.0.0.tar.gz  notepadqq-beta

→展開したフォルダ名が「notepadqq-beta」です。

-

対処:
builddir="$srcdir/$pkgname-$pkgver"

↓ 修正:

builddir="$srcdir/$pkgname-beta"

-

ソースコードのダウンロードと checksum の更新:
$ abuild checksum

-


7). APKBUILD ファイルからパッケージをビルド、やり直し2:

$ cd ~/Git/aports/testing/notepadqq2/
$ abuild -r
:
Executing gtk-update-icon-cache-3.24.34-r7.trigger
Executing desktop-file-utils-0.26-r1.trigger
OK: 2023 MiB in 596 packages

>>> notepadqq: Updating the testing/x86_64 repository index...  ←(注目)
>>> notepadqq: Signing the index...    ←(注目)
$ 

→index (APKINDEX.tar.gz) が更新されれば、正常終了です。

-

8). パッケージが作成されたか確認:

$ ls -l ~/packages/testing/x86_64/
:
-rw-r--r--   1 ubn  ubn     1555 Nov 15 03:04 APKINDEX.tar.gz    ←(日時に注目)
-rw-r--r--   1 ubn  ubn   712366 Nov 13 02:07 featherpad-1.1.0-r0.apk
-rw-r--r--   1 ubn  ubn   735721 Nov 13 13:36 featherpad-1.3.3-r0.apk
-rw-r--r--   1 ubn  ubn   460412 Nov 13 02:07 featherpad-lang-1.1.0-r0.apk
-rw-r--r--   1 ubn  ubn   492010 Nov 13 13:36 featherpad-lang-1.3.3-r0.apk
-rw-r--r--   1 ubn  ubn  2585655 Nov 14 02:26 notepadqq-1.4.8-r0.apk
-rw-r--r--   1 ubn  ubn  3841401 Nov 15 03:04 notepadqq-2.0.0-r0.apk  ←(日時に注目)

-


9). インストール済みの「notepadqq」をアンインストール:

$ apk list notepadqq*
$

→ローカルでインストールしたパッケージは、apk list では表示されません。

-

$ which notepadqq
/usr/bin/notepadqq

→バイナリは存在。

試しに、削除を実行:

$ sudo apk del notepadqq
:
(1/2) Purging notepadqq (1.4.8-r0)
(2/2) Purging uchardet (0.0.7-r1)

→削除できました。

-

$ which notepadqq
$

→削除されてます。

-


10). 作成した「apk」ファイルで「notepadqq」をインストール:

-

(1). 確認:
$ cd ~/packages/testing/x86_64/
$ ls
APKINDEX.tar.gz
featherpad-1.1.0-r0.apk
featherpad-1.3.3-r0.apk
featherpad-lang-1.1.0-r0.apk
featherpad-lang-1.3.3-r0.apk
notepadqq-1.4.8-r0.apk
notepadqq-2.0.0-r0.apk

-

(2). 信頼を無視するパラメータを付けて、インストール:
$ sudo apk add --allow-untrusted notepadqq-2.0.0-r0.apk
:
(1/5) Installing qt5-qtwebchannel (5.15.6_git20220907-r0)
(2/5) Installing re2 (2022.06.01-r1)
(3/5) Installing snappy (1.1.9-r4)
(4/5) Installing qt5-qtwebengine (5.15.11-r3)
(5/5) Installing notepadqq (2.0.0-r0)
  • ローカル パッケージをインストールするときは、すべての依存関係を指定する必要があります

  • ローカル パッケージをインストールするときは、「--allow-untrusted」を指定する必要があります

 →信頼されていない署名または署名のないパッケージをインストールします。

-

(3). バージョンの確認:
$ notepadqq --version
:
libEGL warning: DRI2: failed to authenticate
libEGL warning: MESA-LOADER: failed to open swrast: Error loading shared library /usr/lib/xorg/modules/dri/swrast_dri.so: No such file or directory (search paths /usr/lib/xorg/modules/dri, suffix _dri)

libEGL warning: DRI2: failed to authenticate
libEGL warning: MESA-LOADER: failed to open swrast: Error loading shared library /usr/lib/xorg/modules/dri/swrast_dri.so: No such file or directory (search paths /usr/lib/xorg/modules/dri, suffix _dri)

QXcbIntegration: Cannot create platform OpenGL context, neither GLX nor EGL are enabled
Qt: Session management error: Authentication Rejected, reason : None of the authentication protocols specified are supported and host-based authentication failed

Notepadqq 1.4.8

→あれれ、警告は無視できますが、バージョン表示が更新されていません。

不具合なのか、以前の情報が残っているのか…。

-


11). アプリの起動:

メニュー →Development →「Notepadqq」

→30秒ほどしてから、画面が表示されました。起動の遅さは改善されていません。

日本語表示されました。

-

以前開いたファイルがタブ表示されましたが、 フォントサイズとテーマの設定は解除されています。

-

触ろうとしたら、アプリのウィンドウ画面が消えました。強制終了?

メニューから起動したら、ダイアログが表示:

「No」をクリックしたら、以前のタブが復活して表示されました。

-

触ろうとしたら、アプリのウィンドウ画面が消えました。

-

エラーを確認するために、端末から起動:
$ notepadqq
:
libEGL warning: DRI2: failed to authenticate
libEGL warning: MESA-LOADER: failed to open swrast: Error loading shared library /usr/lib/xorg/modules/dri/swrast_dri.so: No such file or directory (search paths /usr/lib/xorg/modules/dri, suffix _dri)

libEGL warning: DRI2: failed to authenticate
libEGL warning: MESA-LOADER: failed to open swrast: Error loading shared library /usr/lib/xorg/modules/dri/swrast_dri.so: No such file or directory (search paths /usr/lib/xorg/modules/dri, suffix _dri)

QXcbIntegration: Cannot create platform OpenGL context, neither GLX nor EGL are enabled
Qt: Session management error: Authentication Rejected, reason : None of the authentication protocols specified are supported and host-based authentication failed

Missing icon:  "edit-clear"
Missing icon:  "go-previous"
Missing icon:  "go-next"
Missing icon:  "go-bottom"
Missing icon:  "view-refresh"
Missing icon:  "document-open-recent"
Missing icon:  "application-exit"
Missing icon:  "edit-delete"
Missing icon:  "edit-select-all"
Missing icon:  "go-next"
Missing icon:  "go-previous"
Missing icon:  "go-jump"
Missing icon:  "view-fullscreen"
Missing icon:  "system-run"
Missing icon:  "window-new"
Missing icon:  "help-about"

→画面が起動

-

画面をさわろうとしたらコケました:
Segmentation fault
$ 
→「セグメンテーション違反」です。

-

かろうじて、日本語のオンオフが出来ないことの確認はできました。

-

また、ヘルプを表示させると、以前のバージョンの「1.4.8」のヘルプ表示でした:

→ヘルプ画面にあった誤表示も昔のままです:

-

以前、違うディストリビューションで、ダウンロードしてビルドしたときは、「2.0.0-beta」の表示で、誤表示も改修されていました。それが元に戻っているのは変ですね。

改修のない、本当の初期のバージョンのソースをダウンロードしたようです。

-

-


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

11. 参考:「Notepadqq」の 本家版 をビルドしたときの備忘録 2:

-

こちらを整理した手順は「項番 6」を参照:

-

項番 10」で、ビルドするためにダウンロードした「ソースファイル」が最新ではありませんでした。

バージョンは最新ですが、まったく改修されていない、本当の初期バージョンでした。 なので、最新のソースを指定して、ビルドし直しました。

-

1). 最新のソースはどれか確認:

-

誤ってダウンロードしたファイルです。

-

これが最新ですが、更新はしばらくなかったみたい。

-

→最新のダウンロードファイルを使ってのビルドが必要です。

-


2). インストールした「notepadqq」の削除:

$ sudo apk del notepadqq
:
(1/5) Purging notepadqq (2.0.0-r0)
(2/5) Purging qt5-qtwebengine (5.15.11-r3)
(3/5) Purging qt5-qtwebchannel (5.15.6_git20220907-r0)
(4/5) Purging re2 (2022.06.01-r1)
(5/5) Purging snappy (1.1.9-r4)

→削除 OK

-

3). 作成されたインデックスとパッケージも削除:

$ rm ~/packages/testing/x86_64/APKINDEX.tar.gz
$ rm ~/packages/testing/x86_64/notepadqq-2.0.0-r0.apk

-

確認:

$ ls -l ~/packages/testing/x86_64/
:
-rw-r--r--   1 ubn  ubn   712366 Nov 13 02:07 featherpad-1.1.0-r0.apk
-rw-r--r--   1 ubn  ubn   735721 Nov 13 13:36 featherpad-1.3.3-r0.apk
-rw-r--r--   1 ubn  ubn   460412 Nov 13 02:07 featherpad-lang-1.1.0-r0.apk
-rw-r--r--   1 ubn  ubn   492010 Nov 13 13:36 featherpad-lang-1.3.3-r0.apk
-rw-r--r--   1 ubn  ubn  2585655 Nov 14 02:26 notepadqq-1.4.8-r0.apk

-


4).「notepadqq2」にある APKBUILD を修正:

ついでに、登録しているフォルダ名も変更しました:

-

$ mkdir -p ~/Git/aports/testing/notepadqq2.0.0-beta/
$ cd ~/Git/aports/testing/notepadqq2.0.0-beta/

$ featherpad APKBUILD

↓ 下記のように修正:

# Maintainer: notepadqq <my@email.address>
pkgname=notepadqq
pkgver=2.0.0
pkgrel=0
pkgdesc="Notepadqq is designed from developers, for developers"
url="http://notepadqq.altervista.org/"
license="GPL-3.0"
arch="all"
makedepends="
    make
    uchardet-dev
    qt5-qtbase qt5-qtbase-dev
    qt5-qtsvg qt5-qtsvg-dev
    qt5-qttools-dev
    qt5-qtwebengine-dev
    qt5-qtwebsockets-dev
    "
options="!check" # no test suite
source="$pkgname-$pkgver.tar.gz::https://github.com/notepadqq/notepadqq/archive/refs/heads/master.tar.gz"
builddir="$srcdir/$pkgname-master"

build() {
    ./configure \
        --prefix=/usr
    make
}

package() {
    make INSTALL_ROOT="$pkgdir" install
}

-

5). ソースコードのダウンロードと checksum の更新:

$ abuild checksum

-


6). ビルド:

$ cd ~/Git/aports/testing/notepadqq2/
$ abuild -r
>>> notepadqq: Building testing/notepadqq 2.0.0-r0 (using abuild 3.10.0_rc1-r2) started Tue, 15 Nov 2022 06:35:38 +0900
>>> notepadqq: Checking sanity of /home/ubn/Git/aports/testing/notepadqq2.0.0-beta/APKBUILD...
>>> notepadqq: Analyzing dependencies...
>>> notepadqq: Installing for build: build-base make uchardet-dev qt5-qtbase qt5-qtbase-dev qt5-qtsvg qt5-qtsvg-dev qt5-qttools-dev qt5-qtwebengine-dev qt5-qtwebsockets-dev
WARNING: Ignoring /home/ubn/packages//testing: No such file or directory
WARNING: Ignoring /home/ubn/packages//community: No such file or directory
WARNING: Ignoring /home/ubn/packages//main: No such file or directory
fetch http://dl-cdn.alpinelinux.org/alpine/v3.16/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.16/community/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz
(1/93) Installing uchardet (0.0.7-r1)
(2/93) Installing uchardet-dev (0.0.7-r1)
(3/93) Installing qt5-qtbase-sqlite (5.15.6_git20221010-r0)
(4/93) Installing unixodbc (2.3.11-r0)
(5/93) Installing qt5-qtbase-odbc (5.15.6_git20221010-r0)
(6/93) Installing libpq (14.5-r3)
(7/93) Installing qt5-qtbase-postgresql (5.15.6_git20221010-r0)
(8/93) Installing mariadb-connector-c (3.3.3-r0)
(9/93) Installing qt5-qtbase-mysql (5.15.6_git20221010-r0)
(10/93) Installing freetds (1.3.14-r0)
(11/93) Installing qt5-qtbase-tds (5.15.6_git20221010-r0)
(12/93) Installing libfdisk (2.38.1-r0)
(13/93) Installing libsmartcols (2.38.1-r0)
(14/93) Installing util-linux-dev (2.38.1-r0)
(15/93) Installing dbus-dev (1.14.4-r0)
(16/93) Installing expat-dev (2.5.0-r0)
(17/93) Installing brotli (1.0.9-r9)
(18/93) Installing brotli-dev (1.0.9-r9)
(19/93) Installing zlib-dev (1.2.13-r0)
(20/93) Installing libpng-dev (1.6.38-r0)
(21/93) Installing freetype-dev (2.12.1-r0)
(22/93) Installing fontconfig-dev (2.14.1-r0)
(23/93) Installing bzip2-dev (1.0.8-r4)
(24/93) Installing gettext-asprintf (0.21.1-r1)
(25/93) Installing gettext-libs (0.21.1-r1)
(26/93) Installing gettext (0.21.1-r1)
(27/93) Installing gettext-dev (0.21.1-r1)
(28/93) Installing linux-headers (5.19.5-r0)
(29/93) Installing libffi-dev (3.4.4-r0)
(30/93) Installing bsd-compat-headers (0.7.2-r3)
(31/93) Installing ncurses-dev (6.3_p20221105-r0)
(32/93) Installing libedit-dev (20221030.3.1-r0)
(33/93) Installing libpcre2-32 (10.40-r0)
(34/93) Installing pcre2-dev (10.40-r0)
(35/93) Installing glib-dev (2.74.1-r2)
(36/93) Installing xorgproto (2022.2-r0)
(37/93) Installing libice-dev (1.0.10-r1)
(38/93) Installing libsm-dev (1.2.3-r1)
(39/93) Installing libxau-dev (1.0.10-r0)
(40/93) Installing xcb-proto (1.15.2-r0)
(41/93) Installing libxdmcp-dev (1.1.3-r1)
(42/93) Installing libxcb-dev (1.15-r0)
(43/93) Installing xtrans (1.4.0-r2)
(44/93) Installing libx11-dev (1.8.2-r0)
(45/93) Installing libxext-dev (1.3.5-r0)
(46/93) Installing libpciaccess-dev (0.17-r0)
(47/93) Installing libdrm-dev (2.4.114-r0)
(48/93) Installing libxfixes-dev (6.0.0-r0)
(49/93) Installing libxdamage-dev (1.1.5-r1)
(50/93) Installing libxshmfence-dev (1.3.1-r0)
(51/93) Installing mesa-gles (22.2.3-r0)
(52/93) Installing llvm15-libs (15.0.4-r0)
(53/93) Installing mesa-osmesa (22.2.3-r0)
(54/93) Installing mesa-xatracker (22.2.3-r0)
(55/93) Installing libxxf86vm-dev (1.1.5-r0)
(56/93) Installing mesa-dev (22.2.3-r0)
(57/93) Installing openssl-dev (3.0.7-r0)
(58/93) Installing perl (5.36.0-r0)
(59/93) Installing sqlite-dev (3.39.4-r0)
(60/93) Installing qt5-qtbase-dev (5.15.6_git20221010-r0)
(61/93) Installing qt5-qtsvg-dev (5.15.6_git20220908-r0)
(62/93) Installing clang15-libclang (15.0.4-r0)
(63/93) Installing qt5-qttools (5.15.6_git20220907-r1)
(64/93) Installing qt5-qttools-dev (5.15.6_git20220907-r1)
(65/93) Installing ffmpeg-dev (5.1.2-r1)
(66/93) Installing wayland-dev (1.21.0-r1)
(67/93) Installing xz-dev (5.2.8-r0)
(68/93) Installing libxml2-dev (2.10.3-r1)
(69/93) Installing gstreamer-dev (1.20.4-r0)
(70/93) Installing orc-compiler (0.4.33-r0)
(71/93) Installing orc-dev (0.4.33-r0)
(72/93) Installing gst-plugins-base-dev (1.20.4-r0)
(73/93) Installing icu (72.1-r1)
(74/93) Installing icu-dev (72.1-r1)
(75/93) Installing libxcomposite-dev (0.4.5-r1)
(76/93) Installing libxkbcommon-dev (1.4.1-r0)
(77/93) Installing libxkbfile-dev (1.1.1-r0)
(78/93) Installing libxrender-dev (0.9.11-r0)
(79/93) Installing libxslt-dev (1.1.37-r0)
(80/93) Installing samurai (1.2-r2)
(81/93) Installing qt5-qtdeclarative-dev (5.15.6_git20220908-r0)
(82/93) Installing qt5-qtwebchannel (5.15.6_git20220907-r0)
(83/93) Installing qt5-qtwebchannel-dev (5.15.6_git20220907-r0)
(84/93) Installing re2 (2022.06.01-r1)
(85/93) Installing snappy (1.1.9-r4)
(86/93) Installing qt5-qtwebengine (5.15.11-r3)
(87/93) Installing qt5-qtwebengine-dev (5.15.11-r3)
(88/93) Installing qt5-qtwebsockets (5.15.6_git20220907-r0)
(89/93) Installing qt5-qtwebsockets-dev (5.15.6_git20220907-r0)
(90/93) Installing .makedepends-notepadqq (20221114.213549)
(91/93) Installing perl-error (0.17029-r1)
(92/93) Installing perl-git (2.38.1-r0)
(93/93) Installing git-perl (2.38.1-r0)
Executing busybox-1.35.0-r27.trigger
Executing glib-2.74.1-r2.trigger
Executing gtk-update-icon-cache-3.24.34-r7.trigger
Executing desktop-file-utils-0.26-r1.trigger
OK: 2539 MiB in 687 packages

>>> notepadqq: Cleaning up srcdir
>>> notepadqq: Cleaning up pkgdir
>>> notepadqq: Fetching notepadqq-2.0.0.tar.gz::https://github.com/notepadqq/notepadqq/archive/refs/heads/master.tar.gz
>>> notepadqq: Fetching notepadqq-2.0.0.tar.gz::https://github.com/notepadqq/notepadqq/archive/refs/heads/master.tar.gz
>>> notepadqq: Checking sha512sums...
notepadqq-2.0.0.tar.gz: OK
>>> notepadqq: Unpacking /var/cache/distfiles/notepadqq-2.0.0.tar.gz...
/usr/bin/abuild: line 23: ./configure: not found
>>> ERROR: notepadqq: build failed
>>> notepadqq: Uninstalling dependencies...

-

ビルドでエラー1:

→ダウンロードしたソースの展開後、「./configure」が見つかりません。

-

$ ls src/
notepadqq-2.0.0.tar.gz  notepadqq-beta

展開したフォルダ名が依存と同じです。変です。

APKBUILD ファイルの最後に追記された checksum の値が、以前と変わっていません。

修正されていれば変わっているはずです。

仮のURL に変換する(リンクの使用)のは注意が必要みたい。以前の値が使われる可能性があります。 気を付けないとハマります。

-

対処:

仮のURL の指定(リンク)を取りやめ:

source="$pkgname-$pkgver.tar.gz::https://github.com/notepadqq/notepadqq/archive/refs/heads/master.tar.gz"
builddir="$srcdir/$pkgname-master"

↓ 下記のように修正:

source="https://github.com/notepadqq/notepadqq/archive/refs/heads/master.tar.gz"
builddir="$srcdir/$pkgname-master"

-

7). ソースコードのダウンロードと checksum の更新:

$ cd ~/Git/aports/testing/notepadqq2.0.0-beta/

$ abuild checksum
:
>>> notepadqq: Fetching https://github.com/notepadqq/notepadqq/archive/refs/heads/master.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- -  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- -100 2865k    0 2865k    0     0  1851k      0 --:--:--  0:00:01 -100 4411k    0 4411k    0     0  2178k      0 --:--:--  0:00:02 --:--:-- 3082k
>>> notepadqq: Updating the sha512sums in APKBUILD...

-

確認:

$ tail -n 3 ~/Git/aports/testing/notepadqq2.0.0-beta/APKBUILD
sha512sums="
5f1eab3aaa2da501c9b0f5d74db960c5e02d7cd40cdbcd1d72342dfe461ebe9bc611654e7d31b15dfd6c7fb93467d7c7c5b81764b57ea8811f728f80849b69a5  master.tar.gz
"

→上記の「notepadqq2/APKBUILD」のファイルの最後に、こちらの 3行が追記されました。ダウンロードも完了。

ダウンロードファイル名は、本来の「master.tar.gz」になりました。

チェックサムの値が変わりました。

-

8). APKBUILD ファイルからパッケージをビルド:

$ cd ~/Git/aports/testing/notepadqq2.0.0-beta/
$ abuild -r
:
Updating '/home/ubn/Git/aports/testing/notepadqq2.0.0-beta/src/notepadqq-master/src/ui/../translations/notepadqq_de.qm'...
    Generated 453 translation(s) (453 finished and 0 unfinished)
:
Updating '/home/ubn/Git/aports/testing/notepadqq2.0.0-beta/src/notepadqq-master/src/ui/../translations/notepadqq_zh.qm'...
    Generated 448 translation(s) (448 finished and 0 unfinished)
:
/usr/bin/qmake-qt5 -install qinstall /home/ubn/Git/aports/testing/notepadqq2.0.0-beta/src/notepadqq-master/support_files/icons/hicolor/16x16/apps/notepadqq.png /home/ubn/Git/aports/testing/notepadqq2.0.0-beta/pkg/notepadqq/usr/share/icons/hicolor/16x16/apps/notepadqq.png
/usr/bin/qmake-qt5 -install qinstall -exe /home/ubn/Git/aports/testing/notepadqq2.0.0-beta/src/notepadqq-master/out/release/lib/notepadqq-bin /home/ubn/Git/aports/testing/notepadqq2.0.0-beta/pkg/notepadqq/usr/lib/notepadqq/notepadqq-bin
/usr/bin/qmake-qt5 -install qinstall /home/ubn/Git/aports/testing/notepadqq2.0.0-beta/src/notepadqq-master/support_files/icons/hicolor/22x22/apps/notepadqq.png /home/ubn/Git/aports/testing/notepadqq2.0.0-beta/pkg/notepadqq/usr/share/icons/hicolor/22x22/apps/notepadqq.png
/usr/bin/qmake-qt5 -install qinstall /home/ubn/Git/aports/testing/notepadqq2.0.0-beta/src/notepadqq-master/support_files/icons/hicolor/24x24/apps/notepadqq.png /home/ubn/Git/aports/testing/notepadqq2.0.0-beta/pkg/notepadqq/usr/share/icons/hicolor/24x24/apps/notepadqq.png
/usr/bin/qmake-qt5 -install qinstall /home/ubn/Git/aports/testing/notepadqq2.0.0-beta/src/notepadqq-master/support_files/icons/hicolor/32x32/apps/notepadqq.png /home/ubn/Git/aports/testing/notepadqq2.0.0-beta/pkg/notepadqq/usr/share/icons/hicolor/32x32/apps/notepadqq.png
/usr/bin/qmake-qt5 -install qinstall /home/ubn/Git/aports/testing/notepadqq2.0.0-beta/src/notepadqq-master/support_files/icons/hicolor/48x48/apps/notepadqq.png /home/ubn/Git/aports/testing/notepadqq2.0.0-beta/pkg/notepadqq/usr/share/icons/hicolor/48x48/apps/notepadqq.png
/usr/bin/qmake-qt5 -install qinstall /home/ubn/Git/aports/testing/notepadqq2.0.0-beta/src/notepadqq-master/support_files/icons/hicolor/64x64/apps/notepadqq.png /home/ubn/Git/aports/testing/notepadqq2.0.0-beta/pkg/notepadqq/usr/share/icons/hicolor/64x64/apps/notepadqq.png
/usr/bin/qmake-qt5 -install qinstall /home/ubn/Git/aports/testing/notepadqq2.0.0-beta/src/notepadqq-master/support_files/icons/hicolor/96x96/apps/notepadqq.png /home/ubn/Git/aports/testing/notepadqq2.0.0-beta/pkg/notepadqq/usr/share/icons/hicolor/96x96/apps/notepadqq.png
/usr/bin/qmake-qt5 -install qinstall /home/ubn/Git/aports/testing/notepadqq2.0.0-beta/src/notepadqq-master/support_files/icons/hicolor/128x128/apps/notepadqq.png /home/ubn/Git/aports/testing/notepadqq2.0.0-beta/pkg/notepadqq/usr/share/icons/hicolor/128x128/apps/notepadqq.png
/usr/bin/qmake-qt5 -install qinstall /home/ubn/Git/aports/testing/notepadqq2.0.0-beta/src/notepadqq-master/support_files/icons/hicolor/256x256/apps/notepadqq.png /home/ubn/Git/aports/testing/notepadqq2.0.0-beta/pkg/notepadqq/usr/share/icons/hicolor/256x256/apps/notepadqq.png
/usr/bin/qmake-qt5 -install qinstall /home/ubn/Git/aports/testing/notepadqq2.0.0-beta/src/notepadqq-master/support_files/icons/hicolor/512x512/apps/notepadqq.png /home/ubn/Git/aports/testing/notepadqq2.0.0-beta/pkg/notepadqq/usr/share/icons/hicolor/512x512/apps/notepadqq.png
/usr/bin/qmake-qt5 -install qinstall /home/ubn/Git/aports/testing/notepadqq2.0.0-beta/src/notepadqq-master/support_files/icons/hicolor/scalable/apps/notepadqq.svg /home/ubn/Git/aports/testing/notepadqq2.0.0-beta/pkg/notepadqq/usr/share/icons/hicolor/scalable/apps/notepadqq.svg
/usr/bin/qmake-qt5 -install qinstall /home/ubn/Git/aports/testing/notepadqq2.0.0-beta/src/notepadqq-master/out/release/appdata/editor /home/ubn/Git/aports/testing/notepadqq2.0.0-beta/pkg/notepadqq/usr/share/notepadqq/editor
/usr/bin/qmake-qt5 -install qinstall /home/ubn/Git/aports/testing/notepadqq2.0.0-beta/src/notepadqq-master/out/release/bin/notepadqq /home/ubn/Git/aports/testing/notepadqq2.0.0-beta/pkg/notepadqq/usr/bin/notepadqq
/usr/bin/qmake-qt5 -install qinstall /home/ubn/Git/aports/testing/notepadqq2.0.0-beta/src/notepadqq-master/support_files/shortcuts/notepadqq.desktop /home/ubn/Git/aports/testing/notepadqq2.0.0-beta/pkg/notepadqq/usr/share/applications/notepadqq.desktop
/usr/bin/qmake-qt5 -install qinstall /home/ubn/Git/aports/testing/notepadqq2.0.0-beta/src/notepadqq-master/support_files/notepadqq.appdata.xml /home/ubn/Git/aports/testing/notepadqq2.0.0-beta/pkg/notepadqq/usr/share/metainfo/notepadqq.appdata.xml
chmod 755 /home/ubn/Git/aports/testing/notepadqq2.0.0-beta/pkg/notepadqq"/usr/bin/notepadqq"
/usr/bin/qmake-qt5 -install qinstall /home/ubn/Git/aports/testing/notepadqq2.0.0-beta/src/notepadqq-master/out/release/appdata/extension_tools /home/ubn/Git/aports/testing/notepadqq2.0.0-beta/pkg/notepadqq/usr/share/notepadqq/extension_tools
make[1]: Leaving directory '/home/ubn/Git/aports/testing/notepadqq2.0.0-beta/src/notepadqq-master/src/ui'

>>> notepadqq*: Running postcheck for notepadqq
>>> notepadqq*: Preparing package notepadqq...
>>> notepadqq*: Stripping binaries
>>> notepadqq*: Scanning shared objects
>>> notepadqq*: Tracing dependencies...
    so:libQt5Core.so.5
    so:libQt5Gui.so.5
    so:libQt5Network.so.5
    so:libQt5PrintSupport.so.5
    so:libQt5Svg.so.5
    so:libQt5WebChannel.so.5
    so:libQt5WebEngineWidgets.so.5
    so:libQt5Widgets.so.5
    so:libc.musl-x86_64.so.1
    so:libgcc_s.so.1
    so:libstdc++.so.6
    so:libuchardet.so.0
>>> notepadqq*: Package size: 16.9 MB
>>> notepadqq*: Compressing data...
>>> notepadqq*: Create checksum...
>>> notepadqq*: Create notepadqq-2.0.0-r0.apk
>>> notepadqq: Build complete at Tue, 15 Nov 2022 07:40:03 +0900 elapsed time 0h 6m 9s
>>> notepadqq: Cleaning up srcdir
>>> notepadqq: Cleaning up pkgdir
>>> notepadqq: Uninstalling dependencies...

(1/93) Purging .makedepends-notepadqq (20221114.223357)
(2/93) Purging uchardet-dev (0.0.7-r1)
(3/93) Purging uchardet (0.0.7-r1)
(4/93) Purging qt5-qtsvg-dev (5.15.6_git20220908-r0)
(5/93) Purging qt5-qttools-dev (5.15.6_git20220907-r1)
(6/93) Purging qt5-qtwebsockets-dev (5.15.6_git20220907-r0)
(7/93) Purging qt5-qtwebsockets (5.15.6_git20220907-r0)
(8/93) Purging qt5-qtwebengine-dev (5.15.11-r3)
(9/93) Purging ffmpeg-dev (5.1.2-r1)
(10/93) Purging gst-plugins-base-dev (1.20.4-r0)
(11/93) Purging gstreamer-dev (1.20.4-r0)
(12/93) Purging icu-dev (72.1-r1)
(13/93) Purging libxcomposite-dev (0.4.5-r1)
(14/93) Purging libxkbcommon-dev (1.4.1-r0)
(15/93) Purging libxkbfile-dev (1.1.1-r0)
(16/93) Purging libxrender-dev (0.9.11-r0)
(17/93) Purging libxslt-dev (1.1.37-r0)
(18/93) Purging qt5-qtwebengine (5.15.11-r3)
(19/93) Purging samurai (1.2-r2)
(20/93) Purging qt5-qtwebchannel-dev (5.15.6_git20220907-r0)
(21/93) Purging qt5-qtwebchannel (5.15.6_git20220907-r0)
(22/93) Purging re2 (2022.06.01-r1)
(23/93) Purging snappy (1.1.9-r4)
(24/93) Purging git-perl (2.38.1-r0)
(25/93) Purging perl-git (2.38.1-r0)
(26/93) Purging perl-error (0.17029-r1)
(27/93) Purging qt5-qtdeclarative-dev (5.15.6_git20220908-r0)
(28/93) Purging qt5-qtbase-dev (5.15.6_git20221010-r0)
(29/93) Purging qt5-qtbase-odbc (5.15.6_git20221010-r0)
(30/93) Purging qt5-qtbase-postgresql (5.15.6_git20221010-r0)
(31/93) Purging qt5-qtbase-mysql (5.15.6_git20221010-r0)
(32/93) Purging qt5-qtbase-tds (5.15.6_git20221010-r0)
(33/93) Purging dbus-dev (1.14.4-r0)
(34/93) Purging fontconfig-dev (2.14.1-r0)
(35/93) Purging freetype-dev (2.12.1-r0)
(36/93) Purging glib-dev (2.74.1-r2)
(37/93) Purging bzip2-dev (1.0.8-r4)
(38/93) Purging gettext-dev (0.21.1-r1)
(39/93) Purging gettext-asprintf (0.21.1-r1)
(40/93) Purging gettext (0.21.1-r1)
(41/93) Purging libpng-dev (1.6.38-r0)
(42/93) Purging libsm-dev (1.2.3-r1)
(43/93) Purging mesa-dev (22.2.3-r0)
(44/93) Purging libxdamage-dev (1.1.5-r1)
(45/93) Purging libxshmfence-dev (1.3.1-r0)
(46/93) Purging mesa-gles (22.2.3-r0)
(47/93) Purging mesa-osmesa (22.2.3-r0)
(48/93) Purging mesa-xatracker (22.2.3-r0)
(49/93) Purging openssl-dev (3.0.7-r0)
(50/93) Purging perl (5.36.0-r0)
(51/93) Purging sqlite-dev (3.39.4-r0)
(52/93) Purging qt5-qtbase-sqlite (5.15.6_git20221010-r0)
(53/93) Purging freetds (1.3.14-r0)
(54/93) Purging unixodbc (2.3.11-r0)
(55/93) Purging libpq (14.5-r3)
(56/93) Purging mariadb-connector-c (3.3.3-r0)
(57/93) Purging util-linux-dev (2.38.1-r0)
(58/93) Purging libsmartcols (2.38.1-r0)
(59/93) Purging libfdisk (2.38.1-r0)
(60/93) Purging wayland-dev (1.21.0-r1)
(61/93) Purging expat-dev (2.5.0-r0)
(62/93) Purging brotli-dev (1.0.9-r9)
(63/93) Purging brotli (1.0.9-r9)
(64/93) Purging pcre2-dev (10.40-r0)
(65/93) Purging libedit-dev (20221030.3.1-r0)
(66/93) Purging bsd-compat-headers (0.7.2-r3)
(67/93) Purging ncurses-dev (6.3_p20221105-r0)
(68/93) Purging libpcre2-32 (10.40-r0)
(69/93) Purging libxml2-dev (2.10.3-r1)
(70/93) Purging xz-dev (5.2.8-r0)
(71/93) Purging zlib-dev (1.2.13-r0)
(72/93) Purging gettext-libs (0.21.1-r1)
(73/93) Purging libdrm-dev (2.4.114-r0)
(74/93) Purging libffi-dev (3.4.4-r0)
(75/93) Purging linux-headers (5.19.5-r0)
(76/93) Purging libxfixes-dev (6.0.0-r0)
(77/93) Purging libxxf86vm-dev (1.1.5-r0)
(78/93) Purging libxext-dev (1.3.5-r0)
(79/93) Purging libx11-dev (1.8.2-r0)
(80/93) Purging xtrans (1.4.0-r2)
(81/93) Purging libice-dev (1.0.10-r1)
(82/93) Purging libxcb-dev (1.15-r0)
(83/93) Purging xcb-proto (1.15.2-r0)
(84/93) Purging libxau-dev (1.0.10-r0)
(85/93) Purging libxdmcp-dev (1.1.3-r1)
(86/93) Purging xorgproto (2022.2-r0)
(87/93) Purging libpciaccess-dev (0.17-r0)
(88/93) Purging qt5-qttools (5.15.6_git20220907-r1)
(89/93) Purging clang15-libclang (15.0.4-r0)
(90/93) Purging llvm15-libs (15.0.4-r0)
(91/93) Purging orc-dev (0.4.33-r0)
(92/93) Purging orc-compiler (0.4.33-r0)
(93/93) Purging icu (72.1-r1)
Executing busybox-1.35.0-r27.trigger
Executing glib-2.74.1-r2.trigger
Executing gtk-update-icon-cache-3.24.34-r7.trigger
Executing desktop-file-utils-0.26-r1.trigger
OK: 2010 MiB in 594 packages

>>> notepadqq: Updating the testing/x86_64 repository index...  ←(注目)
>>> notepadqq: Signing the index...    ←(注目)

→index (APKINDEX.tar.gz) が更新されれば、正常終了です。

-

9). パッケージが作成されたか確認:

$ ls -l ~/packages/testing/x86_64/
:
-rw-r--r--   1 ubn  ubn     1554 Nov 15 07:40 APKINDEX.tar.gz    ←(日時に注目)
-rw-r--r--   1 ubn  ubn   712366 Nov 13 02:07 featherpad-1.1.0-r0.apk
-rw-r--r--   1 ubn  ubn   735721 Nov 13 13:36 featherpad-1.3.3-r0.apk
-rw-r--r--   1 ubn  ubn   460412 Nov 13 02:07 featherpad-lang-1.1.0-r0.apk
-rw-r--r--   1 ubn  ubn   492010 Nov 13 13:36 featherpad-lang-1.3.3-r0.apk
-rw-r--r--   1 ubn  ubn  2585655 Nov 14 02:26 notepadqq-1.4.8-r0.apk
-rw-r--r--   1 ubn  ubn  3887182 Nov 15 07:40 notepadqq-2.0.0-r0.apk  ←(日時に注目)

-


10). 作成した「apk」ファイルで「notepadqq」をインストール:

-

確認:
$ cd ~/packages/testing/x86_64/
$ ls -1
APKINDEX.tar.gz
featherpad-1.1.0-r0.apk
featherpad-1.3.3-r0.apk
featherpad-lang-1.1.0-r0.apk
featherpad-lang-1.3.3-r0.apk
notepadqq-1.4.8-r0.apk
notepadqq-2.0.0-r0.apk

-

信頼を無視するパラメータを付けて、インストール:
$ sudo apk add --allow-untrusted notepadqq-2.0.0-r0.apk
:
(1/6) Installing qt5-qtwebchannel (5.15.6_git20220907-r0)
(2/6) Installing re2 (2022.06.01-r1)
(3/6) Installing snappy (1.1.9-r4)
(4/6) Installing qt5-qtwebengine (5.15.11-r3)
(5/6) Installing uchardet (0.0.7-r1)
(6/6) Installing notepadqq (2.0.0-r0)
  • ローカル パッケージをインストールするときは、すべての依存関係を指定する必要があります

  • ローカル パッケージをインストールするときは、「--allow-untrusted」を指定する必要があります

 →信頼されていない署名または署名のないパッケージをインストールします。

-

確認:

$ notepadqq --version
:
libEGL warning: DRI2: failed to authenticate
libEGL warning: MESA-LOADER: failed to open swrast: Error loading shared library /usr/lib/xorg/modules/dri/swrast_dri.so: No such file or directory (search paths /usr/lib/xorg/modules/dri, suffix _dri)

libEGL warning: DRI2: failed to authenticate
libEGL warning: MESA-LOADER: failed to open swrast: Error loading shared library /usr/lib/xorg/modules/dri/swrast_dri.so: No such file or directory (search paths /usr/lib/xorg/modules/dri, suffix _dri)

QXcbIntegration: Cannot create platform OpenGL context, neither GLX nor EGL are enabled
Qt: Session management error: Authentication Rejected, reason : None of the authentication protocols specified are supported and host-based authentication failed

Notepadqq 2.0.0-beta+git

→バージョン表示が更新されました。

-


11). アプリの起動:

メニュー →Development →「Notepadqq」

→日本語で「未保存の変更を復元しますか?」ダイアログが表示:

→「Yes」

以前開いたファイルがタブ表示されましたが、 フォントサイズとテーマの設定は解除されています。

-

→日本語表示されました

日本語オンオフでき、日本語の入力も出来ました。

-

デスクトップファイルを修正しなくても、日本語オンオフできるのはだいぶ改善されています。

ただし、さわっていたら、画面が閉じました。

-

端末で起動して確認:
$ notepadqq
:
libEGL warning: DRI2: failed to authenticate
libEGL warning: MESA-LOADER: failed to open swrast: Error loading shared library /usr/lib/xorg/modules/dri/swrast_dri.so: No such file or directory (search paths /usr/lib/xorg/modules/dri, suffix _dri)

libEGL warning: DRI2: failed to authenticate
libEGL warning: MESA-LOADER: failed to open swrast: Error loading shared library /usr/lib/xorg/modules/dri/swrast_dri.so: No such file or directory (search paths /usr/lib/xorg/modules/dri, suffix _dri)

QXcbIntegration: Cannot create platform OpenGL context, neither GLX nor EGL are enabled
Qt: Session management error: Authentication Rejected, reason : None of the authentication protocols specified are supported and host-based authentication failed

-

コケたときの表示:
Segmentation fault
$ 

→「セグメンテーション違反」です。

初期バージョンと同じエラーで、こちらは改善されていません。

-

12). 「Notepadqq」の 本家版 の最新バージョンを試してみた結論:

アプリの起動は速くなり、日本語表示もされるし、日本語入力も可能です。

-

以前よりも改善されましたが、「セグメンテーション違反」の解消はまだです。

不具合報告が見つかりました:

-

不具合報告 1: Segmentation fault in Ubuntu 17.10 #496

報告: 2017年10月25日

-

回避策: 代わりに snap パッケージを使用:

$ sudo snap install notepadqq

→snapパッケージをインストールするには、Linux ディストリビューションごとに異なる「snapd」と呼ばれる管理環境をインストールする必要がありますが、「Alpine Linux」では、今のところインストールできません。

-

解消: 2019年10月4日

「qtwebkit」から「QtWebEngine」に切り替えることで修正されました。

-

不具合報告 2: Segmentation fault #1023

報告: 2021年12月14日

Notepadqq バージョン 2.0.0-beta+git を Debian 11 でビルド

切り替えた「QtWebEngine」でも発生。

→回答なし

-

なぜエンジンが変更されたのかわかりました。

-

不具合報告には、「Segmentation fault」の発生時にダンプ出力がないので情報が足りません。

-

-


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

12. 参考: Flatpak で「Notepadqq」がインストールできるか確認:

-

「Notepadqq」(2.0.0-beta+git) の「セグメンテーション違反」の回避に、snap パッケージが有効そうですが、「Alpine Linux」で snap は利用できないので、Flatpak であればインストールできるか、確認:

-

flatpak で、インストールできるか確認:

$ flatpak search notepadqq
:
Name          Description               Application ID                      Version   Branch   Remotes
Notepadqq     An advanced text editor   com.notepadqq.Notepadqq             1.4.8     stable   flathub
Apostrophe    Edit Markdown in style    org.gnome.gitlab.somas.Apostrophe   2.6.3     stable   flathub

→バージョンは「1.4.8」です。「qtwebkit」から「QtWebEngine」に切り替わる直前のバージョンです。

snap パッケージであれば「セグメンテーション違反」は回避できそうですが、flatpak ではどうなのかわかりません。

また、ヘルプのボタンが誤表示するなど不具合のある頃のバージョンなので、それらを改修+異なるエンジンに替わった OTE 版から、わざわざ(不具合のある)元に戻す必要はないと思います。

-

参考: 「Notepadqq 1.4.8」から「Notepadqq 2.0.0-beta」に切り替わった直後の画面:

→こちらは、誤って、「Notepadqq 2.0.0-beta」の初期バージョンをダウンロードしてビルドしたときの画面です。

「Notepadqq 1.4.8」のヘルプ画面にあった誤表示がまだ残っています。

つまり、「Notepadqq 1.4.8」の最終バージョンのヘルプ画面と同じです。

-

-


まとめ

「Alpine Linux」にて、アプリをビルドしてインストールしてみました。

「Alpine Linux」は他の Linux とはシステムの違いが大きいからか、 Linux アプリの移植をやりやすくしてくれる「Aports ツリー」が構築されています。

-

この辺りは、Gentoo Linux の「ports ツリー」を参考にしている Haiku の「HaikuPorts 」とよく似ています。

ただし、多くのアプリが、「aports/testing」ディレクトリに置かれ、アプリのカテゴリ分けなしで、単にアルファベット順にフォルダがソートされているだけです。そして、「APKBUILD」ファイルの依存の書き方もシンプルです。

すんなりとビルドできるのは、たぶん、ビルド時に必要になる「依存パッケージ」の多くが移植されていると思われます。Haiku よりも Linux アプリの移植がやりやすいのは利点です。

-

-

-


-

-

    目次

-

「投稿の先頭 へ」

-

-


-

「この目次 の先頭へ」

「本編の目次 に戻る」

-