пʼятницю, 7 листопада 2014 р.

Как я делаю утилиты PC-BSD. Что делать? Как делать?


Доброго времени суток!

По случаю наличия некоторго количества свободного времени я не только в блоге активизировался но и начал наносить добро PC-BSD более предметно.
Сегодня попробую рассказать (или как минимум начну рассказывать) как и почему я сейчас делаю новую настройку клавиатуры.
Ну, для затравки скриншоты того что есть на данный момент. Пугаться рано! Это далеко не последний вариант.




вівторок, 4 листопада 2014 р.

Мне не хватает...

 Доброго времени суток.А попытаюсь ка я написать о том чего мне в FreeBSD не хватает для полного счастья.
Этот список основан только на личных хотелках и не отражает всех проблем и нюансов. К тому же тут нет хотелок касающихся именно PC-BSD. В этом случае хотелки в большинстве случаев плавно трансформируются в планы на следующий год :)
Список предварительный, думаю буду еще дополнять.

Внимание переводчикам!

Доброго времени суток!
Сервер переводов сменил адрес. Теперь это http://translate.pcbsd.org/
Сервер переехал на более новую версию pootle. Выглядит неплохо, но (по крайней мере для украинского языка) все переведенные строки отмечены как незаконченные.
Более того, сейчас Крис занялся выделением переводов в отдельный пакет. Для переводов создано новый репозитарий по адресу https://github.com/pcbsd/pcbsd-i18n Это позволит проводить обновление переводов отдельно от утилит, а в перспективе, возможно, устанавливать только необходимые локализации.
Сейчас пытаюсь убедить Криса немного изменить поведение сервера переводов во время релиза. Суть в том, чтобы некоторое время после релиза сервер переводов позволял переводить строки именно этого релиза, а не сразу переключаться на Edge. Во- первых это позволит лучше переводить production ветку. Всегда к релизу много чего не готово. Почти у всех. А так недостающее можно будет еще с обновлениями закончить. К тому же, после релиза все равно многие переводчики не пытаются переводить Edge, т.к. набор строк для перевода еще не стабилизирован.

понеділок, 27 жовтня 2014 р.

Ждем, надеемся и верим: Интересное из Google Summer Of Code 2014

Доброго времени суток.
Просмотрел проекты касающиеся FreeBSD из  Google Summer Of Code 2014. Есть много интересного. Я знаю что далеко не все из них попадут в CURRENT, но хочется надеяться что по крайней мере эти дойдут до своего логического завершения. Сам список проектов можно посмотреть тут: https://wiki.freebsd.org/SummerOfCode2014Projects

пʼятницю, 24 жовтня 2014 р.

YouTube канал посвященный PC-BSD и TrueOS

Доброго времени суток.
На YouTube появился официальный (англоязычный) канал посвященный PC-BSD и TrueOS.
Пока что видео там не много- две инструкции по установке (графической  PC-BSD и консольной TrueOS) и (что приятно) обзор моего порта KDE Connect.
Надеюсь кому пригодится иди хотя бы будет интересно.
Ссылка на канал: https://www.youtube.com/channel/UCyd7MaPVUpa-ueUsGjUujag

четвер, 23 жовтня 2014 р.

Новшества PC-BSD 10.1. Скоро релиз.

Доброго времени суток.
В связи с приближением релиза 10.1 хочу немного рассказать немного о новшествах этого релиза. Для тех кто  использует набор пакетов Edge большинство из ниже перечисленного конечно же сюрпризом не будет. Судя по Wiki релиз запланирован на третье ноября.

вівторок, 7 жовтня 2014 р.

Новые порты

Доброго времени суток!

По случаю наличия небольшого количества свободного времени сделал два новых полезных порта. Сейчас они добавлены в репу портов pcbsd на github, но Крис, вроде, собирался комитить в основную репу FreeBSD.

середу, 3 вересня 2014 р.

PC-BSD 10.0.3-RC2. Скоро релиз.

Доброго времени суток.
Вышел второй релиз кандидат PC-BSD 10.0.3. Релиз планируется на следующей неделе.
Напоминаю что если у Вас есть замечания или проблемы сейчас самое время написать баг репорт на https://bugs.pcbsd.org/projects/pcbsd
Особенно обратите внимание на локализацию. Скорее всего после релиза она обновлятся в production ветке уже не будет. Сервер локализации http://pootle.pcbsd.org/

середу, 27 серпня 2014 р.

Немного рутины. Много мелочевки.

Доброго времени суток!

После достаточно большого вынужденного перерыва вновь захотелось наносить пользу и причинять добро проекту PC-BSD. А заодно и попробовать в деле новый баг трекер (в качестве склеротички).
Поскольку новые фичи временно не принимаются (до релиза 10.0.3) все это я сделал в своей репе на GitHub и буду добавлять в основную репу PC-BSD уже после релиза.

пʼятницю, 22 серпня 2014 р.

Вышел PC-BSD 10.0.3-RC1

Доброго времени суток!
Хоть и поздновато, но рад сообщить о выходе первого релиз кандидата новой версии 10.0.3
Буквально пару слов о новшествах (могу что- то забыть):

  • Обновились версии окружений рабочего стола
  • Осуществлен переход на новую версию pkg (1.2.7 -> 1.3.5.) 
  • Некоторые улучшения в Warden (теперь полноценно может работать только на ZFS)
  • Ну и конечно еще куча вещей о которых я запамятовал.
Обновление уже доступно в наборе пакетов Edge. Образ диска можно скачать по адресу http://download.pcbsd.org/iso/10.0-RELEASE/testing/amd64/

Из известных проблем:
  • Обновившийся до версии 36 Chromium работает местами не вполне стабильно
  • В новой версии PKGNG было изменено достаточно много вещей. Процесс миграции (который, кстати, проводится хоть и автоматически, но в явном виде) сейчас в основном проходит гладко. Но ввиду достаточного количества изменений в PKGNG может случится всякое. Если у Вас возникли проблемы, пожалуйста отпишитесь в баг трекере!
  • Microsoft заблокировала старые версии Skype. Соответственно, пока linux base не будет обновлена, скайп работать не будет :(

Ни и в который раз напоминаю что лучше попробовать релиз кандидат и отписаться о проблемах чем потом мучится с релизом. Баг трекер тут: https://bugs.pcbsd.org/projects/pcbsd

четвер, 21 серпня 2014 р.

Работа связаная с FreeBSD. Насколько реально?

Доброго времени суток!
Решил подумать о смене места работы. Варианты есть, но хотелось бы все таки посмотреть есть ли что- то связанное с FreeBSD. А вдруг получится совместить приятное с полезным? Может кто в Киеве занимается? Или готов взять на контракт на full time удаленнку?
Мой профиль в Linkedin:  https://www.linkedin.com/pub/yuri-momotyuk/3/52/8b
Ну и если есть вакансии, конечно, почтой можно все обсудить.

Внимание! Новый баг трекер

Доброго времени суток!
Проект PC-BSD переехал на новый баг трекер. Теперь сообщайте об ошибках на https://bugs.pcbsd.org/

Теперь вместо trac используется RedMine. Лично меня это несказанно радует (RedMine мой любимый баг трекер).

Кстати, кто не заметил появился билд сервер - http://builds.pcbsd.org   И опять мой любимый Jenkins. Это прямо праздник какой- то!

четвер, 14 серпня 2014 р.

Кратко о новом DE Lumina

Доброго времени суток!

Уже достаточно давно в новостях о PC-BSD фигурирует рабочий стол Lumina. При этом даже гуглопоиском находится всего пара картинок (не самых свежих, кстате) и ни одного нормального обзора. Признаюсь, я сам за ним почти не следил. Почти не игрался, комиты не смотрел. Только сейчас, ИМХО Lumina более или менее готов для того чтобы составить о нем какое- то мнение.
Если хотите самую свежую версию придется испльзовать PC-BSD с Edge package set. В портах FreeBSD я почему- то Lumina не нашел. Думаю, это временно.

Итак, вот что пока получилось.



середу, 13 серпня 2014 р.

Есть ли жизнь на PC-BSD: Играем

Доброго времени суток!

Судя по всему предыдущий пост про любимые игры понравился. Ок. Напишу еще.

FreeCiv


Сайт: http://freeciv.wikia.com/wiki/Main_Page
Жанр: Пошаговая тактика
Платформы:  






Название PBI: freeciv
Установка: # pbi install freeciv
Установка пакета pkg: # pkg install freeciv
Установка порта: # cd /usr/ports/freeciv & make install clean
Как не сложно догадаться ремейк цивилизации. Ближе всего, наверное, к второй части. Правила могут настраиваться достаточно широко. Еще один весомый плюс именно FreeCiv- модульность. Вся игровая логика полностью отделена от представления. Соответственно в игре есть хороший выделеный сервер для игры по сети и несколько разных фронт ендов. Так, например, есть хорошая версия для web: http://play.freeciv.org/ Также в наличии вполне приличная версия для Android.
Вобщем, FreeCiv вполне достойный ремейк классической цивилизации. Тут, конечно, нет трехмерности Civilization V, но в остальном более чем достойно.




Ну и как это выглядит на планшете / телефоне:

0AD


Сайт: http://play0ad.com/
Жанр: Стратегия реального времени (RTS)
Платформы:  






Название PBI: 0ad
Установка: # pbi install 0ad
Установка пакета pkg: # pkg install 0ad
Установка порта: # cd /usr/ports/0ad & make install clean

0AD - стратегия реального времени чем- то сильно напоминающая Age of Empires. У этой игры пока нет достойных opensource конкурентов в части качества реализации. Особенно учитывая то что 0ad изначально была коммерческим проектом. После беглого взгляда на код это видно. Ничего не скажу плохого про opensource проекты, но в большинстве из них меньше внимания уделяется мелочам. Ну не хотят большинство людей заниматься мелочами. А заставить их нельзя. Кроме того, игру делали профессиональные дизайнеры и художники, что, согласитесь, редкость для открытых игр. Если по части кода паритет хотя бы как- то соблюдается, то по части визуального оформления и моделей часто бывает хуже. Но не в этом случае.
Считается что игра в разработке. Каждый релиз- это альфа версия. Не смотря на это игра вполне играбельна. С каждой новой версией добавляют неплохое количество плюшек. Короче говоря если нравятся стратегии и сеттинг а-ля Age of Empires- "must have" однозначно.







вівторок, 12 серпня 2014 р.

Есть ли жизнь на PC-BSD? Любимые игры

Доброго времени суток!

Так уж получилось что из-за болезни не особенно следил и, разумеется, вообще не участвовал в разработке. Поэтому новостей или технических статей пока что писать не буду. За два месяца все могло уже изменится.
Попробую написть о чем то менее техническом и, как надеюсь, тоже полезном. Собственно PC-BSD изначально задумывалась как ОС для домашнего компьютера. Если Вы думаете что я на ней только программирую, Вы ошибаетесь. Я ее использую в хвост и в гриву именно в качестве ОС для домашнего ПК / ноутбука. Это значит что я сморю фильмы, пользую интернет, слушаю музыку, пишу по мере надобности документы, смотрю фотографии. Ну и играюсь, конечно (как бы дико это на первый взгляд не звучало).
В этой записи я перечислю только две самые любимые игры. Свой личный список "must have". Эти игры у меня установлены всегда. Естественно есть еще. Более того, есть даже лучше и качественее (0AD, например). Об остальных я, возможно, напишу позже.
Все игры- это нативные приложения. Никакого wine и линуксатора. Вайн у меня тоже стоит. И в игры я с его помощью играю. Но хочется рассказать именно о родных, тем более что достойные есть.
Итак...

UFO Alian Invasion


Сайт: http://ufoai.org/
Жанр: Стратегия / пошаговая тактика
Платформы:  




Название PBI: ufo alien invasion
Установка: # pbi_add "ufo alien invasion"
Установка пакета pkg: # pkg install ufoai
Установка порта: # cd /usr/ports/ufoai & make install clean

По моему скромному мнению одна из лучших наследниц XCOM Enemy Unknown. Геймплей максимально приближен к оригинальной XCOM (что, ИМХО, плюс). Единственный минус- неразрушаемое окружение. А в остальном- все тот же старый добрый УФО на в к ачественно новом исполнении. Короче говоря, если Вам нравится классический XCOM, но было бы интересно увидеть его в 3D (покрутить камеру, приблизить, отдалить), то Вам понравится.






Xonotic



Сайт: http://www.xonotic.org/
Жанр: Шутер
Платформы:  






Название PBI: xonotic
Установка: # pbi install xonotic
Установка пакета pkg: # pkg install xonotic
Установка порта: # cd /usr/ports/xonotic & make install clean

Еще один opensource наследник моей любимой игры. На этот раз - Unreal Tournament. Из оригинального Unreal здесь взято очень многое. Пусть оружие здесь выглядит и немного по- другому, но механика игры сохранена (вплоть до наличия чисто анрыловских мутаторов).
Некоторое время на работе практиковал побегушки с коллегами по сети. Всем нравилось. При этом играли с линукса и с винды. Для них есть даже portable версия. Распаковал и запускай. Ну и дома, естесственно с ботами или через интернет.
Разработчики обещают со временем управление техникой как в UT2004.
Короче говоря, если нравится Unreal Tournament - xonotic понравится тоже.










вівторок, 1 квітня 2014 р.

PC-BSD 10.0.1. Что планируется в PC-BSD 10.0.2

Добрый день!
Впервые за много времени руки дошли таки до блога. За прошедшее с прошлой публикации время случилось сразу несколько событий, самым значимым из которых стал выпуск PC-BSD 10.0.1. По моему личному убеждению именно таким должен был быть релиз 10.0.
Напомню вкратце  основные изменения:
  • Было исправлено огромное количество ошибок. В том числе и множество мелких и косметических недочетов. Посмотрев внимательно что не работало в релизе 10.0 и стало работать в 10.0.1 я немного... гм... опешил наверное.
  • KDE и Cinnamon были обновлены до актуальных версий (4.12 и 2.0 соответственно)
  • Звуковая подсистема начала переводится на PulseAudio. Тут ничего комментировать не буду. Наверное не плохо. Но глубокий смысл этого нововведения для меня не ясен. Правда, я особенно не вникал.
Но есть и "нюансы":
  • По непонятным для меня причинам, несмотря на то что KDE реально версии 4.12.3, пакет kde-workspace (и несколько других) имеют версию 4.11.7. Это проблема на прямую не связанная именно с PC-BSD. Что- то перемудрили FreeBSD KDE team. Короче говоря, не смотря на то что утилита "About PC-BSD" показывает KDE 4.11 на самом деле у Вас KDE 4.12 :)
  • Переключение раскладки клавиатуры все еще работает не так как хотелось бы.
Еще пару слов о раскладке клавиатуры.  PC-BSD- система официально  поддерживающая сразу  несколько окружений рабочего стола. Было принято решение использовать единый фреймворк для настройки и переключения раскладок клавиатуры - IBUS с тем чтобы делать это одинаково для всей системы. Идея, вроде бы, благая... Но, как обычно вылезли "нюансы". Я, например, так и не смог заставить переключаться по Alt+Shift, используя стандартную IBus Settings. Может быть я психану как- то и либо напишу свой IBus Settings либо сделаю вменяемую общесистемную настройку "Использовать IBus / Использовать средства десктопа". С другой стороны, может и не психану.
Короче говоря, если Вы хотите использовать штатную переключалку KDE:
  1. Открываете "Параметры системы" (KDE)
  2. Выбираете "Запуск и завершение"
  3. Выбираете "Управление службами"
  4. В списке "Службы, загружаемые при запуске" устанавливаете флажок возле "Фоновая служба клавиатуры" и запускаете эту 
  5. службу.

 Планы на 10.0.2

Прежде всего, у PC-BSD наконец- то появилась вменяемая дорожная карта (Roadmap): http://wiki.pcbsd.org/index.php/PC-BSD%C2%AE_Roadmap
Ниже я кратко прокомментирую  то что там сейчас написано:
  • В переписке проскакивало упоминание о том что наконец то версия Gnome3 в FreeBSD догонит апстрим. Это косвенно подтверждается из других источников. Признаюсь честно, пункт касающийся обновления Gnome до 3.12 я добавил в Roadmap опираясь, скорее на косвенные признаки, но вероятность достаточно высока.
  • Почти закончена работа по приведению интерфесов графических утилит к единому стандарту в части меню и стандартных кнопок.
  • В утилиту управления пакетами добавлен механизм очистки от ненужных автоматически установленных пакетов (команда pkg cleanup)
  • В панели управления происходит значительное изменение набора элементов. Если раньше, в случае если рабочий стол имел свой конфигуратор (KDE system settings, например), то элементы из этого конфигуратора отсутствовали в панели управления. Теперь же для всех рабочих столов будет почти полный набор элементов (настройки мыши и клавиатуры, внешний вид, цвета, шрифты и многое другое). Основная идея в том чтобы пользователь видел приблизительно один набор элементов для всех рабочих столов (клавиатура, мышь, внешний вид окон) да и вообще в 90% случаев обходился стандартной панелью управленя. Для остальных 10% добавлена отдельная кнопка запуска конфигуратора рабочего стола.
  • В панель управления добавлена возможность скрывать все элементы кроме общесистемных. Это актуально в связи с предыдущим пунктом. Выбор пункта "System only items" в выпадающем меню выбора рабочего стола спрячет элементы, касающиеся текущего рабочего стола. Поскольку общее количество элементов возрастет, думаю будет удобно убрать все кроме общесистемных настроек когда это нужно.
  • В большой своей части переписан Mount Tray (почему- то в русском переводе "Установить лоток"). Во- первых он теперь выполняется с правами пользователя. Во- вторых сильно переписан механизм сканирования устройств и определения файловых систем на них. Ну и в-третьих была добавлена возможность проигрывания только что примонтированных Audio CD.
  • В очередной раз переписаны низкоуровневые компоненты работы с PBI и изменен механизм запуска PBI приложений. Крис пишет что стало стабильнее и быстрее. Прошлая реализация была достаточно заумной и громоздкой и, хоть и обеспечивала дополнительную изоляцию PBI, но работала медленно и иногда даже вызывала kernel panic :(
  • Продолжая тему "общесистемных велосипедов" (в хорошем смысле) планируется отказаться от аудио микшеров, специфичных к тому или иному окружению рабочего стола. Планируется создать свой микшер и регулятор громкости  для системного лотка, использующий PulseAudio. Идея не плохая. Посмотрим на реализацию.
  • Я не оставляю надежды довести до ума центр обновлений. Надеюсь до 10.0.2 успеть. Все сильно зависит от свободного времени.
  • В Bluetooth manager планируется добавить прозрачную поддержку bluetooth клавиатур и мышей.
  • Планируется вернуть в инсталятор поддержку полнодискового шифрования на основе GELI с интеграцией ее с ZFS boot environments.
  • Кен добавил простой механизм взаимодействия между утилитами, основанный на файлах "флагах". Например, с помощью флагов можно указать на необходимость перезагрузки. Или, скажем Package Manager  может сообщать о том что происходит процесс установки пакетов и пока пакеты трогать не следует и т.д. Короче говоря, штука  хоть "на первый взгляд как будто не видна", но однозначно полезна. Можно было бы сделать все карсиво через, скажем, dbus. Но решение Кена во- первых уже неплохо работает, а во- вторых просто как мычание, что тоже плюс.
Ну и немного собственных планов.
 По причине кончины винчестера на моем ноутбуке я некторое время вижу PC-BSD только внутри VirtualBox :( Соответственно до покупки нового я не могу:
  • Добавить элементы панели управления для Cinnamon и Gnome3 (они в VirtualBox не работают)
  • Добить таки центр обновлений. (Для этого нужно вдумчиво посидеть дома на выходных).
На основной работе начался новый проект (а это время), на неделе нужно забрать два колеса из кап. ремонта (нужно же сезон открыть, опять время). Короче говоря, в ближайший месяц только мелкие задачи на час- два в неделю.
Из планов на более отдаленное будущее по большому пока со стопроцентной вероятностью  могу говорить только о переписывании панели управления на Qt5 с добавлением полезных вещей, улучшением внешнего вида и правкой врожденных "болезней". Но это уже после 10.0.2

четвер, 13 лютого 2014 р.

Что не доделано в PC-BSD 10.0-RELEASE -2: Эпичная битва за качество

Доброго времени суток.
То что PC-BSD 10.0-RELEASE вышел немного комом в общем- то не секрет. Такое бывает. Этому были свои причины. После последнего общения с Крисом мы, вроде как, эти причины окончательно выяснили и взялись исправлять и причины и следствия.

Битва с багами

Наконец то началась эпичная битва с багами! Чинится все. От старых известных проблем до косметики! Не упустите свой шанс. Если Вы знаете о проблеме (даже мелкой) потратьте три минуты на багтрекер - http://trac.pcbsd.org/ Лучшего времени для этого пока что не было.

Система формирования релизов

Внимание! Все изложенное ниже носит исключительно предварительный характер!
По результатам общения с Крисом мы, вроде как, выработали систему формирования релизов. Она пока что обсуждается, но в общих чертах, думаю, уже сформировалась. Основная проблема- отсутствие времени на стабилизацию перед релизом. Да чего там, стабилизации, как таковой, вообще не было. Надеюсь, мы придумали компромиссный вариант который устроит большинство и в то же время позволит держать темп развития.
Итак:

Формирование нового релиза


  1. При формировании нового релиза будут всегда явно присутствовать стадии беты и релиз кандидата. (Это было и раньше. Дальше- интереснее)
  2. На стадии беты будут стабилизироваться и отбираться возможности, которые будут включены в релиз (feature freeze). К моменту конца бета фазы все возможности должны быть зафиксированы
  3. В релиз кандидаты будут включаться только исправления. Никаких новых функций, как это было в 10.0
Вообщем- то все написанное выше и так должно бы соблюдаться. Но теперь это будет задекларировано явно. И, вроде как, будет соблюдаться. Плюс образы беты и релиз кандидатов должны быть лучше анонсированы, чтобы об их существовании как минимум знали.

Обновление production ветки

Тут я остановлюсь немного подробнее. Как многие уже знают, одной из новых фич 10.0 стало появление двух наборов пакетов - Production и Edge. Первый позиционируется как стабильный набор, второй- как эксперементальный (немного похоже на Debian testing). Это позволит с одной стороны иметь стабильную ветку "поставил и забыл" для организаций, родственников и просто обычных людей. С другой- сохранить что- то похожее на Rolling release для тех кто хочет всего и сразу и готов мирится с эпизодическими багами.
Но при таком подходе есть небольшой нюанс. Связан он, в в том числе с апстримом. Перед релизом FreeBSD порты замораживаются. Это стабильно приводит, в том числе, к тому что только где- то через месяц после релиза в порты попадает новая версия KDE. В 10.0-RELEASE присутствует KDE 4.10. В Area51 на данный момент уже KDE 4.12. Более того, сразу после релиза был добавлен Cinnamon 2.0 (обновление должно уже быть  доступно в Edge). Короче говоря, нужно было придумать что- то чтобы с одной стороны пользователи production ветки использовали как можно более стабильную систему, с другой же не считали себя обделенными. Вроде как придумали:
  1. Один раз в среднем в три месяца уже стабильные новшества скопом переносятся из edge в production
  2. Перед этим переносом ветка Edge стабилизируется. Длится это две недели- месяц. Во время стабилизации принимается решение о том что именно уже стабильно и будет переносится. Для новшеств,  запланированных к переносу в production на протяжении периода стабилизации запрещены кардинальные изменения (только починка багов)
  3. Во время стабилизации должно быть выпущено хотя бы одно- два обновления edge для того чтобы пользователи могли протестировать изменения
  4. Единственный путь для того чтобы какое- то новшество попало в production- это перенос из edge как описано выше (т.е. раз в три месяца). Короче говоря production остается неизменной три месяца. ВСЕ новые фичи только в edge. В production ветку будут переносится только исправления.
  5. Каждый такой перенос будет сказываться на версии production ветки. Результат каждого такого переноса будет именоваться обновлением (Update). Обновления будут нумероваться. Соответственно, версия production ветки будет вроде этой - PC-BSD 10.0 RELEASE Update 1. Если хотите, можете провести аналогию с сервис паками Windows.
  6. Установочные образы будут заново формироваться для каждого обновления.
Выглядеть это должно как- то так:


Учитывая что обычно между релизами FreeBSD проходит приблизительно год и месяц, то мы будем иметь три обновления Update 1 - Update 3 для каждого релиза. В конце цикла все наработки отправляются в новый релиз.

 И еще...

Сейчас в списках рассылки происходит довольно активное шевеление. Думаю, нас ждут перемены к лучшему (я надеюсь). Некоторые новые идеи и веяния я опишу уже в следующем посте.



пʼятницю, 31 січня 2014 р.

Инфраструктура разработки PC-BSD

Доброго времени суток!
У меня таки появилось некоторое время на блог. Пост писался несколько дней урывками. Заранее извиняюсь за возможную несвязность и ошибки.  Но, надеюсь, будет интересно.

Практически ни один более или менее крупный IT проект не обходится без инфраструктуры разработки, в которую обычно входит система контроля версий, багтрекер и некоторые другие вещи. Сегодня я как раз хочу рассказать о такой инфраструктуре проекта PC-BSD.
Если кто- то хочет внести свой вклад в разработку, возможно, он найдет здесь полезную для себя информацию.

GitHub - система контроля версий

В прошлом году было принято решение о переезде PC-BSD с внутреннего subversion сервера на git. В качестве площадки был выбран github. На данный момент используется несколько репозитариев. Их список можно посмотреть здесь: https://github.com/pcbsd

Основной репозитарий

Основной репозитарий находится здесь: https://github.com/pcbsd/pcbsd Тут ведется основная разработка утилит и скриптов PC-BSD а также содержатся почти все файлы настроек.

PBI

Каждый пакет PBI собирается на основании файла pbi.conf. Конфигурационные файлы для сборки всех присутствующих  в AppCafe PBI хранятся здесь: https://github.com/pcbsd/pbi

Дерево портов

Как многие уже знают в релиз 10.0 были добавлены окружения рабочего стола Gnome 3, Mafte и Cinnamon. В основном рапозитарии традиционно присутствовал каталог ports-overlay. В этом каталоге размещался оверлей, содержащий порты и патчи отсутствующие в официальном дереве портов FreeBSD. Однако, после того как к делу подключился Joe Maloney с портами для Mate Cinnamon и Gnome 3 количество портов в оверлее ощутимо возросло. Плюс, ко всему, учитывая довольно активные коммиты от Joe, стало проще просто выделить порты в отдельный репозитарий. Этот репозитарий периодически синхронизируется с деревом портов FreeBSD, но, также, содержит довольно много портов и патчей пока что отсутствующих в последнем. Репозитарий находится тут: https://github.com/pcbsd/freebsd-ports
Содержимое именно этого репозитария появится у Вас после нажатия кнопки "Fetch ports tree" в System manager

Система сборки

До осени прошлого года система сборки PC-BSD не была опубликована. Основной репозитарий проекта всегда содержал исчерпывающую информацию о том каким образом собирается PC-BSD (наборы пакетов, оверлеи, патчи, списки ссылок файловой системы). В принципе имея все это вполне можно было бы собрать PC-BSD самостоятельно (при должном упорстве даже обеспечить совпадение бинарников). Но, тем не менее, сами оригинальные сборочные скрипты до недавнего времени были недоступны широким массам. 
Итак, если Вы хотите самолично собирать PC-BSD Вам сюда: https://github.com/pcbsd/pcbsd-build


Исходные тексты базовой системы

Начиная с версии 10.0 PC-BSD кроме собственного репозитария дерева портов обзавелась собственным git репозитарием исходных текстов базовой системы. Этот репозитарий синхронизируется с FreeBSD subversion, но также содержит пока что не включенные в него патчи. До создания отдельного репозитария на исходный код FreeBSD накладывались src-patches. 
Исходные коды базовой системы PC-BSD находятся тут: https://github.com/pcbsd/freebsd
Содержимое именно этого репозитария появится у Вас после нажатия кнопки "Fetch system sources" в System manager.

Проекты PC-BSD

Репозитарий содержит исходный код некоторых новых утилит, не достигших должной степени готовности для включения их в основной репозитарий. В основном здесь хозяйничает Кен. Коммиты бывают время от времени. Репозитарий интересен прежде всего тем что можно подсмотреть что нового Кен нам готовит. Тут в свое время начиналась разработка текстового инсталятора, EasyPBI. Сейчас тут создается утилита EasyPort. URL репозитария:  https://github.com/pcbsd/pcbsd-projects

Небольшое лирическое отступление...

Могу догадаться о реакции части общественности на информацию о том что в PC-BSD появились свои репозитарии для base system sources и ports tree. Могу предположить мысли PC-BSD уже не FreeBSD!!! ( На уровне Ubuntu != Linux). Я попытался объяснить это выше, но, думаю, все равно стоит написать предметно.
За все время пока я пристально смотрю на PC-BSD (как минимум с 7.0) на чистые исходники FreeBSD при сборке накладывались патчи. Это были патчи для поддержки оборудования, фиксы досадных багов. По мере того как эти патчи коммитились в основное дерево исходных кодов они удалялись из списка патчей. То же с портами. Именно благодаря тестированию внутри PC-BSD Gnome 3, который появится в портах будет более стабилен. Благодаря тестированию патчей на ядро / freebsd install их версия во FreeBSD в конечном итоге будет работать лучше.
PC-BSD в большей степени десктопная ОС. Темпы ее разработки, скажем так, более высокие. Требования по стабильности, местами, более мягкие. Практически все патчи закоммиченые в git репозитарии PC-BSD так или иначе попадают в FreeBSD subversion. Создание отдельных репозитариев, как я понимаю, просто сильно упрощает работу. Можете считать сложившуюся ситуацию отдаленно похожей на пару Fedora/RHEL.

Полезные ссылки

Это быстрые ссылки, которые я использую почти каждый день



Trac - багтрекер


Багтрекер PC-BSD расположен по адресу http://trac.pcbsd.org/
 Где- то в конце 2013го года в багтрекере навели таки "красоту и икебану". На данный момент именно это место наиболее предпочтительно для сообщения об ошибках. Естественно, форумы и списки рассылки никто не отменял. Но разработчикам намного удобнее пользоваться именно баг трекером. Сообщение в списке рассылки может потеряться, забыться. Пост на форуме тем более. 
Важное примечание: Пожалуйста, не поленитесь зарегистрироваться и создать запись в баг трекере. Так ваш отчет о проблеме не потеряется. При создании тикета пожалуйста не забудте указать версию системы и проблемный компонент.
Второе (очень!) важное примечание: Если у Вас возникла проблема- пишите баг репорт! У всех нас разные компьютеры. Далеко не факт что проблема существует на компьютере разработчика. У всех нас разные потребности и модели использования. Не факт что разработчик использует систему точно также как и Вы, или может вообще чем- то не пользоваться (в т.ч. и некоторыми функциями своих же приложений). Порой из- за этого в своих же утилитах находятся просто феерические баги! Основная идея- пока о проблеме (даже идиотской) никто не сообщит- о ней, часто, никто и не знает. Нет репорта- нет проблемы. Это open source. Для того чтобы все работало как Вам нужно, нужно сначала хотя бы сказать что Вы хотите.

Полезные ссылки

Pootle - система переводов

Любой желающий может принять участие в переводе утилит PC-BSD на свой родной язык.Для этого есть вполне удобная система переводов pootle, расположенная по адресу http://pootle.pcbsd.org/ После несложной регистрации Вы можете заполнить пробелы в переводе или исправить в нем неточности.
Перевод охватывает все графические утилиты PC-BSD (Инсталятор, AppCafe, панель управления и др), а также элементы панели управления и системного меню.
Строки для перевода периодически обновляются из основного git репозитария. Результаты перевода периодически туда же коммитятся. При этом сервер понимает Qt translations и поля *.desktop файлов. Все это делается на сервере какими- то самописными скриптами которые, хоть и достаточно редко, но подглюкивают. Так что может случится что переведенная, казалось бы, утилита после автоматического коммита в PC-BSD git или при неудачном расположении луны опять становится 'untranslated' :(
По состоянию на сейчас (30 января) украинский перевод, которым занимаюсь я, более или менее готов (осталось перевести только половину строк из Life Preserver и ZFS manager полностью). Беспокойство вызывает перевод русский...  Не смотря на то что последнее изменение было не так давно (12 января) состояние русского перевода далеко до идеального. Переводом занимается человек с ником s0t. Скорее всего у него сейчас просто не хватает времени. Боюсь, что если никто ситуацию не поправит то релиз 10.0 в русской локализации будет выглядеть плохо. Если Вы хотите исправить ситуацию- милости просим. Но очень желательно выйти на контакт с переводчиком s0t (можно попробовать pcbsd-translations@) или хотя бы внимательно посмотреть как он переводил. Сейчас объясню почему. Дело в том что в каждом переводе существуют разного рода соглашения (Например Cancel - "Отмена" или "Отменить", специфический перевод терминов, любимые синонимы и т.д. Так, например в украинском переводе я перевожу "Progress" - "Поступ" и Currently - "Наразі". Так уже было до меня. Да и достаточно близко к переводу KDE. Но этот "Поступ" мне до сих пор иногда глаз режет.


Wiki

Официальная Wiki находится тут: http://wiki.pcbsd.org/index.php/Main_Page
Dru поддерживает Wiki в неплохом состоянии. Информация там попадается вполне себе нужная, но основной интерес представляет руководство пользователя - PC-BSD Handbook - http://wiki.pcbsd.org/index.php/PC-BSD%C2%AE_Users_Handbook/10.0
С недавнего времени официальный хендбук делается именно на основе Wiki. Более того, используя все тот же вики движок хендбук можно переводить! У меня для украинского языка духу пока не хватает взяться. Русским переводчикам и так много работы. Но мне бы очень хотелось чтобы нашелся человек, осиливший перевод хендбука. Поверте, он очень неплох.
В любом случае как минимум просмотрите хендбук. Там действительно много всего интересного и нужного.

Списки рассылки

Основная тусовка проходит именно в списках рассылки. Полный перечень списков рассылки PC-BSD можно посмотреть тут: http://lists.pcbsd.org/mailman/listinfo
Среди них достаточно много полумертвых. Основные списки рассылки:

testing@

Тут собирается основная тусовка. До недавнего времени (до доведения до нормального состояния багтрекера) было самым предпочтительным местом для репорта багов.
Я придерживаюсь часто такого алгоритма действий:

  • Если баг тривиальный - просто пишу в баг трекер
  • Если я в чем- то не уверен, нужно что- то спросить, обсудить и т.д. то все равно в баг трекер но еще и письмо в testing@ со ссылкой на trac

dev@

Тут обсуждаются вопросы связанные с разработкой. 

translations@

Тут изредка общаются переводчики.

Полезные списки рассылки (информационные)





Что не доделано в PC-BSD 10.0-RELEASE

Доброго времени суток!

Прежде всего, хочу поздравить всех неравнодушных  с выходом PC-BSD 10.0-RELEASE!
Описывать основные новшества релиза я не буду. Смотрите хотя бы новость на opennet: http://www.opennet.ru/opennews/art.shtml?num=38964 Я хотел бы написать об известных мне проблемах этого релиза и их причинах.

Итак. С начала о проблеме которая появилась благодаря мне лично. Из- за некоторых событий (см. пост to be continued 2..., например) я не мог уделять достаточно времени подготовке релиза. Соответственно, имеем несколько проблем.

Панель управления и MATE/Gnome 3/Cinnamon

Первая- элементы панели управления для новых окружений рабочего стола (В баг трекере: https://trac.pcbsd.org/ticket/958#ticket). Эти элементы я был закоммитил. Но, честно говоря, сделал это по большей части "абы было". Нормальный набор элементов я рассчитывал добавить до релиза, но, как видите, не успел...
Не то чтобы их вообще не было, но некоторые не работают, некоторые стоило бы добавить. Короче, не хорошо.
Вторая проблема- определение текущего рабочего стола. С переходом на PCDM нужно было поправить некоторые вещи для определения текущего рабочего стола (ну и добавить определение новых рабочих столов). В принципе коммит я сделал (https://github.com/pcbsd/pcbsd/commit/04d2faff3d90467fee1641d8ed9467e886c4a0c6) но не уверен что он успел попасть в релиз.

Центр обновлений

По тем же причинам что я писал выше центр обновлений в релизе все еще не готов :( Более того, с переходом на pkg-ng 1.2 (в каком- то из RC) отломалась обработка прогресса загрузки пакетов. Это все нужно чинить, доделывать. Думаю до следующего крупного обновления production пакетов это будет все доделываться и потом (месяца через 3), надеюсь, таки заменит старые обновлялки. До того времени будет существовать параллельно и понемногу допиливаться.

Теперь о других известных мне проблемах

Локализация

Ребята, русская локализация выглядит, мягко говоря, не очень. Украинская, которой я занимаюсь, тоже не на 100% готова, но, тем не менее выглядит поживее. (Не переведен только ZFS manager и половина LifePreserver). Русским переводом занимается человек с ником s0t. Если есть возможность помочь, попробуйте связаться с ним (хотя бы попспрашивать его в translations@pcbsd.org - http://lists.pcbsd.org/mailman/listinfo/translations). Скорее всего у него нет времени или возможности сейчас делать перевод. В принципе, переводить может любой желающий. Заходим на http://pootle.pcbsd.org/ и переводим. Но лучше (хоть и не обязательно), предварительно, пообщаться с основным переводчиком. Он, по крайней мере обьяснит некоторые ньюансы русского перевода (например, какие синонимы, падежи он обычно использует, как в его переводе называется LifePreserver и др.).
Главное, следует помнить что если что- то не сделаете Вы сами, возможно этого не сделает никто.

Теперь о проблемах о которых я подозреваю

Переключение раскладки

На opennet многие жалуются на поломанную настройку раскладки клавиатуры. Перед релизом я видел один любопытный коммит связанный с PCDM. что- то насчет жесткой завязки системной локали на переключалку из PCDM. Я могу ошибатся, т.к. коммит детально не смотрел. Более того, у меня, вроде, все пока что работает. Возможно и будет работать у тех кто ставил RC. Может поставлю с нуля релиз и проверю. Если у Вас есть эта проблема пожалуйста сделайте более менее подробный баг репорт тут http://trac.pcbsd.org/
Нужно иметь в виду одну вещь. Основные разработчики - американцы. Им просто по жизни не нужна локаль отличная от en-US и переключение раскладок. Я сейчас ни в коем случае не хочу сказать что они на это забивают. Наоборот, многое для локализации делается. Но многие вещи для них не очевидны. Что -то они просто не видят т.к. этим не пользуются. 

Edge пакеты

Набор пакетов Edge начал формироваться только после выпуска релиза. Соответственно, пока что его просто нету. Выбор этого набора пакетов пока что лишь приведет к ошибке.Нужно совсем немного подождать.
Для тех кто не в курсе. Начиная с 10.0 есть два типа наборов пакетов - production (стабильные релизные пакеты. С обновлением приходят только багфиксы. Раз в три месяца- большое обновление на основе набора пакетов Edge). Набор пакетов Edge - rolling набор пакетов. Частые переодические обновления на основе текущего состояния git'а. Раз в три месяца Edge стабилизируется и становиться production

Вместо послесловия

Нет, таки в отдельном после напишу. Есть все- таки проблемы с подготовкой релизов. Нужно будет поднять эту тему в списках рассылки. А то что- то code freeze и даже feature freeze в последнее время отсутствуют как факт. 
Конечно, проблемы 10.0 будут довольно скоро решены обновлениями. Но осадок то может остаться...





середу, 22 січня 2014 р.

to be continued 2...

Доброго времени суток!
Пержде всего хочу поздравить всех с выходом 10.0-RELEASE.
К моему глубокому сожалению я сейчас не могу писать новые посты. У меня банально нету времени и сил на это. Думаю, ни для кого не секрет что сейчас происходит в моем городе. 
Я не буду писать никаких комментариев по этому поводу (а хочется). Смотрите интернет (онлайн стримы, например) и делайте свои выводы сами. Разработка FreeBSD не должна касаться любой политики. Инженерия отдельно, политика, соответственно- отдельно. Но бывает так что политика перестает быть абстрактной и разворачивается вполне себе конкретно практически у тебя под окнами. Посему прошу меня понять. Я бы очень хотел написать статью о новшествах PC-BSD 10.0 и о многих других вещах. Я, в конце концов, очень хочу доделать центр обновления! И я это обязательно сделаю. Но не сейчас.
Еще раз прошу меня понять.