Этот сайт — моя персональная записная книжка. Интересны мне, по большей части, программирование, история и события из моей жизни.

Инсталлятор «Виолы»

Вчера я хотел кое-что потестировать в «Виоле» на другом ноутбуке и понял, что я понятия не имею как её нормально там запустить. Причина в том, что «Виола» требует несколько внешних утилит для работы, плюс библиотеки,.. в общем, я решил, что пора сделать инсталлятор.

Так как с собой пришлось тащить ещё и «Кварц» (XQuartz), то лучшим выбором был dmg — файл с монтируемой файловой системой. Хорош он тем, что просто делается и легко стилизуется. Я, например, сделал внутри обои, вдохновлённые внешним видом браузера и поместил портрет автора с его старой домашней странички.

По-моему, вышло очень симпатично.

Для сборки сделал две новые цели — make app для сборки самого приложения и make dmg для сборки инсталлятора.

Больше всего, конечно, пришлось помучаться с приложением — чтобы пользователь потом не ставил сторонний софт, я перенёс все бинарные зависимости внутрь, переписав пути. Вообще, весь инструментарий для этого уже существует, но в случае утилиты magick из пакета ImageMagick пришлось делать отдельную компиляцию, чтобы сделать бинарник перемещаемым.

Нейросеть, которая мне это всё готовила, в этом месте зациклилась, пытаясь разобраться как готовый бинарник унести внутрь так, чтобы он заработал, хорошо что я быстро увидел, а то бы мне это обошлось в копеечку.

Добавлено позднее: код собран по процессоры АРМ и под «МакОС» 26.

4 комментария
Шурик Бабаев 1 мес

Про imagemagick не совсем понятно. То есть работать будет только если поставить в /Applications, в другую папку не выйдет?

Евгений Степанищев 1 мес

Если кратко, то — да. Простого способа нет, но можно оставить fallback на системый ImageMagick, только его нет в «МакОСи», но если отдельно поставить руками, то всё ок будет.

Добавлено позднее: оказывается я и не проверил можно ли при перекомпиляции сделать так, чтобы ImageMagick работал из любого места. Оказалось — можно, скоро будет коммит.

Шурик Бабаев 1 мес

Сам инсталлятор, по-идее, можно сделать pkg. Это (если я верно помню, давно не смотрел) позволит XQuartz поставить автоматом. Правда, не будет красивого фона, будет честный установочный визард.

Евгений Степанищев 1 мес

Можно, но надо ли? Пользователей у этого браузера — один человек, это я :-) Я занялся этим, скорее, чтобы посмотреть как это вообще устроено всё.

Алексей Томин 1 мес

Интересно, а почему не через brew?
Само бы всё подтянуло XQuartz.

Кстати, авторизация через телегу и ВК не работает. 403 и всё.

Евгений Степанищев 1 мес

Потому что человеку откуда-то надо иметь brew.

Кстати, авторизация через телегу и ВК не работает. 403 и всё.

Похоже надо это всё отключать как-то. Думаю, это связано с тем, что у Ильи сайт движка помер.

Алексей Томин 1 мес

Потому что человеку откуда-то надо иметь brew.

По-моему Виола это не для дизигнеров, а всё же для тех, кто brew поставить способен.
Просто очень удобно сказать «хочу» и получить не новую копию всех зависимостей, а только то, что надо

Евгений Степанищев 1 мес

Ну, владельцы тех ноутов, куда я мог бы отправить Виолу для теста, являются вовсе не технари.

Добавлено позднее: и потом, вариант скомпилировать самостоятельно и доставить всё через брю никуда не девается ж.