###############################################################################
name = kernel
-version = 3.0.4
-release = 5
+version = 3.1.1
+release = 1
thisapp = linux-%{version}
maintainer = Michael Tremer <michael.tremer@ipfire.org>
localversion = %{release}.%{DISTRO_DISTTAG}.%{DISTRO_ARCH}
fullver = %{version}-%{localversion}
-sources = %{thisapp}.tar.gz
+source_dl = http://www.kernel.org/pub/linux/kernel/v3.x/
+sources = %{thisapp}.tar.xz
build
+ # icecream cannot be used to compile the kernel.
+ # Because the PaX patch does use GCC plugins to harden the kernel which
+ # are not available on the remote compilers, we need to disable it here.
+ export ICECC=no
+
requires
binutils-devel
elfutils-devel
+ gettext
module-init-tools
ncurses-devel
+ net-tools
newt-devel
- iputils
+ pciutils-devel
perl
python-devel
+ slang-devel
xz-lzma-compat
end
# Remove unnecessary SCM files.
find . -name .gitignore -exec rm -f {} \; >/dev/null
+ # This prevents scripts/setlocalversion from mucking with our version numbers.
+ touch .scmversion
+
mkdir -pv configs
configure_kernel() {
local flavour=${1}
fullversion="${fullversion}.${flavour}"
fi
+ # Label the build.
+ sed -i Makefile \
+ -e "s/^EXTRAVERSION.*/EXTRAVERSION = -${localversion}/"
+
# Clean up the source tree.
make mrproper
# Install configuration file.
cp configs/config.${flavour} .config
- # Label the build.
- sed -i Makefile \
- -e "s/^EXTRAVERSION = .*/EXTRAVERSION = -${localversion}/g"
-
# Run the build.
+ make ARCH=%{kernel_arch} oldnoconfig >/dev/null
make ARCH=%{kernel_arch} CC="gcc -fno-PIE" %{kernel_target} modules %{PARALLELISMFLAGS}
# Install the results.
# Install modules.
make ARCH=%{kernel_arch} INSTALL_MOD_PATH=%{BUILDROOT} mod-fw= \
KERNELRELEASE=${fullversion} modules_install
- #make ARCH=%{kernel_arch} INSTALL_MOD_PATH=%{BUILDROOT} \
- # KERNELRELEASE=${fullversion} vdso_install
+ make ARCH=%{kernel_arch} INSTALL_MOD_PATH=%{BUILDROOT} \
+ KERNELRELEASE=${fullversion} vdso_install
# Create an empty settings file for dracut
mkdir -pv %{BUILDROOT}/etc/ld.so.conf.d
find %{BUILDROOT}/lib/modules/${fullversion} -name "*.ko" -type f | \
xargs chmod u+x
- for i in alias alias.bin builtin.bin ccwmap dep dep.bin ieee1394map inputmap isapnpmap ofmap pcimap seriomap symbols symbols.bin usbmap; do
- rm -vf %{BUILDROOT}/lib/modules/${fullversion}/modules.${i}
- done
-
# Move all development files to /usr/src.
mkdir -pv %{BUILDROOT}/usr/src/kernels
mv -v %{BUILDROOT}/lib/modules/${fullversion}/build \
for kernel in %{kernels}; do
build_kernel ${kernel}
done
+
+ # Build tools.
+ # cpupower
+ chmod +x tools/power/cpupower/utils/version-gen.sh
+ make -C tools/power/cpupower CPUFREQ_BENCH=false %{PARALLELISMFLAGS}
+
+ cd tools/power/cpupower/debug/i386
+ make %{PARALLELISMFLAGS} centrino-decode powernow-k8-decode
+ cd -
end
install
rm -rfv %{BUILDROOT}/lib/firmware
# Install tools.
- # XXX cannot install this because of #263.
- #make -C tools/perf DESTDIR=%{BUILDROOT} \
- # HAVE_CPLUS_DEMANGLE=1 prefix=/usr install install-man
+ # XXX Man pages cannot be created because they need asciidoc.
+ make -C tools/perf DESTDIR=%{BUILDROOT} \
+ HAVE_CPLUS_DEMANGLE=1 prefix=/usr perfexecdir=lib/perf-core \
+ install #install-man
+
+ # cpupower
+ make -C tools/power/cpupower DESTDIR=%{BUILDROOT} libdir=/usr/lib \
+ mandir=/usr/share/man CPUFREQ_BENCH=false install
+ cd tools/power/cpupower/debug/i386
+ install -m 755 centrino-decode %{BUILDROOT}/usr/bin/centrino-decode
+ install -m 755 powernow-k8-decode %{BUILDROOT}/usr/bin/powernow-k8-decode
+ cd -
+ chmod 0755 %{BUILDROOT}/usr/lib/libcpupower.so*
end
end
packages
template KERNEL
+ kernel_name = kernel
kernel_release = %{fullver}
summary = The Linux kernel %{kernel_release}.
- prerequires = module-init-tools
+ prerequires = dracut grubby module-init-tools
provides = kernel
requires
- dracut
+ %{prerequires}
linux-firmware
end
/lib/modules/%{kernel_release}
end
- script postin
- depmod -a %{kernel_release} || :
+ _posttrans
+ /sbin/new-kernel-pkg --package %{kernel_name} --mkinitrd --dracut --depmod --update %{kernel_release} || exit $?
+ /sbin/new-kernel-pkg --package %{kernel_name} --rpmposttrans %{kernel_release} || exit $?
end
script posttransin
- dracut --force /boot/initramfs-%{kernel_release}.img %{kernel_release}
+ %{_posttrans}
+ end
+
+ script posttransup
+ %{_posttrans}
+ end
+
+ script postin
+ /sbin/new-kernel-pkg --package kernel%{?-v:-%{-v*}} --install %{KVERREL}%{?-v:.%{-v*}}
+ end
+
+ script postup
+ /sbin/new-kernel-pkg --package %{kernel_name} --install %{kernel_release}
+ end
+
+ script preun
+ /sbin/new-kernel-pkg --rminitrd --rmmoddep --remove %{kernel_release}
end
end
package kernel
template KERNEL
+
+ kernel_name = kernel
+ kernel_release = %{fullver}
end
package kernel-devel
template KERNELDEVEL
+
+ kernel_name = kernel
+ kernel_release = %{fullver}
end
package kernel-PAE
template KERNEL
+ kernel_name = kernel-PAE
kernel_release = %{fullver}.PAE
end
package kernel-PAE-devel
template KERNELDEVEL
+ kernel_name = kernel-PAE
kernel_release = %{fullver}.PAE
end
-
+
package kernel-headers
summary = Header files of the kernel release %{fullver}.
desciption = %{summary}
end
end
- #package kernel-tools
- # summary = Assortment of tools for the Linux kernel.
- # description = %{summary}
- #
- # files
- # /usr/bin
- # /usr/lib
- # end
- #end
+ package kernel-tools
+ summary = Assortment of tools for the Linux kernel.
+ description = %{summary}
+
+ filter_requires
+ perl>=[0-9]\:.*
+ end
+
+ files
+ /
+ !/boot
+ !/lib/modules
+ !/usr/include
+ !/usr/src
+ end
+ end
end