[root@hackkit root]# apt-get update 取得:1 http://updates.vinelinux.org 3.1/ppc release [2516B] 2516B を 1s 秒で取得しました (1355B/s) ヒット http://updates.vinelinux.org 3.1/ppc/main pkglist ヒット http://updates.vinelinux.org 3.1/ppc/main release ヒット http://updates.vinelinux.org 3.1/ppc/devel pkglist ヒット http://updates.vinelinux.org 3.1/ppc/devel release ヒット http://updates.vinelinux.org 3.1/ppc/plus pkglist ヒット http://updates.vinelinux.org 3.1/ppc/plus release ヒット http://updates.vinelinux.org 3.1/ppc/updates pkglist ヒット http://updates.vinelinux.org 3.1/ppc/updates release ヒット http://updates.vinelinux.org 3.1/ppc/main srclist ヒット http://updates.vinelinux.org 3.1/ppc/devel srclist 取得:1 http://updates.vinelinux.org 3.1/ppc/plus srclist [172kB] ヒット http://updates.vinelinux.org 3.1/ppc/updates srclist 172kB を 5s 秒で取得しました (32.8kB/s) パッケージリストを読みこんでいます... 完了 依存情報ツリーを作成しています... 完了 [root@hackkit root]# exit -bash-2.05b$ mkrpmdir ~ mkrpmdir: created rpm tree in /home/yamasita/yasunari/rpm and /home/yamasita/yasunari/.rpmmacros. -bash-2.05b$ apt-get source glibc パッケージリストを読みこんでいます... 完了 依存情報ツリーを作成しています... 完了 13.6MB のソースアーカイブを取得します。 取得:1 http://updates.vinelinux.org 3.1/ppc/main glibc 2.3.3-3vl1 (srpm) [13.6MB] 13.6MB を 27s 秒で取得しました (497kB/s) 1:glibc ########################################### [100%] -bash-2.05b$ rpm -ivh glibc-2.3.3-3vl1.src.rpm 1:glibc ########################################### [100%] -bash-2.05b$
patch3 とは?
glibc-vl.spec を見ると、
Patch3: %{name}-execstack-disable.patchうーん。そのまんま。
case "`gcc --version | head -1`" in gcc*\ 3.3*) %ifarch %{nptlarches} %patch1 -p1 %endif ;; gcc*\ 3.2.3*) %patch2 -p1 %patch3 -p1 ;; esacと gcc 3.2.3 なら patch3 をあてている。
-bash-2.05b$ gcc --version gcc (GCC) 3.3.2 20031218 (Vine Linux 3.3.2-0vl8) Copyright (C) 2003 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.なので、patch3 はあたらない。 浦島さんのパッチは、 この gcc のバージョンによる case 文の外で patch3 をあてる、 つまり gcc 3.3.2 であっても patch3 をあてるとのこと。
[root@hackkit root]# /sbin/update-alternatives --list cpp /usr/bin/cpp-3.3.2 /usr/bin/cpp-2.95.3 [root@hackkit root]# /sbin/update-alternatives --auto cpp [root@hackkit root]# ls -l /etc/alternatives/cpp lrwxrwxrwx 1 root root 18 Dec 19 03:34 /etc/alternatives/cpp -> /usr/bin/cpp-3.3.2*
-bash-2.05b$ mv glibc-vl.spec{,.orig} -bash-2.05b$ cp glibc-vl.spec{.orig,} -bash-2.05b$ vi glibc-vl.spec -bash-2.05b$ diff -c glibc-vl.spec{.orig,} *** glibc-vl.spec.orig 2004-01-18 18:45:24.000000000 +0900 --- glibc-vl.spec 2004-12-19 03:37:37.000000000 +0900 *************** *** 14,20 **** Summary(ja): GNU libc ライブラリ Name: glibc Version: 2.3.3 ! Release: %{glibcrelease}vl1 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}vl1hk1 License: LGPL Group: System Environment/Libraries Source0: %{name}-%{version}-%{glibcdate}.tar.bz2 *************** *** 315,323 **** ;; gcc*\ 3.2.3*) %patch2 -p1 - %patch3 -p1 ;; esac %patch10 -p1 %patch11 -p1 --- 315,323 ---- ;; gcc*\ 3.2.3*) %patch2 -p1 ;; esac + %patch3 -p1 %patch10 -p1 %patch11 -p1 -bash-2.05b$念のため、Release: も修正。
-bash-2.05b$ rpm -ba glibc-vl.spec エラー: ビルド依存性の欠如: gd-devel >= 2.0.15 は glibc-2.3.3-3vl1hk1 に必要とされています libpng-devel >= 1.2.5 は glibc-2.3.3-3vl1hk1 に必要とされていますがー
[root@hackkit root]# apt-get build-dep glibc パッケージリストを読みこんでいます... 完了 依存情報ツリーを作成しています... 完了 以下のパッケージが新たにインストールされます: XOrg-libs freetype2 gd gd-devel libexpat libjpeg libpng libpng-devel アップグレード: 0 個, 新規インストール: 8 個, 削除: 0 個, 保留: 2 個 3303kB のアーカイブを取得する必要があります。 展開後に 8353kB のディスク容量が追加消費されます。 続行しますか? [Y/n]なんで、こんないっぱい入れないといけないの?。
続行しますか? [Y/n]y 取得:1 http://updates.vinelinux.org 3.1/ppc/main libexpat 1.95.7-1vl1 [69.7kB] 取得:2 http://updates.vinelinux.org 3.1/ppc/main freetype2 2.1.7-0vl4 [291kB] 取得:3 http://updates.vinelinux.org 3.1/ppc/main XOrg-libs 6.7.0-0vl6 [2180kB] 取得:4 http://updates.vinelinux.org 3.1/ppc/main libjpeg 6b-21vl2 [145kB] 取得:5 http://updates.vinelinux.org 3.1/ppc/main libpng 2:1.2.7-0vl1 [234kB] 取得:6 http://updates.vinelinux.org 3.1/ppc/updates gd 2.0.27-0vl2 [101kB] 取得:7 http://updates.vinelinux.org 3.1/ppc/updates gd-devel 2.0.27-0vl2 [104kB] 取得:8 http://updates.vinelinux.org 3.1/ppc/devel libpng-devel 2:1.2.7-0vl1 [177kB] 3303kB を 8s 秒で取得しました (412kB/s) 変更を適用しています... Preparing... ########################################### [100%] 1:libexpat ########################################### [ 12%] 2:freetype2 ########################################### [ 25%] 3:XOrg-libs ########################################### [ 37%] 4:libjpeg ########################################### [ 50%] 5:libpng ########################################### [ 62%] 6:gd ########################################### [ 75%] 7:gd-devel ########################################### [ 87%] 8:libpng-devel ########################################### [100%] 完了 [root@hackkit root]#
-bash-2.05b$ time rpm -ba glibc-vl.spec 実行中(%prep): /bin/sh -e /var/tmp/rpm-tmp.36679 + umask 022 + cd /home/yamasita/yasunari/rpm/BUILD + cd /home/yamasita/yasunari/rpm/BUILD + rm -rf glibc-2.3.3-200312301455 : : + echo 'Patch #3 (glibc-execstack-disable.patch):' Patch #3 (glibc-execstack-disable.patch): + patch -p1 -s : : 書き込み完了: /home/yamasita/yasunari/rpm/SRPMS/glibc-2.3.3-3vl1hk1.src.rpm 書き込み完了: /home/yamasita/yasunari/rpm/RPMS/ppc/glibc-2.3.3-3vl1hk1.ppc.rpm 書き込み完了: /home/yamasita/yasunari/rpm/RPMS/ppc/glibc-devel-2.3.3-3vl1hk1.ppc.rpm 書き込み完了: /home/yamasita/yasunari/rpm/RPMS/ppc/glibc-profile-2.3.3-3vl1hk1.ppc.rpm 書き込み完了: /home/yamasita/yasunari/rpm/RPMS/ppc/glibc-common-2.3.3-3vl1hk1.ppc.rpm 書き込み完了: /home/yamasita/yasunari/rpm/RPMS/ppc/nscd-2.3.3-3vl1hk1.ppc.rpm 書き込み完了: /home/yamasita/yasunari/rpm/RPMS/ppc/glibc-debug-2.3.3-3vl1hk1.ppc.rpm 書き込み完了: /home/yamasita/yasunari/rpm/RPMS/ppc/glibc-utils-2.3.3-3vl1hk1.ppc.rpm 実行中(%clean): /bin/sh -e /var/tmp/rpm-tmp.64368 + 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.f ilelist + exit 0 real 706m47.565s user 590m30.780s sys 46m4.850s -bash-2.05b$おわったぁ。
[root@hackkit root]# cd ~yasunari/rpm/RPMS/ppc/ [root@hackkit ppc]# ls glibc-2.3.3-3vl1hk1.ppc.rpm glibc-devel-2.3.3-3vl1hk1.ppc.rpm nscd-2.3.3-3vl1hk1.ppc.rpm glibc-common-2.3.3-3vl1hk1.ppc.rpm glibc-profile-2.3.3-3vl1hk1.ppc.rpm glibc-debug-2.3.3-3vl1hk1.ppc.rpm glibc-utils-2.3.3-3vl1hk1.ppc.rpm [root@hackkit ppc]# rpm -Uvh *.rpm 準備中... ########################################### [100%] 1:glibc-common ########################################### [ 14%] 2:glibc ########################################### [ 28%] 3:glibc-devel ########################################### [ 42%] 4:glibc-debug ########################################### [ 57%] 5:glibc-profile ########################################### [ 71%] 6:glibc-utils ########################################### [ 85%] 7:nscd ########################################### [100%] [root@hackkit ppc]#
Vine Linux 3.1 (Pichon Lalande) Kernel 2.4.20_kuro-box on a ppc login: yasunari Password: Last login: Sun Dec 19 05:05:29 from ns.yamasita.jp -bash-2.05b$ rpm -q glibc glibc-2.3.3-3vl1hk1 -bash-2.05b$
Vine Linux 3.1 (Pichon Lalande) Kernel 2.4.17_kuro-box on a ppc login: yasunari Password: Last login: Sun Dec 19 15:48:58 from ns.yamasita.jp -bash-2.05b$ -bash-2.05b$ rpm RPM バージョン 4.0.5 著作権 (C) 1998-2000 - Red Hat, Inc. 翻訳者 Project Vine無事、起動してきた。(神田 充 さんの po に基づく) 誤訳等は Project Vine まで GNU一般公有使用許諾書の下で自由に配布できます 使用法: rpm {--help} rpm {--version} -bash-2.05b$
-bash-2.05b$ rpm rpm: error while loading shared libraries: librpmio-4.0.4.so: cannot enable executable stack as shared object requires: Error 14となっていた rpm も動いた。
Vine Linux 3.1 (Pichon Lalande) Kernel 2.4.17_mvl21 on a ppc login: yasunari Password: Last login: Sun Dec 19 15:55:25 from ns.yamasita.jp -bash-2.05b$ cat /proc/meminfo total: used: free: shared: buffers: cached: Mem: 130138112 19025920 111112192 0 3211264 10555392 Swap: 134692864 0 134692864 MemTotal: 127088 kB MemFree: 108508 kB MemShared: 0 kB Buffers: 3136 kB Cached: 10308 kB SwapCached: 0 kB Active: 5384 kB Inactive: 9840 kB HighTotal: 0 kB HighFree: 0 kB LowTotal: 127088 kB LowFree: 108508 kB SwapTotal: 131536 kB SwapFree: 131536 kB -bash-2.05b$無事起動。
浦島さん、情報ありがとうございます。
私の力では絶対この方法は見つからなかったでしょう。
← | ハックの記録 | → Vine 3.1(12)glibc を入れ換えてインストール |
LinkStation/玄箱 をハックしよう |