LINUX.ORG.RU
решено ФорумTalks

Соберу какую-нибудь фигню в виде универсального бинарника

 , ,


6

2

Ещё не выполненные заказы:

Opensmtpd, Pidgin, Tor Browser для 64-бит, BOINC Client, rpcs3.

Выполненные заказы:

  • Firefox 45.9.0. Системные требования: любой линукс. tar.bz2 для 32-бит/64-бит
  • Tor Browser 7.0a1. Системные требования: любой линукс. tar.xz для 32-бит/64-бит
  • PCSX2 1.4.0 - эмулятор PlayStation 2. Для работы требует файлы BIOS приставки. Запускать лаунчером launch_pcsx2.sh. Системные требования: любой линукс, GPU с поддержкой OpenGL 3. tar.gz для 32-бит
  • Dosbox-daum. Dosbox - популярный эмулятор DOS. Патчи Daum привносят поддержку сети NE2000, матричных принтеров, эмуляцию Voodoo и Roland (нужен демон Munt, файлы данных Роланда, и права на /dev/snd/seq), и т.д.
    Распаковать в юзерспейс, запускать кликом по dosbox.sh. Эмулятор использует пропатченный libSDL (лежит в архиве), а скрипт его подцепляет. tar.gz для 32-бит
  • Neverball - логическая игра про катание шарика в 3D-пространстве. Красивая, стильная, при этом имеет низкие системные требования! tar.xz для 32-бит
  • Syobon Action (больше известна как Neko Mario) - tar.gz для 32/64 бит
  • Лаунчер для игры Minecraft. Системные требования: любой линукс, Java. RPM 64-бит (альфа), DEB 32-бит, 64-бит (бета), tar.gz для 32/64 бит

Другое:

  • libudev1 - DEB-пакет для Ubuntu 12.04 64-бит
  • Glibc 2.17 для RHEL/CentOS 5. Это мощный апгрейд с релиза 2.5! Обновите Glibc, установите проприетарный драйвер видеокарты, и у вас запустится Steam! Для стима и скайпа также нужен SSE2 в процессоре. RPM для 32-бит

    Моя сборка не идеальна. 1). В ней отсутствует /etc/ld.so.conf, но и без него работает. 2). Я «не осилил» починить скрипты Post Install, поэтому необходимо вручную перегенерировать локали:

    localedef -v -c -i en_US -f UTF-8 en_US.UTF-8
    localedef -v -c -i ru_RU -f UTF-8 ru_RU.UTF-8
    
  • Freetype с поддержкой субпиксельного сглаживания для RHEL/CentOS 5. После установки необходимо включить это сглаживание в настройках GNOME или KDE (вы должны знать где). RPM для 32-бит
  • Дружественный проект: Qt 4.7 для RHEL/CentOS 5 (включая QtWebkit и QtCreator). Позволяет запустить Skype. Также для скайпа понадобится SSE2 в процессоре, и PulseAudio из EPEL (или apulse).

Новости:
20.06.2017: Спустя год после выкладывания сборки PCSX2 1.4.0, поправил в ней плагин Lilypad. В прошлый раз он не работал.
14.06.2017:

  • 64-битная версия Tor Browser не запускается у большинства пользователей :-( Выяснилось что Tor, начиная с версии 3.0, зависит от libcap. На моей билд-ферме - старая версия libcap.so.1, а у вас на компах .so.2. Переделаю.
  • Обновил Firefox с 45.6 до 45.9. Применил совет, благодаря которому в моей сборке теперь 60 файлов, а не 5600. Всё ближе и ближе к идеалу!

    С версией 52.1 пока затык. Нужно статически слинковать с XCB-SHM, а я не знаю как.

15.02.2017: Собрал 64-битную версию Tor Browser. Для директории Browser/TorBrowser/Data необходимо дать права 600.
05.02.2017: Tor Browser 6.0.2 → 7.0a1. 64-битную версию всё ещё только собираюсь сделать.
28.12.2016: Обновил Firefox с 45.2.0esr до 45.6.0esr. Изменил некоторые умолчания:

  • Отключил Pocket
  • Включил скролл по нажатию средней кнопки мыши (вместо действия «Вставить», а то достало, промахнувшись по гиперссылке, случайно переходить по адресу из буфера. Вернуть можно в about:config, поискав autoscroll)
  • Отключил проверку на браузер по умолчанию (в сборке без DBus всё равно не работает, и этот вопрос спрашивают бесконечно)

10.07.2016: Обновил описание
05.07.2016: Добавил сборку Firefox 64-бит
29.06.2016: Добавил Tor Browser 6.0, и сборки Glibc и Freetype для RHEL/CentOS 5
22.06.2016: Firefox 38 ESR обновлён до 45 ESR.
___
Глава 1. Что случилось?

Несколько дней назад вышел интернет-мессенджер Pidgin 2.11. Зайдя на страницу программы, вы найдёте программу установки для Windows, пакет для macOS, и исходный код для Linux. А что насчёт бинарных файлов для Linux? Вам предложат перейти в репозиторий вашего дистрибутива Linux — там вы увидите версию 2.10.12.

Сколько потребуется ждать — неужели до нового релиза дистрибутива? Можно ли доверять этому стороннему репозиторию? А что если я хочу не обновиться, а наоборот, откатиться? Я только что установил последнюю версию Linux Mint, и в пиджине 2.11 «отвалился» мой самописный плагин!

Почему нам предлагают только исходный код? Почему готовые сборки существуют только для конкретных версий конкретных линуксов, а для моего самого любимого, но не самого популярного линукса нет PPA? Почему такого не бывает в Windows?

Глава 2. Как это может коснуться меня?

Слабая сторона Windows в том, что установка дополнительных программ замусоривает систему! Даже если вы удалите программу, после которой стало «всё тормозить», это может не помочь. И тогда — чистка реестра (сложный способ), или переустановка системы (простой способ, но можно по-неосторожности удалить коллекцию фоток за 10 лет. И тогда необходим визит к мастеру восстановления удалённых данных — за деньги).

Сильная сторона Linux — вы можете установить сколько угодно программ, и система будет быстро включаться и выключаться, как сразу после установки. Слабая сторона Linux: сложность установки программ. Вот вы скачали готовую сборку программы для линукса, но немного не для вашего линукса, и вы не можете её установить! Программу для Opensuse 42.1 в Ubuntu 14.10, или от Debian 9 - в Fedora 24. Даже сборку для Ubuntu 16.04 в 15.10 не можете!

Пример из личного опыта. Давным-давно, я скомпилировал программу в Ubuntu 10.10. Когда вышла Ubuntu 12.04, 4 библиотеки-зависимости поменялись, а старые отсутствовали в репозитории дистрибутива:

libbluetooth.so.3 → libbluetooth.so.4
libssl.so.0.9.8 → libssl.so.1.0.0
libopenal.so.0 → libopenal.so.1
libhal.so.1 → not found

Спустя 2 часа удовольствия, программа запустилась! Уверен что при попытке запустить её в 16.04 удовольствие длилось бы ещё дольше!

Глава 3. Как победить эту проблему?

Подумайте, эта проблема решаема? И если да, то как? Вот моё предложение:

А давайте создадим некий Default Linux, и будем собирать проприетарное ПО в нём, и только в нём? А открытое ПО – продолжим собирать как раньше?

Мало кто знает, но такой Default Linux — есть. Он называется CentOS (разрабатывается компанией Red Hat). Мегастабильный, энтерпрайзный линукс с долговременной поддержкой! Он настолько популярен в бизнесе, что совместимость с ним хотят иметь все остальные!

Разработчик CentOS обеспечивает обратную совместимость: программы для CentOS версии x работают в CentOS x+1. Эта совместимость называется LSB — Linux Standard Base. Дистрибутивы линукса Debian, Ubuntu, Fedora, Alt, Mageia и так далее, и так далее, и так далее — все совместимы с LSB на 100%.

Так почему же до сих пор находятся авторы проприетарного ПО, которые не собирают свои программы в CentOS, как того требует стандарт? Может быть, не знают. Может быть, знают, но сознательно плюют на стандарт: «а чё? У всех убунта, у меня тоже убунта. Вот я скомпилирую свою программу для Ubuntu, и у всех будет работать!». Дело в том, что разработчики Ubuntu не гарантируют возможность запуска программы для Ubuntu x в Ubuntu x+1.

Глава 4. Борцун с дискриминацией Линукса

Я решил что буду брать программы, исходный код которых доступен, и собирать их в CentOS 5 или 6. Выкладывать в формате RPM, DEB, tar.gz и репозиторий с GPG-ключом. Такие программы будут запускаться везде, иначе быть не может: LSB гарантирует, что в системе уже есть Xorg 7.1, GTK 2.10, libpng 1.2, libjpeg 62, libasound2 и libcups 1.3. Остальное будет прописано в зависимостях пакета, или вложено в архив tar.gz. В отдельных случаях будет применяться dlopen() для опциональных, но не обязательных зависимостей.

то есть один бинарь на все дистры

Не нужно.

Ну и ты, как обычно, упоролся.

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

>> то есть один бинарь на все дистры

> Не нужно.

На самом деле в этом нет ничего сложного. На вот, тестируй мой бинарь: https://yadi.sk/d/mGDe4DJ6fNLMm Минимальные системные требования: Linux 2.6 x86/x86_64, Glibc 2.4, C++ Runtime 4.1. Бинарь включает в себя Qt 5.

ZenitharChampion ★★★★★ ()

Раз это толксы, начну с первого. Что за ноутбук, что сразу с убунтой шёл? (У меня протекает криокамера, когда ты перестал ненавидеть убунту?)

Я тут тоже 2 раза под свою 15.04 компилял, но особо не вкурил суть этой магии. Что, как и из чего ты делаешь?

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

Ноут Dell, но вообще DNS продают убунтоноуты.

Я делаю пакеты из DEB-SRC. Алгоритм такой, вот есть Pidgin 2.10.3, который нужно превратить в 2.10.11.

Включаем этот репозиторий: http://i.stack.imgur.com/r3WJ1.png Он нужен для автоматической установки зависимостей для компилирования.

Устанавливаем зависимости для компилирования: sudo apt-get build-dep pidgin

Делаем:

mkdir pidgin-build && cd pidgin-build
apt-get source pidgin

Только что мы скачали DEB-SRC с Pidgin 2.10.3. Ключ -b его сразу и соберёт, но нам это не нужно.

Скачиваем и распаковываем Pidgin 2.10.11, а из DEB-SRC копируем туда директорию «debian».

В этой директории находим файл «changelog». Меняем самую верхнюю версию с 2.10.3 на 2.10.11. Именно из этого файла debhelper берёт версию пакета! Вообще можно заморочиться и вставить ChangeLog, но не нужно.

Теперь - сборка!

cd pidgin-2.10.11
fakeroot ./debian/rules binary

А тут - лотерея. Или всё пошло как надо (в 7/8 случаев так и случается), или что-то пошло не так. Причиной может быть то, что дебианопатчи лежат не только в директории debian, но и применились к остальному исходному коду (например, какие-нибудь нестандартные пути установки для man-страниц). Второй причиной могут быть изменившиеся зависимости: например если мы обновляем не с 2.10.3 до 2.10.11, а с 2.4.0, то добавилось куча новых зависимостей, которые автоматически не установились.

Если всё прошло без ошибок, DEB-пакеты готовы! Вы можете удалить DEBUG-пакеты и DEVEL-пакеты (а можете не удалять):

rm *dbg*
rm *dev*

А теперь - установка!

sudo dpkg -i *.deb

Всё. Этот алгоритм применителен не только к Pidgin! Он подходит для Audacity, GIMP, Blender и так далее...

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

Не отказался бы от opensmtpd под centos 5 x86_64.

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

Сегодня поздно уже. В ближайщие дни займусь. Как я понял, там минимум зависимостей. Дополнено: есть в Debian Testing. https://packages.debian.org/stretch/opensmtpd Там зависимость от OpenSSL - тебе с каким линковать, 0.9.8 или 1.0.0? Или не важно?

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

ты прям америку открыл

нашлось время прочитать ман по сборке пакетов под дебиан? :)

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

Да ;-) Америку я открыл в том что, оказывается, собрать пакет с другой версией пакета - не в той, что в репозитории - можно легко и быстро! Например вчера я собрал Qt 4.8.7 - в репе почему-то был 4.8.1. И я уверен что есть много людей, которые этого не знают, и перед которыми встаёт проблема запустить нужную версию программы! Для них я и создал тему.

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

Привет. Я забыл отписаться сразу - нехорошо.

Сборка закончилась ошибкой bison. Я установил bison из EL6 и EL7 - не помогло. Скорее всего, эта ошибка и в новом линуксе воспроизведётся. Я попробую и создам баг.

ZenitharChampion ★★★★★ ()

Добавил PCSX2. На очереди - Glib 2.40 для Ubuntu 12.04. Яндекс-браузер без него не работает.

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

Спасибо! Реклама мне нужна :-) Там можно отредактировать? Ты можешь указать что сборка моя, и дать ссылку на эту тему? А ещё можно в «1.3.1-(git)» убрать «(git)», потому что может показаться, что это бета - а это релиз.

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

То что сборка твоя - отредактировал и то что git - тоже убрал. Смотрю, чего-то нету нигде сборок под линь, только под оффтоп, вот и решил сделать раздачу.

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

Правда жаль конечно что по сравнению с оффтопом производительность отстает. Играл в «Квант милосердия» на оффтопе, идет идеально, сегодня скачал, притормаживала прилично...

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

Оперативно ты :-) Я только сейчас заметил что то, что это моя сборка, было изначально.

Вот это я считаю лишним: «Эмулятор уже настроен на приемлимую производительность». Потому что у меня при первом запуске встаёт плагин Zzogl, хотя GSdx лучше. И потому что в настройках GSdx почему-то «Render: OpenGL (Software)» вместо Hardware. Так что настраивать всё-таки нужно.

Это:

Запуск производить файлом launch_pcsx2_linux.sh в терминале либо установить в свойствах файла галочку «Запускать как программу».

Я предлагаю заменить на:

Запуск производить двойным щелчком мыши по launch_pcsx2_linux.sh, либо в терминале «sh launch_pcsx2_linux.sh»

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

Я понял, ты обновил старую раздачу, где действительно была произведена настройка для производительности, и настроены кнопки для геймпадов. В моей сборке ничего такого нет :-(

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

Ну там просто в ini уже все записано. Сейчас поменяю как говоришь

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

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

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

Странно...

Дал другу ссылку чтобы скачал, и таки скачал и стоит на раздаче, хотя у меня торрент клиент писал что не раздает.

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

Кстати, что интересно. В линуксовой версии игры как в сло-мо. Не знаешь как улучшить ситуацию?

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

Году в 2013 запускал PCSX2 в Wine. Работало лучше. Потом программа перестала запускаться начиная с одной из версий Wine, и я перестал так делать.

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

Кстати, раздачу проверили, все отлично. Теперь надо пару человек найти кто на раздаче будет стоять)

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

Сможешь собрать новую версию эмулятора из GIT? Тут говорит что есть новые версии, но только под оффтоп

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

по сравнению с оффтопом производительность отстает
В линуксовой версии игры как в сло-мо

ZenitharChampion, ozzee, а эта проблема была у PCSX2 всегда, или проявилась с определённой версии? Проявляется на всех видеокартах и драйверах?

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

Эта проблема была всегда, но теперь появилась надежда на улучшение. Раньше было два плагина видео, GSdx и ZeroGS. Первый для Windows, второй для Mac OS и Linux. ZeroGS сильно уступал GSdx, если пробовать их в Windows. А в Linux альтернативы не было!

Потом ZeroGS форкнули, сделали Zzogl. Появилась надежда на то, что плагин OpenGL догонит плагин Direct3D! Но нет.

Сейчас появился новый разработчик, который сделал порт GSdx на OpenGL. Поэтому больше нет необходимости использовать Wine, чтобы попробовать этот плагин. В теории, сейчас производительность в Windows и Linux одинаковая. На практике надо пробовать, но у меня мало игр.

ZenitharChampion ★★★★★ ()

Незначительно обновил PCSX2. Обновлять раздачу не обязательно!

  • В заголовке окна теперь нет слова «git» (в pcsx2/SysForwardDefs.h нашёл PCSX2_isReleaseVersion и поменял 0 на 1)
  • Пересобрал libGSdx без зависимости от EGL (я собрал версию, максимально совместимую со всеми дистрибутивами Linux. Тут нет GTK3, следовательно никакого Wayland. EGL здесь не нужен)
  • Пересобрал bundled-библиотеку libSDL с поддержкой PulseAudio

TODO: собрать с поддержкой OpenCL.

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

Уже, новый файл доступен по прежней ссылке! Проверить легко - из заголовка окна программы исчезло слово git.

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

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

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

Как всё сложно :-( Проще было оставить всё как есть. Я же всё равно буду пересобирать GSdx с поддержкой OpenCL. Тольк соображу, как его установить в старую систему, которая на билд-ферме :-( Думаю, то ли Mesa, то ли одну из множества других открытых реализаций OpenCL.

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

100 и 50 Мб? Странно как-то. У меня - всего лишь 30 Мб.

А что у тебя за видеокарта? NVIDIA - проприетарный драйвер. Radeon - любой драйвер, для открытого нужна новая Mesa. Intel - новая Mesa. Проверить работоспособность можно командой clinfo.

Кстати, я отправил свою сборку на emu-land.net, её приняли. На мысль отправить меня натолкнуло то, что ты залил её на Рутрекер.

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

100 и 50 Мб? Странно как-то. У меня - всего лишь 30 Мб

Вот тут не знаю почему

А что у тебя за видеокарта?

AMD, последние свободные драйверы.

Кстати, я отправил свою сборку на emu-land.net, её приняли

Круто, поздравляю :)

ozzee ()

Можешь пожалуйста собрать Wine? Самому не получается, хотел собрать с патчами CSMT и Gallium-Nine, но патчи выдают ошибку, да и куча зависимостей для сборки нужна.

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