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)

Reply via email to