* [poky] Initramfs not appended to kernel image
@ 2015-04-16 10:23 Wouter van Rooy
2015-04-16 14:22 ` Bruce Ashfield
0 siblings, 1 reply; 8+ messages in thread
From: Wouter van Rooy @ 2015-04-16 10:23 UTC (permalink / raw)
To: yocto
Hello,
For the last week or so I have been struggling to build a kernel image with an embedded initramfs using the mechanisms provided by Poky Daisy. In local.conf I have set INITRAMFS_IMAGE_BUNDLE to "1" and INITRAMFS_IMAGE to the name of my image recipe. When I try to build virtual/kernel no errors are shown, but the resulting kernel image does not contain an initramfs either.
I have traced this issue to the passing of the $use_alternate_initrd variable in kernel.bbclass. The run.do_bundle_initramfs log contains the following snippets:
Lines 103..120:
do_bundle_initramfs() {
if [ ! -z "sytxg1-bootmode-image" -a x"1" = x1 ]; then
echo "Creating a kernel image with a bundled initramfs..."
copy_initramfs
if [ -e arch/powerpc/boot/uImage ] ; then
mv -f arch/powerpc/boot/uImage arch/powerpc/boot/uImage.bak
fi
use_alternate_initrd=CONFIG_INITRAMFS_SOURCE=/home/wouter/Source/Product/sytxg1-boot/tmp/work/sytxg1-oe-linux/linux-axon/3.10-9/linux-3.10.9/usr/sytxg1-bootmode-image-sytxg1.cpio
kernel_do_compile
mv -f arch/powerpc/boot/uImage arch/powerpc/boot/uImage.initramfs
mv -f arch/powerpc/boot/uImage.bak arch/powerpc/boot/uImage
# Update install area
echo "There is kernel image bundled with initramfs: /home/wouter/Source/Product/sytxg1-boot/tmp/work/sytxg1-oe-linux/linux-axon/3.10-9/linux-3.10.9/arch/powerpc/boot/uImage.initramfs"
install -m 0644 /home/wouter/Source/Product/sytxg1-boot/tmp/work/sytxg1-oe-linux/linux-axon/3.10-9/linux-3.10.9/arch/powerpc/boot/uImage.initramfs /home/wouter/Source/Product/sytxg1-boot/tmp/work/sytxg1-oe-linux/linux-axon/3.10-9/image/boot/uImage-initramfs-sytxg1.bin
echo "/home/wouter/Source/Product/sytxg1-boot/tmp/work/sytxg1-oe-linux/linux-axon/3.10-9/linux-3.10.9/arch/powerpc/boot/uImage.initramfs"
fi
}
Lines 164..171:
kernel_do_compile() {
unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE
oe_runmake uImage CC="powerpc-oe-linux-gcc " LD="powerpc-oe-linux-ld.bfd "
if test "uImage.gz" = "uImage"; then
gzip -9c < "uImage" > "arch/powerpc/boot/uImage"
fi
}
So, it seems that although do_bundle_initramfs() sets the $use_alternate_initrd to the correct value it is not passed in the oe_runmake call in kernel_do_compile(). Judging from the contents of kernel.bbclass I would expect it to be appended after the LD="..." statement. For now I have found a workaround by copying the relevant oe_runmake call to do_bundle_initramfs(). The patch is included below.
I cannot imagine this is the intended way to make things work. Could anyone please shed some light on what I am doing wrong in this matter?
Kind regards,
Wouter van Rooy
diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
index 19b159b..224e01e 100644
--- a/meta/classes/kernel.bbclass
+++ b/meta/classes/kernel.bbclass
@@ -131,8 +131,11 @@ do_bundle_initramfs () {
if [ -e ${KERNEL_OUTPUT} ] ; then
mv -f ${KERNEL_OUTPUT} ${KERNEL_OUTPUT}.bak
fi
- use_alternate_initrd=CONFIG_INITRAMFS_SOURCE=${B}/usr/${INITRAMFS_IMAGE}-${MACHINE}.cpio
- kernel_do_compile
+ unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE
+ oe_runmake ${KERNEL_IMAGETYPE_FOR_MAKE} ${KERNEL_ALT_IMAGETYPE} CC="${KERNEL_CC}" LD="${KERNEL_LD}" ${KERNEL_EXTRA_ARGS} CONFIG_INITRAMFS_SOURCE=${B}/usr/${INITRAMFS_IMAGE}-${MACHINE}.cpio
+ if test "${KERNEL_IMAGETYPE_FOR_MAKE}.gz" = "${KERNEL_IMAGETYPE}"; then
+ gzip -9c < "${KERNEL_IMAGETYPE_FOR_MAKE}" > "${KERNEL_OUTPUT}"
+ fi
mv -f ${KERNEL_OUTPUT} ${KERNEL_OUTPUT}.initramfs
mv -f ${KERNEL_OUTPUT}.bak ${KERNEL_OUTPUT}
# Update install area
@@ -150,20 +153,7 @@ addtask bundle_initramfs after do_install before do_deploy
kernel_do_compile() {
unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE
- # The $use_alternate_initrd is only set from
- # do_bundle_initramfs() This variable is specifically for the
- # case where we are making a second pass at the kernel
- # compilation and we want to force the kernel build to use a
- # different initramfs image. The way to do that in the kernel
- # is to specify:
- # make ...args... CONFIG_INITRAMFS_SOURCE=some_other_initramfs.cpio
- if [ "$use_alternate_initrd" = "" ] && [ "${INITRAMFS_TASK}" != "" ] ; then
- # The old style way of copying an prebuilt image and building it
- # is turned on via INTIRAMFS_TASK != ""
- copy_initramfs
- use_alternate_initrd=CONFIG_INITRAMFS_SOURCE=${B}/usr/${INITRAMFS_IMAGE}-${MACHINE}.cpio
- fi
- oe_runmake ${KERNEL_IMAGETYPE_FOR_MAKE} ${KERNEL_ALT_IMAGETYPE} CC="${KERNEL_CC}" LD="${KERNEL_LD}" ${KERNEL_EXTRA_ARGS} $use_alternate_initrd
+ oe_runmake ${KERNEL_IMAGETYPE_FOR_MAKE} ${KERNEL_ALT_IMAGETYPE} CC="${KERNEL_CC}" LD="${KERNEL_LD}" ${KERNEL_EXTRA_ARGS}
if test "${KERNEL_IMAGETYPE_FOR_MAKE}.gz" = "${KERNEL_IMAGETYPE}"; then
gzip -9c < "${KERNEL_IMAGETYPE_FOR_MAKE}" > "${KERNEL_OUTPUT}"
fi
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [poky] Initramfs not appended to kernel image
2015-04-16 10:23 [poky] Initramfs not appended to kernel image Wouter van Rooy
@ 2015-04-16 14:22 ` Bruce Ashfield
2015-04-20 9:09 ` Wouter van Rooy
0 siblings, 1 reply; 8+ messages in thread
From: Bruce Ashfield @ 2015-04-16 14:22 UTC (permalink / raw)
To: Wouter van Rooy, yocto
On 2015-04-16 6:23 AM, Wouter van Rooy wrote:
> Hello,
>
> For the last week or so I have been struggling to build a kernel image with an embedded initramfs using the mechanisms provided by Poky Daisy. In local.conf I have set INITRAMFS_IMAGE_BUNDLE to "1" and INITRAMFS_IMAGE to the name of my image recipe. When I try to build virtual/kernel no errors are shown, but the resulting kernel image does not contain an initramfs either.
I'm the proud owner of the bugzilla to document this process better,
so let's work through the issues and see if there's a bug, or something
that just isn't clearly described.
We are talking about the 1.6 release here .. so at least the recent changes
in kernel.bbclass processing won't be the cause of the breakage.
>
> I have traced this issue to the passing of the $use_alternate_initrd variable in kernel.bbclass. The run.do_bundle_initramfs log contains the following snippets:
>
> Lines 103..120:
>
> do_bundle_initramfs() {
> if [ ! -z "sytxg1-bootmode-image" -a x"1" = x1 ]; then
> echo "Creating a kernel image with a bundled initramfs..."
> copy_initramfs
> if [ -e arch/powerpc/boot/uImage ] ; then
> mv -f arch/powerpc/boot/uImage arch/powerpc/boot/uImage.bak
> fi
> use_alternate_initrd=CONFIG_INITRAMFS_SOURCE=/home/wouter/Source/Product/sytxg1-boot/tmp/work/sytxg1-oe-linux/linux-axon/3.10-9/linux-3.10.9/usr/sytxg1-bootmode-image-sytxg1.cpio
> kernel_do_compile
> mv -f arch/powerpc/boot/uImage arch/powerpc/boot/uImage.initramfs
> mv -f arch/powerpc/boot/uImage.bak arch/powerpc/boot/uImage
> # Update install area
> echo "There is kernel image bundled with initramfs: /home/wouter/Source/Product/sytxg1-boot/tmp/work/sytxg1-oe-linux/linux-axon/3.10-9/linux-3.10.9/arch/powerpc/boot/uImage.initramfs"
> install -m 0644 /home/wouter/Source/Product/sytxg1-boot/tmp/work/sytxg1-oe-linux/linux-axon/3.10-9/linux-3.10.9/arch/powerpc/boot/uImage.initramfs /home/wouter/Source/Product/sytxg1-boot/tmp/work/sytxg1-oe-linux/linux-axon/3.10-9/image/boot/uImage-initramfs-sytxg1.bin
> echo "/home/wouter/Source/Product/sytxg1-boot/tmp/work/sytxg1-oe-linux/linux-axon/3.10-9/linux-3.10.9/arch/powerpc/boot/uImage.initramfs"
> fi
>
> }
>
> Lines 164..171:
>
> kernel_do_compile() {
> unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE
> oe_runmake uImage CC="powerpc-oe-linux-gcc " LD="powerpc-oe-linux-ld.bfd "
> if test "uImage.gz" = "uImage"; then
> gzip -9c < "uImage" > "arch/powerpc/boot/uImage"
> fi
>
> }
>
> So, it seems that although do_bundle_initramfs() sets the $use_alternate_initrd to the correct value it is not passed in the oe_runmake call in kernel_do_compile(). Judging from the contents of kernel.bbclass I would expect it to be appended after the LD="..." statement. For now I have found a workaround by copying the relevant oe_runmake call to do_bundle_initramfs(). The patch is included below.
Correct, and this definitely used to work. I can't see anything wrong by
inspection alone, but will launch some builds to see if I can confirm the
behaviour and that variable not making it down into the function call.
Bruce
>
> I cannot imagine this is the intended way to make things work. Could anyone please shed some light on what I am doing wrong in this matter?
>
> Kind regards,
>
> Wouter van Rooy
>
>
> diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
> index 19b159b..224e01e 100644
> --- a/meta/classes/kernel.bbclass
> +++ b/meta/classes/kernel.bbclass
> @@ -131,8 +131,11 @@ do_bundle_initramfs () {
> if [ -e ${KERNEL_OUTPUT} ] ; then
> mv -f ${KERNEL_OUTPUT} ${KERNEL_OUTPUT}.bak
> fi
> - use_alternate_initrd=CONFIG_INITRAMFS_SOURCE=${B}/usr/${INITRAMFS_IMAGE}-${MACHINE}.cpio
> - kernel_do_compile
> + unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE
> + oe_runmake ${KERNEL_IMAGETYPE_FOR_MAKE} ${KERNEL_ALT_IMAGETYPE} CC="${KERNEL_CC}" LD="${KERNEL_LD}" ${KERNEL_EXTRA_ARGS} CONFIG_INITRAMFS_SOURCE=${B}/usr/${INITRAMFS_IMAGE}-${MACHINE}.cpio
> + if test "${KERNEL_IMAGETYPE_FOR_MAKE}.gz" = "${KERNEL_IMAGETYPE}"; then
> + gzip -9c < "${KERNEL_IMAGETYPE_FOR_MAKE}" > "${KERNEL_OUTPUT}"
> + fi
> mv -f ${KERNEL_OUTPUT} ${KERNEL_OUTPUT}.initramfs
> mv -f ${KERNEL_OUTPUT}.bak ${KERNEL_OUTPUT}
> # Update install area
> @@ -150,20 +153,7 @@ addtask bundle_initramfs after do_install before do_deploy
>
> kernel_do_compile() {
> unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE
> - # The $use_alternate_initrd is only set from
> - # do_bundle_initramfs() This variable is specifically for the
> - # case where we are making a second pass at the kernel
> - # compilation and we want to force the kernel build to use a
> - # different initramfs image. The way to do that in the kernel
> - # is to specify:
> - # make ...args... CONFIG_INITRAMFS_SOURCE=some_other_initramfs.cpio
> - if [ "$use_alternate_initrd" = "" ] && [ "${INITRAMFS_TASK}" != "" ] ; then
> - # The old style way of copying an prebuilt image and building it
> - # is turned on via INTIRAMFS_TASK != ""
> - copy_initramfs
> - use_alternate_initrd=CONFIG_INITRAMFS_SOURCE=${B}/usr/${INITRAMFS_IMAGE}-${MACHINE}.cpio
> - fi
> - oe_runmake ${KERNEL_IMAGETYPE_FOR_MAKE} ${KERNEL_ALT_IMAGETYPE} CC="${KERNEL_CC}" LD="${KERNEL_LD}" ${KERNEL_EXTRA_ARGS} $use_alternate_initrd
> + oe_runmake ${KERNEL_IMAGETYPE_FOR_MAKE} ${KERNEL_ALT_IMAGETYPE} CC="${KERNEL_CC}" LD="${KERNEL_LD}" ${KERNEL_EXTRA_ARGS}
> if test "${KERNEL_IMAGETYPE_FOR_MAKE}.gz" = "${KERNEL_IMAGETYPE}"; then
> gzip -9c < "${KERNEL_IMAGETYPE_FOR_MAKE}" > "${KERNEL_OUTPUT}"
> fi
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [poky] Initramfs not appended to kernel image
2015-04-16 14:22 ` Bruce Ashfield
@ 2015-04-20 9:09 ` Wouter van Rooy
2015-04-27 20:01 ` Bruce Ashfield
0 siblings, 1 reply; 8+ messages in thread
From: Wouter van Rooy @ 2015-04-20 9:09 UTC (permalink / raw)
To: Bruce Ashfield, yocto
Hi Bruce,
First of all, thanks for your answer. It would be a comforting idea to
get this initramfs implemented cleanly in my project.
On 16-04-15 16:22, Bruce Ashfield wrote:
> I'm the proud owner of the bugzilla to document this process better,
> so let's work through the issues and see if there's a bug, or
> something that just isn't clearly described. We are talking about the
> 1.6 release here .. so at least the recent changes in kernel.bbclass
> processing won't be the cause of the breakage.
Correct, to be even more precise I am using the daisy-11.0.0 tag for Poky.
> Correct, and this definitely used to work. I can't see anything wrong
> by inspection alone, but will launch some builds to see if I can
> confirm the behaviour and that variable not making it down into the
> function call. Bruce
Thanks, I would love to hear the results of your test builds. Just drop
me a line if you need anything else from my build environment for
reproduction, like log files and such.
Kind regards,
Wouter van Rooy
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [poky] Initramfs not appended to kernel image
2015-04-20 9:09 ` Wouter van Rooy
@ 2015-04-27 20:01 ` Bruce Ashfield
2015-04-28 6:16 ` Craig McQueen
2015-04-28 7:48 ` Wouter van Rooy
0 siblings, 2 replies; 8+ messages in thread
From: Bruce Ashfield @ 2015-04-27 20:01 UTC (permalink / raw)
To: Wouter van Rooy, yocto
On 2015-04-20 05:09 AM, Wouter van Rooy wrote:
> Hi Bruce,
>
> First of all, thanks for your answer. It would be a comforting idea to
> get this initramfs implemented cleanly in my project.
>
> On 16-04-15 16:22, Bruce Ashfield wrote:
>> I'm the proud owner of the bugzilla to document this process better,
>> so let's work through the issues and see if there's a bug, or
>> something that just isn't clearly described. We are talking about the
>> 1.6 release here .. so at least the recent changes in kernel.bbclass
>> processing won't be the cause of the breakage.
> Correct, to be even more precise I am using the daisy-11.0.0 tag for Poky.
>> Correct, and this definitely used to work. I can't see anything wrong
>> by inspection alone, but will launch some builds to see if I can
>> confirm the behaviour and that variable not making it down into the
>> function call. Bruce
> Thanks, I would love to hear the results of your test builds. Just drop
> me a line if you need anything else from my build environment for
> reproduction, like log files and such.
I was traveling last week and am just getting back to this now.
I wanted to check in to see if your issues are still persisting
to see if you worked it out in the meantime.
Bruce
>
> Kind regards,
> Wouter van Rooy
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [poky] Initramfs not appended to kernel image
2015-04-27 20:01 ` Bruce Ashfield
@ 2015-04-28 6:16 ` Craig McQueen
2015-04-28 7:21 ` Craig McQueen
2015-04-28 8:30 ` Paul Eggleton
2015-04-28 7:48 ` Wouter van Rooy
1 sibling, 2 replies; 8+ messages in thread
From: Craig McQueen @ 2015-04-28 6:16 UTC (permalink / raw)
To: Bruce Ashfield, Wouter van Rooy, yocto
>
> On 2015-04-20 05:09 AM, Wouter van Rooy wrote:
> > Hi Bruce,
> >
> > First of all, thanks for your answer. It would be a comforting idea to
> > get this initramfs implemented cleanly in my project.
> >
> > On 16-04-15 16:22, Bruce Ashfield wrote:
> >> I'm the proud owner of the bugzilla to document this process better,
> >> so let's work through the issues and see if there's a bug, or
> >> something that just isn't clearly described. We are talking about the
> >> 1.6 release here .. so at least the recent changes in kernel.bbclass
> >> processing won't be the cause of the breakage.
> > Correct, to be even more precise I am using the daisy-11.0.0 tag for Poky.
> >> Correct, and this definitely used to work. I can't see anything wrong
> >> by inspection alone, but will launch some builds to see if I can
> >> confirm the behaviour and that variable not making it down into the
> >> function call. Bruce
> > Thanks, I would love to hear the results of your test builds. Just
> > drop me a line if you need anything else from my build environment for
> > reproduction, like log files and such.
>
> I was traveling last week and am just getting back to this now.
> I wanted to check in to see if your issues are still persisting to see if you
> worked it out in the meantime.
I'm in the process of using the INITRAMFS_IMAGE and INITRAMFS_IMAGE_BUNDLE feature with the latest from the 'dizzy' branch for Poky, and it seems to be working for me (on BeagleBone Black).
It's been quite a slow process to understand the initramfs mechanism and how to use it in Poky. That's including the initramfs-framework. It would be great to see some documentation for these features.
--
Craig McQueen
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [poky] Initramfs not appended to kernel image
2015-04-28 6:16 ` Craig McQueen
@ 2015-04-28 7:21 ` Craig McQueen
2015-04-28 8:30 ` Paul Eggleton
1 sibling, 0 replies; 8+ messages in thread
From: Craig McQueen @ 2015-04-28 7:21 UTC (permalink / raw)
To: Craig McQueen, Bruce Ashfield, Wouter van Rooy, yocto
>
> >
> > On 2015-04-20 05:09 AM, Wouter van Rooy wrote:
> > > Hi Bruce,
> > >
> > > First of all, thanks for your answer. It would be a comforting idea
> > > to get this initramfs implemented cleanly in my project.
> > >
> > > On 16-04-15 16:22, Bruce Ashfield wrote:
> > >> I'm the proud owner of the bugzilla to document this process
> > >> better, so let's work through the issues and see if there's a bug,
> > >> or something that just isn't clearly described. We are talking
> > >> about the
> > >> 1.6 release here .. so at least the recent changes in
> > >> kernel.bbclass processing won't be the cause of the breakage.
> > > Correct, to be even more precise I am using the daisy-11.0.0 tag for Poky.
> > >> Correct, and this definitely used to work. I can't see anything
> > >> wrong by inspection alone, but will launch some builds to see if I
> > >> can confirm the behaviour and that variable not making it down into
> > >> the function call. Bruce
> > > Thanks, I would love to hear the results of your test builds. Just
> > > drop me a line if you need anything else from my build environment
> > > for reproduction, like log files and such.
> >
> > I was traveling last week and am just getting back to this now.
> > I wanted to check in to see if your issues are still persisting to see
> > if you worked it out in the meantime.
>
> I'm in the process of using the INITRAMFS_IMAGE and
> INITRAMFS_IMAGE_BUNDLE feature with the latest from the 'dizzy' branch
> for Poky, and it seems to be working for me (on BeagleBone Black).
>
> It's been quite a slow process to understand the initramfs mechanism and
> how to use it in Poky. That's including the initramfs-framework. It would be
> great to see some documentation for these features.
On further inspection...
When I build my image, it creates a kernel with initramfs in the deploy directory:
zImage-initramfs-3.14.39-r22b+gitrAUTOINC+ba552b4bc7-machine-20150428061518.bin
However, the rootfs image includes the kernel _without_ the initramfs in its /boot directory.
I'll investigate to see why.
--
Craig McQueen
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [poky] Initramfs not appended to kernel image
2015-04-27 20:01 ` Bruce Ashfield
2015-04-28 6:16 ` Craig McQueen
@ 2015-04-28 7:48 ` Wouter van Rooy
1 sibling, 0 replies; 8+ messages in thread
From: Wouter van Rooy @ 2015-04-28 7:48 UTC (permalink / raw)
To: Bruce Ashfield, yocto
On 27-04-15 22:01, Bruce Ashfield wrote:
> I was traveling last week and am just getting back to this now.
> I wanted to check in to see if your issues are still persisting to see
> if you worked it out in the meantime.
>
> Bruce
Unfortunately I have not found a solution yet. For now I am using the
workaround as described in my patch file, but obviously that is not a
very clean way to fix the issue.
If you would be willing to take a look at it that would be a great help.
Kind regards,
Wouter van Rooy
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [poky] Initramfs not appended to kernel image
2015-04-28 6:16 ` Craig McQueen
2015-04-28 7:21 ` Craig McQueen
@ 2015-04-28 8:30 ` Paul Eggleton
1 sibling, 0 replies; 8+ messages in thread
From: Paul Eggleton @ 2015-04-28 8:30 UTC (permalink / raw)
To: yocto
On Tuesday 28 April 2015 16:16:32 Craig McQueen wrote:
> I'm in the process of using the INITRAMFS_IMAGE and INITRAMFS_IMAGE_BUNDLE
> feature with the latest from the 'dizzy' branch for Poky, and it seems to
> be working for me (on BeagleBone Black).
>
> It's been quite a slow process to understand the initramfs mechanism and how
> to use it in Poky. That's including the initramfs-framework. It would be
> great to see some documentation for these features.
This is an ideal opportunity for me to point out that there's a bug open for
this:
https://bugzilla.yoctoproject.org/show_bug.cgi?id=7096
Scott just needs someone to send him the raw material so he can add something
(presumably a small section) to one of the manuals.
Cheers,
Paul
--
Paul Eggleton
Intel Open Source Technology Centre
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2015-04-28 8:30 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-04-16 10:23 [poky] Initramfs not appended to kernel image Wouter van Rooy
2015-04-16 14:22 ` Bruce Ashfield
2015-04-20 9:09 ` Wouter van Rooy
2015-04-27 20:01 ` Bruce Ashfield
2015-04-28 6:16 ` Craig McQueen
2015-04-28 7:21 ` Craig McQueen
2015-04-28 8:30 ` Paul Eggleton
2015-04-28 7:48 ` Wouter van Rooy
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.