Closed cucumber-sp closed 8 months ago
@ein-shved вы сможете реализовать поддержку NixOS? По факту нужно лишь скопировать сгенерированный .asar пакет в папку /lib/yandexmusic и далее запускать с помощью electron yandexmusic.asar.
@cucumber-sp, конечно! Жду патча с asar. Там посмотрим, что с этим можно будет делать.
@ein-shved сделал. Можете пробовать и посмотреть как это происходит например у меня в PKGBUILD для арча. https://github.com/cucumber-sp/yandex-music-linux/commit/9bf42b7675b081ade9805ca687af0b84bea4df66
@cucumber-sp, мне кажется, вы переворачиваете вещи с ног на голову. Зачем делать скрипт, из которого вызывать pkbuild? Почему бы всю процедуру не включить напрямую в процесс сборки пакета? Источником для сборки можно сделать exe-шник и ваш скрипт, который распакует exe-шник и сделает .asar пакет. Тогда можно будет в разных рецептах под разные системы сборки делать одинаковую процедуру:
по факту именно это и сделано в предложенным мною рецепте для Nix. Я могу получить готовый пакет за один шаг
nix build
Тут будет скачано все необходимое системой сборки, никакой ручной подготовки не нужно будет. Я думаю так же можно делать и с pkbuild и c Rpm и с Deb.
@cucumber-sp, мне кажется, вы переворачиваете вещи с ног на голову. Зачем делать скрипт, из которого вызывать pkbuild? Почему бы всю процедуру не включить напрямую в процесс сборки пакета? Источником для сборки можно сделать exe-шник и ваш скрипт, который распакует exe-шник и сделает .asar пакет. Тогда можно будет в разных рецептах под разные системы сборки делать одинаковую процедуру:
- выкачивать ваш скрипт
- выкачивать exe-шник
- собирать вашим скриптом asar пакет
- собирать пакет под конкретную платформу
по факту именно это и сделано в предложенным мною рецепте для Nix. Я могу получить готовый пакет за один шаг
nix build
Тут будет скачано все необходимое системой сборки, никакой ручной подготовки не нужно будет. Я думаю так же можно делать и с pkbuild и c Rpm и с Deb.
Обычно это так устроено в арче, и я считаю более правильным вариантом. PKGBUILD который будет лежать в AUR будет указывать сразу на файлы с гитхаба. Если человеку нужно под себя собрать он после этого использует makepkg и получает бинарник со всем необходимым. Да и я принципиально не хочу где-то прокидывать ссылки на файлы Яндекса, люди сами пусть скачивают если нужно самому собрать.
Хорошо, не буду пытаться тут вас переубедить. Но на мой взгляд, подход "люди пусть делают что-то сами" обречен на провал со временем. Если что-то можно автоматизировать - это нужно автоматизировать.
Однако поясните, я правильно понимаю, что PKBUILD в AUR будет не такой как здесь?
@cucumber-sp, мне кажется, вы переворачиваете вещи с ног на голову. Зачем делать скрипт, из которого вызывать pkbuild? Почему бы всю процедуру не включить напрямую в процесс сборки пакета? Источником для сборки можно сделать exe-шник и ваш скрипт, который распакует exe-шник и сделает .asar пакет. Тогда можно будет в разных рецептах под разные системы сборки делать одинаковую процедуру:
- выкачивать ваш скрипт
- выкачивать exe-шник
- собирать вашим скриптом asar пакет
- собирать пакет под конкретную платформу
по факту именно это и сделано в предложенным мною рецепте для Nix. Я могу получить готовый пакет за один шаг
nix build
Тут будет скачано все необходимое системой сборки, никакой ручной подготовки не нужно будет. Я думаю так же можно делать и с pkbuild и c Rpm и с Deb.
вообще если делать максимально правильно то делать два PKGBUILD, yandexmusic (с репаком на локальной машине) и yandexmusic-bin (с загрузкой готового asar)
Наверное из-за того что в арче это считается правильно, я и перешел на NixOS =)
Наверное из-за того что в арче это считается правильно, я и перешел на NixOS =)
Да, я немного почитал и впринципе вы правы, можно прям в PKGBUILD собирать все. С арчом я разберусь, Nix на вас возложу а потом пойду изучать deb и как-то пытаться на него делать что-то похожее. Единственное о чем попрошу это попробовать собрать и проверить работает ли вообще .desktop файл если есть возмжность, а то у меня только консолька)
На самом деле deb и rpm можно собирать nix'ом , если они сами не умеют подтягивать свои ресурсы.
Добавил сборку для debian систем с https://github.com/cucumber-sp/yandex-music-linux/commit/e7cb5e9afbbb6bb66017d83630072ddca7721dbc Теперь нужно обновить readme и добавить информацию по сборке и установке пакетов.
Переключение на распространение через .asar файлы значительно ускорит процесс распространения, позволит сократить размер пакета до 10 раз (за счет вынесения electron и других модулей в зависимые пакеты системы), а также сделает возможной публикацию в репозиториях пакетов, таких как AUR, APT и тд.
Необходимо сделать: