[bugzilla/f18] Patch bugzilla so that it will cache bz_locations() and not memorize it. Clean up our own patch to B
Emmanuel Seyman
eseyman at fedoraproject.org
Thu Nov 14 23:46:30 UTC 2013
commit 2cc07694781d8d5bdc663ba3e10f396e8bf6475a
Author: Emmanuel Seyman <emmanuel at seyman.fr>
Date: Fri Nov 15 00:46:33 2013 +0100
Patch bugzilla so that it will cache bz_locations() and not memorize it.
Clean up our own patch to Bugzilla/Constants.pm so that the PROJECT
environment variable can be used.
bugzilla-project-mod_perl.patch | 41 +++++++++++++++++++++++++++++++++++++++
bugzilla.spec | 8 ++++++-
2 files changed, 48 insertions(+), 1 deletions(-)
---
diff --git a/bugzilla-project-mod_perl.patch b/bugzilla-project-mod_perl.patch
new file mode 100644
index 0000000..a29632a
--- /dev/null
+++ b/bugzilla-project-mod_perl.patch
@@ -0,0 +1,41 @@
+diff -up ./Bugzilla/Constants.pm.orig ./Bugzilla/Constants.pm
+--- ./Bugzilla/Constants.pm.orig 2013-11-14 23:21:44.947050044 +0100
++++ ./Bugzilla/Constants.pm 2013-11-14 23:23:55.873245730 +0100
+@@ -591,6 +591,13 @@ use constant AUDIT_CREATE => '__create__
+ use constant AUDIT_REMOVE => '__remove__';
+
+ sub bz_locations {
++ # Force memoize() to re-compute data per project, to avoid
++ # sharing the same data across different installations.
++ return _bz_locations($ENV{'PROJECT'});
++}
++
++sub _bz_locations {
++ my $project = shift;
+ # We know that Bugzilla/Constants.pm must be in %INC at this point.
+ # So the only question is, what's the name of the directory
+ # above it? This is the most reliable way to get our current working
+@@ -607,12 +614,13 @@ sub bz_locations {
+ $libpath =~ /(.*)/;
+ $libpath = $1;
+
+- my ($project, $localconfig, $datadir);
+- if ($ENV{'PROJECT'} && $ENV{'PROJECT'} =~ /^(\w+)$/) {
++ my ($localconfig, $datadir);
++ if ($project && $project =~ /^(\w+)$/) {
+ $project = $1;
+ $localconfig = "localconfig.$project";
+ $datadir = "data/$project";
+ } else {
++ $project = undef;
+ $localconfig = "localconfig";
+ $datadir = "data";
+ }
+@@ -647,6 +655,6 @@ sub bz_locations {
+
+ # This makes us not re-compute all the bz_locations data every time it's
+ # called.
+-BEGIN { memoize('bz_locations') };
++BEGIN { memoize('_bz_locations') };
+
+ 1;
diff --git a/bugzilla.spec b/bugzilla.spec
index f5048ca..7dbc0d1 100644
--- a/bugzilla.spec
+++ b/bugzilla.spec
@@ -6,7 +6,7 @@ URL: http://www.bugzilla.org/
Name: bugzilla
Version: 4.2.7
Group: Applications/Publishing
-Release: 1%{?dist}
+Release: 2%{?dist}
License: MPLv1.1
Source0: http://ftp.mozilla.org/pub/mozilla.org/webtools/bugzilla-%{version}.tar.gz
Source1: bugzilla-httpd-conf
@@ -14,6 +14,7 @@ Source2: README.fedora.bugzilla
Source3: bugzilla.cron-daily
Patch0: bugzilla-rw-paths.patch
Patch1: bugzilla-yum.patch
+Patch1: bugzilla-project-mod_perl.patch
BuildArch: noarch
Requires: webserver, patchutils, perl(SOAP::Lite), which
@@ -104,6 +105,7 @@ Contributed scripts and functions for Bugzilla
%setup -q -n %{name}-%{version}
%patch0 -p1
%patch1 -p1
+%patch2 -p1
rm -f Bugzilla/Constants.pm.orig
rm -f Bugzilla/Install/Requirements.pm.orig
# Remove bundled libs
@@ -220,6 +222,10 @@ popd > /dev/null)
%{bzinstallprefix}/bugzilla/contrib/syncLDAP.pl
%changelog
+* Fri Nov 15 2013 Emmanuel Seyman <emmanuel at seyman.fr> - 4.2.7-2
+- Add patch to cache bz_locations() (bmo #843457)
+- Fix constants patch to honor the PROJECT environment variable (#911943)
+
* Fri Oct 18 2013 Emmanuel Seyman <emmanuel at seyman.fr> - 4.2.7-1
- Update to 4.2.7 (security updates)
- Patch bugzilla to write compiled templates under /var (#949130)
More information about the scm-commits
mailing list