LINUX.ORG.RU

[gentoo] libjpeg-turbo - howto?


0

1

Вспомнил про эту либу и решил сменить на неё системную media-libs/jpeg:

emerge --unmerge media-libs/jpeg
echo "media-libs/jpeg" >> /etc/portage/package.mask
emerge -qv libjpeg-turbo
После такого поворота событий некоторые приложения перестали собираться, требуя именно media-libs/jpeg. Причем установка всех потребностей этих приложений и последующая установка самих приложений с --nodeps срабатывает, а приложения замечательно работают. Как организовать всё правильно?

★★★★★

Это от того, что в ебилдах кривые зависимости. Приходится поправлять следующими костылями:

Сделай локальный оверлей. В нём сделай:

$ cat /usr/local/portage/media-libs/jpeg/jpeg-6z.ebuild

EAPI=«2»
SLOT=«62»
KEYWORDS=«~alpha amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc x86 ~x86-fbsd»
RDEPEND=«media-libs/libjpeg-turbo:62»
DEPEND=«${RDEPEND}»

$ cat /usr/local/portage/media-libs/jpeg/jpeg-8z.ebuild

EAPI=«3»
SLOT=«0»
KEYWORDS=«alpha amd64 arm hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris»
RDEPEND=«media-libs/libjpeg-turbo:0»
DEPEND=«${RDEPEND}»

$ cat /usr/local/portage/media-libs/libjpeg-turbo/libjpeg-turbo-1.0.1.ebuild

EAPI=2
inherit libtool

DESCRIPTION=«MMX, SSE, and SSE2 SIMD accellerated jpeg library»
HOMEPAGE="http://sourceforge.net/projects/libjpeg-turbo/"
SRC_URI=«mirror://sourceforge/${PN}/${P}.tar.gz»

LICENSE=«as-is LGPL-2.1 wxWinLL-3.1»
SLOT=«62»
KEYWORDS=«alpha amd64 arm hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris»
IUSE=«static-libs»

RDEPEND="!<media-libs/jpeg-6z:62"
DEPEND=«${RDEPEND}
dev-lang/nasm»

src_prepare() {
elibtoolize
}

src_configure() {
econf \
--disable-dependency-tracking \
$(use_enable static-libs static)
}

src_install() {
exeinto /usr/$(get_libdir)
doexe .libs/libjpeg.so.62 || die
}


$ cat /usr/local/portage/media-libs/libjpeg-turbo/libjpeg-turbo-1.0.90-r1.ebuild

EAPI=2
inherit libtool

DESCRIPTION=«MMX, SSE, and SSE2 SIMD accellerated jpeg library»
HOMEPAGE="http://sourceforge.net/projects/libjpeg-turbo/"
SRC_URI="http://dev.gentoo.org/~anarchy/dist/${P}-1.tar.bz2"

LICENSE=«as-is LGPL-2.1 wxWinLL-3.1»
SLOT=«0»
KEYWORDS=«alpha amd64 arm hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris»
IUSE=«static-libs»

RDEPEND="!<media-libs/jpeg-8z:0"
DEPEND=«${RDEPEND}
dev-lang/nasm»

S=«${WORKDIR}/${PN}-1.0.90»

src_prepare() {
elibtoolize
}

src_configure() {
econf \
--with-jpeg8 \
--disable-dependency-tracking \
$(use_enable static-libs static)
}

src_install() {
emake DESTDIR=«${D}» install || die
dodoc BUILDING.txt ChangeLog.txt example.c README-turbo.txt
find «${D}» -name '*.la' -delete
}

Если заглянет в топик мегабакс, то даст ебилды для варианта -9999

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

Так и знал, что первым предложением будет сделать свой ебилд в локальном оверлее :) У меня сейчас примерно так всё и обстоит за исключением того, что libjpeg-turbo - из основной ветки. То есть основное решение - постить багрепорты, ясно, спасибо.

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

Если кривых пакетов, которые зависят от media-libs/jpeg, а не от virtual/jpeg не очень много, то перекрыть в локальном оверлее можно их.

То есть основное решение - постить багрепорты, ясно, спасибо.

Увы, да.

Lumi ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.