Bug 149829
Summary: | RFE: build MySQL with embedded server | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Nathan Fredrickson <nathan> | ||||||
Component: | mysql | Assignee: | Tom Lane <tgl> | ||||||
Status: | CLOSED RAWHIDE | QA Contact: | |||||||
Severity: | medium | Docs Contact: | |||||||
Priority: | medium | ||||||||
Version: | rawhide | CC: | hhorak, kevin, poelstra, rdieter, sdeasey | ||||||
Target Milestone: | --- | Keywords: | FutureFeature, Patch | ||||||
Target Release: | --- | ||||||||
Hardware: | All | ||||||||
OS: | Linux | ||||||||
Whiteboard: | |||||||||
Fixed In Version: | mysql-5.0.67-2.fc10 | Doc Type: | Enhancement | ||||||
Doc Text: | Story Points: | --- | |||||||
Clone Of: | Environment: | ||||||||
Last Closed: | 2008-10-02 15:24:02 UTC | Type: | --- | ||||||
Regression: | --- | Mount Type: | --- | ||||||
Documentation: | --- | CRM: | |||||||
Verified Versions: | Category: | --- | |||||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||
Cloudforms Team: | --- | Target Upstream Version: | |||||||
Embargoed: | |||||||||
Bug Depends On: | |||||||||
Bug Blocks: | 438944, 465019 | ||||||||
Attachments: |
|
Description
Nathan Fredrickson
2005-02-28 03:23:17 UTC
Created attachment 111492 [details] Change mysql.spec to build the embedded server. In addition to adding the --with-embedded-server configure option, this also includes libgcc.a in the package as mysql/libmygcc.a. Apparently libmygcc.a is needed when linking the C++ embedded sever (libmysqld.a) into a C program. The upstream MySQL packages include libmygcc.a the same way (see MySQL bug #4921). This would make for a rather large increase in the size of the mysql-devel package, no? Yes, the devel package would increase in size from 566K to 4.7M. But that's why devel is a separate package, right? It's only needed by developers and downloading a 4 meg devel package is alot easier than having to build mysql from source or find up-to-date and trusted 3rd-party RPMs. *** Bug 355891 has been marked as a duplicate of this bug. *** Any chance this is going to happen? If package size is a concern, how about creating mysql-server-devel? Add another interested consumer in mysql-embedded. Turns out amarok2 will need this, and if remotely possible, we'd would like to ship it with F-10. Tom? Need help packaging/spec wise? Why is a libmygcc.a needed at all? Can't we just symlink this to the system version? Or even better, patch it to use the shared libgcc? Setting F10Target on this, as it blocks upgrades of Amarok 2 beyond the beta we currently have. Created attachment 318106 [details]
--with-embedded-server
Can't comment on the libgcc thing. From reading the upstream bug, it's unclear (to me) whether that's still required or not.
Looks like building libmysql.a with -fPIC is required for amarok2 as well (I'm testing taking out the conditional %ifarch alpha) You just now decided that this is a "must have" for F-10? Seems a tad late in the cycle. We have been tracking Amarok 2 development, we're currently at Beta 1, and it so happens that Amarok upstream decided to switch from SQLite to MySQL Embedded starting from Beta 2 (ignoring their own feature freeze). :-( Fwiw, amarok-1.9.92 (2 beta2) builds/runs fine(*) against patched mysql per comment #9 and comment #10 . (*) In my own limited testing From my perspective, two non-negotiable requirements for this would be (a) we ship a .so library, not .a. (b) it goes into a separate subpackage, perhaps mysql-embedded. Is this workable for amarok? Should be fabulous, many thanks. > (a) we ship a .so library, not .a.
> (b) it goes into a separate subpackage, perhaps mysql-embedded.
> Is this workable for amarok?
Yes, this is definitely workable.
The only problem I see is that (a) has to be implemented somehow. Upstream MySQL builds all the embedded libs as static. :-( Do you want us to come up with a patch for that?
For (b), do you mean there will also be a separate mysql-embedded-devel? (Just asking - we can just BR the package however it is called.)
I'm fooling with the .so issue right now. I found a thread about how to do it here: http://lists.mysql.com/internals/35949 so assuming that that recipe works, we can go with it for now, and hope that upstream provides a cleaner solution later. I had just come to the conclusion that a mysql-embedded-devel package would be a good idea. It's a place to put the .so symlink, plus the other test files that only a developer would have use for, and it also makes the package dependencies more manageable. AFAICS mysql-embedded shouldn't depend on any of the other mysql packages; but mysql-embedded-devel can have a versioned dependency on mysql-devel, which will prevent people from building with the wrong header files. That sounds good. Well ... that recipe didn't actually work ... mysql-5.0.67-2.fc10, in rawhide, contains a libmysqld.so that might or might not work; I don't have any easy means to test it myself. Anyone want to try it? amarok built/runs fine. So far so good. Looks like we have a winner. Okay, I'm going to mark this CLOSED. Feel free to reopen or file a new bug if something turns out to be wrong with the .so library. |