Re: Pomóżcie skompilować amaroka

Bartosz Świątek shadzik at gmail.com
Thu Apr 7 07:30:10 CEST 2011


W dniu 6 kwietnia 2011 22:24 użytkownik Michał Lisowski
<lisu87 w gmail.com> napisał:
> W dniu 06.04.2011 22:15, Bartosz Świątek pisze:
>>
>> W dniu 6 kwietnia 2011 15:12 użytkownik Michał Lisowski
>> <lisu87 w gmail.com>  napisał:
>>>
>>> Tak, patrzyłem na to również. Problem polega na tym, że z
>>> -DWITH_EMBEDDED_SERVER=ON powstaje libmysqld.a, ale ma unresolved
>>> symbols.
>>
>> Dobra, przekonałeś mnie :)
>>
>> Spróbuj dodać coś takiego:
>>
>> --- packages/mysql/mysql.spec   2 Apr 2011 04:46:42 -0000       1.547
>> +++ packages/mysql/mysql.spec   6 Apr 2011 20:12:57 -0000
>> @@ -535,6 +535,21 @@
>>  %description ndb-cpc -l pl.UTF-8
>>  Ten pakiet zawiera standardowego demona MySQL NDB CPC.
>>
>> +%package embedded
>> +Summary:       MySQL - Embedded Library
>> +Group:         Libraries
>> +
>> +%description embedded
>> +This package contains the embedded MySQL library.
>> +
>> +%package embedded-devel
>> +Summary:       MySQL - Embedded Library
>> +Group:         Libraries
>> +Requires:      %{name}-embedded = %{version}-%{release}
>> +
>> +%description embedded-devel
>> +This package contains the embedded MySQL library.
>> +
>>  %prep
>>  %setup -q %{?with_sphinx:-a100}
>>  %if %{with sphinx}
>> @@ -659,12 +674,23 @@
>>        -DINSTALL_MYSQLTESTDIR_RPM="" \
>>        -DINSTALL_SQLBENCHDIR=%{_datadir} \
>>        -DINSTALL_SUPPORTFILESDIR=%{_datadir}/%{name}-support \
>> +       -DWITH_EMBEDDED_SERVER=ON \
>>        ..
>>
>>  %{__make}
>>
>>  %{?with_tests:%{__make} test}
>>
>> +install -d  libmysqld/build
>> +cd libmysqld/build
>> +ar -x ../libmysqld.a
>> +rm -f sql_binlog.cc.o rpl_utility.cc.o
>> +CFLAGS=$(echo %{rpmcflags})
>> +LDFLAGS=$(echo %{rpmldflags})
>> +%{__cc} $CFLAGS $LDFLAGS -shared -Wl,-soname,libmysqld.so.0 -o
>> libmysqld.so.0.0.1 \
>> +       *.o \
>> +       -lpthread -lcrypt -lssl -lcrypto -lz -lrt -lstdc++ -ldl -lm -lc
>> +
>>  %install
>>  rm -rf $RPM_BUILD_ROOT
>>  install -d
>> $RPM_BUILD_ROOT/etc/{logrotate.d,rc.d/init.d,sysconfig,mysql,skel} \
>> @@ -676,6 +702,12 @@
>>
>>  cp -a Docs/mysql.info $RPM_BUILD_ROOT%{_infodir}
>>
>> +# Remove libmysqld.a, install libmysqld.so
>> +rm -f $RPM_BUILD_ROOT%{_libdir}/libmysqld.a
>> +install -m 0755 build/libmysqld/build/libmysqld.so.0.0.1
>> $RPM_BUILD_ROOT%{_libdir}/libmysqld.so.0.0.1
>> +ln -s libmysqld.so.0.0.1 $RPM_BUILD_ROOT%{_libdir}/libmysqld.so.0
>> +ln -s libmysqld.so.0 $RPM_BUILD_ROOT%{_libdir}/libmysqld.so
>> +
>>  install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/mysql
>>  cp -a %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/mysql
>>  cp -a %{SOURCE3} $RPM_BUILD_ROOT/etc/logrotate.d/mysql
>> @@ -827,6 +859,8 @@
>>
>>  %post   libs -p /sbin/ldconfig
>>  %postun libs -p /sbin/ldconfig
>> +%post   embedded -p /sbin/ldconfig
>> +%postun embedded -p /sbin/ldconfig
>>
>>  %triggerpostun -- mysql<  4.0.20-2.4
>>  # For clusters in /etc/%{name}/clusters.conf
>> @@ -1227,6 +1261,15 @@
>>  %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size)
>> /etc/sysconfig/mysql-ndb-cpc
>>  %{_mandir}/man1/ndb_cpcd.1*
>>  %endif
>> +
>> +%files embedded
>> +%defattr(644,root,root,755)
>> +%attr(755,root,root) %{_libdir}/libmysqld.so.?
>> +%attr(755,root,root) %{_libdir}/libmysqld.so.*.*.*
>> +
>> +%files embedded-devel
>> +%defattr(644,root,root,755)
>> +%attr(755,root,root) %{_libdir}/libmysqld.so
>>
>>  %define date  %(echo `LC_ALL="C" date +"%a %b %d %Y"`)
>>  %changelog
>>
>>
>> Tylko jeszcze cośtam trzeba dodać zeby się rpm nie czepiał o symbole.
>> Z tym powinien się już amarok budować.
>>
>>
>
> eeee, ten %{__make} ci nie przejdzie. Oszukałem, libmysqld.a nie powstanie,
> bo przy jego linkowaniu się wypieprza. Dalej wszystko fajnie, ale nie mogę
> nic zrobić bez wygenerowania libmysqld.a

A, bo zapomniałem wspomnieć, że trzea libmysqld-tests wyłączyć, bo to
one się wywalają.
Czyli z CMakeFiles.txt wywalasz ADDSUBDIRECTORY(libmysqld/examples).



-- 
"I'm living proof if you do one thing right in your career, you can
coast for a long time. A LOOOOONG time." -Guy Kawasaki


More information about the pld-devel-pl mailing list