Нужна помощь (Компиляция пакета arts KDE Trinity)

PCLinuxOS

Модератор: Bizdelnick

Беpc
Сообщения: 73

Нужна помощь

Сообщение Беpc »

Приветствую!

Задался тут целью скомпилировать под свой ноут 64-х битный KDE Trinity http://www.autotrain.org/mdv-kde/2010.2/SRPMS/
И на этапе компиляции arts3 столкнулся с ошибкой:

/home/oleg/rpmbuild/BUILD/arts-1.5.12/flow/audioioossthreaded.cc:207: undefined reference to `rsm_open_device'
.libs/libartsflow_la.all_cc.o: In function `Arts::AudioIOOSS::open()':
/home/oleg/rpmbuild/BUILD/arts-1.5.12/flow/audioiooss.cc:162: undefined reference to `rsm_open_device'
collect2: ld returned 1 exit status
make[3]: *** [libartsflow.la] Ошибка 1
make[3]: Выход из каталога `/home/oleg/rpmbuild/BUILD/arts-1.5.12/flow'
make[2]: *** [all-recursive] Ошибка 1
make[2]: Выход из каталога `/home/oleg/rpmbuild/BUILD/arts-1.5.12/flow'
make[1]: *** [all-recursive] Ошибка 1
make[1]: Выход из каталога `/home/oleg/rpmbuild/BUILD/arts-1.5.12'
make: *** [all] Ошибка 2
ошибка: Неверный код возврата из /var/tmp/rpm-tmp.PaAJz6 (%build)

Ошибки сборки пакетов:
Неверный код возврата из /var/tmp/rpm-tmp.PaAJz6 (%build)
[oleg@localhost SPECS]$

в файле audioiooss.cc со 162-й по 174-ю строки прописано:

audio_fd = ::rsm_open_device(_deviceName.c_str(), mode);
if(audio_fd == -1)
audio_fd = ::open(_deviceName.c_str(), mode, 0);

if(audio_fd == -1)
{
_error = "device ";
_error += _deviceName.c_str();
_error += " can't be opened (";
_error += strerror(errno);
_error += ")";
return false;
}

и с 203-й строчки по 214-ю:

if (_format && (ossBits(gotFormat) != ossBits(requestedFormat)))
{
char details[80];
sprintf(details," (_format = %d, asked driver to give %d, got %d)",
_format, requestedFormat, gotFormat);

_error = "Can't set playback format";
_error += details;

close();
return false;
}

Судя по названиям файлов OSS не может определить звуковуху (если, конечно моих знаний хватило). А так как у меня на ноуте ALSA, то нельзя ли собрать arts3 без поддержки OSS в принципе? Может команда есть какая?
Собираю командой rpmbuild -ba --target x86_64 arts3.spec
Дистрибутив Mageia 1.
Спасибо сказали:
Аватара пользователя
Pulfer
Сообщения: 509
Статус: MIB/Cooker/ROSA
ОС: Rosa 2012.1 i686

Re: Нужна помощь

Сообщение Pulfer »

Беpc писал(а):
09.09.2011 03:34
Задался тут целью скомпилировать под свой ноут 64-х битный KDE Trinity http://www.autotrain.org/mdv-kde/2010.2/SRPMS/
И на этапе компиляции arts3 столкнулся с ошибкой:


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

Беpc писал(а):
09.09.2011 03:34
/home/oleg/rpmbuild/BUILD/arts-1.5.12/flow/audioioossthreaded.cc:207: undefined reference to `rsm_open_device'


Вот в этом и проблема, а не в поддержке OSS на ноуте. :) rsm_open_device - это функция из библиотеки libresmgr, надо в этом направлении копать. Разбираться, почему undefined reference.

К сожалению, у меня нет Магеи, поэтому не могу посмотреть, почему конкретно там возникла проблема с libresmgr при сборке.

Ради интереса можно попробовать собрать arts не из Trinity: http://mib.pianetalinux.org/2011.0/srpms/a...5.10-12.src.rpm

Если соберётся, то уже смотреть, что там в Trinity поменяли, из-за чего проблема могла возникнуть.
Mandriva International Backports - http://mib.pianetalinux.org
Спасибо сказали:
Аватара пользователя
Flint71
Сообщения: 310
Статус: Продвинутый чайник
ОС: ROSA 2011

Re: Нужна помощь

Сообщение Flint71 »

Беpc писал(а):
09.09.2011 03:34
Судя по названиям файлов OSS не может определить звуковуху (если, конечно моих знаний хватило).

а пакет alsa-devel или как-то там, установлен?
Vacuum IM
для ROSA и Mageia i586
Спасибо сказали:
Беpc
Сообщения: 73

Re: Нужна помощь

Сообщение Беpc »

Pulfer писал(а):
09.09.2011 06:10
К сожалению, у меня нет Магеи, поэтому не могу посмотреть, почему конкретно там возникла проблема с libresmgr при сборке.
Ради интереса можно попробовать собрать arts не из Trinity: http://mib.pianetalinux.org/2011.0/srpms/a...5.10-12.src.rpm

На Mandriva 2010.2 компиляция отвалилась с этой же ошибкой. У тебя, вроде, тоже 2010.2. Посмотри, пожалуйста.
Собственно Mageia и Mandriva 2010.2 идентичны, на мой взгляд. У Mageia просто пакеты новее. По крайней мере Mandriva 2010.2 спокойно запускается с ядром от Mageia. А вот с ядром от Mandriva 2011 уже нет. Да и пакеты некоторые я в Mageia из 2010.2 напрямую ставлю и всё работает.
Пакет arts по ссылке собрался.

Flint71 писал(а):
09.09.2011 09:47
а пакет alsa-devel или как-то там, установлен?

Установлен.
Спасибо сказали:
Аватара пользователя
Pulfer
Сообщения: 509
Статус: MIB/Cooker/ROSA
ОС: Rosa 2012.1 i686

Re: Нужна помощь

Сообщение Pulfer »

Беpc писал(а):
09.09.2011 11:28
На Mandriva 2010.2 компиляция отвалилась с этой же ошибкой. У тебя, вроде, тоже 2010.2. Посмотри, пожалуйста.


Глянул. Так и есть - разработчики написали кривой Makefile.am, поэтому при сборке не было линковки с библиотекой resmgr. Заменяем

libartsflow_la_LDFLAGS = $(MAS_LDFLAGS) $(JACK_LDFLAGS) $(LIBAUDIOFILE_LDFLAGS) $(LIBAUDIONAS_LDFLAGS) $(LIBESD_LDFLAGS) -no-undefined -version-info 1:0

на

libartsflow_la_LDFLAGS = $(MAS_LDFLAGS) $(JACK_LDFLAGS) $(LIBAUDIOFILE_LDFLAGS) $(LIBAUDIONAS_LDFLAGS) $(LIBESD_LDFLAGS) -lresmgr -no-undefined -version-info 1:0

и всё линкуется. Обновлённый патч для resmgr - во вложении. Старый (arts-1.5.3-resmgr.patch) надо выкинуть и заменить новым. Только в спеке указать, что это патч p1, а не p0.

Впрочем, это решение только одной из проблем сборки. Дальше ещё другая вылазит, а у меня сейчас нет времени ей заниматься :blush: Тем более, что arts - это только начало. И дальше будет ещё целая куча проблем.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Mandriva International Backports - http://mib.pianetalinux.org
Спасибо сказали:
Беpc
Сообщения: 73

Re: Нужна помощь

Сообщение Беpc »

Нда, придётся пока на простом KDE 3.5 посидеть. Моих знаний для такого глубокого изучения не хватает.
Спасибо за ответ и помощь.
Спасибо сказали: