unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
From: zimoun <zimon.toutoune@gmail.com>
To: "Ludovic Courtès" <ludo@gnu.org>
Cc: 21803@debbugs.gnu.org
Subject: bug#21803: guitarix non-reproducible hard to reproduce
Date: Mon, 18 Nov 2019 19:18:54 +0100	[thread overview]
Message-ID: <CAJ3okZ0m73bor5q-zH-Mqr_xLvjJRr5Sy_j8SHpKsQV7hYqtZw@mail.gmail.com> (raw)
In-Reply-To: <87y2wfx0kd.fsf@gnu.org>

Hi Ludo,

On Sat, 16 Nov 2019 at 17:12, Ludovic Courtès <ludo@gnu.org> wrote:

> zimoun <zimon.toutoune@gmail.com> skribis:
>
> > My intuition is: the non-determinism comes from the WAF configuration
> > files (./waf or wscript or wafadmin/).
> >
> > The process conditionally enters in functions such as "do_install" or
> > "symlink_as", so maybe something is hidden by Python module "os" or
> > similar. Moreover, note that wscript:l.990 "add_group()" is used after
> > "add_subdirs('libgxw/gxw')".
>
> My intuition :-) is that waf traverses files using directly
> opendir/readdir, which returns files in an order that’s file
> system-dependent.  That, in turn, leads it to make .so a symlink or not
> in a non-deterministic fashion.

Yes, it should come from the function 'os.listdir' (readdir). The
documentation [1] says: "The list is in arbitrary order."

[1] https://docs.python.org/2/library/os.html#os.listdir


The function 'os.listdir' is called some times ;-)

--8<---------------cut here---------------end--------------->8---
$ egrep -r "os\.listdir\("
wafadmin3/py3kfixes.py:            for x in os.listdir(os.path.join(dir,y)):
wafadmin3/Scripting.py:    lst=os.listdir(cwd)
wafadmin3/Scripting.py:        if WSCRIPT_FILE in os.listdir(calldir):
wafadmin3/Scripting.py:        dirlst=os.listdir(cwd)
wafadmin3/Scripting.py:    names=os.listdir(src)
wafadmin3/Scripting.py:    lst=os.listdir('.')
wafadmin3/Tools/qt4.py:            lst=os.listdir('/usr/local/Trolltech/')
wafadmin3/Tools/javaw.py:        lst=os.listdir(path)
wafadmin3/Utils.py:        return os.listdir(s)
tools/check_rpc:    for f in os.listdir(basedir):
src/gx_head/builder/make:for f in os.listdir(__dir__):
wafadmin/py3kfixes.py:            for x in os.listdir(os.path.join(dir,y)):
wafadmin/Scripting.py:    lst=os.listdir(cwd)
wafadmin/Scripting.py:        if WSCRIPT_FILE in os.listdir(calldir):
wafadmin/Scripting.py:        dirlst=os.listdir(cwd)
wafadmin/Scripting.py:    names=os.listdir(src)
wafadmin/Scripting.py:    lst=os.listdir('.')
wafadmin/Tools/qt4.py:            lst=os.listdir('/usr/local/Trolltech/')
wafadmin/Tools/javaw.py:        lst=os.listdir(path)
wafadmin/Utils.py:        return os.listdir(s)
--8<---------------cut here---------------end--------------->8---

And do not talk about the function 'walk' which internally use 'listdir'. :-)


I have no idea how to address this issue.


> It would also be worth checking what others involved in the Reproducible
> Builds effort have done (Debian, openSuSE, etc.).

Lot of sun for Debian [2] ;-)
I mean from what I understand, they do not find any reproducibility
issue and they apply only this patch [3].

[2] https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/guitarix.html
[3] https://sources.debian.org/patches/guitarix/0.36.1-1/02-libdl.patch/


Do not know about openSuSE.


Cheers,
simon

  reply	other threads:[~2019-11-18 18:20 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-01 10:30 bug#21803: Guitarix builds non-deterministically Ludovic Courtès
2019-11-12 20:44 ` bug#21803: Bug #21803 Hunting: status? zimoun
2019-11-13 13:42   ` Ludovic Courtès
2019-11-13 18:14     ` zimoun
2019-11-14 21:09       ` Ludovic Courtès
2019-11-15 11:53         ` zimoun
2019-11-15 15:35           ` bug#21803: other waf non reproducible: mpv and ardour zimoun
2019-11-15 19:46           ` bug#21803: guitarix non-reproducible hard to reproduce zimoun
2019-11-16 16:12             ` Ludovic Courtès
2019-11-18 18:18               ` zimoun [this message]
2019-11-18 20:29                 ` Ludovic Courtès
2020-09-11 13:57 ` bug#21803: Guitarix builds non-deterministically zimoun
2020-09-11 16:48   ` Maxim Cournoyer

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

  List information: https://guix.gnu.org/

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

  git send-email \
    --in-reply-to=CAJ3okZ0m73bor5q-zH-Mqr_xLvjJRr5Sy_j8SHpKsQV7hYqtZw@mail.gmail.com \
    --to=zimon.toutoune@gmail.com \
    --cc=21803@debbugs.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 public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).