Bug 3770

Summary: Адаптировать etercifs для CentOS 5.3 и починить для CentOS 5.2
Product: CIFS@Etersoft Reporter: Konstantin Baev <kipruss>
Component: компиляция модуляAssignee: Konstantin Baev <kipruss>
Status: CLOSED FIXED QA Contact:
Severity: normal    
Priority: P4 CC: chemtech, lav, lbeasty, piastry, sin, yurifil
Version: не указана   
Target Milestone: ---   
Hardware: PC   
OS: All   
URL: http://bugs.etersoft.ru/show_bug.cgi?id=3043#c2
Whiteboard:
Заявки RT: 10003 Связано с:
Дата напоминания:
Bug Depends on:    
Bug Blocks: 3043    
Attachments: Добавлена функция cifs_random()
Патч на legacy для сборки под CentOS 5.2 (ядро 2.6.18-92.el5)

Description Konstantin Baev 2009-04-03 14:34:58 MSD
Не собирается по понятным причинам. Цитирую себя:

Эта новая версия
только что вышла и я больше, чем уверен, что
с ней та же ситуация, что и со SLES10SP2 была - в
ядре SLES, хоть оно и 2.6.16, cifs был из то ли 22, то
ли из 23 ядра. И в редхате тоже к старому ядру
новый cifs приложили. Абсолютно ожидаемая
для меня ситуация. Буду качать CentOS дома с
безлимитного интернета, ставить, выдирать
оттуда исходники ядра, адаптировать под
них наш модуль и проверять. Только так
приходится действовать в случае Red Hat (CentOS) и
SLES(D)
Comment 1 Konstantin Baev 2009-04-08 21:01:59 MSD
Пока есть проблемы со сборкой с CentOS, которые я не смог решить. Проблемы в функции get_random_int. Остальные части патча с трудом, но применил, кроме одной части, где решается проблема выделения памяти при перезагрузке модуля.
Comment 2 Patsev Anton 2009-04-09 14:31:05 MSD
Может чем помочь?
Comment 3 Konstantin Baev 2009-04-09 15:20:54 MSD
(In reply to comment #2)
> Может чем помочь?
> 

Вопрос ставится так: какая функция в ядре CentOS используется вместо get_random_int и имеет такой же интерфейс?

Дело в том, что get_random_int присутствует и в random.c  и в random.h, но отсутствует в Module.symvers и это не дает использовать данную функцию, а она у нас используется. Как выход из положения - можно написать свою. Это не слишком сложный вариант и до конца недели, я думаю, сделаем.
Comment 4 Patsev Anton 2009-04-09 18:08:19 MSD
Буду рад)
Comment 5 Pavel Shilovsky 2009-04-10 14:08:11 MSD
Created attachment 1137 [details]
Добавлена функция cifs_random()
Comment 6 Pavel Shilovsky 2009-04-10 14:10:01 MSD
Компилируется и работает - потестил с помощью rect. Можно теперь собирать etercifs.
Comment 7 Patsev Anton 2009-04-10 14:25:35 MSD
Как будет на ftp потестю)
Comment 8 Elena V. Gurevich 2009-04-10 17:05:10 MSD
Прогнаны тесты для ректа на CentOS . Оба сервиса были запущены на CentOS. Тесты прошли успешно.
Comment 9 Konstantin Baev 2009-04-10 20:17:22 MSD
Собрана версия etercifs-4.3.4 с исходниками для CentOS.

ftp://ftp.etersoft.ru/pub/Etersoft/CIFS@Etersoft/4.3.4/CentOS/5.3/etercifs-4.3.4-eter1centos.noarch.rpm

Поскольку ядро CentOS сильно патченное, то данные исходники рассчитаны для ядро 2.6.18.128. В скрипте проверяется, что дистрибутив - CentOS (grep-ается /etc/redhat-release ). Для RHEL потом допишу проверку.

Стоит проверка по версии ядра. Для < 2.6.18-128 подсовываются legacy исходники, потому что для 2.6.18-92 от 5.2 они подходили. Для 2.6.18-128 и до версии 2.6.22 - специальные. А после - уже по обычной схеме, по ядру. Где надо - варнинги появляются.
Comment 10 Konstantin Baev 2009-04-10 20:18:31 MSD
Да, ядро в CentOS - песня, а не ядро! Смесь ядер с 18 по 27-е.
Comment 11 Konstantin Baev 2009-04-11 00:22:59 MSD
Прошу прощенья, нашел багу: неправильно запаковал исходники, недопоправил спек... Тестировал-то - вручную копируя исходники. Вот и не заметил, что пакет кривой получился.

Исправил, заодно добавив в проверку к CentOS ещё и Red Hat, исправил грамматическую ошибку и сделал параметр CHECK_VERSION, чтобы можно было отключать проверку на версию пакеты при загрузке модуля на случай, если новый на данном ядре не собирается.

ftp://ftp.etersoft.ru/pub/Etersoft/LINUX@Etersoft/Boxes/etercifs/noarch/RPMS.default/etercifs-4.3.4-alt2.noarch.rpm

Сырцы для пересборки в ftp://ftp.etersoft.ru/pub/Etersoft/CIFS@Etersoft/4.3.4/sources/ тоже положил.

Сдается мне, что релиз не последний, учитывая, что на старом ядре что-то сломалось. Но это уже на следующей неделе.
Comment 12 Patsev Anton 2009-04-11 16:23:18 MSD
Тестировал ftp://ftp.etersoft.ru/pub/Etersoft/CIFS@Etersoft/4.3.4/CentOS/5.3/etercifs-4.3.4-eter1centos.noarch.rpm

/etc/init.d/etercifs build
Building for 2.6.18-128.el5PAE Linux kernel (headers in /lib/modules/2.6.18-128.el5PAE/build)
Found CentOS.
Your kernel is 2.6.18-128.x
Building from sources, adapted for kernels 2.6.18-128.x from CentOS 5.3.
Etercifs kernel module sources for current kernel does not installed!

Сорцы установлены:
yum install kernel-PAE-devel.i686  kernel-headers.i386
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Setting up Install Process
Parsing package install arguments
Package kernel-PAE-devel-2.6.18-128.el5.i686 installed and not available
Package kernel-headers-2.6.18-128.el5.i386 installed and not available
Nothing to do

ls -l /lib/modules/2.6.18-128.el5PAE/
итого 1272
lrwxrwxrwx  1 root root     48 Апр 11 18:42 build -> ../../../usr/src/kernels/2.6.18-128.el5-PAE-i686

Надо ставить ftp://ftp.etersoft.ru/pub/Etersoft/CIFS@Etersoft/4.3.4/sources/etercifs-4.3.4-alt2.src.rpm в CentOS?
Comment 13 Konstantin Baev 2009-04-11 20:54:27 MSD
(In reply to comment #12)
> Тестировал
> ftp://ftp.etersoft.ru/pub/Etersoft/CIFS@Etersoft/4.3.4/CentOS/5.3/etercifs-4.3.4-eter1centos.noarch.rpm

Зачем тестировали? Я же сказал, что сорцы etercifs для CentOS 5.3 забыл упаковать в rpm в этой версии.

> Надо ставить
> ftp://ftp.etersoft.ru/pub/Etersoft/CIFS@Etersoft/4.3.4/sources/etercifs-4.3.4-alt2.src.rpm
> в CentOS?

Нет, конечно. Это же исходники.

Для CentOS уже пересобрали. Вот: ftp://ftp.etersoft.ru/pub/Etersoft/CIFS@Etersoft/4.3.4/CentOS/5.3/etercifs-4.3.4-eter2centos.noarch.rpm

Только что собрал на ядре 2.6.18-128.el5 в CentOS 5.3

Надо, конечно, ещё тестировать и исправлять ошибки в 92-м ядре, так что считайте эту версию тестовой. Да оно так и есть.
Comment 14 Konstantin Baev 2009-04-11 21:06:34 MSD
Раз уж переоткрыли багу, то новую делать не буду - переименую эту с учетом 5.2
Comment 15 Patsev Anton 2009-04-12 07:34:07 MSD
Протестировал ftp://ftp.etersoft.ru/pub/Etersoft/CIFS@Etersoft/4.3.4/CentOS/5.3/etercifs-4.3.4-eter2centos.noarch.rpm

Собралось))
Спасибо!
Comment 16 Konstantin Baev 2009-04-13 15:21:11 MSD
Created attachment 1147 [details]
Патч на legacy для сборки под CentOS 5.2 (ядро 2.6.18-92.el5)

(In reply to comment #14)
> Раз уж переоткрыли багу, то новую делать не
> буду - переименую эту с учетом 5.2
> 

Собрал и на 5.2 на ядре 2.6.18-92.el5

Если кому срочно - можете приложить патч legacy_centos52.diff, изменив под себя сорцы legacy. А лучше подождать новую версию.