Pomóżcie skompilować amaroka

Michał Lisowski lisu87 at gmail.com
Wed Apr 6 22:24:51 CEST 2011


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



More information about the pld-devel-pl mailing list