xintrea пишет:
Unnamed_Hero пишет:

Проблема описана в этой ветке. http://webhamster.ru/punbb/viewtopic.php?pid=244#p244. В версии 1.28 была та же проблема, и о ней было сообщено в соответсвующей теме.

Подробнее - программа ставится в /usr/local - это жёстко прописано в файле проекта.

Бинарник программы помещается в не в /usr/local, а в /usr/local/bin:

Я имел ввиду общую подпапку, но не важно.

xintrea пишет:
BINARY_INSTALL_PATH=/usr/local/bin

Установка в /usr/local/bin вроде как удовлетворяет POSIX стандарту.

Удовлетворяет, никто не спорит, но, я повторюсь, сейчас на 99,9% нет пакетов в любой современной Linux-системе, которые ставятся в /usr/local (имею ввиду пакеты из репозитария). Эта папка предназначена для личных нужд пользователя, туда ставят пакеты в обход пакетного менеджера системы, через make && make install.

xintrea пишет:
Unnamed_Hero пишет:

Это неудобно для мейнтейнеров пакетов, если они заходят включить пакет с mytetra в репозитарий своего любимого дистрибутива. Уже много лет пакеты принято ставить в /usr. Патч, предложенный мной, решает эту проблему. При этом, если хочется ставить в /usr/local, то это легко делается с помощью PREFIX (пример в моём изначальном сообщении).

Неудобно? Сейчас установка сводится к командам:

qmake mytetra.pro
make
make install

C новым патчем ничего не изменится.

xintrea пишет:

После вашего исправления, как нужно будет делать установку? Я понял, что:

1. Создать каталог pkgdir

2. Сделать в нем sh-скрипт следующего содержания:

qmake *.pro PREFIX=/usr || exit 1                                                   
make -j${numjobs} || exit 1                                             
make INSTALL_ROOT=${pkgdir} install || exit 1

В чем прелесть таких запутанных действий? И откуда берется значение переменной ${pkgdir}?

Это я как пример показал скрипт для сборки готового пакета для последующей установки через пакетный менеджер. Для пользователей, которые захотят установить из исходников ничего не изменится.

xintrea пишет:

Кроме того, будет ли теперь работать сборка под MeeGo?

В секции про MeeGo ничего не менялось, должно работать.

xintrea пишет:

Кроме того, вы удалили опцию QMAKE_LFLAGS += -L/usr/lib/qt4/lib, без нее у меня сборка не работает.

Вообще, всё должно подхватываться автоматически. У меня подхватывается и эта строка игнорируется. В новом патче я убрал комментирование. Правда, на будущее - не у всех пользователей библиотеки лежать в /usr/lib/. На 64-битных системах в 99% случаях  это /usr/lib64/.

xintrea пишет:

Кроме того, патч не накладывается. Копирую в отдельную директорию файл mytetra.pro, туда же кладу ваш файл path_hero.diff с содержимым, начинащимся с "---". Даю команду:

patch -p1 < path_hero.diff

Мне в ответ:

patch: **** Only garbage was found in the patch input.

Так что накатить изменения не могу.

Я не нашёл, как прикладывать файлы к сообщениям, а при ручном копипасте с пастбина патчи ломаются. В личку скинул прямой линк на новый пачт.

Для общественности показываю тут, ибо он маленький.

Двоичные файлы 1.orig/bin/mytetra и 1.orif/bin/mytetra различаются
diff -uNr 1.orig/mytetra.pro 1.orif/mytetra.pro
--- 1.orig/mytetra.pro    2011-07-11 01:39:39.000000000 +0400
+++ 1.orif/mytetra.pro    2011-08-05 09:06:18.000000000 +0400
@@ -19,10 +19,14 @@
 FORMS = 
 QMAKE_LFLAGS += -L/usr/lib/qt4/lib
 
+isEmpty ( PREFIX ) {
+PREFIX=/usr/local
+}
+
 !contains(TARGET_OS_IS_MEEGO, 1) {
  message(Building the any OS version...)
  SYSTEM_PROGRAM_NAME=mytetra
- BINARY_INSTALL_PATH=/usr/local/bin
+ BINARY_INSTALL_PATH=$${PREFIX}/bin
 } else {
  message(Building the MeeGo OS version...)
  SYSTEM_PROGRAM_NAME=ru.webhamster.mytetra

Добавляет возможность указать префикс для бинарных файлов. По-умолчанию, это /usr/local (файлы ставятся в bin, значит получится /usr/local/bin). Если сказать

qmake *.pro PREFIX=/usr

то префикс поменяется на /usr/bin. Если ничего не говорить, а писать как раньше, то ничего не изменится.

xintrea пишет:
Unnamed_Hero пишет:

Вот патч, исправляющий кривые директории при инсталляции под Linux.

Чтоето за ужосо?

Прочитайте, пожалуйста, вот это: http://webhamster.ru/punbb/viewtopic.php?pid=253#p253.

Перед тем как что-то решать, опишите проблему.

Начнем с первого предложения: "Вот патч, исправляющий кривые директории при инсталляции под Linux". Что это значит? В моем линуксе Debian Squeeze никаких "кривых директорий" нет.

Итак, в чем проблема, которую вы хотите решить?

Проблема описана в этой ветке. http://webhamster.ru/punbb/viewtopic.php?pid=244#p244
В версии 1.28 была та же проблема, и о ней было сообщено в соответсвующей теме.

Подробнее - программа ставится в /usr/local - это жёстко прописано в файле проекта. это неудобно для мейнтейнеров пакетов, если они заходят включить пакет с mytetra в репозитарий своего любимого дистрибутива. Уже много лет пакеты принято ставить в /usr. Патч, предложенный мной, решает эту проблему. При этом, если хочется ставить в /usr/local, то это легко делается с помощью PREFIX (пример в моём изначальном сообщении).

Вот патч, исправляющий кривые директории при инсталляции под Linux.
http://paste.pro/3222785
сборка в AgiliaLinux происходит так:
pkgdir - временная директория, из которой формируется пакет.

qmake *.pro PREFIX=/usr || exit 1                                                   
make -j${numjobs} || exit 1                                             
make INSTALL_ROOT=${pkgdir} install || exit 1

1. Пожеланию к архиву с исходным кодом - в 99% случаев принято паковать директорию с исходным кодом в архив. Т.е. правильно бы было иметь такую структуру:

|_mytetra-1.30.1
 |_bin
 |_desktop
 |_src
 |_mytetra.pro
 |_readme.txt

Сейчас в архиве исходный код без корневой папки mytetra-${VERSION}.
Это так, пожелание.

2. Баг из версии 1.28. - ставится по умолчанию в /usr/local/bin, игнорируя опцию qmake PREFIX=/usr.
3. В pro файле есть запись

QMAKE_LFLAGS += -L/usr/lib/qt4/lib

В 64 битных системах в подавляющем случае библиотеки лежат в /usr/lib64