merge upstream
authorChristophe Simonis <chs@openerp.com>
Wed, 5 Dec 2012 14:37:22 +0000 (15:37 +0100)
committerChristophe Simonis <chs@openerp.com>
Wed, 5 Dec 2012 14:37:22 +0000 (15:37 +0100)
bzr revid: chs@openerp.com-20121201003326-j6n5r8juz16752j5
bzr revid: chs@openerp.com-20121204165557-u1oxocye3la4r6gf
bzr revid: chs@openerp.com-20121205143722-olswf8gsg8mhref3

1  2 
openerp/addons/base/module/module_view.xml
openerp/cli/server.py
openerp/modules/module.py
openerp/service/__init__.py
win32/setup.py

Simple merge
Simple merge
@@@ -107,12 -107,9 +109,12 @@@ def stop_services()
      # to trigger _force_quit() in case some non-daemon threads won't exit cleanly.
      # threading.Thread.join() should not mask signals (at least in python 2.5).
      me = threading.currentThread()
 +    _logger.debug('current thread: %r', me)
      for thread in threading.enumerate():
 +        _logger.debug('process %r (%r)', thread, thread.isDaemon())
-         if thread != me and not thread.isDaemon():
+         if thread != me and not thread.isDaemon() and thread.ident != main_thread_id:
              while thread.isAlive():
 +                _logger.debug('join and sleep')
                  # Need a busyloop here as thread.join() masks signals
                  # and would prevent the forced shutdown.
                  thread.join(0.05)
diff --cc win32/setup.py
  #
  ##############################################################################
  
- from distutils.core import setup
  import os
+ import glob
+ from distutils.core import setup
  import py2exe
  
+ def datas():
+     r = []
+     if os.name == 'nt':
+         r.append(("Microsoft.VC90.CRT", glob.glob('C:\Microsoft.VC90.CRT\*.*')))
+     return r
 -setup(service=["OpenERPServerService"],
 -      options={"py2exe":{"excludes":["Tkconstants","Tkinter","tcl",
 -                                     "_imagingtk","PIL._imagingtk",
 -                                     "ImageTk", "PIL.ImageTk",
 -                                     "FixTk"],
 -                         "skip_archive": 1,
 -                         "optimize": 2,}},
 +meta = {}
 +execfile(os.path.join(os.path.dirname(__file__), '..', 'openerp', 'release.py'), meta)
 +
 +def generate_files():
 +    actions = {
 +        'start': ['stop', 'start'],
 +        'stop': ['stop'],
 +    }
 +
 +    files = []
 +    for action, steps in actions.items():
 +        fname = action + '.bat'
 +        files.append(fname)
 +        with open(fname, 'w') as fp:
 +            fp.write('@PATH=%WINDIR%\system32;%WINDIR%;%WINDIR%\System32\Wbem;.\n')
 +            for step in steps:
 +                fp.write('@net %s %s\n' % (step, meta['nt_service_name']))
 +
 +    files.append('meta.py')
 +    with open('meta.py', 'w') as fp:
 +        for m in 'description serie nt_service_name'.split():
 +            fp.write("%s = %r\n" % (m, meta[m],))
 +
 +    return files
 +
 +excludes = "Tkconstants Tkinter tcl _imagingtk PIL._imagingtk ImageTk PIL.ImageTk FixTk".split()
 +
 +setup(service      = ["OpenERPServerService"],
 +      version      = meta['version'],
 +      license      = meta['license'],
 +      url          = meta['url'],
 +      author       = meta['author'],
 +      author_email = meta['author_email'],
 +      data_files   = generate_files(),
 +      options      = {"py2exe": {
 +                        "excludes": excludes,
 +                        "skip_archive": 1,
 +                        "optimize": 2,
-                      }}
++                     }},
+       data_files=datas(),
        )
  
  # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: