Target: to build packages with etercifs sources for every supported kernel.
master - is updated from git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6.git and consists of sources for 2.6.xx (not 2.6.xx.yy) and 3.x kernels.
v2.6.xx-etercifs (e.g. v2.6.32-etercifs) - consists of sources with our patches applied.
Actual branches for supported kernels:
v2.6.16-etercifs (legacy for SUSE)
Actual branches with our patches:
Branches vx.x.xx-etercifs is suppose to be regularly updated from stable kernel branches like stable/linux-x.x.y (if, of course, changes affect fs/cifs directory).
Target: to build etercifs package with scripts of service compiling and running togather with sources for old kernels (probably 2.6.18-2.6.22) and sources new kernels.
There is one work branch - master.
- sources/legacy directories - consist of module sources for old kernels. A sybolic link kernel-source-etercifs-2.6.xx-1.50c.tar.bz2 is created for every kernel version from 18 to 22, which points to legacy sources.
- sources/centosxx directories - constist of module sources for CentOS x.x kernels.
- sources/x.x.xx directories - consists of module sources for new kernels.
etercifs directory has scripts which go to etercifs package:
- etercifs и etercifs.outformat - rc-scripts templates.
- buildmodule.sh - script for compiling.
- functions.sh - functions for buildmodule.sh.
- etermount - script for convenient mounting.
Algorithm for building etercifs module(кратко):
1. Detect a kernel verion.
2. Detect a place where the kernel sources is located (depends on distro).
3. Choose the latest etercifs sources version which is appropriate for the current kernel version (depends on cifs version and distro release version).
4. Create a temporary directory and unpack etercifs sources there.
5. Compile kernel module.
Algorithm for etercifs update with the recent Linux kernel version
1. Download the recent changes from the mainline kernel branch (http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git) into cifs-2.6 git repository.
2. Update etersoft-* branches from cifs-2.6 git repository with "git merge vX.X". In a case of conflicts, resolve them and commit the result. Make sure that the module is compiled without errors from every etersoft-* branch.
3. Create a new vX.x-etercifs branch and merge etersoft-* branches into it.
4. Create a new source/X.x/ directory in etercifs git repository and copy new kernel module sources there.
5. Add rules to .gear/rules in the same way like current entries. A module version is taken from cifsfs.h file of sources.
6. Update AUTHORS, TODO, CHANGES files in etercifs/ directory from cifs-2.6/Documentation/filesystems/cifs/.
7. Add the information about the new kernel to etercifs.spec in the same way like current entries.
Algorithm for building etercifs package
etersoft-build-utils и korinf repositories are needed.
1. Add sources for new kernels (like described above).
2. Check updates in stable branches (which already added to etercifs), merge them with our vX.x-etercifs branches in cifs-2.6 repository and replace old sources in appropriate directories of etercifs repository with new ones.
3. Change a version in etercifs.spec, generate changelog and do gear-commit.
4. Public srcrpm: [path to etersoft-build-utils]/bin/rpmpub [version, e.g. "5.4.11"] etercifs.spec.
5. Build for every system: [path to korinf]/bin-cifs/etercifs.sh all [version, e.g. "5.4.11"].