glibc のリビルド


作業ディレクトリの作成

最近は(以前から?)、 (root ではなく)一般ユーザで rpm パッケージを作成することが 推奨されている。
一般ユーザ(yasunari)のホームディレクトリ以下に 作業ディレクトリを作成する。
-bash-2.05b$ mkrpmdir ~
mkrpmdir: created rpm tree in /home/yamasita/yasunari/rpm and /home/yamasita/yasunari/.rpmmacros.
-bash-2.05b$

ソースパッケージの入手

-bash-2.05b$ apt-get source glibc
パッケージリストを読みこんでいます... 完了
依存情報ツリーを作成しています... 完了
13.6MB のソースアーカイブを取得します。
取得:1 http://updates.vinelinux.org 3.1/ppc/updates glibc 2.3.3-3vl1.1 (srpm) [13.6MB]
13.6MB を 1m48s 秒で取得しました (125kB/s)
   1:glibc                  ########################################### [100%]
-bash-2.05b$

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

-bash-2.05b$ rpm -ivh glibc-2.3.3-3vl1.1.src.rpm
   1:glibc                  ########################################### [100%]
-bash-2.05b$

SPEC ファイルの修正

-bash-2.05b$ cd rpm/SPECS/
-bash-2.05b$ ls
glibc-vl.spec
-bash-2.05b$ mv glibc-vl.spec{,.orig}
-bash-2.05b$ cp glibc-vl.spec{.orig,}
-bash-2.05b$ vi glibc-vl.spec
Release は %{glibcrelease}vl1.1hk2 としたが、 hk は HackKit で予約しているので(うそ)、 別の名前をつけること。
-bash-2.05b$ diff -c glibc-vl.spec.orig glibc-vl.spec
*** glibc-vl.spec.orig  2005-01-15 04:39:31.000000000 +0900
--- glibc-vl.spec       2005-02-06 14:28:56.000000000 +0900
***************
*** 14,20 ****
  Summary(ja): GNU libc ライブラリ
  Name: glibc
  Version: 2.3.3
! Release: %{glibcrelease}vl1.1
  License: LGPL
  Group: System Environment/Libraries
  Source0: %{name}-%{version}-%{glibcdate}.tar.bz2
--- 14,20 ----
  Summary(ja): GNU libc ライブラリ
  Name: glibc
  Version: 2.3.3
! Release: %{glibcrelease}vl1.1hk2
  License: LGPL
  Group: System Environment/Libraries
  Source0: %{name}-%{version}-%{glibcdate}.tar.bz2
***************
*** 316,324 ****
    ;;
  gcc*\ 3.2.3*)
  %patch2 -p1
- %patch3 -p1
    ;;
  esac
  %patch10 -p1
  %patch11 -p1

--- 316,324 ----
    ;;
  gcc*\ 3.2.3*)
  %patch2 -p1
    ;;
  esac
+ %patch3 -p1
  %patch10 -p1
  %patch11 -p1

-bash-2.05b$

リビルド

玄箱/HG でおよそ7時間半、玄箱で12時間ほど必要。
-bash-2.05b$ rpm -ba glibc-vl.spec
実行中(%prep): /bin/sh -e /var/tmp/rpm-tmp.29822
+ umask 022
+ cd /home/yamasita/yasunari/rpm/BUILD
+ cd /home/yamasita/yasunari/rpm/BUILD
+ rm -rf glibc-2.3.3-200312301455
+ /usr/bin/bzip2 -dc /home/yamasita/yasunari/rpm/SOURCES/glibc-2.3.3-200312301455.tar.bz2
+ tar -xf -
	:
	:
実行中(%clean): /bin/sh -e /var/tmp/rpm-tmp.23600
+ umask 022
+ cd /home/yamasita/yasunari/rpm/BUILD
+ cd glibc-2.3.3-200312301455
+ rm -rf /var/tmp/glibc-2.3.3-root
+ rm -f common.filelist devel.filelist nscd.filelist profile.filelist rpm.filelist rpm.filelist.full rpm.filelist.in utils.filelist
+ exit 0
-bash-2.05b$ 
完了。


開発環境のインストール
ハックキットを Vine 3.1 にアップデートしよう
LinkStation/玄箱 ハックキット
LinkStation/玄箱 をハックしよう

リビルドした glibc パッケージのインストール

Copyright (C) 2005 Yasunari Yamashita. All Rights Reserved.
yasunari @ yamasita.jp 山下康成@京都府向日市