Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Нужна помощь с написанием ebuild
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Russian
View previous topic :: View next topic  
Author Message
GreenDragon
Guru
Guru


Joined: 31 Jul 2003
Posts: 319

PostPosted: Mon Oct 24, 2005 8:47 am    Post subject: Нужна помощь с написанием ebuild Reply with quote

Предистория такова. Есть новая 9-я опера, попытался написать как рассказывается в английском варианте вики ebuild, сдулал все как там. После этого говорю
# emerge opera
вылетает на распаковке, указав номер строки.
Если ставить из установочного скрипта оперы - ставится нормально, собственно их нее и пишу :)
глянте, кто спец, на ebuild, может что не так
Code:

# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/www-client/opera/opera-8.50.ebuild,v 1.2 2005/09/21 16:14:33 axxo Exp
$

inherit eutils

IUSE="static spell qt kde"

OPERAVER="9.0-20051020"
OPERAFTPDIR="90/final/en"

S=${WORKDIR}/${A/.tar.bz2/}

DESCRIPTION="Opera web browser."
HOMEPAGE="http://www.opera.com/linux/"

# that's an ugly workaround for the broken src_uri syntax
OPERA_URI="mirror://opera/linux/${OPERAFTPDIR}/"
SRC_URI="
        x86? ( static? ( ${OPERA_URI}/i386/static/${PN}-${OPERAVER}.1-static-qt.i386-en.tar.bz2 ) )"
#       sparc? ( !static? ( ${OPERA_URI}/sparc/${PN}-${OPERAVER}.2-shared-qt.sparc-en.tar.bz2 ) )
#       ppc? ( !static? ( ${OPERA_URI}/ppc-linux/en/${PN}-${OPERAVER}.3-shared-qt.ppc-en.tar.bz2 ) )

# Dependencies may be augmented later (see below).
DEPEND=">=sys-apps/sed-4
        amd64? ( sys-apps/linux32 )"

RDEPEND="virtual/x11
        >=media-libs/fontconfig-2.1.94-r1
        amd64? ( static? ( app-emulation/emul-linux-x86-xlibs )
                 !static? ( app-emulation/emul-linux-x86-qtlibs ) )
        !amd64? ( media-libs/libexif
                  x11-libs/openmotif
                  spell? ( app-text/aspell )
                  x86? ( !static? ( =x11-libs/qt-3* ) )
                  media-libs/jpeg )"
SLOT="0"
LICENSE="OPERA-9.0"
#KEYWORDS="~amd64 ~ppc ~sparc ~x86"
KEYWORDS="~x86"

src_unpack() {
        unpack ${A}
        cd ${S}
        sed -i -e "s:config_dir=\"/etc\":config_dir=\"${D}/etc/\":g" \
               -e "s:/usr/share/applnk:${D}/usr/share/applnk:g" \
               -e "s:/usr/share/pixmaps:${D}/usr/share/pixmaps:g" \
               -e "s:/usr/share/icons:${D}/usr/share/icons:g" \
               -e "s:/etc/X11:${D}/etc/X11:g" \
               -e 's:#/usr/share/gnome:${D}/usr/share/gnome:g' \
               -e 's:#/opt/gnome/share:${D}/opt/gnome/share:g' \
               -e 's:#\(OPERA_FORCE_JAVA_ENABLED=\):\1:' \
               -e 's:#\(export LD_PRELOAD OPERA_FORCE_JAVA_ENABLED\):\1:' \
                   -e 's:read str_answer:return 0:' \
                   -e "s:/opt/kde:${D}/usr/kde:" \
                   -e "s:\(str_localdirplugin=\).*$:\1/opt/opera/lib/opera/plugins:" \
               install.sh || die
}

src_compile() {
        true
}

src_install() {
        # Prepare installation directories for Opera's installer script.
        dodir /etc

        # Opera's native installer.
        if [ ${ARCH} = "amd64" ]; then
                linux32 ./install.sh --prefix="${D}"/opt/opera || die
        else
                ./install.sh --prefix="${D}"/opt/opera || die
        fi

        # java workaround
        sed -i -e 's:LD_PRELOAD="${OPERA_JAVA_DIR}/libawt.so":LD_PRELOAD="$LD_PRELOAD"\:"${OPERA_JAVA_DIR
}/libawt.so":' ${D}/opt/opera/bin/opera

        dosed /opt/opera/bin/opera
        dosed /opt/opera/share/opera/java/opera.policy

        # Install the icons
        insinto /usr/share/pixmaps
        doins images/opera.xpm

        # Install the menu entry
        insinto /usr/share/applications
        doins ${FILESDIR}/opera.desktop

        # Install a symlink /usr/bin/opera
        dodir /usr/bin
        dosym /opt/opera/bin/opera /usr/bin/opera

        # fix plugin path
        echo "Plugin Path=/opt/opera/lib/opera/plugins" >> ${D}/etc/opera6rc

        # enable spellcheck
        if use spell; then
                if use static; then
                        DIR=$OPERAVER.1
                else
                        use sparc && DIR=$OPERAVER.2 || DIR=$OPERAVER.5
                fi
                echo "Spell Check Engine=/opt/opera/lib/opera/${DIR}/spellcheck.so" >> ${D}/opt/opera/sha
re/opera/ini/spellcheck.ini
        fi

        if use qt || use kde; then
                cd ${D}/opt/opera/bin
                epatch ${FILESDIR}/opera-qt.2.patch
        fi
}

pkg_postinst() {
        einfo "For localized language files take a look at:"
        einfo "http://www.opera.com/download/languagefiles/index.dml?platform=linux"
        einfo
        einfo "To change the spellcheck language edit /opt/opera/share/opera/ini/spellcheck.ini"
        einfo "and emerge app-text/aspell-language."
}
Back to top
View user's profile Send private message
viy
Veteran
Veteran


Joined: 03 Jul 2004
Posts: 1580
Location: Riga, Latvia

PostPosted: Mon Oct 24, 2005 10:40 am    Post subject: Reply with quote

Лог ошибке при вылете приведи.
Функцию src_compile() убери совсем, смысла в ней нет.
Back to top
View user's profile Send private message
GreenDragon
Guru
Guru


Joined: 31 Jul 2003
Posts: 319

PostPosted: Mon Oct 24, 2005 12:09 pm    Post subject: Reply with quote

viy wrote:
Лог ошибке при вылете приведи.
Функцию src_compile() убери совсем, смысла в ней нет.

убрал, хоть она и не мешала никому :)
Code:

# USE="oneshot" emerge  opera
Calculating dependencies ...done!
>>> emerge (1 of 1) www-client/opera-9.0 to /
>>> md5 files   ;-) opera-9.0.ebuild
>>> md5 files   ;-) files/digest-opera-9.0
>>> Unpacking source...

!!! ERROR: www-client/opera-9.0 failed.
!!! Function unpack, Line 349, Exitcode 0
!!! Nothing passed to the 'unpack' command
Back to top
View user's profile Send private message
grooz
n00b
n00b


Joined: 12 Dec 2004
Posts: 31
Location: Novosibirsk, Russia

PostPosted: Mon Oct 24, 2005 3:00 pm    Post subject: Reply with quote

GreenDragon wrote:

Code:
!!! ERROR: www-client/opera-9.0 failed.
!!! Function unpack, Line 349, Exitcode 0
!!! Nothing passed to the 'unpack' command

А переменная A чему равна в src_unpack? Случаем не пустая?
Back to top
View user's profile Send private message
GreenDragon
Guru
Guru


Joined: 31 Jul 2003
Posts: 319

PostPosted: Mon Oct 24, 2005 4:12 pm    Post subject: Reply with quote

grooz wrote:
GreenDragon wrote:

Code:
!!! ERROR: www-client/opera-9.0 failed.
!!! Function unpack, Line 349, Exitcode 0
!!! Nothing passed to the 'unpack' command

А переменная A чему равна в src_unpack? Случаем не пустая?


Так она согласно ману автоматом генерируется
Code:

       A      Contains  all  source files required for the package.  This variable must not be
              defined. It is autogenerated from the SRC_URI variables.

PS: А таки пустая
Back to top
View user's profile Send private message
grooz
n00b
n00b


Joined: 12 Dec 2004
Posts: 31
Location: Novosibirsk, Russia

PostPosted: Mon Oct 24, 2005 5:17 pm    Post subject: Reply with quote

Как я догадываюсь, всё дело в том, что ты пытаешься установить статически слинкованную оперу, но USE-флаг static у тебя не установлен. Поэтому код
Code:
SRC_URI="
         x86? ( static? ( ${OPERA_URI}/i386/static/${PN}-${OPERAVER}.1-static-qt.i386-en.tar.bz2 ) )"
по сути сводится к
Code:
SRC_URI=""
со всеми вытекающими. Правильнее будет так:
Code:
SRC_URI="
         x86? ( static? ( ${OPERA_URI}/i386/static/${PN}-${OPERAVER}.1-static-qt.i386-en.tar.bz2 ) )
         x86? ( !static? ( ${OPERA_URI}/i386/shared/${PN}-${OPERAVER}.5-shared-qt.i386-en.tar.bz2 ) )"
Или вообще:
Code:
SRC_URI="${OPERA_URI}/i386/shared/${PN}-${OPERAVER}.5-shared-qt.i386-en.tar.bz2"

PS А где ты такую оперу нашёл? :) На фтпишнике вроде не лежит.
Back to top
View user's profile Send private message
GreenDragon
Guru
Guru


Joined: 31 Jul 2003
Posts: 319

PostPosted: Tue Oct 25, 2005 7:11 am    Post subject: Reply with quote

grooz wrote:
Как я догадываюсь, всё дело в том, что ты пытаешься установить статически слинкованную оперу, но USE-флаг static у тебя не установлен. Поэтому код
Code:
SRC_URI="
         x86? ( static? ( ${OPERA_URI}/i386/static/${PN}-${OPERAVER}.1-static-qt.i386-en.tar.bz2 ) )"
по сути сводится к
Code:
SRC_URI=""
со всеми вытекающими. Правильнее будет так:
Code:
SRC_URI="
         x86? ( static? ( ${OPERA_URI}/i386/static/${PN}-${OPERAVER}.1-static-qt.i386-en.tar.bz2 ) )
         x86? ( !static? ( ${OPERA_URI}/i386/shared/${PN}-${OPERAVER}.5-shared-qt.i386-en.tar.bz2 ) )"
Или вообще:
Code:
SRC_URI="${OPERA_URI}/i386/shared/${PN}-${OPERAVER}.5-shared-qt.i386-en.tar.bz2"

PS А где ты такую оперу нашёл? :) На фтпишнике вроде не лежит.


Cпасибо, попробую, впрочем она уже замаскирована - значит ebuild появитчя скоро :)
Брал здесь http://snapshot.opera.com/unix/u90p1.html
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Russian All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum