* [Buildroot] [PATCH 1/2] dante: add AUTORECONF=YES @ 2018-11-26 18:22 Fabrice Fontaine 2018-11-26 18:22 ` [Buildroot] [PATCH 2/2] dante: fix --without-pam Fabrice Fontaine 2018-11-26 19:43 ` [Buildroot] [PATCH 1/2] dante: add AUTORECONF=YES Yann E. MORIN 0 siblings, 2 replies; 7+ messages in thread From: Fabrice Fontaine @ 2018-11-26 18:22 UTC (permalink / raw) To: buildroot We're patching compiler.m4 Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> --- package/dante/dante.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/dante/dante.mk b/package/dante/dante.mk index a147aa36dc..ff42e7432b 100644 --- a/package/dante/dante.mk +++ b/package/dante/dante.mk @@ -9,8 +9,8 @@ DANTE_SITE = http://www.inet.no/dante/files DANTE_LICENSE = BSD-3-Clause DANTE_LICENSE_FILES = LICENSE -# Dante uses a *VERY* old configure.ac -DANTE_LIBTOOL_PATCH = NO +# We're patching compiler.m4 +DANTE_AUTORECONF = YES DANTE_CONF_OPTS += --disable-client --disable-preload --without-pam -- 2.14.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH 2/2] dante: fix --without-pam 2018-11-26 18:22 [Buildroot] [PATCH 1/2] dante: add AUTORECONF=YES Fabrice Fontaine @ 2018-11-26 18:22 ` Fabrice Fontaine 2018-11-26 19:46 ` Yann E. MORIN 2018-11-26 19:43 ` [Buildroot] [PATCH 1/2] dante: add AUTORECONF=YES Yann E. MORIN 1 sibling, 1 reply; 7+ messages in thread From: Fabrice Fontaine @ 2018-11-26 18:22 UTC (permalink / raw) To: buildroot Don't call AC_CHECK_HEADERS(security/pam_appl.h) and AC_SEARCH_LIBS(pam_start, pam) if pam is disabled through --without-pam otherwise cross-compilation could fail if a pam library is found on host Fixes: - http://autobuild.buildroot.org/results/e37e61bae1d81a7956e2843be70fea84b0bbb64b Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> --- .../dante/0003-sharedopt.m4-fix-without-pam.patch | 42 ++++++++++++++++++++++ package/dante/dante.mk | 2 +- 2 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 package/dante/0003-sharedopt.m4-fix-without-pam.patch diff --git a/package/dante/0003-sharedopt.m4-fix-without-pam.patch b/package/dante/0003-sharedopt.m4-fix-without-pam.patch new file mode 100644 index 0000000000..75ef07c134 --- /dev/null +++ b/package/dante/0003-sharedopt.m4-fix-without-pam.patch @@ -0,0 +1,42 @@ +From 0cb78bcb81664a6507b37252ae28818bd1b7de23 Mon Sep 17 00:00:00 2001 +From: Fabrice Fontaine <fontaine.fabrice@gmail.com> +Date: Sun, 25 Nov 2018 19:07:39 +0100 +Subject: [PATCH] sharedopt.m4: fix --without-pam + +Don't call AC_CHECK_HEADERS(security/pam_appl.h) and +AC_SEARCH_LIBS(pam_start, pam) if pam is disabled through --without-pam +otherwise cross-compilation could fail if a pam library is found on host + +Fixes: + - http://autobuild.buildroot.org/results/e37e61bae1d81a7956e2843be70fea84b0bbb64b + +Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> +--- + sharedopt.m4 | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/sharedopt.m4 b/sharedopt.m4 +index c0492a6..e8053d0 100644 +--- a/sharedopt.m4 ++++ b/sharedopt.m4 +@@ -115,8 +115,6 @@ int deny_severity; + fi + + unset NOPAM +-AC_CHECK_HEADERS(security/pam_appl.h) +-AC_SEARCH_LIBS(pam_start, pam) + AC_MSG_CHECKING([for pam]) + AC_ARG_WITH(pam, + [ --without-pam disable pam support @<:@default=detect@:>@], +@@ -128,6 +126,8 @@ if test x"$NOPAM" != x; then + AC_MSG_RESULT([disabled]) + else + #look for PAM header and lib ++ AC_CHECK_HEADERS(security/pam_appl.h) ++ AC_SEARCH_LIBS(pam_start, pam) + if test x"${ac_cv_header_security_pam_appl_h}" = xno; then + NOPAM="Disabled, security/pam_appl.h missing" + AC_MSG_RESULT([no, usable security/pam_appl.h not found]) +-- +2.17.1 + diff --git a/package/dante/dante.mk b/package/dante/dante.mk index ff42e7432b..2d448cfc0a 100644 --- a/package/dante/dante.mk +++ b/package/dante/dante.mk @@ -9,7 +9,7 @@ DANTE_SITE = http://www.inet.no/dante/files DANTE_LICENSE = BSD-3-Clause DANTE_LICENSE_FILES = LICENSE -# We're patching compiler.m4 +# We're patching compiler.m4 and sharedopt.m4 DANTE_AUTORECONF = YES DANTE_CONF_OPTS += --disable-client --disable-preload --without-pam -- 2.14.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH 2/2] dante: fix --without-pam 2018-11-26 18:22 ` [Buildroot] [PATCH 2/2] dante: fix --without-pam Fabrice Fontaine @ 2018-11-26 19:46 ` Yann E. MORIN 2018-11-27 22:24 ` Arnout Vandecappelle 0 siblings, 1 reply; 7+ messages in thread From: Yann E. MORIN @ 2018-11-26 19:46 UTC (permalink / raw) To: buildroot Fabrice, All, On 2018-11-26 19:22 +0100, Fabrice Fontaine spake thusly: > Don't call AC_CHECK_HEADERS(security/pam_appl.h) and > AC_SEARCH_LIBS(pam_start, pam) if pam is disabled through --without-pam > otherwise cross-compilation could fail if a pam library is found on host > > Fixes: > - http://autobuild.buildroot.org/results/e37e61bae1d81a7956e2843be70fea84b0bbb64b That build failure occured on Xogium's autobuilder. When I asked, they tested my autoreconf patch and it was enough to not tirgger the libpam issue anymore. Now, maybe it still makes sense to have that patch, but it would be better if that was upstreamed first... Regards, Yann E. MORIN. > Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> > --- > .../dante/0003-sharedopt.m4-fix-without-pam.patch | 42 ++++++++++++++++++++++ > package/dante/dante.mk | 2 +- > 2 files changed, 43 insertions(+), 1 deletion(-) > create mode 100644 package/dante/0003-sharedopt.m4-fix-without-pam.patch > > diff --git a/package/dante/0003-sharedopt.m4-fix-without-pam.patch b/package/dante/0003-sharedopt.m4-fix-without-pam.patch > new file mode 100644 > index 0000000000..75ef07c134 > --- /dev/null > +++ b/package/dante/0003-sharedopt.m4-fix-without-pam.patch > @@ -0,0 +1,42 @@ > +From 0cb78bcb81664a6507b37252ae28818bd1b7de23 Mon Sep 17 00:00:00 2001 > +From: Fabrice Fontaine <fontaine.fabrice@gmail.com> > +Date: Sun, 25 Nov 2018 19:07:39 +0100 > +Subject: [PATCH] sharedopt.m4: fix --without-pam > + > +Don't call AC_CHECK_HEADERS(security/pam_appl.h) and > +AC_SEARCH_LIBS(pam_start, pam) if pam is disabled through --without-pam > +otherwise cross-compilation could fail if a pam library is found on host > + > +Fixes: > + - http://autobuild.buildroot.org/results/e37e61bae1d81a7956e2843be70fea84b0bbb64b > + > +Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> > +--- > + sharedopt.m4 | 4 ++-- > + 1 file changed, 2 insertions(+), 2 deletions(-) > + > +diff --git a/sharedopt.m4 b/sharedopt.m4 > +index c0492a6..e8053d0 100644 > +--- a/sharedopt.m4 > ++++ b/sharedopt.m4 > +@@ -115,8 +115,6 @@ int deny_severity; > + fi > + > + unset NOPAM > +-AC_CHECK_HEADERS(security/pam_appl.h) > +-AC_SEARCH_LIBS(pam_start, pam) > + AC_MSG_CHECKING([for pam]) > + AC_ARG_WITH(pam, > + [ --without-pam disable pam support @<:@default=detect@:>@], > +@@ -128,6 +126,8 @@ if test x"$NOPAM" != x; then > + AC_MSG_RESULT([disabled]) > + else > + #look for PAM header and lib > ++ AC_CHECK_HEADERS(security/pam_appl.h) > ++ AC_SEARCH_LIBS(pam_start, pam) > + if test x"${ac_cv_header_security_pam_appl_h}" = xno; then > + NOPAM="Disabled, security/pam_appl.h missing" > + AC_MSG_RESULT([no, usable security/pam_appl.h not found]) > +-- > +2.17.1 > + > diff --git a/package/dante/dante.mk b/package/dante/dante.mk > index ff42e7432b..2d448cfc0a 100644 > --- a/package/dante/dante.mk > +++ b/package/dante/dante.mk > @@ -9,7 +9,7 @@ DANTE_SITE = http://www.inet.no/dante/files > DANTE_LICENSE = BSD-3-Clause > DANTE_LICENSE_FILES = LICENSE > > -# We're patching compiler.m4 > +# We're patching compiler.m4 and sharedopt.m4 > DANTE_AUTORECONF = YES > > DANTE_CONF_OPTS += --disable-client --disable-preload --without-pam > -- > 2.14.1 > > _______________________________________________ > buildroot mailing list > buildroot at busybox.net > http://lists.busybox.net/mailman/listinfo/buildroot -- .-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------' ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH 2/2] dante: fix --without-pam 2018-11-26 19:46 ` Yann E. MORIN @ 2018-11-27 22:24 ` Arnout Vandecappelle 0 siblings, 0 replies; 7+ messages in thread From: Arnout Vandecappelle @ 2018-11-27 22:24 UTC (permalink / raw) To: buildroot On 26/11/2018 20:46, Yann E. MORIN wrote: > Fabrice, All, > > On 2018-11-26 19:22 +0100, Fabrice Fontaine spake thusly: >> Don't call AC_CHECK_HEADERS(security/pam_appl.h) and >> AC_SEARCH_LIBS(pam_start, pam) if pam is disabled through --without-pam >> otherwise cross-compilation could fail if a pam library is found on host >> >> Fixes: >> - http://autobuild.buildroot.org/results/e37e61bae1d81a7956e2843be70fea84b0bbb64b > > That build failure occured on Xogium's autobuilder. When I asked, they > tested my autoreconf patch and it was enough to not tirgger the libpam > issue anymore. Indeed, this patch should not be needed at all. AC_CHECK_HEADERS and AC_SEARCH_LIBS only set variables in the not-found case, they don't error out. Hm, in fact, AC_SEARCH_LIBS *does* add -lpam to LIBS, so indeed dante ends up being linked with pam if linux-pam is enabled. But still, since this is the cross-compiler, it should be using the cross-compiled libpam... But then I don't understand how the AUTORECONF could fix the build error... The build error is: CCLD sockd /lib/libpam.so: error adding symbols: File in wrong format (unfortunately we don't see what is behind CCLD...) Turns out that the real problem is that the old libtool bundled with dante doesn't add the sysroot to the libdir found in libpam.la, and our libtool patch that fixes that is not applied because of DANTE_LIBTOOL_PATCH = NO. The DANTE_AUTORECONF = YES implies installing a new libtool. So indeed, Yann's patch has already fixed the build failure. With that in mind, I'd say that, since the only thing this patch is doing is to avoid linking with -lpam if not needed, we shouldn't apply it. By all means do send it upstream though. Regards, Arnout > Now, maybe it still makes sense to have that patch, but it would be > better if that was upstreamed first... > > Regards, > Yann E. MORIN. > >> Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> >> --- >> .../dante/0003-sharedopt.m4-fix-without-pam.patch | 42 ++++++++++++++++++++++ >> package/dante/dante.mk | 2 +- >> 2 files changed, 43 insertions(+), 1 deletion(-) >> create mode 100644 package/dante/0003-sharedopt.m4-fix-without-pam.patch >> >> diff --git a/package/dante/0003-sharedopt.m4-fix-without-pam.patch b/package/dante/0003-sharedopt.m4-fix-without-pam.patch >> new file mode 100644 >> index 0000000000..75ef07c134 >> --- /dev/null >> +++ b/package/dante/0003-sharedopt.m4-fix-without-pam.patch >> @@ -0,0 +1,42 @@ >> +From 0cb78bcb81664a6507b37252ae28818bd1b7de23 Mon Sep 17 00:00:00 2001 >> +From: Fabrice Fontaine <fontaine.fabrice@gmail.com> >> +Date: Sun, 25 Nov 2018 19:07:39 +0100 >> +Subject: [PATCH] sharedopt.m4: fix --without-pam >> + >> +Don't call AC_CHECK_HEADERS(security/pam_appl.h) and >> +AC_SEARCH_LIBS(pam_start, pam) if pam is disabled through --without-pam >> +otherwise cross-compilation could fail if a pam library is found on host >> + >> +Fixes: >> + - http://autobuild.buildroot.org/results/e37e61bae1d81a7956e2843be70fea84b0bbb64b >> + >> +Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> >> +--- >> + sharedopt.m4 | 4 ++-- >> + 1 file changed, 2 insertions(+), 2 deletions(-) >> + >> +diff --git a/sharedopt.m4 b/sharedopt.m4 >> +index c0492a6..e8053d0 100644 >> +--- a/sharedopt.m4 >> ++++ b/sharedopt.m4 >> +@@ -115,8 +115,6 @@ int deny_severity; >> + fi >> + >> + unset NOPAM >> +-AC_CHECK_HEADERS(security/pam_appl.h) >> +-AC_SEARCH_LIBS(pam_start, pam) >> + AC_MSG_CHECKING([for pam]) >> + AC_ARG_WITH(pam, >> + [ --without-pam disable pam support @<:@default=detect@:>@], >> +@@ -128,6 +126,8 @@ if test x"$NOPAM" != x; then >> + AC_MSG_RESULT([disabled]) >> + else >> + #look for PAM header and lib >> ++ AC_CHECK_HEADERS(security/pam_appl.h) >> ++ AC_SEARCH_LIBS(pam_start, pam) >> + if test x"${ac_cv_header_security_pam_appl_h}" = xno; then >> + NOPAM="Disabled, security/pam_appl.h missing" >> + AC_MSG_RESULT([no, usable security/pam_appl.h not found]) >> +-- >> +2.17.1 >> + >> diff --git a/package/dante/dante.mk b/package/dante/dante.mk >> index ff42e7432b..2d448cfc0a 100644 >> --- a/package/dante/dante.mk >> +++ b/package/dante/dante.mk >> @@ -9,7 +9,7 @@ DANTE_SITE = http://www.inet.no/dante/files >> DANTE_LICENSE = BSD-3-Clause >> DANTE_LICENSE_FILES = LICENSE >> >> -# We're patching compiler.m4 >> +# We're patching compiler.m4 and sharedopt.m4 >> DANTE_AUTORECONF = YES >> >> DANTE_CONF_OPTS += --disable-client --disable-preload --without-pam >> -- >> 2.14.1 >> >> _______________________________________________ >> buildroot mailing list >> buildroot at busybox.net >> http://lists.busybox.net/mailman/listinfo/buildroot > ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH 1/2] dante: add AUTORECONF=YES 2018-11-26 18:22 [Buildroot] [PATCH 1/2] dante: add AUTORECONF=YES Fabrice Fontaine 2018-11-26 18:22 ` [Buildroot] [PATCH 2/2] dante: fix --without-pam Fabrice Fontaine @ 2018-11-26 19:43 ` Yann E. MORIN 2018-11-27 7:17 ` Fabrice Fontaine 1 sibling, 1 reply; 7+ messages in thread From: Yann E. MORIN @ 2018-11-26 19:43 UTC (permalink / raw) To: buildroot Fabrice, All, On 2018-11-26 19:22 +0100, Fabrice Fontaine spake thusly: > We're patching compiler.m4 Duh? Already submitted: https://patchwork.ozlabs.org/patch/1002784/ Regards, Yann E. MORIN. > Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> > --- > package/dante/dante.mk | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/package/dante/dante.mk b/package/dante/dante.mk > index a147aa36dc..ff42e7432b 100644 > --- a/package/dante/dante.mk > +++ b/package/dante/dante.mk > @@ -9,8 +9,8 @@ DANTE_SITE = http://www.inet.no/dante/files > DANTE_LICENSE = BSD-3-Clause > DANTE_LICENSE_FILES = LICENSE > > -# Dante uses a *VERY* old configure.ac > -DANTE_LIBTOOL_PATCH = NO > +# We're patching compiler.m4 > +DANTE_AUTORECONF = YES > > DANTE_CONF_OPTS += --disable-client --disable-preload --without-pam > > -- > 2.14.1 > > _______________________________________________ > buildroot mailing list > buildroot at busybox.net > http://lists.busybox.net/mailman/listinfo/buildroot -- .-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------' ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH 1/2] dante: add AUTORECONF=YES 2018-11-26 19:43 ` [Buildroot] [PATCH 1/2] dante: add AUTORECONF=YES Yann E. MORIN @ 2018-11-27 7:17 ` Fabrice Fontaine 2018-11-27 16:33 ` Yann E. MORIN 0 siblings, 1 reply; 7+ messages in thread From: Fabrice Fontaine @ 2018-11-27 7:17 UTC (permalink / raw) To: buildroot Dear Yann, Le lun. 26 nov. 2018 ? 20:43, Yann E. MORIN <yann.morin.1998@free.fr> a ?crit : > Fabrice, All, > > On 2018-11-26 19:22 +0100, Fabrice Fontaine spake thusly: > > We're patching compiler.m4 > > Duh? Already submitted: > > https://patchwork.ozlabs.org/patch/1002784/ I know but I wanted to send the second patch of the serie without waiting for your first patch to be applied. > > > Regards, > Yann E. MORIN. > > > Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> > > --- > > package/dante/dante.mk | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/package/dante/dante.mk b/package/dante/dante.mk > > index a147aa36dc..ff42e7432b 100644 > > --- a/package/dante/dante.mk > > +++ b/package/dante/dante.mk > > @@ -9,8 +9,8 @@ DANTE_SITE = http://www.inet.no/dante/files > > DANTE_LICENSE = BSD-3-Clause > > DANTE_LICENSE_FILES = LICENSE > > > > -# Dante uses a *VERY* old configure.ac > > -DANTE_LIBTOOL_PATCH = NO > > +# We're patching compiler.m4 > > +DANTE_AUTORECONF = YES > > > > DANTE_CONF_OPTS += --disable-client --disable-preload --without-pam > > > > -- > > 2.14.1 > > > > _______________________________________________ > > buildroot mailing list > > buildroot at busybox.net > > http://lists.busybox.net/mailman/listinfo/buildroot > > -- > > .-----------------.--------------------.------------------.--------------------. > | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' > conspiracy: | > | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ > | > | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is > no | > | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v > conspiracy. | > > '------------------------------^-------^------------------^--------------------' > Best Regards, Fabrice -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20181127/f2c95ae6/attachment.html> ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH 1/2] dante: add AUTORECONF=YES 2018-11-27 7:17 ` Fabrice Fontaine @ 2018-11-27 16:33 ` Yann E. MORIN 0 siblings, 0 replies; 7+ messages in thread From: Yann E. MORIN @ 2018-11-27 16:33 UTC (permalink / raw) To: buildroot Fabrice, All, On 2018-11-27 08:17 +0100, Fabrice Fontaine spake thusly: > Le lun. 26 nov. 2018 ? 20:43, Yann E. MORIN < [1]yann.morin.1998@free.fr> a ?crit?: > On 2018-11-26 19:22 +0100, Fabrice Fontaine spake thusly: > > We're patching compiler.m4 > Duh? Already submitted: > ? ? [2]https://patchwork.ozlabs.org/patch/1002784/ > I know but I wanted to send the second patch of the serie without waiting for your first patch to be applied. In that case, you could do that in one of three ways: - say so in a post-commit comment (after the --- line) of your own patch, or - send your patch as a reply to the existing one (using 'git send-email --in-reply-to=MSG-ID', where MSG_ID is the message ID of the mail that the previous patch was sent as), or - 'git am' the existing patch, and send the series, marking the whole series as 'v2'. I would favour the last solution, as I've already used it myself. Regards, Yann E. MORIN. -- .-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------' ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2018-11-27 22:24 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2018-11-26 18:22 [Buildroot] [PATCH 1/2] dante: add AUTORECONF=YES Fabrice Fontaine 2018-11-26 18:22 ` [Buildroot] [PATCH 2/2] dante: fix --without-pam Fabrice Fontaine 2018-11-26 19:46 ` Yann E. MORIN 2018-11-27 22:24 ` Arnout Vandecappelle 2018-11-26 19:43 ` [Buildroot] [PATCH 1/2] dante: add AUTORECONF=YES Yann E. MORIN 2018-11-27 7:17 ` Fabrice Fontaine 2018-11-27 16:33 ` Yann E. MORIN
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.