Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37402477
en ru br
Репозитории ALT
S:0.119-alt1
5.1: 0.99.1-alt1
4.1: 0.99.0-alt1
4.0: 0.11-alt1
3.0: 0.8-alt1
www.altlinux.org/Changes

Группа :: Разработка/Прочее
Пакет: kernel-build-tools

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


# 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 <kernel@packages.altlinux.org>

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 <vsu@altlinux.ru> kernel-policy-1.3
- spec file cleanup
- new gcc version selection
- new macros for installation scripts

* Mon Feb 02 2004 Sergey Vlasov <vsu@altlinux.ru> kernel-policy-1.2
- added kernel-doc subpackage generation
- kernel-headers packaging cleanup
- fixed Provides, Requires, Prereq

* Tue Jul 1 2003 Ed V. Bartosh <ed@altlinux.ru> 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 <nidd@altlinux.com> kernel-policy-1.0
- 1.0 policy release.

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