Reputation: 46
I am attempting to install Bugzilla on a Windows 10 machine using this guide:
https://bugzilla.readthedocs.io/en/latest/installing/windows.html#
Apache 2.4, Perl 5.28.2, and MySQL 8.0 are installed and functioning. I have installed all of the required Perl modules using the 'install-modules.pl --all' command. I can pull up the Bugzilla page, although its the plain text version.
The issue is running the checksetup.pl the last time. It checks for all installed modules, then gives me this:
Removing existing compiled templates...
Precompiling templates...done.
Initializing "Dependency Tree Changes" email_setting ...
Initializing "Product/Component Changes" email_setting ...
Use of uninitialized value in numeric eq (==) at Bugzilla/Install/DB.pm line 2688.
The regular expression you provided '^[^,]+{' is not valid. The error
was: Syntax error in regular expression on line 1, character 7..
I found the regular expression in the DB.pm file in sub _add_password_salt_separator
. (Line 4110)
Here is the chunk of code that seems to be the problem child:
my $profiles
= $dbh->selectall_arrayref(
"SELECT userid, cryptpassword FROM profiles WHERE ("
. $dbh->sql_regexp("cryptpassword", "'^[^,]+{'")
. ")");
I tried reloading Bugzilla to see if it was just an issue with the download or configuration, but after round 3, I still get the same error.
I tried looking up the expression and it doesn't seem to make any sense. I am not familiar with regular expressions so I don't know where to go with this issue. Any help getting this system running is appreciated.
Upvotes: 1
Views: 1410
Reputation: 385496
It appears that MySQL no longer allows an unescaped {
to be used to match a {
.
This probably happened when MySQL started using a new regex library with better Unicode support in version 8.0.4.
In Bugzilla/Install/DB.pm
, replace
"'^[^,]+{'"
with
"'^[^,]+\\\\{'"
I submitted a ticket.
For those curious about why so many slashes:
$dbh->sql_regexp
expects its second argument to be SQL that generates a MySQL regex pattern.
"'\\\\{"
produces the string '\\{'
.'\\{'
is used as SQL code.'\\{'
produces the string \{
.\{
is used as a regex pattern.\{
matches a {
.Upvotes: 4