bug#29642: guix 0.14.0 cannot use HTTPS with guile 2.0
This problem happens on Fedora 27, which uses Guile 2.0.14. $ guix package -i hello The following package will be installed: hello2.10/gnu/store/pa4w02b89d6sq33840dxfl5vbqbwz5iy-hello-2.10 substitute: Backtrace: substitute: In ice-9/boot-9.scm: substitute: 160: 9 [catch #t # ...] substitute: In unknown file: substitute:?: 8 [apply-smob/1 #] substitute: In ice-9/boot-9.scm: substitute: 66: 7 [call-with-prompt prompt0 ...] substitute: In ice-9/eval.scm: substitute: 432: 6 [eval # #] substitute: In ice-9/boot-9.scm: substitute: 2412: 5 [save-module-excursion #] substitute: 4089: 4 [#] substitute: 1734: 3 [%start-stack load-stack ...] substitute: 1739: 2 [#] substitute: In unknown file: substitute:?: 1 [primitive-load "/usr/bin/guix"] substitute: In guix/ui.scm: substitute: 1452: 0 [run-guix-command substitute "--query"] substitute: substitute: guix/ui.scm:1452:12: In procedure run-guix-command: substitute: guix/ui.scm:1452:12: In procedure setvbuf: Wrong type argument in position 1 (expecting port that supports 'setvbuf'): # guix package: error: corrupt input while restoring archive from socket If I revert commit 866f37f, this problem can be avoided. The commit (download: Improve efficiency of 'write-request' over TLS.) added the following code to guix/build/download.scm: (cond-expand (guile-2.0 #f) (else (setvbuf record 'line))) The info page of guile doesn't list 'guile-2.0' feature. I know there is a feature called 'guile-2.2', but I cannot find 'guile-2.0'.
bug#29642: guix 0.14.0 cannot use HTTPS with guile 2.0
藍挺瑋 transcribed 1.7K bytes: > This problem happens on Fedora 27, which uses Guile 2.0.14. Do we still support building with guile 2.0? That's a maintenance version of Guile, 2.2 is the new stable. > $ guix package -i hello > The following package will be installed: >hello 2.10/gnu/store/pa4w02b89d6sq33840dxfl5vbqbwz5iy-hello-2.10 > > substitute: Backtrace: > substitute: In ice-9/boot-9.scm: > substitute: 160: 9 [catch #t # ...] > substitute: In unknown file: > substitute:?: 8 [apply-smob/1 #] > substitute: In ice-9/boot-9.scm: > substitute: 66: 7 [call-with-prompt prompt0 ...] > substitute: In ice-9/eval.scm: > substitute: 432: 6 [eval # #] > substitute: In ice-9/boot-9.scm: > substitute: 2412: 5 [save-module-excursion # ice-9/boot-9.scm:4084:3 ()>] > substitute: 4089: 4 [# ()>] > substitute: 1734: 3 [%start-stack load-stack ...] > substitute: 1739: 2 [#] > substitute: In unknown file: > substitute:?: 1 [primitive-load "/usr/bin/guix"] > substitute: In guix/ui.scm: > substitute: 1452: 0 [run-guix-command substitute "--query"] > substitute: > substitute: guix/ui.scm:1452:12: In procedure run-guix-command: > substitute: guix/ui.scm:1452:12: In procedure setvbuf: Wrong type > argument in position 1 (expecting port that supports 'setvbuf'): > # > guix package: error: corrupt input while restoring archive from socket > > If I revert commit 866f37f, this problem can be avoided. The commit > (download: Improve efficiency of 'write-request' over TLS.) added the > following code to guix/build/download.scm: > > (cond-expand > (guile-2.0 #f) > (else (setvbuf record 'line))) > > The info page of guile doesn't list 'guile-2.0' feature. I know there is > a feature called 'guile-2.2', but I cannot find 'guile-2.0'. > > > > -- GnuPG: A88C8ADD129828D7EAC02E52E22F9BBFEE348588 GnuPG: https://c.n0.is/ng0_pubkeys/tree/keys WWW: https://n0.is signature.asc Description: PGP signature
bug#29644: gcc-objc is unusable without its 'gcc' executable
Hello, unlike fortran program files which can be compiled using the command 'gfortran' (in addition to 'gcc'), there is no other command for Objective-C program files, and run 'gcc -c x.m' using the 'gcc' package will just complain "Objective-C compiler not installed on this system" due to it lacking objc support. I have to revert commit 82f145ef7a to get a objc enabled 'gcc' in the 'gcc-objc' package. IIUC, the purpose of that commit is to avoid file collisions between 'gfortran' and the 'gcc' package used in the 'gnu-build-system', which will broke the compiler in some way. So I think we really want to only have one gcc package in an environment... How about enable all languages (except 'brig' which I never heard of) for the gcc-final and the 'gcc' (in gcc.scm) packages? In this way, I think 'gnu-build-system' and 'gcc-toolchain' will able to compile Fortran, Objective-C, Go, etc. out of the box.
bug#29644: gcc-objc is unusable without its 'gcc' executable
宋文武 writes: > Hello, unlike fortran program files which can be compiled using the > command 'gfortran' (in addition to 'gcc'), there is no other command for > Objective-C program files, and run 'gcc -c x.m' using the 'gcc' package > will just complain "Objective-C compiler not installed on this system" > due to it lacking objc support. > > I have to revert commit 82f145ef7a to get a objc enabled 'gcc' in the > 'gcc-objc' package. In May 2016 I first noticed this problem with GCC and investigated solutions. The fix here is to patch “lang-spec.h”, so that it does not limit the gcc executable to the configured set of languages. This way we will be able to use the same gcc executable with different languages. -- Ricardo GPG: BCA6 89B6 3655 3801 C3C6 2150 197A 5888 235F ACAC https://elephly.net
bug#29255: "Profile contains conflicting entries" could be more helpful
Hello! l...@gnu.org (Ludovic Courtès) skribis: > Ricardo Wurmus skribis: > >> In this case it is not entirely clear that the existing python-requests >> package in the profile is “old”. The version looks the same and the >> hash is opaque. >> >> Would it be possible to record something about the Guix version that was >> used to install a package? Then we could say: >> >> An older variant of python-requests is installed in this profile >> (propagated from package “foo-bar”) and conflicts with a newer variant >> (propagated from package “python-twine”). > > When the version numbers are the same, we cannot tell whether a variant > is “older”, we can just tell that it’s different. Also, I find it > useful to see the propagation stack as is currently the case. > > With the patch below, I get: > > $ ./pre-inst-env guix package -p foo -i python@2 python > The following packages will be installed: >python 2.7.13 > /gnu/store/vysfxizaddh1q8s5qjgbdkzxx0585dzi-python-2.7.13 >python 3.5.3 /gnu/store/m4rdgmvdqcxs2zhv42idnz1s1w391i8j-python-3.5.3 > > guix package: error: profile contains conflicting entries for python:out > guix package: error: first entry: python@2.7.13 > /gnu/store/vysfxizaddh1q8s5qjgbdkzxx0585dzi-python-2.7.13 > guix package: error: second entry: python@3.5.3 > /gnu/store/m4rdgmvdqcxs2zhv42idnz1s1w391i8j-python-3.5.3 > hint: You cannot have two different versions or variants of `python' in the > same profile. > > > and: > > $ ./pre-inst-env guix package -i guile-cairo -p foo --no-grafts > The following package will be installed: >guile-cairo1.4.1 > /gnu/store/dsdbp9sqla6zz2skljlcr5zfjyzvargf-guile-cairo-1.4.1 > > guix package: error: profile contains conflicting entries for cairo:out > guix package: error: first entry: cairo@1.14.10 > /gnu/store/c4vl4hw5jccg0b23sfvs0kdnfdbxdlgm-cairo-1.14.10 > guix package: error:... propagated from guile-cairo@1.4.1 > guix package: error: second entry: cairo@1.14.10 > /gnu/store/nwxv9s2q8pi0m6gn6fyidpj8442dwp6f-cairo-1.14.10 > guix package: error:... propagated from cairomm@1.12.2 > hint: Try upgrading both `guile-cairo' and `cairomm', or remove one of them > from the profile. I’ve pushed the patch as commit 3b80b81358b3861ca3794105c8eb4395df97846b. Hopefully these hints help users get on the right track, and we can always adjust them. Thanks, Ludo’.
bug#29255: "Profile contains conflicting entries" could be more helpful
On 11/12/17 09:47, Ludovic Courtès wrote: >> When the version numbers are the same, we cannot tell whether a variant >> is “older”, we can just tell that it’s different. Also, I find it >> useful to see the propagation stack as is currently the case. >> >> With the patch below, I get: >> >> $ ./pre-inst-env guix package -p foo -i python@2 python >> The following packages will be installed: >>python2.7.13 >> /gnu/store/vysfxizaddh1q8s5qjgbdkzxx0585dzi-python-2.7.13 >>python3.5.3 /gnu/store/m4rdgmvdqcxs2zhv42idnz1s1w391i8j-python-3.5.3 >> >> guix package: error: profile contains conflicting entries for python:out >> guix package: error: first entry: python@2.7.13 >> /gnu/store/vysfxizaddh1q8s5qjgbdkzxx0585dzi-python-2.7.13 >> guix package: error: second entry: python@3.5.3 >> /gnu/store/m4rdgmvdqcxs2zhv42idnz1s1w391i8j-python-3.5.3 >> hint: You cannot have two different versions or variants of `python' in the >> same profile. >> >> >> and: >> >> $ ./pre-inst-env guix package -i guile-cairo -p foo --no-grafts >> The following package will be installed: >>guile-cairo 1.4.1 >> /gnu/store/dsdbp9sqla6zz2skljlcr5zfjyzvargf-guile-cairo-1.4.1 >> >> guix package: error: profile contains conflicting entries for cairo:out >> guix package: error: first entry: cairo@1.14.10 >> /gnu/store/c4vl4hw5jccg0b23sfvs0kdnfdbxdlgm-cairo-1.14.10 >> guix package: error:... propagated from guile-cairo@1.4.1 >> guix package: error: second entry: cairo@1.14.10 >> /gnu/store/nwxv9s2q8pi0m6gn6fyidpj8442dwp6f-cairo-1.14.10 >> guix package: error:... propagated from cairomm@1.12.2 >> hint: Try upgrading both `guile-cairo' and `cairomm', or remove one of them >> from the profile. > > I’ve pushed the patch as commit > 3b80b81358b3861ca3794105c8eb4395df97846b. Hopefully these hints help > users get on the right track, and we can always adjust them. That's Ludo, that's great! signature.asc Description: OpenPGP digital signature
bug#29654: Manual database index.db embeds timestamps
The manual database file index.db embeds mtimes of the files it refers to, making it not reproducible. This is an issue for building reproducible profiles (as produced by `guix pack` for example). The number that are not reproducible can be seen with `accessdb index.db`, which will output something like $version$ -> "2.5.0" acme-client -> "- 1 1 1512941854 498178709 B - - gz secure ACME client" And when built again on a clean installation: $version$ -> "2.5.0" acme-client -> "- 1 1 1512942998 296814690 B - - gz secure ACME client" I asked the man-db maintainer about this, who replied: > Those are timestamps, seconds and nanoseconds respectively. You should > get reproducible output if you make sure the mtimes of manual pages are > reproducible. (man-db needs to keep track of mtimes so that it knows > when a database is out of date.) If the manual pages come straight from > the source package, this should be straightforward; if they're > generated, you'll need some strategy to ensure that they're generated > with a reproducible mtime. Now the strange thing is, when I check the profile directory, both the man file symlinks, and the files they refer to, have the mtime set to epoch. I suspected that the mtime would be reset after the manual database had already been built, but inserting calls to utime after `(symlink manpage dest-file)` in the `manual-database` procedure, did not resolve the issue. The mtime that ends up in index.db does correspond to a recent time, and for larger databases the timestamps can differ among entries, but so far I have only seen them differ in the nanoseconds. The seconds timestamp looks like the timestamp at which the database was generated. So either the mtime of the input files is not epoch when man-db runs, or man-db is somehow setting the mtime of every entry to the current time as it adds them. I looked at the man-db source and I did not find anything that looked like it was storing current times as mtimes in the database, although I did not look very carefully. I suspect that the mtimes of the files to scan are actually wrong. It should be possible to confirm this by introducing a delay when creating the man files, and when making the symlinks, and seeing if the delay shows up in the database. Help with diagnosing this further, or ideas about what could be going on and how to resolve it, would be appreciated. I am willing to work on a fix, but I am not very familiar with Guix yet. Kind regards, Ruud van Asseldonk
bug#29655: Elixir build has an undeterministic build error
Hello, this has already mentioned in another bug report https://debbugs.gnu.org/cgi/bugreport.cgi?bug=28034#20 The built of Elixir sometimes fails while compiling 'lib/elixir/lib/system.ex' with the error message: > ** (exit) :epipe See appended build log. I found the only other mention of the error on the guix mailing list when elixir was first added: https://lists.gnu.org/archive/html/guix-devel/2016-07/msg01436.html https://lists.gnu.org/archive/html/guix-devel/2016-08/msg00114.html https://lists.gnu.org/archive/html/guix-devel/2016-07/msg01540.html It was suspected to be related to high memory usage / getting into swap. I ran the build on two computers with 6GB and 16GB ram and still got it on both, so I don't think it's ram related. * What it might be: One single time I got a different error message for the same file which mentioned git (see detailed error attachment). The file lib/elixir/lib/system.ex has a macro that calls git. Also this bug seems to appear nowhere outside of guix, so it might be related. starting phase `build' ==> elixir (compile) Compiled src/elixir_parser.yrl Compiled src/elixir_sup.erl Compiled src/elixir_def.erl Compiled src/elixir_quote.erl Compiled src/elixir_erl_clauses.erl Compiled src/elixir_utils.erl Compiled src/elixir_env.erl Compiled src/elixir_overridable.erl Compiled src/elixir_erl_pass.erl Compiled src/elixir_interpolation.erl Compiled src/elixir_aliases.erl Compiled src/elixir_erl_compiler.erl Compiled src/elixir_code_server.erl Compiled src/elixir_lexical.erl Compiled src/elixir_clauses.erl Compiled src/elixir.erl Compiled src/elixir_rewrite.erl Compiled src/elixir_dispatch.erl Compiled src/elixir_compiler.erl Compiled src/elixir_erl_for.erl Compiled src/elixir_bitstring.erl Compiled src/elixir_bootstrap.erl Compiled src/elixir_expand.erl Compiled src/elixir_erl_try.erl Compiled src/elixir_import.erl Compiled src/elixir_map.erl Compiled src/elixir_tokenizer.erl Compiled src/elixir_erl_var.erl Compiled src/elixir_erl.erl Compiled src/elixir_errors.erl Compiled src/elixir_module.erl Compiled src/elixir_fn.erl Compiled src/elixir_config.erl Compiled src/elixir_locals.erl Compiled src/elixir_parser.erl ==> bootstrap (compile) Compiled lib/elixir/lib/kernel.ex Compiled lib/elixir/lib/macro/env.ex Compiled lib/elixir/lib/keyword.ex Compiled lib/elixir/lib/module.ex Compiled lib/elixir/lib/list.ex Compiled lib/elixir/lib/macro.ex Compiled lib/elixir/lib/code.ex Compiled lib/elixir/lib/module/locals_tracker.ex Compiled lib/elixir/lib/kernel/typespec.ex Compiled lib/elixir/lib/kernel/utils.ex Compiled lib/elixir/lib/behaviour.ex warning: erlang:get_stacktrace/0 used in the wrong part of 'try' expression. (Use it in the block between 'catch' and 'end'.) /tmp/guix-build-elixir-1.5.2.drv-0/elixir-1.5.2/lib/elixir/lib/exception.ex:1150 Compiled lib/elixir/lib/exception.ex Compiled lib/elixir/lib/protocol.ex Compiled lib/elixir/lib/stream/reducers.ex Compiled lib/elixir/lib/enum.ex Compiled lib/elixir/lib/inspect/algebra.ex Compiled lib/elixir/lib/inspect.ex Compiled lib/elixir/lib/range.ex Compiled lib/elixir/lib/regex.ex Compiled lib/elixir/lib/string.ex Compiled lib/elixir/lib/string/chars.ex Compiled lib/elixir/lib/io.ex Compiled lib/elixir/lib/path.ex Compiled lib/elixir/lib/file.ex Compiled lib/elixir/lib/system.ex Compiled lib/elixir/lib/kernel/cli.ex Compiled lib/elixir/lib/kernel/error_handler.ex Compiled lib/elixir/lib/kernel/parallel_compiler.ex Compiled lib/elixir/lib/kernel/lexical_tracker.ex ==> elixir (compile) warning: behaviour Enumerable is undefined lib/calendar/date_range.ex:21 warning: behaviour Inspect is undefined lib/calendar/date_range.ex:81 warning: behaviour String.Chars is undefined lib/calendar/date.ex:582 warning: behaviour Inspect is undefined lib/calendar/date.ex:588 warning: behaviour String.Chars is undefined lib/calendar/time.ex:476 warning: behaviour Inspect is undefined lib/calendar/time.ex:482 warning: behaviour String.Chars is undefined lib/calendar/datetime.ex:473 warning: behaviour Inspect is undefined lib/calendar/datetime.ex:482 warning: behaviour String.Chars is undefined lib/calendar/naive_datetime.ex:677 warning: behaviour Inspect is undefined lib/calendar/naive_datetime.ex:684 warning: erlang:get_stacktrace/0 used in the wrong part of 'try' expression. (Use it in the block between 'catch' and 'end'.) lib/exception.ex:1150 warning: use Dict is deprecated, use the Map module for working with maps or the Keyword module for working with keyword lists lib/hash_dict.ex:11 == Compilation error in file lib/system.ex == ** (exit) :epipe make: *** [Makefile:81: lib/elixir/ebin/Elixir.Kernel.beam] Error 1 phase `build' failed after 67.5 seconds builder for `/gnu/store/s9d2icsm6aniyhpscgfphb1z879b4wbc-elixir-1.5.2.drv' failed with exit code 1 @ build-failed /gnu/store/s9d2icsm6aniyhpscgfphb1z879b4wbc-elixir-1.5.2.drv - 1 builder for `/gnu/store/s9d2icsm6aniyhpscgfphb1z879b4wbc-elixir-1.5.2.drv' fa