SPECS (LINUX_2_6): kernel.spec - clean build code merged from kernel-vanill...
glen
glen at pld-linux.org
Sun Mar 29 22:39:49 CEST 2009
Author: glen Date: Sun Mar 29 20:39:49 2009 GMT
Module: SPECS Tag: LINUX_2_6
---- Log message:
- clean build code merged from kernel-vanilla.spec
- package unpackaged files
---- Files affected:
SPECS:
kernel.spec (1.441.2.2088 -> 1.441.2.2089)
---- Diffs:
================================================================
Index: SPECS/kernel.spec
diff -u SPECS/kernel.spec:1.441.2.2088 SPECS/kernel.spec:1.441.2.2089
--- SPECS/kernel.spec:1.441.2.2088 Sun Mar 29 13:49:14 2009
+++ SPECS/kernel.spec Sun Mar 29 22:39:42 2009
@@ -159,6 +159,7 @@
Source8: kernel-track-config-change.awk
# not used by kernel.spec, but it's good to have it in SOURCES
Source9: kernel-config-sort.pl
+Source10: kernel.make
Source20: kernel-multiarch.config
Source21: kernel-x86.config
@@ -431,6 +432,11 @@
%define initrd_dir /boot
%endif
+%define topdir %{_builddir}/%{name}-%{version}
+%define srcdir %{topdir}/linux-%{basever}
+%define objdir %{topdir}/%{targetobj}
+%define targetobj %{_target_base_arch}-gcc-%(%{kgcc} -dumpversion)
+
%define _kernelsrcdir /usr/src/linux%{_alt_kernel}-%{version}
%if "%{_target_base_arch}" != "%{_arch}"
@@ -724,6 +730,8 @@
%prep
%setup -qc
+ln -s %{SOURCE7} kernel-module-build.pl
+ln -s %{SOURCE10} Makefile
cd linux-%{basever}
# hack against warning in pax/grsec
@@ -950,8 +958,20 @@
find '(' -name '*~' -o -name '*.orig' -o -name '.gitignore' ')' -print0 | xargs -0 -r -l512 rm -f
%build
-cd linux-%{basever}
-PaXconfig () {
+install -d %{objdir}
+cat > %{targetobj}.mk <<'EOF'
+# generated by %{name}.spec
+KERNELSRC := %{_builddir}/%{name}-%{version}/linux-%{basever}
+KERNELOUTPUT := %{objdir}
+
+SRCARCH := %{target_arch_dir}
+ARCH := %{_target_base_arch}
+Q := %{!?with_verbose:@}
+MAKE_OPTS := %{MakeOpts}
+DEFCONFIG := %{defconfig}
+EOF
+
+PaXconfig() {
set -x
cat <<-EOCONFIG > $1
%ifarch %{ix86}
@@ -1038,10 +1058,12 @@
set -e
Config="kernel-%{target_arch_dir}.config"
- echo "Building config file for %{_target_cpu} using $Config et al."
+ echo >&2 "Building config file for %{_target_cpu} using $Config et al."
# prepare local and important options
cat <<-EOCONFIG > important.config
+ LOCALVERSION="-%{localversion}"
+
%if 0%{?debug:1}
CONFIG_DEBUG_SLAB=y
CONFIG_DEBUG_SLAB_LEAK=y
@@ -1095,8 +1117,12 @@
%endif
EOCONFIG
+%if %{with rescuecd}
RescueConfig rescue.config
+%endif
+%if %{with pax_full} || %{with pax}
PaXconfig pax.config
+%endif
# prepare kernel-style config file from multiple config files
%{__awk} -v arch="all %{target_arch_dir} %{_target_base_arch} %{_target_cpu}" -f %{SOURCE6} \
@@ -1149,192 +1175,105 @@
%{SOURCE40} %{?0:netfilter} \
%{SOURCE41} %{?0:patches} \
%{SOURCE20} \
- $RPM_SOURCE_DIR/$Config \
- > %{defconfig}
+ $RPM_SOURCE_DIR/$Config
}
-BuildKernel() {
- %{?debug:set -x}
- echo "Building kernel $1 ..."
- install .config %{defconfig}
- %{__make} %{MakeOpts} mrproper \
- RCS_FIND_IGNORE='-name build-done -prune -o'
- ln -sf %{defconfig} .config
-
- %{__make} %{MakeOpts} clean \
- RCS_FIND_IGNORE='-name build-done -prune -o'
- %{__make} %{MakeOpts} include/linux/version.h \
- %{?with_verbose:V=1}
+cd %{objdir}
+install -d arch/%{target_arch_dir}
+%if %{without myown}
+BuildConfig > %{defconfig}
+%else
+cat $RPM_SOURCE_DIR/kernel-myown.config > %{defconfig}
+%endif
+ln -sf %{defconfig} .config
+cd -
- %{__make} %{MakeOpts} scripts/mkcompile_h \
- %{?with_verbose:V=1}
+# build kernel
+%{__make} TARGETOBJ=%{targetobj} all
-# make does vmlinux, modules and bzImage at once
-%ifarch sparc64
- %{__make} %{MakeOpts} image \
- %{?with_verbose:V=1}
+%{__awk} %{?debug:-v dieOnError=1} -v infile=%{objdir}/%{defconfig} -f %{SOURCE8} %{objdir}/.config
- %{__make} %{MakeOpts} modules \
- %{?with_verbose:V=1}
-%else
- %{__make} %{MakeOpts} \
- %{?with_verbose:V=1}
-%endif
-}
+%install
+rm -rf $RPM_BUILD_ROOT
+%{__make} %{MakeOpts} %{!?with_verbose:-s} modules_install firmware_install \
+ -C %{objdir} \
+ %{?with_verbose:V=1} \
+ DEPMOD=%{DepMod} \
+ INSTALL_MOD_PATH=$RPM_BUILD_ROOT \
+ INSTALL_FW_PATH=$RPM_BUILD_ROOT/lib/firmware/%{kernel_release} \
+ KERNELRELEASE=%{kernel_release}
-PreInstallKernel() {
- Config="%{_target_base_arch}"
- KernelVer=%{kernel_release}
+install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/misc
- mkdir -p $KERNEL_INSTALL_DIR/boot
- install System.map $KERNEL_INSTALL_DIR/boot/System.map-$KernelVer
+# rpm obeys filelinkto checks for ghosted symlinks, convert to files
+rm -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
+touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
+
+# /boot
+install -d $RPM_BUILD_ROOT/boot
+cp -a %{objdir}/System.map $RPM_BUILD_ROOT/boot/System.map-%{kernel_release}
%ifarch %{ix86} %{x8664}
- install arch/x86/boot/bzImage $KERNEL_INSTALL_DIR/boot/vmlinuz-$KernelVer
- install vmlinux $KERNEL_INSTALL_DIR/boot/vmlinux-$KernelVer
+cp -a %{objdir}/arch/%{target_arch_dir}/boot/bzImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
+install %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release}
+%endif
+%ifarch ppc ppc64
+install %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
+install %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinux-%{kernel_release}
+%endif
+%ifarch ia64
+%{__gzip} -cfv %{objdir}/vmlinux > %{objdir}/vmlinuz
+cp -a %{objdir}/vmlinuz $RPM_BUILD_ROOT/boot/efi/vmlinuz-%{kernel_release}
+ln -sf efi/vmlinuz-%{kernel_release} $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
%endif
%ifarch alpha sparc sparc64
- gzip -cfv vmlinux > vmlinuz
- install vmlinux $KERNEL_INSTALL_DIR/boot/vmlinux-$KernelVer
- install vmlinuz $KERNEL_INSTALL_DIR/boot/vmlinuz-$KernelVer
+ %{__gzip} -cfv %{objdir}/vmlinux > %{objdir}/vmlinuz
+ cp -a %{objdir}/vmlinuz $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
+ install %{objdir}/vmlinux $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
%ifarch sparc
- elftoaout arch/sparc/boot/image -o vmlinux.aout
- install vmlinux.aout $KERNEL_INSTALL_DIR/boot/vmlinux.aout-$KernelVer
+ elftoaout %{objdir}/arch/sparc/boot/image -o %{objdir}/vmlinux.aout
+ install %{objdir}/vmlinux.aout $RPM_BUILD_ROOT/boot/vmlinux.aout-%{kernel_release}
%endif
%ifarch sparc64
- elftoaout arch/sparc64/boot/image -o vmlinux.aout
- install vmlinux.aout $KERNEL_INSTALL_DIR/boot/vmlinux.aout-$KernelVer
-%endif
-%endif
-%ifarch ppc ppc64
- install vmlinux $KERNEL_INSTALL_DIR/boot/vmlinux-$KernelVer
- install vmlinux $KERNEL_INSTALL_DIR/boot/vmlinuz-$KernelVer
-%endif
-%ifarch ppc-broken
- %{__make} -f Makefile.ppclibs install \
- DESTDIR=$KERNEL_INSTALL_DIR/boot/libs-$KernelVer
-%endif
-%ifarch ia64
- gzip -cfv vmlinux > vmlinuz
- install -d $KERNEL_INSTALL_DIR/boot/efi
- install vmlinuz $KERNEL_INSTALL_DIR/boot/efi/vmlinuz-$KernelVer
- ln -sf efi/vmlinuz-$KernelVer $KERNEL_INSTALL_DIR/boot/vmlinuz-$KernelVer
+ elftoaout %{objdir}/arch/sparc64/boot/image -o %{objdir}/vmlinux.aout
+ install %{objdir}/vmlinux.aout $RPM_BUILD_ROOT/boot/vmlinux.aout-%{kernel_release}
%endif
%ifarch arm
- install arch/arm/boot/zImage $KERNEL_INSTALL_DIR/boot/vmlinuz-$KernelVer
+ install %{objdir}/arch/arm/boot/zImage $RPM_BUILD_ROOT/boot/vmlinuz-%{kernel_release}
%endif
-
- %{__make} %{MakeOpts} modules_install firmware_install \
- %{?with_verbose:V=1} \
- DEPMOD=%DepMod \
- INSTALL_MOD_PATH=$KERNEL_INSTALL_DIR \
- INSTALL_FW_PATH=$KERNEL_INSTALL_DIR/lib/firmware/$KernelVer \
- KERNELRELEASE=$KernelVer
-
- # You'd probabelly want to make it somewhat different
- install -d $KERNEL_INSTALL_DIR%{_kernelsrcdir}
- install Module.symvers $KERNEL_INSTALL_DIR%{_kernelsrcdir}/Module.symvers-dist
-
- echo "CHECKING DEPENDENCIES FOR KERNEL MODULES"
- if [ %DepMod = /sbin/depmod ]; then
- /sbin/depmod --basedir $KERNEL_INSTALL_DIR -ae -F $KERNEL_INSTALL_DIR/boot/System.map-$KernelVer -r $KernelVer || :
- fi
- touch $KERNEL_INSTALL_DIR/lib/modules/$KernelVer/modules.dep
- # binary cache produced by depmod at runtime
- touch $KERNEL_INSTALL_DIR/lib/modules/$KernelVer/modules.{alias,dep,symbols}.bin
- echo "KERNEL RELEASE $KernelVer DONE"
-}
-
-KERNEL_BUILD_DIR=`pwd`
-echo "-%{localversion}" > localversion
-
-KERNEL_INSTALL_DIR="$KERNEL_BUILD_DIR/build-done/kernel"
-rm -rf $KERNEL_INSTALL_DIR
-%if %{without myown}
-BuildConfig
-%else
-cat $RPM_SOURCE_DIR/kernel-myown.config > %{defconfig}
%endif
-ln -sf %{defconfig} .config
-install -d $KERNEL_INSTALL_DIR%{_kernelsrcdir}/include/linux
-rm -f include/linux/autoconf.h
-%{__make} %{MakeOpts} include/linux/autoconf.h
-install include/linux/autoconf.h \
- $KERNEL_INSTALL_DIR%{_kernelsrcdir}/include/linux/autoconf-dist.h
-install .config \
- $KERNEL_INSTALL_DIR%{_kernelsrcdir}/config-dist
-
-%{__awk} %{?debug:-v dieOnError=1} -v infile=%{defconfig} -f %{SOURCE8} .config
-
-BuildKernel
-PreInstallKernel
-
-%{__make} %{MakeOpts} include/linux/utsrelease.h
-cp include/linux/utsrelease.h{,.save}
-cp include/linux/version.h{,.save}
-cp scripts/mkcompile_h{,.save}
-%install
-rm -rf $RPM_BUILD_ROOT
-cd linux-%{basever}
+# ghosted initrd
+touch $RPM_BUILD_ROOT%{initrd_dir}/initrd-%{kernel_release}.gz
-umask 022
-export DEPMOD=%DepMod
+%if "%{_target_base_arch}" != "%{_arch}"
+touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/modules.dep
+%endif
-install -d $RPM_BUILD_ROOT%{_kernelsrcdir}
+# /etc/modrobe.d
install -d $RPM_BUILD_ROOT%{_sysconfdir}/modprobe.d/%{kernel_release}
+# /usr/src/linux
+install -d $RPM_BUILD_ROOT%{_kernelsrcdir}
# test if we can hardlink -- %{_builddir} and $RPM_BUILD_ROOT on same partition
-if cp -al COPYING $RPM_BUILD_ROOT/COPYING 2>/dev/null; then
+if cp -al %{srcdir}/COPYING $RPM_BUILD_ROOT/COPYING 2>/dev/null; then
l=l
rm -f $RPM_BUILD_ROOT/COPYING
fi
-KERNEL_BUILD_DIR=`pwd`
-
-cp -a$l $KERNEL_BUILD_DIR/build-done/kernel/* $RPM_BUILD_ROOT
-
-if [ -e $RPM_BUILD_ROOT/lib/modules/%{kernel_release} ] ; then
- rm -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/build
- ln -sf %{_kernelsrcdir} $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/build
- install -d $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{cluster,misc}
-fi
-
-find . -maxdepth 1 ! -name "build-done" ! -name "." -exec cp -a$l "{}" "$RPM_BUILD_ROOT%{_kernelsrcdir}/" ";"
-
-cd $RPM_BUILD_ROOT%{_kernelsrcdir}
-
-%{__make} %{MakeOpts} mrproper archclean \
- RCS_FIND_IGNORE='-name build-done -prune -o'
-
-if [ -e $KERNEL_BUILD_DIR/build-done/kernel%{_kernelsrcdir}/include/linux/autoconf-dist.h ]; then
- install $KERNEL_BUILD_DIR/build-done/kernel%{_kernelsrcdir}/include/linux/autoconf-dist.h \
- $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux
- install $KERNEL_BUILD_DIR/build-done/kernel%{_kernelsrcdir}/config-dist \
- $RPM_BUILD_ROOT%{_kernelsrcdir}
-fi
-
-cp -Rdp$l $KERNEL_BUILD_DIR/include/linux/* \
- $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux
-
-%{__make} %{MakeOpts} mrproper
-mv -f include/linux/utsrelease.h{.save,}
-mv -f include/linux/version.h{.save,}
-mv -f scripts/mkcompile_h{.save,}
-install %{SOURCE3} $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux/autoconf.h
-install %{SOURCE4} $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux/config.h
+cp -a$l %{srcdir}/* $RPM_BUILD_ROOT%{_kernelsrcdir}
+cp -a %{objdir}/Module.symvers $RPM_BUILD_ROOT%{_kernelsrcdir}/Module.symvers-dist
+cp -aL %{objdir}/.config $RPM_BUILD_ROOT%{_kernelsrcdir}/config-dist
+cp -a %{objdir}/include/linux/autoconf.h $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux/autoconf-dist.h
+cp -a %{objdir}/include/linux/{utsrelease,version}.h $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux
+cp -a %{SOURCE3} $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux/autoconf.h
+cp -a %{SOURCE4} $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux/config.h
# collect module-build files and directories
-perl %{SOURCE7} %{_kernelsrcdir} %{_builddir}/%{name}-%{version}
-
-# ghosted initrd
-touch $RPM_BUILD_ROOT%{initrd_dir}/initrd-%{kernel_release}.gz
-
-# rpm obeys filelinkto checks for ghosted symlinks, convert to files
-rm -f $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
-touch $RPM_BUILD_ROOT/lib/modules/%{kernel_release}/{build,source}
-
-# remove unnecessary dir with dead symlink
-rm -rf $RPM_BUILD_ROOT/arch/i386
+# Usage: kernel-module-build.pl $rpmdir $fileoutdir
+fileoutdir=$(pwd)
+cd $RPM_BUILD_ROOT%{_kernelsrcdir}
+%{__perl} %{topdir}/kernel-module-build.pl %{_kernelsrcdir} $fileoutdir
+cd -
%clean
rm -rf $RPM_BUILD_ROOT
@@ -1590,7 +1529,6 @@
%files module-build -f aux_files
%defattr(644,root,root,755)
-%{_kernelsrcdir}/localversion
%ifarch ppc ppc64
%{_kernelsrcdir}/arch/powerpc/lib/crtsavres.*
%endif
@@ -1625,6 +1563,12 @@
%defattr(644,root,root,755)
%{_kernelsrcdir}/arch/*/[!Mik]*
%{_kernelsrcdir}/arch/*/kernel/[!M]*
+%{_kernelsrcdir}/arch/ia64/ia32/[!M]*
+%{_kernelsrcdir}/arch/ia64/install.sh
+%{_kernelsrcdir}/arch/m68k/ifpsp060/[!M]*
+%{_kernelsrcdir}/arch/m68k/ifpsp060/MISC
+%{_kernelsrcdir}/arch/parisc/install.sh
+%{_kernelsrcdir}/arch/x86/ia32/[!M]*
%{_kernelsrcdir}/arch/ia64/kvm
%{_kernelsrcdir}/arch/powerpc/kvm
%ifarch ppc ppc64
@@ -1638,6 +1582,7 @@
%{_kernelsrcdir}/block
%{_kernelsrcdir}/crypto
%{_kernelsrcdir}/drivers
+%{_kernelsrcdir}/firmware
%{_kernelsrcdir}/fs
%if %{with grsecurity} && %{without rescuecd}
%{_kernelsrcdir}/grsecurity
@@ -1650,6 +1595,7 @@
%{_kernelsrcdir}/mm
%{_kernelsrcdir}/net
%{_kernelsrcdir}/virt
+%{_kernelsrcdir}/samples
%{_kernelsrcdir}/scripts/*
%exclude %{_kernelsrcdir}/scripts/Kbuild.include
%exclude %{_kernelsrcdir}/scripts/Makefile*
@@ -1669,7 +1615,6 @@
%{_kernelsrcdir}/MAINTAINERS
%{_kernelsrcdir}/README
%{_kernelsrcdir}/REPORTING-BUGS
-%{_kernelsrcdir}/.mailmap
%endif
%define date %(echo `LC_ALL="C" date +"%a %b %d %Y"`)
@@ -1678,8 +1623,12 @@
All persons listed below can be reached at <cvs_login>@pld-linux.org
$Log$
+Revision 1.441.2.2089 2009/03/29 20:39:42 glen
+- clean build code merged from kernel-vanilla.spec
+- package unpackaged files
+
Revision 1.441.2.2088 2009/03/29 11:49:14 arekm
-esfq needs fix
+- esfq needs fix
Revision 1.441.2.2087 2009/03/27 18:55:13 baggins
- mpt-fusion patch is NOT included upstream, just tiny bits of it
@@ -1688,7 +1637,8 @@
- minimum udev: 081 (Documentation/Changes)
Revision 1.441.2.2085 2009/03/24 14:56:52 arekm
-- tahoe, aufs1 need update; starts building with rpmbuild -bb kernel.spec --without tuxonice --without vserver --without apparmor --without grsecurity
+- tahoe, aufs1 need update; starts building with
+ rpmbuild -bb kernel.spec --without tuxonice --without vserver --without apparmor --without grsecurity
Revision 1.441.2.2084 2009/03/24 11:30:49 arekm
- fetch 2.6.29 tarball; 2.6.28 on LINUX_2_6_28 now
================================================================
---- CVS-web:
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/SPECS/kernel.spec?r1=1.441.2.2088&r2=1.441.2.2089&f=u
More information about the pld-cvs-commit
mailing list