Re: Clangd does not work with either Clang or GCC

2025-04-05 Thread Greg Hogan
On Fri, Mar 21, 2025 at 9:53 AM aneris via  wrote:
>
> Hello Guix,
>
> I have been trying to setup a C++ development environment in Guix,
> however clangd has been very annoying.
>
> The simple hello world in C++
>
> ```
>
> #include 
>
> int main() {
>
>std::cout << "Hello World";
>
> }
>
> ```
>
> Has clangd (in Emacs) complaining about the  line that,
>
> `clang: [unknown-typename] in included file: unknown type name
> _GLIBCXX23_CONSTEXPR`,
>
> followed by it supposedly quitting due to too many errors (it doesn't
> actually quit).
>
> Here is the compile_commands.json generated by cmake
>
> ```
>
> [
>
> {
>
>"directory": "/home/hikari/opt/cpp/calc/build",
>
>"command":
> "/gnu/store/l10q8ps24x4d9fdxl3iwpsg5xfs9kgnz-profile/bin/c++
> -std=gnu++20 -o CMakeFiles/calc.dir/src/main.cpp.o -c
> /home/hikari/opt/cpp/calc/src/main.cpp",
>
>"file": "/home/hikari/opt/cpp/calc/src/main.cpp",
>
>"output": "CMakeFiles/calc.dir/src/main.cpp.o"
>
> }
>
> ]⏎
>
> ```
>
> And the shell environment I am using
>
> ```
> (specifications->manifest
>(list "gcc-toolchain"
>  "cmake"
>  "clang"
>  "gdb"
>  "direnv"
>  "bash"
>  "coreutils"
>  "util-linux"
>  "git"
>  "make"))
> ```
>
> Swapping gcc-toolchain out with clang-toolchain and regenerating the
> compile_commands.json doesn't do anything either. Any ideas?

Your manifest builds clang with the default version of gcc-toolchain,
currently gcc@11, so you'll need to replace "gcc-toolchain" with
"gcc-toolchain@11" in your manifest.

It's also possible to use package input rewriting, although this
currently only works up to gcc 13 and clang 18.

And the core-packages-team branch is updating the default to gcc 14,
so today you can run
guix time-machine --branch=core-packages-team -- shell
--manifest=manifest.scm

And then with the next gcc release we'll be back to package input
rewriting (or if you are not concerned about reproducibility, you can
simply edit a checkout of the Guix codebase).



Re: setting MTU for guix pull only

2025-04-05 Thread Felix Lechner via
Hi Andy,

On Wed, Mar 19 2025, Andy Tai wrote:

> is there any way to set the MTU for only the guix pull process so I
> don't have to change the network interface MTU system wide?

I'm not an expert but believe "It can not be set dynamically depending
on communication partner." [1]

> Some previous message in this GNU Guix mailing list

I was not able to locate that message.  Maybe this bug report is also
relevant. [2] If you are using a tunnel or a VPN, you may wish to reduce
the MTU system-wide (but I use neither).

Kind regards
Felix

[1] https://askubuntu.com/a/1469991
[2] https://issues.guix.gnu.org/71238



Re: adding Samba to config.scm

2025-04-05 Thread Roman Riabenko via
Hello, Gottfried!

On Mon, 2025-03-31 at 12:58 +, gfp wrote:
> It always says:
> Benötigt: user-processes networking
> English: user-processes networking is required
> 
> what that means and what do I have to do - I don´t know

That line is informational. It does not indicate an error. It says
that, before starting the service, the service manager makes sure that
the networking service is running well first. The networking service is
provided by NetworkManager. You can check that there is no reported
issues with it by running "sudo herd status networking".

Roman


signature.asc
Description: This is a digitally signed message part


Re: A silly concern about substitute servers

2025-04-05 Thread Christopher Baines
Pan Xie  writes:

> 1. Does a substitute server keeps all the packages it build? If the
> answer is yes, won't it consume huge storage resources? If the answer
> is no, then the user who use time-machine travel back to
>
>     years before have to build all the packages from scratch?

For the bordeaux build farm [1], the answer is yes, ignoring some things
going wrong, everything that has been built has been kept. Note that the
bordeaux build farm has only been around for the last 4 to 5 years, and
won't have substitutes for Guix revisions before that (although this
could change in the future).

There are some public stats about this [2], but it needs to be displayed
in a nice way. There are nearly 8 million nars, which take up around
26TiB of space. The project makes use of two copies of these nars, one
which I host and another hosted at the MDC.

1: https://bordeaux.guix.gnu.org/
2: https://bordeaux.guix.gnu.org/metrics

Note that I do actually want to start removing nars, but only nars which
aren't relevant to the master branch. Since the bordeaux build farm
builds branches and patches, it's not helpful to store nars for these
builds indefinitely, unless of course they're relevant to the master
branch.

> 2. If I am going to create a mirror of guix's official substitute
> server, what is the requirement of the storage?

If you want to store all the bordeaux nars, then you'd need at least
26TiB, but for running the mirrors listed on bordeaux.guix.gnu.org, they
operate as a caching reverse proxy. For that approach, you only need say
60GiB of space, enough for the nar-herder database plus a few cached
nars. If you want NGinx to cache more nars, then you simply increase the
space allotted.

> 3. Does a package really has lots of build on a substitute server? For
> example, emacs-29.1 has lots of inputs. I guess each time there is a
> commit to guix repository which change the inputs, there will be a
> build
>
>     of it, so there must be lots of emacs-29.1 builds, with different
> hash numbers. Or am I wrong?

Nope, you're right. If you want to explore the nar-herder database for
bordeaux.guix.gnu.org, you can download a dump of it here [3] (it's 19G
in size). You can also see the outputs changing over time through the
data service [4].

3: https://bordeaux.guix.gnu.org/latest-database-dump
4: 
https://data.guix.gnu.org/repository/1/branch/master/package/emacs/output-history


signature.asc
Description: PGP signature


Clangd does not work with either Clang or GCC

2025-04-05 Thread aneris via

Hello Guix,

I have been trying to setup a C++ development environment in Guix, 
however clangd has been very annoying.


The simple hello world in C++

```

#include 

int main() {

  std::cout << "Hello World";

}

```

Has clangd (in Emacs) complaining about the  line that,

`clang: [unknown-typename] in included file: unknown type name 
_GLIBCXX23_CONSTEXPR`,


followed by it supposedly quitting due to too many errors (it doesn't 
actually quit).


Here is the compile_commands.json generated by cmake

```

[

{

  "directory": "/home/hikari/opt/cpp/calc/build",

  "command": 
"/gnu/store/l10q8ps24x4d9fdxl3iwpsg5xfs9kgnz-profile/bin/c++ 
-std=gnu++20 -o CMakeFiles/calc.dir/src/main.cpp.o -c 
/home/hikari/opt/cpp/calc/src/main.cpp",


  "file": "/home/hikari/opt/cpp/calc/src/main.cpp",

  "output": "CMakeFiles/calc.dir/src/main.cpp.o"

}

]⏎

```

And the shell environment I am using

```
(specifications->manifest
  (list "gcc-toolchain"
"cmake"
"clang"
"gdb"
"direnv"
"bash"
"coreutils"
"util-linux"
"git"
"make"))
```

Swapping gcc-toolchain out with clang-toolchain and regenerating the 
compile_commands.json doesn't do anything either. Any ideas?


Guix social video: Self-hosting Forgejo in Guix using OCI container services

2025-04-05 Thread Steve George
Hi,

The video from the last guix.social has been published, check it out!

Giacomo Leidi talked about his Gocix project 
(https://github.com/fishinthecalculator/gocix), and showed how to use the 
`oci-service-type` to configure container-based (e.g. Docker / OCI) software 
using Guix's declarative configuration. It's pretty cool because it gives Guix 
users a way to run container-based software which is difficult to package, but 
still benefit from the reliability of configuration in Guix. He talked about 
Forgejo, and already has other services including Prometheus, Grafana and 
Bonfire.

Video is here:

https://youtu.be/MWwunOoj-PI

If you'd like to notified about upcoming Guix.social events you can register on 
the Wiki for page changes, or join the Meetup group that's linked from there:

https://libreplanet.org/wiki/Group:Guix/GuixSocial

And, if you're inspired by Giacomo's talk and would like to give a talk at 
guix.social - large or small - please get in touch, we'd love to have more 
talks from the community!

Cheers,

Futurile / Steve (on behalf of the Guix.social team)



'unattended-upgrade-service-type' operating

2025-04-05 Thread Hubert Lombard via
Hi Guix!

After adding 'unattented-upgrade-service-type' to my list of services,
the reconfiguration went well.

But it seems that the update, scheduled every Sunday at midnight, is
not taking place.

'guix system describe' only shows me the old one...

I thought it was my slow connection... Usually, despite the slowness,
manual updates are always successful.

And while doing some research, I came across this post by Maxim
Cournoyer explaining that the gexps previously provided in the
'schedule' field had changed and were no longer working :

https://lists.gnu.org/archive/html/guix-patches/2025-01/msg00157.html

But I didn't understand if a patch was applied... Don't know if it's
relevant...

Is there anything I can do to direct my search?

Thanks in advance :)

All the best

Hubert

System config:
https://debian-facile.org/utilisateurs:gonzoleri:config:configuration


OpenSMTP logging

2025-04-05 Thread Gabriel Wicki
Aloha, Howdy and Hello!

I'm setting up a Guix VM to host email services:
https://git.sr.ht/~gabber/teil-channel

Some messages get stuck in the queue with `smtpctl show queue` saying:

>  Network error on destination MXs

but I fail to find any information in the logs.  More specifically: I am
not even sure which log smtpd is supposed to log to.  There are some
basic (startup related) messages in /var/log/messages, some in
/var/log/debug and some in /var/log/maillog.  I would have suspected all
the relevant logging being passed to maillog, but this only holds
logging information of March 22 and 23 while /var/log/debug only has
some entries of today and yesterday.

I fail to see where to configure the logging for this service - any
ideas?  What am I doing wrong?

TIA
gabber



Re: Cannot open a MATE session on Trisquel after installing Gajim from Guix

2025-04-05 Thread Rutherther


Hello David,

David Lecompte  writes:

> Hello Guix,
>
> After I install Gajim from Guix on Trisquel (I have also icecat and a few
> other things installed from Guix), when I try opening a MATE session, I have
> the background screen for about 25 seconds, then a brief black screen and I
> am back to the session greeter.
>
> If I log in via a console, roll back to before I installed gajim, and then
> try opening a MATE session again, it works fine.
>
> When I log in with in a console, if gajim is installed, I have the following
> additional environment variables set (which are not set when gajim is not
> installed or I rolled back):
> GUIX_PYTHONPATH=/home/david/.guix-profile/lib/python3.10/site-package
> GIO_EXTRA_MODULES=/home/david/.guix-profile/lib/gio/modules
>
> I checked the journal and noticed the following:
>
> Starting Accessibility services bus...
> at-spi-bus-launcher[1410]: /usr/libexec/at-spi-bus-launcher: symbol lookup
> error: /home/david/.guix-profile/lib/gio/modules/libdconfsettings.so:
> undefined symbol: g_once_init_enter_pointer
> at-spi-dbus-bus.service: Main process exited, code=exited, status=127/n/a
> at-spi-dbus-bus.service: Failed with result 'exit-code'.
>
> I see that there is a libdconfsettings.so in /usr/lib/x86_64-linux-
> gnu/gio/modules/ which is from Trisquel. I am guessing that this at-spi-bis-
> launcher might be from Trisquel and due to the variable, it is trying to use
> libdconfsettings.so from Guix, which does not work and make it terminate.

Yes, version incompatibilities can make this happen unfortunately.
I don't think there is a good way to get around this kind of issues.

>
> However, I have no clue what role this at-spi-bus-launcher exactly has.
> Could its failure be why the MATE session fails to open?

Yes, it most likely is that, especially given that if you uninstall it,
everything is fine.

>
> How is GIO_EXTRA_MODULES set by Guix?

This is set by search paths, see (guix) Programming Interface > Search paths.
Specifically in this case, they are set by ~/.guix-profile/etc/profile,
and created according to the programs you have installed.

> Is it really needed for Gajim?

I think so, but gajim executable is actually wrapped with
GIO_EXTRA_MODULES, so it's not necessary to set it from the profile,
and ideally all programs from Guix should be wrapped like that.

>If so,
> is there a way to make this GIO_EXTRA_MODULES only visible to Guix
> executables and not affect Trisquel ones?

Yes, kinda, since the executable is wrapped, it will see that variable,
also all children will see it (so it's not really limited to it),
but that doesn't matter for gajim I think.

So to fix this, you should be able to just unset the variable in your
.profile (or shell equivalent) script, after you source the
~/.guix-profile. That is the easiest way, there would be other
ways by changing the guix packages so that there is no such search path
(or that glib is not propagated to your profile), but that would be
harder and you wouldn't be able to use guix install conveniently form cli.

Regards,
Rutherther



a contributor looking for support.

2025-04-05 Thread isf
Hello, I have worked as a translator for Guix, I have translated the GNU
Guix website into Spanish and other free software projects, such as the
FSF monthly bulletin and GNU Boot. I am writing this message to inform
that I am looking for financial support to continue with this and other
important works in favor of the free software movement, any donation
will always be welcome!

You can check my contribution to Guix in
https://translate.fedoraproject.org/user/isharefreedom/

With gratitude
-- 
Jordán
Miembro asociado a la Free Software Foundation y activista del
movimiento por el software libre.
https://libertysoftware.cl

Hazte cargo y defiende tu privacidad
https://emailselfdefense.fsf.org/es/infographic.html






Re: guix system: error: more than one target service 'dbus' when attempting to reconfigure sysctl values

2025-04-05 Thread Irfan S
softwarelibre--- via  writes:

> This happened after I tried reconfiguring my machine. I added:
>   
>  (modify-services %desktop-services
>  (delete gdm-service-type))
>    (modify-services %desktop-services
>  (sysctl-service-type config =>
>   (sysctl-configuration (settings (append 
> '(("fs.file-max" . "50")
>     
> ("net.ipv4.ip_forward" . "1")
>     
> ("fs.inotify.max_user_watches" . "524288"))
>    
> %default-sysctl-settings)


> To my desktop home configuration. But. After some time the command exits with 
> a message that's not very helpful:

By calling modify-services twice, you are inadvertently duplicating the list of 
services from %desktop-services. What if you try instead to put all the 
modifications you require in one such form?

#+begin_src
 (modify-services %base-services
  (delete gdm-service-type)
  (sysctl-service-type config => ...
  ))
#+end_src

See the example under ’System Services’ in the manual section ’Using the 
Configuration System’ for more clarity.

Cheers.
Irfan