* [PATCH] out out damn perl
@ 2015-01-06 23:41 Rob Landley
2015-01-06 23:50 ` Andrew Morton
2015-01-12 15:16 ` Lennart Sorensen
0 siblings, 2 replies; 12+ messages in thread
From: Rob Landley @ 2015-01-06 23:41 UTC (permalink / raw)
To: linux-kernel@vger.kernel.org, Andrew Morton
From: Rob Landley <rob@landley.net>
Commit e6023367d779 added perl back to the kernel build in -rc6.
Replace 39 lines of perl with 4 lines of shell script.
Signed-off-by: Rob Landley <rob@landley.net>
---
arch/x86/boot/compressed/Makefile | 6 ++--
arch/x86/tools/calc_run_size.pl | 39 ----------------------------
2 files changed, 4 insertions(+), 41 deletions(-)
Commit e6023367d779 added perl back to the kernel build. KILL IT WITH FIRE.
--- linux/arch/x86/boot/compressed/Makefile
+++ linux/arch/x86/boot/compressed/Makefile
@@ -89,8 +76,10 @@
suffix-$(CONFIG_KERNEL_LZO) := lzo
suffix-$(CONFIG_KERNEL_LZ4) := lz4
-RUN_SIZE = $(shell $(OBJDUMP) -h vmlinux | \
- perl $(srctree)/arch/x86/tools/calc_run_size.pl)
+RUN_SIZE = $(shell NUM='\([0-9a-fA-F]*[ \t]*\)'; $(OBJDUMP) -h vmlinux | \
+sed -n 's/^[ \t0-9]*.b[sr][sk][ \t]*'"$$NUM$$NUM$$NUM$$NUM"'.*/\1\4/p' | \
+xargs | while read a b c d; do [ "$$b" != "$$d" ] && exit 1; \
+expr $$(printf "%d + %d + %d" 0x$$a 0x$$b 0x$$c); done)
quiet_cmd_mkpiggy = MKPIGGY $@
cmd_mkpiggy = $(obj)/mkpiggy $< $(RUN_SIZE) > $@ || ( rm -f $@ ; false )
--- linux/arch/x86/tools/calc_run_size.pl
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/perl
-#
-# Calculate the amount of space needed to run the kernel, including room for
-# the .bss and .brk sections.
-#
-# Usage:
-# objdump -h a.out | perl calc_run_size.pl
-use strict;
-
-my $mem_size = 0;
-my $file_offset = 0;
-
-my $sections=" *[0-9]+ \.(?:bss|brk) +";
-while (<>) {
- if (/^$sections([0-9a-f]+) +(?:[0-9a-f]+ +){2}([0-9a-f]+)/) {
- my $size = hex($1);
- my $offset = hex($2);
- $mem_size += $size;
- if ($file_offset == 0) {
- $file_offset = $offset;
- } elsif ($file_offset != $offset) {
- # BFD linker shows the same file offset in ELF.
- # Gold linker shows them as consecutive.
- next if ($file_offset + $mem_size == $offset + $size);
-
- printf STDERR "file_offset: 0x%lx\n", $file_offset;
- printf STDERR "mem_size: 0x%lx\n", $mem_size;
- printf STDERR "offset: 0x%lx\n", $offset;
- printf STDERR "size: 0x%lx\n", $size;
-
- die ".bss and .brk are non-contiguous\n";
- }
- }
-}
-
-if ($file_offset == 0) {
- die "Never found .bss or .brk file offset\n";
-}
-printf("%d\n", $mem_size + $file_offset);
^ permalink raw reply [flat|nested] 12+ messages in thread* Re: [PATCH] out out damn perl 2015-01-06 23:41 [PATCH] out out damn perl Rob Landley @ 2015-01-06 23:50 ` Andrew Morton 2015-01-12 16:54 ` [PATCHv2] remove recently added perl build requirement Rob Landley 2015-01-17 8:01 ` [PATCH] out out damn perl Pavel Machek 2015-01-12 15:16 ` Lennart Sorensen 1 sibling, 2 replies; 12+ messages in thread From: Andrew Morton @ 2015-01-06 23:50 UTC (permalink / raw) To: Rob Landley; +Cc: linux-kernel@vger.kernel.org On Tue, 06 Jan 2015 17:41:35 -0600 Rob Landley <rob@landley.net> wrote: > Commit e6023367d779 added perl back to the kernel build in -rc6. > Replace 39 lines of perl with 4 lines of shell script. Please resend this: - Express the commit in the conventional fashion e6023367d779 ("x86, kaslr: Prevent .bss from overlaping initrd") - So that we all don't have to go look up the commit to find out what happened. - So people can look up the commit in other trees, where the hash might change. - Cc the people who wrote and committed the patch. - The offending commit has cc:stable, so have a think about adding a cc:stable to this one as well. - The title is cute, but not terribly informative. ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCHv2] remove recently added perl build requirement 2015-01-06 23:50 ` Andrew Morton @ 2015-01-12 16:54 ` Rob Landley 2015-01-13 1:01 ` Kees Cook 2015-01-17 8:01 ` [PATCH] out out damn perl Pavel Machek 1 sibling, 1 reply; 12+ messages in thread From: Rob Landley @ 2015-01-12 16:54 UTC (permalink / raw) To: Andrew Morton Cc: linux-kernel@vger.kernel.org, Fengguang Wu, Junjie Mao, Kees Cook, stable, Thomas Gleixner From: Rob Landley <rob@landley.net> Commit e6023367d779 ("x86, kaslr: Prevent .bss from overlaping initrd") added perl back to the kernel build dependencies in -rc6. Replace those 39 lines of perl with 4 lines of shell script. Signed-off-by: Rob Landley <rob@landley.net> Acked-by: Anca Emanuel <anca.emanuel@gmail.com> --- arch/x86/boot/compressed/Makefile | 6 ++-- arch/x86/tools/calc_run_size.pl | 39 ---------------------------- 2 files changed, 4 insertions(+), 41 deletions(-) Note: checkpatch.pl isn't a build dependency, it's a development dependency (like bloat-o-meter being written in python or "make xconfig" needing QT). Those aren't things you need to add to your cross compile environment to produce a binary. Different category of dependency. For more history on the issue, see https://lkml.org/lkml/2013/2/27/18 --- linux/arch/x86/boot/compressed/Makefile +++ linux/arch/x86/boot/compressed/Makefile @@ -89,8 +76,10 @@ suffix-$(CONFIG_KERNEL_LZO) := lzo suffix-$(CONFIG_KERNEL_LZ4) := lz4 -RUN_SIZE = $(shell $(OBJDUMP) -h vmlinux | \ - perl $(srctree)/arch/x86/tools/calc_run_size.pl) +RUN_SIZE = $(shell NUM='\([0-9a-fA-F]*[ \t]*\)'; $(OBJDUMP) -h vmlinux | \ +sed -n 's/^[ \t0-9]*.b[sr][sk][ \t]*'"$$NUM$$NUM$$NUM$$NUM"'.*/\1\4/p' | \ +xargs | while read a b c d; do [ "$$b" != "$$d" ] && exit 1; \ +expr $$(printf "%d + %d + %d" 0x$$a 0x$$b 0x$$c); done) quiet_cmd_mkpiggy = MKPIGGY $@ cmd_mkpiggy = $(obj)/mkpiggy $< $(RUN_SIZE) > $@ || ( rm -f $@ ; false ) --- linux/arch/x86/tools/calc_run_size.pl +++ /dev/null @@ -1,39 +0,0 @@ -#!/usr/bin/perl -# -# Calculate the amount of space needed to run the kernel, including room for -# the .bss and .brk sections. -# -# Usage: -# objdump -h a.out | perl calc_run_size.pl -use strict; - -my $mem_size = 0; -my $file_offset = 0; - -my $sections=" *[0-9]+ \.(?:bss|brk) +"; -while (<>) { - if (/^$sections([0-9a-f]+) +(?:[0-9a-f]+ +){2}([0-9a-f]+)/) { - my $size = hex($1); - my $offset = hex($2); - $mem_size += $size; - if ($file_offset == 0) { - $file_offset = $offset; - } elsif ($file_offset != $offset) { - # BFD linker shows the same file offset in ELF. - # Gold linker shows them as consecutive. - next if ($file_offset + $mem_size == $offset + $size); - - printf STDERR "file_offset: 0x%lx\n", $file_offset; - printf STDERR "mem_size: 0x%lx\n", $mem_size; - printf STDERR "offset: 0x%lx\n", $offset; - printf STDERR "size: 0x%lx\n", $size; - - die ".bss and .brk are non-contiguous\n"; - } - } -} - -if ($file_offset == 0) { - die "Never found .bss or .brk file offset\n"; -} -printf("%d\n", $mem_size + $file_offset); ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCHv2] remove recently added perl build requirement 2015-01-12 16:54 ` [PATCHv2] remove recently added perl build requirement Rob Landley @ 2015-01-13 1:01 ` Kees Cook 0 siblings, 0 replies; 12+ messages in thread From: Kees Cook @ 2015-01-13 1:01 UTC (permalink / raw) To: Rob Landley Cc: Andrew Morton, linux-kernel@vger.kernel.org, Fengguang Wu, Junjie Mao, # 3.4.x, Thomas Gleixner On Mon, Jan 12, 2015 at 8:54 AM, Rob Landley <rob@landley.net> wrote: > From: Rob Landley <rob@landley.net> > > Commit e6023367d779 ("x86, kaslr: Prevent .bss from overlaping initrd") > added perl back to the kernel build dependencies in -rc6. Ah, yeah, good call on Perl as a build dep. > Replace those 39 lines of perl with 4 lines of shell script. > > Signed-off-by: Rob Landley <rob@landley.net> > Acked-by: Anca Emanuel <anca.emanuel@gmail.com> > --- > > arch/x86/boot/compressed/Makefile | 6 ++-- > arch/x86/tools/calc_run_size.pl | 39 ---------------------------- > 2 files changed, 4 insertions(+), 41 deletions(-) > > Note: checkpatch.pl isn't a build dependency, it's a development dependency > (like bloat-o-meter being written in python or "make xconfig" needing QT). > Those aren't things you need to add to your cross compile environment > to produce a binary. Different category of dependency. > > For more history on the issue, see https://lkml.org/lkml/2013/2/27/18 > > --- linux/arch/x86/boot/compressed/Makefile > +++ linux/arch/x86/boot/compressed/Makefile > @@ -89,8 +76,10 @@ > suffix-$(CONFIG_KERNEL_LZO) := lzo > suffix-$(CONFIG_KERNEL_LZ4) := lz4 > > -RUN_SIZE = $(shell $(OBJDUMP) -h vmlinux | \ > - perl $(srctree)/arch/x86/tools/calc_run_size.pl) > +RUN_SIZE = $(shell NUM='\([0-9a-fA-F]*[ \t]*\)'; $(OBJDUMP) -h vmlinux | \ > +sed -n 's/^[ \t0-9]*.b[sr][sk][ \t]*'"$$NUM$$NUM$$NUM$$NUM"'.*/\1\4/p' | \ > +xargs | while read a b c d; do [ "$$b" != "$$d" ] && exit 1; \ > +expr $$(printf "%d + %d + %d" 0x$$a 0x$$b 0x$$c); done) > quiet_cmd_mkpiggy = MKPIGGY $@ > cmd_mkpiggy = $(obj)/mkpiggy $< $(RUN_SIZE) > $@ || ( rm -f $@ ; false ) I'd much prefer a full shell script as this is hard to read. It loses all the comments and variable names, etc. Also, this reverts commit 70b61e362187 ("x86, kaslr: Handle Gold linker for finding bss/brk"). -Kees > > --- linux/arch/x86/tools/calc_run_size.pl > +++ /dev/null > @@ -1,39 +0,0 @@ > -#!/usr/bin/perl > -# > -# Calculate the amount of space needed to run the kernel, including room for > -# the .bss and .brk sections. > -# > -# Usage: > -# objdump -h a.out | perl calc_run_size.pl > -use strict; > - > -my $mem_size = 0; > -my $file_offset = 0; > - > -my $sections=" *[0-9]+ \.(?:bss|brk) +"; > -while (<>) { > - if (/^$sections([0-9a-f]+) +(?:[0-9a-f]+ +){2}([0-9a-f]+)/) { > - my $size = hex($1); > - my $offset = hex($2); > - $mem_size += $size; > - if ($file_offset == 0) { > - $file_offset = $offset; > - } elsif ($file_offset != $offset) { > - # BFD linker shows the same file offset in ELF. > - # Gold linker shows them as consecutive. > - next if ($file_offset + $mem_size == $offset + $size); > - > - printf STDERR "file_offset: 0x%lx\n", $file_offset; > - printf STDERR "mem_size: 0x%lx\n", $mem_size; > - printf STDERR "offset: 0x%lx\n", $offset; > - printf STDERR "size: 0x%lx\n", $size; > - > - die ".bss and .brk are non-contiguous\n"; > - } > - } > -} > - > -if ($file_offset == 0) { > - die "Never found .bss or .brk file offset\n"; > -} > -printf("%d\n", $mem_size + $file_offset); -- Kees Cook Chrome OS Security ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] out out damn perl 2015-01-06 23:50 ` Andrew Morton 2015-01-12 16:54 ` [PATCHv2] remove recently added perl build requirement Rob Landley @ 2015-01-17 8:01 ` Pavel Machek 2015-01-17 11:56 ` Geert Uytterhoeven 2015-01-17 19:55 ` Rob Landley 1 sibling, 2 replies; 12+ messages in thread From: Pavel Machek @ 2015-01-17 8:01 UTC (permalink / raw) To: Andrew Morton; +Cc: Rob Landley, linux-kernel@vger.kernel.org On Tue 2015-01-06 15:50:24, Andrew Morton wrote: > On Tue, 06 Jan 2015 17:41:35 -0600 Rob Landley <rob@landley.net> wrote: > > > Commit e6023367d779 added perl back to the kernel build in -rc6. > > Replace 39 lines of perl with 4 lines of shell script. > > Please resend this: > > - Express the commit in the conventional fashion > > e6023367d779 ("x86, kaslr: Prevent .bss from overlaping initrd") > > - So that we all don't have to go look up the commit to find out > what happened. > > - So people can look up the commit in other trees, where the hash > might change. > > - Cc the people who wrote and committed the patch. > > - The offending commit has cc:stable, so have a think about adding a > cc:stable to this one as well. Actually, I don't think this should go to stable. I like the patch, but it is not a bug, and certainly not serious enough one. > - The title is cute, but not terribly informative. Cute :-). -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] out out damn perl 2015-01-17 8:01 ` [PATCH] out out damn perl Pavel Machek @ 2015-01-17 11:56 ` Geert Uytterhoeven 2015-01-17 19:55 ` Rob Landley 1 sibling, 0 replies; 12+ messages in thread From: Geert Uytterhoeven @ 2015-01-17 11:56 UTC (permalink / raw) To: Pavel Machek; +Cc: Andrew Morton, Rob Landley, linux-kernel@vger.kernel.org On Sat, Jan 17, 2015 at 9:01 AM, Pavel Machek <pavel@ucw.cz> wrote: > On Tue 2015-01-06 15:50:24, Andrew Morton wrote: >> On Tue, 06 Jan 2015 17:41:35 -0600 Rob Landley <rob@landley.net> wrote: >> >> > Commit e6023367d779 added perl back to the kernel build in -rc6. >> > Replace 39 lines of perl with 4 lines of shell script. >> >> Please resend this: >> >> - Express the commit in the conventional fashion >> >> e6023367d779 ("x86, kaslr: Prevent .bss from overlaping initrd") >> >> - So that we all don't have to go look up the commit to find out >> what happened. >> >> - So people can look up the commit in other trees, where the hash >> might change. >> >> - Cc the people who wrote and committed the patch. >> >> - The offending commit has cc:stable, so have a think about adding a >> cc:stable to this one as well. > > Actually, I don't think this should go to stable. I like the patch, > but it is not a bug, and certainly not serious enough one. It is a regression w.r.t. building. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] out out damn perl 2015-01-17 8:01 ` [PATCH] out out damn perl Pavel Machek 2015-01-17 11:56 ` Geert Uytterhoeven @ 2015-01-17 19:55 ` Rob Landley 1 sibling, 0 replies; 12+ messages in thread From: Rob Landley @ 2015-01-17 19:55 UTC (permalink / raw) To: Pavel Machek, Andrew Morton; +Cc: linux-kernel@vger.kernel.org On 01/17/2015 02:01 AM, Pavel Machek wrote: > > On Tue 2015-01-06 15:50:24, Andrew Morton wrote: >> On Tue, 06 Jan 2015 17:41:35 -0600 Rob Landley <rob@landley.net> wrote: >> >>> Commit e6023367d779 added perl back to the kernel build in -rc6. >>> Replace 39 lines of perl with 4 lines of shell script. ... >> - The offending commit has cc:stable, so have a think about adding a >> cc:stable to this one as well. > > Actually, I don't think this should go to stable. I like the patch, > but it is not a bug, and certainly not serious enough one. As long as the kernel doesn't make a habit of it, I don't care if there's a release or two embedded developers should skip. Under ideal conditions BSPs only tend to update about once every 18 months, and that's the _good_ ones. Rob ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] out out damn perl 2015-01-06 23:41 [PATCH] out out damn perl Rob Landley 2015-01-06 23:50 ` Andrew Morton @ 2015-01-12 15:16 ` Lennart Sorensen 2015-01-12 15:25 ` Borislav Petkov 2015-01-12 15:27 ` Richard Weinberger 1 sibling, 2 replies; 12+ messages in thread From: Lennart Sorensen @ 2015-01-12 15:16 UTC (permalink / raw) To: Rob Landley; +Cc: linux-kernel@vger.kernel.org, Andrew Morton On Tue, Jan 06, 2015 at 05:41:35PM -0600, Rob Landley wrote: > From: Rob Landley <rob@landley.net> > > Commit e6023367d779 added perl back to the kernel build in -rc6. > Replace 39 lines of perl with 4 lines of shell script. Maybe checkpatch should be updated to look for perl. :) -- Len Sorensen ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] out out damn perl 2015-01-12 15:16 ` Lennart Sorensen @ 2015-01-12 15:25 ` Borislav Petkov 2015-01-12 15:27 ` Richard Weinberger 1 sibling, 0 replies; 12+ messages in thread From: Borislav Petkov @ 2015-01-12 15:25 UTC (permalink / raw) To: Lennart Sorensen; +Cc: Rob Landley, linux-kernel@vger.kernel.org, Andrew Morton On Mon, Jan 12, 2015 at 10:16:25AM -0500, Lennart Sorensen wrote: > On Tue, Jan 06, 2015 at 05:41:35PM -0600, Rob Landley wrote: > > From: Rob Landley <rob@landley.net> > > > > Commit e6023367d779 added perl back to the kernel build in -rc6. > > Replace 39 lines of perl with 4 lines of shell script. > > Maybe checkpatch should be updated to look for perl. :) And patch itself out. Yep, good idea. :-D -- Regards/Gruss, Boris. Sent from a fat crate under my desk. Formatting is fine. -- ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] out out damn perl 2015-01-12 15:16 ` Lennart Sorensen 2015-01-12 15:25 ` Borislav Petkov @ 2015-01-12 15:27 ` Richard Weinberger 2015-01-12 16:14 ` Rob Landley 1 sibling, 1 reply; 12+ messages in thread From: Richard Weinberger @ 2015-01-12 15:27 UTC (permalink / raw) To: Lennart Sorensen; +Cc: Rob Landley, linux-kernel@vger.kernel.org, Andrew Morton On Mon, Jan 12, 2015 at 4:16 PM, Lennart Sorensen <lsorense@csclub.uwaterloo.ca> wrote: > On Tue, Jan 06, 2015 at 05:41:35PM -0600, Rob Landley wrote: >> From: Rob Landley <rob@landley.net> >> >> Commit e6023367d779 added perl back to the kernel build in -rc6. >> Replace 39 lines of perl with 4 lines of shell script. > > Maybe checkpatch should be updated to look for perl. :) Yeah, then checkpatch.pl warn on itself. ;-) -- Thanks, //richard ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] out out damn perl 2015-01-12 15:27 ` Richard Weinberger @ 2015-01-12 16:14 ` Rob Landley 2015-01-12 16:17 ` Richard Weinberger 0 siblings, 1 reply; 12+ messages in thread From: Rob Landley @ 2015-01-12 16:14 UTC (permalink / raw) To: Richard Weinberger, Lennart Sorensen Cc: linux-kernel@vger.kernel.org, Andrew Morton On 01/12/2015 09:27 AM, Richard Weinberger wrote: > On Mon, Jan 12, 2015 at 4:16 PM, Lennart Sorensen > <lsorense@csclub.uwaterloo.ca> wrote: >> On Tue, Jan 06, 2015 at 05:41:35PM -0600, Rob Landley wrote: >>> From: Rob Landley <rob@landley.net> >>> >>> Commit e6023367d779 added perl back to the kernel build in -rc6. >>> Replace 39 lines of perl with 4 lines of shell script. >> >> Maybe checkpatch should be updated to look for perl. :) > > Yeah, then checkpatch.pl warn on itself. ;-) There's a difference between a development tool and a build tool. We have "make xconfig" and "make gconfig" but don't require qt and gtk to both be in your cross compile environment in order to build the kernel. Rob ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] out out damn perl 2015-01-12 16:14 ` Rob Landley @ 2015-01-12 16:17 ` Richard Weinberger 0 siblings, 0 replies; 12+ messages in thread From: Richard Weinberger @ 2015-01-12 16:17 UTC (permalink / raw) To: Rob Landley, Richard Weinberger, Lennart Sorensen Cc: linux-kernel@vger.kernel.org, Andrew Morton Am 12.01.2015 um 17:14 schrieb Rob Landley: > On 01/12/2015 09:27 AM, Richard Weinberger wrote: >> On Mon, Jan 12, 2015 at 4:16 PM, Lennart Sorensen >> <lsorense@csclub.uwaterloo.ca> wrote: >>> On Tue, Jan 06, 2015 at 05:41:35PM -0600, Rob Landley wrote: >>>> From: Rob Landley <rob@landley.net> >>>> >>>> Commit e6023367d779 added perl back to the kernel build in -rc6. >>>> Replace 39 lines of perl with 4 lines of shell script. >>> >>> Maybe checkpatch should be updated to look for perl. :) >> >> Yeah, then checkpatch.pl warn on itself. ;-) > > There's a difference between a development tool and a build tool. We > have "make xconfig" and "make gconfig" but don't require qt and gtk to > both be in your cross compile environment in order to build the kernel. You got me wrong. I'm all for removing perl as build dependency. Thanks, //richard ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2015-01-17 19:55 UTC | newest] Thread overview: 12+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-01-06 23:41 [PATCH] out out damn perl Rob Landley 2015-01-06 23:50 ` Andrew Morton 2015-01-12 16:54 ` [PATCHv2] remove recently added perl build requirement Rob Landley 2015-01-13 1:01 ` Kees Cook 2015-01-17 8:01 ` [PATCH] out out damn perl Pavel Machek 2015-01-17 11:56 ` Geert Uytterhoeven 2015-01-17 19:55 ` Rob Landley 2015-01-12 15:16 ` Lennart Sorensen 2015-01-12 15:25 ` Borislav Petkov 2015-01-12 15:27 ` Richard Weinberger 2015-01-12 16:14 ` Rob Landley 2015-01-12 16:17 ` Richard Weinberger
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox