On Tue, 2019-09-10 at 10:10 +0200, Svante Signell wrote: > On Sun, 2019-09-08 at 22:55 +0200, Ludovic Courtès wrote: > > Hi, > > > > Ricardo Wurmus <rek...@elephly.net> skribis: > > > > > I believe the problem is in Guix, which lets the builds for i586-gnu use > > > Guile 2.2, but generates scripts for Guile 2.0. We probably need to > > > change it use Guile 2.0 there as it is done for other architectures > > > (which is why the generated scripts refer to 2.0). > > > > Yes, it seems easier to keep everything at 2.0 for now in > > ‘make-bootstrap.scm’.
On a GNU/Linux amd64 qemu image: ================================ git clone https://git.savannah.gnu.org/git/guix.git cd guix autoreconf -ivf ./configure --prefix=/usr 2>&1 | tee ../configure.log make 2>&1 | tee ../make-guix.log I used the attached patches to build the bootstrap tarballs with command: Terminal 1: <as root> export GUILE_LOAD_PATH=/usr/share/guile/site/2.2/ ./pre-inst-env ./guix-daemon --debug --build-users-group=guixbuild Terminal 2: export GUILE_LOAD_PATH=/usr/share/guile/site/2.2/ ./pre-inst-env guix build --target=i586-pc-gnu bootstrap-tarballs 2>&1 | tee ../bootstrap-tarballs-i586-pc-gnu.log Build took around two days, and the log file is 361MB. Note: --target=i586-gnu does not work! apt-get install guile-2.2 guile-gcrypt libgnutls30 guile-sqlite3 guile-json guile-bytestructures make zlib1g bzip2 libgcrypt20 sqlite3 g++ guile-2.0 guile- 2.0-libs guile-2.2-dev libsqlite3-dev guile-ssh libgit2-27 libgit2-dev texinfo texlive-base help2man guile-json is too old: Install 3.1.0-1. apt-get install -t experimental guile-json guile-git was built from git and guile-gnutls was built from a modified version of gnutls28-3.6.9-5. However, for the dependencies I needed guile-2.2 to be installed: apt-get remove --purge guile-2.2 guile-2.2* guile-bytestructures* guile-gcrypt* guile-gnutls* guile-json* guile- sqlite3* guile-ssh* dpkg -S /usr/share/guile/site/ guile-sqlite3, guile-gcrypt, guile-bytestructures, guile-ssh, guile-gnutls, guile-json: /usr/share/guile/site dpkg -S /usr/share/guile/site/2.2 guile-sqlite3, guile-gcrypt, guile-bytestructures, guile-ssh, guile-json: /usr/share/guile/site/2.2 On the Hurd box: ================ The cross-built files xz and guile are corrupt (maybe tar too): /gnu/store/...-xz: Error creating a pipe: Function not implemented On the Linux box: ================= Extracting and running guile from guile-static-stripped-2.0.14-i586-pc- gnu.tar.xz ./bin/guile --version Throw without catch before boot: Aborting. Where did things go wrong or where did I miss something? Thanks!
--- a/doc/local.mk 2019-09-16 17:09:49.972000000 +0200 +++ b/doc/local.mk 2019-09-16 17:23:41.812000000 +0200 @@ -21,12 +21,12 @@ # You should have received a copy of the GNU General Public License # along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. -info_TEXINFOS = %D%/guix.texi \ - %D%/guix.de.texi \ - %D%/guix.es.texi \ - %D%/guix.fr.texi \ - %D%/guix.ru.texi \ - %D%/guix.zh_CN.texi +info_TEXINFOS = %D%/guix.texi +# %D%/guix.de.texi \ +# %D%/guix.es.texi \ +# %D%/guix.fr.texi \ +# %D%/guix.ru.texi \ +# %D%/guix.zh_CN.texi %C%_guix_TEXINFOS = \ %D%/contributing.texi \
--- a/gnu/packages/make-bootstrap.scm 2019-09-19 10:41:28.856000000 +0200 +++ b/gnu/packages/make-bootstrap.scm 2019-09-19 10:39:27.420000000 +0200 @@ -700,29 +700,29 @@ ;; .scm and .go files relative to its installation directory, rather ;; than in hard-coded configure-time paths. (let* ((patches (cons* (search-patch "guile-relocatable.patch") - (search-patch "guile-2.2-default-utf8.patch") + (search-patch "guile-default-utf8.patch") (search-patch "guile-linux-syscalls.patch") - (origin-patches (package-source guile-2.2)))) - (source (origin (inherit (package-source guile-2.2)) + (origin-patches (package-source guile-2.0)))) + (source (origin (inherit (package-source guile-2.0)) (patches patches))) - (guile (package (inherit guile-2.2) - (name (string-append (package-name guile-2.2) "-static")) + (guile (package (inherit guile-2.0) + (name (string-append (package-name guile-2.0) "-static")) (source source) (synopsis "Statically-linked and relocatable Guile") ;; Remove the 'debug' output (see above for the reason.) - (outputs (delete "debug" (package-outputs guile-2.2))) + (outputs (delete "debug" (package-outputs guile-2.0))) (inputs `(("libunistring:static" ,libunistring "static") - ,@(package-inputs guile-2.2))) + ,@(package-inputs guile-2.0))) (propagated-inputs `(("bdw-gc" ,libgc) ,@(alist-delete "bdw-gc" - (package-propagated-inputs guile-2.2)))) + (package-propagated-inputs guile-2.0)))) (arguments - (substitute-keyword-arguments (package-arguments guile-2.2) + (substitute-keyword-arguments (package-arguments guile-2.0) ((#:configure-flags flags '()) ;; When `configure' checks for ltdl availability, it ;; doesn't try to link using libtool, and thus fails @@ -745,7 +745,7 @@ (("^guile_LDFLAGS =") "guile_LDFLAGS = -all-static") - ;; Add `-ldl' *after* libguile-2.2.la. + ;; Add `-ldl' *after* libguile-2.0.la. (("^guile_LDADD =(.*)$" _ ldadd) (string-append "guile_LDADD = " (string-trim-right ldadd) @@ -777,13 +777,13 @@ (out (assoc-ref %outputs "out")) (guile1 (string-append in "/bin/guile")) (guile2 (string-append out "/bin/guile"))) - (mkdir-p (string-append out "/share/guile/2.2")) - (copy-recursively (string-append in "/share/guile/2.2") - (string-append out "/share/guile/2.2")) - - (mkdir-p (string-append out "/lib/guile/2.2/ccache")) - (copy-recursively (string-append in "/lib/guile/2.2/ccache") - (string-append out "/lib/guile/2.2/ccache")) + (mkdir-p (string-append out "/share/guile/2.0")) + (copy-recursively (string-append in "/share/guile/2.0") + (string-append out "/share/guile/2.0")) + + (mkdir-p (string-append out "/lib/guile/2.0/ccache")) + (copy-recursively (string-append in "/lib/guile/2.0/ccache") + (string-append out "/lib/guile/2.0/ccache")) (mkdir (string-append out "/bin")) (copy-file guile1 guile2)