repoman сильно ругается

Вот такую гадость выдает:

metadata.missing              1
   net-print/pips-common/metadata.xml
  ebuild.allmasked              1
   net-print/pips-common
  ebuild.minorsyn               2
   net-print/pips-common/pips-common-3.8.0.ebuild: Trailing whitespace error on line: 41
   net-print/pips-common/pips-common-3.8.0.ebuild: Trailing whitespace error on line: 106
  DEPEND.bad                    7
   net-print/pips-common/pips-common-3.8.0.ebuild: ~x86(hardened/linux/x86/10.0) ['sys-libs/glibc[multilib]', 'app-emulation/emul-linux-x86-baselibs', 'app-emulation/emul-linux-x86-gtklibs']
   net-print/pips-common/pips-common-3.8.0.ebuild: ~x86(default/linux/x86/10.0/server) ['sys-libs/glibc[multilib]', 'app-emulation/emul-linux-x86-baselibs', 'app-emulation/emul-linux-x86-gtklibs']
   net-print/pips-common/pips-common-3.8.0.ebuild: ~x86(default/linux/x86/10.0/developer) ['sys-libs/glibc[multilib]', 'app-emulation/emul-linux-x86-baselibs', 'app-emulation/emul-linux-x86-gtklibs']
   net-print/pips-common/pips-common-3.8.0.ebuild: ~x86(default/linux/x86/10.0/desktop/kde) ['sys-libs/glibc[multilib]', 'app-emulation/emul-linux-x86-baselibs', 'app-emulation/emul-linux-x86-gtklibs']
   net-print/pips-common/pips-common-3.8.0.ebuild: ~x86(default/linux/x86/10.0/desktop/gnome) ['sys-libs/glibc[multilib]', 'app-emulation/emul-linux-x86-baselibs', 'app-emulation/emul-linux-x86-gtklibs']
   net-print/pips-common/pips-common-3.8.0.ebuild: ~x86(default/linux/x86/10.0/desktop) ['sys-libs/glibc[multilib]', 'app-emulation/emul-linux-x86-baselibs', 'app-emulation/emul-linux-x86-gtklibs']
   net-print/pips-common/pips-common-3.8.0.ebuild: ~x86(default/linux/x86/10.0) ['sys-libs/glibc[multilib]', 'app-emulation/emul-linux-x86-baselibs', 'app-emulation/emul-linux-x86-gtklibs']
  RDEPEND.bad                   7
   net-print/pips-common/pips-common-3.8.0.ebuild: ~x86(hardened/linux/x86/10.0) ['sys-libs/glibc[multilib]', 'app-emulation/emul-linux-x86-baselibs', 'app-emulation/emul-linux-x86-gtklibs']
   net-print/pips-common/pips-common-3.8.0.ebuild: ~x86(default/linux/x86/10.0/server) ['sys-libs/glibc[multilib]', 'app-emulation/emul-linux-x86-baselibs', 'app-emulation/emul-linux-x86-gtklibs']
   net-print/pips-common/pips-common-3.8.0.ebuild: ~x86(default/linux/x86/10.0/developer) ['sys-libs/glibc[multilib]', 'app-emulation/emul-linux-x86-baselibs', 'app-emulation/emul-linux-x86-gtklibs']
   net-print/pips-common/pips-common-3.8.0.ebuild: ~x86(default/linux/x86/10.0/desktop/kde) ['sys-libs/glibc[multilib]', 'app-emulation/emul-linux-x86-baselibs', 'app-emulation/emul-linux-x86-gtklibs']
   net-print/pips-common/pips-common-3.8.0.ebuild: ~x86(default/linux/x86/10.0/desktop/gnome) ['sys-libs/glibc[multilib]', 'app-emulation/emul-linux-x86-baselibs', 'app-emulation/emul-linux-x86-gtklibs']
   net-print/pips-common/pips-common-3.8.0.ebuild: ~x86(default/linux/x86/10.0/desktop) ['sys-libs/glibc[multilib]', 'app-emulation/emul-linux-x86-baselibs', 'app-emulation/emul-linux-x86-gtklibs']
   net-print/pips-common/pips-common-3.8.0.ebuild: ~x86(default/linux/x86/10.0) ['sys-libs/glibc[multilib]', 'app-emulation/emul-linux-x86-baselibs', 'app-emulation/emul-linux-x86-gtklibs']

Чем ему зависимости не угодили? Чего ему надо?
Ебилд из моей темы.

metadata.missing

metadata.missing              1
   net-print/pips-common/metadata.xml

шаблон в корне дерева портаге лежит

ebuild.minorsyn               2
   net-print/pips-common/pips-common-3.8.0.ebuild: Trailing whitespace error on line: 41
   net-print/pips-common/pips-common-3.8.0.ebuild: Trailing whitespace error on line: 106

убрать

DEPEND.bad   

DEPEND="sys-libs/glibc" - пакеты из system ненадо писать в депендах, если надо проверить, что это именно глибц, есть спец флаг (USE)

if echo "${USE}" | grep 'amd64' > /dev/null 2>&1; then
	AMD64="true"
	SRC_URI="${SRC_URI}
		http://linux.avasys.jp/drivers/pips/Epson_Stylus_T50/pips-spt50-ubuntu8.04-3.8.0-CG.tgz"
	DEPEND="${DEPEND}[multilib]
			app-emulation/emul-linux-x86-baselibs
			app-emulation/emul-linux-x86-gtklibs"
fi

ужаснейшая муть, нарушающая все стандарты - никаких циклов в global scope быть не должно
echo "${USE}" | grep 'amd64' > /dev/null 2>&1 - еще более ненужная штука - есть use amd64 && x86
${DEPEND}[multilib] - совсем не понятно, что ты хотел, мултилиб - это профиль, и в ебилде чекается по другому.

>=dev-libs/libxml2-2.7
	>=media-libs/libpng-1.4
	>=net-print/cups-1.4
	>=x11-libs/gtk+-2.0.0"

кое что из этих депендов без указания слота неправильно

pkg_setup() {
	filter-ldflags -Wl,--as-needed
}

фикси - http://www.gentoo.org/proj/en/qa/asneeded.xml

src_prepare() {

анпак в препаре - это не правильно

./pips-spt50-ubuntu8.04-3.8.0-CG.install --noexec --target pips-bin

распаковка таким способом неверна - подбирай оффсет и смотри как сделано в других ебилдах ( например драйвера nvidia)

соответственно перенеси это в src_unpack()

ar x pips-spt50_3.8.0-3_i386.deb > /dev/null

есть в еклассе, 3-й анпка вроде бы умел сам

if [ ! "x" = "x${AMD64}" ]; then

if use anm64; then ...

tar -xzf data.tar.gz -C common

распаковывай еклассом

mkdir spt50
mkdir usr/lib32 -p

используй хелперы, а не команды

rm {*.tar.gz,debian*,*.lc,*.sh,*.deb}

Зачем ????

mv spt50/usr/lib/* usr/lib32
mv common/usr/bin/{espmnt,espmntg} usr/bin
		mv common/usr/lib/lib* usr/lib32

doins, insinto

mkdir usr/share/locale -p

dodir,keepdir - на выбор и по потребности

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

емаке DESTDIR="${D}" install || die

exeinto /etc/init.d
	newexe "${FILESDIR}/ekpd.initd" ekpd

Муть, хелперы исползованы не те, что надо
используй newinitd

cd "${S}/../pips-bin"
	cp usr "${D}" -r

diropts,doins, dobin, dosbin ....

pkg_prerm() {
	/usr/local/EPAva/core/printersetup -u -p spt50 -s cups > /dev/null 2>&1
	rm /var/ekpd/ekplp0 > /dev/null 2>&1

НУНИФИГАЖСЕБЕ , мы еще и в /usr/local/ поставились ? О_О

rm /var/ekpd/ekplp0 - мм, зачем ???

pkg_postinst() {
	einfo 'Configuring ekpd ...'
	/usr/local/EPAva/core/printersetup -i -p spt50 -s cups 
}

в pkg_config

Использованные документы:
[1] Gentoo Package Manager Specification http://www.gentoo.org/proj/en/qa/pms.xml
app-doc/pms
[2] Gentoo Development Guide - http://devmanual.gentoo.org
[3] Gentoo Developer Handbook - http://www.gentoo.org/proj/en/devrel/handbook/handbook.xml

Рекомендую воспользоватся проектом Gentoo Sunrise - http://www.gentoo.org/proj/en/sunrise/ ; в частности, попросит просмотреть ебилд на канале #gentoo-sunrise.
Там вам разложат все еще более подробно ( а может и нет :) )

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 написал(а):
DEPEND="sys-libs/glibc" - пакеты из system ненадо писать в депендах, если надо проверить, что это именно глибц, есть спец флаг (USE)

Тут надо не наличие самого glibc проверить, а, при условии сборки под amd64, что он собран с флагом multilib.

Пока сделал вот так:

 DEPEND=" amd64? ( sys-libs/glibc[multilib]
                     app-emulation/emul-linux-x86-baselibs
                     app-emulation/emul-linux-x86-gtklibs )
         >=dev-libs/libxml2-2.7
         >=media-libs/libpng-1.4
         >=net-print/cups-1.4
         >=x11-libs/gtk+-2.0.0"
slepnoga написал(а):
>=dev-libs/libxml2-2.7
	>=media-libs/libpng-1.4
	>=net-print/cups-1.4
	>=x11-libs/gtk+-2.0.0"

кое что из этих депендов без указания слота неправильно

А можно конкретнее - что именно?

slepnoga написал(а):
pkg_prerm() {
	/usr/local/EPAva/core/printersetup -u -p spt50 -s cups > /dev/null 2>&1
	rm /var/ekpd/ekplp0 > /dev/null 2>&1

НУНИФИГАЖСЕБЕ , мы еще и в /usr/local/ поставились ? О_О

Угу. Я потихоньку файло раскидываю по "правильным" местам.

slepnoga написал(а):
rm /var/ekpd/ekplp0 - мм, зачем ???

Демон при запуске создает сей файл, но после останова не удаляет.
Соответственно и emerge не хочет удалять /etc/ekpd при unmerge.

slepnoga написал(а):
pkg_postinst() {
	einfo 'Configuring ekpd ...'
	/usr/local/EPAva/core/printersetup -i -p spt50 -s cups 
}

в pkg_config

Ok

slepnoga написал(а):
ar x pips-spt50_3.8.0-3_i386.deb > /dev/null

есть в еклассе, 3-й анпка вроде бы умел сам

Уметь-то, может, и умеет. Да только архив он ищет в distdir, а тот лежит в work. Соответственно ничего не распаковывается. А если указать полный путь до архива, sandbox визжать начинает.

UPD
Как я сразу-то не догадался. Относительные пути помогли :)

Я не смог понять твой комментарий...
И по этому поводу решил подарить тебе запятую: ",". Используй её с умом!

Соответственно и emerge не

Соответственно и emerge не хочет удалять /etc/ekpd при unmerge.

Читаем доки, читаем дальше, читаем сильно

и как связаны /etc/ekpd и /var/ekpd/ ???

И навтыкай die побольше

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 ;)

Читаем, читаем... И die

Читаем, читаем...
И die навтыкаем.

А /etc/ekpd - это я очепятался. Имел в виду /var/ekpd

Я не смог понять твой комментарий...
И по этому поводу решил подарить тебе запятую: ",". Используй её с умом!

slepnoga

slepnoga написал(а):
pkg_setup() {
	filter-ldflags -Wl,--as-needed
}

фикси - http://www.gentoo.org/proj/en/qa/asneeded.xml

Во многом разобрался, многое исправил, а вот в этом ничего совершенно не понял.

Цитата:
Failure in final linking, undefined symbols

This is the most common error that happens while using --as-needed. It happens during the final linking stage of an executable (libraries don't create problems, because they are allowed to have undefined symbols). The executable linking stage dies because of an undefined symbol that is present in one of the libraries fed to the command line. However, the library is not used by the executable itself, thus it gets removed by --as-needed.

This usually means that a library was not linked to another library, but was using it, and then relying on the final executable to link them together. This behavior is also an extra encumbrance on developers using that library because they have to check for the requirements.

The fix to this kind of problem is usually simple: just find which library provides the symbols and which one is requiring them (the error message from the linker should contain the name of the latter). Then make sure that when the library is linked from the source files it's also linked to the first. While using autotools, the dependent library has to be checked in the configure (this should already be the case to specify the dependencies in the pkg-config data file or in the script provided) and then the variable carrying this value should be added to the LIBADD variable for the library to be built.

Оно же? Но вот только меня этот текст ввел в ступор. И гугл на тему LIBADD не помог.

В Makefile.am некомпилящейся либы есть вот такие строчки:

libltdl_la_LDFLAGS = -no-undefined -version-info 4:0:1
libltdl_la_LIBADD = $(LIBADD_DL)

libltdlc_la_SOURCES = ltdl.c
libltdlc_la_LIBADD = $(LIBADD_DL)

На сколько я понял, сюда надо что-то добавить. Но что?

Я не смог понять твой комментарий...
И по этому поводу решил подарить тебе запятую: ",". Используй её с умом!

И спросил он 2-й раз: Билд

И спросил он 2-й раз:
Билд система на автотулзах ?

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 ;)

Да, автотулз. eautoreconf от

Да, автотулз.
eautoreconf от проблемы не избавляет.

Я не смог понять твой комментарий...
И по этому поводу решил подарить тебе запятую: ",". Используй её с умом!

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

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