Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package greetd for openSUSE:Factory checked in at 2023-01-31 16:09:08 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/greetd (Old) and /work/SRC/openSUSE:Factory/.greetd.new.32243 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "greetd" Tue Jan 31 16:09:08 2023 rev:11 rq:1062088 version:0.9.0 Changes: -------- --- /work/SRC/openSUSE:Factory/greetd/greetd.changes 2022-05-25 20:35:24.220298093 +0200 +++ /work/SRC/openSUSE:Factory/.greetd.new.32243/greetd.changes 2023-01-31 16:09:34.321886327 +0100 @@ -1,0 +2,18 @@ +Mon Jan 30 15:18:48 UTC 2023 - Filippo Bonazzi <[email protected]> + +- Update to version 0.9.0: + * Revert "Remove 'env' from start_session" + * ipc: ensure backward compatibility of the protocol + * Change order of setting pam environment variables + * fakegreet: reset state on errors + * For FUSE-based home folders, chdir into them as the user instead of root + * Use /bin/sh instead of $SHELL + * cargo: Update dependencies + +------------------------------------------------------------------- +Tue Aug 2 21:12:29 UTC 2022 - llyyr <[email protected]> + +- Put greetd.pam in the right directory. + greetd checks for the pam file in /etc/pam.d/, not in /lib/pam.d/ + +------------------------------------------------------------------- Old: ---- greetd-0.8.0.obscpio New: ---- greetd-0.9.0.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ greetd.spec ++++++ --- /var/tmp/diff_new_pack.6tbQHH/_old 2023-01-31 16:09:35.333892113 +0100 +++ /var/tmp/diff_new_pack.6tbQHH/_new 2023-01-31 16:09:35.341892159 +0100 @@ -1,7 +1,7 @@ # # spec file for package greetd # -# Copyright (c) 2022 SUSE LLC +# Copyright (c) 2023 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -19,12 +19,12 @@ %if 0%{?suse_version} >= 1550 %define _config_norepl %nil %else - %define _pam_vendordir %{_sysconfdir}/pam.d + %define _pam_confdir %{_sysconfdir}/pam.d %define _config_norepl %config(noreplace) %endif Name: greetd -Version: 0.8.0 +Version: 0.9.0 Release: 0 Summary: Minimal and flexible login manager daemon License: GPL-3.0-only @@ -68,7 +68,7 @@ install -D -m 0644 %{name}.service %{buildroot}/%{_unitdir}/%{name}.service -install -D -m 0644 %{SOURCE3} %{buildroot}/%{_pam_vendordir}/greetd +install -D -m 0644 %{SOURCE3} %{buildroot}/%{_pam_confdir}/greetd install -d %{buildroot}%{_localstatedir}/cache/greetd install -d %{buildroot}%{_localstatedir}/lib/greetd @@ -98,7 +98,7 @@ %{_unitdir}/%{name}.service %dir %{_sysconfdir}/%{name} %attr(644,greeter,greeter) %config(noreplace) %{_sysconfdir}/%{name}/config.toml -%_config_norepl %{_pam_vendordir}/greetd +%_config_norepl %{_pam_confdir}/greetd %ghost %attr(711,root,greeter) %dir /run/greetd/ %ghost %attr(750,greeter,greeter) %dir %{_localstatedir}/lib/greetd/ %ghost %dir %{_localstatedir}/cache/greetd/ ++++++ _service ++++++ --- /var/tmp/diff_new_pack.6tbQHH/_old 2023-01-31 16:09:35.377892365 +0100 +++ /var/tmp/diff_new_pack.6tbQHH/_new 2023-01-31 16:09:35.381892388 +0100 @@ -2,7 +2,7 @@ <service name="obs_scm" mode="disabled"> <param name="url">https://git.sr.ht/~kennylevinsen/greetd</param> <param name="scm">git</param> - <param name="revision">0.8.0</param> + <param name="revision">0.9.0</param> <param name="versionformat">@PARENT_TAG@</param> <param name="versionrewrite-pattern">v(.*)</param> </service> ++++++ greetd-0.8.0.obscpio -> greetd-0.9.0.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/greetd-0.8.0/Cargo.lock new/greetd-0.9.0/Cargo.lock --- old/greetd-0.8.0/Cargo.lock 2021-09-05 21:15:06.000000000 +0200 +++ new/greetd-0.9.0/Cargo.lock 2023-01-06 00:25:45.000000000 +0100 @@ -4,7 +4,7 @@ [[package]] name = "agreety" -version = "0.8.0" +version = "0.9.0" dependencies = [ "enquote", "getopts", @@ -15,16 +15,10 @@ ] [[package]] -name = "arc-swap" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b585a98a234c46fc563103e9278c9391fde1f4e6850334da895d27edb9580f62" - -[[package]] name = "async-trait" -version = "0.1.31" +version = "0.1.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26c4f3195085c36ea8d24d32b2f828d23296a9370a28aa39d111f6f16bef9f3b" +checksum = "677d1d8ab452a3936018a687b20e6f7cf5363d713b732b8884001317b0e48aa3" dependencies = [ "proc-macro2", "quote", @@ -33,33 +27,21 @@ [[package]] name = "autocfg" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "bitflags" -version = "1.2.1" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bytes" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b700ce4376041dcd0a327fd0097c41095743c4c8af8887265942faf1100bd040" - -[[package]] -name = "cc" -version = "1.0.53" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "404b1fe4f65288577753b17e3b36a04596ee784493ec249bf81c7f2d2acd751c" - -[[package]] -name = "cfg-if" -version = "0.1.10" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" +checksum = "dfb24e866b15a1af2a1b663f10c6b6b8f397a84aadb828f12e5b289ec23a3a3c" [[package]] name = "cfg-if" @@ -69,13 +51,16 @@ [[package]] name = "enquote" -version = "1.0.3" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ec878a5d2f3b6e9eaee72373dd23414cfc7d353104741471bec712ef241a66e" +checksum = "06c36cb11dbde389f4096111698d8b567c0720e3452fd5ac3e6b4e47e1939932" +dependencies = [ + "thiserror", +] [[package]] name = "fakegreet" -version = "0.8.0" +version = "0.9.0" dependencies = [ "greetd_ipc", "serde", @@ -94,7 +79,7 @@ [[package]] name = "greetd" -version = "0.8.0" +version = "0.9.0" dependencies = [ "async-trait", "enquote", @@ -113,7 +98,7 @@ [[package]] name = "greetd_ipc" -version = "0.8.0" +version = "0.9.0" dependencies = [ "async-trait", "serde", @@ -128,82 +113,67 @@ [[package]] name = "itoa" -version = "0.4.5" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8b7a7c0c47db5545ed3fef7468ee7bb5b74691498139e4b3f6a20685dc6dd8e" +checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440" [[package]] name = "libc" -version = "0.2.82" +version = "0.2.139" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89203f3fba0a3795506acaad8ebce3c80c0af93f994d5a1d7a0b1eeb23271929" +checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79" [[package]] name = "log" -version = "0.4.8" +version = "0.4.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7" +checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" dependencies = [ - "cfg-if 0.1.10", + "cfg-if", ] [[package]] name = "memchr" -version = "2.3.3" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400" +checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" [[package]] -name = "mio" -version = "0.7.7" +name = "memoffset" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e50ae3f04d169fcc9bde0b547d1c205219b7157e07ded9c5aff03e0637cb3ed7" +checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" dependencies = [ - "libc", - "log", - "miow", - "ntapi", - "winapi", + "autocfg", ] [[package]] -name = "miow" -version = "0.3.6" +name = "mio" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a33c1b55807fbed163481b5ba66db4b2fa6cde694a5027be10fb724206c5897" +checksum = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de" dependencies = [ - "socket2", - "winapi", + "libc", + "log", + "wasi", + "windows-sys", ] [[package]] name = "nix" -version = "0.19.1" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2ccba0cfe4fdf15982d1674c69b1fd80bad427d293849982668dfe454bd61f2" +checksum = "46a58d1d356c6597d08cde02c2f09d785b09e28711837b1ed667dc652c08a694" dependencies = [ "bitflags", - "cc", - "cfg-if 1.0.0", + "cfg-if", "libc", + "memoffset", + "pin-utils", + "static_assertions", ] [[package]] -name = "ntapi" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a31937dea023539c72ddae0e3571deadc1414b300483fa7aaec176168cfa9d2" -dependencies = [ - "winapi", -] - -[[package]] -name = "once_cell" -version = "1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13bd41f508810a131401606d54ac32a467c97172d74ba7662562ebba5ad07fa0" - -[[package]] name = "pam-sys" version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -214,33 +184,39 @@ [[package]] name = "pin-project-lite" -version = "0.2.4" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" + +[[package]] +name = "pin-utils" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439697af366c49a6d0a010c56a0d97685bc140ce0d377b13a2ea2aa42d64a827" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "proc-macro2" -version = "1.0.12" +version = "1.0.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8872cf6f48eee44265156c111456a700ab3483686b3f96df4cf5481c89157319" +checksum = "57a8eca9f9c4ffde41714334dee777596264c7825420f521abc92b5b5deb63a5" dependencies = [ - "unicode-xid", + "unicode-ident", ] [[package]] name = "quote" -version = "1.0.5" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42934bc9c8ab0d3b273a16d8551c8f0fcff46be73276ca083ec2414c15c4ba5e" +checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b" dependencies = [ "proc-macro2", ] [[package]] name = "rpassword" -version = "5.0.0" +version = "5.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d755237fc0f99d98641540e66abac8bc46a0652f19148ac9e21de2da06b326c9" +checksum = "ffc936cf8a7ea60c58f030fd36a612a48f440610214dc54bc36431f9ea0c3efb" dependencies = [ "libc", "winapi", @@ -248,24 +224,24 @@ [[package]] name = "ryu" -version = "1.0.4" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed3d612bc64430efeb3f7ee6ef26d590dce0c43249217bddc62112540c7941e1" +checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde" [[package]] name = "serde" -version = "1.0.110" +version = "1.0.152" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99e7b308464d16b56eba9964e4972a3eee817760ab60d88c3f86e1fecb08204c" +checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.110" +version = "1.0.152" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "818fbf6bfa9a42d3bfcaca148547aa00c7b915bec71d1757aa2d44ca68771984" +checksum = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e" dependencies = [ "proc-macro2", "quote", @@ -274,9 +250,9 @@ [[package]] name = "serde_json" -version = "1.0.53" +version = "1.0.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "993948e75b189211a9b31a7528f950c6adc21f9720b6438ff80a7fa2f864cea2" +checksum = "877c235533714907a8c2464236f5c4b2a17262ef1bd71f38f35ea592c8da6883" dependencies = [ "itoa", "ryu", @@ -285,50 +261,54 @@ [[package]] name = "signal-hook-registry" -version = "1.2.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94f478ede9f64724c5d173d7bb56099ec3e2d9fc2774aac65d34b8b890405f41" +checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" dependencies = [ - "arc-swap", "libc", ] [[package]] name = "socket2" -version = "0.3.19" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "122e570113d28d773067fab24266b66753f6ea915758651696b6e35e49f88d6e" +checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" dependencies = [ - "cfg-if 1.0.0", "libc", "winapi", ] [[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] name = "syn" -version = "1.0.21" +version = "1.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4696caa4048ac7ce2bcd2e484b3cef88c1004e41b8e945a277e2c25dc0b72060" +checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5" dependencies = [ "proc-macro2", "quote", - "unicode-xid", + "unicode-ident", ] [[package]] name = "thiserror" -version = "1.0.17" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "467e5ff447618a916519a4e0d62772ab14f434897f3d63f05d8700ef1e9b22c1" +checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.17" +version = "1.0.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e63c1091225b9834089b429bc4a2e01223470e3183e891582909e9d1c4cb55d9" +checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f" dependencies = [ "proc-macro2", "quote", @@ -337,27 +317,27 @@ [[package]] name = "tokio" -version = "1.0.2" +version = "1.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ca04cec6ff2474c638057b65798f60ac183e5e79d3448bb7163d36a39cff6ec" +checksum = "7125661431c26622a80ca5051a2f936c9a678318e0351007b0cc313143024e5c" dependencies = [ "autocfg", "bytes", "libc", "memchr", "mio", - "once_cell", "pin-project-lite", "signal-hook-registry", + "socket2", "tokio-macros", - "winapi", + "windows-sys", ] [[package]] name = "tokio-macros" -version = "1.0.0" +version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42517d2975ca3114b22a16192634e8241dc5cc1f130be194645970cc1c371494" +checksum = "d266c00fde287f55d3f1c3e96c500c362a2b8c695076ec180f27918820bc6df8" dependencies = [ "proc-macro2", "quote", @@ -365,16 +345,16 @@ ] [[package]] -name = "unicode-width" -version = "0.1.7" +name = "unicode-ident" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479" +checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc" [[package]] -name = "unicode-xid" -version = "0.2.0" +name = "unicode-width" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c" +checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" [[package]] name = "users" @@ -387,10 +367,16 @@ ] [[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] name = "winapi" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" dependencies = [ "winapi-i686-pc-windows-gnu", "winapi-x86_64-pc-windows-gnu", @@ -407,3 +393,60 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-sys" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/greetd-0.8.0/README.md new/greetd-0.9.0/README.md --- old/greetd-0.8.0/README.md 2021-09-05 21:15:06.000000000 +0200 +++ new/greetd-0.9.0/README.md 2023-01-06 00:25:45.000000000 +0100 @@ -11,11 +11,15 @@ ## List of known greetd greeters - agreety - The simple, text-based greeter living in this repo is a simple example. -- [gtkgreet](https://git.sr.ht/~kennylevinsen/gtkgreet) - The flagship graphical, GTK based greeter (xdg-shell or wlr-layer-shell, to be used with something like `cage`) +- [gtkgreet](https://git.sr.ht/~kennylevinsen/gtkgreet) - The flagship graphical, GTK based greeter (xdg-shell or wlr-layer-shell, to be used with something like `sway`) +- [qtgreet](https://gitlab.com/marcusbritanicus/QtGreet) - Qt-based greeter (using wlr-layer-shell, to be used with something like `sway`) - [dlm](https://git.sr.ht/~kennylevinsen/dlm) - Dumb Login Manager (using fbdev) +- [ddlm](https://github.com/deathowl/ddlm) - Deathowl's dummy login manager (using fbdev) - [wlgreet](https://git.sr.ht/~kennylevinsen/wlgreet) - Wayland greeter (using wlr-layer-shell, to be used with something like `sway`) - [tuigreet](https://github.com/apognu/tuigreet) - Console UI greeter (using tui-rs) +Patches expanding the list welcome. + ## Installation The below will install greetd, agreety and the default configuration. This looks *just* like `agetty(8)` and `login(1)`. See the manpages and the wiki for information on how to do more interesting things. @@ -55,7 +59,7 @@ ## How do I write my own greeter? -All you need to do is an application that can speak the greetd IPC protocol, which is documented in `greetd-ipc(7)`. See gtkgreet or agreety for inspiration. +All you need is an application that can speak the greetd IPC protocol, which is documented in `greetd-ipc(7)`. See gtkgreet or agreety for inspiration. # How to discuss diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/greetd-0.8.0/agreety/Cargo.toml new/greetd-0.9.0/agreety/Cargo.toml --- old/greetd-0.8.0/agreety/Cargo.toml 2021-09-05 21:15:06.000000000 +0200 +++ new/greetd-0.9.0/agreety/Cargo.toml 2023-01-06 00:25:45.000000000 +0100 @@ -1,6 +1,6 @@ [package] name = "agreety" -version = "0.8.0" +version = "0.9.0" authors = ["Kenny Levinsen"] edition = "2018" license = "GPL-3.0" @@ -12,5 +12,5 @@ inish = { path = "../inish"} rpassword = "5.0" getopts = "0.2" -enquote = "1.0.3" -nix = "0.19" +enquote = "1.1" +nix = "0.26" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/greetd-0.8.0/agreety/src/main.rs new/greetd-0.9.0/agreety/src/main.rs --- old/greetd-0.8.0/agreety/src/main.rs 2021-09-05 21:15:06.000000000 +0200 +++ new/greetd-0.9.0/agreety/src/main.rs 2023-01-06 00:25:45.000000000 +0100 @@ -39,18 +39,18 @@ .unwrap_or_else(|_| "0".to_string()) .parse() .expect("unable to parse VTNR"); - let uts = uname(); + let uts = uname()?; Ok(fs::read_to_string("/etc/issue")? .replace( "\\S", &get_distro_name().unwrap_or_else(|_| "Linux".to_string()), ) .replace("\\l", &format!("tty{}", vtnr)) - .replace("\\s", &uts.sysname()) - .replace("\\r", &uts.release()) - .replace("\\v", &uts.version()) - .replace("\\n", &uts.nodename()) - .replace("\\m", &uts.machine()) + .replace("\\s", &uts.sysname().to_str().unwrap()) + .replace("\\r", &uts.release().to_str().unwrap()) + .replace("\\v", &uts.version().to_str().unwrap()) + .replace("\\n", &uts.nodename().to_str().unwrap()) + .replace("\\m", &uts.machine().to_str().unwrap()) .replace("\\\\", "\\")) } @@ -107,6 +107,7 @@ None => prompt_stderr("Command: ")?, }; next_request = Request::StartSession { + env: vec![], cmd: vec![command.to_string()], } } @@ -170,9 +171,9 @@ print!("{}", issue); } - let uts = uname(); + let uts = uname().unwrap(); for _ in 0..max_failures { - match login(uts.nodename(), &mut cmd) { + match login(uts.nodename().to_str().unwrap(), &mut cmd) { Ok(LoginResult::Success) => break, Ok(LoginResult::Failure) => eprintln!("Login incorrect\n"), Err(e) => { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/greetd-0.8.0/config.toml new/greetd-0.9.0/config.toml --- old/greetd-0.8.0/config.toml 2021-09-05 21:15:06.000000000 +0200 +++ new/greetd-0.9.0/config.toml 2023-01-06 00:25:45.000000000 +0100 @@ -6,9 +6,9 @@ # The default session, also known as the greeter. [default_session] -# `agreety` is the bundled agetty/login-lookalike. You can replace `$SHELL` +# `agreety` is the bundled agetty/login-lookalike. You can replace `/bin/sh` # with whatever you want started, such as `sway`. -command = "agreety --cmd $SHELL" +command = "agreety --cmd /bin/sh" # The user to run the command as. The privileges this user must have depends # on the greeter. A graphical greeter may for example require the user to be diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/greetd-0.8.0/fakegreet/Cargo.toml new/greetd-0.9.0/fakegreet/Cargo.toml --- old/greetd-0.8.0/fakegreet/Cargo.toml 2021-09-05 21:15:06.000000000 +0200 +++ new/greetd-0.9.0/fakegreet/Cargo.toml 2023-01-06 00:25:45.000000000 +0100 @@ -1,6 +1,6 @@ [package] name = "fakegreet" -version = "0.8.0" +version = "0.9.0" authors = ["Kenny Levinsen"] edition = "2018" license = "GPL-3.0" @@ -10,5 +10,5 @@ [dependencies] serde = { version = "1.0", features = ["derive"] } greetd_ipc = { path = "../greetd_ipc", features = ["tokio-codec"] } -tokio = { version = "1.0", features = ["process"] } +tokio = { version = "1.5", features = ["process", "macros", "time", "net", "rt"] } thiserror = "1.0" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/greetd-0.8.0/fakegreet/src/main.rs new/greetd-0.9.0/fakegreet/src/main.rs --- old/greetd-0.8.0/fakegreet/src/main.rs 2021-09-05 21:15:06.000000000 +0200 +++ new/greetd-0.9.0/fakegreet/src/main.rs 2023-01-06 00:25:45.000000000 +0100 @@ -137,10 +137,14 @@ res => wrap_result(res), } } - Request::StartSession { cmd } => wrap_result(ctx.start(cmd).await), + Request::StartSession { cmd, env: _ } => wrap_result(ctx.start(cmd).await), Request::CancelSession => wrap_result(ctx.cancel().await), }; + if let Response::Error { .. } = resp { + ctx.cancel().await?; + } + println!("resp: {:?}", resp); resp.write_to(&mut s).await?; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/greetd-0.8.0/greetd/Cargo.toml new/greetd-0.9.0/greetd/Cargo.toml --- old/greetd-0.8.0/greetd/Cargo.toml 2021-09-05 21:15:06.000000000 +0200 +++ new/greetd-0.9.0/greetd/Cargo.toml 2023-01-06 00:25:45.000000000 +0100 @@ -1,6 +1,6 @@ [package] name = "greetd" -version = "0.8.0" +version = "0.9.0" authors = ["Kenny Levinsen"] edition = "2018" license = "GPL-3.0" @@ -11,7 +11,7 @@ debug = [] [dependencies] -nix = "0.19" +nix = "0.26" pam-sys = "0.5.6" users = "0.11.0" serde = { version = "1.0", features = ["derive"] } @@ -19,8 +19,8 @@ greetd_ipc = { path = "../greetd_ipc", features = ["tokio-codec"] } inish = { path = "../inish" } libc = "0.2" -tokio = { version = "1.0", features = ["net", "sync", "macros", "signal", "rt", "io-util", "time"] } +tokio = { version = "1", features = ["net", "sync", "macros", "signal", "rt", "io-util", "time"] } getopts = "0.2" thiserror = "1.0" async-trait = "0.1" -enquote = "1.0.3" +enquote = "1.1" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/greetd-0.8.0/greetd/src/context.rs new/greetd-0.9.0/greetd/src/context.rs --- old/greetd-0.8.0/greetd/src/context.rs 2021-09-05 21:15:06.000000000 +0200 +++ new/greetd-0.9.0/greetd/src/context.rs 2023-01-06 00:25:45.000000000 +0100 @@ -103,7 +103,7 @@ } } - scheduled_session.send_args(cmd).await?; + scheduled_session.send_args(cmd, vec![]).await?; scheduled_session.start().await } @@ -253,14 +253,14 @@ } /// Schedule the session under configuration with the provided arguments. - pub async fn start(&self, cmd: Vec<String>) -> Result<(), Error> { + pub async fn start(&self, cmd: Vec<String>, env: Vec<String>) -> Result<(), Error> { let mut session = self.inner.write().await.configuring.take(); match &mut session { Some(s) => match s.session.get_state().await? { SessionState::Ready => { // Send our arguments to the session. - s.session.send_args(cmd).await?; + s.session.send_args(cmd, env).await?; let mut inner = self.inner.write().await; std::mem::swap(&mut session, &mut inner.scheduled); @@ -375,10 +375,10 @@ Ok(_) => continue, // Interrupted. - Err(nix::Error::Sys(nix::errno::Errno::EINTR)) => continue, + Err(nix::errno::Errno::EINTR) => continue, // We do not have any children right now. - Err(nix::Error::Sys(nix::errno::Errno::ECHILD)) => break Ok(()), + Err(nix::errno::Errno::ECHILD) => break Ok(()), // Uh, what? Err(e) => panic!("waitpid returned an unexpected error: {}", e), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/greetd-0.8.0/greetd/src/server.rs new/greetd-0.9.0/greetd/src/server.rs --- old/greetd-0.8.0/greetd/src/server.rs 2021-09-05 21:15:06.000000000 +0200 +++ new/greetd-0.9.0/greetd/src/server.rs 2023-01-06 00:25:45.000000000 +0100 @@ -85,7 +85,7 @@ res => wrap_result(res), } } - Request::StartSession { cmd } => wrap_result(ctx.start(cmd).await), + Request::StartSession { cmd, env } => wrap_result(ctx.start(cmd, env).await), Request::CancelSession => wrap_result(ctx.cancel().await), }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/greetd-0.8.0/greetd/src/session/interface.rs new/greetd-0.9.0/greetd/src/session/interface.rs --- old/greetd-0.8.0/greetd/src/session/interface.rs 2021-09-05 21:15:06.000000000 +0200 +++ new/greetd-0.9.0/greetd/src/session/interface.rs 2023-01-06 00:25:45.000000000 +0100 @@ -193,8 +193,8 @@ /// /// Send the arguments that will be used to start the session. /// - pub async fn send_args(&mut self, cmd: Vec<String>) -> Result<(), Error> { - let msg = ParentToSessionChild::Args { cmd }; + pub async fn send_args(&mut self, cmd: Vec<String>, env: Vec<String>) -> Result<(), Error> { + let msg = ParentToSessionChild::Args { env, cmd }; msg.send(&mut self.sock).await?; let msg = SessionChildToParent::recv(&mut self.sock).await?; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/greetd-0.8.0/greetd/src/session/worker.rs new/greetd-0.9.0/greetd/src/session/worker.rs --- old/greetd-0.8.0/greetd/src/session/worker.rs 2021-09-05 21:15:06.000000000 +0200 +++ new/greetd-0.9.0/greetd/src/session/worker.rs 2023-01-06 00:25:45.000000000 +0100 @@ -46,6 +46,7 @@ resp: Option<String>, }, Args { + env: Vec<String>, cmd: Vec<String>, }, Start, @@ -110,8 +111,8 @@ SessionChildToParent::Success.send(sock)?; // Fetch our arguments from the parent. - let cmd = match ParentToSessionChild::recv(sock)? { - ParentToSessionChild::Args { cmd } => cmd, + let (env, cmd) = match ParentToSessionChild::recv(sock)? { + ParentToSessionChild::Args { env, cmd } => (env, cmd), ParentToSessionChild::Cancel => return Err("cancelled".into()), msg => return Err(format!("expected Args or Cancel, got: {:?}", msg).into()), }; @@ -170,16 +171,6 @@ let uid = Uid::from_raw(user.uid()); let gid = Gid::from_raw(user.primary_group_id()); - // Change working directory - let pwd = match env::set_current_dir(home) { - Ok(_) => home, - Err(_) => { - env::set_current_dir("/") - .map_err(|e| format!("unable to set working directory: {}", e))?; - "/" - } - }; - // PAM has to be provided a bunch of environment variables before // open_session. We pass any environment variables from our greeter // through here as well. This allows them to affect PAM (more @@ -192,7 +183,6 @@ format!("LOGNAME={}", username), format!("HOME={}", home), format!("SHELL={}", shell), - format!("PWD={}", pwd), format!("GREETD_SOCK={}", env::var("GREETD_SOCK").unwrap()), format!( "TERM={}", @@ -200,7 +190,7 @@ ), ]; - for e in prepared_env.iter() { + for e in env.iter().chain(prepared_env.iter()) { pam.putenv(e)?; } @@ -241,6 +231,11 @@ // death signal, which is why we do this here. prctl(PrctlOption::SET_PDEATHSIG(libc::SIGTERM)).expect("unable to set death signal"); + // Change working directory + if let Err(e) = env::set_current_dir(home) { + eprintln!("unable to set working directory: {}", e); + } + // Run let cpath = CString::new("/bin/sh").unwrap(); execve( @@ -269,7 +264,7 @@ // Wait for process to terminate, handling EINTR as necessary. loop { match waitpid(child, None) { - Err(nix::Error::Sys(nix::errno::Errno::EINTR)) => continue, + Err(nix::errno::Errno::EINTR) => continue, Err(e) => { eprintln!("session: waitpid on inner child failed: {}", e); break; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/greetd-0.8.0/greetd_ipc/Cargo.toml new/greetd-0.9.0/greetd_ipc/Cargo.toml --- old/greetd-0.8.0/greetd_ipc/Cargo.toml 2021-09-05 21:15:06.000000000 +0200 +++ new/greetd-0.9.0/greetd_ipc/Cargo.toml 2023-01-06 00:25:45.000000000 +0100 @@ -1,6 +1,6 @@ [package] name = "greetd_ipc" -version = "0.8.0" +version = "0.9.0" authors = ["Kenny Levinsen"] edition = "2018" license = "GPL-3.0" @@ -20,6 +20,6 @@ [dependencies] serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" -tokio = { version = "1.0", features = ["io-util"], optional = true } +tokio = { version = "1", features = ["io-util"], optional = true } async-trait = { version = "0.1", optional = true } thiserror = { version = "1.0", optional = true } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/greetd-0.8.0/greetd_ipc/src/lib.rs new/greetd-0.9.0/greetd_ipc/src/lib.rs --- old/greetd-0.8.0/greetd_ipc/src/lib.rs 2021-09-05 21:15:06.000000000 +0200 +++ new/greetd-0.9.0/greetd_ipc/src/lib.rs 2023-01-06 00:25:45.000000000 +0100 @@ -75,7 +75,11 @@ /// Start a successfully logged in session. This will fail if the session /// has pending messages or has encountered an error. - StartSession { cmd: Vec<String> }, + StartSession { + cmd: Vec<String>, + #[serde(default)] + env: Vec<String>, + }, /// Cancel a session. This can only be done if the session has not been /// started. Cancel does not have to be called if an error has been diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/greetd-0.8.0/man/greetd-5.scd new/greetd-0.9.0/man/greetd-5.scd --- old/greetd-0.8.0/man/greetd-5.scd 2021-09-05 21:15:06.000000000 +0200 +++ new/greetd-0.9.0/man/greetd-5.scd 2023-01-06 00:25:45.000000000 +0100 @@ -68,10 +68,13 @@ This section describes the default session, also referred to as the *greeter*. *command* = command-line - The command-line to run to start the default session, e.g. "agreety -c sway". - The default session is automatically started when no other session is - running, such as when user session terminate, and when greetd is initially - started with no initial session configured. + The command-line that greetd will run to start the default session, e.g. + "agreety -c sway". The default session is automatically started when no + other session is running, such as when a user session terminates or when + greetd is initially started with no initial session configured. + + The command-line is run by *sh*(1), and as such accepts standard POSIX + shell syntax. See *greetd-ipc*(7) for information on how a greeter can create sessions. @@ -89,9 +92,12 @@ presence of the runfile. *command* = command-line - The command-line to run to start the initial session, e.g. "sway". The - initial session will be run when exactly once when greetd is initially - launched. + The command-line that greetd will run to start the initial session, e.g. + "sway". The initial session will be started exactly once when greetd is + initially launched. + + The command-line is run by *sh*(1), and as such accepts standard POSIX + shell syntax. *user* = user The user to use for running the initial session. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/greetd-0.8.0/man/greetd-ipc-7.scd new/greetd-0.9.0/man/greetd-ipc-7.scd --- old/greetd-0.8.0/man/greetd-ipc-7.scd 2021-09-05 21:15:06.000000000 +0200 +++ new/greetd-0.9.0/man/greetd-ipc-7.scd 2023-01-06 00:25:45.000000000 +0100 @@ -46,8 +46,8 @@ : response (string, optional) : Answers an authentication message. If the message was informative (info, error), then a response does not need to be set in this message. The session is ready to be started if a success is returned. | start_session -: cmd (array of strings) -: Requests for the session to be started using the provided command line. The session will start after the greeter process terminates. +: cmd (array of strings), env (array of strings) +: Requests for the session to be started using the provided command line, adding the supplied environment to that created by PAM. The session will start after the greeter process terminates. | cancel_session : : Cancels the session that is currently under configuration. ++++++ greetd.obsinfo ++++++ --- /var/tmp/diff_new_pack.6tbQHH/_old 2023-01-31 16:09:35.529893234 +0100 +++ /var/tmp/diff_new_pack.6tbQHH/_new 2023-01-31 16:09:35.533893257 +0100 @@ -1,5 +1,5 @@ name: greetd -version: 0.8.0 -mtime: 1630869306 -commit: d2477a8f9c50097a689125304ea2a1e3660d274e +version: 0.9.0 +mtime: 1672961145 +commit: f3f32498851c6775a9d9ca0d46239b9a6de78204 ++++++ vendor.tar.gz ++++++ /work/SRC/openSUSE:Factory/greetd/vendor.tar.gz /work/SRC/openSUSE:Factory/.greetd.new.32243/vendor.tar.gz differ: char 5, line 1
