blob: 077c25bf6e78cb47181dcad9fe1b26de146cd552 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
|
# Copyright 1999-2000 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License, v2 or later
# Author Daniel Robbins <drobbins@gentoo.org>
# $Header: /var/cvsroot/gentoo-x86/sys-kernel/linux-sources/linux-sources-2.4.0_rc10-r4.ebuild,v 1.1 2000/12/02 00:23:45 drobbins Exp $
S=${WORKDIR}/linux
if [ "$PN" = "linux" ]
then
DESCRIPTION="Linux kernel, including modules, binary tools, libraries and includes"
else
DESCRIPTION="Kernel source package, including full sources, binary tools and libraries"
fi
SRC_URI="
http://www.kernel.org/pub/linux/kernel/v2.4/patch-2.4.0-test10.bz2
http://www.kernel.org/pub/linux/kernel/v2.4/patch-2.4.0-test9.bz2
http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.0-test8.tar.bz2
ftp://ftp.reiserfs.org/pub/2.4/linux-2.4.0-test10-reiserfs-3.6.19-patch.gz
http://www.netroedge.com/~lm78/archive/lm_sensors-2.5.4.tar.gz
http://www.netroedge.com/~lm78/archive/i2c-2.5.4.tar.gz
http://oss.software.ibm.com/developerworks/opensource/jfs/project/pub/jfs-0.0.18-patch.tar.gz
ftp://ftp.alsa-project.org/pub/driver/alsa-driver-0.5.9d.tar.bz2
ftp://ftp1.detonator.nvidia.com/pub/drivers/english/XFree86_40/0.9-5/NVIDIA_kernel-0.9-5.tar.gz
ftp://ftp.sistina.com/pub/LVM/0.9/lvm_0.9.tar.gz"
HOMEPAGE="http://www.kernel.org/
http://www.netroedge.com/~lm78/
http://devlinux.com/projects/reiserfs/
http://www.alsa-project.org
http://www.nvidia.com"
src_compile() {
#time to do the special symlink tweak
readlink /usr/src/linux > ${T}/linuxlink
rm /usr/src/linux
( cd /usr/src; ln -s ${S} linux )
#symlink tweak in place
cd ${S}/fs/reiserfs/utils
try make
cd ${S}/lm_sensors-2.5.2
try make
cd ${S}/fs/jfs/utils
try make
if [ "$PN" = "linux" ]
then
cd ${S}
try make bzImage
try make modules
cd ${S}/extras/NVIDIA_kernel-0.9-5
make NVdriver
cd ${S}/extras/alsa-driver-0.5.9d
try ./configure --with-kernel=${S} --with-isapnp=yes --with-sequencer=yes --with-oss=yes --with-cards=all
#try make
fi
cd ${S}/extras/LVM/0.9
try ./configure --prefix=/
try make
#untweak the symlink
( cd /usr/src; rm linux; ln -s `cat ${T}/linuxlink` linux )
}
src_unpack() {
if [ ! -L /usr/src/linux ]
then
echo '!!!' /usr/src/linux is not a symbolic link.
echo '!!!' For ${PF} to compile correctly, /usr/src/linux
echo '!!!' needs to be temporarily modified to point to
echo '!!!' a temporary build directory. Please rename your
echo '!!!' current directory and restart this build process.
exit 1
fi
cd ${WORKDIR}
unpack linux-2.4.0-test8.tar.bz2
cd ${S}
echo "Applying test9 patch..."
cat ${DISTDIR}/patch-2.4.0-test9.bz2 | bzip2 -d | patch -p1
echo "Applying test10 patch..."
cat ${DISTDIR}/patch-2.4.0-test10.bz2 | bzip2 -d | patch -p1
echo "Applying ReiserFS patch..."
gzip -dc ${DISTDIR}/linux-2.4.0-test10-reiserfs-3.6.19-patch.gz | patch -p1
cd ${S}
mkdir extras
echo "Applying IBM JFS patch..."
cd extras
mkdir jfs
cd jfs
unpack jfs-0.0.18-patch.tar.gz
cd ${S}
patch -p1 < extras/jfs/jfs-common-v0.0.18-patch
patch -p1 < extras/jfs/jfs-2.4.0-test10-v0.0.18-patch
cd ${S}/extras
echo "Unpacking ALSA drivers..."
unpack alsa-driver-0.5.9d.tar.bz2
echo "Unpacking NVidia drivers..."
unpack NVIDIA_kernel-0.9-5.tar.gz
cd NVIDIA_kernel-0.9-5
# this is a little fix to make the NVidia drivers compile right with test10
mv nv.c nv.c.orig
echo '#define mem_map_inc_count(p) atomic_inc(&(p->count))' > nv.c
echo '#define mem_map_dec_count(p) atomic_dec(&(p->count))' >> nv.c
cat nv.c.orig >> nv.c
cd ${S}/extras
for x in lm_sensors i2c
do
echo "Unpacking and applying $x patch..."
cd ${S}/extras
unpack ${x}-2.5.4.tar.gz
# cd ${x}-2.5.4
# mkpatch/mkpatch.pl . /usr/src/linux > /usr/src/linux/${x}-patch
# cd ${S}
# patch -p1 < ${x}-patch
done
cd ${S}/extras
echo "Applying LVM 0.9 patch..."
# one patch will fail, this is OK (it was applied earlier probably by the JFS patch)
# we pass the -f argument to patch to get around and already-applied patch
unpack lvm_0.9.tar.gz
cd LVM/0.9/PATCHES
cat linux-2.4.0-test10-VFS-lock.patch | ( cd ${S}; patch -p1 -f)
cat lvm-0.9-2.4.0-test10.patch | ( cd ${S}; patch -p1 -f)
echo "Preparing for compilation..."
cd ${S}
#this is the configuration for the bootdisk/cd
cp ${FILESDIR}/${PV}/${P}.config .config
cp ${FILESDIR}/${PV}/${P}.autoconf include/linux/autoconf.h
try make include/linux/version.h
try make symlinks
try make dep
cd ${S}
#fix silly permissions in tarball
chown -R root.root *
}
src_install() {
cd ${S}/fs/reiserfs/utils
dodir /usr/man/man8 /sbin
try make install SBIN=${D}/sbin MANDIR=${D}/usr/man/man8
cd ${S}/fs/jfs/utils
cp output/* ${D}/sbin
local x
for x in `find -iname *.1`
do
doman $x
done
for x in `find -iname *.8`
do
doman $x
done
cd ${S}/extras/LVM/0.9
make install prefix=${D} MAN8DIR=${D}/usr/man/man8 LIBDIR=${D}/lib
dodir /usr/src
if [ "$PN" = "linux" ]
then
dodir /usr/src/linux-${PV}
cd ${D}/usr/src
ln -sf linux-${PV} linux
#grab includes and documentation only
dodir /usr/src/linux-${PV}/include/linux
dodir /usr/src/linux-${PV}/include/asm-i386
cp -ax ${S}/include ${D}/usr/src/linux-${PV}
cp -ax ${S}/Documentation ${D}/usr/src/linux-${PV}
dodir /usr/include
dosym /usr/src/linux/include/linux /usr/include/linux
dosym /usr/src/linux/include/asm-i386 /usr/include/asm
#grab compiled kernel
dodir /boot/boot
insinto /boot/boot
cd ${S}
doins arch/i386/boot/bzImage
#grab modules
try make INSTALL_MOD_PATH=${D} modules_install
#install ALSA modules
cd ${S}/extras/alsa-driver-0.5.9d
dodir /lib/modules/2.4.0-test10/misc
cp modules/*.o ${D}/lib/modules/2.4.0-test10/misc
dodir /usr/include/linux
insinto /usr/include/linux
cd include
doins asound.h asoundid.h asequencer.h ainstr_*.h
#install nvidia driver
cd ${S}/extras/NVIDIA_kernel-0.9-5
insinto /lib/modules/2.4.0-test10/video
doins NVdriver
#fix symlink
cd ${D}/lib/modules/2.4.0-test10
rm build
ln -sf /usr/src/linux-2.4.0-test10 build
else
#grab all the sources
cd ${WORKDIR}
mv linux ${D}/usr/src/linux-${PV}
cd ${D}/usr/src
ln -sf linux-${PV} linux
#remove workdir since our install was dirty and modified ${S}
#this will cause an unpack to be done next time
rm -rf ${WORKDIR}
fi
}
|