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() для опциональных, но не обязательных зависимостей.

★★★★★

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

http://ykhwong.x-y.net/
DOSBOX-Daum - из SVN с патчами NE2000, матричный принтер и т.д.
На этом сайте архив sources.7z, где все патчи наложены, все есть - только собрать надо
Мне 32-битную сборку под CentOS 5 или 6. Да и вообще, голый досбокс скучный и не интересный

mystery ★★
()

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

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

Да уж, автор набыдлокодил знатно. Модифицированный SDL 1.2 - системный не подойдёт. Зависимость от SDL_sound, о котором Google ничего не знает. Может SDL_mixer? Нет, не подходит. Использование вызовов, требующих -msse3. Необходимость явно указать -std=c++11 - притом что минимально необходимая версия GCC 4.8 и так используется! И наконец, configure не ищет некоторые зависимости - принял не патченный SDL без поддержки SDL_GetDesktopMode (ну хорошо хоть патч наложился сразу, а не 2/15 hunks failed) и не спросил TBB и openglide. Щас, кстати, буду бодаться с последним. Исходники аж 2002 года!

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

хех
ну если можешь - найду другую сборку с SVN-патчами, где сеть и принтер
Эти китайцы, понямутят)
Еще раз тебе Спасибо!

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

Dosbox-daum для Linux 32-bit. Распаковать в юзерспейс, запускать кликом по dosbox.sh. Эмулятор использует пропатченный libSDL (лежит в архиве), а скрипт его подцепляет.

По поводу финансовой поддержки - ну что ты, не стоит. Ты так не шути, а то я ж всерьёз поверю в твою лесть :-)

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

Я не стал делать strip бинарника для возможного дебага через gdb. У меня есть подозрение, что он может плохо работать. Strip уменьшит бинарник с 24 Мб до 4.

Ещё я использовал все возможные зависимости, кроме SDL_sound. Если не будет звука - говори, буду искать эту неуловимую библиотеку :-) Кстати о звуке, есть ещё сторонний патч «Munt», который добавляет поддержку MIDI-карт Roland (что это такое можно узнать например из 16 бит тому назад, перемотать на 12:00). Помимо патча, нужно ещё скачать файлы ромов.

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

mystery счётчик говорит что ты скачал. Скачай ещё раз - я забыл положить libreadline.so.5 Upd: а теперь libtermcap.so.2 Upd2: пробуй. Upd3: Проверил на Dune2, звук работает. А вот на игре Putup всё растянуло по вертикали :-(

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

У меня в выводе есть MT32: Control ROM file not found. То есть, патчить для поддержки Роланда не надо?

SDL_sound нашёлся на http://icculus.org/. Странно что у меня не нашлось раньше.

Glide:Unable to load glide2x library, glide emulation disabled - офигеть, в досе ещё и 3dfx работал? Или нужно Windows 98 устанавливать?

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

ну тут как-бы поддержка эмуляции glide и MT-32
ну мне того, что ты собрал - за глаза, сеть и печать еще не проверял - мне только это и надо )

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

прикол в том, что эта сборка Daum - тут патчи на поддержку реального железа, всякие Floppy, IDE контроллеры и т.д.

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

Нашёл такое видео, буду пробовать запускать Win98 и эмуляцию Glide. Нашёл либу libglide2x.so, теперь ошибка такая: Glide:GLIDE2X.OVL could not be found, make sure correct (compatible) version is in the game directory. Похоже, работает. MT-32 тоже заработал, нужно было в параметр midiconfig= поставить значение 128:0 и запустить mt32emu-qt.

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

Установил 98-ю винду. После 4-й перезагрузки она попросила установочный диск и не нашла его :-( Надо было копировать в C:\WIN98. Много раз нажимал на Отмена, и таки увидел рабочий стол! А ещё окна «Обнаружено новое устройство, вставьте диск Win98», узнал что у меня есть S3 Virge, Sound Blaster AWE32 и 3dfx Voodoo. Крутой эмулятор! Сейчас переустановлю :-)

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

Windows NT вряд ли. Там ядро не DOS.

Отпишусь о своём опыте. Во время установки, через минуту после спрашивания часового пояса, есть ошибка rundll32. Она ничего не портит. Кроме того, в Wiki досбокса предупреждают об этом.

Затем моя система внезапно сломалась. Загружалась только в безопасном режиме. Скандиск исправляет много ошибок, но это не чинит систему. Переустановил. Знаки подчёркивания вместо русских букв. Переустановил. «Вероятно, файл WINMM.DLL повреждён». Переустановил...

Сначала подозрение легло на прибавление циклов в момент отображения логотипа (в этот момент 3000 ещё не сменяется на «AUTO», или в случае с патченным эмулятором - на 100). Вдруг текущий процесс повреждается от этого? Потом - на переход на полный экран с помощью Alt-Enter. Угадал! Я перестал пользоваться фуллскрином, и система перестала глючить!

Итак, винда запустилась, «Добро пожаловать» выдаёт смесь современной музыки и церковных колоколов, а Media Player 6.4 воспроизводит MIDI из C:\WINDOWS\Media. Устанавливаю NFS 2 SE. Вижу логотип 3DFX, который прокрутился достаточно бодро. Затем вижу первый кадр видео заставки. И зависание. Намертво, то есть не только винда, но ещё и эмулятор. Пришлось делать killall -9 dosbox. После этого винда снова не грузится иначе как в безопасном режиме! Я решил что на сегодня хватит, и отложил эксперименты на завтра.

В следующий раз я попробую версию без видеороликов, а также драйвер Voodoo от производителя. Так советуется в неофициальной Wiki по Dosbox.

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

Я так и делал. Только оригинальный досовский fdisk не увидел образ, созданный досбоксом. Жмёшь 4, чтобы создать новую таблицу разделов, программа просит перезагрузку. Перезагружаемся - раздел не создан.

Нашёл в интернете предварительно созданные образы - файл 7z 40 Кб, и 2 Гб после распаковки. С ними дело пошло :-)

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

Уже собрал, но возникла проблема с плагином GSdx. В исходники файла LinuxDialog.cpp добавили GTK Tooltips. Мне необходимо сконвертировать новый формат подсказок GTK в старый, потому что я поставил себе цель - запуск в старых дистрибутивах Linux. Но мне никто не хочет помогать :-( Сборку без подсказок выложу в ближайшее время.

Попробуй бинарник с сайта. Как я понимаю, раньше ты использовал мою сборку только потому, что 1.3.1 официально не собирали? На сайте самая новая версия для Linux была 1.2. Теперь - 1.4.

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

Как я понимаю, раньше ты использовал мою сборку только потому, что 1.3.1 официально не собирали?

Нет, она просто стабильно работала и работала как надо.

Но мне никто не хочет помогать :-(

Знал бы C++ то с радостью помог бы.

Если можешь то выложи без конвертации формата.

Спасибо!

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

Скачал пока билд с сайта. Жалуется на отсутствие libwx_baseu-3.0.so.0 . В репах 15.10 нету. Как можно решить проблему?

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

То же самое

user@user-Lenovo-G565:~/Рабочий стол/PCSX2-1.4.0$ ./PCSX2
./PCSX2: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

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

Просит удалить много чего, толку особо нет тоже.

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

Я скомпилировал вручную последнюю версию, теперь такая ошибка:

./PCSX2: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

Устанавливал
sudo apt-get install libaio*:i386

Теперь
user@user-Lenovo-G565:~/Рабочий стол/PCSX2-1.4.0$ ./PCSX2
./PCSX2: Symbol `_ZN12wxTextBuffer6ms_eofE' has different size in shared object, consider re-linking
./PCSX2: Symbol `_ZN13wxStackWalker10ms_exepathE' has different size in shared object, consider re-linking
*** Error in `./PCSX2': free(): invalid pointer: 0x08576dc8 ***
Аварийный останов

В общем весело.

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

Твоя проблема выглядит как затёртый файл Mesa. Так бывает после установки проприетарного драйвера не из пакета. Или же плохое обновление из PPA.

Давай попробую починить с помощью TeamViewer?

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

под Ubuntu 12.04 и CentOS 5

ASP Linux 9 – вот установленный стандарт стабильности, а не новомодные Убунты.

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

У меня проблемы с wxWidgets, будет круто если поможешь сегодня вечером, часов в 8-9. Спасибо.

ozzee
()
16 апреля 2016 г.

У тебя про Pidgin есть в коменте в начале, а самого Pidgin последнего нет - не порядок :) Буду благодарен.

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

Это сложно. Там надо обновлять весь стек GTK: ATK, GDK_PIXBUF, GLIB, Fontconfig, Freetype, Cairo, Pango. Ничего невозможного, но муторно

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

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

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

Собрал PCSX2 1.4.0. Отличия от предыдущей сборки: есть плагин LilyPad. Это плагин Input, который не предназначен для игры на клавиатуре - только геймпад. Причём он использует Evdev, это круто!
В прошлый раз была какая-то ошибка, которую я исправил только сейчас. Просьба потестировать!

Спасибо Darth_Revan за помощь в сборке!

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

Вот, теперь пропатчил правильно. Пробуйте плагин LilyPad! Перезалил, ссылка та же

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

Обновил Firefox с 38 ESR до 45 ESR. На очереди - Tor Browser. А то в официальном бинарнике слишком дофига высокое требование к Freetype.

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

Добавил Tor Browser 6.0.2, и сборки Glibc и Freetype для RHEL/CentOS 5. В планах: Pidgin 2.11, BOINC, майнер ethminer с поддержкой CUDA 7.5. А также 64-битные сборки для того, что выложил сегодня.

Firefox и Tor Browser собраны с отключением всего, что только возможно! Libnotify, Dbus, Gstreamer, PulseAudio... Планирую также собрать «опасную сборку» со всем этим, которая не будет запускаться на 100% всех возможных систем.

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