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 –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に対応した認証が使えるようになります。