LINUX.ORG.RU
ФорумTalks

Скомпилировать «просто работающие» пакеты с графической оболочкой GNOME

 , ,


0

0

GNOME2 больше не поставляется в дистрибутивах Linux и даже в их репозиториях в интернете. Есть форк MATE, в который добавляют поддержку то нового udisks, то нового Bluez, то сборку в новом компиляторе GCC. Но мне он не нравится: компонент mate-media прибит гвоздями к PulseAudio, тогда как gnome-media умеет ALSA. Проблемы с рамочкой окон, неработающий F10 в mc. Я хочу всё то же самое, но оригинальный GNOME2, а не MATE. Даже просто набрать в Alt-F2 «gedit» вместо «pluma» приятно!

Итак, я хочу пакеты с GNOME 2.32, чтобы можно было установить по «rpm -ivh» или из репозитория. Цена от $100 до $1000.

  1. Нужна беспроблемность установки в любой дистрибутив Linux.
    • Самый простой вариант - написать сложные SPEC-файлы с кучей «если». Например «Если убунта версии ниже 10.10, то --enable-hal, иначе --enable-udisks». Затем залить исходный код в сервис онлайн-сборки OBS, который выдаст пакеты для 30 популярных дистрибутивов Linux. Пользователю останется только выбрать свой дистрибутив Linux из выпадающего списка, а затем подключить репозиторий с индивидуальными пакетами именно для его системы.
    • Компиляция одного варианта пакетов по стандарту LSB, который установится и заработает во всех дистрибутивах Linux. Суть в том что дистрибутивы Linux хранят в своих /usr/lib не одну версию системной библиотеки, а две. libjpeg стабильной и новой версии, libncurses, libcups (полный список 1, 2, 3, 4). Можно компилировать не по LSB и класть с программой новый libjpeg (вдруг у конечного пользователя другая версия библитеки), а можно по LSB и не класть ничего.
  2. Пакеты RPM/DEB/tar.gz для x86/x86_64 по принципу Humble Bundle.
  3. Адаптация с особенностями дистрибутива Linux, в котором будет осуществляться запуск, по принципу Flash Player, Skype и Crossover. То, что настраивается ключами для ./configure, должен уметь и бинарник (если не будет сделано через OBS). dlopen() вместо линковки! Это самый дорогостоящий вариант.

    dlopen() для Bluez: если в системе его нет, программа не должна сегфолтиться. dlopen() для PulseAudio: если его нет, в системном трее всё равно должен быть gnome-sound-mixer. DE должно работать с Xinput и первой, и второй версии. Уметь монтировать диски и с HAL, и с Udisks. Gnome-disk-utility не имеет ключей для сборки с HAL, так что пусть выдаёт варнинг что udisks в системе нет.

    Skype запускается в системах с физически отсутствующим libpulse.so.0 и меняет своё GUI настройки в этом случае, Flash Player работает с физически отсутствующим libhal.so, который ему нужен для DRM-контента. Но не умеет работать на компьютере без SSE2. Crossover
  4. Платформа для сборки - CentOS 5 (если не выбран вариант с OBS). Если отдельные компоненты GNOME 2.32 не хотят GCC 4.1, нарушать совместимость с CentOS 5 для этих пакетов всё равно нельзя. Нужно в него же установить GCC 4.7 из репозитория Devtoolkit, а в пакет положить libstdc++.so.6 от GCC 4.7. Если GTK 2.10 из CentOS 5 слишком стар для GNOME 2.32, новый пусть будет вложен в пакет.
  5. Я собираюсь заплатить только за базовые компоненты GNOME2. Дополнительные пакеты в репозитории не нужны (Gstreamer, Pidgin, NetworkManager).

Мне не важно, иметь 30 репозиториев для 30 линуксов, или 1 для 30 линуксов. Мне нужно чтобы я установил новый линукс, подключил репозиторий с ванильным GNOME 2.32, и установил его. Но не MATE.

Перемещено catap из job

★★★★★

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

Я сейчас изучаю сборку под LSB в дистрибутиве Linux CentOS 5.10. Получается хорошо: опенсорсные игрушки успешно собираются. После сборки проверяю программу с помощью Linux Application Checker:

  1. Если она LSB-совместима, создаю значки, ярлык запуска, беру программу и упаковываю в RPM-файл.
  2. Если несовместима, создаю каталоги lib32 и lib64, и кладу туда не входящие в LSB файлы библиотек (обычно libSDL и libopenal). Затем беру скрипт запуска run.sh, значки, ярлык и упаковываю в RPM-пакет.
  3. Если сборка не удаётся, использую GCC 4.7 из репозитория Devtoolkit. После сборки кладу libstdc++ в lib32 и lib64. Таким образом совместимость с оригинальным CentOS 5 не нарушается.

Мои цели - Chromium, Wine и OpenJDK. Это оказалось непросто. Если я сделаю хорошие бинарники, то моя следующая цель GNOME. Я не умею писать SPEC-файлы и писать код, чтобы программа умела dlopen().

ZenitharChampion ★★★★★
() автор топика
> eix gnome-base/gnome
* gnome-base/gnome
     Available versions:  (2.0) 2.32.1-r2 3.8.0-r1 3.10.0
       {accessibility +bluetooth (+)cdr +classic cups dvdr +extras flashback ldap mono policykit}
     Homepage:            http://www.gnome.org/
     Description:         Meta package for GNOME 3, merge this package to install

Не благодари.

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

Dron

В смысле, ты заплатишь?

ZenitharChampion

5. Я собираюсь заплатить только за базовые компоненты GNOME2.

Silencer
()

Добавь тег «хочется странного».

metrokto ★★
()

Мне одному кажется, что за этот нехилый кусок работы (фактически - половина дистра, примерно) килобакс - это очень смешно?

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

В курсе, я для обобщения упомянул.

Dron ★★★★★
()

Меняй килобаксы на евро, и за эту сумму я готов обсудить с тобой этапы установки генты :D

Deleted
()

Самый простой вариант - написать сложные SPEC-файлы с кучей «если». Например «Если убунта версии ниже 10.10, то --enable-hal, иначе --enable-udisks». Затем залить исходный код в сервис онлайн-сборки OBS, который выдаст пакеты для 30 популярных дистрибутивов Linux.

Насколько я знаю, по .spec можно только для .rpm-based собирать. Для дебианов свои вещи нужны.

Мне нужно чтобы я установил новый линукс, подключил репозиторий с ванильным GNOME 2.32, и установил его. Но не MATE.

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

a1batross ★★★★★
()

компонент mate-media прибит гвоздями к PulseAudio

Сусепроблемы. Серьёзно.

Даже просто набрать в Alt-F2 «gedit» вместо «pluma» приятно!

ln -s /usr/bin/pluma /usr/local/bin/gedit

в который добавляют поддержку то нового udisks, то нового Bluez, то сборку в новом компиляторе GCC

И это плохо? Это именно то, почему этот самый GNOME 2.32 в новом дистрибутиве покажет тебе кучу «failed».

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

>> компонент mate-media прибит гвоздями к PulseAudio

> Сусепроблемы. Серьёзно.

То есть в оригинальном MATE всё есть? https://build.opensuse.org/package/view_file/X11:MATE:STABLE:1.6/mate-media/m...

Thu Mar 14 19:19:00 UTC 2013 - nmo.marques@gmail.com

- Add 'pulseaudio-utils' to Reqs; otherwise if pulseaudio isnt properly installed, no applet on menu.

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

Мне одному кажется, что за этот нехилый кусок работы (фактически - половина дистра, примерно) килобакс - это очень смешно?

Блин, а у меня больше нет. Ну, буду ждать других предложений.

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

Ты будешь удивлён: mate-media.
mate-volume-control – PulseAudio; gst-mixer – GStreamer.
Для Debian, например, собраны пакеты mate-media-pulseaudio и mate-media-gstreamer.

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

Подумаешь, сделать патчи для комплекса программ, собрать для всех дистрибутивов и поддерживать это всё. Работа на вечер.

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

сомневаюсь что это работа на вечер...
однако за работу я бы взялся... тем более что сам в некотором роде заинтересован

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

2,000 рублей? Это 75$? Вы там совсем прониклись идеями империи и крыма и верите в иной курс рубля, да?

catap ★★★★★
()

до $1000

кем же ты работаешь?

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

А мне кажется сложно. SPEC-файлы, они такие километровые... Напишешь - а на Fedora не работает, так как у некоторых одинаковых пакетов разные названия. И приходится добавлять «если федора, то freeglut-devel, если Opensuse то glut-devel» (пример рандомный и не соответствует действительности). Вот поэтому я видел очень мало репов на OBS, в которых сразу и SUSE, и Fedora.

ZenitharChampion ★★★★★
() автор топика

Смотри, визит к психотерапевту стоит порядка 2к рублей. Думаю, сеансов за 5 он тебе объяснит, что ты страдаешь полной фигней и убедит просто использовать современный софт. Дешевле выйдет, серьезно.

Alsvartr ★★★★★
()
Ответ на: комментарий от ZenitharChampion
# pacman -Ss mate-media
community/mate-media-gstreamer 1.8.0-3 [установлен]
    MATE Media Tools (GStreamer)
community/mate-media-pulseaudio 1.8.0-3 (mate-extra)
    MATE Media Tools (pulseaudio)
equeim ★★
()
Ответ на: комментарий от Alsvartr

Я сделал так толсто, как только мог, чтобы сарказм можно было увидеть за километр. Но, блин, посмотри на остальные два ответа на моё сообщение %).

Darth_Revan ★★★★★
()

А разве твоя любимая Зюзя больше не поставляет пакетов GNOME 2, по аналогии с KDE3?

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

Попробовал скомпилить пакеты из EL6 в EL5, пока не получается. Если получится, сделаю заново с 2.32 вместо 2.28. Затем создам сборки для HAL и udisks и выложу ZIP-архив с пакетами для всех желающих. Если не получится, вспомню про твоё предложение.

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