* [Buildroot] How to build the qt plugin in gst1-plugins-bad ? @ 2017-07-19 9:17 Glenn Coombs 2017-07-19 9:35 ` Thomas Petazzoni 0 siblings, 1 reply; 7+ messages in thread From: Glenn Coombs @ 2017-07-19 9:17 UTC (permalink / raw) To: buildroot Hi, I would like to use the gstreamer sink called qmlglsink, which is part of the qt plugin in the gst1-plugins-bad package. My target system is an imx6q using EGLFS (so no X11 or Wayland). When looking at the config.log file in the build/gst1-plugins-bad-1.10.4/ directory I can see that the qt plugin is not selected for building due to --disable-qt being passed to the configure script. I modified the Config.in and gst1-plugins-bad.mk files in the buildroot/package/gstreamer1/gst1-plugins-bad/ directory to add the option to pass --enable-qt to the configure script and that got me a bit further. The configure script now checks to build the qt plugin but decides against it because it can't work out the Qt Windowing system: configure:50115: checking for QT configure:50123: $PKG_CONFIG --exists --print-errors "Qt5Core Qt5Gui Qt5Qml Qt5Quick >= 5.4.0" configure:50126: $? = 0 configure:50141: $PKG_CONFIG --exists --print-errors "Qt5Core Qt5Gui Qt5Qml Qt5Quick >= 5.4.0" configure:50144: $? = 0 configure:50184: result: yes configure:50193: checking for moc-qt5 configure:50226: result: no configure:50193: checking for moc configure:50211: found /opt/porky/dev-new-kernel/imx6qdtibrd0208/host/usr/bin/moc configure:50223: result: /opt/porky/dev-new-kernel/imx6qdtibrd0208/host/usr/bin/moc configure:50239: checking for rcc-qt5 configure:50272: result: no configure:50239: checking for rcc configure:50257: found /opt/porky/dev-new-kernel/imx6qdtibrd0208/host/usr/bin/rcc configure:50269: result: /opt/porky/dev-new-kernel/imx6qdtibrd0208/host/usr/bin/rcc configure:50285: checking for uic-qt5 configure:50318: result: no configure:50285: checking for uic configure:50303: found /opt/porky/dev-new-kernel/imx6qdtibrd0208/host/usr/bin/uic configure:50315: result: /opt/porky/dev-new-kernel/imx6qdtibrd0208/host/usr/bin/uic configure:50774: WARNING: Could not find any Qt Windowing integration I'm not sure why the qt plugin is explicitly disabled - is there a known issue with building this plugin ? Can anybody help with what further options I might need to set to get it to build ? Thanks, -- Glenn -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20170719/b422d472/attachment.html> ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] How to build the qt plugin in gst1-plugins-bad ? 2017-07-19 9:17 [Buildroot] How to build the qt plugin in gst1-plugins-bad ? Glenn Coombs @ 2017-07-19 9:35 ` Thomas Petazzoni 2017-07-19 9:55 ` Glenn Coombs 0 siblings, 1 reply; 7+ messages in thread From: Thomas Petazzoni @ 2017-07-19 9:35 UTC (permalink / raw) To: buildroot Hello, On Wed, 19 Jul 2017 17:17:43 +0800, Glenn Coombs wrote: > configure:50774: WARNING: Could not find any Qt Windowing integration > > I'm not sure why the qt plugin is explicitly disabled - is there a known > issue with building this plugin ? I don't think so, it's probably just that nobody needed it until now, and therefore nobody did the effort to see what changes were needed to enable it. > Can anybody help with what further options I might need to set to get > it to build ? You should read the configure.ac script of gst1-plugins-bad, it gives all the details of the checks it is doing about Qt. See https://cgit.freedesktop.org/gstreamer/gst-plugins-bad/tree/configure.ac?id=1.12.1#n2907. Since you're using eglfs, I think you should fall into the case where: if test "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then then since you're not on Android if test "x$GST_GL_HAVE_WINDOW_ANDROID" = "x1"; then should be false, which brings you to the else case: else AC_DEFINE([HAVE_QT_EGLFS], [], [Define if Qt eglfs integration is installed]) HAVE_QT_WINDOWING="yes" fi The error message that you get "Could not find any Qt Windowing integration" appears when HAVE_QT_WINDOWING is "no". So obviously GST_GL_HAVE_PLATFORM_EGL is not "1" in your situation, and that's the problem. GST_GL_HAVE_PLATFORM_EGL is set to 1 in: if test "x$USE_EGL" = "xyes"; then GL_PLATFORMS="egl $GL_PLATFORMS" GST_GL_HAVE_PLATFORM_EGL=1 fi So we need to understand when USE_EGL is set to "yes". For the Linux platform, it is set to yes as follows: if test "x$NEED_EGL" != "xno"; then if test "x$HAVE_WINDOW_WAYLAND" = "xyes" -o "x$HAVE_WINDOW_X11" = "xyes" -o "x$HAVE_WINDOW_DISPMANX" = "xyes" -o "x$HAVE_WINDOW_VIV_FB" = "xyes"; then GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS" GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS" USE_EGL=yes fi fi So you need to find out why HAVE_WINDOW_VIV_FB is not "yes". I suggest that you add a bunch of additional echo in the configure script to dump the value of the various variables, in order to progressively figure out what's going on. Once you have nailed down the problematic variable, we can probably help again to understand what is the problem. Good luck! Thomas Petazzoni -- Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] How to build the qt plugin in gst1-plugins-bad ? 2017-07-19 9:35 ` Thomas Petazzoni @ 2017-07-19 9:55 ` Glenn Coombs 2017-07-19 10:01 ` Thomas Petazzoni 0 siblings, 1 reply; 7+ messages in thread From: Glenn Coombs @ 2017-07-19 9:55 UTC (permalink / raw) To: buildroot Hi Thomas, Thanks for the debug. Is that section with HAVE_WINDOW_VIV_FB from the build/gst1-plugins-bad-1.10.4/configure.ac file? I have this section in that file at line 1059: if test "x$NEED_EGL" != "xno"; then if test "x$HAVE_WINDOW_WAYLAND" = "xyes" -o "x$HAVE_WINDOW_X11" = "xyes" -o "x$HAVE_WINDOW_DISPMANX" = "xyes"; then GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS" GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS" USE_EGL=yes fi fi As you can see I am missing the HAVE_WINDOW_VIV_FB bit. Looking at the output of dmesg on my target system I can see this version: Buildroot 2017.05-00055-g338f004. Presumably I need an even newer version of buildroot than I already have ? -- Glenn On 19 July 2017 at 17:35, Thomas Petazzoni < thomas.petazzoni@free-electrons.com> wrote: > Hello, > > On Wed, 19 Jul 2017 17:17:43 +0800, Glenn Coombs wrote: > > > configure:50774: WARNING: Could not find any Qt Windowing integration > > > > I'm not sure why the qt plugin is explicitly disabled - is there a known > > issue with building this plugin ? > > I don't think so, it's probably just that nobody needed it until now, > and therefore nobody did the effort to see what changes were needed to > enable it. > > > Can anybody help with what further options I might need to set to get > > it to build ? > > You should read the configure.ac script of gst1-plugins-bad, it gives > all the details of the checks it is doing about Qt. See > https://cgit.freedesktop.org/gstreamer/gst-plugins-bad/ > tree/configure.ac?id=1.12.1#n2907. > > Since you're using eglfs, I think you should fall into the case where: > > if test "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then > > then since you're not on Android > > if test "x$GST_GL_HAVE_WINDOW_ANDROID" = "x1"; then > > should be false, which brings you to the else case: > > else > AC_DEFINE([HAVE_QT_EGLFS], [], > [Define if Qt eglfs integration is installed]) > HAVE_QT_WINDOWING="yes" > fi > > The error message that you get "Could not find any Qt Windowing > integration" appears when HAVE_QT_WINDOWING is "no". So obviously > GST_GL_HAVE_PLATFORM_EGL is not "1" in your situation, and that's the > problem. > > GST_GL_HAVE_PLATFORM_EGL is set to 1 in: > > if test "x$USE_EGL" = "xyes"; then > GL_PLATFORMS="egl $GL_PLATFORMS" > GST_GL_HAVE_PLATFORM_EGL=1 > fi > > So we need to understand when USE_EGL is set to "yes". For the Linux > platform, it is set to yes as follows: > > if test "x$NEED_EGL" != "xno"; then > if test "x$HAVE_WINDOW_WAYLAND" = "xyes" -o "x$HAVE_WINDOW_X11" = > "xyes" -o "x$HAVE_WINDOW_DISPMANX" = "xyes" -o "x$HAVE_WINDOW_VIV_FB" = > "xyes"; then > GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS" > GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS" > USE_EGL=yes > fi > fi > > So you need to find out why HAVE_WINDOW_VIV_FB is not "yes". > > I suggest that you add a bunch of additional echo in the configure > script to dump the value of the various variables, in order to > progressively figure out what's going on. > > Once you have nailed down the problematic variable, we can probably > help again to understand what is the problem. > > Good luck! > > Thomas Petazzoni > -- > Thomas Petazzoni, CTO, Free Electrons > Embedded Linux and Kernel engineering > http://free-electrons.com > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20170719/b237fd73/attachment.html> ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] How to build the qt plugin in gst1-plugins-bad ? 2017-07-19 9:55 ` Glenn Coombs @ 2017-07-19 10:01 ` Thomas Petazzoni 2017-07-21 7:39 ` Glenn Coombs 0 siblings, 1 reply; 7+ messages in thread From: Thomas Petazzoni @ 2017-07-19 10:01 UTC (permalink / raw) To: buildroot Hello, On Wed, 19 Jul 2017 17:55:54 +0800, Glenn Coombs wrote: > Thanks for the debug. Is that section with HAVE_WINDOW_VIV_FB from the > build/gst1-plugins-bad-1.10.4/configure.ac file? I have this section in > that file at line 1059: > > if test "x$NEED_EGL" != "xno"; then > if test "x$HAVE_WINDOW_WAYLAND" = "xyes" -o "x$HAVE_WINDOW_X11" = > "xyes" -o "x$HAVE_WINDOW_DISPMANX" = "xyes"; then > GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS" > GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS" > USE_EGL=yes > fi > fi > > As you can see I am missing the HAVE_WINDOW_VIV_FB bit. Looking at the > output of dmesg on my target system I can see this version: Buildroot > 2017.05-00055-g338f004. Presumably I need an even newer version of > buildroot than I already have ? gst1-plugins-bad has been upgraded in commit 38e95aa170360850d68459516965b98cc15f3f49, which is *after* the commit you're currently based on. Your commit is 55 commits after 2017.05, while the gst1-plugins-bad has been done 807 commits after 2017.05. So yes: update your Buildroot to the latest master! :-) Thomas -- Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] How to build the qt plugin in gst1-plugins-bad ? 2017-07-19 10:01 ` Thomas Petazzoni @ 2017-07-21 7:39 ` Glenn Coombs 2017-07-21 7:44 ` Thomas Petazzoni 0 siblings, 1 reply; 7+ messages in thread From: Glenn Coombs @ 2017-07-21 7:39 UTC (permalink / raw) To: buildroot Hi Thomas, Thanks for all your help. I have now succeeded in building this plugin. After upgrading buildroot to the latest master I had to change the following settings: * set the "Default graphical platform" to "eglfs" in section target packages->Graphic libraries and applications/Qt5 * enable "opengl" in section target packages->Audio and video applications->gstreamer 1.1->gst1-plugins-bad * enable "qt" in section target packages->Audio and video applications->gstreamer 1.1->gst1-plugins-bad The last of these required me to modify the Config.in and gst1-plugins-bad.mk files in the gst1-plugins-bad directory to create the new "qt" setting. The diff for these changes is as follows: diff --git a/package/gstreamer1/gst1-plugins-bad/Config.in b/package/gstreamer1/gst1-plugins-bad/Config.in index 0c97899..22aacb3 100644 --- a/package/gstreamer1/gst1-plugins-bad/Config.in +++ b/package/gstreamer1/gst1-plugins-bad/Config.in @@ -349,6 +349,11 @@ config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_PNM help PNM plugin +config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_QT + bool "qt" + help + Qt plugin + config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_RAWPARSE bool "rawparse" help diff --git a/package/gstreamer1/gst1-plugins-bad/gst1-plugins-bad.mk b/package/gstreamer1/gst1-plugins-bad/gst1-plugins-bad.mk index 2e9e6f1..1caca13 100644 --- a/package/gstreamer1/gst1-plugins-bad/gst1-plugins-bad.mk +++ b/package/gstreamer1/gst1-plugins-bad/gst1-plugins-bad.mk @@ -58,8 +58,7 @@ GST1_PLUGINS_BAD_CONF_OPTS += \ --disable-schro \ --disable-zbar \ --disable-spandsp \ - --disable-gtk3 \ - --disable-qt + --disable-gtk3 GST1_PLUGINS_BAD_DEPENDENCIES = gst1-plugins-base gstreamer1 @@ -403,6 +402,12 @@ else GST1_PLUGINS_BAD_CONF_OPTS += --disable-pnm endif +ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_QT),y) +GST1_PLUGINS_BAD_CONF_OPTS += --enable-qt +else +GST1_PLUGINS_BAD_CONF_OPTS += --disable-qt +endif + ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_RAWPARSE),y) GST1_PLUGINS_BAD_CONF_OPTS += --enable-rawparse else Hopefully those changes can be incorporated into buildroot so that other people will be able to make use of this package. -- Glenn On 19 July 2017 at 18:01, Thomas Petazzoni < thomas.petazzoni@free-electrons.com> wrote: > Hello, > > On Wed, 19 Jul 2017 17:55:54 +0800, Glenn Coombs wrote: > > > Thanks for the debug. Is that section with HAVE_WINDOW_VIV_FB from the > > build/gst1-plugins-bad-1.10.4/configure.ac file? I have this section in > > that file at line 1059: > > > > if test "x$NEED_EGL" != "xno"; then > > if test "x$HAVE_WINDOW_WAYLAND" = "xyes" -o "x$HAVE_WINDOW_X11" = > > "xyes" -o "x$HAVE_WINDOW_DISPMANX" = "xyes"; then > > GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS" > > GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS" > > USE_EGL=yes > > fi > > fi > > > > As you can see I am missing the HAVE_WINDOW_VIV_FB bit. Looking at the > > output of dmesg on my target system I can see this version: Buildroot > > 2017.05-00055-g338f004. Presumably I need an even newer version of > > buildroot than I already have ? > > gst1-plugins-bad has been upgraded in commit > 38e95aa170360850d68459516965b98cc15f3f49, which is *after* the commit > you're currently based on. Your commit is 55 commits after 2017.05, > while the gst1-plugins-bad has been done 807 commits after 2017.05. > > So yes: update your Buildroot to the latest master! :-) > > Thomas > -- > Thomas Petazzoni, CTO, Free Electrons > Embedded Linux and Kernel engineering > http://free-electrons.com > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20170721/b7ac5d9d/attachment.html> ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [Buildroot] How to build the qt plugin in gst1-plugins-bad ? 2017-07-21 7:39 ` Glenn Coombs @ 2017-07-21 7:44 ` Thomas Petazzoni 2017-07-21 8:35 ` Glenn Coombs 0 siblings, 1 reply; 7+ messages in thread From: Thomas Petazzoni @ 2017-07-21 7:44 UTC (permalink / raw) To: buildroot Hello, On Fri, 21 Jul 2017 15:39:35 +0800, Glenn Coombs wrote: > Thanks for all your help. I have now succeeded in building this plugin. Great! > The last of these required me to modify the Config.in and > gst1-plugins-bad.mk files in the gst1-plugins-bad directory to create the > new "qt" setting. The diff for these changes is as follows: > > diff --git a/package/gstreamer1/gst1-plugins-bad/Config.in > b/package/gstreamer1/gst1-plugins-bad/Config.in > index 0c97899..22aacb3 100644 > --- a/package/gstreamer1/gst1-plugins-bad/Config.in > +++ b/package/gstreamer1/gst1-plugins-bad/Config.in > @@ -349,6 +349,11 @@ config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_PNM > help > PNM plugin > > +config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_QT > + bool "qt" > + help > + Qt plugin > + > config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_RAWPARSE > bool "rawparse" > help > diff --git a/package/gstreamer1/gst1-plugins-bad/gst1-plugins-bad.mk > b/package/gstreamer1/gst1-plugins-bad/gst1-plugins-bad.mk > index 2e9e6f1..1caca13 100644 > --- a/package/gstreamer1/gst1-plugins-bad/gst1-plugins-bad.mk > +++ b/package/gstreamer1/gst1-plugins-bad/gst1-plugins-bad.mk > @@ -58,8 +58,7 @@ GST1_PLUGINS_BAD_CONF_OPTS += \ > --disable-schro \ > --disable-zbar \ > --disable-spandsp \ > - --disable-gtk3 \ > - --disable-qt > + --disable-gtk3 > > GST1_PLUGINS_BAD_DEPENDENCIES = gst1-plugins-base gstreamer1 > > @@ -403,6 +402,12 @@ else > GST1_PLUGINS_BAD_CONF_OPTS += --disable-pnm > endif > > +ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_QT),y) > +GST1_PLUGINS_BAD_CONF_OPTS += --enable-qt > +else > +GST1_PLUGINS_BAD_CONF_OPTS += --disable-qt > +endif > + > ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_RAWPARSE),y) > GST1_PLUGINS_BAD_CONF_OPTS += --enable-rawparse > else > > Hopefully those changes can be incorporated into buildroot so that other > people will be able to make use of this package. Could you instead submit this as a proper patch to Buildroot? See https://buildroot.org/downloads/manual/manual.html#submitting-patches for details on how to contribute a patch to Buildroot. Thanks! Thomas -- Thomas Petazzoni, CTO, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] How to build the qt plugin in gst1-plugins-bad ? 2017-07-21 7:44 ` Thomas Petazzoni @ 2017-07-21 8:35 ` Glenn Coombs 0 siblings, 0 replies; 7+ messages in thread From: Glenn Coombs @ 2017-07-21 8:35 UTC (permalink / raw) To: buildroot No problems - I will submit it as a proper patch. -- Glenn On 21 July 2017 at 15:44, Thomas Petazzoni < thomas.petazzoni@free-electrons.com> wrote: > Hello, > > On Fri, 21 Jul 2017 15:39:35 +0800, Glenn Coombs wrote: > > > Thanks for all your help. I have now succeeded in building this plugin. > > Great! > > > The last of these required me to modify the Config.in and > > gst1-plugins-bad.mk files in the gst1-plugins-bad directory to create > the > > new "qt" setting. The diff for these changes is as follows: > > > > diff --git a/package/gstreamer1/gst1-plugins-bad/Config.in > > b/package/gstreamer1/gst1-plugins-bad/Config.in > > index 0c97899..22aacb3 100644 > > --- a/package/gstreamer1/gst1-plugins-bad/Config.in > > +++ b/package/gstreamer1/gst1-plugins-bad/Config.in > > @@ -349,6 +349,11 @@ config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_PNM > > help > > PNM plugin > > > > +config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_QT > > + bool "qt" > > + help > > + Qt plugin > > + > > config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_RAWPARSE > > bool "rawparse" > > help > > diff --git a/package/gstreamer1/gst1-plugins-bad/gst1-plugins-bad.mk > > b/package/gstreamer1/gst1-plugins-bad/gst1-plugins-bad.mk > > index 2e9e6f1..1caca13 100644 > > --- a/package/gstreamer1/gst1-plugins-bad/gst1-plugins-bad.mk > > +++ b/package/gstreamer1/gst1-plugins-bad/gst1-plugins-bad.mk > > @@ -58,8 +58,7 @@ GST1_PLUGINS_BAD_CONF_OPTS += \ > > --disable-schro \ > > --disable-zbar \ > > --disable-spandsp \ > > - --disable-gtk3 \ > > - --disable-qt > > + --disable-gtk3 > > > > GST1_PLUGINS_BAD_DEPENDENCIES = gst1-plugins-base gstreamer1 > > > > @@ -403,6 +402,12 @@ else > > GST1_PLUGINS_BAD_CONF_OPTS += --disable-pnm > > endif > > > > +ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_QT),y) > > +GST1_PLUGINS_BAD_CONF_OPTS += --enable-qt > > +else > > +GST1_PLUGINS_BAD_CONF_OPTS += --disable-qt > > +endif > > + > > ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_RAWPARSE),y) > > GST1_PLUGINS_BAD_CONF_OPTS += --enable-rawparse > > else > > > > Hopefully those changes can be incorporated into buildroot so that other > > people will be able to make use of this package. > > Could you instead submit this as a proper patch to Buildroot? See > https://buildroot.org/downloads/manual/manual.html#submitting-patches > for details on how to contribute a patch to Buildroot. > > Thanks! > > Thomas > -- > Thomas Petazzoni, CTO, Free Electrons > Embedded Linux and Kernel engineering > http://free-electrons.com > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20170721/685fc053/attachment.html> ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2017-07-21 8:35 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2017-07-19 9:17 [Buildroot] How to build the qt plugin in gst1-plugins-bad ? Glenn Coombs 2017-07-19 9:35 ` Thomas Petazzoni 2017-07-19 9:55 ` Glenn Coombs 2017-07-19 10:01 ` Thomas Petazzoni 2017-07-21 7:39 ` Glenn Coombs 2017-07-21 7:44 ` Thomas Petazzoni 2017-07-21 8:35 ` Glenn Coombs
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox