LINUX.ORG.RU

Сборка GIMP 2.8.20

 , ,


0

1

Решение очевидное, наверника, но чето голова не варит. Вот так я собираю:

PREFIX=/opt/gimp
sudo mkdir $PREFIX
sudo chmod 1777 $PREFIX 

cd /usr/src/babl
make clean
./autogen.sh --prefix=$PREFIX
make
make install

export BABL_CFLAGS="-I$PREFIX/include/babl-0.1"
export BABL_LIBS="-L$PREFIX/lib -lbabl-0.1 -lm"

cd ../gegl
make clean

./autogen.sh --prefix=/opt/gimp
make -j3
#after fail
make -j3
make install

export GEGL_CFLAGS="-I$PREFIX/include/gegl-0.3"
export GEGL_LIBS=-"L$PREFIX/lib -llibgegl-0.3 -lm"

cd ../gimp
make clean

export PATH="$PREFIX/bin:$PATH"
export PKG_CONFIG_PATH="$PREFIX/lib/pkgconfig:$PKG_CONFIG_PATH"
export LD_LIBRARY_PATH="$PREFIX/lib:$LD_LIBRARY_PATH"
#export ACLOCAL_FLAGS="-I $PREFIX/share/aclocal $ACLOCAL_FLAGS"

./autogen.sh --prefix=/opt/gimp
make -j3
И получаю:
In file included from gimp.c:22:0:
/opt/gimp/include/gegl-0.3/gegl.h:23:23: fatal error: babl/babl.h: No such file or directory

Ответ на: ppa? Не не слышал! от Ygor

Да хотелось самому собрать... Я даже не знаю можно ли доверять этим ppa... Так нестабильная версия, лежит себе тихонько в отдельной директории...

LinuxDebian ★★★★ ()
Последнее исправление: LinuxDebian (всего исправлений: 1 )
Ответ на: комментарий от RazrFalcon

Не знаю, а что? Ну то есть в данном случае это может сказаться на результат? Мне же эти исходники не нужны, я их править не буду...

LinuxDebian ★★★★ ()
Последнее исправление: LinuxDebian (всего исправлений: 1 )
Ответ на: комментарий от LinuxDebian

Да хотелось самому собрать...

Тогда настраивай переменные окружения, что бы оно находило заголовочные файлы.

Я даже не знаю можно ли доверять этим ppa...

1. Да.

2. Всяко лучше чем превращать дистрибутив в слаку.

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

Тогда настраивай переменные окружения, что бы оно находило заголовочные файлы.

Это понятно, но непонятно как, я редко в ручную собираю софт... Как он нашел гегл, а бабл не видит? И при этом сам гегл собрасля с этими переменными и нашел этот же файл!

LinuxDebian ★★★★ ()
Последнее исправление: LinuxDebian (всего исправлений: 1 )
Ответ на: комментарий от LinuxDebian

но непонятно как, я редко в ручную собираю софт...

https://www.google.ru/search?client=ubuntu&channel=fs&q=include path ...

А вообще полезно читать ./configure (-h) --help если оно есть.

Ygor ★★★★★ ()
Последнее исправление: Ygor (всего исправлений: 1 )
Ответ на: комментарий от Ygor

А ответ вы знаете? Или так читай кучу чего то? Же говорю: это нормально, что гегл при сборке видит бабл с этими же переменными? А gimp нет...

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

Или так читай кучу чего то?

Да. Ты ведь хочешь из исходников собрать, а не я.

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

Вполне.

И вообще AP в предыдущем топике все разжувал.

Ygor ★★★★★ ()
Последнее исправление: Ygor (всего исправлений: 1 )

(поглядев на последнюю строчку) Я не понял: ты всё равно с GEGL 0.3.x собираешь несмотря на предыдущий тред?

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

И вообще AP в предыдущем топике все разжувал.

Что именно? Он сказал ставь с ППА: 2.9, потому что даже 2.8 с тех же ППА работать без пересборки не будет...

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

Лол, она тоже не собирается Ладно пусть будет ппа :) Или еще лучше посмотрю как в 16.10 он поживает, там 18 версия...

LinuxDebian ★★★★ ()
Последнее исправление: LinuxDebian (всего исправлений: 2 )
Ответ на: комментарий от LinuxDebian

это нормально, что гегл при сборке видит бабл с этими же переменными? А gimp нет...

Да, это вполне нормально.

К примеру хедеры babl лежат тут: /babl/include/babl/*.h,

Пути к баблу указаны как /babl/include, gegl инклюдит babl так #include <babl/babl.h>. Тут все нормально и гегл видит бабл.

А гимп инклюдит так #include <babl.h>, предполагая, что пути будут прописаны так: /babl/include/babl.

Надеюсь, смысл вы поняли.

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

Надеюсь, смысл вы поняли.

Чесно горя не очень... Я смотрю мейк файлы гимпа в них есть переменные: BABL_CFLAGS, BABL_LIBS, GEGL_CFLAGS, GEGL_LIBS. В которых хранятся прaвильные пути, я надеюсь:

ls -a /opt/gimp
.  ..  bin  include  lib  share
ls -a /opt/gimp/lib
.	  libbabl-0.1.la	  libgegl-0.3.la	  libgegl-npd-0.3.la  pkgconfig
..	  libbabl-0.1.so	  libgegl-0.3.so	  libgegl-npd-0.3.so
babl-0.1  libbabl-0.1.so.0	  libgegl-0.3.so.0	  libgegl-sc-0.3.la
gegl-0.3  libbabl-0.1.so.0.124.1  libgegl-0.3.so.0.315.0  libgegl-sc-0.3.so
Как я понимаю, именно их должен компилятор использовать...
export BABL_CFLAGS="-I$PREFIX/include/babl-0.1"
export BABL_LIBS="-L$PREFIX/lib -lbabl-0.1 -lm"
export GEGL_CFLAGS="-I$PREFIX/include/gegl-0.3"
export GEGL_LIBS=-"L$PREFIX/lib -llibgegl-0.3 -lm"
Но ладно, я в тупую записал путь в глобальную:
export CFLAGS="-I$PREFIX/include/babl-0.1"
И это сработало! Значит мейкфайл кривой и где то упущено использование «локальных» CFLAGS?

Но теперь новая проблема которая не решается в лоб:

LIBS = /opt/gimp/lib -llibgegl-0.3 -lm
make[4]: Entering directory '/usr/src/gimp/app'
  CCLD     gimp-console-2.8
  CCLD     gimp-2.8
/usr/bin/ld: cannot find /opt/gimp/lib: File format not recognized
/usr/bin/ld: cannot find -llibgegl-0.3
collect2: error: ld returned 1 exit status
Makefile:927: recipe for target 'gimp-console-2.8' failed
make[4]: *** [gimp-console-2.8] Error 1
make[4]: *** Waiting for unfinished jobs....
/usr/bin/ld: cannot find /opt/gimp/lib: File format not recognized
/usr/bin/ld: cannot find -llibgegl-0.3
collect2: error: ld returned 1 exit status
Makefile:923: recipe for target 'gimp-2.8' failed
make[4]: *** [gimp-2.8] Error 1
make[4]: Leaving directory '/usr/src/gimp/app'
Makefile:1179: recipe for target 'all-recursive' failed
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory '/usr/src/gimp/app'
Makefile:830: recipe for target 'all' failed
make[2]: *** [all] Error 2
make[2]: Leaving directory '/usr/src/gimp/app'
Makefile:754: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/usr/src/gimp'
Makefile:657: recipe for target 'all' failed
make: *** [all] Error 2
Я конечно ищу решение, раздражает, что не получается такая элементарщина... Может сможете показать?

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

/usr/bin/ld: cannot find /opt/gimp/lib: File format not recognized

Этого нет, это я пропустил один раз -L...

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

/usr/bin/ld: cannot find /opt/gimp/lib: File format not recognized

Все верно, /opt/gimp/lib - это не либа, а путь. Надо так -L/opt/gimp/lib.

И это неправильно: -llibgegl-0.3. Скорее всего нужно так: -lgegl (без префикса lib и, скорее всего, без версии).

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

хочу проверить в нем проблема или в патчах мейнтейнеров

Возьмите Slackware Live Edition да и проверьте, он там уже собранный ванильный, без патчей мейнтейнеров.

bormant ★★★★★ ()
Последнее исправление: bormant (всего исправлений: 1 )
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.