Bei der Entwicklung von OnionShare mitmachen¶
Zusammenarbeit¶
OnionShare hat ein offenes Team auf Keybase, um über das Projekt zu diskutieren, Fragen zu stellen, Ideen und Designs zu teilen und um Pläne für die künftige Entwicklung zu schmieden. (Außerdem ist dies ein einfacher Weg, um Ende zu Ende verschlüsselte Nachrichten, z.B. OnionShare-Adressen, an andere Leute in der OnionShare-Community zu senden.) Um Keybase zu nutzen, lade die Keybase-App <https://keybase.io/download>`_ herunter, erstelle dir einen Account und trete diesem Team bei. In der App, gehe auf „Teams“, klicke auf “Team beitreten“ und gib „onionshare“ ein.
OnionShare hat auch eine Mailinglist für Entwickler und Designer, um sich über das Projekt auszutauschen.
Code beitragen¶
OnionShares Quellcode findet sich in diesem git-Repository: https://github.com/micahflee/onionshare
Wenn du Code zu OnionShare beitragen willst, solltest du dem Keybase-Team beitreten und dort zur Diskussion stellen, was du gerne beitragen möchtest. Du solltest auch einen Blick auf alle offenen Issues auf GitHub werfen, um zu sehen, ob dort etwas für dich dabei ist, das du in Angriff nehmen möchtest.
Wenn du bereit bist, Code beizusteuern, lege einen Pull-Request im GitHub-Repository an und einer der Projektbetreuer wird einen Blick darüber werfen und ggfs. Fragen stellen, Änderungen anfragen, ihn zurückweisen oder ihn in das Projekt einpflegen.
Mit der Entwicklung beginnen¶
OnionShare ist in Python geschrieben. Klone zunächst das git-Repository unter https://github.com/micahflee/onionshare/ und lies in der cli/README.md
-Datei nach, wie du deine Entwicklungsumgebung für die Kommandozeilen-Version aufsetzt; lies in der desktop/README.md
-Datei nach, wie du deine Entwicklungsumgebung für die grafische Version aufsetzt.
Diese Dateien enthalten die notwendigen technischen Instruktionen und Befehle, um die Abhängigkeiten für deine Plattform zu installieren,und um OnionShare aus dem Sourcetree auszuführen.
Debugging-Tipps¶
Verbose-Modus¶
Beim Entwickeln ist es hilfreich, OnionShare über die Kommandozeile auszuführen und dabei die --verbose
- (oder -v
-) Flagge zu setzen. Dadurch werden viele hilfreiche Nachrichten auf der Kommandozeile ausgegeben, zum Bespiel wenn bestimmte Objekte initialisiert wurden oder wenn Ereignisse eintreten (Klicken von Buttons, Speichern oder Auffrischen von Einstellungen o.ä.), sowie andere Debug-Informationen. Zum Beispiel:
$ poetry run onionshare-cli -v ~/Documents/roms/nes/Q-bert\ \(USA\).nes
╭───────────────────────────────────────────╮
│ * ▄▄█████▄▄ * │
│ ▄████▀▀▀████▄ * │
│ ▀▀█▀ ▀██▄ │
│ * ▄█▄ ▀██▄ │
│ ▄█████▄ ███ -+- │
│ ███ ▀█████▀ │
│ ▀██▄ ▀█▀ │
│ * ▀██▄ ▄█▄▄ * │
│ * ▀████▄▄▄████▀ │
│ ▀▀█████▀▀ │
│ -+- * │
│ ▄▀▄ ▄▀▀ █ │
│ █ █ ▀ ▀▄ █ │
│ █ █ █▀▄ █ ▄▀▄ █▀▄ ▀▄ █▀▄ ▄▀▄ █▄▀ ▄█▄ │
│ ▀▄▀ █ █ █ ▀▄▀ █ █ ▄▄▀ █ █ ▀▄█ █ ▀▄▄ │
│ │
│ v2.3.2.dev1 │
│ │
│ https://onionshare.org/ │
╰───────────────────────────────────────────╯
[May 10 2021 18:24:02] Settings.__init__
[May 10 2021 18:24:02] Settings.load
[May 10 2021 18:24:02] Settings.load: Trying to load /home/user/.config/onionshare/onionshare.json
[May 10 2021 18:24:02] Common.get_resource_path: filename=wordlist.txt
[May 10 2021 18:24:02] Common.get_resource_path: filename=wordlist.txt, path=/home/user/code/onionshare/cli/onionshare_cli/resources/wordlist.txt
[May 10 2021 18:24:02] ModeSettings.load: creating /home/user/.config/onionshare/persistent/tattered-handgun-stress.json
[May 10 2021 18:24:02] ModeSettings.set: updating tattered-handgun-stress: general.title = None
[May 10 2021 18:24:02] ModeSettings.set: updating tattered-handgun-stress: general.public = False
[May 10 2021 18:24:02] ModeSettings.set: updating tattered-handgun-stress: general.autostart_timer = 0
[May 10 2021 18:24:02] ModeSettings.set: updating tattered-handgun-stress: general.autostop_timer = 0
[May 10 2021 18:24:02] ModeSettings.set: updating tattered-handgun-stress: general.legacy = False
[May 10 2021 18:24:02] ModeSettings.set: updating tattered-handgun-stress: general.client_auth = False
[May 10 2021 18:24:02] ModeSettings.set: updating tattered-handgun-stress: share.autostop_sharing = True
[May 10 2021 18:24:02] Web.__init__: is_gui=False, mode=share
[May 10 2021 18:24:02] Common.get_resource_path: filename=static
[May 10 2021 18:24:02] Common.get_resource_path: filename=static, path=/home/user/code/onionshare/cli/onionshare_cli/resources/static
[May 10 2021 18:24:02] Common.get_resource_path: filename=templates
[May 10 2021 18:24:02] Common.get_resource_path: filename=templates, path=/home/user/code/onionshare/cli/onionshare_cli/resources/templates
[May 10 2021 18:24:02] Web.generate_static_url_path: new static_url_path is /static_4yxrx2mzi5uzkblklpzd46mwke
[May 10 2021 18:24:02] ShareModeWeb.init
[May 10 2021 18:24:02] Onion.__init__
[May 10 2021 18:24:02] Onion.connect
[May 10 2021 18:24:02] Settings.__init__
[May 10 2021 18:24:02] Settings.load
[May 10 2021 18:24:02] Settings.load: Trying to load /home/user/.config/onionshare/onionshare.json
[May 10 2021 18:24:02] Onion.connect: tor_data_directory_name=/home/user/.config/onionshare/tmp/tmpw6u0nz8l
[May 10 2021 18:24:02] Common.get_resource_path: filename=torrc_template
[May 10 2021 18:24:02] Common.get_resource_path: filename=torrc_template, path=/home/user/code/onionshare/cli/onionshare_cli/resources/torrc_template
Connecting to the Tor network: 100% - Done
[May 10 2021 18:24:10] Onion.connect: Connected to tor 0.4.5.7
[May 10 2021 18:24:10] Settings.load
[May 10 2021 18:24:10] Settings.load: Trying to load /home/user/.config/onionshare/onionshare.json
[May 10 2021 18:24:10] Web.generate_password: saved_password=None
[May 10 2021 18:24:10] Common.get_resource_path: filename=wordlist.txt
[May 10 2021 18:24:10] Common.get_resource_path: filename=wordlist.txt, path=/home/user/code/onionshare/cli/onionshare_cli/resources/wordlist.txt
[May 10 2021 18:24:10] Web.generate_password: built random password: "tipping-colonize"
[May 10 2021 18:24:10] OnionShare.__init__
[May 10 2021 18:24:10] OnionShare.start_onion_service
[May 10 2021 18:24:10] Onion.start_onion_service: port=17645
[May 10 2021 18:24:10] Onion.start_onion_service: key_type=NEW, key_content=ED25519-V3
[May 10 2021 18:24:14] ModeSettings.set: updating tattered-handgun-stress: general.service_id = omxjamkys6diqxov7lxru2upromdprxjuq3czdhen6hrshzd4sll2iyd
[May 10 2021 18:24:14] ModeSettings.set: updating tattered-handgun-stress: onion.private_key = 6PhomJCjlWicmOyAAe0wnQoEM3vcyHBivrRGDy0hzm900fW5ITDJ6iv2+tluLoueYj81MhmnYeTOHDm8UGOfhg==
Compressing files.
[May 10 2021 18:24:14] ShareModeWeb.init
[May 10 2021 18:24:14] ShareModeWeb.set_file_info_custom
[May 10 2021 18:24:14] ShareModeWeb.build_zipfile_list
[May 10 2021 18:24:14] Web.start: port=17645
* Running on http://127.0.0.1:17645/ (Press CTRL+C to quit)
Give this address to the recipient:
http://onionshare:tipping-colonize@omxjamkys6diqxov7lxru2upromdprxjuq3czdhen6hrshzd4sll2iyd.onion
Press Ctrl+C to stop the server
Du kannst deine eigenen Debug-Nachrichten einbauen, indem du die Common.log
-Methode aus onionshare/common.py
ausführst. Zum Beispiel:
common.log('OnionShareGui', 'start_server', 'I ran here')
Das kann nützlich sein, wenn du die Abfolge von Events beim Benutzen der Anwendung oder den Wert bestimmter Variablen vor oder nach deren Änderung herausfinden möchtest.
Nur lokal¶
Tor ist langsam, und oft ist es ratsam, bei der Entwicklung keine Onion-Dienste zu starten. Dies kannst du mit der --local-only
-Flagge tun. Zum Beispiel:
$ poetry run onionshare-cli --local-only --receive
╭───────────────────────────────────────────╮
│ * ▄▄█████▄▄ * │
│ ▄████▀▀▀████▄ * │
│ ▀▀█▀ ▀██▄ │
│ * ▄█▄ ▀██▄ │
│ ▄█████▄ ███ -+- │
│ ███ ▀█████▀ │
│ ▀██▄ ▀█▀ │
│ * ▀██▄ ▄█▄▄ * │
│ * ▀████▄▄▄████▀ │
│ ▀▀█████▀▀ │
│ -+- * │
│ ▄▀▄ ▄▀▀ █ │
│ █ █ ▀ ▀▄ █ │
│ █ █ █▀▄ █ ▄▀▄ █▀▄ ▀▄ █▀▄ ▄▀▄ █▄▀ ▄█▄ │
│ ▀▄▀ █ █ █ ▀▄▀ █ █ ▄▄▀ █ █ ▀▄█ █ ▀▄▄ │
│ │
│ v2.3.2.dev1 │
│ │
│ https://onionshare.org/ │
╰───────────────────────────────────────────╯
* Running on http://127.0.0.1:17617/ (Press CTRL+C to quit)
Files sent to you appear in this folder: /home/user/OnionShare
Warning: Receive mode lets people upload files to your computer. Some files can potentially take control of your computer if you open them. Only open things from people you trust, or if you know what you are doing.
Give this address to the sender:
http://onionshare:ended-blah@127.0.0.1:17617
Press Ctrl+C to stop the server
In diesem Fall lädst du die URL http://onionshare:eject-snack@127.0.0.1:17614
in einem normalen Webbrowser wie Firefox anstelle des Tor Browsers.
Übersetzungen beitragen¶
Hilf mit, OnionShare für die Leute einfacher zu benutzen, vertrauter und einladender zu machen, indem du es auf Hosted Weblate übersetzt. Halte „OnionShare“ immer in lateinischen Lettern und nutze „OnionShare (localname)“ bei Bedarf.
Um bei der Übersetzung mitzuhelfen, erstelle dir ein Benutzerkonto für Hosted Weblate
, und schon kann es losgehen.
Vorschläge für die ursprüngliche englischsprache Zeichenketten („strings“)¶
Manchmal sind die originalen englischsprachigen Zeichenketten falschen oder stimmen nicht zwischen Anwendung und dem Handbuch überein.
Verbesserungen an den originalen Zeichenketten können vorgeschlagen werden, indem du @kingu in deinem Weblate-Kommentar hinzufügst, oder indem du ein Issue oder einen Pull Request auf GitHub anlegst. Letzterer Weg stellt sicher, dass alle Hauptentwickler den Vorschlag sehen und die Zeichenkette gegebenenfalls im Rahmen des üblichen Code-Review-Vorgangs abändern können.
Übersetzungsstatus¶
Hier siehst du den aktuellen Stand der Übersetzungen. Wenn du eine Übersetzung in einer Sprache beginnen möchtest, die hier nicht gelistet ist, schreibe uns bitte auf der Mailinglist: onionshare-dev@lists.riseup.net