Amazon

2012年8月10日金曜日

RPMにパッチを当てる



RPMパッケージにパッチを当てる手順です。


mod_auth_mysqlにredmineのsalt対応パッチを適用しました。


ソースリポジトリを登録


パッチを当てるには、SRPMパッケージが必要です。


yumのリポジトリにソースリポジトリを追加します。



$ pwd
/etc/yum.repos.d
$ cat srpm.repo
[rhel-src]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=ftp://ftp.redhat.com/pub/redhat/linux/enterprise/$releasever/en/os/SRPMS/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
$


リポジトリが追加できたらダウンロードします。



$ yumdownloader --source mod_auth_mysql


SRPMパッケージのインストール


SRPMパッケージをrpmコマンドでインストールします。



$ sudo rpm -ivh mod_auth_mysql-3.0.0-3.2.el5_3.src.rpm
1:mod_auth_mysql 警告: ユーザ mockbuild は存在しません - root を使用します
警告: グループ mockbuild は存在しません - root を使用します
警告: ユーザ mockbuild は存在しません - root を使用します
警告: グループ mockbuild は存在しません - root を使用します
警告: ユーザ mockbuild は存在しません - root を使用します
警告: グループ mockbuild は存在しません - root を使用します
警告: ユーザ mockbuild は存在しません - root を使用します
警告: グループ mockbuild は存在しません - root を使用します
警告: ユーザ mockbuild は存在しません - root を使用します
警告: グループ mockbuild は存在しません - root を使用します
警告: ユーザ mockbuild は存在しません - root を使用します
警告: グループ mockbuild は存在しません - root を使用します
########################################### [100%]
$


インストールする場所は、決まっているようです。



$ pwd
/usr/src/redhat
$ tree
.
|-- BUILD
|-- RPMS
| |-- athlon
| |-- geode
| |-- i386
| |-- i486
| |-- i586
| |-- i686
| `-- noarch
|-- SOURCES
| |-- auth_mysql.conf
| |-- mod_auth_mysql-3.0.0-CVE-2008-2384.patch
| |-- mod_auth_mysql-3.0.0-apr1x.patch
| |-- mod_auth_mysql-3.0.0-disable.patch
| `-- mod_auth_mysql-3.0.0.tar.gz
|-- SPECS
| `-- mod_auth_mysql.spec
`-- SRPMS

12 directories, 6 files
$


パッチのダウンロード


適用するパッチをダウンロードします。



$ pwd
/usr/src/redhat/SOURCES
$ wget http://www.redmine.org/attachments/download/6443/mod_auth_mysql-3.0.0-redmine.patch


specファイルの編集


specファイルを編集します。


修正は、以下の通りです。


必要に応じてchangelogを追加します。



$ diff -u mod_auth_mysql.spec.org mod_auth_mysql.spec
@@ -1,7 +1,7 @@
Summary: Basic authentication for the Apache web server using a MySQL database.
Name: mod_auth_mysql
Version: 3.0.0
-Release: 3.2%{?dist}
+Release: 3.2.1%{?dist}
Epoch: 1
Group: System Environment/Daemons
@@ -10,6 +10,7 @@
Patch0: mod_auth_mysql-3.0.0-apr1x.patch
Patch1: mod_auth_mysql-3.0.0-disable.patch
Patch2: mod_auth_mysql-3.0.0-CVE-2008-2384.patch
+Patch3: mod_auth_mysql-3.0.0-redmine.patch
License: Apache Software License
BuildRoot: %{_tmppath}/%{name}-root
BuildPrereq: httpd-devel, mysql-devel
@@ -24,6 +25,7 @@
%patch0 -p1 -b .apr1x
%patch1 -p1 -b .disable
%patch2 -p1 -b .cve2384
+%patch3 -p1 -b .redmine

%build
%{_sbindir}/apxs -I%{_includedir}/mysql -Wc,-Wall -Wc,-Werror \
@@ -49,6 +51,9 @@
%config(noreplace) %{_sysconfdir}/httpd/conf.d/*.conf

%changelog
* Tue Feb 3 2009 Joe Orton <jorton@redhat.com> 1:3.0.0-3.2
- add security fix for CVE-2008-2384 (#480613)
$


ビルド


rpmbuildコマンドでビルドします。



$ sudo rpmbuild -ba mod_auth_mysql.spec


インストール


/usr/src/redhat/RPMSに作成されたパッケージをインストールします。



$ sudo /etc/init.d/httpd stop
$ sudo rpm &#8211;ivh /usr/src/redhat/RPMS/i386/mod_auth_mysql-3.0.0-3.2.1.i386.rpm
$ cd /etc/httpd
$ sudo cp subversion.conf.redmine.1.4 conf.d/subversion.conf
$ sudo /etc/init.d/httpd start


これで、redmine 1.2以上のsaltに対応した認証が使えるようになります。





0 件のコメント: