> Will this be also at some stage a Guix package or everybody has to > install it as a script? I understand Denis' intention is to ultimately make *the script* into a Guix package. But it is possible to have the script look like an application and appear in user's applications menu. So in the end launching the Tor Browser through it wouldn't be noticeably different from running a normal browser. > ------------------------------------------------------------------- > I did only 2 scripts in my life. > So I need help to do this one. > > I did: > > 1. made a: > "tor-browser.sh" > through: > "touch tor-browser.sh" > > 2. I opened it with: > "nano tor-browser.sh" > > 3. I made the first line: > "#!/bin/bash" > > 4. to make it executable: > "chmod +x tor-browser.sh > > > 5. I put it into: > ~/.local/share/torbrowser/tbb/x86_64/tor-browser_en-US/Browser/ > (this is what I understood) If you want to use the script Denis attached in his email, you don't need to add the `#/bin/bash` shebang line - there's already a `#/bin/sh` line in what Denis made. Also, you don't need to put this script in the Tor Browser's directory. Perhaps a more suitable place would be `~/.local/bin` (a matter of convention). > 6. > bash can't find it, after making it: > where is my mistake? Shells like Bash use a special environment variable called `PATH` to determine what directories to search for the scripts/binaries user is trying to run. If the script's containing directory (in this case `~/.local/share/torbrowser/tbb/x86_64/tor-browser_en-US/Browser/`) is not listed in that variable, Bash is not going to look there when it searches for your script. You can check current contents of the `PATH` variable by entering echo "$PATH" You can add the Tor Browser directory to `PATH` for the duration of your current shell session by entering something like export PATH="$HOME"/.local/share/torbrowser/tbb/x86_64/tor-browser_en-US/Browser/:"$PATH" If you instead choose to place the script inside `~/.local/bin`, that directory is (probably) going to be included in the `PATH` by default (by the means of your default, auto-created shell initialization scripts). > 7. after doing > > guix shell \ > --share=/srv/data/Downloads/ \ > --expose=/run/user/$(id -u)/ \ > --expose=/tmp/.X11-unix \ > --expose=/tmp/.X1-lock \ > --container \ > --emulate-fhs \ > --network \ > bash coreutils dbus-glib file grep gcc:lib gtk+@3 libxt sed -- \ > bash -l -c "export DISPLAY=${DISPLAY}; ./start-tor-browser" > > it downloaded 94 MB. > ------------------------------------------------------------------------ > [...] > > guix shell: mistake: statfs: /srv/data/Downloads/: file or directory not > found. > ---------------------------------------------------------------------- > Where are my mistakes? Denis explained this issue pretty thoroughly in the comment in his script. Let me quote that > # I have my Download folder somewhere else. Right now it's at > # /srv/data/Downloads on another partition. And I want tor-browser to > # use that folder for storing Downloads. > # For that to work we need to give the tor-browser write access to > # /srv/data/Downloads/. Other methods were tried but didn't work: > # - mounting /srv/data/Downloads/ to Downloads resulted in the > # tor-browser failing to start. > # - Using --exporse=/srv/data/Downloads/=${HOME}/.../Browser/Downloads > # did not work either because Download was unaccessible. Replacing > # --expose by share in the command above didn't change anything. > # So I ended up using --share=/srv/data/Downloads/. That requires the > # user to do the symlink manually though. This means the `--share=/srv/data/Downloads/` line in Denis' script is only appropriate if you want to store the downloads under `/srv/data/Downloads` as he does. Otherwise it is not needed - the Tor Browser directory (together with its `Downloads` subdir) will be shared to the container automatically because it is seen by Guix as the current directory (because Denis' script cd's there first). Alternatively, you could tell Guix not to share current directory and to just share `Downloads/`. You'd use the following extra lines --no-cwd \ --share="$HOME"/.local/share/torbrowser/tbb/i686/tor-browser_en-US/Browser/ \ Although this is not related, I believe the `export DISPLAY=${DISPLAY};` trick in the script can be replaced with the `--preserve` option of `guix shell`. At this very moment I realized I can also improve some code of mine this way :o > Kind regards > > Gottfried Best, Wojtek -- (sig_start) website: https://koszko.org/koszko.html PGP: https://koszko.org/key.gpg fingerprint: E972 7060 E3C5 637C 8A4F 4B42 4BC5 221C 5A79 FD1A Meet Kraków saints! #50: blessed Wincenty Kadłubek Poznaj świętych krakowskich! #50: błogosławiony Wincenty Kadłubek https://pl.wikipedia.org/wiki/Wincenty_Kadłubek -- (sig_end) On Mon, 7 Nov 2022 19:24:14 +0000 Gottfried wrote: > Hi Denis, > > thanks for your work. > > Will this be also at some stage a Guix package or everybody has to > install it as a script? > ------------------------------------------------------------------- > I did only 2 scripts in my life. > So I need help to do this one. > > I did: > > 1. made a: > "tor-browser.sh" > through: > "touch tor-browser.sh" > > 2. I opened it with: > "nano tor-browser.sh" > > 3. I made the first line: > "#!/bin/bash" > > 4. to make it executable: > "chmod +x tor-browser.sh > > > 5. I put it into: > ~/.local/share/torbrowser/tbb/x86_64/tor-browser_en-US/Browser/ > (this is what I understood) > > 6. > bash can't find it, after making it: > where is my mistake? > > 7. after doing > > guix shell \ > --share=/srv/data/Downloads/ \ > --expose=/run/user/$(id -u)/ \ > --expose=/tmp/.X11-unix \ > --expose=/tmp/.X1-lock \ > --container \ > --emulate-fhs \ > --network \ > bash coreutils dbus-glib file grep gcc:lib gtk+@3 libxt sed -- \ > bash -l -c "export DISPLAY=${DISPLAY}; ./start-tor-browser" > > it downloaded 94 MB. > ------------------------------------------------------------------------ > gfp@Tuxedo ~$ guix shell \ > --share=/srv/data/Downloads/ \ > --expose=/run/user/$(id -u)/ \ > --expose=/tmp/.X11-unix \ > --expose=/tmp/.X1-lock \ > --container \ > --emulate-fhs \ > --network \ > bash coreutils dbus-glib file grep gcc:lib gtk+@3 libxt sed -- \ > bash -l -c "export DISPLAY=${DISPLAY}; ./start-tor-browser" > substitute: Liste der Substitute von „https://ci.guix.gnu.org“ wird > aktualisiert … 100.0% > substitute: Liste der Substitute von „https://bordeaux.guix.gnu.org“ > wird aktualisiert … substitute: Liste der Substitute von > „https://bordeaux.guix.gnu.org“ wird aktualisiert … substitute: Liste > der Substitute von „https://bordeaux.guix.gnu.org“ wird aktualisiert … > substitute: Liste der Substitute von „https://bordeaux.guix.gnu.org“ > wird aktualisiert … substitute: Liste der Substitute von > „https://bordeaux.guix.gnu.org“ wird aktualisiert … substitute: Liste > der Substitute von „https://bordeaux.guix.gnu.org“ wird aktualisiert … > substitute: Liste der Substitute von „https://bordeaux.guix.gnu.org“ > wird aktualisiert … substitute: Liste der Substitute von > „https://bordeaux.guix.gnu.org“ wird aktualisiert … substitute: Liste > der Substitute von „https://bordeaux.guix.gnu.org“ wird aktualisiert … > substitute: Liste der Substitute von „https://bordeaux.guix.gnu.org“ > wird aktualisiert … substitute: Liste der Substitute von > „https://bordeaux.guix.gnu.org“ wird aktualisiert … substitute: Liste > der Substitute von „https://bordeaux.guix.gnu.org“ wird aktualisiert … > substitute: Liste der Substitute von „https://bordeaux.guix.gnu.org“ > wird aktualisiert … substitute: Liste der Substitute von > „https://bordeaux.guix.gnu.org“ wird aktualisiert … substitute: Liste > der Substitute von „https://bordeaux.guix.gnu.org“ wird aktualisiert … > substitute: Liste der Substitute von „https://bordeaux.guix.gnu.org“ > wird aktualisiert … substitute: Liste der Substitute von > „https://bordeaux.guix.gnu.org“ wird aktualisiert … 100.0% > 85,6 MB werden heruntergeladen > gtk%2B-3.24.30-doc 3.0MiB 809KiB/s 00:04 > [##################] 100.0% > glibc-for-fhs-2.33-debug 19.8MiB 1.2MiB/s 00:16 > [##################] 100.0% > librsvg-2.50.7 2.6MiB 1.0MiB/s 00:03 > [##################] 100.0% > librsvg-2.50.7-doc 47KiB 564KiB/s 00:00 > [##################] 100.0% > librsvg-2.50.7-debug 15.9MiB 1.5MiB/s 00:10 > [##################] 100.0% > libxt-1.2.1-doc 320KiB 655KiB/s 00:00 > [##################] 100.0% > mozjs-91.13.0 14.5MiB 1008KiB/s 00:15 > [##################] 100.0% > polkit-121 185KiB 771KiB/s 00:00 > [##################] 100.0% > colord-minimal-1.4.5 712KiB 708KiB/s 00:01 > [##################] 100.0% > gtk%2B-3.24.30 7.8MiB 885KiB/s 00:09 > [##################] 100.0% > gtk%2B-3.24.30-bin 783KiB 956KiB/s 00:01 > [##################] 100.0% > gtk%2B-3.24.30-debug 11.3MiB 1.5MiB/s 00:08 > [##################] 100.0% > substitute: Liste der Substitute von „https://ci.guix.gnu.org“ wird > aktualisiert … 100.0% > substitute: Liste der Substitute von „https://bordeaux.guix.gnu.org“ > wird aktualisiert … substitute: Liste der Substitute von > „https://bordeaux.guix.gnu.org“ wird aktualisiert … 100.0% > Folgende Ableitung wird erstellt: > /gnu/store/vg7dkn3j5rmf9x7a4fg7an2ps90phv4i-profile.drv > > 8,3 MB werden heruntergeladen > bash-5.1.8-doc 301KiB 915KiB/s 00:00 > [##################] 100.0% > bash-5.1.8-include 70KiB 459KiB/s 00:00 > [##################] 100.0% > file-5.41 349KiB 645KiB/s 00:01 > [##################] 100.0% > gcc-12.2.0-lib 5.6MiB 961KiB/s 00:06 > [##################] 100.0% > linux-libre-headers-5.10.35 1.1MiB 728KiB/s 00:02 > [##################] 100.0% > 7 Veredelungen für cups-filters-1.28.9 werden angewandt … > 4 Veredelungen für harfbuzz-2.8.2 werden angewandt … > 3 Veredelungen für cups-2.3.3op2 werden angewandt … > 8 Veredelungen für librsvg-2.50.7 werden angewandt … > 8 Veredelungen für librsvg-2.50.7 werden angewandt … > 2 Veredelungen für libxt-1.2.1 werden angewandt … > 4 Veredelungen für polkit-121 werden angewandt … > 2 Veredelungen für python-3.9.9 werden angewandt … > 8 Veredelungen für colord-minimal-1.4.5 werden angewandt … > 2 Veredelungen für glib-2.70.2 werden angewandt … > 19 Veredelungen für gtk+-3.24.30 werden angewandt … > 3 Veredelungen für mesa-21.3.8 werden angewandt … > Zertifikatsbündel der Zertifikatsautoritäten wird erstellt … > Liste der Emacs-Unterverzeichnisse wird erzeugt … > Schriftartenverzeichnis wird erstellt … > Zwischenspeicher für GdkPixbuf-Lader wird erzeugt … > Zwischenspeicher für GLib-Schemata wird erzeugt … > Zwischenspeicher für GTK-Symbolthemen wird erzeugt … > Dateien im Zwischenspeicher für GTK-Eingabemethoden werden erstellt … > Verzeichnis von Info-Handbüchern wird erstellt … > Zwischenspeicher für XDG-Desktop-Dateien wird erzeugt … > XDG-Mime-Datenbank wird erstellt … > Profil mit 10 Paketen wird erstellt … > guix shell: Fehler: statfs: /srv/data/Downloads/: Datei oder Verzeichnis > nicht gefunden > > guix shell: mistake: statfs: /srv/data/Downloads/: file or directory not > found. > ---------------------------------------------------------------------- > Where are my mistakes? > thanks > > Kind regards > > Gottfried > > > > Am 05.11.22 um 01:29 schrieb Denis 'GNUtoo' Carikli: > > Hi again, > > > > I had some data loss so I wasn't able to reply to this thread before. > > > > I managed to make the tor-browser work in Guix proper, and I've > > attached the script I used for that. It's hardcoded for i686 though so > > it needs to be modified for x86_64. > > > > Even if that works, there is a problematic issue: the tor-browser has a > > potential freedom issue: on one hand it very strongly advises people > > not to install any addons, on the other hand in "tools->Addons and > > themes->Plugins", there is the following message: > >> Get extensions and themes on addons.mozilla.org > > > > And the issue is that that repository also contains nonfree addons. > > > > If that address can get removed or changed, we could have something > > where we could be sure that it is FSDG compliant, so we could probably > > ship scripts like guix-tor-browser-installer for instance. > > > > I've tried to find where that string is set in the binaries in the hope > > of being able to make a dead simple sed script that would fix the > > potential FSDG issue at least at installation time, but it didn't > > find much: > >> $ tar xf tor-browser-linux64-11.5.4_en-US.tar.xz > >> $ grep addons.mozilla.org -r tor-browser_en-US > >> tor-browser_en-US/Browser/TorBrowser/Docs/ChangeLog.txt: * Bug > >> 10464: Remove addons.mozilla.org from NoScript whitelist grep: > >> tor-browser_en-US/Browser/libxul.so: binary file matches > > > >> $ strings tor-browser_en-US/Browser/libxul.so | \ > >> grep addons.mozilla.org > >> addons.mozilla.org > >> $http://addons.mozilla.org/ca/crl.pem0 > >> signingca1.addons.mozilla.org1!0 > >> $http://addons.mozilla.org/ca/crl.pem0N > > > > The issue is that this domain is also used for addons updates, so we > > can't simply remove it blindly. We need to only remove that string in > > "tools->Addons and themes->Plugins". > > > > The advantage of patching binaries is that we don't need to rebuild it, > > so we really have the tiniest amount of change possible to make it FSDG > > compliant (and we can hope that it doesn't change the tor-browser > > fingerprint). > > > > As far as I understand it should also also be OK to use binaries like > > that as long as we're also able to rebuild it in an FSDG distribution > > somehow. > > > > Though here the path forward is probably to dig into upstream bug > > reports and see what upstream thinks about making the tor-browser FSDG > > compliant and/or removing the information of where to find addons. > > > > Denis. > > >