SPECS (DEVEL): umlinux.spec - rewritten %%build section (based on kernel-va...

pawelz pawelz at pld-linux.org
Tue Oct 28 23:46:25 CET 2008


Author: pawelz                       Date: Tue Oct 28 22:46:25 2008 GMT
Module: SPECS                         Tag: DEVEL
---- Log message:
- rewritten %%build section (based on kernel-vanilla.spec at Titanium)
- it builds now
- NFY

---- Files affected:
SPECS:
   umlinux.spec (1.23.2.9 -> 1.23.2.10) 

---- Diffs:

================================================================
Index: SPECS/umlinux.spec
diff -u SPECS/umlinux.spec:1.23.2.9 SPECS/umlinux.spec:1.23.2.10
--- SPECS/umlinux.spec:1.23.2.9	Tue Oct 28 10:16:59 2008
+++ SPECS/umlinux.spec	Tue Oct 28 23:46:19 2008
@@ -1,6 +1,7 @@
 # $Revision$, $Date$
 %define basever 2.6.27
 %define postver .3
+%define alt_kernel uml
 Summary:	User Mode Linux
 Summary(pl.UTF-8):	Linux w przestrzeni użytkownika
 Name:		umlinux
@@ -21,6 +22,24 @@
 URL:		http://user-mode-linux.sourceforge.net/
 BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
+%define		_localversion %{release}
+%define         kernel_release %{version}-%{alt_kernel}-%{_localversion}
+
+%define         defconfig       arch/um/defconfig
+
+# No ELF objects there to strip (skips processing 27k files)
+%define         _noautostrip    .*%{_kernelsrcdir}/.*
+%define         _noautochrpath  .*%{_kernelsrcdir}/.*
+
+%define         topdir          %{_builddir}/%{name}-%{version}
+%define         srcdir          %{topdir}/linux-%{basever}
+
+%define         CommonOpts      HOSTCC="%{kgcc}" HOSTCFLAGS="-Wall -Wstrict-prototypes %{rpmcflags} -fomit-frame-pointer"
+%define		MakeOpts	%{CommonOpts} ARCH=um CC="%{kgcc}" LDFLAGS=-L/lib
+%define		DepMod		/bin/true
+
+%define CrossOpts ARCH=um LDFLAGS=-L/lib CC="%{__cc}"
+
 %description
 User Mode Linux.
 
@@ -53,17 +72,93 @@
 %setup -qc
 
 cd linux-%{basever}
+
 %if "%{postver}" != "%{nil}"
-%{__bzip2} -dc %{SOURCE1} | %{__patch} -p1 -s
+%{__bzip2} -dc %{SOURCE1} | patch -p1 -s
 %endif
 
-cp %{SOURCE2} ./.config
-cp %{SOURCE3} .
+# Fix EXTRAVERSION in main Makefile
+sed -i 's#EXTRAVERSION =.*#EXTRAVERSION = %{postver}-%{alt_kernel}#g' Makefile
+
+# cleanup backups after patching
+find '(' -name '*~' -o -name '*.orig' -o -name '.gitignore' ')' -print0 | xargs -0 -r -l512 rm -f
+
+cp %SOURCE3 .
 
 %build
+
 cd linux-%{basever}
-#%{__make} ARCH=um oldconfig
-%{__make} ARCH=um LDFLAGS=-L/lib
+
+BuildConfig() {
+	%{?debug:set -x}
+	# is this a special kernel we want to build?
+	KernelVer=%{kernel_release}
+	cat $RPM_SOURCE_DIR/umlinux-config > %{defconfig}
+
+%{?debug:sed -i "s:# CONFIG_DEBUG_SLAB is not set:CONFIG_DEBUG_SLAB=y:" %{defconfig}}
+%{?debug:sed -i "s:# CONFIG_DEBUG_PREEMPT is not set:CONFIG_DEBUG_PREEMPT=y:" %{defconfig}}
+%{?debug:sed -i "s:# CONFIG_RT_DEADLOCK_DETECT is not set:CONFIG_RT_DEADLOCK_DETECT=y:" %{defconfig}}
+
+}
+
+BuildKernel() {
+	%{?debug:set -x}
+	echo "Building kernel $1 ..."
+	%{__make} %CrossOpts mrproper \
+		RCS_FIND_IGNORE='-name build-done -prune -o'
+	ln -sf %{defconfig} .config
+
+	%{__make} %CrossOpts clean \
+		RCS_FIND_IGNORE='-name build-done -prune -o'
+	%{__make} %CrossOpts include/linux/version.h \
+		%{?with_verbose:V=1}
+
+	%{__make} %CrossOpts scripts/mkcompile_h \
+		%{?with_verbose:V=1}
+
+	%{__make} %CrossOpts \
+		%{?with_verbose:V=1}
+}
+
+PreInstallKernel() {
+	%{__make} %CrossOpts modules_install \
+		%{?with_verbose:V=1} \
+		DEPMOD=%DepMod \
+		INSTALL_MOD_PATH=$KERNEL_INSTALL_DIR \
+		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
+	echo "KERNEL RELEASE $KernelVer DONE"
+}
+
+KERNEL_BUILD_DIR=`pwd`
+
+KERNEL_INSTALL_DIR="$KERNEL_BUILD_DIR/build-done/kernel"
+rm -rf $KERNEL_INSTALL_DIR
+BuildConfig
+ln -sf %{defconfig} .config
+install -d $KERNEL_INSTALL_DIR%{_kernelsrcdir}/include/linux
+rm -f include/linux/autoconf.h
+%{__make} %CrossOpts 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
+BuildKernel
+PreInstallKernel
+
+%{__make} %CrossOpts 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
@@ -71,10 +166,21 @@
 install %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/umltab
 install %{SOURCE5} $RPM_BUILD_ROOT/etc/rc.d/init.d/uml
 
+install -d $RPM_BUILD_ROOT%{_prefix}/src/linux-%{version}
+install -d $RPM_BUILD_ROOT/lib/modules/%{version}-uml/misc
+
 cd linux-%{basever}
 install linux $RPM_BUILD_ROOT%{_bindir}/linux
 %{__make} ARCH=um modules_install  INSTALL_MOD_PATH=$RPM_BUILD_ROOT
 
+cd %{topdir}/linux-%{basever}
+
+install -d $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux
+cp -a  Module.symvers $RPM_BUILD_ROOT%{_kernelsrcdir}/Module.symvers-dist
+cp -aL .config $RPM_BUILD_ROOT%{_kernelsrcdir}/config-dist
+cp -a  include/linux/autoconf.h $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux/autoconf-dist.h
+cp -a  include/linux/{utsrelease,version}.h $RPM_BUILD_ROOT%{_kernelsrcdir}/include/linux
+
 %post modules
 %depmod %{version}
 
@@ -91,19 +197,28 @@
 
 %files modules
 %defattr(644,root,root,755)
-/lib/modules/%{basever}%{postver}
+/lib/modules/%{version}-uml
 
 %files init
 %defattr(644,root,root,755)
 %attr(754,root,root) /etc/rc.d/init.d/uml
 %{_sysconfdir}/umltab
 
+# %files doc
+# %defattr(644,root,root,755)
+# %{_prefix}/src/linux-%{version}/Documentation
+
 %define date	%(echo `LC_ALL="C" date +"%a %b %d %Y"`)
 %changelog
 * %{date} PLD Team <feedback at pld-linux.org>
 All persons listed below can be reached at <cvs_login>@pld-linux.org
 
 $Log$
+Revision 1.23.2.10  2008/10/28 22:46:19  pawelz
+- rewritten %%build section (based on kernel-vanilla.spec at Titanium)
+- it builds now
+- NFY
+
 Revision 1.23.2.9  2008/10/28 09:16:59  pawelz
 - depmod in post/postun
 
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/SPECS/umlinux.spec?r1=1.23.2.9&r2=1.23.2.10&f=u



More information about the pld-cvs-commit mailing list