[tor-bugs] #28942 [Circumvention/Snowflake]: Evaluate pion WebRTC

Tor Bug Tracker & Wiki blackhole at torproject.org
Thu Aug 29 10:45:34 UTC 2019


#28942: Evaluate pion WebRTC
--------------------------------------------+------------------------------
 Reporter:  backkem                         |          Owner:  cohosh
     Type:  enhancement                     |         Status:  accepted
 Priority:  Medium                          |      Milestone:
Component:  Circumvention/Snowflake         |        Version:
 Severity:  Normal                          |     Resolution:
 Keywords:  anti-censorship-roadmap-august  |  Actual Points:
Parent ID:                                  |         Points:  5
 Reviewer:                                  |        Sponsor:
                                            |  Sponsor28-must
--------------------------------------------+------------------------------

Comment (by boklm):

 Replying to [comment:40 dcf]:
 > Replying to [comment:39 cohosh]:
 > > Just to give an update on this, building Tor Browser with this pion
 library is a bit painful right now. Our reproducible build system (rbm)
 doesn't work nicely with modules and, after a conversation with boklm,
 it's preferrable to create a separate project for each go lib dependency.
 This means a total of 13 pion libraries plus an additional 14+
 dependencies that these libraries have. There might be more, I stopped
 going down the rabbit hole after a while. I don't think creating 30-ish
 projects just to build this is a viable or sustainable option.
 >
 > I'm going to try brute-force packaging all the dependency projects. The
 `go mod graph` command outputs a tree of dependencies. I'm going to use
 that to try and automate the creation of most of the dependency projects,
 probably followed by some manual editing.

 One idea that I didn't try yet but that could maybe help with this would
 be to create a generic `go-module` project, in order to be able to list
 all go dependencies in `input_files` without having to create a separate
 project for each. For example a project requiring goxnet and goxsys would
 include this in its `input_files`:
 {{{
 input_files:
  - project: go-module
    git_url: https://go.googlesource.com/net
    git_hash: 7dbad50ab5b31073856416cdcfeb2796d682f844
    var:
      go_module_name: goxnet
      go_lib: golang.org/x/net
      go_lib_install:
        - golang.org/x/net/proxy
  - project: go-module
    git_url: https://github.com/golang/sys
    git_hash: 11f53e03133963fb11ae0588e08b5e0b85be8be5
    var:
      go_module_name: goxsys
      go_lib: golang.org/x/sys
      go_lib_install:
        - golang.org/x/sys/cpu
 }}}

 In order to avoid cloning all modules in the same `git_clones` directory,
 `projects/go-module/config` would need to define `git_clone_dir` to
 something like:
 {{{
 git_clone_dir: 'git_clones/go-module/[% c("var/go_module_name") %]'
 }}}

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


More information about the tor-bugs mailing list