Qbilinux 日記

Linux に関係することだけではなく,最近は一般的なコンピュータやガジェット関係についても記載してます.

Qbilinux 開発について(その43): 現在の状況

ぼちぼちと Plamo Linux 6.x のソース一式からブランチして,Qbilinux という linux ディストリビューションを作成.

いつまで続くのか.

いじってる Qbilinux のホームページは https://qbilinux.org/ に,ビルドスクリプトは https://github.com/qbilinux/qbilinux,バイナリは https://qbilinux.org/pub/ 以下にあります.

最近は qbilinux 関連の作業は放置気味.

kernel 5.4 がリリースされてからバージョンを締めようかなぁと思ってるんだけどね.

で,なーんとなく KDE 周りを最新バージョンにまで追従させました.framework とか plasma とか.github の方にはすでに push 済み.

これでほぼすべてのデスクトップ環境が最新に追従した形になったのかな?

あとはパッケージ一式を全部リコンパイル.

現在使っているバイナリって,qbilinux って名前に変更する前にコンパイルしたものも多数あるし,実際に現在のシステムで全部のパッケージがコンパイルできるのかなぁと気になったもので.

いくつか引っかかるものがあるね.引っかかったものを最新版にバージョンアップしようかなと思ったら,いろんなところでエラーに.小数点以下のパージョン変更なのにライブラリの過去互換性がなくなるのはどういった...以下自粛.

ということでそのあたりも修正して git push 済み.

x86_64 は全部コンパイル終了したので,現在は x86 環境のリコンパイル中.

終了したら current のパッケージを更新する予定です.

すべてのパッケージが更新されるので,注意してくださいね.

...って使ってる人はほとんどいないか.

ARM 関係は...相変わらずコンパイル時間がかかりすぎるのでちょっとどうしようかなと考え中.:-)

そんなところかな.

徐々にペースアップしたいなぁと

しばらく放置気味だったこの blog も徐々に更新をペースアップしたいなぁと思っています.

できれば昔のようにほぼ毎日更新するレベルまで戻したいなぁとは思っているけど,どこまでできるかな.

色々とレビューを書こうかなと思ってるガジェット類もたまってるので,徐々に時間を見ながら書いていこうかなと思います.はい.

Qbilinux 開発について(その42): 0.3 のセキュリティフィックス

ぼちぼちと Plamo Linux 6.x のソース一式からブランチして,Qbilinux という linux ディストリビューションを作成.

いつまで続くのか.

いじってる Qbilinux のホームページは https://qbilinux.org/ に,ビルドスクリプトは https://github.com/qbilinux/qbilinux,バイナリは https://qbilinux.org/pub/ 以下にあります.

最近は時間がとれなくて qbilinux 関連の作業は放置気味.

arm 用のバイナリ作成は行っているんですけど,x86/x86_64 用のインストーラー修正は完全放置してしまっています.

けど,いろいろとセキュリティフィックスも出てるみたいだからリリースしている 0.3 では対応しておかないとダメだなと思い,この週末に無理やり作業.

ふう.

調べてみたら8月くらいから放置していたみたいですね.

ということで,https://qbilinux.org/pub/qbilinux-0.3/ 以下の x86/x86_64 用のパッケージを更新しておきました.

arm 用は...current 用のパッケージ作成用にラズパイがフル稼働しているのでちょっといつになるかわかりません.ごめんなさい.

Plamo Linux と同様に get_pkginfo コマンドで自動更新できます.

ざっと目についたものを更新しましたが,更新したのは下記くらい.

  • libreoffice
  • kconfig
  • samba
  • php
  • nghttp2
  • httpd
  • dovecot
  • ibus
  • ffmpeg
  • faad2
  • pango
  • ghostscript
  • thunderbird
  • firefox
  • expat
  • wpa_supplicant
  • sudo
  • openssl10
  • openssl
  • kernelsrc
  • kernel_headers
  • kernel
  • e2fsprogs
  • qemu

忘れているものとかありましたら,ご免なさいです.

これも対応して欲しいと言った要望などあれば連絡頂ければ対応します.はい.

詳細は https://github.com/qbilinux/qbilinux/commits/Qbilinux-0.3 あたりを参照してください.

0.3 の方しか対応していないので,current の方も対応しておかないとなぁ.

linux kernel の次の lts は 5.4 ?

ふと kernel.org のホームページをみたら,linux kernel の次の lts は 5.4 みたいだね.

www.kernel.org

あ,lts って "longterm maintenance" のことね.長期間サポートされるバージョン.

いつごろりリースされるのかな?

これに合わせて自作の linux ディストリビューションもバージョン締めてリリースしようかな.

使っているプログラムで cakephp 3.x から cakephp 4.x への載せ変え作業をしてみた

php framework である cakephp 3.x を使ってシステム開発をしています.

4.0.0-beta3 もリリースされたし,だんだん cakephp 4.x のリリースが近づいてきたのかな?

ということで,様子を見るために cakephp3 で動かしている手元のプログラムを cakephp4 に載せてみました.

...

最初にざっと cakephp 4.0 の migration guide に目を通しておきます.

https://book.cakephp.org/4.0/en/appendices/4-0-migration-guide.html

3.8 で廃止するよって warinig が出ていてた method, properties, function などはすべて削除されるみたいだね.

あとはディレクトリ構成に変更があるのと,template の拡張子が .ctp から .php に変わった辺りが大きな変更点かな?

そのほかの細かい変更個所もありますが,とりあえずは後々調整する感じかな.

...

とりあえず,composer を使って cakephp 4.0.0-beta3 をインストール.

その後,cakephp 3.8.x で使っていた controller, model, template などのファイル一式をそれぞれ cakephp4 の方にコピー.

templates/{Element, Email, Layout} などはディレクトリ名が小文字に変更になっているのでちょっと注意が必要.

templates 以下のファイルは拡張子が変更になっているので一気に変更.

% find template -name "*.ctp" -exec rename .ctp .php {} \;

な感じかな?

あとは config/app.php の db 回りの設定を適当に修正してとりあえずデフォルトの Pages/display 画面を表示させてみました.

ふむふむ,問題なく表示できてるみたいだな.

次は cakephp 3.8.x から持ってきた方のファイルを表示させてみた...ら案の定,大量なエラー.

まぁ,わかってたことだけど.

migration guide を見ながらとりあえず Auth 回りを修正.

acl plugin まわりは無くなるみたいなので,とりあえずコメントアウトしてあとで修正する感じかな.Coockie 回りも修正は後回しかなということで,とりあえずコメントアウト.

で,予想外に修正が面倒だったのが,関数の戻値を書かないとエラーになってしまう件.php7 以降で関数の戻値宣言が導入されましたがそれが要因でエラーが多発します.

普通の関数などでは問題ないんだけど,Controller 中の

public function initialize()

や,Model/Table 中の

public function initialize(array $config)
public function validationDefault(Validator $validator)
public function buildRules(RulesChecker $rules)

なんかが軒並エラー.継承しているせいですね.

ということで

public function initialize(): void
public function initialize(array $config): void
public function validationDefault(Validator $validator): Validator
public function buildRules(RulesChecker $rules): RulesChecker

などに書き換える必要があります.

あとは適当に routes.php を書き換えて,まだ cakephp4 をサポートしていないであろう plugin を off.

その状態で cakephp 4.x ベースで画面表示ができるようになりました.所々,エラーになるところはあるけど,まぁ半分くらいの画面は動作.

その間,作業時間は2時間程度.

cakephp 2,x から 3.x に移行したときに比べれば雲泥の差で乗り換えはラクチンそうですね.

2.x から 3.x に移行したときには半年くらいかかったけど,3.x から 4.x へは1ヶ月くらいあれば余裕で載せ変えできそうな感じかな.

本格的に移行するのはおそらくまだ先だろうけど,4.x になってから削除されてしまう関数などを 3.x で運用している方でも徐々に修正しておいた方が良さそうですね.

あ,バージョン移行に関して plugin 関連は相変わらず悩ましい感じかなと思っています.

2.x から 3.x になったときに,3.x に移行されずにそのままメンテ放置されてしまった plugin をいくつか使っていたんですよね.で,いくつかは仕方なく自前で書き換えて使っていて,いくつかは plugin を使わない形に記述変更しました.同じようなことが 3.x から 4.x の移行時にもおこりそうかなと思っています.3.x にしたときにその危険性を避けるために,使う plguin を大幅に減らしはしたんですけど,それでもいくつかはまだ使っているんですよね.で,これらの plugin はまだ cakephp 4.x 系への対応がなされていない雰囲気.うーむ.

4.x への移行をきっかけに,外部 plugin は完全に使わない形にした方が良さそうかなぁと思っていたりもします.外部 plugin を使うと実装は楽なんだけどね....

と,とりあえず作業はそこまででストップ.

まぁ,今後は cakephp 4.x の様子をみつつ,移行時期などを含めて考えるって感じかなと思います.はい.

CakePHP 超入門

CakePHP 超入門

 
初めてのPHP

初めてのPHP

 
 

 

Qbilinux 開発について(その41): kernel 5.3 に更新した話と VirtualBox の kernel 5.3 対応

ぼちぼちと Plamo Linux 6.x のソース一式からブランチして,Qbilinux という linux ディストリビューションを作成.

いつまで続くのか.

いじってる Qbilinux のホームページは https://qbilinux.org/ に,ビルドスクリプトは https://github.com/qbilinux/qbilinux,バイナリは https://qbilinux.org/pub/ 以下にあります.

少し放置している間に kernel 5.3 がリリースされてしまいました.

ということで,作成したいたツリーも kernel 5.3 に入れ替え.

このあたりの気軽さは自分で弄っているディストリビューションならではだね.

使っている cjktty パッチに reject が出たのでちょっとだけ修正.問題なく utf8 で日本語コンソールが動作することを確認.この辺りが正しく動作してないとインストーラーで日本語表示できなくなってしまうからな.

kernel 5.3 対応の cjktty パッチが欲しい方は https://github.com/qbilinux/qbilinux/blob/master/qbilinux/00_base/kernel/ 以下の cjktty-kernel-5.3.patch, cjktty-kernel-font-JP.patch あたりをどうぞ.

で,インストーラー一式も作り直して.ついでに再び手元で iso ファイルを作成.

すこし動作確認してみるかなと思って,メインの開発環境マシンをこの iso ファイルを使って新規インストールしてみました.

EFI を使っていないマシン環境ですが,普通にインストール完了.ネットワーク回りがなんか正しく設定されていなかったけど,このあたりはこの開発環境依存かも知れないのでちょっとあとで調べてみるかって感じ.

再インストールしたので,開発に使っている VirtualBox なんかも再インストールしたんだけど,案の定うまく動作しないね.vboxconfig 実行時にエラーになってしまいます.

ということで検索.https://www.virtualbox.org/pipermail/vbox-dev/2019-July/015297.html のあたりにパッチが投稿されていますね.

virtualbox を普通にインストールしたあとで,/opt/VirtualBox 以下にインストールされている該当ファイルを探して,上記のパッチを適用してから vboxconfig を再び実行すれば問題なく設定できました.ということで対応完了.ふう.

そんな感じで環境入れ直し.

この状況で動作確認しつつ,問題のあるところを修正していく予定です.インストーラーの方もきちんとした EFI 環境対応しないとな.

さっさとリリースにしたいなとは思っていますが,なかなか作業時間がとれない状態....

Qbilinux 開発について(その40): iso イメージ作成してみました

ぼちぼちと Plamo Linux 6.x のソース一式からブランチして,qbilinux という linux ディストリビューションを作成.

いつまで続くのか.

いじってる qbilinux のホームページは https://qbilinux.org/ に,ビルドスクリプトは https://github.com/qbilinux/qbilinux,バイナリは https://qbilinux.org/pub/ 以下にあります.

インストーラーをどうやって作ってたたかなあと試行錯誤.

すっかり忘れてる.

やっぱりドキュメント書いておかないとだめだね.

ということで 0.3 のインストーラーそのままでパッケージだけ更新した形ですけど,iso ファイルを作成してみました.

0.4 alpha1 というステータスかな.

https://qbilinux.org/pub/isos-current/qbilinux-0.4a1_x86_64_20190910_dvd.iso
https://qbilinux.org/pub/isos-current/qbilinux-0.4a1_x86_64_20190910_dvd.iso.sha256
https://qbilinux.org/pub/isos-current/qbilinux-0.4a1_x86_20190910_dvd.iso
https://qbilinux.org/pub/isos-current/qbilinux-0.4a1_x86_20190910_dvd.iso.sha256

nvme な SSD に新規インストールした際に,ブートローダーが正しく動作しないので手作業で修正する必要があるなど不具合はありますが,まぁ参考まで.

VirtualBox で新規インストールできるくらいは動作確認してあります.

各ソフトのバージョンは kernel 5.2.13, glibc 2.30, gcc 9.2.0, llvm 8.0.1 な感じ.詳細は https://qbilinux.org/pub/qbilinux-current/ 以下を参考にしてください.

手元の Let's note NX2 で 32bit 版の方は常用しているのでそれほど大きな問題はないかなぁとは思っています.

そんな感じです.

GUI な git クライアントで gitk をちょっと見直し

定期的に書くこの話題.

GUI な git クライアントを気が向いたときに物色してます.Linux / Windows / Mac すべてのプラットフォームで動作するものが希望.

商用のものですが GitKraken とか SmartGit のライセンス購入して使っています.

www.gitkraken.com

www.syntevo.com

GitKraken は独自の UI だけど,割と画面が見易い感じなので使用.

SmartGit は長年使っていて使い慣れているってことで使っているけど,ちょっと動作が重たいのがイマイチなところ.ライセンス料が高いのもちょっとマイナス.

で,久しぶりに gitk を弄ってみたり.

gitk って git に標準ではいっている gui コマンドです.tk で動作しているコマンドね.
Linux では当然動作しますが,Windows でも git for windows に同梱されています.

gitforwindows.org

数ヵ月くらいガッツリと使ってみましたが,感想から言うとこれで十分かも知れないかなと感じています.はい.

コマンドラインと併用すれは全然不自由なく使える感じ.

履歴を見たり,commit するのは gitk からで,細かい作業をするときはコマンドラインを使うって感じで使い分けていますが,これが割と快適.

gitk の動作自体がシンプルなので軽いってのも好感触.

大量なリポジトリを読み込んだときとかの動作が SmaretGit なんかに比べると全然軽く感じる.

あとは,余計なコマンド類を勝手に発行されないところも良いかもね.SmartGit なんかもそうなんだけど,特定の操作をすると,裏ではいろんな git コマンドが走っていたりするので使い慣れないとちょっと怖いってところがあるから.

...そんな感じで,gitk をちょっと見直しましたね.

ということで,手元で使っている SmartGit のライセンスを更新するのはやめようかなと思っていたり.

もうすぐ手元の SmartGit のライセンスが切れるんだよね.

GitKraken の方はライセンス料金が安いし,ちょっと前にライセンス更新したばかりなのでまだ1年弱は様子見ながら使う感じかなと.

あ,一応,両方とも無料ライセンスプランはありますので,無料で使うことも可能です.

無料プランだと色々と制限があるので私自身はライセンス購入して使っています.

まぁ,気軽に使ってみて,気に入って,かつ,無料プランでは機能が足りない場合に有料ライセンス契約すれば良いかなと思います.

個人によって使いやすい/使いにくいポイントは違うかなと思いますし,リポジトリ本体をどこにおいてあるかによっても使い勝手が変わりますからね.ローカルドライブなのか,ネットワーク先なのか,github などのサービスサイト上なのか,単なるネットワークドライブ上なのかとか.どういった認証方法でアクセスしないとダメなのかとか.

その他の git クライアントとしては,visual studio code とか eclipse / PHPstorm なんかについていたり plugin で追加できる git 環境も使ってみたりするけど,これらもちょっと重いし,何となく使いにくく感じるんだよな.慣れの問題かな?

azure.microsoft.com

www.eclipse.org

www.jetbrains.com

特定プラットフォームだけで動作するものって言うことで Sourcetree とか TortoiseGit なんかもありますが,やっぱり色んな環境で使えた方が便利かなと.私自身,開発環境をコロコロと変えることが多いんで.^^;

www.sourcetreeapp.com

tortoisegit.org

繰り返しになりますが,そんな感じで gitk をちょっと見直したなぁって話でした.

 

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)

 
実用Git

実用Git

  • 作者: Jon Loeliger,吉藤英明(監訳),本間雅洋,渡邉健太郎,浜本階生
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2010/02/19
  • メディア: 大型本
  • 購入: 7人 クリック: 287回
  • この商品を含むブログ (45件) を見る
 

 

Qbilinux 開発について(その39): サポートポリシーとか現状とか

すっかり blog の更新ペースが落ちてるなぁ.書きかけのレビューとかも1ヶ月くらい放置状態だし.自己反省.

... ということで,ぼちぼちと Plamo Linux 6.x のソース一式からブランチして,qbilinux という linux ディストリビューションを作成.

いつまで続くのか.

いじってる qbilinux のホームページは https://qbilinux.org/ に,ビルドスクリプトは https://github.com/qbilinux/qbilinux,バイナリは https://qbilinux.org/pub/ 以下にあります.

新しいバージョンを締めようかなと思ってますが,サポートポリシーを書いておきます.

そのうち web の方にも記載します.(web サイトも更新せずに放置状態だなぁ...)

...

基本的に次のバージョンが出たら,昔のバージョンのサポートは1〜2ヶ月程度で終了したいと思います.

サポートって言っても,セキュリティフィックスとかバグ修正をしてる程度ですけど.
使っている方が私以外にどれくらいいるかわかりませんが,それじゃ困るって場合には直接連絡頂ければ考慮します.

私一人で弄っている関係上,あんまり大量の作業はできないものでご容赦を...._o_

...

現状ですけど,以前,そろそろ締める作業をしますとか書いておきながら少し前までパッケージ更新作業を続けていました.

いや,llvm とか gcc とか glibc とか libreoffice とか色んなものが今月に入ってから一気にバージョンが上がったので....

で,全部,入れ替えて様子見てますが,それほど互換性には問題なさそうなのでこれらを新しくしてしまおうかなぁと.

ついでに gnu 関連とか目についたものとかも新しいものに.

x86/armv7l/aarch64 は引き続きパッケージ更新作業中.コンパイラ回りとかを ARM でビルドするのはちょっと時間がかかるのよね.

x86_64 版だけはこれらのバージョンアップ作業は落ち着いたかなって感じなので,徐々にインストーラーを弄ってます.

久しぶりにインストーラー回り弄っていると,どうやってビルドしていたかすら忘れている.ドキュメントを書いておかないと,自分でもわからなくなってきてるかも.:-)

インストーラー回りは Plamo ベースではなく,現在の Slackware ベースに戻したいなと思っているんですが,手間を考えると当面は今の延長線上のままになりそうかなと思います.パッケージインストール時に認証キーの対応などを追加したいと思っているんですが Plamo ベースで機能拡張をするより,すでに対応されている現在の Slackware から持ってきた方が良いかなぁと感じてるからなんだけどね.

package 関連コマンドも Slackware の方ではマルチスレッド対応されていたり,色々と機能拡張されてるみたいだから,それをわざわざポーティングするよりそのまま持ってきた方が良いかなと感じています.

けど,そうすると Slackware との違いは何?って感じで自己矛盾に陥ってしまうんだけど,まぁ,それは作りたいからやってるだけって感じかな.

もうちょっと Slackware のスクリプトとかを調べてゆくゆくはどうするか考えたいと思っています.

そんな感じで作業していますが,インストーラーを調整した時点で current の iso をテスト版として公開する予定です.

現状はそんなところです.

Qbilinux 開発について(その38): そろそろ次のバージョンとして締める作業しようかなぁと

ぼちぼちと Plamo Linux 6.x のソース一式からブランチして,qbilinux という linux ディストリビューションを作成.

いつまで続くのか.

いじってる qbilinux のホームページは https://qbilinux.org/ に,ビルドスクリプトは https://github.com/qbilinux/qbilinux,バイナリは https://qbilinux.org/pub/ 以下にあります.

gnome 回りの古いパッケージを新しいものに入れ替え作業.

ついでに新しい glibc 2.30 も出たので入れ替え.令和対応とかが正式に入ってるんだっけ?確かその対応パッチを本家に投げたのは Plamo Linux のメンテナやってる田向さんだったかな。

で,次はどうしようかなぁと Wayland まわりを整備し始めたけど,私自身が使ってる環境が twm メインだったりするのであんまりメリットもあんまりないのかなぁと.時間のあるときに徐々に調整する感じで,優先度は下げるかな.

...

で,先日,ちょこっと書きましたが ARM のブレッドボード rock64 を入手.

これにポーティングしてみようかなと思ってるけど,その前にいったんバージョンを締めた方が良いかもなと.

qbilinux 0.3 としてリリースしているものはすでに私自身は使っていなくて,立ち上げるのはもっぱらセキュリティーフィックスのパッケージを作成するときくらい.

メインは current を使用.

x86 版をノートパソコンにいれてメールとかネットの普段使いに利用.

日々の普通の生活を送る分には問題なさそうだし,締めてもだいじょうぶそうかなぁと.

ということで,パッケージ更新はしばらくお休みにして締める作業の方に移行します.ARM 版の方のパッケージ作成作業は遅れているので引き続き行っていきますが,x86/x86_64 の方はインストーラー回りとかの修正を始める感じかな.

NVMe 環境にクリーンインストールできない問題もあるから修正しないとね.

とりあえずそんな感じかな.