* [PATCH] xen: Install unstripped version -syms version into /usr/lib/debug
@ 2015-06-26 9:41 Ian Campbell
2015-06-26 9:48 ` Andrew Cooper
0 siblings, 1 reply; 8+ messages in thread
From: Ian Campbell @ 2015-06-26 9:41 UTC (permalink / raw)
To: jbeulich, ian.jackson, tim, keir; +Cc: Ian Campbell, xen-devel
xen-*-syms cannot actually be booted, so putting it in /boot is a bit
misleading. It also happens to cause a warning from update-grub (so at
least it doesn't end up in grub.cfg)
/usr/lib/debug seems to be a pretty common path for installing such
debug info.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
---
INSTALL | 4 +++-
config/StdGNU.mk | 1 +
config/SunOS.mk | 1 +
xen/Makefile | 5 +++--
4 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/INSTALL b/INSTALL
index 10cf879..680dcb2 100644
--- a/INSTALL
+++ b/INSTALL
@@ -196,8 +196,10 @@ OCAMLFIND_DESTDIR= and OCAMLFIND_METADIR= will have the same effect.
OCAMLDESTDIR=
The xen subsystem will install the hypervisor into fixed locations.
-BOOT_DIR defaults to /boot, EFI_DIR to /usr/lib64/efi.
+BOOT_DIR defaults to /boot, DERBUG_DIR defaults to /usr/lib/debugt and
+EFI_DIR to /usr/lib64/efi.
BOOT_DIR=
+DEBUG_DIR=
EFI_DIR=
The make target 'rpmball' will build a xen.rpm. This variable can be
diff --git a/config/StdGNU.mk b/config/StdGNU.mk
index f47c238..39d36b2 100644
--- a/config/StdGNU.mk
+++ b/config/StdGNU.mk
@@ -27,6 +27,7 @@ INSTALL_DATA = $(INSTALL) -m0644 -p
INSTALL_PROG = $(INSTALL) -m0755 -p
BOOT_DIR ?= /boot
+DEBUG_DIR ?= /usr/lib/debug
SOCKET_LIBS =
UTIL_LIBS = -lutil
diff --git a/config/SunOS.mk b/config/SunOS.mk
index 21ea0c2..86a384d 100644
--- a/config/SunOS.mk
+++ b/config/SunOS.mk
@@ -19,6 +19,7 @@ INSTALL_DATA = $(INSTALL) -m0644 -p
INSTALL_PROG = $(INSTALL) -m0755 -p
BOOT_DIR ?= /boot
+DEBUG_DIR ?= /usr/lib/debug
SunOS_LIBDIR = /usr/sfw/lib
SunOS_LIBDIR_x86_64 = /usr/sfw/lib/amd64
diff --git a/xen/Makefile b/xen/Makefile
index b51dd36..6305880 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -44,7 +44,8 @@ _install: $(TARGET)$(CONFIG_XEN_INSTALL_SUFFIX)
ln -f -s $(T)-$(XEN_FULLVERSION)$(Z) $(D)$(BOOT_DIR)/$(T)-$(XEN_VERSION).$(XEN_SUBVERSION)$(Z)
ln -f -s $(T)-$(XEN_FULLVERSION)$(Z) $(D)$(BOOT_DIR)/$(T)-$(XEN_VERSION)$(Z)
ln -f -s $(T)-$(XEN_FULLVERSION)$(Z) $(D)$(BOOT_DIR)/$(T)$(Z)
- $(INSTALL_DATA) $(TARGET)-syms $(D)$(BOOT_DIR)/$(T)-syms-$(XEN_FULLVERSION)
+ [ -d "$(D)$(DEBUG_DIR)" ] || $(INSTALL_DIR) $(D)$(DEBUG_DIR)
+ $(INSTALL_DATA) $(TARGET)-syms $(D)$(DEBUG_DIR)/$(T)-syms-$(XEN_FULLVERSION)
if [ -r $(TARGET).efi -a -n '$(EFI_DIR)' ]; then \
[ -d $(D)$(EFI_DIR) ] || $(INSTALL_DIR) $(D)$(EFI_DIR); \
$(INSTALL_DATA) $(TARGET).efi $(D)$(EFI_DIR)/$(T)-$(XEN_FULLVERSION).efi; \
@@ -67,7 +68,7 @@ _uninstall:
rm -f $(D)$(BOOT_DIR)/$(T)-$(XEN_VERSION).$(XEN_SUBVERSION)$(Z)
rm -f $(D)$(BOOT_DIR)/$(T)-$(XEN_VERSION)$(Z)
rm -f $(D)$(BOOT_DIR)/$(T)$(Z)
- rm -f $(D)$(BOOT_DIR)/$(T)-syms-$(XEN_FULLVERSION)
+ rm -f $(D)$(DEBUG_DIR)/$(T)-syms-$(XEN_FULLVERSION)
rm -f $(D)$(EFI_DIR)/$(T)-$(XEN_FULLVERSION).efi
rm -f $(D)$(EFI_DIR)/$(T)-$(XEN_VERSION).$(XEN_SUBVERSION).efi
rm -f $(D)$(EFI_DIR)/$(T)-$(XEN_VERSION).efi
--
1.7.10.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH] xen: Install unstripped version -syms version into /usr/lib/debug
2015-06-26 9:41 [PATCH] xen: Install unstripped version -syms version into /usr/lib/debug Ian Campbell
@ 2015-06-26 9:48 ` Andrew Cooper
2015-06-26 9:55 ` Ian Campbell
0 siblings, 1 reply; 8+ messages in thread
From: Andrew Cooper @ 2015-06-26 9:48 UTC (permalink / raw)
To: Ian Campbell, jbeulich, ian.jackson, tim, keir; +Cc: xen-devel
On 26/06/15 10:41, Ian Campbell wrote:
> xen-*-syms cannot actually be booted, so putting it in /boot is a bit
> misleading. It also happens to cause a warning from update-grub (so at
> least it doesn't end up in grub.cfg)
>
> /usr/lib/debug seems to be a pretty common path for installing such
> debug info.
>
> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
> ---
> INSTALL | 4 +++-
> config/StdGNU.mk | 1 +
> config/SunOS.mk | 1 +
> xen/Makefile | 5 +++--
> 4 files changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/INSTALL b/INSTALL
> index 10cf879..680dcb2 100644
> --- a/INSTALL
> +++ b/INSTALL
> @@ -196,8 +196,10 @@ OCAMLFIND_DESTDIR= and OCAMLFIND_METADIR= will have the same effect.
> OCAMLDESTDIR=
>
> The xen subsystem will install the hypervisor into fixed locations.
> -BOOT_DIR defaults to /boot, EFI_DIR to /usr/lib64/efi.
> +BOOT_DIR defaults to /boot, DERBUG_DIR defaults to /usr/lib/debugt and
DERBUG and /debugt
> +EFI_DIR to /usr/lib64/efi.
> BOOT_DIR=
> +DEBUG_DIR=
> EFI_DIR=
>
> The make target 'rpmball' will build a xen.rpm. This variable can be
> diff --git a/config/StdGNU.mk b/config/StdGNU.mk
> index f47c238..39d36b2 100644
> --- a/config/StdGNU.mk
> +++ b/config/StdGNU.mk
> @@ -27,6 +27,7 @@ INSTALL_DATA = $(INSTALL) -m0644 -p
> INSTALL_PROG = $(INSTALL) -m0755 -p
>
> BOOT_DIR ?= /boot
> +DEBUG_DIR ?= /usr/lib/debug
While I hate to day it, this probably needs /local/ handling for
non-system builds, and this sounds autoconf'y. How stable is the path
across different systems?
~Andrew
>
> SOCKET_LIBS =
> UTIL_LIBS = -lutil
> diff --git a/config/SunOS.mk b/config/SunOS.mk
> index 21ea0c2..86a384d 100644
> --- a/config/SunOS.mk
> +++ b/config/SunOS.mk
> @@ -19,6 +19,7 @@ INSTALL_DATA = $(INSTALL) -m0644 -p
> INSTALL_PROG = $(INSTALL) -m0755 -p
>
> BOOT_DIR ?= /boot
> +DEBUG_DIR ?= /usr/lib/debug
>
> SunOS_LIBDIR = /usr/sfw/lib
> SunOS_LIBDIR_x86_64 = /usr/sfw/lib/amd64
> diff --git a/xen/Makefile b/xen/Makefile
> index b51dd36..6305880 100644
> --- a/xen/Makefile
> +++ b/xen/Makefile
> @@ -44,7 +44,8 @@ _install: $(TARGET)$(CONFIG_XEN_INSTALL_SUFFIX)
> ln -f -s $(T)-$(XEN_FULLVERSION)$(Z) $(D)$(BOOT_DIR)/$(T)-$(XEN_VERSION).$(XEN_SUBVERSION)$(Z)
> ln -f -s $(T)-$(XEN_FULLVERSION)$(Z) $(D)$(BOOT_DIR)/$(T)-$(XEN_VERSION)$(Z)
> ln -f -s $(T)-$(XEN_FULLVERSION)$(Z) $(D)$(BOOT_DIR)/$(T)$(Z)
> - $(INSTALL_DATA) $(TARGET)-syms $(D)$(BOOT_DIR)/$(T)-syms-$(XEN_FULLVERSION)
> + [ -d "$(D)$(DEBUG_DIR)" ] || $(INSTALL_DIR) $(D)$(DEBUG_DIR)
> + $(INSTALL_DATA) $(TARGET)-syms $(D)$(DEBUG_DIR)/$(T)-syms-$(XEN_FULLVERSION)
> if [ -r $(TARGET).efi -a -n '$(EFI_DIR)' ]; then \
> [ -d $(D)$(EFI_DIR) ] || $(INSTALL_DIR) $(D)$(EFI_DIR); \
> $(INSTALL_DATA) $(TARGET).efi $(D)$(EFI_DIR)/$(T)-$(XEN_FULLVERSION).efi; \
> @@ -67,7 +68,7 @@ _uninstall:
> rm -f $(D)$(BOOT_DIR)/$(T)-$(XEN_VERSION).$(XEN_SUBVERSION)$(Z)
> rm -f $(D)$(BOOT_DIR)/$(T)-$(XEN_VERSION)$(Z)
> rm -f $(D)$(BOOT_DIR)/$(T)$(Z)
> - rm -f $(D)$(BOOT_DIR)/$(T)-syms-$(XEN_FULLVERSION)
> + rm -f $(D)$(DEBUG_DIR)/$(T)-syms-$(XEN_FULLVERSION)
> rm -f $(D)$(EFI_DIR)/$(T)-$(XEN_FULLVERSION).efi
> rm -f $(D)$(EFI_DIR)/$(T)-$(XEN_VERSION).$(XEN_SUBVERSION).efi
> rm -f $(D)$(EFI_DIR)/$(T)-$(XEN_VERSION).efi
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] xen: Install unstripped version -syms version into /usr/lib/debug
2015-06-26 9:48 ` Andrew Cooper
@ 2015-06-26 9:55 ` Ian Campbell
2015-06-26 10:05 ` Jan Beulich
0 siblings, 1 reply; 8+ messages in thread
From: Ian Campbell @ 2015-06-26 9:55 UTC (permalink / raw)
To: Andrew Cooper; +Cc: tim, keir, ian.jackson, jbeulich, xen-devel
On Fri, 2015-06-26 at 10:48 +0100, Andrew Cooper wrote:
> > +BOOT_DIR defaults to /boot, DERBUG_DIR defaults to /usr/lib/debugt and
>
> DERBUG and /debugt
Gah!
> > +EFI_DIR to /usr/lib64/efi.
> > BOOT_DIR=
> > +DEBUG_DIR=
> > EFI_DIR=
> >
> > The make target 'rpmball' will build a xen.rpm. This variable can be
> > diff --git a/config/StdGNU.mk b/config/StdGNU.mk
> > index f47c238..39d36b2 100644
> > --- a/config/StdGNU.mk
> > +++ b/config/StdGNU.mk
> > @@ -27,6 +27,7 @@ INSTALL_DATA = $(INSTALL) -m0644 -p
> > INSTALL_PROG = $(INSTALL) -m0755 -p
> >
> > BOOT_DIR ?= /boot
> > +DEBUG_DIR ?= /usr/lib/debug
>
> While I hate to day it, this probably needs /local/ handling for
> non-system builds, and this sounds autoconf'y. How stable is the path
> across different systems?
This is used in xen/Makefile so autoconf is off the cards. So far we
already have BOOT_DIR and EFI_DIR which are special in this way. IMHO
adding DEBUG_DIR is fine. I don't think we will need this for tools/*
since what should happen there is we install the unstripped things (if
asked to do so) as usual and then the rpm/deb packaging tools will take
care of creating the detached debug info if they care. Normal users will
just get the stripped or unstripped versions install depending on what
they asked for.
I looked on Debian and at some Fedora wiki page and they both appear to
use /usr/lib/debug.
Ian.
>
> ~Andrew
>
> >
> > SOCKET_LIBS =
> > UTIL_LIBS = -lutil
> > diff --git a/config/SunOS.mk b/config/SunOS.mk
> > index 21ea0c2..86a384d 100644
> > --- a/config/SunOS.mk
> > +++ b/config/SunOS.mk
> > @@ -19,6 +19,7 @@ INSTALL_DATA = $(INSTALL) -m0644 -p
> > INSTALL_PROG = $(INSTALL) -m0755 -p
> >
> > BOOT_DIR ?= /boot
> > +DEBUG_DIR ?= /usr/lib/debug
> >
> > SunOS_LIBDIR = /usr/sfw/lib
> > SunOS_LIBDIR_x86_64 = /usr/sfw/lib/amd64
> > diff --git a/xen/Makefile b/xen/Makefile
> > index b51dd36..6305880 100644
> > --- a/xen/Makefile
> > +++ b/xen/Makefile
> > @@ -44,7 +44,8 @@ _install: $(TARGET)$(CONFIG_XEN_INSTALL_SUFFIX)
> > ln -f -s $(T)-$(XEN_FULLVERSION)$(Z) $(D)$(BOOT_DIR)/$(T)-$(XEN_VERSION).$(XEN_SUBVERSION)$(Z)
> > ln -f -s $(T)-$(XEN_FULLVERSION)$(Z) $(D)$(BOOT_DIR)/$(T)-$(XEN_VERSION)$(Z)
> > ln -f -s $(T)-$(XEN_FULLVERSION)$(Z) $(D)$(BOOT_DIR)/$(T)$(Z)
> > - $(INSTALL_DATA) $(TARGET)-syms $(D)$(BOOT_DIR)/$(T)-syms-$(XEN_FULLVERSION)
> > + [ -d "$(D)$(DEBUG_DIR)" ] || $(INSTALL_DIR) $(D)$(DEBUG_DIR)
> > + $(INSTALL_DATA) $(TARGET)-syms $(D)$(DEBUG_DIR)/$(T)-syms-$(XEN_FULLVERSION)
> > if [ -r $(TARGET).efi -a -n '$(EFI_DIR)' ]; then \
> > [ -d $(D)$(EFI_DIR) ] || $(INSTALL_DIR) $(D)$(EFI_DIR); \
> > $(INSTALL_DATA) $(TARGET).efi $(D)$(EFI_DIR)/$(T)-$(XEN_FULLVERSION).efi; \
> > @@ -67,7 +68,7 @@ _uninstall:
> > rm -f $(D)$(BOOT_DIR)/$(T)-$(XEN_VERSION).$(XEN_SUBVERSION)$(Z)
> > rm -f $(D)$(BOOT_DIR)/$(T)-$(XEN_VERSION)$(Z)
> > rm -f $(D)$(BOOT_DIR)/$(T)$(Z)
> > - rm -f $(D)$(BOOT_DIR)/$(T)-syms-$(XEN_FULLVERSION)
> > + rm -f $(D)$(DEBUG_DIR)/$(T)-syms-$(XEN_FULLVERSION)
> > rm -f $(D)$(EFI_DIR)/$(T)-$(XEN_FULLVERSION).efi
> > rm -f $(D)$(EFI_DIR)/$(T)-$(XEN_VERSION).$(XEN_SUBVERSION).efi
> > rm -f $(D)$(EFI_DIR)/$(T)-$(XEN_VERSION).efi
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] xen: Install unstripped version -syms version into /usr/lib/debug
2015-06-26 9:55 ` Ian Campbell
@ 2015-06-26 10:05 ` Jan Beulich
2015-06-26 12:01 ` Ian Campbell
2015-06-30 14:19 ` Ian Campbell
0 siblings, 2 replies; 8+ messages in thread
From: Jan Beulich @ 2015-06-26 10:05 UTC (permalink / raw)
To: Ian Campbell; +Cc: Andrew Cooper, tim, keir, ian.jackson, xen-devel
>>> On 26.06.15 at 11:55, <ian.campbell@citrix.com> wrote:
> On Fri, 2015-06-26 at 10:48 +0100, Andrew Cooper wrote:
>> > +BOOT_DIR defaults to /boot, DERBUG_DIR defaults to /usr/lib/debugt and
>>
>> DERBUG and /debugt
>
> Gah!
>
>> > +EFI_DIR to /usr/lib64/efi.
>> > BOOT_DIR=
>> > +DEBUG_DIR=
>> > EFI_DIR=
>> >
>> > The make target 'rpmball' will build a xen.rpm. This variable can be
>> > diff --git a/config/StdGNU.mk b/config/StdGNU.mk
>> > index f47c238..39d36b2 100644
>> > --- a/config/StdGNU.mk
>> > +++ b/config/StdGNU.mk
>> > @@ -27,6 +27,7 @@ INSTALL_DATA = $(INSTALL) -m0644 -p
>> > INSTALL_PROG = $(INSTALL) -m0755 -p
>> >
>> > BOOT_DIR ?= /boot
>> > +DEBUG_DIR ?= /usr/lib/debug
>>
>> While I hate to day it, this probably needs /local/ handling for
>> non-system builds, and this sounds autoconf'y. How stable is the path
>> across different systems?
>
> This is used in xen/Makefile so autoconf is off the cards. So far we
> already have BOOT_DIR and EFI_DIR which are special in this way. IMHO
> adding DEBUG_DIR is fine. I don't think we will need this for tools/*
> since what should happen there is we install the unstripped things (if
> asked to do so) as usual and then the rpm/deb packaging tools will take
> care of creating the detached debug info if they care. Normal users will
> just get the stripped or unstripped versions install depending on what
> they asked for.
+1
With the typos fixed
Acked-by: Jan Beulich <jbeulich@suse.com>
Jan
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] xen: Install unstripped version -syms version into /usr/lib/debug
2015-06-26 10:05 ` Jan Beulich
@ 2015-06-26 12:01 ` Ian Campbell
2015-06-26 12:52 ` Ian Jackson
2015-06-30 14:19 ` Ian Campbell
1 sibling, 1 reply; 8+ messages in thread
From: Ian Campbell @ 2015-06-26 12:01 UTC (permalink / raw)
To: Jan Beulich, ian.jackson; +Cc: Andrew Cooper, keir, tim, xen-devel
On Fri, 2015-06-26 at 11:05 +0100, Jan Beulich wrote:
[...]
> With the typos fixed
> Acked-by: Jan Beulich <jbeulich@suse.com>
Thanks.
Ian, would we want to update osstest's ts-xen-build:divide() before
this? I don't think it's strictly needed since syms can be dug out of
dist.tar.gz just as easily as xendist.tar.gz.
Ian.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] xen: Install unstripped version -syms version into /usr/lib/debug
2015-06-26 12:01 ` Ian Campbell
@ 2015-06-26 12:52 ` Ian Jackson
2015-06-26 14:36 ` Ian Campbell
0 siblings, 1 reply; 8+ messages in thread
From: Ian Jackson @ 2015-06-26 12:52 UTC (permalink / raw)
To: Ian Campbell; +Cc: Andrew Cooper, keir, tim, Jan Beulich, xen-devel
Ian Campbell writes ("Re: [Xen-devel] [PATCH] xen: Install unstripped version -syms version into /usr/lib/debug"):
> On Fri, 2015-06-26 at 11:05 +0100, Jan Beulich wrote:
> [...]
> > With the typos fixed
> > Acked-by: Jan Beulich <jbeulich@suse.com>
>
> Thanks.
>
> Ian, would we want to update osstest's ts-xen-build:divide() before
> this? I don't think it's strictly needed since syms can be dug out of
> dist.tar.gz just as easily as xendist.tar.gz.
Are there any tools which automatically use the syms file, on the dom0
itself, for diagnosis of problems ?
I think not - or at least that no such things are active in osstest's
dom0's - in which case this patch can go into xen.git now and we can
fix divide() later.
Ian.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] xen: Install unstripped version -syms version into /usr/lib/debug
2015-06-26 12:52 ` Ian Jackson
@ 2015-06-26 14:36 ` Ian Campbell
0 siblings, 0 replies; 8+ messages in thread
From: Ian Campbell @ 2015-06-26 14:36 UTC (permalink / raw)
To: Ian Jackson; +Cc: Andrew Cooper, keir, tim, Jan Beulich, xen-devel
On Fri, 2015-06-26 at 13:52 +0100, Ian Jackson wrote:
> Ian Campbell writes ("Re: [Xen-devel] [PATCH] xen: Install unstripped version -syms version into /usr/lib/debug"):
> > On Fri, 2015-06-26 at 11:05 +0100, Jan Beulich wrote:
> > [...]
> > > With the typos fixed
> > > Acked-by: Jan Beulich <jbeulich@suse.com>
> >
> > Thanks.
> >
> > Ian, would we want to update osstest's ts-xen-build:divide() before
> > this? I don't think it's strictly needed since syms can be dug out of
> > dist.tar.gz just as easily as xendist.tar.gz.
>
> Are there any tools which automatically use the syms file, on the dom0
> itself, for diagnosis of problems ?
I don't know of any, but I'm not sure that I would know even if there
were.
>
> I think not - or at least that no such things are active in osstest's
> dom0's
That (not in osstest) I certainly agree with.
> - in which case this patch can go into xen.git now and we can
> fix divide() later.
OK, I'll push next time I'm doing such things, thanks.
Ian.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] xen: Install unstripped version -syms version into /usr/lib/debug
2015-06-26 10:05 ` Jan Beulich
2015-06-26 12:01 ` Ian Campbell
@ 2015-06-30 14:19 ` Ian Campbell
1 sibling, 0 replies; 8+ messages in thread
From: Ian Campbell @ 2015-06-30 14:19 UTC (permalink / raw)
To: Jan Beulich; +Cc: Andrew Cooper, keir, tim, ian.jackson, xen-devel
On Fri, 2015-06-26 at 11:05 +0100, Jan Beulich wrote:
> > This is used in xen/Makefile so autoconf is off the cards. So far we
> > already have BOOT_DIR and EFI_DIR which are special in this way. IMHO
> > adding DEBUG_DIR is fine. I don't think we will need this for tools/*
> > since what should happen there is we install the unstripped things (if
> > asked to do so) as usual and then the rpm/deb packaging tools will take
> > care of creating the detached debug info if they care. Normal users will
> > just get the stripped or unstripped versions install depending on what
> > they asked for.
>
> +1
>
> With the typos fixed
Done.
> Acked-by: Jan Beulich <jbeulich@suse.com>
And applied having discussed the impact on osstest with Ian in the rest
of the thread.
Thanks,
Ian.
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2015-06-30 14:19 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-06-26 9:41 [PATCH] xen: Install unstripped version -syms version into /usr/lib/debug Ian Campbell
2015-06-26 9:48 ` Andrew Cooper
2015-06-26 9:55 ` Ian Campbell
2015-06-26 10:05 ` Jan Beulich
2015-06-26 12:01 ` Ian Campbell
2015-06-26 12:52 ` Ian Jackson
2015-06-26 14:36 ` Ian Campbell
2015-06-30 14:19 ` Ian Campbell
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.