4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

emacs 24.5のdebパッケージをUbuntu 14.04でビルドする

Last updated at Posted at 2015-12-28

Ubuntu 14.04ではapt-get installで入れられるemacs24は24.3であり,ちょっと古い.
24.5のppaも現時点では無いようなので,自前ビルドしてみました.
せっかくなのでdebパッケージをビルドして,管理が楽になるようにします.
いくらか詰まったところがあったので記事にしてみました.

※ debパッケージのビルドは初心者なので,もっといい手順があったら教えてください.

ソースのダウンロード

Wily(15.10)では24.5になっているので,そのソースをダウンロードします.
emacsen-commonというパッケージも新しくする必要があるのでダウンロードします.

wget https://launchpad.net/ubuntu/+archive/primary/+files/emacs24_24.5%2B1.orig.tar.bz2
wget https://launchpad.net/ubuntu/+archive/primary/+files/emacs24_24.5%2B1-1ubuntu2.debian.tar.xz
wget https://launchpad.net/ubuntu/+archive/primary/+files/emacsen-common_2.0.8.tar.xz

解凍

それぞれ解凍します.

tar xf emacsen-common_2.0.8.tar.xz
tar xf emacs24_24.5+1.orig.tar.bz2
mv emacs24-24.5+1.orig emacs24-24.5+1
cd emacs24-24.5+1
tar xf ../emacs24_24.5+1-1ubuntu4.debian.tar.xz
cd ..

パッチ当て

私の環境ではビルドに必要なlibgnults28-devを入れようとすると他のパッケージと競合したので,条件を緩和しました.

また,debian/patch-to-newというスクリプトに手を加える必要がありました(参考 http://git.willhughes.name/emacs/blob/master/debian/patch-to-news).

以下,シェル上で実行するとパッチが当たります.

patch -p0 << "EOS"
diff -ur emacs24-24.5+1_org/debian/control emacs24-24.5+1/debian/control
--- emacs24-24.5+1_org/debian/control	2015-10-29 23:00:59.000000000 +0900
+++ emacs24-24.5+1/debian/control	2015-12-28 08:45:35.874903978 +0900
@@ -9,7 +9,7 @@
  libgpm-dev [linux-any], libdbus-1-dev,
  autoconf, automake, autotools-dev, dpkg-dev (>> 1.10.0), quilt (>= 0.42),
  debhelper (>= 9), libxaw7-dev, sharutils, imagemagick, libgtk-3-dev,
- libgnutls28-dev, libxml2-dev, libselinux1-dev [linux-any], libmagick++-dev,
+ libgnutls-dev, libxml2-dev, libselinux1-dev [linux-any], libmagick++-dev,
  libgconf2-dev, libasound2-dev [!hurd-i386 !kfreebsd-i386 !kfreebsd-amd64],
  libacl1-dev,
  zlib1g-dev
diff -ur emacs24-24.5+1_org/debian/control.in emacs24-24.5+1/debian/control.in
--- emacs24-24.5+1_org/debian/control.in	2015-09-18 02:58:21.000000000 +0900
+++ emacs24-24.5+1/debian/control.in	2015-12-28 08:46:00.182903255 +0900
@@ -9,7 +9,7 @@
  libgpm-dev [linux-any], libdbus-1-dev,
  autoconf, automake, autotools-dev, dpkg-dev (>> 1.10.0), quilt (>= 0.42),
  debhelper (>= 9), libxaw7-dev, sharutils, imagemagick, libgtk-3-dev,
- libgnutls28-dev, libxml2-dev, libselinux1-dev [linux-any], libmagick++-dev,
+ libgnutls-dev, libxml2-dev, libselinux1-dev [linux-any], libmagick++-dev,
  libgconf2-dev, libasound2-dev [!hurd-i386 !kfreebsd-i386 !kfreebsd-amd64],
  libacl1-dev,
  zlib1g-dev
diff -ur emacs24-24.5+1_org/debian/patch-to-news emacs24-24.5+1/debian/patch-to-news
--- emacs24-24.5+1_org/debian/patch-to-news	2015-09-18 02:58:21.000000000 +0900
+++ emacs24-24.5+1/debian/patch-to-news	2015-12-28 08:45:25.778904278 +0900
@@ -4,6 +4,12 @@
 
 patch="$1"
 
+if [ ! -f "$patch" -a -f "patches/$patch" ]; then
+    patch="patches/$patch"
+elif [ ! -f "$patch" -a -f "debian/patches/$patch" ]; then
+    patch="debian/patches/$patch"
+fi
+
 sed '
   # delete everything after the first line starting with "--- " (the diff)
   /^--- [^ ]/,$d' < "$patch" \
EOS

ビルドに必要なパッケージのインストール

ビルドに必要なパッケージをインストールします.
もし足りなければビルドの際にdebuildが教えてくれます.

sudo apt-get install build-essential \
                     devscripts \
                     libacl1-dev \
                     libcurl4-gnutls-dev \
                     libgconf2-dev \
                     libghc-gconf-dev \
                     libgif-dev \
                     libgnutls-dev \
                     libgpm-dev \
                     libjpeg-dev \
                     liblockfile-dev \
                     libm17n-dev \
                     libmagick++-dev \
                     libmagickcore-dev \
                     libncurses5-dev \
                     libotf-dev \
                     libpng12-dev \
                     librsvg2-dev \
                     libselinux1-dev \
                     libtiff4-dev \
                     libx11-dev \
                     libxft-dev \
                     libxml2-dev \
                     sharutils \
                     xaw3dg-dev

ビルド

ビルド時間を短縮するため並列ビルドします.

cd emacs24-24.5+1
debuild -us -uc -j`nproc`

emacsen-commonの方も.こちらは並列ビルドしなくてもすぐ終わります.

cd ../main
debuild -us -uc

インストール

できたdebパッケージをインストールしていきます.

cd ..
sudo dpkg -i emacsen-common_2.0.8_all.deb
sudo dpkg -i emacs24-el_24.5+1-1ubuntu4_all.deb \
             emacs24-bin-common_24.5+1-1ubuntu4_amd64.deb \
             emacs24-common_24.5+1-1ubuntu4_all.deb \
             emacs24_24.5+1-1ubuntu4_amd64.deb

終わりです.

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?