Thank you very much Christian! I used your patch and can confirm it's 
working now!

Much appreciated

On Tuesday, June 13, 2017 at 4:52:13 PM UTC-7, Christian Hammond wrote:
>
> The patch here should take care of this problem: 
> https://reviews.reviewboard.org/r/9014/
>
> Christian
>
> On Tue, Jun 13, 2017 at 4:04 PM, Christian Hammond <[email protected] 
> <javascript:>> wrote:
>
>> We don't want to remove them, because it's important to use the ones 
>> specified by Review Board and not the system-provided ones.
>>
>> I have a repro case, so I'll dig into this.
>>
>> Christian
>>
>> On Tue, Jun 13, 2017 at 12:37 PM, Alexander Galperin <
>> [email protected] <javascript:>> wrote:
>>
>>> Actually,adding pipeline_settings.PIPELINE_LESS_BINARY and 
>>> pipeline_settings.PIPELINE_UGLIFYJS_BINARY to packaging.py is not nesessary.
>>> Without these settings the default pipeline setting will be 
>>> used,('/usr/bin/env lessc','/usr/bin/env uglifyjs') and it has less and 
>>> uglify execs.
>>> so the only need to remove these attributes from ReviewBoard settings.
>>>
>>>
>>> On Tuesday, June 13, 2017 at 12:19:24 PM UTC-7, Alexander Galperin wrote:
>>>>
>>>> Thank you Christian,
>>>> Definitely these 2 statements are needed. But it still did not worked
>>>> I found that these values overwritten in a loop in the 
>>>> packaging.py/_build_static_media(extention),because ReviewBoard 
>>>> settings, has attributes PIPELINE_LESS_BINARY and  
>>>> PIPELINE_UGLIFYJS_BINARY:
>>>>         from pipeline.conf import settings as pipeline_settings
>>>>
>>>>         for key in six.iterkeys(pipeline_settings.__dict__):
>>>>             if hasattr(settings, key):
>>>>                 setattr(pipeline_settings, key, getattr(settings, key))
>>>>
>>>> So, I 
>>>> modified 
>>>> /usr/local/lib/python2.7/dist-packages/ReviewBoard-2.5.12.dev0-py2.7.egg/reviewboard/settings.py,
>>>>  
>>>> by removing these 2 attributes, and it works now:
>>>> # Static media setup
>>>> from reviewboard.staticbundles import PIPELINE_CSS, PIPELINE_JS
>>>>
>>>> NODE_PATH = os.path.join(REVIEWBOARD_ROOT, '..', 'node_modules')
>>>>
>>>> # PIPELINE_LESS_BINARY = os.path.join(NODE_PATH, 'less', 'bin', 'lessc')
>>>> # PIPELINE_UGLIFYJS_BINARY = os.path.join(NODE_PATH, 'uglifyjs', 'bin',
>>>> #                                        'uglifyjs')
>>>>
>>>>
>>>>
>>>> On Monday, June 12, 2017 at 6:13:39 PM UTC-7, Christian Hammond wrote:
>>>>>
>>>>> I think I see where the problem is. I'm confused as to why I'm not 
>>>>> hitting the same failure case, but I honestly don't have a lot of time to 
>>>>> dig into it right now.
>>>>>
>>>>> In install_pipeline_deps, try doing:
>>>>>
>>>>>             pipeline_settings.LESS_BINARY = \
>>>>>                 os.path.join(node_modules_dir, 'less', 'bin', 'lessc')
>>>>>             pipeline_settings.PIPELINE_LESS_BINARY = \
>>>>>                 pipeline_settings.LESS_BINARY
>>>>>
>>>>> ...
>>>>>
>>>>>             pipeline_settings.UGLIFYJS_BINARY = \
>>>>>                 os.path.join(node_modules_dir, 'uglifyjs', 'bin', 
>>>>> 'uglifyjs')
>>>>>             pipeline_settings.PIPELINE_UGLIFYJS_BINARY = \
>>>>>                 pipeline_settings.UGLIFYJS_BINARY
>>>>>
>>>>>
>>>>> (Adding the second statement in each batch)
>>>>>
>>>>> See if that gets you any further.
>>>>>
>>>>> Christian
>>>>>
>>>>> On Mon, Jun 12, 2017 at 6:03 PM, Alexander Galperin <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> Set in packaging.py:
>>>>>> # Collect and process all static media files.
>>>>>>        * print 'PIPELINE_LESS_BINARY1 = 
>>>>>> {}'.format(pipeline_settings.LESS_BINARY)*
>>>>>> *        print 'PIPELINE_UGLIFYJS_BINARY1 = 
>>>>>> {}'.format(pipeline_settings.UGLIFYJS_BINARY)*
>>>>>>         call_command('collectstatic', interactive=False, verbosity=2)
>>>>>>
>>>>>> Output is good:
>>>>>> PIPELINE_LESS_BINARY1 = 
>>>>>> /src2/rb-extension-pack/fortinet/build/node_modules/less/bin/lessc
>>>>>> PIPELINE_UGLIFYJS_BINARY1 = 
>>>>>> /src2/rb-extension-pack/fortinet/build/node_modules/uglifyjs/bin/uglifyjs
>>>>>>
>>>>>>
>>>>>> On Monday, June 12, 2017 at 5:51:13 PM UTC-7, Alexander Galperin 
>>>>>> wrote:
>>>>>>>
>>>>>>> Set print 
>>>>>>> in 
>>>>>>> /usr/local/lib/python2.7/dist-packages/pipeline/compressors/uglifyjs.py:
>>>>>>> class UglifyJSCompressor(SubProcessCompressor):
>>>>>>>     def compress_js(self, js):
>>>>>>>         *print 'PIPELINE_SETTING_UGLIFYJS_BINARY = 
>>>>>>> {}'.format(settings.PIPELINE_UGLIFYJS_BINARY)*
>>>>>>>         command = '%s %s' % (settings.PIPELINE_UGLIFYJS_BINARY, 
>>>>>>> settings.PIPELINE_UGLIFYJS_ARGUMENTS)
>>>>>>>         if self.verbose:
>>>>>>>             command += ' --verbose'
>>>>>>>         return self.execute_command(command, js)
>>>>>>> output:
>>>>>>> PIPELINE_SETTING_UGLIFYJS_BINARY = /usr/local/lib/python2.7/dist-
>>>>>>> packages/ReviewBoard-2.5.12.dev0-py2.7.egg/reviewboard/../
>>>>>>> node_modules/uglifyjs/bin/uglifyjs
>>>>>>>  And it takes from 'settings', which probably is wrong
>>>>>>>
>>>>>>> I will try to stop in call_command
>>>>>>>
>>>>>>>
>>>>>>> On Monday, June 12, 2017 at 5:37:29 PM UTC-7, Christian Hammond 
>>>>>>> wrote:
>>>>>>>>
>>>>>>>> Can you also try placing debugging output right before the 
>>>>>>>> "call_command('collectstatic', ...)" command in _build_static_media?
>>>>>>>>
>>>>>>>> Along with this, try printing `command` in 
>>>>>>>> pipeline/compilers/less.py (pipeline will be another module in 
>>>>>>>> site-packages somewhere, perhaps under a django-pipeline-* directory).
>>>>>>>>
>>>>>>>> Christian
>>>>>>>>
>>>>>>>> On Mon, Jun 12, 2017 at 5:22 PM, Alexander Galperin <
>>>>>>>> [email protected]> wrote:
>>>>>>>>
>>>>>>>>> I've put some print in packaging.py to help debugging. Here's what 
>>>>>>>>> I have changed:
>>>>>>>>>  def install_pipeline_deps(self, extension, css_bundles, 
>>>>>>>>> js_bundles):
>>>>>>>>> ...
>>>>>>>>> ...
>>>>>>>>>         with open(package_file, 'w') as fp:
>>>>>>>>>             fp.write(json.dumps(
>>>>>>>>>                 {
>>>>>>>>>                     'name': '%s-extension' % 
>>>>>>>>> os.path.basename(os.getcwd()),
>>>>>>>>>                     'private': 'true',
>>>>>>>>>                     'devDependencies': {},
>>>>>>>>>                     'dependencies': dependencies,
>>>>>>>>>                 },
>>>>>>>>>                 indent=2))
>>>>>>>>>
>>>>>>>>>         old_cwd = os.getcwd()
>>>>>>>>>         os.chdir(build_dir)
>>>>>>>>> *        print 'PIPELINE_LESS_BINARY = 
>>>>>>>>> {}'.format(pipeline_settings.LESS_BINARY)*
>>>>>>>>> *        print 'PIPELINE_UGLIFYJS_BINARY = 
>>>>>>>>> {}'.format(pipeline_settings.UGLIFYJS_BINARY)*
>>>>>>>>>         self.npm_install()
>>>>>>>>>
>>>>>>>>> And the output is:
>>>>>>>>> PIPELINE_LESS_BINARY = /src2/rb-extension-pack/fortinet/build/
>>>>>>>>> node_modules/less/bin/lessc
>>>>>>>>> PIPELINE_UGLIFYJS_BINARY = /src2/rb-extension-pack/fortinet/build/
>>>>>>>>> node_modules/uglifyjs/bin/uglifyjs
>>>>>>>>>
>>>>>>>>> Also build/node_modules.. created in extention directory, so the 
>>>>>>>>> path is correct at this point
>>>>>>>>>
>>>>>>>>> On Monday, June 12, 2017 at 5:17:15 PM UTC-7, Christian Hammond 
>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>> Hi Kevin,
>>>>>>>>>>
>>>>>>>>>> printing in settings.py won't tell you anything of value. Those 
>>>>>>>>>> are the correct locations at the time that settings.py loaded, but 
>>>>>>>>>> they're 
>>>>>>>>>> overridden during the packaging process. The locations mentioned in 
>>>>>>>>>> my 
>>>>>>>>>> previous e-mail are where that happens. Solving this will require 
>>>>>>>>>> narrowing 
>>>>>>>>>> down the locations where the path is correct and where it's 
>>>>>>>>>> incorrect in 
>>>>>>>>>> that process.
>>>>>>>>>>
>>>>>>>>>> Christian
>>>>>>>>>>
>>>>>>>>>> On Mon, Jun 12, 2017 at 2:49 PM, Kevin Yu <[email protected]> 
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hi Christian,
>>>>>>>>>>>
>>>>>>>>>>> Thanks for trying out. I also did some debugging to see if I can 
>>>>>>>>>>> find any information. I added some print in the settings.py  
>>>>>>>>>>>
>>>>>>>>>>> PIPELINE_LESS_BINARY = os.path.join(NODE_PATH, 'less', 'bin', 
>>>>>>>>>>> 'lessc')
>>>>>>>>>>> PIPELINE_UGLIFYJS_BINARY = os.path.join(NODE_PATH, 'uglifyjs', 
>>>>>>>>>>> 'bin',
>>>>>>>>>>>                                         'uglifyjs')
>>>>>>>>>>> print 'PIPELINE_UGLIFYJS_BINARY = 
>>>>>>>>>>> {}'.format(PIPELINE_UGLIFYJS_BINARY)
>>>>>>>>>>> print 'PIPELINE_LESS_BINARY = {}'.format(PIPELINE_LESS_BINARY)
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> And this is what I see in the log:
>>>>>>>>>>>
>>>>>>>>>>> [Mon Jun 12 14:47:50.821618 2017] [:error] [pid 12918:tid 
>>>>>>>>>>> 140227234481920] PIPELINE_UGLIFYJS_BINARY = 
>>>>>>>>>>> /usr/local/lib/python2.7/dist-packages/ReviewBoard-2.5.12-py2.7.egg/reviewboard/../node_modules/uglifyjs/bin/uglifyjs
>>>>>>>>>>> [Mon Jun 12 14:47:50.821692 2017] [:error] [pid 12918:tid 
>>>>>>>>>>> 140227234481920] PIPELINE_LESS_BINARY = 
>>>>>>>>>>> /usr/local/lib/python2.7/dist-packages/ReviewBoard-2.5.12-py2.7.egg/reviewboard/../node_modules/less/bin/lessc
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On Saturday, June 10, 2017 at 1:43:26 AM UTC-7, Christian 
>>>>>>>>>>> Hammond wrote:
>>>>>>>>>>>>
>>>>>>>>>>>> Right. We override this though in 
>>>>>>>>>>>> djblets/extensions/packaging.py in install_pipeline_deps(). We 
>>>>>>>>>>>> compute the 
>>>>>>>>>>>> path to the extension's node_modules and its lessc, and we set 
>>>>>>>>>>>> that in 
>>>>>>>>>>>> settings.
>>>>>>>>>>>>
>>>>>>>>>>>> I tested locally and it's performing as expected for me. Review 
>>>>>>>>>>>> Board's lessc isn't being used, but the extension's is. So 
>>>>>>>>>>>> something's 
>>>>>>>>>>>> going wrong here with the paths.
>>>>>>>>>>>>
>>>>>>>>>>>> How comfortable are you debugging Python? I'm curious as to 
>>>>>>>>>>>> whether pipeline_settings.LESS_BINARY in install_pipeline_deps() 
>>>>>>>>>>>> is being 
>>>>>>>>>>>> correctly set.
>>>>>>>>>>>>
>>>>>>>>>>>> Christian
>>>>>>>>>>>>
>>>>>>>>>>>> On Fri, Jun 9, 2017 at 5:51 PM, Kevin Yu <[email protected]> 
>>>>>>>>>>>> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> Looks like the path to the npm_modules are prepopulated based 
>>>>>>>>>>>>> on the following code in settings.py:
>>>>>>>>>>>>> # Static media setup
>>>>>>>>>>>>> if RUNNING_TEST:
>>>>>>>>>>>>>    PIPELINE_COMPILERS = []
>>>>>>>>>>>>> else:
>>>>>>>>>>>>>    PIPELINE_COMPILERS = [
>>>>>>>>>>>>>        'djblets.pipeline.compilers.es6.ES6Compiler',
>>>>>>>>>>>>>        'djblets.pipeline.compilers.less.LessCompiler',
>>>>>>>>>>>>>    ]
>>>>>>>>>>>>>
>>>>>>>>>>>>> NODE_PATH = os.path.join(REVIEWBOARD_ROOT, '..', 'node_modules
>>>>>>>>>>>>> ')
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Friday, June 9, 2017 at 5:44:51 PM UTC-7, Kevin Yu wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Thanks Christian for the quick reply! much appreciated.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> It was installed using easy_install under Ubuntu.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On Friday, June 9, 2017 at 5:38:11 PM UTC-7, Christian 
>>>>>>>>>>>>>> Hammond wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Hi Kevin,
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> I actually don't believe this is related in this case. It 
>>>>>>>>>>>>>>> looks like the extension packaging stage is trying to locate 
>>>>>>>>>>>>>>> the lessc path 
>>>>>>>>>>>>>>> relative to Review Board, which is not correct. It should be 
>>>>>>>>>>>>>>> locating it 
>>>>>>>>>>>>>>> from the extension package. It sets the path prior to building 
>>>>>>>>>>>>>>> the 
>>>>>>>>>>>>>>> extension to the place in your tree, which, based on that 
>>>>>>>>>>>>>>> output, should be 
>>>>>>>>>>>>>>> populated...
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> I have to run right now, but let me play around with this 
>>>>>>>>>>>>>>> when I get back and see if I can reproduce this.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> In the meantime, how do you install Review Board? Are you 
>>>>>>>>>>>>>>> using easy_install or yum?
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Christian
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> On Fri, Jun 9, 2017 at 5:34 PM, Kevin Yu <[email protected]> 
>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> I just saw on 
>>>>>>>>>>>>>>>> https://www.reviewboard.org/docs/manual/dev/extending/extensions/static-files/,
>>>>>>>>>>>>>>>>  
>>>>>>>>>>>>>>>> it says
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Static bundles are packaged along with your extension 
>>>>>>>>>>>>>>>> automatically. You don’t have to do anything special. You 
>>>>>>>>>>>>>>>> will, however, 
>>>>>>>>>>>>>>>> need some node.js <https://nodejs.org/> dependencies in 
>>>>>>>>>>>>>>>> order to package static media bundles.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> *If you’re running Review Board 2.5.7+, these dependencies 
>>>>>>>>>>>>>>>> will be installed for you when you begin to build the package.*
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> *If you’re running an older version, you will need to 
>>>>>>>>>>>>>>>> manually install them yourself. First, make sure you have a 
>>>>>>>>>>>>>>>> modern version 
>>>>>>>>>>>>>>>> of node.js installed and then run:*
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> $ sudo npm install -g less uglifyjs
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> I am wondering if this is related...
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> On Friday, June 9, 2017 at 4:41:10 PM UTC-7, Kevin Yu wrote:
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> On our server, we had reviewboard core 2.5.6.1 running 
>>>>>>>>>>>>>>>>> with our own extension. it was all fine until we recently 
>>>>>>>>>>>>>>>>> upgraded 
>>>>>>>>>>>>>>>>> reviewboard core to 2.5.12. After the upgrade, we can't run 
>>>>>>>>>>>>>>>>> python setup.py 
>>>>>>>>>>>>>>>>> -v build anymore... The error is as follows:
>>>>>>>>>>>>>>>>> devops@Reviewboard-Test-trunk:/tmp/ReviewBoardExt$ python 
>>>>>>>>>>>>>>>>> setup.py -v build
>>>>>>>>>>>>>>>>> running build
>>>>>>>>>>>>>>>>> running build_py
>>>>>>>>>>>>>>>>> running build_static_files
>>>>>>>>>>>>>>>>> Installing node packages...
>>>>>>>>>>>>>>>>> npm http GET https://registry.npmjs.org/uglifyjs/2.4.10
>>>>>>>>>>>>>>>>> npm http GET https://registry.npmjs.org/less/2.7.1
>>>>>>>>>>>>>>>>> npm http 304 https://registry.npmjs.org/less/2.7.1
>>>>>>>>>>>>>>>>> npm http 304 https://registry.npmjs.org/uglifyjs/2.4.10
>>>>>>>>>>>>>>>>> npm WARN deprecated [email protected]: uglifyjs is 
>>>>>>>>>>>>>>>>> deprecated - use uglify-js instead.
>>>>>>>>>>>>>>>>> npm WARN engine [email protected]: wanted: {"node":">=0.12"} 
>>>>>>>>>>>>>>>>> (current: {"node":"v0.10.25","npm":"1.3.10"})
>>>>>>>>>>>>>>>>> npm http GET https://registry.npmjs.org/source-map/0.1.34
>>>>>>>>>>>>>>>>> npm http GET https://registry.npmjs.org/yargs
>>>>>>>>>>>>>>>>> npm http GET https://registry.npmjs.org/async
>>>>>>>>>>>>>>>>> npm http GET 
>>>>>>>>>>>>>>>>> https://registry.npmjs.org/uglify-to-browserify
>>>>>>>>>>>>>>>>> npm http 304 https://registry.npmjs.org/source-map/0.1.34
>>>>>>>>>>>>>>>>> npm http 304 https://registry.npmjs.org/yargs
>>>>>>>>>>>>>>>>> npm http 304 https://registry.npmjs.org/async
>>>>>>>>>>>>>>>>> npm http 304 
>>>>>>>>>>>>>>>>> https://registry.npmjs.org/uglify-to-browserify
>>>>>>>>>>>>>>>>> npm http GET https://registry.npmjs.org/amdefine
>>>>>>>>>>>>>>>>> npm http 304 https://registry.npmjs.org/amdefine
>>>>>>>>>>>>>>>>> npm http GET https://registry.npmjs.org/errno
>>>>>>>>>>>>>>>>> npm http GET https://registry.npmjs.org/graceful-fs
>>>>>>>>>>>>>>>>> npm http GET https://registry.npmjs.org/image-size
>>>>>>>>>>>>>>>>> npm http GET https://registry.npmjs.org/mime
>>>>>>>>>>>>>>>>> npm http GET https://registry.npmjs.org/mkdirp
>>>>>>>>>>>>>>>>> npm http GET https://registry.npmjs.org/promise
>>>>>>>>>>>>>>>>> npm http GET https://registry.npmjs.org/source-map
>>>>>>>>>>>>>>>>> npm http 304 https://registry.npmjs.org/errno
>>>>>>>>>>>>>>>>> npm http 304 https://registry.npmjs.org/graceful-fs
>>>>>>>>>>>>>>>>> npm http 304 https://registry.npmjs.org/image-size
>>>>>>>>>>>>>>>>> npm http 304 https://registry.npmjs.org/mime
>>>>>>>>>>>>>>>>> npm http 304 https://registry.npmjs.org/promise
>>>>>>>>>>>>>>>>> npm http 304 https://registry.npmjs.org/source-map
>>>>>>>>>>>>>>>>> npm http 304 https://registry.npmjs.org/mkdirp
>>>>>>>>>>>>>>>>> npm http GET https://registry.npmjs.org/prr
>>>>>>>>>>>>>>>>> npm http 304 https://registry.npmjs.org/prr
>>>>>>>>>>>>>>>>> npm http GET https://registry.npmjs.org/minimist/0.0.8
>>>>>>>>>>>>>>>>> npm http 304 https://registry.npmjs.org/minimist/0.0.8
>>>>>>>>>>>>>>>>> npm http GET https://registry.npmjs.org/asap
>>>>>>>>>>>>>>>>> npm http 304 https://registry.npmjs.org/asap
>>>>>>>>>>>>>>>>> [email protected] node_modules/uglifyjs
>>>>>>>>>>>>>>>>> ├── [email protected]
>>>>>>>>>>>>>>>>> ├── [email protected]
>>>>>>>>>>>>>>>>> ├── [email protected]
>>>>>>>>>>>>>>>>> └── [email protected] ([email protected])
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> [email protected] node_modules/less
>>>>>>>>>>>>>>>>> ├── [email protected]
>>>>>>>>>>>>>>>>> ├── [email protected]
>>>>>>>>>>>>>>>>> ├── [email protected]
>>>>>>>>>>>>>>>>> ├── [email protected] ([email protected])
>>>>>>>>>>>>>>>>> ├── [email protected] ([email protected])
>>>>>>>>>>>>>>>>> ├── [email protected] ([email protected])
>>>>>>>>>>>>>>>>> └── [email protected]
>>>>>>>>>>>>>>>>> Copying 
>>>>>>>>>>>>>>>>> '/tmp/ReviewBoardExt/fortinet/static/css/rev_req_det.less'
>>>>>>>>>>>>>>>>> Copying 
>>>>>>>>>>>>>>>>> '/tmp/ReviewBoardExt/fortinet/static/js/views/account_handler.js'
>>>>>>>>>>>>>>>>> Copying 
>>>>>>>>>>>>>>>>> '/tmp/ReviewBoardExt/fortinet/static/js/views/branch_builds.js'
>>>>>>>>>>>>>>>>> Copying 
>>>>>>>>>>>>>>>>> '/tmp/ReviewBoardExt/fortinet/static/js/views/bootstrap.js'
>>>>>>>>>>>>>>>>> Copying 
>>>>>>>>>>>>>>>>> '/tmp/ReviewBoardExt/fortinet/static/js/views/apprreqView.js'
>>>>>>>>>>>>>>>>> Copying 
>>>>>>>>>>>>>>>>> '/tmp/ReviewBoardExt/fortinet/static/js/views/test_cvrg_rprt.js'
>>>>>>>>>>>>>>>>> Copying 
>>>>>>>>>>>>>>>>> '/tmp/ReviewBoardExt/fortinet/static/js/views/ftnchkHoldItView.js'
>>>>>>>>>>>>>>>>> Copying 
>>>>>>>>>>>>>>>>> '/tmp/ReviewBoardExt/fortinet/static/js/views/sel_rqst_4_det_copy.js'
>>>>>>>>>>>>>>>>> Copying 
>>>>>>>>>>>>>>>>> '/tmp/ReviewBoardExt/fortinet/static/js/views/approval_status_View.js'
>>>>>>>>>>>>>>>>> Copying 
>>>>>>>>>>>>>>>>> '/tmp/ReviewBoardExt/fortinet/static/js/views/dashboard.js'
>>>>>>>>>>>>>>>>> Copying 
>>>>>>>>>>>>>>>>> '/tmp/ReviewBoardExt/fortinet/static/js/views/rqst_descr.js'
>>>>>>>>>>>>>>>>> Copying 
>>>>>>>>>>>>>>>>> '/tmp/ReviewBoardExt/fortinet/static/js/views/cm_portalView.js'
>>>>>>>>>>>>>>>>> Copying 
>>>>>>>>>>>>>>>>> '/tmp/ReviewBoardExt/fortinet/static/images/Remove.png'
>>>>>>>>>>>>>>>>> Copying 
>>>>>>>>>>>>>>>>> '/tmp/ReviewBoardExt/fortinet/static/images/fortinet.png'
>>>>>>>>>>>>>>>>> Copying 
>>>>>>>>>>>>>>>>> '/tmp/ReviewBoardExt/fortinet/static/images/[email protected]'
>>>>>>>>>>>>>>>>> Copying 
>>>>>>>>>>>>>>>>> '/tmp/ReviewBoardExt/fortinet/static/images/[email protected]'
>>>>>>>>>>>>>>>>> Copying 
>>>>>>>>>>>>>>>>> '/tmp/ReviewBoardExt/fortinet/static/images/teamlead.png'
>>>>>>>>>>>>>>>>> Copying 
>>>>>>>>>>>>>>>>> '/tmp/ReviewBoardExt/fortinet/static/images/favicon_notify.png'
>>>>>>>>>>>>>>>>> Copying 
>>>>>>>>>>>>>>>>> '/tmp/ReviewBoardExt/fortinet/static/images/Create.png'
>>>>>>>>>>>>>>>>> Copying 
>>>>>>>>>>>>>>>>> '/tmp/ReviewBoardExt/fortinet/static/images/ftnt.ico'
>>>>>>>>>>>>>>>>> Copying 
>>>>>>>>>>>>>>>>> '/tmp/ReviewBoardExt/fortinet/static/images/[email protected]'
>>>>>>>>>>>>>>>>> Copying 
>>>>>>>>>>>>>>>>> '/tmp/ReviewBoardExt/fortinet/static/images/shipit-grey.png'
>>>>>>>>>>>>>>>>> Copying 
>>>>>>>>>>>>>>>>> '/tmp/ReviewBoardExt/fortinet/static/images/[email protected]'
>>>>>>>>>>>>>>>>> Copying '/tmp/ReviewBoardExt/fortinet/static/images/Up.png'
>>>>>>>>>>>>>>>>> Copying 
>>>>>>>>>>>>>>>>> '/tmp/ReviewBoardExt/fortinet/static/images/Bottom.png'
>>>>>>>>>>>>>>>>> Copying 
>>>>>>>>>>>>>>>>> '/tmp/ReviewBoardExt/fortinet/static/images/[email protected]'
>>>>>>>>>>>>>>>>> Copying 
>>>>>>>>>>>>>>>>> '/tmp/ReviewBoardExt/fortinet/static/images/stop16.png'
>>>>>>>>>>>>>>>>> Copying 
>>>>>>>>>>>>>>>>> '/tmp/ReviewBoardExt/fortinet/static/images/[email protected]'
>>>>>>>>>>>>>>>>> Copying 
>>>>>>>>>>>>>>>>> '/tmp/ReviewBoardExt/fortinet/static/images/[email protected]'
>>>>>>>>>>>>>>>>> Copying 
>>>>>>>>>>>>>>>>> '/tmp/ReviewBoardExt/fortinet/static/images/shipit.png'
>>>>>>>>>>>>>>>>> Copying 
>>>>>>>>>>>>>>>>> '/tmp/ReviewBoardExt/fortinet/static/images/[email protected]'
>>>>>>>>>>>>>>>>> Copying 
>>>>>>>>>>>>>>>>> '/tmp/ReviewBoardExt/fortinet/static/images/[email protected]'
>>>>>>>>>>>>>>>>> Copying 
>>>>>>>>>>>>>>>>> '/tmp/ReviewBoardExt/fortinet/static/images/Down.png'
>>>>>>>>>>>>>>>>> Copying 
>>>>>>>>>>>>>>>>> '/tmp/ReviewBoardExt/fortinet/static/images/[email protected]'
>>>>>>>>>>>>>>>>> Traceback (most recent call last):
>>>>>>>>>>>>>>>>>   File "setup.py", line 27, in <module>
>>>>>>>>>>>>>>>>>     'evolutions/*.*',
>>>>>>>>>>>>>>>>>   File 
>>>>>>>>>>>>>>>>> "/usr/local/lib/python2.7/dist-packages/ReviewBoard-2.5.12-py2.7.egg/reviewboard/extensions/packaging.py",
>>>>>>>>>>>>>>>>>  
>>>>>>>>>>>>>>>>> line 48, in setup
>>>>>>>>>>>>>>>>>     setuptools_setup(**setup_kwargs)
>>>>>>>>>>>>>>>>>   File "/usr/lib/python2.7/distutils/core.py", line 151, 
>>>>>>>>>>>>>>>>> in setup
>>>>>>>>>>>>>>>>>     dist.run_commands()
>>>>>>>>>>>>>>>>>   File "/usr/lib/python2.7/distutils/dist.py", line 953, 
>>>>>>>>>>>>>>>>> in run_commands
>>>>>>>>>>>>>>>>>     self.run_command(cmd)
>>>>>>>>>>>>>>>>>   File "/usr/lib/python2.7/distutils/dist.py", line 972, 
>>>>>>>>>>>>>>>>> in run_command
>>>>>>>>>>>>>>>>>     cmd_obj.run()
>>>>>>>>>>>>>>>>>   File "/usr/lib/python2.7/distutils/command/build.py", 
>>>>>>>>>>>>>>>>> line 128, in run
>>>>>>>>>>>>>>>>>     self.run_command(cmd_name)
>>>>>>>>>>>>>>>>>   File "/usr/lib/python2.7/distutils/cmd.py", line 326, in 
>>>>>>>>>>>>>>>>> run_command
>>>>>>>>>>>>>>>>>     self.distribution.run_command(command)
>>>>>>>>>>>>>>>>>   File "/usr/lib/python2.7/distutils/dist.py", line 972, 
>>>>>>>>>>>>>>>>> in run_command
>>>>>>>>>>>>>>>>>     cmd_obj.run()
>>>>>>>>>>>>>>>>>   File 
>>>>>>>>>>>>>>>>> "/usr/local/lib/python2.7/dist-packages/Djblets-0.9.7-py2.7.egg/djblets/extensions/packaging.py",
>>>>>>>>>>>>>>>>>  
>>>>>>>>>>>>>>>>> line 422, in run
>>>>>>>>>>>>>>>>>     self.run_command('build_static_files')
>>>>>>>>>>>>>>>>>   File "/usr/lib/python2.7/distutils/cmd.py", line 326, in 
>>>>>>>>>>>>>>>>> run_command
>>>>>>>>>>>>>>>>>     self.distribution.run_command(command)
>>>>>>>>>>>>>>>>>   File "/usr/lib/python2.7/distutils/dist.py", line 972, 
>>>>>>>>>>>>>>>>> in run_command
>>>>>>>>>>>>>>>>>     cmd_obj.run()
>>>>>>>>>>>>>>>>>   File 
>>>>>>>>>>>>>>>>> "/usr/local/lib/python2.7/dist-packages/Djblets-0.9.7-py2.7.egg/djblets/extensions/packaging.py",
>>>>>>>>>>>>>>>>>  
>>>>>>>>>>>>>>>>> line 290, in run
>>>>>>>>>>>>>>>>>     self._build_static_media(extension)
>>>>>>>>>>>>>>>>>   File 
>>>>>>>>>>>>>>>>> "/usr/local/lib/python2.7/dist-packages/Djblets-0.9.7-py2.7.egg/djblets/extensions/packaging.py",
>>>>>>>>>>>>>>>>>  
>>>>>>>>>>>>>>>>> line 360, in _build_static_media
>>>>>>>>>>>>>>>>>     call_command('collectstatic', interactive=False, 
>>>>>>>>>>>>>>>>> verbosity=2)
>>>>>>>>>>>>>>>>>   File 
>>>>>>>>>>>>>>>>> "/usr/local/lib/python2.7/dist-packages/Django-1.6.11-py2.7.egg/django/core/management/__init__.py",
>>>>>>>>>>>>>>>>>  
>>>>>>>>>>>>>>>>> line 159, in call_command
>>>>>>>>>>>>>>>>>     return klass.execute(*args, **defaults)
>>>>>>>>>>>>>>>>>   File 
>>>>>>>>>>>>>>>>> "/usr/local/lib/python2.7/dist-packages/Django-1.6.11-py2.7.egg/django/core/management/base.py",
>>>>>>>>>>>>>>>>>  
>>>>>>>>>>>>>>>>> line 285, in execute
>>>>>>>>>>>>>>>>>     output = self.handle(*args, **options)
>>>>>>>>>>>>>>>>>   File 
>>>>>>>>>>>>>>>>> "/usr/local/lib/python2.7/dist-packages/Django-1.6.11-py2.7.egg/django/core/management/base.py",
>>>>>>>>>>>>>>>>>  
>>>>>>>>>>>>>>>>> line 415, in handle
>>>>>>>>>>>>>>>>>     return self.handle_noargs(**options)
>>>>>>>>>>>>>>>>>   File 
>>>>>>>>>>>>>>>>> "/usr/local/lib/python2.7/dist-packages/Django-1.6.11-py2.7.egg/django/contrib/staticfiles/management/commands/collectstatic.py",
>>>>>>>>>>>>>>>>>  
>>>>>>>>>>>>>>>>> line 173, in handle_noargs
>>>>>>>>>>>>>>>>>     collected = self.collect()
>>>>>>>>>>>>>>>>>   File 
>>>>>>>>>>>>>>>>> "/usr/local/lib/python2.7/dist-packages/Django-1.6.11-py2.7.egg/django/contrib/staticfiles/management/commands/collectstatic.py",
>>>>>>>>>>>>>>>>>  
>>>>>>>>>>>>>>>>> line 119, in collect
>>>>>>>>>>>>>>>>>     for original_path, processed_path, processed in 
>>>>>>>>>>>>>>>>> processor:
>>>>>>>>>>>>>>>>>   File 
>>>>>>>>>>>>>>>>> "/usr/local/lib/python2.7/dist-packages/django_pipeline-1.3.27-py2.7.egg/pipeline/storage.py",
>>>>>>>>>>>>>>>>>  
>>>>>>>>>>>>>>>>> line 32, in post_process
>>>>>>>>>>>>>>>>>     packager.pack_stylesheets(package)
>>>>>>>>>>>>>>>>>   File 
>>>>>>>>>>>>>>>>> "/usr/local/lib/python2.7/dist-packages/django_pipeline-1.3.27-py2.7.egg/pipeline/packager.py",
>>>>>>>>>>>>>>>>>  
>>>>>>>>>>>>>>>>> line 94, in pack_stylesheets
>>>>>>>>>>>>>>>>>     variant=package.variant, **kwargs)
>>>>>>>>>>>>>>>>>   File 
>>>>>>>>>>>>>>>>> "/usr/local/lib/python2.7/dist-packages/django_pipeline-1.3.27-py2.7.egg/pipeline/packager.py",
>>>>>>>>>>>>>>>>>  
>>>>>>>>>>>>>>>>> line 103, in pack
>>>>>>>>>>>>>>>>>     paths = self.compile(package.paths, force=True)
>>>>>>>>>>>>>>>>>   File 
>>>>>>>>>>>>>>>>> "/usr/local/lib/python2.7/dist-packages/django_pipeline-1.3.27-py2.7.egg/pipeline/packager.py",
>>>>>>>>>>>>>>>>>  
>>>>>>>>>>>>>>>>> line 97, in compile
>>>>>>>>>>>>>>>>>     return self.compiler.compile(paths, force=force)
>>>>>>>>>>>>>>>>>   File 
>>>>>>>>>>>>>>>>> "/usr/local/lib/python2.7/dist-packages/django_pipeline-1.3.27-py2.7.egg/pipeline/compilers/__init__.py",
>>>>>>>>>>>>>>>>>  
>>>>>>>>>>>>>>>>> line 55, in compile
>>>>>>>>>>>>>>>>>     return list(executor.map(_compile, paths))
>>>>>>>>>>>>>>>>>   File 
>>>>>>>>>>>>>>>>> "/usr/local/lib/python2.7/dist-packages/futures-3.0.5-py2.7.egg/concurrent/futures/_base.py",
>>>>>>>>>>>>>>>>>  
>>>>>>>>>>>>>>>>> line 581, in result_iterator
>>>>>>>>>>>>>>>>>     yield future.result()
>>>>>>>>>>>>>>>>>   File 
>>>>>>>>>>>>>>>>> "/usr/local/lib/python2.7/dist-packages/futures-3.0.5-py2.7.egg/concurrent/futures/_base.py",
>>>>>>>>>>>>>>>>>  
>>>>>>>>>>>>>>>>> line 405, in result
>>>>>>>>>>>>>>>>>     return self.__get_result()
>>>>>>>>>>>>>>>>>   File 
>>>>>>>>>>>>>>>>> "/usr/local/lib/python2.7/dist-packages/futures-3.0.5-py2.7.egg/concurrent/futures/thread.py",
>>>>>>>>>>>>>>>>>  
>>>>>>>>>>>>>>>>> line 55, in run
>>>>>>>>>>>>>>>>>     result = self.fn(*self.args, **self.kwargs)
>>>>>>>>>>>>>>>>>   File 
>>>>>>>>>>>>>>>>> "/usr/local/lib/python2.7/dist-packages/django_pipeline-1.3.27-py2.7.egg/pipeline/compilers/__init__.py",
>>>>>>>>>>>>>>>>>  
>>>>>>>>>>>>>>>>> line 40, in _compile
>>>>>>>>>>>>>>>>>     outdated=outdated, force=force)
>>>>>>>>>>>>>>>>>   File 
>>>>>>>>>>>>>>>>> "/usr/local/lib/python2.7/dist-packages/django_pipeline-1.3.27-py2.7.egg/pipeline/compilers/less.py",
>>>>>>>>>>>>>>>>>  
>>>>>>>>>>>>>>>>> line 22, in compile_file
>>>>>>>>>>>>>>>>>     return self.execute_command(command, 
>>>>>>>>>>>>>>>>> cwd=dirname(infile))
>>>>>>>>>>>>>>>>>   File 
>>>>>>>>>>>>>>>>> "/usr/local/lib/python2.7/dist-packages/django_pipeline-1.3.27-py2.7.egg/pipeline/compilers/__init__.py",
>>>>>>>>>>>>>>>>>  
>>>>>>>>>>>>>>>>> line 99, in execute_command
>>>>>>>>>>>>>>>>>     raise CompilerError(stderr)
>>>>>>>>>>>>>>>>> pipeline.exceptions.CompilerError: /bin/sh: 1: 
>>>>>>>>>>>>>>>>> /usr/local/lib/python2.7/dist-packages/ReviewBoard-2.5.12-py2.7.egg/reviewboard/../node_modules/less/bin/lessc:
>>>>>>>>>>>>>>>>>  
>>>>>>>>>>>>>>>>> not found
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> The path it tries to find lessc seems wrong as well. the 
>>>>>>>>>>>>>>>>> lessc should be in /usr/local/bin/lessc.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Has anyone run into the same issue?
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> -- 
>>>>>>>>>>>>>>>> Supercharge your Review Board with Power Pack: 
>>>>>>>>>>>>>>>> https://www.reviewboard.org/powerpack/
>>>>>>>>>>>>>>>> Want us to host Review Board for you? Check out RBCommons: 
>>>>>>>>>>>>>>>> https://rbcommons.com/
>>>>>>>>>>>>>>>> Happy user? Let us know! https://www.reviewboard.org/users/
>>>>>>>>>>>>>>>> --- 
>>>>>>>>>>>>>>>> You received this message because you are subscribed to the 
>>>>>>>>>>>>>>>> Google Groups "reviewboard" group.
>>>>>>>>>>>>>>>> To unsubscribe from this group and stop receiving emails 
>>>>>>>>>>>>>>>> from it, send an email to [email protected].
>>>>>>>>>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> -- 
>>>>>>>>>>>>>>> Christian Hammond
>>>>>>>>>>>>>>> President/CEO of Beanbag <https://www.beanbaginc.com/>
>>>>>>>>>>>>>>> Makers of Review Board <https://www.reviewboard.org/>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>> -- 
>>>>>>>>>>>>> Supercharge your Review Board with Power Pack: 
>>>>>>>>>>>>> https://www.reviewboard.org/powerpack/
>>>>>>>>>>>>> Want us to host Review Board for you? Check out RBCommons: 
>>>>>>>>>>>>> https://rbcommons.com/
>>>>>>>>>>>>> Happy user? Let us know! https://www.reviewboard.org/users/
>>>>>>>>>>>>> --- 
>>>>>>>>>>>>> You received this message because you are subscribed to the 
>>>>>>>>>>>>> Google Groups "reviewboard" group.
>>>>>>>>>>>>> To unsubscribe from this group and stop receiving emails from 
>>>>>>>>>>>>> it, send an email to [email protected].
>>>>>>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> -- 
>>>>>>>>>>>> Christian Hammond
>>>>>>>>>>>> President/CEO of Beanbag <https://www.beanbaginc.com/>
>>>>>>>>>>>> Makers of Review Board <https://www.reviewboard.org/>
>>>>>>>>>>>>
>>>>>>>>>>> -- 
>>>>>>>>>>> Supercharge your Review Board with Power Pack: 
>>>>>>>>>>> https://www.reviewboard.org/powerpack/
>>>>>>>>>>> Want us to host Review Board for you? Check out RBCommons: 
>>>>>>>>>>> https://rbcommons.com/
>>>>>>>>>>> Happy user? Let us know! https://www.reviewboard.org/users/
>>>>>>>>>>> --- 
>>>>>>>>>>> You received this message because you are subscribed to the 
>>>>>>>>>>> Google Groups "reviewboard" group.
>>>>>>>>>>> To unsubscribe from this group and stop receiving emails from 
>>>>>>>>>>> it, send an email to [email protected].
>>>>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> -- 
>>>>>>>>>> Christian Hammond
>>>>>>>>>> President/CEO of Beanbag <https://www.beanbaginc.com/>
>>>>>>>>>> Makers of Review Board <https://www.reviewboard.org/>
>>>>>>>>>>
>>>>>>>>> -- 
>>>>>>>>> Supercharge your Review Board with Power Pack: 
>>>>>>>>> https://www.reviewboard.org/powerpack/
>>>>>>>>> Want us to host Review Board for you? Check out RBCommons: 
>>>>>>>>> https://rbcommons.com/
>>>>>>>>> Happy user? Let us know! https://www.reviewboard.org/users/
>>>>>>>>> --- 
>>>>>>>>> You received this message because you are subscribed to the Google 
>>>>>>>>> Groups "reviewboard" group.
>>>>>>>>> To unsubscribe from this group and stop receiving emails from it, 
>>>>>>>>> send an email to [email protected].
>>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> -- 
>>>>>>>> Christian Hammond
>>>>>>>> President/CEO of Beanbag <https://www.beanbaginc.com/>
>>>>>>>> Makers of Review Board <https://www.reviewboard.org/>
>>>>>>>>
>>>>>>> -- 
>>>>>> Supercharge your Review Board with Power Pack: 
>>>>>> https://www.reviewboard.org/powerpack/
>>>>>> Want us to host Review Board for you? Check out RBCommons: 
>>>>>> https://rbcommons.com/
>>>>>> Happy user? Let us know! https://www.reviewboard.org/users/
>>>>>> --- 
>>>>>> You received this message because you are subscribed to the Google 
>>>>>> Groups "reviewboard" group.
>>>>>> To unsubscribe from this group and stop receiving emails from it, 
>>>>>> send an email to [email protected].
>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> -- 
>>>>> Christian Hammond
>>>>> President/CEO of Beanbag <https://www.beanbaginc.com/>
>>>>> Makers of Review Board <https://www.reviewboard.org/>
>>>>>
>>>> -- 
>>> Supercharge your Review Board with Power Pack: 
>>> https://www.reviewboard.org/powerpack/
>>> Want us to host Review Board for you? Check out RBCommons: 
>>> https://rbcommons.com/
>>> Happy user? Let us know! https://www.reviewboard.org/users/
>>> --- 
>>> You received this message because you are subscribed to the Google 
>>> Groups "reviewboard" group.
>>> To unsubscribe from this group and stop receiving emails from it, send 
>>> an email to [email protected] <javascript:>.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>
>>
>> -- 
>> Christian Hammond
>> President/CEO of Beanbag <https://www.beanbaginc.com/>
>> Makers of Review Board <https://www.reviewboard.org/>
>>
>
>
>
> -- 
> Christian Hammond
> President/CEO of Beanbag <https://www.beanbaginc.com/>
> Makers of Review Board <https://www.reviewboard.org/>
>

-- 
Supercharge your Review Board with Power Pack: 
https://www.reviewboard.org/powerpack/
Want us to host Review Board for you? Check out RBCommons: 
https://rbcommons.com/
Happy user? Let us know! https://www.reviewboard.org/users/
--- 
You received this message because you are subscribed to the Google Groups 
"reviewboard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to