Subject: [bug#72316] [PATCH v2 0/3] Switch to Guile-PAM

From: Z572 <[email-masked]>
Date: Thu, 01 May 2025 23:26:46 +0800

Felix Lechner via Guix-patches via <[email-masked]> writes:

> Hi Z572,
>
> Yes, you are right.  More testing is needed before Guile-PAM can manage other
> modules.  Will you push the package definition and the service, i.e. the first
> two commits?

I think it's just a guile-pam package definition, like any other
package, anyone can push it as long as it's ok. I'm not familiar with
the service and can't make any guarantees.

>
> With the service, folks can write their own modules.  Then they can do all the
> things they always wanted, like set kernel limits in one line [1] or mount
> FUSE based-drives upon login. [2]
>
> I worked on this thing for ten years and believe it could be a game changer.
>
> Switching to Guile-PAM is not that radical: The third commit merely runs the
> stack in Guile but still uses the modules from Linux-PAM.  At about five
> hundred lines of code, the Guile stack is much easier to read (or audit) than
> the stack in Linux-PAM, but I agree we should wait.

I think you can propose a gcd later and see what people think.

>
> Please feel free to push the first two commits.  I will show folks how to use
> them.  Thanks!
>
> Kind regards
> Felix
>
> [1] https://codeberg.org/lechner/system-config/src/commit/0ca80a773408d5934285288ca8da03b9675e9f75/host/lechner-desktop/operating-system.scm#L75
> [2] https://codeberg.org/lechner/away/src/commit/2aba38327c1ada959656c58c2f515072c864d983/pam.scm#L76-L80
>
> Felix Lechner (3):
>   Add guile-pam.
>   Add a guile-pam-module service.
>   Switch to Guile-PAM.
>
>  doc/guix.texi                   |  89 ++++++++++
>  gnu/local.mk                    |   1 +
>  gnu/packages/linux.scm          |  71 ++++++++
>  gnu/services/authentication.scm |   9 +-
>  gnu/services/base.scm           |  16 +-
>  gnu/services/desktop.scm        |  14 +-
>  gnu/services/kerberos.scm       |  12 +-
>  gnu/services/lightdm.scm        |  69 ++++++--
>  gnu/services/pam-mount.scm      |   5 +-
>  gnu/services/pam.scm            | 105 +++++++++++
>  gnu/services/sddm.scm           |  91 +++++++---
>  gnu/services/xorg.scm           |  17 +-
>  gnu/system/pam.scm              | 296 ++++++++++++++++++++++++++------
>  13 files changed, 686 insertions(+), 109 deletions(-)
>  create mode 100644 gnu/services/pam.scm
>
>
> base-commit: 304f8bebbb3bc77b27be7ead82f2d79a10fe1843