Re: Pomóżcie skompilować amaroka
Bartlomiej Zimon
uzi18 at o2.pl
Thu Apr 7 13:44:57 CEST 2011
Dnia 6 kwietnia 2011 22:24 Michał Lisowski <lisu87 w gmail.com> napisał(a):
> 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
>
Tylko po co to wszystko skoro jest dostepna latka na cmake co zbuduje i lib.a i lib.so ?
Jedynym problemem sa te 2 latki o ktorych pisalem, bo powoduja nie rozwiazane symbole.
Pozdrawiam
Bartlomiej Zimon
More information about the pld-devel-pl
mailing list