all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Pjotr Prins <pjotr.public12@thebird.nl>
To: Ludovic Court??s <ludo@gnu.org>
Cc: guix-devel <guix-devel@gnu.org>
Subject: Re: Heads-up: transition to Guile 2.2
Date: Mon, 15 May 2017 09:26:26 +0200	[thread overview]
Message-ID: <20170515072626.GA963@thebird.nl> (raw)
In-Reply-To: <871srrruvi.fsf@gnu.org>

Hi Ludo,

On Sun, May 14, 2017 at 11:28:17PM +0200, Ludovic Court??s wrote:
> > Starting from running 'guix pull' twice and essentially following the section
> > 'Building GNU Guix from source (using Guix)' in
> >
> >   https://gitlab.com/pjotrp/guix-notes/blob/master/INSTALL.org#building-gnu-guix-from-source-using-guix
> >
> > which used to work reliably. It all has to do with the guile upgrade. Even from
> > a clean git clone it won't work as expected.
> 
> Apparently I cannot access that page without logging in.  For

Sorry. I am migrating repositories from github and while gitlab imports even
the issue trackers (cool!) it set repos to private by default. Go figure.

Fixed access. But don't look at it now, I need to fix the text.

> developers, the instructions at
> <https://www.gnu.org/software/guix/manual/html_node/Building-from-Git.html>
> are still valid, AFAIK.

The good news is that I got a build of a recent guix with

  env -i /bin/bash --login --noprofile --norc
  ~/.guix-profile/bin/guix environment guix --ad-hoc help2man git strace pkg-config
  rm -rf autom4te.cache/ # to be sure
  make clean
  ./bootstrap
  ./configure --localstatedir=/var
  make clean # to be sure
  make

which is *nice*. It is clear my environment is somewhat unstable - a
combination of PATH pollution and (I think) recent tools mixed into the
build process.

And this is what my message is about, the tooling in my guix environment is
old. Checking inside above environment

  gcc --version
    gcc (GCC) 5.4.0

 guile --version
   guile (GNU Guile) 2.0.14

So, what is happening is that I am building a recent tree with an old
toolset. This is exactly what I meant! I don't dare do a guix pull
now, to avoid the tree build failing again(!). Heh.

Everyone, I mean everyone, is building guix with different toolsets, i.e,
combinations of tools and versions.

This is wrong and unguixy.

> > Typical errors during build are
> >
> >   Backtrace:
> >     GUILEC   gnu/packages/fcitx.go
> >   Exception thrown while printing backtrace:
> >     GUILEC   ERROR: gnu/packages/figlet.go
> >     In procedure public-lookup: Module named (system repl debug) does
> >     not exist
> 
> Weird.  Was it with Guile 2.0 or 2.2?  What was on GUILE_LOAD_PATH?

I know, can't reproduce it now.

> > But I got it somehow to build. guix now lacks a version number:
> >
> >   ./pre-inst-env guix --version
> >   guile: warning: failed to install locale
> >     warning: failed to install locale: Invalid argument
> >     guix (GNU Guix) UNKNOWN
> >
> > probably because bootstrap never did the right thing. Bootstrap passes, but 
> 
> That???s because build-aux/git-version-gen didn???t find ???git??? in $PATH.

Git was in the path, for sure. But obviously my system was unsettled.

> >   ./configure --localstatedir=/var
> >
> > complains with 
> >
> >   configure: error: C preprocessor "/lib/cpp" fails sanity check
> 
> What does config.log say?

It was a whole range of gcc 7.10 errors, looking for limit.h etc. Lost the log in anger ;)

> > And during installation:
> >
> >   ERROR: In procedure stat:
> >   ERROR: In procedure stat: No such file or directory:
> >   "/gnu/store/q5kdj7gpawi94pqd15x3wizjq0nx4zhx-python-2.7.13/share/man/man1/python.1"
> 
> During installation of what?

It was during profile path resolving of Guix. I happen to have this in
a screen. The full trace is

  warning: collision encountered: /gnu/store/b11lvv9x75jgiiw7rpyb53vj8j57jrw6-mysql-5.7.17/share/man/man1/mysqltest.1.gz 
  /gnu/store/vdvwj57w1rnay7khvi0c4wp05f35gqcl-mysql-5.6.25/share/man/man1/mysqltest.1.gz
  warning: arbitrarily choosing /gnu/store/b11lvv9x75jgiiw7rpyb53vj8j57jrw6-mysql-5.7.17/share/man/man1/mysqltest.1.gz
  Backtrace:
  In ice-9/boot-9.scm:
   160: 17 [catch #t #<catch-closure 8cac60> ...]
  In unknown file:
     ?: 16 [apply-smob/1 #<catch-closure 8cac60>]
  In ice-9/boot-9.scm:
    66: 15 [call-with-prompt prompt0 ...]
  In ice-9/eval.scm:
   432: 14 [eval # #]
  In ice-9/boot-9.scm:
  2404: 13 [save-module-excursion #<procedure 8ea7c0 at ice-9/boot-9.scm:4051:3 ()>]
  4056: 12 [#<procedure 8ea7c0 at ice-9/boot-9.scm:4051:3 ()>]
  1727: 11 [%start-stack load-stack #<procedure 8fcae0 at ice-9/boot-9.scm:4047:10 ()>]
  1732: 10 [#<procedure 8fd6f0 ()>]
  In unknown file:
     ?: 9 [primitive-load "/gnu/store/v9h4yaza43hi1780piyvvjsn5ba43hbn-profile-builder"]
  In ./guix/build/profiles.scm:
   133: 8 [build-profile "/gnu/store/2qnn7divxnh5phd1k8sq7g9p29y1vapc-profile" # ...]
  In unknown file:
     ?: 7 [hash-for-each #<procedure d3f3f0 at ./guix/build/union.scm:143:21 (file dirs-with-file)> ...]
     ?: 6 [hash-for-each #<procedure b92b10 at ./guix/build/union.scm:143:21 (file dirs-with-file)> ...]
     ?: 5 [hash-for-each #<procedure eabd80 at ./guix/build/union.scm:143:21 (file dirs-with-file)> ...]
     ?: 4 [hash-for-each #<procedure f24720 at ./guix/build/union.scm:143:21 (file dirs-with-file)> ...]
  In ./guix/build/union.scm:
   110: 3 [union "/gnu/store/2qnn7divxnh5phd1k8sq7g9p29y1vapc-profile/share/man/man1/python.1" ...]
  In unknown file:
     ?: 2 [partition #<procedure file-is-directory? (file)> #]
  In ./guix/build/union.scm:
    49: 1 [file-is-directory? "/gnu/store/q6rbp7s542jkhrhz04hsp2i60gw0h4as-python-2.7.12/share/man/man1/python.1"]
  In unknown file:
     ?: 0 [stat "/gnu/store/q6rbp7s542jkhrhz04hsp2i60gw0h4as-python-2.7.12/share/man/man1/python.1" ...]

  ERROR: In procedure stat:
  ERROR: In procedure stat: No such file or directory: "/gnu/store/q6rbp7s542jkhrhz04hsp2i60gw0h4as-python-2.7.12/share/man/man1/python.1"
  builder for `/gnu/store/ssqb8qmdna28yjq2ggy5bxiy2wn5q1k7-profile.drv' failed with exit code 1
  guix package: error: build failed: build of `/gnu/store/ssqb8qmdna28yjq2ggy5bxiy2wn5q1k7-profile.drv' failed

but, lets not focus on that right now.

> > In all, the system feels flaky at this point. I wish we had found a
> > way of upgrading guile with backward compatibility. Maybe temporarily
> > naming it guile2.2 with matching paths would have been better.
> 
> IIUC this does not relate to ???guix pull??? since you???re building from Git.

The tooling I am using to build from git is coming from a guix pull.
 
> FWIW I had been running Guix in my checkout with Guile 2.2 long before
> this ???guix pull??? transition.  It required making sure that all the 2.2
> dependencies were in the environment (not the 2.0 dependencies), but
> apart from that that went fine.
> 
> I???m afraid I don???t have enough info to debug the issues you mention here
> though.  :-/

No need. What I am suggesting is that we create an environment with a recent
and *tested* set of tools to build the source tree. If that build is
reproducible with recent tooling it will be easy to hunt down bugs. Currently
we can pull a guix environment, but point me where we have an automated build
of that to prove that it is working. Tell me how *you* can recreate
the exact same build environment that I am using. Above environment
isolation feature is useful, but does not guarantee reproducible
builds from source. The point is that we *can* do it.

I suggest to create a guix-build package which is tested against every commit
that updates guix itself on the build farm. We don't have to trigger for
updated packages. Just for commits to the core.

Do you get what I mean? I think it is fairly trivial to achieve, If you agree
this is important I may even have a go at it at some point. 

Pj.

  reply	other threads:[~2017-05-15  7:26 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-15 16:13 Ready for Guile 2.2! Ludovic Courtès
2017-03-15 20:33 ` Pjotr Prins
2017-03-15 20:41 ` Ludovic Courtès
2017-04-20 12:35   ` Ludovic Courtès
2017-04-20 13:10     ` Andy Wingo
2017-04-20 15:21       ` Maxim Cournoyer
2017-04-21 16:05         ` Joshua Branson
2017-04-22 22:20           ` Ludovic Courtès
2017-04-21 21:03         ` Ludovic Courtès
2017-04-24  1:31           ` Maxim Cournoyer
2017-04-21 21:14       ` Ludovic Courtès
2017-03-31 16:34 ` Ludovic Courtès
2017-04-22 22:34 ` ‘guix pull’ vs. transition to Guile 2.2 Ludovic Courtès
2017-04-23 14:09   ` Jan Nieuwenhuizen
2017-04-27 13:25     ` Ludovic Courtès
2017-05-09 21:22   ` Heads-up: " Ludovic Courtès
2017-05-09 22:26     ` myglc2
2017-05-10 12:05       ` Ludovic Courtès
2017-05-10 17:11         ` myglc2
2017-05-11  0:40           ` myglc2
2017-05-11  8:29             ` Ludovic Courtès
2017-05-11  8:50               ` Vincent Legoll
2017-05-11 20:53                 ` Ludovic Courtès
2017-05-11 11:53               ` myglc2
2017-05-11 17:48                 ` ng0
2017-05-11 18:17                   ` ng0
2017-05-11 20:49                     ` Adonay Felipe Nogueira
2017-05-12  8:11                     ` Chris Marusich
2017-05-18 12:32                       ` ng0
2017-05-14 13:50     ` Pjotr Prins
2017-05-14 15:35       ` Pjotr Prins
2017-05-14 16:13         ` Pjotr Prins
2017-05-14 16:28           ` Jan Nieuwenhuizen
2017-05-14 17:29             ` pjotr.public12
2017-05-14 18:30               ` Creating a reliable bootstrap for building from source Pjotr Prins
2017-05-14 21:32                 ` Ludovic Courtès
2017-05-15  1:20                   ` David Pirotte
2017-05-15 13:27                     ` Ludovic Courtès
2017-05-15  7:35                   ` Pjotr Prins
2017-05-15 13:28                     ` Ludovic Courtès
2017-05-17  7:47                       ` Pjotr Prins
2017-05-19  8:58                         ` Ludovic Courtès
2017-05-17  7:52                   ` Pjotr Prins
2017-05-14 21:28       ` Heads-up: transition to Guile 2.2 Ludovic Courtès
2017-05-15  7:26         ` Pjotr Prins [this message]
2017-05-15 15:48           ` Ludovic Courtès
2017-05-15 20:24             ` Rethinking guix pull [was Re: Heads-up: transition to Guile 2.2] myglc2
2017-05-16 15:55               ` Ricardo Wurmus
2017-05-16 20:56                 ` Maxim Cournoyer
2017-05-18 13:54                   ` Katherine Cox-Buday
2017-05-18 15:08                     ` Ludovic Courtès
2017-05-17 12:45                 ` Ludovic Courtès
2017-05-17 17:54                   ` myglc2
2017-05-17 16:06                 ` myglc2
2017-05-17 17:46                   ` myglc2
2017-05-17 23:45                     ` Leo Famulari
2017-05-12  5:41   ` ‘guix pull’ vs. transition to Guile 2.2 Chris Marusich

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170515072626.GA963@thebird.nl \
    --to=pjotr.public12@thebird.nl \
    --cc=guix-devel@gnu.org \
    --cc=ludo@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.