1 (изменено: Zenitur, 2016-02-06 12:22:25)

Тема: Сборка под Linux от Zenitur

DEB (32-bit/64-bit)
RPM (64-bit) Необходимо тестирование! Подробнее
tar.gz (обе архитектуры)

Сборка задумывалась как Portable-версия нашего лаунчера, универсальная и у всех работающая. Компилировалась в CentOS 5 с помощью GCC 4.7. Все зависимости я положил в архив программы, например Qt 5 (за исключением библиотек из списка). Кроме того, вам понадобятся Java и драйвер видеокарты с поддержкой 3D-ускорения.

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36

2

Re: Сборка под Linux от Zenitur

за исключением ... Qt 5

Можно подумать, лаунчер зависит напрямую от чего-то кроме Qt. А, ещё от quazip, это его ты приложил?

Mozilla/5.0 (X11; Linux x86_64; rv:34.0) Gecko/20100101 Firefox/34.0

3

Re: Сборка под Linux от Zenitur

Всё работает, разве что шрифты просто ужасны (положи лучше liberation) и тема курсора мыши не подхватилась.

И ещё, раз уж оно portable, то неплохо бы XDG_DATA_HOME и XDG_CONFIG_HOME указать на директории рядом с бинарником, например XDG_DATA_HOME=./data, XDG_CONFIG_HOME=./config

Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0 Iceweasel/31.4.0

4 (изменено: Zenitur, 2015-03-19 19:27:25)

Re: Сборка под Linux от Zenitur

Апдейт - добавил 64-битную сборку, а также обновил 32-битную до последней версии. Архив в первом сообщении обновлён. Следующий шаг - создание DEB-пакетов. Насчёт неработающего сглаживания шрифтов и не подхватывающихся курсоров мыши создал тему на LOR-е: https://www.linux.org.ru/forum/development/11336958

Mozilla/5.0 (X11; Linux i686; rv:31.0) Gecko/20100101 Firefox/31.0

5

Re: Сборка под Linux от Zenitur

Молодец! Как допилишь, применим твой опыт на билдферме :)

Mozilla/5.0 (X11; Linux x86_64; rv:36.0) Gecko/20100101 Firefox/36.0

6 (изменено: Zenitur, 2015-03-26 00:32:40)

Re: Сборка под Linux от Zenitur

Сделал пакеты DEB (32-bit/64-bit). Минимальные системные требования: Debian "Etch" 4.0, Ubuntu 7.04. Следующий шаг - создание пакетов RPM.

Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0

7 (изменено: kilolife, 2015-03-29 22:48:25)

Re: Сборка под Linux от Zenitur

Имхо сильно много лишних зависимостей в control
ldd (ниже) по факту совсем не просит эти либы

Spoiler
Выбор ранее не выбранного пакета ttyhlauncher.
(Чтение базы данных … на данный момент установлено 218589 файлов и каталогов.)
Подготовка к распаковке ttyhlauncher_0.9-1_amd64.deb …
Распаковывается ttyhlauncher (0.9-1) …
dpkg: зависимости пакетов не позволяют настроить пакет ttyhlauncher:
 ttyhlauncher зависит от libcommons-cli-java, однако:
  Пакет libcommons-cli-java не установлен.
 ttyhlauncher зависит от java-wrappers, однако:
  Пакет java-wrappers не установлен.
 ttyhlauncher зависит от lsb (>= 4.0), однако:
  Пакет lsb не установлен.
 ttyhlauncher зависит от lsb-multimedia (>= 4.0), однако:
  Пакет lsb-multimedia не установлен.
 ttyhlauncher зависит от lsb-security (>= 4.0), однако:
  Пакет lsb-security не установлен.
 ttyhlauncher зависит от lsb-printing (>= 4.0), однако:
  Пакет lsb-printing не установлен.
 ttyhlauncher зависит от libssl0.9.8 (>= 0.9.8e), однако:
  Пакет libssl0.9.8 не установлен.

Ест зависимость от libquazip.so.1 которой нету у бинарей от суси.

Spoiler
ldd ttyhlauncher
    linux-vdso.so.1 =>  (0x00007fffcec00000)
    libquazip.so.1 => not found
    libQt5WebKitWidgets.so.5 => /usr/lib/x86_64-linux-gnu/libQt5WebKitWidgets.so.5 (0x00007fa4237d0000)
    libQt5WebKit.so.5 => /usr/lib/x86_64-linux-gnu/libQt5WebKit.so.5 (0x00007fa421298000)
    libQt5Widgets.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 (0x00007fa420a48000)
    libQt5Network.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Network.so.5 (0x00007fa4206e8000)
    libQt5Gui.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5 (0x00007fa41ffb0000)
    libQt5Core.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 (0x00007fa41f878000)
    libGL.so.1 => /usr/lib/nvidia-346/libGL.so.1 (0x00007fa41f520000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fa41f300000)
    libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fa41eff0000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fa41ece8000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fa41ead0000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fa41e708000)
    libQt5OpenGL.so.5 => /usr/lib/x86_64-linux-gnu/libQt5OpenGL.so.5 (0x00007fa41e4a8000)
    libQt5PrintSupport.so.5 => /usr/lib/x86_64-linux-gnu/libQt5PrintSupport.so.5 (0x00007fa41e238000)
    librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fa41e030000)
    libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fa41de10000)
    libXrender.so.1 => /usr/lib/x86_64-linux-gnu/libXrender.so.1 (0x00007fa41dc00000)
    libXcomposite.so.1 => /usr/lib/x86_64-linux-gnu/libXcomposite.so.1 (0x00007fa41d9f8000)
    libjpeg.so.8 => /usr/lib/x86_64-linux-gnu/libjpeg.so.8 (0x00007fa41d7a0000)
    libpng12.so.0 => /lib/x86_64-linux-gnu/libpng12.so.0 (0x00007fa41d578000)
    libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007fa41d238000)
    libxslt.so.1 => /usr/lib/x86_64-linux-gnu/libxslt.so.1 (0x00007fa41cff8000)
    libxml2.so.2 => /usr/lib/x86_64-linux-gnu/libxml2.so.2 (0x00007fa41cc90000)
    libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007fa41c980000)
    libgobject-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 (0x00007fa41c728000)
    libgstreamer-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libgstreamer-1.0.so.0 (0x00007fa41c410000)
    libgstapp-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libgstapp-1.0.so.0 (0x00007fa41c200000)
    libgstbase-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libgstbase-1.0.so.0 (0x00007fa41bfa0000)
    libgstpbutils-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libgstpbutils-1.0.so.0 (0x00007fa41bd70000)
    libgstvideo-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libgstvideo-1.0.so.0 (0x00007fa41bb20000)
    libgstaudio-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libgstaudio-1.0.so.0 (0x00007fa41b8d0000)
    libsqlite3.so.0 => /usr/lib/x86_64-linux-gnu/libsqlite3.so.0 (0x00007fa41b608000)
    libicui18n.so.52 => /usr/lib/x86_64-linux-gnu/libicui18n.so.52 (0x00007fa41b1f0000)
    libicuuc.so.52 => /usr/lib/x86_64-linux-gnu/libicuuc.so.52 (0x00007fa41ae70000)
    libQt5Quick.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5 (0x00007fa41a8b8000)
    libQt5Qml.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5 (0x00007fa41a2a0000)
    libQt5Sql.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Sql.so.5 (0x00007fa41a058000)
    libharfbuzz.so.0 => /usr/lib/x86_64-linux-gnu/libharfbuzz.so.0 (0x00007fa419e00000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fa419bf8000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fa423a38000)
    libnvidia-tls.so.346.47 => /usr/lib/nvidia-346/tls/libnvidia-tls.so.346.47 (0x00007fa4199f0000)
    libnvidia-glcore.so.346.47 => /usr/lib/nvidia-346/libnvidia-glcore.so.346.47 (0x00007fa416d10000)
    libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007fa416af8000)
    libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007fa4168d8000)
    liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007fa4166b0000)
    libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007fa416440000)
    libffi.so.6 => /usr/lib/x86_64-linux-gnu/libffi.so.6 (0x00007fa416238000)
    libgmodule-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgmodule-2.0.so.0 (0x00007fa416030000)
    liborc-0.4.so.0 => /usr/lib/x86_64-linux-gnu/liborc-0.4.so.0 (0x00007fa415da8000)
    libgsttag-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libgsttag-1.0.so.0 (0x00007fa415b68000)
    libicudata.so.52 => /usr/lib/x86_64-linux-gnu/libicudata.so.52 (0x00007fa4142f8000)
    libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007fa414050000)
    libgraphite2.so.3 => /usr/lib/x86_64-linux-gnu/libgraphite2.so.3 (0x00007fa413e30000)
    libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007fa413c28000)
    libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007fa413a20000)

Вывод - для убунту пакет не пригоден.

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.101 Safari/537.36

8 (изменено: Zenitur, 2016-02-06 12:57:10)

Re: Сборка под Linux от Zenitur

Наконец-то протестировали!

Первые две зависимости я скопировал из пакета azureus - торрент-клиента на Java. Там много параметра ИЛИ, в котором перечислены разные варианты Java - Sun, Oracle и OpenJDK, затем идут эти пакеты. Скопировал одним куском, не разбираясь что из этого нужно, а что - нет. Вообще я хотел бы чтобы в Debian был аналог virtual/java из Gentoo, который сначала смотрит, не установлен какой-нибудь вариант Jaba, а если нет, устанавливает OpenJDK.

Lsb это не программа, а метапакет, устанавливающий другие библиотеки. Например lsb-desktop устанавливает GTK2, GLIB, ATK, Pango, Freetype, XML2, libpng, libjpeg. LSB создан для проприетарщиков, которым надо чтобы их софт гарантированно работал у пользователя, и пофиг что с момента выпуска софта сменилось пять убунт. С LSB хотят быть совместимыми все десктопные дистрибутивы Linux, поэтому несмотря на то что всё давно компилируется с libjpeg8, во всех системах до сих пор есть libjpeg62. Иначе не запустится даже Flash Player.

Ну и Openssl 0.9.8 потому что он есть везде, а 1.0 и 1.0.2 - не везде. Было бы эпично, если бы Minecraft запускался на всём, где есть Java, в том числе и на Ubuntu 6.06, а его лаунчер требовал Ubuntu 12.04.

Странно что бинари от суси не зависят от libquazip. А как тогда они её используют? Наверное, там мейнтейнер включил libquazip.a внутрь программы.

Моя оценка самого себя - я прошёл тест! Не прошёл бы, если например указал в зависимостях такой пакет, которого нет в новых релизах, или если бы программа не запустилась.

Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0

9 (изменено: Zenitur, 2015-10-19 03:00:41)

Re: Сборка под Linux от Zenitur

Набыдлокодил RPM-пакет. ttyhlauncher-0.9-1.x86_64.rpm Помогите протестировать!

Во-первых, я не знаю как указать в %files директорию /opt. Есть всякие разные {infodir}, {libdir} - а эта как называется? Подскажите? В общем, вбил прям так.

Во-вторых - зависимости! Существует ли мета-пакет, проверяющий наличие установленной Java в любой реализации? Как в Gentoo есть virtual/java.

В-третьих, допустим, его нет. Как создать условие "или java-1.6.0-openjdk, или java-1.7.0-openjdk, или java-1.8.0-openjdk, или java-1.x+1.0-openjdk, или проприетарная java"?

Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Firefox/38.0

10

Re: Сборка под Linux от Zenitur

Большой плюс тебе , пускай будет с тобой СИЛА ! )

Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36

11

Re: Сборка под Linux от Zenitur

sstop, пожалуйста! Мою сборку надо обновлять: RPM недоделан, в DEB - лишние зависимости, и вообще обновить до 1.0.

Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0

12

Re: Сборка под Linux от Zenitur

Zenitur пишет:

Сделал пакеты DEB

devuan jessie:

# dpkg-query -l | grep libssl
ii  libssl-dev:amd64                      1.0.1t-1+deb8u8                            amd64        Secure Sockets Layer toolkit - development files
ii  libssl-doc                            1.0.1t-1+deb8u7                            all          Secure Sockets Layer toolkit - development documentation
ii  libssl1.0.0:amd64                     1.0.1t-1+deb8u8                            amd64        Secure Sockets Layer toolkit - shared libraries
ii  libssl1.0.0:i386                      1.0.1t-1+deb8u8                            i386         Secure Sockets Layer toolkit - shared libraries
root@max-book:/home/max/Загрузки# gdebi ttyhlauncher_0.9-1_amd64.deb 
Reading package lists... Done
Building dependency tree        
Reading state information... Done
Building data structures... Done 
Building data structures... Done 
Этот пакет невозможно установить
Dependency is not satisfiable: libssl0.9.8 (>= 0.9.8e)

я не силен в пакетостроительстве -- но готов поразбираться, если что

// поясню, ибо, как я понял, ты не дебиановец: первая команда показывает устновленные пакеты. то есть твой пакет отказывается ставиться потому что хочет libssl версии 0.9.8 или больше, а у меня стоит 1.0.1

Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0

13

Re: Сборка под Linux от Zenitur

Сборки сильно тухлые, проще будет самому из сырцов собрать, наверно.

Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0