Надо сказать, что не смотря на то, что все GPL-проекты равны, некоторые из них ровнее. Иначе говоря, GPL-проекты могут быть более открытыми и менее открытыми. И OpenBTS является как раз менее открытым проектом. Как же так, ведь в лицензии написано, что все исходные коды должны быть доступны? Да, доступны, но только когда вы начинаете распространять продукт на основе этих исходны кодов. Т.е. пока вы ведёте разработку, вы можете держать свои изменения при себе и никому не показывать. Или показывать, но ограниченно. И это будет в рамках лицензии. Такие условия логичны, но иногда могут приводить к странным последствиям.
Если вы заглянете на страницу закачек OpenBTS, то найдёте там версию 1.6 (New Iberia) — это версия, которую Kestrel SP выпустили в апреле этого года, то есть почти полгода назад. Из официального блога проекта можно узнать, что на Burning Man 2009 они использовали версию 2.5, которая у них хорошо работала и которую они за время фестиваля хорошенько отладили. Более того, на официальной вики проекта приводится список совместимости с телефонами для версии 2.4.
Где же эти версии 2.4 и 2.5? А они доступны только «активным разработчикам» из сообщества и коммерческим клиентам Kestrel SP. Почему так? Дэвид объясняет — компании требуются средства на существование и клиенты готовы платить за то, чтобы первыми получить доступ к той или иной функциональности. Активные разработчики же могут быть приравнены к клиентам, потому что экономят время и деньги компании. Кроме того, — Дэвид об этом не говорит, но это очевидно, — таким образом несколько затрудняется жизнь тем, кто хочет взять софт на халяву и продать под своим брендом. В принципе, всё выглядит достаточно логично, если бы не несколько «но». Допустим, человек начинает осваиваться в проекте, делает первые тесты и тут же находит и первые баги в проекте. У него есть варианты — (1) игнорировать баг, если он не сильно мешает, (2) сообщить о нём в рассылку или в трекер проекта и (3) исправить его и отправить в проект патч. Для проекта наиболее полезен вариант (3) — проект совершенно бесплатно получает исправление, до которого у основных разработчиков не дошли руки или который редко встречается. От вариантов (1) и (2) проекту по большому счёту ни холодно, ни жарко. Но вспомним, что человек работает со старой версией и знает об этом. И в этом случае у него очень слабая мотивация исправлять найденный баг — раз разработчики пишут, что у них всё прекрасно работает, значит они, наверное, его уже исправили и можно просто подождать, пока они не выложат в общий доступ новую версию. Не делать же, действительно, двойную работу, которая будет потом никому не нужна — разработчики наверняка предпочтут своё исправление бага, чем какое-то стороннее. В итоге, многие ошибки, которые могли бы быть исправлены силами сообщества, разработчики вынуждены исправлять сами, тратя своё время (и деньги).
Есть ещё и другая сторона проблемы. Получается, что сообществу дают версию, в которая заведомо хуже работает, и при этом говорят, что всё работает отлично (но в новой версии!). Люди ставят эту версию, пытаются заставить её работать, и у них это не очень получается, они тратят на это большое количество времени и сил, в попытках понять, что же не так — ведь писали, что всё работает. Потом им говорят: «Вот вам версия поновее, мы её скоро выложим в открытый доступ, она может будет лучше работать». Они пробуют — и всё действительно начинает лучше работать. Как после этого чувствуют себя эти люди? Так, как будто их кинули. Не самое полезное ощущение, когда работаешь с open-source проектом.
PS Да, мы получили от Дэвида на тестирование версии 2.4 и 2.5. Первые результаты обнадёживают — теперь все наши тестовые Siemens'ы спокойно подключаются и работают. Более подробно о новых результатах тестирования — в следующих постах.