[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
?