Debian 12 Bookworm

78 views
Skip to first unread message

Karel Pičman

unread,
Jul 14, 2023, 9:36:35 AM7/14/23
to Review Board Community
Has anybody succeeded in installing of ReviewBoard on Debian 12 Bookworm? I've tried an upgrade Debian 11 -> 12 with installed ReviewBoard 5.0.5 and then also a clear installation on Debian 12. The installation/upgrade in both cases went quite well without any errors. But when I open installed ReviewBoard in a browser, it always fails with the same error message:

[wsgi:error] [pid 2939030] pkg_resources.DistributionNotFound: The 'ReviewBoard' distribution was not found and is required by the application


Christian Hammond

unread,
Jul 14, 2023, 3:58:18 PM7/14/23
to revie...@googlegroups.com
Hi Karel,

Can you walk me through how you handled the clean installation? Debian ships with a newer version of Python which is locked down to new global package installation, removes some important system packages, and impacts the search paths. It's a major breaking release. We put out some fixes in 5.0.5, and have more coming in 5.0.6, though technically we're not officially supporting Debian 12 yet for these reasons outside of a support contract (though we will be as of Review Board 6 RC 1).

I'll try to give you some instructions on getting this to run with the new requirements on Debian 12. In these, I'm going to assume two things:

1. Your Virtual Environment path (which I'll cover below) is at /opt/reviewboard
2. Your Review Board site directory is at /var/www/reviewboard

Please adjust any of the paths below to the correct directories for your install.

I'm also writing this to be generally useful to others who find this post.


Now, to get working again, try the following steps:

1. You'll need to make sure you've set up a Python Virtual Environment as per the Installation Guide.

    This is a self-contained Python install, built using your main Python install. One set up, this is where Review Board will look for packages, and where you'll run tools like `pip` or `rb-site`.

2. If you're copying over a new site directory (rather than re-running `rb-site install`), you'll need to make a manual change to your site directory:

    $ cd /var/www/reviewboard
    $ ln -s /opt/reviewboard venv
    
    This places a "venv" symlink in your site directory to point to your Virtual Environment. Review Board will look for this for Python packages going forward.

3. Replace your /var/www/reviewboard/htdocs/reviewboard.wsgi with the attached copy, and modify it to point to your correct site directory (changing the REVIEWBOARD_SITEDIR variable).

    These changes will remove some legacy package requirement statements, and tell Python where to find your Review Board.

4. Restart Apache.

If all goes well, things should be working again. If not, we'll need to debug this with you.

Again Debian 12 is not yet fully supported. There's a lot changing in the Python ecosystem right now, and this year's Linux distros are impacting or breaking a lot of Python-based tools and services. We're working on updating everything to work on this, and plan to be fully supporting Debian 12 without a support contract on Review Board 6.

Christian

On Fri, Jul 14, 2023 at 6:36 AM Karel Pičman <karel....@lbcfree.net> wrote:
Has anybody succeeded in installing of ReviewBoard on Debian 12 Bookworm? I've tried an upgrade Debian 11 -> 12 with installed ReviewBoard 5.0.5 and then also a clear installation on Debian 12. The installation/upgrade in both cases went quite well without any errors. But when I open installed ReviewBoard in a browser, it always fails with the same error message:

[wsgi:error] [pid 2939030] pkg_resources.DistributionNotFound: The 'ReviewBoard' distribution was not found and is required by the application


--
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 "Review Board Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email to reviewboard...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/reviewboard/c313d292-c9f1-4961-ac7e-e21f6f51ef04n%40googlegroups.com.


--
Christian Hammond
President/CEO of Beanbag
Makers of Review Board
reviewboard.wsgi

Karel Pičman

unread,
Jul 17, 2023, 4:48:39 AM7/17/23
to Review Board Community
Hello Christian,
Thank you very much for your inputs. I've applied all you recommendations. Though, it's still not working. Here is a complete procedure:

sudo -s

1. Virtual environment

virtualenv -p python3.11 /opt/reviewboard

2. Database

/opt/reviewboard/bin/pip install -U 'ReviewBoard[mysql]'

3. Subversion

$ /opt/reviewboard/bin/pip install wheel
$ curl https://pysvn.reviewboard.org | /opt/reviewboard/bin/python

4. Site

/opt/reviewboard/bin/rb-site install /var/www/reviewboard
cd /var/www/reviewboard
chown -R www-data data
chown -R www-data htdocs/media/uploaded
chown -R www-data htdocs/media/ext
chown -R www-data htdocs/static/ext

5. Apache

cd /etc/apache2
cp /var/www/reviewboard/conf/webconfs/apache-wsgi.conf sites-available/reviewboard.conf
a2ensite reviewboard.conf

6. Your changes

cd /var/www/reviewboard
ln -s /opt/reviewboard venv
vi /var/www/reviewboard/htdocs/reviewboard.wsgi

import os
import sys

sys.path.insert(
    0,
    os.path.join(os.path.dirname(__file__), '..', 'venv', 'lib',
                 'python%s.%s' % sys.version_info[:2],
                 'site-packages'))


os.environ['REVIEWBOARD_SITEDIR'] = '/var/www/reviewboard'

from reviewboard.wsgi import application

7. Restart Apache

systemctl restart apache2

8. Testing the app

curl -I http://reviewboard.kontron.local
HTTP/1.1 500 Internal Server Error

tail -f /var/www/reviewboard/logs/error_log

[Mon Jul 17 08:38:30.322705 2023] [wsgi:error] [pid 2166:tid 140674598954688] [client 192.168.4.119:57490] mod_wsgi (pid=2166): Failed to exec Python script file '/var/www/reviewboard/htdocs/reviewboard.wsgi'.
[Mon Jul 17 08:38:30.323196 2023] [wsgi:error] [pid 2166:tid 140674598954688] [client 192.168.4.119:57490] mod_wsgi (pid=2166): Exception occurred processing WSGI script '/var/www/reviewboard/htdocs/reviewboard.wsgi'.
[Mon Jul 17 08:38:30.325707 2023] [wsgi:error] [pid 2166:tid 140674598954688] [client 192.168.4.119:57490] Traceback (most recent call last):
[Mon Jul 17 08:38:30.327323 2023] [wsgi:error] [pid 2166:tid 140674598954688] [client 192.168.4.119:57490]   File "/var/www/reviewboard/htdocs/reviewboard.wsgi", line 13, in <module>
[Mon Jul 17 08:38:30.327497 2023] [wsgi:error] [pid 2166:tid 140674598954688] [client 192.168.4.119:57490]     from reviewboard.wsgi import application
[Mon Jul 17 08:38:30.327611 2023] [wsgi:error] [pid 2166:tid 140674598954688] [client 192.168.4.119:57490]   File "/var/www/reviewboard/htdocs/../venv/lib/python3.11/site-packages/reviewboard/wsgi.py", line 92, in <module>
[Mon Jul 17 08:38:30.327704 2023] [wsgi:error] [pid 2166:tid 140674598954688] [client 192.168.4.119:57490]     application = get_wsgi_application()
[Mon Jul 17 08:38:30.327822 2023] [wsgi:error] [pid 2166:tid 140674598954688] [client 192.168.4.119:57490]                   ^^^^^^^^^^^^^^^^^^^^^^
[Mon Jul 17 08:38:30.327937 2023] [wsgi:error] [pid 2166:tid 140674598954688] [client 192.168.4.119:57490]   File "/opt/reviewboard/lib/python3.11/site-packages/django/core/wsgi.py", line 12, in get_wsgi_application
[Mon Jul 17 08:38:30.328000 2023] [wsgi:error] [pid 2166:tid 140674598954688] [client 192.168.4.119:57490]     django.setup(set_prefix=False)
[Mon Jul 17 08:38:30.328081 2023] [wsgi:error] [pid 2166:tid 140674598954688] [client 192.168.4.119:57490]   File "/opt/reviewboard/lib/python3.11/site-packages/django/__init__.py", line 24, in setup
[Mon Jul 17 08:38:30.328342 2023] [wsgi:error] [pid 2166:tid 140674598954688] [client 192.168.4.119:57490]     apps.populate(settings.INSTALLED_APPS)
[Mon Jul 17 08:38:30.328920 2023] [wsgi:error] [pid 2166:tid 140674598954688] [client 192.168.4.119:57490]   File "/opt/reviewboard/lib/python3.11/site-packages/django/apps/registry.py", line 83, in populate
[Mon Jul 17 08:38:30.329004 2023] [wsgi:error] [pid 2166:tid 140674598954688] [client 192.168.4.119:57490]     raise RuntimeError("populate() isn't reentrant")
[Mon Jul 17 08:38:30.329164 2023] [wsgi:error] [pid 2166:tid 140674598954688] [client 192.168.4.119:57490] RuntimeError: populate() isn't reentrant

Karel Pičman

unread,
Jul 17, 2023, 5:00:38 AM7/17/23
to Review Board Community
Omitted `opt/reviewboard/bin/pip install ReviewBoard` in point 1.

Christian Hammond

unread,
Jul 21, 2023, 7:30:13 PM7/21/23
to revie...@googlegroups.com
Hi Karel,

It looks like it's finding and starting up Review Board now, but something else is interfering with startup within the Review Board environment. Unfortunately it's not saying what it's trying to load that's causing this.

We did get a previous note from someone specific to Debian a while back:

"I hit something similar on Debian Stable (11).  The default
/etc/memcached.conf included '-l 127.0.0.1' but not '-l ::1'.  The
attempted connection was made over ipv6 (normal behavior?) and failed.
Adding '-l ::1' fixed it."

Can you check that and give it a try?

If that doesn't help, can you gather a few more pieces of information:

1) What Apache worker type do you use? You can run `httpd -V` or `apache2 -V` to see this (look for "Server MPM" and all indented information, and send that along).

2) Does your Review Board installation use any extensions or have any non-default configuration in conf/settings_local.py?

3) How old is the Review Board server in general? Do you know what the original version of Review Board was?

If the above isn't the cause, then we may require more one-on-one support to figure out what code is breaking Django initialization, since there's just not much to go on with the available information.

Christian

Karel Pičman

unread,
Jul 24, 2023, 11:37:26 AM7/24/23
to Review Board Community
Adding '-l ::1' did the trick. Not it works. Thank you very much.

Christian Hammond

unread,
Jul 25, 2023, 4:04:49 PM7/25/23
to revie...@googlegroups.com
That's great! We'll see if we can bullet-proof this a bit (the failure is possibly in Django), but will also make sure the documentation is updated to cover this.

Christian

Reply all
Reply to author
Forward
0 new messages