Re: /gnu/store

2022-05-26 Thread Thiago Jung Bauermann


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

2022-05-26 Thread Matt


  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?

2022-05-26 Thread kiasoc5
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

2022-05-26 Thread Luis Felipe
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 ?

2022-05-26 Thread Ludovic Courtès
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

2022-05-26 Thread Giovanni Biscuolo
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