Re: Clangd does not work with either Clang or GCC
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
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
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
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
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
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
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
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
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.
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
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