[tor-dev] tor-browser-build : any way to get it to use system packages for building?

Jason Vas Dias jason.vas.dias at gmail.com
Wed Jun 15 00:22:41 UTC 2022


Thanks Peir -

  Then there IS a need for some kind of "Native System Build",
  LIKE the Fedora Firefox RPM,  that can build ONLY against
  the SYSTEM LIBRARIES provided by the OS that tor-browser
  IS CONFIGURED to link to, as opposed to those it is configured
  to download the GIT & build ...

  I will take as my guide the Fedora Firefox RPM and build the Tor
  Extensions into the same later version of Firefox as
  my system Firefox is.

  Out of this I want to get:
   Ultimate Goal:
    o a Firefox Extension I can load into Modern Mozilla v101+
      as shipped on Fedora that can access the SYSTEM /usr/bin/tor
      daemon as shipped, and perhaps fire up a GUI to Configure it.

   OR: the current tor-browser that DOES NOT HAVE the busy-waiting problem
       I reported:
       https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/41028
       will do!

  I can see this might turn into a long project.

  I'd just like to be able to:

    o Tell my standard Firefox, with all its Color / User CSS
      customizations, to use Tor / onion DNS + onion Search for A TAB,
      NOT the whole browser.

    o OR, just run standard Tor , I can handle switching browsers,
      but only if they just don't consume 150% CPU when idle !

    o Additionally, it would be great if I could install some sort
      of DNS Block List into Onion DNS, so that a set of DNS names
      in a file like that from :
         https://someonewhocares.org/hosts
      and names like 'analytics.google.com' / 'analytics.foresee.com'
      'google.syndication.com' , ie AdWare sites, can be automatically
      blocked from being requested by the browser to Onion DNS
      (the names are resolved to 0.0.0.0).
      I have a local BIND DNS server set up to serve a Response Policy
      Zone (RPZ)
      converted from the above hosts file to do this for all my normal
      browsers - they display ZERO ads - browsing is about 10 times faster!
      Why is the Onion DNS server resolving all these horrible
      AdWare and Google Tracking sites ?

  I created this project on GitLab:
    https://gitlab.torproject.org/jvd66/sigio
  demonstrating use of SIGIO driven I/O - I have used basically exactly
  the same library under Java, Common Lisp, Bash Shell built-ins -
  and processes which use its methods instead of poll() use MINIMUM cpu
  to get MAXIMUM responsiveness to input than any other method I
  know.

  Basically whatever is doing that 40-microsecond poll() in tor-browser
  needs to be replaced by code that calls setitimer(), enables SIGIO
  for polled FDs, and enters pause(), which will return ONLY when
  a signal (SIGIO+RTMIN, or SIGALRM+RTMIN) has occurred
  (with errno set to EINTR, since it was interrupted).

  Firefox itself with 120 tabs open does not use 1/10th of the CPU
  that tor-browser does with 1 tab open to duckduckgo/onion search.

  This is just unacceptable!

  There has got to be a better way than that to listen to Radio Sputnik!
  ( Like vote in non-brain-dead governments in EU, perhaps , who will
   repeal ludicrous censorship laws ...)

  And there has got to be a better way of building tor-browser than
  downloading (I stopped at @ 4GB) of container / source code data.

  I specifically require the build to use the compilers & link against
  the libraries I tell it to!

  I understand that for a single reproducible build for general distribution
  for ALL Linux systems, you need to build to use the environment
  YOU tell it to, of course - if I get this working, I'll have to
  rent a Cloud Server for a week or so to be able to
  check out the whole GIT on ITs network bandwidth,
  and port my work to build under tor-browser-build .

  If anyone knows of a working Tor Extension for Firefox v101+
  that can use the System Tor, and which does not use tor-browser or
  a browser-wide proxy server, or of a tor-browser WITHOUT
  the busy-waiting problem, please let me know! Thanks.

  I'll go back to building the Firefox RPM and try to get the Tor
  Connectivity & Onion-DNS added for an 'New Incognito Tor Tab'
  Extension for standard Firefox - surely that would be best?

  What are the main obstacles to doing this? I guess I'll find out...
  If they are too insurmountable, at least I'll try to fix
  tor-browser NOT to do any busy-waiting anymore , and
  get it to build with a system firefox-like RPM -
  the current version is really unusable except for very brief intervals
  between 'kill -CONT ${torBrowserPid}' and
  'kill -STOP ${torBrowerPid}' - my laptop goes into meltdown.

Thanks anyway for responding,
All the best,
Jason

On 14/06/2022, Pier Angelo Vendrame <pierov at torproject.org> wrote:
> On 14/06/22 02:47, Jason Vas Dias wrote:
>> Good day -
>>
>>    I recently attempted to check-out and build tor-browser-build -
>>    MUST it download ALL the gits, if system packages
>>    are found to satisfy version dependencies ?
>>
>>    I just don't have enough storage / network bandwidth .
>>    Why am I downloading the llvm source when I already
>>    have llvm and clang 13 (-devel packages also) on my
>>    Fedora 36 system ?
>>
>>    Is there any interest in producing a version of tor-browser-build
>>    to use installed system packages if they meet version requirements
>>    instead of checking out GITs & building for ALL dependencies ?
>>    It could be enabled with a USE_SYSTEM_PKGS=1 make
>>    option or something.
> Hello,
>
> the tor-browser-build repository is used to create reproducible builds
> of the Tor Browser Bundle.
>
> For this reason it runs on a strictly controlled environment (typically,
> Debian containers with tools such as compilers built during the process).
>
>
>>    I'm going to have to develop this if I want to work on tor-browser,
>>    which I do want to do.
>
> When we develop new features on Tor Browser, we compile Firefox with our
> system compilers, and then copy the new binaries on an existing TBB.
>
> The procedure is explained in our hacking page [0] on the wiki. It is a
> bit outdated, but it should still work. Firefox development guides
> should apply as well.
>
> However, this procedure is a hack that should be used for testing
> purposes only and is not supported by us in any way.
>
> Also, if you want to contribute to Tor Browser, the modifications must
> be buildable in tor-browser-build.
>
>
> Best,
>
> Pier Angelo Vendrame
>
>
> [0]
> https://gitlab.torproject.org/tpo/applications/tor-browser/-/wikis/Hacking
>
>
>> Best Regards,
>> Jason
>> _______________________________________________
>> tor-dev mailing list
>> tor-dev at lists.torproject.org
>> https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev
> _______________________________________________
> tor-dev mailing list
> tor-dev at lists.torproject.org
> https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev
>


More information about the tor-dev mailing list