all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* New reconfigure, creating a file under /etc
@ 2019-10-07  0:12 SuarezMiguelC via
  2019-10-07  2:12 ` John Soo
  2019-10-07  7:03 ` Efraim Flashner
  0 siblings, 2 replies; 5+ messages in thread
From: SuarezMiguelC via @ 2019-10-07  0:12 UTC (permalink / raw)
  To: help-guix@gnu.org

Hello help guix!, I'm trying to make a reconfigure, where I create a file under /etc.

This because, since I'm using gnome as my desktop environment, I want to add some functionalities on it to be more 'connected' to GuixSD, especifically, create the file 'os-release' with the content 'PRETTY_NAME=Guix-System"', this will make gnome to identify the system and display it on settings, thus a better natural 'connection' between gnome and guix.

Using 'etc-service-type' on my new reconfigure, it looks like this:

  (services
    (append
     (list (service gnome-desktop-service-type)
   (service etc-service-type
    (list `("os-release" ,(plain-file "os-release"
      "PRETTY_NAME=Guix-System"))))
   (set-xorg-configuration
    (xorg-configuration
     (keyboard-layout keyboard-layout))))
     %desktop-services)))

Trying to run this reconfigure will cause an error for 'more than one etc service', so I guess I don't have the correct syntax, I've on the IRC chat, but no response, because of this, I write an e-mail.

Thanks in advantage!

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: New reconfigure, creating a file under /etc
  2019-10-07  0:12 New reconfigure, creating a file under /etc SuarezMiguelC via
@ 2019-10-07  2:12 ` John Soo
  2019-10-07  6:30   ` Gábor Boskovits
  2019-10-07  7:03 ` Efraim Flashner
  1 sibling, 1 reply; 5+ messages in thread
From: John Soo @ 2019-10-07  2:12 UTC (permalink / raw)
  To: SuarezMiguelC; +Cc: help-guix@gnu.org

Hi there,

> (services
>    (append
>     (list (service gnome-desktop-service-type)
>   (service etc-service-type
>    (list `("os-release" ,(plain-file "os-release"
>      "PRETTY_NAME=Guix-System"))))
>   (set-xorg-configuration
>    (xorg-configuration
>     (keyboard-layout keyboard-layout))))
>     %desktop-services)))
> 
> Trying to run this reconfigure will cause an error for 'more than one etc service'

You will want to use modify-services to modify the existing etc-service in %desktop-services. Check out the services reference in the manual:
https://guix.gnu.org/manual/en/html_node/Service-Reference.html

An example might be:

(modify-services %desktop-services
  (etc-service-type conf 
    (do-something-to conf)))

Then you can append the new ones onto the modified services. 

Hope that helps,

John

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: New reconfigure, creating a file under /etc
  2019-10-07  2:12 ` John Soo
@ 2019-10-07  6:30   ` Gábor Boskovits
  0 siblings, 0 replies; 5+ messages in thread
From: Gábor Boskovits @ 2019-10-07  6:30 UTC (permalink / raw)
  To: John Soo; +Cc: help-guix, SuarezMiguelC

John Soo <jsoo1@asu.edu> ezt írta (időpont: 2019. okt. 7., Hét 4:12):

> Hi there,
>
> > (services
> >    (append
> >     (list (service gnome-desktop-service-type)
> >   (service etc-service-type
> >    (list `("os-release" ,(plain-file "os-release"
> >      "PRETTY_NAME=Guix-System"))))
> >   (set-xorg-configuration
> >    (xorg-configuration
> >     (keyboard-layout keyboard-layout))))
> >     %desktop-services)))
> >
> > Trying to run this reconfigure will cause an error for 'more than one
> etc service'
>
> You will want to use modify-services to modify the existing etc-service in
> %desktop-services. Check out the services reference in the manual:
> https://guix.gnu.org/manual/en/html_node/Service-Reference.html
>
> An example might be:
>
> (modify-services %desktop-services
>   (etc-service-type conf
>     (do-something-to conf)))
>
> Then you can append the new ones onto the modified services.
>
If you just want to add a file, you could extend it using
extra-special-file.

>
>
> Hope that helps,
>
> John
>
>
>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: New reconfigure, creating a file under /etc
  2019-10-07  0:12 New reconfigure, creating a file under /etc SuarezMiguelC via
  2019-10-07  2:12 ` John Soo
@ 2019-10-07  7:03 ` Efraim Flashner
  2019-10-09  8:11   ` Giovanni Biscuolo
  1 sibling, 1 reply; 5+ messages in thread
From: Efraim Flashner @ 2019-10-07  7:03 UTC (permalink / raw)
  To: SuarezMiguelC; +Cc: help-guix@gnu.org

[-- Attachment #1: Type: text/plain, Size: 1594 bytes --]

Here's the code I have for /etc/os-release. I defined %os-release-file
at the top to keep my actual services list a bit shorter. The '@'
notation is a short-cut to not need to actually import (guix packages)
or (gnu packages package-management) in my config.

Then later when adding the other services the 'simple-service' can just
be added in and it'll be combined with the other 'etc-service-type'
services to create a unified /etc.

(define %os-release-file
  (plain-file "os-release"
              (string-append
                "NAME=\"Guix System\"\n"
                "PRETTY_NAME=\"Guix System\"\n"
                "VERSION=\""((@ (guix packages) package-version) (@ (gnu packages package-management) guix))"\"\n"
                "ID=guix\n"
                "HOME_URL=\"https://www.gnu.org/software/guix/\"\n"
                "SUPPORT_URL=\"https://www.gnu.org/software/guix/help/\"\n"
                "BUG_REPORT_URL=\"mailto:bug-guix@gnu.org\"\n")))

(simple-service 'os-release etc-service-type
                `(("os-release" ,%os-release-file)))

and here's what it looks like:

efraim@E5400 ~$ cat /etc/os-release 
NAME="Guix System"
PRETTY_NAME="Guix System"
VERSION="1.0.1-6.0ed97e6"
ID=guix
HOME_URL="https://www.gnu.org/software/guix/"
SUPPORT_URL="https://www.gnu.org/software/guix/help/"
BUG_REPORT_URL="mailto:bug-guix@gnu.org"

-- 
Efraim Flashner   <efraim@flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: New reconfigure, creating a file under /etc
  2019-10-07  7:03 ` Efraim Flashner
@ 2019-10-09  8:11   ` Giovanni Biscuolo
  0 siblings, 0 replies; 5+ messages in thread
From: Giovanni Biscuolo @ 2019-10-09  8:11 UTC (permalink / raw)
  To: Efraim Flashner; +Cc: help-guix@gnu.org

Hi Efraim,

thanks for the very interesting example!

Efraim Flashner <efraim@flashner.co.il> writes:

[...]

> (define %os-release-file
>   (plain-file "os-release"
>               (string-append
>                 "NAME=\"Guix System\"\n"
>                 "PRETTY_NAME=\"Guix System\"\n"
>                 "VERSION=\""((@ (guix packages) package-version) (@ (gnu packages package-management) guix))"\"\n"
>                 "ID=guix\n"
>                 "HOME_URL=\"https://www.gnu.org/software/guix/\"\n"
>                 "SUPPORT_URL=\"https://www.gnu.org/software/guix/help/\"\n"
>                 "BUG_REPORT_URL=\"mailto:bug-guix@gnu.org\"\n")))
>
> (simple-service 'os-release etc-service-type
>                 `(("os-release" ,%os-release-file)))

[...]

IMHO this is a perfect candidate - whith many other replies in help-guix
- for the Guix Cookbook (thanks Ricardo for creating it!): what about to
expand your example in a patch for the cookbook? :-)

Thanks! Gio'

-- 
Giovanni Biscuolo

Xelera IT Infrastructures

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2019-10-09  8:11 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-10-07  0:12 New reconfigure, creating a file under /etc SuarezMiguelC via
2019-10-07  2:12 ` John Soo
2019-10-07  6:30   ` Gábor Boskovits
2019-10-07  7:03 ` Efraim Flashner
2019-10-09  8:11   ` Giovanni Biscuolo

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.