LINUX.ORG.RU
ФорумTalks

snapcraft дикий велосипед

 , ,


0

1

захотел я значит персобрать хромиум патченый из снапа
чтобы применять патч от интела которые ребята их хромиума не спешать принимать в апстрим

и что мы видим

брём сорцы снапа, патчим делаем

snapcraft

и получаем

The 'snap' directory is meant specifically for snapcraft, but it contains the following non-snapcraft-related paths, which is unsupported and will cause unexpected behavior:
- command-chain
- command-chain/desktop-launch
- command-chain/hooks-configure-desktop
- command-chain/snapcraft-runner
- manifest.yaml

If you must store these files within the 'snap' directory, move them to 'snap/local', which is ignored by snapcraft.
Failed to pull source: unable to determine source type of 'build'.
Check that the URL is correct or consider specifying `source-type` for this part. See `snapcraft help sources` for more information.
Run the same command again with --debug to shell into the environment if you wish to introspect this failure.


после небольшогу гулления натыкаемся на
indeed due to strict confinement we can only currently support mounts under /home. We’re working on relaxing this requirement, but in the mean time you can bind-mount (symlinking won’t be enough) your workspace to $HOME and that should work fine.


и действительно переместим сорцы в home получается пройти немного дальше но всё равно появляются те же самые грабли позже

доколе? как они умудрились так всё сделать? кто это всё придумал?

★★★★★

может кто-то пересобирал когда-то snap?)

я сделал

snap download --channel candidate/hwacc chromium


потом

unsquashfs -f -d . chromium_2224.snap

получил содержимое снапа

после предупреждений сверху чистим snap диру чтобы ничего там не было

делаем snapcraft

получаем

Launching a VM.
Failed to pull source: unable to determine source type of 'build'.
Check that the URL is correct or consider specifying `source-type` for this part. See `snapcraft help sources` for more information.
Run the same command again with --debug to shell into the environment if you wish to introspect this failure.


я уже близок к тому, чтобы забросить эту идею =(

smilessss ★★★★★
() автор топика
Ответ на: комментарий от smilessss

оно ж ещё есть только как пакетный менеджер для любого дистра

Ros ★★★★
()
Ответ на: комментарий от kott

самое просто что я увидел - это в aur в арче

собралось за пол часа

по официальной инструкции сборки - там пол часа только сорцы качаться будут

smilessss ★★★★★
() автор топика
Ответ на: комментарий от mittorn

Мне вот интересно, что должно быть в голове, чтобы на серьёзных щах спорить с утверждением, что снап говно флатпак > снап? Религиозная неприязнь ко всему freedesktop? Назло маме отморожу уши?

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 2)
Ответ на: комментарий от intelfx

И снап и флатпак говно. Почему? Потому что они пытаются убить комара ядерной бомбой. Ради небольшого десктопного приложения тащить другую систему в контейнер только чтобы не было проблем с зависимостями. Вместо того чтобы решить проблему, они только прячат её глубже. И работает это всё только пока библиотеки opengl и звуковая система в снапах/флатпаках совместима с хостом.
Кто создал проблему?
1. glibc, который зачем-то привязывается к версиям символов. Могли бы сделать какой-нибудь макрос для portable софта, но его нету. Реально же нет никаких причин этого делать, это всего лишь libc. libstdc++ можно было бы с собой таскать
2. Отсутствие какого-либо отдельного от libc libsystem с динамическим линкером, аллокатором памяти и, возможно, обёрткой над сисколами. Это бы позволило положить свой glibc, при этом не теряя возможность использования системных библиотек -> драйвера не надо тащить с собой во флетпаках -> значительно меньшее потребление ram и время запуска
3. Непортабельность десктопных тулкитов gtk/qt. Конечно ожидать что приложение всегда запустится с системным gtk/qt, особенно зная, как их разрабам на месте не сидится сложно, хотя в 99% случаев всё и так работает. Но тем не менее чтобы наверняка ничего не лрмалось, тулкит складывается вместе с приложением. И тут начинается - Qt попытался загрузить системный плагин и упал. Сколько я таких AppImage видел, которые чпнятся распаковкой и удалением оттуда Qt. Как это решить? Да просто надо собирать/патчить тулкит так, чтобы он не лез в систему.
4. Несовместимость аудио/видео подсистем.
Есть стандартные графические API OpenGL/Vulkan, но нет API для звука. X11 был стандартным API для открытия окна, но что-то с ним не так было и теперь от него хооят отказаться. В качестве альтернативы wayland и всё бы хорошо, но:
1. В wayland нет API для примитивной отрисовки. Это не позволяет использовать wayland на системах без аппаратного ускорения. Сама архитектура такова, использование llvmpipe не решение - это приведёт к излишней нагрузке на процессор. Да и вообще в контексте контейнеров - тебе нужно оисовать 2д приложение с кнопочками, для этого тебе предлагается поверхность и opengl/vulkan. Но не предлагают какие-то DrawRect/DrawLine/DrawText
2. Нет прозрачной поддержки wayland в иксах. В ринципе если бы она была - такого срача бы не было. Кто-то использует wayland с xwayland, кто-то наоборот иксы с каким-нибудь прозрачным wayland-сервером
В общем, тут надо сделать 2д отрисовку в вяленном и может тогда и прослойка в иксах не нужна будет, но для удобства не помешала бы.
Ну и остался звук. Похоже с ним уже всё решили через pipewire, но так и не понятно, какое из звуковых api лучше использовать для обращения к нему.
А там уже хотите - пускайте приложение в флетпаках, хотите - просто положите свои версии тулкитов рядом. И памяти много жрать не будет и работать будет реально везде

mittorn ★★★★★
()
Ответ на: комментарий от mittorn

кстати говоря, если в wayland сделать 2д отрисовку и реализовать такие штуки, как cairo поверх неё - можно будет сделать wayland композитор, который будет оптимален и для сетевой прозрачности (работать не хуже иксов, а даже лучше). Для 2д поверхностей использующих встроенный API можно было бы эти API вызовы транслировать к комманды отрисовки, а изображения как webp, а opengl поверхности же как видеопоток. Получается такой вот RemoteFX. В винде кстати есть почти всё из того что я перечислил выше - и libsystem (там это winapi(kernel), а софт может тащить свою libc любой версии), и API для создания окна и 2д отрисовки (опять же часть winapi - user,gdi), при этом другая libc - не повод тащить драйвер с собой. А ещё винда может переключать графические приложения между разными композиторами без их перезапуска, тем временем что иксы что wayland всегда тащат всё за собой. В линуксах будто специально делают всё плохо, что было спроектировано нормально, и если у чего-то были недостатки и его хотели переделать - добавят лишь кучу новых недостатоков, исправив при этом лишь пару мелочей. То ли это лень, то ли попытка менеджеров решить технические проблемы, но в итоге систему делают непригодной к использованию. И если хейт systemd - действительно просто хейт из-за того что сломали привычную конфигурацию, то то что идёт вокруг wayland и flatpak/snap - реально очень печально

mittorn ★★★★★
()
Последнее исправление: mittorn (всего исправлений: 1)

А что, нативного пакета нет? У меня, например, это было бы as easy as:

curl -o /usr/ports/www/chromium/files/patch-foobar <patch_url> && portmaster chromium

slovazap ★★★★★
()
Ответ на: комментарий от intelfx

ты пробовал собирать эти снапкрафты?)

у них в документации написано что сорцы должны лежать только в /home

как они до этого докатились, кто это придумал)))))

smilessss ★★★★★
() автор топика
Ответ на: комментарий от slovazap

это что за магия вне хогвардса


«/usr/ports» это какой вообще unix подобный зверь


«Избранные теги: freebsd, freebsd ports»

а, ну когда во фрибдс завезут хардварный декодинг av1 8k (никогда) в хромиум - пишите))))

smilessss ★★★★★
() автор топика
Последнее исправление: smilessss (всего исправлений: 2)
Ответ на: комментарий от smilessss

а, ну когда во фрибдс завезут хардварный декодинг av1 8k (никогда) в хромиум - пишите))))

Я не агитирую использовать FreeBSD, боже упаси. Просто говорю что даже в сраной FreeBSD где в хромиуме нету и никогда не будет хардверного декодинга av1 8k сборка хромиума с патчем делается одной строчкой. Наверняка в вашем дистрибутиве всё ещё проще, поэтому нахрена вам какой-то там снап.

slovazap ★★★★★
()
Ответ на: комментарий от eternal_sorrow

Так или иначе умеют все - разве что где-то ещё одно-два действия нужно, например чтобы явно вызов patch прописать.

slovazap ★★★★★
()
Ответ на: комментарий от slovazap

Не знаю насчёт снапа. Но во флатпаке - примерно так же просто как в deb или rpm.

eternal_sorrow ★★★★★
()

indeed due to strict confinement we can only currently support mounts under /home. We’re working on relaxing this requirement

Мне всеми этими снэпами расхотелось пользоваться резко, когда какой-то аудиоплеер отказался играть файлы не из хомяка. И да, если обычным mount перемонтировать внутрь хомяка, он всё равно как-то палит это и снова не играет. Тот же плеер в виде .deb поставился и работает без таких проблем.

yu-boot ★★★★
()
Ответ на: комментарий от yu-boot

Но ведь сисюрность! Компартментализация! Сепарация! Порталы!

token_polyak ★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)