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

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

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

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

Скриншот окна установки ViolaWWW Hypermedia Browser: иконки XQuartz-2.8.5.pkg и ViolaWWW.app, папка Applications, инструкция по установке и фото автора Pei-Yuan Wei.

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

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

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

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

Комментарии 8

Шурик Бабаев № 1
Про imagemagick не совсем понятно. То есть работать будет только если поставить в /Applications, в другую папку не выйдет?
Евгений Степанищев автор № 2
Если кратко, то — да. Простого способа нет, но можно оставить //fallback// на системый //ImageMagick//, только его нет в «МакОСи», но если отдельно поставить руками, то всё ок будет.

//Добавлено позднее//: оказывается я и не проверил можно ли при перекомпиляции сделать так, чтобы //ImageMagick// работал из любого места. Оказалось — можно, скоро будет коммит.
Шурик Бабаев № 3
Сам инсталлятор, по-идее, можно сделать pkg. Это (если я верно помню, давно не смотрел) позволит XQuartz поставить автоматом. Правда, не будет красивого фона, будет честный установочный визард.
Евгений Степанищев автор № 4
Можно, но надо ли? Пользователей у этого браузера — один человек, это я :-) Я занялся этим, скорее, чтобы посмотреть как это вообще устроено всё.
Алексей Томин № 5
Интересно, а почему не через brew?
Само бы всё подтянуло XQuartz.

Кстати, авторизация через телегу и ВК не работает. 403 и всё.
Евгений Степанищев автор № 6

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

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

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

Алексей Томин № 7
Потому что человеку откуда-то надо иметь brew.

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

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

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