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]
> 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]> 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/fortin
>>>>> et/build/node_modules/less/bin/lessc
>>>>> PIPELINE_UGLIFYJS_BINARY1 = /src2/rb-extension-pack/fortin
>>>>> et/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/di
>>>>>> st-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/../no
>>>>>> de_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_B
>>>>>>>>>> INARY)
>>>>>>>>>> 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_mo
>>>>>>>>>> dules/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_mo
>>>>>>>>>> dules/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/ugl
>>>>>>>>>>>>>>>> ify-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/ugl
>>>>>>>>>>>>>>>> ify-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-p
>>>>>>>>>>>>>>>> y2.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-py
>>>>>>>>>>>>>>>> 2.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].
>> 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