Unix
メールフィルタープラグインであるmilterをPythonで簡単実装! - milterを実装できるようになろう編
以前の記事で、milter managerというメールフィルタを管理するための自由ソフトウェアを、GObject Introspectionに対応させてバインディングを生成することについて紹介しました。
milter managerは従来からRubyでmilterを作るためのライブラリーを提供してきましたが、今回のGObject Introspection対応によって、Pythonでmilterを作るためのライブラリーも提供するようになりました。
前回の記事では、実際にPythonで書いたmilterを動かしてみることについて紹介しています。
今回は、milter managerの機能を使ってPythonでmilterを作る方法について詳しく紹介します。
なお本記事の内容は、milter manager v2.2.5についての説明になります。
メールフィルタープラグインであるmilterをPythonで簡単実装! - milterを動かしてみよう編
前回と前々回の記事では、milter managerというメールフィルタを管理するための自由ソフトウェアを、GObject Introspectionに対応させてバインディングを生成することについて紹介しました。
milter managerは従来からRubyでmilterを作るためのライブラリーを提供してきましたが、今回のGObject Introspection対応によって、Pythonでmilterを作るためのライブラリーも提供するようになりました。
今回は、milter managerの機能を使ってPythonで書いてみます。 また、書いたmilterを実際に動かす方法も紹介します。
GObject Introspectionによるバインディングの(ほぼ)自動生成
前回、Mesonを使ってGObject Introspection対応のビルドシステムを構築する方法の記事で、Mesonを使ってGObject Introspection対応のビルドシステムを構築する基本的な方法を、milter managerというメールフィルタを管理するための自由ソフトウェアを事例に説明しました。
GObject Introspectionに対応することで、RubyやPythonなどのバインディングを(ほぼ)自動で生成できます。 milter managerは、これによって生成したPythonバインディングを利用することで、Pythonでmilterを作るためのライブラリーを提供できるようになりました。
今回は、GObject Introspectionによるバインディングの生成と利用について紹介します。
Mesonを使ってGObject Introspection対応のビルドシステムを構築する方法
最近、milter managerというフリーソフトウェアを Mesonというビルドシステムに対応させる作業を行っている福田です。
その主な目的は、RubyやPython用のバインディングを自動で生成できるようにすることです。
ライブラリーがGObjectを利用している場合、 GObject Introspectionを使えば(ほぼ)自動でバインディングを生成できます。
MesonにはGObject Introspectionサポート(Meson Integration) が組み込まれているので、Mesonを使うと簡単にGObject Introspectionを利用できます。
今回は、Mesonを使ってGObject Introspection対応のビルドシステムを構築する方法を説明します。
Red Hat Enterprise Linux系OSの種類やバージョンを見分ける方法
最近GNU/Linux系のパッケージング周りの仕組みに初めてチャレンジしている福田です。
複数のプラットフォームを想定する場合、動作しているプラットフォームを見分けることが必要になります。
今回は、Red Hat Enterprise Linux系OSの種類とバージョンの見分け方をご紹介します。
GNU/Linuxの共有ライブラリーのバージョンとアプリケーションバイナリインターフェース(ABI)
最近、GNU/Linuxの共有ライブラリーのビルドシステムの改良業務をしている福田です。
共有ライブラリーのバージョンについて考えるには、共有ライブラリーの構成の仕組みと、アプリケーションバイナリインターフェース(ABI) という概念について把握する必要がありました。
普段何となく共有ライブラリーを利用する側としてはあまり意識してきませんでしたが、 共有ライブラリーを作って提供する側にとっては重要な概念です。
GNU/Linuxシステムにおいて、共有ライブラリーのメジャーバージョンは、その他の桁のバージョンに比べて特別な意味を持ちます。 メジャーバージョンが変わることは、アプリケーションバイナリインターフェース(ABI)の互換性がなくなることを示すことが一般的です。
本記事では、共有ライブラリーの構成とABIについて紹介します。
GitHub Actions: VirtualBoxを使って.deb/.rpmパッケージをテストする
最近GNU/Linux系のパッケージング周りの仕組みに初めてチャレンジしている福田です。
GitHub Actionsにおける.deb/.rpmパッケージのテストにVirtualBoxが便利だったので、今回はその方法についてご紹介します。
QEMU/KVMのWindows仮想環境上でHyper-Vを使用する方法
Groongaという全文検索エンジンの開発に参加している橋田です。
Windows仮想環境(以下、Windowsゲストと表記します)を構築して、その中でHyper-Vを使用する機会がありました。
今回は、QEMU/KVMを使ってWindowsゲストでHyper-Vを使用する方法について紹介します。
Hyper-VはDocker DesktopやWSL2でも利用されるため、Windowsゲストでこれらを使用する際にも必要な設定となります。