вторник, 22 августа 2017 г.

Механизм автоматического обновления LibreOffice. Часть 2

Я чуть ранее писал уже о том, что Markus Mohrhard реализует для LibreOffice механизм автоматического обновления, аналогичный тому, который есть в windows сборках Firefox. Тогда была доступна для тестирования сборка только для Linux только для 64 битной архитектуры. Сегодня Markus сделал анонс доступности механизма автообновления в ежедневных сборках для платформы Windows.
Итак:
  • Собственно доступны ежедневные сборки по адресу http://dev-builds.libreoffice.org/daily/master/Win-x86@38-updater/, которые можно скачать, распаковать в любой каталог, доступный пользователю на запись (это ВАЖНО!), и тестировать. (Обратите внимание, что в архиве содержится дополнительный уровень вложения каталогов, это может вызвать проблемы с длиной имени файлов в Windows, если сборка у Вас не запускается, то переместите каталог со сборкой ближе к корню диска).
  • Добавлено окно с отображением прогресса в автообновлении LibreOffice.
  • Двухэтапное автообновление (я писал об этом ранее) заменено на обновление в один этап: скачивается дельта-файл и при следующем запуске LibreOffice начинается механизм обновления установленной рабочей копии.
Для того, чтобы механизм полноценно заработал и был включен уже в версию 6.0 необходимо реализовать ещё две большие вещи:
  • Генерация обновлений MSP и инфраструктуры для их применения через updater в LibreOffice на основе файлов MAR. Разработчики Mozilla когда-то работали над интеграцией поддержки MSI в свой код обновления, но отказались от этой работы.
  • Интеграция Windows Service Silent Update для установки в обычный каталог Program Files и интеграция с Windows UAC. Большая часть кода уже существует и уже включена в сборки , но интеграция в код упаковки и установки LibreOffice всё ещё отсутствует.
Если Markus завершит эти два этапа к середине ноября, чтобы успеть до заморозки добавления нового функционала, качество кода устроит выпускающих релиз и QA, то это таки попадёт в выпуск LibreOffice 6.0. 
Используя текущую сборку с механизмом автообновлений и сообщая о любых проблемах Markus'у, Вы можете помочь сделать это реальностью.
Если есть желающие помочь в написании кода для реализации механизма автообновления в LibreOffice, то Markus готов к общению. Найти его можно в IRC сети irc.freenode.net на канале #libreoffice-dev, ник у него - moggi, или написать в список рассылки разработчиков libreoffice@lists.freedesktop.org.

PS: я скачал сборку по ссылке, но:
  1. Не нашел никаких настроек для вкл/выкл автообновления (спрошу у Markus'а попозже, есть ли они в принципе)
  2. Не увидел воочию, как это работает в реальности и работает ли вообще (но тут следует подождать пару дней, чтобы появилась разница между сборками видимо). Update: таки да, на следующий день обновление прилетело само и LibreOffice сам обновился. На SSD процесс обновления занял намного меньше времени, чем это бывает у Firefox. Появляется такой вот прогресс-бар: 
Update-2: Ещё пара подробностей.
  • Нет никаких настроек для автообновления сейчас, кроме возможности его отключить.
  • Если вы три дня не будете запускать билд, скачанный по приведённой выше ссылке, то обнаружите, что апдейтер скачает вам полный инсталлятор вместо инкрементного и при следующем запуске обновит весь установленный билд. Это работает так сейчас, потому что Markus собирает инкрементные патчи у себя на локальной рабочей машине, а потом выкладывает в сеть. Это занимает ресурсы и время. В релизе конечно это будет делать сборочный сервер.
  • Как именно будет работать апдейтер в релизной версии пока неизвестно. В том плане, с какой версии до какой можно будет обновляться инкрементно, а в каких случаях только полный апдейт, это еще не решали. 
  • Возможно появятся дополнительные настройки или уведомления об этом.

2 комментария:

  1. "Нет никаких настроек для автообновления сейчас, кроме возможности его отключить" - но так и не показано, как хотя бы отключить его :)

    ОтветитьУдалить
    Ответы
    1. а я не спрашивал, как отключить, я спрашивал какие есть настройки

      Удалить

Внимание! Сообщения проходят премодерацию!