/[gentoo-x86]/sys-kernel/linux-extras/linux-extras-2.4.6.ebuild
Gentoo

Contents of /sys-kernel/linux-extras/linux-extras-2.4.6.ebuild

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (hide annotations) (download)
Thu Jul 12 05:54:40 2001 UTC (18 years, 7 months ago) by drobbins
Branch: MAIN
Changes since 1.1: +64 -69 lines
still refining that new 2.4.6 linux ebuild; more improvements to come...

1 drobbins 1.1 # Copyright 1999-2000 Gentoo Technologies, Inc.
2     # Distributed under the terms of the GNU General Public License, v2 or later
3     # Author Daniel Robbins <drobbins@gentoo.org>
4     # /home/cvsroot/gentoo-x86/sys-kernel/linux/linux-2.4.4.3.ebuild,v 1.1 2001/05/02 14:31:06 achim Exp
5    
6     #OKV=original kernel version, KV=patched kernel version
7 drobbins 1.2
8 drobbins 1.1 OKV=2.4.6
9     KV=2.4.6
10     S=${WORKDIR}/linux-${KV}
11 drobbins 1.2 S2=${WORKDIR}/linux-${KV}-extras
12     if [ $PN = "linux-extras" ]
13     then
14     KS=/usr/src/linux-${KV}
15     KS2=/usr/src/linux-${KV}-extras
16     else
17     KS=${S}
18     KS2=${S2}
19     fi
20    
21     # Kernel Features Enabled USE Variable Status
22     #
23     # Reiserfs Y - Production-ready
24     # JFS N jfs Testing-only (commented out for now)
25     # LVM Y lvm Production-ready
26     # ext3 Y ext3 Production-ready
27     # MOSIX Y mosix Testing only
28     # XFS N xfs Will add soon
29     # PCMCIA-CS Y pcmcia Need to move this to its own ebuild
30     # ALSA N alsa Need to move this to its own ebuild
31     # lm-sensors N lm_sensors Need to move this to its own ebuild
32 drobbins 1.1
33     LVMV=0.9.1_beta7
34 drobbins 1.2 EXT3V=2.4-0.9.1-246
35     MOSV=1.0.5
36 drobbins 1.1 # AV=0.5.11
37 drobbins 1.2 #JFSV=1.0.0
38     #KNV="6.g"
39     #PIV="1.d"
40 drobbins 1.1 PCV="3.1.27"
41    
42     [ "${PN}" = "linux" ] && DESCRIPTION="Linux kernel version ${KV}, including modules, binary tools, libraries and includes"
43     [ "${PN}" = "linux-sources" ] && DESCRIPTION="Linux kernel version ${KV} - full sources"
44     [ "${PN}" = "linux-extras" ] && DESCRIPTION="Linux kernel support tools and libraries"
45    
46     # We use build in /usr/src/linux in case of linux-extras
47     # so we need no sources
48     if [ ! "${PN}" = "linux-extras" ] ; then
49     SRC_URI="http://www.kernel.org/pub/linux/kernel/v2.4/linux-${OKV}.tar.bz2
50     http://prdownloads.sourceforge.net/pcmcia-cs/pcmcia-cs-${PCV}.tar.gz
51 drobbins 1.2 http://www.zip.com.au/~akpm/ext3-${EXT3V}.gz
52 drobbins 1.1 http://oss.software.ibm.com/developerworks/opensource/jfs/project/pub/jfs-1.0.0-patch.tar.gz
53 drobbins 1.2 ftp://ftp.cs.huji.ac.il/users/mosix/MOSIX-${MOSV}.tar.gz"
54     ftp://ftp.sistina.com/pub/LVM/0.9.1_beta/lvm_${LVMV}.tar.gz
55 drobbins 1.1 fi
56     # http://www.netroedge.com/~lm78/archive/lm_sensors-${SENV}.tar.gz
57     # http://www.netroedge.com/~lm78/archive/i2c-${SENV}.tar.gz
58     # ftp://ftp.alsa-project.org/pub/driver/alsa-driver-${AV}.tar.bz2
59    
60     if [ "$PN" != "linux-extras" ]
61     then
62     PROVIDE="virtual/kernel"
63     fi
64     #if [ "$PN" != "linux-sources" ]
65     #then
66     # if [ "`use alsa`" ]
67     # then
68     # PROVIDE="$PROVIDE virtual/alsa"
69     # fi
70     #fi
71    
72     HOMEPAGE="http://www.kernel.org/
73     http://www.netroedge.com/~lm78/
74     http://www.namesys.com
75     http://www.sistina.com/lvm/
76     http://pcmcia-cs.sourceforge.net"
77    
78    
79     #these deps are messed up; fix 'em and add ncurses (required my mosix compile, menuconfig)
80     if [ $PN != "linux-extras" ] ; then
81     RDEPEND=">=sys-apps/e2fsprogs-1.22 >=sys-apps/util-linux-2.11f >=sys-apps/reiserfs-utils-3.6.25-r1"
82     DEPEND=">=sys-apps/modutils-2.4.2 sys-devel/perl"
83     else
84     DEPEND=">=sys-kernel/${PF/extras/sources}"
85     fi
86     if [ "`use build`" ] && [ $PN = "linux-sources" ] ; then
87     DEPEND=""
88     RDEPEND=""
89     fi
90    
91     # this is not pretty...
92     LINUX_HOSTCFLAGS="-Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -I${S}/include"
93    
94     src_unpack() {
95    
96     # We only need to unpack for linux and linux-sources
97    
98     if [ ! "$PN" = "linux-extras" ]
99     then
100    
101     #unpack kernel and apply reiserfs-related patches
102     cd ${WORKDIR}
103     unpack linux-${OKV}.tar.bz2
104     try mv linux linux-${KV}
105     cd ${S}
106     # echo "Applying ${KV} patch..."
107     # try bzip2 -dc ${DISTDIR}/patch-${KV}.bz2 | patch -p1
108    
109     # This patch is just *too* unweildy and creates tons of rejects all over the place (boo!)
110     # echo "Applying XFS patch..."
111     # local x
112     # for x in easy only tricky acl-extattr misc
113     # do
114     # cat ${DISTDIR}/patch-2.4.6-xfs-${x}.bz2 | bzip2 -d | patch -p1
115     # done
116    
117 drobbins 1.2 dodir /usr/src/linux-${KV}-extras
118 drobbins 1.1
119     if [ "`use mosix`" ]
120     then
121     echo "Applying MOSIX patch..."
122 drobbins 1.2 cd ${S2}
123     mkdir MOSIX-${MOSV}
124     cd MOSIX-${MOSV}
125     unpack MOSIX-${MOSV}.tar.gz
126     cd ${S}
127     try cat ${S2}/MOSIX-${MOSV}/patches.2.4.6 | patch -p0
128     tar -x --no-same-owner -vf ${S2}/MOSIX-${MOSV}/kernel.new.2.4.6.tar
129     cd ${S2}
130     mkdir user
131     tar -x --no-same-owner -vf user.tar -C user
132 drobbins 1.1 rm user.tar
133     fi
134    
135     cd ${S}
136     echo "Applying reiserfs-NFS fix..."
137     try cat ${FILESDIR}/2.4.6/linux-2.4.6-reiserfs-NFS.patch | patch -N -p1
138    
139     if [ "`use lvm`" ]
140     then
141     #create and apply LVM patch. The tools get built later.
142 drobbins 1.2 cd ${S2}
143 drobbins 1.1 echo "Unpacking and applying LVM patch..."
144 drobbins 1.2 unpack lvm_${LVMV}.tar.gz
145 drobbins 1.1 try cd LVM/${LVMV}
146    
147     # I had to hack this in so that LVM will look in the current linux
148     # source directory instead of /usr/src/linux for stuff - pete
149     try CFLAGS=\""${CFLAGS} -I${S}/include"\" ./configure --prefix=/ --mandir=/usr/share/man --with-kernel_dir="${S}"
150     cd PATCHES
151     try make KERNEL_VERSION=${KV} KERNEL_DIR=${S}
152     cd ${S}
153     # the -l option allows this patch to apply cleanly (ignore whitespace changes)
154 drobbins 1.2 try patch -l -p1 < ${S2}/LVM/${LVMV}/PATCHES/lvm-${LVMV}-${KV}.patch
155 drobbins 1.1 cd ${S}/drivers/md
156     try patch -p0 < ${FILESDIR}/${KV}/lvm.c.diff
157     fi
158    
159     # if [ "`use alsa`" ]
160     # then
161     # #unpack alsa drivers
162     # echo "Unpacking ALSA drivers..."
163     # cd ${S}/extras
164     # unpack alsa-driver-${AV}.tar.bz2
165     # fi
166    
167     # if [ "`use lm_sensors`" ]
168     # then
169     # #unpack and apply the lm_sensors patch
170     # echo "Unpacking and applying lm_sensors patch..."
171     # cd ${S}/extras
172     # unpack lm_sensors-${SENV}.tar.gz
173     # unpack i2c-${SENV}.tar.gz
174     # try cd i2c-${SENV}
175     # try rmdir src
176     # try ln -s ../.. src
177     # try mkpatch/mkpatch.pl . /usr/src/linux | patch -p1 -E -d /usr/src/linux
178     # cp Makefile Makefile.orig
179     # try sed -e \"s:^LINUX=.*:LINUX=src:\" \
180     # -e \"s/^COMPILE_KERNEL.*/COMPILE_KERNEL := 2/\" \
181     # -e \"s:^I2C_HEADERS.*:I2C_HEADERS=.i2c-src/kernel:\" \
182     # -e \"s#^DESTDIR.*#DESTDIR := ${D}#\" \
183     # -e \"s#^PREFIX.*#PREFIX := /usr#\" \
184     # -e \"s#^MANDIR.*#MANDIR := /usr/share/man#\" \
185     # Makefile.orig > Makefile
186     # try cd ${S}/extras/lm_sensors-${SENV}
187     # try rmdir src
188     # try ln -s ../.. src
189     # try ln -s ../i2c-${SENV} i2c-src
190     # try mkpatch/mkpatch.pl . /usr/src/linux | patch -p1 -E -d /usr/src/linux
191     # try sed -e \"s:^LINUX=.*:LINUX=src:\" \
192     # -e \"s/^COMPILE_KERNEL.*/COMPILE_KERNEL := 2/\" \
193     # -e \"s:^I2C_HEADERS.*:I2C_HEADERS=.i2c-src/kernel:\" \
194     # -e \"s#^DESTDIR.*#DESTDIR := ${D}#\" \
195     # -e \"s#^PREFIX.*#PREFIX := /usr#\" \
196     # -e \"s#^MANDIR.*#MANDIR := /usr/share/man#\" \
197     # Makefile.orig > Makefile
198     # fi
199     if [ "`use pcmcia-cs`" ]
200     then
201     echo "Unpacking pcmcia-cs tools..."
202 drobbins 1.2 cd ${S2}
203 drobbins 1.1 unpack pcmcia-cs-${PCV}.tar.gz
204     # patch -p0 < ${FILESDIR}/${KV}/pcmcia-cs-${PCV}-gentoo.diff
205     fi
206    
207     #JFS patch works; commented out because it's not ready for production use
208     #if [ "`use jfs`" ]
209     #then
210     # echo "Applying JFS patch..."
211     # cd ${WORKDIR}
212     # unpack jfs-${JFSV}-patch.tar.gz
213     # cd ${S}
214     # patch -p1 < ${WORKDIR}/jfs-common-v1.0.0-patch
215     # patch -p1 < ${WORKDIR}/jfs-2.4.5-v1.0.0-patch
216     #fi
217    
218     if [ "`use ext3`" ]
219     then
220     echo "Applying ext3 patch..."
221     if [ "`use mosix`" ]
222     then
223     echo
224     echo "There will be one reject; we will fix it. (no worries)"
225     echo
226     fi
227     cd ${S}
228 drobbins 1.2 gzip -dc ${DISTDIR}/ext3-${EXT3V}.gz | patch -l -p1
229 drobbins 1.1 if [ "`use mosix`" ]
230     then
231     echo
232     echo "Fixing reject in include/linux/sched.h..."
233     echo
234     cp ${FILESDIR}/${KV}/sched.h include/linux
235     fi
236     fi
237    
238     #get sources ready for compilation or for sitting at /usr/src/linux
239     echo "Preparing for compilation..."
240     cd ${S}
241     #sometimes we have icky kernel symbols; this seems to get rid of them
242     try make mrproper
243    
244     #linux-sources needs to be fully configured, too. Not just linux
245     if [ "${PN}" != "linux-extras" ]
246     then
247     #this is the configuration for the default kernel
248     try cp ${FILESDIR}/${KV}/config.bootcd .config
249     try yes \"\" \| make oldconfig
250     echo "Ignore any errors from the yes command above."
251     fi
252    
253     #fix silly permissions in tarball
254     cd ${WORKDIR}
255     chown -R 0.0 ${S}
256     chmod -R a+r-w+X,u+w ${S}
257    
258     fi
259     }
260 drobbins 1.2
261 drobbins 1.1 src_compile() {
262     if [ "${PN}" != "linux-sources" ]
263     then
264     if [ $PN = "linux" ]
265     then
266     try make symlinks
267     fi
268     if [ "`use lvm`" ]
269     then
270     #LVM tools are included in the linux and linux-extras pakcages
271 drobbins 1.2 cd ${KS2}/LVM/${LVMV}
272 drobbins 1.1
273     # This is needed for linux-extras
274     if [ -f "Makefile" ]
275     then
276     try make clean
277     fi
278     # I had to hack this in so that LVM will look in the current linux
279     # source directory instead of /usr/src/linux for stuff - pete
280     try CFLAGS=\""${CFLAGS} -I${KS}/include"\" ./configure --prefix=/ --mandir=/usr/share/man --with-kernel_dir="${KS}"
281     try make
282     fi
283    
284     # if [ "`use lm_sensors`" ]
285     # then
286     # cd ${KS}/extras/lm_sensors-${SENV}
287     # try make
288     # fi
289    
290     # Works, just commented out because JFS isn't ready to be used by non-developers
291     # if [ "`use jfs`" ]
292     # then
293     # cd ${S}/fs/jfs/utils
294     # try make
295     # cd output
296     # into /
297     # dosbin *
298     # doman `find -iname *.8`
299     # fi
300    
301     if [ "$PN" == "linux" ]
302     then
303     try make HOSTCFLAGS=\""${LINUX_HOSTCFLAGS}"\" dep
304     try make HOSTCFLAGS=\""${LINUX_HOSTCFLAGS}"\" bzImage
305     #LEX=\""flex -l"\" bzImage
306     try make HOSTCFLAGS=\""${LINUX_HOSTCFLAGS}"\" modules
307     #LEX=\""flex -l"\" modules
308     fi
309    
310     #This is moving into its own package RSN
311     # This must come after the kernel compilation in linux
312     # if [ "`use alsa`" ]
313     # then
314     # cd ${KS}/extras/alsa-driver-${AV}
315     # # This is needed for linux-extras
316     # if [ -f "Makefile.conf" ]
317     # then
318     # try make clean
319     # fi
320     # try ./configure --with-kernel=\"${KS}\" --with-isapnp=yes --with-sequencer=yes --with-oss=yes --with-cards=all
321     # try make
322     # fi
323    
324     if [ "`use mosix`" ]
325     then
326 drobbins 1.2 cd ${KS2}/MOSIX-${MOSV}
327 drobbins 1.1 local x
328     for x in lib/moslib sbin/setpe sbin/tune bin/mosrun usr.bin/mon usr.bin/migrate usr.bin/mosctl
329     do
330     cd $x
331     make
332     cd ../..
333     done
334     fi
335    
336     if [ "`use pcmcia-cs`" ]
337     then
338 drobbins 1.2 cd ${KS2}/pcmcia-cs-${PCV}
339 drobbins 1.1 # This is needed for linux-extras
340     if [ -f "Makefile" ]
341     then
342     try make clean
343     fi
344     try ./Configure -n --kernel=${KS} --moddir=/lib/modules/${KV} \
345     --notrust --cardbus --nopnp --noapm --srctree --sysv --rcdir=/etc/rc.d/
346     try make all
347     fi
348     else
349     #linux-sources
350     try make HOSTCFLAGS=\""${LINUX_HOSTCFLAGS}"\" dep
351     fi
352     }
353    
354     src_install() {
355     # We install the alsa headers in all three packages
356     # if [ "`use alsa`" ]
357     # then
358     # #i get alsa includes
359     # cd ${KS}/extras/alsa-driver-${AV}
360     # insinto /usr/src/linux-${KV}/include/linux
361     # cd include
362     # doins asound.h asoundid.h asequencer.h ainstr_*.h
363     # fi
364    
365     if [ ! "${PN}" = "linux-sources" ]
366     then
367     dodir /usr/lib
368    
369     if [ "`use mosix`" ]
370     then
371 drobbins 1.2 cd ${KS2}/MOSIX-${MOSV}
372 drobbins 1.1 dodir /usr/lib /usr/include
373     dolib.a libmos.a
374     dolib.so libmos.so.0
375     ln -s libmos.so.0 ${D}/usr/lib/libmos.so
376     insinto /usr/include
377     doins *.h
378    
379     cd ../../sbin/setpe
380     doman setpe.1
381     into /
382     dosbin setpe
383    
384 drobbins 1.2 cd ../tune
385     dosbin tune mtune tunepass tune_kernel prep_tune
386     doman tune.1
387 drobbins 1.1
388     cd ../../bin/mosrun
389     dobin mosrun nomig runhome runon cpujob iojob nodecay slowdecay fastdecay
390     doman mosrun.1
391     local x
392     for x in nomig runhome runon cpujob iojob nodecay slowdecay fastdecay
393     do
394     ln -s mosrun.1.gz ${D}/usr/share/man/man1/${x}.1.gz
395     done
396    
397     cd ../../usr.bin/mon
398     into /usr
399     dobin mon
400     doman mon.1
401    
402     cd ../migrate
403     dobin migrate
404     doman migrate.1
405    
406     cd ../mosctl
407     dobin mosctl
408     doman mosctl.1
409    
410     exeinto /etc/rc.d/init.d
411     newexe ${FILESDIR}/${KV}/mosix.init mosix
412 drobbins 1.2
413     cd ${KS2}/MOSIX-${MOSV}
414     for x in lib/moslib sbin/setpe sbin/tune bin/mosrun usr.bin/mon usr.bin/migrate usr.bin/mosctl
415     do
416     cd ${x}
417     make clean
418     cd ../..
419     done
420 drobbins 1.1 fi
421    
422     if [ "`use lvm`" ]
423     then
424 drobbins 1.2 cd ${KS2}/LVM/${LVMV}/tools
425 drobbins 1.1
426     try CFLAGS=\""${CFLAGS} -I${KS}/include"\" make install -e prefix=${D} mandir=${D}/usr/share/man \
427     sbindir=${D}/sbin libdir=${D}/lib
428     #no need for a static library in /lib
429     mv ${D}/lib/*.a ${D}/usr/lib
430     fi
431    
432     # if [ "`use lm_sensors`" ]
433     # then
434     # echo "Install sensor tools..."
435     # #install sensors tools
436     # cd ${KS}/extras/lm_sensors-${SENV}
437     # make install
438     # fi
439    
440     if [ "${PN}" = "linux" ]
441     then
442     dodir /usr/src
443     dodir /usr/src/linux-${KV}
444     cd ${D}/usr/src
445     #grab includes and documentation only
446     echo ">>> Copying includes and documentation..."
447     cp -ax ${S}/include ${D}/usr/src/linux-${KV}
448     cp -ax ${S}/Documentation ${D}/usr/src/linux-${KV}
449    
450     #grab compiled kernel
451     dodir /boot/boot
452     insinto /boot/boot
453     cd ${S}
454     doins arch/i386/boot/bzImage
455    
456     #grab modules
457     # Do we have a bug in modutils ?
458     # Meanwhile we use this quick fix (achim)
459    
460     install -d ${D}/lib/modules/`uname -r`
461     try make INSTALL_MOD_PATH=${D} modules_install
462    
463     depmod -b ${D} -F ${S}/System.map ${KV}
464     #rm -rf ${D}/lib/modules/`uname -r`
465     #fix symlink
466     cd ${D}/lib/modules/${KV}
467     rm build
468     ln -sf /usr/src/linux-${KV} build
469     fi
470    
471     # if [ "`use alsa`" ]
472     # then
473     # #install ALSA modules
474     # cd ${KS}/extras/alsa-driver-${AV}
475     # dodoc INSTALL FAQ
476     # dodir /lib/modules/${KV}/misc
477     # cp modules/*.o ${D}/lib/modules/${KV}/misc
478     # fi
479     if [ "`use pcmcia-cs`" ]
480     then
481     #install PCMCIA modules and utilities
482 drobbins 1.2 cd ${KS2}/pcmcia-cs-${PCV}
483 drobbins 1.1 try make PREFIX=${D} MANDIR=${D}/usr/share/man install
484     rm -rf ${D}/etc/rc.d
485     exeinto /etc/rc.d/init.d
486     doexe ${FILESDIR}/${KV}/pcmcia
487     fi
488     else
489     dodir /usr/src
490     cd ${S}
491     #make mrproper
492    
493     if [ "`use build`" ] ; then
494     dodir /usr/src/linux-${KV}
495     #grab includes and documentation only
496     echo ">>> Copying includes..."
497     cp -ax ${S}/include ${D}/usr/src/linux-${KV}
498     else
499     echo ">>> Copying sources..."
500     cp -ax ${S} ${D}/usr/src
501     fi
502     fi
503     if [ "$PN" != "linux-extras" ]
504     then
505     #don't overwrite existing .config if present
506     cd ${D}/usr/src/linux-${KV}
507     if [ -e .config ]
508     then
509     cp -a .config .config.eg
510     fi
511     fi
512     }
513    
514     pkg_postinst() {
515     rm -f ${ROOT}/usr/src/linux
516     ln -sf linux-${KV} ${ROOT}/usr/src/linux
517    
518     #copy over our .config if one isn't already present
519     cd ${ROOT}/usr/src/linux-${KV}
520     if [ "${PN}" = "linux-sources" ] && [ -e .config.eg ] && [ ! -e .config ]
521     then
522     cp -a .config.eg .config
523     fi
524     }

  ViewVC Help
Powered by ViewVC 1.1.20