Ricardo Wurmus <ricardo.wur...@mdc-berlin.de> writes: >> ERROR: In procedure mkstemp!: >> ERROR: In procedure mkstemp!: No such file or directory >> builder for `/gnu/store/2ll28ypms57h0k44f4mmclhw9dz3ccvm-preseq-1.0.2.drv' >> failed with exit code 1 >> @ build-failed >> /gnu/store/2ll28ypms57h0k44f4mmclhw9dz3ccvm-preseq-1.0.2.drv - 1 >> builder for >> `/gnu/store/2ll28ypms57h0k44f4mmclhw9dz3ccvm-preseq-1.0.2.drv' >> failed with exit code 1 >> guix build: error: build failed: build of >> `/gnu/store/2ll28ypms57h0k44f4mmclhw9dz3ccvm-preseq-1.0.2.drv' failed > > The problem was that the “enter-dir” and “use-samtools-headers” phases > were both added after “unpack”. (Has the order in which phases are > added with ‘modify-phases’ changed?
No. It's deterministic, and 'modify-phases' is in (guix build utils) so it can't be changed without triggering a full rebuild. The edits are done in the order shown, as if it was imperative code. For example: (modify-phases %standard-phases (add-after 'unpack 'A <phase-A>) (add-after 'unpack 'B <phase-B>)) expands into: (let* ((phases* %standard-phases) (phases* (alist-cons-after 'unpack 'A <phase-A> phases*)) (phases* (alist-cons-after 'unpack 'B <phase-B> phases*))) phases*) which is equivalent to: (alist-cons-after 'unpack 'B <phase-B> (alist-cons-after 'unpack 'A <phase-A> %standard-phases)) Since B is the last one added, it ends up after 'unpack' and before A. > When I built it locally back then “use-samtools-headers” must have > ended up after “enter-dir”.) I don't see how that could have happened. Maybe you made some changes after your last test? Anyway, if 'use-samtools-headers' must come after 'enter-dir' then it's surely better to make that explicit. > I just pushed a commit that explicitly moves “use-samtools-headers” > after the “enter-dir” phase, fixing this problem. Thank you! Mark