[решено]Странная работа portage
tuupic 12 Августа, 2009 - 22:49
Есть ebuild qmmp-9999. До недавнего времени работал. Но последнее время qmmp не компиляется.
Вот с такой ошибкой.
[ 5%] [ 5%] Building CXX object src/qmmp/CMakeFiles/libqmmp.dir/abstractdetailsdialog.o Building CXX object src/qmmp/CMakeFiles/libqmmp.dir/coverwidget.o In file included from /var/tmp/portage/media-sound/qmmp-9999/work/qmmp-9999/src/qmmp/abstractdetailsdialog.cpp:25: /var/tmp/portage/media-sound/qmmp-9999/work/qmmp-9999_build/src/qmmp/ui_abstractdetailsdialog.h:29:25: error: coverwidget.h: Нет такого файла или каталога
Тут всё понятно. Нету файла
/var/tmp/portage/media-sound/qmmp-9999/work/qmmp-9999_build/src/qmmp/coverwidget.h
Но этот файл есть в /var/tmp/portage/media-sound/qmmp-9999/work/qmmp-9999/src/qmmp/
Вопрос: почему этот файл не оказывается в work/qmmp-9999_build, и вообще, зачем нужно 2 директории?
Если собирать вручную (cmake; make), то всё собирается.
p.s. Опытным путём выяснил, что этот файл(один и тот же) "отсутствует" в 2-х местах.
p.p.s. Вопрос не о том что не работает ebuild, а о том ПОЧЕМУ.
p.p.p.s: Решение: "сломали/починили" (кому как нравится) cmake-utils.eclass
»
- Для комментирования войдите или зарегистрируйтесь
Подозрение на "кривой" архив
Подозрение на "кривой" архив \ ebuild. попытка установки более ранней версии что говорит?
Имхо, ебилд окривел, девы
Имхо, ебилд окривел, девы изменили директорию проекта, мантайнер ебилда не успел.
для сведение *9999 собиратся не обязано.
пишите багу/емаил маинтайнеру ебилда.
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
там нету директорий
Там нету никаких директорий. Там только опции cmake (включение модулей). Эти директории создаются портежем, а не ебилдом или девелоперами qmmp.
Сам ебилд тут
Разумеется, не обязано. Но я писал
Что означает, если скопировать содержимое /usr/portage/distfiles/svn-src/qmmp/qmmp куда-либо, зайти и выполнить "cmake -DCMAKE_INSTALL_PREFIX=/usr && make", то всё превосходно собирается.
tuupic написал(а):Там нету
Щазз, нету :) А это что, приведение CMAKE_USE_DIR="${S}/${PN}" ?
# @ECLASS-VARIABLE: CMAKE_USE_DIR
# @DESCRIPTION:
# Sets the directory where we are working with cmake.
# For example when application uses autotools and only one
# plugin needs to be done by cmake.
# By default it uses ${S}.
: ${CMAKE_USE_DIR:=${S}}
Еще раз, раньше
было
media-sound/qmmp-9999/work/qmmp-9999/src/
Стало
media-sound/qmmp-9999/work/qmmp-9999_build/src/
Что тут не понятного, дира qmmp-9999_build/ лежит в SVN.
Правильно будет: CMAKE_USE_DIR="${S}/${PN}"_build :)
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
мде
1) Мде, не посмотрел, что в багзилле старый ебилд.
Вот. Покажите мне где здесь хоть слово про директории
2) Покажите мне, где здесь в SVN дира build
Тему бы переименовать не
Тему бы переименовать не мешало. Это ошибка ебилда, явно, а не portage.
покажите
Ну покажите мне, пожалуйста, эту ошибку. Я её увидеть не могу. Ебилд работал. Вдруг перестал. Архитектура(и мажорная версия) программы также не менялась.
В ебилде вызывается стандартная функция компиляции ПО, использующего cmake. Определена стандартная же переменная дополнительных параметров(включение/отключение плагинов).
slep@mini
portage-2.2, stable, дополнителных eclass нету
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
Я про фому, а вы про
Я про фому, а вы про ерёму...
http://pastebin.ru/306131
Сообщи об этом там, где ты
Сообщи об этом там, где ты взял пакет.
Не грусти, товарищ! Всё хорошо, beautiful good!
[2]
[2] /usr/overlays/qting-edge
Ага, мне ,ИМХО, диагноз ясен.
качество кода у них, по заверениям одного офф. девелопера :), не очень, из за чего они до сих пор не в лаймане.
Пинайте девов ебилда, мне лично он не интересен.
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
slepnoga написал(а): мне
Я уже понял, что вам неинтересно ничего, кроме показывания какой вы умный.
Разжую, для тех кто всё-таки
Разжую, для тех кто всё-таки ленится прочитать.
Конретно cmake-utils.eclass (не ебилд, а именно стандартные функции, которые в ебилде не переопределяются) копирует дист файлы из /usr/portage/distfiles/... в 2 каталога
в
и в
При этом там оказываются разные файлы. В _build почему-то не все.
Если убрать "inherit cmake-utils"(оставив subversion), а "cmake-utils_src_compile" заменить на
И добавить
(что никак не трогает никакие директории, и не меняет никакие файлы исходников. Просто ebuild перестаёт использовать /usr/portage/eclass/cmake-utils.eclass), то данный ebuild начинает работать.
Я и хочу узнать, что такого делает cmake-utils_src_compile в 2-х директориях, и зачем.
Вопрос не по ебилду, а по работе портежей.
Зря наезжаете :) 1. Причину
Зря наезжаете :)
1. Причину неработы вам подсказали: Кривой ебилд.
2. Мне не интересен: Это значит, что править,пихать и суппортить в овелее я его не буду.Переписывать мне его тоже влом.Но если так хотите , см п.3
3. Да еклассов вы добрались как то странно :) и очень избирательно, что удобно видим, остальное нет (алаверды, так сказть :) )
П.С
__НЕ__ будут подстраиватся под какие то левые оверлеи, и давать советы scarabeus`у у меня и мыслей не возникает.
П.С Чего делать, вам сказал winterheart
P.P.S если вам так нужен этот ебилд, то бугзилла , затем санрайс
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
[qoute]вам подсказали: Кривой
Покажите в каком месте он кривой. А то как то удобно. Сказать что кривой вы можете, а указать в чём криво, как-то вот нет... Сказать я могу тоже много чего.
Видете то, что хотите как раз вы. Специально для людей, не владеющих русским языком и не не умеющим читать и видящим только то, что хотят, повторю: Я уже давно написал рабочий ebuild, выкинув из него cmake-utils.
p.s. Извиняюсь за грубость, но достало то, что каждый почему-то видит только то, что хочет.
А вот грубить не стоит. По
А вот грубить не стоит.
По поводу: ебилд рабочий, но неприемлим, т.е. в санрайз его, к примеру, не примут. Вообщем-то что вы еще ожидаете? Вы уже почти нашли ошибку - есть екласс cmake-utils, который делает что-то не то, вот с ним и разбирайтесь. Метод Научного Тыка рулит =)
спасибо
Спасибо. Наконец-то нормальный ответ.
Собственно, я ожидал что хоть кто-то подтвердит, что есть ошибка в портежах(в еклассе), либо опровергнет мои предположения(аргументировано).
Получается, это ошибка в еклассе cmake-utils ? Куда по этому поводу писать можно? Всё туда-же - bugs.gentoo.org ?
да собственно этот нормальный
да собственно этот нормальный ответ подразумевался с самого начала:
кривой ебилд = в нём ошибка --> перекопать ебилд, разобраться в чём она --> починить --> пакет мне не интересен --> пишите разработчику ебилда.
что непонятного-то? может быть как и недоработка в еклассе (маловероятно) так и кривой вызов екласса/кривая прога, но это нужно разобраться --> что опять же лень --> не интересно. Если есть подозрения на ошибку в еклассе - в нашу багзиллу, если есть подозрения в том что кривая софтина/ебилд - багрепорт туда откуда оно.
evadim это не кривой еласс ,
evadim это не кривой еласс , см п3 http://www.gentoo.ru/node/16235#comment-115466, да скарабеус его немного сломал,
но для исправления выхода из песочнишы.
Вообщем стандартная фигня для неподдерживаемых ебилдов: майнтаинер не следит за гентушным апстримом :)
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
Вот именно, что его сломали.
Вот именно, что его сломали. И теперь куча ебилдов, которые до этого работали нормально, перестали работать. Потому что теперь _необходимо_ определять в них дополнительные переменные либо действия.
Это нормально. Например
Это нормально. Например недавно обновили git.eclass. Раньше он делал
cd "${S}"
в git_src_unpack, а щас не делает. И все ебилды которые на это расчитывали - посыпались.В этом и заключается работа ментейнера - ебилды не та вещь, которую написал и забыл.
это не приведёт ни к чему хорошему
Из-за таких "поломок" девелоперы ядра уходят. Потому что нельзя втихушку ломать совместимость с тем, что работало задолго до того.
После каждого "emerge --sync", ментейнер должен сидеть и проверять, всё ли собирается? Changelog`а eclass`ов я не нашёл.
tuupic написал(а):Из-за
Это какого ядра ? если вы про недавний случай с на kernel.org , так никто никуда не ушел.
Или Вы про себя ? А вы дев ?
почему ""втихушку ", кто вам сказал такую глупость ?. Если Вы или тот кто дал вам ебилд, ничего об этом не слышали , то это не проблемы девелоперов/портаге/дистрибутива,
а только тех людей , которые его написали. Ибо как не странно , такие вопросы (изменения екласса) не решают за 5 минут, и уж баг на бугзилле точно есть,
не говоря про рассылку @gentoo-dev* и каналы irc #gentoo-dev* (инфа об этих ресурсех на первой странице офф. сайта).К тому же __никто__ не гарантировал совместимости с оверлеем, тем более
для пакета -9999 совместимость оч. странное понятие.
Алсо, не ломать совместимость со всяким левым и старым ...skip... есть Widows-way, и приводит к полной стагнации.
В этом и есть главная трудность разработчика дистрибутива: внесение нового с минимальными потерями.
Вы ментейнер ? , Если да , то оч. хреновый, ибо:
1)не освоили repoman
2) не читаете трбуемых рассылок
3) на умеете/не хотите рабитать в команде.
Если нет, то как это вас затрагивает?
Вы разработчик этой проги ?ЕСли да, то оставтье работу по поддержке мантайнерам дистра, они же не учат, как писать эту прогу, да и под все дистры вы все равно не наклепаете пакетов.
Если просто юзер, так что делать было указано на сутки раньше, ИМХО, в оверлее уже бы все починили,
тем более у них есть сайт , где можно оствить заявку.
Алсо: логи, диффы, Changelog есть, кому надо ,тот очень быстро находит.
В данном случае вместо конструктивного разговора я только и слышал наезды и истошные требования ракопать/поправить ебилд.
P.S IMHO,похожие проблемы решаются за 20 минут в джаббере или irc. :)
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
Цитата:В данном случае
Покажите, где я просил поправить мне ebuild ? Я ещё до создания темы, написал рабочий.
Я хотел выяснить, почему ebuild исправно работал, а потом "вдруг" перестал, причём ошибок, способных вызвать такое, я в нём не увидел. От вас в первых ваших сообщениях, кроме фразы "кривой ебилд", я ничего так и не услышал.
Ответ я получил лишь в последнем вашем сообщении. Где вы написали, что eclass, таки "поломали". Этого мне достаточно, Только вот вы могли это написать сразу, хотя бы как предположение? Так как я был уверен, что структура ебилдов(можно сказать API) стабильна.
Ну а оффтопичный "срач" по поводу что такое хорошо, и что такое плохо, разводить тут не собираюсь.Я просто выссказал своё мнение по поводу "совместимости"
tuupic написал(а): p.p.s.
Сломали? Огласите Ваше решение вышеупомянутого бага без слома совместимости. И посмотрите по бугзилле ,
Сколько времени было на исправление ебилда.
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
Цитата: Решение:
Так лучше? :) Одно починили - другое сломали.