Message ID | 20210810200756.9581-3-mail@muradm.net |
---|---|
State | Accepted |
Headers | show |
Series | gnu: desktop: Add seatd-service-type and greetd-service-type | expand |
Context | Check | Description |
---|---|---|
cbaines/comparison | success | View comparision |
cbaines/git branch | success | View Git branch |
cbaines/applying patch | fail | View Laminar job |
cbaines/issue | success | View issue |
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. > + (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? > + #t)))))) Phases don’t need to return #t once the ‘core-updates’ branch gets merged. > + (native-inputs > + `(("linux-pam" ,linux-pam) > + ("scdoc" ,scdoc))) > + (synopsis > + "greetd is a minimal and flexible login manager daemon > +that makes no assumptions about what you want to launch.") The synosis is a bit long, maybe Minimal and flexible login manager daemon > + (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?
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 >> + (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 >> + #t)))))) > > Phases don’t need to return #t once the ‘core-updates’ branch > gets > merged. > Left over, i was using this to fail package build, noted for next update, thanks >> + (native-inputs >> + `(("linux-pam" ,linux-pam) >> + ("scdoc" ,scdoc))) >> + (synopsis >> + "greetd is a minimal and flexible login manager daemon >> +that makes no assumptions about what you want to launch.") > > The synosis is a bit long, maybe > > Minimal and flexible login manager daemon > Noted for next update, thanks >> + (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 :)
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 ;-)
Xinglu Chen <public@yoctocell.xyz> writes: > 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. > Yeah, you are right, there was wrong excursions when i tested, now works as expected, i think i just forgot to delete this comment, thanks. >>>> + (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 ;-) /gnu/store/....-missiles-1.01/bin/launch why not? :D in next update, i will try to put some more sentences from greetd description, it might be more useful may be.
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) + (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) + #t)))))) + (native-inputs + `(("linux-pam" ,linux-pam) + ("scdoc" ,scdoc))) + (synopsis + "greetd is a minimal and flexible login manager daemon +that makes no assumptions about what you want to launch.") + (description + "greetd is a minimal and flexible login manager daemon +that makes no assumptions about what you want to launch.") + (license license:gpl3+))) + (define-public packagekit (package (name "packagekit")