Opened 3 years ago

Last modified 14 months ago

#18495 new defect

Mac OS: reorganize FTE packaging

Reported by: mcs Owned by: kpdyer
Priority: Medium Milestone:
Component: Obfuscation/FTE Version:
Severity: Normal Keywords: tbb-rbm
Cc: brade, kpdyer, gk Actual Points:
Parent ID: Points:
Reviewer: Sponsor: None

Description

To finish #13252 and #6540, we need to change the way the FTE client is packaged in Tor Browser. Specifically, to meet Apple's Gatekeeper code signing requirements we should put all of the files that do not contain compiled object code (e.g., the Python scripts) under:

TorBrowser.app/Contents/Resources/TorBrowser/Tor/PluggableTransports/fte/

and we should put all of the binaries (compiled executables and shared libraries) under:

TorBrowser.app/Contents/MacOS/Tor/PluggableTransports/fte/

Kevin -- it would be very helpful to have your assistance with this task. Kathy and I have limited Python knowledge and very little FTE knowledge.

Child Tickets

Change History (5)

comment:1 Changed 3 years ago by mcs

In email, Kevin said:

The first solution that comes to mind is to create two parallel directories, one with scripts and one with compiled code, then ensure that both directories are in sys.path:
https://docs.python.org/2/library/sys.html#sys.path. Would that work?

and I replied:

It might. We will try it. Assuming it works, another challenge is to automate the process of splitting the script code from the compiled code.

comment:2 Changed 3 years ago by mcs

Sponsor: None

Another small piece of the puzzle: to avoid .pyc files being created under the .app bundle (and breaking our signature), we can set PYTHONDONTWRITEBYTECODE=1 in the tor script that is used to exec tor.real.

comment:3 Changed 3 years ago by gk

Parent ID: #13252

While nice to have it should not block getting OS X signing going.

comment:4 Changed 17 months ago by dcf

Keywords: tbb-gitian added

comment:5 Changed 14 months ago by gk

Keywords: tbb-rbm added; tbb-gitian removed

Moving over to rbm

Note: See TracTickets for help on using tickets.