воскресенье, 11 ноября 2018 г.

Разработка LibreOffice. Копирование патча из gerrit в локальный репозиторий

Представим ситуацию, что патч для LibreOffice вы сделали в веб-интерфейсе, а теперь вам захотелось работу этого патча локально оценить в вашей собственной сборке (как эту самую сборку сделать, я писал ранее).
Итак, консоль наш лучший друг. Переходим в каталог с локальным репозиторием LibreOffice и даём там команду git checkout -B some_name master.
Эта команда создаст у вас в репозитории локальную новую ветку с именем some_name (имя можно задать любое вообще).
Далее нужно открыть сайт https://gerrit.libreoffice.org/ перейти в ваш патч и в правом верхнем углу раскрыть выпадающее меню Download.
В строке Cherry Pick справа есть значок "Copy to clipboard", нажмите его. В буфер обмена будет скопирована определённая команда. Вставьте её в консоль через контекстное меню и выполните.
Далее нужно собрать обновленную сборку с вашим патчем, делается это командой make build-nocheck. В этом случае, сборка будет создана быстро, буквально пара минут. Далее мы запускаем LibreOffice с включённым вашим патчем все той же командой instdir/program/soffice.
На этом всё, можно наглядно увидеть, как работает (или не работает, что бывает чаще) ваш патч на живую.
Выйти из локальной новой ветки обратно в главную мастер ветку можно командой git checkout master.

суббота, 10 ноября 2018 г.

Разработка LibreOffice. Правим код по мелочи, используя веб-интерфейс

Если вы знаете, что ваш патч в проект LibreOffice будет состоять из пары новых строк кода (или изменения пары строк существующего), то такой патч можно сделать на коленке с планшета, сидя в метро, используя веб-интерфейс по адресу https://gerrit.libreoffice.org/.
Примечание: в этой статье мы не станем рассматривать необходимость проведения предварительных изысканий в кодовой базе LibreOffice, будем считать, что вы уже знаете, где именно нужно вносить правки.
Перво наперво нужно авторизоваться на указанном сайте. В правом верхнем углу есть ссылка Sign in. Переходим по ссылке и видим такое:
Как видим, поддерживается авторизация по OpenID, а также подойдёт логин от GitHub или аккаунта Google, Launchpad или Yahoo! Заходите на сайт под любым имеющимся у вас, главное, чтобы последующая работа также выполнялась под этим же аккаунтом.
Далее, чтобы создать патч нужно выбрать соответствующие проект и ветку (в данной статье мы планируем запустить патч в основную разрабатываемую ветку master).
В верхней части сайта жмем на ссылку Projects:
Щёлкаем по ссылке List и в поле Filter вбиваем core. Чуть ниже из огромного списка осталась одна строка с именем core. Щёлкаем по ней:
В нижней части будет кнопка Create Change, жмём её.
Далее появляется вот такое окно (без всяких подсказок, что печально):
В первой строке вбивайте master и в появившемся списке выбирайте вариант просто master (выделено на скриншоте выше). В поле Enter topic ничего не вводите, в поле Description нужно ввести номер ошибки из багзиллы в формате tdf#120003 (это в случае, если вы исправляете ошибку, если нет, то конечно же номер не нужен) и краткое описание изменения. Общая длина описания здесь не должна быть более 75 символов (в дальнейшем описание можно будет сделать более подробным и объемным). И жмём кнопку Create в левом нижнем углу окошка и видим такое:
Нажимаем кнопку Edit (строка с этой кнопкой изменится) и далее появившуюся кнопку Add. Видим такое:
В поле Path нужно набрать имя того файла, который собираемся изменять, например startcenter.ui
при вводе имени файла вам будет показан список-подсказка, в поле Path должен быть прописан полный путь до нужного файла, а не просто одно имя файла.
Далее нажмите кнопку Open и откроется окно редактора:
После внесения изменений в исходный код, нажмите кнопку Save и затем Close. Вы вернетесь на предыдущий экран, который будет  содержать строку со ссылкой на ваш измененный файл:
Если нужно в рамках одного патча править несколько файлов, то опять жмём Edit, потом Add и так далее, как было чуть выше описано.
Если у вас есть знакомый разработчик LibreOffice, который готов вам помочь, то лучше всего его добавить в ревьюеры вашего патча. В правой верхней части страницы находим слово Reviewers и справа от него значок человечка, щёлкаем на него. В появившемся поле пишем либо ник, либо электронную почту разработчика и жмём синюю кнопку  Add  под полем.
Если знакомого нет, то придется просто ждать, пока кто-то из разработчиков не посмотрит на патч в порядке живой очереди. Также можно попросить кого-нибудь из разработчиков сделать ревью на IRC канале #libreoffice-dev в сети freenode.net.
Далее нужно отправить ваш патч на проверку и ревью. Для этого нажмите чуть выше тоже синюю кнопку  Publish Edit .
После этого сайт можно закрыть и ждать двух сообщений минимум: первое от тестирующего все патчи бота jenkins, второе от ревьюера-разработчика.

понедельник, 5 ноября 2018 г.

Выпуск LibreOffice 6.0.7 и 6.1.3

The Document Foundation объявил о выпуске LibreOffice версий 6.0.7 и 6.1.3. Всем пользователям соответствующих веток рекомендуется обновиться.
Списки исправленных ошибок для 6.0.7:
Списки исправленных ошибок для 6.1.3:

Скачать новые версии LibreOffice, как всегда, можно отсюда https://www.libreoffice.org/download/.

воскресенье, 4 ноября 2018 г.

Новое расположение вкладок в диалогах LibreOffice 6.2

Случайно увидел в ежедневной сборке, что диалог "Формат ячейки" в Calc стал выглядеть оригинально, если используется бэкэнд gtk3. Скриншот сделан в среде Openbox, а не в Gnome, поэтому общий внешний вид странноватый и выглядит, как неродной, но не это важно:

Вкладки сбоку! Я не очень уловил и пока не интересовался у разработчиков - это для всех диалогов будет уже в 6.2 и только для gtk3, или это вообще пока эксперимент.
Update: я глянул в Glade, изменить расположение вкладок на положение "слева" - это очень просто, изменяется одно единственное свойство у контейнера. Вопрос в том, какова причина таких изменений.
Update 2: пообщался с разработчиком, который это пилит. Оказывается GTK 3 не умеет в многострочное расположение вкладок, он умеет вкладки только прокручивать по горизонтали, если они все не вмещаются целиком в размеры диалога. Поэтому, если вкладок много, то в некоторых диалогах они (может быть!) будут перемещаться сверху в левую часть диалога. Будет ли это полностью реализовано к выходу LibreOffice 6.2, пока не понятно.