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.
