<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0">
<channel>
	<title>はんかくさい日報</title>
	<link>https://www.basekernel.jp/basekrnl/</link>
	<language>ja</language>
	<description>弊社の作業日報や技術情報などを提供していきます。</description>
	<copyright>Copyright 2026</copyright>
	<pubDate>Sun, 16 Aug 2026 03:00:57 GMT</pubDate>
	<lastBuildDate>Sun, 16 Aug 2026 03:00:57 GMT</lastBuildDate>
	<generator>https://adiary.org/#3.51</generator>
	<docs>http://blogs.law.harvard.edu/tech/rss</docs> 
	<item>
		<title>素の dovecot 2.4.4 では、FreeBSD ではコンパイル不能</title>
		<link>https://www.basekernel.jp/basekrnl/0801#rss-tm1786849257</link>
		<guid>https://www.basekernel.jp/basekrnl/0801</guid>
		<category>サーバ運営・管理</category>
		<pubDate>Sat, 15 Aug 2026 19:11:18 GMT</pubDate>
		<author>たかはし＠札幌</author>
		<description><![CDATA[<section>
今年５月に dovecot 2.4 系は、 2.4.3 → 2.4.4 へ更新提供されています。<br>
だいぶ安定してきているようですが、dovecot Ver 2.4.4 と　FreeBSD 14/15 の組み合わせでは、<br>
どう頑張っても、構築（ソースコードからのコンパイル）途上で、<br>
<blockquote>
gmake[3]: *** 'auth' に必要なターゲット '-L/usr/local/lib' を make するルールがありません.  中止.<br>
gmake[3]: ディレクトリ '/usr/local/src/dovecot-2.4.4/src/auth' から出ます<br>
gmake[2]: *** [Makefile:616: all-recursive] エラー 1<br>
gmake[2]: ディレクトリ '/usr/local/src/dovecot-2.4.4/src' から出ます<br>
gmake[1]: *** [Makefile:747: all-recursive] エラー 1<br>
gmake[1]: ディレクトリ '/usr/local/src/dovecot-2.4.4' から出ます<br>
gmake: *** [Makefile:589: all] エラー 2<br>
</blockquote>
というエラーで中断してしまう。<br>
<br>
これの対処は、dovecot CE コミュニティ( <a href="https://dovecot.org/mailman3/archives/list/dovecot@dovecot.org/message/H5A63W7DX7A24DGW4VY6ESW32CBARCF2/">https://dovecot.org/mailman3/archives/list/dovecot@dovecot.org/message/H5A63W7DX7A24DGW4VY6ESW32CBARCF2/</a> ,2026/08/16 現在）にて、解決手法が記載されているものの、これだけでは解決しない模様。。。<br>
<br>
提起の src/auth ディレクトリ配下の<br>
<pre>
　--- src/auth/Makefile.am.orig
　+++ src/auth/Makefile.am
　@@ -200,7 +200,7 @@
　 endif
 
　 if HAVE_LUA
　-auth_libs += $(LIBDOVECOT_LUA) $(LUA_LIBS)
　+auth_libs += $(LIBDOVECOT_LUA)
　 endif
 
　 if AUTH_LUA_PLUGIN
</pre>
の変更だけでは、当方の環境では、このコンパイルエラーを回避できず、更に、<br>
Makefile.in ファイルを<br>
<pre>
　--- src/auth/Makefile.in.orig
　+++ src/auth/Makefile.in
　@@ -106,7 +106,7 @@

　 @HAVE_LDAP_TRUE@@LDAP_PLUGIN_TRUE@am__append_6 = libauthdb_ldap.la
　 @HAVE_LDAP_TRUE@@LDAP_PLUGIN_FALSE@am__append_7 = $(LIBDOVECOT_LDAP)
　-@HAVE_LUA_TRUE@am__append_8 = $(LIBDOVECOT_LUA) $(LUA_LIBS)
　+@HAVE_LUA_TRUE@am__append_8 = $(LIBDOVECOT_LUA)
　 @AUTH_LUA_PLUGIN_TRUE@am__append_9 = libauthdb_lua.la
　 subdir = src/auth
　 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
</pre>
のように変更したことで、構築できました。参考になれば幸いです。<br>
</section>

]]></description>
	</item>
	<item>
		<title>KiCAD での回路図作成</title>
		<link>https://www.basekernel.jp/basekrnl/0800#rss-tm1785992714</link>
		<guid>https://www.basekernel.jp/basekrnl/0800</guid>
		<category>電子工作</category>
		<pubDate>Wed, 05 Aug 2026 16:50:03 GMT</pubDate>
		<author>たかはし＠札幌</author>
		<description><![CDATA[<section>
<h3><a href="https://www.basekernel.jp/basekrnl/0800#%e4%bd%9c%e6%a5%ad%e9%96%8b%e5%a7%8b%e5%89%8d%e3%81%ab%e3%80%81%e4%ba%88%e3%82%81%e5%b0%8e%e5%85%a5%e3%81%97%e3%81%a6%e3%81%8a%e3%81%84%e3%81%9f%e3%81%bb%e3%81%86%e3%81%8c%e3%82%88%e3%81%84%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3">作業開始前に、予め導入しておいたほうがよいプラグイン</a></h3>
KiCAD は、「プラグイン」で機能が拡張できる仕組みが備わっています。<br>
KiCAD を起動した際のメニュー画面の最も下にある「プラグイン＆コンテンツ マネージャー」のアイコン部分をダブルクリックします。<br>
<figure><a href="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/20260805_1.png" title="20260805_1.png"><img alt="20260805_1.png" src="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/.thumbnail/20260805_1.png.jpg"></a></figure><br>
<br>
すると、下記のような別のウィンドウが表示されます：<br>
<figure><a href="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/20260805_2.png" title="20260805_2.png"><img alt="20260805_2.png" src="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/.thumbnail/20260805_2.png.jpg"></a></figure><br>
<br>
ここで、インストール対象プラグインの「インストール」ボタンをクリックし、<br>
プラグインインストールを実施します。<br>
注意点は、<span style="color:#FF0000;">「インストール」ボタンのクリックだけではインストールされず、画面右下の「保留中の変更を適用」を更にクリックしないと、全くインストールされない</span>ことが挙げられます。<br>
<br>
当方で、追加でインストールしたほうが良いと思ったプラグインは、以下の３つ。<br>
<figure><a href="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/20260805_3.png" title="20260805_3.png"><img alt="20260805_3.png" src="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/.thumbnail/20260805_3.png.jpg"></a></figure><br>
<br>
KiCAD には、予め多くの回路図記号や部品のプリントパターン（「フットプリント」と称しているようです）が同梱されています。<br>
しかし、当方で活用するにあたって、実情に合わないものや、使いにくいもの・同梱されていないものもあるため、追加でプラグイン導入しています。それが最初の２つ。<br>
<br>
最後の１つ「KiCad Routing Tools」は、回路図を作成する段階では一切使用しませんが、<span style="color:#FF0000;">プリント基板のパターンを自動で作成する</span>という機能のプラグインです。<br>
同様の機能で「Freerouting」の紹介が殆どを占めるのですが、「Freerouting」は別途 JRE (Java Runtime)が必須で、Java アプリケーションは過去の経験から、必ず何かしらのトラブルを起こすため、積極的に避けた結果です。<br>
</section>
<section>
<h3><a href="https://www.basekernel.jp/basekrnl/0800#kicad-%e3%81%a7%e3%81%af%e3%80%81%e5%9b%9e%e8%b7%af%e5%9b%b3%e3%82%92%e9%9a%8e%e5%b1%a4%e6%a7%8b%e9%80%a0%e3%81%ab%e5%87%ba%e6%9d%a5%e3%82%8b">KiCAD では、回路図を階層構造に出来る</a></h3>
構築する回路規模が大きくなると、１枚の回路図で収めることは不可能になり、複数枚必要になることは通常よくあることです。むしろ、１枚で全て収まることは少ないと個人的には思います。<br>
<br>
<figure><a href="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/20260805_4.png" title="20260805_4.png"><img alt="20260805_4.png" src="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/.thumbnail/20260805_4.png.jpg"></a></figure>　<figure><a href="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/20260805_5.png" title="20260805_5.png"><img alt="20260805_5.png" src="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/.thumbnail/20260805_5.png.jpg"></a></figure><br>
<br>
上記の図は、一例として左側が階層上位の回路図、右側が階層下位の回路図。<br>
(画像クリックで少し大きな画像が表示されます）<br>
階層上位の回路図では、階層下位の回路図をモジュール化したような描画が可能です。<br>
これにより、全体の接続相関が理解しやすく出来るかと思います。<br>
ちなみに、一例として示した回路図は、A3図面サイズで11ページの分量になっています。<br>
</section>
<section>
<h3><a href="https://www.basekernel.jp/basekrnl/0800#74%e7%b3%bb-40%e7%b3%bb-%e3%83%ad%e3%82%b8%e3%83%83%e3%82%af%ef%bc%a9%ef%bc%a3%e3%81%af%e3%80%81kicad-%e5%90%8c%e6%a2%b1%e3%81%ae%e5%9b%9e%e8%b7%af%e5%9b%b3%e8%a8%98%e5%8f%b7%e3%81%a7%e3%81%af%e3%80%81%e5%9b%9e%e8%b7%af%e5%9b%b3%e4%bd%9c%e6%88%90%e4%b8%8a%e3%82%84%e3%82%84%e9%9b%a3%e3%81%82%e3%82%8a">74系/40系 ロジックＩＣは、KiCAD 同梱の回路図記号では、回路図作成上やや難あり</a></h3>
KiCAD で用意されている回路図記号(「シンボル」と称している)は、特にロジックＩＣで使用するＭＩＬ記号は不完全です。<br>
<br>
例えば<figure><a href="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/20260805_INV1.png" title="20260805_INV1.png"><img alt="20260805_INV1.png" src="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/20260805_INV1.png"></a></figure>は、あっても <figure><a href="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/20260805_INV2.png" title="20260805_INV2.png"><img alt="20260805_INV2.png" src="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/20260805_INV2.png"></a></figure>は無かったりします。<br>
<br>
ですが、KiCAD 自体は「代替割り当て」という機能でこれらを扱うこと自体は容易なのです。<br>
要するに「負論理」を示すＭＩＬ図記号が用意されていないものが数多い。<br>
更に、３入力以上のゲートＩＣは、用意されていないものが多数。<br>
なので、面倒でしたが、シンボルエディタで追加しました。<br>
<br>
さらに、ロジックＩＣ電源を示す図記号（シンボル）が大きすぎる・・・<br>
<table>
<tbody>
	<tr><td><figure><a href="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/20260805_PWR.png" title="20260805_PWR.png"><img alt="20260805_PWR.png" src="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/20260805_PWR.png"></a></figure></td><td>　比較のために、意図的に並べましたが、<br>　左が KiCAD オリジナル、右が当方で作ったもの。<br>　従来、１つのＩＣに同機能ものが複数ユニット入っているものは、<br>　電源ピンは明示的な接続を示さない手法でしたが、<br>　現在のKiCAD では、電源ピンを別ユニットで明示する方針になっているようです。</td></tr>
</tbody></table>
74系/40系 ロジックＩＣの図記号（シンボル）だけは、オリジナルの「グローバルライブラリ」を作ったほうがよいです。<br>
グローバルライブラリの保存箇所ですが、基本的に制限は無いですが、Ｃドライブ内に保存する場合、セキュリティ対策上、一部書き込み不可能な箇所があるため、KiCAD が意図している下記パス配下へ保存すると良いです:<br>
<figure><a href="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/20260805_6.png" title="20260805_6.png"><img alt="20260805_6.png" src="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/.thumbnail/20260805_6.png.jpg"></a></figure><br>
※注：ユーザー直下のフォルダ(ディレクトリ)は、通常、サインインするユーザ名<br>
<br>
拡張子 .kicad_Sym が回路図記号（「シンボル」と称する）を保存するライブラリになります。<br>
ここで、注意を必要とする点としては、<span style="color:#FF0000;">ライブラリを保存しただけでは新たに使えるようにならない</span>ということかと思います。<br>
明示的に設定し、更に KiCAD を一度終了・再起動する必要があるようです。<br>
<br>
具体的には、回路図エディタから、下記に示すように「設定(r)」 → 「シンボルライブラリを管理...」をクリックし、<br>
<figure><a href="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/20260805_7.png" title="20260805_7.png"><img alt="20260805_7.png" src="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/20260805_7.png"></a></figure><br>
<br>
更に下記に示すように、追加したライブラリを登録します。<br>
<figure><a href="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/20260805_8.png" title="20260805_8.png"><img alt="20260805_8.png" src="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/.thumbnail/20260805_8.png.jpg"></a></figure><br>
「有効化」と「表示」の両方にチェックが入っていることを確認します。<br>
ここで、「有効化」のチェックを外すと、該当ライブラリの読み込みをしなくなるため、若干ですが、その分起動や挙動が早くなります。<br>
KiCAD には、５万種類程度のシンボルが予め用意されているものの、「絶対に使うことはないだろう」というものも存在します。「使わないこと」を確信できるものは、ここで「有効化」のチェックを外しておくとよいです。<br>
</section>
<section>
<h3><a href="https://www.basekernel.jp/basekrnl/0800#%e5%9b%9e%e8%b7%af%e5%9b%b3%e3%82%92%e6%8f%8f%e3%81%8d%e4%b8%8a%e3%81%92%e3%81%9f%e3%82%89%e3%83%bb%e3%83%bb%e3%83%bb">回路図を描き上げたら・・・</a></h3>
必ず、成すべきこととして「エレクトリカル ルール チェッカー(ERC)」の実施をします。<br>
下記に示すように、回路図エディタから「検査(I)」 → 「エレクトリカル ルール チェッカー(ERC)」をクリックします：<br>
<figure><a href="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/20260805_9.png" title="20260805_9.png"><img alt="20260805_9.png" src="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/20260805_9.png"></a></figure><br>
<br>
すると、下記左側のようなウィンドウが表示されるので、「ERCを実行」をクリックします。<br>
少なくともエラーの数がゼロになるまで、「回路図の修正」と「ERCを実行」を繰り返してください。<br>
<figure><a href="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/20260805_A.png" title="20260805_A.png"><img alt="20260805_A.png" src="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/.thumbnail/20260805_A.png.jpg"></a></figure>　<figure><a href="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/20260805_B.png" title="20260805_B.png"><img alt="20260805_B.png" src="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/.thumbnail/20260805_B.png.jpg"></a></figure><br>
<br>
こんな感じで、接続漏れ等の問題点が指摘されます。<br>
「エラー」は必ず解消すべき事象、「警告」は都度判断で「解消すべき」か「そのままで問題無しか」の判断を委ねられる事象を示します。<br>
<br>
KiCAD の回路図エディタは色々とクセが強いので、慣れるのはやや時間かかりそうです。<br>
次はプリント基板(PCB) エディタでのプリント基板設計工程になります。<br>
</section>

]]></description>
	</item>
	<item>
		<title>今更ながら KiCAD への移行を始める・・・</title>
		<link>https://www.basekernel.jp/basekrnl/0799#rss-tm1785936820</link>
		<guid>https://www.basekernel.jp/basekrnl/0799</guid>
		<category>電子工作</category>
		<pubDate>Wed, 05 Aug 2026 13:33:40 GMT</pubDate>
		<author>たかはし＠札幌</author>
		<description><![CDATA[<section>
いつもの個人メモですが、KiCAD を触ったことが無い方や関心だけお持ちの方には有益な内容かと思います。<br>
</section>
<section>
<h3><a href="https://www.basekernel.jp/basekrnl/0799#%e6%a6%82%e8%a6%81%e3%83%bb%e3%82%a4%e3%83%b3%e3%83%88%e3%83%ad%e3%83%80%e3%82%af%e3%82%b7%e3%83%a7%e3%83%b3">概要・イントロダクション</a></h3>
KiCAD は、電子機器回路図の作成から、シミュレーション、プリント基板の配線パターン設計まで、ひとつのツールで行えるＣＡＤソフトウェアです。こういったものは一般に「EDA」と言われています。<br>
大企業では、かつて大型コンピュータ(メインフレーム)を使って、既に業務に供していた開発ツールのひとつで、当方も業務の一環で使っていました。<br>
<br>
ある程度、回路図プリント基板の配線パターン設計を自動化する機能があります。<br>
まだ、試したことはないですが、シミュレーションはSpice モデルベースで、LTSpice や PSpice との互換があるようです。<br>
<br>
また、別途３Ｄプリンタと FreeCAD という別途ＣＡＤが必要ですが、kiCAD のプリント基板パターン設計にて、３Ｄモデルを扱う機能があり、この機能と FreeCAD を連携することで、ケース自体を３Ｄプリンタで製作することができるようです。<br>
<br>
旧トライステート社の開発ボード継承を実現する上で、必ずしも KiCAD で設計業務をする必要性はないのですが、全体的な作業効率や今後の開発環境整備を考慮すると、こういう環境に順応しておくことは不可欠なので、移行をしようと決断した次第。<br>
</section>
<section>
<h3><a href="https://www.basekernel.jp/basekrnl/0799#%e3%81%95%e3%81%a6%e3%80%81%e6%97%a9%e9%80%9f%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab">さて、早速インストール</a></h3>
KiCAD は 1992年頃、FreeCAD は 2002年10月下旬頃に初版リリースがなされ、両方共に無償利用が可能です。<br>
<br>
<a href="https://www.kicad.org/download/">https://www.kicad.org/download/</a> にＷｅｂブラウザでアクセスすると、下記のようなページが表示されます。〔2026/06/28 現在〕<br>
<figure><a href="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202606/20260628_1.png" title="20260628_1.png"><img alt="20260628_1.png" src="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202606/.thumbnail/20260628_1.png.jpg"></a></figure><br>
<br>
最新バージョンは、記事公開時点で、10.0.5 です。やや頻繁にアップデートされています。<br>
FreeBSD が無いのが不満ではあるが...  ヽ(^^;<br>
FreeBSD は正式サポートではないものの、有志な方々によって、Ports にて、KiCAD は最新バージョンへの追従がなされているようです。当然のことながら、 X11環境(いわゆる古き良きGUI)にて動作します。<br>
FreeCAD も FreeBSD にて、最新版が Ports で提供されています。<br>
<br>
「脱 Windows したい」と思いつつも、業務で必要なソフトウェアが、 FreeBSD 環境で揃わないため、仕方なく Windows を使い続けていますが、ここで Windows 版をダウンロードすると、インストーラ実行ファイルのサイズが 921MiB に達するため、それなりのダウンロード時間がかかりますし、空き容量も必要になります。<br>
<br>
ダウンロードしたら、早速インストールの実行。<br>
<figure><a href="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/20260628_2.png" title="20260628_2.png"><img alt="20260628_2.png" src="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/.thumbnail/20260628_2.png.jpg"></a></figure>　<figure><a href="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/20260628_3.png" title="20260628_3.png"><img alt="20260628_3.png" src="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/.thumbnail/20260628_3.png.jpg"></a></figure>　<figure><a href="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/20260628_4.png" title="20260628_4.png"><img alt="20260628_4.png" src="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/.thumbnail/20260628_4.png.jpg"></a></figure><br>
<br>
「NEXT &gt;」をクリックしつつ、上記のように進めます。<br>
次の画面で、必要な空き容量・インストール先と、残容量が表示されます。<br>
<figure><a href="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/20260628_5.png" title="20260628_5.png"><img alt="20260628_5.png" src="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/.thumbnail/20260628_5.png.jpg"></a></figure>　<figure><a href="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/20260628_6.png" title="20260628_6.png"><img alt="20260628_6.png" src="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/.thumbnail/20260628_6.png.jpg"></a></figure>　<figure><a href="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/20260628_7.png" title="20260628_7.png"><img alt="20260628_7.png" src="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/.thumbnail/20260628_7.png.jpg"></a></figure><br>
<br>
通常はインストール先は変更せずに「Install」をクリック。しばしの時間がかかりますが、右側のような画面が表示されたらインストール完了です。<br>
</section>
<section>
<h3><a href="https://www.basekernel.jp/basekrnl/0799#kicad-%e3%81%ae%e8%b5%b7%e5%8b%95%e3%83%bb%e4%bd%bf%e7%94%a8%e3%81%99%e3%82%8b%e6%ba%96%e5%82%99">KiCAD の起動・使用する準備</a></h3>
起動すると、下記左側のようなメインメニュー画面が表示されます。<br>
ここで、「ファイル(F)」→ 「新規プロジェクト...」をクリックします。<br>
<figure><a href="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/20260628_8.png" title="20260628_8.png"><img alt="20260628_8.png" src="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/.thumbnail/20260628_8.png.jpg"></a></figure>　<figure><a href="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/20260628_9.png" title="20260628_9.png"><img alt="20260628_9.png" src="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/.thumbnail/20260628_9.png.jpg"></a></figure><br>
<br>
すると、「テンプレート」を選択する画面になります。<br>
Arduino の拡張ボード製作用のテンプレート等あるようなのですが、ここでは迷わず「KiCAD のデフォルトテンプレート」を選びましょう。（下図画面参照）<br>
また、KiCAD は、制作物を「プロジェクト」単位で管理するようになっているようです。<br>
<figure><a href="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/20260628_A.png" title="20260628_A.png"><img alt="20260628_A.png" src="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/.thumbnail/20260628_A.png.jpg"></a></figure>　<figure><a href="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/20260628_B.png" title="20260628_B.png"><img alt="20260628_B.png" src="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/.thumbnail/20260628_B.png.jpg"></a></figure><br>
<br>
続いて、「プロジェクトフォルダ(ディレクトリ)」を設定する画面になります。<br>
<figure><a href="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/20260628_C.png" title="20260628_C.png"><img alt="20260628_C.png" src="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202608/.thumbnail/20260628_C.png.jpg"></a></figure><br>
ここで指定した文字列がそのまま「プロジェクト名」になります。<br>
日本語全角文字なんかが使えそうですが、予期せぬトラブルが起きると面倒なので、敢えて半角英数字を使いました。<br>
また、「このプロジェクト用に新しいフォルダーを作成」はチェックを入れたままにしてください。<br>
<br>
「プロジェクト」が作成されると、下記に示すように、<br>
中身が空の回路図ファイルとプリント基板設計ファイルが作成され、準備完了です。<br>
<figure><a href="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202606/20260628_D.png" title="20260628_D.png"><img alt="20260628_D.png" src="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202606/.thumbnail/20260628_D.png.jpg"></a></figure><br>
<br>
次は、KiCAD を使って、実際に回路図とプリント基板を設計し、気づいた点を簡単にまとめてみます。<br>
</section>

]]></description>
	</item>
	<item>
		<title>Icecast 2.5.0 は FreeBSD ではまともに動作しないので「ダウングレード」した</title>
		<link>https://www.basekernel.jp/basekrnl/0798#rss-tm1780379582</link>
		<guid>https://www.basekernel.jp/basekrnl/0798</guid>
		<category>サーバ運営・管理</category>
		<pubDate>Tue, 02 Jun 2026 04:37:36 GMT</pubDate>
		<author>たかはし＠札幌</author>
		<description><![CDATA[<section>
自分メモ。表題通りです。<br>
</section>
<section>
<h3><a href="https://www.basekernel.jp/basekrnl/0798#icecast-2.5.0-%e3%81%a8-ezstream-0.5.6-%e3%81%ae%e7%b5%84%e5%90%88%e3%81%9b%e3%81%af-freebsd-%e3%81%a7%e3%81%af%e4%bd%bf%e3%81%88%e3%81%aa%e3%81%84%e6%a8%a1%e6%a7%98">Icecast 2.5.0 と ezstream 0.5.6 の組合せは FreeBSD では使えない模様</a></h3>
Icecast は、Webラジオをサービスするにあたって、<br>
おそらく最も使用されているサーバソフトウェアと思われます。<br>
ところが、 Icecast 2.4.4 を Icecast 2.5.0(FreeBSD Ports での最新版)にアップデートすると、<br>
こうなります　↓<br>
<figure><a href="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202606/20260602_2.jpg" title="20260602_2.jpg"><img alt="20260602_2.jpg" src="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202606/.thumbnail/20260602_2.jpg.jpg"></a></figure><figure><a href="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202606/20260602_1.png" title="20260602_1.png"><img alt="20260602_1.png" src="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202606/.thumbnail/20260602_1.png.jpg"></a></figure><br>
<br>
「404 File Not Found」という謎のエラー。<br>
動作ログを眺めると<br>
<pre>
EROR admin/admin_handle_request Error parsing command string or unrecognised command: \x21POKE
EROR util/util_http_select_best Input string does not parse as KVA. Selecting first option.
</pre>
というのが残っています。<br>
どうも、 '!POKE' (「\x21」は「!」の文字コードです)いうコマンド(?) が ezstream 側から発生しており、<br>
Icecast 2.5 側で「意味不明」として処理されているのが直接の原因らしいです。<br>
<br>
FreeBSD 14/15 で Webラジオストリーミングをする場合、<br>
<pre>
# pkg info | grep icecast

ezstream-0.5.6_11              Command line utility for streaming to icecast servers
icecast-2.5.0,1                Streaming mp3/ogg-vorbis audio server
</pre>
このバージョンの組み合わせで Ports/Package で提供されており、ezstream の古さが際立っている感はあります。(ezstream の最新バージョンは 1.0.2)<br>
<br>
おそらく、ezstream 1.0.2 を「ソースコードから適切にインストール」すればよいのでしょうが、<br>
どうも上手くいきません・・・・・・<br>
<br>
なのでIcecast 2.4.4 に「ダウングレード」することにしました。<br>
あまり経験がないので、以下はその手順です。他のPorts でも応用が利きます。<br>
</section>
<section>
<h3><a href="https://www.basekernel.jp/basekrnl/0798#icecast-2.5.0-%e3%82%92-%e3%83%80%e3%82%a6%e3%83%b3%e3%82%b0%e3%83%ac%e3%83%bc%e3%83%89">Icecast 2.5.0 を ダウングレード</a></h3>
まず、 Ports から、 ports-mgmt/portdowngrade と、devel/subversion をインストールします。<br>
<pre>
# cd /usr/ports/ports-mgmt/portdowngrade
# make install clean 
# cd /usr/ports/devel/subversion
# make install clean
# rehash
# cd
</pre>
実際、portdowngrade は、subversion が無いと動作しない(依存関係にある)のですが、<br>
自動で依存関係のインストールをしないため、手動で２つのPorts をインストールします。<br>
最後の cd は、ログインユーザのホームディレクトリに移動するためのものです。<br>
一連の動作は root ユーザで行うとトラブルなく進みます。<br>
<table>
<tbody>
	<tr><td colspan="2"></td></tr>
</tbody></table>
次に<br>
<pre>
# portdowngrade audio/icecast | more
　または
# portdowngrade audio/icecast &gt; (好きな名前のファイル名)
</pre>
として、更新リビジョン履歴を取得・表示します。<br>
通常、表示画面に収まらない分量なので、 上記のやりやすいほうでどうぞ。<br>
こんな感じで、リビジョン情報が取得できます：<br>
<pre>
Choose a revision from this list and run /usr/local/sbin/portdowngrade audio/icecast revision
------------------------------------------------------------------------
r514128 | bapt | 2019-10-09 19:20:58 +0900 (2019/10/09 (水)) | 2 lines

Drop the ipv6 virtual category for a* category  as it is not relevant anymore

------------------------------------------------------------------------
r508834 | mat | 2019-08-14 01:00:39 +0900 (2019/08/14 (水)) | 2 lines

Convert to UCL &amp; cleanup pkg-message (categories a-c)

------------------------------------------------------------------------
r484332 | sunpoet | 2018-11-07 06:09:42 +0900 (2018/11/07 (水)) | 8 lines

Update to 2.4.4

- Update MASTER_SITES
- Fix LIB_DEPENDS
- Use USES=gnome

Changes:        https://gitlab.xiph.org/xiph/icecast-server/raw/release-2.4.4/ChangeLog

------------------------------------------------------------------------
r483913 | sunpoet | 2018-11-04 07:15:38 +0900 (2018/11/04 (日)) | 5 lines

Move audio/icecast2 to audio/icecast

- Clean up Makefile
- Bump PORTREVISION for package change

------------------------------------------------------------------------
r478138 | sunpoet | 2018-08-27 03:41:03 +0900 (2018/08/27 (月)) | 2 lines

Update WWW
</pre>
上記は、最初の一部です。直前の Icecast リビジョンは r514128 のようなので、このリビジョン(バージョン)へダウングレードします。<br>
<br>
次に、該当リビジョンの Ports 取得を行います：<br>
<pre>
# portdowngrade audio/icecast r514128
</pre>
<span style="color:#FF0000;">コマンドを実行したカレントディレクトリに取得した Ports ディレクトリが作成される</span>ことに注意してください。<br>
/usr/ports ディレクトリツリー配下で、 portdowngrade コマンドを実行しないようにしましょう。 <br>
本例示の場合は、カレントディレクトリに icecast ディレクトリが作成され、これが Ports ディレクトリになり<br>
ます。<br>
<br>
その次に、いよいよダウングレード作業ですが、<br>
ここでの注意点は、<span style="color:#FF0000;">「現在のリビジョンを先ず消去すること」</span>です。<br>
以下のように手順を進めます：<br>
<pre>
# cd /usr/ports/audio/icecast
# make deinstall
# cd 
# cd icecast
# make install clean
</pre>
これで、icecast は 2.4.4 にダウングレードされ、ezstream 0.5.6 との組み合わせで不具合は解消しました。<br>
こんな感じ ↓<br>
<pre>
# pkg info | grep icecast

ezstream-0.5.6_11              Command line utility for streaming to icecast servers
icecast-2.4.4,1                Streaming mp3/ogg-vorbis audio server
</pre>
<figure><a href="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202606/20260602_4.jpg" title="20260602_4.jpg"><img alt="20260602_4.jpg" src="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202606/.thumbnail/20260602_4.jpg.jpg"></a></figure><figure><a href="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202606/20260602_3.png" title="20260602_3.png"><img alt="20260602_3.png" src="https://www.basekernel.jp/../../htdocs/adiary/pub/basekrnl/image/202606/.thumbnail/20260602_3.png.jpg"></a></figure><br>
<br>
この Icecast ストリーミングは、エンドレスで数十曲の音楽垂れ流しをしていますが、<br>
著作権上の問題があり非公開です。個人で聴取するためと、技術的検証目的で稼働させています。<br>
<br>
最後に、ちょっと気になるのですが、最近の Ports は、確か git による管理に移行していて、 subversion での管理は過去のものだったような？？<br>
</section>

]]></description>
	</item>
	<item>
		<title>dovecot 2.4.3 は FreeBSD15 で使える</title>
		<link>https://www.basekernel.jp/basekrnl/0796#rss-tm1780364945</link>
		<guid>https://www.basekernel.jp/basekrnl/0796</guid>
		<category>サーバ運営・管理</category>
		<pubDate>Wed, 27 May 2026 05:54:08 GMT</pubDate>
		<author>たかはし＠札幌</author>
		<description><![CDATA[<section>
dovecot 2.4.2 は、何故か構築自体が出来なかったが、dovecot 2.4.3 は大丈夫です。<br>
最近、旧バージョンからの入れ替えで運用開始しましたが、特に問題は起きていないようです。<br>
<br>
<span style="color:#FF0000;">[2026/06/02 追記]</span><br>
<span style="color:#FF0000;">dovecot 2.4.3 を SASL にしている場合、</span><br>
<span style="color:#FF0000;">認証形式のうち、DIGEST-MD5 が正常に機能しない場合があることを確認しています。</span><br>
<span style="color:#FF0000;">dovecot 2.4.3にて DIGEST-MD5 の実装に何かしらの変化か問題があるものと認識しています。</span><br>
<br>
因みに dovecot は、メールサーバにインストールし、POP3/IMAP4 サーバとして機能させる為のものです。<br>
<br>
ソースコードを /usr/local/src ディレクトリ上に置いた gz アーカイブから展開し、<br>
<pre>
# setenv CPPFLAGS '-I/usr/local/include -I/usr/include'
# setenv LDFLAGS '-L/usr/local/lib -L/usr/lib'
# cd dovecot-2.4.3
# ./configure --sysconfdir=/usr/local/etc/ --localstatedir=/var --with-ldap=yes --with-ssldir=/usr --with-lua --with-pcre2 --without-bsdauth
</pre>
として、<br>
<pre>
# gmake
# gmake install
</pre>
で大丈夫です。dovecot 2.4.1 からのアップデートでは、特に dovecot.conf 群の変更は必要無いと思います。<br>
一部、configure のオプションを変更していますが、Warning が出るので、適宜変更しています。<br>
<br>
また、gmake 進行途上で<br>
<pre>
*** Warning: Linking the executable test-smtp-client-errors against the loadable module
*** libssl_iostream_openssl.so is not portable!
</pre>
という、メッセージが時折出力されますが、FreeBSD14,FreeBSD15 上での dovecot 2.4.3 運用においては、特に支障ないという見解になっています。<br>
</section>

]]></description>
	</item>
	<item>
		<title>FreeBSD Ports における FLAVOR の件・・・</title>
		<link>https://www.basekernel.jp/basekrnl/0797#rss-tm1779864736</link>
		<guid>https://www.basekernel.jp/basekrnl/0797</guid>
		<category>サーバ運営・管理</category>
		<pubDate>Wed, 27 May 2026 06:39:51 GMT</pubDate>
		<author>たかはし＠札幌</author>
		<description><![CDATA[<section>
自分メモで記述。。<br>
この件について、正直なところ、まともな理解をしていなかった訳だが・・・<br>
<br>
FLAVOR (フレーバ) とは、簡単に述べると『構築選択メニュー』のようなものです。<br>
最も判りやすいのは 「X11 対応あり」か「X11 対応無し」かを、選択する感じです。<br>
<br>
例えば、ImageMagick 7.x を Ports にて　X11 対応無しでインストールする場合、<br>
<pre>
　# cd /usr/ports/graphics/ImageMagick7
  # make install FLAVOR=nox11
</pre>
でインストール出来ます。<br>
FLAVOR を指定しない場合、ImageMagick7 の場合は、「X11 対応あり」で構築が進んでしまい、<br>
X11 を使わない場合に、大量の不要ソフトウェアがインストールされてしまいます。<br>
<br>
また、アップデートする場合、<br>
多くの方々が使われていると思われる、portupgrade は、今だに FLAVOR 付き Ports には対応していません。<br>
手っ取り早く、FLAVOR 対応済の、portmaster を使用することになります。<br>
<br>
で、この FLAVOR は、Ports 毎に種別や有無があり、どのような FLAVOR があるのかを確認するには、各々の Ports ディレクトリ直下で<br>
<pre>
　# make pretty-flavors-package-names
</pre>
を実行します。ImageMagick7 の場合は、おもむろに上記を実行すると、<br>
<pre>
　x11: ImageMagick7-7.1.2.23
　nox11: ImageMagick7-nox11-7.1.2.23
</pre>
のように出力され、x11 と nox11 の２つのFLAVOR が確認出来ます。<br>
一方で　FLAVOR が設定されていない Ports の場合は、<br>
<pre>
　no flavor: perl5-5.42.2
</pre>
のように出力されます。<br>
しかし！！　これは覚えにくい！！<br>
何故、「pretty-flavors-package-names」・・・なんて、こんな長ったらしいのか！<br>
素直に make flavors とかにすればよいのに、、とか思ってしまう。 <br>
</section>

]]></description>
	</item>
	<item>
		<title>これぞ「はんかくさい」奴</title>
		<link>https://www.basekernel.jp/basekrnl/0795#rss-tm1777314230</link>
		<guid>https://www.basekernel.jp/basekrnl/0795</guid>
		<category>はんかくさい</category>
		<pubDate>Mon, 27 Apr 2026 16:32:23 GMT</pubDate>
		<author>たかはし＠札幌</author>
		<description><![CDATA[<section>
・先ず、こういうことをやらかすのを「ハッカー」とは言わない。<br>
　「サイバーテロリスト」と称するほうが妥当。<br>
・チャットは全くやらない。メッセンジャー・・・何ですか。美味しいのかな？　使ってないし。<br>
・アダルトコンテンツサイトの熱心なサポータ？？　そういう趣味は無いかなぁ（笑<br>
<br>
まぁ言いたいことは判ります。「カネを脅して騙し取りたい」ということは良く判るね。<br>
でも、同じようなメールを受けて焦る方々は少数居られると思うので、この機会に注意喚起をしておきます。<br>
もし同じような電子メールを受けて不安であれば、警察に相談もありかと思います。<br>
万が一、千歩譲って事実だと仮定しましょう。ならば、これは誰が見ても脅迫罪ですね。<br>
電子メールというのは、構造上または技術的な面で詐称が比較的簡単なのは、知っておくと有益です。<br>
<br>
以下、「はんかくさい」メールをほぼそのまんま晒しておきます。<br>
<blockquote>
件名：「未決済分の支払いを御見逃しなく。今月分勤務の支払いを完了してください。」<br>
<br>
こんにちは！<br>
<br>
恐縮ながら、悲しいニュースをお伝えします。<br>
約１、２ヶ月前に、あなたがネットの閲覧にお使いのデバイス全てに対する、完全なアクセスの獲得に私は成功しました。<br>
獲得してからは、継続的にあなたのインターネット活動を観察し始めたのです。<br>
<br>
ご参考までに、下記に経緯を記載しておきますので、お読みください。<br>
まずは、メールアカウントの長いリストへの特別なアクセス権を、私はハッカーから購入しました。(最近では、ネット上で取り引きして普通に購入できます。)<br>
明らかに、あなたのメールアカウント（○○@○○）にログインすることは難しくありませんでした。<br>
<br>
次の行動は、同じ週に、メールへのログインにご使用されている全デバイスのオペレーションシステムにトロイの木馬をインストールしました。<br>
正直なところ、作業はかなりスムーズに進みました。（受信ボックス内のメールに記載されたリンクを、ご親切に何度かクリックしてくださったからです。）<br>
天才はあなたか私のどちらかですよ。 ('^')<br>
<br>
トロイの木馬のお陰で、デバイスの全コントローラー（あなたのビデオカメラ、キーボード、マイク等）へのアクセス権を私は獲得しました。<br>
その結果、写真、Webの閲覧履歴等、さまざまなデータを楽に自分のサーバーにダウンロードすることができました。<br>
さらに、メールやチャット履歴、メッセンジャー、連絡先リスト等を含む、頻繁にお使いのSNS全てに私はアクセスしています。<br>
独自性のある私のウイルスは常に署名を更新しているため、どんなウイルス対策ソフトでも検知されません。（ドライバーに作用するからです。）<br>
<br>
今回の連絡があるまでずっと私の存在が検知されなかった理由は、既にご理解いただけたかと思います…。<br>
<br>
あなたに関係する全てのマテリアルを集めている最中に、エッチなアダルトコンテンツを集めているサイトの熱心なサポーターであり、頻繁なユーザーだということが分かりました。<br>
AVサイトに訪問することも、刺激的な動画を見ることも、忘れがたい快楽に耐えることも、本当に大好きなようですね。<br>
事実、どうしてもあなたがメインで登場する卑猥な一人エッチの瞬間を録画して、あなたのマスタベーションと射精シーンを露わにする動画をあとから編集して作らずにはいられませんでした。<br>
<br>
もしまだ私の言うことが信じられないのなら、ただマウスを１、２度クリックするだけで、全ての動画をご友人、同僚、親戚を含む全てのお知り合いに送ることができます。<br>
さらに、この動画コンテンツを誰でも閲覧できるように、オンライン上にアップロードすることも可能です。<br>
普段見ていらっしゃる動画に、どんなに淫らなものが表示されているのか（私が言いたいことはお分かりのはずです）を考えても、公開なんてことは絶対に起きてほしくないことでしょう。面目丸潰れになるはずです。<br>
<br>
この問題を解決する方法は以下の通りです。<br>
私の口座に20万円 を送金してください。（送金日の為替率に応じた20万円相当のビットコイン）そうすれば、送金を受け取り次第、すぐに遅れることなく淫らな動画を削除します。<br>
そのあとは、何事もなかったかのように振る舞いましょう。さらに、トロイの木馬のソフトウェアを無効にし、お使いのデバイス全てから削除することを約束します。私は約束を守る人なので、何も心配は要りません。<br>
<br>
比較的値下げされた価格なので、本当に悪くない話のはずです。あなたのプロフィールとトラッフィックが、長期間ずっと監視されていたことを考えてみてください。<br>
もしビットコインの購入方法や取引方法が不確かな場合は、全てオンライン上で検索できます。<br>
<br>
ご参照用に私のビットコインウォレットは次の通りです： 17d54zhCxYjVDduY6uBK1Q1Eqy22jDK6dJ<br>
48時間（２日間）が猶予でカウントダウンはこのメールを開いた時点で開始します。<br>
<br>
下記には覚えておくべきこと、避けるべきことが記載されています。<br>
&gt; 私のメールに返信しても意味がありません。（このメールと返信アドレスは、あなたの受信ボックス内で作成されているからです。）<br>
&gt;<br>
警察や他の警備会社に通報しても意味がありません。さらに、この情報を絶対にご友人と共有しないでください。もし私がそれを知ると、あなたのエッチな動画はすぐに公開されます。<br>
（私のスキルを思い出してください。私はあなたの全てのシステムをコントロールし常に監視しているので、情報を共有しているかどうかを知るのは簡単です。）<br>
&gt; 私を探すのも無意味です。絶対に見つからないからです。仮想通貨の取引は完全に匿名で追跡不可能です。<br>
&gt;<br>
OSをデバイスにインストールし直したり、デバイスを捨てたりしても意味はありません。あなたがメインで登場する全ての動画はリモートサーバーに既にアップロードされているので、それでは問題解決にはなりません。<br>
<br>
気になっているであろう事について：<br>
&gt; 送金が私に届かないこと。<br>
ご安心を。私はすぐに何でも追跡できるので、送金が完了したことは必ず分かります。あなたが行ったすべての活動を断続的に追跡しているからです。（私のトロイの木馬ウイルスは、TeamViewerのように全てのプロセスを離れた場所から管理します。）<br>
&gt; 私のウォレットにお金を送った後でも、あなたの動画が散布されるかもしれないこと。<br>
お金を無事いただいた後も面倒をかける価値はないので、そこは信じてください。その上、散布することが目的なら、既に行なっているはずです！<br>
<br>
分かりやすく取引を行いましょう！<br>
<br>
最後に、１つおすすめしたいことがあります…今後、似たような不快なことには関わらないようにしてください！<br>
私から言えることは、全てのパスワードを頻繁に変更することは大切です<br>
</blockquote>
</section>

]]></description>
	</item>
	<item>
		<title>dovecot 2.4.2 がリリースされたが・・・・</title>
		<link>https://www.basekernel.jp/basekrnl/0794#rss-tm1762363418</link>
		<guid>https://www.basekernel.jp/basekrnl/0794</guid>
		<category>サーバ運営・管理</category>
		<pubDate>Wed, 05 Nov 2025 17:21:21 GMT</pubDate>
		<author>たかはし＠札幌</author>
		<description><![CDATA[<section>
どう頑張っても構築自体が出来ない。<br>
ソースコードを /usr/local/src ディレクトリ上に置いた gz アーカイブから展開し、<br>
<pre>
# setenv CPPFLAGS '-I/usr/local/include -I/usr/include'
# setenv LDFLAGS '-L/usr/local/lib -L/usr/lib'
# cd dovecot-2.4.2
# ./configure --sysconfdir=/usr/local/etc/ --localstatedir=/var --with-ldap=yes --with-ssldir=/usr --program-transform-name=gsed --with-libbsd --without-bsdauth --without-pam
</pre>
として、<br>
<pre>
# gmake
</pre>
を実行・・・　　数分後、<br>
<pre>
  CCLD     test-lib
gmake[4]: ディレクトリ '/usr/local/src/dovecot-2.4.2/src/lib' から出ます
gmake[3]: ディレクトリ '/usr/local/src/dovecot-2.4.2/src/lib' から出ます
Making all in lib-regex
gmake[3]: ディレクトリ '/usr/local/src/dovecot-2.4.2/src/lib-regex' に入ります
  CC       test-regex.o
  CC       regex.lo
  CCLD     libdregex.la
gmake[3]: *** 'test-regex' に必要なターゲット '-L/usr/local/lib' を make するルールがありません.  中止.
gmake[3]: ディレクトリ '/usr/local/src/dovecot-2.4.2/src/lib-regex' から出ます
gmake[2]: *** [Makefile:600: all-recursive] エラー 1
gmake[2]: ディレクトリ '/usr/local/src/dovecot-2.4.2/src' から出ます
gmake[1]: *** [Makefile:733: all-recursive] エラー 1
gmake[1]: ディレクトリ '/usr/local/src/dovecot-2.4.2' から出ます
gmake: *** [Makefile:575: all] エラー 2
</pre>
となるんです。<br>
当方の固有環境の原因か、FreeBSD 固有の環境要因か切り分けと調査を試みるも、色々試行錯誤しても判らない。<br>
コンパイルの最初のほうで出るので、全く構築になっていない。<br>
<br>
これとは全く別件事象で、Linux環境でもコンパイルエラーになるというのを、本家サイトで確認。<br>
どうも最新のＣコンパイラにて、 src/lib/unicode-transform.c　がコンパイルエラーになるということらしいです。<br>
<span>[<a href="https://dovecot.org/mailman3/archives/list/dovecot@dovecot.org/thread/DJTESZXLEZS3WHDGSXX26GIRBGWTHN3Y/">https://dovecot.org/mailman3/archives/list/dovecot@dovecot.org/thread/DJTESZXLEZS3WHDGSXX26GIRBGWTHN3Y/</a>]</span><br>
<br>
ということで、現時点で FreeBSD にて dovecot 2.4.2 は『使えない』という事態になっています。<br>
</section>

]]></description>
	</item>
	<item>
		<title>milter-manager は OpenDMARC を自動検出しない！</title>
		<link>https://www.basekernel.jp/basekrnl/0793#rss-tm1779860543</link>
		<guid>https://www.basekernel.jp/basekrnl/0793</guid>
		<category>サーバ運営・管理</category>
		<pubDate>Tue, 03 Jun 2025 19:57:38 GMT</pubDate>
		<author>たかはし＠札幌</author>
		<description><![CDATA[<section>
最近気づいたんですが、Postfix 側の milter インタフェースも安定してきていて、<br>
複数の milter を直感的に指定できるようになっていたり(当初から？)しているので、milter-manager を使う出番はそろそろ・・・<br>
という状況ですが、一度にあれもこれもカスタマイズ出来ないので、milter-manager を使い続けているわけですが・・・<br>
<br>
最初は、milter-manager 経由で動作させている OpenDKIM は機能しているのに、どう頑張っても OpenDMARC が付けてくれるはずのメールヘッダが一向に付かないので悩んでいました。<br>
OpenDMARC を milter-manager 経由で稼働させている実績はどうやら一般的に皆無で、マイナーな milter なのか、と思ってたりしましたが・・・<br>
<br>
そもそも、milter-manager に OpenDMARC milter が識別されているのかどうかになります。<br>
なので、おもむろに<br>
<pre>
# /usr/local/sbin/milter-manager -u milter-manager --show-config
</pre>
を実施すると・・・<br>
<pre>
# /usr/local/lib/milter-manager/binding/lib/milter/manager/detector.rb:37
define_milter("milter-opendkim") do |milter|
  # /usr/local/lib/milter-manager/binding/lib/milter/manager/detector.rb:45
  milter.connection_spec = "local:/var/run/milteropendkim/dkim-milter"
  # default
  milter.description = nil
  # /usr/local/lib/milter-manager/binding/lib/milter/manager/detector.rb:38
  milter.enabled = true
  # default
  milter.fallback_status = "accept"
  # default
  milter.evaluation_mode = false
  # default
  milter.applicable_conditions = []
  # /usr/local/lib/milter-manager/binding/lib/milter/manager/detector.rb:40
  milter.command = "/usr/local/etc/rc.d/milter-opendkim"
  # /usr/local/lib/milter-manager/binding/lib/milter/manager/detector.rb:41
  milter.command_options = "start"
  # default
  milter.user_name = nil
  # default
  milter.connection_timeout = 297.0
  # default
  milter.writing_timeout = 7.0
  # default
  milter.reading_timeout = 7.0
  # default
  milter.end_of_message_timeout = 297.0
end
</pre>
は、出てくるが、milter-opendmarc は出てきません。つまり、<span>認識されていなかった。。</span>orz...<br>
ここから、自動認識させるための試行錯誤が始まります。<br>
<br>
先ず、/usr/local/etc/milter-manager/defaults/freebsd.conf を修正してみます：<br>
３３行目あたりに、<br>
<pre>
  ["clamav-milter", []],
  ["milter-dkim", []],
  ["milter-opendkim", []],
  [
    "spamass-milter",
    [
      "Remote Network",
      "Unauthenticated",
      "No Stress",
    ],
  ],
</pre>
とあるので、["milter-dkim", []] とある行の下に、  ["milter-opendmarc", []],　を追加し、<br>
<pre>
  ["clamav-milter", []],
  ["milter-dkim", []],
  ["milter-opendkim", []],
  ["milter-opendmarc", []],
  [
    "spamass-milter",
    [
      "Remote Network",
      "Unauthenticated",
      "No Stress",
    ],
  ],
</pre>
のようにします。これで、<br>
<pre>
# /usr/local/sbin/milter-manager -u milter-manager --show-config
</pre>
を実施すると、"milter-opendmarc" は識別されるようになりました。<br>
注意点としては、<span style="color:#FF0000;">FreeBSD の場合、/usr/local/etc/rc.d 配下のスクリプトファイル名を milter-opendmarc にし、実行権を与えておくようにしておくこと</span>が必須です。<br>
<br>
これで解決か？と思ったんですが、<br>
今度はメールを受信する度に /var/log/maillog に<br>
<pre>
milter-manager[53830]: [egg][error] must set connection spec: milter-opendmarc
</pre>
という、エラーが出て OpenDMARCは動作しません。再び、<br>
<pre>
# /usr/local/sbin/milter-manager -u milter-manager --show-config
</pre>
とすると、<br>
<pre>
# /usr/local/lib/milter-manager/binding/lib/milter/manager/detector.rb:37
define_milter("milter-opendmarc") do |milter|
  # /usr/local/lib/milter-manager/binding/lib/milter/manager/detector.rb:45
  milter.connection_spec = nil　← 注目
  # default
  milter.description = nil
  # /usr/local/lib/milter-manager/binding/lib/milter/manager/detector.rb:38
  milter.enabled = true
  ・・・・
</pre>
要するに、milter-manager からは、接続先不明状態という状況。<br>
幸いにも OpenDKIM が機能しているので、これを手掛かりに 自動検出スクリプトの修正を行いました。。。<br>
<br>
先ず、/usr/local/lib/milter-manager/binding/lib/milter/manager にディレクトリを移動します：<br>
修正したのは、<br>
<pre>
detector.rb
freebsd-rc-detector.rb
</pre>
の２つ。新規に opendkim-config-parser.rb を参考に、 opendmarc-config-parser.rb を追加で作成しています。<br>
結構あちこち修正したので、差分を提示しておきます。<br>
１） detector.rb<br>
<span style="color:#FF0000;">※ [2026/05/27 追記] 例示の diff は milter-manager 2.2.7 のもので、 2.2.9 では数行前後しています。</span><br>
<pre>
--- detector.rb.old 2024-08-12 05:01:29.000000000 +0900
+++ detector.rb.new 2025-06-03 23:53:01.772724000 +0900
@@ -16,6 +16,7 @@
 require 'milter/manager/clamav-milter-config-parser'
 require 'milter/manager/milter-greylist-config-parser'
 require 'milter/manager/opendkim-config-parser'
+require 'milter/manager/opendmarc-config-parser'
 require 'milter/manager/rmilter-socket-detector'
 require 'milter/manager/rspamd-proxy-detector'

@@ -85,6 +86,10 @@
       opendkim_config_parser.socket
     end

+    def detect_opendmarc_connection_spec
+      opendmarc_config_parser.socket
+    end
+
     def detect_rmilter_connection_spec
       Milter::Manager::RmilterSocketDetector.new(rmilter_conf).detect
     end
@@ -138,6 +143,7 @@
       @clamav_milter_config_parser = nil
       @milter_greylist_config_parser = nil
       @opendkim_config_parser = nil
+      @opendmarc_config_parser = nil
     end

     def set_variable(name, unnormalized_value)
@@ -265,5 +271,14 @@
       end
       @opendkim_config_parser
     end
+
+    def opendmarc_config_parser
+      if @opendmarc_config_parser.nil?
+        @opendmarc_config_parser = Milter::Manager::OpenDMARCConfigParser.new
+        @opendmarc_config_parser.parse(opendmarc_conf)
+      end
+      @opendmarc_config_parser
+    end
+
   end
 end
</pre>
２）freebsd-rc-detector.rb<br>
<span style="color:#FF0000;">※ [2026/05/27 追記] 例示の diff は milter-manager 2.2.7 のもので、 2.2.9 では数行前後しています。</span><br>
<pre>
--- freebsd-rc-detector.rb.old  2024-08-12 05:01:29.000000000 +0900
+++ freebsd-rc-detector.rb.new  2025-06-04 00:05:45.417658000 +0900
@@ -55,6 +55,10 @@
       @script_name == "milter-opendkim" or @name == "milteropendkim"
     end

+    def opendmarc?
+      @script_name == "milter-opendmarc" or @name == "milteropendmarc"
+    end
+
     def detect_rmilter_connection_spec
       Milter::Manager::RmilterSocketDetector.new(rmilter_conf).detect
     end
@@ -92,6 +96,12 @@
         "/usr/local/etc/opendkim.conf"
     end

+    def opendmarc_conf
+      @variables["cfgfile"] ||
+        extract_parameter_from_flags(command_args, "-C") ||
+        "/usr/local/etc/opendmarc.conf"
+    end
+
     def rmilter_conf
       extract_parameter_from_flags(command_args, "-c") ||
         "/usr/local/etc/rmilter.conf"
@@ -111,6 +121,7 @@
       spec ||= detect_enma_connection_spec if enma?
       spec ||= detect_clamav_milter_connection_spec if clamav_milter?
       spec ||= detect_opendkim_connection_spec if opendkim?
+      spec ||= detect_opendmarc_connection_spec if opendmarc?
       spec ||= detect_rmilter_connection_spec if rmilter?
       spec ||= detect_rspamd_proxy_connection_spec if rspamd?
       spec
@@ -141,6 +152,17 @@
           detector.detect
           detector.apply(loader)
         end
+      end
+      if opendmarc? and _profiles and !_profiles.empty?
+        _profiles.each do |profile|
+          detector = FreeBSDRCProfileDetector.new(@configuration,
+                                                  @script_name,
+                                                  profile,
+                                                  self,
+                                                  &amp;@connection_spec_detector)
+          detector.detect
+          detector.apply(loader)
+        end
       else
         super
       end
@@ -206,6 +228,10 @@
     end

     def detect_opendkim_connection_spec
+      super || @base_variables["socket"]
+    end
+
+    def detect_opendmarc_connection_spec
       super || @base_variables["socket"]
     end
</pre>
３）opendmarc-config-parser.rb<br>
　　opendkim-config-parser.rb をコピーし、下記の修正です：<br>
<pre>
--- opendkim-config-parser.rb   2025-05-26 02:31:08.119826000 +0900
+++ opendmarc-config-parser.rb  2025-06-03 23:47:40.989538000 +0900
@@ -16,7 +16,7 @@
 require "milter/manager/file-reader"

 module Milter::Manager
-  class OpenDKIMConfigParser
+  class OpenDMARCConfigParser
     def initialize
       @variables = {}
     end
</pre>
当方は、ruby は殆ど扱った経験は無いので、「見よう見真似」と「推測」で修正しており、実際はもっと小規模な修正で出来るかもしれませんし、更なる修正が必要かもしれません。<br>
<br>
上記の修正後、<br>
<pre>
# /usr/local/sbin/milter-manager -u milter-manager --show-config
</pre>
を実施すると、<br>
<pre>
# /usr/local/lib/milter-manager/binding/lib/milter/manager/detector.rb:37
define_milter("milter-opendmarc") do |milter|
  # /usr/local/lib/milter-manager/binding/lib/milter/manager/detector.rb:45
  milter.connection_spec = "local:/var/run/opendmarc/socket"　　← 注目
  # default
  milter.description = nil
  # /usr/local/lib/milter-manager/binding/lib/milter/manager/detector.rb:38
  milter.enabled = true
  # default
  milter.fallback_status = "accept"
  # default
  milter.evaluation_mode = false
  # default
  milter.applicable_conditions = []
  # /usr/local/lib/milter-manager/binding/lib/milter/manager/detector.rb:40
  milter.command = "/usr/local/etc/rc.d/milter-opendmarc"
  # /usr/local/lib/milter-manager/binding/lib/milter/manager/detector.rb:41
  milter.command_options = "start"
  # default
  milter.user_name = nil
  # default
  milter.connection_timeout = 297.0
  # default
  milter.writing_timeout = 7.0
  # default
  milter.reading_timeout = 7.0
  # default
  milter.end_of_message_timeout = 297.0

</pre>
接続先も認識され、めでたく OpenDMARC が milter-manager で利用できるようになりました。<br>
<br>
これで、今年２月にやりたかった DMARC 対応が、設備移転で全く出来なかった状況を脱し、やっと準備完了となりました・・orz<br>
</section>

]]></description>
	</item>
	<item>
		<title>〔FreeBSD Ports〕glib、gobject-introspection のコンパイルエラー</title>
		<link>https://www.basekernel.jp/basekrnl/0792#rss-tm1778176090</link>
		<guid>https://www.basekernel.jp/basekrnl/0792</guid>
		<category>サーバ運営・管理</category>
		<pubDate>Mon, 26 May 2025 15:05:45 GMT</pubDate>
		<author>たかはし＠札幌</author>
		<description><![CDATA[<section>
FreeBSD の Ports を用いてソフトウェアの更新をする際、<br>
portupgrade コマンドを常用している方々はそこそこ居られると思うのですが、<br>
このコマンドを使用して glib と gobject-introspection をアップデートすると・・・<br>
<blockquote>
glib-2.84.1,2 depends on file: /usr/local/gobject-introspection-bootstrap/bin/g-ir-scanner - not found<br>
*** Error code 1<br>
<br>
Stop.<br>
make[1]: stopped in /usr/ports/devel/glib20<br>
*** Error code 1<br>
</blockquote>
のようなエラーとなって、構築不能となる。<br>
要するに構築に必要な g-ir-scanner 実行ファイルが見つからないので、どうにも出来ないという状況。<br>
<br>
この件の情報収集をしていると、「/usr/ports/UPDATING に記載がある」といいます。<br>
確かに、提起のテキストファイル内の 20250402: と記載がある行の下に記載があります：<br>
<blockquote>
20250402:<br>
  AFFECTS: users of devel/glib20 and devel/gobject-introspection building outside of Poudriere<br>
  AUTHOR: arrowd@FreeBSD.org<br>
<br>
  New versions of glib started to require gobject-introspection as a build<br>
  dependency, while gobject-introspection requires glib to build. This forms a<br>
  dependency cycle that is dealt with by introducing the @bootstrap flavor for<br>
  mentioned ports. This solution is suggested by the upstream as well, see<br>
  https://discourse.gnome.org/t/dealing-with-glib-and-gobject-introspection-circular-dependency/18701<br>
<br>
  When building devel/glib20 in Poudriere no manual intervention is required.<br>
  The devel/glib20@bootstrap gets built first and provides for<br>
  devel/gobject-introspection@bootstrap. This in turn provides for a normal<br>
  devel/glib20 build, which finally fulfills a dependency for normal devel/gobject-introspection<br>
<br>
  Users that are building outside of the isolated environments will be ending<br>
  up with useless glib-bootstrap and gobject-introspection-bootstrap packages<br>
  installed after each update. These can be removed with<br>
<br>
  pkg remove glib-bootstrap gobject-introspection-bootstrap<br>
</blockquote>
正直、「どう対処するのか？」という観点では非常に判りにくいです：<br>
Google翻訳をしてみました。<br>
<blockquote>
20250402:<br>
影響: Poudriere 以外で devel/glib20 および devel/gobject-introspection をビルドするユーザー<br>
作成者: arrowd@FreeBSD.org<br>
<br>
glib の新しいバージョンでは、ビルド依存関係として gobject-introspection が必須になりました。一方、gobject-introspection はビルドに glib を必要とします。これにより依存関係の循環が発生しますが、上記の port に @bootstrap フレーバーを導入することで対処できます。この解決策はアップストリームでも提案されています。詳細は、https://discourse.gnome.org/t/dealing-with-glib-and-gobject-introspection-circular-dependency/18701 を参照してください。<br>
<br>
Poudriere で devel/glib20 をビルドする場合、手動による介入は不要です。<br>
devel/glib20@bootstrap が最初にビルドされ、devel/gobject-introspection@bootstrap に提供されます。これにより、通常の devel/glib20 ビルドが可能になり、最終的に通常の devel/gobject-introspection の依存関係が満たされます。<br>
<br>
隔離環境外でビルドを行っているユーザーは、アップデートのたびに不要な glib-bootstrap および gobject-introspection-bootstrap パッケージがインストールされてしまいます。これらのパッケージは、<br>
<br>
pkg delete glib-bootstrap gobject-introspection-bootstrap で削除できます。<br>
</blockquote>
更に見ていくと、どうもこの「フレーバー」という仕組みが最近 Ports に組み込まれたらしく、現行のportupgrade (Ver 2.4.16) ではこの仕組みを解釈出来ないことが原因の模様。<br>
<br>
<span style="color:#FF0000;">(2026/05/08 追記)：</span><br>
<span style="color:#FF0000;">　この記事では「最近」と記述していますが、「フレーバー」の導入は 2017年に行われていた模様。。</span><br>
<span style="color:#FF0000;">　要するにこの仕組みを認知したのが、この記事を記述した直前ということで。。。</span><br>
<br>
この解決方法を記載されていたページを見つけたので、ここで肝の部分だけ引用してみます:<br>
<blockquote cite="https://kdeguchi.lsv.jp/2025/04/03/post-1338/">
1.    glibをglib-bootstrapに変更(glib-bootstrapはgobject-introspectionが必要ない)する。<br>
2.    gobject-introspectionをgobject-introspection-bootstrapに変更する。<br>
3.    glib-bootstrapをglibへ更新する。<br>
4.    gobject-introspection-bootstrapをgobject-introspectionへ更新する。<br>
<br>
具体的には以下のように実行します。<br>
<br>
# pkg_replace glib=/usr/ports/devel/glib20@bootstrap<br>
# pkg_replace gobject-introspection=/usr/ports/devel/gobject-introspection@bootstrap<br>
# pkg_replace glib-bootstrap=/usr/ports/devel/glib20<br>
# pkg_replace gobject-introspection-bootstrap=/usr/ports/devel/gobject-introspection<br>
<cite><a href="https://kdeguchi.lsv.jp/2025/04/03/post-1338/">glibとgobject-introspectionのアップデート | 出口の興味関心あるもの</a></cite></blockquote>
当方でもここで提示されている方法で、glibと、gobject-introspection を更新出来ました。<br>
しかしまぁ。。 /usr/ports/UPDATING を注意深く見ている人はそう居ないような気も、、、<br>
<br>
<span style="color:#FF0000;">※注意(2025/06/05 追記)：</span><br>
<span style="color:#FF0000;">　引用元サイトにて明記されていないので補足します。</span><br>
<span style="color:#FF0000;">　・pkg_replace は、予め Ports の ports_mgmt/pkg_replace　を別途インストールする必要があります。</span><br>
<span style="color:#FF0000;">　・どうやら、構築時に lang/python-3.11.12 以上のバージョンと devel/meson-1.7.0 以上のバージョンが依存するらしく、</span><br>
<span style="color:#FF0000;">　　少なくともこの２つが提起バージョン未満だと、上手くいきません。当方は、これでしばらく悩みました。</span><br>
</section>

]]></description>
	</item>
</channel>
</rss>
