emacsをbuildした

VirtualBoxにFedora17をインストールしたんだけれど、これにX11環境で使えるemacsrpmがインストールされていないことに気がついた。emacs-noxしかないようだ。この程度なら自分でbuildすればいい。問題は、Fedoraに関する記憶がもうほとんど無いことと、rpmパッケージをbuildするのに、rpm --bp emacs.specとかやってたころの経験しかないことだ。イマドキは、rpmbuildというコマンドを使うんだっけ?

emacs-24.2

せっかくなので、emacs-24.2のrpmをbuildする。emacs-24.1-4.fc17.src.rpmをダウンロードしてきた。これをほどいて、specファイルとかpatchとかを展開する方法があるはずだが、よく知らない。調べるのも面倒。

% rpmbulid --rebuild emacs-24.1-4.fc17.src.rpm
^C
% ls $HOME/rpmbuild/SPECS
emacs.spec
% 

もう、rpmbuildを途中まで走らせて、オモムロにCtrl-Cで停止する*1。ちなみに、BuildRequires:として、大量に*-develパッケージが記載されているので、buildする環境を作るだけで、結構な手間がかかる。しかし、python2-develとpython3-develの両方が必要とか、どうなってんの?って感じ*2

emacs.specを編集

emacs-24.1用に記載されているemacs.specをemacs-24.2用に編集する。といっても、Version:行を24.2にして、Release:行を1%{dist}にして、Patch9を適用しないようにしただけだ。

% diff -u emacs-24.1.spec emacs-24.2.spec
--- emacs-24.1.spec	2012-09-06 17:37:27.079534438 +0900
+++ emacs-24.2.spec	2012-09-06 17:36:34.619723392 +0900
@@ -2,8 +2,8 @@
 Summary: GNU Emacs text editor
 Name: emacs
 Epoch: 1
-Version: 24.1
-Release: 4%{?dist}
+Version: 24.2
+Release: 1%{?dist}
 License: GPLv3+
 URL: http://www.gnu.org/software/emacs/
 Group: Applications/Editors
@@ -31,7 +31,7 @@
 # rhbz#830162
 Patch8: emacs-locate-library.patch
 # rhbz#847702
-Patch9: emacs-cve-2012-3479.patch
+#Patch9: emacs-cve-2012-3479.patch
 
 BuildRequires: atk-devel, cairo-devel, freetype-devel, fontconfig-devel, dbus-devel, giflib-devel, glibc-devel, gtk2-devel, libpng-devel
 BuildRequires: libjpeg-devel, libtiff-devel, libX11-devel, libXau-devel, libXdmcp-devel, libXrender-devel, libXt-devel
@@ -154,7 +154,7 @@
 %patch0 -p1 -b .glibc-open-macro
 %patch7 -p1 -b .spellchecker
 %patch8 -p1 -b .locate-library
-%patch9 -p1 -b .cve-2012-3479
+#%patch9 -p1 -b .cve-2012-3479
 
 # Install site-lisp files
 cp %SOURCE7 %SOURCE10 site-lisp

後は、rpmbuild -bb emacs.specするだけ。
これが、emacs-gtkemacs-noxをbuildするので、めちゃくちゃ時間がかかる。欲しいのはemacs-gtkの方なので、emacs-noxは無視しても良いかと思ったけれど、specファイル喉のあたりを削除すれば良いのかがよく分からない。そもそも、rpmbuildマスターになりたいワケでもないので、この辺については深く追求しない。

できた

*1:しかし、$HOMEにrpmbuildというディレクトリが作られるとは知らなかった。$HOME/rpmというディレクトリを作って作業しようとしていたのだけれど、Ctrl-Cで止めてls -l $HOME/rpm/BUILD しても空っぽなので、おかしいと思ったんだ。

*2:そもそもemacsを普通にconfigure && make && make installするときにはpythonは不要な気がする