LINUX.ORG.RU
ФорумTalks

jpeg-turbo теперь поддерживает ABI jpeg7 и jpeg8


0

0

что это и зачем это нужно можно прочитать тут http://www.linux.org.ru/news/opensource/5070871

проблемой было то, что к моменту релиза 1.0.0 и адаптации проекта Федорой многие дистрибутивы уже ушли от jpeg6b к jpeg7 или jpeg8, которые не совместимы, теперь в jpeg-turbo (trunk) есть поддержка abi для 7 и 8, так что попробовать теперь могут все.



попробовать можно так
берем исходники с svn:
svn co https://libjpeg-turbo.svn.sourceforge.net/svnroot/libjpeg-turbo/trunk libjpeg-turbo
cd libjpeg-turbo
autoreconf --install --force

конфигурация с поддержкой ABI jpeg8:
./configure --with-jpeg8
make

полученной .libs/libjpeg.so.8.0.2 можно заменить системную libjpeg.so.8 или кинуть ее в /usr/local/lib и сделать ldconfig

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

жопеги открываются просто мгновенно, даже если это холодный старт гляделки
пнг-шки же тормознее в разы даже на горячем старте!
кастую турболибу пнг

megabaks ★★★★
()

внимание вопрос - а как теперь починить зависимости?

Calculating dependencies... done!
[ebuild  N    ] media-libs/jpeg-8b  USE="-static-libs" 0 kB
[ebuild     U ] app-misc/realpath-1.15-r3 [1.15-r2] USE="nls" 0 kB
[ebuild   R   ] sys-auth/pambase-20101024  USE="consolekit cracklib sha512 -debug -gnome-keyring -minimal -mktemp -pam_krb5% -pam_ssh% -passwdqc (-selinux) (-kerberos%) (-ssh%)" 0 kB
[blocks B     ] media-libs/jpeg:0 ("media-libs/jpeg:0" is blocking media-libs/libjpeg-turbo-1.0.90-r1)

Total: 3 packages (1 upgrade, 1 new, 1 reinstall), Size of downloads: 0 kB
Conflict: 1 block (1 unsatisfied)

 * Error: The above package list contains packages which cannot be
 * installed at the same time on the same system.

  (media-libs/jpeg-8b, ebuild scheduled for merge) pulled in by
    media-libs/jpeg:0 required by (net-libs/webkit-gtk-1.2.5-r1, installed)
    media-libs/jpeg required by (x11-plugins/compiz-plugins-extra-0.8.6-r1, installed)
    media-libs/jpeg required by (x11-plugins/compiz-plugins-unsupported-0.8.4-r1, installed)
    (and 5 more)

  (media-libs/libjpeg-turbo-1.0.90-r1, installed) pulled in by
    media-libs/libjpeg-turbo required by @selected


For more information about Blocked Packages, please refer to the following
section of the Gentoo Linux x86 Handbook (architecture is irrelevant):

http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?full=1#blocked


 * IMPORTANT: 1 news items need reading for repository 'gentoo'.
 * Use eselect news to read news items.

desktop megabaks # equery d media-libs/jpeg
 * These packages depend on media-libs/jpeg:
app-misc/eaglemode-0.78.0 (media-libs/jpeg)
games-fps/alienarena-20100726 (opengl ? media-libs/jpeg)
media-gfx/fontforge-20100501 (jpeg ? >=media-libs/jpeg-6b-r2)
media-plugins/gst-plugins-jpeg-0.10.23 (media-libs/jpeg)
net-libs/webkit-gtk-1.2.5-r1 (media-libs/jpeg:0)
virtual/jpeg-0 (media-libs/jpeg:0)
x11-plugins/compiz-plugins-extra-0.8.6-r1 (media-libs/jpeg)
x11-plugins/compiz-plugins-main-0.8.6-r1 (media-libs/jpeg)
x11-plugins/compiz-plugins-unsupported-0.8.4-r1 (media-libs/jpeg)
desktop megabaks #  emerge -avuDN world

 * IMPORTANT: 1 news items need reading for repository 'gentoo'.
 * Use eselect news to read news items.


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

Calculating dependencies... done!

!!! All ebuilds that could satisfy "media-libs/jpeg" have been masked.
!!! One of the following masked packages is required to complete your request:
- media-libs/jpeg-8b (masked by: package.mask)
- media-libs/jpeg-8a (masked by: package.mask)
- media-libs/jpeg-7-r1 (masked by: package.mask)
- media-libs/jpeg-6b-r9 (masked by: package.mask)

(dependency required by "games-fps/alienarena-20100726" [installed])
(dependency required by "@selected")
(dependency required by "@world" [argument])
For more information, see the MASKED PACKAGES section in the emerge
man page or refer to the Gentoo Handbook.


 * IMPORTANT: 1 news items need reading for repository 'gentoo'.
 * Use eselect news to read news items.

desktop megabaks #

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

Можно сделать пустой ебилд media-libs/jpeg-8z, заодно подкорректировав libjpeg-turbo, убрав из него !jpeg из RDEPEND. Это самый простой способ. Либо перекрывать все ебилды зависимые от media-libs/jpeg и исправлять зависимость на virtual/jpeg. Это правильный способ.

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

В общем, может кому ещё пригодится:

$ 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»

$ 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»

$ cat /usr/local/portage/media-libs/libjpeg-turbo/libjpeg-turbo-1.0.1.ebuild
# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/media-libs/libjpeg-turbo/libjpeg-turbo-1.0.1.ebuild,v 1.1 2010/09/20 17:57:09 ssuominen Exp $

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=«»
IUSE=«static-libs»

RDEPEND=«media-libs/jpeg: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
# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/media-libs/libjpeg-turbo/libjpeg-turbo-1.0.90-r1.ebuild,v 1.1 2010/11/07 20:50:22 anarchy Exp $

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=«»
IUSE=«static-libs»

RDEPEND=«media-libs/jpeg: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
}

Соответственно все ужи и ежи ужились и съёжились. Коллизий по файлам нет, блокировок нет. Можно для турбо в ебилды прописать зависимости жёстко именно для 6z и 8z, чтобы наверняка.

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

знаешь - тут поступило предложение
заслать гентардам «позязя» - поменять в ебыдлах зависимости на jpeg* ИЛИ turbo-jpeg*

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

>кастую турболибу пнг

Ну так это, LorCode есть. Создай тему, может кто и соберется команда оптимизаторов.

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

>бесполезно это, имхо

Ты главное тему создай, там посмотрим.

скажут что не нужно


тяжело с кактуса слезать...

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

> поменять в ебыдлах зависимости на jpeg* ИЛИ turbo-jpeg*

Нет, менять надо везде с media-libs/jpeg или media-libs/libjpeg-turbo на virtual/jpeg
Как временную меру можно воспользоваться четырьмя ебилдами выше.

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

ЛДАП! Русская языка!
Как временную меру можно использовать четыре ебилдами выше.
Или
В качестве временной меры можно воспользоваться четырьмя ебилдами выше.

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

Тьфу! Спать пора!
Как временную меру можно использовать четыре ебилда выше.

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

PS: С утра подумал свежей головой. Надо убрать из ебилдов для «турбо» зависимость от media-libs/jpeg:0 и media-libs/jpeg:62, а в перекрытые jpeg-*z наоборот добавить зависимости от «турбо».

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

Вчера поставил посмотрел что все работает и успокоился. А сегодня задался вопросом а что от этой библиотеки конкретно зависит? =)

Дигикам и gwenview от libjpeg зависят или нет? А то я по зависимостям в арче не смог проследить.

впрочем для фаерфокса есть момент, что он по умолчанию собран с bundled libjpeg, лучше посмотреть в about:buildconfig чтобы там было --with-system-jpeg

Стоит от мозиловцев а они без этой опции собирают? Так что работоспособность лисы не показатель.

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

вообще справедливости ради, надо сказать что у gtk+ и qt свои загрузчики jpeg, в случае qt загрузчик может и bundled версию использовать иногда, хотя это и не умолчальный вариант



$ ldd /usr/lib/qt4/plugins/imageformats/libqjpeg.so |grep jpeg
libjpeg.so.62 => /usr/local/lib/libjpeg.so.62 (0xb76aa000)



$ ldd /usr/lib/gtk-2.0/2.10.0/loaders/libpixbufloader-jpeg.so|grep jpeg
libjpeg.so.62 => /usr/local/lib/libjpeg.so.62 (0xb7865000)

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

>>Дигикам и gwenview

да

Спс. Приду с работы потестирую более внимательно, на первый взгляд отрисовка больших жпегов в gwenview ускорилась, но я подумал может это эфект плацебо. =)

не знаю как собирают фф в мозилле, кажется bundled

Там я хз зачем знак вопроса поставил, это было утверждение. В about:buildconfig эта опция не указана.

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

[behem0th@ArchLinux ~]$ ldd /usr/lib/qt/plugins/imageformats/libqjpeg.so|grep jpeg

libjpeg.so.8 => /usr/lib/libjpeg.so.8 (0xb76b7000)

lsof -n |grep libjpeg

http://pastebin.com/fMvvwMQ7

Используется как я понял во всю. Ничего не падает, все работает. Сильно огромных жпегов не имею только коллекцию обоев для раб.стола + фотки с недорогой мыльницы. Скорость открытия файов и создания миниатюр если и возросла то не значитильно(на моей системе) так что возможно это всетаки эфект плацебо сработал.

Behem0th ★★★★★
()
Ответ на: комментарий от Fantasma
полученной .libs/libjpeg.so.8.0.2 можно заменить системную libjpeg.so.8 или кинуть ее в /usr/local/lib и сделать ldconfig

Sylvia   (28.11.2010 12:12:28)
anon_666
()
Ответ на: комментарий от Fantasma

Смотря что за система. В арче в ауре есть, установка в генту тут обсуждалась(смотри удаленные комменты)

А так собрать и создать линки на все системные libjpeg.so*

Behem0th ★★★★★
()

хм...не думал что настолько оно шустрее

find /home/megabaks/ -name *.jpg >> megabaks/filelist-feh
jpeg-8b
megabaks@desktop /home $ time feh --slideshow-delay=0.0000001 --cycle-once -F -f /home/megabaks/filelist-feh 2&>/dev/null

real	0m19.727s
user	0m15.707s
sys	0m1.865s
megabaks@desktop /home $ time feh --slideshow-delay=0.0000001 --cycle-once -F -f /home/megabaks/filelist-feh 2&>/dev/null

real	0m19.834s
user	0m15.777s
sys	0m1.863s
megabaks@desktop /home $ time feh --slideshow-delay=0.0000001 --cycle-once -F -f /home/megabaks/filelist-feh 2&>/dev/null

real	0m19.764s
user	0m15.758s
sys	0m1.828s
megabaks@desktop /home $
jpeg-turbo
megabaks@desktop /home $ time feh --slideshow-delay=0.0000001 --cycle-once -F -f /home/megabaks/filelist-feh 2&>/dev/null

real	0m13.239s
user	0m9.315s
sys	0m1.797s
megabaks@desktop /home $ time feh --slideshow-delay=0.0000001 --cycle-once -F -f /home/megabaks/filelist-feh 2&>/dev/null

real	0m13.264s
user	0m9.334s
sys	0m1.791s
megabaks@desktop /home $ time feh --slideshow-delay=0.0000001 --cycle-once -F -f /home/megabaks/filelist-feh 2&>/dev/null

real	0m13.227s
user	0m9.305s
sys	0m1.769s
megabaks@desktop /home $

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

Да, проще. Имхо идеологически правильнее всё-таки завязывать на virtual/jpeg, но слишком много перетряхивать в дереве придётся.

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

не лучше - ибо в виртуале и так или/или
а вообще правильней будет пустышка 8z имеющая в зависимостях турбо
хотя хз - не идеалист %)

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

> не лучше - ибо в виртуале и так или/или

В виртуале да, но многие ебилды зависят не от виртуала, а непосредственно от media-libs/jpeg. Вот их и надо исправить на виртуал.

а вообще правильней будет пустышка 8z имеющая в зависимостях турбо


Собственно я так тогда и сделал с утра.

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}»

А в перекрытом турбо убрал !media-libs/jpeg

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

>Вот их и надо исправить на виртуал.
ну патчить всё дерево и оверлеи на предмет jpeg после каждого синка...не айс, скажем так )

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

хорошая идея - теперь надо где-то голосовалку сделать для гентушнегов этих ;)

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