LINUX.ORG.RU

В Haiku появилась реализация Wayland с возможностью запуска GTK-приложений

 , , ,


4

1

Небольшая новость в преддверии свежей beta-версии Haiku.

Илья Чугин (@X512) портировал реализацию протокола Wayland, через которую стало возможно запускать GTK-приложения на Haiku. Данный слой совместимости использует модифицированный код libwayland. Он предоставляет библиотеку libwayland-client.so, совместимую с API и ABI, которая позволяет запускать приложения Wayland без изменений. Cервер работает не в отдельном процессе, а в виде аддона (плагина) в процессе приложения. Для этого была адаптирована библиотека libwayland-client.so. Вместо сокетов в сервере используется нативный цикл обработки сообщений на основе BLooper.

Ранее другим разработчиком уже была подготовлена начальная реализация прослойки для обеспечению совместимости с библиотекой Xlib, позволяющую запускать X11-приложения в Haiku без использования X-сервера. Прослойка реализована через эмуляцию функций Xlib при помощи трансляции вызовов в высокоуровневый графический API Haiku. Но она немного глючная по сравнению с Wayland-библиотекой Ильи.

Для теста в репозитории Герасима 3dEyes Троеглазова (@threedeyes) доступны следующие приложения:

Всех заинтересованных милости просим в наш чатик в телеграмме.

>>> Подробности



Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 5)

Ответ на: комментарий от Goat

Только Modesetting. Открытый код драйверов Intel сильно прибит к Линуксу по сравнению с другими драйверами, например AMDGPU .

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

Ну были изъявляющие желание заняться видеодрайверами, но что-то уже несколько лет от них результата никакого. Были попытки портировать ядерные драйвера DRM из Линукса, но всё встало на раннем этапе, оно даже толком не компилировалось.

У меня драйвер во многом сделан заново с заимствованиями кода из AMDGPU Линукса.

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

Нде...

Я могу лишь посочувствовать :) На моём лаптопе так и не запустилась гайка, если помнишь, что то отключало флэшку во время загрузки. И несколько билдов спустя тоже. А логов никак дальше не вытащить. Но то ноут «диковинный». Куплю на новый год другой, на райзене и поставлю Гайку единственной системой :)

R_He_Po6oT ★★★★
()

Как там у вашего хокку с сетевой подсистемой? IPv6 осилили? Года 2 назад мне отвечали «А зачем оно нам?». Понимаю, если жизни не видал, то и в свинарнике жить можно.

Xi_Jingping
()
Ответ на: комментарий от SkyMaverick

Нет нельзя, потому что для этого нужно сломать протокол X11.

Нет не нужно.

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

Мейнтейнеры Xorg-а задолбались и дизертировали с ринга.

Нет, они вышли на пенсию. А современные его «мейнтейнеры» это не мейнтейнеры а позорище. Либо замаскированные засланцы-вредители из микрософта/эппла.

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

И в тебя тоже верю. Код открыт, лежит, пахнет. Бери, реализуй, продвигай. Вот @X512 не зассал и реализовал. Я хоть и весьма скептически отношусь к Гайке, как к проекту, но вполне позитивно к его работе.

А так, офигенно давать советы. Вот только реализовывать почему-то их должны те, кого ты вот тут с высоты собственного монгольского йенга опускаешь.

Нет не нужно.

А я скажу, нужно. Ещё раз разводить 100500 раз обсужденный срач, чтобы что?

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

Вот только реализовывать почему-то их должны те, кого ты вот тут с высоты собственного монгольского йенга опускаешь.

Да не, я от них ничего не жду уже. Насчёт того чтобы сделать самому - есть такая идея, но пока только идея и вполне возможно таковой и останется.

А я скажу, нужно. Ещё раз разводить 100500 раз обсужденный срач, чтобы что?

Зачем? X11 очень гибкий протокол, что в нём мешает то что надо прям ломать?

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от LINUX-ORG-RU

http://www.microwindows.org/

Что характерно, современной части нет (потому что современная часть X11 и есть на 80% wayland)

Осталось запилить поддержку 3D (самое трудное) и портировать реализацию Ильи.

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

Зачем? X11 очень гибкий протокол, что в нём мешает то что надо прям ломать?

Вот тут стародавняя статья, в которой написано, какие есть на данный момент нерешаемые проблемы, почему все устали и дизертировали с ринга. Замечу, что это не точка зрения одного Дэна Стоуна: под статьёй подписались многие, включая мейнтейнеров граф.подсистемы ядра и MESA. Мне, как в общем-то мимокрокодилу, там мало что можно добавить.

Пока каких-то вот альтернативных точек зрения, реализации и статей формата «вы долбодятлы, надо было делать вот так (по пунктам) и всё-бы заработало» я вот как-то не наблюдал. Пацаны пилят свой стек и вообще при деле, Иксы стагнируют в ожидании, пока кто-то отрвётся от срача в бложиках и займётся наконец-то работой (пока вот дождались Канапикаса, да и тот уже свалил)

В Xorg-е, ну как единственной живой реализации X11, когда я туда последний раз смотрел были как всегда танцы с XWayland и мелочь с исправлениями ошибок. Всё. Как только Канапикас допилил свои пинчи и собрал более-менее релиз, больше там признаков жизни не наблюдается.

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

Спасибо за такой подробный коммент, интересно.

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

Останется только Cinelerra-HV 8 портировать под Haiku, закупиться корой 2 дуба и Radeon’ом 7900 и можно монтировать видеоролики в супер легковесной ОС.

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

Жаль, там compositing is mandatory и все выше буфера на откуп тулкитам. Кстати, получается, в haiku нарушается обязательность композитинга - окнами управляет не wayland. Если бы и qt, и gtk рисовали шрифты и канву не самостоятельно, мир был бы прекраснее.

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

Кстати, получается, в haiku нарушается обязательность композитинга - окнами управляет не wayland

Ну, по-сути, да. wayland - это же протокол общения клиента (т.е. приложения) и сервера (т.е. композитора). Автор, по сути оторвал и адаптировал к Гайке референс-библиотеку, реализующую клиентскую часть и написал относительно небольшой «адаптер» к уже готовой граф.системе, которая умеет работать с битмапами, чтобы она «общалась» по протоколу (имитировала композитор).

Исходя из архитектуры wayland, клиента, в общих чертах, мало парит, что там происходит после wl_surface_commit (там есть нюансы, но хрен-бы с ними на первых порах), битмап он отдал - это задача композитора: размещать и складывать буфера.

Жаль, там compositing is mandatory и все выше буфера на откуп тулкитам

Тогда количество переделок было-бы куда больше и, по сути, получили-бы вторые Иксы + переписывание всех тулкитов (вместо менее затратного выбрасывания Xorg-измов), на что 100% никто-бы не пошёл. А также эпический срач по поводу, того как и что реализовывать, был бы просто адовый (он и сейчас-то ИМХО основной тормоз в том же wayland). Тут по поводу CSD/SSD-то готовы в реале ехать морды бить, а представить, как-бы оно было по каждому аспекту реализации. Так-что ну его нафиг, пусть уж тулкиты сами занимаются.

SkyMaverick ★★★★★
()
Последнее исправление: SkyMaverick (всего исправлений: 1)
Ответ на: комментарий от LINUX-ORG-RU

Ну вот так получается, что у всех лапки. Даже у тех самых могучих «разработчиков Xorg» (кто бы это ни был).

eternal_sorrow ★★★★★
()

Отличная работа, наконец-то довёл до релиза!

Забавно, что Wayland-обёртка для Haiku в итоге получилась работоспособнее и готовее чем все те эксперименты с X11 вроде BeXlib, Xlibe и того изврата с XSDL или как там его, когда иксы были завёрнуты в SDL.

Напомни что там с поддержкой браузеров? Chromium, QtWebEngine (Blink) и Firefox (Gecko). Интересно, можно ли теперь при наличии рабочего GTK+ и Wayland получить рабочую сборку того же Firefox или Chromium…

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

Нет, там есть единый системный тулкит, а не зоопарк как в Линуксе/BSD ...

софистика.

если повыбрасывать из линукс все, кроме, скажем, Qt, то мы тоже получим «единый системный тулкит». потому что иных попросту нет.

кстати, следуя вашей логике вы же и разводите зоопарк, поскольку добавили в гайку возможность запуска GTK-приложений...

r0mik
()
Ответ на: комментарий от ox55ff

Зачем?

  1. Чтобы в панели задач (Deskbar) приложения отдельно показывались, а не все окна в приложении Wayland сервера.

  2. Чтобы не висел лишний фоновый процесс.

  3. Чтобы другие процессы не падали из-за ошибок сервера.

  4. Запустить существующий libwayland-server.so на Haiku проблематично потому что он использует много Linux-специфичных API таких как epoll, eventfd, timerfd.

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

Напомни что там с поддержкой браузеров?

Добавился Epiphany (GNOME Web) на движке WebKit GTK. Он на данный момент работает лучше всех в плане поддержки современных сайтов (Youtube, Google Docs, Matrix Element client).

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

кстати, следуя вашей логике вы же и разводите зоопарк, поскольку добавили в гайку возможность запуска GTK-приложений…

Нет потому что в GTK в итоге работает поверх системного тулкита Haiku. Также и в других полноценных десктопных системах таких как Windows/MacOS. А в Линуксе нет такого системного тулкита, поверх которого всё бы без исключения работало.

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

А в Линухе GTK работает напрямую с wayland.

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

Можно сделать приложение с GUI, которое запустится на любой версии ОС. Например, для Windows есть Launch4J – обёртка для запуска Java приложений. Launch4J может при запуске показывать заставку и при этом не тащит дополнительных библиотек, то есть является портабельной. В Linux это невозможно.

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

Как невозможно? Возможно, надо только забить динамическую линковку и интегрировать в прогу её графический тулкит.

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

для пользователя

Все эти финты ушами мне могут быть интересны лишь в качестве эквилибристических трюков. Я не вижу проблемы в том что приложение будет рисовать себя на таком-то (на Гтк в данном случае) туллките через... себя? Для всей этой интеграции к системному туллкиту адо писать много кода и в системном туллките и в пришлом. Я спрашиваю - ЗАЧЕМ ЭТО ВСЁ? Не жонглёру-программисту, а пользователю? Чем оправдывается усложнение кода для конечного потребителя? (а ведь этим и должны мериться трудозатраты)

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

Конечному пользователю вообще фиолетово на эти тонкости. Ну кроме вопросов «А прогу XXX уже портировали на вайланд?».

DrBrown
()
Ответ на: комментарий от R_He_Po6oT

Чем оправдывается усложнение кода для конечного потребителя?

С системным API для GUI код как раз упрощается.

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

По моему вы слишком высокого мнения о «конечном» пользователе, док))

UriZzz
()

Сколько человек пилит Гайку? Джастфофан и фуллтайм.

Stalin ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

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

А они, всего лишь, блюдут железнодорожный габарит!

tiinn ★★★★★
()

Круто. Илья, респект

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

У вайланда всё очень хорошо, пока не надо совместить несколько окон в композитном ВМ. Так что пусть окнами лучше занимается софт, который это умеет.

kirill_rrr ★★★★★
()

Увидел новость, вспомнил, что BeOS в свое время делалась под PPC, да и под маки, кажется. Дома лежит iBook G4, думаю, дай скачаю сборку для PPC, вроде ж была когда-то, вроде даже загружалась.

Угу. Пустой каталог в разделе «неофициальные билды». И пара страничек в справке, из которых следует, что разработку свернули толком даже недоехав до рабочей системы.

Вот MorphOS как-то разрабатывают, а Хайку - нет. Обидно.

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

Не очень высокая мотивация делать порт ОС под железо давно снятое с производства. Вместо этого недавно был сделан порт под новую архитектуру RISC-V.

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

Не совсем правильно… В гайке как раз, именно все в одном сошлось – все от предка… В гайке все работает от ядра, в том числе и GUI… Так что, не будораж и не вводи в неправильною стызю молодое поколение… )))

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

В гайке все работает от ядра, в том числе и GUI…

Какой негодяй ввёл вас в такое заблуждение?

EXL ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.