LINUX.ORG.RU

ebuld для KDE плазмоида eyasdp

 , ,


0

2

Всем привет!

Понравился KDE4 плазмоид eyasdp, который ставит кнопки выключения/перезагрузки/..., дабы лишний раз в меню не тянуться. Сделал под него .ebuild для Gentoo. Выкладываю дабы:
- может кому-то виджет приглянется
- может кто-то почерпнет что-то по ebuild'о-писанию (тут, кстати, cmake используется)
- кто найдет ошибки/замечания - маякуйте, буду признателен

Всем, кому не терпится сказать «не нужно», просьба проходить мимо.

/usr/local/portage/kde-misc/plasma-eyasdp/plasma-eyasdp-1.1.0.ebuild

# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

EAPI=5

KDE_MINIMAL="4.7.0"
QT_MINIMAL="4.7.0"

inherit cmake-utils kde4-base

DESCRIPTION="KDE4 plasmoid. eYaSDP allows to set a number of system buttons in your panel or desktop for comfortable and quick access."
HOMEPAGE="http://kde-look.org/content/show.php/eYaSDP?content=146530"
SRC_URI="http://kde-look.org/CONTENT/content-files/146530-eyasdp-1.1.0.tar.bz2"

#S="${WORKDIR}/eyasdp-1.1.0"
S="${WORKDIR}/${P#plasma-}"
#MY_P="${P#plasma-}"

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

DEPEND="
$(add_kdebase_dep plasma-workspace)
dev-util/automoc
dev-lang/perl
"
RDEPEND="$(add_kdebase_dep plasma-workspace)"

Предполагается, что в make.conf есть PORTDIR_OVERLAY=«/usr/local/portage/»

Еще: скрипт, для определения минимального списка библиотек, от которых напрямую зависит определенный запускаемый файл/библиотека. Скрипт исключает непрямые зависимости; например, если plasma_applet_eyasdp.so зависит от libkworkspace.so.4 и libplasma.so.3, а libkworkspace.so.4 также зависит от libplasma.so.3, то libplasma.so.3 будет исключен из списка, так как предполагается, что при «подключении» libkworkspace.so.4 автоматически «подключится» и libplasma.so.3.

#!/bin/sh

# List minimum dependensies

Help()
{
	echo "List minimum dependencies of a dynamic executable"
	echo
	echo "Usage: $0 <executable file or library>"
}

ListDependencies()
{
	ldd "$1" 2>/dev/null | while read L1 A L2 OTHER ; do
		if [[ "${L1:0:1}" == "/" ]] ; then
			echo "$L1"
		else
			[[ -n "$L2" ]] && echo "$L2"
		fi
	done
}

if [[ $# != 1 ]]; then
	Help
	exit 1
fi

ldd "$1" >/dev/null 2>/dev/null

if [[ $? != 0 ]]; then
	echo "Incorrect input file; shall be executable binary (ELF, .so etc)"
	exit 2
fi

F_DIRECT=`mktemp`
F_INDIRECT=`mktemp`
F_TMP=`mktemp`
F_TMP2=`mktemp`

F=""

ListDependencies "$1" | sort | uniq > "$F_DIRECT"

cat /dev/null > "$F_INDIRECT"
F="$F_DIRECT"

#echo -n "Working"
while true ; do
	
	cp "$F_INDIRECT" "$F_TMP"

	cat "$F" | while read L ; do
		ListDependencies "$L"
	done >> "$F_TMP"
	
	cat "$F_TMP" | sort | uniq > "$F_TMP2"

	SIZE_INDIRECT=`ls -l "$F_INDIRECT" | awk '{print $5;}'`
	SIZE_TMP=`ls -l "$F_TMP2" | awk '{print $5;}'`
	
	[[ "$SIZE_INDIRECT" == "$SIZE_TMP" ]] && break
	
	mv "$F_TMP2" "$F_INDIRECT"
	F="$F_INDIRECT"
#	echo -n "."

done

rm "$F_TMP"
rm "$F_TMP2"

#echo

cat "$F_DIRECT" | while read L ; do
	L2=`cat "$F_INDIRECT" | grep "^$L$"`
	[[ -z "$L2" ]] && echo "$L"
done

rm "$F_DIRECT"
rm "$F_INDIRECT"

Hope this helps

★★★★★

Последнее исправление: Kroz (всего исправлений: 2)

Конечно, нужно пользоваться стандартными переменными ебилда, про MY_P мегабакс уже сказал.

Ну и откуда у вас вылезли эти зависимости? Если в plasma-eyasdp.h включено следующее:

#include <Plasma/Applet>
#include <plasma/widgets/iconwidget.h>
#include <QGraphicsGridLayout>
#include <QtDBus/QDBusInterface>
С помощью locate легко находим нужные инклуды:
/usr/include/KDE/Plasma/Applet
/usr/include/plasma/widgets/iconwidget.h
/usr/include/qt4/QtGui/QGraphicsGridLayout
/usr/include/qt4/QtDBus/QDBusInterface
И дальше equery b подскажет правильные зависимости:
kde-base/kdelibs
dev-qt/qtgui
dev-qt/qtdbus
В свою очередь, qtgui зависит от qtdbus, поэтому последнюю зависимость убираем. В RDEPEND неплохо добавить к этим пакетам kde-base/plasma-workspace.

cmake-utils нафиг, для сборки одного файла не нужны.

iVS ★★★★★
()
Ответ на: комментарий от iVS

ОС: Gentoo Linux примерно с 2005 года

А наипростейший ebuild не можешь написать. Зато в темах про генту лихо рассуждаешь о том, о сем.

iVS ★★★★★
()
Ответ на: комментарий от iVS

Как-то так:

DEPEND="dev-qt/qtgui:4
	$(add_kdebase_dep kdelibs)"
RDEPEND="$DEPEND
	kde-base/plasma-workspace:4"

iVS ★★★★★
()
Ответ на: комментарий от Chaser_Andrey

почему не добавишь в оверлей sunrise или в свой? или в kde-шный?

Хм, что-то об этом не думал. Как это делается? Где найти адрес контактного лица?

Kroz ★★★★★
() автор топика
Ответ на: комментарий от iVS

Ну и откуда у вас вылезли эти зависимости?

Посмотрел вывод ./configure (или что там было). А как нужно?

kde-base/plasma-workspace

А это у меня очень большой вопрос. Учитывая, что

KDE_MINIMAL="4.7.0"
inherit kde4-base

Оно само не проверит наличие (зависимость) KDE? И вообще, что оно понимает под KDE?

А наипростейший ebuild не можешь написать. Зато в темах про генту лихо рассуждаешь о том, о сем.

Давай без троллига. Что знаю, о том и рассуждаю (плюс всегда готов учиться, если что не так знаю). А ebuild это мой первый. Потому и запостил сюда, чтобы на ошибки указали, да как правильно научили.

Как-то так:
DEPEND=«dev-qt/qtgui:4
$(add_kdebase_dep kdelibs)»
RDEPEND=«$DEPEND
kde-base/plasma-workspace:4»

Разницу между DEPEND и RDEPEND вроде читал. Но вот почему ты предлагаешь qtgui в DEPEND, а plasma-workspace в RDEPEND? Объясни логику!

Kroz ★★★★★
() автор топика
Ответ на: комментарий от megabaks

MY_P уже не кошерно?

Да, уже прочитал по ссылке от iVS. Спасибо.
Еще ошибки?
Что касательно вот этого вопроса?

Учитывая, что

KDE_MINIMAL=«4.7.0»
inherit kde4-base

Оно само не проверит наличие (зависимость) KDE? (И вообще, что оно понимает под KDE?) Если нет - зачем это вообще нужно?

Kroz ★★★★★
() автор топика
Ответ на: комментарий от Kroz

Посмотрел вывод ./configure (или что там было). А как нужно?

Обычно ldd смотрят, я же предпочитаю смотреть заголовочные файлы. Поскольку ldd столько зависимостей выдает, что мама не горюй. А тут в один файлик заглянул - и понятно.

Потому и запостил сюда, чтобы на ошибки указали, да как правильно научили.

Как бы это банально не звучало, но доки+примеры. Причина проста: нет универсальных приемов на любой ебилд, каждый раз нужно включать мозг, хоть это и не приятно. Я у мегабакса в оверлее много полезных вещей нахожу. Для твоего примера полезно это.

Но вот почему ты предлагаешь qtgui в DEPEND, а plasma-workspace в RDEPEND? Объясни логику!

Читаем:

The DEPEND ebuild variable should specify any dependencies which are required to unpack, patch, compile or install the package

Учитывая, что для сборки плазма не нужна, зачем ее включать в DEPEND? А запускать уже будешь с плазмой, для чего она и должна быть в RDEPEND:

The RDEPEND ebuild variable should specify any dependencies which are required at runtime.

По-моему, все логично.

iVS ★★★★★
()
Ответ на: комментарий от Kroz

KDE_MINIMAL=«4.7.0»

ИМХО, проверит, что пакеты из kde-base не ниже этой версии. А не наличие этих пакетов.

inherit kde4-base

Указывается, какие доп. eclass использовать, а к пакетам не имеет отношения.

iVS ★★★★★
()
Ответ на: комментарий от iVS

Учитывая, что для сборки плазма не нужна

Вот здесь поподробней, пожалуйста. Почему ты так решил? Или даже так: откуда это можно узнать?

Kroz ★★★★★
() автор топика
Ответ на: комментарий от iVS

ИМХО, проверит, что пакеты из kde-base не ниже этой версии. А не наличие этих пакетов.

Логика есть. Учитывая, что

ИМХО

надо бы еще перепроверить где-то...

Kroz ★★★★★
() автор топика
Ответ на: комментарий от Kroz

Или даже так: откуда это можно узнать?

А в чем проблема? Это С++, все зависимости в заголовочном файле указаны, он там один. Я в первом комментарии это писал, перечитай.

iVS ★★★★★
()
Ответ на: комментарий от iVS

Не нравится мне идея по заголовочным файлам узнавать зависимые библиотеки.. Прямой связи нет. Если плазмы там нет, это не значит, что она не может include'иться в каком-то заголовочном файле. И потом, я не до конца понимаю, если библиотека подключается динамически (.so), а не линкуется статически, нужна ли одна при сборке/линковке.

Думаю, буду пользоваться ldd.

Kroz ★★★★★
() автор топика
Ответ на: комментарий от Kroz

Не нравится мне идея по заголовочным файлам узнавать зависимые библиотеки.. Прямой связи нет. Если плазмы там нет, это не значит, что она не может include'иться в каком-то заголовочном файле.

А это проблема твоего ебилда или ебилда, от которого он зависит, и в котором эта зависимость есть?

И потом, я не до конца понимаю, если библиотека подключается динамически (.so), а не линкуется статически, нужна ли одна при сборке/линковке.

Понимай любую библиотеку как набор функций. Если используется функция из стандартной библиотеки, откуда твоей программе знать название функции, где она находится, какие параметры ей передавать? Для этого и нужны заголовочные файлы: в С++/С там указываются прототипы функций.

iVS ★★★★★
()
Ответ на: комментарий от Kroz

мой комп сдох, потому я пока показать и объяснить по факту ничего не могу
когда он воскреснет пока не знаю

megabaks ★★★★
()
Ответ на: комментарий от iVS

Удачи!
$ ldd /usr/bin/xterm | wc -l
24

Ты будешь смеяться, но (сабжевый плазмоид):

$ ldd plasma_applet_eyasdp.so | wc -l
97

Ну вот и тема для холивора: нужно ли все это указывать? Ведь оно ему правда нужно.

И, кстати, там есть и libQtGui, и libplasma . Отсюда еще раз вопрос, почему kde-base/plasma-workspace не должно быть в DEPEND. Мне кажется, что в DEPEND (но не в RDEPEND) скорее нужно включать что-то типа perl: он там ищется при конфигурации, но явно не используется при запуске.

Kroz ★★★★★
() автор топика
Ответ на: комментарий от megabaks

Не работает с MY_P.

Да и я не понял почему должно работать.

Погуглил. Правило такое: You should try not to include version numbers in the SRC_URI and S. Always try to use ${PV} or ${P}. It makes maintaining the ebuild much easier. If a version number is not consistent with the tarball/source, then use MY_P

А мне не URI нужно менять, а S.

Попарсил /usr/portage на предмет MY_P - примеры подтверждают.

Заменил на такое:

S="${WORKDIR}/${P#plasma-}"

Я догадываюсь, что мне и URI нужно бы нормально сгенерить, но я не знаю что значат первые цифры в имени файла и будут ли они меняться при апдейте, так что пока оставим так.

Kroz ★★★★★
() автор топика
Ответ на: комментарий от Kroz

Ну вот и тема для холивора: нужно ли все это указывать? Ведь оно ему правда нужно.

Ты рассказать, как работает рекурсия? Если твой пакет зависит от другого пакета, который в свою очередь зависит от третьего пакета. Вопрос: зависит ли первый пакет от третьего? Можешь указывать все зависимости или нет, в зависимости на ответ на этот логический вопрос. Даже, если зависимость у другого пакета не прямая, можно прописать, с каким юзом нужен пакет.

Отсюда еще раз вопрос, почему kde-base/plasma-workspace не должно быть в DEPEND.

Посмотри в примерах из основного дерева и делай по аналогии:

$ cat /usr/portage/kde-misc/yawp/yawp-0.4.5.ebuild 
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/kde-misc/yawp/yawp-0.4.5.ebuild,v 1.3 2013/06/30 10:14:00 ago Exp $

EAPI=5

KDE_LINGUAS="af cs de es fr he it pl ru sk sl tr uk"
inherit kde4-base

DESCRIPTION="Yet Another Weather Plasmoid"
HOMEPAGE="http://www.kde-look.org/content/show.php?content=94106"
SRC_URI="mirror://sourceforge/yawp/${P}.tar.bz2"

LICENSE="GPL-2"
SLOT="4"
KEYWORDS="amd64 x86"
IUSE="debug"

RDEPEND="$(add_kdebase_dep plasma-workspace)"

iVS ★★★★★
()
Ответ на: комментарий от Kroz

Не работает с MY_P.

Надо как-то так:

MY_P=eyasdp-${PV}

...

S=${WORKDIR}/${MY_P}

iVS ★★★★★
()
Ответ на: комментарий от iVS

Посмотри в примерах из основного дерева и делай по аналогии:

И это очень правильный пример.

рекурсия

Kroz ★★★★★
() автор топика
Ответ на: комментарий от iVS

Посмотри в примерах из основного дерева и делай по аналогии:

И это очень правильный пример. Поскольку он говорит, что yawp зависит только от плазмы.

рекурсия

Вот я и написал скриптец, который эту самую рекурсию обрабатывает и удаляет дубликаты.

Файл: ./lmd.sh

#!/bin/sh

# List minimum dependensies

ListDependencies()
{
        ldd "$1" 2>/dev/null | while read L1 A L2 OTHER ; do
                if [[ "${L1:0:1}" == "/" ]] ; then
                        echo "$L1"
                else
                        [[ -n "$L2" ]] && echo "$L2"
                fi
        done
}

F_DIRECT="delme1"
F_INDIRECT="delme2"
F_TMP="delme3"
F_TMP2="delme4"

F=""

ListDependencies "$1" | sort | uniq > "$F_DIRECT"

cat /dev/null > "$F_INDIRECT"
F="$F_DIRECT"

#echo -n "Working"
while true ; do

        cp "$F_INDIRECT" "$F_TMP"

        cat "$F" | while read L ; do
                ListDependencies "$L"
        done >> "$F_TMP"

        cat "$F_TMP" | sort | uniq > "$F_TMP2"

        SIZE_INDIRECT=`find -name "$F_INDIRECT" -printf %s`
        SIZE_TMP=`find -name "$F_TMP2" -printf %s`

        [[ "$SIZE_INDIRECT" == "$SIZE_TMP" ]] && break

        mv "$F_TMP2" "$F_INDIRECT"
        F="$F_INDIRECT"
#       echo -n "."

done

rm "$F_TMP"
rm "$F_TMP2"

#echo

cat "$F_DIRECT" | while read L ; do
        L2=`cat "$F_INDIRECT" | grep "^$L$"`
        [[ -z "$L2" ]] && echo "$L"
done

rm "$F_DIRECT"
rm "$F_INDIRECT"

И знаешь что получается?

$ ./lmd.sh  /usr/lib/kde4/plasma_applet_eyasdp.so
/usr/lib/libkworkspace.so.4
То есть плазмоид зависит только от плазмы. Неожиданно?

И вот:

$ ./lmd.sh  /usr/bin/xterm 
/lib/libncurses.so.5
/usr/lib/libutempter.so.0
/usr/lib/libXaw.so.7
/usr/lib/libXft.so.2

Так что на заметку.

Недостаток скрипта (как же без них): результат правильный только при данном наборе USE-флагов; при других флагах может быть другой результат. Ну и еще пару незначительных багов. Но, в общем, думаю, можно пользоваться.

Kroz ★★★★★
() автор топика
Ответ на: комментарий от Kroz

Круто, поздравляю! Я на свежую голову еще гляну. А результат впечатляет! Все правильно и красиво, не придерешься!

iVS ★★★★★
()
Ответ на: комментарий от iVS

Подредактировал ebuild, допилил скрипт. Все в шапке.

Непонятно что делать с QT_MINIMAL: если автоматом оно ничего не делает, то зачем он вообще нужен? А автора плазмоида заявляет, что ему нужен QT не менее 4.7.0.

Если есть время/желание - смотри, ругай. Скрипт, надеюсь, будет в помощь.

Kroz ★★★★★
() автор топика
Ответ на: комментарий от FRCTLL

У меня этот плазмоид бессовестно роняет плазму при изменении настроек.

У меня старая его версия роняла при выключении компа. А этот нормально работает.

Сравним?

$ emerge -pv kde-base/plasma-workspace dev-qt/qtcore

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R    ] dev-qt/qtcore-4.8.5:4  USE="exceptions glib iconv icu qt3support ssl (-aqua) -c++0x -debug -pch" 0 kB
[ebuild   R    ] kde-base/plasma-workspace-4.11.2-r1:4  USE="handbook python semantic-desktop (-aqua) -debug -gps -json -qalculate" PYTHON_SINGLE_TARGET="python2_7 -python2_6" PYTHON_TARGETS="python2_7 -python2_6" 0 kB

$ emerge --info
Portage 2.2.7 (default/linux/x86/13.0/desktop/kde, gcc-4.7.3, glibc-2.17, 3.6.2-gentoo-lix-k03 i686)
=================================================================
System uname: Linux-3.6.2-gentoo-lix-k03-i686-Intel-R-_Core-TM-2_CPU_6600_@_2.40GHz-with-gentoo-2.2
KiB Mem:     2067896 total,    316056 free
KiB Swap:    2104476 total,   2104476 free
Timestamp of tree: Sat, 19 Oct 2013 06:30:01 +0000
ld GNU ld (GNU Binutils) 2.23.2
distcc 3.1 i686-pc-linux-gnu [disabled]
app-shells/bash:          4.2_p45
dev-lang/python:          2.7.5-r2, 3.2.5-r2, 3.3.2-r2
dev-util/cmake:           2.8.11.2
dev-util/pkgconfig:       0.28
sys-apps/baselayout:      2.2
sys-apps/openrc:          0.12.2
sys-apps/sandbox:         2.6-r1
sys-devel/autoconf:       2.13, 2.69
sys-devel/automake:       1.11.6, 1.12.6, 1.13.4, 1.14
sys-devel/binutils:       2.23.2
sys-devel/gcc:            4.7.3-r1
sys-devel/gcc-config:     1.8
sys-devel/libtool:        2.4.2
sys-devel/make:           3.82-r4
sys-kernel/linux-headers: 3.11 (virtual/os-headers)
sys-libs/glibc:           2.17
Repositories: gentoo gbin rion x-portage
ACCEPT_KEYWORDS="x86 ~x86"
ACCEPT_LICENSE="* -@EULA skype-4.0.0.7-copyright AdobeFlash-10.3 AdobeFlash-11.x"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=core2 -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.4/ext-active/ /etc/php/apache2-php5.5/ext-active/ /etc/php/cgi-php5.4/ext-active/ /etc/php/cgi-php5.5/ext-active/ /etc/php/cli-php5.4/ext-active/ /etc/php/cli-php5.5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-O2 -march=core2 -pipe"
DISTDIR="/usr/portage/distfiles"
FCFLAGS="-O2 -march=i686 -pipe"
FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -march=i686 -pipe"
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LANG="en_US.UTF-8"
LC_ALL=""
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/var/lib/layman/gbin /var/lib/layman/rion /usr/local/portage"
USE="X a52 aac acl acpi alsa arts bash-completion berkdb bitmap-fonts branding bzip2 cairo caps cdda cdparanoia cdr chm cjk cli consolekit cracklib crypt cups curl cxx daap dbus declarative djvu dri dts dvd dvdr dvdread ebook emboss emerald encode exif fam ffmpeg firefox flac fortran ftp fuse gdbm gif glitz gstreamer iconv icq icu id3tag imagemagic imap ipod ipv6 javascript jpeg jpeg2k kde kerberos kipi lame lcms ldap libnotify lm_sensors m17n-lib mad matroska mbox midi mime mmx mng modules mp3 mp4 mpeg mplayer mtp mudflap musicbrainz ncurses nls nptl nsplugin ogg openexr opengl openmp oss pam pango pcre pda pdf perl phonon plasma png policykit ppds python qt3support qt4 quicktime radius readline sasl scim sdl semantic-desktop session slang snmp sockets socks5 spell sse sse2 ssl startup-notification svg tcpd tiff truetype truetype-fonts type1-fonts udev udisks unicode upower usb vcd vorbis wifi win32codecs wmf wxwidgets x264 x86 xattr xcb xcomposite xinerama xml xpm xscreensaver xv xvid zlib" ABI_X86="32" ALSA_CARDS="emu10k1 intel8x0" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="canon sony_dscf1 sony_dscf55" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="pdfimport" LINGUAS="en ru uk zh zh_CN" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_2" RUBY_TARGETS="ruby19 ruby18" USERLAND="GNU" VIDEO_CARDS="nvidia" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, SYNC, USE_PYTHON

Kroz ★★★★★
() автор топика
Ответ на: комментарий от Kroz

Подредактировал ebuild

Как-то фигово ты подредактировал. Лучше использовать MY_P как указано выше. Еще зависимости, ты нашел, что зависимость

$ ./lmd.sh  /usr/lib/kde4/plasma_applet_eyasdp.so
/usr/lib/libkworkspace.so.4
Так и все! Теперь смотришь
$ equery b /usr/lib/libkworkspace.so.4
 * Searching for /usr/lib/libkworkspace.so.4 ... 
kde-base/libkworkspace-4.10.5 (/usr/lib64/libkworkspace.so.4.10.5)
Поэтому пишешь так:
DEPEND="$(add_kdebase_dep libkworkspace)"
RDEPEND="$DEPEND"
dev-util/automoc и dev-lang/perl никуда от тебя не убегут - они сидят в прямых зависимостях в libkworkspace, см. equery g libkworkspace.

допилил скрипт

Вот за это спасибо!

iVS ★★★★★
()
Ответ на: комментарий от Kroz
$ emerge -pv kde-base/plasma-workspace dev-qt/qtcore
[ebuild   R    ] dev-qt/qtcore-4.8.5:4  USE="exceptions glib iconv qt3support ssl (-aqua) -c++0x -debug -icu -pch" 235,832 kB
[ebuild     U  ] kde-base/plasma-workspace-4.11.2-r1:4::gentoo [4.11.1:4::kde] USE="python semantic-desktop%* (-aqua) -debug -gps -handbook -json -qalculate" PYTHON_SINGLE_TARGET="python2_7 -python2_6" PYTHON_TARGETS="python2_7 -python2_6" 0 kB
$ emerge --info
Portage 2.2.6 (default/linux/amd64/13.0/desktop/kde, gcc-4.8.1, glibc-2.17, 3.11.2-locus x86_64)
=================================================================
System uname: Linux-3.11.2-locus-x86_64-Intel-R-_Core-TM-_i7-2600_CPU_@_3.40GHz-with-gentoo-2.2
KiB Mem:     8151596 total,    310536 free
KiB Swap:    8479740 total,   8479740 free
Timestamp of tree: Fri, 18 Oct 2013 09:45:01 +0000
ld GNU ld (GNU Binutils) 2.23.2
app-shells/bash:          4.2_p45
dev-java/java-config:     2.2.0
dev-lang/python:          2.7.5-r2, 3.2.5-r2, 3.3.2-r2
dev-util/cmake:           2.8.11.2::kde
dev-util/pkgconfig:       0.28
sys-apps/baselayout:      2.2
sys-apps/openrc:          0.12
sys-apps/sandbox:         2.6-r1
sys-devel/autoconf:       2.13, 2.69
sys-devel/automake:       1.4_p6-r1, 1.9.6-r3, 1.10.3, 1.11.6, 1.12.6
sys-devel/binutils:       2.23.2
sys-devel/gcc:            4.6.4, 4.7.3, 4.8.1
sys-devel/gcc-config:     1.8
sys-devel/libtool:        2.4.2
sys-devel/make:           3.82-r4
sys-kernel/linux-headers: 3.11 (virtual/os-headers)
sys-libs/glibc:           2.17
Repositories: gentoo stuff vmware mozilla kde locus
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/polkit-1/actions"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-march=native -O2 -pipe"
DISTDIR="/depo/pkg"
EMERGE_DEFAULT_OPTS="--jobs=2"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans usersandbox usersync"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://mirror.neolabs.kz/gentoo/pub"
LANG="en_US.UTF-8"
LC_ALL=""
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j8"
PKGDIR="/usr/portage/packages"
PORTAGE_BUNZIP2_COMMAND="lbunzip2 -n4"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/repo/system"
PORTDIR_OVERLAY="/repo/stuff /repo/vmware /repo/mozilla /repo/kde /repo/locus"
SYNC="rsync://mirror.neolabs.kz/gentoo-portage"
USE="X a52 aac aalib acl acpi alsa amd64 aspell avx bluetooth branding bzip2 cairo cdda cdr cli consolekit cracklib cxx dbus declarative dirac directfb djvu dri dts dvd dvdr emboss encode exif faac fam fbcon fbcondecor ffmpeg firefox flac fontconfig fortran gif gpm gstreamer iconv ieee1394 imagemagick introspection ipv6 jpeg kde kdepim kipi lame lcms libass lzma mad matroska mmx mmxext mng modules mp3 mp4 mpeg mudflap multilib natspec ncurses networkmanager nls nptl ogg opengl openmp pam pango pcre pdf phonon plasma png policykit postproc ppds pulseaudio qt3support qt4 quicktime readline samba schroedinger sdl semantic-desktop session smp spell sqlite sse sse2 sse3 sse4 ssl ssse3 svg symlink tcpd theora threads tiff truetype udev udisks unicode upower usb v4l v4l2 vdpau vorbis webp wxwidgets x264 xcb xcomposite xml xscreensaver xv xvid zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="braindump flow karbon krita plan sheets words" CAMERAS="*" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" GRUB_PLATFORMS="multiboot pc" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="pdfimport" LINGUAS="en ru" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-3" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="pypy2_0 python2_7 python3_2" QEMU_SOFTMMU_TARGETS="x86_64 i386" QEMU_USER_TARGETS="x86_64 i386" RUBY_TARGETS="ruby19 ruby18" USERLAND="GNU" VIDEO_CARDS="nvidia" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CPPFLAGS, CTARGET, INSTALL_MASK, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON
FRCTLL
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.