[решено]Странная работа portage

Есть 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.
Сам ебилд тут

Цитата:
для сведение *9999 собиратся не обязано.

Разумеется, не обязано. Но я писал

Цитата:
Если собирать вручную (cmake; make), то всё собирается.

Что означает, если скопировать содержимое /usr/portage/distfiles/svn-src/qmmp/qmmp куда-либо, зайти и выполнить "cmake -DCMAKE_INSTALL_PREFIX=/usr && make", то всё превосходно собирается.

tuupic написал(а):Там нету

tuupic написал(а):
Там нету никаких директорий. Там только опции cmake (включение модулей).

Щазз, нету :) А это что, приведение 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

home qmmp # ls -l /usr/portage/distfiles/svn-src/qmmp/qmmp/
total 108
-rw-r--r-- 1 root portage  2560 Aug 13 02:49 AUTHORS
-rw-r--r-- 1 root portage  4831 Aug 13 02:49 CMakeLists.txt
-rw-r--r-- 1 root portage 18009 Aug 13 02:49 COPYING
-rw-r--r-- 1 root portage 10608 Aug 13 02:49 ChangeLog
-rw-r--r-- 1 root portage 22232 Aug 13 02:49 ChangeLog.rus
-rw-r--r-- 1 root portage  3256 Aug 13 02:49 README
-rw-r--r-- 1 root portage  5633 Aug 13 02:49 README.RUS
drwxr-sr-x 3 root portage   104 Aug 13 02:49 bin
-rw-r--r-- 1 root portage   463 Aug 13 02:49 clear_qmake.cmd
-rwxr-xr-x 1 root portage   273 Aug 13 02:49 clear_qmake.sh
-rw-r--r-- 1 root portage   738 Aug 13 02:49 cmake_uninstall.cmake.in
drwxr-sr-x 3 root portage   120 Aug 13 02:49 doc
-rw-r--r-- 1 root portage   585 Aug 13 02:49 qmmp.pri
-rw-r--r-- 1 root portage   680 Aug 13 02:49 qmmp.pro
-rw-r--r-- 1 root portage   460 Aug 13 02:49 remove_svn_tags
-rw-r--r-- 1 root portage    45 Aug 13 02:49 remove_svn_tags.cmd
drwxr-sr-x 7 root portage   168 Aug 13 02:49 src
home qmmp #

Тему бы переименовать не

Тему бы переименовать не мешало. Это ошибка ебилда, явно, а не portage.

покажите

Ну покажите мне, пожалуйста, эту ошибку. Я её увидеть не могу. Ебилд работал. Вдруг перестал. Архитектура(и мажорная версия) программы также не менялась.
В ебилде вызывается стандартная функция компиляции ПО, использующего cmake. Определена стандартная же переменная дополнительных параметров(включение/отключение плагинов).

slep@mini

slep@mini ~/slepnoga/portage/trunk/media-sound/qmmp $ pwd
/home/slep/slepnoga/portage/trunk/media-sound/qmmp
slep@mini ~/slepnoga/portage/trunk/media-sound/qmmp $ ebuild qmmp-9999.ebuild digest
: команда не найденаportage/trunk/media-sound/qmmp/qmmp-9999.ebuild: line 4:
: команда не найденаportage/trunk/media-sound/qmmp/qmmp-9999.ebuild: line 6:
 *
 * ERROR: media-sound/qmmp-9999 failed.
 * Call stack:
 *               ebuild.sh, line 1879:  Called _source_ebuild
 *               ebuild.sh, line 1818:  Called source '/home/slep/slepnoga/portage/trunk/media-sound/qmmp/qmmp-9999.ebuild'
'*        qmmp-9999.ebuild, line    7:  Called inherit 'cmake-utils' 'subversion
 *               ebuild.sh, line 1241:  Called qa_source '/usr/portage/eclass/cmake-utils.eclass'
 *               ebuild.sh, line   36:  Called source '/usr/portage/eclass/cmake-utils.eclass'
 *      cmake-utils.eclass, line   29:  Called die
 * The specific snippet of code:
 *      *) die "Unknown EAPI, Bug eclass maintainers." ;;
 *  The die message:
 *   Unknown EAPI, Bug eclass maintainers.
 *
 * If you need support, post the topmost build error, and the call stack if relevant.
 * This ebuild is from an overlay: '/home/slep/slepnoga/portage/trunk/'
 *
slep@mini ~/slepnoga/portage/trunk/media-sound/qmmp $                                            

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 написал(а): мне

slepnoga написал(а):
мне лично он не интересен.

Я уже понял, что вам неинтересно ничего, кроме показывания какой вы умный.

Разжую, для тех кто всё-таки

Разжую, для тех кто всё-таки ленится прочитать.

Конретно cmake-utils.eclass (не ебилд, а именно стандартные функции, которые в ебилде не переопределяются) копирует дист файлы из /usr/portage/distfiles/... в 2 каталога
в

/var/tmp/portage/media-sound/qmmp-9999/work/qmmp-9999_build/

и в

/var/tmp/portage/media-sound/qmmp-9999/work/qmmp-9999/

При этом там оказываются разные файлы. В _build почему-то не все.
Если убрать "inherit cmake-utils"(оставив subversion), а "cmake-utils_src_compile" заменить на

cmake -DCMAKE_INSTALL_PREFIX=/usr ${mycmakeargs}
make

И добавить

 src_install() {
        make DESTDIR="${D}" install
}

(что никак не трогает никакие директории, и не меняет никакие файлы исходников. Просто ebuild перестаёт использовать /usr/portage/eclass/cmake-utils.eclass), то данный ebuild начинает работать.

Я и хочу узнать, что такого делает cmake-utils_src_compile в 2-х директориях, и зачем.
Вопрос не по ебилду, а по работе портежей.

Зря наезжаете :) 1. Причину

Зря наезжаете :)
1. Причину неработы вам подсказали: Кривой ебилд.
2. Мне не интересен: Это значит, что править,пихать и суппортить в овелее я его не буду.Переписывать мне его тоже влом.Но если так хотите , см п.3
3. Да еклассов вы добрались как то странно :) и очень избирательно, что удобно видим, остальное нет (алаверды, так сказть :) )

  # Specify the build directory where all cmake processed
        # files should be located.
        #
        # For installing binary doins "${CMAKE_BUILD_DIR}/${PN}"
        if [[ -n "${CMAKE_IN_SOURCE_BUILD}" ]]; then
                # we build in source dir
                CMAKE_BUILD_DIR="${CMAKE_USE_DIR}"
        elif [[ ${CMAKE_USE_DIR} = ${WORKDIR} ]]; then
                # out of tree build, but with $S=$WORKDIR, see bug #273949 for reason.
                CMAKE_BUILD_DIR="${CMAKE_USE_DIR}/build"
        else
                # regular out of tree build
                [[ ${1} = init || -d ${CMAKE_USE_DIR}_build ]] && SUF="_build" || SUF=""
                CMAKE_BUILD_DIR="${CMAKE_USE_DIR}${SUF}"

        fi
        echo ">>> Working in BUILD_DIR: \"$CMAKE_BUILD_DIR\""

П.С

# @CODE
# Tomáš Chvátal <scarabeus@gentoo.org>
# Maciej Mrozowski <reavertm@poczta.fm>
# (undisclosed contributors)
# Original author: Zephyrus (zephyrus@mirach.it)

__НЕ__ будут подстраиватся под какие то левые оверлеи, и давать советы 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, да скарабеус его немного сломал,

  # out of tree build, but with $S=$WORKDIR, see bug #273949 for reason.

но для исправления выхода из песочнишы.
Вообщем стандартная фигня для неподдерживаемых ебилдов: майнтаинер не следит за гентушным апстримом :)

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 написал(а):Из-за

tuupic написал(а):
Из-за таких "поломок" девелоперы ядра уходят.

Это какого ядра ? если вы про недавний случай с на kernel.org , так никто никуда не ушел.
Или Вы про себя ? А вы дев ?

Цитата:
Потому что нельзя втихушку ломать совместимость с тем, что работало задолго до того.

почему ""втихушку ", кто вам сказал такую глупость ?. Если Вы или тот кто дал вам ебилд, ничего об этом не слышали , то это не проблемы девелоперов/портаге/дистрибутива,
а только тех людей , которые его написали. Ибо как не странно , такие вопросы (изменения екласса) не решают за 5 минут, и уж баг на бугзилле точно есть,
не говоря про рассылку @gentoo-dev* и каналы irc #gentoo-dev* (инфа об этих ресурсех на первой странице офф. сайта).К тому же __никто__ не гарантировал совместимости с оверлеем, тем более
для пакета -9999 совместимость оч. странное понятие.
Алсо, не ломать совместимость со всяким левым и старым ...skip... есть Widows-way, и приводит к полной стагнации.
В этом и есть главная трудность разработчика дистрибутива: внесение нового с минимальными потерями.

Цитата:
Цитата:
ебилды не та вещь, которую написал и забыл.

После каждого "emerge --sync", ментейнер должен сидеть и проверять, всё ли собирается? Changelog`а eclass`ов я не нашёл.

Вы ментейнер ? , Если да , то оч. хреновый, ибо:
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.

tuupic написал(а):
p.p.s. Вопрос не о том что не работает ebuild, а о том ПОЧЕМУ.

p.p.p.s: Решение: сломали cmake-utils.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 ;)

Цитата: Решение:

Цитата:
Решение: "сломали/починили" (кому как нравится) cmake-utils.eclass

Так лучше? :) Одно починили - другое сломали.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".