Split into two specs: xenlinux and domU
This commit is contained in:
parent
76f416f318
commit
aa747c3d70
106
Makefile
106
Makefile
@ -3,109 +3,7 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
NAME := kernel
|
NAME := kernel
|
||||||
SPECFILE := kernel.spec
|
SPECFILE := kernel-xenlinux.spec
|
||||||
|
|
||||||
WORKDIR := $(shell pwd)
|
|
||||||
SPECDIR ?= $(WORKDIR)
|
|
||||||
SRCRPMDIR ?= $(WORKDIR)/srpm
|
|
||||||
BUILDDIR ?= $(WORKDIR)
|
|
||||||
RPMDIR ?= $(WORKDIR)/rpm
|
|
||||||
SOURCEDIR := $(WORKDIR)
|
|
||||||
VERSION := $(shell cat version)
|
|
||||||
|
|
||||||
NO_OF_CPUS := $(shell grep -c ^processor /proc/cpuinfo)
|
|
||||||
|
|
||||||
RPM_DEFINES := --define "_sourcedir $(SOURCEDIR)" \
|
|
||||||
--define "_specdir $(SPECDIR)" \
|
|
||||||
--define "_builddir $(BUILDDIR)" \
|
|
||||||
--define "_srcrpmdir $(SRCRPMDIR)" \
|
|
||||||
--define "_rpmdir $(RPMDIR)" \
|
|
||||||
--define "version $(VERSION)" \
|
|
||||||
--define "jobs $(NO_OF_CPUS)"
|
|
||||||
|
|
||||||
VER_REL := $(shell rpm $(RPM_DEFINES) -q --qf "%{VERSION} %{RELEASE}\n" --specfile $(SPECFILE)| head -1)
|
|
||||||
|
|
||||||
ifndef NAME
|
|
||||||
$(error "You can not run this Makefile without having NAME defined")
|
|
||||||
endif
|
|
||||||
ifndef VERSION
|
|
||||||
$(error "You can not run this Makefile without having VERSION defined")
|
|
||||||
endif
|
|
||||||
ifndef RELEASE
|
|
||||||
RELEASE := $(word 2, $(VER_REL))
|
|
||||||
endif
|
|
||||||
|
|
||||||
all: help
|
|
||||||
|
|
||||||
SRC_BASEURL := http://www.kernel.org/pub/linux/kernel/v2.6/
|
|
||||||
SRC_FILE := linux-${VERSION}.tar.bz2
|
|
||||||
SIGN_FILE := linux-${VERSION}.tar.bz2.sign
|
|
||||||
|
|
||||||
URL := $(SRC_BASEURL)/$(SRC_FILE)
|
|
||||||
URL_SIGN := $(SRC_BASEURL)/$(SIGN_FILE)
|
|
||||||
|
|
||||||
get-sources: $(SRC_FILE)
|
|
||||||
|
|
||||||
$(SRC_FILE):
|
|
||||||
@echo -n "Downloading $(URL)... "
|
|
||||||
@wget -q $(URL)
|
|
||||||
@wget -q $(URL_SIGN)
|
|
||||||
@echo "OK."
|
|
||||||
|
|
||||||
verify-sources:
|
|
||||||
@gpg --verify $(SIGN_FILE) $(SRC_FILE)
|
|
||||||
|
|
||||||
.PHONY: clean-sources
|
|
||||||
clean-sources:
|
|
||||||
ifneq ($(SRC_FILE), None)
|
|
||||||
-rm $(SRC_FILE)
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
#RPM := rpmbuild --buildroot=/dev/shm/buildroot/
|
include Makefile.common
|
||||||
RPM := rpmbuild
|
|
||||||
|
|
||||||
RPM_WITH_DIRS = $(RPM) $(RPM_DEFINES)
|
|
||||||
|
|
||||||
rpms: get-sources $(SPECFILE)
|
|
||||||
$(RPM_WITH_DIRS) -bb $(SPECFILE)
|
|
||||||
rpm --addsign $(RPMDIR)/x86_64/*.rpm
|
|
||||||
|
|
||||||
rpms-nobuild:
|
|
||||||
$(RPM_WITH_DIRS) --nobuild -bb $(SPECFILE)
|
|
||||||
|
|
||||||
rpms-just-build:
|
|
||||||
$(RPM_WITH_DIRS) --short-circuit -bc $(SPECFILE)
|
|
||||||
|
|
||||||
rpms-install:
|
|
||||||
$(RPM_WITH_DIRS) -bi $(SPECFILE)
|
|
||||||
|
|
||||||
prep: get-sources $(SPECFILE)
|
|
||||||
$(RPM_WITH_DIRS) -bp $(SPECFILE)
|
|
||||||
|
|
||||||
srpm: get-sources $(SPECFILE)
|
|
||||||
$(RPM_WITH_DIRS) -bs $(SPECFILE)
|
|
||||||
|
|
||||||
verrel:
|
|
||||||
@echo $(NAME)-$(VERSION)-$(RELEASE)
|
|
||||||
|
|
||||||
# mop up, printing out exactly what was mopped.
|
|
||||||
|
|
||||||
.PHONY : clean
|
|
||||||
clean ::
|
|
||||||
@echo "Running the %clean script of the rpmbuild..."
|
|
||||||
$(RPM_WITH_DIRS) --clean --nodeps $(SPECFILE)
|
|
||||||
|
|
||||||
help:
|
|
||||||
@echo "Usage: make <target>"
|
|
||||||
@echo
|
|
||||||
@echo "get-sources Download kernel sources from kernel.org"
|
|
||||||
@echo "verify-sources"
|
|
||||||
@echo
|
|
||||||
@echo "prep Just do the prep"
|
|
||||||
@echo "rpms Build rpms"
|
|
||||||
@echo "rpms-nobuild Skip the build stage (for testing)"
|
|
||||||
@echo "rpms-just-build Skip packaging (just test compilation)"
|
|
||||||
@echo "srpm Create an srpm"
|
|
||||||
@echo
|
|
||||||
|
|
||||||
|
108
Makefile.common
Normal file
108
Makefile.common
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
#
|
||||||
|
# Common Makefile for building RPMs
|
||||||
|
#
|
||||||
|
|
||||||
|
WORKDIR := $(shell pwd)
|
||||||
|
SPECDIR ?= $(WORKDIR)
|
||||||
|
SRCRPMDIR ?= $(WORKDIR)/srpm
|
||||||
|
BUILDDIR ?= $(WORKDIR)
|
||||||
|
RPMDIR ?= $(WORKDIR)/rpm
|
||||||
|
SOURCEDIR := $(WORKDIR)
|
||||||
|
VERSION := $(shell cat version)
|
||||||
|
|
||||||
|
NO_OF_CPUS := $(shell grep -c ^processor /proc/cpuinfo)
|
||||||
|
|
||||||
|
RPM_DEFINES := --define "_sourcedir $(SOURCEDIR)" \
|
||||||
|
--define "_specdir $(SPECDIR)" \
|
||||||
|
--define "_builddir $(BUILDDIR)" \
|
||||||
|
--define "_srcrpmdir $(SRCRPMDIR)" \
|
||||||
|
--define "_rpmdir $(RPMDIR)" \
|
||||||
|
--define "version $(VERSION)" \
|
||||||
|
--define "jobs $(NO_OF_CPUS)"
|
||||||
|
|
||||||
|
VER_REL := $(shell rpm $(RPM_DEFINES) -q --qf "%{VERSION} %{RELEASE}\n" --specfile $(SPECFILE)| head -1)
|
||||||
|
|
||||||
|
ifndef NAME
|
||||||
|
$(error "You can not run this Makefile without having NAME defined")
|
||||||
|
endif
|
||||||
|
ifndef VERSION
|
||||||
|
$(error "You can not run this Makefile without having VERSION defined")
|
||||||
|
endif
|
||||||
|
ifndef RELEASE
|
||||||
|
RELEASE := $(word 2, $(VER_REL))
|
||||||
|
endif
|
||||||
|
|
||||||
|
all: help
|
||||||
|
|
||||||
|
SRC_BASEURL := http://www.kernel.org/pub/linux/kernel/v2.6/
|
||||||
|
SRC_FILE := linux-${VERSION}.tar.bz2
|
||||||
|
SIGN_FILE := linux-${VERSION}.tar.bz2.sign
|
||||||
|
|
||||||
|
URL := $(SRC_BASEURL)/$(SRC_FILE)
|
||||||
|
URL_SIGN := $(SRC_BASEURL)/$(SIGN_FILE)
|
||||||
|
|
||||||
|
get-sources: $(SRC_FILE)
|
||||||
|
|
||||||
|
$(SRC_FILE):
|
||||||
|
@echo -n "Downloading $(URL)... "
|
||||||
|
@wget -q $(URL)
|
||||||
|
@wget -q $(URL_SIGN)
|
||||||
|
@echo "OK."
|
||||||
|
|
||||||
|
verify-sources:
|
||||||
|
@gpg --verify $(SIGN_FILE) $(SRC_FILE)
|
||||||
|
|
||||||
|
.PHONY: clean-sources
|
||||||
|
clean-sources:
|
||||||
|
ifneq ($(SRC_FILE), None)
|
||||||
|
-rm $(SRC_FILE)
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
#RPM := rpmbuild --buildroot=/dev/shm/buildroot/
|
||||||
|
RPM := rpmbuild
|
||||||
|
|
||||||
|
RPM_WITH_DIRS = $(RPM) $(RPM_DEFINES)
|
||||||
|
|
||||||
|
rpms: get-sources $(SPECFILE)
|
||||||
|
$(RPM_WITH_DIRS) -bb $(SPECFILE)
|
||||||
|
rpm --addsign $(RPMDIR)/x86_64/*.rpm
|
||||||
|
|
||||||
|
rpms-nobuild:
|
||||||
|
$(RPM_WITH_DIRS) --nobuild -bb $(SPECFILE)
|
||||||
|
|
||||||
|
rpms-just-build:
|
||||||
|
$(RPM_WITH_DIRS) --short-circuit -bc $(SPECFILE)
|
||||||
|
|
||||||
|
rpms-install:
|
||||||
|
$(RPM_WITH_DIRS) -bi $(SPECFILE)
|
||||||
|
|
||||||
|
prep: get-sources $(SPECFILE)
|
||||||
|
$(RPM_WITH_DIRS) -bp $(SPECFILE)
|
||||||
|
|
||||||
|
srpm: get-sources $(SPECFILE)
|
||||||
|
$(RPM_WITH_DIRS) -bs $(SPECFILE)
|
||||||
|
|
||||||
|
verrel:
|
||||||
|
@echo $(NAME)-$(VERSION)-$(RELEASE)
|
||||||
|
|
||||||
|
# mop up, printing out exactly what was mopped.
|
||||||
|
|
||||||
|
.PHONY : clean
|
||||||
|
clean ::
|
||||||
|
@echo "Running the %clean script of the rpmbuild..."
|
||||||
|
$(RPM_WITH_DIRS) --clean --nodeps $(SPECFILE)
|
||||||
|
|
||||||
|
help:
|
||||||
|
@echo "Usage: make <target>"
|
||||||
|
@echo
|
||||||
|
@echo "get-sources Download kernel sources from kernel.org"
|
||||||
|
@echo "verify-sources"
|
||||||
|
@echo
|
||||||
|
@echo "prep Just do the prep"
|
||||||
|
@echo "rpms Build rpms"
|
||||||
|
@echo "rpms-nobuild Skip the build stage (for testing)"
|
||||||
|
@echo "rpms-just-build Skip packaging (just test compilation)"
|
||||||
|
@echo "srpm Create an srpm"
|
||||||
|
@echo
|
||||||
|
|
9
Makefile.domU
Normal file
9
Makefile.domU
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
#
|
||||||
|
# Common Makefile for building RPMs
|
||||||
|
#
|
||||||
|
|
||||||
|
NAME := kernel
|
||||||
|
SPECFILE := kernel-domU.spec
|
||||||
|
|
||||||
|
|
||||||
|
include Makefile.common
|
4607
config-domU
Normal file
4607
config-domU
Normal file
File diff suppressed because it is too large
Load Diff
278
kernel-domU.spec
Normal file
278
kernel-domU.spec
Normal file
@ -0,0 +1,278 @@
|
|||||||
|
# A spec file for building xenlinux Dom0 kernel for Qubes
|
||||||
|
# Based on the Open SUSE kernel-spec & Fedora kernel-spec.
|
||||||
|
#
|
||||||
|
|
||||||
|
#%define _unpackaged_files_terminate_build 0
|
||||||
|
%define variant domU.qubes
|
||||||
|
%define rel %(cat rel).%{variant}
|
||||||
|
|
||||||
|
%define _buildshell /bin/bash
|
||||||
|
%define build_flavor domU
|
||||||
|
%define build_xen 1
|
||||||
|
|
||||||
|
%global cpu_arch x86_64
|
||||||
|
%define cpu_arch_flavor %cpu_arch/%build_flavor
|
||||||
|
|
||||||
|
%define kernelrelease %version-%rel.%cpu_arch
|
||||||
|
%define my_builddir %_builddir/%{name}-%{version}
|
||||||
|
|
||||||
|
%define build_src_dir %my_builddir/linux-%version
|
||||||
|
%define src_install_dir /usr/src/kernels/%kernelrelease
|
||||||
|
%define kernel_build_dir %my_builddir/linux-obj
|
||||||
|
|
||||||
|
%(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes})
|
||||||
|
|
||||||
|
%define install_vdso 1
|
||||||
|
|
||||||
|
Name: kernel
|
||||||
|
Summary: The Xen Kernel
|
||||||
|
Version: %{version}
|
||||||
|
Release: %{rel}
|
||||||
|
License: GPL v2 only
|
||||||
|
Group: System/Kernel
|
||||||
|
Url: http://www.kernel.org/
|
||||||
|
AutoReqProv: on
|
||||||
|
BuildRequires: coreutils module-init-tools sparse
|
||||||
|
Provides: multiversion(kernel)
|
||||||
|
Provides: %name = %version-%kernelrelease
|
||||||
|
|
||||||
|
Requires: xen >= 3.4.3
|
||||||
|
|
||||||
|
Requires(pre): coreutils gawk
|
||||||
|
Requires(post): dracut
|
||||||
|
|
||||||
|
Conflicts: sysfsutils < 2.0
|
||||||
|
# root-lvm only works with newer udevs
|
||||||
|
Conflicts: udev < 118
|
||||||
|
Conflicts: lvm2 < 2.02.33
|
||||||
|
Provides: kernel = %version-%kernelrelease
|
||||||
|
|
||||||
|
Source0: linux-%version.tar.bz2
|
||||||
|
Source14: series.conf
|
||||||
|
Source16: guards
|
||||||
|
Source17: apply-patches
|
||||||
|
Source33: check-for-config-changes
|
||||||
|
Source60: config.sh
|
||||||
|
Source100: config-%{build_flavor}
|
||||||
|
Source102: patches.arch.tar.bz2
|
||||||
|
Source103: patches.drivers.tar.bz2
|
||||||
|
Source104: patches.fixes.tar.bz2
|
||||||
|
Source105: patches.rpmify.tar.bz2
|
||||||
|
Source106: patches.suse.tar.bz2
|
||||||
|
Source107: patches.xen.tar.bz2
|
||||||
|
Source108: patches.addon.tar.bz2
|
||||||
|
Source109: patches.kernel.org.tar.bz2
|
||||||
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
|
ExclusiveArch: x86_64
|
||||||
|
|
||||||
|
%description
|
||||||
|
Qubes Dom0 kernel.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
if ! [ -e %_sourcedir/linux-%version.tar.bz2 ]; then
|
||||||
|
echo "The %name-%version.nosrc.rpm package does not contain the" \
|
||||||
|
"complete sources. Please install kernel-source-%version.src.rpm."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
SYMBOLS=domU
|
||||||
|
|
||||||
|
# Unpack all sources and patches
|
||||||
|
%setup -q -c -T -a 0 -a 102 -a 103 -a 104 -a 105 -a 106 -a 107 -a 108 -a 109
|
||||||
|
|
||||||
|
mkdir -p %kernel_build_dir
|
||||||
|
|
||||||
|
cd linux-%version
|
||||||
|
|
||||||
|
%_sourcedir/apply-patches %_sourcedir/series.conf .. $SYMBOLS
|
||||||
|
|
||||||
|
cd %kernel_build_dir
|
||||||
|
|
||||||
|
cp %_sourcedir/config-%{build_flavor} .config
|
||||||
|
|
||||||
|
%build_src_dir/scripts/config \
|
||||||
|
--set-str CONFIG_LOCALVERSION -%release.%cpu_arch \
|
||||||
|
--disable CONFIG_DEBUG_INFO
|
||||||
|
# --enable CONFIG_DEBUG_INFO
|
||||||
|
# Enabling CONFIG_DEBUG_INFO produces *huge* packages!
|
||||||
|
|
||||||
|
MAKE_ARGS="$MAKE_ARGS -C %build_src_dir O=$PWD"
|
||||||
|
if test -e %_sourcedir/TOLERATE-UNKNOWN-NEW-CONFIG-OPTIONS; then
|
||||||
|
yes '' | make oldconfig $MAKE_ARGS
|
||||||
|
else
|
||||||
|
cp .config .config.orig
|
||||||
|
make silentoldconfig $MAKE_ARGS < /dev/null
|
||||||
|
%_sourcedir/check-for-config-changes .config.orig .config
|
||||||
|
rm .config.orig
|
||||||
|
fi
|
||||||
|
|
||||||
|
make prepare $MAKE_ARGS
|
||||||
|
make scripts $MAKE_ARGS
|
||||||
|
krel=$(make -s kernelrelease $MAKE_ARGS)
|
||||||
|
|
||||||
|
if [ "$krel" != "%kernelrelease" ]; then
|
||||||
|
echo "Kernel release mismatch: $krel != %kernelrelease" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
make clean $MAKE_ARGS
|
||||||
|
|
||||||
|
rm -f source
|
||||||
|
find . ! -type d -printf '%%P\n' > %my_builddir/obj-files
|
||||||
|
|
||||||
|
%build
|
||||||
|
cd %kernel_build_dir
|
||||||
|
|
||||||
|
# If the %jobs macro is defined to a number, make will spawn that many jobs.
|
||||||
|
# There are several ways how to define it:
|
||||||
|
# With plain rpmbuild:
|
||||||
|
# rpmbuild -ba --define 'jobs N' kernel-$flavor.spec
|
||||||
|
# To spawn as many jobs as there are cpu cores:
|
||||||
|
# rpmbuild -ba --define "jobs 0$(grep -c ^processor /proc/cpuinfo)" \
|
||||||
|
# kernel-$flavor.spec
|
||||||
|
make %{?jobs:-j%jobs} all $MAKE_ARGS CONFIG_DEBUG_SECTION_MISMATCH=y
|
||||||
|
|
||||||
|
|
||||||
|
%install
|
||||||
|
|
||||||
|
# get rid of /usr/lib/rpm/brp-strip-debug
|
||||||
|
# strip removes too much from the vmlinux ELF binary
|
||||||
|
export NO_BRP_STRIP_DEBUG=true
|
||||||
|
export STRIP_KEEP_SYMTAB='*/vmlinux-*'
|
||||||
|
|
||||||
|
cd %kernel_build_dir
|
||||||
|
|
||||||
|
mkdir -p %buildroot/boot
|
||||||
|
cp -p System.map %buildroot/boot/System.map-%kernelrelease
|
||||||
|
cp -p arch/x86/boot/bzImage %buildroot/boot/vmlinuz-%kernelrelease
|
||||||
|
cp .config %buildroot/boot/config-%kernelrelease
|
||||||
|
|
||||||
|
%if %install_vdso
|
||||||
|
# Install the unstripped vdso's that are linked in the kernel image
|
||||||
|
make vdso_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# Create a dummy initramfs with roughly the size the real one will have.
|
||||||
|
# That way, rpm will know that this package requires some additional
|
||||||
|
# space in /boot.
|
||||||
|
dd if=/dev/zero of=%buildroot/boot/initramfs-%kernelrelease.img \
|
||||||
|
bs=1M count=20
|
||||||
|
|
||||||
|
gzip -c9 < Module.symvers > %buildroot/boot/symvers-%kernelrelease.gz
|
||||||
|
|
||||||
|
make modules_install $MAKE_ARGS INSTALL_MOD_PATH=%buildroot
|
||||||
|
|
||||||
|
mkdir -p %buildroot/%src_install_dir
|
||||||
|
|
||||||
|
rm -f %buildroot/lib/modules/%kernelrelease/build
|
||||||
|
rm -f %buildroot/lib/modules/%kernelrelease/source
|
||||||
|
mkdir -p %buildroot/lib/modules/%kernelrelease/build
|
||||||
|
(cd %buildroot/lib/modules/%kernelrelease ; ln -s build source)
|
||||||
|
# dirs for additional modules per module-init-tools, kbuild/modules.txt
|
||||||
|
mkdir -p %buildroot/lib/modules/%kernelrelease/extra
|
||||||
|
mkdir -p %buildroot/lib/modules/%kernelrelease/updates
|
||||||
|
mkdir -p %buildroot/lib/modules/%kernelrelease/weak-updates
|
||||||
|
|
||||||
|
pushd %build_src_dir
|
||||||
|
cp --parents `find -type f -name "Makefile*" -o -name "Kconfig*"` %buildroot/lib/modules/%kernelrelease/build
|
||||||
|
cp -a scripts %buildroot/lib/modules/%kernelrelease/build
|
||||||
|
cp -a --parents arch/x86/include/asm %buildroot/lib/modules/%kernelrelease/build/
|
||||||
|
cp -a include %buildroot/lib/modules/%kernelrelease/build/include
|
||||||
|
popd
|
||||||
|
|
||||||
|
cp Module.symvers %buildroot/lib/modules/%kernelrelease/build
|
||||||
|
cp System.map %buildroot/lib/modules/%kernelrelease/build
|
||||||
|
if [ -s Module.markers ]; then
|
||||||
|
cp Module.markers %buildroot/lib/modules/%kernelrelease/build
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf %buildroot/lib/modules/%kernelrelease/build/Documentation
|
||||||
|
cp .config %buildroot/lib/modules/%kernelrelease/build
|
||||||
|
|
||||||
|
rm -f %buildroot/lib/modules/%kernelrelease/build/scripts/*.o
|
||||||
|
rm -f %buildroot/lib/modules/%kernelrelease/build/scripts/*/*.o
|
||||||
|
|
||||||
|
cp -a scripts/* %buildroot/lib/modules/%kernelrelease/build/scripts/
|
||||||
|
cp -a include/* %buildroot/lib/modules/%kernelrelease/build/include
|
||||||
|
|
||||||
|
# Make sure the Makefile and version.h have a matching timestamp so that
|
||||||
|
# external modules can be built
|
||||||
|
touch -r %buildroot/lib/modules/%kernelrelease/build/Makefile %buildroot/lib/modules/%kernelrelease/build/include/linux/version.h
|
||||||
|
touch -r %buildroot/lib/modules/%kernelrelease/build/.config %buildroot/lib/modules/%kernelrelease/build/include/linux/autoconf.h
|
||||||
|
# Copy .config to include/config/auto.conf so "make prepare" is unnecessary.
|
||||||
|
cp %buildroot/lib/modules/%kernelrelease/build/.config %buildroot/lib/modules/%kernelrelease/build/include/config/auto.conf
|
||||||
|
|
||||||
|
if test -s vmlinux.id; then
|
||||||
|
cp vmlinux.id %buildroot/lib/modules/%kernelrelease/build/vmlinux.id
|
||||||
|
else
|
||||||
|
echo >&2 "*** WARNING *** no vmlinux build ID! ***"
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# save the vmlinux file for kernel debugging into the kernel-debuginfo rpm
|
||||||
|
#
|
||||||
|
mkdir -p %buildroot%{debuginfodir}/lib/modules/%kernelrelease
|
||||||
|
cp vmlinux %buildroot%{debuginfodir}/lib/modules/%kernelrelease
|
||||||
|
|
||||||
|
find %buildroot/lib/modules/%kernelrelease -name "*.ko" -type f >modnames
|
||||||
|
|
||||||
|
# Move the devel headers out of the root file system
|
||||||
|
mkdir -p %buildroot/usr/src/kernels
|
||||||
|
mv %buildroot/lib/modules/%kernelrelease/build/* %buildroot/%src_install_dir
|
||||||
|
ln -sf $src_install_dir %buildroot/lib/modules/%kernelrelease/build
|
||||||
|
|
||||||
|
|
||||||
|
# Abort if there are any undefined symbols
|
||||||
|
msg="$(/sbin/depmod -F %buildroot/boot/System.map-%kernelrelease \
|
||||||
|
-b %buildroot -ae %kernelrelease 2>&1)"
|
||||||
|
|
||||||
|
if [ $? -ne 0 ] || echo "$msg" | grep 'needs unknown symbol'; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
%post
|
||||||
|
|
||||||
|
depmod -a %{kernelrelease}
|
||||||
|
dracut /boot/initramfs-%{kernelrelease} %{kernelrelease}
|
||||||
|
|
||||||
|
%files
|
||||||
|
%defattr(-, root, root)
|
||||||
|
%ghost /boot/initramfs-%{kernelrelease}.img
|
||||||
|
/boot/System.map-%{kernelrelease}
|
||||||
|
/boot/config-%{kernelrelease}
|
||||||
|
/boot/symvers-%kernelrelease.gz
|
||||||
|
%attr(0644, root, root) /boot/vmlinuz-%{kernelrelease}
|
||||||
|
/lib/firmware/%{kernelrelease}
|
||||||
|
/lib/modules/%{kernelrelease}
|
||||||
|
|
||||||
|
%package devel
|
||||||
|
Summary: Development files necessary for building kernel modules
|
||||||
|
License: GPL v2 only
|
||||||
|
Group: Development/Sources
|
||||||
|
Provides: multiversion(kernel)
|
||||||
|
Provides: %name-devel = %version-%kernelrelease
|
||||||
|
AutoReqProv: on
|
||||||
|
|
||||||
|
%description devel
|
||||||
|
This package contains files necessary for building kernel modules (and
|
||||||
|
kernel module packages) against the %build_flavor flavor of the kernel.
|
||||||
|
|
||||||
|
%post devel
|
||||||
|
if [ -f /etc/sysconfig/kernel ]
|
||||||
|
then
|
||||||
|
. /etc/sysconfig/kernel || exit $?
|
||||||
|
fi
|
||||||
|
if [ "$HARDLINK" != "no" -a -x /usr/sbin/hardlink ]
|
||||||
|
then
|
||||||
|
(cd /usr/src/kernels/%{kernelrelease} &&
|
||||||
|
/usr/bin/find . -type f | while read f; do
|
||||||
|
hardlink -c /usr/src/kernels/*.fc*.*/$f $f
|
||||||
|
done)
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
%files devel
|
||||||
|
%defattr(-,root,root)
|
||||||
|
/usr/src/kernels/%{kernelrelease}
|
||||||
|
|
||||||
|
%changelog
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
#%define _unpackaged_files_terminate_build 0
|
#%define _unpackaged_files_terminate_build 0
|
||||||
%define variant xenlinux.qubes
|
%define variant xenlinux.qubes
|
||||||
%define rel 3.%{variant}
|
%define rel %(cat rel).%{variant}
|
||||||
|
|
||||||
%define _buildshell /bin/bash
|
%define _buildshell /bin/bash
|
||||||
%define build_flavor xenlinux
|
%define build_flavor xenlinux
|
||||||
@ -24,7 +24,7 @@
|
|||||||
|
|
||||||
%define install_vdso 1
|
%define install_vdso 1
|
||||||
|
|
||||||
Name: kernel-xen
|
Name: kernel
|
||||||
Summary: The Xen Kernel
|
Summary: The Xen Kernel
|
||||||
Version: %{version}
|
Version: %{version}
|
||||||
Release: %{rel}
|
Release: %{rel}
|
||||||
@ -81,11 +81,7 @@ if ! [ -e %_sourcedir/linux-%version.tar.bz2 ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
SYMBOLS=
|
SYMBOLS="xen-dom0 xenlinux"
|
||||||
if test -e %_sourcedir/extra-symbols; then
|
|
||||||
SYMBOLS=$(cat %_sourcedir/extra-symbols)
|
|
||||||
echo "extra symbol(s):" $SYMBOLS
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Unpack all sources and patches
|
# Unpack all sources and patches
|
||||||
%setup -q -c -T -a 0 -a 102 -a 103 -a 104 -a 105 -a 106 -a 107 -a 108 -a 109
|
%setup -q -c -T -a 0 -a 102 -a 103 -a 104 -a 105 -a 106 -a 107 -a 108 -a 109
|
Loading…
Reference in New Issue
Block a user