Jesse Keating 7a32965
# We have to override the new %%install behavior because, well... the kernel is special.
Jesse Keating 7a32965
%global __spec_install_pre %{___build_pre}
Jesse Keating 7a32965
Jesse Keating 7a32965
Summary: The Linux kernel
Jesse Keating 7a32965
Jesse Keating 7a32965
# For a stable, released kernel, released_kernel should be 1. For rawhide
Jesse Keating 7a32965
# and/or a kernel built from an rc or git snapshot, released_kernel should
Jesse Keating 7a32965
# be 0.
Kyle McMartin 8b2fa9b
%global released_kernel 0
Jesse Keating 7a32965
Jesse Keating 7a32965
# Save original buildid for later if it's defined
Jesse Keating 7a32965
%if 0%{?buildid:1}
Jesse Keating 7a32965
%global orig_buildid %{buildid}
Jesse Keating 7a32965
%undefine buildid
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
###################################################################
Jesse Keating 7a32965
# Polite request for people who spin their own kernel rpms:
Jesse Keating 7a32965
# please modify the "buildid" define in a way that identifies
Jesse Keating 7a32965
# that the kernel isn't the stock distribution kernel, for example,
Jesse Keating 7a32965
# by setting the define to ".local" or ".bz123456". This will be
Jesse Keating 7a32965
# appended to the full kernel version.
Jesse Keating 7a32965
#
Jesse Keating 7a32965
# (Uncomment the '#' and both spaces below to set the buildid.)
Jesse Keating 7a32965
#
Jesse Keating 7a32965
# % define buildid .local
Jesse Keating 7a32965
###################################################################
Jesse Keating 7a32965
Jesse Keating 7a32965
# The buildid can also be specified on the rpmbuild command line
Jesse Keating 7a32965
# by adding --define="buildid .whatever". If both the specfile and
Jesse Keating 7a32965
# the environment define a buildid they will be concatenated together.
Jesse Keating 7a32965
%if 0%{?orig_buildid:1}
Jesse Keating 7a32965
%if 0%{?buildid:1}
Jesse Keating 7a32965
%global srpm_buildid %{buildid}
Jesse Keating 7a32965
%define buildid %{srpm_buildid}%{orig_buildid}
Jesse Keating 7a32965
%else
Jesse Keating 7a32965
%define buildid %{orig_buildid}
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Roland McGrath 377da6d
# baserelease defines which build revision of this kernel version we're
Roland McGrath 377da6d
# building.  We used to call this fedora_build, but the magical name
Roland McGrath 377da6d
# baserelease is matched by the rpmdev-bumpspec tool, which you should use.
Jesse Keating 7a32965
#
Roland McGrath 377da6d
# We used to have some extra magic weirdness to bump this automatically,
Roland McGrath 377da6d
# but now we don't.  Just use: rpmdev-bumpspec -c 'comment for changelog'
Roland McGrath 377da6d
# When changing base_sublevel below or going from rc to a final kernel,
Roland McGrath 377da6d
# reset this by hand to 1 (or to 0 and then use rpmdev-bumpspec).
Roland McGrath 377da6d
# scripts/rebase.sh should be made to do that for you, actually.
Roland McGrath 377da6d
#
Chuck Ebbert c3126dc
# For non-released -rc kernels, this will be prepended with "0.", so
Chuck Ebbert c3126dc
# for example a 3 here will become 0.3
Chuck Ebbert c3126dc
#
Dave Jones 22c40c5
%global baserelease 1
Roland McGrath 377da6d
%global fedora_build %{baserelease}
Jesse Keating 7a32965
Jesse Keating 7a32965
# base_sublevel is the kernel version we're starting with and patching
Jesse Keating 7a32965
# on top of -- for example, 2.6.22-rc7-git1 starts with a 2.6.21 base,
Jesse Keating 7a32965
# which yields a base_sublevel of 21.
Kyle McMartin 8b2fa9b
%define base_sublevel 0
Jesse Keating 7a32965
Jesse Keating 7a32965
## If this is a released kernel ##
Jesse Keating 7a32965
%if 0%{?released_kernel}
Jesse Keating 7a32965
Jesse Keating 7a32965
# Do we have a -stable update to apply?
Jesse Keating 7a32965
%define stable_update 0
Jesse Keating 7a32965
# Is it a -stable RC?
Jesse Keating 7a32965
%define stable_rc 0
Jesse Keating 7a32965
# Set rpm version accordingly
Jesse Keating 7a32965
%if 0%{?stable_update}
Jesse Keating 7a32965
%define stablerev .%{stable_update}
Jesse Keating 7a32965
%define stable_base %{stable_update}
Jesse Keating 7a32965
%if 0%{?stable_rc}
Jesse Keating 7a32965
# stable RCs are incremental patches, so we need the previous stable patch
Jesse Keating 7a32965
%define stable_base %(echo $((%{stable_update} - 1)))
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
%endif
Kyle McMartin 8b2fa9b
%define rpmversion 3.%{base_sublevel}%{?stablerev}
Jesse Keating 7a32965
Jesse Keating 7a32965
## The not-released-kernel case ##
Jesse Keating 7a32965
%else
Jesse Keating 7a32965
# The next upstream release sublevel (base_sublevel+1)
Kyle McMartin 8b2fa9b
# % define upstream_sublevel %(echo $((%{base_sublevel} + 1)))
Kyle McMartin 8b2fa9b
%define upstream_sublevel 0
Jesse Keating 7a32965
# The rc snapshot level
Kyle McMartin 8b2fa9b
%define rcrev 1
Jesse Keating 7a32965
# The git snapshot level
Kyle McMartin 8b2fa9b
%define gitrev 0
Jesse Keating 7a32965
# Set rpm version accordingly
Kyle McMartin 8b2fa9b
%define rpmversion 3.%{upstream_sublevel}
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
# Nb: The above rcrev and gitrev values automagically define Patch00 and Patch01 below.
Jesse Keating 7a32965
Jesse Keating 7a32965
# What parts do we want to build?  We must build at least one kernel.
Jesse Keating 7a32965
# These are the kernels that are built IF the architecture allows it.
Jesse Keating 7a32965
# All should default to 1 (enabled) and be flipped to 0 (disabled)
Jesse Keating 7a32965
# by later arch-specific checks.
Jesse Keating 7a32965
Jesse Keating 7a32965
# The following build options are enabled by default.
Jesse Keating 7a32965
# Use either --without <opt> in your rpmbuild command or force values
Jesse Keating 7a32965
# to 0 in here to disable them.
Jesse Keating 7a32965
#
Jesse Keating 7a32965
# standard kernel
Jesse Keating 7a32965
%define with_up        %{?_without_up:        0} %{?!_without_up:        1}
Jesse Keating 7a32965
# kernel-smp (only valid for ppc 32-bit)
Jesse Keating 7a32965
%define with_smp       %{?_without_smp:       0} %{?!_without_smp:       1}
Jarod Wilson 5b03275
# kernel-PAE (only valid for i686)
Jarod Wilson 5b03275
%define with_pae       %{?_without_pae:       0} %{?!_without_pae:       1}
Jesse Keating 7a32965
# kernel-debug
Jesse Keating 7a32965
%define with_debug     %{?_without_debug:     0} %{?!_without_debug:     1}
Jesse Keating 7a32965
# kernel-doc
Jesse Keating 7a32965
%define with_doc       %{?_without_doc:       0} %{?!_without_doc:       1}
Jesse Keating 7a32965
# kernel-headers
Jesse Keating 7a32965
%define with_headers   %{?_without_headers:   0} %{?!_without_headers:   1}
Jesse Keating 7a32965
# kernel-firmware
Jesse Keating 7a32965
%define with_firmware  %{?_with_firmware:     1} %{?!_with_firmware:     0}
Jesse Keating 7a32965
# tools/perf
Jesse Keating 7a32965
%define with_perf      %{?_without_perf:      0} %{?!_without_perf:      1}
Jesse Keating 7a32965
# kernel-debuginfo
Jesse Keating 7a32965
%define with_debuginfo %{?_without_debuginfo: 0} %{?!_without_debuginfo: 1}
Jesse Keating 7a32965
# kernel-bootwrapper (for creating zImages from kernel + initrd)
Jesse Keating 7a32965
%define with_bootwrapper %{?_without_bootwrapper: 0} %{?!_without_bootwrapper: 1}
Jesse Keating 7a32965
# Want to build a the vsdo directories installed
Jesse Keating 7a32965
%define with_vdso_install %{?_without_vdso_install: 0} %{?!_without_vdso_install: 1}
Jesse Keating 7a32965
Jesse Keating 7a32965
# Build the kernel-doc package, but don't fail the build if it botches.
Jesse Keating 7a32965
# Here "true" means "continue" and "false" means "fail the build".
Jesse Keating 7a32965
%if 0%{?released_kernel}
Jesse Keating 7a32965
%define doc_build_fail false
Jesse Keating 7a32965
%else
Jesse Keating 7a32965
%define doc_build_fail true
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Kyle McMartin 480eada
%define rawhide_skip_docs 1
Jesse Keating 7a32965
%if 0%{?rawhide_skip_docs}
Jesse Keating 7a32965
%define with_doc 0
Jesse Keating 7a32965
%define doc_build_fail true
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
# Additional options for user-friendly one-off kernel building:
Jesse Keating 7a32965
#
Jesse Keating 7a32965
# Only build the base kernel (--with baseonly):
Jesse Keating 7a32965
%define with_baseonly  %{?_with_baseonly:     1} %{?!_with_baseonly:     0}
Jesse Keating 7a32965
# Only build the smp kernel (--with smponly):
Jesse Keating 7a32965
%define with_smponly   %{?_with_smponly:      1} %{?!_with_smponly:      0}
Jarod Wilson 5b03275
# Only build the pae kernel (--with paeonly):
Jarod Wilson 5b03275
%define with_paeonly   %{?_with_paeonly:      1} %{?!_with_paeonly:      0}
Jesse Keating 7a32965
# Only build the debug kernel (--with dbgonly):
Jesse Keating 7a32965
%define with_dbgonly   %{?_with_dbgonly:      1} %{?!_with_dbgonly:      0}
Jesse Keating 7a32965
Jesse Keating 7a32965
# should we do C=1 builds with sparse
Dave Jones 561b24a
%define with_sparse    %{?_with_sparse:       1} %{?!_with_sparse:       0}
Jesse Keating 7a32965
Jesse Keating 7a32965
# Set debugbuildsenabled to 1 for production (build separate debug kernels)
Jesse Keating 7a32965
#  and 0 for rawhide (all kernels are debug kernels).
Jesse Keating 7a32965
# See also 'make debug' and 'make release'.
Kyle McMartin d8616ba
%define debugbuildsenabled 1
Jesse Keating 7a32965
Jesse Keating 7a32965
# Want to build a vanilla kernel build without any non-upstream patches?
Jesse Keating 7a32965
%define with_vanilla %{?_with_vanilla: 1} %{?!_with_vanilla: 0}
Jesse Keating 7a32965
Jesse Keating 7a32965
# pkg_release is what we'll fill in for the rpm Release: field
Jesse Keating 7a32965
%if 0%{?released_kernel}
Jesse Keating 7a32965
Jesse Keating 7a32965
%if 0%{?stable_rc}
Jesse Keating 7a32965
%define stable_rctag .rc%{stable_rc}
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
%define pkg_release %{fedora_build}%{?stable_rctag}%{?buildid}%{?dist}
Jesse Keating 7a32965
Jesse Keating 7a32965
%else
Jesse Keating 7a32965
Jesse Keating 7a32965
# non-released_kernel
Jesse Keating 7a32965
%if 0%{?rcrev}
Jesse Keating 7a32965
%define rctag .rc%rcrev
Jesse Keating 7a32965
%else
Jesse Keating 7a32965
%define rctag .rc0
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
%if 0%{?gitrev}
Jesse Keating 7a32965
%define gittag .git%gitrev
Jesse Keating 7a32965
%else
Jesse Keating 7a32965
%define gittag .git0
Jesse Keating 7a32965
%endif
Kyle McMartin 66ce81a
%define pkg_release 0%{?rctag}%{?gittag}.%{fedora_build}%{?buildid}%{?dist}
Jesse Keating 7a32965
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
# The kernel tarball/base version
Kyle McMartin 8b2fa9b
# % define kversion 3.%{base_sublevel}
Kyle McMartin 8b2fa9b
%define kversion 3.%{base_sublevel}-rc%rcrev
Jesse Keating 7a32965
Jesse Keating 7a32965
%define make_target bzImage
Jesse Keating 7a32965
Jesse Keating 7a32965
%define KVERREL %{version}-%{release}.%{_target_cpu}
Jesse Keating 7a32965
%define hdrarch %_target_cpu
Jesse Keating 7a32965
%define asmarch %_target_cpu
Jesse Keating 7a32965
Jesse Keating 7a32965
%if 0%{!?nopatches:1}
Jesse Keating 7a32965
%define nopatches 0
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
%if %{with_vanilla}
Jesse Keating 7a32965
%define nopatches 1
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
%if %{nopatches}
Jesse Keating 7a32965
%define with_bootwrapper 0
Jesse Keating 7a32965
%define variant -vanilla
Jesse Keating 7a32965
%else
Jesse Keating 7a32965
%define variant_fedora -fedora
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
%define using_upstream_branch 0
Jesse Keating 7a32965
%if 0%{?upstream_branch:1}
Jesse Keating 7a32965
%define stable_update 0
Jesse Keating 7a32965
%define using_upstream_branch 1
Jesse Keating 7a32965
%define variant -%{upstream_branch}%{?variant_fedora}
Jesse Keating 7a32965
%define pkg_release 0.%{fedora_build}%{upstream_branch_tag}%{?buildid}%{?dist}
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
%if !%{debugbuildsenabled}
Jesse Keating 7a32965
%define with_debug 0
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
%if !%{with_debuginfo}
Jesse Keating 7a32965
%define _enable_debug_packages 0
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
%define debuginfodir /usr/lib/debug
Jesse Keating 7a32965
Jesse Keating 7a32965
# kernel-PAE is only built on i686.
Jarod Wilson 5b03275
%ifnarch i686
Jesse Keating 7a32965
%define with_pae 0
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
# if requested, only build base kernel
Jesse Keating 7a32965
%if %{with_baseonly}
Jesse Keating 7a32965
%define with_smp 0
Jarod Wilson 5b03275
%define with_pae 0
Jesse Keating 7a32965
%define with_debug 0
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
# if requested, only build smp kernel
Jesse Keating 7a32965
%if %{with_smponly}
Jesse Keating 7a32965
%define with_up 0
Jarod Wilson 5b03275
%define with_pae 0
Jarod Wilson 5b03275
%define with_debug 0
Jarod Wilson 5b03275
%endif
Jarod Wilson 5b03275
Jarod Wilson 5b03275
# if requested, only build pae kernel
Jarod Wilson 5b03275
%if %{with_paeonly}
Jarod Wilson 5b03275
%define with_up 0
Jarod Wilson 5b03275
%define with_smp 0
Jesse Keating 7a32965
%define with_debug 0
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
# if requested, only build debug kernel
Jesse Keating 7a32965
%if %{with_dbgonly}
Jesse Keating 7a32965
%if %{debugbuildsenabled}
Jesse Keating 7a32965
%define with_up 0
Jarod Wilson 5b03275
%define with_pae 0
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
%define with_smp 0
Jesse Keating 7a32965
%define with_pae 0
Jesse Keating 7a32965
%define with_perf 0
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
%define all_x86 i386 i686
Jesse Keating 7a32965
Jesse Keating 7a32965
%if %{with_vdso_install}
Jesse Keating 7a32965
# These arches install vdso/ directories.
Jesse Keating 7a32965
%define vdso_arches %{all_x86} x86_64 ppc ppc64
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
# Overrides for generic default options
Jesse Keating 7a32965
Jesse Keating 7a32965
# only ppc and alphav56 need separate smp kernels
Jesse Keating 7a32965
%ifnarch ppc alphaev56
Jesse Keating 7a32965
%define with_smp 0
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
# don't do debug builds on anything but i686 and x86_64
Jesse Keating 7a32965
%ifnarch i686 x86_64
Jesse Keating 7a32965
%define with_debug 0
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
# only package docs noarch
Jesse Keating 7a32965
%ifnarch noarch
Jesse Keating 7a32965
%define with_doc 0
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
# don't build noarch kernels or headers (duh)
Jesse Keating 7a32965
%ifarch noarch
Jesse Keating 7a32965
%define with_up 0
Jesse Keating 7a32965
%define with_headers 0
Jesse Keating 7a32965
%define with_perf 0
Jesse Keating 7a32965
%define all_arch_configs kernel-%{version}-*.config
Jesse Keating 7a32965
%define with_firmware  %{?_with_firmware:     1} %{?!_with_firmware:     0}
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
# bootwrapper is only on ppc
Jesse Keating 7a32965
%ifnarch ppc ppc64
Jesse Keating 7a32965
%define with_bootwrapper 0
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
# sparse blows up on ppc64 alpha and sparc64
Jesse Keating 7a32965
%ifarch ppc64 ppc alpha sparc64
Jesse Keating 7a32965
%define with_sparse 0
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
# Per-arch tweaks
Jesse Keating 7a32965
Jesse Keating 7a32965
%ifarch %{all_x86}
Jesse Keating 7a32965
%define asmarch x86
Jesse Keating 7a32965
%define hdrarch i386
Jesse Keating 7a32965
%define all_arch_configs kernel-%{version}-i?86*.config
Jesse Keating 7a32965
%define image_install_path boot
Jesse Keating 7a32965
%define kernel_image arch/x86/boot/bzImage
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
%ifarch x86_64
Jesse Keating 7a32965
%define asmarch x86
Jesse Keating 7a32965
%define all_arch_configs kernel-%{version}-x86_64*.config
Jesse Keating 7a32965
%define image_install_path boot
Jesse Keating 7a32965
%define kernel_image arch/x86/boot/bzImage
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
%ifarch ppc64
Jesse Keating 7a32965
%define asmarch powerpc
Jesse Keating 7a32965
%define hdrarch powerpc
Jesse Keating 7a32965
%define all_arch_configs kernel-%{version}-ppc64*.config
Jesse Keating 7a32965
%define image_install_path boot
Jesse Keating 7a32965
%define make_target vmlinux
Jesse Keating 7a32965
%define kernel_image vmlinux
Jesse Keating 7a32965
%define kernel_image_elf 1
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
%ifarch s390x
Jesse Keating 7a32965
%define asmarch s390
Jesse Keating 7a32965
%define hdrarch s390
Jesse Keating 7a32965
%define all_arch_configs kernel-%{version}-s390x.config
Jesse Keating 7a32965
%define image_install_path boot
Jesse Keating 7a32965
%define make_target image
Jesse Keating 7a32965
%define kernel_image arch/s390/boot/image
1f623e9
%define with_perf 0
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
%ifarch sparc64
Jesse Keating 7a32965
%define asmarch sparc
Jesse Keating 7a32965
%define all_arch_configs kernel-%{version}-sparc64*.config
Jesse Keating 7a32965
%define make_target image
Jesse Keating 7a32965
%define kernel_image arch/sparc/boot/image
Jesse Keating 7a32965
%define image_install_path boot
Jesse Keating 7a32965
%define with_perf 0
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
9c74977
%ifarch sparcv9
9c74977
%define hdrarch sparc
9c74977
%endif
9c74977
Jesse Keating 7a32965
%ifarch ppc
Jesse Keating 7a32965
%define asmarch powerpc
Jesse Keating 7a32965
%define hdrarch powerpc
Jesse Keating 7a32965
%define all_arch_configs kernel-%{version}-ppc{-,.}*config
Jesse Keating 7a32965
%define image_install_path boot
Jesse Keating 7a32965
%define make_target vmlinux
Jesse Keating 7a32965
%define kernel_image vmlinux
Jesse Keating 7a32965
%define kernel_image_elf 1
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
%ifarch ia64
Jesse Keating 7a32965
%define all_arch_configs kernel-%{version}-ia64*.config
Jesse Keating 7a32965
%define image_install_path boot/efi/EFI/redhat
Jesse Keating 7a32965
%define make_target compressed
Jesse Keating 7a32965
%define kernel_image vmlinux.gz
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
%ifarch alpha alphaev56
Jesse Keating 7a32965
%define all_arch_configs kernel-%{version}-alpha*.config
Jesse Keating 7a32965
%define image_install_path boot
Jesse Keating 7a32965
%define make_target vmlinux
Jesse Keating 7a32965
%define kernel_image vmlinux
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
%ifarch %{arm}
Jesse Keating 7a32965
%define all_arch_configs kernel-%{version}-arm*.config
Jesse Keating 7a32965
%define image_install_path boot
Jesse Keating 7a32965
%define hdrarch arm
Jesse Keating 7a32965
%define make_target vmlinux
Jesse Keating 7a32965
%define kernel_image vmlinux
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
%if %{nopatches}
Jesse Keating 7a32965
# XXX temporary until last vdso patches are upstream
Jesse Keating 7a32965
%define vdso_arches ppc ppc64
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Kyle McMartin da80d72
# Should make listnewconfig fail if there's config options
Kyle McMartin da80d72
# printed out?
Jesse Keating 7a32965
%if %{nopatches}%{using_upstream_branch}
Kyle McMartin da80d72
%define listnewconfig_fail 0
Jesse Keating 7a32965
%else
Kyle McMartin da80d72
%define listnewconfig_fail 1
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
# To temporarily exclude an architecture from being built, add it to
Dave Jones 166b79a
# %%nobuildarches. Do _NOT_ use the ExclusiveArch: line, because if we
Jesse Keating 7a32965
# don't build kernel-headers then the new build system will no longer let
Jesse Keating 7a32965
# us use the previous build of that package -- it'll just be completely AWOL.
Jesse Keating 7a32965
# Which is a BadThing(tm).
Jesse Keating 7a32965
Jesse Keating 7a32965
# We only build kernel-headers on the following...
9c74977
%define nobuildarches i386 s390 sparc sparcv9 %{arm}
Jesse Keating 7a32965
Jesse Keating 7a32965
%ifarch %nobuildarches
Jesse Keating 7a32965
%define with_up 0
Jesse Keating 7a32965
%define with_smp 0
Jesse Keating 7a32965
%define with_pae 0
Jesse Keating 7a32965
%define with_debuginfo 0
Jesse Keating 7a32965
%define with_perf 0
Jesse Keating 7a32965
%define _enable_debug_packages 0
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
%define with_pae_debug 0
Jesse Keating 7a32965
%if %{with_pae}
Jesse Keating 7a32965
%define with_pae_debug %{with_debug}
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
#
Jesse Keating 7a32965
# Three sets of minimum package version requirements in the form of Conflicts:
Jesse Keating 7a32965
# to versions below the minimum
Jesse Keating 7a32965
#
Jesse Keating 7a32965
Jesse Keating 7a32965
#
Jesse Keating 7a32965
# First the general kernel 2.6 required versions as per
Jesse Keating 7a32965
# Documentation/Changes
Jesse Keating 7a32965
#
Jesse Keating 7a32965
%define kernel_dot_org_conflicts  ppp < 2.4.3-3, isdn4k-utils < 3.2-32, nfs-utils < 1.0.7-12, e2fsprogs < 1.37-4, util-linux < 2.12, jfsutils < 1.1.7-2, reiserfs-utils < 3.6.19-2, xfsprogs < 2.6.13-4, procps < 3.2.5-6.3, oprofile < 0.9.1-2
Jesse Keating 7a32965
Jesse Keating 7a32965
#
Jesse Keating 7a32965
# Then a series of requirements that are distribution specific, either
Jesse Keating 7a32965
# because we add patches for something, or the older versions have
Jesse Keating 7a32965
# problems with the newer kernel or lack certain things that make
Jesse Keating 7a32965
# integration in the distro harder than needed.
Jesse Keating 7a32965
#
Jesse Keating 7a32965
%define package_conflicts initscripts < 7.23, udev < 063-6, iptables < 1.3.2-1, ipw2200-firmware < 2.4, iwl4965-firmware < 228.57.2, selinux-policy-targeted < 1.25.3-14, squashfs-tools < 4.0, wireless-tools < 29-3
Jesse Keating 7a32965
Jesse Keating 7a32965
# We moved the drm include files into kernel-headers, make sure there's
Jesse Keating 7a32965
# a recent enough libdrm-devel on the system that doesn't have those.
Jesse Keating 7a32965
%define kernel_headers_conflicts libdrm-devel < 2.4.0-0.15
Jesse Keating 7a32965
Jesse Keating 7a32965
#
Dave Jones 166b79a
# Packages that need to be installed before the kernel is, because the %%post
Jesse Keating 7a32965
# scripts use them.
Jesse Keating 7a32965
#
Jesse Keating 7a32965
%define kernel_prereq  fileutils, module-init-tools, initscripts >= 8.11.1-1, grubby >= 7.0.10-1
Jesse Keating 7a32965
%define initrd_prereq  dracut >= 001-7
Jesse Keating 7a32965
Jesse Keating 7a32965
#
Jesse Keating 7a32965
# This macro does requires, provides, conflicts, obsoletes for a kernel package.
Jesse Keating 7a32965
#	%%kernel_reqprovconf <subpackage>
Jesse Keating 7a32965
# It uses any kernel_<subpackage>_conflicts and kernel_<subpackage>_obsoletes
Jesse Keating 7a32965
# macros defined above.
Jesse Keating 7a32965
#
Jesse Keating 7a32965
%define kernel_reqprovconf \
Jesse Keating 7a32965
Provides: kernel = %{rpmversion}-%{pkg_release}\
Jesse Keating 7a32965
Provides: kernel-%{_target_cpu} = %{rpmversion}-%{pkg_release}%{?1:.%{1}}\
Jesse Keating 7a32965
Provides: kernel-drm = 4.3.0\
Jesse Keating 7a32965
Provides: kernel-drm-nouveau = 16\
Jesse Keating 7a32965
Provides: kernel-modeset = 1\
Jesse Keating 7a32965
Provides: kernel-uname-r = %{KVERREL}%{?1:.%{1}}\
Jesse Keating 7a32965
Requires(pre): %{kernel_prereq}\
Jesse Keating 7a32965
Requires(pre): %{initrd_prereq}\
Jesse Keating 7a32965
%if %{with_firmware}\
Jesse Keating 7a32965
Requires(pre): kernel-firmware >= %{rpmversion}-%{pkg_release}\
Jesse Keating 7a32965
%else\
Chuck Ebbert 996221c
Requires(pre): linux-firmware >= 20100806-2\
Jesse Keating 7a32965
%endif\
Jesse Keating 7a32965
Requires(post): /sbin/new-kernel-pkg\
Jesse Keating 7a32965
Requires(preun): /sbin/new-kernel-pkg\
Jesse Keating 7a32965
Conflicts: %{kernel_dot_org_conflicts}\
Jesse Keating 7a32965
Conflicts: %{package_conflicts}\
Jesse Keating 7a32965
%{expand:%%{?kernel%{?1:_%{1}}_conflicts:Conflicts: %%{kernel%{?1:_%{1}}_conflicts}}}\
Jesse Keating 7a32965
%{expand:%%{?kernel%{?1:_%{1}}_obsoletes:Obsoletes: %%{kernel%{?1:_%{1}}_obsoletes}}}\
Jesse Keating 7a32965
%{expand:%%{?kernel%{?1:_%{1}}_provides:Provides: %%{kernel%{?1:_%{1}}_provides}}}\
Jesse Keating 7a32965
# We can't let RPM do the dependencies automatic because it'll then pick up\
Jesse Keating 7a32965
# a correct but undesirable perl dependency from the module headers which\
Jesse Keating 7a32965
# isn't required for the kernel proper to function\
Jesse Keating 7a32965
AutoReq: no\
Jesse Keating 7a32965
AutoProv: yes\
Jesse Keating 7a32965
%{nil}
Jesse Keating 7a32965
Jesse Keating 7a32965
Name: kernel%{?variant}
Jesse Keating 7a32965
Group: System Environment/Kernel
Jesse Keating 7a32965
License: GPLv2
Jesse Keating 7a32965
URL: http://www.kernel.org/
Jesse Keating 7a32965
Version: %{rpmversion}
Jesse Keating 7a32965
Release: %{pkg_release}
Jesse Keating 7a32965
# DO NOT CHANGE THE 'ExclusiveArch' LINE TO TEMPORARILY EXCLUDE AN ARCHITECTURE BUILD.
Jesse Keating 7a32965
# SET %%nobuildarches (ABOVE) INSTEAD
9c74977
ExclusiveArch: noarch %{all_x86} x86_64 ppc ppc64 ia64 %{sparc} s390 s390x alpha alphaev56 %{arm}
Jesse Keating 7a32965
ExclusiveOS: Linux
Jesse Keating 7a32965
Jesse Keating 7a32965
%kernel_reqprovconf
Dave Jones efc71ad
Jesse Keating 7a32965
#
Jesse Keating 7a32965
# List the packages used during the kernel build
Jesse Keating 7a32965
#
Jesse Keating 7a32965
BuildRequires: module-init-tools, patch >= 2.5.4, bash >= 2.03, sh-utils, tar
Jesse Keating 7a32965
BuildRequires: bzip2, findutils, gzip, m4, perl, make >= 3.78, diffutils, gawk
Jesse Keating 7a32965
BuildRequires: gcc >= 3.4.2, binutils >= 2.12, redhat-rpm-config
Jesse Keating 7a32965
BuildRequires: net-tools
Jesse Keating 7a32965
BuildRequires: xmlto, asciidoc
Jesse Keating 7a32965
%if %{with_sparse}
Jesse Keating 7a32965
BuildRequires: sparse >= 0.4.1
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
%if %{with_perf}
Chuck Ebbert e0bf239
BuildRequires: elfutils-devel zlib-devel binutils-devel newt-devel python-devel perl(ExtUtils::Embed)
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
BuildConflicts: rhbuildsys(DiskFree) < 500Mb
Jesse Keating 7a32965
Jesse Keating 7a32965
%define fancy_debuginfo 0
Jesse Keating 7a32965
%if %{with_debuginfo}
Jesse Keating 7a32965
%if 0%{?fedora} >= 8 || 0%{?rhel} >= 6
Jesse Keating 7a32965
%define fancy_debuginfo 1
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
%if %{fancy_debuginfo}
Jesse Keating 7a32965
# Fancy new debuginfo generation introduced in Fedora 8.
Jesse Keating 7a32965
BuildRequires: rpm-build >= 4.4.2.1-4
Jesse Keating 7a32965
%define debuginfo_args --strict-build-id
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Kyle McMartin 8b2fa9b
# Source0: ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-%{kversion}.tar.bz2
Kyle McMartin 8b2fa9b
Source0: ftp://ftp.kernel.org/pub/linux/kernel/v3.0/linux-3.0-rc1.tar.bz2
Jesse Keating 7a32965
Jesse Keating 7a32965
Source11: genkey
Jesse Keating 7a32965
Source14: find-provides
Jesse Keating 7a32965
Source15: merge.pl
Jesse Keating 7a32965
Jesse Keating 7a32965
Source20: Makefile.config
Jesse Keating 7a32965
Source21: config-debug
Jesse Keating 7a32965
Source22: config-nodebug
Jesse Keating 7a32965
Source23: config-generic
Jesse Keating 7a32965
Source24: config-rhel-generic
Jesse Keating 7a32965
Jesse Keating 7a32965
Source30: config-x86-generic
Jesse Keating 7a32965
Source31: config-i686-PAE
Jesse Keating 7a32965
Jesse Keating 7a32965
Source40: config-x86_64-generic
Jesse Keating 7a32965
Jesse Keating 7a32965
Source50: config-powerpc-generic
Jesse Keating 7a32965
Source51: config-powerpc32-generic
Jesse Keating 7a32965
Source52: config-powerpc32-smp
Jesse Keating 7a32965
Source53: config-powerpc64
Jesse Keating 7a32965
Jesse Keating 7a32965
Source60: config-ia64-generic
Jesse Keating 7a32965
Jesse Keating 7a32965
Source70: config-s390x
Jesse Keating 7a32965
Jesse Keating 7a32965
Source90: config-sparc64-generic
Jesse Keating 7a32965
Jesse Keating 7a32965
Source100: config-arm
Jesse Keating 7a32965
Jarod Wilson 5b65297
# This file is intentionally left empty in the stock kernel. Its a nicety
Jarod Wilson 5b65297
# added for those wanting to do custom rebuilds with altered config opts.
Jarod Wilson 5b65297
Source1000: config-local
Jarod Wilson 5b65297
Jesse Keating 7a32965
# Here should be only the patches up to the upstream canonical Linus tree.
Jesse Keating 7a32965
Jesse Keating 7a32965
# For a stable release kernel
Jesse Keating 7a32965
%if 0%{?stable_update}
Jesse Keating 7a32965
%if 0%{?stable_base}
Kyle McMartin 8b2fa9b
%define    stable_patch_00  patch-3.%{base_sublevel}.%{stable_base}.bz2
Jesse Keating 7a32965
Patch00: %{stable_patch_00}
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
%if 0%{?stable_rc}
Kyle McMartin 8b2fa9b
%define    stable_patch_01  patch-3.%{base_sublevel}.%{stable_update}-rc%{stable_rc}.bz2
Jesse Keating 7a32965
Patch01: %{stable_patch_01}
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
# non-released_kernel case
Jesse Keating 7a32965
# These are automagically defined by the rcrev and gitrev values set up
Jesse Keating 7a32965
# near the top of this spec file.
Jesse Keating 7a32965
%else
Jesse Keating 7a32965
%if 0%{?rcrev}
Kyle McMartin cbc61c9
### HAX we're using -rc$x tarballs to make transitioning easier
Kyle McMartin cbc61c9
# Patch00: patch-3.%{upstream_sublevel}-rc%{rcrev}.bz2
Jesse Keating 7a32965
%if 0%{?gitrev}
Kyle McMartin 8b2fa9b
Patch01: patch-3.%{upstream_sublevel}-rc%{rcrev}-git%{gitrev}.bz2
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
%else
Jesse Keating 7a32965
# pre-{base_sublevel+1}-rc1 case
Jesse Keating 7a32965
%if 0%{?gitrev}
Kyle McMartin 8b2fa9b
Patch00: patch-3.%{base_sublevel}-git%{gitrev}.bz2
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
%if %{using_upstream_branch}
Jesse Keating 7a32965
### BRANCH PATCH ###
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
Patch02: git-linus.diff
Jesse Keating 7a32965
Jesse Keating 7a32965
# we also need compile fixes for -vanilla
Jesse Keating 7a32965
Patch04: linux-2.6-compile-fixes.patch
Jesse Keating 7a32965
Jesse Keating 7a32965
# build tweak for build ID magic, even for -vanilla
Jesse Keating 7a32965
Patch05: linux-2.6-makefile-after_link.patch
Jesse Keating 7a32965
Jesse Keating 7a32965
%if !%{nopatches}
Jesse Keating 7a32965
Kyle McMartin 201b16f
Jesse Keating 7a32965
# revert upstream patches we get via other methods
Jesse Keating 7a32965
Patch09: linux-2.6-upstream-reverts.patch
Jesse Keating 7a32965
# Git trees.
Jesse Keating 7a32965
Jesse Keating 7a32965
# Standalone patches
Jesse Keating 7a32965
Patch20: linux-2.6-hotfixes.patch
Jesse Keating 7a32965
Jesse Keating 7a32965
Patch150: linux-2.6.29-sparc-IOC_TYPECHECK.patch
Jesse Keating 7a32965
Jesse Keating 7a32965
Patch160: linux-2.6-32bit-mmap-exec-randomization.patch
Jesse Keating 7a32965
Patch161: linux-2.6-i386-nx-emulation.patch
Jesse Keating 7a32965
Jesse Keating 7a32965
Patch200: linux-2.6-debug-sizeof-structs.patch
Jesse Keating 7a32965
Patch202: linux-2.6-debug-taint-vm.patch
Jesse Keating 7a32965
Patch203: linux-2.6-debug-vm-would-have-oomkilled.patch
Jesse Keating 7a32965
Patch204: linux-2.6-debug-always-inline-kzalloc.patch
Jesse Keating 7a32965
Jesse Keating 7a32965
Patch380: linux-2.6-defaults-pci_no_msi.patch
Kyle McMartin 1283661
Patch381: linux-2.6-defaults-pci_use_crs.patch
Jesse Keating 7a32965
Patch383: linux-2.6-defaults-aspm.patch
Jesse Keating 7a32965
Jesse Keating 7a32965
Patch390: linux-2.6-defaults-acpi-video.patch
Jesse Keating 7a32965
Patch391: linux-2.6-acpi-video-dos.patch
Jesse Keating 7a32965
Patch393: acpi-ec-add-delay-before-write.patch
Jesse Keating 7a32965
Patch394: linux-2.6-acpi-debug-infinite-loop.patch
Jesse Keating 7a32965
Jesse Keating 7a32965
Patch450: linux-2.6-input-kill-stupid-messages.patch
Jesse Keating 7a32965
Patch452: linux-2.6.30-no-pcspkr-modalias.patch
Jesse Keating 7a32965
Jesse Keating 7a32965
Patch460: linux-2.6-serial-460800.patch
Jesse Keating 7a32965
Jesse Keating 7a32965
Patch470: die-floppy-die.patch
Jesse Keating 7a32965
Jesse Keating 7a32965
Patch510: linux-2.6-silence-noise.patch
Jesse Keating 7a32965
Patch530: linux-2.6-silence-fbcon-logo.patch
Jesse Keating 7a32965
Patch570: linux-2.6-selinux-mprotect-checks.patch
Jesse Keating 7a32965
Patch580: linux-2.6-sparc-selinux-mprotect-checks.patch
Jesse Keating 7a32965
Jesse Keating 7a32965
Patch610: hda_intel-prealloc-4mb-dmabuffer.patch
Jesse Keating 7a32965
Dave Jones f737348
Patch700: linux-2.6-e1000-ich9-montevina.patch
Dave Jones f737348
Jesse Keating 7a32965
Patch800: linux-2.6-crash-driver.patch
Jesse Keating 7a32965
Jesse Keating 7a32965
# crypto/
Jesse Keating 7a32965
Jesse Keating 7a32965
# virt + ksm patches
Jesse Keating 7a32965
Patch1555: fix_xen_guest_on_old_EC2.patch
Jesse Keating 7a32965
Jesse Keating 7a32965
# DRM
Kyle McMartin d3e4af8
Jesse Keating 7a32965
# nouveau + drm fixes
Jesse Keating 7a32965
Patch1810: drm-nouveau-updates.patch
Jesse Keating 7a32965
# intel drm is all merged upstream
Jesse Keating 7a32965
Patch1824: drm-intel-next.patch
Jesse Keating 7a32965
# make sure the lvds comes back on lid open
Jesse Keating 7a32965
Patch1825: drm-intel-make-lvds-work.patch
Kyle McMartin 5acda93
Patch1826: drm-intel-edp-fixes.patch
Kyle McMartin 973b532
Patch1827: drm-i915-gen4-has-non-power-of-two-strides.patch
042ba03
Patch1828: drm-intel-eeebox-eb1007-quirk.patch
Kyle McMartin 5acda93
Jesse Keating 7a32965
Patch1900: linux-2.6-intel-iommu-igfx.patch
Jesse Keating 7a32965
Jesse Keating 7a32965
# linux1394 git patches
Jesse Keating 7a32965
Patch2200: linux-2.6-firewire-git-update.patch
Jesse Keating 7a32965
Patch2201: linux-2.6-firewire-git-pending.patch
Jesse Keating 7a32965
Jesse Keating 7a32965
# Quiet boot fixes
Jesse Keating 7a32965
# silence the ACPI blacklist code
Jesse Keating 7a32965
Patch2802: linux-2.6-silence-acpi-blacklist.patch
Jesse Keating 7a32965
Jesse Keating 7a32965
# media patches
Jesse Keating 7a32965
Patch2899: linux-2.6-v4l-dvb-fixes.patch
Jesse Keating 7a32965
Patch2900: linux-2.6-v4l-dvb-update.patch
Jesse Keating 7a32965
Patch2901: linux-2.6-v4l-dvb-experimental.patch
Jesse Keating 7a32965
Patch2902: linux-2.6-v4l-dvb-uvcvideo-update.patch
Jesse Keating 7a32965
Jesse Keating 7a32965
Patch2910: linux-2.6-v4l-dvb-add-lgdt3304-support.patch
Jesse Keating 7a32965
Patch2912: linux-2.6-v4l-dvb-ir-core-update.patch
Jesse Keating 7a32965
Jesse Keating 7a32965
#Patch2916: lirc-staging-2.6.36-fixes.patch
Jesse Keating 7a32965
Jesse Keating 7a32965
# fs fixes
Jesse Keating 7a32965
Jesse Keating 7a32965
# NFSv4
Jesse Keating 7a32965
Jesse Keating 7a32965
# patches headed upstream
Kyle McMartin 0ca5626
Patch12010: add-appleir-usb-driver.patch
Kyle McMartin 0ca5626
Jesse Keating 7a32965
Patch12016: disable-i8042-check-on-apple-mac.patch
Jesse Keating 7a32965
Jesse Keating 7a32965
Patch12018: neuter_intel_microcode_load.patch
Jesse Keating 7a32965
Matthew Garrett 2b89a04
# Runtime power management
Matthew Garrett 2b89a04
Patch12203: linux-2.6-usb-pci-autosuspend.patch
Matthew Garrett 037ab21
Patch12204: linux-2.6-enable-more-pci-autosuspend.patch
Matthew Garrett 2df4496
Patch12205: runtime_pm_fixups.patch
Matthew Garrett 2b89a04
Kyle McMartin dbda5f5
Patch12303: dmar-disable-when-ricoh-multifunction.patch
Kyle McMartin dbda5f5
Kyle McMartin 0983582
Patch12401: mm-slub-do-not-wake-kswapd-for-slubs-speculative-high-order-allocations.patch
Kyle McMartin 0983582
Patch12402: mm-slub-do-not-take-expensive-steps-for-slubs-speculative-high-order-allocations.patch
Kyle McMartin 0983582
Patch12403: mm-vmscan-if-kswapd-has-been-running-too-long-allow-it-to-sleep.patch
Kyle McMartin a7e4f1c
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
BuildRoot: %{_tmppath}/kernel-%{KVERREL}-root
Jesse Keating 7a32965
Jesse Keating 7a32965
%description
Jesse Keating 7a32965
The kernel package contains the Linux kernel (vmlinuz), the core of any
Jesse Keating 7a32965
Linux operating system.  The kernel handles the basic functions
Jesse Keating 7a32965
of the operating system: memory allocation, process allocation, device
Jesse Keating 7a32965
input and output, etc.
Jesse Keating 7a32965
Jesse Keating 7a32965
Jesse Keating 7a32965
%package doc
Jesse Keating 7a32965
Summary: Various documentation bits found in the kernel source
Jesse Keating 7a32965
Group: Documentation
Jesse Keating 7a32965
%description doc
Jesse Keating 7a32965
This package contains documentation files from the kernel
Jesse Keating 7a32965
source. Various bits of information about the Linux kernel and the
Jesse Keating 7a32965
device drivers shipped with it are documented in these files.
Jesse Keating 7a32965
Jesse Keating 7a32965
You'll want to install this package if you need a reference to the
Jesse Keating 7a32965
options that can be passed to Linux kernel modules at load time.
Jesse Keating 7a32965
Jesse Keating 7a32965
Jesse Keating 7a32965
%package headers
Jesse Keating 7a32965
Summary: Header files for the Linux kernel for use by glibc
Jesse Keating 7a32965
Group: Development/System
Dave Jones d555d67
Obsoletes: glibc-kernheaders < 3.0-46
Jesse Keating 7a32965
Provides: glibc-kernheaders = 3.0-46
Jesse Keating 7a32965
%description headers
Jesse Keating 7a32965
Kernel-headers includes the C header files that specify the interface
Jesse Keating 7a32965
between the Linux kernel and userspace libraries and programs.  The
Jesse Keating 7a32965
header files define structures and constants that are needed for
Jesse Keating 7a32965
building most standard programs and are also needed for rebuilding the
Jesse Keating 7a32965
glibc package.
Jesse Keating 7a32965
Jesse Keating 7a32965
%package firmware
Jesse Keating 7a32965
Summary: Firmware files used by the Linux kernel
Jesse Keating 7a32965
Group: Development/System
Jesse Keating 7a32965
# This is... complicated.
Jesse Keating 7a32965
# Look at the WHENCE file.
Jesse Keating 7a32965
License: GPL+ and GPLv2+ and MIT and Redistributable, no modification permitted
Jesse Keating 7a32965
%if "x%{?variant}" != "x"
Jesse Keating 7a32965
Provides: kernel-firmware = %{rpmversion}-%{pkg_release}
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
%description firmware
Jesse Keating 7a32965
Kernel-firmware includes firmware files required for some devices to
Jesse Keating 7a32965
operate.
Jesse Keating 7a32965
Jesse Keating 7a32965
%package bootwrapper
Jesse Keating 7a32965
Summary: Boot wrapper files for generating combined kernel + initrd images
Jesse Keating 7a32965
Group: Development/System
Jesse Keating 7a32965
Requires: gzip
Jesse Keating 7a32965
%description bootwrapper
Jesse Keating 7a32965
Kernel-bootwrapper contains the wrapper code which makes bootable "zImage"
Jesse Keating 7a32965
files combining both kernel and initial ramdisk.
Jesse Keating 7a32965
Jesse Keating 7a32965
%package debuginfo-common-%{_target_cpu}
Jesse Keating 7a32965
Summary: Kernel source files used by %{name}-debuginfo packages
Jesse Keating 7a32965
Group: Development/Debug
Jesse Keating 7a32965
%description debuginfo-common-%{_target_cpu}
Jesse Keating 7a32965
This package is required by %{name}-debuginfo subpackages.
Jesse Keating 7a32965
It provides the kernel source files common to all builds.
Jesse Keating 7a32965
Jesse Keating 7a32965
%if %{with_perf}
Jesse Keating 7a32965
%package -n perf
Jesse Keating 7a32965
Summary: Performance monitoring for the Linux kernel
Jesse Keating 7a32965
Group: Development/System
Jesse Keating 7a32965
License: GPLv2
Jesse Keating 7a32965
%description -n perf
Jesse Keating 7a32965
This package provides the perf tool and the supporting documentation.
Roland McGrath 3c4ea9a
Roland McGrath 3c4ea9a
%package -n perf-debuginfo
Roland McGrath 3c4ea9a
Summary: Debug information for package perf
Roland McGrath 3c4ea9a
Group: Development/Debug
Roland McGrath 3c4ea9a
Requires: %{name}-debuginfo-common-%{_target_cpu} = %{version}-%{release}
Roland McGrath 3c4ea9a
AutoReqProv: no
Roland McGrath 3c4ea9a
%description -n perf-debuginfo
Roland McGrath 3c4ea9a
This package provides debug information for package perf.
Roland McGrath 3c4ea9a
Roland McGrath 3c4ea9a
# Note that this pattern only works right to match the .build-id
Roland McGrath 3c4ea9a
# symlinks because of the trailing nonmatching alternation and
Roland McGrath 3c4ea9a
# the leading .*, because of find-debuginfo.sh's buggy handling
Roland McGrath 3c4ea9a
# of matching the pattern against the symlinks file.
Roland McGrath 3c4ea9a
%{expand:%%global debuginfo_args %{?debuginfo_args} -p '.*%%{_bindir}/perf(\.debug)?|.*%%{_libexecdir}/perf-core/.*|XXX' -o perf-debuginfo.list}
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
Jesse Keating 7a32965
#
Jesse Keating 7a32965
# This macro creates a kernel-<subpackage>-debuginfo package.
Jesse Keating 7a32965
#	%%kernel_debuginfo_package <subpackage>
Jesse Keating 7a32965
#
Jesse Keating 7a32965
%define kernel_debuginfo_package() \
Jesse Keating 7a32965
%package %{?1:%{1}-}debuginfo\
Jesse Keating 7a32965
Summary: Debug information for package %{name}%{?1:-%{1}}\
Jesse Keating 7a32965
Group: Development/Debug\
Jesse Keating 7a32965
Requires: %{name}-debuginfo-common-%{_target_cpu} = %{version}-%{release}\
Jesse Keating 7a32965
Provides: %{name}%{?1:-%{1}}-debuginfo-%{_target_cpu} = %{version}-%{release}\
Jesse Keating 7a32965
AutoReqProv: no\
Jesse Keating 7a32965
%description -n %{name}%{?1:-%{1}}-debuginfo\
Jesse Keating 7a32965
This package provides debug information for package %{name}%{?1:-%{1}}.\
Jesse Keating 7a32965
This is required to use SystemTap with %{name}%{?1:-%{1}}-%{KVERREL}.\
Jesse Keating 7a32965
%{expand:%%global debuginfo_args %{?debuginfo_args} -p '/.*/%%{KVERREL}%{?1:\.%{1}}/.*|/.*%%{KVERREL}%{?1:\.%{1}}(\.debug)?' -o debuginfo%{?1}.list}\
Jesse Keating 7a32965
%{nil}
Jesse Keating 7a32965
Jesse Keating 7a32965
#
Jesse Keating 7a32965
# This macro creates a kernel-<subpackage>-devel package.
Jesse Keating 7a32965
#	%%kernel_devel_package <subpackage> <pretty-name>
Jesse Keating 7a32965
#
Jesse Keating 7a32965
%define kernel_devel_package() \
Jesse Keating 7a32965
%package %{?1:%{1}-}devel\
Jesse Keating 7a32965
Summary: Development package for building kernel modules to match the %{?2:%{2} }kernel\
Jesse Keating 7a32965
Group: System Environment/Kernel\
Jesse Keating 7a32965
Provides: kernel%{?1:-%{1}}-devel-%{_target_cpu} = %{version}-%{release}\
Jesse Keating 7a32965
Provides: kernel-devel-%{_target_cpu} = %{version}-%{release}%{?1:.%{1}}\
Jesse Keating 7a32965
Provides: kernel-devel = %{version}-%{release}%{?1:.%{1}}\
Jesse Keating 7a32965
Provides: kernel-devel-uname-r = %{KVERREL}%{?1:.%{1}}\
Jesse Keating 7a32965
AutoReqProv: no\
Jesse Keating 7a32965
Requires(pre): /usr/bin/find\
Jesse Keating 7a32965
Requires: perl\
Jesse Keating 7a32965
%description -n kernel%{?variant}%{?1:-%{1}}-devel\
Jesse Keating 7a32965
This package provides kernel headers and makefiles sufficient to build modules\
Jesse Keating 7a32965
against the %{?2:%{2} }kernel package.\
Jesse Keating 7a32965
%{nil}
Jesse Keating 7a32965
Jesse Keating 7a32965
#
Jesse Keating 7a32965
# This macro creates a kernel-<subpackage> and its -devel and -debuginfo too.
Jesse Keating 7a32965
#	%%define variant_summary The Linux kernel compiled for <configuration>
Jesse Keating 7a32965
#	%%kernel_variant_package [-n <pretty-name>] <subpackage>
Jesse Keating 7a32965
#
Jesse Keating 7a32965
%define kernel_variant_package(n:) \
Jesse Keating 7a32965
%package %1\
Jesse Keating 7a32965
Summary: %{variant_summary}\
Jesse Keating 7a32965
Group: System Environment/Kernel\
Jesse Keating 7a32965
%kernel_reqprovconf\
Jesse Keating 7a32965
%{expand:%%kernel_devel_package %1 %{!?-n:%1}%{?-n:%{-n*}}}\
Jesse Keating 7a32965
%{expand:%%kernel_debuginfo_package %1}\
Jesse Keating 7a32965
%{nil}
Jesse Keating 7a32965
Jesse Keating 7a32965
Jesse Keating 7a32965
# First the auxiliary packages of the main kernel package.
Jesse Keating 7a32965
%kernel_devel_package
Jesse Keating 7a32965
%kernel_debuginfo_package
Jesse Keating 7a32965
Jesse Keating 7a32965
Jesse Keating 7a32965
# Now, each variant package.
Jesse Keating 7a32965
Jesse Keating 7a32965
%define variant_summary The Linux kernel compiled for SMP machines
Jesse Keating 7a32965
%kernel_variant_package -n SMP smp
Jesse Keating 7a32965
%description smp
Jesse Keating 7a32965
This package includes a SMP version of the Linux kernel. It is
Jesse Keating 7a32965
required only on machines with two or more CPUs as well as machines with
Jesse Keating 7a32965
hyperthreading technology.
Jesse Keating 7a32965
Jesse Keating 7a32965
Install the kernel-smp package if your machine uses two or more CPUs.
Jesse Keating 7a32965
Jesse Keating 7a32965
Jesse Keating 7a32965
%define variant_summary The Linux kernel compiled for PAE capable machines
Jesse Keating 7a32965
%kernel_variant_package PAE
Jesse Keating 7a32965
%description PAE
Jesse Keating 7a32965
This package includes a version of the Linux kernel with support for up to
Jesse Keating 7a32965
64GB of high memory. It requires a CPU with Physical Address Extensions (PAE).
Jesse Keating 7a32965
The non-PAE kernel can only address up to 4GB of memory.
Jesse Keating 7a32965
Install the kernel-PAE package if your machine has more than 4GB of memory.
Jesse Keating 7a32965
Jesse Keating 7a32965
Jesse Keating 7a32965
%define variant_summary The Linux kernel compiled with extra debugging enabled for PAE capable machines
Jesse Keating 7a32965
%kernel_variant_package PAEdebug
Jesse Keating 7a32965
Obsoletes: kernel-PAE-debug
Jesse Keating 7a32965
%description PAEdebug
Jesse Keating 7a32965
This package includes a version of the Linux kernel with support for up to
Jesse Keating 7a32965
64GB of high memory. It requires a CPU with Physical Address Extensions (PAE).
Jesse Keating 7a32965
The non-PAE kernel can only address up to 4GB of memory.
Jesse Keating 7a32965
Install the kernel-PAE package if your machine has more than 4GB of memory.
Jesse Keating 7a32965
Jesse Keating 7a32965
This variant of the kernel has numerous debugging options enabled.
Jesse Keating 7a32965
It should only be installed when trying to gather additional information
Jesse Keating 7a32965
on kernel bugs, as some of these options impact performance noticably.
Jesse Keating 7a32965
Jesse Keating 7a32965
Jesse Keating 7a32965
%define variant_summary The Linux kernel compiled with extra debugging enabled
Jesse Keating 7a32965
%kernel_variant_package debug
Jesse Keating 7a32965
%description debug
Jesse Keating 7a32965
The kernel package contains the Linux kernel (vmlinuz), the core of any
Jesse Keating 7a32965
Linux operating system.  The kernel handles the basic functions
Jesse Keating 7a32965
of the operating system:  memory allocation, process allocation, device
Jesse Keating 7a32965
input and output, etc.
Jesse Keating 7a32965
Jesse Keating 7a32965
This variant of the kernel has numerous debugging options enabled.
Jesse Keating 7a32965
It should only be installed when trying to gather additional information
Jesse Keating 7a32965
on kernel bugs, as some of these options impact performance noticably.
Jesse Keating 7a32965
Jesse Keating 7a32965
Jesse Keating 7a32965
%prep
Jesse Keating 7a32965
# do a few sanity-checks for --with *only builds
Jesse Keating 7a32965
%if %{with_baseonly}
Jesse Keating 7a32965
%if !%{with_up}%{with_pae}
Jesse Keating 7a32965
echo "Cannot build --with baseonly, up build is disabled"
Jesse Keating 7a32965
exit 1
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
%if %{with_smponly}
Jesse Keating 7a32965
%if !%{with_smp}
Jesse Keating 7a32965
echo "Cannot build --with smponly, smp build is disabled"
Jesse Keating 7a32965
exit 1
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
# more sanity checking; do it quietly
Jesse Keating 7a32965
if [ "%{patches}" != "%%{patches}" ] ; then
Jesse Keating 7a32965
  for patch in %{patches} ; do
Jesse Keating 7a32965
    if [ ! -f $patch ] ; then
Jesse Keating 7a32965
      echo "ERROR: Patch  ${patch##/*/}  listed in specfile but is missing"
Jesse Keating 7a32965
      exit 1
Jesse Keating 7a32965
    fi
Jesse Keating 7a32965
  done
Jesse Keating 7a32965
fi 2>/dev/null
Jesse Keating 7a32965
Jesse Keating 7a32965
patch_command='patch -p1 -F1 -s'
Jesse Keating 7a32965
ApplyPatch()
Jesse Keating 7a32965
{
Jesse Keating 7a32965
  local patch=$1
Jesse Keating 7a32965
  shift
Jesse Keating 7a32965
  if [ ! -f $RPM_SOURCE_DIR/$patch ]; then
Jesse Keating 7a32965
    exit 1
Jesse Keating 7a32965
  fi
Jesse Keating 7a32965
%if !%{using_upstream_branch}
Dave Jones b89c80f
  if ! grep -E "^Patch[0-9]+: $patch\$" %{_specdir}/${RPM_PACKAGE_NAME%%%%%{?variant}}.spec ; then
Kyle McMartin 385fc37
    if [ "${patch:0:10}" != "patch-3." ] ; then
Jesse Keating 7a32965
      echo "ERROR: Patch  $patch  not listed as a source patch in specfile"
Jesse Keating 7a32965
      exit 1
Jesse Keating 7a32965
    fi
Jesse Keating 7a32965
  fi 2>/dev/null
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
  case "$patch" in
Jesse Keating 7a32965
  *.bz2) bunzip2 < "$RPM_SOURCE_DIR/$patch" | $patch_command ${1+"$@"} ;;
Jesse Keating 7a32965
  *.gz) gunzip < "$RPM_SOURCE_DIR/$patch" | $patch_command ${1+"$@"} ;;
Jesse Keating 7a32965
  *) $patch_command ${1+"$@"} < "$RPM_SOURCE_DIR/$patch" ;;
Jesse Keating 7a32965
  esac
Jesse Keating 7a32965
}
Jesse Keating 7a32965
Jesse Keating 7a32965
# don't apply patch if it's empty
Jesse Keating 7a32965
ApplyOptionalPatch()
Jesse Keating 7a32965
{
Jesse Keating 7a32965
  local patch=$1
Jesse Keating 7a32965
  shift
Jesse Keating 7a32965
  if [ ! -f $RPM_SOURCE_DIR/$patch ]; then
Jesse Keating 7a32965
    exit 1
Jesse Keating 7a32965
  fi
Jesse Keating 7a32965
  local C=$(wc -l $RPM_SOURCE_DIR/$patch | awk '{print $1}')
Jesse Keating 7a32965
  if [ "$C" -gt 9 ]; then
Jesse Keating 7a32965
    ApplyPatch $patch ${1+"$@"}
Jesse Keating 7a32965
  fi
Jesse Keating 7a32965
}
Jesse Keating 7a32965
Jesse Keating 7a32965
# we don't want a .config file when building firmware: it just confuses the build system
Jesse Keating 7a32965
%define build_firmware \
Jesse Keating 7a32965
   mv .config .config.firmware_save \
Jesse Keating 7a32965
   make INSTALL_FW_PATH=$RPM_BUILD_ROOT/lib/firmware firmware_install \
Jesse Keating 7a32965
   mv .config.firmware_save .config
Jesse Keating 7a32965
Jesse Keating 7a32965
# First we unpack the kernel tarball.
Jesse Keating 7a32965
# If this isn't the first make prep, we use links to the existing clean tarball
Jesse Keating 7a32965
# which speeds things up quite a bit.
Jesse Keating 7a32965
Jesse Keating 7a32965
# Update to latest upstream.
Jesse Keating 7a32965
%if 0%{?released_kernel}
Kyle McMartin 8b2fa9b
%define vanillaversion 3.%{base_sublevel}
Jesse Keating 7a32965
# non-released_kernel case
Jesse Keating 7a32965
%else
Jesse Keating 7a32965
%if 0%{?rcrev}
Kyle McMartin 8b2fa9b
%define vanillaversion 3.%{upstream_sublevel}-rc%{rcrev}
Jesse Keating 7a32965
%if 0%{?gitrev}
Kyle McMartin 8b2fa9b
%define vanillaversion 3.%{upstream_sublevel}-rc%{rcrev}-git%{gitrev}
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
%else
Jesse Keating 7a32965
# pre-{base_sublevel+1}-rc1 case
Jesse Keating 7a32965
%if 0%{?gitrev}
Kyle McMartin 8b2fa9b
%define vanillaversion 3.%{base_sublevel}-git%{gitrev}
Jesse Keating 7a32965
%else
Kyle McMartin 8b2fa9b
%define vanillaversion 3.%{base_sublevel}
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Dave Jones 166b79a
# %%{vanillaversion} : the full version name, e.g. 2.6.35-rc6-git3
Dave Jones 166b79a
# %%{kversion}       : the base version, e.g. 2.6.34
Jesse Keating 7a32965
Dave Jones 166b79a
# Use kernel-%%{kversion}%%{?dist} as the top-level directory name
Chuck Ebbert 26d08c0
# so we can prep different trees within a single git directory.
Jesse Keating 7a32965
Chuck Ebbert 26d08c0
# Build a list of the other top-level kernel tree directories.
Chuck Ebbert 26d08c0
# This will be used to hardlink identical vanilla subdirs.
Kyle McMartin 8b2fa9b
sharedirs=$(find "$PWD" -maxdepth 1 -type d -name 'kernel-3.*' \
Chuck Ebbert 26d08c0
            | grep -x -v "$PWD"/kernel-%{kversion}%{?dist}) ||:
Jesse Keating 7a32965
Chuck Ebbert 26d08c0
if [ ! -d kernel-%{kversion}%{?dist}/vanilla-%{vanillaversion} ]; then
Chuck Ebbert 26d08c0
Chuck Ebbert 26d08c0
  if [ -d kernel-%{kversion}%{?dist}/vanilla-%{kversion} ]; then
Chuck Ebbert 26d08c0
Chuck Ebbert 26d08c0
    # The base vanilla version already exists.
Chuck Ebbert 26d08c0
    cd kernel-%{kversion}%{?dist}
Jesse Keating 7a32965
Jesse Keating 7a32965
    # Any vanilla-* directories other than the base one are stale.
Jesse Keating 7a32965
    for dir in vanilla-*; do
Jesse Keating 7a32965
      [ "$dir" = vanilla-%{kversion} ] || rm -rf $dir &
Jesse Keating 7a32965
    done
Jesse Keating 7a32965
Jesse Keating 7a32965
  else
Jesse Keating 7a32965
Jesse Keating 7a32965
    rm -f pax_global_header
Chuck Ebbert 26d08c0
    # Look for an identical base vanilla dir that can be hardlinked.
Jesse Keating 7a32965
    for sharedir in $sharedirs ; do
Chuck Ebbert 26d08c0
      if [[ ! -z $sharedir  &&  -d $sharedir/vanilla-%{kversion} ]] ; then
Jesse Keating 7a32965
        break
Jesse Keating 7a32965
      fi
Jesse Keating 7a32965
    done
Chuck Ebbert 26d08c0
    if [[ ! -z $sharedir  &&  -d $sharedir/vanilla-%{kversion} ]] ; then
Chuck Ebbert 26d08c0
%setup -q -n kernel-%{kversion}%{?dist} -c -T
Chuck Ebbert 26d08c0
      cp -rl $sharedir/vanilla-%{kversion} .
Jesse Keating 7a32965
    else
Chuck Ebbert 26d08c0
%setup -q -n kernel-%{kversion}%{?dist} -c
Jesse Keating 7a32965
      mv linux-%{kversion} vanilla-%{kversion}
Jesse Keating 7a32965
    fi
Jesse Keating 7a32965
Jesse Keating 7a32965
  fi
Jesse Keating 7a32965
Jesse Keating 7a32965
%if "%{kversion}" != "%{vanillaversion}"
Jesse Keating 7a32965
Jesse Keating 7a32965
  for sharedir in $sharedirs ; do
Chuck Ebbert 26d08c0
    if [[ ! -z $sharedir  &&  -d $sharedir/vanilla-%{vanillaversion} ]] ; then
Jesse Keating 7a32965
      break
Jesse Keating 7a32965
    fi
Jesse Keating 7a32965
  done
Chuck Ebbert 26d08c0
  if [[ ! -z $sharedir  &&  -d $sharedir/vanilla-%{vanillaversion} ]] ; then
Jesse Keating 7a32965
Chuck Ebbert 26d08c0
    cp -rl $sharedir/vanilla-%{vanillaversion} .
Jesse Keating 7a32965
Jesse Keating 7a32965
  else
Jesse Keating 7a32965
Chuck Ebbert 26d08c0
    # Need to apply patches to the base vanilla version.
Jesse Keating 7a32965
    cp -rl vanilla-%{kversion} vanilla-%{vanillaversion}
Jesse Keating 7a32965
    cd vanilla-%{vanillaversion}
Jesse Keating 7a32965
Jesse Keating 7a32965
# Update vanilla to the latest upstream.
Jesse Keating 7a32965
# (non-released_kernel case only)
Jesse Keating 7a32965
%if 0%{?rcrev}
Kyle McMartin 8b2fa9b
    # ApplyPatch patch-3.%{upstream_sublevel}-rc%{rcrev}.bz2
Jesse Keating 7a32965
%if 0%{?gitrev}
Kyle McMartin 8b2fa9b
    ApplyPatch patch-3.%{upstream_sublevel}-rc%{rcrev}-git%{gitrev}.bz2
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
%else
Jesse Keating 7a32965
# pre-{base_sublevel+1}-rc1 case
Jesse Keating 7a32965
%if 0%{?gitrev}
Kyle McMartin 8b2fa9b
    ApplyPatch patch-3.%{base_sublevel}-git%{gitrev}.bz2
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
    cd ..
Jesse Keating 7a32965
Jesse Keating 7a32965
  fi
Jesse Keating 7a32965
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
else
Chuck Ebbert 26d08c0
Chuck Ebbert 26d08c0
  # We already have all vanilla dirs, just change to the top-level directory.
Chuck Ebbert 26d08c0
  cd kernel-%{kversion}%{?dist}
Chuck Ebbert 26d08c0
Jesse Keating 7a32965
fi
Jesse Keating 7a32965
Chuck Ebbert 26d08c0
# Now build the fedora kernel tree.
Jesse Keating 7a32965
if [ -d linux-%{kversion}.%{_target_cpu} ]; then
Jesse Keating 7a32965
  # Just in case we ctrl-c'd a prep already
Jesse Keating 7a32965
  rm -rf deleteme.%{_target_cpu}
Jesse Keating 7a32965
  # Move away the stale away, and delete in background.
Jesse Keating 7a32965
  mv linux-%{kversion}.%{_target_cpu} deleteme.%{_target_cpu}
Jesse Keating 7a32965
  rm -rf deleteme.%{_target_cpu} &
Jesse Keating 7a32965
fi
Jesse Keating 7a32965
Jesse Keating 7a32965
cp -rl vanilla-%{vanillaversion} linux-%{kversion}.%{_target_cpu}
Jesse Keating 7a32965
Jesse Keating 7a32965
cd linux-%{kversion}.%{_target_cpu}
Jesse Keating 7a32965
Jesse Keating 7a32965
# released_kernel with possible stable updates
Jesse Keating 7a32965
%if 0%{?stable_base}
Jesse Keating 7a32965
ApplyPatch %{stable_patch_00}
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
%if 0%{?stable_rc}
Jesse Keating 7a32965
ApplyPatch %{stable_patch_01}
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
%if %{using_upstream_branch}
Jesse Keating 7a32965
### BRANCH APPLY ###
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
# Drop some necessary files from the source dir into the buildroot
Jesse Keating 7a32965
cp $RPM_SOURCE_DIR/config-* .
Jesse Keating 7a32965
cp %{SOURCE15} .
Jesse Keating 7a32965
Jesse Keating 7a32965
# Dynamically generate kernel .config files from config-* files
Jesse Keating 7a32965
make -f %{SOURCE20} VERSION=%{version} configs
Jesse Keating 7a32965
cfdfd01
%if %{?all_arch_configs:1}%{!?all_arch_configs:0}
Jesse Keating 7a32965
#if a rhel kernel, apply the rhel config options
Jesse Keating 7a32965
%if 0%{?rhel}
Jesse Keating 7a32965
  for i in %{all_arch_configs}
Jesse Keating 7a32965
  do
Jesse Keating 7a32965
    mv $i $i.tmp
Jesse Keating 7a32965
    ./merge.pl config-rhel-generic $i.tmp > $i
Jesse Keating 7a32965
    rm $i.tmp
Jesse Keating 7a32965
  done
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jarod Wilson 5b65297
# Merge in any user-provided local config option changes
Jarod Wilson 5b65297
for i in %{all_arch_configs}
Jarod Wilson 5b65297
do
Jarod Wilson 5b65297
  mv $i $i.tmp
Jarod Wilson 5b65297
  ./merge.pl %{SOURCE1000} $i.tmp > $i
Jarod Wilson 5b65297
  rm $i.tmp
Jarod Wilson 5b65297
done
cfdfd01
%endif
Jarod Wilson 5b65297
Jesse Keating 7a32965
ApplyOptionalPatch git-linus.diff
Jesse Keating 7a32965
Jesse Keating 7a32965
ApplyPatch linux-2.6-makefile-after_link.patch
Jesse Keating 7a32965
Jesse Keating 7a32965
#
Jesse Keating 7a32965
# misc small stuff to make things compile
Jesse Keating 7a32965
#
Jesse Keating 7a32965
ApplyOptionalPatch linux-2.6-compile-fixes.patch
Jesse Keating 7a32965
Jesse Keating 7a32965
%if !%{nopatches}
Jesse Keating 7a32965
Jesse Keating 7a32965
# revert patches from upstream that conflict or that we get via other means
Jesse Keating 7a32965
ApplyOptionalPatch linux-2.6-upstream-reverts.patch -R
Jesse Keating 7a32965
Jesse Keating 7a32965
ApplyPatch linux-2.6-hotfixes.patch
Jesse Keating 7a32965
Jesse Keating 7a32965
# Architecture patches
Jesse Keating 7a32965
# x86(-64)
Jesse Keating 7a32965
Jesse Keating 7a32965
#
Jesse Keating 7a32965
# Intel IOMMU
Jesse Keating 7a32965
#
Jesse Keating 7a32965
Jesse Keating 7a32965
#
Jesse Keating 7a32965
# PowerPC
Jesse Keating 7a32965
#
Jesse Keating 7a32965
Jesse Keating 7a32965
#
Jesse Keating 7a32965
# SPARC64
Jesse Keating 7a32965
#
Jesse Keating 7a32965
ApplyPatch linux-2.6.29-sparc-IOC_TYPECHECK.patch
Jesse Keating 7a32965
Jesse Keating 7a32965
#
Jesse Keating 7a32965
# Exec shield
Jesse Keating 7a32965
#
Kyle McMartin 123d535
#ApplyPatch linux-2.6-i386-nx-emulation.patch ###FIX
Jesse Keating 7a32965
ApplyPatch linux-2.6-32bit-mmap-exec-randomization.patch
Jesse Keating 7a32965
Jesse Keating 7a32965
#
Jesse Keating 7a32965
# bugfixes to drivers and filesystems
Jesse Keating 7a32965
#
Jesse Keating 7a32965
Jesse Keating 7a32965
# ext4
Jesse Keating 7a32965
Jesse Keating 7a32965
# xfs
Jesse Keating 7a32965
Jesse Keating 7a32965
# btrfs
Jesse Keating 7a32965
Jesse Keating 7a32965
Jesse Keating 7a32965
# eCryptfs
Jesse Keating 7a32965
Jesse Keating 7a32965
# NFSv4
Jesse Keating 7a32965
Jesse Keating 7a32965
# USB
Jesse Keating 7a32965
Jesse Keating 7a32965
# WMI
Jesse Keating 7a32965
Jesse Keating 7a32965
# ACPI
Jesse Keating 7a32965
ApplyPatch linux-2.6-defaults-acpi-video.patch
Jesse Keating 7a32965
ApplyPatch linux-2.6-acpi-video-dos.patch
Jesse Keating 7a32965
ApplyPatch acpi-ec-add-delay-before-write.patch
Jesse Keating 7a32965
ApplyPatch linux-2.6-acpi-debug-infinite-loop.patch
Jesse Keating 7a32965
Jesse Keating 7a32965
# Various low-impact patches to aid debugging.
Jesse Keating 7a32965
ApplyPatch linux-2.6-debug-sizeof-structs.patch
Jesse Keating 7a32965
ApplyPatch linux-2.6-debug-taint-vm.patch
Kyle McMartin 4d70d8d
ApplyPatch linux-2.6-debug-vm-would-have-oomkilled.patch
Jesse Keating 7a32965
ApplyPatch linux-2.6-debug-always-inline-kzalloc.patch
Jesse Keating 7a32965
Jesse Keating 7a32965
#
Jesse Keating 7a32965
# PCI
Jesse Keating 7a32965
#
Jesse Keating 7a32965
# make default state of PCI MSI a config option
Jesse Keating 7a32965
ApplyPatch linux-2.6-defaults-pci_no_msi.patch
Kyle McMartin 1283661
ApplyPatch linux-2.6-defaults-pci_use_crs.patch
Jesse Keating 7a32965
# enable ASPM by default on hardware we expect to work
Jesse Keating 7a32965
ApplyPatch linux-2.6-defaults-aspm.patch
Jesse Keating 7a32965
Jesse Keating 7a32965
#
Jesse Keating 7a32965
# SCSI Bits.
Jesse Keating 7a32965
#
Jesse Keating 7a32965
Jesse Keating 7a32965
# ACPI
Jesse Keating 7a32965
Jesse Keating 7a32965
# ALSA
Jesse Keating 7a32965
ApplyPatch hda_intel-prealloc-4mb-dmabuffer.patch
Jesse Keating 7a32965
Jesse Keating 7a32965
# Networking
Jesse Keating 7a32965
Jesse Keating 7a32965
# Misc fixes
Jesse Keating 7a32965
# The input layer spews crap no-one cares about.
Jesse Keating 7a32965
ApplyPatch linux-2.6-input-kill-stupid-messages.patch
Jesse Keating 7a32965
Jesse Keating 7a32965
# stop floppy.ko from autoloading during udev...
Jesse Keating 7a32965
ApplyPatch die-floppy-die.patch
Jesse Keating 7a32965
Jesse Keating 7a32965
ApplyPatch linux-2.6.30-no-pcspkr-modalias.patch
Jesse Keating 7a32965
Jesse Keating 7a32965
# Allow to use 480600 baud on 16C950 UARTs
Jesse Keating 7a32965
ApplyPatch linux-2.6-serial-460800.patch
Jesse Keating 7a32965
Jesse Keating 7a32965
# Silence some useless messages that still get printed with 'quiet'
Jesse Keating 7a32965
ApplyPatch linux-2.6-silence-noise.patch
Jesse Keating 7a32965
Jesse Keating 7a32965
# Make fbcon not show the penguins with 'quiet'
Jesse Keating 7a32965
ApplyPatch linux-2.6-silence-fbcon-logo.patch
Jesse Keating 7a32965
Jesse Keating 7a32965
# Fix the SELinux mprotect checks on executable mappings
Jesse Keating 7a32965
#ApplyPatch linux-2.6-selinux-mprotect-checks.patch
Jesse Keating 7a32965
# Fix SELinux for sparc
Jesse Keating 7a32965
# FIXME: Can we drop this now? See updated linux-2.6-selinux-mprotect-checks.patch
Jesse Keating 7a32965
#ApplyPatch linux-2.6-sparc-selinux-mprotect-checks.patch
Jesse Keating 7a32965
Jesse Keating 7a32965
# Changes to upstream defaults.
Jesse Keating 7a32965
Jesse Keating 7a32965
Jesse Keating 7a32965
# /dev/crash driver.
Jesse Keating 7a32965
ApplyPatch linux-2.6-crash-driver.patch
Jesse Keating 7a32965
Dave Jones f737348
# Hack e1000e to work on Montevina SDV
Dave Jones f737348
ApplyPatch linux-2.6-e1000-ich9-montevina.patch
Dave Jones f737348
Jesse Keating 7a32965
# crypto/
Jesse Keating 7a32965
Jesse Keating 7a32965
# Assorted Virt Fixes
Jesse Keating 7a32965
ApplyPatch fix_xen_guest_on_old_EC2.patch
Jesse Keating 7a32965
Kyle McMartin d3e4af8
# DRM core
Jesse Keating 7a32965
Kyle McMartin d3e4af8
# Nouveau DRM
Kyle McMartin d3e4af8
ApplyOptionalPatch drm-nouveau-updates.patch
Kyle McMartin d3e4af8
Kyle McMartin d3e4af8
# Intel DRM
Jesse Keating 7a32965
ApplyOptionalPatch drm-intel-next.patch
Jesse Keating 7a32965
ApplyPatch drm-intel-make-lvds-work.patch
Jesse Keating 7a32965
ApplyPatch linux-2.6-intel-iommu-igfx.patch
Kyle McMartin 3f74cb6
#ApplyPatch drm-intel-edp-fixes.patch
Kyle McMartin 973b532
# rhbz#681285 (i965: crash in brw_wm_surface_state.c::prepare_wm_surfaces()
Kyle McMartin 973b532
#  where intelObj->mt == NULL)
Kyle McMartin 68c77e0
#ApplyPatch drm-i915-gen4-has-non-power-of-two-strides.patch
042ba03
ApplyPatch drm-intel-eeebox-eb1007-quirk.patch
Jesse Keating 7a32965
Jesse Keating 7a32965
# linux1394 git patches
Jesse Keating 7a32965
#ApplyPatch linux-2.6-firewire-git-update.patch
Jesse Keating 7a32965
#ApplyOptionalPatch linux-2.6-firewire-git-pending.patch
Jesse Keating 7a32965
Jesse Keating 7a32965
# silence the ACPI blacklist code
Jesse Keating 7a32965
ApplyPatch linux-2.6-silence-acpi-blacklist.patch
Jesse Keating 7a32965
Jesse Keating 7a32965
# V4L/DVB updates/fixes/experimental drivers
Jesse Keating 7a32965
#  apply if non-empty
Jesse Keating 7a32965
ApplyOptionalPatch linux-2.6-v4l-dvb-fixes.patch
Jesse Keating 7a32965
ApplyOptionalPatch linux-2.6-v4l-dvb-update.patch
Jesse Keating 7a32965
ApplyOptionalPatch linux-2.6-v4l-dvb-experimental.patch
Kyle McMartin da80d72
#ApplyPatch linux-2.6-v4l-dvb-uvcvideo-update.patch
Kyle McMartin da80d72
#ApplyPatch linux-2.6-v4l-dvb-ir-core-update.patch
Jesse Keating 7a32965
Kyle McMartin da80d72
###FIX###ApplyPatch linux-2.6-v4l-dvb-add-lgdt3304-support.patch
Jesse Keating 7a32965
Jesse Keating 7a32965
# http://www.lirc.org/
Jesse Keating 7a32965
#ApplyOptionalPatch lirc-staging-2.6.36-fixes.patch
Jesse Keating 7a32965
Jesse Keating 7a32965
# Patches headed upstream
Jesse Keating 7a32965
ApplyPatch disable-i8042-check-on-apple-mac.patch
Jesse Keating 7a32965
Kyle McMartin 0ca5626
ApplyPatch add-appleir-usb-driver.patch
Kyle McMartin 0ca5626
Jesse Keating 7a32965
ApplyPatch neuter_intel_microcode_load.patch
Jesse Keating 7a32965
Matthew Garrett 2b89a04
# Runtime PM
Kyle McMartin 89a0c6d
#ApplyPatch linux-2.6-usb-pci-autosuspend.patch
Kyle McMartin f5ea23d
### Broken by implicit notify support & ACPICA rebase
Kyle McMartin f5ea23d
###ApplyPatch linux-2.6-enable-more-pci-autosuspend.patch
Kyle McMartin 89a0c6d
#ApplyPatch runtime_pm_fixups.patch
Matthew Garrett 2b89a04
Kyle McMartin dbda5f5
# rhbz#605888
Kyle McMartin dbda5f5
ApplyPatch dmar-disable-when-ricoh-multifunction.patch
Kyle McMartin dbda5f5
Kyle McMartin a7e4f1c
ApplyPatch mm-slub-do-not-wake-kswapd-for-slubs-speculative-high-order-allocations.patch
Kyle McMartin a7e4f1c
ApplyPatch mm-slub-do-not-take-expensive-steps-for-slubs-speculative-high-order-allocations.patch
Kyle McMartin 0983582
ApplyPatch mm-vmscan-if-kswapd-has-been-running-too-long-allow-it-to-sleep.patch
Kyle McMartin a7e4f1c
Jesse Keating 7a32965
# END OF PATCH APPLICATIONS
Jesse Keating 7a32965
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
# Any further pre-build tree manipulations happen here.
Jesse Keating 7a32965
Jesse Keating 7a32965
chmod +x scripts/checkpatch.pl
Jesse Keating 7a32965
Kyle McMartin fa06609
touch .scmversion
Kyle McMartin fa06609
Jesse Keating 7a32965
# only deal with configs if we are going to build for the arch
Jesse Keating 7a32965
%ifnarch %nobuildarches
Jesse Keating 7a32965
Jesse Keating 7a32965
mkdir configs
Jesse Keating 7a32965
Jesse Keating 7a32965
# Remove configs not for the buildarch
Jesse Keating 7a32965
for cfg in kernel-%{version}-*.config; do
Jesse Keating 7a32965
  if [ `echo %{all_arch_configs} | grep -c $cfg` -eq 0 ]; then
Jesse Keating 7a32965
    rm -f $cfg
Jesse Keating 7a32965
  fi
Jesse Keating 7a32965
done
Jesse Keating 7a32965
Jesse Keating 7a32965
%if !%{debugbuildsenabled}
Jesse Keating 7a32965
rm -f kernel-%{version}-*debug.config
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
# now run oldconfig over all the config files
Jesse Keating 7a32965
for i in *.config
Jesse Keating 7a32965
do
Jesse Keating 7a32965
  mv $i .config
Jesse Keating 7a32965
  Arch=`head -1 .config | cut -b 3-`
Dave Jones b89c80f
  make ARCH=$Arch listnewconfig | grep -E '^CONFIG_' >.newoptions || true
Kyle McMartin da80d72
%if %{listnewconfig_fail}
Kyle McMartin da80d72
  if [ -s .newoptions ]; then
Kyle McMartin da80d72
    cat .newoptions
Chuck Ebbert 3a78e4b
    exit 1
Kyle McMartin da80d72
  fi
Kyle McMartin da80d72
%endif
Kyle McMartin da80d72
  rm -f .newoptions
Kyle McMartin a62b0aa
  make ARCH=$Arch oldnoconfig
Jesse Keating 7a32965
  echo "# $Arch" > configs/$i
Jesse Keating 7a32965
  cat .config >> configs/$i
Jesse Keating 7a32965
done
Jesse Keating 7a32965
# end of kernel config
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
# get rid of unwanted files resulting from patch fuzz
Jesse Keating 7a32965
find . \( -name "*.orig" -o -name "*~" \) -exec rm -f {} \; >/dev/null
Jesse Keating 7a32965
Dave Jones 246f94f
# remove unnecessary SCM files
Dave Jones 246f94f
find . -name .gitignore -exec rm -f {} \; >/dev/null
Dave Jones 246f94f
Jesse Keating 7a32965
cd ..
Jesse Keating 7a32965
Jesse Keating 7a32965
###
Jesse Keating 7a32965
### build
Jesse Keating 7a32965
###
Jesse Keating 7a32965
%build
Jesse Keating 7a32965
Jesse Keating 7a32965
%if %{with_sparse}
Jesse Keating 7a32965
%define sparse_mflags	C=1
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
%if %{fancy_debuginfo}
Jesse Keating 7a32965
# This override tweaks the kernel makefiles so that we run debugedit on an
Jesse Keating 7a32965
# object before embedding it.  When we later run find-debuginfo.sh, it will
Jesse Keating 7a32965
# run debugedit again.  The edits it does change the build ID bits embedded
Jesse Keating 7a32965
# in the stripped object, but repeating debugedit is a no-op.  We do it
Jesse Keating 7a32965
# beforehand to get the proper final build ID bits into the embedded image.
Jesse Keating 7a32965
# This affects the vDSO images in vmlinux, and the vmlinux image in bzImage.
Jesse Keating 7a32965
export AFTER_LINK=\
Jesse Keating 7a32965
'sh -xc "/usr/lib/rpm/debugedit -b $$RPM_BUILD_DIR -d /usr/src/debug \
Jesse Keating 7a32965
    				-i $@ > $@.id"'
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
cp_vmlinux()
Jesse Keating 7a32965
{
Jesse Keating 7a32965
  eu-strip --remove-comment -o "$2" "$1"
Jesse Keating 7a32965
}
Jesse Keating 7a32965
Jesse Keating 7a32965
BuildKernel() {
Jesse Keating 7a32965
    MakeTarget=$1
Jesse Keating 7a32965
    KernelImage=$2
Jesse Keating 7a32965
    Flavour=$3
Jesse Keating 7a32965
    InstallName=${4:-vmlinuz}
Jesse Keating 7a32965
Jesse Keating 7a32965
    # Pick the right config file for the kernel we're building
Jesse Keating 7a32965
    Config=kernel-%{version}-%{_target_cpu}${Flavour:+-${Flavour}}.config
Jesse Keating 7a32965
    DevelDir=/usr/src/kernels/%{KVERREL}${Flavour:+.${Flavour}}
Jesse Keating 7a32965
Jesse Keating 7a32965
    # When the bootable image is just the ELF kernel, strip it.
Jesse Keating 7a32965
    # We already copy the unstripped file into the debuginfo package.
Jesse Keating 7a32965
    if [ "$KernelImage" = vmlinux ]; then
Jesse Keating 7a32965
      CopyKernel=cp_vmlinux
Jesse Keating 7a32965
    else
Jesse Keating 7a32965
      CopyKernel=cp
Jesse Keating 7a32965
    fi
Jesse Keating 7a32965
Jesse Keating 7a32965
    KernelVer=%{version}-%{release}.%{_target_cpu}${Flavour:+.${Flavour}}
Jesse Keating 7a32965
    echo BUILDING A KERNEL FOR ${Flavour} %{_target_cpu}...
Jesse Keating 7a32965
Jesse Keating 7a32965
    # make sure EXTRAVERSION says what we want it to say
Jesse Keating 7a32965
    perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = %{?stablerev}-%{release}.%{_target_cpu}${Flavour:+.${Flavour}}/" Makefile
Jesse Keating 7a32965
Jesse Keating 7a32965
    # if pre-rc1 devel kernel, must fix up SUBLEVEL for our versioning scheme
Jesse Keating 7a32965
    %if !0%{?rcrev}
Jesse Keating 7a32965
    %if 0%{?gitrev}
Jesse Keating 7a32965
    perl -p -i -e 's/^SUBLEVEL.*/SUBLEVEL = %{upstream_sublevel}/' Makefile
Jesse Keating 7a32965
    %endif
Jesse Keating 7a32965
    %endif
Jesse Keating 7a32965
Jesse Keating 7a32965
    # and now to start the build process
Jesse Keating 7a32965
Jesse Keating 7a32965
    make -s mrproper
Jesse Keating 7a32965
    cp configs/$Config .config
Jesse Keating 7a32965
Jesse Keating 7a32965
    Arch=`head -1 .config | cut -b 3-`
Jesse Keating 7a32965
    echo USING ARCH=$Arch
Jesse Keating 7a32965
Kyle McMartin da80d72
    make -s ARCH=$Arch oldnoconfig >/dev/null
Jesse Keating 7a32965
    make -s ARCH=$Arch V=1 %{?_smp_mflags} $MakeTarget %{?sparse_mflags}
Jesse Keating 7a32965
    make -s ARCH=$Arch V=1 %{?_smp_mflags} modules %{?sparse_mflags} || exit 1
Jesse Keating 7a32965
Jesse Keating 7a32965
    # Start installing the results
Jesse Keating 7a32965
%if %{with_debuginfo}
Jesse Keating 7a32965
    mkdir -p $RPM_BUILD_ROOT%{debuginfodir}/boot
Jesse Keating 7a32965
    mkdir -p $RPM_BUILD_ROOT%{debuginfodir}/%{image_install_path}
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
    mkdir -p $RPM_BUILD_ROOT/%{image_install_path}
Jesse Keating 7a32965
    install -m 644 .config $RPM_BUILD_ROOT/boot/config-$KernelVer
Jesse Keating 7a32965
    install -m 644 System.map $RPM_BUILD_ROOT/boot/System.map-$KernelVer
Jesse Keating 7a32965
Jesse Keating 7a32965
    # We estimate the size of the initramfs because rpm needs to take this size
Jesse Keating 7a32965
    # into consideration when performing disk space calculations. (See bz #530778)
Jesse Keating 7a32965
    dd if=/dev/zero of=$RPM_BUILD_ROOT/boot/initramfs-$KernelVer.img bs=1M count=20
Jesse Keating 7a32965
Jesse Keating 7a32965
    if [ -f arch/$Arch/boot/zImage.stub ]; then
Jesse Keating 7a32965
      cp arch/$Arch/boot/zImage.stub $RPM_BUILD_ROOT/%{image_install_path}/zImage.stub-$KernelVer || :
Jesse Keating 7a32965
    fi
Jesse Keating 7a32965
    $CopyKernel $KernelImage \
Jesse Keating 7a32965
    		$RPM_BUILD_ROOT/%{image_install_path}/$InstallName-$KernelVer
Jesse Keating 7a32965
    chmod 755 $RPM_BUILD_ROOT/%{image_install_path}/$InstallName-$KernelVer
Jesse Keating 7a32965
Jesse Keating 7a32965
    mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer
Jesse Keating 7a32965
    # Override $(mod-fw) because we don't want it to install any firmware
Jesse Keating 7a32965
    # We'll do that ourselves with 'make firmware_install'
Jesse Keating 7a32965
    make -s ARCH=$Arch INSTALL_MOD_PATH=$RPM_BUILD_ROOT modules_install KERNELRELEASE=$KernelVer mod-fw=
Jesse Keating 7a32965
%ifarch %{vdso_arches}
Jesse Keating 7a32965
    make -s ARCH=$Arch INSTALL_MOD_PATH=$RPM_BUILD_ROOT vdso_install KERNELRELEASE=$KernelVer
Jesse Keating 7a32965
    if [ ! -s ldconfig-kernel.conf ]; then
Jesse Keating 7a32965
      echo > ldconfig-kernel.conf "\
Jesse Keating 7a32965
# Placeholder file, no vDSO hwcap entries used in this kernel."
Jesse Keating 7a32965
    fi
Jesse Keating 7a32965
    %{__install} -D -m 444 ldconfig-kernel.conf \
Jesse Keating 7a32965
        $RPM_BUILD_ROOT/etc/ld.so.conf.d/kernel-$KernelVer.conf
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
    # And save the headers/makefiles etc for building modules against
Jesse Keating 7a32965
    #
Jesse Keating 7a32965
    # This all looks scary, but the end result is supposed to be:
Jesse Keating 7a32965
    # * all arch relevant include/ files
Jesse Keating 7a32965
    # * all Makefile/Kconfig files
Jesse Keating 7a32965
    # * all script/ files
Jesse Keating 7a32965
Jesse Keating 7a32965
    rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
Jesse Keating 7a32965
    rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/source
Jesse Keating 7a32965
    mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
Jesse Keating 7a32965
    (cd $RPM_BUILD_ROOT/lib/modules/$KernelVer ; ln -s build source)
Jesse Keating 7a32965
    # dirs for additional modules per module-init-tools, kbuild/modules.txt
Jesse Keating 7a32965
    mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/extra
Jesse Keating 7a32965
    mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/updates
Jesse Keating 7a32965
    # first copy everything
Jesse Keating 7a32965
    cp --parents `find  -type f -name "Makefile*" -o -name "Kconfig*"` $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
Jesse Keating 7a32965
    cp Module.symvers $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
Jesse Keating 7a32965
    cp System.map $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
Jesse Keating 7a32965
    if [ -s Module.markers ]; then
Jesse Keating 7a32965
      cp Module.markers $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
Jesse Keating 7a32965
    fi
Jesse Keating 7a32965
    # then drop all but the needed Makefiles/Kconfig files
Jesse Keating 7a32965
    rm -rf $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/Documentation
Jesse Keating 7a32965
    rm -rf $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/scripts
Jesse Keating 7a32965
    rm -rf $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
Jesse Keating 7a32965
    cp .config $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
Jesse Keating 7a32965
    cp -a scripts $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
Jesse Keating 7a32965
    if [ -d arch/$Arch/scripts ]; then
Jesse Keating 7a32965
      cp -a arch/$Arch/scripts $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/arch/%{_arch} || :
Jesse Keating 7a32965
    fi
Jesse Keating 7a32965
    if [ -f arch/$Arch/*lds ]; then
Jesse Keating 7a32965
      cp -a arch/$Arch/*lds $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/arch/%{_arch}/ || :
Jesse Keating 7a32965
    fi
Jesse Keating 7a32965
    rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/scripts/*.o
Jesse Keating 7a32965
    rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/scripts/*/*.o
Jesse Keating 7a32965
%ifarch ppc
Jesse Keating 7a32965
    cp -a --parents arch/powerpc/lib/crtsavres.[So] $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
    if [ -d arch/%{asmarch}/include ]; then
Jesse Keating 7a32965
      cp -a --parents arch/%{asmarch}/include $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
Jesse Keating 7a32965
    fi
Jesse Keating 7a32965
    cp -a include $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
Jesse Keating 7a32965
Jesse Keating 7a32965
    # Make sure the Makefile and version.h have a matching timestamp so that
Jesse Keating 7a32965
    # external modules can be built
Jesse Keating 7a32965
    touch -r $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/Makefile $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include/linux/version.h
Jesse Keating 7a32965
    touch -r $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/.config $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include/linux/autoconf.h
Jesse Keating 7a32965
    # Copy .config to include/config/auto.conf so "make prepare" is unnecessary.
Jesse Keating 7a32965
    cp $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/.config $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include/config/auto.conf
Jesse Keating 7a32965
Roland McGrath 9b36e58
%if %{fancy_debuginfo}
Jesse Keating 7a32965
    if test -s vmlinux.id; then
Jesse Keating 7a32965
      cp vmlinux.id $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/vmlinux.id
Jesse Keating 7a32965
    else
Roland McGrath 9b36e58
      echo >&2 "*** ERROR *** no vmlinux build ID! ***"
Roland McGrath 9b36e58
      exit 1
Jesse Keating 7a32965
    fi
Roland McGrath 9b36e58
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
    #
Jesse Keating 7a32965
    # save the vmlinux file for kernel debugging into the kernel-debuginfo rpm
Jesse Keating 7a32965
    #
Jesse Keating 7a32965
%if %{with_debuginfo}
Jesse Keating 7a32965
    mkdir -p $RPM_BUILD_ROOT%{debuginfodir}/lib/modules/$KernelVer
Jesse Keating 7a32965
    cp vmlinux $RPM_BUILD_ROOT%{debuginfodir}/lib/modules/$KernelVer
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
    find $RPM_BUILD_ROOT/lib/modules/$KernelVer -name "*.ko" -type f >modnames
Jesse Keating 7a32965
Jesse Keating 7a32965
    # mark modules executable so that strip-to-file can strip them
Jesse Keating 7a32965
    xargs --no-run-if-empty chmod u+x < modnames
Jesse Keating 7a32965
Jesse Keating 7a32965
    # Generate a list of modules for block and networking.
Jesse Keating 7a32965
Dave Jones b89c80f
    grep -F /drivers/ modnames | xargs --no-run-if-empty nm -upA |
Jesse Keating 7a32965
    sed -n 's,^.*/\([^/]*\.ko\):  *U \(.*\)$,\1 \2,p' > drivers.undef
Jesse Keating 7a32965
Jesse Keating 7a32965
    collect_modules_list()
Jesse Keating 7a32965
    {
Jesse Keating 7a32965
      sed -r -n -e "s/^([^ ]+) \\.?($2)\$/\\1/p" drivers.undef |
Jesse Keating 7a32965
      LC_ALL=C sort -u > $RPM_BUILD_ROOT/lib/modules/$KernelVer/modules.$1
Jesse Keating 7a32965
    }
Jesse Keating 7a32965
Jesse Keating 7a32965
    collect_modules_list networking \
Jesse Keating 7a32965
    			 'register_netdev|ieee80211_register_hw|usbnet_probe|phy_driver_register'
Jesse Keating 7a32965
    collect_modules_list block \
Jesse Keating 7a32965
    			 'ata_scsi_ioctl|scsi_add_host|scsi_add_host_with_dma|blk_init_queue|register_mtd_blktrans|scsi_esp_register|scsi_register_device_handler'
Jesse Keating 7a32965
    collect_modules_list drm \
Jesse Keating 7a32965
    			 'drm_open|drm_init'
Jesse Keating 7a32965
    collect_modules_list modesetting \
Jesse Keating 7a32965
    			 'drm_crtc_init'
Jesse Keating 7a32965
Jesse Keating 7a32965
    # detect missing or incorrect license tags
Jesse Keating 7a32965
    rm -f modinfo
Jesse Keating 7a32965
    while read i
Jesse Keating 7a32965
    do
Jesse Keating 7a32965
      echo -n "${i#$RPM_BUILD_ROOT/lib/modules/$KernelVer/} " >> modinfo
Jesse Keating 7a32965
      /sbin/modinfo -l $i >> modinfo
Jesse Keating 7a32965
    done < modnames
Jesse Keating 7a32965
Dave Jones b89c80f
    grep -E -v \
Jesse Keating 7a32965
    	  'GPL( v2)?$|Dual BSD/GPL$|Dual MPL/GPL$|GPL and additional rights$' \
Jesse Keating 7a32965
	  modinfo && exit 1
Jesse Keating 7a32965
Jesse Keating 7a32965
    rm -f modinfo modnames
Jesse Keating 7a32965
Jesse Keating 7a32965
    # remove files that will be auto generated by depmod at rpm -i time
Chuck Ebbert 482441b
    for i in alias alias.bin builtin.bin ccwmap dep dep.bin ieee1394map inputmap isapnpmap ofmap pcimap seriomap symbols symbols.bin usbmap
Jesse Keating 7a32965
    do
Jesse Keating 7a32965
      rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/modules.$i
Jesse Keating 7a32965
    done
Jesse Keating 7a32965
Jesse Keating 7a32965
    # Move the devel headers out of the root file system
Kyle McMartin f6c1ae1
    mkdir -p $RPM_BUILD_ROOT/usr/src/kernels
Jesse Keating 7a32965
    mv $RPM_BUILD_ROOT/lib/modules/$KernelVer/build $RPM_BUILD_ROOT/$DevelDir
Jesse Keating 7a32965
    ln -sf ../../..$DevelDir $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
Kyle McMartin 4b3b407
Kyle McMartin 4b3b407
    # prune junk from kernel-devel
Kyle McMartin 4b3b407
    find $RPM_BUILD_ROOT/usr/src/kernels -name ".*.cmd" -exec rm -f {} \;
Jesse Keating 7a32965
}
Jesse Keating 7a32965
Jesse Keating 7a32965
###
Jesse Keating 7a32965
# DO it...
Jesse Keating 7a32965
###
Jesse Keating 7a32965
Jesse Keating 7a32965
# prepare directories
Jesse Keating 7a32965
rm -rf $RPM_BUILD_ROOT
Jesse Keating 7a32965
mkdir -p $RPM_BUILD_ROOT/boot
Jesse Keating 7a32965
mkdir -p $RPM_BUILD_ROOT%{_libexecdir}
Jesse Keating 7a32965
Jesse Keating 7a32965
cd linux-%{kversion}.%{_target_cpu}
Jesse Keating 7a32965
Jesse Keating 7a32965
%if %{with_debug}
Jesse Keating 7a32965
BuildKernel %make_target %kernel_image debug
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
%if %{with_pae_debug}
Jesse Keating 7a32965
BuildKernel %make_target %kernel_image PAEdebug
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
%if %{with_pae}
Jesse Keating 7a32965
BuildKernel %make_target %kernel_image PAE
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
%if %{with_up}
Jesse Keating 7a32965
BuildKernel %make_target %kernel_image
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
%if %{with_smp}
Jesse Keating 7a32965
BuildKernel %make_target %kernel_image smp
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
%global perf_make \
Kyle McMartin 8002c02
  make %{?_smp_mflags} -C tools/perf -s V=1 HAVE_CPLUS_DEMANGLE=1 prefix=%{_prefix}
Jesse Keating 7a32965
%if %{with_perf}
Jesse Keating 7a32965
%{perf_make} all
Jesse Keating 7a32965
%{perf_make} man || %{doc_build_fail}
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
%if %{with_doc}
Jesse Keating 7a32965
# Make the HTML and man pages.
Chuck Ebbert 2247721
make htmldocs mandocs || %{doc_build_fail}
Jesse Keating 7a32965
Jesse Keating 7a32965
# sometimes non-world-readable files sneak into the kernel source tree
Jesse Keating 7a32965
chmod -R a=rX Documentation
Jesse Keating 7a32965
find Documentation -type d | xargs chmod u+w
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
###
Jesse Keating 7a32965
### Special hacks for debuginfo subpackages.
Jesse Keating 7a32965
###
Jesse Keating 7a32965
Jesse Keating 7a32965
# This macro is used by %%install, so we must redefine it before that.
Jesse Keating 7a32965
%define debug_package %{nil}
Jesse Keating 7a32965
Jesse Keating 7a32965
%if %{fancy_debuginfo}
Jesse Keating 7a32965
%define __debug_install_post \
Jesse Keating 7a32965
  /usr/lib/rpm/find-debuginfo.sh %{debuginfo_args} %{_builddir}/%{?buildsubdir}\
Jesse Keating 7a32965
%{nil}
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
%if %{with_debuginfo}
Jesse Keating 7a32965
%ifnarch noarch
Jesse Keating 7a32965
%global __debug_package 1
Jesse Keating 7a32965
%files -f debugfiles.list debuginfo-common-%{_target_cpu}
Jesse Keating 7a32965
%defattr(-,root,root)
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
###
Jesse Keating 7a32965
### install
Jesse Keating 7a32965
###
Jesse Keating 7a32965
Jesse Keating 7a32965
%install
Jesse Keating 7a32965
Jesse Keating 7a32965
cd linux-%{kversion}.%{_target_cpu}
Jesse Keating 7a32965
Jesse Keating 7a32965
%if %{with_doc}
Jesse Keating 7a32965
docdir=$RPM_BUILD_ROOT%{_datadir}/doc/kernel-doc-%{rpmversion}
Jesse Keating 7a32965
man9dir=$RPM_BUILD_ROOT%{_datadir}/man/man9
Jesse Keating 7a32965
Jesse Keating 7a32965
# copy the source over
Jesse Keating 7a32965
mkdir -p $docdir
Jesse Keating 7a32965
tar -f - --exclude=man --exclude='.*' -c Documentation | tar xf - -C $docdir
Jesse Keating 7a32965
Jesse Keating 7a32965
# Install man pages for the kernel API.
Jesse Keating 7a32965
mkdir -p $man9dir
Jesse Keating 7a32965
find Documentation/DocBook/man -name '*.9.gz' -print0 |
Jesse Keating 7a32965
xargs -0 --no-run-if-empty %{__install} -m 444 -t $man9dir $m
Jesse Keating 7a32965
ls $man9dir | grep -q '' || > $man9dir/BROKEN
Jesse Keating 7a32965
%endif # with_doc
Jesse Keating 7a32965
Jesse Keating 7a32965
%if %{with_perf}
Jesse Keating 7a32965
# perf tool binary and supporting scripts/binaries
Jesse Keating 7a32965
%{perf_make} DESTDIR=$RPM_BUILD_ROOT install
Jesse Keating 7a32965
Jesse Keating 7a32965
# perf man pages (note: implicit rpm magic compresses them later)
Jesse Keating 7a32965
%{perf_make} DESTDIR=$RPM_BUILD_ROOT install-man || %{doc_build_fail}
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
%if %{with_headers}
Jesse Keating 7a32965
# Install kernel headers
Jesse Keating 7a32965
make ARCH=%{hdrarch} INSTALL_HDR_PATH=$RPM_BUILD_ROOT/usr headers_install
Jesse Keating 7a32965
Jesse Keating 7a32965
# Do headers_check but don't die if it fails.
Jesse Keating 7a32965
make ARCH=%{hdrarch} INSTALL_HDR_PATH=$RPM_BUILD_ROOT/usr headers_check \
Jesse Keating 7a32965
     > hdrwarnings.txt || :
Jesse Keating 7a32965
if grep -q exist hdrwarnings.txt; then
Jesse Keating 7a32965
   sed s:^$RPM_BUILD_ROOT/usr/include/:: hdrwarnings.txt
Jesse Keating 7a32965
   # Temporarily cause a build failure if header inconsistencies.
Jesse Keating 7a32965
   # exit 1
Jesse Keating 7a32965
fi
Jesse Keating 7a32965
Jesse Keating 7a32965
find $RPM_BUILD_ROOT/usr/include \
Jesse Keating 7a32965
     \( -name .install -o -name .check -o \
Jesse Keating 7a32965
     	-name ..install.cmd -o -name ..check.cmd \) | xargs rm -f
Jesse Keating 7a32965
Jesse Keating 7a32965
# glibc provides scsi headers for itself, for now
Jesse Keating 7a32965
rm -rf $RPM_BUILD_ROOT/usr/include/scsi
Jesse Keating 7a32965
rm -f $RPM_BUILD_ROOT/usr/include/asm*/atomic.h
Jesse Keating 7a32965
rm -f $RPM_BUILD_ROOT/usr/include/asm*/io.h
Jesse Keating 7a32965
rm -f $RPM_BUILD_ROOT/usr/include/asm*/irq.h
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
%if %{with_firmware}
Jesse Keating 7a32965
%{build_firmware}
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
%if %{with_bootwrapper}
Jesse Keating 7a32965
make DESTDIR=$RPM_BUILD_ROOT bootwrapper_install WRAPPER_OBJDIR=%{_libdir}/kernel-wrapper WRAPPER_DTSDIR=%{_libdir}/kernel-wrapper/dts
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
Jesse Keating 7a32965
###
Jesse Keating 7a32965
### clean
Jesse Keating 7a32965
###
Jesse Keating 7a32965
Jesse Keating 7a32965
%clean
Jesse Keating 7a32965
rm -rf $RPM_BUILD_ROOT
Jesse Keating 7a32965
Jesse Keating 7a32965
###
Jesse Keating 7a32965
### scripts
Jesse Keating 7a32965
###
Jesse Keating 7a32965
Jesse Keating 7a32965
#
Jesse Keating 7a32965
# This macro defines a %%post script for a kernel*-devel package.
Jesse Keating 7a32965
#	%%kernel_devel_post [<subpackage>]
Jesse Keating 7a32965
#
Jesse Keating 7a32965
%define kernel_devel_post() \
Jesse Keating 7a32965
%{expand:%%post %{?1:%{1}-}devel}\
Jesse Keating 7a32965
if [ -f /etc/sysconfig/kernel ]\
Jesse Keating 7a32965
then\
Jesse Keating 7a32965
    . /etc/sysconfig/kernel || exit $?\
Jesse Keating 7a32965
fi\
Jesse Keating 7a32965
if [ "$HARDLINK" != "no" -a -x /usr/sbin/hardlink ]\
Jesse Keating 7a32965
then\
Jesse Keating 7a32965
    (cd /usr/src/kernels/%{KVERREL}%{?1:.%{1}} &&\
Jesse Keating 7a32965
     /usr/bin/find . -type f | while read f; do\
Jesse Keating 7a32965
       hardlink -c /usr/src/kernels/*.fc*.*/$f $f\
Jesse Keating 7a32965
     done)\
Jesse Keating 7a32965
fi\
Jesse Keating 7a32965
%{nil}
Jesse Keating 7a32965
Jesse Keating 7a32965
# This macro defines a %%posttrans script for a kernel package.
Jesse Keating 7a32965
#	%%kernel_variant_posttrans [<subpackage>]
Jesse Keating 7a32965
# More text can follow to go at the end of this variant's %%post.
Jesse Keating 7a32965
#
Jesse Keating 7a32965
%define kernel_variant_posttrans() \
Jesse Keating 7a32965
%{expand:%%posttrans %{?1}}\
Jesse Keating 7a32965
/sbin/new-kernel-pkg --package kernel%{?-v:-%{-v*}} --mkinitrd --dracut --depmod --update %{KVERREL}%{?-v:.%{-v*}} || exit $?\
Jesse Keating 7a32965
/sbin/new-kernel-pkg --package kernel%{?1:-%{1}} --rpmposttrans %{KVERREL}%{?1:.%{1}} || exit $?\
Jesse Keating 7a32965
%{nil}
Jesse Keating 7a32965
Jesse Keating 7a32965
#
Jesse Keating 7a32965
# This macro defines a %%post script for a kernel package and its devel package.
Jesse Keating 7a32965
#	%%kernel_variant_post [-v <subpackage>] [-r <replace>]
Jesse Keating 7a32965
# More text can follow to go at the end of this variant's %%post.
Jesse Keating 7a32965
#
Jesse Keating 7a32965
%define kernel_variant_post(v:r:) \
Jesse Keating 7a32965
%{expand:%%kernel_devel_post %{?-v*}}\
Jesse Keating 7a32965
%{expand:%%kernel_variant_posttrans %{?-v*}}\
Jesse Keating 7a32965
%{expand:%%post %{?-v*}}\
Jesse Keating 7a32965
%{-r:\
Jesse Keating 7a32965
if [ `uname -i` == "x86_64" -o `uname -i` == "i386" ] &&\
Jesse Keating 7a32965
   [ -f /etc/sysconfig/kernel ]; then\
Jesse Keating 7a32965
  /bin/sed -r -i -e 's/^DEFAULTKERNEL=%{-r*}$/DEFAULTKERNEL=kernel%{?-v:-%{-v*}}/' /etc/sysconfig/kernel || exit $?\
Jesse Keating 7a32965
fi}\
Jesse Keating 7a32965
%{expand:\
Jesse Keating 7a32965
/sbin/new-kernel-pkg --package kernel%{?-v:-%{-v*}} --install %{KVERREL}%{?-v:.%{-v*}} || exit $?\
Jesse Keating 7a32965
}\
Jesse Keating 7a32965
%{nil}
Jesse Keating 7a32965
Jesse Keating 7a32965
#
Jesse Keating 7a32965
# This macro defines a %%preun script for a kernel package.
Jesse Keating 7a32965
#	%%kernel_variant_preun <subpackage>
Jesse Keating 7a32965
#
Jesse Keating 7a32965
%define kernel_variant_preun() \
Jesse Keating 7a32965
%{expand:%%preun %{?1}}\
Jesse Keating 7a32965
/sbin/new-kernel-pkg --rminitrd --rmmoddep --remove %{KVERREL}%{?1:.%{1}} || exit $?\
Jesse Keating 7a32965
%{nil}
Jesse Keating 7a32965
Jesse Keating 7a32965
%kernel_variant_preun
Jesse Keating 7a32965
%kernel_variant_post -r kernel-smp
Jesse Keating 7a32965
Jesse Keating 7a32965
%kernel_variant_preun smp
Jesse Keating 7a32965
%kernel_variant_post -v smp
Jesse Keating 7a32965
Jesse Keating 7a32965
%kernel_variant_preun PAE
Jesse Keating 7a32965
%kernel_variant_post -v PAE -r (kernel|kernel-smp)
Jesse Keating 7a32965
Jesse Keating 7a32965
%kernel_variant_preun debug
Jesse Keating 7a32965
%kernel_variant_post -v debug
Jesse Keating 7a32965
Jesse Keating 7a32965
%kernel_variant_post -v PAEdebug -r (kernel|kernel-smp)
Jesse Keating 7a32965
%kernel_variant_preun PAEdebug
Jesse Keating 7a32965
Jesse Keating 7a32965
if [ -x /sbin/ldconfig ]
Jesse Keating 7a32965
then
Jesse Keating 7a32965
    /sbin/ldconfig -X || exit $?
Jesse Keating 7a32965
fi
Jesse Keating 7a32965
Jesse Keating 7a32965
###
Jesse Keating 7a32965
### file lists
Jesse Keating 7a32965
###
Jesse Keating 7a32965
Jesse Keating 7a32965
%if %{with_headers}
Jesse Keating 7a32965
%files headers
Jesse Keating 7a32965
%defattr(-,root,root)
Jesse Keating 7a32965
/usr/include/*
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
%if %{with_firmware}
Jesse Keating 7a32965
%files firmware
Jesse Keating 7a32965
%defattr(-,root,root)
Jesse Keating 7a32965
/lib/firmware/*
Jesse Keating 7a32965
%doc linux-%{kversion}.%{_target_cpu}/firmware/WHENCE
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
%if %{with_bootwrapper}
Jesse Keating 7a32965
%files bootwrapper
Jesse Keating 7a32965
%defattr(-,root,root)
Jesse Keating 7a32965
/usr/sbin/*
Jesse Keating 7a32965
%{_libdir}/kernel-wrapper
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
# only some architecture builds need kernel-doc
Jesse Keating 7a32965
%if %{with_doc}
Jesse Keating 7a32965
%files doc
Jesse Keating 7a32965
%defattr(-,root,root)
Jesse Keating 7a32965
%{_datadir}/doc/kernel-doc-%{rpmversion}/Documentation/*
Jesse Keating 7a32965
%dir %{_datadir}/doc/kernel-doc-%{rpmversion}/Documentation
Jesse Keating 7a32965
%dir %{_datadir}/doc/kernel-doc-%{rpmversion}
Jesse Keating 7a32965
%{_datadir}/man/man9/*
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Jesse Keating 7a32965
%if %{with_perf}
Jesse Keating 7a32965
%files -n perf
Jesse Keating 7a32965
%defattr(-,root,root)
Jesse Keating 7a32965
%{_bindir}/perf
Jesse Keating 7a32965
%dir %{_libexecdir}/perf-core
Jesse Keating 7a32965
%{_libexecdir}/perf-core/*
Jesse Keating 7a32965
%{_mandir}/man[1-8]/*
Roland McGrath 3c4ea9a
Roland McGrath 3c4ea9a
%if %{with_debuginfo}
Roland McGrath 3c4ea9a
%files -f perf-debuginfo.list -n perf-debuginfo
Roland McGrath 3c4ea9a
%defattr(-,root,root)
Roland McGrath 3c4ea9a
%endif
Jesse Keating 7a32965
%endif
Jesse Keating 7a32965
Dave Jones 166b79a
# This is %%{image_install_path} on an arch where that includes ELF files,
Jesse Keating 7a32965
# or empty otherwise.
Jesse Keating 7a32965
%define elf_image_install_path %{?kernel_image_elf:%{image_install_path}}
Jesse Keating 7a32965
Jesse Keating 7a32965
#
Jesse Keating 7a32965
# This macro defines the %%files sections for a kernel package
Jesse Keating 7a32965
# and its devel and debuginfo packages.
Jesse Keating 7a32965
#	%%kernel_variant_files [-k vmlinux] <condition> <subpackage>
Jesse Keating 7a32965
#
Jesse Keating 7a32965
%define kernel_variant_files(k:) \
Jesse Keating 7a32965
%if %{1}\
Jesse Keating 7a32965
%{expand:%%files %{?2}}\
Jesse Keating 7a32965
%defattr(-,root,root)\
Kyle McMartin f6dd1f4
/%{image_install_path}/%{?-k:%{-k*}}%{!?-k:vmlinuz}-%{KVERREL}%{?2:.%{2}}\
Kyle McMartin d287769
%attr(600,root,root) /boot/System.map-%{KVERREL}%{?2:.%{2}}\
Jesse Keating 7a32965
/boot/config-%{KVERREL}%{?2:.%{2}}\
Jesse Keating 7a32965
%dir /lib/modules/%{KVERREL}%{?2:.%{2}}\
Jesse Keating 7a32965
/lib/modules/%{KVERREL}%{?2:.%{2}}/kernel\
Jesse Keating 7a32965
/lib/modules/%{KVERREL}%{?2:.%{2}}/build\
Jesse Keating 7a32965
/lib/modules/%{KVERREL}%{?2:.%{2}}/source\
Jesse Keating 7a32965
/lib/modules/%{KVERREL}%{?2:.%{2}}/extra\
Jesse Keating 7a32965
/lib/modules/%{KVERREL}%{?2:.%{2}}/updates\
Jesse Keating 7a32965
%ifarch %{vdso_arches}\
Jesse Keating 7a32965
/lib/modules/%{KVERREL}%{?2:.%{2}}/vdso\
Jesse Keating 7a32965
/etc/ld.so.conf.d/kernel-%{KVERREL}%{?2:.%{2}}.conf\
Jesse Keating 7a32965
%endif\
Jesse Keating 7a32965
/lib/modules/%{KVERREL}%{?2:.%{2}}/modules.*\
Jesse Keating 7a32965
%ghost /boot/initramfs-%{KVERREL}%{?2:.%{2}}.img\
Jesse Keating 7a32965
%{expand:%%files %{?2:%{2}-}devel}\
Jesse Keating 7a32965
%defattr(-,root,root)\
Jesse Keating 7a32965
/usr/src/kernels/%{KVERREL}%{?2:.%{2}}\
Jesse Keating 7a32965
%if %{with_debuginfo}\
Jesse Keating 7a32965
%ifnarch noarch\
Jesse Keating 7a32965
%if %{fancy_debuginfo}\
Jesse Keating 7a32965
%{expand:%%files -f debuginfo%{?2}.list %{?2:%{2}-}debuginfo}\
Jesse Keating 7a32965
%else\
Jesse Keating 7a32965
%{expand:%%files %{?2:%{2}-}debuginfo}\
Jesse Keating 7a32965
%endif\
Jesse Keating 7a32965
%defattr(-,root,root)\
Jesse Keating 7a32965
%if !%{fancy_debuginfo}\
Jesse Keating 7a32965
%if "%{elf_image_install_path}" != ""\
Jesse Keating 7a32965
%{debuginfodir}/%{elf_image_install_path}/*-%{KVERREL}%{?2:.%{2}}.debug\
Jesse Keating 7a32965
%endif\
Jesse Keating 7a32965
%{debuginfodir}/lib/modules/%{KVERREL}%{?2:.%{2}}\
Jesse Keating 7a32965
%{debuginfodir}/usr/src/kernels/%{KVERREL}%{?2:.%{2}}\
Jesse Keating 7a32965
%endif\
Jesse Keating 7a32965
%endif\
Jesse Keating 7a32965
%endif\
Jesse Keating 7a32965
%endif\
Jesse Keating 7a32965
%{nil}
Jesse Keating 7a32965
Jesse Keating 7a32965
Jesse Keating 7a32965
%kernel_variant_files %{with_up}
Jesse Keating 7a32965
%kernel_variant_files %{with_smp} smp
Jesse Keating 7a32965
%kernel_variant_files %{with_debug} debug
Jesse Keating 7a32965
%kernel_variant_files %{with_pae} PAE
Jesse Keating 7a32965
%kernel_variant_files %{with_pae_debug} PAEdebug
Jesse Keating 7a32965
Jesse Keating 7a32965
# plz don't put in a version string unless you're going to tag
Jesse Keating 7a32965
# and build.
Jesse Keating 7a32965
Jesse Keating 7a32965
%changelog
Kyle McMartin 1d83b4a
* Tue May 24 2011 Kyle McMartin <kmcmartin@redhat.com>
Kyle McMartin 1d83b4a
- hid-multitouch: add support for elo touchsystems panels (requested
Kyle McMartin 1d83b4a
  by hadess, backported from hid-next)
Kyle McMartin 1d83b4a
- bluetooth: add support for more ath3k devices (Ditto.)
Kyle McMartin 1d83b4a
Chuck Ebbert ed7f8dd
* Fri May 20 2011 Chuck Ebbert <cebbert@redhat.com>
Chuck Ebbert ed7f8dd
- Drop broken fix for stalls on AMD processors.
Chuck Ebbert ed7f8dd
Dave Jones 22c40c5
* Fri May 20 2011 Dave Jones <davej@redhat.com>
Dave Jones 22c40c5
- Rebuild to fix versioning.
Dave Jones 22c40c5
Dave Jones 6fcff9d
* Thu May 19 2011 Dave Jones <davej@redhat.com>
Dave Jones 6fcff9d
- Update to 2.6.39 final.
Dave Jones 6fcff9d
Kyle McMartin 0983582
* Sat May 14 2011 Kyle McMartin <kmcmartin@redhat.com>
Kyle McMartin 0983582
- Update to v2 of Mel Gorman's SLUB patchset
Kyle McMartin 0983582
Kyle McMartin 9787d24
* Sat May 14 2011 Kyle McMartin <kmcmartin@redhat.com> 2.6.39-0.rc7.git6.1
Kyle McMartin 9787d24
- tmpfs: implement generic xattr support
Kyle McMartin 9787d24
  Merge Eric Paris' patch to add xattr support to tmpfs, so that it can be
Kyle McMartin 9787d24
  used to host mockroots for mass rebuilds.
Kyle McMartin 9787d24
- Drop IMA disabling patch, which is no longer necessary since it's run time
Kyle McMartin 9787d24
  (but unused) cost is now minimized.
Kyle McMartin b86173d
- Switch NF_CONNTRACK to modular, it'll get autoloaded where necessary.
Kyle McMartin 9787d24
Kyle McMartin 480eada
* Sat May 14 2011 Kyle McMartin <kmcmartin@redhat.com> 2.6.39-0.rc7.git6.0
Kyle McMartin 480eada
- Update to 2.6.39-rc7-git6
Kyle McMartin 480eada
Chuck Ebbert 52548dc
* Thu May 12 2011 Chuck Ebbert <cebbert@redhat.com>
Chuck Ebbert 52548dc
- Fix yet another bug in AMD erratum checking (#704059)
Chuck Ebbert 52548dc
Kyle McMartin d8616ba
* Thu May 12 2011 Kyle McMartin <kmcmartin@redhat.com> 2.6.39-0.rc7.git3.0
Kyle McMartin d8616ba
- Switch on release builds until 2.6.39 releases and we branch off 2.6.40-git.
Kyle McMartin d8616ba
Kyle McMartin d8616ba
* Wed May 11 2011 Kyle McMartin <kmcmartin@redhat.com>
Kyle McMartin b365a82
- Linux 2.6.39-rc7-git3
Kyle McMartin a7e4f1c
- Pull in some SLUB fixes from Mel Gorman for testing.
Kyle McMartin a7e4f1c
Kyle McMartin 9b1caea
* Tue May 09 2011 Kyle McMartin <kmcmartin@redhat.com> 2.6.39-0.rc7.git0.0
Kyle McMartin 9b1caea
- Linux 2.6.39-rc7
Kyle McMartin 9b1caea
Dave Jones 57671e4
* Mon May 09 2011 Dave Jones <davej@redhat.com>
Dave Jones 57671e4
- Remove remnants of non-upstreamed utrace bits.
Dave Jones 57671e4
Kyle McMartin 9de6527
* Mon May 08 2011 Chuck Ebbert <cebbert@redhat.com> 2.6.39-0.rc6.git6.0
Chuck Ebbert 29e8da6
- Enable CONFIG_FB_UDL (#634636)
Chuck Ebbert 29e8da6
Kyle McMartin 6d61c1b
* Sat May 07 2011 Kyle McMartin <kmcmartin@redhat.com>
Kyle McMartin 6d61c1b
- Update to snapshot 2.6.39-rc6-git5
Kyle McMartin 6d61c1b
Kyle McMartin ba4b07a
* Wed May 04 2011 Kyle McMartin <kmcmartin@redhat.com>
Kyle McMartin ba4b07a
- Update to snapshot 2.6.39-rc6-git2
Kyle McMartin ba4b07a
Kyle McMartin 33e7113
* Tue May 03 2011 Kyle McMartin <kmcmartin@redhat.com>
Kyle McMartin 33e7113
- Linux 2.6.39-rc6
Kyle McMartin 33e7113
Kyle McMartin 8e5f42d
* Sun May 01 2011 Kyle McMartin <kmcmartin@redhat.com>
Kyle McMartin 8e5f42d
- Update to snapshot 2.6.39-rc5-git5
Kyle McMartin 8e5f42d
Kyle McMartin 0ca2d8f
* Thu Apr 28 2011 Kyle McMartin <kmcmartin@redhat.com> 2.6.39-0.rc5.git1.0
Kyle McMartin 0ca2d8f
- Update to snapshot 2.6.39-rc5-git1
Kyle McMartin 0ca2d8f
- Edit scripts/rebase.sh to not keep appending to .gitignore when the new
Kyle McMartin 0ca2d8f
  .bz2 files are covered by wildcards.
Kyle McMartin 0ca2d8f
Kyle McMartin 9541e8e
* Wed Apr 27 2011 Kyle McMartin <kmcmartin@redhat.com>
Kyle McMartin 9541e8e
- Linux 2.6.39-rc5
Kyle McMartin 9541e8e
Kyle McMartin 26d27c5
* Tue Apr 26 2011 Kyle McMartin <kmcmartin@redhat.com>
Kyle McMartin 26d27c5
- Update to 2.6.39-rc4-git8
Kyle McMartin 26d27c5
Kyle McMartin 1060ecc
* Sun Apr 24 2011 Kyle McMartin <kmcmartin@redhat.com>
Kyle McMartin 1060ecc
- ppc64: disable TUNE_CELL, which causes problems with illegal instuctions
Kyle McMartin 1060ecc
  being generated on non-Cell PPC machines. (#698256)
Kyle McMartin 1060ecc
Dave Jones 123939a
* Wed Apr 20 2011 Dave Jones <davej@redhat.com> 2.6.39-0.rc4.git2.0
Dave Jones 123939a
- Update to 2.6.39-rc4-git2
Dave Jones 123939a
Dave Jones 0e465b7
* Tue Apr 19 2011 Dave Jones <davej@redhat.com>
Dave Jones 0e465b7
- Build USB_SERIAL in instead of modular.
Dave Jones 0e465b7
  Enable USB_SERIAL_CONSOLE.
Dave Jones 0e465b7
Kyle McMartin aac9f66
* Wed Apr 13 2011 Kyle McMartin <kmcmartin@redhat.com> 2.6.39-0.rc3.git2.0
Kyle McMartin aac9f66
- Update to snapshot 2.6.39-rc3-git2
Kyle McMartin aac9f66
Kyle McMartin 4e0e69a
* Mon Apr 11 2011 Kyle McMartin <kmcmartin@redhat.com> 2.6.39-0.rc2.git3.0
Kyle McMartin 4e0e69a
- Update to git snapshot 2.6.39-rc2-git3
Kyle McMartin 4e0e69a
- efifb_update.patch: drop, upstream.
Kyle McMartin 4e0e69a
042ba03
* Thu Apr 07 2011 Hans de Goede <hdegoede@redhat.com>
042ba03
- Add a no lvds quirk for the Asus EB1007 to the i915 drm driver,
042ba03
  this fixes gnome-shell not working on it
042ba03
Kyle McMartin 289e9e9
* Wed Apr 06 2011 Kyle McMartin <kmcmartin@redhat.com> 2.6.39-0.rc2.git0.0
Kyle McMartin 289e9e9
- Update to 2.6.39-rc2
Kyle McMartin 289e9e9
Kyle McMartin db2e653
* Tue Apr 05 2011 Kyle McMartin <kmcmartin@redhat.com> 2.6.39-0.rc1.git5.0
Kyle McMartin db2e653
- Update to git snapshot 2.6.39-rc1-git5
Kyle McMartin db2e653
- (Not test-built before commit since my rawr box is down atm.)
Kyle McMartin db2e653
Kyle McMartin dba63f5
* Sat Apr 02 2011 Kyle McMartin <kmcmartin@redhat.com> 2.6.39-0.rc1.git3.0
Kyle McMartin dba63f5
- Update to snapshot 2.6.39-rc1-git3
Kyle McMartin dba63f5
- generic: CONFIG_USB_VL600=m
Kyle McMartin dba63f5
Kyle McMartin ae1de15
* Thu Mar 31 2011 Kyle McMartin <kmcmartin@redhat.com> 2.6.39-0.rc1.git1.0
Kyle McMartin ae1de15
- Update to snapshot 2.6.39-rc1-git1
Kyle McMartin ae1de15
Kyle McMartin f80257e
* Tue Mar 29 2011 Kyle McMartin <kmcmartin@redhat.com>
Kyle McMartin 5db0b2d
- Disable CONFIG_IMA, CONFIG_TCG_TPM on powerpc (#689468)
Kyle McMartin 5db0b2d
Kyle McMartin 5db0b2d
* Tue Mar 29 2011 Kyle McMartin <kmcmartin@redhat.com>
Kyle McMartin f80257e
- Disable qla4xxx (CONFIG_SCSI_QLA_ISCSI) driver on powerpc32 (#686199)
Kyle McMartin f80257e
Kyle McMartin 46be4d7
* Tue Mar 29 2011 Kyle McMartin <kmcmartin@redhat.com> 2.6.39-0.rc1.git0.0
Kyle McMartin 46be4d7
- ... and then 2.6.39-rc1
Kyle McMartin 46be4d7
Kyle McMartin 78563ab
* Tue Mar 29 2011 Kyle McMartin <kmcmartin@redhat.com> 2.6.39-0.rc0.git21.0
Kyle McMartin 78563ab
- Update to snapshot 2.6.38-git21
Kyle McMartin 78563ab
- Enable some new x86{_64} platform drivers.
Kyle McMartin 78563ab
Kyle McMartin db49e9e
* Mon Mar 28 2011 Kyle McMartin <kmcmartin@redhat.com> 2.6.39-0.rc0.git19.0
Kyle McMartin db49e9e
- Update to snapshot 2.6.38-git19
Kyle McMartin db49e9e
- Drop upstream patches:
Kyle McMartin db49e9e
  - acpi_battery-fribble-sysfs-files-from-a-resume-notifier.patch
Kyle McMartin db49e9e
  - apple_backlight.patch
Kyle McMartin db49e9e
- Rebased:
Kyle McMartin db49e9e
  - acpi_reboot.patch
Kyle McMartin db49e9e
  - linux-2.6-acpi-debug-infinite-loop.patch
Kyle McMartin db49e9e
  - linux-2.6-debug-sizeof-structs.patch
Kyle McMartin db49e9e
  - linux-2.6-i386-nx-emulation.patch
Kyle McMartin db49e9e
- Disabled:
Kyle McMartin db49e9e
  - utrace.
Kyle McMartin db49e9e
Chuck Ebbert cf8d6fc
* Fri Mar 25 2011 Chuck Ebbert <cebbert@redhat.com>
Chuck Ebbert cf8d6fc
- Drop unused patches already applied upstream:
Chuck Ebbert cf8d6fc
  hdpvr-ir-enable.patch
Chuck Ebbert cf8d6fc
  thinkpad-acpi-fix-backlight.patch
Chuck Ebbert cf8d6fc
Kyle McMartin e8c0dae
* Wed Mar 23 2011 Kyle McMartin <kmcmartin@redhat.com>
Kyle McMartin 1121f6d
- Re-create ACPI battery sysfs files on resume from suspend, fixes the
Kyle McMartin 1121f6d
  upstream changes to the dropped
Kyle McMartin 1121f6d
  acpi-update-battery-information-on-notification-0x81.patch.
Kyle McMartin 1121f6d
Kyle McMartin 1121f6d
* Wed Mar 23 2011 Kyle McMartin <kmcmartin@redhat.com>
Kyle McMartin e8c0dae
- Update to 2.6.38-git12
Kyle McMartin e8c0dae
- Enable I2C_DIOLAN_U2C USB i2c adapter [all], I2C_PXA [i686].
Kyle McMartin e8c0dae
Kyle McMartin 31c46e0
* Tue Mar 22 2011 Kyle McMartin <kmcmartin@redhat.com> 2.6.39-0.rc0.git11.0
Kyle McMartin 31c46e0
- Update to 2.6.38-git11
Kyle McMartin 31c46e0
- Drop merged fs-call-security_d_instantiate-in-d_obtain_alias.patch
Kyle McMartin 31c46e0
- Fix context in add-appleir-usb-driver.patch
Kyle McMartin 31c46e0
- Enable firewire ALSA modules, HP accelerometer driver.
Kyle McMartin 31c46e0
- Re-enable PSTORE, seems to be fixed.
Kyle McMartin a135357
- Fix utrace-ptrace for upstream smp_lock removal.
Kyle McMartin 31c46e0
Kyle McMartin 3f74cb6
* Fri Mar 18 2011 Kyle McMartin <kmcmartin@redhat.com> 2.6.39-0.rc0.git6.0
Kyle McMartin 3f74cb6
- Update to 2.6.38-git6
Kyle McMartin 3f74cb6
- CONFIG_IP_SET modules and associated netfilter goo.
Kyle McMartin 3f74cb6
- New network packet scheduler modules (sch, choke, mqprio.)
Kyle McMartin 3f74cb6
- Enable DMI sysfs interface (built-in) on ia64, x86_64, i386.
Kyle McMartin 3f74cb6
- Explicitly set USB storage goo as modular.
Kyle McMartin 3f74cb6
- Drop merged patches, nil-ify drm-nouveau-updates, fix context in crash.ko
Kyle McMartin 3f74cb6
  Kconfig diff.
Kyle McMartin 3f74cb6
Matthew Garrett a725c00
* Thu Mar 17 2011 Matthew Garrett <mjg@redhat.com>
Matthew Garrett a725c00
- drop efi_default_physical.patch - it's actually setting up something that's
Matthew Garrett a725c00
  neither physical nor virtual, and it's probably breaking EFI boots
Matthew Garrett a725c00
Kyle McMartin 3ddbdca
* Wed Mar 16 2011 Kyle McMartin <kmcmartin@redhat.com> 2.6.39-0.rc0.git1.1
Kyle McMartin 3ddbdca
- Test out scripts/rebase.sh on 2.6.38-git1.
Kyle McMartin 3ddbdca
- Enable fhandle syscalls (ugh. conditional syscalls... update
Kyle McMartin 3ddbdca
  CONFIG_EXPORTFS to =y, since it's now a bool.)
Kyle McMartin 3ddbdca
- CONFIG_XEN_DEBUG [i386,x86_64] =n, but possibly should be -debug
Kyle McMartin 3ddbdca
  conditional. Needs a xen user to benchmark and see how bad the overhead
Kyle McMartin 3ddbdca
  is.
Kyle McMartin 3ddbdca
09c361f
* Tue Mar 15 2011 Adam Jackson <ajax@redhat.com>
09c361f
- drm-intel-big-hammer.patch: Drop.
09c361f
Chuck Ebbert 6754d62
* Tue Mar 15 2011 Chuck Ebbert <cebbert@redhat.com> 2.6.38-1
Chuck Ebbert 6754d62
- Linux 2.6.38
Chuck Ebbert 6754d62
Kyle McMartin 385fc37
* Tue Mar 15 2011 Kyle McMartin <kyle@redhat.com>
Kyle McMartin db49e9e
- Trimmed changelog, see fedpkg git for earlier history.
Jesse Keating 7a32965
Jesse Keating 7a32965
###
Jesse Keating 7a32965
# The following Emacs magic makes C-c C-e use UTC dates.
Jesse Keating 7a32965
# Local Variables:
Jesse Keating 7a32965
# rpm-change-log-uses-utc: t
Jesse Keating 7a32965
# End:
Jesse Keating 7a32965
###