packages (MULTIARCH_MAGIC): kernel-xenU/kernel-xenU-module-build.pl, kernel...

pawelz pawelz at pld-linux.org
Sat Sep 4 00:18:47 CEST 2010


Author: pawelz                       Date: Fri Sep  3 22:18:47 2010 GMT
Module: packages                      Tag: MULTIARCH_MAGIC
---- Log message:
- first attempt to merge the kernel.spec's config magic

---- Files affected:
packages/kernel-xenU:
   kernel-xenU-module-build.pl (1.1 -> 1.1.6.1) , kernel-xenU.spec (1.34 -> 1.34.2.1) , kernel-xenU-bzip2-lzma.config (NONE -> 1.1.2.1)  (NEW), kernel-xenU-config-sort.pl (NONE -> 1.1.2.1)  (NEW), kernel-xenU-config.awk (NONE -> 1.1.2.1)  (NEW), kernel-xenU-multiarch.config (NONE -> 1.1.2.1)  (NEW), kernel-xenU-netfilter.config (NONE -> 1.1.2.1)  (NEW), kernel-xenU-no-pax.config (NONE -> 1.1.2.1)  (NEW), kernel-xenU-track-config-change.awk (NONE -> 1.1.2.1)  (NEW), kernel-xenU-vserver-2.3.patch (NONE -> 1.1.2.1)  (NEW), kernel-xenU-vserver-fixes.patch (NONE -> 1.1.2.1)  (NEW), kernel-xenU-vserver.config (NONE -> 1.1.2.1)  (NEW), kernel-xenU-x86.config (NONE -> 1.2.2.1)  (NEW), kernel-xenU.make (NONE -> 1.1.2.1)  (NEW), kernel-xenU-x86_64.config (1.7 -> NONE)  (REMOVED), linux-2.6-vs2.3.patch (1.9 -> NONE)  (REMOVED)

---- Diffs:

================================================================
Index: packages/kernel-xenU/kernel-xenU-module-build.pl
diff -u packages/kernel-xenU/kernel-xenU-module-build.pl:1.1 packages/kernel-xenU/kernel-xenU-module-build.pl:1.1.6.1
--- packages/kernel-xenU/kernel-xenU-module-build.pl:1.1	Tue Mar 10 10:56:28 2009
+++ packages/kernel-xenU/kernel-xenU-module-build.pl	Sat Sep  4 00:18:38 2010
@@ -6,33 +6,83 @@
 
 my $rpmdir = shift @ARGV or die;
 my $fileoutdir = shift @ARGV or die;
-my @tosort;
 
-find(\&wanted, ".");
+# files which match: */include/*/Kbuild
+my @modulebuild_in_include;
+# files which match: */Kbuild */Kconfig except include
+my @modulebuild;
+# parent dirs of Kconfig files which match */include*
+my @dirs_in_include;
+# parent dirs of Kconfig files except include
+my @dirs;
 
-sub wanted {
+sub push_dirs
+{
+	my $list = shift;
+	my $dir = shift;
+	my $subdir = "";
+	foreach my $sub ( split( '/', $dir )) {
+		$subdir .= "/" . $sub;
+		push @$list, "\%dir $rpmdir$subdir\n";
+	}
+}
+
+sub wanted
+{
 	return unless -f;
-	return unless /^Kconfig/ or /^Makefile/;
+	return unless /^Kconfig/ or /^Makefile/ or /^Kbuild/;
 	#return if /\.orig$/;
 	return if $File::Find::name =~ /(Documentation|scripts)/;
 	(my $file = $File::Find::name) =~ s#^\./##;
 	$file =~ m#^(.*)/#;
 	my $dir = $1 || "";
-	my $subdir = "";
-	foreach my $sub ( split( '/', $dir )) {
-		$subdir .= "/" . $sub;
-		push @tosort, "\%dir $rpmdir$subdir\n";
+	if ( $dir =~ m{^(.*/)?include(/.*?)?$} ) {
+		push @modulebuild_in_include, "$rpmdir/$file\n";
+		push_dirs( \@dirs_in_include, $dir );
+	} else {
+		push @modulebuild, "$rpmdir/$file\n";
+		push_dirs( \@dirs, $dir );
 	}
-	push @tosort, "$rpmdir/$file\n";
 }
 
-my $last = "";
-my @toprint = grep {if ($_ ne $last) { $last = $_; 1} else {0}} sort @tosort;
+find(\&wanted, ".");
+
+sub uniq
+{
+	my %hash = map { $_, 1 } @_;
+	return sort keys %hash;
+}
+
+sub remove
+{
+	my $from = shift;
+	my $what = shift;
+	my %hash = map { $_, 1 } @$from;
+	foreach ( @$what ) {
+		delete $hash{ $_ };
+	}
+	return sort keys %hash;
+}
+
+# to module-build add all Kconfig, Makefile and Kbuild files
+# also add all their parent dirs if they aren't parents of some include directory
+open F_OUT, "> $fileoutdir/files.mb_include_modulebuild_and_dirs"
+	or die "Can't create files.mb_include_modulebuild_and_dirs: $!\n";
+print F_OUT remove( \@dirs, \@dirs_in_include );
+print F_OUT uniq( @modulebuild_in_include, @modulebuild );
+close F_OUT and print "files.mb_include_modulebuild_and_dirs created\n";
+
+# from source remove all files Kconfig, Makefile and Kbuild files
+# also remove all their parent dirs
+open F_OUT, "> $fileoutdir/files.source_exclude_modulebuild_and_dirs"
+	or die "Can't create files.source_exclude_modulebuild_and_dirs: $!\n";
+print F_OUT map {"\%exclude $_"} uniq( @modulebuild_in_include, @modulebuild,
+	@dirs_in_include, @dirs );
+close F_OUT and print "files.source_exclude_modulebuild_and_dirs created\n";
 
-open F_OUT, "> $fileoutdir/aux_files" or die "Can't create aux_files: $!\n";
-print F_OUT @toprint;
-close F_OUT and print "aux_files created\n";
-
-open F_OUT, "> $fileoutdir/aux_files_exc" or die "Can't create aux_files_exc: $!\n";
-print F_OUT map {"\%exclude $_"} @toprint;
-close F_OUT and print "aux_files_exc created\n";
+# from headers remove all Kconfig, Makefile and Kbuild files that are
+# part of include directory
+open F_OUT, "> $fileoutdir/files.headers_exclude_kbuild"
+	or die "Can't create files.headers_exclude_kbuild: $!\n";
+print F_OUT map {"\%exclude $_"} uniq( @modulebuild_in_include );
+close F_OUT and print "files.headers_exclude_kbuild created\n";

================================================================
Index: packages/kernel-xenU/kernel-xenU.spec
diff -u packages/kernel-xenU/kernel-xenU.spec:1.34 packages/kernel-xenU/kernel-xenU.spec:1.34.2.1
--- packages/kernel-xenU/kernel-xenU.spec:1.34	Mon May 17 14:58:07 2010
+++ packages/kernel-xenU/kernel-xenU.spec	Sat Sep  4 00:18:39 2010
@@ -1,89 +1,144 @@
 # $Revision$, $Date$
+#
+# NOTE:
+# the following bcond combos will not work
+# - without_vserver and any of the following
+#   - with_apparmor
+#   - with_grsec_minimal
+#   - with_grsec_full
+#
+# LATEST VERSION CHECKER:
+# # curl -s http://www.kernel.org/kdist/finger_banner
+#
 # TODO:
-# - x86 version
-# - ostrzezenie: Znaleziono zainstalowane (ale niespakietowane) pliki:
-#   /usr/src/linux-2.6.31-xenU/tools/perf/*
-# - update vserver patch. It does not applies since 2.6.32.11
+# - benchmark NO_HZ & HZ=1000 vs HZ=300 on i686
+# - update or remove tahoe9xx patch2
+# - update grsec_minimal patch1000:
+#   fs/proc/base.c:1484: error: 'struct task_struct' has no member named 'uid'
+#
+# HOWTO update configuration files:
+# - run build
+# - add new options to proper config (kernel-multiarch.config, kernel-x86.config, kernel-powerpc.config etc)
+# - sort configuration files using:
+#   ./kernel-config-sort.pl ~/rpm/BUILD/kernel-%{version}/linux-%{version}/ -a x86 kernel-x86.config
+#   ./kernel-config-sort.pl ~/rpm/BUILD/kernel-%{version}/linux-%{version} kernel-multiarch.config
 #
 # Conditional build:
-%bcond_without	source		# don't build kernel-xenU-source package
+%bcond_without	source		# don't build kernel-source package
+%bcond_without	doc			# don't build kernel-doc package
+%bcond_without	pcmcia		# don't build pcmcia
+
 %bcond_with	verbose		# verbose build (V=1)
-%bcond_without	vserver		# enable vserver
-%bcond_with	ipv6		# enable vserver
 
-%{!?with_vserver:%define with_ipv6 1}
+%bcond_with	pae		# build PAE (HIGHMEM64G) support on uniprocessor
+%bcond_with	nfsroot		# build with root on NFS support
+
+%bcond_without	imq		# imq support
+%bcond_without	esfq		# esfq support
+%bcond_without	ipv6		# ipv6 support
+
+%bcond_without	vserver		# support for VServer (enabled by default)
+
+%bcond_with	myown		# build with your own config (kernel-myown.config)
+
 %{?debug:%define with_verbose 1}
 
-%define		_basever		2.6.32
-%define		_postver		.13
-%define		_rel			1
+%define		have_drm	0
+%define		have_oss	0
+%define		have_sound	0
+%define		have_pcmcia	0
+
+%define		have_pcmcia	0
+
+%define		basever		2.6.35
+%define		postver		.4
+%define		rel		0.1
 
 %define		_enable_debug_packages			0
 
-%define		alt_kernel	xenU%{!?with_vserver:novserver}
+%define		tuxonice_version	3.1.1.1
+%define		netfilter_snap		20070806
+
+%define		_alt_kernel	xenU
+
+%if %{with myown}
+%if "%{_alt_kernel}" == "xenU"
+%define		alt_kernel	myown
+%endif
+%endif
 
 # kernel release (used in filesystem and eventually in uname -r)
 # modules will be looked from /lib/modules/%{kernel_release}
-# _localversion is just that without version for "> localversion"
-%define		_localversion %{_rel}
-%define		kernel_release %{version}-%{alt_kernel}-%{_localversion}
+# localversion is just that without version for "> localversion"
+%define		localversion	%{rel}
+%define		kernel_release	%{version}%{?alt_kernel:_%{alt_kernel}}-%{localversion}
 
 Summary:	The Linux kernel (the core of the Linux operating system)
 Summary(de.UTF-8):	Der Linux-Kernel (Kern des Linux-Betriebssystems)
 Summary(et.UTF-8):	Linuxi kernel (ehk operatsioonisüsteemi tuum)
 Summary(fr.UTF-8):	Le Kernel-Linux (La partie centrale du systeme)
 Summary(pl.UTF-8):	Jądro Linuksa
-Name:		kernel-%{alt_kernel}
-Version:	%{_basever}%{_postver}
-Release:	%{_rel}
+Name:		kernel-%{_alt_kernel}
+Version:	%{basever}%{postver}
+Release:	%{rel}
 Epoch:		3
 License:	GPL v2
 Group:		Base/Kernel
-Source0:	http://www.kernel.org/pub/linux/kernel/v2.6/linux-%{_basever}.tar.bz2
-# Source0-md5:	260551284ac224c3a43c4adac7df4879
-%if "%{_postver}" != "%{nil}"
+Source0:	http://www.kernel.org/pub/linux/kernel/v2.6/linux-%{basever}.tar.bz2
+# Source0-md5:	091abeb4684ce03d1d936851618687b6
+%if "%{postver}" != "%{nil}"
 Source1:	http://www.kernel.org/pub/linux/kernel/v2.6/patch-%{version}.bz2
-# Source1-md5:	ba6abb1ffee513a1d4f831599ddae490
+# Source1-md5:	738f762746488345b1a8707d00895eef
 %endif
 
-Source2:	kernel-xenU-autoconf.h
-Source3:	kernel-xenU-config.h
-Source4:	kernel-xenU-module-build.pl
-
-Source10:	kernel-xenU-x86_64.config
-
-Patch1:		linux-2.6-vs2.3.patch
+Source3:	kernel-xenU-autoconf.h
+Source4:	kernel-xenU-config.h
+Source6:	kernel-xenU-config.awk
+Source7:	kernel-xenU-module-build.pl
+Source8:	kernel-xenU-track-config-change.awk
+# not used by kernel.spec, but it's good to have it in SOURCES
+Source9:	kernel-xenU-config-sort.pl
+Source10:	kernel-xenU.make
+
+Source20:	kernel-xenU-multiarch.config
+Source21:	kernel-xenU-x86.config
+
+Source40:	kernel-xenU-netfilter.config
+Source43:	kernel-xenU-vserver.config
+
+Source50:	kernel-xenU-no-pax.config
+
+Source59:	kernel-xenU-bzip2-lzma.config
+
+# based on http://vserver.13thfloor.at/Experimental/patch-2.6.35-vs2.3.0.36.31.diff
+Patch100:	kernel-xenU-vserver-2.3.patch
+Patch101:	kernel-xenU-vserver-fixes.patch
 
 URL:		http://www.kernel.org/
-BuildRequires:	/sbin/depmod
 BuildRequires:	binutils >= 3:2.18
+BuildRequires:	/sbin/depmod
 BuildRequires:	gcc >= 5:3.2
+BuildRequires:	xz >= 1:4.999.7
+AutoReqProv:	no
 # for hostname command
+BuildRequires:	module-init-tools >= 3.5
 BuildRequires:	net-tools
 BuildRequires:	perl-base
-BuildRequires:	rpm-build >= 4.4.9-56
+BuildRequires:	rpm-build >= 4.5-24
 BuildRequires:	rpmbuild(macros) >= 1.217
-Autoreqprov:	no
 Requires(post):	coreutils
-Requires(post):	geninitrd >= 2.57
+Requires(post):	geninitrd >= 10000-3
 Requires(post):	module-init-tools >= 0.9.9
 Requires:	/sbin/depmod
 Requires:	coreutils
-Requires:	geninitrd >= 2.57
+Requires:	geninitrd >= 10000-3
 Requires:	module-init-tools >= 0.9.9
-Obsoletes:	kernel%{_alt_kernel}-isdn-mISDN
-Obsoletes:	kernel-misc-acer_acpi
-Obsoletes:	kernel-misc-fuse
-Obsoletes:	kernel-misc-uvc
-Obsoletes:	kernel-modules
-Obsoletes:	kernel-net-ar81
-Obsoletes:	kernel-net-hostap
-Obsoletes:	kernel-net-ieee80211
-Obsoletes:	kernel-net-ipp2p
-Obsoletes:	kernel-smp
+Provides:	%{name}(netfilter) = %{netfilter_snap}
+Provides:	%{name}(vermagic) = %{kernel_release}
 Conflicts:	e2fsprogs < 1.29
 Conflicts:	isdn4k-utils < 3.1pre1
 Conflicts:	jfsutils < 1.1.3
+Conflicts:	lvm2 < 2.02.40
 Conflicts:	module-init-tools < 0.9.10
 Conflicts:	nfs-utils < 1.0.5
 Conflicts:	oprofile < 0.9
@@ -91,35 +146,35 @@
 Conflicts:	procps < 3.2.0
 Conflicts:	quota-tools < 3.09
 Conflicts:	reiserfsprogs < 3.6.3
-Conflicts:	udev < 1:071
+Conflicts:	rpm < 4.4.2-0.2
+Conflicts:	udev < 1:081
 Conflicts:	util-linux < 2.10o
+Conflicts:	util-vserver < 0.30.216
 Conflicts:	xfsprogs < 2.6.0
-ExclusiveArch:	%{x8664}
+%if %{with pae}
+ExclusiveArch:	pentium3 pentium4 athlon i686 %{x8664}
+%else
+ExclusiveArch:	%{ix86} %{x8664}
+%endif
 ExclusiveOS:	Linux
 BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
-%ifarch %{ix86} %{x8664}
 %define		target_arch_dir		x86
-%endif
-%ifnarch %{ix86} %{x8664}
-%define		target_arch_dir		%{_target_base_arch}
-%endif
-
-%ifarch %{ix86}
-%define		kernel_config		x86
-%else
-%define		kernel_config		%{_target_base_arch}
-%endif
 
 %define		defconfig	arch/%{target_arch_dir}/defconfig
 
 # No ELF objects there to strip (skips processing 27k files)
-%define		_noautostrip	.*%{_kernelsrcdir}/.*
+%define		_noautostrip	\\(.*%{_kernelsrcdir}/.*\\|.*/vmlinux.*\\)
 %define		_noautochrpath	.*%{_kernelsrcdir}/.*
 
 %define		initrd_dir	/boot
 
-%define		_kernelsrcdir	/usr/src/linux-%{version}-%{alt_kernel}
+%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}"
 	%define CrossOpts ARCH=%{_target_base_arch} CROSS_COMPILE=%{_target_cpu}-pld-linux-
@@ -134,6 +189,11 @@
 	%define CrossOpts ARCH=%{_target_base_arch} CC="%{__cc}"
 	%define	DepMod /sbin/depmod
 %endif
+%define MakeOpts %{CrossOpts} HOSTCC="%{__cc}"
+
+%define __features Netfilter module dated: %{netfilter_snap}\
+%{?with_nfsroot:Root on NFS - enabled}\
+%{?with_vserver:VServer     - enabled}\
 
 %define Features %(echo "%{__features}" | sed '/^$/d')
 
@@ -188,7 +248,8 @@
 Summary(de.UTF-8):	Header Dateien für den Linux-Kernel
 Summary(pl.UTF-8):	Pliki nagłówkowe jądra Linuksa
 Group:		Development/Building
-Autoreqprov:	no
+Provides:	%{name}-headers(netfilter) = %{netfilter_snap}
+AutoReqProv:	no
 
 %description headers
 These are the C header files for the Linux kernel, which define
@@ -210,8 +271,8 @@
 Summary(pl.UTF-8):	Pliki służące do budowania modułów jądra
 Group:		Development/Building
 Requires:	%{name}-headers = %{epoch}:%{version}-%{release}
-Conflicts:	rpmbuild(macros) < 1.321
-Autoreqprov:	no
+Conflicts:	rpmbuild(macros) < 1.550
+AutoReqProv:	no
 
 %description module-build
 Development files from kernel source tree needed to build Linux kernel
@@ -231,7 +292,7 @@
 Summary(pl.UTF-8):	Kod źródłowy jądra Linuksa
 Group:		Development/Building
 Requires:	%{name}-module-build = %{epoch}:%{version}-%{release}
-Autoreqprov:	no
+AutoReqProv:	no
 
 %description source
 This is the source code for the Linux kernel. You can build a custom
@@ -261,7 +322,7 @@
 Summary(de.UTF-8):	Kernel Dokumentation
 Summary(pl.UTF-8):	Dokumentacja do jądra Linuksa
 Group:		Documentation
-Autoreqprov:	no
+AutoReqProv:	no
 
 %description doc
 This is the documentation for the Linux kernel, as found in
@@ -276,245 +337,196 @@
 /usr/src/linux/Documentation.
 
 %prep
-%setup -q -n linux-%{_basever}
+%setup -qc
+ln -s %{SOURCE7} kernel-module-build.pl
+ln -s %{SOURCE10} Makefile
+cd linux-%{basever}
+
+# hack against warning in pax/grsec
+sed -i 's/-Werror//' arch/alpha/kernel/Makefile
 
-%if "%{_postver}" != "%{nil}"
+%if "%{postver}" != "%{nil}"
 %{__bzip2} -dc %{SOURCE1} | patch -p1 -s
 %endif
 
+# vserver
 %if %{with vserver}
-%patch1 -p1
+%patch100 -p1
+%patch101 -p1
 %endif
 
 # Fix EXTRAVERSION in main Makefile
-sed -i 's#EXTRAVERSION =.*#EXTRAVERSION = %{_postver}-%{alt_kernel}#g' Makefile
-
-# on sparc this line causes CONFIG_INPUT=m (instead of =y), thus breaking build
-sed -i -e '/select INPUT/d' net/bluetooth/hidp/Kconfig
+sed -i 's#EXTRAVERSION =.*#EXTRAVERSION = %{postver}%{?alt_kernel:_%{alt_kernel}}#g' Makefile
 
 # cleanup backups after patching
 find '(' -name '*~' -o -name '*.orig' -o -name '.gitignore' ')' -print0 | xargs -0 -r -l512 rm -f
 
 %build
-TuneUpConfigForIX86 () {
-	set -x
-%ifarch %{ix86}
-	pae=
-	[ "$2" = "yes" ] && pae=yes
-	%if %{with pae}
-	pae=yes
-	%endif
-	%ifnarch i386
-	sed -i 's:CONFIG_M386=y:# CONFIG_M386 is not set:' $1
-	%endif
-	%ifarch i486
-	sed -i 's:# CONFIG_M486 is not set:CONFIG_M486=y:' $1
-	%endif
-	%ifarch i586
-	sed -i 's:# CONFIG_M586 is not set:CONFIG_M586=y:' $1
-	%endif
-	%ifarch i686
-	sed -i 's:# CONFIG_M686 is not set:CONFIG_M686=y:' $1
-	%endif
-	%ifarch pentium3
-	sed -i 's:# CONFIG_MPENTIUMIII is not set:CONFIG_MPENTIUMIII=y:' $1
-	%endif
-	%ifarch pentium4
-	sed -i 's:# CONFIG_MPENTIUM4 is not set:CONFIG_MPENTIUM4=y:' $1
-	%endif
-	%ifarch athlon
-	sed -i 's:# CONFIG_MK7 is not set:CONFIG_MK7=y:' $1
-	%endif
-	%ifarch i686 athlon pentium3 pentium4
-	if [ "$pae" = "yes" ]; then
-		sed -i "s:CONFIG_HIGHMEM4G=y:# CONFIG_HIGHMEM4G is not set:" $1
-		sed -i "s:# CONFIG_HIGHMEM64G is not set:CONFIG_HIGHMEM64G=y\nCONFIG_X86_PAE=y:" $1
-	fi
-	sed -i 's:CONFIG_MATH_EMULATION=y:# CONFIG_MATH_EMULATION is not set:' $1
-	%endif
-	return 0
-%endif
-}
+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
 
 BuildConfig() {
 	%{?debug:set -x}
-	# is this a special kernel we want to build?
-	Config="%{kernel_config}"
-	KernelVer=%{kernel_release}
-	echo "Building config file using $Config.conf..."
-	cat $RPM_SOURCE_DIR/kernel-xenU-$Config.config > %{defconfig}
-	TuneUpConfigForIX86 %{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}}
+	set -e
 
-%if %{with vserver}
-cat >> %{defconfig} << EOF
-#
-# Linux VServer
-#
-CONFIG_VSERVER_AUTO_LBACK=y
-# CONFIG_VSERVER_AUTO_SINGLE is not set
-CONFIG_VSERVER_COWBL=y
-CONFIG_VSERVER_VTIME=y
-CONFIG_VSERVER_DEVICE=y
-CONFIG_VSERVER_PROC_SECURE=y
-CONFIG_VSERVER_HARDCPU=y
-CONFIG_VSERVER_IDLETIME=y
-CONFIG_VSERVER_IDLELIMIT=y
-# CONFIG_TAGGING_NONE is not set
-# CONFIG_TAGGING_UID16 is not set
-# CONFIG_TAGGING_GID16 is not set
-CONFIG_TAGGING_ID24=y
-# CONFIG_TAGGING_INTERN is not set
-# CONFIG_TAG_NFSD is not set
-CONFIG_VSERVER_PRIVACY=y
-CONFIG_VSERVER_CONTEXTS=768
-CONFIG_VSERVER_WARN=y
-# CONFIG_VSERVER_DEBUG is not set
-CONFIG_VSERVER=y
-CONFIG_VSERVER_SECURITY=y
-CONFIG_IPV6=%{?with_ipv6:y}%{!?with_ipv6:n}
-CONFIG_CFS_HARD_LIMITS=n
-CONFIG_BLK_DEV_VROOT=m
-EOF
+	Config="kernel-xenU-%{target_arch_dir}.config"
+	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
+		CONFIG_DEBUG_PREEMPT=y
+		CONFIG_RT_DEADLOCK_DETECT=y
 %endif
-}
 
-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}
+%if %{without ipv6}
+		CONFIG_IPV6=n
+%endif
 
-	%{__make} %CrossOpts scripts/mkcompile_h \
-		%{?with_verbose:V=1}
+%ifarch i686 athlon pentium3 pentium4
+  %if %{with pae}
+		CONFIG_HIGHMEM4G=n
+		CONFIG_HIGHMEM64G=y
+		CONFIG_X86_PAE=y
+		CONFIG_NUMA=n
+  %endif
+%endif
 
-	%{__make} %CrossOpts \
-		%{?with_verbose:V=1}
-}
+%if %{with nfsroot}
+		CONFIG_NFS_FS=y
+		CONFIG_ROOT_NFS=y
+%endif
 
-PreInstallKernel() {
-	Config="%{kernel_config}"
-	KernelVer=%{kernel_release}
+EOCONFIG
 
-	mkdir -p $KERNEL_INSTALL_DIR/boot
-	install System.map $KERNEL_INSTALL_DIR/boot/System.map-$KernelVer
-%ifarch %{ix86} %{x8664}
-	install arch/x86/boot/bzImage $KERNEL_INSTALL_DIR/boot/vmlinuz-$KernelVer
-	install vmlinux $KERNEL_INSTALL_DIR/boot/vmlinux-$KernelVer
+	# prepare kernel-style config file from multiple config files
+	%{__awk} -v arch="all %{target_arch_dir} %{_target_base_arch} %{_target_cpu}" -f %{SOURCE6} \
+%if %{with myown}
<<Diff was trimmed, longer than 597 lines>>

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/kernel-xenU/kernel-xenU-module-build.pl?r1=1.1&r2=1.1.6.1&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/kernel-xenU/kernel-xenU.spec?r1=1.34&r2=1.34.2.1&f=u



More information about the pld-cvs-commit mailing list