Решено: Помогите дописать ебилд

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

# Copyright 2008 "Skala"
# Distributed under the terms of the GNU General Public License v2
# $Header: $

inherit eutils qt4

DESCRIPTION="Editor tags in mp3 files. Designed to convert codepage. We only support the Russians encoding (Windows-1251, KOI8-R, UTF-8)."
HOMEPAGE="http://xxx/xxx.html"
SRC_URI="http://xxx/xxx/QTagEditor.tar.bz2"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 x86"
IUSE=""

S="${WORKDIR}/qtagconvert"

DEPEND="=media-libs/taglib-1.4-r1
        $(qt4_min_version 4.2)"

RDEPEND="${DEPEND}"

pkg_setup() {
        if ! (built_with_use x11-libs/qt qt3support); then
                eerror "In order to compile Psi, you will need to recompile"
                eerror "qt-4.2 with qt3support USE-flag enabled."
                die "Recompile qt4 with qt3support use flag enabled"
        fi;
}

src_compile() {
        cd ${S}
        emake || die "make failed"
}

src_install() {
    cd ${S}
    make DESTDIR="${D}" install || die "make install failed"
}

В файл Makefile дописал такие строчки:

install:   FORCE
        $(COPY) qtagconvert /usr/bin/qtagconvert
        $(COPY) qtagconvert.desktop /usr/share/applications/qtagconvert.desktop
uninstall:   FORCE
        $(DEL_FILE) /usr/bin/qtagconvert
        $(DEL_FILE) /usr/share/applications/qtagconvert.desktop

Теперь, когда я пытаюсь собрать программу, она успешно коспилируется, но не получается ее установить:

Цитата:
>>> Source compiled.
>>> Test phase [not enabled]: net-misc/qtagconvert-1.0

>>> Install qtagconvert-1.0 into /home/potmpdir/portage/net-misc/qtagconvert-1.0/image/ category net-misc
cp -f qtagconvert /usr/bin/qtagconvert
ACCESS DENIED open_wr: /usr/bin/qtagconvert
cp: невозможно создать обычный файл `/usr/bin/qtagconvert': Отказано в доступе
make: *** [install] Error 1
*
* ERROR: net-misc/qtagconvert-1.0 failed.
* Call stack:
* ebuild.sh, line 1701: Called dyn_install
* ebuild.sh, line 1138: Called qa_call 'src_install'
* ebuild.sh, line 44: Called src_install
* qtagconvert-1.0.ebuild, line 48: Called die
* The specific snippet of code:
* make DESTDIR="${D}" install || die "make install failed"
* The die message:
* make install failed
*
* If you need support, post the topmost build error, and the call stack if relevant.
* A complete build log is located at '/home/potmpdir/portage/net-misc/qtagconvert-1.0/temp/build.log'.
* This ebuild is from an overlay: '/usr/local/portage/xneur/'
*
--------------------------- ACCESS VIOLATION SUMMARY ---------------------------
LOG FILE = "/var/log/sandbox/sandbox-net-misc_-_qtagconvert-1.0-6955.log"

open_wr: /usr/bin/qtagconvert
--------------------------------------------------------------------------------

Я понимаю, что нет прав для того, что бы скопировать файл в /usr/bin/ , но когда делал make install (от рута), то все копировалось без проблем.
Где я ошибся?

> В файл Makefile

> В файл Makefile дописал такие строчки:

Зачем,если этого не было в исходном Makefile? Сделайте тоже самое через ebuild и все. Либо измените /usr/bin/qtagconvert на
PREFIX/bin/qtagconvert , или как то так.

Quote: Зачем,если

Цитата:
Зачем,если этого не было в исходном Makefile? Сделайте тоже самое через ebuild и все.

А как это сделать (простите, не знаю) ?

Ты пытаешься

Ты пытаешься выйти из песочницы.

Смотри, у тебя вызывается:

make DESTDIR="${D}" install || die "make install failed"

Так вот тебе в Makefile надо копировать на в "/usr..." а в "$DESTDIR/usr...". Тогда оно нормально поставится внутри песочницы, а потом уже будет скопировано в реальный корень. Это фича portage.

Т.е. в Makefile конкретно должно быть так:

install:   FORCE
        $(COPY) qtagconvert ${DESTDIR}/usr/bin/qtagconvert
        $(COPY) qtagconvert.desktop ${DESTDIR}/usr/share/applications/qtagconvert.desktop

зачем

зачем изобретать велосипед?

doins ${FILESDIR}/qtagconvert /usr/bin/qtagconvert
doins ${FILESDIR}/qtagconvert.desktop /usr/share/applications/qtagconvert.desktop

файлы qtagconvert и qtagconvert.desktop положить в директорию files в папке ebuild-а

Quote: файлы

Цитата:
файлы qtagconvert и qtagconvert.desktop положить в директорию files в папке ebuild-а

Так ведь qtagconvert у меня собирается.

Cпасибо всем за помощь!

Окончательно получилось так сделать (фрагмент):
src_compile() {
cd ${S}
qmake qtagconvert.pro \
QTDIR=/usr/lib \
QMAKE_CFLAGS_RELEASE="${CFLAGS}" \
QMAKE_CXXFLAGS_RELEASE="${CXXFLAGS}" \
QMAKE=/usr/bin/qmake \
QMAKE_RPATH= \
"CONFIG+=no_fixpath release" \
|| die "qmake failed"
emake || die "make failed"
}

src_install() {
cd ${S}
dobin qtagconvert
}

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

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