Author: pawelz Date: Tue Oct 28 22:46:25 2008 GMT Module: SPECS Tag: DEVEL ---- Log message: - rewritten %%build section (based on [EMAIL PROTECTED]) - 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 <[EMAIL PROTECTED]> 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 [EMAIL PROTECTED]) +- 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 _______________________________________________ pld-cvs-commit mailing list [email protected] http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit
