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

Материал из Etersoft wiki
Перейти к навигацииПерейти к поиску
Строка 19: Строка 19:




'''Бранчи и их назначение:'''
'''Ветки и их назначение:'''




Строка 134: Строка 134:




'''Алгоритм добавления новых версий ядра Linux'''
'''Алгоритм добавления новых версий ядра Linux ([http://wiki.etersoft.ru/Etercifs/devel/newkernels версия на английском])'''




1. Скачиваем изменения из основной ветки ядра (http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git) в git репозитории cifs-2.6.


1. Обновляем ветки etersoft-* в репозитории cifs-2.6 путем "git merge vX.x". В случае возникновения конфликтов, разрешаем их и делаем результирующий коммит. Убеждаемся в корректности компиляции модуля из каждой ветки etersoft-*.
2. Обновляем ветки etersoft-* путем "git merge vX.x". В случае возникновения конфликтов, разрешаем их и делаем результирующий коммит. Убеждаемся в корректности компиляции модуля из каждой ветки etersoft-*.


2. Создаем ветку новую ветку vX.x-etercifs, куда по очереди проводим слияние веток etersoft-*.
3. Создаем ветку новую ветку vX.x-etercifs, куда по очереди проводим слияние веток etersoft-*.


3. Cоздаем новую директорию source/X.x в репозитории etercifs и переносим туда получившиеся исходники модуля для нового ядра.
4. Cоздаем новую директорию source/X.x/ в git репозитории etercifs и переносим туда получившиеся исходники модуля для нового ядра.


4. Добавляем правила в .gear/rules по аналогии с существующими записями. Версию модуля берем из файла cifsfs.h исходников.
5. Добавляем правила в .gear/rules по аналогии с существующими записями. Версию модуля берем из файла cifsfs.h исходников.


5. Добавляем информацию о новом ядре в etercifs.spec по аналогии с существующими записями.
6. Обновляем файлы AUTHORS, TODO, CHANGES в директории etercifs/ из cifs-2.6/Documentation/filesystems/cifs/.


[http://wiki.etersoft.ru/Etercifs/devel/newkernels Версия на английском]
7. Добавляем информацию о новом ядре в etercifs.spec по аналогии с существующими записями.

Версия 13:51, 25 декабря 2014

Wackowiki-logo.png Blue Glass Arrow.svg MediaWiki logo.png
Эта страница была автоматически перемещена с old.wiki.etersoft.ru.
Эта страница наверняка требует чистки и улучшения — смело правьте разметку и ссылки.
Просьба по окончанию убрать этот шаблон со страницы.


Порядок разработки etercifs

Репозиторий cifs-2.6

Назначение: из него собираются пакеты с исходниками etercifs для всех поддерживаемых ядер.


Адрес: http://git.etersoft.ru/people/piastry/packages/cifs-2.6.git (

Осторожно, большой объем

).


Ветки и их назначение:


master - обновляется из git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6.git и содержит исходные версии ядер 2.6.xx (но не 2.6.xx.y) и 3.x.


v2.6.xx-etercifs (например v2.6.32-etercifs) - содержит исходники с нашими патчами.


Текущие бранчи:


Актуальные ветки, для поддерживаемых ядер:

legacy-etercifs

legacy-centos52-etercifs

...

legacy-centos56-etercifs

legacy-centos60-etercifs

v2.6.16-etercifs (legacy для SUSE)

v2.6.23-etercifs

...

v2.6.39-etercifs

v3.0-etercifs

...

v3.19-etercifs


Аткуальные ветки с нашими патчами:

etersoft-common

etersoft-share-flags

etersoft-wine


Ветки vx.x.xx-etercifs регулярно обновляются из стабильных веток ядра вида stable/linux-x.x.y (если, конечно, изменения затрагивали содержимое папки fs/cifs).


Репозиторий etercifs

Назначение: из него собирается пакет etercifs со скриптами сборки и запуска сервиса, c исходниками для старых ядер (предположительно для 2.6.18-2.6.22) и исходниками для новых ядер.


Адрес: http://git.etersoft.ru/people/piastry/packages/etercifs.git


Бранч рабочий один - master.


Содержимое:


- Папка sources/legacy содержит исходники ядра для старых ядер. Для каждой версии ядра с 18 по 22 создается симлинк вида kernel-source-etercifs-2.6.18-1.50c.tar.bz2, который указывает на legacy-исходники.

- Папки sources/centosxx содержит исходники для CentOS x.x ядер.

- Папки sources/x.x.xx содержит исходники ядра для новых ядер.


Папка etercifs содержит скрипты, которые попадают в пакет etercifs:


- etercifs и etercifs.outformat - заготовки для rc-скриптов.

- buildmodule.sh - скрипт для сборки.

- functions.sh - функции для buildmodule.sh.

- etermount - скрипт для удобного монтирования шары.


Алгоритм сборки модуля etercifs (кратко):


1. Определяем, какая версия ядра.

2. Определяем, в зависимости от дистрибутива, место, где лежат исходники ядра.

3. Из исходников etercifs выбираем самый последний (по версии cifs и релизу), соответствующий нашему ядру.

4. Создаем временную директорию, распаковываем в неё исходники etercifs.

5. Собираем модуль ядра.


Алгоритм добавления новых версий ядра Linux (версия на английском)


1. Скачиваем изменения из основной ветки ядра (http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git) в git репозитории cifs-2.6.

2. Обновляем ветки etersoft-* путем "git merge vX.x". В случае возникновения конфликтов, разрешаем их и делаем результирующий коммит. Убеждаемся в корректности компиляции модуля из каждой ветки etersoft-*.

3. Создаем ветку новую ветку vX.x-etercifs, куда по очереди проводим слияние веток etersoft-*.

4. Cоздаем новую директорию source/X.x/ в git репозитории etercifs и переносим туда получившиеся исходники модуля для нового ядра.

5. Добавляем правила в .gear/rules по аналогии с существующими записями. Версию модуля берем из файла cifsfs.h исходников.

6. Обновляем файлы AUTHORS, TODO, CHANGES в директории etercifs/ из cifs-2.6/Documentation/filesystems/cifs/.

7. Добавляем информацию о новом ядре в etercifs.spec по аналогии с существующими записями.