# Version options %define kernel_base_version 2.4.26 %define kernel_extra_version %nil # Numeric extra version scheme developed by Alexander Bokovoy: # 0.0.X -- preX # 0.X.0 -- rcX # 1.0.0 -- release %define kernel_extra_version_numeric 1.0.0 %define krelease alt5 %define base_flavour std %define subflavour up %define flavour %base_flavour-%subflavour # Build options # You can change compiler version by editing this line: %define kgcc_version 2.96 # Enable/disable SGML docs formatting %def_enable docs # Fixes: %add_patch_list kernel-fix-build %add_patch_list kernel-fix-security-owl %add_patch_list kernel-fix-security %add_patch_list kernel-fix-net %add_patch_list kernel-fix-core %add_patch_list kernel-fix-fs %add_patch_list kernel-fix-lvm %add_patch_list kernel-fix-drivers-ide %add_patch_list kernel-fix-drivers-net %add_patch_list kernel-fix-drivers-pci %add_patch_list kernel-fix-drivers-scsi %add_patch_list kernel-fix-drivers-sound %add_patch_list kernel-fix-drivers-usb %add_patch_list kernel-fix-drivers-char %add_patch_list kernel-fix-drivers-md %add_patch_list kernel-fix-drivers-media %add_patch_list kernel-fix-drivers-mtd %add_patch_list kernel-fix-drivers-video %add_patch_list kernel-fix-drivers-pnp %add_patch_list kernel-fix-drivers-block %add_patch_list kernel-fix-acpi ################## %add_patch_list kernel-feat-fs-xfs %add_patch_list kernel-feat-fs-reiserfs %add_patch_list kernel-feat-cpufreq %add_patch_list kernel-feat-i2c %add_patch_list kernel-feat-ipmi %add_patch_list kernel-feat-fs-ntfs %add_patch_list kernel-feat-kconfig %add_patch_list kernel-feat-crypto %add_patch_list kernel-feat-drivers-usb %add_patch_list kernel-feat-drivers-block-enbd %add_patch_list kernel-feat-drivers-video-splash %add_patch_list kernel-feat-net-ppp-mppe %add_patch_list kernel-feat-net-super-freeswan %add_patch_list kernel-feat-drivers-media-v4l2 %add_patch_list kernel-feat-drivers-sound-emu10k1 %add_patch_list kernel-feat-drivers-libata %add_patch_list kernel-feat-drivers-net-pcnet32-old # imz: Unicode support in VT/console %add_patch_list kernel-feat-drivers-console-unicode # Although this patch changes the interface between the kernel and loadkeys, # I do not put a Conflicts for the old console-tools here, # because the old loadkeys works fine the new kernel interface. ## Don't edit below this line ################################## %define kversion %kernel_base_version Name: kernel-image-%flavour Version: %kversion Release: %krelease Summary: The Linux kernel (the core of the Linux operating system) License: GPL Group: System/Kernel and hardware Url: http://www.kernel.org/ Packager: Kernel Maintainer Team Source1: config-%kversion-%flavour Source2: rhkmvtag.c %define rhkmvtag %SOURCE2 Source3: kernel-headers-Makefile.patch ExclusiveOS: Linux BuildRequires: libdb4-devel flex dev86 BuildRequires: kernel-source-%kernel_base_version = %kernel_extra_version_numeric BuildRequires: kernel-build-tools >= 0.7 BuildRequires: %get_patch_list BuildRequires: gcc-common >= 1.2-alt1 BuildRequires: gcc%kgcc_version BuildRequires: kernel-fix-core >= 2003.06.11 %if_enabled docs BuildRequires: docbook-utils transfig ghostscript %endif %if_enabled ccache BuildRequires: ccache %endif %ifdef use_ccache BuildRequires: ccache %endif Requires: bootloader-utils >= 0.3-alt1, mkinitrd >= 1:2.8.6-alt2 Provides: kernel = %kversion Provides: kernel24 = %kversion PreReq: coreutils PreReq: modutils >= 2.4.17 PreReq: bootloader-utils >= 0.1-alt7 PreReq: mkinitrd >= 1:2.8.6-alt2 Obsoletes: kernel-modules, kernel-modules-i2c-%flavour ExclusiveArch: %ix86 %description This package contains the Linux kernel that is used to boot and run your system. It contains few device drivers for specific hardware. Most hardware is instead supported by modules loaded after booting. Patches included:%format_patch_list %package -n kernel-headers-%flavour Summary: Header files for the Linux kernel Group: System/Kernel and hardware Requires: kernel-headers-common >= 1.1.5 Obsoletes: kernel-headers-i2c-%flavour Provides: kernel-headers-%base_flavour = %version-%release Provides: kernel-headers = %version Provides: kernel24-headers = %version %description -n kernel-headers-%flavour These are the C header files for the Linux kernel, which define structures and constants that are needed when building most standard programs under Linux, as well as to rebuild the kernel. Patches included:%format_patch_list %package -n kernel-headers-modules-%flavour Summary: SCSI header files for the Linux kernel Group: System/Kernel and hardware Requires: kernel-headers-%flavour = %version-%release Requires: gcc-common >= 1.2-alt1 Requires: gcc%kgcc_version %description -n kernel-headers-modules-%flavour These are the C header files for the Linux kernel scsi subsystem, which define structures and constants that are needed when building only scsi-related kernel modules. Don't use it for any purposes except building a kernel modules. %package -n kernel-doc-%base_flavour Summary: Linux kernel %kversion documentation Group: System/Kernel and hardware %description -n kernel-doc-%base_flavour This package contains documentation files for ALT Linux kernel packages: * kernel-image-%base_flavour-up-%kversion-%krelease * kernel-image-%base_flavour-smp-%kversion-%krelease %prep %setup -cT -n kernel-image-%flavour-%kversion-%krelease %__rm -rf kernel-source-%kernel_base_version %__tar -jxf %kernel_src/kernel-source-%kernel_base_version.tar.bz2 %setup -D -T -n kernel-image-%flavour-%kversion-%krelease/kernel-source-%kernel_base_version echo "patches = %_patch_list" %apply_patches 2.4 # this file should be usable both with make and sh (for broken modules # which do not use the kernel makefile system) echo 'export GCC_VERSION=%kgcc_version' > gcc_version.inc %__subst 's/EXTRAVERSION =.*/EXTRAVERSION = %kernel_extra_version-%flavour-%krelease/g' Makefile %__subst '1i\ include gcc_version.inc\ ' Makefile %build KERNEL_BUILD_DIR=`pwd` KernelVer=%kversion-%flavour-%krelease echo "Building Kernel $KernelVer" :> arch/%base_arch/defconfig %__cat %SOURCE1 >> arch/%base_arch/defconfig %make_build mrproper %make_build oldconfig ### It's a hack, but a useful hack: cmp -s .config %SOURCE1 || %__cp -vf .config %SOURCE1 %make_build dep clean %make_build include/linux/version.h %make_build bzImage %make_build modules YACC="bison -y" echo "Kernel built $KernelVer" %if_enabled docs # psdocs, pdfdocs don't work yet %make_build htmldocs %endif %install KernelVer=%kversion-%flavour-%krelease %__mkdir -p $RPM_BUILD_ROOT/boot %__install System.map $RPM_BUILD_ROOT/boot/System.map-$KernelVer %__cp arch/i386/boot/bzImage $RPM_BUILD_ROOT/boot/vmlinuz-$KernelVer %__cp .config $RPM_BUILD_ROOT/boot/config-$KernelVer %__make modules_install \ INSTALL_MOD_PATH=$RPM_BUILD_ROOT \ KERNELRELEASE=$KernelVer %__cc -o rhkmvtag %rhkmvtag init/version.o ./rhkmvtag >$RPM_BUILD_ROOT/lib/modules/$KernelVer/.rhkmvtag ||: %__rm -f rhkmvtag %__install -d $RPM_BUILD_ROOT%prefix/include/linux-%version-%flavour/include pushd include %__cp -a . $RPM_BUILD_ROOT%prefix/include/linux-%version-%flavour/include popd # drivers-headers install %__install -d $RPM_BUILD_ROOT%prefix/src/linux-%version-%flavour/drivers/scsi %__cp -a ./drivers/scsi/{{constants,sd,scsi,hosts,scsi_obsolete}.h,scsi_module.c} \ $RPM_BUILD_ROOT%prefix/src/linux-%version-%flavour/drivers/scsi/ #%__install -d $RPM_BUILD_ROOT%prefix/src/linux-%version-%flavour/drivers/media/video #%__cp -a ./drivers/addon/bttv/{{id,bttv,bttvp,audiochip,i2c-compat,tuner,bt848}.h} \ # $RPM_BUILD_ROOT%prefix/src/linux-%version-%flavour/drivers/media/video %__install -d %buildroot%prefix/src/linux-%version-%flavour/arch/%base_arch %__install -d %buildroot%prefix/src/linux-%version-%flavour/scripts %__cp -a ./{Makefile,Rules.make,gcc_version.inc} \ %buildroot%prefix/src/linux-%version-%flavour/ %__cp -a ./arch/%base_arch/Makefile \ %buildroot%prefix/src/linux-%version-%flavour/arch/%base_arch/ %__cp -a ./scripts/pathdown.sh \ %buildroot%prefix/src/linux-%version-%flavour/scripts/ pushd %buildroot%prefix/src/linux-%version-%flavour ln -sf ../../include/linux-%version-%flavour/include include patch Makefile < %SOURCE3 popd %__cp -a .config $RPM_BUILD_ROOT%prefix/src/linux-%version-%flavour/.config pushd $RPM_BUILD_ROOT rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/build ln -sf %prefix/include/linux-%version-%flavour/ \ $RPM_BUILD_ROOT/lib/modules/$KernelVer/build popd # remove asm-* include files for other architectures pushd $RPM_BUILD_ROOT%prefix/include/linux-%version-%flavour/include for dir in asm-*; do [ "$dir" = "asm-generic" ] && continue [ "$dir" = "asm-%base_arch" ] && continue %__rm -rf -- "$dir" done popd # install documentation %if_enabled docs %__install -d %buildroot%_docdir/kernel-doc-%base_flavour-%version/ %__cp -a Documentation/* %buildroot%_docdir/kernel-doc-%base_flavour-%version/ %__install -d %buildroot%_docdir/kernel-doc-%base_flavour-%version/scsi/ %__cp -a drivers/scsi/README* \ %buildroot%_docdir/kernel-doc-%base_flavour-%version/scsi/ for dir in aacraid aic7xxx aic7xxx_old; do %__install -d \ %buildroot%_docdir/kernel-doc-%base_flavour-%version/scsi/$dir/ %__cp -a drivers/scsi/$dir/README* \ %buildroot%_docdir/kernel-doc-%base_flavour-%version/scsi/$dir/ done %__install -d \ %buildroot%_docdir/kernel-doc-%base_flavour-%version/scsi/sym53c8xx_2 %__cp -a drivers/scsi/sym53c8xx_2/*.txt \ %buildroot%_docdir/kernel-doc-%base_flavour-%version/scsi/sym53c8xx_2 %endif # if_enabled docs %post %post_kernel_image %kversion-%flavour-%krelease %preun %preun_kernel_image %kversion-%flavour-%krelease %post -n kernel-headers-%flavour %post_kernel_headers %kversion-%flavour-%krelease %postun -n kernel-headers-%flavour %postun_kernel_headers %kversion-%flavour-%krelease %files %defattr(644,root,root,755) /boot/vmlinuz-%version-%flavour-%krelease /boot/System.map-%version-%flavour-%krelease /boot/config-%version-%flavour-%krelease /lib/modules/%version-%flavour-%krelease %exclude /lib/modules/%version-%flavour-%krelease/build %files -n kernel-headers-%flavour %defattr(644,root,root,755) %dir %prefix/include/linux-%version-%flavour %prefix/include/linux-%version-%flavour/include /lib/modules/%version-%flavour-%krelease/build %files -n kernel-headers-modules-%flavour %defattr(644,root,root,755) %prefix/src/linux-%version-%flavour %if_enabled docs %files -n kernel-doc-%base_flavour %defattr(644,root,root,755) %doc %_docdir/kernel-doc-%base_flavour-%version %endif %changelog * Tue Aug 03 2004 Sergey Vlasov kernel-policy-1.3 - spec file cleanup - new gcc version selection - new macros for installation scripts * Mon Feb 02 2004 Sergey Vlasov kernel-policy-1.2 - added kernel-doc subpackage generation - kernel-headers packaging cleanup - fixed Provides, Requires, Prereq * Tue Jul 1 2003 Ed V. Bartosh kernel-policy-1.1 - Naming rules minor changes - spec example changed (don't exclude I2C headers from the kernel-headers package) * Thu May 22 2003 Peter Novodvorsky kernel-policy-1.0 - 1.0 policy release.