[tor-bugs] #33522 [Core Tor/Tor]: Add iOS support in your CI

Tor Bug Tracker & Wiki blackhole at torproject.org
Tue Apr 7 04:41:06 UTC 2020


#33522: Add iOS support in your CI
-------------------------------------+------------------------------------
 Reporter:  tla                      |          Owner:  (none)
     Type:  enhancement              |         Status:  new
 Priority:  Medium                   |      Milestone:  Tor: 0.4.3.x-final
Component:  Core Tor/Tor             |        Version:
 Severity:  Normal                   |     Resolution:
 Keywords:  042-backport 043-should  |  Actual Points:
Parent ID:                           |         Points:
 Reviewer:                           |        Sponsor:
-------------------------------------+------------------------------------

Comment (by teor):

 Hi, I'm one of the maintainers of Tor's CI.

 There are two very different issues in this ticket, so I'll try to address
 them separately:

 Replying to [ticket:33522 tla]:
 > It has a Travis-CI configuration, which I just updated to work on the
 latest macOS/Xcode image:
 >
 > https://github.com/iCepa/Tor.framework/blob/master/.travis.yml
 >
 >
 > Currently, we have issues in getting past Tor 0.4.0.6 on iOS. When I try
 to use a newer core, I get this error message:
 >
 > > Unknown type name 'dispatch_queue_t'
 >
 > in CFStream of Apple's CoreFoundation framework.
 >
 >
 > But "dispatch_queue_t" is actually a valid symbol from Apple's
 Foundation libraries.
 >
 > So somehow, it gets cancelled out through something which changed in Tor
 recently.

 This looks like a bug in tor's code, or perhaps in the Tor.framework
 embedding scripts.

 We'd be happy to help you diagnose this issue.

 Can you tell us the first release that has this issue? Is it 0.4.1, 0.4.2,
 or 0.4.3 ?
 Have you done a git bisect, to track down the commit that introduced the
 issue?

 Let's open a separate ticket, so we can fix this bug in tor's code.
 Or help you find a workaround when you embed tor.

 > We're really stuck here, so it would be a huge help, if you could add
 Tor.framework to your Continuous Integration so you'd be able to support
 us here and detect problems earlier in the future.
 >
 > For your purposes, there's no need to have Macs and Xcode.
 > The most important files to control the build are these shell scripts:
 >
 > https://github.com/iCepa/Tor.framework/blob/master/Tor/tor.sh
 > https://github.com/iCepa/Tor.framework/blob/master/Tor/libevent.sh
 > https://github.com/iCepa/Tor.framework/blob/master/Tor/openssl.sh
 > https://github.com/iCepa/Tor.framework/blob/master/Tor/xz.sh
 >
 > Tor and the other libraries come in via Git submodules:
 > https://github.com/iCepa/Tor.framework/blob/master/.gitmodules
 >
 > So the dev process on your side would be:
 >
 > Update submodules to your latest state, let it build in Travis. If
 broken, fix above build scripts. Re-run through Travis.
 >
 >
 > Could that work for you?

 This is a CI configuration change request for Tor.

 We already struggle with the speed of Tor's CI.
 We build about 10 jobs per branch, and we support 4-6 branches.

 We've recently added stem and chutney tests to our CI, and it's taken a
 lot of time to diagnose issues.
 When stem or chutney have failures, Tor developers have to check every CI
 failures.
 And volunteers get very confused by the failures.

 So I don't think we can maintain Tor.framework in Tor's CI.

 I have an alternative proposal, based on the way that chutney and sbws do
 CI:

 Tor.framework adds a CI job for each supported Tor maint-* branch.
 You don't have to build every release, just the ones you want to support.

 Here's a list of the releases we support:
 *
 https://trac.torproject.org/projects/tor/wiki/org/teams/NetworkTeam/CoreTorReleases#Current

 Maybe you could skip our long-term support release (0.3.5), and start
 with:
 * maint-0.4.1
 * maint-0.4.2
 * maint-0.4.3
 * master

 Then, when one of our releases fails to build, you can log a bug in our
 bug tracker, and we'll fix it.

 You can add a cron job for your Travis CI jobs, so they run every day (or
 week), even if Tor.framework hasn't had any code changes.

 Here's how that looks for chutney and sbws:
 * https://github.com/torproject/chutney/blob/master/.travis.yml
 * https://github.com/torproject/sbws/blob/master/.travis.yml

 They use tor's pre-compiled nightly binaries. But you'd need to use git
 branches instead.

 What do you think?

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/33522#comment:2>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list