Re: /gnu/store
Hello, Giovanni Biscuolo writes: >> To look for a the Emacs 28.1 file takes also ages. > > What is "the Emacs 28.1 file"? I assume they mean the Emacs executable. You can look for the Emacs executable currently present in your Guix profile by looking into the ~/.guix-profile/bin directory. It's small enough that you can explore it with a file manager, unlike /gnu/store. It's also simple to check from a terminal, for example with the command “ls -l ~/.guix-profile/bin/emacs”. >> I want to change the command for opening emacs in the starter,now >> version 27.2 change into emacs 28. So that the emacs icon in the toolbar >> opens Emacs 28. Or is the simplest way deleting the icon and after every >> new emacs version creating a new icon? > > You cannot change the .desktop files used to start applications > installed via Guix since they are stored read-only in the store It's possible to override the system-installed .desktop files by creating new ones in ~/.local/share/applications. This can be done more easily with a menu editor such as ‘kmenuedit’ in KDE. I don't know what the Mate equivalent would be. A quick web search suggests there are both ‘Alacarte’ and ‘Mozo’ but it looks like neither of them are packaged in Guix unfortunately. > It's "just" a matter to refresh your graphical menu an usually we need > to logout and login (at least on a foreign distro) > >> 3. Can somebody explain to me the structure of /gnu/store? > > Please read the Guix manual at "8.9 The Store" > > AFAIK the store is set read-only **but** in any case /do not/ directly > write to the store, it is accessed by the guix-daemon via the various > "guix..." command > > use the guix cli (or the great emacs-guix interface [1]) to explore your > packages (et al) > > [...] Reading the manual section about the store as Giovanni suggested is of course the best way to learn about the /gnu/store organization, but a quick explanation about the weird directory and file names there is that the soup of numbers and letters at the beginning is a random but deterministic identifier of that particular file or package, and is based on the source code of the package and the environment needed to build it. If you change anything at all about the file/package or how it is produced, then the identifier changes as well. This helps Guix provide its reproducibility properties. -- Thanks Thiago
Re: PySide2 not found when installing from PyPI
On Thu, 26 May 2022 11:59:09 -0400 Luis Felipe wrote > I often have to change the source of Python packages to use the source > repository instead of fetching from pypi because the latter doesn't include > test suites. This is a good point. Thank you. > However, the build still fails in the sanity-check phase even using the > source repository as source and disabling tests (because the app doesn't > have tests yet). > > test suite not run > phase `check' succeeded after 0.0 seconds > starting phase `sanity-check' > validating 't-rex-typer' > /gnu/store/cppxhb9bl78wynw3cf0fhscl8wc5qphd-python-t-rex-typer-0.1.5/lib/python3.9/site-packages > ...checking requirements: ERROR: t-rex-typer==0.1.5 > DistributionNotFound(Requirement.parse('PySide2>=5.15'), {'t-rex-typer'}) > error: in phase 'sanity-check': uncaught exception: > %exception #< program: "python" arguments: > ("/gnu/store/35ix1m6m8a5s21j02ajhdyqxb2xkshfb-sanity-check.py" > "/gnu/store/cppxhb9bl78wynw3cf0fhscl8wc5qphd-python-t-rex-typer-0.1.5/lib/python3.9/site-packages") > exit-status: 1 term-signal: #f stop-signal: #f> > > phase `sanity-check' failed after 0.1 seconds > command "python" > "/gnu/store/35ix1m6m8a5s21j02ajhdyqxb2xkshfb-sanity-check.py" > "/gnu/store/cppxhb9bl78wynw3cf0fhscl8wc5qphd-python-t-rex-typer-0.1.5/lib/python3.9/site-packages" > failed with status 1 > ~~~ > > I don't think I understand the error, but maybe it has to do with something > expecting a "python" command when it should be "python3" command (which is > what)? If I'm reading that correctly, that's the same distribution not found error. I like your thought of python versus python3. However, the PySide2 package on PyPI has a release for python2. If the build system were using python2, I would expect it to download that and then fail.
How to install guix system from existing linux with guix package manager?
How would I install Guix system from an existing Linux that has the guix package manager on it (aka from a foreign distro)? Specifically I have Guix installed on Arch Linux on an encrypted btrfs ssd. I have a @home subvolume mounted on /home. Currently /gnu/store is not a subvolume, but I'd like to reuse it for guix system. I also have the efi system partition for uefi boot. What I'd like to do is install Guix system and boot from a subvolume. Ideally the guix fstab would be like this: @guix-root is mounted on / on guix system @gnu-store is mounted on /gnu/store on guix system and shared between arch and guix @home is mounted on /home and shared between arch and guix So I think the steps are as follows: 0. backup data (just in case) 1. move /gnu/store to subvolume 2. install Guix system manually with the following file systems: (mapped-devices (list (mapped-device (source (uuid "my-uuid")) (target "cryptroot") (type luks-device-mapping (file-systems (append (list (file-system (device (file-system-label "cryptroot")) (mount-point "/") (type "btrfs") (options "subvol=@guix-root") (dependencies mapped-devices)) (file-system (device (file-system-label "cryptroot")) (mount-point "/gnu/store") (type "btrfs") (options "subvol=@gnu-store") (dependencies mapped-devices)) (file-system (device (file-system-label "efi")) (mount-point "/boot/efi") (type "vfat"))) %base-file-systems)) 3. configure uefi to boot guix grub by default WDYT? any tips/suggestions?
Re: PySide2 not found when installing from PyPI
Hi Matt, > Could it be because only wheel files are hosted and not any source? I often have to change the source of Python packages to use the source repository instead of fetching from pypi because the latter doesn't include test suites. However, the build still fails in the sanity-check phase even using the source repository as source and disabling tests (because the app doesn't have tests yet). Here is the modified package: ~~~ (use-modules (guix packages) (guix download) (guix git-download) (gnu packages python) (gnu packages qt) (guix build-system python) ((guix licenses) #:prefix license:)) (define-public python-t-rex-typer (package (name "python-t-rex-typer") (version "0.1.5") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/excalamus/t_rex_typer;) (commit "e9e23cf"))) (file-name (git-file-name name version)) (sha256 (base32 "1vw6c7p7yzl5rza2cmgiwyfxkr868i7mv3wnqvmyapy4p97axyc1" #; (source (origin (method url-fetch) (uri (pypi-uri "t_rex_typer" version)) (sha256 (base32 "0y08zacchwkx95dla1lbrqkxfnsknhm8ymr6ad08vijbwf5xircp" (build-system python-build-system) (arguments '(#:tests? #f)) ; There are no tests to run. (propagated-inputs (list python-pyside-2)) (home-page "https://github.com/excalamus/t_rex_typer;) (synopsis "Steno practice") (description "Steno practice") (license license:gpl3+))) python-t-rex-typer ~~~ And the result of "guix build -f t-rex-typer.scm" ~~~ 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/j3cx0yaqdpw0mxizp5bayx93pya44dhn-python-wrapper-3.9.9/bin:/gnu/store/g2ajyl8xk9aarxrgjbng2hkj3qm2v0z2-tar-1.34/bin:/gnu/store/iixwcv3k49ks1rf34pjgfzmzyhhgwng3-gzip-1.10/bin:/gnu/store/s3hl12jxz9ybs7nsy7kq7ybzz7qnzmsg-bzip2-1.0.8/bin:/gnu/store/c8isj4jq6knv0icfgr43di6q3nvdzkx7-xz-5.2.5/bin:/gnu/store/4ic6244i3ca4b4rxc2wnrgllsidyishv-file-5.39/bin:/gnu/store/ahmmvw21p11ik80lg1f953y7fd8bqkjm-diffutils-3.8/bin:/gnu/store/z39hnrwds1dgcbpfgj8dnv2cngjb2xbl-patch-2.7.6/bin:/gnu/store/39rsx3nl4c31952jybbjb8d6idr5hx7r-findutils-4.8.0/bin:/gnu/store/690qz3fg334dpwn3pn6k59n4wc943p2b-gawk-5.1.0/bin:/gnu/store/wxgv6i8g0p24q5gcyzd0yr07s8kn9680-sed-4.8/bin:/gnu/store/xjwp2hsd9256icjjybfrmznppjicywf6-grep-3.6/bin:/gnu/store/d251rfgc9nm2clzffzhgiipdvfvzkvwi-coreutils-8.32/bin:/gnu/store/55cbpsi18mahg131nmiya6km5b4mscfa-make-4.3/bin:/gnu/store/4y5m9lb8k3qkb1y9m02sw9w9a6hacd16-bash-minimal-5.1.8/bin:/gnu/store/s2pg5k98fl2g2szg9dykxyd9zl3xihv9-ld-wrapper-0/bin:/gnu/store/rc781v4k0drhaqn90xfwwpspki5x0bvf-binutils-2.37/bin:/gnu/store/069aq2v993kpc41yabp5b6vm4wb9jkhg-gcc-10.3.0/bin:/gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33/bin:/gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33/sbin:/gnu/store/b6j1qw1a5rkbfvcy7lc9fm95abbzpa4x-python-3.9.9/bin:/gnu/store/i20kq00ymvnsjzawbrxy4qd3ps24zw0w-python-shiboken-2-5.15.2/bin' environment variable `GUIX_PYTHONPATH' set to `/gnu/store/6mpbm01w1hmajb70g8b2b8bbfjjci4sh-python-pyside-2-5.15.2/lib/python3.9/site-packages:/gnu/store/b6j1qw1a5rkbfvcy7lc9fm95abbzpa4x-python-3.9.9/lib/python3.9/site-packages:/gnu/store/i20kq00ymvnsjzawbrxy4qd3ps24zw0w-python-shiboken-2-5.15.2/lib/python3.9/site-packages' environment variable `PYTHONTZPATH' unset environment variable `BASH_LOADABLES_PATH' unset environment variable `C_INCLUDE_PATH' set to `/gnu/store/6mpbm01w1hmajb70g8b2b8bbfjjci4sh-python-pyside-2-5.15.2/include:/gnu/store/s3hl12jxz9ybs7nsy7kq7ybzz7qnzmsg-bzip2-1.0.8/include:/gnu/store/c8isj4jq6knv0icfgr43di6q3nvdzkx7-xz-5.2.5/include:/gnu/store/4ic6244i3ca4b4rxc2wnrgllsidyishv-file-5.39/include:/gnu/store/690qz3fg334dpwn3pn6k59n4wc943p2b-gawk-5.1.0/include:/gnu/store/55cbpsi18mahg131nmiya6km5b4mscfa-make-4.3/include:/gnu/store/rc781v4k0drhaqn90xfwwpspki5x0bvf-binutils-2.37/include:/gnu/store/069aq2v993kpc41yabp5b6vm4wb9jkhg-gcc-10.3.0/include:/gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33/include:/gnu/store/b6j1qw1a5rkbfvcy7lc9fm95abbzpa4x-python-3.9.9/include:/gnu/store/i20kq00ymvnsjzawbrxy4qd3ps24zw0w-python-shiboken-2-5.15.2/include:/gnu/store/6mjww4iz4xdan74d5bbjfh7il8rngfkk-linux-libre-headers-5.10.35/include' environment variable `CPLUS_INCLUDE_PATH' set to
Re: bug#55359: How do I extend openssh-service-type ?
Hi, Oleg Pykhalov skribis: >> (service-extension openssh-service-type >>(const `(("charlie" >> ,(local-file "charlie.pub") >> #+end_quote > > […] > > Seems like extend-openssh-authorized-keys procedure does not use keys > argument. We could fix it like: For the record, this bug (dismissing the ‘keys’ argument) was introduced in b4b2bbf4fb74c9f3e93d64863ab9b38957494b49 (Oct. 2021). How come nobody noticed then? The reason is that starting from b4b2bbf4fb74c9f3e93d64863ab9b38957494b49, ‘authorized-key-directory’ would create an empty directory. That directory would then be copied by ‘openssh-activation’ to /etc/ssh/authorized_keys.d; since /etc/ssh/authorized_keys.d would typically already contain the relevant keys, nothing bad would happen. Oleg’s commit 1f29ed4a812f86c45e2d9c37fd9f80f6d0418293 introduced another bug though: we’d create an authorized-key directory that included keys brought by extensions, but each of these files would be empty (because ‘extend-openssh-authorized-keys’ would dismiss key files associated with user names), which could lock yourself out. Fixed in 0dc63ce519c5f98b2186d1871176e2fac3a6926b. Reconfiguration recommended before you’re locked out! Thanks, Ludo’.
Re: /gnu/store
Hello Gottfried, are you using Guix System or Guix on a foreign distro? Gottfried writes: > Hi Guixers, > After guix pull und guix update I have a new Emacs Version, Emacs 28 > > 1. My earlier created icon for emacs, in Mate Desktop, opens the older > Version Emacs 27.2 > How to fix it? have you tried logging out and in? > 2. Opening /gnu/store/ in Mate Caja (File Manager) takes ages. AFAIK it takes ages in every file manager you'd better use "find" (man find) from your terminal if you want to find a package in /gnu/store, see below > To look for a the Emacs 28.1 file takes also ages. What is "the Emacs 28.1 file"? > Is there a quicker way to search for some directories in /gun/store? > May be in the terminal emulator? With which commands? yes: use the CLI in a terminal to have the (too long) directory listing: "ls -lah /gnu/store" to serach for every first level only directory having "emacs" in its name under /gnu/store: "find /gnu/store -maxdepth 1 -type d -name '*emacs*'" then you can inspect the store for each installed package, e.g. "/gnu/store/r1zd92x4bh8zfz16rj9gh66pr950x2zr-emacs-guix-0.5.2-5.c9aef52" with ls or Caja if you want > I want to change the command for opening emacs in the starter,now > version 27.2 change into emacs 28. So that the emacs icon in the toolbar > opens Emacs 28. Or is the simplest way deleting the icon and after every > new emacs version creating a new icon? You cannot change the .desktop files used to start applications installed via Guix since they are stored read-only in the store It's "just" a matter to refresh your graphical menu an usually we need to logout and login (at least on a foreign distro) > If I do a "emacs -ProfileManager" it opens the emacs 28 AFAIU you are starting emacs from a terminal, and yes: it starts emacs 28 because it does not use the *.desktop file used by the graphical menu (which have the 27.2 version hardcoded in it) > but does not give me a possibility to set a new Profile. AFAIK "ProfileManager" is not a valid emacs option :-) > 3. Can somebody explain to me the structure of /gnu/store? Please read the Guix manual at "8.9 The Store" AFAIK the store is set read-only **but** in any case /do not/ directly write to the store, it is accessed by the guix-daemon via the various "guix..." command use the guix cli (or the great emacs-guix interface [1]) to explore your packages (et al) [...] > The date is allways the same, it's a reproducibility requirement: our software is /eternal/ B-) [...] > thanks in advance > I am "hacking" at the basics > Gottfried Happy hacking! Gio' [1] I had to apply a workaround to make it working https://issues.guix.gnu.org/55013#2 [...] -- Giovanni Biscuolo Xelera IT Infrastructures