#991: Test Plumi Installer / Buildout on Latest Stable Debian Release - fix any
errors so it will install and run
-----------------------------------+----------------------------------------
Reporter: anna | Owner:
Type: task | Status: new
Priority: blocker | Milestone: 4.5.2
Component: Architecture | Severity: New Ticket
Resolution: | Keywords:
Who will test this: And |
-----------------------------------+----------------------------------------
Comment (by sam):
== Progress to date:
Installation of Plumi is almost intractable due to issues with old
dependencies. Here are my notes so far:
Using these instructions as a guide:
https://mgogoulos.trinket.io/plumi-4-5#/installation/installation
and hence also:
https://github.com/plumi/plumi.app/blob/master/docs/INSTALL.rst
Modify the instructions with the following:
* also add install of `libssl-dev` to system preparation
* make sure site.cfg is edited to your suit your local preferences
* I needed to run `bootstrap` && `buildout` twice
* don't run `bootstrap` in `ffmpeg` sub-directory: just do the buildout
later (see below)
* pre-install libjpeg62-turbo-dev instead of `libjpeg62-dev`
* bootstrap fails as per: https://github.com/plumi/plumi.app/issues/7 ..
accordingly use:
the `update_bootstrap` branch of plumi.app instead: ` git checkout
update_bootstrap`
... UPDATE: due to changed dependencies in the the bootstrap script in
this branch now fails - as per #993 this is the solution: "The key seems
to be installing the 'distribute' package version 0.6.49 manually as per
https://pypi.python.org/pypi/distribute/0.6.49:"
{{{
Download the source tarball, uncompress it, then run the install command::
$ curl -O
http://pypi.python.org/packages/source/d/distribute/distribute-0.6.49.tar.gz
$ tar -xzvf distribute-0.6.49.tar.gz
$ cd distribute-0.6.49
$ python setup.py install
}}}
* then (as usual) run ../python/bin/python ./bootstrap.py (using the
original Plumi bootstrap.py) and then ./bin/buildout -Nv
```
* run the `buildout` for ffmpeg:
{{{
$ cd ffmpeg/
$ buildout -v
}}}
=== fixing uWSGI
There are a couple of problems with the transcode daemon not reporting
errors in enough detail and/or breaking instead of reporting errors. Once
I got past those, it seems that ffmpeg is failing with "Invalid data found
when processing input". This turns out to be due to uWSGI segfaulting.
This issue is the similar to to this:
http://davidjb.com/blog/2013/05/uwsgi-and-libxml2-conflicts-aka-
installing-uwsgi-with-a-custom-libxml2/
... namely, buildout gets confused and builds uWSGI with the wrong XML
library in places.
Solve this by removing libxml2 from the system (which necessarily
removes things that depend on it: libxml2-dev, libxslt, libxslt1-dev,
etc. .. - keep track of these if you need to reinstall them), moving the
old uwsgi build and re-running the buildout. Thus uWSGI is built using the
lxml that Plumi created, instead of a mixture of system and Plumi lxml
libraries.
This causes a problem with the nginx build, so reinstall libxslt1-dev and
re-run the buildout again, and finally it works:
{{{
sudo ./bin/supervisord
plumi@dream:~/plumi.app$ ./bin/supervisorctl status
cache RUNNING pid 6738, uptime 0:00:08
nginx RUNNING pid 6739, uptime 0:00:08
ploneftp RUNNING pid 6737, uptime 0:00:08
transcodedaemon RUNNING pid 6736, uptime 0:00:08
uwsgi RUNNING pid 6734, uptime 0:00:08
worker RUNNING pid 6735, uptime 0:00:08
zeo RUNNING pid 6733, uptime 0:00:08
}}}
* Currently we have a new problem when trying to start / restart
transcoding:
{{{
/home/plumi/plumi.app/eggs/Products.CMFCore-2.2.6-py2.7.egg/Products/CMFCore/DirectoryView.py:493:
UserWarning: DirectoryView plumi_content_custom_templates refers to a non-
existing path 'plumi.content:skins/plumi_content_custom_templates'
(self.id, reg_key), UserWarning)
2015-08-20 10:04:31,724 WARNI [collective.transcode][uWSGIWorker2Core0]
transcode entry timed out: (29bdb70b1220445c8169a51b4537aa19, video_file,
jpeg, bb516947768fbb05b41a2487f200716e)
Traceback (most recent call last):
File
"/home/plumi/plumi.app/eggs/repoze.retry-1.0-py2.7.egg/repoze/retry/__init__.py",
line 90, in __call__
app_iter = self.application(environ, replace_start_response)
File
"/home/plumi/plumi.app/eggs/repoze.tm2-1.0b2-py2.7.egg/repoze/tm/__init__.py",
line 24, in __call__
result = self.application(environ, save_status_and_headers)
File
"/home/plumi/plumi.app/eggs/repoze.vhm-0.14-py2.7.egg/repoze/vhm/middleware.py",
line 106, in __call__
return self.application(environ, start_response)
File
"/home/plumi/plumi.app/eggs/Zope2-2.13.15-py2.7.egg/ZPublisher/WSGIPublisher.py",
line 282, in publish_module
response = _publish(request, 'Zope2')
File
"/home/plumi/plumi.app/eggs/Zope2-2.13.15-py2.7.egg/ZPublisher/WSGIPublisher.py",
line 205, in publish
bind=1,
File
"/home/plumi/plumi.app/eggs/Zope2-2.13.15-py2.7.egg/ZPublisher/mapply.py",
line 77, in mapply
if debug is not None: return debug(object,args,context)
File
"/home/plumi/plumi.app/eggs/Zope2-2.13.15-py2.7.egg/ZPublisher/Publish.py",
line 46, in call_object
result=apply(object,args) # Type s<cr> to step into published object.
File
"/home/plumi/plumi.app/src/plumi.content/plumi/content/browser/reTranscode.py",
line 13, in __call__
res = tt.add(self.context, force=True)
File
"/home/plumi/plumi.app/src/collective.transcode.star/collective/transcode/star/utility.py",
line 154, in add
job = async.queueJobWithDelay(None, temp_time, transcode_request, obj,
fieldName, UID, payload, secret, address, profile, options, portal_url)
File
"/home/plumi/plumi.app/eggs/plone.app.async-1.6-py2.7.egg/plone/app/async/service.py",
line 139, in queueJobWithDelay
func, context, *args, **kwargs)
File
"/home/plumi/plumi.app/eggs/plone.app.async-1.6-py2.7.egg/plone/app/async/service.py",
line 127, in queueJobInQueueWithDelay
queue = self.getQueues()[queue]
File
"/home/plumi/plumi.app/eggs/plone.app.async-1.6-py2.7.egg/plone/app/async/service.py",
line 100, in getQueues
db = getUtility(IAsyncDatabase)
File
"/home/plumi/plumi.app/eggs/zope.component-3.9.5-py2.7.egg/zope/component/_api.py",
line 169, in getUtility
raise ComponentLookupError(interface, name)
zope.component.interfaces.ComponentLookupError: (<InterfaceClass
plone.app.async.interfaces.IAsyncDatabase>, '')
}}}
--
Ticket URL: <http://plumi.org/ticket/991#comment:4>
Plumi <http://plumi.org/>
Plumi - FOSS Video Sharing Platform
_______________________________________________
Discuss mailing list
[email protected]
http://lists.plumi.org/listinfo/discuss