Unix - クリアコード

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 DesktopWSL2でも利用されるため、Windowsゲストでこれらを使用する際にも必要な設定となります。

もっと読む

Unixシェルで手軽にデータを集計する (後編)

この記事は5月16日の記事「Unixシェルで手軽にデータを集計する (前編)」の続きです。

もっと読む

Unixシェルで手軽にデータを集計する (前編)

クリアコードの藤本です。

もっと読む