epel の srpm から最新の openvpn の rpm を作成する
執筆時最新版の、openvpn 2.3.4 の rpm 作成方法です。
$ yum install -y yum-utils rpm-build rpmdevtools lzo-devel openssl-devel pam-devel pkcs11-helper-devel $ rpmdev-setuptree $ yum install -y http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm $ yumdownloader --source openvpn $ rpm -ivh openvpn-2.3.2-2.el6.src.rpm $ curl http://swupdate.openvpn.org/community/releases/openvpn-2.3.4.tar.gz -o ~/rpmbuild/SOURCES/openvpn-2.3.4.tar.gz $ curl http://swupdate.openvpn.org/community/releases/openvpn-2.3.4.tar.gz.asc -o ~/rpmbuild/SOURCES/openvpn-2.3.4.tar.gz.asc $ sed -i "/^Version:/c\Version: 2.3.4" ~/rpmbuild/SPECS/openvpn.spec
とやって、
$ rpmbuild -ba ~/rpmbuild/SPECS/openvpn.spec
で行けるかと思いきや、
configure: error: PKCS11 enabled but libpkcs11-helper is missing
というエラーがでます。
source を落としてきて、config.log や configure などを見ていると、
"libpkcs11-helper-1 >= 1.11"
という記述がありました。
したがって、libpkcs11-helper-devel のバージョンを上げなくてはいけません。
これも、epel にはいっているので、yumdownloader で srpm を落としてきて、rpmbuild します。
$ yumdownloader --source pkcs11-helper-devel $ rpm -ivh pkcs11-helper-1.07-5.el6.src.rpm $ sed -i "/^Version:/c\Version: 1.11" ~/rpmbuild/SPECS/pkcs11-helper.spec $ sed -i "/^:/c\Release: 1%{?dist}" ~/rpmbuild/SPECS/pkcs11-helper.spec $ curl -L "http://downloads.sourceforge.net/project/opensc/pkcs11-helper/pkcs11-helper-1.11.tar.bz2" -o ~/rpmbuild/SOURCES/pkcs11-helper-1.11.tar.bz2 $ yum install -y doxygen graphviz $ rpmbuild -ba ~/rpmbuild/SPECS/pkcs11-helper.spec
で pkcs11-helper-1.11-5.el6.x86_64.rpm と pkcs11-helper-devel-1.11-5.el6.x86_64.rpm が生成されるので、
$ yum install -y ~/rpmbuild/RPMS/x86_64/pkcs11-helper-{,devel-}1.11-5.el6.x86_64.rpm
のようにしてインストールします。
あとは、もう一度 rpmbuild しなおせば、
$ rpmbuild -ba ~/rpmbuild/SPECS/openvpn.spec $ yum install -y ~/rpmbuild/RPMS/x86_64/openvpn-2.3.4-2.el6.x86_64.rpm
で build & install できます。
SSLv3 が無効になるのは、openvpn 2.3.3 以降だそうなので、
これで openvpn の POODLE 対応ができます。
※追記 openvpn.spec の CHANGELOG にいい感じに追記しておいたほうが良いですね。
あと、pkcs11-helper を使わなければこの手順は行わなくて良いので、
必要なければ openvpn.spec の、
--enable-pkcs11
を削除しても build できます。
以下に、コピペして使えるように必要なコマンドをまとめました。
yum install -y yum-utils rpm-build rpmdevtools lzo-devel openssl-devel pam-devel pkcs11-helper-devel rpmdev-setuptree yum install -y http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm yumdownloader --source openvpn rpm -ivh openvpn-2.3.2-2.el6.src.rpm curl http://swupdate.openvpn.org/community/releases/openvpn-2.3.4.tar.gz -o ~/rpmbuild/SOURCES/openvpn-2.3.4.tar.gz curl http://swupdate.openvpn.org/community/releases/openvpn-2.3.4.tar.gz.asc -o ~/rpmbuild/SOURCES/openvpn-2.3.4.tar.gz.asc sed -i "/^Version:/c\Version: 2.3.4" ~/rpmbuild/SPECS/openvpn.spec yumdownloader --source pkcs11-helper-devel rpm -ivh pkcs11-helper-1.07-5.el6.src.rpm sed -i "/^Version:/c\Version: 1.11" ~/rpmbuild/SPECS/pkcs11-helper.spec sed -i "/^:/c\Release: 1%{?dist}" ~/rpmbuild/SPECS/pkcs11-helper.spec curl -L "http://downloads.sourceforge.net/project/opensc/pkcs11-helper/pkcs11-helper-1.11.tar.bz2" -o ~/rpmbuild/SOURCES/pkcs11-helper-1.11.tar.bz2 yum install -y doxygen graphviz rpmbuild -ba ~/rpmbuild/SPECS/pkcs11-helper.spec yum install -y ~/rpmbuild/RPMS/x86_64/pkcs11-helper-{,devel-}1.11-5.el6.x86_64.rpm rpmbuild -ba ~/rpmbuild/SPECS/openvpn.spec yum install -y ~/rpmbuild/RPMS/x86_64/openvpn-2.3.4-2.el6.x86_64.rpm