summaryrefslogtreecommitdiff
path: root/devel/rt3/patches
diff options
context:
space:
mode:
authorcube <cube@pkgsrc.org>2005-09-21 21:23:46 +0000
committercube <cube@pkgsrc.org>2005-09-21 21:23:46 +0000
commitb709ff4fecb4c0c9bf535ff8966abd630472aa2b (patch)
treeb4dd64fc8cb173090226159328217bc84635f301 /devel/rt3/patches
parente8cee2eee3efd865db143957a1d08cba1cdaccdc (diff)
downloadpkgsrc-b709ff4fecb4c0c9bf535ff8966abd630472aa2b.tar.gz
Mason API has changed after version 1.28. Add a patch to catch up with the
change (it breaks for callbacks). Inspired from the commit to solve the same issue on the 3.4 branch of RT. Bump PKGREVISION and Mason version requirement.
Diffstat (limited to 'devel/rt3/patches')
-rw-r--r--devel/rt3/patches/patch-ab34
1 files changed, 34 insertions, 0 deletions
diff --git a/devel/rt3/patches/patch-ab b/devel/rt3/patches/patch-ab
new file mode 100644
index 00000000000..ee6f03d11e0
--- /dev/null
+++ b/devel/rt3/patches/patch-ab
@@ -0,0 +1,34 @@
+$NetBSD: patch-ab,v 1.1 2005/09/21 21:23:46 cube Exp $
+
+--- html/Elements/Callback.orig 2004-07-29 02:08:11.000000000 +0200
++++ html/Elements/Callback
+@@ -49,7 +49,7 @@ my (%cache, $check);
+ <%init>
+ # checks for inode change time for each callback directory
+ my $new_check = join(
+- $;, map { $_->[1] => (stat("$_->[1]/Callbacks"))[10] } $m->interp->resolver->comp_root_array
++ $;, map { $_->[1] => (stat("$_->[1]/Callbacks"))[10] } $m->interp->comp_root_array
+ ) or return;
+
+ $Page = $m->callers(1)->path unless ($Page);
+@@ -64,8 +64,18 @@ else {
+
+ if (!$callbacks) {
+ my $path = "/Callbacks/*$Page/$_CallbackName";
+- $callbacks = [ $m->interp->resolver->glob_path($path) ];
+- @$callbacks = grep !/^\.|~$/, @$callbacks; #skip backup files
++
++ my @roots = map { $_->[1] } $m->interp->comp_root_array;
++ my %seen;
++
++ for my $root (@roots) {
++ push @$callbacks,
++ # Skip backup files, files without a leading package name,
++ # and files we've already seen
++ grep { !/^\.|~$/
++ and not $seen{$_}++ }
++ $m->interp->resolver->glob_path($path, $root);
++ }
+
+ #skip files without a package
+ my $invalid_base = "/Callbacks/$Page/$_CallbackName";