Linux あれこれ

Linux 関連の備忘録です。

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

登録日: 2021-10-26 更新日: 2021-11-11

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

すでに移植されているテキストエディタの「FeatherPad-0.9.2」は日本語化されていないバージョンです。 最新バージョンの「FeatherPad-1.0.1」にバージョンアップしてみました。その備忘録です。

-

-

追記:

2021-11-05

HaikuDepot において「FeatherPad-1.0.1-1」になり、日本語化されました。 なので、本作業を行う必要はなくなりました。 Haiku でのアプリの移植作業の参考にはなると思います。

-

-

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

-

-

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

-

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

-

-


目次

-

「前回の作業」

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

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

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

「git で差分を作成」

「.patchset の正式な形式」

-

今回の作業:

1). 「FeatherPad-1.0.1」を「cmake」のレシピでパッケージ化 (成功):

-

2). 「FeatherPad-1.0.1」を手動で「cmake」を使いインストール (成功):

→ヘルプ表示を「個人的な備忘録」として利用したいときに使えます。上記の項番1 と共存できます。

こちらは、一度ホームの実行ファイルをダブルクリックして起動。次からは「最近使ったドキュメント」で起動できます。(未定義のアイコンが目印)

-

「まとめ へ」

-

「目次詳細 へ」

-

-


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

-

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

-

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

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

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

-

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

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

-

「FeatherPad-1.0.1」にアップすることで日本語化されました:

-

手動でビルドした場合は、ヘルプ表示を個人的な備忘録として利用できる機能が復活:

→「パッケージ化」に失敗しました。でも、そのおかげでHome にインストールされたので、逆に使い勝手が良くなりました。

依存の問題が解決し「パッケージ化」できるようになったら、ホームの「~/config/packages」に配置されるようにレシピを修正すると良いと思います。

-

下記の操作で、ヘルプファイルの先頭に「個人的な備忘録」を追記できます:
> lpe ~/config/non-packaged/apps/FeatherPad/data/help_ja

↓ ヘルプファイルの先頭に追記(例):

### 個人的な備忘録

左クリックを3回で行選択して、Alt+C でコピー

lpe ~/config/non-packaged/apps/FeatherPad/data/help_ja

-

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

pkgman refresh
pkgman update

-

### パッケージ化を実行

cd ~/Git/haikuporter/
hp featherpad

-

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

inpatch makefile

-

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

inrecipe koader

-

→マウスや Shift +「矢印」キーなどでは範囲選択できないので、左クリックを3回で行選択して Alt+C でコピーします。端末には、右クリックで貼り付けできます。その他のアプリへは Alt+V です。

ちなみに「FeatherPad-0.9.2」をホームに配置した場合、ヘルプをさわるときは英語の「help」ファイルをいじります。

-

パッケージ化に成功してインストールした場合は、ヘルプ表示を個人的な備忘録として利用できません

→システムに配置されて書き込みができなくなるので、単なるヘルプファイルとして機能します。

その後の気づきは「こちら

-

参考: 手動でビルドした場合のファイルの配置:

→実行ファイルが小文字で、未定義アイコンになっていることに注目。メニューにも反映されます。

インストール時の配置先はホームの「packages」がねらい目。

-

参考: パッケージ化して、インストールした場合のファイルの配置:

→実行ファイルが大文字を含み、通常のアプリのアイコンになっていることに注目。メニューにも反映されます。

-

-


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

-

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

-

2021-11-11 現在:

~> uname -v
hrev55632 Nov 10 2021 08:36:21

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

-

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

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

-

-


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

-

1. 前回までの作業:

-

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

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

-

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

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

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

-

今回はその続きとなります。

-

-


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

-

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

-


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

-

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

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

> ls -1
additional-files
featherpad-0.9.2.recipe    ←(レシピファイル: 必須)
patches              ←(パッチファイルを置いておくフォルダ)
work-0.9.2            ←(作業フォルダ)更新チェックで自動で作られたもの

> ls additional-files
notepadqq.rdef.in        ←(アプリのアイコンなどのリソースが定義されてます)

> ls patches
featherpad-0.9.2.patchset  ←(パッチファイルを使う場合: 現在はなし)

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

-

-


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

-

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

-

公式サイト:

GitHub tsujan/FeatherPad

「FeatherPad」:

-


依存パッケージ:

 * g++ >= 5
 * libx11-dev and libxext-dev (for X11)
 * qtbase5-dev and libqt5x11extras5-dev (for Qt5)
 * libqt5svg5-dev (for hard-coded SVG icons)
 * libhunspell-dev (for spell checking)    ←(追加されました)
 * qttools5-dev-tools (for localization)

-

(1). 「0.9.2」よりも増えた依存パッケージ:

日本語では使わないスペルチェックの機能:

hunspell-devel:

> pkgman search hunspell
Status  Name                Description                                         
--------------------------------------------------------------------------------
S       enchant             Generic spell-checking dictionary library           
S       hunspell            Spellchecker, forked from myspell                   
        hunspell_devel      Spellchecker, forked from myspell (development files  ←(必要)
        hunspell_source     Spellchecker, forked from myspell (source files)    
:

→「Otter Browser」のインストールの依存で上の2つは入っていますが、それ以外に「hunspell_devel」のインストールが必要です。逆に、「hunspell_devel」をインストールすると「hunspell」もインストールされました。

-

(2). 依存のインストール:
> pkgman install hunspell_devel
> pkgman search hunspell
Status  Name                Description                                         
--------------------------------------------------------------------------------
S       enchant             Generic spell-checking dictionary library           
S       hunspell            Spellchecker, forked from myspell                   
S       hunspell_devel      Spellchecker, forked from myspell (development files
        hunspell_source     Spellchecker, forked from myspell (source files)    
:

→「hunspell_devel」をインストールしてから、削除すると依存により「Otter Browser」も削除されるので注意。

-


参考: Xubuntu 20.04.3 での依存パッケージ

$ apt search hunspell

hunspell/focal 1.7.0-2build2 amd64
  spell checker and morphological analyzer (program)

libhunspell-1.7-0/focal,now 1.7.0-2build2 amd64 [インストール済み、自動] ←(実行時に必要なパッケージ)
  spell checker and morphological analyzer (shared library)

libhunspell-dev/focal 1.7.0-2build2 amd64      ←(ビルド時に必要なパッケージ)
  spell checker and morphological analyzer (development)

→アプリとライブラリが分けてインストールできるので問題が少ないです。featherpad-0.12.1 がインストールされている状態です。

-


翻訳ファイルとヘルプファイル

featherpad/data/translations/featherpad_ja.ts
featherpad/data/help
featherpad/data/help_ja
featherpad/data/help_pt_BR

→ヘルプファイルは出来たら書き込みできるホームに移動するかリンクできると便利。

-


最新のソースの入手:

-

ダウンロード:

https://github.com/tsujan/FeatherPad/archive/refs/tags/V1.0.1.tar.gz

> sha256sum FeatherPad-1.0.1.tar.gz
62bcb8ceb788a1626c41ee7dc3f3fbebf73b82db31cf76708a79073da0f04414  FeatherPad-1.0.1.tar.gz

-


インストール手順:

FeatherPad/INSTALL

-

qmake を使う場合:
> qmake && make
> make install

Haiku に移植済の「FeatherPad-0.9.2」で使われているやり方です。

-

cmake を使う場合:
> mkdir build && cd build
> cmake ..
> make
> make install

→ビルド用のフォルダを作るので、やり直しが楽です。

-

-


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

-

4. 現在、Haiku に移植されている「FeatherPad-0.9.2」の情報:

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

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

> ls -1 additional-files
featherpad.rdef.in

> ls -1 work-0.9.2
port.recipe

-

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

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

resource app_version {
        major  = @MAJOR@,
        middle = @MIDDLE@,
        minor  = @MINOR@,

        variety = B_APPV_FINAL,
        internal = 0,

        short_info = "FeatherPad",
        long_info = "Lightweight Qt5 text editor"
};

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

resource file_types message {
                "types" = "text/x-source-code",
                "types" = "text/x-makefile",
                "types" = "text/x-jamfile",
                "types" = "text/html",
                "types" = "text/xml",
                "types" = "text/plain",
                "types" = "text/rtf"
};

resource vector_icon {

        $"6E6369661A05FE0382848103696B670387898603A7A8A603B3B4B203B4B4B303"
        $"A2A39F05F903D2D9E105FA034D76A303C8CACA03878F92038EA8C40393999A03"
        $"AFBCC803090B0C03A0A29E03A4A7A403A9ABA7038B8D8903888A850397999503"
        $"D2D5CE035B5E592408052020CBFA20CBFACBFA20CBFA20200211B85BB5ACB855"
        $"B453B768B5A6B48BB593B57EB59AB48BB593B493B613B493B613B493B613B40E"
        $"B623B40EB623B403BD19B40DCB04B406C40FB40DCB04B46CCACFB46CCACFBBF7"
        $"CB0BCB12CACEC387CB00CB12CACECB70CB03CB70CB03CB78C40ECB70B626CB7C"
        $"BD19CB70B626CAEBB60FCAEBB60FCAEBB60FCAEFB593CAEFB593C9FDB59AC722"
        $"B5ACC817B5A6C726B453C518B5904DB406C49AB53AC32BB523C31DB3CFC1DDB5"
        $"D6BFE0B56043B3B4BEFCB4E7BD43B5A6BDB1B3F7BC80B456BA66B590BB4FB484"
        $"BA91B4060207B85BB5ACB87CB65CB855B453BA66B590BA91B406BB4FB484BD43"
        $"B5A6BC80B456BD43B5A6BD31B60CBD31B60CBD08B6C1BCC0B82DBCE9B777BB87"
        $"B887BA61B6A2BAF6B77BBAAAB7E6B8B2B7BFB99FB8D5B899B70D000ABD43B5A6"
        $"BD43B5A6BDB1B3F7BFE0B560BEFCB4E743B3B4C32BB523C1DDB5D6C31CB60CC2"
        $"CAB7D4C300B6F3C2B7B760C27BB5FDC28FB674C227B6C4C1A4B861C1EFB796C0"
        $"6FB83EBFA7B61CC00DB70FBF98B736BDF0B87BBF00B81BBD8BB7B9BD31B60C3A"
        $"B6E1BD31B60CBD43B5A6BD43B5A6BD43B5A60003BE15B5B3BE15B5B3BDBAB64D"
        $"BE09B788BDB6B6EABF40B7E5BE15B5B3BF75B501BE15B5B30202C0ACB5B345B5"
        $"1EC025B64AC175B788C095B7BCC1EBB6F00204B493B613B500BC33B55DB632B7"
        $"BCB690B6F3B670B6DCB697B51AB6B5B5FAB69EB4F5BCA925C892B53AC29FB3B8"
        $"C28B0204C837B676C8EFB688C90DB60ACAEBB60FCA04B626CA8CBC27CA8FC871"
        $"CBACC26ECA30C28BCA63B6BBCA94BCA0C9ABB69E0206C32BB523C31CB60CC31D"
        $"B3CFC518B590C49AB53A4DB406C722B5ACC726B453C702B65BC6CAB7BBC6E5B7"
        $"0AC5D7B8D5C51EB6A3C4D9B7E5C4BBB768C2CAB7D4C342B906C300B6F30205B4"
        $"8BB593B48BB593B57EB59AB85BB5ACB768B5A6B87CB65CB8B2B7BFB899B70DB8"
        $"63B757B7BCB690B810B6F3B6F3B670B493B613B55DB632B493B6130205C722B5"
        $"ACC702B65BC817B5A6CAEFB593C9FDB59ACAEFB593CAEBB60FCAEBB60FCA04B6"
        $"26C837B676C90DB60AC796B6AFC6CAB7BBC73AB747C6E5B70A0202BE15B5B3BD"
        $"BAB64DBF75B501BE09B788BF40B7E5BDB6B6EA0202C0ACB5B3C025B64A45B51E"
        $"C175B788C1EBB6F0C095B7BC0206B40EB623B403BD19B40EB623B493B613B493"
        $"B613B500BC3325C892B3B8C28BB50AC92CB51ECA61B516C9C7B4F3CA7DB46CCA"
        $"CF24CAB4B46CCACFB40DCB04B40DCB04B406C40F0206CAEBB60FCA8CBC27CAEB"
        $"B60FCB70B626CB70B626CB7CBD19CB70CB03CB78C40ECB70CB03CB12CACECB12"
        $"CACECAE5CAB4CA5DCA61CA8ACA7DCA6AC9BBCA8FC871CA7CC917CBACC26E0212"
        $"BCC0B82DBB87B887BCE9B777BD31B60CBD08B6C13AB6E1BDF0B87BBD8BB7B9BD"
        $"8FB8B5BCC8B927BD2BB8EDBC51B959BB6731BBDCB98F32BA16B72DBA42B77FB9"
        $"0AB72DBA42B73BBAB8B73BBAB8B7E8BAE1B9F7BB5BB947BB33B904BB92B730BC"
        $"4FB6A3BA94B79BBC58B8D4BC74B86CBC6AB878BCC6B76FBD46B755BCB5B7DA40"
        $"B71CC4C9B747C25AB6DEC56CB670C6B3B6A7C60DB627C77D25C892B5F0C85FB5"
        $"3AC29FB51AB6B5B4F5BCA9B5FAB69EB7BCB690B6DCB697B810B6F3B8B2B7BFB8"
        $"63B757B99FB8D5BA61B6A2BAAAB7E6BAF6B77B0205BFA7B61CBF98B736C00DB7"
        $"0FC1A4B861C06FB83EC1A4B861C188B8BBC188B8BBBFF2B8DEBCC8B927BE5DB9"
        $"0ABD2BB8EDBDF0B87BBD8FB8B5BF00B81B0016C1A4B861C1A4B861C1EFB796C2"
        $"7BB5FDC227B6C4C28FB674C2CAB7D4C2B7B760C342B906C51EB6A3C4BBB768C4"
        $"D9B7E5C6CAB7BBC5D7B8D5C73AB747C837B676C796B6AFC8EFB688CA63B6BBC9"
        $"ABB69ECA94BCA0CA8FC871CA30C28BC41FC832B73CC84BBDACC875B73CC84BB7"
        $"07C7EDB707C7EDB81DC733B8BBC4BAB868C5EAB98AC47FBB2BC40EBA5BC442BD"
        $"59C420C1B3C41FBF85C424C18DC3FCC11FC390C144C3B5BFD5C2A3BC57C314BD"
        $"DFC353BDB5C29EBF8FC09BBEF0C20DBFA8BF35C12DBE38C367BF55C27ABD3BC5"
        $"18BB37C384BBC2C68EBB42C97FBB3DC806BB44C8FCBAEAC7EABA5BC876BA9BC5"
        $"E6B979C188B8BBC3C7B891C188B8BBC1A4B861C1A4B861C1A4B8610004C4C9BC"
        $"F1C4C9BCF1C49DBD2EC41CBDE4C447BDA7C55CBDF5C7E0BDE4C69FBDF5C76DBC"
        $"83C4C9BCF1C5E9BCDBC4C9BCF10407FA3EC29EC323C29BC3A6C29EC428C29EC4"
        $"28C40BC428C853C42AC6E7C42AC853C42AC856C3A6C853C323C853C323C6E6C3"
        $"23C29EC323C40AC323C29EC3230203B9C3C539BB2BC52CB9C3C579B9C5C63DB9"
        $"C5C5FDBB42C629BDFDC53D3AC703BC93C52E0212BCC8B927BC51B959BE5DB90A"
        $"C188B8BBBFF2B8DEC3C7B891C7EABA5BC5E6B979C73633C518BB37C5CDBAFFC3"
        $"84BBC2C12DBE38C27ABD3BC367BF55BF8FC09BBFA8BF35BEF0C20DBC57C314BD"
        $"B5C29EBC32C334BBC2C390BBE7C372BB9CC3B0BB2BC40EBB51C3EFBA5BC442B8"
        $"BBC4BAB98AC47FB988C123BF04BC52BCF5BF21BB87BDECB71CC4C9B91CC18BB7"
        $"47C25AB76FBD46B7DA40B80FBD83B92FBE39B898BDECB93EBDA4B92DBC79B93E"
        $"BD0F30BC32B9F7BB5BB9C5BBA2BA5BBB1EBAEDBA66BAADBACABB0CBA3EBB6731"
        $"BB49B9EEBBDCB98F0203B72DBA42B86DBA48B77FB90ABB673132BA16BB49B9EE"
        $"BAEDBA66BB0CBA3EB9ADBA520204B72DBA42B72DBA42B86DBA48BAEDBA66B9AD"
        $"BA52BAADBACAB9F7BB5BBA5BBB1EB947BB33B73BBAB8B7E8BAE1B73BBAB80203"
        $"C7EABA5BC73633C876BA9BC97FBB3DC8FCBAEAC806BB44C518BB37C68EBB42C5"
        $"CDBAFF0204B730BC4FB79BBC58B6A3BA94B9F7BB5BB904BB92B9C5BBA2B92DBC"
        $"7930BC32B92DBC79B8D4BC74B8D4BC74B86CBC6A0204B8D4BC74B878BCC6B8D4"
        $"BC74B92DBC79B92DBC79B93EBD0FB92FBE39B93EBDA4B898BDECB76FBD46B80F"
        $"BD83B755BCB50205B71CC4C9B6DEC56CB91CC18BBF04BC52BB87BDECBCF5BF21"
        $"B8BBC4BAB988C123B868C5EAB707C7EDB81DC733B6E1C79EB670C6B329C702B6"
        $"A7C60D0203C4C9BCF1C49DBD2EC5E9BCDBC7E0BDE4C76DBC83C69FBDF5C41CBD"
        $"E4C55CBDF5C447BDA70203BBC2C390BD8CC3A2BBE7C372BC57C314BC32C334BD"
        $"DFC353C11FC390BFD5C2A3BF55C3970204C29EC323C29EC323C40AC323C853C3"
        $"23C6E6C323C853C323C856C3A6C856C3A6C66CC3A6C29BC3A6C485C3A6C29BC3"
        $"A60204BB2BC40EBD59C420BB51C3EFBBC2C390BB9CC3B0BD8CC3A2C11FC390BF"
        $"55C397C144C3B5C1B3C41FC18DC3FCBF85C4240204C29BC3A6C29BC3A6C485C3"
        $"A6C856C3A6C66CC3A6C856C3A6C853C42AC853C42AC6E7C42AC29EC428C40BC4"
        $"28C29EC4280203B9C3C539B9C3C579BB2BC52CBDFDC53DBC93C52E3AC703B9C5"
        $"C63DBB42C629B9C5C5FD020725C892B50AC92CB5F0C85FB670C6B3B627C77D29"
        $"C702B707C7EDB6E1C79EB707C7EDB73CC84BB73CC84BBDACC875CA8FC871C41F"
        $"C832CA7CC917CA5DCA61CA6AC9BBC347CA6AB51ECA61BC34CA77B516C9C70204"
        $"B46CCACFBBF7CB0B24CAB4B51ECA61B4F3CA7DBC34CA77CA5DCA61C347CA6ACA"
        $"8ACA7DCB12CACECAE5CAB4C387CB001E0A00020001000A010102000A02030304"
        $"05000A020106000A020107000A030108000A040109000A04010A000A05010B00"
        $"0A06010C000A07010D000A07010E000A08010F000A090110000A0A0411121314"
        $"000A0B0115000A0C0116000A0D0117000A0E0118000A0F0119000A10011A000A"
        $"11011B000A12011C000A13011D000A14011E000A15011F000A160120000A1701"
        $"21000A180122000A19012300"
};

→アプリをシステムに登録するときに必要な情報(アイコン等)です。

-

2). レシピファイル:

> cat ~/Git/haikuports/app-editors/featherpad/featherpad-0.9.2.recipe

-

3). パッチファイル:

なし

-

もし使うときは:

> cd ~/Git/haikuports/app-editors/featherpad/
> mkdir patches
> ls -1
additional-files
featherpad-0.9.2.recipe
patches
work-0.9.2

> ls ~/Git/haikuports/app-editors/featherpad/patches/featherpad-0.9.2.patchset

-

-


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

-

5.「FeatherPad-1.0.1」を現在の「qmake」のレシピでパッケージ化 (失敗例):

-


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

→レシピファイルは移植されている「featherpad-0.9.2.recipe」を利用するので、「qmake」を使ったビルドのやり方になります。

-

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

https://github.com/tsujan/FeatherPad/archive/refs/tags/V1.0.1.tar.gz

$ sha256sum FeatherPad-1.0.1.tar.gz
62bcb8ceb788a1626c41ee7dc3f3fbebf73b82db31cf76708a79073da0f04414  FeatherPad-1.0.1.tar.gz

-

(2). コピーして、レシピファイルの名前を変更:
> cd ~/Git/haikuports/app-editors/featherpad/
> cp featherpad-0.9.2.recipe featherpad-1.0.1.recipe
> mv featherpad-0.9.2.recipe featherpad-0.9.2.recipe-ORG
> ls -1
additional-files
featherpad-0.9.2.recipe-ORG
featherpad-1.0.1.recipe
patches

-

(3). レシピファイル「featherpad-1.0.1.recipe」の修正:
> lpe ~/Git/haikuports/app-editors/featherpad/featherpad-1.0.1.recipe
SOURCE_URI="https://github.com/tsujan/FeatherPad/archive/V$portVersion.tar.gz"
CHECKSUM_SHA256="f3ed0bc17b1679e8498d3e453209055274a9f89b1fec01a1201389365d47e67c"

↓ 置換

SOURCE_URI="https://github.com/tsujan/FeatherPad/archive/refs/tags/V$portVersion.tar.gz"
CHECKSUM_SHA256="62bcb8ceb788a1626c41ee7dc3f3fbebf73b82db31cf76708a79073da0f04414"

-

依存パッケージの追加:
REQUIRES="
:
        lib:libhunspell$secondaryArchSuffix  ←(最後に追記)
        "

BUILD_REQUIRES="
:
        devel:libhunspell$secondaryArchSuffix  ←(最後に追記)
        "

→正しい記述なのかはわかりません。

-

依存パッケージのライブラリを確認:
> ls -1 /boot/system/lib/libhunspell*
/boot/system/lib/libhunspell-1.7.so.0
/boot/system/lib/libhunspell-1.7.so.0.0.1

> ls -1 /boot/system/develop/lib/libhunspell*
/boot/system/develop/lib/libhunspell-1.7.so
/boot/system/develop/lib/libhunspell-1.7.so.0
/boot/system/develop/lib/libhunspell-1.7.so.0.0.1

→上記の記述と連動していると思われます。

-

(5). 修正したレシピファイル「featherpad-1.0.1.recipe」を確認:
> cat ~/Git/haikuports/app-editors/featherpad/featherpad-1.0.1.recipe
:
SOURCE_URI="https://github.com/tsujan/FeatherPad/archive/refs/tags/V$portVersion.tar.gz"
CHECKSUM_SHA256="62bcb8ceb788a1626c41ee7dc3f3fbebf73b82db31cf76708a79073da0f04414"
SOURCE_FILENAME="FeatherPad-$portVersion-tar.gz"
SOURCE_DIR="FeatherPad-$portVersion"
ADDITIONAL_FILES="featherpad.rdef.in"

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

PROVIDES="
    featherpad$secondaryArchSuffix = $portVersion
    app:FeatherPad$secondaryArchSuffix = $portVersion
    "

REQUIRES="
    haiku$secondaryArchSuffix
    lib:libGL$secondaryArchSuffix
    lib:libQt5Core$secondaryArchSuffix
    lib:libQt5Gui$secondaryArchSuffix
    lib:libQt5Network$secondaryArchSuffix
    lib:libQt5PrintSupport$secondaryArchSuffix
    lib:libQt5Svg$secondaryArchSuffix
    lib:libQt5Widgets$secondaryArchSuffix
    lib:libz$secondaryArchSuffix
    lib:libhunspell$secondaryArchSuffix   ←(追加の依存: 正しい記述かは疑問?)
    "

BUILD_REQUIRES="
    haiku${secondaryArchSuffix}_devel
    devel:libGL$secondaryArchSuffix
    devel:libQt5Core$secondaryArchSuffix
    devel:libQt5Gui$secondaryArchSuffix
    devel:libQt5Network$secondaryArchSuffix
    devel:libQt5PrintSupport$secondaryArchSuffix
    devel:libQt5Svg$secondaryArchSuffix
    devel:libQt5Widgets$secondaryArchSuffix
    devel:libz$secondaryArchSuffix
    devel:libhunspell$secondaryArchSuffix  ←(追加の依存: 正しい記述かは疑問?)
    "

BUILD_PREREQUIRES="
    cmd:find
    cmd:g++$secondaryArchSuffix
    cmd:ld$secondaryArchSuffix
    cmd:lrelease$secondaryArchSuffix >= 5
    cmd:make
    cmd:pkg_config$secondaryArchSuffix
    cmd:qmake$secondaryArchSuffix >= 5   ←(qmake の使用)
    "

BUILD()
{
    qmake PREFIX=$appsDir/FeatherPad
    make $jobArgs
}

以下略

-


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

-


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

> cd ~/Git/haikuporter/
~/Git/haikuporter> hp featherpad

:

Validating checksum of FeatherPad-1.0.1-tar.gz
Unpacking source of FeatherPad-1.0.1-tar.gz
Initialized empty Git repository in /boot/home/Git/haikuports/app-editors/featherpad/work-1.0.1/sources/FeatherPad-1.0.1/.git/

Fetching package for devel:libqt5core ...
Fetching package for devel:libhunspell ...
*** Failed to find a match for "devel:libhunspell": Name not found   ←(エラー)
Error: unable to resolve required packages for build for featherpad-1.0.1
Error:  dependency-infos:
Error:          /boot/home/Git/haikuports/repository/featherpad-1.0.1.DependencyInfo
Error:  repositories:
Error:          ['/boot/home/Git/haikuports/packages', '/boot/system/packages']
Error: 

→依存の「hunspell」が見つからないようです。

-


4). 確認:

-

(1). リポジトリの情報を確認:
> ls -1 /boot/home/Git/haikuports/repository/hun*
hunspell_devel-1.7.0.DependencyInfo
hunspell_source-1.7.0.DependencyInfo
hunspell-1.7.0.DependencyInfo

> ls -1 /boot/system/packages/hunspell*
/boot/system/packages/hunspell_devel-1.7.0-1-x86_64.hpkg
/boot/system/packages/hunspell-1.7.0-1-x86_64.hpkg

→ファイルは(インストールしているので)存在しています。

-

(2). リポジトリの情報の表示:
> cat /boot/home/Git/haikuports/repository/hunspell-1.7.0.DependencyInfo
{
    "architecture" : "x86_64",
    "buildPrerequires" : [
        "cmd:autoconf",
        "cmd:gcc",
        "cmd:ld",
        "cmd:libtoolize",
        "cmd:make"
    ],
    "buildRequires" : [
        "haiku_devel",
        "devel:libiconv",
        "devel:libintl",
        "devel:libz"
    ],
    "name" : "hunspell",
    "provides" : [
        "hunspell = 1.7.0",
        "cmd:affixcompress = 1.7.0",
        "cmd:hunspell = 1.7.0",
        "cmd:hunspell_analyze = 1.7.0",
        "cmd:hunspell_chmorph = 1.7.0",
        "cmd:hunspell_munch = 1.7.0",
        "cmd:hunspell_unmunch = 1.7.0",
        "cmd:hunzip = 1.7.0",
        "cmd:hzip = 1.7.0",
        "cmd:ispellaff2myspell = 1.7.0",
        "cmd:makealias = 1.7.0",
        "cmd:wordforms = 1.7.0",
        "cmd:wordlist2hunspell = 1.7.0",
        "lib:libhunspell_1.7 = 0.0.1 compat >= 0"
    ],
    "requires" : [
        "haiku",
        "lib:libiconv",
        "lib:libintl",
        "lib:libz"
    ],
    "testRequires" : [],
    "version" : "1.7.0"
}
> hunspell --version
@(#) International Ispell Version 3.2.06 (but really Hunspell 1.7.0) ←(怪しげな表示?)

→ライブラリと言うよりも、アプリとしてインストールされています。バージョンが 2つあるのが怪しいところ。 この辺りが影響しているのかも。

-


5). ファイルの修正がされている状態:

> lpe ~/Git/haikuports/app-editors/featherpad/featherpad-1.0.1.recipe
REQUIRES="
:
        lib:hunspell$secondaryArchSuffix  ←(追加パッケージ)
        "

BUILD_REQUIRES="
:
        devel:hunspell$secondaryArchSuffix  ←(追加パッケージ)
        "

-


6). わざとパッケージを削除して、自動で依存パッケージがインストールされるかを確認:

-

(1). 依存パッケージがインストールされていないことを確認:
> pkgman uninstall hunspell_devel

> pkgman search hunspell
Status  Name                Description                                                              
-----------------------------------------------------------------------------------------------------
S       enchant             Generic spell-checking dictionary library                                
S       hunspell            Spellchecker, forked from myspell                                        
        hunspell_devel      Spellchecker, forked from myspell (development files)                    
        hunspell_source     Spellchecker, forked from myspell (source files)               

-

(2). パッケージ化を実行
> cd ~/Git/haikuporter/
~/Git/haikuporter> hp featherpad
:
spellChecker.cpp:27:10: fatal error: hunspell/hunspell.hxx: No such file or directory
 #include <hunspell/hunspell.hxx>
          ^~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
Makefile:1370: recipe for target 'spellChecker.o' failed
make[1]: *** [spellChecker.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory '/sources/FeatherPad-1.0.1/featherpad'
Makefile:46: recipe for target 'sub-featherpad-make_first' failed
make: *** [sub-featherpad-make_first] Error 2
Warning: Command '['bash', '-c', '. /wrapper-script']' returned non-zero exit status 2.
Error: Build has failed - stopping.

→自動で依存パッケージの「hunspell_devel」はインストールされませんでした。 「hunspell/hunspell.hxx」がないと言っています。

-

-

レシピファイルを使ったパッケージ化だと、ビルド以前の「依存パッケージの認識」が厳しいみたい

→認識が通らないとビルドで失敗します。パッケージ化は無理なので断念。

-

-


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

-

6.「FeatherPad-1.0.1」を「cmake」のレシピでトライ (失敗例):

-


1). ビルドを「qmake」から「cmake」で行う場合のレシピ:

> cd ~/Git/haikuports/app-editors/featherpad/
> cp featherpad-1.0.1.recipe featherpad-1.0.1.recipe-ORG
> lpe ~/Git/haikuports/app-editors/featherpad/featherpad-1.0.1.recipe
:
SOURCE_URI="https://github.com/tsujan/FeatherPad/archive/refs/tags/V$portVersion.tar.gz"
CHECKSUM_SHA256="62bcb8ceb788a1626c41ee7dc3f3fbebf73b82db31cf76708a79073da0f04414"
SOURCE_FILENAME="FeatherPad-$portVersion-tar.gz"
SOURCE_DIR="FeatherPad-$portVersion"
ADDITIONAL_FILES="featherpad.rdef.in"

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

PROVIDES="
    featherpad$secondaryArchSuffix = $portVersion
    app:FeatherPad$secondaryArchSuffix = $portVersion
    "

REQUIRES="
    haiku$secondaryArchSuffix
    lib:libGL$secondaryArchSuffix
    lib:libQt5Core$secondaryArchSuffix
    lib:libQt5Gui$secondaryArchSuffix
    lib:libQt5Network$secondaryArchSuffix
    lib:libQt5PrintSupport$secondaryArchSuffix
    lib:libQt5Svg$secondaryArchSuffix
    lib:libQt5Widgets$secondaryArchSuffix
    lib:libz$secondaryArchSuffix
    lib:libhunspell$secondaryArchSuffix   ←(追加の依存: 正しい記述かは疑問?)
    "

BUILD_REQUIRES="
    haiku${secondaryArchSuffix}_devel
    devel:libGL$secondaryArchSuffix
    devel:libQt5Core$secondaryArchSuffix
    devel:libQt5Gui$secondaryArchSuffix
    devel:libQt5Network$secondaryArchSuffix
    devel:libQt5PrintSupport$secondaryArchSuffix
    devel:libQt5Svg$secondaryArchSuffix
    devel:libQt5Widgets$secondaryArchSuffix
    devel:libz$secondaryArchSuffix
    devel:libhunspell$secondaryArchSuffix  ←(追加の依存: 正しい記述かは疑問?)
    "

BUILD_PREREQUIRES="
    cmd:find
    cmd:g++$secondaryArchSuffix
    cmd:ld$secondaryArchSuffix
    cmd:lrelease$secondaryArchSuffix >= 5
    cmd:make
    cmd:pkg_config$secondaryArchSuffix
    cmd:cmake$secondaryArchSuffix     ←(cmake の使用)
    "

BUILD()                    ←(正しい記述かは疑問?)
{
        cmake -B build -S . -DCMAKE_BUILD_TYPE=Release \
            -DCMAKE_INSTALL_PREFIX=$prefix
        make -C build $jobArgs
}

INSTALL()
{
    make install

    local APP_SIGNATURE="application/x-vnd-featherpad"
    local MAJOR="`echo "$portVersion" | cut -d. -f1`"
    local MIDDLE="`echo "$portVersion" | cut -d. -f2`"
    local MINOR="`echo "$portVersion" | cut -d. -f3`"
    local LONG_INFO="$SUMMARY"

    sed \
        -e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \
        -e "s|@MAJOR@|$MAJOR|" \
        -e "s|@MIDDLE@|$MIDDLE|" \
        -e "s|@MINOR@|$MINOR|" \
        -e "s|@LONG_INFO@|$LONG_INFO|" \
        $portDir/additional-files/featherpad.rdef.in > featherpad.rdef

    addResourcesToBinaries featherpad.rdef $appsDir/FeatherPad/FeatherPad
    addAppDeskbarSymlink $appsDir/FeatherPad/FeatherPad
}

-


2). cmake を使ったレシピがうまく動くかを確認:

-

(1). レシピファイルを修正:
> lpe ~/Git/haikuports/app-editors/featherpad/featherpad-1.0.1.recipe

→「INSTALL()」以降を削除

-

(2). 「work-1.0.1」フォルダを削除

-

(3). アプリのパッケージ化を実行:
> cd ~/Git/haikuporter/
> hp featherpad
:
Validating checksum of FeatherPad-1.0.1-tar.gz
Unpacking source of FeatherPad-1.0.1-tar.gz
Initialized empty Git repository in /boot/home/Git/haikuports/app-editors/featherpad/work-1.0.1/sources/FeatherPad-1.0.1/.git/
Fetching package for devel:libhunspell ...
*** Failed to find a match for "devel:libhunspell": Name not found
Error: unable to resolve required packages for build for featherpad-1.0.1

→依存の記述のところでエラー。見つからないみたい。

-

(4). 追加した依存の行を削除:
lib:libHUNSPELL$secondaryArchSuffix

devel:libHUNSPELLl$secondaryArchSuffix

-

(5). レシピの「BUILD()」以降を削除、「work-1.0.1」フォルダを削除して再実行:
> cd ~/Git/haikuporter/
~/Git/haikuporter> hp featherpad
:

}
provides {
        featherpad = 1.0.1
        app:featherpad = 1.0.1
}
requires {
        haiku >= r1~beta3_hrev55576-1
        lib:libgl >= 1.0.0
        lib:libqt5core >= 5.15.2
        lib:libqt5gui >= 5.15.2
        lib:libqt5network >= 5.15.2
        lib:libqt5printsupport >= 5.15.2
        lib:libqt5svg >= 5.15.2
        lib:libqt5widgets >= 5.15.2
        lib:libz >= 1.2.11
}
urls {
        "https://github.com/tsujan/FeatherPad"
}
source-urls {
# Download
        "https://github.com/tsujan/FeatherPad/archive/refs/tags/V1.0.1.tar.gz"
# Location 2
        "https://ports-mirror.haiku-os.org/featherpad/V1.0.1.tar.gz"
}
mimesetting files for package featherpad-1.0.1-1-x86_64.hpkg ...
creating package featherpad-1.0.1-1-x86_64.hpkg ...
:
waiting for build package featherpad-1.0.1-1 to be deactivated
grabbing featherpad-1.0.1-1-x86_64.hpkg and moving it to /boot/home/Git/haikuports/packages/featherpad-1.0.1-1-x86_64.hpkg

→その他の依存関連のバージョンはちゃんと表示されています。参考になります。

-

(6). 上の状態で、依存のリストを追加すると、ビルドの指定を削除してもパッケージ化でエラー:
:
Skipping download of source for FeatherPad-1.0.1-tar.gz
Skipping checksum validation of FeatherPad-1.0.1-tar.gz
Skipping unpack of FeatherPad-1.0.1-tar.gz
unsetting build flag, as recipe is newer
Fetching package for devel:libhunspell ...
*** Failed to find a match for "devel:libhunspell": Name not found
Error: unable to resolve required packages for build for featherpad-1.0.1
Error:  dependency-infos:
Error:          /boot/home/Git/haikuports/repository/featherpad-1.0.1.DependencyInfo
Error:  repositories:
Error:          ['/boot/home/Git/haikuports/packages', '/boot/system/packages']
Error: 

-

(7). レシピファイルを使ったパッケージ化だと、ビルド以前の「依存パッケージの認識」が厳しいみたい

→認識が通らないとビルドで失敗します。パッケージ化は無理なので断念。

-

-


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

-

7. 参考: もし、パッケージ化に成功したときのインストールのやり方は:

-


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

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

-


2). 確認:

> ls -1 ~/Git/haikuports/packages/
featherpad-1.0.1-1-x86_64.hpkg  ←(追加)

-


3). インストール:

> pkgman install ~/Git/haikuports/packages/featherpad-1.0.1-1-x86_64.hpkg

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

-

-


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

-

8.「FeatherPad-1.0.1」を手動で「qmake」を使いインストール (失敗例):

-

レシピファイルの「qmake」を使ったパッケージ化だとエラーするので、手動でqmake を実行してみました:

-

1). 手動で qmake を実行する場合の流れ:

> qmake && make
> make install

-

2). 依存の「hunspell_devel」がインストールされている状態で確認:

> pkgman search hunspell
S       hunspell            Spellchecker, forked from myspell                                        
S       hunspell_devel      Spellchecker, forked from myspell (development files)                    
        hunspell_source     Spellchecker, forked from myspell (source files)   

→「hunspell_devel」がインストールされています。

-

3). ビルドの実行:

> cd ~/Git/haikuports/app-editors/featherpad/work-1.0.1/sources/FeatherPad-1.0.1/
~/Git/haikuports/app-editors/featherpad/work-1.0.1/sources/FeatherPad-1.0.1> qmake && make

Info: creating stash file /boot/home/Git/haikuports/app-editors/featherpad/work-1.0.1/sources/FeatherPad-1.0.1/.qmake.stash
cd featherpad/ && ( test -e Makefile || /bin/qmake -o Makefile /boot/home/Git/haikuports/app-editors/featherpad/work-1.0.1/sources/FeatherPad-1.0.1/featherpad/featherpad.pro ) && make -f Makefile 
make[1]: Entering directory '/boot/home/Git/haikuports/app-editors/featherpad/work-1.0.1/sources/FeatherPad-1.0.1/featherpad'
/boot/system/bin/lrelease data/translations/featherpad_ar_DZ.ts -qm data/translations/translations/featherpad_ar_DZ.qm
Updating 'data/translations/translations/featherpad_ar_DZ.qm'...
     345 件のメッセージを翻訳しました(完了 345 件、未完了 0 件)
     89 件の未翻訳のソーステキストを無視しました
:
/boot/system/develop/tools/bin/../lib/gcc/x86_64-unknown-haiku/8.3.0/../../../../x86_64-unknown-haiku/bin/ld: cannot find -lhunspell
collect2: error: ld returned 1 exit status
Makefile:438: recipe for target 'FeatherPad' failed
make[1]: *** [FeatherPad] Error 1
make[1]: Leaving directory '/boot/home/Git/haikuports/app-editors/featherpad/work-1.0.1/sources/FeatherPad-1.0.1/featherpad'
Makefile:46: recipe for target 'sub-featherpad-make_first' failed
make: *** [sub-featherpad-make_first] Error 2

→「hunspell」がロードできないみたい。

-

qmake だとエラー時の情報が少ないので、cmake を試しました:

-

-


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

-

9.「FeatherPad-1.0.1」を手動で「cmake」を使いインストール (失敗例):

-

依存する「hunspell_devel」がインストールされていない場合です:

> pkgman search HUNSPELL

Status  Name                Description                                                              
-----------------------------------------------------------------------------------------------------
S       enchant             Generic spell-checking dictionary library                                
S       hunspell            Spellchecker, forked from myspell                                        
        hunspell_devel      Spellchecker, forked from myspell (development files)                    
        hunspell_source     Spellchecker, forked from myspell (source files)                          

→「hunspell_devel」はインストールされていません。

-

ビルドの実行:

> cd ~/Git/haikuports/app-editors/featherpad/work-1.0.1/sources/FeatherPad-1.0.1/
> mkdir build && cd build
build> cmake ..
-- The C compiler identification is GNU 8.3.0
-- The CXX compiler identification is GNU 8.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found PkgConfig: /bin/pkg-config (found version "0.29.2") 

CMake Error at /boot/system/data/cmake/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find HUNSPELL: Found unsuitable version "", but required is at
  least "1.6" (found HUNSPELL_LIBRARIES-NOTFOUND)
Call Stack (most recent call first):
  /boot/system/data/cmake/Modules/FindPackageHandleStandardArgs.cmake:592 (_FPHSA_FAILURE_MESSAGE)
  cmake/Modules/FindHUNSPELL.cmake:13 (find_package_handle_standard_args)
  featherpad/CMakeLists.txt:14 (find_package)

-- Configuring incomplete, errors occurred!
See also "/boot/home/Git/haikuports/app-editors/featherpad/work-1.0.1/sources/FeatherPad-1.0.1/build/CMakeFiles/CMakeOutput.log".

→「hunspell」をインストールして、「hunspell_devel」をインストールしない場合だと、 「HUNSPELL」が「1.6」以上ではない、不適切なバージョンとして認識されました。

-

-


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

-

10.「FeatherPad-1.0.1」を手動で「cmake」を使いインストール (成功例):

-

依存の「hunspell_devel」を事前にインストールしておく場合です:

-

1). 手動で cmake を実行する場合の流れ:

> mkdir build && cd build
> cmake ..
> make
> make install

-

2). cmake のインストール:

> pkgman install cmake

> cmake --version
cmake version 3.21.3

-

3). 手動でビルドするなら、レシピファイルを修正して行うときれいに作業できます:

> lpe ~/Git/haikuports/app-editors/featherpad/featherpad-1.0.1.recipe

-

下記を追加していたら、その行を削除:
REQUIRES="
:
        lib:hunspell$secondaryArchSuffix  ←(追加パッケージ)
        "

BUILD_REQUIRES="
:
        devel:hunspell$secondaryArchSuffix  ←(追加パッケージ)
        "

-

「BUILD()」以降の行をバッサリ削除

-

レシピファイルの確認:
> lpe ~/Git/haikuports/app-editors/featherpad/featherpad-1.0.1.recipe
SUMMARY="A lightweight Qt5 plain-text editor for Linux"
DESCRIPTION="FeatherPad (by Pedram Pourang, a.k.a. Tsu Jan \
<tsujan2000@gmail.com>) is a lightweight Qt5 plain-text editor for Linux \
It is independent of any desktop environment and has: \
* Drag-and-drop support, including tab detachment and attachment;
* X11 virtual desktop awareness (using tabs on current desktop but opening \
a new window on another);
* An optionally permanent search-bar with a different search entry for each tab;
* Instant highlighting of found matches when searching;
* A docked window for text replacement;
* Support for showing line numbers and jumping to a specific line;
* Automatic detection of text encoding as far as possible and optional \
saving with encoding;
* Syntax highlighting for common programming languages;
* Ability to open URLs with appropriate applications;
* Session management;
* Side-pane mode;
* Auto-saving;
* Printing;
* Text zooming;
* Appropriate but non-interrupting prompts;
* Haiku OS support; and
* Other features that can be found in its settings,
on its menus or when it is actually used."
HOMEPAGE="https://github.com/tsujan/FeatherPad"
COPYRIGHT="2016, 2018 Pedram Pourang"
LICENSE="GNU GPL v3"
REVISION="1"
SOURCE_URI="https://github.com/tsujan/FeatherPad/archive/refs/tags/V$portVersion.tar.gz"
CHECKSUM_SHA256="62bcb8ceb788a1626c41ee7dc3f3fbebf73b82db31cf76708a79073da0f04414"
SOURCE_FILENAME="FeatherPad-$portVersion-tar.gz"
SOURCE_DIR="FeatherPad-$portVersion"
ADDITIONAL_FILES="featherpad.rdef.in"

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

PROVIDES="
    featherpad$secondaryArchSuffix = $portVersion
    app:FeatherPad$secondaryArchSuffix = $portVersion
    "

REQUIRES="
    haiku$secondaryArchSuffix
    lib:libGL$secondaryArchSuffix
    lib:libQt5Core$secondaryArchSuffix
    lib:libQt5Gui$secondaryArchSuffix
    lib:libQt5Network$secondaryArchSuffix
    lib:libQt5PrintSupport$secondaryArchSuffix
    lib:libQt5Svg$secondaryArchSuffix
    lib:libQt5Widgets$secondaryArchSuffix
    lib:libz$secondaryArchSuffix
    "

BUILD_REQUIRES="
    haiku${secondaryArchSuffix}_devel
    devel:libGL$secondaryArchSuffix
    devel:libQt5Core$secondaryArchSuffix
    devel:libQt5Gui$secondaryArchSuffix
    devel:libQt5Network$secondaryArchSuffix
    devel:libQt5PrintSupport$secondaryArchSuffix
    devel:libQt5Svg$secondaryArchSuffix
    devel:libQt5Widgets$secondaryArchSuffix
    devel:libz$secondaryArchSuffix
    "

BUILD_PREREQUIRES="
    cmd:find
    cmd:g++$secondaryArchSuffix
    cmd:ld$secondaryArchSuffix
    cmd:lrelease$secondaryArchSuffix >= 5
    cmd:make
    cmd:pkg_config$secondaryArchSuffix
    cmd:cmake$secondaryArchSuffix
    "

→上記の内容ですべて上書きしてもOK です。

-

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

> rm -r /boot/home/Git/haikuports/app-editors/featherpad/download
> rm -r /boot/home/Git/haikuports/app-editors/featherpad/work-1.0.1

-

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

> cd ~/Git/haikuporter/
~/Git/haikuporter> hp featherpad
:
waiting for build package featherpad-1.0.1-1 to be deactivated
grabbing featherpad-1.0.1-1-x86_64.hpkg and moving it to /boot/home/Git/haikuports/packages/featherpad-1.0.1-1-x86_64.hpkg

→パッケージ化はできていないけど、成功したみたいにきれいに終了します。

-

8). 追加すべき「hunspell_devel」がインストールされていることを確認:

> pkgman search hunspell_devel
Status  Name            Description                                          
-----------------------------------------------------------------------------
S       hunspell_devel  Spellchecker, forked from myspell (development files)

-

9). cmake を実行:

> cd ~/Git/haikuports/app-editors/featherpad/work-1.0.1/sources/FeatherPad-1.0.1/
> mkdir build && cd build
build> cmake ..
-- The C compiler identification is GNU 8.3.0
-- The CXX compiler identification is GNU 8.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found PkgConfig: /bin/pkg-config (found version "0.29.2") 
-- Found HUNSPELL: /packages/hunspell-1.7.0-1/.self/develop/lib/libhunspell-1.7.so (found suitable version "1.7.0", minimum required is "1.6") 
-- Configuring done
-- Generating done
-- Build files have been written to: /boot/home/Git/haikuports/app-editors/featherpad/work-1.0.1/sources/FeatherPad-1.0.1/build

→最低限必要なのは「1.6」で、適切なバージョンの「1.7.0」が見つかりました。と表示。 「cmake」だと「hunspell_devel」が認識できました。パッケージ化のスクリプトだと、チェックが厳しいようです。 移植されている「hunspell」は互換バッケージだということもあるみたい。

-

10). make を実行:

build> make
[  1%] Automatic MOC and UIC for target featherpad
[  1%] Built target featherpad_autogen
[  2%] Generating featherpad_zh_TW.qm
Updating '/boot/home/Git/haikuports/app-editors/featherpad/work-1.0.1/sources/FeatherPad-1.0.1/build/featherpad/featherpad_zh_TW.qm'...
     384 件のメッセージを翻訳しました(完了 383 件、未完了 1 件)
     50 件の未翻訳のソーステキストを無視しました
:
[ 44%] Generating featherpad_zh_CN.qm
Updating '/boot/home/Git/haikuports/app-editors/featherpad/work-1.0.1/sources/FeatherPad-1.0.1/build/featherpad/featherpad_zh_CN.qm'...
     434 件のメッセージを翻訳しました(完了 434 件、未完了 0 件)
[ 45%] Building CXX object featherpad/CMakeFiles/featherpad.dir/featherpad_autogen/mocs_compilation.cpp.o
[ 46%] Building CXX object featherpad/CMakeFiles/featherpad.dir/main.cpp.o
:
[ 98%] Building CXX object featherpad/CMakeFiles/featherpad.dir/featherpad_autogen/QYFM2Z2WYQ/qrc_fp.cpp.o
[100%] Linking CXX executable featherpad
[100%] Built target featherpad

→make も正常に完了。cmake を使うやり方でうまく行きました。あとは「make install」して、システムに配置するだけです。

-

> cd ~/Git/haikuports/app-editors/featherpad/work-1.0.1/sources/FeatherPad-1.0.1/build/
build> ls
cmake_install.cmake  CMakeCache.txt  CMakeFiles  featherpad  Makefile

build> ls featherpad/
cmake_install.cmake  featherpad_et.qm     featherpad_pl.qm
CMakeFiles           featherpad_fa.qm     featherpad_pt_BR.qm
featherpad           featherpad_fi.qm     featherpad_pt.qm
featherpad_ar_DZ.qm  featherpad_fr.qm     featherpad_ru.qm
featherpad_autogen   featherpad_he.qm     featherpad_si.qm
featherpad_bg.qm     featherpad_hu.qm     featherpad_sk_SK.qm
featherpad_cs.qm     featherpad_id.qm     featherpad_tr.qm
featherpad_cy.qm     featherpad_it.qm     featherpad_uk.qm
featherpad_da.qm     featherpad_ja.qm     featherpad_zh_CN.qm
featherpad_de.qm     featherpad_ko.qm     featherpad_zh_TW.qm
featherpad_el.qm     featherpad_lt.qm     Makefile
featherpad_eo.qm     featherpad_nb_NO.qm
featherpad_es.qm     featherpad_nl.qm

-

11). make install を実行:

build> make install
[  1%] Automatic MOC and UIC for target featherpad
[  1%] Built target featherpad_autogen
Consolidate compiler generated dependencies of target featherpad
[100%] Built target featherpad
Install the project...
-- Install configuration: "Release"
-- Installing: /boot/home/config/non-packaged/apps/FeatherPad/translations/featherpad_ar_DZ.qm
:
-- Installing: /boot/home/config/non-packaged/apps/FeatherPad/translations/featherpad_ja.qm
-- Installing: /boot/home/config/non-packaged/apps/FeatherPad/translations/featherpad_ko.qm
-- Installing: /boot/home/config/non-packaged/apps/FeatherPad/translations/featherpad_lt.qm
:
-- Installing: /boot/home/config/non-packaged/apps/FeatherPad/translations/featherpad_zh_TW.qm

-- Installing: /boot/home/config/non-packaged/apps/FeatherPad/featherpad
-- Installing: /boot/home/config/non-packaged/apps/FeatherPad/data/help
-- Installing: /boot/home/config/non-packaged/apps/FeatherPad/data/help_ja
-- Installing: /boot/home/config/non-packaged/apps/FeatherPad/data/help_pt_BR

→インストール完了。

-


12). これは、「パッケージ化せずにインストールした場合」になります:

→ホームの「/boot/home/config/non-packaged/apps/FeatherPad/」にファイルが配置されます。

-

(1). システムファイル:
> cd /boot/home/config/non-packaged/apps/FeatherPad/
> ls -1
data
featherpad           ←(実行ファイル)
translations
> ls -1 data/
help               ←(日本語のヘルプがないときのヘルプファイル)
help_ja             ←(日本語用のヘルプファイル)
help_pt_BR           ←(ブラジルのポルトガル語用のヘルプファイル)
> ls -1 translations/*ja*
translations/featherpad_ja.qm  ←(日本語の翻訳ファイル)

-

ホームに置かれたことで「ヘルプフィルを個人的な備忘録として使用」できます。

下記の操作で、ヘルプファイルの先頭に「個人的な備忘録」を追記できます:

> lpe ~/config/non-packaged/apps/FeatherPad/data/help_ja 

→「featherpad」の場合はパッケージ化せずに、そのままインストールした方が使い勝手は良いですね。

-

(2). 自動で作られる設定ファイル:
> ls -1 /boot/home/config/settings/featherpad/featherpad/
fp_last_cursor_pos.conf  ←(最後に開いていたウィンドウの情報を保持)
fp.conf            ←(FeatherPad で設定した情報を保持)

-

(3). アプリの起動は、テキストファイルを右クリックでアプリを選択は今のところできません:

初めてのアプリの起動は、ファイルマネージャでクリックを繰り返し:

~/home/ config/ non-packaged/ apps /FeatherPad/ →「featherpad」をダブルクリック→起動

次は、メニュー→「最近使ったドキュメント」→「featherpad」(アイコンに注目)→起動

-

(4). 後で、メニューへの登録や、アイコンの登録を手動で行うやり方を学ぶ必要あり:

レシピファイルを使うときは下記により登録されます。今回は使えません:

addResourcesToBinaries featherpad.rdef $appsDir/FeatherPad/FeatherPad
addAppDeskbarSymlink /boot/home/config/non-packaged/apps/FeatherPad/FeatherPad

-

参考:

Installing applications

和訳

-

-


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

-

11. 「FeatherPad-1.0.1」のバージョンアップにトライで、わかったこと:

-

1). レシピファイルを使った「パッケージ化」は、依存パッケージの「devel:libhunspell」を認識できず、エラー

-

2). 手動で「qmake」を使ってビルドしても、エラー

-

3). 手動で「cmake」を使ってのビルド、およびインストールはできました

→「依存パッケージ」の認識のしかたが違うみたい。

-

「devel:libhunspell」はバージョンを誤認識されやすい、パッケージみたい:

> hunspell --version
@(#) International Ispell Version 3.2.06 (but really Hunspell 1.7.0) ←(怪しげな表示?)

→バージョン「1.6」以上が必要です。

-

-


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

-

12. 追記:「FeatherPad-1.0.1」を現在の「qmake」のレシピでパッケージ化 (失敗例2):

-


1). 依存の「devel:libhunspell」の記述のしかたを見つけました:

-

検索:
> inrecipe hunspell

/boot/home/Git/haikuports/app-editors/focuswriter/focuswriter-1.7.6.recipe:25:
lib:libhunspell_1.7$secondaryArchSuffix

/boot/home/Git/haikuports/app-editors/focuswriter/focuswriter-1.7.6.recipe:38:
devel:libhunspell_1.7$secondaryArchSuffix

-


2). レシピファイル「featherpad-1.0.1.recipe」を修正:

> cat ~/Git/haikuports/app-editors/featherpad/featherpad-1.0.1.recipe
:
SOURCE_URI="https://github.com/tsujan/FeatherPad/archive/refs/tags/V$portVersion.tar.gz"
CHECKSUM_SHA256="62bcb8ceb788a1626c41ee7dc3f3fbebf73b82db31cf76708a79073da0f04414"
SOURCE_FILENAME="FeatherPad-$portVersion-tar.gz"
SOURCE_DIR="FeatherPad-$portVersion"
ADDITIONAL_FILES="featherpad.rdef.in"

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

PROVIDES="
    featherpad$secondaryArchSuffix = $portVersion
    app:FeatherPad$secondaryArchSuffix = $portVersion
    "

REQUIRES="
    haiku$secondaryArchSuffix
    lib:libGL$secondaryArchSuffix
    lib:libhunspell_1.7$secondaryArchSuffix
    lib:libQt5Core$secondaryArchSuffix
    lib:libQt5Gui$secondaryArchSuffix
    lib:libQt5Network$secondaryArchSuffix
    lib:libQt5PrintSupport$secondaryArchSuffix
    lib:libQt5Svg$secondaryArchSuffix
    lib:libQt5Widgets$secondaryArchSuffix
    lib:libz$secondaryArchSuffix
    "

BUILD_REQUIRES="
    haiku${secondaryArchSuffix}_devel
    devel:libGL$secondaryArchSuffix
    devel:libhunspell_1.7$secondaryArchSuffix
    devel:libQt5Core$secondaryArchSuffix
    devel:libQt5Gui$secondaryArchSuffix
    devel:libQt5Network$secondaryArchSuffix
    devel:libQt5PrintSupport$secondaryArchSuffix
    devel:libQt5Svg$secondaryArchSuffix
    devel:libQt5Widgets$secondaryArchSuffix
    devel:libz$secondaryArchSuffix
    "

BUILD_PREREQUIRES="
    cmd:find
    cmd:g++$secondaryArchSuffix
    cmd:ld$secondaryArchSuffix
    cmd:lrelease$secondaryArchSuffix >= 5
    cmd:make
    cmd:pkg_config$secondaryArchSuffix
    cmd:qmake$secondaryArchSuffix >= 5
    "

BUILD()
{
    qmake PREFIX=$appsDir/FeatherPad
    make $jobArgs
}

→たぶん、そこまでは行けないだろうから、「INSTALL()」以降は削除。

-


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

-


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

> cd ~/Git/haikuporter/
~/Git/haikuporter> hp featherpad

:

/boot/system/develop/tools/bin/../lib/gcc/x86_64-unknown-haiku/8.3.0/../../../../x86_64-unknown-haiku/bin/ld: cannot find -lhunspell
collect2: error: ld returned 1 exit status
Makefile:438: recipe for target 'FeatherPad' failed
make[1]: *** [FeatherPad] Error 1
make[1]: Leaving directory '/sources/FeatherPad-1.0.1/featherpad'
Makefile:46: recipe for target 'sub-featherpad-make_first' failed
make: *** [sub-featherpad-make_first] Error 2

→以前よりも前進しました。最初のところで依存が認識されました。

-

lib:libhunspell_1.7 >= 0.0.1

惜しいかな、「make $jobArgs」に入ってしばらくして、hunspell が見つからないというおなじみのエラーです。難しいですね。

-

-


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

-

13. 追記: 「focuswriter-1.7.6」を現在の「qmake」のレシピでパッケージ化 (成功例):

-

1). 依存の「devel:libhunspell」の記述を参考にしたアプリです:

→レシピの書き方が「Featherpad」とほとんど同じなので、同じ人が移植したのかもしれません。

-

2). 試しにパッケージ化がうまく行くのか試してみました

> hp focuswriter

→「focuswriter」は「qmake」のレシピでOK 。アプリのプログラムの作り方の差かな。プログラムの作り手は違う人。

-

3). パスの変数

pwd
/sources/focuswriter-1.7.6

→/boot/home/Git/haikuports/app-ditors/focuswriter/work-1.7.6/sources/focuswriter-1.7.6/

-

echo $appsDir
/packages/focuswriter-1.7.6-1/.self/apps

→/boot/home/Git/haikuports/app-ditors/focuswriter/work-1.7.6/packages/focuswriter-1.7.6-1/.self/apps

-

echo $portDir
表示なし

-

-


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

-

14. 追記: 「FeatherPad-1.0.1」を「cmake」のレシピでパッケージ化 (成功):

-

パッケージ化出来ると便利なので、可能性の高い「cmake」にトライ。

-

1). レシピファイル「featherpad-1.0.1.recipe」を修正:

> cat ~/Git/haikuports/app-editors/featherpad/featherpad-1.0.1.recipe
:
SOURCE_URI="https://github.com/tsujan/FeatherPad/archive/refs/tags/V$portVersion.tar.gz"
CHECKSUM_SHA256="62bcb8ceb788a1626c41ee7dc3f3fbebf73b82db31cf76708a79073da0f04414"
SOURCE_FILENAME="FeatherPad-$portVersion-tar.gz"
SOURCE_DIR="FeatherPad-$portVersion"
ADDITIONAL_FILES="featherpad.rdef.in"

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

PROVIDES="
    featherpad$secondaryArchSuffix = $portVersion
    app:FeatherPad$secondaryArchSuffix = $portVersion
    "

REQUIRES="
    haiku$secondaryArchSuffix
    lib:libGL$secondaryArchSuffix
    lib:libhunspell_1.7$secondaryArchSuffix
    lib:libQt5Core$secondaryArchSuffix
    lib:libQt5Gui$secondaryArchSuffix
    lib:libQt5Network$secondaryArchSuffix
    lib:libQt5PrintSupport$secondaryArchSuffix
    lib:libQt5Svg$secondaryArchSuffix
    lib:libQt5Widgets$secondaryArchSuffix
    lib:libz$secondaryArchSuffix
    "

BUILD_REQUIRES="
    haiku${secondaryArchSuffix}_devel
    devel:libGL$secondaryArchSuffix
    devel:libhunspell_1.7$secondaryArchSuffix
    devel:libQt5Core$secondaryArchSuffix
    devel:libQt5Gui$secondaryArchSuffix
    devel:libQt5Network$secondaryArchSuffix
    devel:libQt5PrintSupport$secondaryArchSuffix
    devel:libQt5Svg$secondaryArchSuffix
    devel:libQt5Widgets$secondaryArchSuffix
    devel:libz$secondaryArchSuffix
    "

BUILD_PREREQUIRES="
    cmd:find
    cmd:g++$secondaryArchSuffix
    cmd:ld$secondaryArchSuffix
    cmd:lrelease$secondaryArchSuffix >= 5
    cmd:make
    cmd:pkg_config$secondaryArchSuffix
    cmd:cmake$secondaryArchSuffix
    "

BUILD()
{
    mkdir -p build
    cd build
    cmake .. -DCMAKE_INSTALL_PREFIX:PATH="$appsDir/FeatherPad" \
        -DCMAKE_BUILD_TYPE=Release

    make $jobArgs
}

INSTALL()
{
    cd build
    make install

    mv $appsDir/FeatherPad/featherpad \
        $appsDir/FeatherPad/FeatherPad

    local APP_SIGNATURE="application/x-vnd.featherpad"
    local MAJOR="`echo "$portVersion" | cut -d. -f1`"
    local MIDDLE="`echo "$portVersion" | cut -d. -f2`"
    local MINOR="`echo "$portVersion" | cut -d. -f3`"
    sed \
        -e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \
        -e "s|@MAJOR@|$MAJOR|" \
        -e "s|@MIDDLE@|$MIDDLE|" \
        -e "s|@MINOR@|$MINOR|" \
        $portDir/additional-files/featherpad.rdef.in > featherpad.rdef

    addResourcesToBinaries featherpad.rdef $appsDir/FeatherPad/FeatherPad
    addAppDeskbarSymlink $appsDir/FeatherPad/FeatherPad "FeatherPad"
}

→今のところシステムに配置されるので、ヘルプファイルに書き込みはできません。

-


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

ちょっとしたレシピの変更程度なら要りません。

-


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

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

→「パッケージ化」できました。

-

> pkgman install /boot/home/Git/haikuports/packages/featherpad-1.0.1-1-x86_64.hpkg
:
    install package featherpad-1.0.1-1 from local file
:
[system] Done.

→インストールできました。

-

メニューからの起動もOK 。日本語化されています

-

(注意) : システム更新のタイミングで、メニューからの起動は、正規のアプリに上書きされます

上書きされても、右クリックで場所をホームに指定すれば起動は可能。

→でも、こちらがバージョンが上のときは上書きされるのかな?

-

アプリの充実のため、プルリクエスト 実施

→「Files changed」タブでファイル差分が確認できます。

  • マージされており、HaikuDepot でインストールできました。対応が速いですね。

-

HaikuDepot のアプリの紹介欄の「パッケージについて」の文章が、レシピファイルの頭にある「DESCRIPTION=" "」の行になるみたい。Markdown の形式のようで、一部で改行をミスってます。←よく見ると、以前の内容です。直接反映されるわけではないみたい。(サーバー上の登録内容を表示)

-

もし、開発の残骸があると、インストールでエラーするので、一度アプリをアンインストール後に、下記を削除:

/boot/home/config/non-packaged/apps/featherpad
/boot/system/packages/administrative/「state_2021-10-30_14:22:12」の形式すべて

→ゴミ箱への移動でエラーしたら、Shift+「移動」をクリック

アンインストールしても、インストール時には、バックアップから優先してアプリが復元されます。

-

-


4). 色々調べてわかったこと

-

手動でのインストール時:
$appsDir = "/boot/home/config/non-packaged/apps"

-

パッケージ化の時:
$appsDir = "/packages/featherpad-1.0.1-1/.self/apps/"

→パッケージ化の時は、作業ディレクトリ「~/Git/haikuports/app-editors/featherpad/work-1.0.1/」がroot で、 「sources/FeatherPad-1.0.1/build」がpwd になる「chroot」の環境になっており、ファイルのパスが変わることに注意。ちなみに、「.self」はパッケージの中だけで有効なディレクトリです。また、実体が別のリンクされているフォルダも多いです。

-

Haiku」での「パッケージ化」とは

他のディストリビューションでの「パッケージ化」は、事前にソースからビルドしておいて、インストール時に出来たバイナリをシステムに再配置できるように構成したものです。

ところが 「Haiku」の「パッケージ化」は、ゲーム機のゲームカートリッジ(アプリや共有ライブラリを含んだファイルシステム)を作るような仕組みです。使うときに差し込む(マウントする)ように出来ています。なので、同じつもりで移植していると混乱します。また、chroot となることで、システムの書き込み保護を回避しています。

-


5). 参考: 「パッケージ化」に備えて、実行ファイルが集められていました:

/boot/home/Git/haikuports/app-editors/featherpad/work-1.0.1/packaging/featherpad/featherpad
/boot/home/Git/haikuports/app-editors/featherpad/work-1.0.1/packaging/featherpad/settings

/boot/home/Git/haikuports/app-editors/featherpad/work-1.0.1/packaging/featherpad/data/help
/boot/home/Git/haikuports/app-editors/featherpad/work-1.0.1/packaging/featherpad/data/help_ja
/boot/home/Git/haikuports/app-editors/featherpad/work-1.0.1/packaging/featherpad/data/help_pt_BR
/boot/home/Git/haikuports/app-editors/featherpad/work-1.0.1/packaging/featherpad/translations/featherpad_ja.qm

-

-


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

-

15. 追記: ビルドしてインストールした場合でも、ヘルプ表示を個人的な備忘録として利用:

ビルドに成功してインストールした場合は、システムが書き込み保護されているので、ヘルプ表示を個人的な備忘録として利用できないと、述べましたが、ビルドの環境があればファイルの操作ができることに気づきました。

-

  • 通常のファイル操作より面倒なので、更新しなくても永く使えるテキストにするのがベターです。

-

手順:

1. 一度、パッケージ化を実行します。(ソースファイルが展開されます)

> cd ~/Git/haikuporter/
> hp featherpad

-

2. ヘルプファイルの先頭に、好みのテキストを追記:

> lpe ~/Git/haikuports/app-editors/featherpad/work-1.0.1/sources/FeatherPad-1.0.1/featherpad/data/help_ja

記述例:

### 個人的な備忘録

左クリックを3回で行選択して、Alt+C でコピー

lpe ~/config/non-packaged/apps/FeatherPad/data/help_ja

→マウスや Shift +「矢印」キーなどでは範囲選択できないので、左クリックを3回で行選択して Alt+C でコピーします。端末には、右クリックで貼り付けできます。その他のアプリへは Alt+V です。

-

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

pkgman refresh
pkgman update

-

### パッケージ化を実行:

cd ~/Git/haikuporter/
hp featherpad

-

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

inpatch makefile

-

### レシピファイルで、「featherpad」を含む行を表示:

inrecipe featherpad

-

→プロンプト「~>」を記入していないのは、クリック3回で行選択したまま使えるようにするためです。

-

3. 作業ディレクトリを削除せずに、パッケージ化を実行

> cd ~/Git/haikuporter/
> hp featherpad

-

4. インストール

> pkgman install ~/Git/haikuports/packages/featherpad-1.0.1-1-x86_64.hpkg

-

5. 「featherpad」を起動すれば、ヘルプでレビューできます。

-

-


まとめ

移植済の「FeatherPad-0.9.2」を「FeatherPad-1.0.1」にアップできるかトライしました。 アップすることで日本語化ができました。

-

今回は、「依存パッケージをインストールしても正規のバージョンとして認識されない」ケースでした。

-

問題だったのは、追加された依存パッケージを「パッケージ化のスクリプト」が正しいバージョンと認識してくれないことで、指定のやり方が良くなかったみたい。修正にて前に進みました。

今度は今までのやり方の「qmake」でなく「cmake」しか通らないので、レシピの変更が必要でした。色々と試行してやっと通りました。ちょっとしたパラメータの違いで動きが全然違います。

-

手動でもビルドしてアプリのインストールを行いましたが、ビルドのときに「パッケージ化」のスクリプトを利用することで、(すでにほとんどの依存関係が解決しているので)通常のビルド作業よりも楽が出来ました。開発環境としてもすぐれていると思います。

-

-


-

-

    目次

-

「投稿の先頭 へ」

-

-


-

「この目次 の先頭へ」

「本編の目次 に戻る」

-