Bug 29569 - При создании проекта не находит ни одного Kit
Summary: При создании проекта не находит ни одного Kit
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: qt-creator (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: Nobody's working on this, feel free to take it
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-11-11 13:17 MSK by Andrey Cherepanov
Modified: 2014-02-05 00:19 MSK (History)
6 users (show)

See Also:


Attachments
qtversion.xml (666 bytes, text/xml)
2013-12-12 14:37 MSK, Andrey Cherepanov
no flags Details
toolchains.xml (2.30 KB, text/xml)
2013-12-13 12:00 MSK, Andrey Cherepanov
no flags Details
Патч на конфигурацию, исправляющий проблему (692 bytes, patch)
2013-12-13 12:08 MSK, Andrey Cherepanov
no flags Details | Diff
Список плагинов (211.61 KB, image/png)
2013-12-13 16:06 MSK, Andrey Cherepanov
no flags Details
environment.cpp.patch (769 bytes, patch)
2013-12-13 16:45 MSK, Sergey V Turchin
no flags Details | Diff
environment.cpp.patch (867 bytes, patch)
2013-12-13 18:47 MSK, Sergey V Turchin
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Andrey Cherepanov 2013-11-11 13:17:26 MSK
В настройках есть один kit Desktop (Manual). Ни одного Auto-detected. Из-за этого при создании любого проекта останавливается на выборе Kit (список пуст) и дальше пройти не может.

Ожидаемое поведение: показывает хотя бы один доступный Kit (подозреваю, что нужно сделать доступными в Auto-detected).
Comment 1 Anatoly Lyutin 2013-11-27 14:57:17 MSK
Не понял в чём заключается ошибка.
Обновился до текущего Сизифа (22.11.2013), поставил заново QtCreator, создал пустой проект (графическое приложение Qt), собрал, запустил - работает.

Может быть по скриншотам я что-то пойму?
Comment 2 Andrey Cherepanov 2013-11-27 16:11:09 MSK
Воспроизвёл проблему и на пустой виртуалке с Sisyphus. Помимо всего прочего, qt-creator не тянет пакет qt4-devel. Даже после его установки надо чистить конфигурацию ~/.confit/QtProject чтобы шаблон проекта Qt увиделся. Да и компилятор не устанавливается по умолчанию. В общем, по умолчанию ничего не соберёшь.

Выбираю Создать файл или проект... → GUI приложение Qt → Выбрать → Далее 
и вижу пустой список kit.

А не хватает того, что в Инструменты → Параметры → Сборка и запуск → Комплекты надо указать профиль Qt вручную (из-за того, что у нас qmake-qt4, автоматический профиль Qt не создаётся, приходится выставлять вручную.

Вот и получается, что без /usr/bin/qmake она профиль по умолчанию не создаёт.

2zerg@: Сергей, может, уже сделаем альтернативы для qmake/designer/linguist/assistant?
Comment 3 Anatoly Lyutin 2013-11-27 16:31:35 MSK
(В ответ на комментарий №2)
> Воспроизвёл проблему и на пустой виртуалке с Sisyphus. Помимо всего прочего,
> qt-creator не тянет пакет qt4-devel.
По идее qt-creator работоспособен и без qt4-devel - должен позволять создавать Html5 приложения. Но согласен, явно нужны зависимости на qt4-devel и gcc-c++

> Даже после его установки надо чистить
> конфигурацию ~/.confit/QtProject чтобы шаблон проекта Qt увиделся.
А вот что с этим делать не знаю. Чистить конфиг принудительно нельзя же.

> Да и компилятор не устанавливается по умолчанию. В общем, по умолчанию ничего не соберёшь.

> А не хватает того, что в Инструменты → Параметры → Сборка и запуск → Комплекты
> надо указать профиль Qt вручную (из-за того, что у нас qmake-qt4,
> автоматический профиль Qt не создаётся, приходится выставлять вручную.

Странности какие-то, по идее автоопределение должно работать и раньше как-то работало.
Comment 4 Sergey V Turchin 2013-11-27 16:47:14 MSK
(В ответ на комментарий №2)
> 2zerg@: Сергей, может, уже сделаем альтернативы для
> qmake/designer/linguist/assistant?
Исключено. Это совершенно разные вещи, а не версии одного и того же.
Используйте PATH для поиска qmake в %_libdir/qt4/bin/ .
Comment 5 Anatoly Lyutin 2013-11-27 16:54:27 MSK
(В ответ на комментарий №4)
> Используйте PATH для поиска qmake в %_libdir/qt4/bin/ .
Простите, я не в курсе последних изменений в сизифе/альтовском qt4, не могли бы мне подсказать, что я должен добавить в спек для такого поиска?
Comment 6 Sergey V Turchin 2013-11-27 16:58:13 MSK
(В ответ на комментарий №5)
> (В ответ на комментарий №4)
> > Используйте PATH для поиска qmake в %_libdir/qt4/bin/ .
> Простите, я не в курсе последних изменений в сизифе/альтовском qt4
В этом плане не было никаких изменений с начала существования альтовского qt4.
Comment 7 Sergey V Turchin 2013-11-27 17:00:09 MSK
(В ответ на комментарий №5)
> что я должен добавить в спек для такого поиска?
Для сборки появился макрос %qmake_qt4 .
Comment 8 Sergey V Turchin 2013-11-27 17:03:39 MSK
(В ответ на комментарий №5)
> что я должен добавить в спек
Андрей имел ввиду, что при работе уже в системе нет qmake.
Если qt-creator ищет его, то нужно или пропатчить, чтоб искал qmake-qt4 или добавить /usr/lib{,64}/qt4/bin/ в PATH перед поиском.
Comment 9 Andrey Cherepanov 2013-11-27 17:07:29 MSK
(В ответ на комментарий №8)
> (В ответ на комментарий №5)
> > что я должен добавить в спек
> Андрей имел ввиду, что при работе уже в системе нет qmake.
> Если qt-creator ищет его, то нужно или пропатчить, чтоб искал qmake-qt4 или
> добавить /usr/lib{,64}/qt4/bin/ в PATH перед поиском.
Она находит и qmake-qt4. Но не рассматривает её как достойную для дефолта.

Сергей, я таки сделаю пакет qmake. :)
Comment 10 Anatoly Lyutin 2013-11-27 17:10:41 MSK
(В ответ на комментарий №9)
> (В ответ на комментарий №8)
> > (В ответ на комментарий №5)
> > > что я должен добавить в спек
> > Андрей имел ввиду, что при работе уже в системе нет qmake.
> > Если qt-creator ищет его, то нужно или пропатчить, чтоб искал qmake-qt4 или
> > добавить /usr/lib{,64}/qt4/bin/ в PATH перед поиском.
> Она находит и qmake-qt4. Но не рассматривает её как достойную для дефолта.
> 
> Сергей, я таки сделаю пакет qmake. :)
Я думаю, что пакет qmake нужен, иначе придётся патчить каждый пакет, который ищет стандартный qmake. По идее уже нужен не qmake-qt4, а qmake-qt3 :)
Comment 11 Sergey V Turchin 2013-11-27 17:20:33 MSK
(В ответ на комментарий №9)
> Сергей, я таки сделаю пакет qmake. :)
Не надо гадить, пожалуйста.
Comment 12 Sergey V Turchin 2013-11-27 17:21:24 MSK
(В ответ на комментарий №10)
> ищет стандартный qmake. По идее уже нужен не qmake-qt4, а qmake-qt3 :)
Или qmake-qt5. Какой, говорите, из них стандартный?
Comment 13 Anatoly Lyutin 2013-11-27 17:33:01 MSK
(В ответ на комментарий №12)
> (В ответ на комментарий №10)
> > ищет стандартный qmake. По идее уже нужен не qmake-qt4, а qmake-qt3 :)
> Или qmake-qt5. Какой, говорите, из них стандартный?
Ах да, qt5 же на носу :) Совсем забыл.
Comment 14 Andrey Cherepanov 2013-11-27 17:54:20 MSK
(В ответ на комментарий №11)
> (В ответ на комментарий №9)
> > Сергей, я таки сделаю пакет qmake. :)
> Не надо гадить, пожалуйста.
Тогда ты бы в позу не вставал, а помог.
Comment 15 Sergey V Turchin 2013-11-27 18:02:22 MSK
(В ответ на комментарий №14)
> Тогда ты бы в позу не вставал, а помог.
Я уже дал решение в коментарии #8 . Любителям поз тоже ;-)
Comment 16 Sergey V Turchin 2013-11-27 18:38:07 MSK
Там проблема в том, что у умолчательном Kit не выставляется версия Qt, хотя ~/.config/QtProject/qtcreator/qtversion.xml заполняется правильно сразу же и qmake в нем тот, который нужно.
Comment 17 Zerg 2013-11-28 14:53:48 MSK
(В ответ на комментарий №13)
> qt5 же на носу :)
Не на носу, а в репозиториях ;-)
Comment 18 Sergey V Turchin 2013-11-28 18:53:26 MSK
Я попробовал посмотреть, но не понял, зачем он пишет
'Qt version is no longer known, removing from kit "Desktop".'

P.S.
2.8.1 бы для начала попробовать.
Comment 19 Anatoly Lyutin 2013-11-28 19:02:30 MSK
(В ответ на комментарий №18)
> 2.8.1 бы для начала попробовать.
Да, я заодно и обновлю QtCreator. Сейчас просто нет времени обновить/оттестировать.
Comment 20 Anatoly Lyutin 2013-12-06 19:11:22 MSK
Скоро будет стабильный 3.0.0
Думаю, что, если не горит, то можно подождать недельку/две и собрать свежак.
Comment 21 Sergey V Turchin 2013-12-06 19:26:25 MSK
IMHO перед этим лучше в p7 2.8.1 собрать.
Comment 22 Anatoly Lyutin 2013-12-06 19:27:01 MSK
(В ответ на комментарий №21)
> IMHO перед этим лучше в p7 2.8.1 собрать.
Ок.
Comment 23 Anatoly Lyutin 2013-12-09 18:16:57 MSK
(В ответ на комментарий №2)
> qt-creator не тянет пакет qt4-devel. 
Что-то qt4-devel тянет за собой доки и скомпилированные примеры на 14 Мб. Как-то не очень красиво получается. С другой стороны перечислять все либы тоже не охота. Может есть какой-то более красивый вариант?
Comment 24 Sergey V Turchin 2013-12-09 18:30:13 MSK
(В ответ на комментарий №23)
> (В ответ на комментарий №2)
> > qt-creator не тянет пакет qt4-devel. 
> Что-то qt4-devel тянет за собой доки и скомпилированные примеры на 14 Мб.
Там только скомпилированные примеры лишние, а доки нужны.
Comment 25 Anatoly Lyutin 2013-12-09 20:01:30 MSK
Что-то я понять не могу, добавил в спек

Requires: %name-data = %version-%release
Requires: gcc-c++
Requires: qt4-devel >= 4.8.0

%filter_from_requires /qt4-doc-examples-bin*/d

Собрал локально, пытаюсь установить, а оно мне:
[root@localhost RPMS]# apt-get install qt-creator-2.8.1-alt1.i586.rpm qt-creator-data-2.8.1-alt1.noarch.rpm qt-creator-doc-2.8.1-alt1.noarch.rpm 
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Выбрано qt-creator для 'qt-creator-2.8.1-alt1.i586.rpm'
Выбрано qt-creator-data для 'qt-creator-data-2.8.1-alt1.noarch.rpm'
Выбрано qt-creator-doc для 'qt-creator-doc-2.8.1-alt1.noarch.rpm'
Некоторые пакеты установить невозможно. Это может означать, что Вы
потребовали невозможного, либо пользуетесь нестабильным репозиторием.
Часть необходимых пакетов либо ещё не создана, либо была удалена
из каталога 'Входящие'.
Эти сведения могут помочь найти выход из ситуации:

Следующие пакеты имеют неудовлетворенные зависимости:
  qt-creator-data: Требует: python2.7(gdb) но пакет не может быть установлен
                   Требует: python2.7(lldb) но пакет не может быть установлен
E: Извините, `битые' пакеты

При этом python и qt4 у меня последние, g++ тоже. Куда копать?
Comment 26 Zerg 2013-12-09 23:28:24 MSK
К
apt-get install pkg
добавить
'python2.7(gdb)' 'python2.7(lldb)'
Comment 27 Anatoly Lyutin 2013-12-10 12:05:55 MSK
(В ответ на комментарий №26)
> К
> apt-get install pkg
> добавить
> 'python2.7(gdb)' 'python2.7(lldb)'

[root@localhost RPMS]# apt-get install qt-creator-2.8.1-alt1.i586.rpm qt-creator-data-2.8.1-alt1.noarch.rpm qt-creator-doc-2.8.1-alt1.noarch.rpm 'python2.7(gdb)' 'python2.7(lldb)'
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Выбрано qt-creator для 'qt-creator-2.8.1-alt1.i586.rpm'
Выбрано qt-creator-data для 'qt-creator-data-2.8.1-alt1.noarch.rpm'
Выбрано qt-creator-doc для 'qt-creator-doc-2.8.1-alt1.noarch.rpm'
Пакет python2.7(gdb) присутствует в базе данных, но не имеет доступной версии.
Как правило это означает, что хотя пакет упоминается в списке зависимостей,
он отсутствует в репозитории, был вытеснен, либо в sources.list нет адреса
реE: Для пакета python2.7(gdb) не найдено подходящего кандидата для установки

Это я что-то не так делаю или это в репо что-то разломано?
Comment 28 Anatoly Lyutin 2013-12-11 15:07:44 MSK
(В ответ на комментарий №24)
> (В ответ на комментарий №23)
> > (В ответ на комментарий №2)
> > > qt-creator не тянет пакет qt4-devel. 
> > Что-то qt4-devel тянет за собой доки и скомпилированные примеры на 14 Мб.
> Там только скомпилированные примеры лишние, а доки нужны.

Что-то я совсем не могу их отфильтровать.
Пробовал так:
%add_findreq_skiplist qt4-doc-examples-bin
%filter_from_requires /*qt4-doc-examples-bin*/d
%filter_from_requires *qt4-doc-examples-bin*
Comment 29 Sergey V Turchin 2013-12-11 16:46:49 MSK
(В ответ на комментарий №28)
> Что-то я совсем не могу их отфильтровать.
Не получится. Оставьте так.
Comment 30 Anatoly Lyutin 2013-12-11 23:45:10 MSK
Андрей, протестируйте пожалуйста:
http://git.altlinux.org/tasks/110370/
Comment 31 Andrey Cherepanov 2013-12-12 11:15:58 MSK
(В ответ на комментарий №30)
> Андрей, протестируйте пожалуйста:
> http://git.altlinux.org/tasks/110370/
Проверил. Бага не исправлена: список Kit'ов пуст.
Comment 32 Anatoly Lyutin 2013-12-12 11:23:57 MSK
(В ответ на комментарий №31)
> (В ответ на комментарий №30)
> > Андрей, протестируйте пожалуйста:
> > http://git.altlinux.org/tasks/110370/
> Проверил. Бага не исправлена: список Kit'ов пуст.

Удивительно. Я отодвинул ~/.config/QtProject и он пересоздался у меня правильно.
Прикрепите сюда ~/.config/QtProject/qtversion.xml

Я проверяю на i586, а вы на x86_64?
Comment 33 Andrey Cherepanov 2013-12-12 14:37:31 MSK
Created attachment 6006 [details]
qtversion.xml

Да, на x86-64
Comment 34 Anatoly Lyutin 2013-12-12 15:04:54 MSK
(В ответ на комментарий №33)
> Created an attachment (id=6006) [details]
> qtversion.xml
> 
> Да, на x86-64

Хм, вроде всё определилось. Есть возможность проверить на 32-х битной архитектуре?
Comment 35 Sergey V Turchin 2013-12-12 16:28:56 MSK
Там идет проверка версии(раньше ругалось 'Qt version is no longer known, removing from kit "Desktop"'), а что не нравится, не понял.
Comment 36 Andrey Cherepanov 2013-12-12 18:43:23 MSK
(В ответ на комментарий №34)
> Хм, вроде всё определилось. Есть возможность проверить на 32-х битной
> архитектуре?
А какая разница? Нет.
Comment 37 Anatoly Lyutin 2013-12-12 18:55:29 MSK
(В ответ на комментарий №36)
> (В ответ на комментарий №34)
> > Хм, вроде всё определилось. Есть возможность проверить на 32-х битной
> > архитектуре?
> А какая разница? Нет.
А покажите ещё ~/.config/QtProject/qtcreator/toolChains.xml пожалуйста. И ещё раз ~/.config/QtProject/qtcreator/qtversion.xml . Я первый раз спросил не по тому пути, так писал старый qtcreator. А новый пишет в отдельную папку.
Comment 38 Andrey Cherepanov 2013-12-13 12:00:44 MSK
Created attachment 6007 [details]
toolchains.xml

qtversion.xml я по тому пути и брал.
Comment 39 Andrey Cherepanov 2013-12-13 12:08:01 MSK
Created attachment 6008 [details]
Патч на конфигурацию, исправляющий проблему

При наложении этого патча на конфигурацию в ~/.config/QtProject/qtcreator проблема исправляется.
Comment 40 Anatoly Lyutin 2013-12-13 12:21:52 MSK
(В ответ на комментарий №39)
> Created an attachment (id=6008) [details]
> Патч на конфигурацию, исправляющий проблему
> 
> При наложении этого патча на конфигурацию в ~/.config/QtProject/qtcreator
> проблема исправляется.

Спасибо, но я не могу приложить этот явный хак. Видимо какая-то функция ищет Qt не по тому пути и возвращает -1. Попробую покопать в этом направлении.
Comment 41 Sergey V Turchin 2013-12-13 14:35:06 MSK
Сколько раз можно повторять?!
Ваш патч будет похерен в том месте, про которое пишу.

Там идет проверка версии(раньше ругалось 'Qt version is no longer known,
removing from kit "Desktop"'), а что не нравится, не понял.
Comment 42 Anatoly Lyutin 2013-12-13 15:10:35 MSK
(В ответ на комментарий №39)
> Created an attachment (id=6008) [details]
> Патч на конфигурацию, исправляющий проблему
> 
> При наложении этого патча на конфигурацию в ~/.config/QtProject/qtcreator
> проблема исправляется.

Что-то я думаю, что проблема даже не в этом определении. У меня тоже "-1":
    <value type="QString" key="PE.Profile.ToolChain">ProjectExplorer.ToolChain.Gcc:{2bc53d1b-06ef-487a-8e0b-ef5d22ffe2c8}</value>
    <value type="QString" key="QtPM4.mkSpecInformation"></value>
    <value type="int" key="QtSupport.QtInformation">-1</value>
но тем не менее всё работает.
Comment 43 Anatoly Lyutin 2013-12-13 15:49:24 MSK
Вроде разобрался. Это какая-то левая бага, связанная с активными по умолчанию плагинами. Пришлите мне скиншот на "Справка->О модулях".
И если плагин Qt4ProjectManager выключен, то попробуйте включить и рассказать о результатах. 

https://www.mail-archive.com/qt-creator@qt-project.org/msg01737.html
Comment 44 Anatoly Lyutin 2013-12-13 15:52:26 MSK
Да, реально. Как только я снял галку с этого модуля, а потом вернул обратно - у меня пропала возможность создавать Qt проекты и исчез Qt из "Профилей Qt"
Comment 45 Anatoly Lyutin 2013-12-13 15:58:03 MSK
И связано это всё с тем, что Qt Creator ищет qmake в 
stat64("/home/vostok/bin/qmake", 0xbffdbf00) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/kde4/bin/qmake", 0xbffdbf00) = -1 ENOENT (No such file or directory)
stat64("/usr/local/bin/qmake", 0xbffdbf00) = -1 ENOENT (No such file or directory)
stat64("/usr/bin/qmake", 0xbffdbf00)    = -1 ENOENT (No such file or directory)
stat64("/bin/qmake", 0xbffdbf00)        = -1 ENOENT (No such file or directory)
stat64("/usr/games/qmake", 0xbffdbf00)  = -1 ENOENT (No such file or directory)
stat64("/usr/X11R6/bin/qmake", 0xbffdbf00) = -1 ENOENT (No such file or directory)
stat64("/usr/share/kde4/bin/qmake", 0xbffdbf00) = -1 ENOENT (No such file or directory)
stat64("/usr/share/kde4/bin/qmake", 0xbffdbf00) = -1 ENOENT (No such file or directory)

и не находит. Если ему в Options->Build & Run->Qt Versions указать /usr/bin/qmake-qt4, то всё начинает работать.
Comment 46 Andrey Cherepanov 2013-12-13 16:06:59 MSK
Created attachment 6009 [details]
Список плагинов

(В ответ на комментарий №43)
> Вроде разобрался. Это какая-то левая бага, связанная с активными по умолчанию
> плагинами. Пришлите мне скиншот на "Справка->О модулях".
> И если плагин Qt4ProjectManager выключен, то попробуйте включить и рассказать о
> результатах.
Был включен.
Comment 47 Sergey V Turchin 2013-12-13 16:14:55 MSK
Попробуйте пропатчить QtKitInformation::defaultValue()
Comment 48 Sergey V Turchin 2013-12-13 16:17:40 MSK
А лучше Environment::searchInPath(), чтоб %_libdir/qt4/bin туда автодобавлялось.
Comment 49 Anatoly Lyutin 2013-12-13 16:31:56 MSK
(В ответ на комментарий №47)
> Попробуйте пропатчить QtKitInformation::defaultValue()

По идее он там ищет в системных переменных. У нас там что должно быть забито? Я у себя вижу только пустоту.

P.S: Собираю пока пропатченный plugins/qmakeprojectmanager/qmakestep.cpp, там qmake устанавливается.
Comment 50 Anatoly Lyutin 2013-12-13 16:35:12 MSK
(В ответ на комментарий №48)
> А лучше Environment::searchInPath(), чтоб %_libdir/qt4/bin туда
> автодобавлялось.

Нет, это будет тоже хак :) Я поизучал код и вижу, что он исполняемые пути берёт из какой-то переменной. Так вот, наверное, надо чтобы в эту переменную писался %_libdir/qt4/bin. Осталось только понят что это за перменная и кто туда должен этот путь писать (qt4-devel?).
Я посмотрел код и вижу, что qt-creator обучен искать qmake, qmake-qt4 и даже qmake-qt5. Поэтому я думаю, что нужно править тот пакет, что не добавляет нужный путь. 
Иначе после переезда на qt5 снова придётся фиксить qtcreator.
Comment 51 Anatoly Lyutin 2013-12-13 16:38:11 MSK
Собственно поэтому раньше qt-creator 2.7.0 работал. До тех пор пока не исчез qmake по стандартному пути.
Comment 52 Sergey V Turchin 2013-12-13 16:45:07 MSK
Created attachment 6010 [details]
environment.cpp.patch

Надеюсь, оно.
Comment 53 Sergey V Turchin 2013-12-13 16:46:45 MSK
Comment on attachment 6010 [details]
environment.cpp.patch

>--- environment.cpp~	2013-03-21 11:28:37.000000000 +0400
>+++ environment.cpp	2013-12-13 16:43:39.884683998 +0400
>@@ -36,6 +36,7 @@
> #include <QProcessEnvironment>
> #include <QString>
> #include <QCoreApplication>
>+#include <QLibraryInfo>
> 
> class SystemEnvironment : public Utils::Environment
> {
>@@ -278,7 +279,7 @@ QString Environment::searchInPath(const
> QStringList Environment::path() const
> {
>     return m_values.value(QLatin1String("PATH")).split(HostOsInfo::pathListSeparator(),
>-                                                       QString::SkipEmptyParts);
>+                                                       QString::SkipEmptyParts).append(QLibraryInfo::location(QLibraryInfo::BinariesPath));
> }
> 
> QString Environment::value(const QString &key) const
Comment 54 Sergey V Turchin 2013-12-13 16:48:47 MSK
Только, не prepend(), а append() , будет правильнее, чтоб ~/bin не перекрывать.
Comment 55 Sergey V Turchin 2013-12-13 16:53:35 MSK
(В ответ на комментарий №50)
> Иначе после переезда на qt5 снова придётся фиксить qtcreator.
Нет. Он просто начнет находить qmake-qt5.
Comment 56 Anatoly Lyutin 2013-12-13 17:09:46 MSK
(В ответ на комментарий №55)
> (В ответ на комментарий №50)
> > Иначе после переезда на qt5 снова придётся фиксить qtcreator.
> Нет. Он просто начнет находить qmake-qt5.

Да, действительно. Сейчас соберу с этим патчем и посмотрю.
Comment 57 Anatoly Lyutin 2013-12-13 17:40:08 MSK
Короче получается что надо qt-creator по диагонали хачить, т.к. функция path() является const и в m_values append сделать нельзя. В конструкторе заполняется m_values по всем Environment Variables и вставлять туда поиск PATH тоже криво. Ну и в void QtcProcess::start() передаются все enviroments.

Считаю, что таки придётся патчить qt4-devel, чтобы он правильно дополнял PATH, т.к. это всяко лучше диких хаков :(

Ну либо path() делать неконстантной, но тогда во всех константных функциях нельзя будет её использовать или делать m_values mutable, но это один хак грязнее другого.
Comment 58 Anatoly Lyutin 2013-12-13 17:44:59 MSK
Да и вообще какой append? Он же будет при каждом вызове добавлять ещё одну строчку, пока память не кончится...
Comment 59 Sergey V Turchin 2013-12-13 18:25:06 MSK
Ну, заведите вначале функции отдельный QStringList paths(m_values) и append в него и возвращайте его .
Comment 60 Anatoly Lyutin 2013-12-13 18:32:02 MSK
(В ответ на комментарий №59)
> Ну, заведите вначале функции отдельный QStringList paths(m_values) и append в
> него и возвращайте его .

Я как-то уже не понимаю, почему стоит делать несовместимость по коду в альт линуксе? В других же дистрибутивах он как-то работает из коробки. Какие веские аргументы существуют для починки именно программы-потребителя, а не devel пакета? 
Или это qtcreator единственный такой кривой в своём роде?
Comment 61 Sergey V Turchin 2013-12-13 18:41:37 MSK
(В ответ на комментарий №58)
> Да и вообще какой append?
> Он же будет при каждом вызове добавлять ещё одну строчку
Куда? ;-)
Comment 62 Sergey V Turchin 2013-12-13 18:47:18 MSK
Created attachment 6011 [details]
environment.cpp.patch

Так собирается.
Comment 63 Anatoly Lyutin 2013-12-13 18:48:35 MSK
(В ответ на комментарий №61)
> (В ответ на комментарий №58)
> > Да и вообще какой append?
> > Он же будет при каждом вызове добавлять ещё одну строчку
> Куда? ;-)

Это был коммент к первому патчу. В нём m_values всегда бы получала новую порцию байт.
Comment 64 Sergey V Turchin 2013-12-13 18:49:36 MSK
(В ответ на комментарий №63)
> В нём m_values всегда бы получала новую порцию байт.
Нет. append там не к m_values.
Comment 65 Anatoly Lyutin 2013-12-13 18:50:35 MSK
(В ответ на комментарий №62)
> Created an attachment (id=6011) [details]
> environment.cpp.patch
> 
> Так собирается.

Я теперь не уверен, что это хороший вариант. В принципе если QtCreator очень нужен в p7, то катит, но по факту это ничем не лучше правки конфига. :(
Comment 66 Anatoly Lyutin 2013-12-13 18:52:33 MSK
(В ответ на комментарий №64)
> (В ответ на комментарий №63)
> > В нём m_values всегда бы получала новую порцию байт.
> Нет. append там не к m_values.

А к split append не получалось сделать. Там единственный варинт был сначала сделать append, а потом split.
Comment 67 Sergey V Turchin 2013-12-13 18:55:35 MSK
(В ответ на комментарий №60)
> Какие веские аргументы существуют для починки именно программы-
> потребителя, а не devel пакета? 
Отсутствие веских агрументов наличия багов/несовместимостей в devel-пакете.

> Или это qtcreator единственный такой кривой в своём роде?
Нет. Во многои пакетах приходится допиливать.

А qtcreqtor кривой. В начале environment.cpp видно по строке
lib.cd(QLatin1String("../lib"));
Comment 68 Sergey V Turchin 2013-12-13 18:58:03 MSK
(В ответ на комментарий №66)
> А к split append не получалось сделать. Там единственный варинт был сначала
> сделать append, а потом split.
Ну, это уже вы сами намудрили :-)
Comment 69 Sergey V Turchin 2013-12-13 18:59:38 MSK
(В ответ на комментарий №65)
> по факту это ничем не лучше правки конфига. :(
Не по факту, а только на текущий момент. Завтра съедет и будете чинить опять или еще что-нибудь в другом месте.
Comment 70 Sergey V Turchin 2013-12-13 19:00:54 MSK
(В ответ на комментарий №69)
> (В ответ на комментарий №65)
> > по факту это ничем не лучше правки конфига. :(
> Не по факту, а только на текущий момент.
И "ничем не лучше" из них только правка конфига.
Comment 71 Sergey V Turchin 2013-12-13 19:03:59 MSK
(В ответ на комментарий №60)
> В других же дистрибутивах он как-то работает из коробки.
Далеко не факт, что эти дистрибутивы не являются менее кривыми.
Выясните почему, если важно. Начните с Debian, а всякие Ubintu за пример не катят.
Comment 72 Anatoly Lyutin 2014-01-24 13:43:42 MSK
Всем привет и всех с прошедшими праздниками! :)
Я несколько раз пытался выделить время на качественное решение данного бага, которое бы меня устраивало, но сегодня осознал, что времени нет и не будет.

В целом QtCreator имеет "правильный" git-репо в alt linux и нет никаких проблем с его обновлением.

Я предлагаю @zerg подхватить пакет и починить его согласно своему видению правильности работы Qt-приложений в Alt-е.
Comment 73 Sergey V Turchin 2014-01-24 15:59:00 MSK
(В ответ на комментарий №72)
> Я предлагаю @zerg
У него и без меня мантейнеров хватает, судя по ACL.
Comment 74 Anatoly Lyutin 2014-01-24 16:07:55 MSK
(В ответ на комментарий №73)
> (В ответ на комментарий №72)
> > Я предлагаю @zerg
> У него и без меня мантейнеров хватает, судя по ACL.

@boris не поддерживает этот пакет, я его подхватил после него. @cas вроде добавился, когда под p6 собрал. По факту много, по существу - ни одного.
Comment 75 Sergey V Turchin 2014-01-24 17:13:56 MSK
(В ответ на комментарий №74)
> по существу - ни одного.
Напишите в devel@ . Может, кого-то заинтересует.
Comment 76 Anatoly Lyutin 2014-01-24 17:24:05 MSK
(В ответ на комментарий №75)
> (В ответ на комментарий №74)
> > по существу - ни одного.
> Напишите в devel@ . Может, кого-то заинтересует.
Сделал
Comment 77 Evgeny Sinelnikov 2014-01-30 20:16:49 MSK
В общем, я разобрался в коде загрузки профилей.
Там простой алгоритм (kitmanager.cpp: KitManager::restoreKits()):
1) во время старта приложения сначала загружаются системные настройки;
2) затем пользовательские;
3) если среди загруженных настроек не оказывается ни одного профиля, то он добавляется автоматически, причём в минимальном виде и без указания, что это автоматически определённый профиль.

Именно этот, третий, профиль и оказывается пустым. Системные настройки у нас вообще не определяются.

В качестве системного ini-файла с настройками предполагается файл:
/etc/xdg/QtProject/QtCreator.ini

В качестве пользовательского:
~/.config/QtProject/QtCreator.ini

Аналогично и для дополнительных файлов с профилями предполагаются
системный файл
/etc/xdg/QtProject/qtcreator/profiles.xml

и пользовательский
~/.config/QtProject/qtcreator/profiles.xml

Префикс /etc/xdg/ добавляет класс QSettings со вторым аргументом QSettings::SystemScope.


Итого, есть три сценария решения проблемы:
1) Устанавливать системные настройки вместе с пакетом qt-creator.
2) Генерировать настройки во время установки в %post скрипте.
3) Поправить код автоматического создания пустого профиля.

Готов пока отправить 2.8.1-alt1 без исправления этой проблемы.

Жду исправления другой:
https://bugzilla.altlinux.org/show_bug.cgi?id=29759
Comment 78 Zerg 2014-01-30 20:52:47 MSK
(В ответ на комментарий №77)
> 3) Поправить код автоматического создания пустого профиля.
Не пустой, а полный, за исключением того, что там отметается Qt по какой-то причине и выставляется в none. Если  environment.cpp.patch это действительно исправляет, то не надо городить никаких файлов, которые нужно будет еще и постоянно отслеживать.
Comment 79 Evgeny Sinelnikov 2014-02-02 16:37:32 MSK
Применил патч от zerg@, проверил. Патч действительно исправляет поиск Qt при генерации рабочего кита.

$ ssh git.alt task show
id=113268 locked=yes shared=yes test_only=yes repo=sisyphus owner=sin state=BUILDING try=1 iter=1
 100:userid=sin
 200:dir=/people/sin/packages/gdb.git
 200:tag_name=7.5.0.20121002-alt5
 200:tag_id=795d5b4931581fba5ecba367d94786ff80b23a24
 200:tag_author=Evgeny Sinelnikov (Sin) <sin@altlinux.org>
 200:userid=sin
 300:dir=/people/sin/packages/qt-creator.git
 300:tag_name=2.8.1-alt1
 300:tag_id=1b0436f7d1690fc41d9be6bb2838bc6c3785ed7e
 300:tag_author=Evgeny Sinelnikov (Sin) <sin@altlinux.org>
 300:userid=sin

Отправил пакет на пересборку, Добавил в сборочную задачу gdb с поддержкой python.
https://bugzilla.altlinux.org/show_bug.cgi?id=29759
Comment 80 Repository Robot 2014-02-05 00:19:20 MSK
qt-creator-2.8.1-alt1 -> sisyphus:

* Sun Feb 02 2014 Evgeny Sinelnikov <sin@altlinux> 2.8.1-alt1
- update to new version (closes #29569)