Nagios を日本語化してRPMビルドする
環境
- macOS High Sierra 10.13.2
- docker 17.09.1-ce, build 19e2cf6 − Nagios 4.3.4
作業場所作成
作業するディレクトリを用意します。
sudo mkdir -p /tmp/rpmbuild/SOURCES /tmp/rpmbuild/SPEC
sudo chmod a+w /tmp/rpmbuild
Docker
Dockerを利用できる環境を用意してください。
また、こちらのコンテナをpullしておきます。
auchida/mock-rpmbuilder - Docker Hub
sudo docker pull auchida/mock-rpmbuilder
日本語翻訳ファイルの用意
こちらで配布されているのでありがたく使わせて頂きます。
cd /tmp/rpmbuild/SOURCES
curl -L -O http://ftp.momo-i.org/pub/security/nagios/patches/nagios-jp-4.3.4.patch.gz
SOURCEとSPECファイルの用意
Nagiosは配布されているソースにSPECファイルが用意されているので、それに追記して使用します。
Nagios Core - Browse /nagios-4.x/nagios-4.3.4 at SourceForge.net
/tmp/rpmbuild/SOURCES
curl -L -O https://downloads.sourceforge.net/project/nagios/nagios-4.x/nagios-4.3.4/nagios-4.3.4.tar.gz
tar zxvf nagios-4.3.4.tar.gz
cp nagios-4.3.4/nagios.spec ../SPECS/nagios-4.3.4-2-jp.spec
SPECファイルを編集します。
vim /tmp/rpmbuild/SPECS/nagios-4.3.4-2-jp.spec
--- nagios.spec 2017-12-14 20:26:58.000000000 +0900
+++ nagios-4.3.4-2-jp.spec 2017-12-14 21:13:17.000000000 +0900
@@ -22,13 +22,14 @@
Summary: Open Source host, service and network monitoring program
Name: nagios
Version: 4.3.4
-Release: 2%{?dist}
+Release: 2%{?dist}.jp
License: GPL
Group: Applications/System
URL: https://www.nagios.org/
Packager: Daniel Wittenberg <dwittenberg2008@gmail.com>
Vendor: Nagios Enterprises (https://www.nagios.org)
-Source0: http://dl.sf.net/nagios/nagios-%{version}.tar.gz
+Source0: https://downloads.sourceforge.net/project/nagios/nagios-4.x/nagios-%{version}/nagios-%{version}.tar.gz
+Patch0: http://ftp.momo-i.org/pub/security/nagios/patches/nagios-jp-%{version}.patch.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
BuildRequires: gd-devel > 1.8
BuildRequires: zlib-devel
@@ -73,6 +74,7 @@
%prep
%setup
+%patch0 -p1
# /usr/local/nagios is hardcoded in many places
%{__perl} -pi.orig -e 's|/usr/local/nagios/var/rw|%{_localstatedir}/nagios/rw|g;' contrib/eventhandlers/submit_check_result
ビルド
今回はCentOS7(RHEL7)用にビルドします。完了すると、 /tmp/rpmbuild/output 内にRPMが生成されています。
sudo docker run -e MOCK_CONFIG=epel-7-x86_64 -e MOCK_TARGET=SPECS -v /tmp/rpmbuild:/rpmbuild --privileged=true -i auchida/mock-rpmbuilder:latest
ls -l /tmp/rpmbuild/output
あとがき
ビルドまでしか確認していないです。
SPECファイルのchangelogに追記するべきなんだろうけど、してないです...