Bug#1004344: buildbot: Fails to load the web interface

2022-01-25 Thread Samuel Thibault
Robin Jarry, le mar. 25 janv. 2022 17:34:19 +0100, a ecrit:
> this is a known issue. The buildbot-www package cannot be integrated in
> Debian due to tons of missing JS dependencies. See buildbot(7) and bug
> #883529 for more details.

Ah, ok, thanks!

For some reason manpages are not getting found on the box, but I could
read it with the complete path.

Samuel



Bug#1004344: buildbot: Fails to load the web interface

2022-01-25 Thread Robin Jarry
Hi,

this is a known issue. The buildbot-www package cannot be integrated in
Debian due to tons of missing JS dependencies. See buildbot(7) and bug
#883529 for more details.

Since then, buildbot has changed from coffeescript+gulp to plain
JS+webpack. This should make it easier to package the missing
dependencies and support packaging the www plugins. Still far from
a trivial task unfortunately... I am not even sure how to proceed.
I would really appreciate some help on the matter.

In the meantime, you may install buildbot-www via pip (although this is
not a very nice workaround).

Thanks.



Bug#1004344: buildbot: Fails to load the web interface

2022-01-25 Thread Samuel Thibault
Package: buildbot
Version: 2.10.1-1
Severity: important

Hello,

Our buildbot instances has the web interface enabled:

c['www'] = dict(port=8080)

But buildbot doesn't want to start:

2022-01-24 20:36:49+0100 [-] adding 834 new builders, removing 0
2022-01-24 20:37:17+0100 [-] adding 441 new schedulers, removing 0
2022-01-24 20:37:34+0100 [-] while starting BuildMaster
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/twisted/internet/defer.py", line 
1418, in _inlineCallbacks
result = g.send(result)
  File "/usr/lib/python3/dist-packages/buildbot/util/service.py", line 
49, in reconfigServiceWithBuildbotConfig
yield svc.reconfigServiceWithBuildbotConfig(new_config)
  File "/usr/lib/python3/dist-packages/twisted/internet/defer.py", line 
1613, in unwindGenerator
return _cancellableInlineCallbacks(gen)
  File "/usr/lib/python3/dist-packages/twisted/internet/defer.py", line 
1529, in _cancellableInlineCallbacks
_inlineCallbacks(None, g, status)
---  ---
  File "/usr/lib/python3/dist-packages/buildbot/master.py", line 304, 
in startService
yield self.reconfigServiceWithBuildbotConfig(self.config)
  File "/usr/lib/python3/dist-packages/buildbot/util/service.py", line 
49, in reconfigServiceWithBuildbotConfig
yield svc.reconfigServiceWithBuildbotConfig(new_config)
  File "/usr/lib/python3/dist-packages/twisted/internet/defer.py", line 
1418, in _inlineCallbacks
result = g.send(result)
  File "/usr/lib/python3/dist-packages/buildbot/www/service.py", line 
215, in reconfigServiceWithBuildbotConfig
self.setupSite(new_config)
  File "/usr/lib/python3/dist-packages/buildbot/www/service.py", line 
285, in setupSite
raise RuntimeError("could not find buildbot-www; is it installed? 
%s" % (str(info(

The str(info()) part is an addition on our side to know what plugins
were actually detected, and we have: [...] 'www': {}}

so nothing is detected for www. Indeed, looking at the source code in
/usr/lib/python3/dist-packages/buildbot/plugins/db.py that detects
plugins:

def _tree(self):
if self._real_tree is None:
self._real_tree = _NSNode()
for entry in iter_entry_points(self._group):

This is using pkg_resources.iter_entry_points to get the list of python
classes etc. but that reports nothing, for instance in a plain chroot:

# apt install buildbot
# python3 -c "import pkg_resources ; 
print(list(pkg_resources.iter_entry_points('buildbot.www')))"
[]

while /usr/lib/python3/dist-packages/buildbot/www/ is really there. One
thing I noticed is that
/usr/lib/python3/dist-packages/buildbot-2.0.1.post2.egg-info/entry_points.txt
doesn't list anything for buildbot-www.

We had to revert to the manual installation of buildbot, the Debian
package was unusable for us.

Samuel

-- System Information:
Debian Release: bookworm/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable-debug'), (500, 
'testing-debug'), (500, 'stable-security'), (500, 'stable-debug'), (500, 
'proposed-updates-debug'), (500, 'proposed-updates'), (500, 
'oldstable-proposed-updates-debug'), (500, 'oldstable-proposed-updates'), (500, 
'oldoldstable'), (500, 'buildd-unstable'), (500, 'unstable'), (500, 'stable'), 
(500, 'oldstable'), (1, 'experimental-debug'), (1, 'buildd-experimental'), (1, 
'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 5.16.0 (SMP w/8 CPU threads; PREEMPT)
Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages buildbot depends on:
ii  adduser   3.118
ii  cdebconf [debconf-2.0]0.261
ii  debconf [debconf-2.0] 1.5.79
ii  dpkg  1.21.1
ii  libc6 2.33-2
ii  libjs-sphinxdoc   4.3.2-1
ii  lsb-base  11.1.0
ii  passwd1:4.8.1-2
pn  python
pn  python-dateutil   
pn  python-jinja2 
pn  python-migrate
pn  python-sqlalchemy 
pn  python-twisted
pn  python-twisted-core   
pn  python-twisted-web
pn  python-twisted-words  
ii  python3   3.9.7-1
pn  python3-alembic   
pn  python3-autobahn  
ii  python3-dateutil  2.8.1-6
pn  python3-future
ii  python3-idna  3.2-2
ii  python3-jinja23.0.1-2
ii  python3-jwt   2.1.0-1
pn  python3-migrate   
ii  python3-openssl   21.0.0-1
ii  python3-pkg-resources 59.6.0-1.2
ii  python3-service-identity  18.1.0-6
pn  python3-sqlalchemy
ii  python3-twisted   20.3.0-7
pn  python3-txaio 
ii