Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37547595
en ru br
Репозитории ALT
4.1: 2.6.18-alt12
4.0: 2.6.18-alt12.M40.3
+updates:2.6.18-alt12.M40.3
3.0: 2.4.29-alt6
+updates:2.4.29-alt9
www.altlinux.org/Changes

Группа :: Система/Ядро и оборудование
Пакет: kernel-image-std-smp

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 


# Version options

%define kernel_base_version 2.4.29
%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 alt9

%define base_flavour std
%define subflavour smp

%define flavour %base_flavour-%subflavour

# Build options

# You can change compiler version by editing this line:
%ifnarch x86_64
%define kgcc_version 2.96
%endif

# Enable/disable SGML docs formatting

%def_disable 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-openswan
%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 <kernel at packages.altlinux.org>

%set_kernel_arches i586

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.8
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, modutils, 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

%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

%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 's/CC.*$(CROSS_COMPILE)gcc/CC              := $(shell echo $${GCC_USE_CCACHE:+ccache}) gcc-%kgcc_version/g' Makefile

%build
KERNEL_BUILD_DIR=`pwd`

KernelVer=%kversion-%flavour-%krelease

echo "Building Kernel $KernelVer"

:> arch/%base_arch/defconfig

%__cat %{get_kernel_config %_target_cpu} >> arch/%base_arch/defconfig

%make_build mrproper

%make_build oldconfig

### It's a hack, but a useful hack:


cmp -s .config %{get_kernel_config %_target_cpu} || %__cp -vf .config %{get_kernel_config %_target_cpu}

%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/%base_arch/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/src/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

%files -n kernel-headers-modules-%flavour
%defattr(644,root,root,755)
%prefix/src/linux-%version-%flavour
/lib/modules/%version-%flavour-%krelease/build

%if_enabled docs
%files -n kernel-doc-%base_flavour
%defattr(644,root,root,755)
%doc %_docdir/kernel-doc-%base_flavour-%version
%endif

%changelog

Полный changelog можно просмотреть здесь

 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin