W dniu 6 kwietnia 2011 22:24 użytkownik Michał Lisowski <[email protected]> napisał: > W dniu 06.04.2011 22:15, Bartosz Świątek pisze: >> >> W dniu 6 kwietnia 2011 15:12 użytkownik Michał Lisowski >> <[email protected]> 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 _______________________________________________ pld-devel-pl mailing list [email protected] http://lists.pld-linux.org/mailman/listinfo/pld-devel-pl
