LINUX.ORG.RU

Сборка deb-пакета для всех Ubuntu начиная с 12.04 с зависимостью от Qt5


0

1

Здравствуйте!

Хочу собрать deb-пакет, который будет запускаться во всех версиях Ubuntu, начиная с 12.04. Программа зависит от Qt5. Проблема в том, что Qt5 в дефолтовом репозитории есть только начиная с 13.10. Т.е. в в более новых версиях достаточно добавить в пакет зависимость от Qt5, и тогда всё будет ОК. Но тогда этот же пакет не сможет стартовать в не доработанной напильником 12.04.

Возможный вариант - включить в пакет qt-шные либы, но тогда надо как-то не копировать эти файлы, если Qt5 уже есть в системе.

Каким образом можно решить вопрос (одним пакетом) для того, чтобы конечному пользователю доставить меньше всего неудобств? Или всё же придётся делать два пакета?

Статически прилинковать Qt5 ?

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

Делать 2 пакета. Они же будут в репозитории?

Да, репозиторий будет. И лично для себя я бы предпочел именно такой вариант. Но мне не хочется заставлять технически неграмотную часть пользователей делать много телодвижений по установке, таких как добавить репозиторий, обновить кэш, установить ПО. Хочется иметь в запасе вариант «Хотите линукс-версию? Вот скачайте один для всех deb-пакет, клацните мышкой для установки и всё заработает».

Статически прилинковать Qt5 ?

Софт закрытый, так что Qt-шная LGPL не позволит это сделать.

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

Софт закрытый, так что Qt-шная LGPL не позволит это сделать.

Насколько я знаю, LGPL требует предоставить объектные файлы, чтобы можно было перелинковать проприетарный код с новыми версиями LGPL библиотеки. Собственно код открывать не нужно.

i-rinat ★★★★★
()
Ответ на: комментарий от anonymous

gcc -Wl,-rpath=

Т.е. тянуть в пакете с собой Qt5 куда-нибудь в /usr/lib/mycoolprogram/ и не пихать эту директорию в дефолтовые пути для поиска либ?

ratatoskr
() автор топика
Ответ на: комментарий от i-rinat

Насколько я знаю, LGPL требует предоставить объектные файлы, чтобы можно было перелинковать проприетарный код с новыми версиями LGPL библиотеки. Собственно код открывать не нужно.

Я в курсе этой трактовки лицензии, но насколько я понимаю, эту позицию занимают не все, в том числе Digia рекомендует так не делать http://blog.qt.digia.com/blog/2009/11/30/qt-making-the-right-licensing-decision/

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

О, ну тогда таскать библиотеки с собой. И лучше ставиться куда-нибудь в /opt/companyname/programmname/.

i-rinat ★★★★★
()

Самое правильное решение (IMHO): собрать Qt5 в пакеты (бэкпортнуть) и положить в репозиторий рядом с твоим пакетом.

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

Но мне не хочется заставлять технически неграмотную часть пользователей делать много телодвижений по установке, таких как добавить репозиторий, обновить кэш, установить ПО. Хочется иметь в запасе вариант «Хотите линукс-версию? Вот скачайте один для всех deb-пакет, клацните мышкой для установки и всё заработает».

Т.е. ты считаешь, что скачать какой-то непонятный файл, потом тыкнуть в него, подождать полчаса пока запустится SoftwareCenter, потом тыкать во все подряд там, пытаясь заставить его установить этот пакет это блин сложнее чем скопировать три несчастных команды в терминал? Да я будь пользователем не способным поставить gdebi, был бы готов на все лишь бы не запускать это тормознутое глюкалово. Не приучай людей к плохому. Делай репозиторий. В конце концов сделай пакет который подключит репозиторий.

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

сделай пакет который подключит репозиторий

вот это самое то

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