Здравствуйте,<br><br>Хочу прокомментировать предложенный вариант к выпуску новых версий Etercifs<br><a href="http://goo.gl/9HRRF">http://goo.gl/9HRRF</a><br><br>Главное изменение в подходе к выпускам - это разбиение поддерживаемых ОС по разным выпускам Etercifs. Например, 5.0.0 поддерживает Ubuntu 10.10, а 5.0.1 - уже только 11.04. Мне кажется здесь неудобным необходимость поиска соответствия между версией ОС и необходимой версий Etercifs. Это ведь безусловно усложнит неодходимый набор действий пользователя, добавит путаницу и дополнительные вопросы службе поддержки, потребует исправления скриптов сборки в коринфе (в одной сборке под разные ОС потребуются разные версии Etercifs).<br>
<br>Аргументом в пользу этого варианта являются упрощение поддержки и уменьшение объёма ненужных исходников под другие системы при установке Etercifs на конкретную, поскольку Etercifs тащит с собой все исходники под все поддерживаемые системы.<br>
<br>Тем не менее, можно ли как-то более мягко подойти к вопросу упрощения поддержки Etercifs? Давайте сформулируем основные проблемы усложняющие его поддержку сейчас.<br><br>Я вижу следующие:<br> - крайне сложно выполнять проверку новых выпусков драйвера на всех новых и старых выпусках дистрибутивов, число которых постоянно пополняется. Мы просто лишаем себя возможности что-то гарантировать, не ограничивая список поддерживаемых систем.<br>
- Довольно странно устанавливать в систему пакет с драйверами, которые никогда не понадобятся, особенно, если их число постоянно растёт. <br>- Довольно странно заниматься работой по созданию веток etercifs для дистрибутивов, которые мы не в состоянии качественно проверить, и которые с малой вероятностью могут понадобиться нашим клиентам.<br>
<br>В связи этим, я вижу следующие компромиссы:<br>- Вероятно, стоит разделить дистрибутивы, для которых осуществляется поддержка драйвера Etercifs, на три категории:<br> - поддерживаемые дистрибутивы - ограниченный набор дистрибутивоов, которые мы самостоятельно тестируем перед выпуском драйвера;<br>
- ограниченно поддерживаемые дистрибутивы - более широкий набор дистрибутивов, тестирование которых мы предлагаем нашим клиентам. При этом, если число заявок на какой-то дистрибутив возрастает, мы переносим исходники в категорию поддерживаемых. Кроме того, для непопулярных дистрибутивов мы можем отмечать, ограниченно поддерживаемые исходники, как проверенные клиентами;<br>
- не поддерживаемые дистрибутивы - дистрибутивы, для которых пользователи могу самостоятельно скомпилировать драйвер на основе патчей предыдущих выпусков Etercifs и патчей к ванильным выпускам ядра, которые мы ведём в отдельных ветках.<br>
- Вероятно, стоит ввести условную сборку rpm для пакета Etercifs с целью ограничения списка включаемого в пакет набора исходников. При этом в пакет включаются: набор исходников и, желательно, патчей к выпускам ванильных ядер, а также набор исходников под конкретные поддерживаемые и ограниченно поддерживаемые ядра данного дистрибутива. <br>
- Вероятно, стоит организовать статическую сборку бинарных модулей etercifs под конкретные ядра, конкретных дистрибутивов. с целью упрощения установки драйверов, снижению числа вопросов по их сборке, <br><br>Данный набор компромиссов может быть реализован и в предлагаемом в документы подходе с таким условием, что ограниченно поддерживаемые дистрибутивы не удаляются из списка устанавливаемых исходников, а только помечаются, как не поддерживаемые.<br>
<br>Вообще, сейчас etercifs содержит следующий список исходников:<br>2.6.16 2.6.24 2.6.26 2.6.28 2.6.30 2.6.32 2.6.34 2.6.36 centos53 centos55<br>2.6.23 2.6.25 2.6.27 2.6.29 2.6.31 2.6.33 2.6.35 centos52 centos54 legacy<br>
<br>Этот список не дифференцирован по дистрибутивам, поэтому может оказаться, что вчерашний 2.6.32 не будет работать на той же версии дистрибутива, что и сегодняшний. Но это случается редко, поскольку мы подменяем все исходники cifs и нам требуется только соответствующих интерфейс к ядру данного выпуска, который меняется редко.<br>
<br>С другой стороны, 2.6.32, собранный в дистрибутивы, основанные на этом выпуске ядра будет различаться. И вести речь, что он работает во всех дистрибутивах не приходится. При этом, вероятность различия интерфейсов в разных сборках ядра одного выпуска под разные дистрибутивы выше, чем в рамках одного.<br>
<br>В итоге, сейчас заданные версии ядер предполагают определённые версии дистрибутивов и, чтобы вести речь о поддержке Ubuntu 10.10 или Ubuntu 11.04 нужно задать соответствия между исходниками для разных выпусков ядра и поддерживаемыми дистрибутивами. Там же можно указать и ограниченную поддержку.<br>
<br><br><br>-- <br>Sin (Sinelnikov Evgeny)<br>