[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#49969] [PATCH v2 3/7] gnu: freedesktop: Add greetd 0.7.0
From: |
Xinglu Chen |
Subject: |
[bug#49969] [PATCH v2 3/7] gnu: freedesktop: Add greetd 0.7.0 |
Date: |
Thu, 12 Aug 2021 13:45:25 +0200 |
On Wed, Aug 11 2021, muradm wrote:
> Xinglu Chen <public@yoctocell.xyz> writes:
>
>> On Tue, Aug 10 2021, muradm wrote:
>>
>>> * gnu/packages/freedesktop.scm (greetd): Add greetd 0.7.0
>>> ---
>>> gnu/packages/freedesktop.scm | 80
>>> ++++++++++++++++++++++++++++++++++++
>>> 1 file changed, 80 insertions(+)
>>>
>>> diff --git a/gnu/packages/freedesktop.scm
>>> b/gnu/packages/freedesktop.scm
>>> index 693a79c738..631d36e765 100644
>>> --- a/gnu/packages/freedesktop.scm
>>> +++ b/gnu/packages/freedesktop.scm
>>> @@ -24,6 +24,7 @@
>>> ;;; Copyright © 2020 Raghav Gururajan
>>> <raghavgururajan@disroot.org>
>>> ;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
>>> ;;; Copyright © 2021 pineapples <guixuser6392@protonmail.com>
>>> +;;; Copyright © 2021 muradm <mail@muradm.net>
>>> ;;;
>>> ;;; This file is part of GNU Guix.
>>> ;;;
>>> @@ -46,6 +47,7 @@
>>> #:use-module (guix packages)
>>> #:use-module (guix download)
>>> #:use-module (guix git-download)
>>> + #:use-module (guix build-system cargo)
>>> #:use-module (guix build-system cmake)
>>> #:use-module (guix build-system gnu)
>>> #:use-module (guix build-system meson)
>>> @@ -62,6 +64,7 @@
>>> #:use-module (gnu packages check)
>>> #:use-module (gnu packages cmake)
>>> #:use-module (gnu packages compression)
>>> + #:use-module (gnu packages crates-io)
>>> #:use-module (gnu packages cryptsetup)
>>> #:use-module (gnu packages databases)
>>> #:use-module (gnu packages disk)
>>> @@ -862,6 +865,83 @@ that require it. It also provides a
>>> universal seat management library that
>>> allows applications to use whatever seat management is
>>> available.")
>>> (license license:expat)))
>>>
>>> +(define-public greetd
>>> + (package
>>> + (name "greetd")
>>> + (version "0.7.0")
>>> + (home-page "https://git.sr.ht/~kennylevinsen/greetd")
>>> + (source (origin
>>> + (method git-fetch)
>>> + (uri (git-reference
>>> + (url home-page)
>>> + (commit version)))
>>> + (file-name (git-file-name name version))
>>> + (sha256
>>> + (base32
>>> "0lmwr5ld9x2wlq00i7mjgm9by8zndiq9girj8g93k0kww9zbgr3g"))))
>>> + (build-system cargo-build-system)
>>> + (arguments
>>> + `(#:cargo-inputs
>>> + (("rust-nix" ,rust-nix-0.17)
>>> + ("rust-pam-sys" ,rust-pam-sys-0.5.6)
>>> + ("rust-rpassword" ,rust-rpassword-4)
>>> + ("rust-users" ,rust-users-0.9)
>>> + ("rust-serde" ,rust-serde-1)
>>> + ("rust-serde-json" ,rust-serde-json-1)
>>> + ("rust-libc" ,rust-libc-0.2)
>>> + ("rust-tokio" ,rust-tokio-0.2)
>>> + ("rust-getopts" ,rust-getopts-0.2)
>>> + ("rust-thiserror" ,rust-thiserror-1)
>>> + ("rust-async-trait" ,rust-async-trait-0.1)
>>> + ("rust-enquote" ,rust-enquote-1))
>>> + #:phases
>>> + (modify-phases %standard-phases
>>> + ;; once https://todo.sr.ht/~kennylevinsen/greetd/25
>>> + ;; is solved, below patch can be removed
>>> + (add-after 'unpack 'patch-terminal-switch
>>> + (lambda* (#:key inputs #:allow-other-keys)
>>> + (substitute* "greetd/src/server.rs"
>>> + (("switch: true,")
>>> + "switch: false,"))))
>>> + (delete 'package)
>>> + (replace 'install
>>> + (lambda* (#:key inputs outputs #:allow-other-keys)
>>> + (let* ((out (assoc-ref outputs "out"))
>>> + (bin (string-append out "/bin"))
>>> + (sbin (string-append out "/sbin"))
>>> + (share (string-append out "/share"))
>>> + (man (string-append share "/man"))
>>> + (man1 (string-append man "/man1"))
>>> + (man5 (string-append man "/man5"))
>>> + (man7 (string-append man "/man7"))
>>> + (release "target/release")
>>> + (greetd-bin (string-append release
>>> "/greetd"))
>>> + (agreety-bin (string-append release
>>> "/agreety")))
>>> + (install-file greetd-bin sbin)
>>> + (install-file agreety-bin bin)
>>> + (mkdir-p man1)
>>> + (mkdir-p man5)
>>> + (mkdir-p man7)
>>
>> No need to ‘mkdir-p’ if you will call ‘install-file’ on the
>> directory.
>>
>
> Didn't work for me, without it I get:
> In procedure copy-file: No such file or directory
Hmm, weird, the docs for ‘install-file’ says
-- Scheme Procedure: install-file FILE DIRECTORY
Create DIRECTORY if it does not exist and copy FILE in there under
the same name.
>>> + (with-directory-excursion "man"
>>> + (system "scdoc < greetd-1.scd > greetd.1")
>>> + (system "scdoc < greetd-5.scd > greetd.5")
>>> + (system "scdoc < greetd-ipc-7.scd >
>>> greetd-ipc.7")
>>> + (system "scdoc < agreety-1.scd > agreety.1"))
>>> + (install-file "man/greetd.1" man1)
>>> + (install-file "man/greetd.5" man5)
>>> + (install-file "man/greetd-ipc.7" man7)
>>> + (install-file "man/agreety.1" man1)
>>
>> Why not put these four lines inside the
>> (with-directory-excursion "man"
>> …) form, and remove the "man" prefix?
>>
>
> Refactored, scdoc moved to 'build-man-pages after 'build, install
> minimized
>
> (add-after 'build 'build-man-pages
> (lambda* (#:key inputs #:allow-other-keys)
> (define (scdoc-cmd doc lvl)
> (system (string-append "scdoc < "
> doc "-" lvl ".scd > "
> doc "." lvl)))
> (with-directory-excursion "man"
> (scdoc-cmd "greetd" "1")
> (scdoc-cmd "greetd" "5")
> (scdoc-cmd "greetd-ipc" "7")
> (scdoc-cmd "agreety" "1"))))
> (replace 'install
> (lambda* (#:key inputs outputs #:allow-other-keys)
> (let* ((out (assoc-ref outputs "out"))
> (bin (string-append out "/bin"))
> (sbin (string-append out "/sbin"))
> (share (string-append out "/share"))
> (man (string-append share "/man"))
> (man1 (string-append man "/man1"))
> (man5 (string-append man "/man5"))
> (man7 (string-append man "/man7"))
> (release "target/release")
> (greetd-bin (string-append release "/greetd"))
> (agreety-bin (string-append release
> "/agreety")))
> (install-file greetd-bin sbin)
> (install-file agreety-bin bin)
> (with-directory-excursion "man"
> (install-file "greetd.1" man1)
> (install-file "greetd.5" man5)
> (install-file "greetd-ipc.7" man7)
> (install-file "agreety.1" man1))))))))
>
> Noted for next update, thanks
The phases LGTM!
>>> + (description
>>> + "greetd is a minimal and flexible login manager daemon
>>> +that makes no assumptions about what you want to launch.")
>>
>> “what you want to launch” sounds a bit vague, is it referring to
>> desktop
>> environment, window manager, or something else?
>
> As description says anything, it is from official documentation.
> Launches any thing,
> could be DE, WM, Emacs, top etc. literally any thing :)
Ah, OK, then maybe “what program” instead of just “what”? Someone might
try to launch a missile with it ;-)
signature.asc
Description: PGP signature
[bug#49969] [PATCH v2 5/7] gnu: desktop: Add seatd-service-type, muradm, 2021/08/10
[bug#49969] [PATCH v2 4/7] gnu: admin: Add greetd-pam-mount, muradm, 2021/08/10
[bug#49969] [PATCH v2 7/7] doc: Add desktop seatd-service-type and greetd-service-type, muradm, 2021/08/10
[bug#49969] [PATCH v2 6/7] gnu: desktop: Add greetd-service-type, muradm, 2021/08/10
[bug#49969] [PATCH 00/10] gnu: desktop: Add seatd-service-type and greetd-service-type, muradm, 2021/08/12