]> git.ipfire.org Git - people/ms/ipfire-3.x.git/blobdiff - kernel/kernel.nm
glibc: Add ports addon and configure options for armv5tel.
[people/ms/ipfire-3.x.git] / kernel / kernel.nm
index 525e32b7488d8998c5b54ddf1e05c6adbd75ad91..0db132d5ef2230f51b67450d6d45b9dfd95382c3 100644 (file)
@@ -4,8 +4,8 @@
 ###############################################################################
 
 name       = kernel
-version    = 3.0.4
-release    = 5
+version    = 3.1.1
+release    = 1
 thisapp    = linux-%{version}
 
 maintainer = Michael Tremer <michael.tremer@ipfire.org>
@@ -25,18 +25,27 @@ end
 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
 
@@ -66,6 +75,9 @@ build
                # 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}
@@ -102,17 +114,18 @@ build
                                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.
@@ -127,8 +140,8 @@ build
                        # 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
@@ -171,10 +184,6 @@ build
                        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 \
@@ -188,6 +197,15 @@ 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
@@ -207,22 +225,33 @@ build
                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
 
@@ -234,12 +263,29 @@ packages
                        /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
 
@@ -267,24 +313,32 @@ packages
 
        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}
@@ -294,13 +348,20 @@ packages
                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