-
Notifications
You must be signed in to change notification settings - Fork 47
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
Implement the iOS wrapper generator #3
Comments
Would love to help out with this, since this would be awesome for a project I'm thinking about. Clear win-win. Do you have any pointers for me on where to start? |
Hey! Honestly, it's probably going to be a rough ride :D Took me a lot of pain to figure out the Linux counterparts and set up a reliable builder and auto-upgrader for it. That said, I'd appreciate any help. Perhaps macos is the best starting point, since iOS is just a flavor of it. There are 3 things that need to be done to get a platform supported:
The problematic part is the auto-updater. OpenSSL and Tor get new commits added on top almost every day. It doesn't scale to manually pull those and mess with the builds, so we need a fully automated process. My current solution works for Linux and Android, not sure what the best approach is to support others. The issue with a pure Linux approach is that even if I generate the wrappers, I can't test-compile in the same Travis job. An alternative crazy approach is to surf git branches and Travis jobs until you get back to master:
Yes, it's quite a crazy workflow, but this is the only design I could dream up until now where I can more or less guarantee that I wrap the correct files and also test it so I don't break a previously working code. If you're still up for it, you could try to start with playing with the wrapper in the |
Hey @karalabe! I use go-libtor for my project onionbox and would love to help out wherever possible. I did assist cretz with getting tor-static to automatically build binaries here for all platforms (except windows 👎), so I thought I'd take a stab at this as well. I'll reach out if I have any issues or questions. |
Hey, I now started to actively build upon go-libtor for a project and this has become somewhat of an important issue for us. Would happily dedicated some time to get this working aswell. @ciehanski Any progress on this? Wanna share some insights since you solved this for tor-static already? |
Hopefully you have seen https://github.com/iCepa/Tor.framework which is used by Onion Browser for iOS, ChatSecure iOS and other apps. Would love for this framework to work on iOS as well. |
It may be worth moving the auto-update process to CircleCI (it's free for OSS), as they have support for Linux, Mac, and Windows. That way you could run all three update build tests in parallel and only have the pipeline commit the update if all three pass, which would solve the problem of having to do the update on Linux. |
Travis also supports macos and they are rolling out Windows so that should be workable too. The most obvious blocker is that I don't have a mac to test with :D |
- LND can use Tor. - WebDav remote server backup/restore can use Tor. - Add breez/tor package. - It's not possible to run concurrent instances of Tor (ref. ipsn/go-libtor#22). - Use one global instance of Tor. - iOS isn't officially supported in go-libtor dependency. - An iOS wrapper is needed in upstream go-libtor (ref. ipsn/go-libtor#3).
- LND can use Tor. - WebDav remote server backup/restore can use Tor. - Add breez/tor package. - It's not possible to run concurrent instances of Tor (ref. ipsn/go-libtor#22). - Use one global instance of Tor. - iOS isn't officially supported in go-libtor dependency. - An iOS wrapper is needed in upstream go-libtor (ref. ipsn/go-libtor#3).
- LND can use Tor. - WebDav remote server backup/restore can use Tor. - Add breez/tor package. - It's not possible to run concurrent instances of Tor (ref. ipsn/go-libtor#22). - Use one global instance of Tor. - iOS isn't officially supported in go-libtor dependency. - An iOS wrapper is needed in upstream go-libtor (ref. ipsn/go-libtor#3).
- LND can use Tor. - WebDav remote server backup/restore can use Tor. - Add breez/tor package. - It's not possible to run concurrent instances of Tor (ref. ipsn/go-libtor#22). - Use one global instance of Tor. - iOS isn't officially supported in go-libtor dependency. - An iOS wrapper is needed in upstream go-libtor (ref. ipsn/go-libtor#3).
- LND can use Tor. - WebDav remote server backup/restore can use Tor. - Add breez/tor package. - It's not possible to run concurrent instances of Tor (ref. ipsn/go-libtor#22). - Use one global instance of Tor. - iOS isn't officially supported in go-libtor dependency. - An iOS wrapper is needed in upstream go-libtor (ref. ipsn/go-libtor#3).
feat: build ios static libs on Github Actions
No description provided.
The text was updated successfully, but these errors were encountered: