Этот отчет актуален для сборок с 51518 по 51622.
Месяц был насыщен событиями в мире Haiku, включая две конференции и кодинг-спринт. Для лучшего понимания того, что произошло во время девелоперского марафона, этот отчет представлен в хронологическом порядке и не поделен на категории, как предыдущие.
Неделя Первая
Korli исправил баг в новой имплементации posix_spawn, что позволило fish shell использовать ее без зависаний. Andrew Lindesay переработал системные отчеты (логи) в HaikuDepot для облегчения отладки ошибок. Humdinger привел в порядок списки property_info, которые используются для скриптов с помощью команды hey, исправил несколько недостающих терминаторов, из-за которых могли появляться различные ошибки во время управления приложениями с помощью скриптов. Mmlr исправил ошибку в package_info (утилита для создания репозиториев), которая появлялась при использовании относительных путей. John Scipione исправил некоторые баги в Deskbar и репликантах, благодаря его работе теперь стало возможным изменять размеры Deskbar с помощью автоматической разметки репликантов.
Philippe Houdoin переработал TextSearch для использования xargs, что сильно ускорило поиск и сделало приложение более надежным. Greg Cain (новичок в команде разработчиков) исправил различные проблемы с драйвером USB XHCI, это значит, что наши дела в области поддержки USB3 стали значительно лучше, чем прежде. Некоторые проблемы до сих пор не решены (разработчик активно исследует возможность их исправления), но на данный момент уже можно использовать порты USB3 с мышью и подобными устройствами. На некоторых машинах стало возможно загружать Haiku с флешки или другого внешнего носителя через USB3 порты.
John Scipione продолжает работу над документированием API, на этот раз он сосредоточился на Locale Kit и форматах чисел и длительности. A-star-ayush сделал исправления в TCP-стеке во время GSoC. В данный момент он занят со своими экзаменами, но скоро обещал вернуться и продолжить работу. Andrew Lindesay переработал метод скачивания данных в HaikuDepot для улучшения скорости запуска и лучшей отзывчивости приложения. С сервера репозитория всегда скачивается большое количество данных, например скриншоты, иконки и описания.
Неделя Вторая
Waddlesplash сделал ревизию и одобрил несколько патчей, которые ждали подтверждения в нашем багтрекере, включая работу, проделанную Dale Cieslak для ускорения запуска приложения Таблица Символов, старые патчи Andreas Faerber для приведения в порядок сетевого стека в ядре, используемого для загрузки по сети, в порте Haiku PowerPC, а также патч от Owen для улучшения работы клавиатурных сокращений в панели файлов.
Korli начал заниматься слоем совместимости с FreeBSD 11 для обновления драйверов нескольких проводных сетевых интерфейсов. Впереди еще работа над портированием новых драйверов беспроводных сетевых карт. Kallisti5 добавил функцию lutimes, которая требуется для POSIX-совместимости. Korli исправил функцию shm_open для установки маркера FD_CLOEXEC. Еще один фрагмент для улучшения совместимости с POSIX. John Scipione поработал также над внешним видом BSpinner.
Janus исправил проблемы в репликанте PowerStatus, в основном для того, чтобы изменять его размеры и поместить на рабочий стол. Если вам всегда хотелось иметь большой репликант статуса батареи на рабочем столе, то теперь это стало возможным. Kallisti5 сделал так, что выход UART снова заработал на Raspberry Pi2, это позволяет отлаживать ядро и процесс загрузки (ARM-порт Haiku до сих пор терпит сокрушительное падение при загрузке, но теперь мы хотя бы имеем возможность исследовать эту проблему). Он также привел в порядок некоторые вещи в нашем общем для всех платформ коде UART. John Scipione исправил выравнивание столбца с заголовками в Tracker и стрелки прокрутки.
Неделя Третья
PulkoMandy начал с того, что сделал исправления в BSecureSocket для ослабления ограничений в SSL cipher. После безуспешных попыткок использовать адаптер ExpressCard-Serial, при помощи разработчика Mmu_man были обнаружены два бага в коде отладки серийного порта, что не позволяло изменять основной адрес порта. После их исправления, серийный порт заработал и ноутбук загрузился. Также, за это время PulkoMandy обнаружил, что приложение SerialConnect работает очень плохо, он сделал улучшения в коде для оптимизации отрисовки, теперь программа работает также быстро, как и соответствующие команды в Terminal.
Пока тестировал ноутбук, PulkoMandy также добавил поддержку изменения яркости дисплея в графическом драйвере Intel, теперь владельцы этих чипов могут регулировать яркость в настройках экрана Haiku. Тем временем, KapiX закончил со своими исправлениями в PowerStatus и переделал окно информации об акуумуляторе для использования вертикального BTabView, теперь окно выглядит гораздо лучше, даже если на большинстве компьютеров вы видите только одну вкладку.
Затем, PulkoMandy исследовал проблемы с расположением элементов в окне FirstBootPrompt (самое первое окошко, которое видит пользователь при первом запуске Haiku). После нескольких попыток и модификаций проблемы были исправлены. Пока он игрался с FirstBootPrompt, обнаружил глюки с Deskbar, которому не нравится, когда часто меняют время и формат часов. Разработчик сделал так, что Deskbar будет кэшировать часть данных и не станет пересоздавать объект формата времени каждый раз, когда делаются изменения.
Были сделаны исправления в TeamMonitor, у которого нашлись те же самые проблемы с разметкой, что и у FirstBootPrompt. Также исправлены глюки в новом индикаторе прогресса в pkgman (который ранее внедрил waddlesplash), у которого были проблемы при изменении размеров окна Terminal во время загрузки обновлений. Janus исправил падения в PowerStatus при удалении его из Deskbar при открытом окне. Mmu_man исправил ошибки с перемешиванием физических и виртуальных адресов менеджеров шин PCI и ISA, теперь использовать их стало безопаснее в PAE-окружении.
PulkoMandy обнаружил блокирующую проблему в BNetworkAddressResolver, которая приводила к падению, когда у нескольких потоков появляются адреса в одно и то же время. С тех пор, как у BNetworkAddressResolver появился кэш для избежания повтора одних и тех же запросов DNS, к этому кэшу требуется безопасный доступ. Mmlr переработал удаленный app_server и начал работать над HTML5-клиентом для него, на замену старому HTML5-бэкэнду для app_server. Новая версия использует canvas и websockets. В этой области еще требуется проделать много работы для нормального функционирования, поскольку это достаточно сложная вещь, у которой пока не имеется удобного фронтэнда.
Mmu_man исправил NULL pointer dereference в драйвере вебкамер UVC, рднако, мы до сих пор не смогли заставить его выдавать изображение. Waddlesplash исправил баг с runtime_loader, который вызывал проблемы с LD_PRELOAD в приложениях на вторичной архитектуре. После исследования исходников приложения Pe и управления клавиатурными сокращениями, разработчик Hy Che углубился в BTextView и занялся исправлением ошибок. Это было очень кстати, так как сейчас за этим кодом следить совсем некому.
Пока PulkoMandy пытался запустить WebKit Test Suite, то несколько раз наткнулся на панику в коде UDP, которую впоследствии исправил. Также он обнаружил, что переменные LC_* не были правильно установлены, из-за чего возникали проблемы с функциями форматирования даты и времени Python. Сделаны исправления в менеджере паролей. Мы перешли на алгоритм более безопасных паролей около месяца назад, но из-за этого увеличились хэши в /etc/shadow, также был фиксированный размер буфера в коде для загрузки файла. Из-за этого пароли не обновлялись после перезагрузки.
Waddlesplash занимался сканированием кода с помощью нового Coverity и во время этого улучшил поддержку Clang в качестве компилятора для сборки Haiku. Затем, он сделал ревизию найденных Coverity проблем и исправил самые очевидные. Jua потратил большую часть недели копаясь в HaikuDepot, исследуя проблемы со отзывчивостью приложения. Для этого активно использовались несколько утилит отладки, включая тестовый app_server, system profiler, malloc_debug, также как и интенсивное ручное тестирование и использование Debugger. В итоге, были обнаружены и исправлены несколько крупных проблем. Далее, разработчик продолжил совершенствовать интерфейс, добавив полосу индикатора общего прогресса установки, а также поддержку нескольких скриншотов в описании к пакету.
Korli добавил поддержку алгоритма сжатия Zstd. Его можно использовать для лучшей и более быстрой компрессии пакетов. Waddlesplash завершил последние шаги на пути перехода Haiku к автоматически генерируемым репозиториям, вместо тех, которые сейчас наполняются и обновляются разработчиками вручную. Новые ночные сборки уже используют эти автоматические
репозитории, однако, на первых порах могут быть проблемы с испорченными или отсутствующими пакетами и зависимостями из-за преждевременного удаления якобы ненужных устаревших пакетов. Большинству пользователей рекомендуется пока воздержаться от переключения на новые репозитории.
Управление подключением и отключением репозиториев в Haiku
KapiX всю неделю работал над портированием LibreOffice, исправлением кода отрисовки текста и переделкой некоторых вещей, а также множества проблем с блокировкой и правами пользователя. Однако, прогресс на пути к доведению до ума полноценного порта Writer очень впечатляет, хотя пока еще не получается открывать никакие документы. Шаг за шагом, порт LibreOffice понемногу воплощается в реальность.
Ранняя тестовая версия LibreOffice Writer в Haiku
Oco в основном был занят тем, чтобы пакеты с FreePascal и Lazarus IDE как можно скорее появились в наших репозиториях. Пришлось поэкспериментировать с поддержкой вторичной архитектуры, но в конце-концов ему удалось создать работающие пакеты с этими приложениями. На данный момент еще ждут отладки проблемы с определением путей, но Lazarus IDE очень скоро должен быть доступен в качестве еще одного способа разработки приложений с графическим интерфейсом в Haiku (используя Qt и язык Pascal).
Lazarus IDE в Haiku
Переведено с сокращениями, полную версию читайте в официальном блоге Haiku-OS (на англ. языке):
https://www.haiku-os.org/blog/pulkomandy/2017-11-25_haiku_monthly_activity_report_november_2017/ ***
А теперь, по нашей доброй традиции...
Веселые картинки из мировой паутинки
Blender 3D ver. 2.79 в Haiku (уже доступно в новых репозиториях x86_64)
QMMP 1.2.0 в Haiku
QMMP 1.2.0 - Simple User Interface
В новых сборках Deskbar наконец ведет себя как панель в любой другой операционной системе и Desktop Environment, не перекрывая окна и не скрываясь за ними, а выделяет для себя место у края экрана при развертывании окон (например браузера).
Источники:
https://twitter.com/haikuOS https://twitter.com/threedeyes