bug#32773: [PATCH] Fix clang libstdc++ header location search

2019-11-15 Thread Mathieu Othacehe


> I'm not sure what the answer is there though, as we still need to patch
> in the full path to the headers... maybe a cmake option and associated
> macro to be used in that file? 

They already have a CMake option to select libc++ or libstdc++, so
adding another option to specify the path of the selected C++ library
would be really nice.

Plus it would benefit Nix and other distros where the path of those
libraries cannot be guessed.

Mathieu





bug#21803: Bug #21803 Hunting: status?

2019-11-15 Thread zimoun
Hi Ludo,

Thank you for the explanations.


On Thu, 14 Nov 2019 at 22:09, Ludovic Courtès  wrote:

> I would probably do “guix build guitarix” (get the substitute) and then
> “guix build guitarix --check --no-grafts -K”, possibly several times*,
> which builds guitarix alone from source.

I confirm what you reported:

--8<---cut here---start->8---
$ LC_ALL=C diff -r --no-dereference
/gnu/store/16g7l26rpwhza7fm5jm3lz1ycavky9yl-guitarix-0.38.1
/gnu/store/16g7l26rpwhza7fm5jm3lz1ycavky9yl-guitarix-0.38.1-check
File /gnu/store/16g7l26rpwhza7fm5jm3lz1ycavky9yl-guitarix-0.38.1/lib/libgxw.so
is a symbolic link while file
/gnu/store/16g7l26rpwhza7fm5jm3lz1ycavky9yl-guitarix-0.38.1-check/lib/libgxw.so
is a regular file
--8<---cut here---end--->8---

As you said, it needs more investigation... :-)


> Perhaps there are genuine issues described in the rest of your message
> but we’d need to isolate them first.  :-)

Yes, first things first. :-)
And I will open discussion elsewhere because it is not related to this bug.


Thanks,
simon





bug#37850: Glib documentation is missing

2019-11-15 Thread pelzflorian (Florian Pelz)
On Fri, Nov 15, 2019 at 12:17:30PM +0100, Pierre Neidhardt wrote:
> You are right, something is wrong with substitute-keyword-arguments.
> 

No, I did not say that, I said that despite
substitute-keyword-arguments returning the correct arguments – as is
visible by enclosing the args with a call to (error …) –, meson builds
with the old arguments.  However now you say it works when copying the
arguments from Glib, which is strange.

Regards,
Florian





bug#37850: Glib documentation is missing

2019-11-15 Thread Marius Bakke
Pierre Neidhardt  writes:

> You are right, something is wrong with substitute-keyword-arguments.

The problem is that GLib has no configure-flags from before.  I'm not
sure why we get no error from substitute-keyword-arguments (is it
swallowed?  never run?), but if you change this part:

 (substitute-keyword-arguments (package-arguments glib)
   ((#:configure-flags flags)
`(cons "-Dgtk_doc=true" ,flags)))

...to read like this:

 (substitute-keyword-arguments (package-arguments glib)
   ((#:configure-flags flags ''())
`(cons "-Dgtk_doc=true" ,flags)))

Then it should work.  The difference is that "flags" gets initialized as
the empty list when not already set.


signature.asc
Description: PGP signature


bug#37850: Glib documentation is missing

2019-11-15 Thread Pierre Neidhardt
Oh, that makes total sense, thanks for the explanation Marius!

Alright, final patch attached.
Let me know if I should merge on master.

-- 
Pierre Neidhardt
https://ambrevar.xyz/


signature.asc
Description: PGP signature
>From 29d27b64fb7bbf96a2ed59a3e1c4179717770f5c Mon Sep 17 00:00:00 2001
From: Pierre Neidhardt 
Date: Mon, 11 Nov 2019 15:38:11 +0100
Subject: [PATCH] gnu: Add glib-with-documentation.

* gnu/packages/glib.scm (glib-with-documentation): New variable.
(glib): Hide package.
---
 gnu/packages/glib.scm | 40 
 1 file changed, 40 insertions(+)

diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index b3e85f8df9..47e4f7006a 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -339,6 +339,7 @@ shared NFS home directories.")
(variable "GIO_EXTRA_MODULES")
(files '("lib/gio/modules")
(search-paths native-search-paths)
+   (properties '((hidden? . #t)) )
 
(synopsis "Thread-safe general utility library; basis of GTK+ and GNOME")
(description
@@ -348,6 +349,45 @@ dynamic loading, and an object system.")
(home-page "https://developer.gnome.org/glib/";)
(license license:lgpl2.1+)))
 
+(define-public glib-with-documentation
+  ;; glib's doc must be built in a separate package since it requires gtk-doc,
+  ;; which in turn depends on glib.
+  (package
+(inherit glib)
+(properties '((hidden? . #f)))
+(outputs (cons "doc" (package-outputs glib))) ; 20 MiB of GTK-Doc reference
+(native-inputs
+ `(("gtk-doc" ,gtk-doc) ; for the doc
+   ("docbook-xml" ,docbook-xml)
+   ,@(package-native-inputs glib)))
+(arguments
+ (substitute-keyword-arguments (package-arguments glib)
+   ((#:configure-flags flags ''())
+`(cons "-Dgtk_doc=true" ,flags))
+   ((#:phases phases)
+`(modify-phases ,phases
+   (add-after 'unpack 'make-local-docbook-xml
+ (lambda* (#:key inputs #:allow-other-keys)
+   (let ((replace-http
+  (lambda (file)
+(substitute* file
+  ;; Warning: gio.xml uses docbook 4.2, hence the "4.." pattern.
+  (("http://www.oasis-open.org/docbook/xml/4../docbookx.dtd";)
+   (string-append (assoc-ref inputs "docbook-xml")
+  "/xml/dtd/docbook/docbookx.dtd"))
+ (replace-http "gio/gdbus-2.0/codegen/codegen_docbook.py")
+ (for-each replace-http (find-files "." "\\.xml$"))
+ #t)))
+   (add-after 'install 'move-doc
+ (lambda* (#:key outputs #:allow-other-keys)
+   (let ((out (assoc-ref outputs "out"))
+ (doc (assoc-ref outputs "doc"))
+ (html (string-append "/share/gtk-doc")))
+ (copy-recursively (string-append out html)
+   (string-append doc html))
+ (delete-file-recursively (string-append out html))
+ #t)
+
 (define gobject-introspection
   (package
 (name "gobject-introspection")
-- 
2.23.0



bug#21803: other waf non reproducible: mpv and ardour

2019-11-15 Thread zimoun
Hi,

I do not know if it is related but these 2 packages using the waf
build system are not reproducible too.

 - mpv
 - ardour

--8<---cut here---start->8---
$ diff -r --no-dereference
/gnu/store/gb935w89qyyi4ljyaz40brai2z9wg0fr-mpv-0.30.0
/gnu/store/gb935w89qyyi4ljyaz40brai2z9wg0fr-mpv-0.30.0-check
Binary files /gnu/store/gb935w89qyyi4ljyaz40brai2z9wg0fr-mpv-0.30.0/bin/mpv
and /gnu/store/gb935w89qyyi4ljyaz40brai2z9wg0fr-mpv-0.30.0-check/bin/mpv
differ
Binary files 
/gnu/store/gb935w89qyyi4ljyaz40brai2z9wg0fr-mpv-0.30.0/lib/libmpv.so.1.106.0
and 
/gnu/store/gb935w89qyyi4ljyaz40brai2z9wg0fr-mpv-0.30.0-check/lib/libmpv.so.1.106.0
differ
--8<---cut here---end--->8---


--8<---cut here---start->8---
$ diff -r --no-dereference
/gnu/store/7l5isavp1db8q5mv3zq7bmk29l6ld9qp-ardour-5.12
/gnu/store/7l5isavp1db8q5mv3zq7bmk29l6ld9qp-ardour-5.12-check
Binary files 
/gnu/store/7l5isavp1db8q5mv3zq7bmk29l6ld9qp-ardour-5.12/lib/ardour5/ardour-5.12.0
and 
/gnu/store/7l5isavp1db8q5mv3zq7bmk29l6ld9qp-ardour-5.12-check/lib/ardour5/ardour-5.12.0
differ
Binary files 
/gnu/store/7l5isavp1db8q5mv3zq7bmk29l6ld9qp-ardour-5.12/lib/ardour5/engines/libclearlooks.so
and 
/gnu/store/7l5isavp1db8q5mv3zq7bmk29l6ld9qp-ardour-5.12-check/lib/ardour5/engines/libclearlooks.so
differ
Binary files 
/gnu/store/7l5isavp1db8q5mv3zq7bmk29l6ld9qp-ardour-5.12/lib/ardour5/libardour.so.3.0.0
and 
/gnu/store/7l5isavp1db8q5mv3zq7bmk29l6ld9qp-ardour-5.12-check/lib/ardour5/libardour.so.3.0.0
differ
Binary files 
/gnu/store/7l5isavp1db8q5mv3zq7bmk29l6ld9qp-ardour-5.12/lib/ardour5/libevoral.so.0.0.0
and 
/gnu/store/7l5isavp1db8q5mv3zq7bmk29l6ld9qp-ardour-5.12-check/lib/ardour5/libevoral.so.0.0.0
differ
Binary files 
/gnu/store/7l5isavp1db8q5mv3zq7bmk29l6ld9qp-ardour-5.12/lib/ardour5/LV2/a-comp.lv2/a-comp.so
and 
/gnu/store/7l5isavp1db8q5mv3zq7bmk29l6ld9qp-ardour-5.12-check/lib/ardour5/LV2/a-comp.lv2/a-comp.so
differ
Binary files 
/gnu/store/7l5isavp1db8q5mv3zq7bmk29l6ld9qp-ardour-5.12/lib/ardour5/LV2/a-eq.lv2/a-eq.so
and 
/gnu/store/7l5isavp1db8q5mv3zq7bmk29l6ld9qp-ardour-5.12-check/lib/ardour5/LV2/a-eq.lv2/a-eq.so
differ
Binary files 
/gnu/store/7l5isavp1db8q5mv3zq7bmk29l6ld9qp-ardour-5.12/lib/ardour5/LV2/a-fluidsynth.lv2/a-fluidsynth.so
and 
/gnu/store/7l5isavp1db8q5mv3zq7bmk29l6ld9qp-ardour-5.12-check/lib/ardour5/LV2/a-fluidsynth.lv2/a-fluidsynth.so
differ
Binary files 
/gnu/store/7l5isavp1db8q5mv3zq7bmk29l6ld9qp-ardour-5.12/lib/ardour5/LV2/reasonablesynth.lv2/reasonablesynth.so
and 
/gnu/store/7l5isavp1db8q5mv3zq7bmk29l6ld9qp-ardour-5.12-check/lib/ardour5/LV2/reasonablesynth.lv2/reasonablesynth.so
differ
--8<---cut here---end--->8---


All the best,
simon





bug#38163: GDK does not return the monitor's refresh rate

2019-11-15 Thread Marius Bakke
Alexandros Theodotou  writes:

> Hi Ludo,
>
>> We won’t make this change in ‘master’ because it entails too many
>> rebuilds, but it could go on the next branch for massive rebuilds. 
>
> Makes sense. I will be using my local gtk+ version for a while then
> until this change goes live.

Note that this change is already in the staging branch since commit
52b61e999101724c7e2d341586e9a6150614f208.

Unfortunately the branch has gone stale due to some Qt/qmake plugin
issues & I haven't had time to work on it.  I will try to find a
workaround this weekend, if nothing else, as only a handful packages are
affected.


signature.asc
Description: PGP signature


bug#21803: guitarix non-reproducible hard to reproduce

2019-11-15 Thread zimoun
Dear,

Resume:
The command "guix build guitarix" downloads from ci.guix.gnu.org.
Then "guix build guitarix --no-grafts -K --check" rebuilds locally.
The two differ of one symlink.

--8<---cut here---start->8---
diff -r --no-dereference
/gnu/store/16g7l26rpwhza7fm5jm3lz1ycavky9yl-guitarix-0.38.1
/gnu/store/16g7l26rpwhza7fm5jm3lz1ycavky9yl-guitarix-0.38.1-check
File /gnu/store/16g7l26rpwhza7fm5jm3lz1ycavky9yl-guitarix-0.38.1/lib/libgxw.so
is a symbolic link while file
/gnu/store/16g7l26rpwhza7fm5jm3lz1ycavky9yl-guitarix-0.38.1-check/lib/libgxw.so
is a regular file
--8<---cut here---end--->8---


Inspect:

After more than 10 attempts to reproduce the behaviour where the plain
binary is replaced by the symlink, it never happens locally, so I
conclude that the bug is really hard to track. Kind of bad luck. :-)


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')".


Basically, the output of "--check" is:

--8<---cut here---start->8---
[...]
* installing build/default/libgxw/gxw/libgxw.so as
/gnu/store/16g7l26rpwhza7fm5jm3lz1ycavky9yl-guitarix-0.38.1/lib/libgxw.so.0.1
* symlink 
/gnu/store/16g7l26rpwhza7fm5jm3lz1ycavky9yl-guitarix-0.38.1/lib/libgxw.so.0
(-> libgxw.so.0.1)
* symlink 
/gnu/store/16g7l26rpwhza7fm5jm3lz1ycavky9yl-guitarix-0.38.1/lib/libgxw.so
(-> libgxw.so.0.1)
* installing build/default/libgxw/gxw/libgxw.so as
/gnu/store/16g7l26rpwhza7fm5jm3lz1ycavky9yl-guitarix-0.38.1/lib/libgxw.so
* installing build/default/libgxwmm/gxwmm/libgxwmm.so as
/gnu/store/16g7l26rpwhza7fm5jm3lz1ycavky9yl-guitarix-0.38.1/lib/libgxwmm.so.0.1
[...]
--8<---cut here---end--->8---


Here the step (3rd *) "symlink
/gnu/store/...-guitarix-0.38.1/lib/libgxw.so (-> libgxw.so.0.1)" is
overridden by the next one "installing
build/default/libgxw/gxw/libgxw.so as
/gnu/store/...-guitarix-0.38.1/lib/libgxw.so".


Replaying with "guix environment guitarix" then from
"/tmp/guix-build-guitarix-0.38.1.drv-0", the classical "./waf
configure --prefix=install" and "./waf build" "./waf install". In this
case, one symlink is not done and the other one is overriden by the
next step.

--8<---cut here---start->8---
[...]
* installing build/default/libgxw/gxw/libgxw.so as
/tmp/guix-build-guitarix-0.38.1.drv-0/guitarix-0.38.1/install/lib/libgxw.so.0.1
* symlink 
/tmp/guix-build-guitarix-0.38.1.drv-0/guitarix-0.38.1/install/lib/libgxw.so
(-> libgxw.so.0.1)
* installing build/default/libgxw/gxw/libgxw.so as
/tmp/guix-build-guitarix-0.38.1.drv-0/guitarix-0.38.1/install/lib/libgxw.so
* installing build/default/libgxwmm/gxwmm/libgxwmm.so as
/tmp/guix-build-guitarix-0.38.1.drv-0/guitarix-0.38.1/install/lib/libgxwmm.so.0.1
[...]
--8<---cut here---end--->8---


Interestingly, the 3 last-last evaluations by Cuirass is of the kind "--check".

https://ci.guix.gnu.org/build/1818089/details
https://ci.guix.gnu.org/build/1871705/details
https://ci.guix.gnu.org/build/1903552/details

Therefore, if we were comparing on November 3rd, we would conclude
differently. ;-)


However, the last evaluation is creating the symlink without overriding it.

https://ci.guix.gnu.org/build/1920646/details

--8<---cut here---start->8---
[...]
* installing build/default/libgxw/gxw/libgxw.so as
/gnu/store/16g7l26rpwhza7fm5jm3lz1ycavky9yl-guitarix-0.38.1/lib/libgxw.so.0.1
* symlink 
/gnu/store/16g7l26rpwhza7fm5jm3lz1ycavky9yl-guitarix-0.38.1/lib/libgxw.so.0
(-> libgxw.so.0.1)
* symlink 
/gnu/store/16g7l26rpwhza7fm5jm3lz1ycavky9yl-guitarix-0.38.1/lib/libgxw.so
(-> libgxw.so.0.1)
* installing build/default/libgxwmm/gxwmm/libgxwmm.so as
/gnu/store/16g7l26rpwhza7fm5jm3lz1ycavky9yl-guitarix-0.38.1/lib/libgxwmm.so.0.1
[...]
--8<---cut here---end--->8---



Well, even this bug is annoying speaking about reproducibility --
because it it not the *exact* same installation -- it is mitigated by
the fact that the same binary is symlinked or not. I will revisit this
bug when WAF will fully use Python 3.


All the best,
simon





bug#37939: guix-install.sh: Fails to detect signing key on Debian10.

2019-11-15 Thread Kai Mertens
On Sun, 27 Oct 2019 05:15:17 -0700
Bengt Richter  wrote:

> Hi again Kai,
> 
> On +2019-10-27 09:59:39 +0100, Kai Mertens wrote:
> > Dear GNU Guix developers,
> > 
> > [...]
> >  
> 
> man sudo ;-)

Oops.

> 
> specifically the -i option
> 
> I think if you are a "sudoer" plain sudo switches you to root,
> but keeps the environment you were in, with PATH etc, 
> but sudo -i will set the environment as if you logged in as root.
> 
> try "sudo set" and compare with "sudo -i set" 
> (or env in place of set)

Well, I tried "sudo --preserve-env ./guix-install.sh" on debian10, that
seems to work fine and the key in the sudoer’s keyring is detected. On
trisquel, I am used to use plain sudo instead.

Anyway – it is of course not a bug of the guix script. Maybe a usage
hint within the guix documentation in section 2.1 would be nice?

Thanks for your help,
best regards
Kai

-- 
Kai Mertens 
OpenPGP Key-ID: 0x40B15AB4B05B5BF1 on keys.gnupg.net
Key fingerprint = 7C83 0A80 01FF 679C 6E8E  AFD3 40B1 5AB4 B05B 5BF1
What is that? Please check: https://emailselfdefense.fsf.org/en/



pgpwbpVpnol34.pgp
Description: OpenPGP digital signature


bug#38226: guix pull: error: build failed: [...] ice-9/boot-9.scm:109:20: Syntax error:

2019-11-15 Thread Kai Mertens
Dear Guix Developers,

unfortunately, I do not manage to update my outdated GNU Guix version
via

  “sudo -i guix pull -c0”.

The command fails with the listed message after being executed for
about 16hours. I tried it three times, on different days. The most
recent one was yesterday.

In difference to a recently posted failure, this time...
* my /tmp partition has enough space available (>12GB)
* and guix is substituting from https://ci.guix.gnu.org

I would very much apreciate if you find the time to investigate this
bug. I hope it is one, as I don't want to spoil the mailing list with
just personal obstacles in respect to guix usage.

What kind of information shall I provide, else?

The command “sudo -i guix --version” gives me:
  guix (GNU Guix) 20170703.13

I would have tried to update guix in smaller steps, but option
  “pull --commit”
is not available.

~~~

[...]
grafting '/gnu/store/nk1w9h9998w5vyj6zw3h37idmm8c7xsd-guile-2.0.14-debug' -> 
'/gnu/store/1xbphq9bpylnv46y1dmax5866nbvxyjm-guile-2.0.14-debug'...
grafting '/gnu/store/brn8kcdv4xyjn445540zmpvawyzb4c38-guile-2.0.14' -> 
'/gnu/store/prq1xm7fp9dzp7whw8742djw4vsrsd4f-guile-2.0.14'...
ice-9/boot-9.scm:109:20: In procedure #:
ice-9/boot-9.scm:109:20: Syntax error:
unknown location: unexpected syntax in form current-imported-modules
builder for 
`/gnu/store/qrsd2qvaj52fqsywdwlcrh6366gasiff-module-import-compiled.drv' failed 
with exit code 1
cannot build derivation 
`/gnu/store/agyip2r3ars2yxjxnm3s3jlh4q5fjcpk-compute-guix-derivation.drv': 1 
dependencies couldn't be built
guix pull: error: build failed: build of 
`/gnu/store/agyip2r3ars2yxjxnm3s3jlh4q5fjcpk-compute-guix-derivation.drv' failed

~~~

best regards
Kai


-- 
Kai Mertens 
OpenPGP Key-ID: 0x40B15AB4B05B5BF1 on keys.gnupg.net
Key fingerprint = 7C83 0A80 01FF 679C 6E8E  AFD3 40B1 5AB4 B05B 5BF1
What is that? Please check: https://emailselfdefense.fsf.org/en/



pgpCBs0pBT_V5.pgp
Description: OpenPGP digital signature


bug#37865: guix pull: error: You found a bug:

2019-11-15 Thread Kai Mertens
On Sun, 27 Oct 2019 04:52:14 -0700
Bengt Richter  wrote:

> My bet is you'll revert your workarounds, do a guix pull and maybe guix 
> update for good measure,
> then guix install glibc-utf8-locales (unless you have an exotic locale, in 
> which case you may need
> to do guix install glibc-locales) then reboot, and hopefully the locale 
> complaints will be gone.

Hi Bengt,

hmm, yes, this is exactly what I did. I reverted my workarounds, but
found some constraints that I was not aware of, see list below.

(This applies to
  guix describe (GNU Guix) 7696af421b9fa05f479cda9c742883a99e6faec3
on top of trisquel or debian.)


1) File ~/.profile is not read by bash in case file ~/.bash_profile is
present. As a result, some settings were skipped when I used the latter
file to define environment variables. Now I set GUIX_PROFILE and source
$GUIX_PROFILE/etc/profile (as suggested by guix) within ~/.profile.
This works fine.

2) Additionally, I have to explicitly define more standard content for
XDG_DATA_DIRS (as like “/usr/share” and “/usr/local/share”) when
sourcing the guix profile environment as with 1). This is essential,
otherwise my graphic login won't work. I don't understand why, though.

3) In order to get rid of "guile: warning: failed to set locale" with
commands like “guix package -I”, I install matching versions of
glibc-locales (or glibc-utf8-locales) *and* glibc. Having only the
locales package installed is not sufficient. This might be obvious for
experienced users, but I myself was not aware of that ANDed condition.

4) Furthermore, with an old initial version of guix, PATH needs to
point to “$HOME/.config/guix/current/bin” to make sure that I am running
the latest version of guix. Otherwise the locale complains will be back.


This concept of environment variables confused me in the beginning, but
now I start to get more familiar.

best regards
Kai


-- 
Kai Mertens 
OpenPGP Key-ID: 0x40B15AB4B05B5BF1 on keys.gnupg.net
Key fingerprint = 7C83 0A80 01FF 679C 6E8E  AFD3 40B1 5AB4 B05B 5BF1
What is that? Please check: https://emailselfdefense.fsf.org/en/



pgpFO_zITpIxQ.pgp
Description: OpenPGP digital signature