[PATCH] services: Remove etc-service procedure.

  • Done
  • quality assurance status badge
Details
2 participants
  • Ludovic Courtès
  • Bruno Victal
Owner
unassigned
Submitted by
Bruno Victal
Severity
normal
B
B
Bruno Victal wrote on 22 Feb 2023 01:09
(address . guix-patches@gnu.org)(name . Bruno Victal)(address . mirai@makinata.eu)
e4e6aba4ca5eca193c90fe166ba672bd8810d982.1677024379.git.mirai@makinata.eu
* gnu/services.scm (etc-service): Delete procedure.
* gnu/system.scm (operating-system-etc-service): Replace etc-service
with etc-service-type.
---

Note: This procedure is not documented in the manual so we skip the deprecation phase.

gnu/services.scm | 8 +-----
gnu/system.scm | 68 ++++++++++++++++++++++++------------------------
2 files changed, 35 insertions(+), 41 deletions(-)

Toggle diff (107 lines)
diff --git a/gnu/services.scm b/gnu/services.scm
index 2abef557d4..fd073b60dd 100644
--- a/gnu/services.scm
+++ b/gnu/services.scm
@@ -121,8 +121,7 @@ (define-module (gnu services)
linux-loadable-module-service-type
%boot-service
- %activation-service
- etc-service)
+ %activation-service)
#:re-export (;; Note: Re-export 'delete' to allow for proper syntax matching
;; in 'modify-services' forms. See
;; <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=26805#16>.
@@ -804,11 +803,6 @@ (define etc-service-type
(extend append)
(description "Populate the @file{/etc} directory.")))
-(define (etc-service files)
- "Return a new service of ETC-SERVICE-TYPE that populates /etc with FILES.
-FILES must be a list of name/file-like object pairs."
- (service etc-service-type files))
-
(define (setuid-program->activation-gexp programs)
"Return an activation gexp for setuid-program from PROGRAMS."
(let ((programs (map (lambda (program)
diff --git a/gnu/system.scm b/gnu/system.scm
index df60fda53b..779fe26049 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -1093,40 +1093,40 @@ (define* (operating-system-etc-service os)
# as those in ~/.guix-profile and /run/current-system/profile.
source /run/current-system/profile/etc/profile.d/bash_completion.sh
fi\n")))
- (etc-service
- `(("os-release" ,#~#$(os-release))
- ("services" ,(file-append net-base "/etc/services"))
- ("protocols" ,(file-append net-base "/etc/protocols"))
- ("rpc" ,(file-append net-base "/etc/rpc"))
- ("login.defs" ,#~#$login.defs)
- ("issue" ,#~#$issue)
- ,@(if nsswitch `(("nsswitch.conf" ,#~#$nsswitch)) '())
- ("profile" ,#~#$profile)
- ("bashrc" ,#~#$bashrc)
- ;; Write the operating-system-host-name to /etc/hostname to prevent
- ;; NetworkManager from changing the system's hostname when connecting
- ;; to certain networks. Some discussion at
- ;; https://lists.gnu.org/archive/html/help-guix/2017-09/msg00037.html
- ("hostname" ,(plain-file "hostname" (operating-system-host-name os)))
- ;; Some programs (e.g., GLib) look at /etc/timezone to find the
- ;; name of the current timezone. For details, see
- ;; https://lists.gnu.org/archive/html/guix-devel/2019-07/msg00166.html
- ;; Some programs expect a terminating newline.
- ("timezone" ,(plain-file "timezone"
- (string-append
- (string-trim-both
- (operating-system-timezone os))
- "\n")))
- ("localtime" ,(file-append tzdata "/share/zoneinfo/"
- (operating-system-timezone os)))
- ,@(if sudoers
- `(("sudoers" ,(validated-sudoers-file sudoers)))
- '())
- ,@(if hurd
- `(("login" ,(file-append hurd "/etc/login"))
- ("motd" ,(file-append hurd "/etc/motd"))
- ("ttys" ,(file-append hurd "/etc/ttys")))
- '())))))
+ (service etc-service-type
+ `(("os-release" ,#~#$(os-release))
+ ("services" ,(file-append net-base "/etc/services"))
+ ("protocols" ,(file-append net-base "/etc/protocols"))
+ ("rpc" ,(file-append net-base "/etc/rpc"))
+ ("login.defs" ,#~#$login.defs)
+ ("issue" ,#~#$issue)
+ ,@(if nsswitch `(("nsswitch.conf" ,#~#$nsswitch)) '())
+ ("profile" ,#~#$profile)
+ ("bashrc" ,#~#$bashrc)
+ ;; Write the operating-system-host-name to /etc/hostname to prevent
+ ;; NetworkManager from changing the system's hostname when connecting
+ ;; to certain networks. Some discussion at
+ ;; https://lists.gnu.org/archive/html/help-guix/2017-09/msg00037.html
+ ("hostname" ,(plain-file "hostname" (operating-system-host-name os)))
+ ;; Some programs (e.g., GLib) look at /etc/timezone to find the
+ ;; name of the current timezone. For details, see
+ ;; https://lists.gnu.org/archive/html/guix-devel/2019-07/msg00166.html
+ ;; Some programs expect a terminating newline.
+ ("timezone" ,(plain-file "timezone"
+ (string-append
+ (string-trim-both
+ (operating-system-timezone os))
+ "\n")))
+ ("localtime" ,(file-append tzdata "/share/zoneinfo/"
+ (operating-system-timezone os)))
+ ,@(if sudoers
+ `(("sudoers" ,(validated-sudoers-file sudoers)))
+ '())
+ ,@(if hurd
+ `(("login" ,(file-append hurd "/etc/login"))
+ ("motd" ,(file-append hurd "/etc/motd"))
+ ("ttys" ,(file-append hurd "/etc/ttys")))
+ '())))))
(define %root-account
;; Default root account.
--
2.39.1
B
B
Bruno Victal wrote on 23 Feb 2023 17:10
[PATCH v2] services: etc-service: Deprecate etc-service procedure.
(address . 61693@debbugs.gnu.org)(name . Bruno Victal)(address . mirai@makinata.eu)
17305168b7a65be0b9398951bf85abe3309f0494.1677168632.git.mirai@makinata.eu
* gnu/services.scm (etc-service): Deprecate procedure.
* gnu/system.scm (operating-system-etc-service): Replace etc-service
with etc-service-type.
---
gnu/services.scm | 6 +++--
gnu/system.scm | 68 ++++++++++++++++++++++++------------------------
2 files changed, 38 insertions(+), 36 deletions(-)

Toggle diff (112 lines)
diff --git a/gnu/services.scm b/gnu/services.scm
index 2abef557d4..d6c7ad0553 100644
--- a/gnu/services.scm
+++ b/gnu/services.scm
@@ -39,6 +39,7 @@ (define-module (gnu services)
#:use-module (guix modules)
#:use-module (guix packages)
#:use-module (guix utils)
+ #:use-module (guix deprecation)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages hurd)
@@ -122,7 +123,7 @@ (define-module (gnu services)
%boot-service
%activation-service
- etc-service)
+ etc-service) ; deprecated
#:re-export (;; Note: Re-export 'delete' to allow for proper syntax matching
;; in 'modify-services' forms. See
;; <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=26805#16>.
@@ -804,7 +805,8 @@ (define etc-service-type
(extend append)
(description "Populate the @file{/etc} directory.")))
-(define (etc-service files)
+(define-deprecated (etc-service files)
+ etc-service-type
"Return a new service of ETC-SERVICE-TYPE that populates /etc with FILES.
FILES must be a list of name/file-like object pairs."
(service etc-service-type files))
diff --git a/gnu/system.scm b/gnu/system.scm
index 53f3c62bb0..ca661c4d86 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -1092,40 +1092,40 @@ (define* (operating-system-etc-service os)
# as those in ~/.guix-profile and /run/current-system/profile.
source /run/current-system/profile/etc/profile.d/bash_completion.sh
fi\n")))
- (etc-service
- `(("os-release" ,#~#$(os-release))
- ("services" ,(file-append net-base "/etc/services"))
- ("protocols" ,(file-append net-base "/etc/protocols"))
- ("rpc" ,(file-append net-base "/etc/rpc"))
- ("login.defs" ,#~#$login.defs)
- ("issue" ,#~#$issue)
- ,@(if nsswitch `(("nsswitch.conf" ,#~#$nsswitch)) '())
- ("profile" ,#~#$profile)
- ("bashrc" ,#~#$bashrc)
- ;; Write the operating-system-host-name to /etc/hostname to prevent
- ;; NetworkManager from changing the system's hostname when connecting
- ;; to certain networks. Some discussion at
- ;; https://lists.gnu.org/archive/html/help-guix/2017-09/msg00037.html
- ("hostname" ,(plain-file "hostname" (operating-system-host-name os)))
- ;; Some programs (e.g., GLib) look at /etc/timezone to find the
- ;; name of the current timezone. For details, see
- ;; https://lists.gnu.org/archive/html/guix-devel/2019-07/msg00166.html
- ;; Some programs expect a terminating newline.
- ("timezone" ,(plain-file "timezone"
- (string-append
- (string-trim-both
- (operating-system-timezone os))
- "\n")))
- ("localtime" ,(file-append tzdata "/share/zoneinfo/"
- (operating-system-timezone os)))
- ,@(if sudoers
- `(("sudoers" ,(validated-sudoers-file sudoers)))
- '())
- ,@(if hurd
- `(("login" ,(file-append hurd "/etc/login"))
- ("motd" ,(file-append hurd "/etc/motd"))
- ("ttys" ,(file-append hurd "/etc/ttys")))
- '())))))
+ (service etc-service-type
+ `(("os-release" ,#~#$(os-release))
+ ("services" ,(file-append net-base "/etc/services"))
+ ("protocols" ,(file-append net-base "/etc/protocols"))
+ ("rpc" ,(file-append net-base "/etc/rpc"))
+ ("login.defs" ,#~#$login.defs)
+ ("issue" ,#~#$issue)
+ ,@(if nsswitch `(("nsswitch.conf" ,#~#$nsswitch)) '())
+ ("profile" ,#~#$profile)
+ ("bashrc" ,#~#$bashrc)
+ ;; Write the operating-system-host-name to /etc/hostname to prevent
+ ;; NetworkManager from changing the system's hostname when connecting
+ ;; to certain networks. Some discussion at
+ ;; https://lists.gnu.org/archive/html/help-guix/2017-09/msg00037.html
+ ("hostname" ,(plain-file "hostname" (operating-system-host-name os)))
+ ;; Some programs (e.g., GLib) look at /etc/timezone to find the
+ ;; name of the current timezone. For details, see
+ ;; https://lists.gnu.org/archive/html/guix-devel/2019-07/msg00166.html
+ ;; Some programs expect a terminating newline.
+ ("timezone" ,(plain-file "timezone"
+ (string-append
+ (string-trim-both
+ (operating-system-timezone os))
+ "\n")))
+ ("localtime" ,(file-append tzdata "/share/zoneinfo/"
+ (operating-system-timezone os)))
+ ,@(if sudoers
+ `(("sudoers" ,(validated-sudoers-file sudoers)))
+ '())
+ ,@(if hurd
+ `(("login" ,(file-append hurd "/etc/login"))
+ ("motd" ,(file-append hurd "/etc/motd"))
+ ("ttys" ,(file-append hurd "/etc/ttys")))
+ '())))))
(define %root-account
;; Default root account.
--
2.39.1
B
B
Bruno Victal wrote on 13 Mar 2023 18:36
[PATCH v3] services: etc-service: Deprecate etc-service procedure.
(address . 61693@debbugs.gnu.org)(name . Bruno Victal)(address . mirai@makinata.eu)
83cc0ca68a18f451ef9d2e888707e1977701f91d.1678728933.git.mirai@makinata.eu
* gnu/services.scm (etc-service): Deprecate procedure.
* gnu/system.scm (operating-system-etc-service): Replace etc-service
with etc-service-type.
---

Changes from v2 to v3:
* Resolved merge conflict.

gnu/services.scm | 6 ++++--
gnu/system.scm | 2 +-
2 files changed, 5 insertions(+), 3 deletions(-)

Toggle diff (46 lines)
diff --git a/gnu/services.scm b/gnu/services.scm
index 2abef557d4..d6c7ad0553 100644
--- a/gnu/services.scm
+++ b/gnu/services.scm
@@ -39,6 +39,7 @@ (define-module (gnu services)
#:use-module (guix modules)
#:use-module (guix packages)
#:use-module (guix utils)
+ #:use-module (guix deprecation)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages hurd)
@@ -122,7 +123,7 @@ (define-module (gnu services)
%boot-service
%activation-service
- etc-service)
+ etc-service) ; deprecated
#:re-export (;; Note: Re-export 'delete' to allow for proper syntax matching
;; in 'modify-services' forms. See
;; <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=26805#16>.
@@ -804,7 +805,8 @@ (define etc-service-type
(extend append)
(description "Populate the @file{/etc} directory.")))
-(define (etc-service files)
+(define-deprecated (etc-service files)
+ etc-service-type
"Return a new service of ETC-SERVICE-TYPE that populates /etc with FILES.
FILES must be a list of name/file-like object pairs."
(service etc-service-type files))
diff --git a/gnu/system.scm b/gnu/system.scm
index 887e537b48..48cc68f449 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -1090,7 +1090,7 @@ (define* (operating-system-etc-service os)
# as those in ~/.guix-profile and /run/current-system/profile.
source /run/current-system/profile/etc/profile.d/bash_completion.sh
fi\n")))
- (etc-service
+ (service etc-service-type
`(("os-release" ,os-release)
("services" ,(file-append net-base "/etc/services"))
("protocols" ,(file-append net-base "/etc/protocols"))
--
2.39.1
L
L
Ludovic Courtès wrote on 14 Mar 2023 15:42
Re: bug#61693: [PATCH] services: Remove etc-service procedure.
(name . Bruno Victal)(address . mirai@makinata.eu)(address . 61693@debbugs.gnu.org)
87r0tr4cnj.fsf@inria.fr
Hi,

Bruno Victal <mirai@makinata.eu> skribis:

Toggle quote (4 lines)
> * gnu/services.scm (etc-service): Deprecate procedure.
> * gnu/system.scm (operating-system-etc-service): Replace etc-service
> with etc-service-type.

[...]

Toggle quote (4 lines)
> - ("issue" ,#~#$issue)
> - ,@(if nsswitch `(("nsswitch.conf" ,#~#$nsswitch)) '())
> - ("profile" ,#~#$profile)

I realize this should be updated now that I’ve applied your #~#$
simplifications. Could you rebase it?

Apologies for the delay *and* for the extra work!

Thanks,
Ludo’.
B
B
Bruno Victal wrote on 14 Mar 2023 16:46
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 61693@debbugs.gnu.org)
68989144-bd72-eb12-069a-9dfdd69cd72d@makinata.eu
Hi Ludo’,

On 2023-03-14 14:42, Ludovic Courtès wrote:
Toggle quote (17 lines)
> Hi,
>
> Bruno Victal <mirai@makinata.eu> skribis:
>
>> * gnu/services.scm (etc-service): Deprecate procedure.
>> * gnu/system.scm (operating-system-etc-service): Replace etc-service
>> with etc-service-type.
>
> [...]
>
>> - ("issue" ,#~#$issue)
>> - ,@(if nsswitch `(("nsswitch.conf" ,#~#$nsswitch)) '())
>> - ("profile" ,#~#$profile)
>
> I realize this should be updated now that I’ve applied your #~#$
> simplifications. Could you rebase it?

Already rebased with v3 [1].


Cheers,
Bruno
L
L
Ludovic Courtès wrote on 16 Mar 2023 11:52
(name . Bruno Victal)(address . mirai@makinata.eu)(address . 61693-done@debbugs.gnu.org)
87lejxge8g.fsf_-_@gnu.org
Hi,

Bruno Victal <mirai@makinata.eu> skribis:

Toggle quote (8 lines)
> * gnu/services.scm (etc-service): Deprecate procedure.
> * gnu/system.scm (operating-system-etc-service): Replace etc-service
> with etc-service-type.
> ---
>
> Changes from v2 to v3:
> * Resolved merge conflict.

Applied, thanks! And apologies again for the merge conflict.

Ludo’.
Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 61693@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 61693
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch