LINUX.ORG.RU
ФорумTalks

Кривость патчей ubuntu

 , кривость,


2

2

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

Это патчи на NetworkManager, gnome-bluetooth, gnome-control-center, gnome-screensaver, gnome-session, gnome-settings-daemon, gsettings-desktop-schemas, gtk2, gtk3, libXfixes, metacity, nautilus, xorg-x11-proto, xorg-x11-server.

Когда появился компиз, то почему-то не надо было патчить GTK, чтобы он заработал! Так как в репозиториях дистрибутивов его ещё не было, его компилировали из исходников. GTK, Cairo и всё остальное не нужно было пересобирать с патчами! Unity это всё тот же Compiz с минимумом отличий, так ради этого минимума отличий приходится патчить всё это! Ну и сам Compiz начиная с версии 0.9.x стал кривым кодом (Canonical наняла единственного разработчика Compiz и их дела пошли плохо), поэтому в Fedora и Gentoo оставили 0.8.8.

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

Мда... печально все...

gboolean
g_str_has_prefix (const gchar *str,
                  const gchar *prefix)
{
  int str_len;
  int prefix_len;

  g_return_val_if_fail (str != NULL, FALSE);
  g_return_val_if_fail (prefix != NULL, FALSE);

  str_len = strlen (str);
  prefix_len = strlen (prefix);

  if (str_len < prefix_len)
    return FALSE;

  return strncmp (str, prefix, prefix_len) == 0;
}

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

это ты к чему вообще? Класс окна программы может иметь в общем случае произвольное имя (что и видно по емаксу).

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

Это патчи на NetworkManager, gnome-bluetooth, gnome-control-center, gnome-screensaver, gnome-session, gnome-settings-daemon, gsettings-desktop-schemas, gtk2, gtk3, libXfixes, metacity, nautilus, xorg-x11-proto, xorg-x11-server.

Это всё приходится патчить, потому-что тупые упёртые OSS разработчики завидуют успеху Марка, и всячески всатвляют ему палки в колёса. А Ubuntu это единственный нормальный Linux, которым можно пользоваться без красноглазия.

Кстати последние новости из стана Ubuntu говорят о том, что Марк уже понял что, с OSS сообществом ни чего хорошего не сделать, и начал самостоятельно клепать все необходимые компоненты: DE, X-сервер, пакетный менеджер и т.п.

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

> Это всё приходится патчить, потому-что тупые упёртые OSS разработчики завидуют успеху Марка, и всячески всатвляют ему палки в колёса. А Ubuntu это единственный нормальный Linux, которым можно пользоваться без красноглазия.

Повеселил! А ты читал комменты к новости про «Intel не будет поддерживать XMir»? «Интел продался Майкрософту! Он хочет затормозить развитие десктопного линукса!!!». А ещё интел коварно пишет открытые драйверы и в ядре Linux 3.11 вышел на первое место по количеству внесённых изменений...

Ещё пример двойных стандартов фанатов убунты. Вышла аська для линукс, в системных требованиях «1 Гб ОЗУ». «Ха-ха-ха, ничего себе тормоз, ненужно!». А как выясняется что убунта требует столько же, так те же самые люди пишут «это нормально, выкиньте своё старьё. Сэкономьте на школьных завтраках и купите себе уже нормальный комп, наконец! И вообще, у вас браузер даже не запустится на компе с меньшим кол-вом памяти!». И кстати, убунту - единственный линукс, который из полезных программ сразу после установки предлагает только браузер, и ничего больше. Поэтому виндузятники, решившие попробовать линукс, часто заявляют «линукс больше не чёрная консоль - это такая пускалка для браузера».

> Кстати последние новости из стана Ubuntu говорят о том, что Марк уже понял что, с OSS сообществом ни чего хорошего не сделать, и начал самостоятельно клепать все необходимые компоненты: DE, X-сервер, пакетный менеджер и т.п.

Их DE - нашлёпка поверх Compiz поверх GNOME3, их графический сервер портирован с Android, их Click-пакеты тоже портированы с Android. Поправьте если я ошибаюсь.

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

Дожили...

Лучше бы подгружали из какого-нибудь файла.

с регекспами?

Ну и где там нужны регулярные выражения?

g_str_has_prefix (prg, «emacs»)

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

На кой решать теоретическую проблему общего случая, когда стоит вполне конкретная задача - выгрузить данный список в файл?

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

Зачем тут вообще регулярные выражения? Ты хочешь фильтровать окна, в классе которых есть буква «а»? Или может те, где есть дата в формате ДД/ММ/ГГГГ?

Здесь есть максимум 3 случая: - название совпадает полностью - название начинается с префикса - название содержит.

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

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

Да хотя бы так:

=indicator-applet
=indicator-loader
=mutter
=midori
=qtoctave
=firefox-bin
=thunderbird-bin
=Eclipse
*emacs
=glade
=gnome-panel
=gwyddion
=wicd-client.py
=IBM Notes
=Lotus Notes
Итого один if для определения вызываемой проверки.

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

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

lazyklimm ★★★★★
()
Ответ на: комментарий от Vovka-Korovka

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

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

внезапно, это не ребята из каноникла коммит делали

Внезапно, читаем внимательно:

With lots of updates by Christopher James Halse Rogers as he updated the XMir API - but now supposedly frozen!

«<RAOF> ickle: I think the xmir api should be pretty much stable now, barring people coming up with more awesome ways of doing things.»

Signed-off-by: Christopher James Halse Rogers <raof@ubuntu.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

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

Это патчи на NetworkManager, gnome-bluetooth, gnome-control-center, gnome-screensaver, gnome-session, gnome-settings-daemon, gsettings-desktop-schemas, gtk2, gtk3, libXfixes, metacity, nautilus, xorg-x11-proto, xorg-x11-server.

Все замечательно, но тема создавалась не перечисления ради, а ради ссылок на эти самые патчи. Пока только один пример кода привели.

так ради этого минимума отличий приходится патчить всё это!

Предположу, что патчить к примеру GTK нужно было для поддержки глобального приложения. Это правильно что функционал этот выполняет сам тулкит, а не приложение.

Ну и сам Compiz начиная с версии 0.9.x стал кривым кодом

Опять же, где примеры кривого кода из компиза? желательно последних версий, ведь одно дело что было во времена 11 года, другое дело что есть сейчас.

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

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

Не вижу проблем использовать полноценные регулярные выражения в случае данного черного списка.

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

поле author.

Signed-off-by: Christopher James Halse Rogers <raof@ubuntu.com>

А теперь домашнее задание: Объяснить в письменной форме, почему в поле author там Chris Wilson, каким боком там Christopher James Halse Rogers и зачем Chris Wilson «украл» код с https://github.com/RAOF/xf86-video-intel

Давно заметил, что даже убунтоводы лучше разбираются в программировании, чем федорасты :(

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

да я тоже, только вот товарищ выше напрягается почему-то

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

В отличие от некоторых я видел патчи, которые убунта держит для freetype. И ничего, влияющего на рендеринг, акромя патча, включающего субпиксельное сглаживание, не нашел. Так что еще раз, что из этого

https://launchpadlibrarian.net/143300990/freetype_2.4.12-0ubuntu1.diff.gz

является тем самым «своим» патчем, влияющим на рендеринг шрифтов.

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

Вот этот список и вынести в файл. Хоть можно было бы свои проги добавлять.

Очевидно же, что это костыль. Здесь нужно стараться его выпилить совсем (постепенно сокращая количество приложений в списке), а не давать другим разработчикам его использовать. ИМХО, тут разработчики из Canonical как раз поступили верно.

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

не не тупи, а

Домашнее задание не по зубам? Видимо федорой пользуются совсем дошколята :(

sh4r4t4n
()
Ответ на: комментарий от Vovka-Korovka

Там же ещё cairo. Когда я хотел нормальные шрифты в CentOS, я патчил три пакета убунтопатчами: freetype, cairo, fontconfig.

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

Cairo уже давно втянул патч с улучшением рендеренга шрифтов. Причем авторы этих патчей не ubuntu-девелоперы, писали их другие люди.

Vovka-Korovka ★★★★★
()
Ответ на: комментарий от alpha4

Марк уже понял что, с OSS сообществом ни чего хорошего не сделать, и начал самостоятельно клепать все необходимые компоненты: DE, X-сервер, пакетный менеджер и т.п.

Ну наконец-то определятся. Убунтята станут настоящими убунтятами, а линуксоиды линуксоидами. А то этот бардак уже утомляет.

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

Так они его уже минимум 3 года выпиливают. И у меня из-за него были траблы с моим софтом (см выше по теме). Решение, которое они оставили мне - запускать через export UbuntuMenuProxy=0, что мне не нравится.

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

Если использовать регэкспы, то я могу в файл прописать такой регэксп, что при открытии определенного окна все будет виснуть на пару минут, что совсем не есть гут. Это раз. Два, как я уже писал, регэкспы дают много больше возможностей, которые никогда не будут нужны, да еще и могут ложные срабатывания добавить.

(не обязательно полноценная реализация)
Угу, то есть ты начинаешь придумывать свой велосипедный DSL. Линуксовенько, ничего не скажешь.

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

Если использовать регэкспы, то я могу в файл прописать такой регэксп, что при открытии определенного окна все будет виснуть на пару минут, что совсем не есть гут. Это раз. Два, как я уже писал, регэкспы дают много больше возможностей, которые никогда не будут нужны, да еще и могут ложные срабатывания добавить.

Ну так можно на Си написать такой код, что при открытии вообще все может зависнуть. Тут вряд ли будет что-то сложное использоваться, но так как задача разовая(запуск приложения), то нечего заморачиваться с написанием своих методов, я не думаю что от этого будет заметна хоть какой то выигрыш в произвоительности

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

Ну так можно на Си написать такой код, что при открытии вообще все может зависнуть

Ох мать... А еще пальцы в розетку можно засунуть, если постараться. Мы вроде говорим про то, что записывать в файл, а не как повесить комп, не?

Тут вряд ли будет что-то сложное использоваться

Поэтому забиваем гвозди микроскопом

заморачиваться с написанием своих методов

Ага, если во фреймворке нет нужного метода - задача не решаема? Или один if это архисложное решение?

какой то выигрыш в произвоительности

Погугли про время выполнения регулярок. Особенно про backtraking. Если постараться, то при старте любой проги система будет очень сильно тормозить.

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

Это всё приходится патчить, потому-что тупые упёртые OSS разработчики завидуют успеху Марка, и всячески всатвляют ему палки в колёса. А Ubuntu это единственный нормальный Linux, которым можно пользоваться без красноглазия.

До-до-до, а Марк единственно правильный и знает лучше апстрима как рулить всем, ога. Может не надо, а? Я тоже бываю не в восторге от апстрима многих программ(и радуюсь адекватному апстриму), но если счичать что все вокруг козлы, то скорее всего проблема более прозаична, и она именно в тебе, а не в окружающих...

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

Опять же, где примеры кривого кода из компиза? желательно последних версий, ведь одно дело что было во времена 11 года, другое дело что есть сейчас.

Берешь 0.9.x из репозитария апстрима и ставишь НЕ на Ubuntu. Глюкодром будет обеспечен. Частично он затыкается кое-какими патчами, которые я разместил в оверлее desktop-effects для Gentoo, но это - капля в море. Там еще работы - непочатый край. Зато в Убунте работает довольно сносно - делаем выводы.

Тот же 0.8.8 находится в главном дереве Gentoo(а не в оверлее) и патчи которые на него наложены - это патчи совместимости с новым KDE. Никакой automagic, никакой хреноты с внезапными падениями.

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

А Ubuntu это единственный нормальный НЕ-Linux, которым можно пользоваться без красноглазия.

починил кстати, не благодари. Спасибо за подтверждение тезиса о том, что Ubuntu != Linux, кстати

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

Берешь 0.9.x из репозитария апстрима и ставишь НЕ на Ubuntu. Глюкодром будет обеспечен.

Тут не однозначные выводы. Тут скорее то, что разработчики Unity(Compiz 0.9.x) не заинтересованы в других дистрибутивах, так же как и другие дистрибутивы не заинтересованы в Unity, иначе бы все проблемы переноса были бы давно решены. Это мой вывод.

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

Ох мать... А еще пальцы в розетку можно засунуть, если постараться. Мы вроде говорим про то, что записывать в файл, а не как повесить комп, не?

Я лишь перефразировал: «Если использовать регэкспы, то я могу в файл прописать такой регэксп, что при открытии определенного окна все будет виснуть на пару минут». Проблема не в инструменте, а в его использовании. То, что вы пропишите в файле, это уже проблема ваша, не думаю что разработчики дистрибутива будут подобное прописывать.

Поэтому забиваем гвозди микроскопом

допустим нам нужно в основном смотреть окна по полному классу: «someapp» или же по простой маске: «*someemacs*», разве подобное использование как то скажется на производительности?

Ага, если во фреймворке нет нужного метода - задача не решаема? Или один if это архисложное решение?

Ну одним if явно не отделаться, например для случая: *someemacs*, не?

Погугли про время выполнения регулярок. Особенно про backtraking. Если постараться, то при старте любой проги система будет очень сильно тормозить.

Ключевое «если постараться», но опять же что-то сложнее приведенного выше примера вряд ли будет использоваться в данном случае.

Так что думаю эти два решения как минимум эквивалентны

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

Это было давно и неправда. А пакетов я собирал разных, и мануалов читал (приведенный, кстати, совсем куцый, уж лучше new-maintainer-howto, ну и policy обязательно).

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

Тут скорее то, что разработчики Unity(Compiz 0.9.x) не заинтересованы в других дистрибутивах, так же как и другие дистрибутивы не заинтересованы в Unity, иначе бы все проблемы переноса были бы давно решены. Это мой вывод.

А страдают кто? Правильно - конечные пользователь. Как с GTK+ 3, который уже многие предлагают переименовать в libgnome из-за упоротой политики апстрима

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

уж лучше new-maintainer-howto, ну и policy обязательно

Этот apt-get source не есть инструмент для мэйнтейнера. Мануал такой «куцый», потому что ничего более от apt-get source не требуется.

Я бы даже перефразировал:

deb-src из стабильного репозитория без всяких изменений (как есть) не собирался

Собирался, но вы где-то накосячили :)

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

Интересно, где можно накосячить в

apt-get build-dep package && apt-get source package && cd package-0.1 && dpkg-buildpackage -rfakeroot?

?

Ничего сверх этого не делалось.

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

Интересно, где можно накосячить в

Можно быть невнимательным. Лично я собираю так:

sudo apt-get build-dep package && apt-get source package && cd package && debuild -us -uc

А вообще, если что-то вдруг не собирается, то вылазит ошибка. Раз у вас возникло какое-то непонимание, то вы были крайне невнимательны, не обратив внимания на вывод в консоль. В крайнем случае, если вдруг в бубунте есть пакет, который может не собираться из-за «кривых рук» сотрудников Canonical, то всегда можно воспользоваться deb-src дебиана. Я таких пакетов не встречал, но мало ли :)

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