* [PATCH 0/2] PHP work in progress @ 2015-01-29 21:43 David Thompson 2015-01-29 21:44 ` [PATCH 1/2] gnu: httpd: Add perl input David Thompson ` (2 more replies) 0 siblings, 3 replies; 7+ messages in thread From: David Thompson @ 2015-01-29 21:43 UTC (permalink / raw) To: guix-devel This patchset contains a sort-of working PHP package. Unfortunately, the build fails in a way that I have been unable to fix when the '--with-apxs2' configure flag is turned on to build the mod_php Apache httpd module. Here is the build output at the point of failure: /gnu/store/nx4zd42igyb7ghmv4mxv6ncg8wr7ypa1-bash-4.3.33/bin/bash /tmp/nix-build-php-5.6.3.drv-14/php-5.6.3/libtool --silent --preserve-dup-deps --mode=link /tmp/nix-build-php-5.6.3.drv-14/php-5.6.3/meta_ccld -DPHP_ATOM_INC -I/tmp/nix-build-php-5.6.3.drv-14/php-5.6.3/include -I/tmp/nix-build-php-5.6.3.drv-14/php-5.6.3/main -I/tmp/nix-build-php-5.6.3.drv-14/php-5.6.3 -I/tmp/nix-build-php-5.6.3.drv-14/php-5.6.3/ext/date/lib -I/tmp/nix-build-php-5.6.3.drv-14/php-5.6.3/ext/ereg/regex -I/gnu/store/dng0rvcw4264k0r9fp7618bxsh20bi9v-libxml2-2.9.0/include/libxml2 -I/tmp/nix-build-php-5.6.3.drv-14/php-5.6.3/ext/sqlite3/libsqlite -I/tmp/nix-build-php-5.6.3.drv-14/php-5.6.3/TSRM -I/tmp/nix-build-php-5.6.3.drv-14/php-5.6.3/Zend -D_REENTRANT -I/usr/include -g -O2 -fvisibility=hidden -pthread -DZTS -o ext/opcache/opcache.la -export-dynamic -avoid-version -prefer-pic -module -rpath /tmp/nix-build-php-5.6.3.drv-14/php-5.6.3/modules -avoid-version -module -L/gnu/store/dng0rvcw4264k0r9fp7618bxsh20bi9v-libxml2-2.9.0/lib ext/opcache/ZendAccelerator.lo ext/opcache/zend_accelerator_blacklist.lo ext/opcache/zend_accelerator_debug.lo ext/opcache/zend_accelerator_hash.lo ext/opcache/zend_accelerator_module.lo ext/opcache/zend_persist.lo ext/opcache/zend_persist_calc.lo ext/opcache/zend_shared_alloc.lo ext/opcache/zend_accelerator_util_funcs.lo ext/opcache/shared_alloc_shm.lo ext/opcache/shared_alloc_mmap.lo ext/opcache/shared_alloc_posix.lo ext/opcache/Optimizer/zend_optimizer.lo ld: ext/opcache/.libs/ZendAccelerator.o: relocation R_X86_64_32S against `.text' can not be used when making a shared object; recompile with -fPIC ext/opcache/.libs/ZendAccelerator.o: error adding symbols: Bad value collect2: error: ld returned 1 exit status The first patch contains a simple patch that could be applied right now that fixes the broken 'apxs' program in httpd. The second is the current state of php. Help wanted! Thanks! -- David Thompson Web Developer - Free Software Foundation - http://fsf.org GPG Key: 0FF1D807 Support the FSF: https://fsf.org/donate ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/2] gnu: httpd: Add perl input. 2015-01-29 21:43 [PATCH 0/2] PHP work in progress David Thompson @ 2015-01-29 21:44 ` David Thompson 2015-02-02 21:25 ` Ludovic Courtès 2015-01-29 21:44 ` [PATCH 2/2] gnu: Add php David Thompson 2015-02-02 21:24 ` [PATCH 0/2] PHP work in progress Ludovic Courtès 2 siblings, 1 reply; 7+ messages in thread From: David Thompson @ 2015-01-29 21:44 UTC (permalink / raw) To: guix-devel [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1: 0001-gnu-httpd-Add-perl-input.patch --] [-- Type: text/x-diff, Size: 833 bytes --] From 31c4cf3f61c15df66bf85197829225b1d6064f2a Mon Sep 17 00:00:00 2001 From: David Thompson <dthompson2@worcester.edu> Date: Thu, 29 Jan 2015 16:34:04 -0500 Subject: [PATCH 1/2] gnu: httpd: Add perl input. Perl is needed to run bin/apxs. * gnu/packages/web.scm (httpd): Add perl input. --- gnu/packages/web.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 554f2a3..dd40e0e 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -57,7 +57,8 @@ (inputs `(("apr" ,apr) ("apr-util" ,apr-util) ("openssl" ,openssl) - ("pcre" ,pcre))) + ("pcre" ,pcre) + ("perl" ,perl))) (arguments `(#:test-target "test" #:configure-flags (list "--enable-rewrite" -- 2.1.4 [-- Attachment #2: Type: text/plain, Size: 136 bytes --] -- David Thompson Web Developer - Free Software Foundation - http://fsf.org GPG Key: 0FF1D807 Support the FSF: https://fsf.org/donate ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] gnu: httpd: Add perl input. 2015-01-29 21:44 ` [PATCH 1/2] gnu: httpd: Add perl input David Thompson @ 2015-02-02 21:25 ` Ludovic Courtès 2015-02-03 1:40 ` David Thompson 0 siblings, 1 reply; 7+ messages in thread From: Ludovic Courtès @ 2015-02-02 21:25 UTC (permalink / raw) To: David Thompson; +Cc: guix-devel David Thompson <dthompson2@worcester.edu> skribis: > From 31c4cf3f61c15df66bf85197829225b1d6064f2a Mon Sep 17 00:00:00 2001 > From: David Thompson <dthompson2@worcester.edu> > Date: Thu, 29 Jan 2015 16:34:04 -0500 > Subject: [PATCH 1/2] gnu: httpd: Add perl input. > > Perl is needed to run bin/apxs. Please make this line a side comment next to the input. Other than that LGTM! Ludo’. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] gnu: httpd: Add perl input. 2015-02-02 21:25 ` Ludovic Courtès @ 2015-02-03 1:40 ` David Thompson 0 siblings, 0 replies; 7+ messages in thread From: David Thompson @ 2015-02-03 1:40 UTC (permalink / raw) To: Ludovic Courtès; +Cc: guix-devel Ludovic Courtès <ludo@gnu.org> writes: > David Thompson <dthompson2@worcester.edu> skribis: > >> From 31c4cf3f61c15df66bf85197829225b1d6064f2a Mon Sep 17 00:00:00 2001 >> From: David Thompson <dthompson2@worcester.edu> >> Date: Thu, 29 Jan 2015 16:34:04 -0500 >> Subject: [PATCH 1/2] gnu: httpd: Add perl input. >> >> Perl is needed to run bin/apxs. > > Please make this line a side comment next to the input. > > Other than that LGTM! Pushed with said change. -- David Thompson Web Developer - Free Software Foundation - http://fsf.org GPG Key: 0FF1D807 Support the FSF: https://fsf.org/donate ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 2/2] gnu: Add php. 2015-01-29 21:43 [PATCH 0/2] PHP work in progress David Thompson 2015-01-29 21:44 ` [PATCH 1/2] gnu: httpd: Add perl input David Thompson @ 2015-01-29 21:44 ` David Thompson 2015-02-02 21:24 ` [PATCH 0/2] PHP work in progress Ludovic Courtès 2 siblings, 0 replies; 7+ messages in thread From: David Thompson @ 2015-01-29 21:44 UTC (permalink / raw) To: guix-devel [-- Attachment #1: 0002-gnu-Add-php.patch --] [-- Type: text/x-diff, Size: 10614 bytes --] From 320aedada4de414e83c4c4207717d48a6ca1bbbc Mon Sep 17 00:00:00 2001 From: David Thompson <dthompson2@worcester.edu> Date: Sun, 16 Nov 2014 13:48:11 -0500 Subject: [PATCH 2/2] gnu: Add php. * gnu/packages/patches/php-fix-configure.patch: New file. * gnu/packages/php.scm: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. --- gnu-system.am | 1 + gnu/packages/patches/php-fix-configure.patch | 68 +++++++++++++ gnu/packages/php.scm | 144 +++++++++++++++++++++++++++ 3 files changed, 213 insertions(+) create mode 100644 gnu/packages/patches/php-fix-configure.patch create mode 100644 gnu/packages/php.scm diff --git a/gnu-system.am b/gnu-system.am index f09b5bd..db70fa9 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -219,6 +219,7 @@ GNU_SYSTEM_MODULES = \ gnu/packages/pem.scm \ gnu/packages/perl.scm \ gnu/packages/photo.scm \ + gnu/packages/php.scm \ gnu/packages/pkg-config.scm \ gnu/packages/plotutils.scm \ gnu/packages/polkit.scm \ diff --git a/gnu/packages/patches/php-fix-configure.patch b/gnu/packages/patches/php-fix-configure.patch new file mode 100644 index 0000000..e25057f --- /dev/null +++ b/gnu/packages/patches/php-fix-configure.patch @@ -0,0 +1,68 @@ +diff -ru php-5.4.14/configure php-5.4.14-new/configure +--- php-5.4.14/configure 2013-04-10 09:53:26.000000000 +0200 ++++ php-5.4.14-new/configure 2013-04-22 17:13:55.039043622 +0200 +@@ -6513,7 +6513,7 @@ + + case $host_alias in + *aix*) +- APXS_LIBEXECDIR=`$APXS -q LIBEXECDIR` ++ APXS_LIBEXECDIR="$prefix/modules" + EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-brtl -Wl,-bI:$APXS_LIBEXECDIR/httpd.exp" + PHP_AIX_LDFLAGS="-Wl,-brtl" + build_type=shared +@@ -6706,7 +6706,7 @@ + if test "$?" != "0"; then + APACHE_INSTALL="$APXS -i -a -n php5 $SAPI_SHARED" # Old apxs does not have -S option + else +- APXS_LIBEXECDIR='$(INSTALL_ROOT)'`$APXS -q LIBEXECDIR` ++ APXS_LIBEXECDIR="$prefix/modules" + if test -z `$APXS -q SYSCONFDIR`; then + APACHE_INSTALL="\$(mkinstalldirs) '$APXS_LIBEXECDIR' && \ + $APXS -S LIBEXECDIR='$APXS_LIBEXECDIR' \ +@@ -7909,7 +7909,7 @@ + { (exit 1); exit 1; }; } + fi + +- APXS_LIBEXECDIR='$(INSTALL_ROOT)'`$APXS -q LIBEXECDIR` ++ APXS_LIBEXECDIR="$prefix/modules" + if test -z `$APXS -q SYSCONFDIR`; then + INSTALL_IT="\$(mkinstalldirs) '$APXS_LIBEXECDIR' && \ + $APXS -S LIBEXECDIR='$APXS_LIBEXECDIR' \ +@@ -8779,7 +8779,7 @@ + { (exit 1); exit 1; }; } + fi + +- APXS_LIBEXECDIR='$(INSTALL_ROOT)'`$APXS -q LIBEXECDIR` ++ APXS_LIBEXECDIR="$prefix/modules" + if test -z `$APXS -q SYSCONFDIR`; then + INSTALL_IT="\$(mkinstalldirs) '$APXS_LIBEXECDIR' && \ + $APXS -S LIBEXECDIR='$APXS_LIBEXECDIR' \ +@@ -9634,7 +9634,7 @@ + + case $host_alias in + *aix*) +- APXS_LIBEXECDIR=`$APXS -q LIBEXECDIR` ++ APXS_LIBEXECDIR="$prefix/modules" + EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-brtl -Wl,-bI:$APXS_LIBEXECDIR/httpd.exp" + PHP_AIX_LDFLAGS="-Wl,-brtl" + build_type=shared +@@ -9827,7 +9827,7 @@ + if test "$?" != "0"; then + APACHE_HOOKS_INSTALL="$APXS -i -a -n php5 $SAPI_SHARED" # Old apxs does not have -S option + else +- APXS_LIBEXECDIR='$(INSTALL_ROOT)'`$APXS -q LIBEXECDIR` ++ APXS_LIBEXECDIR="$prefix/modules" + if test -z `$APXS -q SYSCONFDIR`; then + APACHE_HOOKS_INSTALL="\$(mkinstalldirs) '$APXS_LIBEXECDIR' && \ + $APXS -S LIBEXECDIR='$APXS_LIBEXECDIR' \ +@@ -59657,9 +59657,7 @@ + + + if test "$PHP_GETTEXT" != "no"; then +- for i in $PHP_GETTEXT /usr/local /usr; do +- test -r $i/include/libintl.h && GETTEXT_DIR=$i && break +- done ++ GETTEXT_DIR=$PHP_GETTEXT + + if test -z "$GETTEXT_DIR"; then + { { $as_echo "$as_me:$LINENO: error: Cannot locate header file libintl.h" >&5 diff --git a/gnu/packages/php.scm b/gnu/packages/php.scm new file mode 100644 index 0000000..06dbb86 --- /dev/null +++ b/gnu/packages/php.scm @@ -0,0 +1,144 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2014 David Thompson <davet@gnu.org> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu packages php) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix utils) + #:use-module (guix build-system gnu) + #:use-module (gnu packages) + #:use-module (gnu packages bison) + #:use-module (gnu packages compression) + #:use-module (gnu packages curl) + #:use-module (gnu packages cyrus-sasl) + #:use-module (gnu packages databases) + #:use-module (gnu packages fontutils) + #:use-module (gnu packages gd) + #:use-module (gnu packages gettext) + #:use-module (gnu packages icu4c) + #:use-module (gnu packages image) + #:use-module (gnu packages mcrypt) + #:use-module (gnu packages multiprecision) + #:use-module (gnu packages openldap) + #:use-module (gnu packages openssl) + #:use-module (gnu packages pcre) + #:use-module (gnu packages perl) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages readline) + #:use-module (gnu packages video) + #:use-module (gnu packages web) + #:use-module (gnu packages xml) + #:use-module (gnu packages xorg)) + +(define-public php + (package + (name "php") + (version "5.6.3") + (source (origin + (method url-fetch) + ;; TODO: Use a mirror. + (uri (string-append "http://us1.php.net/distributions/php-" + version ".tar.xz")) + (sha256 + (base32 + "1da44by82grcjfx4yjjlv4b96kwsqfrjk0dsdbjhzwf7di849lps")) + ;; Taken from nixpkgs. Fixes gettext and some module issues. + (patches (list (search-patch "php-fix-configure.patch"))))) + (build-system gnu-build-system) + (arguments + '(#:configure-flags (let ((with (lambda* (name input #:optional (extra "")) + (string-append "--with-" name "=" + (assoc-ref %build-inputs + input) + extra)))) + (list (with "libxml-dir" "libxml2") + (with "xsl" "libxslt") + (with "zlib" "zlib") + (with "bz2" "bzip2") + (with "curl" "curl") + (with "pcre-dir" "pcre") + (with "openssl" "openssl") + (with "openssl-dir" "openssl") + (with "gd" "gd") + (with "vpx-dir" "libvpx") + (with "jpeg-dir" "libjpeg") + (with "png-dir" "libpng") + (with "xpm-dir" "libxpm") + (with "freetype-dir" "freetype") + (with "gettext" "gettext") + (with "gmp" "gmp") + (with "ldap" "openldap") + (with "ldap-sasl" "cyrus-sasl") + (with "mcrypt" "libmcrypt") + (with "pdo-mysql" "mysql") + (with "pdo-pgsql" "postgresql") + (with "pdo-sqlite" "sqlite") + (with "readline" "readline") + (with "icu-dir" "icu4c") + ;; FIXME: This breaks the build! + ;; (with "apxs2" "httpd" "/bin/apxs") + "--enable-exif" + "--enable-ftp" + "--enable-calendar" + "--enable-intl" + "--enable-gd-native-ttf" + "--enable-bcmath" + "--enable-soap" + "--enable-sockets" + "--enable-mbtring" + "--enable-zip" + "--enable-fpm" + "--enable-pcntl" + "--enable-opcache")) + ;; FIXME: The tests fail but a status code of 0 is returned. + #:test-target "test")) + (native-inputs + `(("pkg-config" ,pkg-config) + ("perl" ,perl))) + (inputs + `(("gmp" ,gmp) + ("libxml2" ,libxml2) + ("libxslt" ,libxslt) + ("readline" ,readline) + ("curl" ,curl) + ("zlib" ,zlib) + ("bzip2" ,bzip2) + ("mysql" ,mysql) + ("postgresql" ,postgresql) + ("sqlite" ,sqlite) + ("gd" ,gd) + ("libvpx" ,libvpx) + ("libjpeg" ,libjpeg) + ("libpng" ,libpng) + ("libxpm" ,libxpm) + ("libx11" ,libx11) + ("freetype" ,freetype) + ("openssl" ,openssl) + ("openldap" ,openldap) + ("cyrus-sasl" ,cyrus-sasl) + ("libmcrypt" ,libmcrypt) + ("pcre" ,pcre) + ("httpd" ,httpd) + ("icu4c" ,icu4c))) + (synopsis "PHP programming language interpreter") + (description "PHP is a general-purpose scripting language that is +especially suited to web development.") + (home-page "http://php.net") + ;; TODO: Add and use the PHP license. + (license license:expat))) -- 2.1.4 [-- Attachment #2: Type: text/plain, Size: 136 bytes --] -- David Thompson Web Developer - Free Software Foundation - http://fsf.org GPG Key: 0FF1D807 Support the FSF: https://fsf.org/donate ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 0/2] PHP work in progress 2015-01-29 21:43 [PATCH 0/2] PHP work in progress David Thompson 2015-01-29 21:44 ` [PATCH 1/2] gnu: httpd: Add perl input David Thompson 2015-01-29 21:44 ` [PATCH 2/2] gnu: Add php David Thompson @ 2015-02-02 21:24 ` Ludovic Courtès 2015-02-13 13:59 ` David Thompson 2 siblings, 1 reply; 7+ messages in thread From: Ludovic Courtès @ 2015-02-02 21:24 UTC (permalink / raw) To: David Thompson; +Cc: guix-devel David Thompson <dthompson2@worcester.edu> skribis: > Here is the build output at the point of failure: > > /gnu/store/nx4zd42igyb7ghmv4mxv6ncg8wr7ypa1-bash-4.3.33/bin/bash /tmp/nix-build-php-5.6.3.drv-14/php-5.6.3/libtool --silent --preserve-dup-deps --mode=link /tmp/nix-build-php-5.6.3.drv-14/php-5.6.3/meta_ccld -DPHP_ATOM_INC -I/tmp/nix-build-php-5.6.3.drv-14/php-5.6.3/include -I/tmp/nix-build-php-5.6.3.drv-14/php-5.6.3/main -I/tmp/nix-build-php-5.6.3.drv-14/php-5.6.3 -I/tmp/nix-build-php-5.6.3.drv-14/php-5.6.3/ext/date/lib -I/tmp/nix-build-php-5.6.3.drv-14/php-5.6.3/ext/ereg/regex -I/gnu/store/dng0rvcw4264k0r9fp7618bxsh20bi9v-libxml2-2.9.0/include/libxml2 -I/tmp/nix-build-php-5.6.3.drv-14/php-5.6.3/ext/sqlite3/libsqlite -I/tmp/nix-build-php-5.6.3.drv-14/php-5.6.3/TSRM -I/tmp/nix-build-php-5.6.3.drv-14/php-5.6.3/Zend -D_REENTRANT -I/usr/include -g -O2 -fvisibility=hidden -pthread -DZTS -o ext/opcache/opcache.la -export-dynamic -avoid-version -prefer-pic -module -rpath /tmp/nix-build-php-5.6.3.drv-14/php-5.6.3/modules -avoid-version -module -L/gnu/store/dng0rvcw4264k0r9fp7618bxsh20bi9v-libxml2-2.9.0/lib ext/opcache/ZendAccelerator.lo ext/opcache/zend_accelerator_blacklist.lo ext/opcache/zend_accelerator_debug.lo ext/opcache/zend_accelerator_hash.lo ext/opcache/zend_accelerator_module.lo ext/opcache/zend_persist.lo ext/opcache/zend_persist_calc.lo ext/opcache/zend_shared_alloc.lo ext/opcache/zend_accelerator_util_funcs.lo ext/opcache/shared_alloc_shm.lo ext/opcache/shared_alloc_mmap.lo ext/opcache/shared_alloc_posix.lo ext/opcache/Optimizer/zend_optimizer.lo > ld: ext/opcache/.libs/ZendAccelerator.o: relocation R_X86_64_32S against `.text' can not be used when making a shared object; recompile with -fPIC > ext/opcache/.libs/ZendAccelerator.o: error adding symbols: Bad value > collect2: error: ld returned 1 exit status This command line raises a couple of alarms: what does ‘meta_ccld’ do? How does it interpret ‘-prefer-pic’? It looks like a wrapper that tries to be smarter than libtool, which is inherently highly suspicious. :-) Ludo’. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 0/2] PHP work in progress 2015-02-02 21:24 ` [PATCH 0/2] PHP work in progress Ludovic Courtès @ 2015-02-13 13:59 ` David Thompson 0 siblings, 0 replies; 7+ messages in thread From: David Thompson @ 2015-02-13 13:59 UTC (permalink / raw) To: Ludovic Courtès; +Cc: guix-devel Ludovic Courtès <ludo@gnu.org> writes: > This command line raises a couple of alarms: what does ‘meta_ccld’ do? > How does it interpret ‘-prefer-pic’? meta_ccld is simply: #! /bin/sh exec gcc -pthread $@ I'll keep poking at it. The Nix folks didn't have to do anything too drastic for their php package, so I don't know what's going on with mine. -- David Thompson Web Developer - Free Software Foundation - http://fsf.org GPG Key: 0FF1D807 Support the FSF: https://fsf.org/donate ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2015-02-13 13:59 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-01-29 21:43 [PATCH 0/2] PHP work in progress David Thompson 2015-01-29 21:44 ` [PATCH 1/2] gnu: httpd: Add perl input David Thompson 2015-02-02 21:25 ` Ludovic Courtès 2015-02-03 1:40 ` David Thompson 2015-01-29 21:44 ` [PATCH 2/2] gnu: Add php David Thompson 2015-02-02 21:24 ` [PATCH 0/2] PHP work in progress Ludovic Courtès 2015-02-13 13:59 ` David Thompson
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/guix.git 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.