Kernel/Source: различия между версиями

Материал из ALT Linux Wiki
(init)
 
м (→‎Обновляем kernel-source-2.6.x: учёт замечаний ldv@; s/sed/subst/ (ну или уж sed -i))
Строка 1: Строка 1:
== Создаём новый kernel-source-2.6.x ==
== Обновляем kernel-source-2.6.x ==
Возможно, не лучший путь, но по крайней мере работает; улучшения приветствуются.  На примере 2.6.32:
На примере 2.6.30 => 2.6.32:


<source lang="bash">
<source lang="bash">
# инициализируемся
# инициализируемся
old=2.6.30
ver=2.6.32
ver=2.6.32
mkdir ~/git/$ver/kernel
mkdir ~/git/$ver/kernel
cd ~/git/$ver/kernel
cd ~/git/$ver/kernel
git init
git init
# отталкиваемся от существующего kernel-source
git remote add gears-$old git://git.altlinux.org/gears/k/kernel-source-$old.git


# добавляем stable kernel git remote
# добавляем stable kernel git remote
git remote add linux-$ver.y git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-$ver.y.git
git remote add linux-$ver.y git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-$ver.y.git
# запускаем и завариваем чаёк
git remote update
git remote update


# делаем gear rules
# обновляем gear rules
mkdir .gear
subst "s,$old,$ver,g" .gear/rules
cat > .gear/rules << _EOF_
spec: kernel-source.spec
tar.bz2: v$ver:. name=linux-$ver
_EOF_
git add .gear/rules
git add .gear/rules
git commit -m 'initial gear rules' .gear/rules
git commit -m 'updated gear rules' .gear/rules


# делаем kernel-source.spec
# обновляем kernel-source.spec
wget -O kernel-source.spec 'http://git.altlinux.org/people/silicium/packages/?p=kernel-image.git;a=blob_plain;f=kernel-source.spec;h=eb1ce0797214e3276c8f1c70c1089d03cd1a3e70;hb=refs/heads/kernel-source'
subst "s,^\(%define.*\)$old,\1$ver,g" kernel-source.spec
sed "s,^\(%define.*\)2.6.30,\1$ver,g" kernel-source.spec
add_changelog --nocheck -e "- $ver" kernel-source.spec
add_changelog -e "- $ver" kernel-source.spec
git add kernel-source.spec
git add kernel-source.spec
git commit -m 'initial kernel-source.spec' kernel-source.spec
git commit -m 'updated kernel-source.spec' kernel-source.spec


# сшиваем историю, втаскиваем теги
# сшиваем историю, втаскиваем теги
git merge -s ours linux-$ver.y/master
git merge -s ours linux-$ver.y/master
gear-update-tag -avc && git commit -am 'gear-update-tag'
gear-update-tag -avc && git commit -am 'gear-update-tag'
# пылесосим
git gc
</source>
</source>


[[Category:Kernel]]
[[Category:Kernel]]

Версия от 20:34, 23 декабря 2009

Обновляем kernel-source-2.6.x

На примере 2.6.30 => 2.6.32:

# инициализируемся
old=2.6.30
ver=2.6.32
mkdir ~/git/$ver/kernel
cd ~/git/$ver/kernel
git init

# отталкиваемся от существующего kernel-source
git remote add gears-$old git://git.altlinux.org/gears/k/kernel-source-$old.git

# добавляем stable kernel git remote
git remote add linux-$ver.y git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-$ver.y.git

# запускаем и завариваем чаёк
git remote update

# обновляем gear rules
subst "s,$old,$ver,g" .gear/rules
git add .gear/rules
git commit -m 'updated gear rules' .gear/rules

# обновляем kernel-source.spec
subst "s,^\(%define.*\)$old,\1$ver,g" kernel-source.spec
add_changelog --nocheck -e "- $ver" kernel-source.spec
git add kernel-source.spec
git commit -m 'updated kernel-source.spec' kernel-source.spec

# сшиваем историю, втаскиваем теги
git merge -s ours linux-$ver.y/master
gear-update-tag -avc && git commit -am 'gear-update-tag'

# пылесосим
git gc