Thanks Owen. I used the .iso image in the QEMU install. I will Run `guix
gc -d` to delete all old generations. I have no need to rollback (yet!)
I'm not using VBox as I have in the past, wanting to using FOSS apps.
I'll keep track of disk usage. Luckily this is experimental and not a
production set-up.
On 3/18/24 04:48PM, Owen T. Heisler wrote:
> On 3/18/24 15:56, Brian O'Keefe wrote:
>> I've been installing and reinstalling the latest GUIX OS in AQEMU.
>
>> yesterday I got a warning from my Ubuntu host that my HD was
>> dangerously low.
>
>> I saw that my ~/.aqemu folder was packed and the culprit was the
>> virtual GUIX machine which had far exceeded its 25GB capacity.
>
> If you created a 25 GB hard drive with AQEMU (that's a QEMU front-end,
> right?), then the `guix.qcow2` hard drive image shouldn't get much
> bigger than 25 GB. However if AQEMU is using qcow2 snapshots, then the
> image will grow as much as necessary to keep all the snapshot data.
>
>> It also seems that with each "guix pull" or "guix refresh" or "guix
>> upgrade" more and more data is being stored.
> Run `guix gc -d` to delete all old generations. You will not be able
> to roll-back the Guix system to a previous generation once you have
> deleted it.
>
>> Why that affects my host OS, I don't know
> Yeah, that seems odd. The only thing that comes to my mind is qcow2
> snapshots as I mentioned above.
>
>
--
On 3/18/24 15:56, Brian O'Keefe wrote: > I've been installing and > reinstalling the latest GUIX OS in AQEMU. > yesterday I got a warning from > my Ubuntu host that my HD was dangerously low. > I saw that > my ~/.aqemu folder was packed and the culprit was the virtual GUIX > machine which had far exceeded its 25GB capacity. If you created a 25 GB hard drive with AQEMU (that's a QEMU front-end, right?), then the `guix.qcow2` hard drive image shouldn't get much bigger than 25 GB. However if AQEMU is using qcow2 snapshots, then the image will grow as much as necessary to keep all the snapshot data. > It also seems that with each "guix pull" or "guix refresh" or > "guix upgrade" more and more data is being stored. Run `guix gc -d` to delete all old generations. You will not be able to roll-back the Guix system to a previous generation once you have deleted it. > Why that affects my host OS, I don't know Yeah, that seems odd. The only thing that comes to my mind is qcow2 snapshots as I mentioned above.
Hello This is very probably simple but not for me. I've been installing and reinstalling the latest GUIX OS in AQEMU. Aside from tweaks needed to conform to the install instructions everything is mostly good. But that's after 8 install attempts! However, yesterday I got a warning from my Ubuntu host that my HD was dangerously low. So I jettisoned as much data as I could in a few minutes, including my several VMs. I saw that my ~/.aqemu folder was packed and the culprit was the virtual GUIX machine which had far exceeded its 25GB capacity. I managed to regain 48GB by deleting it and other data. I am wanting to run GUIX as a VM but this seems to be an issue as I just reinstalled it and just running a "reconfigure" to set my PATH I see that the VM has already swelled to over 20GB. It also seems that with each "guix pull" or "guix refresh" or "guix upgrade" more and more data is being stored. When packages are refreshed or repositories updated and then the system upgraded, aren't the old packages overwritten or dumped, or something? It looks like my new VM HD of 30GB will soon be filled. Why that affects my host OS, I don't know. I'd think that the host would just stay at whatever storage it has left if the VM HD fills up. Many thanks!! --
Hi Richard ! Le 2024-03-16T16:07:29.000+01:00, Richard Sent <richard@freakingpenguin.com> a écrit : > Hubert, > Your issue is in your operating-system services field. In the backtrace: > > --8<---------------cut here---------------start------------->8--- > > In procedure append: Wrong type argument in position 2 (expecting > > empty list) #<<service> type: #<service-type bluetooth ... > > --8<---------------cut here---------------end--------------->8--- > > You have several services outside of the (list) call, so you're > > basically running > > --8<---------------cut here---------------start------------->8--- > > (append (list (service-1 service-2) service-3 service-4 > > %desktop-services)) > > --8<---------------cut here---------------end--------------->8--- > > Append only takes lists as arguments. %desktop-services is a list, but > > bluetooth service and hurd-vm service are not. > > -- > > Take it easy, > > Richard Sent > > Making my computer weirder one commit at a time. Thank you :) while/after reading your answer, I have tried to change my config file by adding %base-services like it : /etc/config.scm --8<---------------cut here---------------start------------->8--- (services (append (list (service gnome-desktop-service-type) (service cups-service-type) (set-xorg-configuration (xorg-configuration (keyboard-layout keyboard-layout)))) ;; Voici la liste des services par défaut à laquelle nous ;; ajoutons nos propres services. %desktop-services)) (services (cons* (service bluetooth-service-type) (bluetooth-configuration (auto-enable? #t))) (service hurd-vm-service-type (hurd-vm-configuration (disk-size (* 10000 (expt 2 20))) ;10G (memory-size 1024))) ;1024MiB %base-services)) --8<---------------cut here---------------end--------------->8--- But I get error "invalid field specifier" $ sudo guix system reconfigure /etc/config.scm Mot de passe : /etc/config.scm:59:3: erreur : (services (cons* (service bluetooth-service-type) (bluetooth-configuration (auto-enable? #t))) (service hurd-vm-service-type (hurd-vm-configuration (disk-size (* 10000 (expt 2 20))) (memory-size 1024))) %base-services) : invalid field specifier Instead of putting the Hurd in %base-services (arbitrarily inserted by myself), maybe I should create a service like %define-my-service, or use (modify-services. These are 2 possibilities that I should be able to implement... To this end, I do research and the tests that go with it. It should come back to me, because I had already managed to modify effectively the configuration file on an old computer some time ago... If only I had kept a copy:) o/
Thanks for explanation.
So can I think of *guix pull* as an analogue to *nix flake update* or
*nix channel --update*, but with *nix-index* and *nix-env --upgrade
--attr nixpkgs.nix* or *nix profile upgrade nix* in addition?
On 18/03/2024 08:03, William wrote:
> On Sun, 17 Mar 2024 23:04:16 +0800
> rczb<rc-zb@outlook.com> wrote:
>
>> Installing a package with Guix shows a normal speed, while invoking
>> `guix pull` does not. Is it normal, or due to my own environment?
>>
>> # Networking
>>
>> Education network in Mainland China. Specify
>> `https://mirror.sjtu.edu.cn/git/guix.git` as a mirror for the Git
>> repo. No extra substituter.
>>
>> # Operating System
>>
>> ```
>>
>> Operating System: openSUSE Tumbleweed 20240315
>> KDE Plasma Version: 6.0.2
>> KDE Frameworks Version: 6.0.0
>> Qt Version: 6.6.2
>> Kernel Version: 6.7.9-1-default (64-bit)
>> Graphics Platform: Wayland
>> Processors: 16 × AMD Ryzen 7 7840H with Radeon 780M Graphics
>> Memory: 27.1 GiB of RAM
>> Graphics Processor: AMD Radeon Graphics
>> Manufacturer: LENOVO
>> Product Name: 21J2
>> System Version: ThinkBook 16 G5+ APO
>>
>> ```
>>
>> # Guix
>>
>> ```
>>
>> guix (GNU Guix) 5267c6073c3bdc6ba7874fc776c23c928f1ee263
>> Copyright (C) 2024 the Guix authors
>> License GPLv3+: GNU GPL version 3 or later
>> <http://gnu.org/licenses/gpl.html>
>> This is free software: you are free to change and redistribute it.
>> There is NO WARRANTY, to the extent permitted by law.
>>
>> ```
>>
>>
> Hello.
>
> It's totally normal and expected, and if Guix wasn't upgraded in a
> while (say, for example a month) it'll take even longer time. The
> reason being that it has to upgrade the Guix toolset and then fetch new
> commits directly from git repos and build a database with said commits,
> these databases contain all information required to replicate your
> current installed setup, building this database is the slow part of
> running pull.
>
> More info on guix pull:
> https://guix.gnu.org/manual/en/guix.html#Invoking-guix-pull
On Sun, 17 Mar 2024 23:04:16 +0800 rczb <rc-zb@outlook.com> wrote: > Installing a package with Guix shows a normal speed, while invoking > `guix pull` does not. Is it normal, or due to my own environment? > > # Networking > > Education network in Mainland China. Specify > `https://mirror.sjtu.edu.cn/git/guix.git` as a mirror for the Git > repo. No extra substituter. > > # Operating System > > ``` > > Operating System: openSUSE Tumbleweed 20240315 > KDE Plasma Version: 6.0.2 > KDE Frameworks Version: 6.0.0 > Qt Version: 6.6.2 > Kernel Version: 6.7.9-1-default (64-bit) > Graphics Platform: Wayland > Processors: 16 × AMD Ryzen 7 7840H with Radeon 780M Graphics > Memory: 27.1 GiB of RAM > Graphics Processor: AMD Radeon Graphics > Manufacturer: LENOVO > Product Name: 21J2 > System Version: ThinkBook 16 G5+ APO > > ``` > > # Guix > > ``` > > guix (GNU Guix) 5267c6073c3bdc6ba7874fc776c23c928f1ee263 > Copyright (C) 2024 the Guix authors > License GPLv3+: GNU GPL version 3 or later > <http://gnu.org/licenses/gpl.html> > This is free software: you are free to change and redistribute it. > There is NO WARRANTY, to the extent permitted by law. > > ``` > > Hello. It's totally normal and expected, and if Guix wasn't upgraded in a while (say, for example a month) it'll take even longer time. The reason being that it has to upgrade the Guix toolset and then fetch new commits directly from git repos and build a database with said commits, these databases contain all information required to replicate your current installed setup, building this database is the slow part of running pull. More info on guix pull: https://guix.gnu.org/manual/en/guix.html#Invoking-guix-pull
Samuel Schmidt <samuel@schmidt-contact.com> writes: > Hello, > > I am facing the same problem, but I have to use docker-compose. > I guess there are no plans to fix this atm? :/ Or did you find > any help regarding this problem? > > Am 17.01.2024 um 21:53, Rodrigo Morales <me@rodrigomorales.site> > schrieb:Rodrigo Morales <me@rodrigomorales.site> writes: > >> Does anyone know what could be the problem? > > I found this thread [1] on help-guix from 2019 where a user > reports > having errores with docker-compose. A user replies: > > #+BEGIN_QUOTE > The root of this problem is that our docker-compose package is > very > old: it was added in January 2016(!), and has never been updated > since. I guess that proves how unneccessary Docker is once > you've > discovered Guix… ducks > #+END_QUOTE > > Furthermore, I noticed that the version of docker-compose is > 1.29.2 and > upstream [2] is at 2.12.0, so even if I fix this problem. I'll > be using > an old version of docker-compose. For my use case, it would be > more > useful to use the latest version of docker-compose, so if I > wanted to > use docker-compose under Guix, I would need for me to write a > Guix > package for that version. > Note also that this is a Docker Compose v1->v2 upgrade. The newer version is completely different from v1, it’s a plugin that integrates with the Docker CLI, so you run `docker compose' rather than `docker-compose'. We likely need a completely new package for it. > I have one question: The user above states that Docker is > unnecessary > once you have discovered Guix. I have been using Guix for around > 6 > months, but I don't see how I could use Guix for running a web > server on > a container that uses node.js and postgresql. The reason why I > initially > wanted to use docker is because I find it more convenient to run > a web > server with node.js and postgresql. Any information on this > topic is > appreciated. > I continue to find both Guix and Docker useful. While they have some overlapping goals, I don’t believe either can replace the other. The closest thing to Docker Compose I’m aware of that you can do with pure Guix is create an operating-system with the services you want to run, then use `guix system image -t docker my-machine-definition.scm' to bundle it as a Docker image. This will bring up a container with the base Guix and those services running inside. This setup lacks some niceties which Compose has: Everything seems to run in the same namespace[1], so a compromise of one service is more likely to compromise the whole system. Compose is more resistant to this, since each service runs in its own namespace (that is, container). I don’t know of a Guix equivalent for the Compose style of multi-container setup. I haven’t compared, but I strongly suspect the image sizes are larger than an equivalent plain Docker image, due to having the base Guix inside them, whereas many Docker images use (or have the option of) an Alpine base. It can only run things with a Guix package and Shepherd service to manage it. Updates are likely slower than vendor-provided Docker images. It’s also a more involved setup -- you have to write the config, and build the image, and load it, and run it. In fact, I have yet to actually make a system image that works *at all*. Compose is dead simple in comparison. — Ian [1]: At least, if Shepherd can run services in their own namespaces, like Docker can, the manual is silent on the topic.
Hi Thomas, On Sun, Mar 17 2024, Thomas Bennett wrote: > I have an issue where my root user seems to be unable to have its > environment set. That sounds annoying! Hopefully we can figure out what's going wrong for you. 🙂 > # tail /root/.bashrc > [...] > > GUIX_PROFILE="/root/.config/guix/current" > . "$GUIX_PROFILE/etc/profile" This sets the GUIX_PROFILE variable to the current Guix profile. This adds the "guix" command to your PATH, but not any of your installed packages. There are two main profiles that you need to source. One if the current Guix profile, in $HOME/.config/guix/current, and the other is your user's package profile, in $HOME/.guix-profile. The former is suggested when you run "guix pull", and the latter is suggested when you run "guix package" commands (including shorthands like "guix install"). We can see this in your output: > root@brain ~# guix package -i bat > [...] > hint: Consider setting the necessary environment variables by running: > > GUIX_PROFILE="/root/.guix-profile > . "$GUIX_PROFILE/etc/profile" > > Alternately, see `guix package --search-paths -p "/root/.guix-profile"'. You mention: > I tried to manually source "$GUIX_PROFILE/etc/profile" but it's no > better. but it's not clear whether you set GUIX_PROFILE to /root/.guix-profile before doing so. Can you try using this as your Guix initialisation code in your shell? --8<---------------cut here---------------start------------->8--- GUIX_PROFILE="$HOME/.guix-profile" . "$GUIX_PROFILE/etc/profile" GUIX_PROFILE="$HOME/.config/guix/current" . "$GUIX_PROFILE/etc/profile" unset GUIX_PROFILE --8<---------------cut here---------------end--------------->8--- As an additional gotcha that might cause problems for you in future: the usual advice in Guix is to source your profiles in .bash_profile rather than .bashrc. This allows "guix shell" to source .bashrc in a --pure environment without also including your entire user profile. Carlo
Installing a package with Guix shows a normal speed, while invoking `guix pull` does not. Is it normal, or due to my own environment? # Networking Education network in Mainland China. Specify `https://mirror.sjtu.edu.cn/git/guix.git` as a mirror for the Git repo. No extra substituter. # Operating System ``` Operating System: openSUSE Tumbleweed 20240315 KDE Plasma Version: 6.0.2 KDE Frameworks Version: 6.0.0 Qt Version: 6.6.2 Kernel Version: 6.7.9-1-default (64-bit) Graphics Platform: Wayland Processors: 16 × AMD Ryzen 7 7840H with Radeon 780M Graphics Memory: 27.1 GiB of RAM Graphics Processor: AMD Radeon Graphics Manufacturer: LENOVO Product Name: 21J2 System Version: ThinkBook 16 G5+ APO ``` # Guix ``` guix (GNU Guix) 5267c6073c3bdc6ba7874fc776c23c928f1ee263 Copyright (C) 2024 the Guix authors License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. ```
Hello Guix community, I have an issue where my root user seems to be unable to have its environment set. As advised, I put the following lines at the end of my shell rc file (as root, using bash) # tail /root/.bashrc [...] GUIX_PROFILE="/root/.config/guix/current" . "$GUIX_PROFILE/etc/profile" And it is correctly registered since: # echo $GUIX_PROFILE /root/.config/guix/current However, the problem is I can install packages but I'm not able to use them. For instance with bat binary: root@brain ~# guix package -i bat The following package will be upgraded: bat (dependencies or package changed) The following derivation will be built: /gnu/store/mwznz6gqq4lrxl5pmql8mxixcmhmnnfy-profile.drv building CA certificate bundle... listing Emacs sub-directories... building fonts directory... generating GdkPixbuf loaders cache... generating GLib schema cache... creating GTK+ icon theme cache... building cache files for GTK+ input methods... |building directory of Info manuals... building XDG desktop file cache... building XDG MIME database... building profile with 4 packages... hint: Consider setting the necessary environment variables by running: GUIX_PROFILE="/root/.guix-prof . "$GUIX_PROFILE/etc/profile" Alternately, see `guix package --search-paths -p "/root/.guix-profile"'. # guix package --search-paths -p "/root/.guix-profile" export PATH="/root/.guix-profile/bin:/root/.guix-profile/sbin" export EMACSLOADPATH="/root/.guix-profile/share/emacs/site-lisp" export INFOPATH="/root/.guix-profile/share/info" root@brain /home/tomi# bat bash: bat: command not found When doing a full system upgrade with guix pull and guix package -u, everything seems to operate fine and at the end, the message hint: Consider setting the necessary environment variables by running: GUIX_PROFILE="/root/.guix-profile" . "$GUIX_PROFILE/etc/profile" Alternately, see `guix package --search-paths -p "/root/.guix-profile"'. appears. I tried to manually source "$GUIX_PROFILE/etc/profile" but it's no better. Thank you for your help, Thomas
I actually think I figured it out!
I ended up adding a build phase that copies the plain-file defined as
the source in the package object to the build directory. I'm finally at
a point where I'm just having build failures of the package itself,
which I'm a little more familiar debugging.
Thanks for all the help!
On 3/16/24 17:47, Jesse Millwood wrote:
> Richard and Marek,
>
> The input from both of you helped me get a little farther. I've pushed
> my changes to https://codeberg.org/moonling/guix-embedded-dev.
>
> I feel like I'm really close now. I seem to be able to get into the
> phases of my build system. I can not invoke the crosstool-ng tool. My
> issue is that it seems to not be able to see the defconfig that I
> define in the package declaration as a "plain-file".
>
> I've determined this through the repl. In my repo there is a scheme
> file called "build-repl.scm" and I invoke it like this:
>
> ➜ guix repl -L guix-embedded-dev
> GNU Guile 3.0.9
> Copyright (C) 1995-2023 Free Software Foundation, Inc.
>
> Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
> This program is free software, and you are welcome to redistribute it
> under certain conditions; type `,show c' for details.
>
> Enter `,help' for help.
> scheme@(guix-user)> ,l
> /home/jesse/Code/guix-repos/guix-embedded-dev/build-repl.scm
> WARNING: (embedded-dev packages crosstool-ng): `which' imported from
> both (guix build utils) and (gnu packages base)
> substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
> substitute: updating substitutes from
> 'https://bordeaux.guix.gnu.org'... 100.0%
> building path(s)
> `/gnu/store/nc892p9kgx0my3gg9glyszg848hpf166-ct-ng-riscv64-unknown-elf-1.26.0'
> starting phase `set-SOURCE-DATE-EPOCH'
> phase `set-SOURCE-DATE-EPOCH' succeeded after 0.0 seconds
> starting phase `set-paths'
> environment variable `PATH' set to
> `/gnu/store/dv009i1wj865n34dyln2fmxryxqg3z7c-crosstool-ng-1.26.0/bin:/gnu/store/sxx22f98vfbavcqmdksm6as8fvskpxiw-tar-1.34/bin:/gnu/store/x24bm49ag5dvki72mjdz195bfb89nrnb-gzip-1.12/bin:/gnu/store/j8wlfmlmfvpbza6is9wv9xsd8psrxn00-bzip2-1.0.8/bin:/gnu/store/gr0sy0m1mv36qv54idm6cn10l3mngshq-file-5.44/bin:/gnu/store/zmcf5kpqiighkbh7wslf91qdjwj06yr1-diffutils-3.8/bin:/gnu/store/210yfax18r2g2inxrml9435ikhfcca6m-patch-2.7.6/bin:/gnu/store/c8jyph2lxw0m9na34fg8h70n4nnnz7is-findutils-4.9.0/bin:/gnu/store/hc05d76f1j3iz3v2bs5jz4fpljl1r4dj-gawk-5.2.1/bin:/gnu/store/xxcfsimvxz7z4dj593gnqbkzc6picwzq-sed-4.8/bin:/gnu/store/yrv5f70mn83a876b78i5s79dd2hsh0zf-grep-3.8/bin:/gnu/store/6k1yys9wqrfn4y41ic1win8gpnimncwj-xz-5.2.8/bin:/gnu/store/a5i8avx826brw5grn3n4qv40g514505c-coreutils-9.1/bin:/gnu/store/wj7casda7rb55rvqjnpm0bm7a2zm6618-make-4.3/bin:/gnu/store/rib9g2ig1xf3kclyl076w28parmncg4k-bash-minimal-5.1.16/bin:/gnu/store/na1dpbbcxjaa3n8wkwrfpch476f90hlf-ld-wrapper-0/bin:/gnu/store/zh4x65snfis7svs6906gj1z8i7dx2j3m-binutils-2.38/bin:/gnu/store/5lqhcv91ijy82p92ac6g5xw48l0lwwz4-gcc-11.3.0/bin:/gnu/store/gsjczqir1wbz8p770zndrpw4rnppmxi3-glibc-2.35/bin:/gnu/store/gsjczqir1wbz8p770zndrpw4rnppmxi3-glibc-2.35/sbin'
> environment variable `BASH_LOADABLES_PATH' unset
> environment variable `C_INCLUDE_PATH' set to
> `/gnu/store/j8wlfmlmfvpbza6is9wv9xsd8psrxn00-bzip2-1.0.8/include:/gnu/store/gr0sy0m1mv36qv54idm6cn10l3mngshq-file-5.44/include:/gnu/store/hc05d76f1j3iz3v2bs5jz4fpljl1r4dj-gawk-5.2.1/include:/gnu/store/6k1yys9wqrfn4y41ic1win8gpnimncwj-xz-5.2.8/include:/gnu/store/wj7casda7rb55rvqjnpm0bm7a2zm6618-make-4.3/include:/gnu/store/zh4x65snfis7svs6906gj1z8i7dx2j3m-binutils-2.38/include:/gnu/store/5lqhcv91ijy82p92ac6g5xw48l0lwwz4-gcc-11.3.0/include:/gnu/store/gsjczqir1wbz8p770zndrpw4rnppmxi3-glibc-2.35/include:/gnu/store/5iklcps70c0sfkxvlrhg8jhf3q4h18bj-linux-libre-headers-5.15.49/include'
> environment variable `CPLUS_INCLUDE_PATH' set to
> `/gnu/store/j8wlfmlmfvpbza6is9wv9xsd8psrxn00-bzip2-1.0.8/include:/gnu/store/gr0sy0m1mv36qv54idm6cn10l3mngshq-file-5.44/include:/gnu/store/hc05d76f1j3iz3v2bs5jz4fpljl1r4dj-gawk-5.2.1/include:/gnu/store/6k1yys9wqrfn4y41ic1win8gpnimncwj-xz-5.2.8/include:/gnu/store/wj7casda7rb55rvqjnpm0bm7a2zm6618-make-4.3/include:/gnu/store/zh4x65snfis7svs6906gj1z8i7dx2j3m-binutils-2.38/include:/gnu/store/5lqhcv91ijy82p92ac6g5xw48l0lwwz4-gcc-11.3.0/include/c++:/gnu/store/5lqhcv91ijy82p92ac6g5xw48l0lwwz4-gcc-11.3.0/include:/gnu/store/gsjczqir1wbz8p770zndrpw4rnppmxi3-glibc-2.35/include:/gnu/store/5iklcps70c0sfkxvlrhg8jhf3q4h18bj-linux-libre-headers-5.15.49/include'
> environment variable `LIBRARY_PATH' set to
> `/gnu/store/j8wlfmlmfvpbza6is9wv9xsd8psrxn00-bzip2-1.0.8/lib:/gnu/store/gr0sy0m1mv36qv54idm6cn10l3mngshq-file-5.44/lib:/gnu/store/hc05d76f1j3iz3v2bs5jz4fpljl1r4dj-gawk-5.2.1/lib:/gnu/store/6k1yys9wqrfn4y41ic1win8gpnimncwj-xz-5.2.8/lib:/gnu/store/zh4x65snfis7svs6906gj1z8i7dx2j3m-binutils-2.38/lib:/gnu/store/gsjczqir1wbz8p770zndrpw4rnppmxi3-glibc-2.35/lib:/gnu/store/l0yryi5jsa1grnvw01c9nkz9c81cv224-glibc-2.35-static/lib:/gnu/store/visfdda934gvivwihwhlm63fdqhhcc8a-glibc-utf8-locales-2.35/lib'
> environment variable `GUIX_LOCPATH' set to
> `/gnu/store/visfdda934gvivwihwhlm63fdqhhcc8a-glibc-utf8-locales-2.35/lib/locale'
> phase `set-paths' succeeded after 0.0 seconds
> starting phase `install-locale'
> using 'en_US.utf8' locale for category "LC_ALL"
> phase `install-locale' succeeded after 0.0 seconds
> starting phase `patch-usr-bin-file'
> phase `patch-usr-bin-file' succeeded after 0.0 seconds
> starting phase `patch-source-shebangs'
> phase `patch-source-shebangs' succeeded after 0.0 seconds
> starting phase `patch-generated-file-shebangs'
> phase `patch-generated-file-shebangs' succeeded after 0.0 seconds
> starting phase `defconfig'
> CONF defconfig
> ***
> *** Can't find default configuration "defconfig"!
> ***
> make: ***
> [/gnu/store/dv009i1wj865n34dyln2fmxryxqg3z7c-crosstool-ng-1.26.0/bin/ct-ng:145:
> defconfig] Error 1
> error: in phase 'defconfig': uncaught exception:
> %exception #<&invoke-error program: "ct-ng" arguments: ("defconfig")
> exit-status: 2 term-signal: #f stop-signal: #f>
> phase `defconfig' failed after 0.1 seconds
> command "ct-ng" "defconfig" failed with status 2
> builder for
> `/gnu/store/f454kx4v789af03s2rz6nzlznhla9i6x-ct-ng-riscv64-unknown-elf-1.26.0.drv'
> failed with exit code 1
> While executing meta-command:
> ERROR:
> 1. &store-protocol-error:
> message: "build of
> `/gnu/store/f454kx4v789af03s2rz6nzlznhla9i6x-ct-ng-riscv64-unknown-elf-1.26.0.drv'
> failed"
> status: 100
>
>
> The ct-ng tool that is invoked from the build-system is saying that it
> can't find the defconfig file.
>
> Richard,
> From your debugging tips you mentioned looking at the mentioned ".drv"
> file and the associated "-builder" file. In the builder file I can see:
>
> (crosstool-ng-build #:name "ct-ng-riscv64-unknown-elf-1.26.0"
> #:source "/gnu/store/651xmndi8wshqc7lrgiw9b59mh0nygxj-defconfig"
>
> Which is interesting, I guess I assumed that the plainfile that I
> specified in the package declaration would be put in a build directory
> or something. I see that it is in the store, which makes sense.
>
> I think my main question here then is how can I get the defconfig file
> from the store into the build directory so that I can invoke commands
> in the build system like other build systems do? The difference
> between other packages is that it seems that other packages have a git
> repo or something for package sources and the associated build system
> can invoke commands on the files there. I want to be able to just
> provide a partial defconfig file and operate on that.
>
> Thanks for any pointers,
> Jesse
>
>
> On 3/9/24 10:02, Jesse Millwood wrote:
>> Thanks for your response Richard!
>>
>> On 3/8/24 22:39, Richard Sent wrote:
>>> Jesse,
>>>
>>> I expect your issue is you have an extra gexp in
>>> build-system/crosstool-ng.scm, line 71. I determined this by:
>>>
>>> 1. Examining the derivation Guix is trying to build
>> I'm still trying to learn about the internals of Guix and writing
>> packages. How did you examine the derivation Guix is trying to build?
>>> 2. Examining the -builder file mentioned in the derivation
>> Ah! I did not notice that file in the output nor open it! I see now
>> that the Derivations section of the manual mentions these drv files.
>> Is this where you are examining the derivation that Guix is trying to
>> build?
>>> 3. Observe that ct-ng-riscv64-unknown-elf-1.26.0-builder wraps
>>> (crosstool-ng-build ...) in (gexp).
>>
>> Where is this? Are you talking of this in build-system/crosstool-ng:
>>
>> (define build
>> (with-imported-modules
>> imported-modules
>> #~(begin
>> (use-modules #$@(sexp->gexp modules))
>> #~(crosstool-ng-build #:name #$name
>>
>> Where "#~", I have learned from Marek (earlier in this thread), is an
>> alias for "gexp".
>>
>> Ah, I see the ct-ng-riscv64-unknown-elf-1.26.0-builder in the drv
>> file and wow, I didn't know this existed! I see the gexp wrapping
>> that you mention.
>>
>> Is there a way to use the guix command to tell me where the drv file
>> for other packages exist? It is apparent that I need to perform a
>> more in depth review of the manual. This really helps contextualize
>> things for me.
>>
>>> The package still did not build locally on my machine after removing
>>> it,
>>> but it seems to have progressed to a further stage.
>>>
>> Thanks, I may investigate how other derivations look now that I know
>> where to look. I appreciate the detailed input!
Richard and Marek, The input from both of you helped me get a little farther. I've pushed my changes to https://codeberg.org/moonling/guix-embedded-dev. I feel like I'm really close now. I seem to be able to get into the phases of my build system. I can not invoke the crosstool-ng tool. My issue is that it seems to not be able to see the defconfig that I define in the package declaration as a "plain-file". I've determined this through the repl. In my repo there is a scheme file called "build-repl.scm" and I invoke it like this: ➜ guix repl -L guix-embedded-dev GNU Guile 3.0.9 Copyright (C) 1995-2023 Free Software Foundation, Inc. Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'. This program is free software, and you are welcome to redistribute it under certain conditions; type `,show c' for details. Enter `,help' for help. scheme@(guix-user)> ,l /home/jesse/Code/guix-repos/guix-embedded-dev/build-repl.scm WARNING: (embedded-dev packages crosstool-ng): `which' imported from both (guix build utils) and (gnu packages base) substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0% substitute: updating substitutes from 'https://bordeaux.guix.gnu.org'... 100.0% building path(s) `/gnu/store/nc892p9kgx0my3gg9glyszg848hpf166-ct-ng-riscv64-unknown-elf-1.26.0' starting phase `set-SOURCE-DATE-EPOCH' phase `set-SOURCE-DATE-EPOCH' succeeded after 0.0 seconds starting phase `set-paths' environment variable `PATH' set to `/gnu/store/dv009i1wj865n34dyln2fmxryxqg3z7c-crosstool-ng-1.26.0/bin:/gnu/store/sxx22f98vfbavcqmdksm6as8fvskpxiw-tar-1.34/bin:/gnu/store/x24bm49ag5dvki72mjdz195bfb89nrnb-gzip-1.12/bin:/gnu/store/j8wlfmlmfvpbza6is9wv9xsd8psrxn00-bzip2-1.0.8/bin:/gnu/store/gr0sy0m1mv36qv54idm6cn10l3mngshq-file-5.44/bin:/gnu/store/zmcf5kpqiighkbh7wslf91qdjwj06yr1-diffutils-3.8/bin:/gnu/store/210yfax18r2g2inxrml9435ikhfcca6m-patch-2.7.6/bin:/gnu/store/c8jyph2lxw0m9na34fg8h70n4nnnz7is-findutils-4.9.0/bin:/gnu/store/hc05d76f1j3iz3v2bs5jz4fpljl1r4dj-gawk-5.2.1/bin:/gnu/store/xxcfsimvxz7z4dj593gnqbkzc6picwzq-sed-4.8/bin:/gnu/store/yrv5f70mn83a876b78i5s79dd2hsh0zf-grep-3.8/bin:/gnu/store/6k1yys9wqrfn4y41ic1win8gpnimncwj-xz-5.2.8/bin:/gnu/store/a5i8avx826brw5grn3n4qv40g514505c-coreutils-9.1/bin:/gnu/store/wj7casda7rb55rvqjnpm0bm7a2zm6618-make-4.3/bin:/gnu/store/rib9g2ig1xf3kclyl076w28parmncg4k-bash-minimal-5.1.16/bin:/gnu/store/na1dpbbcxjaa3n8wkwrfpch476f90hlf-ld-wrapper-0/bin:/gnu/store/zh4x65snfis7svs6906gj1z8i7dx2j3m-binutils-2.38/bin:/gnu/store/5lqhcv91ijy82p92ac6g5xw48l0lwwz4-gcc-11.3.0/bin:/gnu/store/gsjczqir1wbz8p770zndrpw4rnppmxi3-glibc-2.35/bin:/gnu/store/gsjczqir1wbz8p770zndrpw4rnppmxi3-glibc-2.35/sbin' environment variable `BASH_LOADABLES_PATH' unset environment variable `C_INCLUDE_PATH' set to `/gnu/store/j8wlfmlmfvpbza6is9wv9xsd8psrxn00-bzip2-1.0.8/include:/gnu/store/gr0sy0m1mv36qv54idm6cn10l3mngshq-file-5.44/include:/gnu/store/hc05d76f1j3iz3v2bs5jz4fpljl1r4dj-gawk-5.2.1/include:/gnu/store/6k1yys9wqrfn4y41ic1win8gpnimncwj-xz-5.2.8/include:/gnu/store/wj7casda7rb55rvqjnpm0bm7a2zm6618-make-4.3/include:/gnu/store/zh4x65snfis7svs6906gj1z8i7dx2j3m-binutils-2.38/include:/gnu/store/5lqhcv91ijy82p92ac6g5xw48l0lwwz4-gcc-11.3.0/include:/gnu/store/gsjczqir1wbz8p770zndrpw4rnppmxi3-glibc-2.35/include:/gnu/store/5iklcps70c0sfkxvlrhg8jhf3q4h18bj-linux-libre-headers-5.15.49/include' environment variable `CPLUS_INCLUDE_PATH' set to `/gnu/store/j8wlfmlmfvpbza6is9wv9xsd8psrxn00-bzip2-1.0.8/include:/gnu/store/gr0sy0m1mv36qv54idm6cn10l3mngshq-file-5.44/include:/gnu/store/hc05d76f1j3iz3v2bs5jz4fpljl1r4dj-gawk-5.2.1/include:/gnu/store/6k1yys9wqrfn4y41ic1win8gpnimncwj-xz-5.2.8/include:/gnu/store/wj7casda7rb55rvqjnpm0bm7a2zm6618-make-4.3/include:/gnu/store/zh4x65snfis7svs6906gj1z8i7dx2j3m-binutils-2.38/include:/gnu/store/5lqhcv91ijy82p92ac6g5xw48l0lwwz4-gcc-11.3.0/include/c++:/gnu/store/5lqhcv91ijy82p92ac6g5xw48l0lwwz4-gcc-11.3.0/include:/gnu/store/gsjczqir1wbz8p770zndrpw4rnppmxi3-glibc-2.35/include:/gnu/store/5iklcps70c0sfkxvlrhg8jhf3q4h18bj-linux-libre-headers-5.15.49/include' environment variable `LIBRARY_PATH' set to `/gnu/store/j8wlfmlmfvpbza6is9wv9xsd8psrxn00-bzip2-1.0.8/lib:/gnu/store/gr0sy0m1mv36qv54idm6cn10l3mngshq-file-5.44/lib:/gnu/store/hc05d76f1j3iz3v2bs5jz4fpljl1r4dj-gawk-5.2.1/lib:/gnu/store/6k1yys9wqrfn4y41ic1win8gpnimncwj-xz-5.2.8/lib:/gnu/store/zh4x65snfis7svs6906gj1z8i7dx2j3m-binutils-2.38/lib:/gnu/store/gsjczqir1wbz8p770zndrpw4rnppmxi3-glibc-2.35/lib:/gnu/store/l0yryi5jsa1grnvw01c9nkz9c81cv224-glibc-2.35-static/lib:/gnu/store/visfdda934gvivwihwhlm63fdqhhcc8a-glibc-utf8-locales-2.35/lib' environment variable `GUIX_LOCPATH' set to `/gnu/store/visfdda934gvivwihwhlm63fdqhhcc8a-glibc-utf8-locales-2.35/lib/locale' phase `set-paths' succeeded after 0.0 seconds starting phase `install-locale' using 'en_US.utf8' locale for category "LC_ALL" phase `install-locale' succeeded after 0.0 seconds starting phase `patch-usr-bin-file' phase `patch-usr-bin-file' succeeded after 0.0 seconds starting phase `patch-source-shebangs' phase `patch-source-shebangs' succeeded after 0.0 seconds starting phase `patch-generated-file-shebangs' phase `patch-generated-file-shebangs' succeeded after 0.0 seconds starting phase `defconfig' CONF defconfig *** *** Can't find default configuration "defconfig"! *** make: *** [/gnu/store/dv009i1wj865n34dyln2fmxryxqg3z7c-crosstool-ng-1.26.0/bin/ct-ng:145: defconfig] Error 1 error: in phase 'defconfig': uncaught exception: %exception #<&invoke-error program: "ct-ng" arguments: ("defconfig") exit-status: 2 term-signal: #f stop-signal: #f> phase `defconfig' failed after 0.1 seconds command "ct-ng" "defconfig" failed with status 2 builder for `/gnu/store/f454kx4v789af03s2rz6nzlznhla9i6x-ct-ng-riscv64-unknown-elf-1.26.0.drv' failed with exit code 1 While executing meta-command: ERROR: 1. &store-protocol-error: message: "build of `/gnu/store/f454kx4v789af03s2rz6nzlznhla9i6x-ct-ng-riscv64-unknown-elf-1.26.0.drv' failed" status: 100 The ct-ng tool that is invoked from the build-system is saying that it can't find the defconfig file. Richard, From your debugging tips you mentioned looking at the mentioned ".drv" file and the associated "-builder" file. In the builder file I can see: (crosstool-ng-build #:name "ct-ng-riscv64-unknown-elf-1.26.0" #:source "/gnu/store/651xmndi8wshqc7lrgiw9b59mh0nygxj-defconfig" Which is interesting, I guess I assumed that the plainfile that I specified in the package declaration would be put in a build directory or something. I see that it is in the store, which makes sense. I think my main question here then is how can I get the defconfig file from the store into the build directory so that I can invoke commands in the build system like other build systems do? The difference between other packages is that it seems that other packages have a git repo or something for package sources and the associated build system can invoke commands on the files there. I want to be able to just provide a partial defconfig file and operate on that. Thanks for any pointers, Jesse On 3/9/24 10:02, Jesse Millwood wrote: > Thanks for your response Richard! > > On 3/8/24 22:39, Richard Sent wrote: >> Jesse, >> >> I expect your issue is you have an extra gexp in >> build-system/crosstool-ng.scm, line 71. I determined this by: >> >> 1. Examining the derivation Guix is trying to build > I'm still trying to learn about the internals of Guix and writing > packages. How did you examine the derivation Guix is trying to build? >> 2. Examining the -builder file mentioned in the derivation > Ah! I did not notice that file in the output nor open it! I see now > that the Derivations section of the manual mentions these drv files. > Is this where you are examining the derivation that Guix is trying to > build? >> 3. Observe that ct-ng-riscv64-unknown-elf-1.26.0-builder wraps >> (crosstool-ng-build ...) in (gexp). > > Where is this? Are you talking of this in build-system/crosstool-ng: > > (define build > (with-imported-modules > imported-modules > #~(begin > (use-modules #$@(sexp->gexp modules)) > #~(crosstool-ng-build #:name #$name > > Where "#~", I have learned from Marek (earlier in this thread), is an > alias for "gexp". > > Ah, I see the ct-ng-riscv64-unknown-elf-1.26.0-builder in the drv file > and wow, I didn't know this existed! I see the gexp wrapping that you > mention. > > Is there a way to use the guix command to tell me where the drv file > for other packages exist? It is apparent that I need to perform a more > in depth review of the manual. This really helps contextualize things > for me. > >> The package still did not build locally on my machine after removing it, >> but it seems to have progressed to a further stage. >> > Thanks, I may investigate how other derivations look now that I know > where to look. I appreciate the detailed input!
Hubert, Your issue is in your operating-system services field. In the backtrace: --8<---------------cut here---------------start------------->8--- In procedure append: Wrong type argument in position 2 (expecting empty list) #<<service> type: #<service-type bluetooth ... --8<---------------cut here---------------end--------------->8--- You have several services outside of the (list) call, so you're basically running --8<---------------cut here---------------start------------->8--- (append (list (service-1 service-2) service-3 service-4 %desktop-services)) --8<---------------cut here---------------end--------------->8--- Append only takes lists as arguments. %desktop-services is a list, but bluetooth service and hurd-vm service are not. -- Take it easy, Richard Sent Making my computer weirder one commit at a time.
Hi Jean-Michel, Try running # sudo mkswap /dev/sda3 to recreate the swap area. In fact, run it now before continuing. See the last paragraph. I think that both of your problems have the same cause, and one that's easily fixed. To resume from hibernation, Linux needs to be told where the hibernation image was stored. It does not do this by itself. It also won't erase stale hibernation images, which is why you can't swapon. You need to add (kernel-arguments (list "resume=/dev/sda3")) to your system configuration, or append that string to the list if you already have a kernel-arguments field. Then reconfigure for the boot loader to be updated. Passing "resume=here-the-uuid-numbers-and-letters" instead of a device file name *should* also work, but it's not something I heavily tested since adding hibernation support. I've always used device file names. Until you can successfully hibernate and resume, you MUST run that mkswap at the top of this message after each failed attempt. You risk total corruption of all mounted file systems if you don't. Kind regards, T G-R Sent on the go. Excuse or enjoy my brevity.
Hello everybody, my first post here, I come from NixOS but as a lisper it's much more consistent for me to use Guix. So I installed guix on an encrypted ext4 device, from the graphic installer, including a swap. The first time, everything worked, including the swap. Until I suspended (one of the purpose of the swap). I was not able to recover from the suspended session from the swap, I had to open a new session, and ... the swap had disappeared. From my config.scm : (bootloader (bootloader-configuration (bootloader grub-bootloader) (targets (list "/dev/sda")) (keyboard-layout keyboard-layout))) (swap-devices (list (swap-space (target (uuid "here-the-uuid-numebrs-and-letters"))))) (mapped-devices (list (mapped-device (source (uuid "here-the-uuid-numebrs-and-letters")) (target "crypthome") (type luks-device-mapping)) (mapped-device (source (uuid "here-the-uuid-numebrs-and-letters")) (target "cryptroot") (type luks-device-mapping)))) some tests I made : swapon --show ==> no result cat /proc/swaps ==> no result (except the headers Filename Type etc) sudo fdisk --list | grep swap ==> /dev/sda3 206301184 225851391 19550208 9.3G Linux swap ==> this is the swap I created, and worked fine right after the install, never again after sudo herd log | grep swap ==> 4 Mar 2024 19:08:05 service swap-74e19e9d-3bba-4154-881f-0c5ad076254b is being started 4 Mar 2024 19:08:05 service swap-74e19e9d-3bba-4154-881f-0c5ad076254b failed to start What have I done wrong ? Should I build again from scratch on another filesystem ? btrfs ? Tks
Hello In short, I have the mesa package installed and another package I installed appears to have a different mesa in /gnu/store/ as a runtime dependency. As a result, cmake is unable to generate a safe runtime search path, because there are 2 different libGL.so.1 and libEGL.so.1 files in the path, one from the mesa I installed and another from the other mesa that was brought in as a runtime dependency. Here is the cmake warning: #+begin_src sh CMake Warning at CMakeLists.txt:35 (add_executable): Cannot generate a safe runtime search path for target exampleA1 because files in some directories may conflict with libraries in implicit directories: runtime library [libEGL.so.1] in /home/jake/.guix-profile/lib may be hidden by files in: /gnu/store/2rzdlwb0f7ksj7a78kjn7a7qs22avi8l-mesa-23.3.2/lib runtime library [libGL.so.1] in /home/jake/.guix-profile/lib may be hidden by files in: /gnu/store/2rzdlwb0f7ksj7a78kjn7a7qs22avi8l-mesa-23.3.2/lib Some of these libraries may not be found correctly. #+end_src I think the guix package definition below is somewhere introducing the additional mesa at /gnu/store/2rzdlwb0f7ksj7a78kjn7a7qs22avi8l-mesa-23.3.2. The input clhep-2.4.6.2 and native inputs are omitted for brevity because I don't think they're relevant, but the full package definition and inputs can be found at https://github.com/jakeforster/guix-channel/blob/master/jforst/packages/geant4.scm #+begin_src scheme (define-public geant4-vis-11-1-1 (package (name "geant4-vis") (version "11.1.1") (source (origin (method git-fetch) (uri (git-reference (url "https://gitlab.cern.ch/geant4/geant4") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "141fhmh0w8sbp6cckccf3dswn596ds4vgqwc3gz6i53ypyxmv2fw")))) (build-system cmake-build-system) (inputs (list coreutils gcc-toolchain xerces-c expat clhep-2.4.6.2 python-2 python-3.10 perl tcsh qtbase-5 libxmu libxt)) (arguments `(#:configure-flags (let* ((out (assoc-ref %outputs "out")) (qt-path (string-append (assoc-ref %build-inputs "qtbase") "/lib/cmake/Qt5"))) (list (string-append "-DCMAKE_INSTALL_PREFIX=" out) (string-append "-DCMAKE_PREFIX_PATH=" qt-path) "-DCMAKE_INSTALL_LIBDIR=lib" "-DGEANT4_BUILD_MULTITHREADED=ON" "-DGEANT4_ENABLE_TESTING=OFF" "-DGEANT4_INSTALL_DATA=OFF" "-DGEANT4_USE_GDML=ON" ;xerces-c is needed for GDML "-DGEANT4_USE_SYSTEM_CLHEP=ON" "-DGEANT4_USE_SYSTEM_EXPAT=ON" "-DGEANT4_USE_OPENGL_X11=ON" "-DGEANT4_USE_QT=ON" (let ((datadir (string-append out "/share/geant4/data"))) (string-append "-DGEANT4_INSTALL_DATADIR=" datadir "/share/geant4/data")))) #:phases (modify-phases %standard-phases (add-after 'install 'install-data (lambda* (#:key inputs outputs #:allow-other-keys) (let ((G4NDL (assoc-ref inputs "G4NDL")) (G4EMLOW (assoc-ref inputs "G4EMLOW")) (G4PhotonEvaporation (assoc-ref inputs "G4PhotonEvaporation")) (G4RadioactiveDecay (assoc-ref inputs "G4RadioactiveDecay")) (G4PARTICLEXS (assoc-ref inputs "G4PARTICLEXS")) (G4PII (assoc-ref inputs "G4PII")) (G4RealSurface (assoc-ref inputs "G4RealSurface")) (G4SAIDDATA (assoc-ref inputs "G4SAIDDATA")) (G4ABLA (assoc-ref inputs "G4ABLA")) (G4INCL (assoc-ref inputs "G4INCL")) (G4ENSDFSTATE (assoc-ref inputs "G4ENSDFSTATE")) (G4TENDL (assoc-ref inputs "G4TENDL")) (datadir (string-append (assoc-ref outputs "out") "/share/geant4/data"))) (display (list "Data archives:" G4NDL G4EMLOW G4PhotonEvaporation G4RadioactiveDecay G4PARTICLEXS G4PII G4RealSurface G4SAIDDATA G4ABLA G4INCL G4ENSDFSTATE)) (newline) (mkdir-p datadir) (invoke "tar" "xvf" G4NDL "-C" datadir) (invoke "tar" "xvf" G4EMLOW "-C" datadir) (invoke "tar" "xvf" G4PhotonEvaporation "-C" datadir) (invoke "tar" "xvf" G4RadioactiveDecay "-C" datadir) (invoke "tar" "xvf" G4PARTICLEXS "-C" datadir) (invoke "tar" "xvf" G4PII "-C" datadir) (invoke "tar" "xvf" G4RealSurface "-C" datadir) (invoke "tar" "xvf" G4SAIDDATA "-C" datadir) (invoke "tar" "xvf" G4ABLA "-C" datadir) (invoke "tar" "xvf" G4INCL "-C" datadir) (invoke "tar" "xvf" G4ENSDFSTATE "-C" datadir) (invoke "tar" "xvf" G4TENDL "-C" datadir))))) ;; no tests in Makefile #:tests? #f)) (native-inputs `(("G4NDL" ,g4ndl-4.7) ("G4EMLOW" ,g4emlow-8.2) ("G4PhotonEvaporation" ,photon-evaporation-5.7) ("G4RadioactiveDecay" ,radioactive-decay-5.6) ("G4PARTICLEXS" ,g4particlexs-4.0) ("G4PII" ,g4pii-1.3) ("G4RealSurface" ,real-surface-2.2) ("G4SAIDDATA" ,g4saiddata-2.0) ("G4ABLA" ,g4abla-3.1) ("G4INCL" ,g4incl-1.0) ("G4ENSDFSTATE" ,g4ensdfstate-2.3) ("G4TENDL" ,g4tendl-1.4))) (home-page "https://geant4.web.cern.ch") (synopsis "Monte Carlo particle track simulations") (description "Geant4 is a toolkit for the simulation of the passage of particles through matter. Its areas of application include high energy, nuclear and accelerator physics, as well as studies in medical and space science. This package supports visualisation with OpenGL and Qt.") (license (license:non-copyleft "https://geant4.web.cern.ch/download/license")))) #+end_src Steps to reproduce the cmake warning given above: #+begin_src sh git clone https://github.com/jakeforster/guix-channel.git guix shell -L ./guix-channel geant4-vis cmake make gcc-toolchain mesa # copy an example app INSTALL_DIR=$(guix build geant4-vis) cp -rf $INSTALL_DIR/share/Geant4/examples/basic/B1 . # the store is read only chmod -R 751 B1/ mkdir B1/build cd B1/build cmake .. #+end_src I have also reproduced the warning using a guix shell -C --pure. There's just some extra hassle with making the build dir first and sharing the B1 directory containing the CMakeLists.txt file. If you use your profile instead of a shell, you can confirm the libEGL.so.1 and libGL.so.1 libraries in ~/.guix-profile/lib/ point to the same mesa in /gnu/store/ that is installed with the following: #+begin_src sh $ guix package -I | grep mesa mesa 23.3.2 out /gnu/store/clnk1arbkc6v21a93gxnirvsbjaz5v07-mesa-23.3.2 $ ls -l ~/.guix-profile/lib/ | grep libEGL.so.1 lrwxrwxrwx 1 root root 71 Jan 1 1970 libEGL.so.1 -> /gnu/store/clnk1arbkc6v21a93gxnirvsbjaz5v07-mesa-23.3.2/lib/libEGL.so.1 $ ls -l ~/.guix-profile/lib/ | grep libGL.so.1 lrwxrwxrwx 1 root root 70 Jan 1 1970 libGL.so.1 -> /gnu/store/clnk1arbkc6v21a93gxnirvsbjaz5v07-mesa-23.3.2/lib/libGL.so.1 #+end_src So I'm guessing during the installation of geant4-vis, something is bringing in a different mesa from the store (/gnu/store/2rzdlwb0f7ksj7a78kjn7a7qs22avi8l-mesa-23.3.2) into the path as a runtime dependency. I note that qtbase-5 has mesa as a propagated input, so perhaps it's that. But it's not clear to me why the mesa propagated for qtbase-5 would be different (i.e. has a different /gnu/store/ entry) from the mesa that I install in my profile or shell. Any suggestions for how to resolve this would be much appreciated. Thanks! Jake
Hi, I have an unused laptop that I want to try experimenting with Guix on. Since builtin network controller uses nonfree firmware to connect to it to network I got some USB Ethernet dongle which uses RTL8153 chip and it works when I boot system but if I try to reconnect it or let it idle for a bit then it stops working with dmesg printing that nonfree firmware loading is disabled. Since it does work on boot is there some way I can make it always work even when reconnecting it? Maybe it uses some other driver on start & reconnecting breaks it as it tries to load nonfree one? lsusb -t outputs that the driver this dongle uses is r8152, which I assume is nonfree as it is the same one that is being reported as disabled in dmesg.
Hello guix! My goal is to insert the hurd-vm-service-type service into my "/etc/config.scm" I tried inserting it into %desktop-services Then I thought it would be a good idea to add the virtualization module after the (use-service-modules, at the top. Into %base-user-accounts)) I added "kvm" in the supplementary-groups My /etc/config.scm ''' (use-modules (gnu)) (use-service-modules cups desktop networking virtualization ssh xorg) ;; virtualization added here (operating-system (locale "fr_FR.utf8") (timezone "Europe/Paris") (keyboard-layout (keyboard-layout "fr")) (host-name "gnu") (users (cons* (user-account (name "hubert") (comment "Hubert") (group "users") (home-directory "/home/hubert") (supplementary-groups '("wheel" "netdev" "audio" "video" "kvm" "lp"))) ;; "kvm" added here %base-user-accounts)) (packages (append (list (specification->package "nss-certs")) %base-packages)) (services (append (list (service gnome-desktop-service-type) (service cups-service-type) (set-xorg-configuration (xorg-configuration (keyboard-layout keyboard-layout)))) (service bluetooth-service-type (bluetooth-configuration (auto-enable? #t))) (service hurd-vm-service-type (hurd-vm-configuration (disk-size (* 10000 (expt 2 20))) ;; 10G (memory-size 1024))) ;; 1024MiB %desktop-services)) (bootloader (bootloader-configuration (bootloader grub-efi-bootloader) (targets (list "/boot/efi")) (keyboard-layout keyboard-layout))) (swap-devices (list (swap-space (target (uuid "527ab16b-d20c-4269-bc6f-8910ef3f8c5e"))))) (file-systems (cons* (file-system (mount-point "/boot/efi") (device (uuid "1C82-1420" 'fat32)) (type "vfat")) (file-system (mount-point "/") (device (uuid "e4fb3e05-b455-40db-bc59-4d4d011e1e01" 'ext4)) (type "ext4")) %base-file-systems))) ''' However, trying to reconfigure gives me this error message: ''' hubert@gnu ~$ sudo guix system reconfigure /etc/config.scm Backtrace: 18 (primitive-load "/home/hubert/.config/guix/current/bin/…") In guix/ui.scm: 2324:7 17 (run-guix . _) 2287:10 16 (run-guix-command _ . _) In ice-9/boot-9.scm: 1752:10 15 (with-exception-handler _ _ #:unwind? _ # _) In guix/status.scm: 859:3 14 (_) 839:4 13 (call-with-status-report _ _) In guix/scripts/system.scm: 1305:4 12 (_) In ice-9/boot-9.scm: 1752:10 11 (with-exception-handler _ _ #:unwind? _ # _) In guix/store.scm: 661:37 10 (thunk) 1300:8 9 (call-with-build-handler #<procedure 7ff6fe4294b0 at g…> …) 2180:25 8 (run-with-store #<store-connection 256.99 7ff6e61ed2d0> …) In guix/scripts/system.scm: 847:2 7 (_ _) 721:8 6 (_ #<store-connection 256.99 7ff6e61ed2d0>) In gnu/system.scm: 1299:19 5 (operating-system-derivation _) 836:11 4 (operating-system-services #<<operating-system> kernel:…>) 870:20 3 (services _) In unknown file: 2 (append (#<<service> type: #<service-type gnome-des…> …) …) In ice-9/boot-9.scm: 1685:16 1 (raise-exception _ #:continuable? _) 1685:16 0 (raise-exception _ #:continuable? _) ice-9/boot-9.scm:1685:16: In procedure raise-exception: In procedure append: Wrong type argument in position 2 (expecting empty list): #<<service> type: #<service-type bluetooth 7ff6e99a0c00> value: #<<bluetooth-configuration> bluez: #<package bluez@5.66 gnu/packages/linux.scm:5954 7ff6ea5f0370> name: "BlueZ" class: 0 discoverable-timeout: 180 always-pairable?: #f pairable-timeout: 0 device-id: #f reverse-service-discovery?: #t name-resolving?: #t debug-keys?: #f controller-mode: dual multi-profile: off fast-connectable?: #f privacy: off just-works-repairing: never temporary-timeout: 30 refresh-discovery?: #t experimental: #f remote-name-request-retry-delay: 300 page-scan-type: #f page-scan-interval: #f page-scan-window: #f inquiry-scan-type: #f inquiry-scan-interval: #f inquiry-scan-window: #f link-supervision-timeout: #f page-timeout: #f min-sniff-interval: #f max-sniff-interval: #f min-advertisement-interval: #f max-advertisement-interval: #f multi-advertisement-rotation-interval: #f scan-interval-auto-connect: #f scan-window-auto-connect: #f scan-interval-suspend: #f scan-window-suspend: #f scan-interval-discovery: #f scan-window-discovery: #f scan-interval-adv-monitor: #f scan-window-adv-monitor: #f scan-interval-connect: #f scan-window-connect: #f min-connection-interval: #f max-connection-interval: #f connection-latency: #f connection-supervision-timeout: #f autoconnect-timeout: #f adv-mon-allowlist-scan-duration: 300 adv-mon-no-filter-scan-duration: 500 enable-adv-mon-interleave-scan?: #t cache: always key-size: 0 exchange-mtu: 517 att-channels: 3 session-mode: basic stream-mode: basic reconnect-uuids: () reconnect-attempts: 7 reconnect-intervals: (1 2 4 8 16 32 64) auto-enable?: #t resume-delay: 2 rssi-sampling-period: 255>> ''' I tried to decipher all of this, but without any success. (Bluetooth and Wi-Fi don't work but that's another topic;) In fact, I don't really see how/where to direct my research... Thanks in advance if you can enlighten me! Kind regards, Hubert Envoyé depuis Infomaniak [https://www.infomaniak.com], email gratuit et respectueux de la vie privée
Ivan Popovych <ivan@ipvych.com> writes:
> Hi, I have an unused laptop that I want to try experimenting with
> Guix on. Since builtin network controller uses nonfree firmware to connect
> to it to network I got some USB Ethernet dongle which uses RTL8153 chip
> and it works when I boot system but if I try to reconnect it or let it
> idle for a bit then it stops working with dmesg printing that nonfree
> firmware loading is disabled.
>
> Since it does work on boot is there some way I can make it always work
> even when reconnecting it? Maybe it uses some other driver on start &
> reconnecting breaks it as it tries to load nonfree one?
>
> lsusb -t outputs that the driver this dongle uses is r8152, which I
> assume is nonfree as it is the same one that is being reported as
> disabled in dmesg.
Figgured it out, I just needed to restart networking service... Probably
just installing something like network-manager will make it work. The
cause of it stopping working on idle is probably due to some usb power
saving that I will need to figure out (though it should also be fixed by
something like networkmanager).
That's exactly what I need! Thanks!
(Warning: this email is in french because the meeting is supposed to be held in French.) Bonjour Guix, Merci aux personnes qui ont bravé les transports, ou la circulation parisienne, pour participer au Guix@Paris d’hier soir ! Merci en particulier à V et T qui m’ont donné la motivation, le code et le coup de pied au derrière nécessaire pour faire fonctionner Pipewire ! 😁 Au plaisir de vous retrouver le mois prochain ! -- Tanguy
If this winds up being something you do frequently, it may be possible to write a function to modify the service type. See [1] as an example. I suspect your code would be smaller, something like --8<---------------cut here---------------start------------->8--- (define (depend-on type new-requirement) "Returns a @code{service-type} record derived from @var{type} with any shepherd extensions additionally depending on @var{new-requirement}." (service-type (inherit type) (extensions (map (lambda (extension) (let ((target (service-extension-target extension)) (compute (service-extension-compute extension))) (if (eq? target shepherd-root-service-type) (service-extension shepherd-root-service-type (lambda (config) (map (lambda (service) (shepherd-service (inherit service) (requirement (cons* new-requirement (shepherd-service-requirement config))))) (compute config)))) extension))) (service-type-extensions type))))) --8<---------------cut here---------------end--------------->8--- This code might not be it exactly, but something similar to this /should/ work. [1] https://git.sr.ht/~freakingpenguin/rsent/tree/master/item/channel/rsent/utils/services.scm -- Take it easy, Richard Sent Making my computer weirder one commit at a time.
> When I switched to Guix, I gave up my own Rocket layout. [1] Where is > your layout, please? It's a personalized layout that i have no intention of sharing, but it has some similarities with your rocket, but using space for lv3-shift rather than ctrl. > I am now good enough with Guix to propose a generalized solution. I am > not sure it would involve patching the existing package in the > conventional sense but am curious to read about it. Where did you find > it, please? https://lists.gnu.org/archive/html/help-guix/2020-04/msg00030.html > Kind regards > Felix > > P.S. Sorry to read about your sister, Amy. I have no sister named Amy, i believe you're confusing me with someone else.
Hi Kristoffer, On Wed, Mar 13 2024, Kristoffer Ström wrote: > i'm using a custom xkbmap that i've been developing over the last > decade or so, and i'm looking to migrate to guix system. When I switched to Guix, I gave up my own Rocket layout. [1] Where is your layout, please? > i have found no straightforward way to include a custom mapping > ... into my operating-system declarations. That is a well-known restriction, although very few people care about it.. > Looking around the list history i only found suggestions to patch the > xkeyboard-config package. I am now good enough with Guix to propose a generalized solution. I am not sure it would involve patching the existing package in the conventional sense but am curious to read about it. Where did you find it, please? Kind regards Felix P.S. Sorry to read about your sister, Amy. [1] https://codeberg.org/lechner/rocket-layout
Hello, in my day-to day i'm using a custom xkbmap that i've been developing over the last decade or so, and i'm looking to migrate to guix system. However, i have found no straightforward way to include a custom mapping (basically just a symbols file) into my operating-system declarations. Looking around the list history i only found suggestions to patch the xkeyboard-config package. However, i am not at all sure how to do this in practice. I'm not looking to set up my own channel yet, so i would prefer if the solution could just be included in the scheme file that defines my operating-system. Is there a straightforward way to add a patch-step to this specific package in a os definition file, or should i be looking at alternative solutions? Pointers to your own solutions to this feature would also be appriciated! Happy hacking, Kristoffer