bug#40729: Two rottlog servives causes cryptic etc drv failure

2020-04-21 Thread Christopher Baines

Ludovic Courtès  writes:

> Hi,
>
> Christopher Baines  skribis:
>
>> I got this error when reconfiguring with a recent revision of Guix.
>>
>>
>> /builder for `/gnu/store/kbhl4rk6p0z4jbimlqj57vj3dhyjgv4x-etc.drv' failed 
>> with exit code 1
>> build of /gnu/store/kbhl4rk6p0z4jbimlqj57vj3dhyjgv4x-etc.drv failed
>> View build log at 
>> '/var/log/guix/drvs/kb/hl4rk6p0z4jbimlqj57vj3dhyjgv4x-etc.drv.bz2'.
>> building /gnu/store/59bd67s06inr5vzyxc70yk6garj2aciz-linux-modules.drv...
>> cannot build derivation 
>> `/gnu/store/n45vq7jbhn5qz24qlgv6a6ginarqs433-system.drv': 1 dependencies 
>> couldn't be built
>> guix system: error: build of 
>> `/gnu/store/n45vq7jbhn5qz24qlgv6a6ginarqs433-system.drv' failed
>> chris@guix-hetzner-1 ~$ bzcat 
>> /var/log/guix/drvs/kb/hl4rk6p0z4jbimlqj57vj3dhyjgv4x-etc.drv.bz2
>> Backtrace:
>>1 (primitive-load "/gnu/store/g4q88pmwr1vy54qpnkz878k3n7f?")
>>0 (symlink "/gnu/store/939n705vmkn8613b8gjc10llvsr5jcwc-?" ?)
>>
>> ERROR: In procedure symlink:
>> In procedure symlink: File exists
>
> Yeah that’s something I noticed here:
>
>   https://lists.gnu.org/archive/html/guix-devel/2020-04/msg00032.html
>
> Commit a322e9d16b227484ce04721fee0f99618cb1007e does that.
>
> The result is not optimal yet because it just says “duplicate entries”.
> Ideally we’d be able to show a ‘fold-services’ trace of sorts telling
> showing where the faulty entries come from.

Awesome, that'll be useful for sure :)

Thanks,

Chris


signature.asc
Description: PGP signature


bug#40736: Python manylinux wheels cannot find libstdc++.so.6

2020-04-21 Thread Boris A. Dekshteyn
 writes:

> Hi,
>
> I cannot get precompiled python wheels working in a guix environment,
> because libstdc++.so.6 is missing. Is this library hidden on purpose?
>
> It is available for example in
> /gnu/store/xqjpihbfdc62d2q0sn8i0y0g1xpzbr1s-gcc-9.3.0-lib/lib/ and
> adding that path manually to LD_LIBRARY_PATH seems to fix the issue.
>
> What is the proper way to include libstdc++.so.6 in my profile?


#+BEGIN_EXAMPE
  guix environment --ad-hoc -e '(list (@@ (gnu packages gcc) gcc-9) "lib")'
#+END_EXAMPLE



-- 
WBR, Boris Dekshteyn





bug#40740: guix build problem, no RUNPATH on libpthread.so

2020-04-21 Thread zimoun
Dear Michael,

> On Tue, Apr 21, 2020 at 09:41:47AM +0930, Michael Zucchi wrote:

> > But the first guix pull fails because it tries to run a 32 bit binary, so
> > ultimately fails for the the same reason as detailed in my previous email.

To be sure to understand,
 - your machine is 64bit
 - and you are running Guix on the top of Slackware
 - Guix has been installed using this script
https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh
Right?
Then, something screws up and some 32bit stuff shows up, right?

The previous emails related to this topic you mentioned ("I posted
about this months ago but I think I got no answers") in this thread
are [1] and [2], right?

[1] https://lists.gnu.org/archive/html/help-guix/2019-12/msg00111.html
[2] https://lists.gnu.org/archive/html/help-guix/2019-12/msg00131.html


All the best,
simon





bug#40744: guile-2.2.4 (integer-length 0) erroneously returns 0, not 1

2020-04-21 Thread Bengt Richter
Hello guix/guile bug-squashers,

The tl;dr is:
(integer-length 0) should agree with:
(string-length (number->string 0 2)) =-> 1
-- and not:   (integer-length 0) =-> 0

The integer length in bits (short for binary digits :)
is the number digits required to write the integer value
in conventional big-endian digit order, signifying coefficients
of successive powers of the radix used.

This applies irrespective of the radix. Thus "11" in decimal is
  "1*10^1 + 1*10^0"
or hex is
  "11*16^0"
or binary is
  "1*2^1 + 1*2^0"

So, the crux of the argument is that it takes one digit to write
either 1 or 0:
--8<---cut here---start->8---
Inputs: 1 (radix 10, decimal value unsigned 1) (output radix 2)
  Number as radix-2 glyph{0..1} string (unsigned)
  "1"
  Number as glyphs representing coefficient values of radix polynomial for 
number value:
  ("1")
  (1) -- corresponding coefficient values
  Number as polynomial expression:
  "1*2^0"
  (1) -- corresponding term values
  1 -- sum of term values
  The following should be equal to guile's (integer-length 1):
  1 integer-digit (radix 2)
--8<---cut here---end--->8---

--8<---cut here---start->8---
Inputs: 0 (radix 10, decimal value unsigned 0) (output radix 2)
  Number as radix-2 glyph{0..1} string (unsigned)
  "0"
  Number as glyphs representing coefficient values of radix polynomial for 
number value:
  ("0")
  (0) -- corresponding coefficient values
  Number as polynomial expression:
  "0*2^0"
  (0) -- corresponding term values
  0 -- sum of term values
  The following should be equal to guile's (integer-length 0):
  1 integer-digit (radix 2)
--8<---cut here---end--->8---

BTW, this works for signed numbers as well, if you use a complement
representation making the sign digit 0 for positive and radix-1 for
negative (thus 0 and 1 for radix 2, and e.g. 0 and f for radix 16).

Decimal is just another radix:

Inputs: -11 (radix 10, decimal value minus 11) (output radix 10)
  Number as radix-10 glyph{0..9} string (radix-complement -sign prefix)
  "989" (complement notation)
   ^--(note that 0 and "9" (radix10 -1) are sign digits for 0 and -1 
coefficient values in the polynomial)
  Number as glyphs representing coefficient values of radix polynomial for 
number value:
  ("-1" "8" "9")
  (-1 8 9) -- corresponding coefficient values
  Number as polynomial expression:
  "-1*10^2 + 8*10^1 + 9*10^0"
  (-100 80 9) -- corresponding term values
  -11 -- sum of term values
  Tip: for guile integer-length, enter unsigned value with output radix 2
  3 integer-digits (radix 10)

The extreme for this version is radix 36:

Inputs: -11 (radix 36, decimal value minus 37) (output radix 36)
  Number as radix-36 glyph{0..z} string (radix-complement -sign prefix)
  "zyz" (complement notation)
   ^--(note that 0 and "z" (radix36 -1) are sign digits for 0 and -1 
coefficient values in the polynomial)
  Number as glyphs representing coefficient values of radix polynomial for 
number value:
  ("-1" "y" "z")
  (-1 34 35) -- corresponding coefficient values
  Number as polynomial expression:
  "-1*36^2 + 34*36^1 + 35*36^0"
  (-1296 1224 35) -- corresponding term values
  -37 -- sum of term values
  Tip: for guile integer-length, enter unsigned value with output radix 2
  3 integer-digits (radix 36)

I got a little carried away exploring the complement notation, and wrote
a thing to explain the meanings. Please copy snip to int2poly and chmod 755 it.
Then run once without args for usage help.

I hope it will convince you that guile (integer-length 0) should be 1 ;-)

--8<---cut here---start->8---
#!/usr/bin/env -S guile -e main -s
!#
;; run without arguments for usage, or read below
;; int2poly-0.1.0 -- 2020-04-21 

(use-modules (ice-9 format)
 (ice-9 regex))

(define self (basename (car (command-line
(define verbose #f)

(define (usage)
  (begin
(let*((selfxxx (basename (car (command-line)
  (begin
(format (current-error-port)
"Usage:
~a  [-v ] | NUMSTR  [out-radix] [inp-radix]
where *-radix are entered in decimal, and
out-radix defaults to 2 and inp-radix defaults to 10,
but may set independently to 2..36 to demo generality.

-v for verbose output explanations

NUMSTR will be written in radix digits representing
polynomial coefficients, which is presented in series terms
and evaluated back to the original number.

The NUMSTR character set is the same as for (number->string radix)
but could be any chosen set of distinct glyphs for values {0..}.

guile integer-length can be considered a special case of
coefficient count for radix 2, which is  printed in the last
line of output as \"N integer-digits (radix N)\n"
self ))
  (if (= (integ

bug#40612: guix build system --dry-run is broken

2020-04-21 Thread Ludovic Courtès
Hi,

Mark H Weaver  skribis:

> Ludovic Courtès  wrote:
>> Mark H Weaver  skribis:
>>
>>> Yes, of course, I agree that it's not possible to present a build plan
>>> ahead of time when grafts are enabled.  That was the case before these
>>> changes, and it's the case today.
>>>
>>> The only part I don't understand is why you decided that "--dry-run"
>>> should no longer imply "--no-grafts".  Does it work better for other
>>> people?  For me, the "--dry-run" output has become utterly useless
>>> unless "--no-grafts" is included.
>>
>> I explained the pros and cons of having ‘--dry-run’ no longer implying
>> ‘--with-grafts’ here:
>>
>>   https://lists.gnu.org/archive/html/guix-devel/2020-03/msg00337.html
>
> I read that message, but was unable to find any mention of the 'pros' of
> having '--dry-run' no longer imply '--no-grafts'.  Did I miss it?  I
> still don't know what is the argument in favor of that change.

The “pro” is not there, you’re right.  It’s basically about eliminating
a special case.  The ideal would be that the special case is unnecessary
and grafts can be considered a special case of dynamic dependencies.

I’m not saying we’re there yet, I pointed out weaknesses and you found
other instances, but that’s the general direction I wanted to take.

>> ‘guix package --dry-run’ overall works well IME, except when a
>> dependency of a fixed-output derivation is missing, as explained above.
>>
>> ‘guix system’ doesn’t work so well as you note (though again, that
>> depends on what you’re building vs. what you have in store).
>
> For what it's worth, I've found the --dry-run output to be similarly
> useless when rebuilding my user profile as well.

Not for me, but we could look at specific examples.

Whether substitutes are used makes no difference, which is an
improvement compared to the previous situation!

Thanks for your feedback,
Ludo’.





bug#40682: frozen installer in WiFi section -guix 1.1.0

2020-04-21 Thread Ludovic Courtès
Hi,

Mathieu Othacehe  skribis:

> Almost unrelated topic, it would be nice to provide an interface where
> users can grab a nightly/periodic build of the installer and test the
> latest fixes. We are already have "usb-image" and "iso9660-image" jobs
> in Cuirass. So it could be a link allowing to download the latest
> successful build or so.

Yes, it would be nice.  We’d need to allow Cuirass to somehow publish
raw files, like Hydra does.

Ludo’.





bug#40740: guix build problem, no RUNPATH on libpthread.so

2020-04-21 Thread Michael Zucchi


G'day Simon,

On 21/4/20 5:25 pm, zimoun wrote:

Dear Michael,


On Tue, Apr 21, 2020 at 09:41:47AM +0930, Michael Zucchi wrote:

But the first guix pull fails because it tries to run a 32 bit binary, so
ultimately fails for the the same reason as detailed in my previous email.

To be sure to understand,
  - your machine is 64bit
  - and you are running Guix on the top of Slackware
  - Guix has been installed using this script
https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh
Right?


Correct although I can't remember if i ran the script or used the steps 
in the manual 
[https://guix.gnu.org/manual/en/html_node/Binary-Installation.html].   
slackware doesn't use one of the supported init systems and all the 
steps it performs are trivial so i might've skipped it.  guix with 
substitutions was working ok for the limited use I made of it.



Then, something screws up and some 32bit stuff shows up, right?


Well yes and no - nothing screws up and the behaviour is intended it 
just doesn't work.   As i found[2] 4 months ago, the bootstrap package 
explicitly uses i686 binaries for amd64 because (I presume) they are 
statically linked and all amd64 hardware supports executing 32-bit mode 
code.  But my linux configuration disables it because i don't need or 
want it.


It all happens here:

https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/bootstrap.scm#n128

|(define bootstrap-executable (mlambda (program system) "Return an 
origin for PROGRAM, a statically-linked bootstrap executable built for 
SYSTEM." ;>>  (let ((system (if (string=? system 
"x86_64-linux") "i686-linux" system))) ;<<  (match 
(assoc-ref (assoc-ref %bootstrap-executables system) program) (#f (raise 
(condition (&message (message (format #f (G_ "could not find bootstrap 
binary '~a' \ for system '~a'") program system)) ((sha256) (origin 
(method url-fetch/executable) (uri (bootstrap-executable-url program 
system)) (file-name program) (sha256 sha256))) |


||
||
|I attempted modifying this to use 64-bit binaries at the time but it 
wouldn't use the ones i supplied when it|
|came to executing the tests.  So I dropped it as it was going nowhere 
fast, nobody seemed interested, and had

other things to do like xmas. ||Those failed attempts are long gone.|
||
||
||

The previous emails related to this topic you mentioned ("I posted
about this months ago but I think I got no answers") in this thread
are [1] and [2], right?

[1] https://lists.gnu.org/archive/html/help-guix/2019-12/msg00111.html
[2] https://lists.gnu.org/archive/html/help-guix/2019-12/msg00131.html


Yeah.


All the best,
simon


Cheers,
 Z




bug#40758: build failure: gcc-4.8.5 (gcc-toolchain-4.8.5)

2020-04-21 Thread Christopher Howard
My attempt to build gcc-toolchain-4.8.5 dies, with a build failure in
the gcc package. I was hoping to use this package to try to build some
older software.

christopher@nightshade ~/Repos/guix-working$ guix describe
Generation 16   Apr 11 2020 08:47:10(current)
  guix 658505d
repository URL: https://git.savannah.gnu.org/git/guix.git
branch: master
commit: 658505d7a92f0518e1fc4c965bdaa389a6e83f2c

Error:

In file included from ../../gcc-4.8.5/gcc/cp/except.c:1008:0:
cfns.gperf: In function ‘const char* libc_name_p(const char*, unsigned
int)’:
cfns.gperf:101:1: error: ‘const char* libc_name_p(const char*, unsigned
int)’ redeclared inline with ‘gnu_inline’ attribute
cfns.gperf:26:14: note: ‘const char* libc_name_p(const char*, unsigned
int)’ previously declared here
cfns.gperf: At global scope:
cfns.gperf:26:14: warning: inline function ‘const char*
libc_name_p(const char*, unsigned int)’ used but never defined
make[3]: *** [Makefile:1059: cp/except.o] Error 1
make[3]: *** Waiting for unfinished jobs
rm gcc.pod
make[3]: Leaving directory '/tmp/guix-build-gcc-4.8.5.drv-0/build/gcc'
make[2]: *** [Makefile:4157: all-stage1-gcc] Error 2
make[2]: Leaving directory '/tmp/guix-build-gcc-4.8.5.drv-0/build'
make[1]: *** [Makefile:18767: stage1-bubble] Error 2
make[1]: Leaving directory '/tmp/guix-build-gcc-4.8.5.drv-0/build'
make: *** [Makefile:886: all] Error 2
command "make" "-j" "3" "LDFLAGS_FOR_TARGET=-
B/gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/lib -Wl,-
dynamic-linker -Wl,/gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-
2.29/lib/ld-linux-x86-64.so.2" "LDFLAGS=-Wl,-
rpath=/gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-2.29/lib -Wl,-
dynamic-linker -Wl,/gnu/store/ahqgl4h89xqj695lgqvsaf6zh2nhy4pj-glibc-
2.29/lib/ld-linux-x86-64.so.2" "BOOT_CFLAGS=-O2 -g0" failed with status
2
builder for `/gnu/store/nx6ndhvxg8b2vzhs56fnd3hydkif0rgh-gcc-4.8.5.drv' 
failed with exit code 1
build of /gnu/store/nx6ndhvxg8b2vzhs56fnd3hydkif0rgh-gcc-4.8.5.drv
failed
View build log at
'/var/log/guix/drvs/nx/6ndhvxg8b2vzhs56fnd3hydkif0rgh-gcc-
4.8.5.drv.bz2'.
cannot build derivation `/gnu/store/qcakvv0m8xbyaw36ykmdm878jjii73b4-
gcc-toolchain-4.8.5.drv': 1 dependencies couldn't be built
guix build: error: build of
`/gnu/store/qcakvv0m8xbyaw36ykmdm878jjii73b4-gcc-toolchain-4.8.5.drv'
failed


-- 
Christopher Howard
p: +1 (907) 374-0257
w: https://librehacker.com
social: https://gnusocial.club/librehacker
gpg: ADDEAADE5D607C8D (keys.gnupg.net)