Kernelnotes/mike
Материал из ALT Linux Wiki
< Kernelnotes(Различия между версиями)
м (→kernel-image.git: 2.6.27.26 note) |
(→kernel-image.git: 2.6.32 и remotes) |
||
(13 промежуточных версий не показаны.) | |||
Строка 1: | Строка 1: | ||
== kernel-image.git == | == kernel-image.git == | ||
- | Наброски mike@ по части сборки kernel-image | + | Наброски mike@ по части сборки [http://git.altlinux.org/people/mike/packages/?p=kernel-image.git;a=summary kernel-image] из gear-репозитория. |
- | + | NB: данное ядро для тонких клиентов не требует двух базовых патчей/бранчей (fix-core-syslog, fix-core--init), которые можно вытащить из альтовских kernel-image. | |
+ | |||
+ | Вместо git-empty-branch можно коммитить в master и не забыть переименовать по имени ядра (в данном случае kernel-image-ltsp-client) -- см. [[Сборка модулей ядра#Сборка модулей на git.alt|updatemodules]]. | ||
<pre> | <pre> | ||
- | + | $ mkdir kernel-image | |
- | + | $ cd kernel-image | |
- | + | $ git init | |
- | Initialized empty Git repository in /home/mike/git/kernel-image | + | Initialized empty Git repository in /home/mike/git/kernel-image/.git/ |
- | + | $ git-empty-branch kernel-image-ltsp-client | |
[...] | [...] | ||
- | t- | + | $ git remote add upstream -f -t linux-2.6.32.y git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git |
+ | [.........................................] | ||
+ | $ git fetch upstream linux-2.6.32.y:kernel-source | ||
[...] | [...] | ||
- | + | $ git remote add led -f -t fix-mm--page -t feat-net-swap $INTRANET_LOCATION | |
[...] | [...] | ||
- | + | $ git fetch led fix-mm--page:fix-mm--page feat-net-swap:feat-net-swap | |
- | + | $ git branch | |
- | + | feat-net-swap | |
- | + | fix-mm--page | |
- | fix- | + | * kernel-image-ltsp-client |
- | + | ||
kernel-source | kernel-source | ||
- | + | $ mkdir .gear | |
- | + | ### gear rules (как и spec с config) беру из предыдущего подхода к снаряду, см. git.altlinux.org | |
- | + | $ cp -a ~/git/_kernel-image/.gear/rules .gear/rules | |
+ | $ cat .gear/rules | ||
copy: config-* | copy: config-* | ||
- | diff: v2.6. | + | diff: v2.6.32:. v2.6.32.54:. name=linux-2.6.32.54.patch |
- | diff: | + | diff: v@version@.13:. fix-mm--page:. name=linux-@version@.13-fix-mm--page.patch |
- | diff: | + | diff: v@version@.36:. feat-net-swap:. name=linux-@version@.36-feat-net-swap.patch |
- | + | $ cp -a ~/git/_kernel-image/kernel-image.spec . | |
- | + | $ cp -a ~/git/_kernel-image/config-i586 . | |
- | + | $ git add kernel-image.spec config-i586 .gear/ | |
- | + | $ git commit -m 'initial gear rules' .gear/rules | |
- | + | $ git commit -m 'initial kernel config' config-i586 | |
- | + | $ git commit -m 'initial specfile' kernel-image.spec | |
- | + | $ [ "$SHELL" = /bin/zsh ] && setopt shwordsplit | |
- | + | $ branches="`git branch --no-merged | egrep '^ *(feat-.*|fix-.*|kernel-source)$'`" | |
- | Merge made by ours. | + | $ echo $branches |
- | Merge made by ours. | + | $ for i in $branches; do git merge -s ours $i; done |
- | Merge made by ours. | + | Merge made by the 'ours' strategy. |
- | + | Merge made by the 'ours' strategy. | |
- | + | Merge made by the 'ours' strategy. | |
- | # On branch | + | $ git status |
+ | # On branch kernel-image-ltsp-client | ||
nothing to commit (working directory clean) | nothing to commit (working directory clean) | ||
- | + | $ gear-update-tag -avc && git commit -am 'gear-update-tag' | |
- | gear-update-tag | + | [...] |
- | gear- | + | $ nice time gear-hsh --target=i586 --apt-conf=$HOME/apt/apt.conf.i586 ~/hasher/tmpfs |
- | + | [.....] | |
- | + | </pre> | |
- | gear- | + | |
- | + | '''NB: часть ниже к состоянию 2.6.32-ltsp-client по существу не обновлялась''' | |
- | + | ||
- | + | При обновлении для topic branch’ей либо делаем на kernel-source, либо учёт последней части версии (''.y'') в .gear/rules и спеке — и затем merge -s ours в основной бранч: | |
- | + | <pre> | |
- | + | [ "$SHELL" = /bin/zsh ] && setopt shwordsplit | |
- | + | ver=2.6.32.54 | |
- | + | git fetch upstream linux-2.6.32.y:kernel-source | |
- | + | for i in fix-core--init fix-core-syslog; do git rebase kernel-source $i; done; git checkout kernel-image-ltsp-client | |
- | + | branches=`ls .git/refs/heads/ | egrep -v '^(kernel|master)'` | |
- | + | for i in kernel-source $branches; do git merge -s ours $i; done | |
- | + | subst "s,2.6.32.[0-9]\+,$ver,g" .gear/rules | |
- | + | git commit -am "$ver" | |
- | + | gear-update-tag -avc && git commit -am 'gear-update-tag' | |
- | + | vim config-i586 | |
- | + | git commit -am '...config changes...' | |
- | + | vim kernel-image.spec | |
- | + | gear-commit -a | |
- | + | nice time gear --hasher -- hsh --target=i586 --apt-conf=/etc/apt/apt.conf-i586 ~/hasher/tmpfs | |
- | + | ### если собралось, то тегим и пушим; rebased branches придётся заставить | |
- | + | git push -f --all | |
- | + | gear-create-tag | |
- | + | git push --tags | |
- | + | ssh git.alt task new | |
- | + | ssh git.alt task add repo kernel-image 2.6.27-alt10 | |
- | + | </pre> | |
- | + | ||
- | + | Соответственно модули: | |
- | + | <pre> | |
- | + | cd ~/build-modules | |
- | + | mv out/taglist{,-} | |
- | + | updatemodules -k tmc-tc | |
+ | buildmodules --target=i586 --hsh-options='--apt-conf=/etc/apt/apt.conf-i586' --hsh-workdir=$TMP/tmpfs -k tmc-tc | ||
+ | ### если порядок, пушим | ||
+ | cd modules && git push --all && git push --tags && cd - | ||
+ | for tag in $(cat out/taglist); do ssh git.alt task add repo packages/kernel-modules.git $tag; done | ||
</pre> | </pre> | ||
- | + | == Ссылки == | |
+ | * [[Сборка модулей ядра]] | ||
{{Category navigation|title=Kernel|category=Kernel}} | {{Category navigation|title=Kernel|category=Kernel}} |
Текущая версия на 08:33, 21 января 2012
kernel-image.git
Наброски mike@ по части сборки kernel-image из gear-репозитория.
NB: данное ядро для тонких клиентов не требует двух базовых патчей/бранчей (fix-core-syslog, fix-core--init), которые можно вытащить из альтовских kernel-image.
Вместо git-empty-branch можно коммитить в master и не забыть переименовать по имени ядра (в данном случае kernel-image-ltsp-client) -- см. updatemodules.
$ mkdir kernel-image $ cd kernel-image $ git init Initialized empty Git repository in /home/mike/git/kernel-image/.git/ $ git-empty-branch kernel-image-ltsp-client [...] $ git remote add upstream -f -t linux-2.6.32.y git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git [.........................................] $ git fetch upstream linux-2.6.32.y:kernel-source [...] $ git remote add led -f -t fix-mm--page -t feat-net-swap $INTRANET_LOCATION [...] $ git fetch led fix-mm--page:fix-mm--page feat-net-swap:feat-net-swap $ git branch feat-net-swap fix-mm--page * kernel-image-ltsp-client kernel-source $ mkdir .gear ### gear rules (как и spec с config) беру из предыдущего подхода к снаряду, см. git.altlinux.org $ cp -a ~/git/_kernel-image/.gear/rules .gear/rules $ cat .gear/rules copy: config-* diff: v2.6.32:. v2.6.32.54:. name=linux-2.6.32.54.patch diff: v@version@.13:. fix-mm--page:. name=linux-@version@.13-fix-mm--page.patch diff: v@version@.36:. feat-net-swap:. name=linux-@version@.36-feat-net-swap.patch $ cp -a ~/git/_kernel-image/kernel-image.spec . $ cp -a ~/git/_kernel-image/config-i586 . $ git add kernel-image.spec config-i586 .gear/ $ git commit -m 'initial gear rules' .gear/rules $ git commit -m 'initial kernel config' config-i586 $ git commit -m 'initial specfile' kernel-image.spec $ [ "$SHELL" = /bin/zsh ] && setopt shwordsplit $ branches="`git branch --no-merged | egrep '^ *(feat-.*|fix-.*|kernel-source)$'`" $ echo $branches $ for i in $branches; do git merge -s ours $i; done Merge made by the 'ours' strategy. Merge made by the 'ours' strategy. Merge made by the 'ours' strategy. $ git status # On branch kernel-image-ltsp-client nothing to commit (working directory clean) $ gear-update-tag -avc && git commit -am 'gear-update-tag' [...] $ nice time gear-hsh --target=i586 --apt-conf=$HOME/apt/apt.conf.i586 ~/hasher/tmpfs [.....]
NB: часть ниже к состоянию 2.6.32-ltsp-client по существу не обновлялась
При обновлении для topic branch’ей либо делаем на kernel-source, либо учёт последней части версии (.y) в .gear/rules и спеке — и затем merge -s ours в основной бранч:
[ "$SHELL" = /bin/zsh ] && setopt shwordsplit ver=2.6.32.54 git fetch upstream linux-2.6.32.y:kernel-source for i in fix-core--init fix-core-syslog; do git rebase kernel-source $i; done; git checkout kernel-image-ltsp-client branches=`ls .git/refs/heads/ | egrep -v '^(kernel|master)'` for i in kernel-source $branches; do git merge -s ours $i; done subst "s,2.6.32.[0-9]\+,$ver,g" .gear/rules git commit -am "$ver" gear-update-tag -avc && git commit -am 'gear-update-tag' vim config-i586 git commit -am '...config changes...' vim kernel-image.spec gear-commit -a nice time gear --hasher -- hsh --target=i586 --apt-conf=/etc/apt/apt.conf-i586 ~/hasher/tmpfs ### если собралось, то тегим и пушим; rebased branches придётся заставить git push -f --all gear-create-tag git push --tags ssh git.alt task new ssh git.alt task add repo kernel-image 2.6.27-alt10
Соответственно модули:
cd ~/build-modules mv out/taglist{,-} updatemodules -k tmc-tc buildmodules --target=i586 --hsh-options='--apt-conf=/etc/apt/apt.conf-i586' --hsh-workdir=$TMP/tmpfs -k tmc-tc ### если порядок, пушим cd modules && git push --all && git push --tags && cd - for tag in $(cat out/taglist); do ssh git.alt task add repo packages/kernel-modules.git $tag; done