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.
I'm going to have to develop this if I want to work on tor-browser, which I do want to do.
Best Regards, Jason
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@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev
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@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@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev
tor-dev mailing list tor-dev@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev
So the purpose of tor-browser-build is to two-fold:
1. Providing a system which can reproducibly build tor-browser for all of our platforms, this necessitates ensuring every builder is building using the same toolchain, libs, dependencies, etc (which does necessitate downloading and validating lot of git repos/source archives/etc). 2. easy cross-platform builds (otherwise devs would need to figure out how to get together all of the relevant per-platform toolchains).
You *can* do local Linux dev builds, see this guide:
- https://gitlab.torproject.org/tpo/applications/tor-browser/-/wikis/Hacking
That said, tor-browser-build can definitely be more performant (in terms of both space and time) and patches are definitely welcome. For a space and time win see this recent issue:
- https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/issues/40...
A good intro document for working on tor-browser-build can be found here:
- https://gitlab.torproject.org/tpo/applications/team/-/wikis/Development-Info...
We're also happy to help out on IRC, come find us in #tor-browser-dev on OFTC.
best, -Richard
On 6/14/22 00: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.
I'm going to have to develop this if I want to work on tor-browser, which I do want to do.
Best Regards, Jason _______________________________________________ tor-dev mailing list tor-dev@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev