[sisyphus] компиляция программы и файлы *.a

Шенцев Алексей Владимирович =?iso-8859-1?q?ashen_=CE=C1_nsrz=2Eru?=
Ср Окт 18 17:23:27 MSD 2006


В сообщении от Среда 18 октября 2006 12:50 Damir Shayhutdinov написал(a):
> > > > Что то не доставил, или не так пересобирал directfb со статикой?
> > > Ага, надо добавить -lm к строке линковки. И еще -lsysfs.
> > Я в спеке directfb изменил следующие строки:
> > %configure \
> >     --enable-shared \
> >     --enable-static=yes \
> > и
> > %_libdir/lib*.*
> > А как нужно было сделать с учётом выше вами сказанного?
> Да так и надо было делать скорее всего.
Может мантейнер directfb в дополнение к libdirectfb-devel сделает и 
libdirectfb-devel-static? Эх, мячты ... :)
> Просто для .so файлов их зависимости хранятся в самом файле (NEEDED в
> ELF), а для .a файлов их негде хранить, поэтому приходится всякие -lm
> и -lsysfs добавлять не к строчке линковки библиотеки, а к строчке
> линковки исполняемых файлов, линкуемых со статическими библиотеками.
> Что вы линкуете с libdirectfb_fbdev.a ? Вот туда и надо добавлять.
> Вообще для этих целей и создавался формат libtool library (.la).  В
> него как раз заносятся все зависимости как для статических, так и для
> динамических либ. Но в Альте .la не используются, так как все
> динамикой собирается.
> Поэтому всем кто собирает статикой приходится закрывать unresolved
> symbols собственноручно, добавляя нужные -lчто-то там в список того, с
> чем линкуется исполняемый файл.
Спасибо за разъяснения. Делал снчала в ручную:
autoreconf -fisv
./configure --prefix=/
make
вроде всё без ошибок прошло. Но вот при сборке пакета вылезло такое:
-(ashen на oasu3)-(~/RPM/SPECS)-> rpmbuild -ba splashy.spec
Выполняется(%prep): /bin/sh -e /home/ashen/tmp/rpm-tmp.84808
+ umask 022
+ /bin/mkdir -p /home/ashen/RPM/BUILD
+ cd /home/ashen/RPM/BUILD
+ cd /home/ashen/RPM/BUILD
+ rm -rf splashy-0.1.8.1
+ echo 'Source #0 (splashy-0.1.8.1.tar.bz2):'
Source #0 (splashy-0.1.8.1.tar.bz2):
+ /bin/bzip2 -dc /home/ashen/RPM/SOURCES/splashy-0.1.8.1.tar.bz2
+ /bin/tar -xf -
+ cd splashy-0.1.8.1
+ /bin/chmod -Rf u+rwX,go-w .
+ echo 'Patch #0 (splashy-path.patch):'
Patch #0 (splashy-path.patch):
+ /usr/bin/patch -p0 -s
1 out of 1 hunk FAILED -- saving rejects to file Makefile.am.rej
ошибка: Неверный код возврата из /home/ashen/tmp/rpm-tmp.84808 (%prep)

Т.е. возникла ошибка с наложением первого патча?
Хотя в спеке указано так:
-(ashen на oasu3)-(~/RPM/SPECS)-> cat splashy.spec
Name:           splashy
Version:        0.1.8.1
Release:        alt1
Summary:        A complete user-mode, POSIX, boot splashing system

Group:          System Environment/Base
License:        GPL
URL:            http://splashy.alioth.debian.org
Source0:        splashy-%{version}.tar.bz2
Source1:        splashy-fedora.tar.bz2
Patch0:         splashy-path.patch
Patch1:         splashy-directfb.patch
Patch2:         splashy-scripts.patch
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root

BuildRequires:  glib2-devel-static
BuildRequires:  directfb-devel
BuildRequires:  zlib-devel-static
Requires:       kbd
Requires(preun): /sbin/chkconfig
Requires(post): /sbin/chkconfig


%description
Splashy is a next generation boot splashing system for Linux systems. It needs
no patches to the kernel and itБ─≥s installed like a normal package. Make your
boot process eye-candy with Splashy!

%prep
%setup -q
%patch0
%patch1
%patch2                                                                                                                      

В чём косяк то получился?
-- 
С уважением Шенцев Алексей Владимирович.
E-mail: ashen на nsrz.ru
ICQ: 271053845


Подробная информация о списке рассылки Sisyphus