Re: Inkscape 1.0 segfault when trying to bring up file chooser

2020-06-14 Thread Maxim Cournoyer
Hello Thorsten,

Thorsten Wilms  writes:

> Hi!
>
> Guix last updated yesterday, on top of Ubuntu. Triggering ‘Save as’ in
> Inkscape leads to:
> ```
> (org.inkscape.Inkscape:5125): GLib-GIO-ERROR **:
> 11:56:37.434: Settings schema 'org.gtk.Settings.FileChooser' does not
> contain a key named 'show-type-column' Trace/breakpoint trap (core
> dumped)
> ```

[...]

The problem should be fixed with commit 1afa2c5ca0.  Inkscape 1.0 is now
wrapped with the XDG_DATA_DIRS and other relevant environment variables
set.  The package was not using the 'glib-or-gtk-wrap from the
glib-or-gtk+-build-system, which caused the problem.

Users which had gtk+ propagated to their user profile (or system profile
on Guix System) would not see the issue triggered (I didn't myself!).

Thank you for the report!

Maxim



Re: Guix completion in Emacs

2020-06-14 Thread Fredrik Salomonsson


Hi,

Ricardo Wurmus  writes:

> This works for me.
>
> $ guix describe
> Generation 47 6月 05 2020 23:22:46 (current)
>   guix ecab53c
> repository URL: https://git.savannah.gnu.org/git/guix.git
> branch: master
> commit: ecab53c320b1584a08f811b17a92bd9a50a50ff3
>
> $ readlink -f $(which emacs)
> /gnu/store/vx8fzbwb4cw8dlh760y2336sd2pw0kvy-emacs-26.3/bin/emacs

I'm getting the same error. On a foreign distro with emacs-next.

$ guix describe
Generation 7jun 12 2020 17:14:42(current)
  guix 9ae4bd0
repository URL: https://git.savannah.gnu.org/git/guix.git
branch: master
commit: 9ae4bd0b77db21d3e352560511d974bcc15df5db
$ readlink -f $(which emacs)
/gnu/store/8z8wnqjy9frxpvpg7jzlj5v77yy20fhn-emacs-next-27.0.91-0.c36c5a3/bin/emacs

-- 
s/Fred[re]+i[ck]+/Fredrik/g



Re: Guix completion in Emacs

2020-06-14 Thread Ricardo Wurmus


Hi Kyle,

> I am unable to conditional tab completion of Guix commands when in
> shell-mode or eshell-mode in Emacs. In other words, I can tab-complete
> the major modules e.g. ~guix package~, but cannot tab complete
> ~--arguments~ to them. When I try I see an error:
>
>   guix-geiser-eval: Error in evaluating guile expression: 
> ice-9/boot-9.scm:1669:16: In procedure raise-exception:
>   error: help-string: unbound variable
>
> Certainly this stuff isn't broken for everyone, is it?

This works for me.

$ guix describe
Generation 47   6月 05 2020 23:22:46 (current)
  guix ecab53c
repository URL: https://git.savannah.gnu.org/git/guix.git
branch: master
commit: ecab53c320b1584a08f811b17a92bd9a50a50ff3

$ readlink -f $(which emacs)
/gnu/store/vx8fzbwb4cw8dlh760y2336sd2pw0kvy-emacs-26.3/bin/emacs

-- 
Ricardo



Guix completion in Emacs

2020-06-14 Thread Kyle Andrews


Hello Everyone,

I am unable to conditional tab completion of Guix commands when in
shell-mode or eshell-mode in Emacs. In other words, I can tab-complete
the major modules e.g. ~guix package~, but cannot tab complete
~--arguments~ to them. When I try I see an error:

  guix-geiser-eval: Error in evaluating guile expression: 
ice-9/boot-9.scm:1669:16: In procedure raise-exception:
  error: help-string: unbound variable

Certainly this stuff isn't broken for everyone, is it?



Re: How configure my desktop to use a static ip address?

2020-06-14 Thread Kyle Andrews


Thanks to generous help from several people in the #guix IRC channel, I
learned that the trick I was missing was that I could actually use
Network Manager to setup a static IP once the router has been configured
to reserve it.  This generates a ~*.nmconnection~ configuration file
into:

: /etc/NetworkManager/system-connections

Then a simple-service etc-service can be added to the services list in
~/etc/config.scm~ to make that reproducible. I still need to figure out
exactly how to do that, but I have some leads.

guix-vits suggested that to simplify the generation of the configuration
file in /etc, I could store the file alongside ~/etc/config.scm~ and
reference it using some code like: 

  (define (cat-file path)
(use-modules (ice-9 textual-ports))
(with-input-from-file path (lambda _ (get-string-all 
(current-input-port)

  (define %nm-static-connection (cat-file 
"/etc/nm-static-profile.nmconnection"))

  (operating-system
...
(services
(cons*
   (simple-service 'nm-static-connection
   etc-service-type
 
`(("NetworkManager/system-connections/nm-static-profile.nmconnection"
,%nm-static-connection
 ...))

I haven't tested it quite yet, but it makes some sense to me. If you
think this is not exactly the right approach, please let me
know.

Kyle Andrews writes:

> Dear Guix,
>
> I would like to setup my desktop computer so that I can easily
> synchronize it with my laptop via ssh and sshfs. Ideally, I would like
> to be able to do this from anywhere in the world behind
> e.g. AirVPN. However, honestly I know next to nothing about
> networking. So, I'm looking for guidance on how I can get there from
> here. Hopefully, you can help me and others who are looking to setup
> something similar.
>
> I've managed to setup the openssh-service which allows me to connect via
> SSH to my desktop on my local network if I go over to it and type ~ip
> address~ to learn the current IP address assigned to it. However,
> frequently I run into this scary message when trying to connect:
>
> @@@
> @WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
> @@@
> IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
>
> While I have gotten into the routine of editing ~/.ssh/known_hosts and
> deleting the previous entry, I would like to resolve the issue for
> good. From my reading I think the best way to do that would be to set up
> a static IP for my desktop. I think to do that I need to . Do I need to 
> modify my /etc/config.scm to use
> static-networking-service? If so, how? Do I also need to modify my
> router configuration?




Re: error setting console font in system.scm

2020-06-14 Thread John Soo
Hi Fulbert,

Fulbert  writes:

>   For this to work though, I just had to correct a typo : add a `comma`
> (to _unquote_, if I'm not wrong) before the `(file-append …`.
> So, for reference :
> 
> ;; At the top of the file
> (use-modules
>   ...
>   (ice-9 match))
>
> ;; Replace %desktop-services with this:
> (modify-services %desktop-services
>   (console-font-service-type configuration =>
> (map
>   (match-lambda
> (("tty3" . f)
>   `("tty3" . ,(file-append
> font-terminus
> "/share/consolefonts/ter-128n.psf.gz")))
> ((tty . font) `(,tty . ,font))) configuration)))
> 

Ah, good catch. HTH!

- John



Re: error setting console font in system.scm

2020-06-14 Thread Fulbert
On Sat, Jun 13, 2020 at 09:18:18PM -0700, John Soo wrote:
> Hello Fullbert,
> 
> Fulbert  writes:
> 
> >   Trying to change console font with the following in "services" section
> > of my system configuration file :
> >
> > 
> > …
> >   (services (append (list
> > …
> > (service console-font-service-type
> >   `(("tty3" . ,(file-append font-terminus 
> > "/share/consolefonts/ter-128n"
> >   ) %desktop-services))
> > …
> > 
> >
> > which results in the following error when reconfiguring the system :
> >
> > 
> > $ sudo guix system --dry-run reconfigure /etc/config.scm
> > guix system: error: service 'console-font-tty3' provided more than once
> > 
> 
> This is because there is already a console-font-service-type in
> %desktop-services. […]You will need to modify the existing service instead
> like below. Note I have not tested this myself but something like it can be
> found in the documentation of guile association lists
> 
> https://www.gnu.org/software/guile/manual/html_node/Adding-or-Setting-Alist-Entries.html
> 
> ;; At the top of the file
> (use-modules
>   ...
>   (ice-9 match))
> 
> ;; Replace %desktop-services with this:
> 
> (modify-services %desktop-services
>   (console-font-service-type
> configuration =>
> (map
>   (match-lambda
> (("tty3" . f)
>   `("tty3" . (file-append font-terminus 
> "/share/consolefonts/ter-128n")))
> ((tty . font) `(,tty . ,font)))
>   configuration)))
> 
> >   I probably missunderstand something and/or ill-format the
> > configuration…?… Help appreciated.
> 
> No problem. The error message is saying that such a service would
> conflict with the existing one. The aim of the snippet is to keep the
> other tty fonts and update the one on tty3.
> 
> Hope that helps!

  Indeed! It works now. Thank you for your Help John !

  For this to work though, I just had to correct a typo : add a `comma`
(to _unquote_, if I'm not wrong) before the `(file-append …`.
So, for reference :

;; At the top of the file
(use-modules
  ...
  (ice-9 match))

;; Replace %desktop-services with this:
(modify-services %desktop-services
  (console-font-service-type configuration =>
(map
  (match-lambda
(("tty3" . f)
  `("tty3" . ,(file-append
font-terminus
"/share/consolefonts/ter-128n.psf.gz")))
((tty . font) `(,tty . ,font))) configuration)))




Re: BPF in linux-libre

2020-06-14 Thread John Soo
Hi Mathieu,

Mathieu Othacehe  writes:

> Now, it's just a matter of packaging "bcc" and "bpftrace" I guess.

I was working on these yesterday. I keep getting errors that seem to
indicate the linux-libre-headers we have might not be compatible:

Here's my definition:

(define-public bcc
  (let* ((ver "0.14.0")
 (commit (string-append "v" ver)))
(package
  (name "bcc")
  (version ver)
  (source
   (origin
 (method git-fetch)
 (uri (git-reference
   (url "https://github.com/iovisor/bcc;)
   (commit commit)))
 (file-name (git-file-name name ver))
 (sha256
  (base32
   "08m21avzamr48qwshd4r5hlcckk1kvgrb1i6qw373b7la89jf5an"
  (build-system cmake-build-system)
  (inputs
   `(("bison" ,bison)
 ("clang-toolchain" ,clang-toolchain)
 ("flex" ,flex)
 ("libbpf" ,libbpf)
 ("libelf" ,libelf)
 ("linux-libre-headers" ,linux-libre-headers)
 ("python-wrapper" ,python-wrapper)))
  (arguments
   `(#:parallel-build? #f
 #:configure-flags
 (list
  (string-append
   "-DLIBBPF_INCLUDE_DIR=" (assoc-ref %build-inputs "libbpf") 
"/include"
  (home-page "https://github.com/iovisor/bcc;)
  (synopsis "Tools for BPF on Linux")
  (description
   "BCC is a toolkit for creating efficient kernel tracing and
manipulation programs, and includes several useful tools and examples.  It
makes use of extended BPF (Berkeley Packet Filters), formally known as eBPF, a
new feature that was first added to Linux 3.15.  Much of what BCC uses requires
Linux 4.1 and above.")
  (license license:asl2.0

I get a lot of errors that certain things are undefined.  I am guessing
the names should be available in the linux headers?

/tmp/guix-build-bcc-0.14.0.drv-0/source/src/cc/libbpf.c:694:58: error: 
‘BPF_PROG_TYPE_EXT’ undeclared (first use in this function); did you mean 
‘BPF_PROG_TYPE_XDP’?
   if (prog_type != BPF_PROG_TYPE_TRACING && prog_type != BPF_PROG_TYPE_EXT)
  ^
  BPF_PROG_TYPE_XDP

The bcc github releases seem to indicate that bcc supports kernels up to
5.6.

I also defined libbpf (included as a submodule) like this:

(define-public libbpf
  (let* ((commit "6a1615c263b679c17ecb292fa897f159e826dc10"))
(package
  (name "libbpf")
  (version "0.0.8")
  (source
   (origin
 (method git-fetch)
 (uri (git-reference
   (url "https://github.com/libbpf/libbpf;)
   (commit commit)))
 (sha256
  (base32
   "02vbpg9v5sjcw7ihximy63cjmz82q5izkp91i44m1qp6qj5qn4sr"
  (build-system gnu-build-system)
  (inputs
   `(("libelf" ,libelf)
 ("pkg-config" ,pkg-config)
 ("zlib" ,zlib)))
  (arguments
   `(#:tests? #f ; No tests
 #:make-flags
 (list
  (string-append "PREFIX=''")
  (string-append "DESTDIR=" (assoc-ref %outputs "out"))
  (string-append
   "CC=" (assoc-ref %build-inputs "gcc") "/bin/gcc"))
 #:phases
 (modify-phases %standard-phases
   (delete 'configure)
   (add-before 'build 'pre-build
 (lambda* (#:key inputs #:allow-other-keys)
   (substitute* "scripts/check-reallocarray.sh"
 (("/bin/rm" rm)
  (string-append (assoc-ref inputs "coreutils") rm)))
   (chdir "src")
   #t)
  (home-page "https://github.com/libbpf/libbpf;)
  (synopsis "BPF CO-RE (Compile Once – Run Everywhere)")
  (description
   "Libbpf supports building BPF CO-RE-enabled applications, which, in
contrast to BCC, do not require Clang/LLVM runtime being deployed to target
servers and does not rely on kernel-devel headers being available.")
  (license `(,license:lgpl2.1 ,license:bsd-2)

I'm not sure where to go from here.

Thanks for the help!

- John



Inkscape 1.0 segfault when trying to bring up file chooser

2020-06-14 Thread Thorsten Wilms
Hi!

Guix last updated yesterday, on top of Ubuntu. Triggering ‘Save as’ in
Inkscape leads to:
```
(org.inkscape.Inkscape:5125): GLib-GIO-ERROR **:
11:56:37.434: Settings schema 'org.gtk.Settings.FileChooser' does not
contain a key named 'show-type-column' Trace/breakpoint trap (core
dumped)
```
I assume this started happening with the update to Inkscape 1.0; in
either case the issue is only a few days old.

Various search hits point to 
/usr/share/glib-2.0/schemas/org.gtk.Settings.FileChooser.gschema.xml

```
~: echo $XDG_DATA_DIRS
/home/thorwil/.guix-profile/share:/home/thorwil/.guix-profile/share:/usr/share/unity:/usr/local/share/:/usr/share/
```

If I set XDG_DATA_DIRS to "", inkscape won’t even
start. If I set it to just /home/thorwil/.guix-profile/share, it starts
and crashes on Save_As, same as now.

All store items for org.gtk.Settings.FileChooser.gschema.xml do have
a :
```
/gnu/store: find -name "*FileChooser.gschema*" | \
xargs grep show-type-column
./vgg2r0yzwwbhyxvd8lj2kwyw9779pjfk-gtk+-3.24.14/share/glib-2.0/schemas/org.gtk.Settings.FileChooser.gschema.xml:
 
./zflpysfv6b5x9hvccds0m38x3bmzzdb3-gtk+-3.24.14/share/glib-2.0/schemas/org.gtk.Settings.FileChooser.gschema.xml:
 
./mvdb71lvrqgzx6b3kd3fnqpnak8394hm-gtk+-3.24.14/share/glib-2.0/schemas/org.gtk.Settings.FileChooser.gschema.xml:
 
./q3crl46igvsb10if6z7ffn165pkr74s1-gtk+-3.24.14/share/glib-2.0/schemas/org.gtk.Settings.FileChooser.gschema.xml:
 
./xhdrc9viz956hj2a3gjlbi0gfvfbnwjd-gtk+-3.24.14/share/glib-2.0/schemas/org.gtk.Settings.FileChooser.gschema.xml:
 
./mqjdi2b0jf4jwj9g5lbn2wdip4dnqgdh-gtk+-3.24.14/share/glib-2.0/schemas/org.gtk.Settings.FileChooser.gschema.xml:

```

Checking the links below .guix-profile, I note there is no
org.gtk.Settings.FileChooser.gschema.xml, but there is
gschemas.compiled:
```
~/.guix-profile/share: ls -l glib-2.0/schemas/total 20 lrwxrwxrwx 2
root root  91 Jan  1  1970 gschema.dtd
-> 
/gnu/store/5v9bxzzxbp68c5g6vvvlaq1ddq39bkrf-glib-schemas/share/glib-2.0/schemas/gschema.dtd
lrwxrwxrwx 2 root root  97 Jan  1  1970 gschemas.compiled
-> 
/gnu/store/5v9bxzzxbp68c5g6vvvlaq1ddq39bkrf-glib-schemas/share/glib-2.0/schemas/gschemas.compiled
lrwxrwxrwx 2 root root 118 Jan  1  1970
org.gnome.gnumeric.dialogs.gschema.xml
-> 
/gnu/store/5v9bxzzxbp68c5g6vvvlaq1ddq39bkrf-glib-schemas/share/glib-2.0/schemas/org.gnome.gnumeric.dialogs.gschema.xml
lrwxrwxrwx 2 root root 110 Jan  1  1970 org.gnome.gnumeric.gschema.xml
-> 
/gnu/store/5v9bxzzxbp68c5g6vvvlaq1ddq39bkrf-glib-schemas/share/glib-2.0/schemas/org.gnome.gnumeric.gschema.xml
lrwxrwxrwx 2 root root 117 Jan  1  1970
org.gnome.gnumeric.plugin.gschema.xml
-> 
/gnu/store/5v9bxzzxbp68c5g6vvvlaq1ddq39bkrf-glib-schemas/share/glib-2.0/schemas/org.gnome.gnumeric.plugin.gschema.xml
```

There are a bunch of string visible in the binary file
gschemas.compiled, ‘show-type-column’ or similar does not apear.

Is the issue perhaps that gschemas.compiled would have had to be
rebuilt, but wasn’t?

I considered trying to symlink an org.gnome.gnumeric.gschema.xml, but I
don’t see how to figure out which of the 5 store items it should be.


-- 
Thorsten Wilms 



Re: BPF in linux-libre

2020-06-14 Thread Mathieu Othacehe


Hello John,

> I was in the mood to try some of these new bpf tools. Does the linux libre 
> kernel support it?

Yes it should support it, plus according to this[1], we have the right
Kernel configuration (except maybe for CONFIG_BPF_JIT).

Now, it's just a matter of packaging "bcc" and "bpftrace" I guess.

Thanks,

Mathieu

[1]: https://github.com/iovisor/bcc/blob/master/INSTALL.md