-
Notifications
You must be signed in to change notification settings - Fork 189
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use rake-compiler-dev-box #135
Conversation
* Update to use iconv version v1.14. * Set cross platform to 'x86-mingw32' and 'x64-mingw32'. Not sure what 'x86-mswin32-60' is? * Removed my old notes.
This is my current DIFF for rake-compiler-dev-box when compiling. This removes 1.8.7. |
@luislavena and/or @fbehrens Here is my first attempt log with rake-compiler-dev-box. Maybe, I need to do some things with the virtual machines config.yml, some resources I was looking at below, but I need a small bit of guidance. |
Hello @metaskills I don't think there are things you need to change on the VM except remove I noticed that the freetds dependency wasn't built prior the compilation, which might indicate a Rake task dependency issue. Both rugged and sqlite3 examples might look convoluted (granted, they are) since they cover all the platforms required for the installation. If you look closely to sqlite3, you will notice that we no longer set a https://github.com/sparklemotion/sqlite3-ruby/blob/master/tasks/vendor_sqlite3.rake#L71-L73
https://github.com/sparklemotion/sqlite3-ruby/blob/master/tasks/vendor_sqlite3.rake#L58-L68 By reading This is necessary to be able to compile for I've discussed this in length starting here and also explained in my commit here You will notice that then the compilation of the recipe is hook up to the Which triggers the compilation of all the sqlite3 recipes prior cross compiling the extension. While far from ideal, it works 👅 Your recipe to compile both Let me know if that helps a bit (most likely doesn't 😄) |
I read an obey :) Truth be told, this stuff really just glosses my eyes with confusion. However, I will give it a shot. Remember, you too have push access to this repo/branch. So if you want to help just shout and I will watch. Otherwise, I'll give it a go. |
I'll send my commits later today. Sorry for top posting. Sent from mobile.
|
Change the way the dependencies are built. Instead of using a global recipe collection, define two methods to build both freetds and libiconv, which will later be used to hook up the Ruby C extension compilation. This might not work yet on all the scenarios.
Hello @metaskills I just pushed the start of the modifications I'm planning to do to change how FreeTDS and libiconv are built and then how these are linked against the extension. This of course breaks the extension compilation, but I'm focusing now in the dependencies. Something I noticed in my environment (GCC 4.7.3) is that libsybdb fails to be generated:
Which results later on failure to link
I noticed this is caused by the usage of Will test against a Linux VM to confirm and will continue later tonight. Can you test if the native compilation of Thank you. |
Not it failed, details here. https://gist.github.com/metaskills/6401061 |
Interesting that Problem I have is that playing with Couldn't look on this during the weekend, will try it later today. |
@luislavena Any update? I'm not great at this stuff either, but happy to try to lend a hand. |
@matthew342 you can try checking out this branch and also looking at rake-compiler-dev-box, getting vagrant running and help out why FreeTDS is not linking with libiconv. @metaskills I can't contribute right now, been for the past few weeks in the middle of a huge migration for a project and the upcoming two weeks don't look open neither. What we need to investigate is the issue on FreeTDS not liking the libiconv also compiled for it. I think perhaps test with the native script might shed some light? |
Is there any hope for this being resolved? I'm still stuck on Ruby 1.9.3 for my work environment (Windows XP) because of this gem dependency, and would love to be able to upgrade to Ruby 2.0/2.1 as soon as possible (Ruby 1.9.3 is going EOL in april 2014 it seems). |
Ruby 1.9.2 will be supported until June 2014. This will give you some time. But I'll hope too that this issue is going to be resolved for our windows users. This way we could migrate our whole software to Ruby 2.1. |
Any update on this? |
The issue is a conflict between an include directory that rake-compiler is setting when executing extconf.rb. For some reason include the current folder ( I manually edited a local version of rake-compiler to get the cross-compile to happen. I did have to make a number of tweaks to the Rakefile to ensure that libiconv and freetds were seen as depedencies of the I'm going to work through trying to find a clean way to apply patches and so forth such that there should be a simple bash script or rake task to run and have the cross-compile happen. I must say, while I have a great amount of respect for all of the work that went into making rake-compiler, mini_portile, rake-compiler-dev-box and all of the rake tasks in tiny_tds, the current compile stack is extremely indirect and very hard to debug. I would love to try and propose a simpler solution at some point. That said, I know that the current choices were made to solve real problems, so I'd want to be confident that I was helping the situation, not just rewriting it into a different kind of complexity. |
Turns out I was completely wrong. The include issue I saw was related to not properly setting the Anyway, the result is good news because I figured out all of the appropriate fixes and added some rake tasks to make the cross-compilation simple. See #161 for results. |
This has been superseded by #161 |
Closing issue #110 and move to rake-compiler-dev-box.