Kernel Policy for Sisyphus.
===========================

Version: 1.2


0.    .
-----------------------------

kernel policy   kernel maintainer committee.
 kernel committee:
- Ed V. Bartosh
- Dmitry V. Levin
- Peter A. Novodvorsky
- Sergey Vlasov


1. 
-------------

1.1 .
----------

   :

kernel-feat-%{upstream_name}
kernel-fix-%{upstream_name}

         
 ,       .

  feat  ,   Linux 
.       (
  kernel-feat-drivers-<_>),  
 (  kernel-feat-fs-<_
>),      
(  kernel-feat-net-<ݣ 
>),        
(kernel/*, mm/*, arch/*) , ( 
kernel-feat-core-< >).   
       .

  fix  kernel maintainer commitee.  
  ,       security
  build :
kernel-fix-{net,drivers,fs,vm,core,security,build}.

      , 
 - ,    , ,
kernel-net-netfilter  kernel-net-ipv4-netfilter 
kernel-net-ipv6-netfilter.
 
1.2  .
-------------------

   ,   , 
,     ,    
 .

      
kernel-modules-<ݣ   >-<flavour  
  >.

       
kernel-headers-<ݣ   >-<flavour  
  >.       , 
    ,     
    .

  -     
     (,  ,   
      ),   
      :
kernel-modules-<_>-<_>-<flavour>.

1.3     .
----------------------------------------

   : kernel-source-< >, 
kernel-source-< >-< >,  
     .

1.4     .
-------------------------------------

   : kernel-source-<  
 (rc*|pre*)>.      
: 
# 0.0.X -- preX
# 0.X.0 -- rcX
# 1.0.0 -- release

1.5   .
------------------

    kernel-image-<flavour >.

      
kernel-headers-<flavour >.

     ,  
       (, 
  SCSI),  
kernel-headers-modules-<flavour >.

1.6  kernel-complete
--------------------------

    kernel-complete-<flavour >.

 kernel-complete-<flavour>    
    (kernel-image-<flavour>)   
       
(kernel-modules-<_>-<flavour>),    
  ,      
 .

1.7  rpm-build-kernel
--------------------------
    rpm , ,   
 ,     spec
 kernel-    apply .     
/etc/rpm/macros.d/kernel  ,   
 ,    apply .

1.8  kernel-build-tools
----------------------------
    ,   
      .    
   BuildRequires    - 
-      , 
      rpm-build-kernel.


2. Versioning .
----------------------

  feat    ,  
upstream.  upstream   versioning,    
   upstream   yyyy.mm.dd.

  fix      
   yyyy.mm.dd.

     ,     
,   ,   upstream. 
upstream   versioning,     
  upstream   yyyy.mm.dd.

        
: 
  -    preX,     0.0.X.
  -    rcX,     0.X.0.
  -   ,     1.0.0.


3.  .
----------------------

3.1 .
----------

/usr/src/kernel/patches/<_>/*            
optional:
         kernel/patches/apply/<_>        , 
						   

      :

  1)      unified diff ( context diff)
         patch -p1,    
        .      
          rpm-build-kernel
     (.  5).

  2)    (apply-)  
     .      ,   
     /usr/src/kernel/patches/<_>/,   .

3.1.1      
----------------------------------------------------

         patch-
  /usr/src/kernel/patches/<_>.    
    "NN_name.patch",  NN -- 
,    .

        , 
  :

  -   NN_name.patch      X.Y.ZZ,
             
    dont_apply_to_X.Y.ZZ_NN_name.patch.

  -       ̣  
    (X.Y.ZZ)      
    NN_apply_to_X.Y.ZZ.

  -       ̣  
    (X.Y)       NN_X.Y.

  -         ,
       Σ    (kernel-AAA-BBB), 
         NN_kernel-AAA-BBB.   
       ,   
           ,  ݣ  
    ,      
    .

  -         ,
        (kernel-AAA-BBB)   
     ,      
    NN_not_kernel-AAA-BBB.

  - , ݣ   NN_common,   
     (     
       ).

3.1.2      
---------------------------------------------------

      
,       
 /bin/sh,    /usr/src/kernel/patches/apply/;
       .

Apply-       ; 
  :

  - $1 -     (/usr/src/kernel/patches);
  - $2 -   ;
  - $3 -  ;
  - $4 -  .

      , apply- 
   .

   apply-   
     patches/  APPLIED_$name.
   ,     
$name.       APPLIED_$name   
   -      
rpm-build-kernel    apply-.

3.1.3   spec-   
-----------------------------------------------

        
,     ,  
rpm-build-kernel   %source  %install_patches,
    spec-  .

 %source      
   SourceN: file   spec-:

%source <> <_> [<>]

        
(Source<>: <_>),      
     .   ,  
      .

   %install     
,   %source:

%install_patches

    ,   %source,
   %patches_dir/%patch_name ( %patch_name
  ̣  spec-  
%install_patches).      %sources   ,
       
%patches_dir/%patch_name.

3.2    .
--------------------------------

/usr/src/kernel/sources/<_>-<>.tar.gz

/usr/src/kernel/sources/<_>-<>.tar.bz2

3.3    .
-------------------------------

/lib/modules/< >-<flavour>/*
/usr/include/linux-< >-<flavour>/include/*

3.4   .
------------------

image:
/boot/config-< >-<flavour>-<release>
/boot/vmlinuz-< >-<flavour>-<release>
/boot/System.map-< >-<flavour>-<release>
/lib/modules/< >-<flavour>-<release>/*

headers:
/usr/include/linux-< >-<flavour>/*

headers-modules:
/usr/src/linux-< >-<flavour>/*


4.     
---------------------------------------------

4.1   
------------------

  kernel-image-*     :

BuildRequires(pre): rpm-build-kernel
Provides: kernel = %kversion
Provides: kernel24 = %kversion		(   2.4.x)
Obsoletes: kernel-modules
Obsoletes: kernel-modules-i2c-%flavour
PreReq: bootloader-utils >= 0.3-alt1

   kernel-image-*  :

%post
%post_kernel_image %kversion-%flavour-%krelease

%preun
%preun_kernel_image %kversion-%flavour-%krelease

4.2    
-----------------------------

 kernel-headers-<flavour>    :

BuildRequires(pre): rpm-build-kernel
Requires: kernel-headers-common >= 1.1
Obsoletes: kernel-headers-i2c-%flavour
Provides: kernel-headers
Provides: kernel-headers-%base_flavour
Provides: kernel24-headers		(   2.4.x)

 %base_flavour -   %flavour (  "-up" 
"-smp").

 kernel-headers-modules-<flavour>    
  kernel-headers-<flavour>   
  :

Requires: kernel-headers-%flavour = %version-%release

   kernel-headers-<flavour> 
:

%post -n kernel-headers-%flavour
%post_kernel_headers %kversion-%flavour-%krelease

%postun -n kernel-headers-%flavour
%postun_kernel_headers %kversion-%flavour-%krelease

4.3    
------------------------------

   (kernel-modules-<_>-<flavour>) 
  PreReq    (kernel-image-<flavour>), 
  ,      .

    ,   
,     (PreReq)
  ,       .

 ,       :

Provides:  kernel-modules-%module_name-%kversion-%flavour-%krelease = %version-%release
Conflicts: kernel-modules-%module_name-%kversion-%flavour-%krelease < %version-%release
Conflicts: kernel-modules-%module_name-%kversion-%flavour-%krelease > %version-%release

         
      (   
    ģ    ).
 ,   -    
        ,  
   ͣ     (ԣ
 ),     
    (   ģ
 %module_name   ,  
  ).

   ( ,  
 ):

BuildRequires(pre): rpm-build-kernel

   kernel-modules-*  :

%post
%post_kernel_modules %kversion-%flavour-%krelease

%postun
%postun_kernel_modules %kversion-%flavour-%krelease

4.4  
-----------------

 ,  kernel-modules-*  kernel-complete-*,  
    kernel-image-*  kernel-modules-* (
,     Provides   kernel-image-* 
kernel-modules-*).        
   apt    
    .


5.       .
-----------------------------------------------------

      spec   
%apply_patches   ,    
rpm-build-kernel.

 %apply_patches   :

%apply_patches <>

  <>       major.minor
(, 2.4  2.6).

   ,   ,  %apply_patches
  apply-,       
 .

  apply-   
 .   
/usr/src/kernel/patches/<__>/  
  (,    
LC_COLLATE=C).    (  ) 
 :

  1)       ()   
     dont_apply_to_<_>_<_>,  ( 
     ) .

  2)        ( 
          ).  
      ,   ??_,  (
          ԣ
        10_).    
       :

       - common -     .
       - <> -       .
       - apply_to_<_> -     
          .
       - <__> -      ,
                 
          .   ,     
           ݣ   Σ (  
            ),    (
           ,        ).
       - not_<__> -     
         ,         
          .

           
      .

  3)        
      patch;  patch    -p1.

      
patches/APPLIED_<__>;     
  apply-  ,   Σ  
   .


6.   .
------------------------------------

  ,    /usr/include/{linux,asm},
   ,  
.   ,    
    glibc-kernheaders,   
/usr/include/linux-default.


7.      Sisyphus.
---------------------------------------------

      Sisyphus, 
     devel-kernel@altlinux.ru  
ITP: <_> (Intent to package)   description-   ,
 ,     .   
 ,   ,   
  Sisyphus. Kernel maintainer committee   
     Sisyphus     KMC.
