what is zen-sources ?
source http://www.zen-sources.org/content/about- Although not technically a "patchset", zen-sources is a linux kernel variant based on stable linux kernel releases, but primarily maintained through a git repository which tracks linus-2.6.git (linus's latest git repository).
- Open to code/projects not integrated into or accepted into the mainstream linux kernel. Typically features added would be intended to benefit desktop/laptop users, or some unique users (such as a game console).
- Geared towards desktop usage (which an argument can be made that the mainstream linux kernel is not), includes numerous things to benefit performance in desktop situations or features that desktop/laptop users may find useful.
- You may recall some popular kernel patchsets such as "love-sources", "no-sources", "kamikaze-sources", "skunk-sources", "viper-sources", "emission-sources", "nitro-sources", "nicus-sources", "dark-sources", "beyond-sources", or perhaps some more. All of the previous mentioned patchsets were either during or slightly before the infamous "patchset wars", basically when a bunch of different individuals decided to make patches on top of the upstream kernel. Some of the patches were composed in very similar ways and some were not. Zen is different from all of these because of the fact that it is maintained through git, and is maintained co-operatively by multiple developers.
- Zen-Sources is not a patchset, but rather is managed through a live git repository, unlike any of the other patchsets were during their days. Zen is managed through one central branch "master", but all actual code is put in their separate branches, so origin/branch1, origin/branch2, etc. This allows for both the use of patches (like patchsets used), and the merging of git repositories directly. Later, the branches are merged into the "master" branch. This also benefits the user, who does no longer need to use ebuilds but can now update simply by a "git pull", and then recompiling as desired.
- Founded by waninkoko (of kamikaze-sources) and rmh3093 (of skunk-sources)
questions and problems with zen-sources should be discussed at its official homepage: http://www.zen-sources.org/ in the section Forums
the installation instructions in this post are provided for your convenience to get you started with the git-provided approach
for a more detailed view on the ways to install zen-sources see: Installation-Instructions on zen-sources.org
in general you should take a look at zen-sources.org for more up-to-date information and instruction
News
*) git changes and some more October 10th 2009 link
*) GIT Changes! Important!!! September 24th 2009 link
--> follow this link if you don't know yet about the recent git changes: there's a zen (latest unstable upstream) and zen-stable [latest stable kernel-releases] repo now !
*) Use KLive to help us track Zen kernel usage stats! December 18th 2008 link
Getting started
checking the sources out
First Time
1) you have 2 choices:
for zen (latest upstream [unstable / testing])
Code:
Code: Select all
cd /usr/src
git clone git://zen-sources.org/kernel/zen.git zen-sources
cd zen-sources
make menuconfigCode:
Code: Select all
cd /usr/src
git clone git://zen-sources.org/kernel/zen-stable.git zen-sources
cd zen-sources
make menuconfig2) for mmotm ("mmotm" is the "-mm tree of the moment" tree. The -mm patch pile, updated
usually more than once per day.) (see: http://lwn.net/Articles/311677/)
Code:
Code: Select all
cd /usr/src
git clone git://zen-sources.org/zen/mmotm.git mmotm
cd mmotm
make menuconfigCode:
Code: Select all
cd /usr/src
git clone git://zen-sources.org/zen/kernel/zenrt.git zen-sources
cd zen-sources
make menuconfigexample:
Code: Select all
git diff v2.6.24 v2.6.24-zen1 > 2.6.24-zen1.patch Code: Select all
emerge qgitCode: Select all
apt-cache search qgitCode: Select all
sudo apt-get install qgit6) update sources (inside the directory)
Code: Select all
Update
Code:
cd /usr/src/zen-sources
git pull 7) you are in the middle of a conflicted merge:
output could be:
git pull
Auto-merged .gitignore
Auto-merged MAINTAINERS
Auto-merged Makefile
CONFLICT (content): Merge conflict in Makefile
Removed arch/mips/lasat/sysctl.h
Auto-merged drivers/ata/libata-scsi.c
Auto-merged drivers/char/Kconfig
Auto-merged drivers/char/drm/ati_pcigart.c
Auto-merged drivers/char/drm/drm.h
Auto-merged drivers/char/drm/drm_drv.c
CONFLICT (content): Merge conflict in drivers/char/drm/drm_drv.c
...
Automatic merge failed; fix conflicts and then commit the result.
first try:rmh3093 wrote: This usually happens when the branch you are trying to update has been rebased. The easiest way to get around this is to checkout a new copy of the branch. For example, if you are currently on the master branch you would do something like the following:
Code: Select all
git checkout -f && git pullTypically this is on a master or master-2.6.xy branch so the command to fix would be:
Code: Select all
git reset --hard; git branch -M master master-old; git checkout -b master origin/master; git branch -D master-old; git checkout -f example:
you're on master (on the zen-stable repo) and want to change to master-2.6.30
Code: Select all
# git checkout master-2.6.30Code: Select all
git branche.g. (currently this doesn't reflect the reality since master-light doesn't exist)
master-light, then enter
Code: Select all
git branch master-light origin/master-light && git checkout master-lightCode: Select all
git checkout v2.6.25-rc5-zen0Tips and Tricks
T&T 1) speeding up merge (download) of zen-sources (during first time)
1) checkout the linux-2.6 branch of linus (git.eu.kernel.org or git.kernel.org)
using the international server
Code: Select all
git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.gitusing the european mirror server
Code: Select all
git clone git://git.eu.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git2) then merge both (e.g. it's in /usr/src/sources/linux-2.6)
e.g. for the zen-stable branch (for latest stable kernel linux-sources)
Code: Select all
git clone --reference /usr/src/sources/linux-2.6/ git://zen-sources.org/kernel/zen-stable.git zen-stableCode: Select all
git clone --reference /usr/src/sources/linux-2.6/ git://zen-sources.org/kernel/zen.git zen-upstreamT&T 2) *click* for a link to the Portage repo for zen kernel ebuilds
T&T 3) Having problems with zen's latest repo-management change (from September 24th 2009) (want to have a stable repo again ?)
do the following:
1) change directory to the root / center of your zen repo, e.g.
cd /usr/src/sources/kernel/zen-sources/
2) modify .git/config file to let it point to git://zen-sources.org/kernel/zen-stable.git instead of git://zen-sources.org/kernel/zen.git
nano -w .git/config
should now be[remote "origin"]
url = git://zen-sources.org/kernel/zen.git
3) try pulling changes (which most likely in the first 2 or 3 attempts won't work):[remote "origin"]
url = git://zen-sources.org/kernel/zen-stable.git
Code: Select all
git pull Code: Select all
git fetch; git reset --hard; git branch -M master master-old; git checkout -b master origin/master; git branch -D master-old; git checkout -f and probably says:
oryou are in the middle of a conflicted merge
so repeat point 3 & 4 another timeAutomatic merge failed; fix conflicts and then commit the result.
6) now it should say:
Code: Select all
git pull Already up-to-date.
what branches of kernel-sources or repositories are there?
currently (september 2009), there are 2 different patchsets and branches used in those are (see):
*) heads (zen[-upstream]) )
*) heads (mmotm) ):
*) heads (zen-stable) )
sometime there's also master-new or similar for testing / rebasing purposes
the other "head"s are branches which are added to the main tree
the project's site can be reached over at:
www.zen-sources.org
the repo is reachable via:
http://git.zen-sources.org/?p=kernel/zen.git;a=summary (zen[-upstream])
and/or
http://git.zen-sources.org/?p=kernel/mm ... ;a=summary (mmotm-sources)
and/or
http://git.zen-sources.org/?p=kernel/ze ... ;a=summary (zen-stable)
for those who are interested there is other (non-kernel related) stuff on the zen git-server:
* THE portage overlay.... random ebuilds usually not found in the Gentoo portage tree...
* A C++ library for communicating with Drupal Services.
* A portage overlay with ebuilds relating to embedded systems
* A desktop agnostic gui for Obex Push Protocol and Obex File Transfer Protocol.
* Cross development toolchain creator for paludis.
* PalmPre Homebrew [currently empty]
* Quassel IRC client contributions [currently empty]
*
update:
removed reiser4-repository links
update2:
added instruction on how to git-clone linus' repository and using that for reference to update to the zen-sources repo
update3:
updated adresses to the new overlay/servers
update4:
updated the git-addresses for zen-sources and mmotm (mm-sources) of the new zen-sources server
update5:
corrected zenmm -> mmotm
since the zenmm doesn't exist right now
update6:
added info about some other repositories
update7:
changed instructions regarding latest changes in zen's git-repo (zen-stable and zen [unstable, Linus' latest upstream])
update8:
added entry in section T&T (tips and tricks) for solving problems with latest zen-sources repo-switch (zen -> zen-stable and new repo zen)
update9: Tuesday, October 6th 2009
updated the addresses for the repo yet again ! ("prefixing" kernel in front of the kernel-repositories)





