Opened 5 years ago

Closed 2 months ago

#12381 closed defect (wontfix)

Pluggable Transports + proxy is not working on Windows with Tor Browser

Reported by: gk Owned by:
Priority: High Milestone:
Component: Archived/Obfsproxy Version:
Severity: Normal Keywords: tbb-helpdesk-frequent
Cc: asn, yawning, kpdyer, brade, mcs Actual Points:
Parent ID: Points:
Reviewer: Sponsor:

Description

While PTs + proxy are working fine on Linux and Mac OS X they are broken on Windows:

12.06.2014 14:22:10.893 [WARN] Managed proxy failed to configure the pluggable transport's outgoing proxy. (We don't have txsocksx. Can't do proxy. Please install txsocksx.) 
12.06.2014 14:22:10.894 [WARN] Managed proxy at 'Tor\PluggableTransports\obfsproxy' failed the configuration protocol and will be destroyed. 

Child Tickets

Change History (49)

comment:1 Changed 5 years ago by yawning

Owner: changed from erinn to asn
Status: newassigned

This isn't a packaging issue, it's a obfsproxy build one. Apparently I forgot to add txsocksx in the setup_py2exe.py's includes list. I'm not sure if py2exe is smart enough to pick up parsely if only txsocksx is added.

fteproxy's build process also needs similar changes, but I'm not sure where the best place to put them are.

Something to chalk up to "none of the obfsproxy developers do development on Windows".

Last edited 5 years ago by yawning (previous) (diff)

comment:2 in reply to:  1 Changed 5 years ago by asn

Replying to yawning:

This isn't a packaging issue, it's a obfsproxy build one. Apparently I forgot to add txsocksx in the setup_py2exe.py's includes list. I'm not sure if py2exe is smart enough to pick up parsely if only txsocksx is added.

Hm, that should be easy to fix. However, I'm also not sure whether py2exe will recursively determine the dependencies of txsocksx, and I can't find the answer in the py2exe docs:
http://www.py2exe.org/index.cgi/ListOfOptions

I also don't know whether I can specify a lowest module version, as we are doing with pyptlib in setup.py: pyptlib >= 0.0.6.

comment:3 Changed 5 years ago by mikeperry

Keywords: TorBrowserTeam201406 added

comment:4 Changed 5 years ago by asn

Cc: kpdyer added
Status: assignedneeds_review

OK. For obfsproxy, I made a branch that adds parsley and txsocksx to the py2exe dependencies.
Let's see if it works! You can find it in bug12381 at https://git.torproject.org/pluggable-transports/obfsproxy.git.

For fteproxy, I sent an email to Kevin. If he does not respond, I will look into it.

comment:5 Changed 5 years ago by gk

Status: needs_reviewneeds_revision

Seems this idea breaks things:

    + cd obfsproxy
    + patch -tp1
    patching file setup_py2exe.py
    + find -type f
    + xargs touch '--date=2000-01-01 00:00:00'
    + LD_PRELOAD=
    + wine /home/ubuntu/install/python/python.exe setup_py2exe.py py2exe
    fixme:msvcrt:MSVCRT__wsopen_s : pmode 0x81b6 ignored
    running py2exe^M
    creating Z:\home\ubuntu\build\obfsproxy\py2exe_bundle^M
    creating Z:\home\ubuntu\build\obfsproxy\py2exe_bundle\build^M
    creating Z:\home\ubuntu\build\obfsproxy\py2exe_bundle\build\bdist.win32^M
    creating Z:\home\ubuntu\build\obfsproxy\py2exe_bundle\build\bdist.win32\winexe^M
    creating Z:\home\ubuntu\build\obfsproxy\py2exe_bundle\build\bdist.win32\winexe\bundle-2.7^M
    creating Z:\home\ubuntu\build\obfsproxy\py2exe_bundle\build\bdist.win32\winexe\temp^M
    creating Z:\home\ubuntu\build\obfsproxy\py2exe_bundle\dist^M
    *** searching for required modules ***^M
    Traceback (most recent call last):^M
      File "setup_py2exe.py", line 18, in <module>^M
        "dist_dir": dist_path,^M
      File "Z:\home\ubuntu\install\python\lib\distutils\core.py", line 152, in setup^M
        dist.run_commands()^M
      File "Z:\home\ubuntu\install\python\lib\distutils\dist.py", line 953, in run_commands^M
        self.run_command(cmd)^M
      File "Z:\home\ubuntu\install\python\lib\distutils\dist.py", line 972, in run_command^M
        cmd_obj.run()^M
      File "Z:\home\ubuntu\install\python\lib\site-packages\py2exe\build_exe.py", line 243, in run^M
        self._run()^M
      File "Z:\home\ubuntu\install\python\lib\site-packages\py2exe\build_exe.py", line 296, in _run^M
        self.find_needed_modules(mf, required_files, required_modules)^M
      File "Z:\home\ubuntu\install\python\lib\distutils\dist.py", line 972, in run_command^M
        cmd_obj.run()^M
      File "Z:\home\ubuntu\install\python\lib\site-packages\py2exe\build_exe.py", line 243, in run^M
        self._run()^M
      File "Z:\home\ubuntu\install\python\lib\site-packages\py2exe\build_exe.py", line 296, in _run^M
        self.find_needed_modules(mf, required_files, required_modules)^M
      File "Z:\home\ubuntu\install\python\lib\site-packages\py2exe\build_exe.py", line 1297, in find_needed_modules^M
        mf.import_hook(mod)^M
      File "Z:\home\ubuntu\install\python\lib\site-packages\py2exe\mf.py", line 719, in import_hook^M
        return Base.import_hook(self,name,caller,fromlist,level)^M
      File "Z:\home\ubuntu\install\python\lib\site-packages\py2exe\mf.py", line 136, in import_hook^M
        q, tail = self.find_head_package(parent, name)^M
      File "Z:\home\ubuntu\install\python\lib\site-packages\py2exe\mf.py", line 204, in find_head_package^M
        raise ImportError, "No module named " + qname^M
    ImportError: No module named txsocksx^M 

comment:6 Changed 5 years ago by gk

Keywords: TorBrowserTeam201407 added; TorBrowserTeam201406 removed

comment:7 Changed 5 years ago by gk

Some information that might help to debug this:

ubuntu@ubuntu:~/build/obfsproxy$ wine /home/ubuntu/install/python/python.exe 
Python 2.7.5 (default, May 15 2013, 22:43:36) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print sys.path
['', 'Z:\\home\\ubuntu\\install\\python\\lib\\site-packages\\setuptools-1.4-py2.7.egg', 'Z:\\home\\ubuntu\\install\\python\\lib\\site-packages\\argparse-1.2.1-py2.7.egg', 'Z:\\home\\ubuntu\\install\\python\\lib\\site-packages\\txsocksx-0.0.0-py2.7.egg', 'Z:\\home\\ubuntu\\install\\python\\python27.zip', 'Z:\\home\\ubuntu\\install\\python\\DLLs', 'Z:\\home\\ubuntu\\install\\python\\lib', 'Z:\\home\\ubuntu\\install\\python\\lib\\plat-win', 'Z:\\home\\ubuntu\\install\\python\\lib\\lib-tk', 'Z:\\home\\ubuntu\\install\\python', 'Z:\\home\\ubuntu\\install\\python\\lib\\site-packages']
>>>

Note the "0.0.0". And the dir layout:

ubuntu@ubuntu:~/build/obfsproxy$ ls ../../install/python/Lib/site-packages/
Crypto/                        pycrypto-2.6.1-py2.7.egg-info
Parsley-1.2-py2.7.egg-info     pyptlib/
PyYAML-3.11-py2.7.egg-info     pyptlib-0.0.6-py2.7.egg-info/
README.txt                     setuptools-1.4-py2.7.egg
Twisted-13.2.0-py2.7.egg-info/ setuptools.pth
_memimporter.pyd               terml/
argparse-1.2.1-py2.7.egg       twisted/
easy-install.pth               txsocksx-0.0.0-py2.7.egg
ometa/                         yaml/
parsley.py                     zipextimporter.py
parsley.pyc                    zope/
py2exe/                        zope.interface-4.0.5-py2.7-nspkg.pth
py2exe-0.6.9-py2.7.egg-info    zope.interface-4.0.5-py2.7.egg-info/

comment:8 Changed 5 years ago by asn

Hm, you think the version being 0.0.0 could be the cause of the problem?

Could it be that there is no TXSOCKSX_VER variable in the versions file?

comment:9 Changed 5 years ago by gk

The issue seems to be the zipped txsocksx .egg, see:
https://stackoverflow.com/questions/16693261/py2exe-importerror-no-module-named-sqlalchemy (third comment)

Replacing

  LD_PRELOAD= $INSTPYTHON setup.py install

with

  LD_PRELOAD= $INSTPYTHON setup.py install_lib

seems fine.

A test build that is supposed to fix this problem (I don't have access to a Windows machine for the next days):
https://people.torproject.org/~gk/testbuilds/torbrowser-install-3.6.2_12381_en-US.exe
https://people.torproject.org/~gk/testbuilds/torbrowser-install-3.6.2_12381_en-US.exe.asc

comment:10 Changed 5 years ago by gk

I've merged the tor-browser-bundle bits in the commits 5c307a89c22cfd2d3b38d8215539324213fafcfb, 5400da654020a34edb9edee70a0583a89231c4fe (both master) and 34aedfbae28ed04ad7fe1df0695d246e8e14313a (maint-3.6).

asn, kpdyer: We need rather soonish new tags for obfsproxy and fte adding txsockxs and parsley to the requirements in setup_py2exe.py and setup_tbb.py respectively. Otherwise we would have to do the patching in the descriptor itself for the time being, a thing I'd rather like to avoid...

comment:11 Changed 5 years ago by kpdyer

Noted: https://github.com/kpdyer/fteproxy/issues/152

I'll have an fteproxy release in the next few days.

comment:12 in reply to:  11 ; Changed 5 years ago by gk

Replying to kpdyer:

Noted: https://github.com/kpdyer/fteproxy/issues/152

I'll have an fteproxy release in the next few days.

Cool, thanks! Could you make "next few days" = "by Monday"? A new Tor Browser has to get released Tuesdayish...

comment:13 in reply to:  10 Changed 5 years ago by yawning

Replying to gk:

I've merged the tor-browser-bundle bits in the commits 5c307a89c22cfd2d3b38d8215539324213fafcfb, 5400da654020a34edb9edee70a0583a89231c4fe (both master) and 34aedfbae28ed04ad7fe1df0695d246e8e14313a (maint-3.6).

asn, kpdyer: We need rather soonish new tags for obfsproxy and fte adding txsockxs and parsley to the requirements in setup_py2exe.py and setup_tbb.py respectively. Otherwise we would have to do the patching in the descriptor itself for the time being, a thing I'd rather like to avoid...

Hmm, I think asn might be traveling right now. We tagged a new obfsproxy release a few days ago but it looks like asn didn't merge bug12381 before we tagged. asn? (The latest release is mostly scramblesuit related changes, not sure if TBB ships that PT yet or not.).

comment:14 in reply to:  12 Changed 5 years ago by kpdyer

Replying to gk:

Replying to kpdyer:

Noted: https://github.com/kpdyer/fteproxy/issues/152

I'll have an fteproxy release in the next few days.

Cool, thanks! Could you make "next few days" = "by Monday"? A new Tor Browser has to get released Tuesdayish...

Is this kind of thing good enough?

https://github.com/kpdyer/fteproxy/blob/dev/setup_tbb.py#L43

comment:15 Changed 5 years ago by gk

Hmm... I don't think so. But I might be wrong. Looking at https://gitweb.torproject.org/pluggable-transports/obfsproxy.git/blob/3d636a9660ffef71f1ec3d5ecbe4179098ebcbd7:/setup_py2exe.py the modules belong into the py2exe option. (There (in setup_py2exe.py), when the bug is fixed, it should read

"includes": ["twisted", "pyptlib", "Crypto", "txsocksx", "parsley"],

).

comment:18 in reply to:  10 ; Changed 5 years ago by asn

Status: needs_revisionneeds_review

Replying to gk:

I've merged the tor-browser-bundle bits in the commits 5c307a89c22cfd2d3b38d8215539324213fafcfb, 5400da654020a34edb9edee70a0583a89231c4fe (both master) and 34aedfbae28ed04ad7fe1df0695d246e8e14313a (maint-3.6).

asn, kpdyer: We need rather soonish new tags for obfsproxy and fte adding txsockxs and parsley to the requirements in setup_py2exe.py and setup_tbb.py respectively. Otherwise we would have to do the patching in the descriptor itself for the time being, a thing I'd rather like to avoid...

Done and tagged as obfsproxy-0.2.12.
See https://gitweb.torproject.org/pluggable-transports/obfsproxy.git/commitdiff/4d8bcb4b3671fd64d52040fa1cdfa35e48c17021

Hope it works!

comment:19 in reply to:  18 Changed 5 years ago by gk

Replying to asn:

Hope it works!

Nope. The start-up stalls at "Bootstrapped 10%: Finishing handshake with directory server."

comment:20 Changed 5 years ago by gk

Okay, here is a debug log showing what is going on:

2014-07-23 15:34:25,217 [WARNING] Obfsproxy (version: unknown) starting up.
2014-07-23 15:34:25,217 [DEBUG] argv: ['Tor\\PluggableTransports\\obfsproxy', '--log-min-severity=debug', '--log-file=C:\\Users\\AMO_Test\\Desktop\\log.log', 'managed']
2014-07-23 15:34:25,217 [DEBUG] args: Namespace(data_dir=None, log_file='C:\\Users\\[scrubbed]\\Desktop\\log.log', log_min_severity='debug', name='managed', no_log=False, no_safe_logging=False, proxy=None)
2014-07-23 15:34:25,217 [INFO] Entering client managed-mode.
2014-07-23 15:34:25,217 [DEBUG] pyptlib gave us the following data:
'{'__class__': <class 'pyptlib.client.ClientTransportPlugin'>,
 'config': {'allTransportsEnabled': False,
            'managedTransportVer': ['1'],
            'proxy': SplitResult(scheme='http', netloc='[scrubbed]', path='', query='', fragment=''),
            'stateLocation': 'C:\\Users\\[scrubbed]\\Tor Browser\\Data\\Tor\\pt_state/',
            'transports': ['obfs2', 'obfs3']},
 'served_transports': ['obfs2', 'obfs3'],
 'served_version': '1',
 'stdout': <open file '<stdout>', mode 'w' at 0x00436078>}'
2014-07-23 15:34:25,217 [INFO] OBFSSOCKSv5Factory starting on 49299
2014-07-23 15:34:25,217 [INFO] Starting factory <obfsproxy.network.socks.OBFSSOCKSv5Factory instance at 0x02CCD030>
2014-07-23 15:34:25,217 [DEBUG] socks_fact_0x2ccd030: Starting up SOCKS server factory.
2014-07-23 15:34:25,217 [DEBUG] Successfully launched 'obfs2' at '[scrubbed]'
2014-07-23 15:34:25,217 [INFO] OBFSSOCKSv5Factory starting on 49300
2014-07-23 15:34:25,217 [INFO] Starting factory <obfsproxy.network.socks.OBFSSOCKSv5Factory instance at 0x02CCD1C0>
2014-07-23 15:34:25,217 [DEBUG] socks_fact_0x2ccd1c0: Starting up SOCKS server factory.
2014-07-23 15:34:25,217 [DEBUG] Successfully launched 'obfs3' at '[scrubbed]'
2014-07-23 15:34:25,217 [INFO] Starting up the event loop.
2014-07-23 15:34:26,917 [DEBUG] socks_fact_0x2ccd1c0: New connection.
2014-07-23 15:34:27,010 [DEBUG] socks_fact_0x2ccd1c0: New connection.
2014-07-23 15:34:27,072 [DEBUG] socks_fact_0x2ccd1c0: New connection.
2014-07-23 15:34:27,151 [DEBUG] socks_fact_0x2ccd1c0: New connection.
2014-07-23 15:34:27,229 [ERROR] Unhandled Error
Traceback (most recent call last):
  File "twisted\python\log.pyc", line 88, in callWithLogger
   
  File "twisted\python\log.pyc", line 73, in callWithContext
   
  File "twisted\python\context.pyc", line 118, in callWithContext
   
  File "twisted\python\context.pyc", line 81, in callWithContext
   
--- <exception caught here> ---
  File "twisted\internet\selectreactor.pyc", line 151, in _doReadOrWrite
   
  File "twisted\internet\tcp.pyc", line 215, in doRead
   
  File "twisted\internet\tcp.pyc", line 221, in _dataReceived
   
  File "obfsproxy\network\socks5.pyc", line 170, in dataReceived
   
  File "obfsproxy\network\socks5.pyc", line 242, in processAuthentication
   
  File "obfsproxy\network\socks5.pyc", line 139, in <lambda>
   
  File "obfsproxy\network\socks5.pyc", line 328, in processNoAuthRequired
   
  File "obfsproxy\network\socks5.pyc", line 396, in processRequest
   
  File "obfsproxy\network\socks5.pyc", line 411, in processCmdConnect
   
  File "obfsproxy\network\socks.pyc", line 156, in connectClass
   
  File "obfsproxy\network\network.pyc", line 409, in create_proxy_client
   
  File "twisted\internet\endpoints.pyc", line 42, in <module>
   
  File "twisted\internet\stdio.pyc", line 28, in <module>
   
  File "twisted\internet\_win32stdio.pyc", line 7, in <module>
   
exceptions.ImportError: No module named win32api

It seems we need http://sourceforge.net/projects/pywin32/files/pywin32/ which provides that module.

comment:21 Changed 5 years ago by gk

Status: needs_reviewneeds_revision

comment:22 Changed 5 years ago by mttp

Keywords: tbb-helpdesk-frequent added

comment:23 Changed 5 years ago by meyer

My try to make obfsproxy working with a proxy started here: https://trac.torproject.org/projects/tor/ticket/12381
gk's log said that win32api is missing. So I've compiled obfsproxy on Windows, changing setup_py2exe.py to include pywin32's win32api.

After replacing 3.6.3's obfsproxy with my compiled one, I got the following error on log:

!------------LOG PIECE START---------------!

2014-07-26 14:43:15,470 [ERROR] Unhandled Error
Traceback (most recent call last):
  File "twisted\python\log.pyc", line 88, in callWithLogger
    
  File "twisted\python\log.pyc", line 73, in callWithContext
    
  File "twisted\python\context.pyc", line 118, in callWithContext
    
  File "twisted\python\context.pyc", line 81, in callWithContext
    
--- <exception caught here> ---
  File "twisted\internet\selectreactor.pyc", line 151, in _doReadOrWrite
    
  File "twisted\internet\tcp.pyc", line 215, in doRead
    
  File "twisted\internet\tcp.pyc", line 221, in _dataReceived
    
  File "obfsproxy\network\socks5.pyc", line 170, in dataReceived
    
  File "obfsproxy\network\socks5.pyc", line 242, in processAuthentication
    
  File "obfsproxy\network\socks5.pyc", line 139, in <lambda>
    
  File "obfsproxy\network\socks5.pyc", line 328, in processNoAuthRequired
    
  File "obfsproxy\network\socks5.pyc", line 396, in processRequest
    
  File "obfsproxy\network\socks5.pyc", line 411, in processCmdConnect
    
  File "obfsproxy\network\socks.pyc", line 156, in connectClass
    
  File "obfsproxy\network\network.pyc", line 396, in create_proxy_client
    
  File "txsocksx\client.pyc", line 12, in <module>
    
  File "parsley.pyc", line 3, in <module>
    
  File "ometa\grammar.pyc", line 32, in <module>
    
  File "ometa\grammar.pyc", line 25, in loadGrammar
    
exceptions.IOError: [Errno 2] No such file or directory: 'C:\\[MyPath]\\TorBrowser\\Tor\\PluggableTransports\\obfsproxy.zip\\ometa\\parsley_termactions.parsley'

2014-07-26 14:43:15,471 [DEBUG] socks_up_0x2336e50: Connection was lost ([Errno 2] No such file or directory: 'C:\\[MyPath]\\TorBrowser\\Tor\\PluggableTransports\\obfsproxy.zip\\ometa\\parsley_termactions.parsley').
2014-07-26 14:43:15,471 [DEBUG] socks_up_0x2336e50: Closing connection.
2014-07-26 14:43:15,471 [DEBUG] circ_0x2348eb8: Tearing down circuit.

!------------LOG PIECE END---------------!

So, I've looked on the zip file, and I didn't find that file. So, I'have downloaded every *.parsley file from here (https://github.com/python-parsley/parsley/tree/master/ometa) and injected them inside obfsproxy.zip, into "/ometa/". No lucky, it haven't worked.

On that moment that I thought a simple idea: Why not create a folder "obfsproxy.zip" and extract Obfsproxy's py2exe files to it? I did it, and the error was another:

!------------LOG PIECE START---------------!

2014-07-26 15:17:04,184 [ERROR] Unhandled Error
Traceback (most recent call last):
  File "twisted\python\log.pyc", line 88, in callWithLogger
    
  File "twisted\python\log.pyc", line 73, in callWithContext
    
  File "twisted\python\context.pyc", line 118, in callWithContext
    
  File "twisted\python\context.pyc", line 81, in callWithContext
    
--- <exception caught here> ---
  File "twisted\internet\selectreactor.pyc", line 151, in _doReadOrWrite
    
  File "twisted\internet\tcp.pyc", line 215, in doRead
    
  File "twisted\internet\tcp.pyc", line 221, in _dataReceived
    
  File "obfsproxy\network\socks5.pyc", line 170, in dataReceived
    
  File "obfsproxy\network\socks5.pyc", line 242, in processAuthentication
    
  File "obfsproxy\network\socks5.pyc", line 139, in <lambda>
    
  File "obfsproxy\network\socks5.pyc", line 328, in processNoAuthRequired
    
  File "obfsproxy\network\socks5.pyc", line 396, in processRequest
    
  File "obfsproxy\network\socks5.pyc", line 411, in processCmdConnect
    
  File "obfsproxy\network\socks.pyc", line 156, in connectClass
    
  File "obfsproxy\network\network.pyc", line 409, in create_proxy_client
    
  File "twisted\internet\endpoints.pyc", line 42, in <module>
    
  File "twisted\internet\stdio.pyc", line 28, in <module>
    
  File "twisted\internet\_win32stdio.pyc", line 15, in <module>
    
  File "twisted\internet\_pollingfile.pyc", line 104, in <module>
    
  File "pywintypes.pyc", line 124, in <module>
    
  File "pywintypes.pyc", line 61, in __import_pywin32_system_module__
    
exceptions.ImportError: Module 'pywintypes' isn't in frozen sys.path ['C:\\[MyPath]\\TorBrowser\\Tor', 'C:\\[MyPath]\\TorBrowser\\Tor\\PluggableTransports\\obfsproxy.zip']

2014-07-26 15:17:04,184 [DEBUG] socks_up_0x23f3d50: Connection was lost (Module 'pywintypes' isn't in frozen sys.path ['C:\\[MyPath]\\TorBrowser\\Tor', 'C:\\[MyPath]\\TorBrowser\\Tor\\PluggableTransports\\obfsproxy.zip']).
2014-07-26 15:17:04,184 [DEBUG] socks_up_0x23f3d50: Closing connection.
2014-07-26 15:17:04,184 [DEBUG] circ_0x2429d50: Tearing down circuit.

!------------LOG PIECE END---------------!

After doing some research, I found this link (http://stackoverflow.com/questions/17891071/importerror-with-cx-freeze-and-pywin32-module-pythoncom-isnt-in-frozen-sys-p) and a user suggested to put pythoncom33.dll on the build directory. I've searched for that file in python's directory and found a folder with 3 dll files (pycom27.dll, pycomloader27.dll, pywintypes27.dll) in (C:\Python27\Lib\site-packages\pywin32_system32). So, thinking on the "put on the build directory", I've put these DLL's on my new obfsproxy.zip folder and:

!------------LOG PIECE START---------------!

2014-07-26 15:22:01,470 [ERROR] Unhandled Error
Traceback (most recent call last):
  File "twisted\python\log.pyc", line 88, in callWithLogger
    
  File "twisted\python\log.pyc", line 73, in callWithContext
    
  File "twisted\python\context.pyc", line 118, in callWithContext
    
  File "twisted\python\context.pyc", line 81, in callWithContext
    
--- <exception caught here> ---
  File "twisted\internet\selectreactor.pyc", line 151, in _doReadOrWrite
    
  File "twisted\internet\tcp.pyc", line 215, in doRead
    
  File "twisted\internet\tcp.pyc", line 221, in _dataReceived
    
  File "obfsproxy\network\socks5.pyc", line 170, in dataReceived
    
  File "obfsproxy\network\socks5.pyc", line 242, in processAuthentication
    
  File "obfsproxy\network\socks5.pyc", line 139, in <lambda>
    
  File "obfsproxy\network\socks5.pyc", line 328, in processNoAuthRequired
    
  File "obfsproxy\network\socks5.pyc", line 396, in processRequest
    
  File "obfsproxy\network\socks5.pyc", line 411, in processCmdConnect
    
  File "obfsproxy\network\socks.pyc", line 156, in connectClass
    
  File "obfsproxy\network\network.pyc", line 410, in create_proxy_client
    
  File "txsocksx\client.pyc", line 12, in <module>
    
  File "parsley.pyc", line 5, in <module>
    
  File "terml\parser.pyc", line 88, in <module>
    
  File "ometa\grammar.pyc", line 25, in loadGrammar
    
exceptions.IOError: [Errno 2] No such file or directory: 'C:\\[MyPath]\\TorBrowser\\Tor\\PluggableTransports\\obfsproxy.zip\\terml\\terml.parsley'

2014-07-26 15:22:01,470 [DEBUG] socks_up_0x2458c30: Connection was lost ([Errno 2] No such file or directory: 'C:\\[MyPath]\\TorBrowser\\Tor\\PluggableTransports\\obfsproxy.zip\\terml\\terml.parsley').
2014-07-26 15:22:01,470 [DEBUG] socks_up_0x2458c30: Closing connection.
2014-07-26 15:22:01,470 [DEBUG] circ_0x24751c0: Tearing down circuit.

!------------LOG PIECE END---------------!

I came back to parsley GitHub's repository, downloaded all *.parsley files from "/terml/", and put them on the obfsproxy.zip folder, and:

Obfsproxy worked sucessfully with an HTTP Proxy!

I don't know if my solution is correct, but it's working, which is a great advance. Thanks!

comment:24 Changed 5 years ago by gk

http://sourceforge.net/p/pywin32/bugs/519/ is pretty comforting:

MingGW isn't supported and I've never even tried to use it for this - so you can expect some problems

comment:25 Changed 5 years ago by gk

Keywords: TorBrowserTeam201407 removed

comment:26 Changed 5 years ago by gk

Keywords: TorBrowserTeam201408 added

comment:27 Changed 5 years ago by mikeperry

Priority: normalmajor

comment:28 Changed 5 years ago by mikeperry

Keywords: TorBrowserTeam201410 added; TorBrowserTeam201408 removed

comment:29 Changed 5 years ago by mikeperry

Keywords: TorBrowserTeam201411 added; TorBrowserTeam201410 removed

comment:30 Changed 5 years ago by mikeperry

Keywords: TorBrowserTeam201412 added; TorBrowserTeam201411 removed

comment:31 Changed 5 years ago by mikeperry

Keywords: TorBrowserTeam201501 added; TorBrowserTeam201412 removed

comment:32 Changed 4 years ago by mikeperry

Keywords: TorBrowserTeam201501 removed

Realistically the PT team needs to decide this is important at this point, I think. I'm not even sure this will matter anymore with TBB 4.5 and obfs4 anyway.

comment:33 in reply to:  32 Changed 4 years ago by yawning

Replying to mikeperry:

Realistically the PT team needs to decide this is important at this point, I think. I'm not even sure this will matter anymore with TBB 4.5 and obfs4 anyway.

I think with TBB 4.5/obfs4proxy, the only PT that this affects will be fte, so it doesn't matter much. This naturally assumes I merge my scramblesuit obfs4proxy branch by then (which I should). I'm open to being convinced otherwise, but fighting python packaging/deterministic build issues isn't all that fun.

comment:34 Changed 4 years ago by kpdyer

I'm confused --- does anything need to be fixed in fteproxy?

comment:35 in reply to:  34 Changed 4 years ago by yawning

Replying to kpdyer:

I'm confused --- does anything need to be fixed in fteproxy?

No. I was just documenting that fteproxy will be the only obfsproxy user in TBB 4.5 (once I merge/tag some code), so it will be the only PT affected by the gigantic mess that is py2exe/python on Windows.

(obfsX/ScrambleSuit will all use a different Golang codebase that is a lot easier to build/package.)

comment:36 Changed 4 years ago by kpdyer

Gotcha. I mis-parsed your statement.

Do whatever you need to obfsproxy, fteproxy will accommodate.

comment:37 Changed 3 years ago by arma

Severity: Normal

Hello abandoned ticket still in needs-revision.

Is this thing (fte + proxy on Windows) still an issue?

comment:38 in reply to:  37 Changed 3 years ago by gk

Replying to arma:

Hello abandoned ticket still in needs-revision.

Is this thing (fte + proxy on Windows) still an issue?

Yes.

comment:39 Changed 2 years ago by hellais

I was similar issues with building a package with pyinstaller that depended on parsley and remembered I had seen something similar in this ticket.

It seems like parsley handles imports dynamically so the pyinstaller preprocessor wasn't picking up on the imports correctly.

The workaround that worked for me was to specify the following parsley modules as "hidden imports":

hidden_imports = [
        'ometa._generated.parsley',
        'ometa._generated.parsley_termactions',
        'ometa._generated.parsley_tree_transformer',
        'ometa._generated.pymeta_v1',
        'ometa._generated.vm',
        'ometa._generated.vm_emit',
        'terml._generated.terml',
        'terml._generated.quasiterm'
]

I think the equivalent with py2exe would be to add this list of modules to the includes key (https://gitweb.torproject.org/pluggable-transports/obfsproxy.git/tree/setup_py2exe.py#n17).

YMMV

comment:40 Changed 2 years ago by cypherpunks

Component: Applications/Tor bundles/installationObfuscation/Obfsproxy

comment:41 Changed 10 months ago by traumschule

Resolution: wontfix
Status: needs_revisionclosed

who uses TBB 3.6.2 should not.

comment:42 Changed 10 months ago by gk

Resolution: wontfix
Status: closedreopened
Summary: Pluggable Transports + proxy is not working on Windows with TBB 3.6.2Pluggable Transports + proxy is not working on Windows with Tor Browser

Yes, but have you any indication this is different in Tor Browser 8?

comment:43 in reply to:  42 Changed 10 months ago by yawning

Replying to gk:

Yes, but have you any indication this is different in Tor Browser 8?

I'm sure the < 15 daily users of FTE are devastated that this isn't fixed.

comment:44 Changed 10 months ago by mcs

Cc: brade mcs added

comment:45 Changed 8 months ago by arma

Possible plan is to phase out fteproxy (and thus this ticket) as we move to Marionette.

(That plan involves actually moving to Marionette, of course.)

Last edited 8 months ago by arma (previous) (diff)

comment:46 Changed 8 months ago by kpdyer

I think phasing out fteproxy and moving to Marionette is a good idea because fteproxy is essentially unsupported/unfunded.

comment:47 Changed 6 months ago by teor

Owner: asn deleted
Status: reopenedassigned

asn does not need to own any obfuscation tickets any more. Default owners are trouble.

comment:48 Changed 5 months ago by cohosh

Status: assignednew

tickets are unassigned, reverting to 'new'

comment:49 Changed 2 months ago by gk

Resolution: wontfix
Status: newclosed

Python PTs on Windows are gone for a while now. Closing as WONTFIX.

Note: See TracTickets for help on using tickets.