From unknown Fri Jun 20 07:23:45 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#49969 <49969@debbugs.gnu.org> To: bug#49969 <49969@debbugs.gnu.org> Subject: Status: [PATCH 0/7] gnu: desktop: Add seatd-service-type and greetd-service-type Reply-To: bug#49969 <49969@debbugs.gnu.org> Date: Fri, 20 Jun 2025 14:23:45 +0000 retitle 49969 [PATCH 0/7] gnu: desktop: Add seatd-service-type and greetd-s= ervice-type reassign 49969 guix-patches submitter 49969 muradm severity 49969 normal tag 49969 patch thanks From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 09 15:03:14 2021 Received: (at submit) by debbugs.gnu.org; 9 Aug 2021 19:03:14 +0000 Received: from localhost ([127.0.0.1]:57797 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDAYM-000483-0w for submit@debbugs.gnu.org; Mon, 09 Aug 2021 15:03:14 -0400 Received: from lists.gnu.org ([209.51.188.17]:42484) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDAYK-00047w-DP for submit@debbugs.gnu.org; Mon, 09 Aug 2021 15:03:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59180) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mDAYI-0006aN-Mq for guix-patches@gnu.org; Mon, 09 Aug 2021 15:03:11 -0400 Received: from mail-ed1-x532.google.com ([2a00:1450:4864:20::532]:40811) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mDAYH-0006Do-4p for guix-patches@gnu.org; Mon, 09 Aug 2021 15:03:10 -0400 Received: by mail-ed1-x532.google.com with SMTP id d6so26152025edt.7 for ; Mon, 09 Aug 2021 12:03:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=1t8GglH/QgozIBYRFxmqvT/yg8Y2jLukThyS3IW3uMc=; b=nTO86OoAJIzcocqiFZ5Mp9V9BEGSR4krctZBm51baN/VXEpcolNcC5ZibEuYp4EyAn At98yy6Qg4sUvbc15Sv4lSu94FJ4qAdVr4CBMUSeVr9q8JExohmPxfmX9TLJFW247s7m 3AiNte62MoA61a4Crgz1fvwdHE16/3NSZNTU7vKR0C9UC3uuEWvVpURKUvqPX3Td5gt6 04/x1vGzm+1apTdRKFTPhh4vWsxRFWJ+hQ0iHPlMut73ji0jBzUc+iF7eTsxAzmRbSDx aIKuRkYuHCrIQzi2lz5Z0dt7mRssqPmbJsLnHadhDaYVviKtErnGFtN+gUgT8KyF3phG q84w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=1t8GglH/QgozIBYRFxmqvT/yg8Y2jLukThyS3IW3uMc=; b=n/aPzvPBzmTTl4lju8dbOXBtim5tcxaa5nsP5FvqrVoNQVaL6bhUeBKKfkRiRLHhYv CIKn8SxbyuArB1JxYLqIZKoXBOpU9CT7Tsfiug5+CKUQM2ooeVQU/ArRSDaGceWZOZtX WuajQQYeFvpKt/WXT1/yInq1Bw+pHTj1djkDjXNF9PpEOl4VVeshKrtPFmhRQE2r7ctP cJOGPFpwLHQuXbhF6EW8IWhTSax9fMkignJjYvsd4OAeL3suqMBl+W1nRUaN0+7obBVu pZbhuAZsq+MXIoG4YrP8O2xmC54tVq3K8Zyf90d5e2XgDAlz8cuNyXgamAdh72NpuI7F q1HQ== X-Gm-Message-State: AOAM532SVoMvsl9Mccd5mNHxAzKw9U4gPyk8hmaxAyF6/eMuqmmAZPwi bvifyDfcD9A+996e0TKqKJJwcCViVfLwiA== X-Google-Smtp-Source: ABdhPJzmNpS0M9ydQZDkcPIi89iXKnli+qXdrUYjZqC3ZVaM6Tarrewy/rm58vXC/eWPoWW8J6Jpsw== X-Received: by 2002:aa7:d815:: with SMTP id v21mr6335649edq.262.1628535787028; Mon, 09 Aug 2021 12:03:07 -0700 (PDT) Received: from localhost.localdomain ([31.142.122.131]) by smtp.gmail.com with ESMTPSA id bm26sm6150373ejb.16.2021.08.09.12.03.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Aug 2021 12:03:06 -0700 (PDT) From: muradm To: guix-patches@gnu.org Subject: [PATCH 0/7] gnu: desktop: Add seatd-service-type and greetd-service-type Date: Mon, 9 Aug 2021 22:02:57 +0300 Message-Id: <20210809190257.7280-1-mail@muradm.net> X-Mailer: git-send-email 2.32.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Received-SPF: none client-ip=2a00:1450:4864:20::532; envelope-from=mail@muradm.net; helo=mail-ed1-x532.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: submit Cc: muradm X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) This patch series introduces two new services; - seatd-service-type: simple seat management daemon - greetd-service-type: simple login daemon Both services are very minimalistic in nature. Simple seatd daemon could be said as replacement for elogind-service-type. greetd daemon is simple replacement for mingetty/agetty. In addition to the base services, special build of pam-mount module is included as seatd-pam-mount. It is used to provide auto-(mounting/unmounting) of XDG_RUNTIME_DIR. Special build is required to avoid interference with default pam-mount if used in the system. greetd provides agreety terminal greeter out of the box. Current greetd-service-type includes configuration for greetd-agreety-session variations, i.e. only terminal are supported at the moment. Next step would be adding gtkgreet and/or wlgreet alternatives for graphical greeter. muradm (7): gnu: rust-enquote: Add rust-enquote 1.0.3 gnu: rust-pam-sys: Add rust-pam-sys 0.5.6 gnu: greetd: Add greetd 0.7.0 gnu: seatd-pam-mount: Add seatd-pam-mount gnu: desktop: Add seatd-service-type gnu: desktop: Add greetd-service-type doc: Add desktop seatd-service-type and greetd-service-type. doc/guix.texi | 151 +++++++++++++++++++++ gnu/packages/admin.scm | 20 +++ gnu/packages/crates-io.scm | 48 +++++++ gnu/packages/freedesktop.scm | 71 ++++++++++ gnu/services/desktop.scm | 256 ++++++++++++++++++++++++++++++++++- 5 files changed, 545 insertions(+), 1 deletion(-) -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 09 15:18:23 2021 Received: (at 49969) by debbugs.gnu.org; 9 Aug 2021 19:18:23 +0000 Received: from localhost ([127.0.0.1]:57829 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDAn0-0004Um-IQ for submit@debbugs.gnu.org; Mon, 09 Aug 2021 15:18:22 -0400 Received: from mail-ej1-f49.google.com ([209.85.218.49]:41904) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDAmx-0004UO-Qk for 49969@debbugs.gnu.org; Mon, 09 Aug 2021 15:18:21 -0400 Received: by mail-ej1-f49.google.com with SMTP id d11so6439100eja.8 for <49969@debbugs.gnu.org>; Mon, 09 Aug 2021 12:18:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=oUgqfgTdKR92mBnhykZHIb0R5DE+Il8z2v0H69jW+bs=; b=NDjZxDtoxwfLU2aGXpus/jC1guSaRqysoobpBXEAfypBNV5qxpNPiqIIJsxFZpAEYj 64jiS5+ar+0f9BhfhIIjk4cAdSNs1UFitD+4fmfHlqp3bm9ygIYIj7irhDTywN3OjoxX NXmJReNoSy2yC+4ahEvQ9tqHHO8IOxz+B1mifRbRrU/In5FvKHbkD9dEYqYvtXgqRaaR 5e/UkGQ4vZWwZIy0YRKUYZJ11n/OnF6a+I+g4gTQ/9qgEo4Zpsyg99ZiipdM7pEy7wAJ 6CWqLfPxFNlp0AFZEauhvJSbxEqGNXxISGUl08+u3WFm29NuJxjp/flFX5Qgnwo/CMdp DAVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=oUgqfgTdKR92mBnhykZHIb0R5DE+Il8z2v0H69jW+bs=; b=EeKw6C9ltEM/WGN6w33FhlNLzbuawNHuif8dVGhWvkITQUbp75vhsMSjZz8n71adsA EAq56wjCLivD1HuR6aoJhLp+PTtrE+tsv3VgV2hI91Dn43QPSDJDqhb1Geu9PWQi2vNu 870T2jolvc1krC4Cxiexhhd21cOh7Y9KRGcOfMljN4RJxUvzYW9/a4VV/S5MKobx1L+e VRBHou4S+O5ZiOM6opyWuH4NE9NUh/ai+N22sWQOQX26ecDbTJKdjsU18wCX0Oh1Ymbv Vp2YqEqG5nnFkdZ/i4efMuBZDU1MqV5a5MfVTvGf9E45eGG56GPxwbkxrAgSCUTETap1 Yn9A== X-Gm-Message-State: AOAM5324zhdbOzf725b1j9gflPGwbvi7Js+D+c14IzCKjX2Ggtwzus1Y j1pssVjzLyXU15OgVK+iSjB8UX9EetgYTA== X-Google-Smtp-Source: ABdhPJw3cVKqrp50bEfTl9pXSA38PYDVFSKho0gIWbL6402vnJIFnChLkUxKbotnKyccI2g80hzcHQ== X-Received: by 2002:a17:906:3915:: with SMTP id f21mr24384557eje.178.1628536693674; Mon, 09 Aug 2021 12:18:13 -0700 (PDT) Received: from localhost.localdomain ([31.142.122.131]) by smtp.gmail.com with ESMTPSA id gv7sm6167100ejc.5.2021.08.09.12.18.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Aug 2021 12:18:13 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH 1/7] gnu: rust-enquote: Add rust-enquote 1.0.3 Date: Mon, 9 Aug 2021 22:17:57 +0300 Message-Id: <20210809191803.7833-1-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210809190257.7280-1-mail@muradm.net> References: <20210809190257.7280-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 Cc: muradm X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/crates-io.scm (rust-enquote-1): Add rust-enquote 1.0.3 --- gnu/packages/crates-io.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 24cc772ba7..16620218b3 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -18,6 +18,7 @@ ;;; Copyright © 2021 Antero Mejr ;;; Copyright © 2021 Maxim Cournoyer ;;; Copyright © 2021 Vinicius Monego +;;; Copyright © 2021 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -56972,3 +56973,24 @@ variant of this library is available separately as @code{im}.") (description "Generate Rust register maps (`struct`s) from SVD files") (license (list license:expat license:asl2.0)))) + +(define-public rust-enquote-1 + (package + (name "rust-enquote") + (version "1.0.3") + (home-page "https://github.com/reujab/enquote") + (source + (origin + (method url-fetch) + (uri (crate-uri "enquote" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0vm687r2wwgc3d3l2iqhag9wgkql6k93sdvjxvmfkdpksajpij1f")))) + (build-system cargo-build-system) + (synopsis + "This Rust library quotes, unquotes, and unescapes strings.") + (description + "This Rust library quotes, unquotes, and unescapes strings.") + (license license:unlicense))) -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 09 15:18:25 2021 Received: (at 49969) by debbugs.gnu.org; 9 Aug 2021 19:18:25 +0000 Received: from localhost ([127.0.0.1]:57833 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDAn2-0004V1-W0 for submit@debbugs.gnu.org; Mon, 09 Aug 2021 15:18:25 -0400 Received: from mail-ej1-f52.google.com ([209.85.218.52]:45934) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDAmz-0004UQ-4n for 49969@debbugs.gnu.org; Mon, 09 Aug 2021 15:18:22 -0400 Received: by mail-ej1-f52.google.com with SMTP id qk33so30805629ejc.12 for <49969@debbugs.gnu.org>; Mon, 09 Aug 2021 12:18:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=DAFxjLgih9tWolc/X92OU2/h6G7Gctj5GvKroxuhd50=; b=kuyZTbE5RPl5j5/d+bqUVx3XJT4/BAyVEOw2nkADfliLHMQo2OgjENs1p7GNH66ec/ OhGqqEeZeJhcS3iNe1/KebUwNW80dB5wt+vDqkucVcRJeKV7XXIOIASePbGUSjMduht6 ArGUrgqdggYXknsYlf3Xtpv4rJfK4lrgyjHv7Lme/T0qrFOvPlvNFBovKFjcLe7oKA/1 JSDSRSIT3IT+tpPobw5nDYCpfTuKpZIV8EICbU2kOvFRPUymQdiT65/PqrWcc95A3XDm JTBHY2DPW10XYucyGaneqFIUDM+SuMD7Y0BgzQOwOaaFF/3y6vRUkX5UyrsKuB+pIN/F CRCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=DAFxjLgih9tWolc/X92OU2/h6G7Gctj5GvKroxuhd50=; b=uKCpo3ul198+qoPQ8N2LWqD4S3pNJSI0JDuPiRjBIsq0LySk0KyMXIAS3VZFOlq7oq o1J1CmoPSU/C8jmWOJgaNcd6OU0A1r6hXFqe2y4PSChOVlQwdZW59URoAv3fnPUH1cge 6+a0CTqDvbW1XFnb89E+shf/hr2DsrlmTRJdR6qaSEKT0c9PcLGBvJQuO+q//Q6Vwzpf 16x1I2j767QxJh+C9Rd4XH0QGHwq3KOtFFZDAx2mvjUGbCg8PSYcWbxB6VhoKrJDPuWE cfe6m2IXZ4EoL+XQGeWFzSUJXrCXIwXgGbsQrKNXqDJpwFn2j4F2qTCUuiIIcGg688Nm ympg== X-Gm-Message-State: AOAM532Rv43YKs4X55JiHMt5fh4XSQDP7EbjfJkxhhx/kocHGgIFlXCf 1r1RwRV/I2yhEHl6yXYM4a1H8c3iq1NCkA== X-Google-Smtp-Source: ABdhPJywq2tUEwWDE8LFt7uqSf2rnEDN/KCgnW9gnOIdg/MnfbwLF0yg7eHtMp8frK3Kq/la5MOwtQ== X-Received: by 2002:a17:906:34d7:: with SMTP id h23mr23812876ejb.293.1628536695175; Mon, 09 Aug 2021 12:18:15 -0700 (PDT) Received: from localhost.localdomain ([31.142.122.131]) by smtp.gmail.com with ESMTPSA id gv7sm6167100ejc.5.2021.08.09.12.18.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Aug 2021 12:18:14 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH 2/7] gnu: rust-pam-sys: Add rust-pam-sys 0.5.6 Date: Mon, 9 Aug 2021 22:17:58 +0300 Message-Id: <20210809191803.7833-2-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210809190257.7280-1-mail@muradm.net> References: <20210809190257.7280-1-mail@muradm.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 Cc: muradm X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/crates-io.scm (rust-pam-sys): Add rust-pam-sys 0.5.6 --- gnu/packages/crates-io.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 16620218b3..fc235c2aa6 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -56994,3 +56994,29 @@ variant of this library is available separately as @code{im}.") (description "This Rust library quotes, unquotes, and unescapes strings.") (license license:unlicense))) + +(define-public rust-pam-sys-0.5.6 + (package + (name "rust-pam-sys") + (version "0.5.6") + (home-page "https://github.com/1wilkens/pam-sys") + (source + (origin + (method url-fetch) + (uri (crate-uri "pam-sys" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0d14501d5vybjnzxfjf96321xa5wa36x1xvf02h02zq938qmhj6d")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-libc" ,rust-libc-0.2)))) + (native-inputs + `(("linux-pam" ,linux-pam))) + (synopsis + "Rust FFI wrappers for the Linux Pluggable Authentication Modules (PAM).") + (description + "Rust FFI wrappers for the Linux Pluggable Authentication Modules (PAM).") + (license (list license:expat license:asl2.0)))) -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 09 15:18:29 2021 Received: (at 49969) by debbugs.gnu.org; 9 Aug 2021 19:18:29 +0000 Received: from localhost ([127.0.0.1]:57835 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDAn3-0004V3-7G for submit@debbugs.gnu.org; Mon, 09 Aug 2021 15:18:28 -0400 Received: from mail-ed1-f47.google.com ([209.85.208.47]:41499) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDAn0-0004UT-I8 for 49969@debbugs.gnu.org; Mon, 09 Aug 2021 15:18:23 -0400 Received: by mail-ed1-f47.google.com with SMTP id n12so2390478edx.8 for <49969@debbugs.gnu.org>; Mon, 09 Aug 2021 12:18:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=DurSoItcA3PmRePSK7BRS1VgYCzKGuaxsQ11ZInsKbw=; b=o0q08QVds8vLoCUHAx7DXSsdbJrcFpq3BKvC1HFeYwhmbg97YmG6sMnKAYtra35T9N sVNsHpECYV5hEprnrlYiR3CYqSQTG+D0LT+QJFnaZHBwURrgAP2sLLrO/tlgYQcldpQT buYQvfUfog9OA0BzxC/eCG6I2Es9qoOrsmIrPuIQjRxB+Fq9MNbh7mUATFSu/kKGYLpj PTh7smjiYlfFOQchyVrT+DiPOfyjGLFlcTG3GaY2PYEN+foUs1U0a+sL0xcvF0LBHNzy /ETd9idwdTC12T07Y0JfqU7NqaVUvWns/pB1ilw/jDvhbMHaB7nznYym24FtbZl2J9vW 3kNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=DurSoItcA3PmRePSK7BRS1VgYCzKGuaxsQ11ZInsKbw=; b=Zs5v0Fety/3zQ8TVTagck1MGOUPX9b6wQK/gAP+9SUOSetuQYTJPds7NG2zb1vKyeE z5h+4BWOejPqhIP/Oqzr27Ye4lXiuJkQCsYTJgCzi0Xtr8Yvry5z5MoBnn86EDuHkyJz 37ofaRvmW9eNII+M91uxOqV6ldprSjnjxjWyTK1NWI+z7dIGFzMbGxdzUum0RPXzlPDw 1AyuAT4JmoNjcP7aQbSgUeWWrzhr3MSpM6dRhA11/SbJb4MA1hJK0WPVRDk8w9nyrxsl eDh82ef5djk7UulLT9h7Fjo1Wvi8FLPVesVFUuGBi3mfbE+wbGf9BMyY+jtK+mi6/Sow jOWA== X-Gm-Message-State: AOAM533wZiA5lKco4PKpmXfB9t8yaJ3Wq0h7KY6bkZhYphvPQDHaetqE vtPq8DRFNxbbGam3nCvhRhUVovuLLf2IVg== X-Google-Smtp-Source: ABdhPJytdKMVDpDiXYOhpU7jQwpzj6B0g3XdNk9IoVaRm7bPwrVeyHwZz0OxCv+Ji0b3nyRO07s2/w== X-Received: by 2002:aa7:c4d4:: with SMTP id p20mr31693036edr.382.1628536696619; Mon, 09 Aug 2021 12:18:16 -0700 (PDT) Received: from localhost.localdomain ([31.142.122.131]) by smtp.gmail.com with ESMTPSA id gv7sm6167100ejc.5.2021.08.09.12.18.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Aug 2021 12:18:16 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH 3/7] gnu: greetd: Add greetd 0.7.0 Date: Mon, 9 Aug 2021 22:17:59 +0300 Message-Id: <20210809191803.7833-3-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210809190257.7280-1-mail@muradm.net> References: <20210809190257.7280-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49969 Cc: muradm X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/freedesktop.scm (greetd): Add greetd 0.7.0 --- gnu/packages/freedesktop.scm | 71 ++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 693a79c738..62c47ad70e 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -24,6 +24,7 @@ ;;; Copyright © 2020 Raghav Gururajan ;;; Copyright © 2021 Brendan Tildesley ;;; Copyright © 2021 pineapples +;;; Copyright © 2021 muradm ;;; ;;; 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,74 @@ 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 + (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 "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.") + (license license:gpl3+))) + (define-public packagekit (package (name "packagekit") -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 09 15:18:29 2021 Received: (at 49969) by debbugs.gnu.org; 9 Aug 2021 19:18:29 +0000 Received: from localhost ([127.0.0.1]:57839 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDAn6-0004VV-Vx for submit@debbugs.gnu.org; Mon, 09 Aug 2021 15:18:29 -0400 Received: from mail-ej1-f42.google.com ([209.85.218.42]:39921) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDAn2-0004UW-AB for 49969@debbugs.gnu.org; Mon, 09 Aug 2021 15:18:25 -0400 Received: by mail-ej1-f42.google.com with SMTP id go31so30858685ejc.6 for <49969@debbugs.gnu.org>; Mon, 09 Aug 2021 12:18:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=6nJ5CO/4u7MRn4/Z9MaGaFyO6hOZTySvOl2QbPhtEcM=; b=wbHTdaW9RSFVIfXo3LwUY0nkSAhlPAu11rB0fw4hvtDcidOFn6aUCipNcWBKhpeObM hCaY5qYpGSxJ5654IYw396l68PRh4jyHOIkQJRy/+tmZQlbPK36n3/6HpHmn11LnoMce X0IsV9lra4StoZy+cOC8LEFqyDJTreJ81FdQDBryuoakyUf5NwsEfo2H/yqJduDN1B3I FYcd0ECNWJ1TxXbSehoQeVDnvh1dINpU9T38fVt19BoCiqdUhlfqZFaulRErtOAJWmlW X8itSi2/PIv9xNSu5VSEcDKZ+P5yY6z2xKViHDutNbSZh15lFXY8z1OSAx1ULOdTjxWu /AdA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=6nJ5CO/4u7MRn4/Z9MaGaFyO6hOZTySvOl2QbPhtEcM=; b=dmDB2epDPMi5Z+BSuGt/7WTODy5VMuF7pv9aXAG/ClNLREo7behLzXg01alYZZ6jBD XumBXlrUpLfrpdSb3tRPT/lV5LGboe8rWNaxdYmdXFwbg3TGtqxpK9RQXNbpMJ5s+ZGe qzW95C+C+Jp/4Gq+EP0f9yauvNSyQcDlP/GB/CUd8vTzDnKoulCM6OVIr3ceBH60u6bE GQrqYwOBQ9AHhCk0Jere3yPdgIGMId9WnO7sfLVT91jCJ2W1sEfk3EZPe81NxbVj+M5W cv+mhXb5JVu1YNncFpM9oIJ82F0aUky+BdOFupCl0gDsAfLyQ79lxXaI0JSjvd0ToTeZ Yc7A== X-Gm-Message-State: AOAM531ebIkjfCnWMJLEBGajndqUC3lnY0gYrAXONGMJN9js8/UrdY7C VRyLTG1+6gTKQzJtQJR5flNDV8PJQPIx8Q== X-Google-Smtp-Source: ABdhPJx7DI3bZgpfhkw1nlrFsbQhZY75elznZIevh/h4ZMZGM/YFeSqkaBg2stHujM8HL8ITFMFKgw== X-Received: by 2002:a17:906:cb95:: with SMTP id mf21mr24388192ejb.484.1628536698266; Mon, 09 Aug 2021 12:18:18 -0700 (PDT) Received: from localhost.localdomain ([31.142.122.131]) by smtp.gmail.com with ESMTPSA id gv7sm6167100ejc.5.2021.08.09.12.18.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Aug 2021 12:18:17 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH 4/7] gnu: seatd-pam-mount: Add seatd-pam-mount Date: Mon, 9 Aug 2021 22:18:00 +0300 Message-Id: <20210809191803.7833-4-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210809190257.7280-1-mail@muradm.net> References: <20210809190257.7280-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 2.0 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: This package inherits pam-mount in the way that it is compiled specifically for use with seatd daemon. It uses different configuration location and name space for storing data in PAM. seatd-pam-mount is used in configuration of seatd to provide auto-(mounting/unmounting) of XDG_RUNTIME_DIR in the way that it will not interfere with default pam-mount configuration. Content analysis details: (2.0 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 SPF_NONE SPF: sender does not publish an SPF Record 2.0 PDS_OTHER_BAD_TLD Untrustworthy TLDs [URI: selfhosted.xyz (xyz)] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) [209.85.218.42 listed in wl.mailspike.net] -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [209.85.218.42 listed in list.dnswl.org] -0.0 RCVD_IN_MSPIKE_WL Mailspike good senders X-Debbugs-Envelope-To: 49969 Cc: muradm X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) This package inherits pam-mount in the way that it is compiled specifically for use with seatd daemon. It uses different configuration location and name space for storing data in PAM. seatd-pam-mount is used in configuration of seatd to provide auto-(mounting/unmounting) of XDG_RUNTIME_DIR in the way that it will not interfere with default pam-mount configuration. * gnu/packages/admin.scm (seatd-pam-mount): Add seatd-pam-mount --- gnu/packages/admin.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index eda269f148..adc5f4d8fd 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -42,6 +42,7 @@ ;;; Copyright © 2021 David Larsson ;;; Copyright © 2021 WinterHound ;;; Copyright © 2021 Brice Waegeneire +;;; Copyright © 2021 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -4247,6 +4248,25 @@ supports. It can also mount encrypted LUKS volumes using the password supplied by the user when logging in.") (license (list license:gpl2+ license:lgpl2.1+)))) +(define-public seatd-pam-mount + (package + (inherit pam-mount) + (name "seatd-pam-mount") + (arguments + (substitute-keyword-arguments (package-arguments pam-mount) + ((#:configure-flags flags ''()) + `(cons* "--with-rundir=/run/seatd" ,flags)) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'unpack 'patch-config-file-name + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/pam_mount.c" + ((".*define CONFIGFILE .*$") + "#define CONFIGFILE \"/etc/security/seatd_pam_mount.conf.xml\"\n") + (("pam_mount_config") "seatd_pam_mount_config") + (("pam_mount_system_authtok") "seatd_pam_mount_system_authtok")))))))) + (synopsis "pam-mount specifically compiled for use with seatd/greetd"))) + (define-public jc (package (name "jc") -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 09 15:18:33 2021 Received: (at 49969) by debbugs.gnu.org; 9 Aug 2021 19:18:33 +0000 Received: from localhost ([127.0.0.1]:57842 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDAn7-0004Vc-As for submit@debbugs.gnu.org; Mon, 09 Aug 2021 15:18:33 -0400 Received: from mail-ed1-f41.google.com ([209.85.208.41]:40514) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDAn3-0004UY-ND for 49969@debbugs.gnu.org; Mon, 09 Aug 2021 15:18:26 -0400 Received: by mail-ed1-f41.google.com with SMTP id d6so26218167edt.7 for <49969@debbugs.gnu.org>; Mon, 09 Aug 2021 12:18:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=/hDC3pxVXCM1gKMDEgcDzWDP1KxzgPUo45H2sFPeld4=; b=pIi8zMKTXub6yjxozBwIPWH72IxynXP9B29UPqUyy4gkHrimDecFIHaHe4qA7gX8r6 NyvE8aFV+EXJFEKrhbPnnY4jPTQhwCcxS7YbTFNdI2pPgbvf9FQXSmtE6TXTY6p1P7SU wubUdIfsIi6YSGWd9sT12FU8OTeoioYwIsBR1wPR+o8jbYNH7GoiFMsbKwTz7hMDF/9Z hS93W8uAScrXgc8QW5Q7kaPz/PWxTypV9BPOSYzyIpoMEVD02tXfPF4IgOCAn543cM1Z sRlCTdjUOjfrTd3hGqOockTMAvqFzcYNPbxvsE3eG4L3ApSZTClfyDQYvqeFzapitQd4 3hpg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=/hDC3pxVXCM1gKMDEgcDzWDP1KxzgPUo45H2sFPeld4=; b=ePwRgd5IQL9BayJP4NjXfFmgmdk9YLYHxM8c8LdSQ7WoxWf3uZ91SfropkOcG/wLZ6 tdjJ1FFzz2ocwRxAmYwmZIgB7y7TI4P8TLcgSks6jA1GaE4Hj0KHRDN7Z50PGBPG3vB/ R/P7jj7Zn3KuPdUJYaqqa0fiZJRPdppNdliKUigrmpbtsC2jMhpJB7ZQ0eQ4QchdiuSN A5rEK27+Ln77hKZrIbfpLnnUq4je/oIrPvkIxXeNN3SbCBmcns+I+T6v9S/x3zDJfN3C AjY8pvoMYRg0aSCOLxPJ5MX2WZ1fS9b3RaosdMRMEbRsXNgnzGIVRW21cYiKOMgSnXTw 5OjQ== X-Gm-Message-State: AOAM531tYvehWSfbmZ1w5R36mv3wgm8r30JOt+iaJaS0+YoZ1prUG0eH 8dz3pCYi3OR1btKyso2TCem7H5s+Ff82tw== X-Google-Smtp-Source: ABdhPJwcjF997nBvVfvp0vblaCO0S4iUhZWw55Bll2a/nHiFXB9pfN9G0EU6JnGZb17AD86bFwizyA== X-Received: by 2002:aa7:d757:: with SMTP id a23mr31743903eds.29.1628536699785; Mon, 09 Aug 2021 12:18:19 -0700 (PDT) Received: from localhost.localdomain ([31.142.122.131]) by smtp.gmail.com with ESMTPSA id gv7sm6167100ejc.5.2021.08.09.12.18.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Aug 2021 12:18:19 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH 5/7] gnu: desktop: Add seatd-service-type Date: Mon, 9 Aug 2021 22:18:01 +0300 Message-Id: <20210809191803.7833-5-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210809190257.7280-1-mail@muradm.net> References: <20210809190257.7280-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49969 Cc: muradm X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) A seat management daemon, that does everything it needs to do. Nothing more, nothing less. Depends only on libc. * gnu/services/desktop.scm: Add seatd-service-type --- gnu/services/desktop.scm | 117 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 116 insertions(+), 1 deletion(-) diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index 64d0e85301..cc13859532 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -13,6 +13,7 @@ ;;; Copyright © 2020 Tobias Geerinckx-Rice ;;; Copyright © 2020 Reza Alizadeh Majd ;;; Copyright © 2021 Brice Waegeneire +;;; Copyright © 2021 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -39,7 +40,9 @@ #:use-module (gnu services networking) #:use-module (gnu services sound) #:use-module ((gnu system file-systems) - #:select (%elogind-file-systems file-system)) + #:select (%elogind-file-systems + %control-groups + file-system)) #:use-module (gnu system) #:use-module (gnu system setuid) #:use-module (gnu system shadow) @@ -154,6 +157,9 @@ gnome-keyring-configuration? gnome-keyring-service-type + seatd-configuration + seatd-service-type + %desktop-services)) ;;; Commentary: @@ -1182,6 +1188,115 @@ or setting its password with passwd."))) (define polkit-wheel-service (simple-service 'polkit-wheel polkit-service-type (list polkit-wheel))) + +;;; +;;; seatd-service-type -- Seat management daemon +;;; + +;; TODO: separate service-type is needed for cgroups +(define %seatd-file-systems + (append + (list (file-system + (device "none") + (mount-point "/run/seatd/pam_mount") + (type "tmpfs") + (check? #f) + (flags '(no-suid no-dev no-exec)) + (options "mode=0755") + (create-mount-point? #t))) + %control-groups)) + +(define %seatd-pam-mount-rules + `((debug (@ (enable "0"))) + (volume (@ (sgrp "users") + (fstype "tmpfs") + (mountpoint "/run/user/%(USERUID)") + (options "noexec,nosuid,nodev,size=1g,mode=0700,uid=%(USERUID),gid=%(USERGID)"))) + (logout (@ (wait "0") + (hup "0") + (term "yes") + (kill "no"))) + (mkmountpoint (@ (enable "1") (remove "true"))))) + +(define-record-type* seatd-configuration + make-seatd-configuration + seatd-configuration? + (seatd seatd-package (default seatd)) + (user seatd-user (default "root")) + (group seatd-group (default "users")) + (socket seatd-socket (default "/run/seatd.sock"))) + +(define (make-seatd-pam-mount-configuration-file config) + (computed-file + "seatd_pam_mount.conf.xml" + #~(begin + (use-modules (sxml simple)) + (call-with-output-file #$output + (lambda (port) + (sxml->xml + '(*TOP* + (*PI* xml "version='1.0' encoding='utf-8'") + (pam_mount + #$@%seatd-pam-mount-rules + (pmvarrun + #$(file-append seatd-pam-mount + "/sbin/pmvarrun -u '%(USER)' -o '%(OPERATION)'")))) + port)))))) + +(define (seatd-pam-mount-etc-service config) + `(("security/seatd_pam_mount.conf.xml" + ,(make-seatd-pam-mount-configuration-file config)))) + +(define (seatd-pam-mount-pam-service config) + (define optional-pam-mount + (pam-entry + (control "optional") + (module #~(string-append #$seatd-pam-mount "/lib/security/pam_mount.so")))) + (list (lambda (pam) + (if (member (pam-service-name pam) + '("login" "su" "slim" "gdm-password")) + (pam-service + (inherit pam) + (auth (append (pam-service-auth pam) + (list optional-pam-mount))) + (session (append (pam-service-session pam) + (list optional-pam-mount)))) + pam)))) + +(define (seatd-shepherd-service config) + (list (shepherd-service + (requirement '()) + ;; TODO: once cgroups is separate dependency + ;; here we should depend on it rather than elogind + (provision '(seatd elogind)) + (start #~(make-forkexec-constructor + (list #$(file-append (seatd-package config) "/bin/seatd") + "-u" #$(seatd-user config) + "-g" #$(seatd-group config) + "-s" #$(seatd-socket config)))) + (stop #~(make-kill-destructor))))) + +(define seatd-environment + (match-lambda + (($ _ _ _ socket) + `(("SEATD_SOCK" . ,socket))))) + +(define seatd-service-type + (service-type (name 'seatd) + (extensions + (list + (service-extension session-environment-service-type + seatd-environment) + (service-extension file-system-service-type + (const %seatd-file-systems)) + (service-extension etc-service-type + seatd-pam-mount-etc-service) + (service-extension pam-root-service-type + seatd-pam-mount-pam-service) + (service-extension shepherd-root-service-type + seatd-shepherd-service))) + (default-value (seatd-configuration)))) + ;;; ;;; The default set of desktop services. -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 09 15:18:33 2021 Received: (at 49969) by debbugs.gnu.org; 9 Aug 2021 19:18:33 +0000 Received: from localhost ([127.0.0.1]:57844 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDAnB-0004Vs-6l for submit@debbugs.gnu.org; Mon, 09 Aug 2021 15:18:33 -0400 Received: from mail-ej1-f42.google.com ([209.85.218.42]:41918) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDAn5-0004Ug-99 for 49969@debbugs.gnu.org; Mon, 09 Aug 2021 15:18:27 -0400 Received: by mail-ej1-f42.google.com with SMTP id d11so6439616eja.8 for <49969@debbugs.gnu.org>; Mon, 09 Aug 2021 12:18:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ZVxtLCxQv0YfqJRzYhcHPFN0ekGqAYGltUjBcgXQK9M=; b=UIfwDUNPgQwdBJIgoczAkVzwV3IA8s6dwmSklt/fhSQqXJ0JOR24NhR7qaGtIHm/hz 43paHaKyGiApLiq3u/mMUifvNsPMyTJOQxyMdQJWfz97sntJsCK2ISMczUoJ5HLnARhk +ILkztKyBWSYMiu3VEBCVXgeInK7R0DHZkIN6FeiS/N52/AJa1HF9ngjH8/EY6xWhx1R wbCOH/BFDALgxnx2agEXT2FpBSnsORi7Mc9WA31RAfX9EpLi6MjEn8R4RKqfqymmgGmz TF1Kr9l/CzOADJmx3wBU9VXhFZxNROVXUtuijDsZYQy2lwkjY215CZPSsmsAmA1Zkspj TPug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=ZVxtLCxQv0YfqJRzYhcHPFN0ekGqAYGltUjBcgXQK9M=; b=BjuOccK3KZ693Mwc6StA/5i9RUPTQDgbaaggORDLsqK/heBB8S+wS52XH4rCyA3PZ/ TBscCD5B8uw+gMSwgl0p3RtMLC6R7yp3Zc7Z+3fXtCsaMylZ7Xr4M+Ar3UyuAP9k+na0 7JP8nPWc7OKPIgt2/4xsU4TWle7bOnVmx+2HpKy/dQGI9h2rHOh+hH09csTdssPlERBt H2ethqcKqBsTgKt1eRUWgdw+vbr5Qpw2o2YU26EcNDReszL8GbK4hZXQhUxhBatNX7ky zct7ADcRNv2Z9YLGhuo9OOsuMIgIo5zn5+Dh4xgVWqyXMAaGrQfC8UcqM++6UB+6+ltp i01w== X-Gm-Message-State: AOAM531alfBNghApYgv7zfrjznBg2rC9Cn3aHEXPBE9+IB4WZkTlcosj jX2KCY/LouzoSr7uIPm4+Y2CldI4Y3AKFQ== X-Google-Smtp-Source: ABdhPJziM4u0tve4pjJAv43t3PGXjsDysubMcVEfRxIiCtk62x+LIvQilnvbqCXBDhShT3v7LRbBFg== X-Received: by 2002:a17:907:3d91:: with SMTP id he17mr24172685ejc.355.1628536701446; Mon, 09 Aug 2021 12:18:21 -0700 (PDT) Received: from localhost.localdomain ([31.142.122.131]) by smtp.gmail.com with ESMTPSA id gv7sm6167100ejc.5.2021.08.09.12.18.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Aug 2021 12:18:20 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH 6/7] gnu: desktop: Add greetd-service-type Date: Mon, 9 Aug 2021 22:18:02 +0300 Message-Id: <20210809191803.7833-6-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210809190257.7280-1-mail@muradm.net> References: <20210809190257.7280-1-mail@muradm.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 Cc: muradm X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) greetd is a minimal and flexible login manager daemon that makes no assumptions about what you want to launch. Currently, only agreety configuration is provided. * gnu/services/desktop.scm: Add greetd-service-type --- gnu/services/desktop.scm | 139 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 139 insertions(+) diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index cc13859532..601b9921a4 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -49,6 +49,7 @@ #:use-module (gnu system pam) #:use-module (gnu packages glib) #:use-module (gnu packages admin) + #:use-module (gnu packages bash) #:use-module (gnu packages cups) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gnome) @@ -160,6 +161,11 @@ seatd-configuration seatd-service-type + greetd-configuration + greetd-agreety-tty-session + greetd-agreety-tty-xdg-session + greetd-service-type + %desktop-services)) ;;; Commentary: @@ -1297,6 +1303,139 @@ or setting its password with passwd."))) seatd-shepherd-service))) (default-value (seatd-configuration)))) + +;;; +;;; greetd-service-type -- minimal and flexible login manager daemon +;;; + +(define %greetd-accounts + (list (user-account (name "greeter") (group "wheel") (system? #t)))) + +(define-record-type* + greetd-agreety-session make-greetd-agreety-session + greetd-agreety-session? + (package greetd-agreety-command-package (default bash)) + (command-bin greetd-agreety-command-bin (default "/bin/bash")) + (command-args greetd-agreety-command-args (default '("-l"))) + (extra-env greetd-agreety-extra-env (default '())) + (command-generator greetd-agreety-command-generator)) + +(define greetd-agreety-tty-session-command + (match-lambda + (($ pkg command-bin command-args extra-env) + (program-file + "agreety-tty-session-command" + #~(begin + (use-modules (ice-9 match)) + (let* ((abs-cmd-bin #$(file-append pkg command-bin))) + (for-each + (match-lambda ((var . val) (setenv var val))) + (quote (#$@extra-env))) + (apply execl abs-cmd-bin abs-cmd-bin + (list #$@command-args)))))))) + +(define greetd-agreety-tty-xdg-session-command + (match-lambda + (($ package command-bin command-args extra-env) + (program-file + "agreety-tty-xdg-session-command" + #~(begin + (use-modules (ice-9 popen) (ice-9 rdelim) (ice-9 match)) + (let* + ((pmvarrun-bin #$(file-append seatd-pam-mount "/sbin/pmvarrun")) + (username (getenv "USER")) + (useruid (passwd:uid (getpwuid username))) + (useruid (number->string useruid)) + (pmvarrun-cmd (string-join (list pmvarrun-bin "-u" username "-o" "0") " ")) + (pmvarrun-port (open-input-pipe pmvarrun-cmd)) + (session-id (read-line pmvarrun-port)) + (session-id (string-append username "-" session-id)) + (abs-cmd-bin #$(file-append package command-bin))) + (close-pipe pmvarrun-port) + (setenv "XDG_SESSION_ID" session-id) + (setenv "XDG_SESSION_TYPE" "tty") + (setenv "XDG_RUNTIME_DIR" (string-append "/run/user/" useruid)) + (for-each + (match-lambda ((var . val) (setenv var val))) + (quote (#$@extra-env))) + (apply execl abs-cmd-bin abs-cmd-bin + (list #$@command-args)))))))) + +(define greetd-agreety-tty-session + (greetd-agreety-session + (command-generator greetd-agreety-tty-session-command))) + +(define greetd-agreety-tty-xdg-session + (greetd-agreety-session + (command-generator greetd-agreety-tty-xdg-session-command))) + +(define-record-type* greetd-configuration + make-greetd-configuration + greetd-configuration? + (greetd greetd-package (default greetd)) + (config-file-name greetd-config-file-name (thunked) + (default (default-config-file-name this-record))) + (terminal-vt greetd-terminal-vt (default "7")) + (default-session-user greetd-default-session-user (default "greeter")) + (default-session-command greetd-default-session-command + (default greetd-agreety-tty-session))) + +(define (default-config-file-name config) + (string-join (list "config-" (greetd-terminal-vt config) ".toml") "")) + +(define make-greetd-default-session-command + (match-lambda + (($ greetd _ _ _ default-session-command) + (cond ((greetd-agreety-session? default-session-command) + (let* + ((generator (greetd-agreety-command-generator + default-session-command)) + (command (apply generator (list default-session-command))) + (agreety-bin (file-append greetd "/bin/agreety"))) + (program-file + "agreety-command" + #~(execl #$agreety-bin #$agreety-bin "-c" #$command)))) + (else (program-file "agreety-command-exit" #~(exit #f))))))) + +(define (greetd-configuration-file config) + (let* + ((config-file-name (greetd-config-file-name config)) + (terminal-vt (greetd-terminal-vt config)) + (default-session-user (greetd-default-session-user config)) + (default-session-command (make-greetd-default-session-command config))) + (mixed-text-file + config-file-name + "[terminal]\n" + "vt = " terminal-vt "\n" + "[default_session]\n" + "user = " default-session-user "\n" + "command = " default-session-command "\n"))) + +(define (greetd-shepherd-service config) + (let* + ((greetd-bin (file-append (greetd-package config) "/sbin/greetd")) + (greetd-conf (greetd-configuration-file config))) + (list + (shepherd-service + (requirement '(user-processes host-name udev virtual-terminal)) + (provision (list (symbol-append + 'term-tty + (string->symbol (greetd-terminal-vt config))))) + (start #~(make-forkexec-constructor + (list #$greetd-bin "-c" #$greetd-conf))) + (stop #~(make-kill-destructor)))))) + +(define greetd-service-type + (service-type + (name 'greetd) + (extensions + (list + (service-extension shepherd-root-service-type + greetd-shepherd-service) + (service-extension account-service-type + (const %greetd-accounts)))) + (default-value (greetd-configuration)))) + ;;; ;;; The default set of desktop services. -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 09 15:18:34 2021 Received: (at 49969) by debbugs.gnu.org; 9 Aug 2021 19:18:34 +0000 Received: from localhost ([127.0.0.1]:57846 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDAnB-0004Vz-Jw for submit@debbugs.gnu.org; Mon, 09 Aug 2021 15:18:33 -0400 Received: from mail-ej1-f47.google.com ([209.85.218.47]:40847) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDAn7-0004Uz-0n for 49969@debbugs.gnu.org; Mon, 09 Aug 2021 15:18:30 -0400 Received: by mail-ej1-f47.google.com with SMTP id oz16so14667029ejc.7 for <49969@debbugs.gnu.org>; Mon, 09 Aug 2021 12:18:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=P389w8sqi/IJM0LcqkDRNvmfTHtCJM4fe+XamJNyyoo=; b=ASohN/wPhNLOLgADbvbjsDKZzKNN3oJNJka9N/Xdqy2NeasEBtAEfmkpyYgl5lZPKB mdWQF7Md0wLZLHehIjeaA6DY6iIxRGY6iUROLV+x0OKFjq3mbIvvVDc/ojIqV/Kqfh7N 0/fNfSqI+ZMBa9o+ZEvCxS9qOCP/hkuWJz2z2/6y9Sftmcn8dfmfzEOsDPcIvnZlgLAO 25HN26ihu1cwAMC5Tr5YOeMWeBCeJ1jD9e8ejgHdj5J8wGDK2/8EfoLWoK7vcKrH6Ksx zRcE+hQkLKCJCNCxLzWzEK8ZLc3J2Aa1P7hWw63rUnWNQGc6oHAP/nS8gaqkvDynI1Z9 IGAQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=P389w8sqi/IJM0LcqkDRNvmfTHtCJM4fe+XamJNyyoo=; b=WW1LZATOT0dvPHGiKE+aeXtbHkpkBGxV+XmHC2/AYAo1ba8qWym996Ec9XvX0211WD PaQ4b37pJDkHc+gHLNfeCqiF5RM2e01Q4noYDFshBlClIC7FiH7d+V7dNdeLEFd3lg8K h1ufSRVneV8MAWqURROKTowTnd15xA4HcVMTyZLGU8lQdElwtZkUbzJuXUTYSsKsSiRN HLQ+uUfiARo4YLmoEKoZKlUT0fYg9LeHyW7SybYouIO1HUjWV3CB0iTksmTUR8ee5b93 K6Vj8LRtqEulKOFmwwRAQNXMM8RF2dMhRIiKeALHcOAnl8TodkX5A3K5IK42Xrve0GiB E62Q== X-Gm-Message-State: AOAM531A6baqESCp6fJXnjVYBj1WBQb/3Kg/PeChBC+rPtMt4YC1Hv+M dsGlf4A/PXT8Oi0SMzGeLfX8Qpt68vPGKg== X-Google-Smtp-Source: ABdhPJwq693XUsbjm3qv85DPs/Cg2PksKEPMEGZ6Hdibq/LSdqYyAFzvNdZfpctLN/WBRZzApfP0dg== X-Received: by 2002:a17:907:20c8:: with SMTP id qq8mr24250396ejb.213.1628536703102; Mon, 09 Aug 2021 12:18:23 -0700 (PDT) Received: from localhost.localdomain ([31.142.122.131]) by smtp.gmail.com with ESMTPSA id gv7sm6167100ejc.5.2021.08.09.12.18.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Aug 2021 12:18:22 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH 7/7] doc: Add desktop seatd-service-type and greetd-service-type. Date: Mon, 9 Aug 2021 22:18:03 +0300 Message-Id: <20210809191803.7833-7-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210809190257.7280-1-mail@muradm.net> References: <20210809190257.7280-1-mail@muradm.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49969 Cc: muradm X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * doc/guix.texi (Desktop Services): Provide documentation for seatd-service-type and greetd-service-type including configuration and sample usage. --- doc/guix.texi | 151 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 151 insertions(+) diff --git a/doc/guix.texi b/doc/guix.texi index 4eb5324b51..6c76a8d68a 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -94,6 +94,7 @@ Copyright @copyright{} 2021 Xinglu Chen@* Copyright @copyright{} 2021 Raghav Gururajan@* Copyright @copyright{} 2021 Domagoj Stolfa@* Copyright @copyright{} 2021 Hui Lu@* +Copyright @copyright{} 2021 muradm@* Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -19694,6 +19695,156 @@ and ``passwd'' is with the value @code{passwd}. @end table @end deftp +@defvr {Scheme Variable} seatd-service-type +A minimal seat management daemon, and a universal seat management library. + +Seat management takes care of mediating access to shared devices (graphics, +input), without requiring the applications needing access to be root. + +In general should be used as replacement to @code{elogind-service-type}. +And currently should be used with @code{greetd-service-type}. + +@lisp + +(append + (list + ;; make sure seatd is running + (service seatd-service-type) + + ;; let's make terminals 1, 2 and 3 be an XDG terminal + ;; with XDG variables set on login. + (service greetd-service-type + (greetd-configuration + (terminal-vt "1") + (default-session-command greetd-agreety-tty-xdg-session))) + (service greetd-service-type + (greetd-configuration + (terminal-vt "2") + (default-session-command greetd-agreety-tty-xdg-session))) + (service greetd-service-type + (greetd-configuration + (terminal-vt "3") + (default-session-command greetd-agreety-tty-xdg-session))) + + ;; let's make terminals 4, 5 and 6 be a plain bash terminal session + (service greetd-service-type + (greetd-configuration (terminal-vt "4"))) + (service greetd-service-type + (greetd-configuration (terminal-vt "5"))) + (service greetd-service-type + (greetd-configuration (terminal-vt "6")))) + + (modify-services %desktop-services + ;; seatd/greetd combination can replace these + (delete elogind-service-type) + (delete agetty-service-type) + (delete mingetty-service-type))) + +@end lisp + +@end defvr + +@deftp {Data Type} seatd-configuration +Configuration record for the seatd daemon service. + +@table @asis +@item @code{seatd} (default: @code{seatd}) +The seatd package to use. + +@item @code{user} (default: @samp{"root"}) +User to own the seatd socket. + +@item @code{group} (default: @samp{"users"}) +Group to own the seatd socket. + +@item @code{socket} (default: @samp{"/run/seatd/socket"}) +Where to create the seatd socket. + +@end table +@end deftp + +@defvr {Scheme Variable} greetd-service-type +greetd is a minimal and flexible login manager daemon that makes no +assumptions about what you want to launch. + +If you can run it from your shell in a TTY, greetd can start it. If it +can be taught to speak a simple JSON-based IPC protocol, then it can +be a greeter. +@end defvr + +@deftp {Data Type} greetd-configuration +Configuration record for the greetd daemon service. + +@table @asis +@item @code{greetd} (default: @code{greetd}) +The greetd package to use. + +@item @code{config-file-name} +Configuration file name to use for greetd daemon. Generally, autogenerated +derivation based on @code{terminal-vt} value. + +@item @code{terminal-vt} (default: @samp{"7"}) +The VT to run on. Use of a specific VT with appropriate conflict avoidance +is recommended. + +@item @code{default-session-user} (default: @samp{"greeter"}) +The user to use for running the greeter. + +@item @code{default-session-command} (default: @code{greetd-agreety-tty-session}) +The command-line to run to start the default session. + +Possible values are: + +@itemize @bullet +@item +@code{greetd-agreety-tty-session} - bash terminal session + +@item +@code{greetd-agreety-tty-xdg-session} - bash terminal session with XDG environment + +@item +@code{greetd-agreety-session} - custom instance of terminal session +@end itemize + +@end table +@end deftp + +@deftp {Data Type} greetd-agreety-session +Configuration record for the agreety greetd greeter. + +@table @asis +@item @code{package} (default: @code{bash}) +The package of command. + +@item @code{command-bin} (default: @samp{"/bin/bash"}) +Path to binary relative to @code{package}. + +@item @code{command-args} (default: @code{'("-l")}) +Command arguments to pass to command. + +@item @code{extra-env} (default: @code{'()}) +Extra environment variables to set on login. + +@item @code{command-generator} +Function that receives instance of this configuration as an argument and +returns @code{program-file} that can be used with @code{agreety} greeter. + +Both @code{greetd-agreety-tty-session} and @code{greetd-agreety-tty-xdg-session} +uses @code{greetd-agreety-session} under the hood. + +@end table +@end deftp + +@defvr {Scheme Variable} greetd-agreety-tty-session +Provides instance of @code{greetd-agreety-session} which starts @samp{"bash -l"} +on login. +@end defvr + +@defvr {Scheme Variable} greetd-agreety-tty-xdg-session +Provides instance of @code{greetd-agreety-session} which starts @samp{"bash -l"} +on login. Additionally, will set @code{XDG_SESSION_ID}, @code{XDG_SESSION_TYPE} and +@code{XDG_RUNTIME_DIR} environment variables for session. +@end defvr @node Sound Services @subsection Sound Services -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 10 15:36:45 2021 Received: (at 49969) by debbugs.gnu.org; 10 Aug 2021 19:36:45 +0000 Received: from localhost ([127.0.0.1]:60851 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDXYK-0006PK-Rs for submit@debbugs.gnu.org; Tue, 10 Aug 2021 15:36:45 -0400 Received: from mail-ed1-f46.google.com ([209.85.208.46]:39898) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDXYG-0006P1-Oj for 49969@debbugs.gnu.org; Tue, 10 Aug 2021 15:36:43 -0400 Received: by mail-ed1-f46.google.com with SMTP id t1so5387419edd.6 for <49969@debbugs.gnu.org>; Tue, 10 Aug 2021 12:36:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=lYjCSO93s3Vd0lgBJ8vP+cY4O/0/yFayrivoxrCM9tE=; b=Yzaoz2hefaZIivHzCwV5g3hkHOVihi+j8LubrmuzjMvvS3ENKfL26fNXYHtH3KXdtt /Z/F3mJTiWYvvoJv75mQ2k/Cy+L0Jpbytz8nysElApxbwboopFi7ByzIZHI4xrB0I3Va DipMhms4qTDv/rhZtnckvYB4RetmyikG3VQSpwVgfiUwAMyVWgtiHZ4fvIIjtY0bjo28 4CSym3O7s2H1ocV7EZE6BBp1/SoAnxcDFoXNipa9CIXEeHn5T/oAmaemrJ+zfPEvzayq /wyop7/rsiXyPt7j74eYBrHHE6poZ07HH6R4YYnQdfoOHv2qGKMWWeKujF0R9WCaRK+o hwGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=lYjCSO93s3Vd0lgBJ8vP+cY4O/0/yFayrivoxrCM9tE=; b=XyPudn8LdiXeeJ19uyAjqoHmcHCY9DgiXMNaIK37UNiOTmwjItcvAeu5Hc+MfQ23/X VOfhL8jZzWjxoQzgksCUSKApl3BoYmHd3uYVKoBIO7JWb4D0TYtBUWnmSIou7dS63Jaa 54y5dRyMoIAkcYYSBCBqlxQswSVqLwZqgtW68nNZmFCf/96td1TKqPduRtUxW2aaRnB1 fP231QLcfANHdjDzuXs8vGCa/UFYbhaqgW8P9BwifRzZDJJf0iA8Aw9Oz30bd2cfS52V 4eUExlOw9fi5iuq4/fBFHSee6DzdWmzYjaOJncxyRIsvLNqQsj80SorJ+3aak9dAbN/H KiQg== X-Gm-Message-State: AOAM531eYz+2g+MeCBpyCB620+dIpR53QvP+WTcYgCcjkT6vPjuPmbc5 zyOREoOMN8zMg7k5g9dwEgCn3r7Ayh4ACA== X-Google-Smtp-Source: ABdhPJzNBPkdxMW3NQuia4tOGClbPBBO2gaUTC8czZ6OcySgxFyYNeahIAZBJYyiKBniSF8NLcNEwQ== X-Received: by 2002:aa7:d04c:: with SMTP id n12mr6867400edo.342.1628624194451; Tue, 10 Aug 2021 12:36:34 -0700 (PDT) Received: from localhost.localdomain ([31.142.54.188]) by smtp.gmail.com with ESMTPSA id e7sm10203575edk.3.2021.08.10.12.36.31 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Aug 2021 12:36:33 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v2 0/7] gnu: desktop: Add seatd-service-type and greetd-service-type Date: Tue, 10 Aug 2021 22:36:26 +0300 Message-Id: <20210810193626.9186-1-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210809190257.7280-1-mail@muradm.net> References: <20210809190257.7280-1-mail@muradm.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) This patch series introduces two new services; - seatd-service-type: simple seat management daemon - greetd-service-type: simple login daemon Both services are very minimalistic in nature. Simple seatd daemon could be said as replacement for elogind-service-type. greetd daemon is simple replacement for mingetty/agetty. In addition to the base services, special build of pam-mount module is included as greetd-pam-mount. It is used to provide auto-(mounting/unmounting) of XDG_RUNTIME_DIR. Special build is required to avoid interference with default pam-mount, if used in the system. greetd provides agreety terminal greeter out of the box. Current greetd-service-type includes configuration for greetd-agreety-session variations, i.e. only terminal are supported at the moment. Next step would be adding gtkgreet and/or wlgreet alternatives for graphical greeter. muradm (7): gnu: crates-io: Add rust-enquote 1.0.3 gnu: crates-io: Add rust-pam-sys 0.5.6 gnu: freedesktop: Add greetd 0.7.0 gnu: admin: Add greetd-pam-mount gnu: desktop: Add seatd-service-type gnu: desktop: Add greetd-service-type doc: Add desktop seatd-service-type and greetd-service-type doc/guix.texi | 183 ++++++++++++++++++++++++ gnu/packages/admin.scm | 20 +++ gnu/packages/crates-io.scm | 49 +++++++ gnu/packages/freedesktop.scm | 80 +++++++++++ gnu/services/desktop.scm | 269 ++++++++++++++++++++++++++++++++++- 5 files changed, 600 insertions(+), 1 deletion(-) -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 10 16:08:15 2021 Received: (at 49969) by debbugs.gnu.org; 10 Aug 2021 20:08:15 +0000 Received: from localhost ([127.0.0.1]:60873 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDY2o-00079Y-Rv for submit@debbugs.gnu.org; Tue, 10 Aug 2021 16:08:15 -0400 Received: from mail-ej1-f53.google.com ([209.85.218.53]:42502) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDY2n-00079I-SA for 49969@debbugs.gnu.org; Tue, 10 Aug 2021 16:08:14 -0400 Received: by mail-ej1-f53.google.com with SMTP id e19so37656645ejs.9 for <49969@debbugs.gnu.org>; Tue, 10 Aug 2021 13:08:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=OsYa1NfLVeJnB+RD2QLBDFSwgZI2JZ2nBHY4M+MIyYE=; b=VnzEwONglEtC8hhxmAj6+Fw44dU12MVzRmGFDRs8nHKwEED+IuHMBukmVeOrtIGq+7 16S4hdHSqsPC2XTxdD0eB3vMwgE/dvdm1/FPYe8GXWzlm4sqbMEH2Vxs7Z2U4qkLOt9a BQX5VZj6ot1Wm+z/gTz2e/wauyZVoph6Z/xqQjHz47VCTTet4V1qOKe3HOM45/cyaWpM pWxSVqgzLFIcZbCEgy+EwLHpFUxwIH8ceF0/yem3YvA9+5X2YtpgU5Mx5F9G4tuOe55S wY35TD7i9EumRBwc+QaV42ac4Cj+1EMor7EIXtV9yY/tnjB+LaoBmG3FXT3zaIlnYtSl czpg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=OsYa1NfLVeJnB+RD2QLBDFSwgZI2JZ2nBHY4M+MIyYE=; b=Vm2Pw0PQ1s98i410ZCUFZsjeHtRCY3wANqaba3Sl+ttMYoOoGQsaBGbkQRUKcRsPFo X8VlgnrcPksJ38IGqCm+34iqnVHarYi31hiCMth6ITOzTTxvf6WhHYBCGRAFSv+b0ZO+ GeH9NjGuWte5YZKZJAx9dC5sUp76mIqsUwRrSsiVdxvYDVzaNTf3cusfypXr82V+kN5O i4YS7dR6HqeIyRjpB3uog9W1+l//V2Hud8zSCIH0w3LGAybEOn6ZPz9ZEdNqkHFosF5c nYB3w60Zfw5PzuPNLI+arBQ9FuPwLo/DaJMj9zYepKqsWEIOBDIpUcg0Ubs8qxRwoA2q azrw== X-Gm-Message-State: AOAM531did0JfEtc8xWYq+lFXDDtttlaQTQBTSy/Qm/oPGXZyMizao7q KkCXI/NYRiAex9AUkFG8Ef3wcD5bE2fCFA== X-Google-Smtp-Source: ABdhPJzMGr5uecD7x4kDnCyP1HyyhlJ3UZtCHxbZh7GflmtSmHM8ma5sbdKCLVU66yU99z4K6u18Lg== X-Received: by 2002:a17:906:6490:: with SMTP id e16mr205122ejm.467.1628626087864; Tue, 10 Aug 2021 13:08:07 -0700 (PDT) Received: from localhost.localdomain ([31.142.54.188]) by smtp.gmail.com with ESMTPSA id qa34sm7247582ejc.120.2021.08.10.13.08.06 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Aug 2021 13:08:07 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v2 2/7] gnu: crates-io: Add rust-pam-sys 0.5.6 Date: Tue, 10 Aug 2021 23:07:51 +0300 Message-Id: <20210810200756.9581-2-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210810193626.9186-1-mail@muradm.net> References: <20210810193626.9186-1-mail@muradm.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/crates-io.scm (rust-pam-sys): Add rust-pam-sys 0.5.6 --- gnu/packages/crates-io.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index b458080ca7..b365a2c8c0 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -56,6 +56,7 @@ #:use-module (gnu packages image) #:use-module (gnu packages jemalloc) #:use-module (gnu packages llvm) + #:use-module (gnu packages linux) #:use-module (gnu packages multiprecision) #:use-module (gnu packages nettle) #:use-module (gnu packages pcre) @@ -56994,3 +56995,29 @@ variant of this library is available separately as @code{im}.") (description "This Rust library quotes, unquotes, and unescapes strings.") (license license:unlicense))) + +(define-public rust-pam-sys-0.5.6 + (package + (name "rust-pam-sys") + (version "0.5.6") + (home-page "https://github.com/1wilkens/pam-sys") + (source + (origin + (method url-fetch) + (uri (crate-uri "pam-sys" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0d14501d5vybjnzxfjf96321xa5wa36x1xvf02h02zq938qmhj6d")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-libc" ,rust-libc-0.2)))) + (native-inputs + `(("linux-pam" ,linux-pam))) + (synopsis + "Rust FFI wrappers for the Linux Pluggable Authentication Modules (PAM).") + (description + "Rust FFI wrappers for the Linux Pluggable Authentication Modules (PAM).") + (license (list license:expat license:asl2.0)))) -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 10 16:08:24 2021 Received: (at 49969) by debbugs.gnu.org; 10 Aug 2021 20:08:24 +0000 Received: from localhost ([127.0.0.1]:60878 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDY2s-00079p-2W for submit@debbugs.gnu.org; Tue, 10 Aug 2021 16:08:24 -0400 Received: from mail-ej1-f46.google.com ([209.85.218.46]:35403) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDY2m-00079G-RV for 49969@debbugs.gnu.org; Tue, 10 Aug 2021 16:08:17 -0400 Received: by mail-ej1-f46.google.com with SMTP id w5so13539020ejq.2 for <49969@debbugs.gnu.org>; Tue, 10 Aug 2021 13:08:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=IA2tm41JOw833UoybHSGJxPeblBYkg5VYWriA0hu6q8=; b=BWUraOzkPj4zqfO2ohPzNc3bxQRtykqbZB0wwo35SWSGR/5WH9zOWCz4tRhoeXYS4V Ii+z7OB0vgZKVsrr/QE1IY3gaXjNANUH/kjmBUINXcfViuVvWQcUcZp4dJDijZBjwvsy F1kYTsBFg5iScheIuqlDkZevSNNEOPUQ3SsZ7bfKkLMlCA6wtj/s5IjpnWZ9omSw1y2T RowGBOenNc1dMBcn19Y4nSuBsYoJmewipJgqvUe9lXZFEU89azUe7alg4ssJ2hay2L4K j0VpWyzD21OCpGmZ1jq9tzZZGKzYrJH9CCI0BcRjjyjDjwD/B0gsJCD15eBnLV9dOFr4 IYYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=IA2tm41JOw833UoybHSGJxPeblBYkg5VYWriA0hu6q8=; b=dqluWWaxvEYpnFLk4DPlt28n7hsdBbu+Wmaj1gw4IVKjWCgUJyta/1OTEbsHg6+FDD 0N9P4317O3BKojgBZRuEsW9zaxofaRBu+2wT51AplnsXc+bRWE0l8hmeoSs4+wOJ/E+l XhNLRbolTVDyL2xlWTk+ImSdlPRRV9rfxvTTfCcEjZTwJkTzOPWYDwl2mlScjPf7BRqd gxIStqSYdHNAUEa3EP8iwWKWo+qWAeCHdPDwJ9Xlmq1t5TDwdeZRflUgmdKaEg78Em5e Qk52iOVCRGxeEzV7sMpk4uEnUiZm0ZCNix8+Mxd1844E/HTAOFwKo4ClgkKFEkzcuAFl lnCA== X-Gm-Message-State: AOAM532Ayyg8HM5JHUkkwqBcpFjXbCfSWaYpdN23QiHUjwb9hs6yXYir 6LBhMWT+ez2uX0ZN+JTnTzKXyIBiT5WSbA== X-Google-Smtp-Source: ABdhPJxEHne9ds6OaZ8yrk4zM/Jf9gBbmnt3nU3LyivOqmHUGHTdEjTj+yOxL1JFhcQmZ6/dacRzFA== X-Received: by 2002:a17:906:4dd5:: with SMTP id f21mr268925ejw.284.1628626086535; Tue, 10 Aug 2021 13:08:06 -0700 (PDT) Received: from localhost.localdomain ([31.142.54.188]) by smtp.gmail.com with ESMTPSA id qa34sm7247582ejc.120.2021.08.10.13.08.04 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Aug 2021 13:08:05 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v2 1/7] gnu: crates-io: Add rust-enquote 1.0.3 Date: Tue, 10 Aug 2021 23:07:50 +0300 Message-Id: <20210810200756.9581-1-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210810193626.9186-1-mail@muradm.net> References: <20210810193626.9186-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/crates-io.scm (rust-enquote-1): Add rust-enquote 1.0.3 --- gnu/packages/crates-io.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 24cc772ba7..b458080ca7 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -18,6 +18,7 @@ ;;; Copyright © 2021 Antero Mejr ;;; Copyright © 2021 Maxim Cournoyer ;;; Copyright © 2021 Vinicius Monego +;;; Copyright © 2021 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -56972,3 +56973,24 @@ variant of this library is available separately as @code{im}.") (description "Generate Rust register maps (`struct`s) from SVD files") (license (list license:expat license:asl2.0)))) + +(define-public rust-enquote-1 + (package + (name "rust-enquote") + (version "1.0.3") + (home-page "https://github.com/reujab/enquote") + (source + (origin + (method url-fetch) + (uri (crate-uri "enquote" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0vm687r2wwgc3d3l2iqhag9wgkql6k93sdvjxvmfkdpksajpij1f")))) + (build-system cargo-build-system) + (synopsis + "This Rust library quotes, unquotes, and unescapes strings.") + (description + "This Rust library quotes, unquotes, and unescapes strings.") + (license license:unlicense))) -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 10 16:08:28 2021 Received: (at 49969) by debbugs.gnu.org; 10 Aug 2021 20:08:29 +0000 Received: from localhost ([127.0.0.1]:60882 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDY2y-0007AO-75 for submit@debbugs.gnu.org; Tue, 10 Aug 2021 16:08:28 -0400 Received: from mail-ej1-f47.google.com ([209.85.218.47]:36557) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDY2p-00079K-2G for 49969@debbugs.gnu.org; Tue, 10 Aug 2021 16:08:19 -0400 Received: by mail-ej1-f47.google.com with SMTP id o23so4489338ejc.3 for <49969@debbugs.gnu.org>; Tue, 10 Aug 2021 13:08:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=VNGnseJDWam81ZBvjmqRKojMs5N5/djUyydulj9nhTg=; b=otJZRG1Uc03vdRMfOTaqJlsHFkWKDPbT//+6QDdQQOu/V1OrEvxSUQIZg8LfJOjz5y I+ixPsU56rWkjYX9NIytEHcvyTKo+IQv+PW0ryB1v4081BZvJwqmfIGmzJ70VGQy9/Fa jQ9lueKVEj5lcflG7jiT4XweLPBOhRcrcEd+/TK89rpexBUDrEIEoKOETRakpH2gqreI 4cTwZi5QJhbXq+mtSA/xqAHxPDdgJOWFWjuTh5R68CbTw02RIP59QdTvnN1UMP6vKhbH AXWBH7BLrsBfeWd7wrVxoUw2hPFG4H4Ope1QDb3vrgVVZyGsHFgUq2YFUrBmVA2nyDcx MmNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=VNGnseJDWam81ZBvjmqRKojMs5N5/djUyydulj9nhTg=; b=kZqV9vRo0KlXl8ODKnF0BSlY7Pe7+mzpr4ktuM4cSbiTlbiBAoHkzot8+D9g07EGMI UbgHrYZ2/Fzs7aZ7Ql4OO9T8+WZOYhHjrI1GPIzU9evCGYuJF6rigYnzsxLnEln6n+X2 /zPchY0FJEkLX8l5eM/QPnrjsjqu5DsHranFAwS4P1LyDJnXaXPFF+g0qCvMGRDPDQpe 7vbCHx/U/+i0FW9s3MP/+maWmMuRLWMp0iAzNVVmxvQnu/2VEoFZ8CfquS0NAlwLf/S7 pGMSo9gbNjwKja9bRlLJbsxsZcTA+EURuL4+7ObweNbpck/H9lzpH6Y0ivOP+nwzDBob y4zA== X-Gm-Message-State: AOAM531kj6gYC8PE6/T67Cj5llLdEo10BZ71+ORCvHIheEoHXK9kELQH oGBHLpEYE+kZSuyrRUN0M0idZV1RdzQ/7w== X-Google-Smtp-Source: ABdhPJyfs9qnbuIzv8Td3WAv1Dg1JDuVH95Bvky8g51iv8JZyLHYKwCg+jkVzsXzUx3GOjTKsy/YTw== X-Received: by 2002:a17:906:fa10:: with SMTP id lo16mr268603ejb.154.1628626089270; Tue, 10 Aug 2021 13:08:09 -0700 (PDT) Received: from localhost.localdomain ([31.142.54.188]) by smtp.gmail.com with ESMTPSA id qa34sm7247582ejc.120.2021.08.10.13.08.08 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Aug 2021 13:08:08 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v2 3/7] gnu: freedesktop: Add greetd 0.7.0 Date: Tue, 10 Aug 2021 23:07:52 +0300 Message-Id: <20210810200756.9581-3-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210810193626.9186-1-mail@muradm.net> References: <20210810193626.9186-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * 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 ;;; Copyright © 2021 Brendan Tildesley ;;; Copyright © 2021 pineapples +;;; Copyright © 2021 muradm ;;; ;;; 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") -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 10 16:08:33 2021 Received: (at 49969) by debbugs.gnu.org; 10 Aug 2021 20:08:33 +0000 Received: from localhost ([127.0.0.1]:60884 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDY32-0007AZ-RR for submit@debbugs.gnu.org; Tue, 10 Aug 2021 16:08:33 -0400 Received: from mail-ej1-f53.google.com ([209.85.218.53]:36567) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDY2q-00079M-Bh for 49969@debbugs.gnu.org; Tue, 10 Aug 2021 16:08:22 -0400 Received: by mail-ej1-f53.google.com with SMTP id o23so4489450ejc.3 for <49969@debbugs.gnu.org>; Tue, 10 Aug 2021 13:08:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=Ji/0u8o52Eleku7bBaveyVCcBuSY/EtVjU0+md9XL9M=; b=bCnXt6VTR4bU/JzOo5shBVRbenRt//2ZsiiHiW5edoBO9LH+vKo3WB4AHqfkiCbuyn d4fisI6f2UfSRX90/27qrOdp5yibJTc0cytiteCqFZ4fa4aDI5SXhQzVu+Lxvo0ml9c3 gIaedP3YO7VVJPJPEXFEZkWgbT2fgaPFGQTE7dk9cApEVc/wlzEsITRO0fkZdEekLVwN ujvvtBAiXLPFpw9LPIwLpVcyoxYO8VEj1zxONuyF3ij2CsRVzgbHoNXY42gNPbYKxBsE peMZ9YWpA5ef0Hh63X2JZi+sIVKOZeDkpl6FTdqERnJgJoSBRDT9FXhJMTsk8jnMUPO2 xwLw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Ji/0u8o52Eleku7bBaveyVCcBuSY/EtVjU0+md9XL9M=; b=tz3S58nz+tsF6alcKMNJjWmMdSBnrLfRWlra42TMaXokfVRil3fzCHM4eOX0vz2d0L MiqojPqaYmgOjEJJ9k24TY5SLSAU/BJ4IKg+wV7VDD9uzi2DY0czcuYAXrtSh/L/iY9i vIv9waFmDKS2sVaSzEI+lPOLxS/45AgfhsV9GL1l44bSMQCz5OYOwU5HB7vAsQx08hES R1SgDcZmrA2EsXVWmjBk6susei5tHAzIFL7CiqoOpCJFt383ui3mof3JU0jDA/7fcsMD fNZRVkV1Z19ytzgOoGaqxxgYV4qBjvxH02B3oo3V2YZazWGguLbUxS+mKQt88QFsxH71 T5AQ== X-Gm-Message-State: AOAM532M5Y5vII3q7WMGIf1HnLUZhCW5FTiNGXXUXSf2vDB96ix2akiG zNI2XwB2yixZcSRWaEx9nXTz8blSpEGUDw== X-Google-Smtp-Source: ABdhPJyTI+oEpR2zmYGh3dU+7fdN4xJIai2bm9DrYP4Rb5kb62Oo3CD4se/kgbUfilHHSdc9uzCACA== X-Received: by 2002:a17:907:3e05:: with SMTP id hp5mr205123ejc.527.1628626090555; Tue, 10 Aug 2021 13:08:10 -0700 (PDT) Received: from localhost.localdomain ([31.142.54.188]) by smtp.gmail.com with ESMTPSA id qa34sm7247582ejc.120.2021.08.10.13.08.09 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Aug 2021 13:08:10 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v2 4/7] gnu: admin: Add greetd-pam-mount Date: Tue, 10 Aug 2021 23:07:53 +0300 Message-Id: <20210810200756.9581-4-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210810193626.9186-1-mail@muradm.net> References: <20210810193626.9186-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 2.0 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: This package inherits pam-mount in the way that it is compiled specifically for use with greetd daemon. It uses different configuration location and name space for storing data in PAM. greetd-pam-mount is used in configuration of greetd to provide auto-(mounting/unmounting) of XDG_RUNTIME_DIR in the way that it will not interfere with default pam-mount configuration. Content analysis details: (2.0 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) [209.85.218.53 listed in wl.mailspike.net] -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [209.85.218.53 listed in list.dnswl.org] 0.0 SPF_NONE SPF: sender does not publish an SPF Record 2.0 PDS_OTHER_BAD_TLD Untrustworthy TLDs [URI: selfhosted.xyz (xyz)] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 RCVD_IN_MSPIKE_WL Mailspike good senders X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) This package inherits pam-mount in the way that it is compiled specifically for use with greetd daemon. It uses different configuration location and name space for storing data in PAM. greetd-pam-mount is used in configuration of greetd to provide auto-(mounting/unmounting) of XDG_RUNTIME_DIR in the way that it will not interfere with default pam-mount configuration. * gnu/packages/admin.scm (greetd-pam-mount): Add greetd-pam-mount --- gnu/packages/admin.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index eda269f148..e805b219c5 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -42,6 +42,7 @@ ;;; Copyright © 2021 David Larsson ;;; Copyright © 2021 WinterHound ;;; Copyright © 2021 Brice Waegeneire +;;; Copyright © 2021 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -4247,6 +4248,25 @@ supports. It can also mount encrypted LUKS volumes using the password supplied by the user when logging in.") (license (list license:gpl2+ license:lgpl2.1+)))) +(define-public greetd-pam-mount + (package + (inherit pam-mount) + (name "greetd-pam-mount") + (arguments + (substitute-keyword-arguments (package-arguments pam-mount) + ((#:configure-flags flags ''()) + `(cons* "--with-rundir=/run/greetd" ,flags)) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'unpack 'patch-config-file-name + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/pam_mount.c" + ((".*define CONFIGFILE .*$") + "#define CONFIGFILE \"/etc/security/greetd_pam_mount.conf.xml\"\n") + (("pam_mount_config") "greetd_pam_mount_config") + (("pam_mount_system_authtok") "greetd_pam_mount_system_authtok")))))))) + (synopsis "pam-mount specifically compiled for use with greetd"))) + (define-public jc (package (name "jc") -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 10 16:08:37 2021 Received: (at 49969) by debbugs.gnu.org; 10 Aug 2021 20:08:37 +0000 Received: from localhost ([127.0.0.1]:60886 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDY37-0007Am-AZ for submit@debbugs.gnu.org; Tue, 10 Aug 2021 16:08:37 -0400 Received: from mail-ej1-f46.google.com ([209.85.218.46]:46818) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDY2r-00079P-U7 for 49969@debbugs.gnu.org; Tue, 10 Aug 2021 16:08:22 -0400 Received: by mail-ej1-f46.google.com with SMTP id gs8so37607069ejc.13 for <49969@debbugs.gnu.org>; Tue, 10 Aug 2021 13:08:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=JLAQyW2C1YP3WI4eDDJWM2Ywvm62IDNoDCygivZzhz8=; b=eAIEYM6EOSMAj7XFyPpkzpxVPA7DqQ5PawhG+rrOGKq9kM5MYfxzUBrO/hwfAPUxvq Xz5CfnjSnqojX7YyOBli87KnneMtHBRux7uY2Iiwb4XczfPw/qvY1tGfd24RVObSZ5hC CcQ+ueHPZGCIOI0sLV5dLOUAsRDgJ4UAPfZ/NSdurW7wCiwl/W6IINHzMQwLN/m1pUZk gZ5Osee4RotflMqUDKSmp96jyqU3Szzq9hwvHuz1YGPEMm03MPBnWwu17m72e6gugLQN 0g8IHgxLadifNKh9sJKwZ0MaIjUtNnewaZv2il9AvK4zgh+1T9oS1/7c2syLV/FUVVlC u1ag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=JLAQyW2C1YP3WI4eDDJWM2Ywvm62IDNoDCygivZzhz8=; b=rPlMNqNDhPF5Z9uERl+XDKqwNnIc8TbBx4gyRrt1SNFdC901k6ptfySak1fFfv2fwd 5en0H+RtfezMPv9QPngWF7mh1liW4KsGDHGDIsD77ctLZEcS3Bp9l2oQEaebU22XIT7/ n0V9Sv2PI0THGu4vN314WMVv/TX3uy7E2I4kstrFNHtgzAMmY4Kdoif7QOP9GlpufeSH tzWdmU39o8SjseagE0whesGLwMbZIXkEzOxWSZYq/05X6xV3lAiToBHMEDJdHoC6124q 54uXaGA3Ymj71qsDMOq2CvWdqG/r7MpGM2IIzTn7f1sKl43gjeE0L8fQnqpZ6uDVm8oq WPvQ== X-Gm-Message-State: AOAM531DZj7faKgF2RY4kpQuf8vbnhPeFCqdnccaND+OMswPkMFYHJlm De7Cp4271hZO+C3NudPu32BG4XKlWMVFjg== X-Google-Smtp-Source: ABdhPJxWwHfbi7w/CV1LGrv9rsNKOqTF+f4R4F9QlaUdlI8HOwZqnfds6ltRMWljpk0uLgizXeNxeA== X-Received: by 2002:a17:906:b09:: with SMTP id u9mr247806ejg.496.1628626092089; Tue, 10 Aug 2021 13:08:12 -0700 (PDT) Received: from localhost.localdomain ([31.142.54.188]) by smtp.gmail.com with ESMTPSA id qa34sm7247582ejc.120.2021.08.10.13.08.10 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Aug 2021 13:08:11 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v2 5/7] gnu: desktop: Add seatd-service-type Date: Tue, 10 Aug 2021 23:07:54 +0300 Message-Id: <20210810200756.9581-5-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210810193626.9186-1-mail@muradm.net> References: <20210810193626.9186-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) A seat management daemon, that does everything it needs to do. Nothing more, nothing less. Depends only on libc. * gnu/services/desktop.scm: Add seatd-service-type --- gnu/services/desktop.scm | 59 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 58 insertions(+), 1 deletion(-) diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index 64d0e85301..bfba9bccec 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -13,6 +13,7 @@ ;;; Copyright © 2020 Tobias Geerinckx-Rice ;;; Copyright © 2020 Reza Alizadeh Majd ;;; Copyright © 2021 Brice Waegeneire +;;; Copyright © 2021 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -39,7 +40,9 @@ #:use-module (gnu services networking) #:use-module (gnu services sound) #:use-module ((gnu system file-systems) - #:select (%elogind-file-systems file-system)) + #:select (%control-groups + %elogind-file-systems + file-system)) #:use-module (gnu system) #:use-module (gnu system setuid) #:use-module (gnu system shadow) @@ -154,6 +157,9 @@ gnome-keyring-configuration? gnome-keyring-service-type + seatd-configuration + seatd-service-type + %desktop-services)) ;;; Commentary: @@ -1182,6 +1188,57 @@ or setting its password with passwd."))) (define polkit-wheel-service (simple-service 'polkit-wheel polkit-service-type (list polkit-wheel))) + +;;; +;;; seatd-service-type -- minimal seat management daemon +;;; + +(define-record-type* seatd-configuration + make-seatd-configuration + seatd-configuration? + (seatd seatd-package (default seatd)) + (user seatd-user (default "root")) + (group seatd-group (default "users")) + (socket seatd-socket (default "/run/seatd/socket")) + (loglevel seatd-loglevel (default "error"))) + +(define (seatd-shepherd-service config) + (list (shepherd-service + (requirement '()) + ;; TODO: once cgroups is separate dependency + ;; here we should depend on it rather than elogind + (provision '(seatd elogind)) + (start #~(make-forkexec-constructor + (list #$(file-append (seatd-package config) "/bin/seatd") + "-u" #$(seatd-user config) + "-g" #$(seatd-group config) + "-s" #$(seatd-socket config)) + #:environment-variables + (list (string-append "SEATD_LOGLEVEL=" + #$(seatd-loglevel config))) + #:log-file "/tmp/seatd.log")) + (stop #~(make-kill-destructor))))) + +(define seatd-environment + (match-lambda + (($ _ _ _ socket) + `(("SEATD_SOCK" . ,socket))))) + +(define seatd-service-type + (service-type + (name 'seatd) + (extensions + (list + (service-extension session-environment-service-type + seatd-environment) + ;; TODO: once cgroups is separate dependency + ;; we should not mount it here + (service-extension file-system-service-type + (const %control-groups)) + (service-extension shepherd-root-service-type + seatd-shepherd-service))) + (default-value (seatd-configuration)))) + ;;; ;;; The default set of desktop services. -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 10 16:08:38 2021 Received: (at 49969) by debbugs.gnu.org; 10 Aug 2021 20:08:38 +0000 Received: from localhost ([127.0.0.1]:60888 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDY3B-0007Ax-Mh for submit@debbugs.gnu.org; Tue, 10 Aug 2021 16:08:38 -0400 Received: from mail-ej1-f54.google.com ([209.85.218.54]:46838) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDY2v-00079g-CM for 49969@debbugs.gnu.org; Tue, 10 Aug 2021 16:08:22 -0400 Received: by mail-ej1-f54.google.com with SMTP id gs8so37607329ejc.13 for <49969@debbugs.gnu.org>; Tue, 10 Aug 2021 13:08:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=UKAcPMRx55FH/riFmKry6ODo8gDXhvsR3WcroQQur7Y=; b=LmxdYY5IaXChowF2PMAB2ugRmwb/eJRMGHNENcIi7YGkuxs5xWxOLwfAqzf7nyknlc C4FeGOYyu3+vJLaG/aeiEhAUlipmpk+crqadQYZ7FBASBHlaXLBLpeewYVK4qI/oT7jz XuTz3XuX25kuP5YY0hWoNbfrqSYVIgQNnDJAglrP1n8vR6Hmo7AeNN63mlNQEZYGaNPU ib0/Xnje9FRYBkV1Zizeqfr53qb48nLfHhszWDSeimvqandJm5CwQPIJz/IP2c3Dn90d eSZ8Q7z1ocW942MgdN1Xs1x98pjEkdJGI0dhqDK1I1iOzDUIj/z4jz0dTXPi4WNsriHO f5Jg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=UKAcPMRx55FH/riFmKry6ODo8gDXhvsR3WcroQQur7Y=; b=fgQIMpaNx0lPN7gPQmgKw275pkELMdNsMCpOtsB9iybs3mt7IberJdiv0feUyTsMiV EfADUMg5ArNqtaXBZtcP3vBbJe2vbBNir8q3wStDBHmJkjbbCa0tSGVQiRTuy052zSWw 2zf5cTSW18nCKcZGXbkMJdXJoyh5uEmPQd60bhjUpZREh+dFvalFqrjOV+7Rp8eBnMLE iJMdmc+S22VJ7WaBCiSIAArKYdm4IwKeLOPNq0gSEVmGdo6TaDRYyEQvWiq83pq2wloR aa5tJ3yxgAzgo/y89wzEOvHgunYJt2IjahoK6AiWUe5dC+lTidWjyj8vQz10q+eCMdu6 KM7w== X-Gm-Message-State: AOAM5339CiQeQxKaMO/QiKm+hlqc+HWy5V1YfUbzgGcVDEY/EMNBJ3n8 LZ/EIHQ8x+iBhDomwFkBO8aBWmlsH21a+g== X-Google-Smtp-Source: ABdhPJwgxxGWxR/tFtgnTOdUdGjCY9cIn1xDP4pd5Ule+z4A80/6ngCDvGGCEg5b8IFnifjgz7gSQw== X-Received: by 2002:a17:906:9c84:: with SMTP id fj4mr262708ejc.356.1628626095408; Tue, 10 Aug 2021 13:08:15 -0700 (PDT) Received: from localhost.localdomain ([31.142.54.188]) by smtp.gmail.com with ESMTPSA id qa34sm7247582ejc.120.2021.08.10.13.08.14 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Aug 2021 13:08:14 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v2 7/7] doc: Add desktop seatd-service-type and greetd-service-type Date: Tue, 10 Aug 2021 23:07:56 +0300 Message-Id: <20210810200756.9581-7-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210810193626.9186-1-mail@muradm.net> References: <20210810193626.9186-1-mail@muradm.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * doc/guix.texi (Desktop Services): Provide documentation for seatd-service-type and greetd-service-type including configuration and sample usage. --- doc/guix.texi | 183 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 183 insertions(+) diff --git a/doc/guix.texi b/doc/guix.texi index 4eb5324b51..586b879608 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -94,6 +94,7 @@ Copyright @copyright{} 2021 Xinglu Chen@* Copyright @copyright{} 2021 Raghav Gururajan@* Copyright @copyright{} 2021 Domagoj Stolfa@* Copyright @copyright{} 2021 Hui Lu@* +Copyright @copyright{} 2021 muradm@* Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -19694,6 +19695,188 @@ and ``passwd'' is with the value @code{passwd}. @end table @end deftp +@defvr {Scheme Variable} seatd-service-type +A minimal seat management daemon, and a universal seat management library. + +Seat management takes care of mediating access to shared devices (graphics, +input), without requiring the applications needing access to be root. + +In general should be used as replacement to @code{elogind-service-type}. + +@lisp +(append + (list + ;; make sure seatd is running + (service seatd-service-type) + + (service greetd-service-type + (greetd-configuration + (terminals + (list + ;; lets have terminals 1, 2 and 3 run default XDG terminal session + (greetd-terminal-configuration (terminal-vt "1")) + (greetd-terminal-configuration (terminal-vt "2")) + (greetd-terminal-configuration (terminal-vt "3")) + ;; and terminals 4, 5 and 6 plain bash terminal session + ;; although not so plain, just to illustrate flexibility + (greetd-terminal-configuration + (terminal-vt "4") + (default-session-command greetd-agreety-tty-session)) + (greetd-terminal-configuration + (terminal-vt "5") + (default-session-command greetd-agreety-tty-session)) + (greetd-terminal-configuration + (terminal-vt "6") + (default-session-command greetd-agreety-tty-session)))))) + + ;; normaly one would want %base-services + (modify-services %desktop-services + ;; seatd/greetd combination can replace these + (delete elogind-service-type) + (delete agetty-service-type) + (delete mingetty-service-type))) + +@end lisp + +@end defvr + +@deftp {Data Type} seatd-configuration +Configuration record for the seatd daemon service. + +@table @asis +@item @code{seatd} (default: @code{seatd}) +The seatd package to use. + +@item @code{user} (default: @samp{"root"}) +User to own the seatd socket. + +@item @code{group} (default: @samp{"users"}) +Group to own the seatd socket. + +@item @code{socket} (default: @samp{"/run/seatd/socket"}) +Where to create the seatd socket. + +@item @code{loglevel} (default: @samp{"error"}) +Log level to output logs. Possible values: @samp{"silent"}, @samp{"error"}, +@samp{"info"} and @samp{"debug"}. + +@end table +@end deftp + +@defvr {Scheme Variable} greetd-service-type +greetd is a minimal and flexible login manager daemon that makes no +assumptions about what you want to launch. + +If you can run it from your shell in a TTY, greetd can start it. If it +can be taught to speak a simple JSON-based IPC protocol, then it can +be a greeter. + +@code{} provides necessary infrastructure for +logging in users, including: + +@itemize @bullet +@item +@code{greetd} PAM service + +@item +Special variation of @code{pam-mount} to mount @code{XDG_RUNTIME_DIR} + +@end itemize + +@end defvr + +@deftp {Data Type} greetd-configuration +Configuration record for the greetd service. + +@table @asis +@item @code{motd} +A file-like object containing the ``message of the day''. + +@item @code{allow-empty-passwords?} (default: @code{#t}) +Allow empty passwords by default so that first-time users can log in when +the 'root' account has just been created. + +@item @code{terminals} (default: @code{'()}) +List of @code{} per terminal for which +@code{greetd} should be started. + +@end table +@end deftp + +@deftp {Data Type} greetd-terminal-configuration +Configuration record for per terminal greetd daemon service. + +@table @asis +@item @code{greetd} (default: @code{greetd}) +The greetd package to use. + +@item @code{config-file-name} +Configuration file name to use for greetd daemon. Generally, autogenerated +derivation based on @code{terminal-vt} value. + +@item @code{terminal-vt} (default: @samp{"7"}) +The VT to run on. Use of a specific VT with appropriate conflict avoidance +is recommended. + +@item @code{default-session-user} (default: @samp{"greeter"}) +The user to use for running the greeter. + +@item @code{default-session-command} (default: @code{greetd-agreety-tty-xdg-session}) +The command-line to run to start the default session. + +Possible values are: + +@itemize @bullet +@item +@code{greetd-agreety-tty-session} - bash terminal session + +@item +@code{greetd-agreety-tty-xdg-session} - bash terminal session with XDG environment + +@item +@code{greetd-agreety-session} - custom instance of terminal session +@end itemize + +@end table +@end deftp + +@deftp {Data Type} greetd-agreety-session +Configuration record for the agreety greetd greeter. + +@table @asis +@item @code{package} (default: @code{bash}) +The package of command. + +@item @code{command-bin} (default: @samp{"/bin/bash"}) +Path to binary relative to @code{package}. + +@item @code{command-args} (default: @code{'("-l")}) +Command arguments to pass to command. + +@item @code{extra-env} (default: @code{'()}) +Extra environment variables to set on login. + +@item @code{command-generator} +Function that receives instance of this configuration as an argument and +returns @code{program-file} that can be used with @code{agreety} greeter. + +Both @code{greetd-agreety-tty-session} and @code{greetd-agreety-tty-xdg-session} +uses @code{greetd-agreety-session} under the hood. + +@end table +@end deftp + +@defvr {Scheme Variable} greetd-agreety-tty-session +Provides instance of @code{greetd-agreety-session} which starts @samp{"bash -l"} +on login. +@end defvr + +@defvr {Scheme Variable} greetd-agreety-tty-xdg-session +Provides instance of @code{greetd-agreety-session} which starts @samp{"bash -l"} +on login. Additionally, will set @code{XDG_SESSION_TYPE} and +@code{XDG_RUNTIME_DIR} environment variables for session. +@end defvr + @node Sound Services @subsection Sound Services -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 10 16:08:42 2021 Received: (at 49969) by debbugs.gnu.org; 10 Aug 2021 20:08:42 +0000 Received: from localhost ([127.0.0.1]:60890 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDY3C-0007B5-5j for submit@debbugs.gnu.org; Tue, 10 Aug 2021 16:08:42 -0400 Received: from mail-ed1-f48.google.com ([209.85.208.48]:35341) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDY2t-00079W-QH for 49969@debbugs.gnu.org; Tue, 10 Aug 2021 16:08:23 -0400 Received: by mail-ed1-f48.google.com with SMTP id cf5so32002032edb.2 for <49969@debbugs.gnu.org>; Tue, 10 Aug 2021 13:08:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=cAWqjx1luy/LK+TvIV8A4Hm5Au/ElAxpxaRdBE/u1pc=; b=0TqpGzujv8FQmG0s003Zq+1rDbGzcqnBbJmMAwR7+goeK93QJsfBNrrhYPvV9v7Gk+ aD+G/yJY3761/yaB5HtAI6SYVawaOYazv6wk39TEEV2YtlieAVFlXtzBQ7RB/CpLaK+I XuF0FJ0Tg5XQ4WSnori7FxAaA+u8Of5YFcgEXWQCTMrH7aPOREuj4PcAeVJtFBQARo7r Cb3qsA+oAZIz1C7WVakpU6vxx99TnafeW7pgn9+FFRD+TfpCkikUu6/TB0HTIKVenv2p hLE84RG8DnHsLXdL/ijTuuFQkDKCJuuCXEETmXbcepHkJDD+jgKv+TBfFSP0mP3lid9R 4bYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=cAWqjx1luy/LK+TvIV8A4Hm5Au/ElAxpxaRdBE/u1pc=; b=RRoS3StvQHUiBSzdtotuL1wXp4BRdEwoqChY+V9Yk8DOr31B6z5aPukji5fGjWCbqT 6fRRutzat6B/qmHImxMvX/++j5dW2W9jRgHQyRZrP/o4DIVNOiGNQvqVWEuxbszP8tg+ lc9Zhe+pQMGFV7u7ig1wSzaCIcfrbhe/JtkDd41Tn3zkyVpNodif+Scf7OiILdZmKEo0 LpgKVMPMuwUVyTY+1KRUZFQTTelSgaZiJ6g+C1Y1N0OdABVPZazpi8AE76NgiBBliGoi e3VNSPs2PR/dPtGzEsVUuQQ6xzRZ/GMjcJ5c3WKLQwaEFIO3/5WWkWVshRvpf89ymxgf 8sag== X-Gm-Message-State: AOAM531HPEUNXilRl6F+0fwRxiOcPOaKJU7KnhrFYc28TJWSGbKep69q CrcLfER8bTcGkqPwS9rl08BGIgmggHx1eQ== X-Google-Smtp-Source: ABdhPJz42R/qinbZemqQUC1kxn0L9ZI92y6MqWOkqfeRyyT4+LcZscaCiG5Ey0W6ztSwlc7B+vnEow== X-Received: by 2002:a05:6402:39a:: with SMTP id o26mr4695884edv.64.1628626093759; Tue, 10 Aug 2021 13:08:13 -0700 (PDT) Received: from localhost.localdomain ([31.142.54.188]) by smtp.gmail.com with ESMTPSA id qa34sm7247582ejc.120.2021.08.10.13.08.12 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Aug 2021 13:08:13 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v2 6/7] gnu: desktop: Add greetd-service-type Date: Tue, 10 Aug 2021 23:07:55 +0300 Message-Id: <20210810200756.9581-6-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210810193626.9186-1-mail@muradm.net> References: <20210810193626.9186-1-mail@muradm.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) greetd is a minimal and flexible login manager daemon that makes no assumptions about what you want to launch. Currently, only agreety configuration is provided. * gnu/services/desktop.scm: Add greetd-service-type --- gnu/services/desktop.scm | 210 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 210 insertions(+) diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index bfba9bccec..be6bb0a86f 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -49,6 +49,7 @@ #:use-module (gnu system pam) #:use-module (gnu packages glib) #:use-module (gnu packages admin) + #:use-module (gnu packages bash) #:use-module (gnu packages cups) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gnome) @@ -1239,6 +1240,215 @@ or setting its password with passwd."))) seatd-shepherd-service))) (default-value (seatd-configuration)))) + +;;; +;;; greetd-service-type -- minimal and flexible login manager daemon +;;; + +(define-record-type* + greetd-agreety-session make-greetd-agreety-session + greetd-agreety-session? + (package greetd-agreety-command-package (default bash)) + (command-bin greetd-agreety-command-bin (default "/bin/bash")) + (command-args greetd-agreety-command-args (default '("-l"))) + (extra-env greetd-agreety-extra-env (default '())) + (command-generator greetd-agreety-command-generator)) + +(define greetd-agreety-tty-session-command + (match-lambda + (($ pkg command-bin command-args extra-env) + (program-file + "agreety-tty-session-command" + #~(begin + (use-modules (ice-9 match)) + (let* ((abs-cmd-bin #$(file-append pkg command-bin))) + (for-each + (match-lambda ((var . val) (setenv var val))) + (quote (#$@extra-env))) + (apply execl abs-cmd-bin abs-cmd-bin + (list #$@command-args)))))))) + +(define greetd-agreety-tty-xdg-session-command + (match-lambda + (($ package command-bin command-args extra-env) + (program-file + "agreety-tty-xdg-session-command" + #~(begin + (use-modules (ice-9 popen) (ice-9 rdelim) (ice-9 match)) + (let* + ((username (getenv "USER")) + (useruid (passwd:uid (getpwuid username))) + (useruid (number->string useruid)) + (abs-cmd-bin #$(file-append package command-bin))) + (setenv "XDG_SESSION_TYPE" "tty") + (setenv "XDG_RUNTIME_DIR" (string-append "/run/user/" useruid)) + (for-each + (match-lambda ((var . val) (setenv var val))) + (quote (#$@extra-env))) + (apply execl abs-cmd-bin abs-cmd-bin + (list #$@command-args)))))))) + +(define greetd-agreety-tty-session + (greetd-agreety-session + (command-generator greetd-agreety-tty-session-command))) + +(define greetd-agreety-tty-xdg-session + (greetd-agreety-session + (command-generator greetd-agreety-tty-xdg-session-command))) + +(define-record-type* + greetd-terminal-configuration make-greetd-terminal-configuration + greetd-terminal-configuration? + (greetd greetd-package (default greetd)) + (config-file-name greetd-config-file-name (thunked) + (default (default-config-file-name this-record))) + (terminal-vt greetd-terminal-vt (default "7")) + (default-session-user greetd-default-session-user (default "greeter")) + (default-session-command greetd-default-session-command + (default greetd-agreety-tty-xdg-session))) + +(define (default-config-file-name config) + (string-join (list "config-" (greetd-terminal-vt config) ".toml") "")) + +(define make-greetd-terminal-default-session-command + (match-lambda + (($ greetd _ _ _ default-session-command) + (cond ((greetd-agreety-session? default-session-command) + (let* + ((generator (greetd-agreety-command-generator + default-session-command)) + (command (apply generator (list default-session-command))) + (agreety-bin (file-append greetd "/bin/agreety"))) + (program-file + "agreety-command" + #~(execl #$agreety-bin #$agreety-bin "-c" #$command)))) + (else (program-file "agreety-command-exit" #~(exit #f))))))) + +(define (make-greetd-terminal-configuration-file config) + (let* + ((config-file-name (greetd-config-file-name config)) + (terminal-vt (greetd-terminal-vt config)) + (default-session-user (greetd-default-session-user config)) + (default-session-command (make-greetd-terminal-default-session-command config))) + (mixed-text-file + config-file-name + "[terminal]\n" + "vt = " terminal-vt "\n" + "[default_session]\n" + "user = " default-session-user "\n" + "command = " default-session-command "\n"))) + +(define %default-motd + (plain-file "motd" "This is the GNU operating system, welcome!\n\n")) + +(define %greetd-accounts + (list (user-account (name "greeter") (group "wheel") (system? #t)))) + +(define %greetd-file-systems + (list (file-system + (device "none") + (mount-point "/run/greetd/pam_mount") + (type "tmpfs") + (check? #f) + (flags '(no-suid no-dev no-exec)) + (options "mode=0755") + (create-mount-point? #t)))) + +(define %greetd-pam-mount-rules + `((debug (@ (enable "0"))) + (volume (@ (sgrp "users") + (fstype "tmpfs") + (mountpoint "/run/user/%(USERUID)") + (options "noexec,nosuid,nodev,size=1g,mode=0700,uid=%(USERUID),gid=%(USERGID)"))) + (logout (@ (wait "0") + (hup "0") + (term "yes") + (kill "no"))) + (mkmountpoint (@ (enable "1") (remove "true"))))) + +(define-record-type* + greetd-configuration make-greetd-configuration + greetd-configuration? + (motd greetd-motd (default %default-motd)) + (allow-empty-passwords? greetd-allow-empty-passwords? (default #t)) + (terminals greetd-terminals (default '()))) + +(define (make-greetd-pam-mount-conf-file config) + (computed-file + "greetd_pam_mount.conf.xml" + #~(begin + (use-modules (sxml simple)) + (call-with-output-file #$output + (lambda (port) + (sxml->xml + '(*TOP* + (*PI* xml "version='1.0' encoding='utf-8'") + (pam_mount + #$@%greetd-pam-mount-rules + (pmvarrun + #$(file-append greetd-pam-mount + "/sbin/pmvarrun -u '%(USER)' -o '%(OPERATION)'")))) + port)))))) + +(define (greetd-etc-service config) + `(("security/greetd_pam_mount.conf.xml" + ,(make-greetd-pam-mount-conf-file config)))) + +(define (greetd-pam-service config) + (define optional-pam-mount + (pam-entry + (control "optional") + (module #~(string-append #$greetd-pam-mount "/lib/security/pam_mount.so")))) + + (list + (unix-pam-service "greetd" + #:login-uid? #t + #:allow-empty-passwords? + (greetd-allow-empty-passwords? config) + #:motd + (greetd-motd config)) + (lambda (pam) + (if (member (pam-service-name pam) + '("login" "greetd" "su" "slim" "gdm-password")) + (pam-service + (inherit pam) + (auth (append (pam-service-auth pam) + (list optional-pam-mount))) + (session (append (pam-service-session pam) + (list optional-pam-mount)))) + pam)))) + +(define (greetd-shepherd-services config) + (map + (lambda (tc) + (let* + ((greetd-bin (file-append (greetd-package tc) "/sbin/greetd")) + (greetd-conf (make-greetd-terminal-configuration-file tc)) + (greetd-vt (greetd-terminal-vt tc))) + (shepherd-service + (requirement '(user-processes host-name udev virtual-terminal)) + (provision (list (symbol-append + 'term-tty + (string->symbol (greetd-terminal-vt tc))))) + (start #~(make-forkexec-constructor + (list #$greetd-bin "-c" #$greetd-conf) + #:log-file + (string-append "/tmp/greetd." #$greetd-vt ".log"))) + (stop #~(make-kill-destructor))))) + (greetd-terminals config))) + +(define greetd-service-type + (service-type + (name 'greetd) + (extensions + (list + (service-extension account-service-type (const %greetd-accounts)) + (service-extension file-system-service-type (const %greetd-file-systems)) + (service-extension etc-service-type greetd-etc-service) + (service-extension pam-root-service-type greetd-pam-service) + (service-extension shepherd-root-service-type greetd-shepherd-services))) + (default-value (greetd-configuration)))) + ;;; ;;; The default set of desktop services. -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Wed Aug 11 07:16:29 2021 Received: (at 49969) by debbugs.gnu.org; 11 Aug 2021 11:16:29 +0000 Received: from localhost ([127.0.0.1]:33576 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDmDk-0001xZ-Vt for submit@debbugs.gnu.org; Wed, 11 Aug 2021 07:16:29 -0400 Received: from h87-96-130-155.cust.a3fiber.se ([87.96.130.155]:54392 helo=mail.yoctocell.xyz) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDmDi-0001rO-VM for 49969@debbugs.gnu.org; Wed, 11 Aug 2021 07:16:28 -0400 From: Xinglu Chen DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=yoctocell.xyz; s=mail; t=1628680577; bh=R/tefWRzYa1TY6/k+x0ahXQORtfMGCTLVqId3yx8Ucg=; h=From:To:Subject:In-Reply-To:References:Date; b=qRBxfRLrF4gxysHXpMTZYI9nLYESwSg6q+MRG9wq3Nm3RV6qsgPEb+qxDi9am6HRx GEUmcq2DiyT/oiF9Ep9MkRvVGdQFE+JvF7Z4kzp7f0i2CZfxZb3IUZjNmokrQHhMI7 AOWfQTdfw+5RhqA0zaUf6n6mNO5ScROISGrWRSU8= To: muradm , 49969@debbugs.gnu.org Subject: Re: [bug#49969] [PATCH v2 1/7] gnu: crates-io: Add rust-enquote 1.0.3 In-Reply-To: <20210810200756.9581-1-mail@muradm.net> References: <20210810193626.9186-1-mail@muradm.net> <20210810200756.9581-1-mail@muradm.net> Date: Wed, 11 Aug 2021 13:16:14 +0200 Message-ID: <87o8a41bb5.fsf@yoctocell.xyz> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: 2.9 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: On Tue, Aug 10 2021, muradm wrote: > * gnu/packages/crates-io.scm (rust-enquote-1): Add rust-enquote 1.0.3 > --- > gnu/packages/crates-io.scm | 22 ++++++++++++++++++++++ > 1 file changed, 22 insertions(+) > > diff --git a/gnu/packages/ [...] Content analysis details: (2.9 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record 2.0 PDS_OTHER_BAD_TLD Untrustworthy TLDs [URI: yoctocell.xyz (xyz)] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.5 FROM_SUSPICIOUS_NTLD From abused NTLD 0.4 RDNS_DYNAMIC Delivered to internal network by host with dynamic-looking rDNS 0.0 PDS_RDNS_DYNAMIC_FP RDNS_DYNAMIC with FP steps X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 2.9 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: On Tue, Aug 10 2021, muradm wrote: > * gnu/packages/crates-io.scm (rust-enquote-1): Add rust-enquote 1.0.3 > --- > gnu/packages/crates-io.scm | 22 ++++++++++++++++++++++ > 1 file changed, 22 insertions(+) > > diff --git a/gnu/packages/ [...] Content analysis details: (2.9 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record 2.0 PDS_OTHER_BAD_TLD Untrustworthy TLDs [URI: yoctocell.xyz (xyz)] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.5 FROM_SUSPICIOUS_NTLD From abused NTLD 0.4 RDNS_DYNAMIC Delivered to internal network by host with dynamic-looking rDNS 1.0 BULK_RE_SUSP_NTLD Precedence bulk and RE: from a suspicious TLD -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager 0.0 PDS_RDNS_DYNAMIC_FP RDNS_DYNAMIC with FP steps --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On Tue, Aug 10 2021, muradm wrote: > * gnu/packages/crates-io.scm (rust-enquote-1): Add rust-enquote 1.0.3 > --- > gnu/packages/crates-io.scm | 22 ++++++++++++++++++++++ > 1 file changed, 22 insertions(+) > > diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm > index 24cc772ba7..b458080ca7 100644 > --- a/gnu/packages/crates-io.scm > +++ b/gnu/packages/crates-io.scm > @@ -18,6 +18,7 @@ > ;;; Copyright =C2=A9 2021 Antero Mejr > ;;; Copyright =C2=A9 2021 Maxim Cournoyer > ;;; Copyright =C2=A9 2021 Vinicius Monego > +;;; Copyright =C2=A9 2021 muradm > ;;; > ;;; This file is part of GNU Guix. > ;;; > @@ -56972,3 +56973,24 @@ variant of this library is available separately = as @code{im}.") > (description > "Generate Rust register maps (`struct`s) from SVD files") > (license (list license:expat license:asl2.0)))) > + > +(define-public rust-enquote-1 > + (package > + (name "rust-enquote") > + (version "1.0.3") > + (home-page "https://github.com/reujab/enquote") > + (source > + (origin > + (method url-fetch) > + (uri (crate-uri "enquote" version)) > + (file-name > + (string-append name "-" version ".tar.gz")) > + (sha256 > + (base32 > + "0vm687r2wwgc3d3l2iqhag9wgkql6k93sdvjxvmfkdpksajpij1f")))) > + (build-system cargo-build-system) > + (synopsis > + "This Rust library quotes, unquotes, and unescapes strings.") The synopsis should not end with a period. =E2=80=9CThis=E2=80=9D doesn=E2= =80=99t really bring anything, maybe something like Rust library that quotes, unquotes, and unescapes strings See =E2=80=9C16.4.4 Synopses and Descriptions=E2=80=9D in the manual for mo= re details. --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQJJBAEBCAAzFiEEAVhh4yyK5+SEykIzrPUJmaL7XHkFAmETsX4VHHB1YmxpY0B5 b2N0b2NlbGwueHl6AAoJEKz1CZmi+1x5NkAP/2kUoyRibQ28hvTWHn647Oc6Pq2D 9fnR+rRkBxHOCkbqwh0u8enwClaKQb2YKIbIHR/qAw0RkJ1T8148hVl6PHUSM74M Itz9kS5ybdirSpH0hlJoVX18ORUpwhLIYbWDo3tEr/ETPSjPGCU2k8HaI275I7y0 dM8odQmm5Ep32sHOu+t9jJQFVNzRDEVyc49l3cqyFhksuagdVmkaDfG95ZYinTRu eq2K36ZtNNYFGryzb6F+IvcickkcGBqVOAw0HmOhQn5HqEwPj345EPlOhbqlq4JZ +urdGsdXfli98e+Ko58h3JW0reiTUl9cdqjPJCg1ro8eJi/tZqhsjgNR9PzMl92X awsaLCgboum6FIl41ynokBSCr+Bh/QgDcpjpMO4VJLV2rjSdnRW2MZZ4ObIGcXks W4acMLa10TW/8Eb+QzttVI5TllqqF6Tw2eB23xYPMStZcPdvpAfGZBeKv4gRIexy 4JHOB+ZCb+aqnCScoCOz2jiAhinu3sCyGlc8wIbNNkU0uGxkPypmAMygjfGLkefb pWNNKWvx5ngs5XU3k7sJLU9BkcApFLuZaHY/n/CSWGEFp8aJobu/WlH/BP1ao4U3 +eMtLMNggWmlbp6HQdRw7M1pOGO4ouSbXAFyQB0PvRSiZZhd6Y6sUbsZ3/pSDw4Q IWqJL1VCUAxW7dFo =Gf13 -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Wed Aug 11 07:20:37 2021 Received: (at 49969) by debbugs.gnu.org; 11 Aug 2021 11:20:37 +0000 Received: from localhost ([127.0.0.1]:33593 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDmHk-0002yn-TP for submit@debbugs.gnu.org; Wed, 11 Aug 2021 07:20:37 -0400 Received: from h87-96-130-155.cust.a3fiber.se ([87.96.130.155]:54482 helo=mail.yoctocell.xyz) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDmHg-0002yK-PD for 49969@debbugs.gnu.org; Wed, 11 Aug 2021 07:20:33 -0400 From: Xinglu Chen DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=yoctocell.xyz; s=mail; t=1628680824; bh=5uK5GG+GVPS/aj0sDNitd462siiySqnnZ+0KIMSNwsE=; h=From:To:Subject:In-Reply-To:References:Date; b=rPp1dUQd+Hu9e3JgXwPx6PlGO0zy3hzDtUmW6Cu+ZOPP7KG25QcVLQE0Dacrp5DVh vfMnbyWAVWOWK4MFnNiq3mnric15J8X1qczMuUrH+7XG3StwZ+TjWf0rszHM/fRY4n +Adtn5tTONNCEmaVIQgX5+SKopZo8BmDXmRqajOc= To: muradm , 49969@debbugs.gnu.org Subject: Re: [bug#49969] [PATCH v2 2/7] gnu: crates-io: Add rust-pam-sys 0.5.6 In-Reply-To: <20210810200756.9581-2-mail@muradm.net> References: <20210810193626.9186-1-mail@muradm.net> <20210810200756.9581-2-mail@muradm.net> Date: Wed, 11 Aug 2021 13:20:23 +0200 Message-ID: <87lf581b48.fsf@yoctocell.xyz> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: 2.9 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: On Tue, Aug 10 2021, muradm wrote: > * gnu/packages/crates-io.scm (rust-pam-sys): Add rust-pam-sys 0.5.6 > --- > gnu/packages/crates-io.scm | 27 +++++++++++++++++++++++++++ > 1 file changed, 27 insertions(+) > > diff --git a/gnu/packag [...] Content analysis details: (2.9 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record 2.0 PDS_OTHER_BAD_TLD Untrustworthy TLDs [URI: yoctocell.xyz (xyz)] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.5 FROM_SUSPICIOUS_NTLD From abused NTLD 0.4 RDNS_DYNAMIC Delivered to internal network by host with dynamic-looking rDNS 0.0 PDS_RDNS_DYNAMIC_FP RDNS_DYNAMIC with FP steps X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 2.9 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: On Tue, Aug 10 2021, muradm wrote: > * gnu/packages/crates-io.scm (rust-pam-sys): Add rust-pam-sys 0.5.6 > --- > gnu/packages/crates-io.scm | 27 +++++++++++++++++++++++++++ > 1 file changed, 27 insertions(+) > > diff --git a/gnu/packag [...] Content analysis details: (2.9 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record 2.0 PDS_OTHER_BAD_TLD Untrustworthy TLDs [URI: yoctocell.xyz (xyz)] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.5 FROM_SUSPICIOUS_NTLD From abused NTLD 0.4 RDNS_DYNAMIC Delivered to internal network by host with dynamic-looking rDNS 1.0 BULK_RE_SUSP_NTLD Precedence bulk and RE: from a suspicious TLD -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager 0.0 PDS_RDNS_DYNAMIC_FP RDNS_DYNAMIC with FP steps --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On Tue, Aug 10 2021, muradm wrote: > * gnu/packages/crates-io.scm (rust-pam-sys): Add rust-pam-sys 0.5.6 > --- > gnu/packages/crates-io.scm | 27 +++++++++++++++++++++++++++ > 1 file changed, 27 insertions(+) > > diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm > index b458080ca7..b365a2c8c0 100644 > --- a/gnu/packages/crates-io.scm > +++ b/gnu/packages/crates-io.scm > @@ -56,6 +56,7 @@ > #:use-module (gnu packages image) > #:use-module (gnu packages jemalloc) > #:use-module (gnu packages llvm) > + #:use-module (gnu packages linux) > #:use-module (gnu packages multiprecision) > #:use-module (gnu packages nettle) > #:use-module (gnu packages pcre) > @@ -56994,3 +56995,29 @@ variant of this library is available separately = as @code{im}.") > (description > "This Rust library quotes, unquotes, and unescapes strings.") > (license license:unlicense))) > + > +(define-public rust-pam-sys-0.5.6 > + (package > + (name "rust-pam-sys") > + (version "0.5.6") > + (home-page "https://github.com/1wilkens/pam-sys") > + (source > + (origin > + (method url-fetch) > + (uri (crate-uri "pam-sys" version)) > + (file-name > + (string-append name "-" version ".tar.gz")) > + (sha256 > + (base32 > + "0d14501d5vybjnzxfjf96321xa5wa36x1xvf02h02zq938qmhj6d")))) > + (build-system cargo-build-system) > + (arguments > + `(#:cargo-inputs > + (("rust-libc" ,rust-libc-0.2)))) > + (native-inputs > + `(("linux-pam" ,linux-pam))) > + (synopsis > + "Rust FFI wrappers for the Linux Pluggable Authentication Modules (= PAM).") The synopsis should not end with a period. > + (description > + "Rust FFI wrappers for the Linux Pluggable Authentication Modules (= PAM).") The description should contain one or more complete sentences, see =E2=80=9C16.4.4 Synopses and Descriptions=E2=80=9D in the manual. --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQJJBAEBCAAzFiEEAVhh4yyK5+SEykIzrPUJmaL7XHkFAmETsncVHHB1YmxpY0B5 b2N0b2NlbGwueHl6AAoJEKz1CZmi+1x5IN4P/A9KDh2SAPQBcFGqr4NmWPW9+rqc bWHTIWc9swbwpO67L9b0io313B7UuTDsOch7bbVzQ+avX88jS8fgGWQVgKT80YAz zZPuJR1mTGNpVz2PFNReZz1jI3E/uL43m79GJOuOJKJoa+h4uo1ZWKw5WPYr9kCW O2pYd14g0Xa/Iik19gYSXixNE1yw2jbawFZroZx+HoBnn+qf0RiZG5bnZszAEsE6 8ZtufSk0UU+ZgWJkryFbw1Pv/6+4uO3AAjBMDMftJ+KeBLm+3YJDDN5REyiRiY8k yYI0gdUv522jKHb4BWvMB0jh3sOkdLB/277goyOTwZ8Ky1S3lggVRFGytNqDTsC/ qHA0V+XhUyKxHctrRfwGxLppzm/1XWrBagnjcKzXbwjcA0m10rLw0WWaOkXUtwq5 XS/hMKClb9cZ4PMCNnovWOTy5RdFalHojuh1LaCU5DApOX6Fj/pT+7iOs+qe3it9 Aqp6GemzJgCrjKvj1PI/lad4RddLT1FN0ErGDKpFX0xpiJiAfCGzHgFA3CeSS91h VdCUJ7yhHxWOe7DQVOJQ17tk/33psDWne/YCL+hb6GiCiOYt5OJ6AXK610sfrFqq HVDEh92Uip9EHrAdSchVeSgss+U1fRX9KgeWHXjyz3p7BYkyEgeFu8Ks++KRtub+ 9ho2gRCcKViK5/b7 =uPj6 -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Wed Aug 11 07:29:23 2021 Received: (at 49969) by debbugs.gnu.org; 11 Aug 2021 11:29:23 +0000 Received: from localhost ([127.0.0.1]:33607 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDmQ9-0003C6-Iw for submit@debbugs.gnu.org; Wed, 11 Aug 2021 07:29:23 -0400 Received: from h87-96-130-155.cust.a3fiber.se ([87.96.130.155]:54722 helo=mail.yoctocell.xyz) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDmQ7-0003Bs-JB for 49969@debbugs.gnu.org; Wed, 11 Aug 2021 07:29:16 -0400 From: Xinglu Chen DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=yoctocell.xyz; s=mail; t=1628681347; bh=sYzCCfHDUg2LuaOrjy5pVFc9N9LKSUzVud/2tgXI5vI=; h=From:To:Subject:In-Reply-To:References:Date; b=Ibe4c2y5P1KiJZ89srZGYg2xbNxKNke+AYXWvgaR4ZU/gGo+ObaqGkxHrdaqC/msw C+vgFHS4285nmwlFGWXGOpQ1dRw0ZQXBexkhq6BYFr6tFU/vNbOP9hSWMZtG3os7gC OTRCWgIEnGro6SAZaAQ8JAyZPstgPK4vI22CN64I= To: muradm , 49969@debbugs.gnu.org Subject: Re: [bug#49969] [PATCH v2 3/7] gnu: freedesktop: Add greetd 0.7.0 In-Reply-To: <20210810200756.9581-3-mail@muradm.net> References: <20210810193626.9186-1-mail@muradm.net> <20210810200756.9581-3-mail@muradm.net> Date: Wed, 11 Aug 2021 13:29:06 +0200 Message-ID: <87im0c1app.fsf@yoctocell.xyz> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: 2.9 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: 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/packa [...] Content analysis details: (2.9 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record 2.0 PDS_OTHER_BAD_TLD Untrustworthy TLDs [URI: yoctocell.xyz (xyz)] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.5 FROM_SUSPICIOUS_NTLD From abused NTLD 0.4 RDNS_DYNAMIC Delivered to internal network by host with dynamic-looking rDNS 0.0 PDS_RDNS_DYNAMIC_FP RDNS_DYNAMIC with FP steps X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 2.9 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: 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/packa [...] Content analysis details: (2.9 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record 2.0 PDS_OTHER_BAD_TLD Untrustworthy TLDs [URI: yoctocell.xyz (xyz)] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.5 FROM_SUSPICIOUS_NTLD From abused NTLD 0.4 RDNS_DYNAMIC Delivered to internal network by host with dynamic-looking rDNS 1.0 BULK_RE_SUSP_NTLD Precedence bulk and RE: from a suspicious TLD -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager 0.0 PDS_RDNS_DYNAMIC_FP RDNS_DYNAMIC with FP steps --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable 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 =C2=A9 2020 Raghav Gururajan > ;;; Copyright =C2=A9 2021 Brendan Tildesley > ;;; Copyright =C2=A9 2021 pineapples > +;;; Copyright =C2=A9 2021 muradm > ;;; > ;;; 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))) >=20=20 > +(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 "0lmwr5ld9x2wlq00i7mjgm9by8zndiq9girj8g93k0kww9zb= gr3g")))) > + (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 =E2=80=98mkdir-p=E2=80=99 if you will call =E2=80=98install-file= =E2=80=99 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" =E2=80=A6) form, and remove the "man" prefix? > + #t)))))) Phases don=E2=80=99t need to return #t once the =E2=80=98core-updates=E2=80= =99 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.") =E2=80=9Cwhat you want to launch=E2=80=9D sounds a bit vague, is it referri= ng to desktop environment, window manager, or something else? --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQJJBAEBCAAzFiEEAVhh4yyK5+SEykIzrPUJmaL7XHkFAmETtIMVHHB1YmxpY0B5 b2N0b2NlbGwueHl6AAoJEKz1CZmi+1x5m84P/j/tu5uMTWDt79GVQUok5vcWdBjJ Mzrehd6oSTMG3xzV8CJQtJ02r81faxlTzNiAAc2RxYj9uzSKC4XwU8u4ZUbdSrlf EqN4NtaM2ooC7aJZS8JNvAZWIDQUTZ6Y1oRBqvkBRrSKu/gP+cGFyBnM1rahXwrK jgzYWhRZeTuDA3zI05mx8oBRruKqL/KqeI9YhWD6eWfluSupzqqNCMdeDeSD3xL1 5Dq7dnCfmbFiznUq+Q1IqODpgS8el7QD5Xs2CXn/yHvr7cJxOj5pIpJYfkXm9vjW /NJCB3N0Y1SAJ+iiulB0QHMJMZvng0fkpnYspA0G0+OetabhxzyfIfXzzkqFsJ+T KtWmbOu507AvWnfedyrvuTqtLcaNg2cS8kmcseDNoHU55/Qqvn7ajB5swFGf9JMJ zGfLIzDiD9v9h23ulxr+huXHaE3jTwSv1Q6TdGn/z+Wov7YPvleOD+HzIyqL18Zz 9Xn1ktdoZ8NJ/jmSgAjuV2Ct6jnnUesGkkowpkwcTVpGjk5rJVG18RiUVU3sqV5M 47AwJ2O4OwdhYhDpfZSbDt1WzCYCo0ABlBBvw9STnaF5u+LsPpJYbq4Nazpa6HcV 9CtoFmCM8x66FfEX8iAC9MPJxEZxLWnjZS9ilFccvbTGDfxzEPKywirMBDwAe1Or /Kgn71SuoHfr8XvN =zh3E -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Wed Aug 11 07:32:19 2021 Received: (at 49969) by debbugs.gnu.org; 11 Aug 2021 11:32:19 +0000 Received: from localhost ([127.0.0.1]:33611 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDmT4-0004y1-SP for submit@debbugs.gnu.org; Wed, 11 Aug 2021 07:32:19 -0400 Received: from h87-96-130-155.cust.a3fiber.se ([87.96.130.155]:54788 helo=mail.yoctocell.xyz) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDmT2-0004u2-Ox for 49969@debbugs.gnu.org; Wed, 11 Aug 2021 07:32:17 -0400 From: Xinglu Chen DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=yoctocell.xyz; s=mail; t=1628681529; bh=yZDjuFgxmiTc+q4oKXvrF/0VhgAnvZGDtp880aR+4ew=; h=From:To:Subject:In-Reply-To:References:Date; b=MB6VMAiyBA3bUcSStcEb3CrCJHkyeXGij3D5z/+uY/RJiRcyJlpiSQ5DU9WOawD0o 3gSpTnxoXHMVDMpPjcN/Tscz82SzQxS/REAz3/rK4PQbTnsJAfFUP/aznKnqBm3yWP lVYCgrY10aBM0XqLdaVAshWQvj0qBXeeSn41KsCo= To: muradm , 49969@debbugs.gnu.org Subject: Re: [bug#49969] [PATCH v2 4/7] gnu: admin: Add greetd-pam-mount In-Reply-To: <20210810200756.9581-4-mail@muradm.net> References: <20210810193626.9186-1-mail@muradm.net> <20210810200756.9581-4-mail@muradm.net> Date: Wed, 11 Aug 2021 13:32:08 +0200 Message-ID: <87fsvg1akn.fsf@yoctocell.xyz> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: 2.9 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: On Tue, Aug 10 2021, muradm wrote: > This package inherits pam-mount in the way that it is compiled > specifically for use with greetd daemon. It uses different > configuration location and name space for storing data in PAM. > > greet [...] Content analysis details: (2.9 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record 2.0 PDS_OTHER_BAD_TLD Untrustworthy TLDs [URI: yoctocell.xyz (xyz)] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.5 FROM_SUSPICIOUS_NTLD From abused NTLD 0.4 RDNS_DYNAMIC Delivered to internal network by host with dynamic-looking rDNS 0.0 PDS_RDNS_DYNAMIC_FP RDNS_DYNAMIC with FP steps X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 2.9 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: On Tue, Aug 10 2021, muradm wrote: > This package inherits pam-mount in the way that it is compiled > specifically for use with greetd daemon. It uses different > configuration location and name space for storing data in PAM. > > greet [...] Content analysis details: (2.9 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record 2.0 PDS_OTHER_BAD_TLD Untrustworthy TLDs [URI: selfhosted.xyz (xyz)] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.5 FROM_SUSPICIOUS_NTLD From abused NTLD 0.4 RDNS_DYNAMIC Delivered to internal network by host with dynamic-looking rDNS 1.0 BULK_RE_SUSP_NTLD Precedence bulk and RE: from a suspicious TLD -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager 0.0 PDS_RDNS_DYNAMIC_FP RDNS_DYNAMIC with FP steps --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On Tue, Aug 10 2021, muradm wrote: > This package inherits pam-mount in the way that it is compiled > specifically for use with greetd daemon. It uses different > configuration location and name space for storing data in PAM. > > greetd-pam-mount is used in configuration of greetd to provide > auto-(mounting/unmounting) of XDG_RUNTIME_DIR in the way that > it will not interfere with default pam-mount configuration. It might be a good idea to put this in a comment in the code too. :-) > * gnu/packages/admin.scm (greetd-pam-mount): Add greetd-pam-mount > --- > gnu/packages/admin.scm | 20 ++++++++++++++++++++ > 1 file changed, 20 insertions(+) > > diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm > index eda269f148..e805b219c5 100644 > --- a/gnu/packages/admin.scm > +++ b/gnu/packages/admin.scm > @@ -42,6 +42,7 @@ > ;;; Copyright =C2=A9 2021 David Larsson > ;;; Copyright =C2=A9 2021 WinterHound > ;;; Copyright =C2=A9 2021 Brice Waegeneire > +;;; Copyright =C2=A9 2021 muradm > ;;; > ;;; This file is part of GNU Guix. > ;;; > @@ -4247,6 +4248,25 @@ supports. It can also mount encrypted LUKS volume= s using the password > supplied by the user when logging in.") > (license (list license:gpl2+ license:lgpl2.1+)))) >=20=20 > +(define-public greetd-pam-mount > + (package > + (inherit pam-mount) > + (name "greetd-pam-mount") > + (arguments > + (substitute-keyword-arguments (package-arguments pam-mount) > + ((#:configure-flags flags ''()) > + `(cons* "--with-rundir=3D/run/greetd" ,flags)) > + ((#:phases phases) > + `(modify-phases ,phases > + (add-after 'unpack 'patch-config-file-name > + (lambda* (#:key inputs #:allow-other-keys) > + (substitute* "src/pam_mount.c" > + ((".*define CONFIGFILE .*$") > + "#define CONFIGFILE \"/etc/security/greetd_pam_mount.c= onf.xml\"\n") > + (("pam_mount_config") "greetd_pam_mount_config") > + (("pam_mount_system_authtok") "greetd_pam_mount_system_= authtok")))))))) > + (synopsis "pam-mount specifically compiled for use with greetd"))) The description should also be updated. --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQJJBAEBCAAzFiEEAVhh4yyK5+SEykIzrPUJmaL7XHkFAmETtTgVHHB1YmxpY0B5 b2N0b2NlbGwueHl6AAoJEKz1CZmi+1x5jCoP/ApifqyH998ZCkKAtzBckcr1aPC3 W9R9Z2+GuDtZerAQ2/ab2H3kaHEIpThK+vWxq7DY1OeiOuiaTeon7ZZ9PADoIYN6 2Zto/OFhiL+4+WXD9uYkCdp9rVW3QnN05inrnlGcjNg/tqH80dzeQJgSlyGkbEKu NicD/PutIr1nGFrQVxNtk5cBKfsCkzMI0eJ1bYrCP96xHRAACKl1k8wjk0USvxpn u7eZldVkVDj/WXuGTIWh63kkqIf5LBOVkPXcMp5ehX0+XMuuFIsjKONy2QJL3IlR bmdAt5TvcGA0JpwMBBIAJ2bPfEjwSWf5mpKZAxX4yKRld/VH54vmr/ByK6SRqo7t bv0tGDeo8pQDTZFX3tANAx9AgblwjXkVl6wv3/EdP1ItJZXEbshweIa0FzJPxkJJ 7/7g7HXf+MTP2iwNiiFvkeHNt3e96V9YVbc47Ap1uggt6zHML+JK6DylJek7SIjO mAS7QsBVyZm4s4Oz7B7/jg+TiIyL6n8YqRvGenqZsFmlrGya0QGXJ82cggwioQ+B ZFGtnayd8f/FbQPYyqmRGJZ8puKvaqDES/4uQXabVbcsbwSbETTcaLCxASHPrFwO DKFGijpylXVP06AuRypIKh/pZIevgoGJO5Sr783CnTSLZpTwlcFPiHpEqTvcMOaZ ojRfnKaTDtsg+FtY =4rXY -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Wed Aug 11 07:52:51 2021 Received: (at 49969) by debbugs.gnu.org; 11 Aug 2021 11:52:51 +0000 Received: from localhost ([127.0.0.1]:33686 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDmmw-0008B0-Pk for submit@debbugs.gnu.org; Wed, 11 Aug 2021 07:52:51 -0400 Received: from h87-96-130-155.cust.a3fiber.se ([87.96.130.155]:55302 helo=mail.yoctocell.xyz) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDmmt-0008Ag-SK for 49969@debbugs.gnu.org; Wed, 11 Aug 2021 07:52:49 -0400 From: Xinglu Chen DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=yoctocell.xyz; s=mail; t=1628682758; bh=mUu3ZYNbj0rEuCPTSW05wUSPGH2rYcvj/IIYe8STTEQ=; h=From:To:Subject:In-Reply-To:References:Date; b=oXIqPlW+aJnV/hCxGJPLeXCSiVzqF1wVPFnNqU7xpB0nkv/ol3wEBlLj/uAFeFkAh IfDR6fCww+xc3C4ck7J42PgGkDcDqaP/ubZV3fyhMpeCBd8Qn0XvGPP0Y8KnggS0Es h7nU/QYjNHfZAKZGmeMepVjOdZUV3iFpivSuqzL8= To: muradm , 49969@debbugs.gnu.org Subject: Re: [bug#49969] [PATCH v2 5/7] gnu: desktop: Add seatd-service-type In-Reply-To: <20210810200756.9581-5-mail@muradm.net> References: <20210810193626.9186-1-mail@muradm.net> <20210810200756.9581-5-mail@muradm.net> Date: Wed, 11 Aug 2021 13:52:37 +0200 Message-ID: <87czqk19mi.fsf@yoctocell.xyz> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: 2.9 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: On Tue, Aug 10 2021, muradm wrote: > A seat management daemon, that does everything it needs to do. > Nothing more, nothing less. Depends only on libc. I don’t it is necessary to put this in the commit log. Content analysis details: (2.9 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record 2.0 PDS_OTHER_BAD_TLD Untrustworthy TLDs [URI: yoctocell.xyz (xyz)] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.5 FROM_SUSPICIOUS_NTLD From abused NTLD 0.4 RDNS_DYNAMIC Delivered to internal network by host with dynamic-looking rDNS 0.0 PDS_RDNS_DYNAMIC_FP RDNS_DYNAMIC with FP steps X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 2.9 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: On Tue, Aug 10 2021, muradm wrote: > A seat management daemon, that does everything it needs to do. > Nothing more, nothing less. Depends only on libc. I don’t it is necessary to put this in the commit log. Content analysis details: (2.9 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record 2.0 PDS_OTHER_BAD_TLD Untrustworthy TLDs [URI: yoctocell.xyz (xyz)] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.5 FROM_SUSPICIOUS_NTLD From abused NTLD 0.4 RDNS_DYNAMIC Delivered to internal network by host with dynamic-looking rDNS 1.0 BULK_RE_SUSP_NTLD Precedence bulk and RE: from a suspicious TLD -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager 0.0 PDS_RDNS_DYNAMIC_FP RDNS_DYNAMIC with FP steps --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On Tue, Aug 10 2021, muradm wrote: > A seat management daemon, that does everything it needs to do. > Nothing more, nothing less. Depends only on libc. I don=E2=80=99t it is necessary to put this in the commit log. > * gnu/services/desktop.scm: Add seatd-service-type > --- > gnu/services/desktop.scm | 59 +++++++++++++++++++++++++++++++++++++++- > 1 file changed, 58 insertions(+), 1 deletion(-) > > diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm > index 64d0e85301..bfba9bccec 100644 > --- a/gnu/services/desktop.scm > +++ b/gnu/services/desktop.scm > @@ -13,6 +13,7 @@ > ;;; Copyright =C2=A9 2020 Tobias Geerinckx-Rice > ;;; Copyright =C2=A9 2020 Reza Alizadeh Majd > ;;; Copyright =C2=A9 2021 Brice Waegeneire > +;;; Copyright =C2=A9 2021 muradm > ;;; > ;;; This file is part of GNU Guix. > ;;; > @@ -39,7 +40,9 @@ > #:use-module (gnu services networking) > #:use-module (gnu services sound) > #:use-module ((gnu system file-systems) > - #:select (%elogind-file-systems file-system)) > + #:select (%control-groups > + %elogind-file-systems > + file-system)) > #:use-module (gnu system) > #:use-module (gnu system setuid) > #:use-module (gnu system shadow) > @@ -154,6 +157,9 @@ > gnome-keyring-configuration? > gnome-keyring-service-type >=20=20 > + seatd-configuration > + seatd-service-type > + > %desktop-services)) >=20=20 > ;;; Commentary: > @@ -1182,6 +1188,57 @@ or setting its password with passwd."))) > (define polkit-wheel-service > (simple-service 'polkit-wheel polkit-service-type (list polkit-wheel))) >=20=20 > + > +;;; > +;;; seatd-service-type -- minimal seat management daemon > +;;; > + > +(define-record-type* seatd-configuration > + make-seatd-configuration > + seatd-configuration? > + (seatd seatd-package (default seatd)) > + (user seatd-user (default "root")) > + (group seatd-group (default "users")) > + (socket seatd-socket (default "/run/seatd/socket")) > + (loglevel seatd-loglevel (default "error"))) > + > +(define (seatd-shepherd-service config) > + (list (shepherd-service > + (requirement '()) > + ;; TODO: once cgroups is separate dependency > + ;; here we should depend on it rather than elogind > + (provision '(seatd elogind)) > + (start #~(make-forkexec-constructor > + (list #$(file-append (seatd-package config) "/bin/sea= td") > + "-u" #$(seatd-user config) > + "-g" #$(seatd-group config) > + "-s" #$(seatd-socket config)) > + #:environment-variables > + (list (string-append "SEATD_LOGLEVEL=3D" > + #$(seatd-loglevel config))) > + #:log-file "/tmp/seatd.log")) > + (stop #~(make-kill-destructor))))) =E2=80=98documentation=E2=80=99 field is missing. > + > +(define seatd-environment > + (match-lambda > + (($ _ _ _ socket) > + `(("SEATD_SOCK" . ,socket))))) > + > +(define seatd-service-type > + (service-type > + (name 'seatd) > + (extensions > + (list > + (service-extension session-environment-service-type > + seatd-environment) > + ;; TODO: once cgroups is separate dependency > + ;; we should not mount it here > + (service-extension file-system-service-type > + (const %control-groups)) > + (service-extension shepherd-root-service-type > + seatd-shepherd-service))) > + (default-value (seatd-configuration)))) Missing =E2=80=98description=E2=80=99 field. It might also be a good idea to write a system test for the service, you can look at the (gnu tests =E2=80=A6) modules for examples. I am not familiar with how seatd works, so I can=E2=80=99t really comment t= oo much. :-) --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQJJBAEBCAAzFiEEAVhh4yyK5+SEykIzrPUJmaL7XHkFAmETugUVHHB1YmxpY0B5 b2N0b2NlbGwueHl6AAoJEKz1CZmi+1x5g/sP/09zoh8FJFVKkhKxz8A12hXJ2zbK 7t7mF4zCif13GMTtGEtE5RQSTufyDg8nuI/i2cuhsFkdFNzviTUD2ch13uNyljzQ lIsURJZAMtW4gU3WMhmI3hoXuIrlplvAroKZgruP449C7v5qR6PS21ywZdXHuRew JC9KTylWh3neIk8Dzdj87ti15UuMOWQeGbllEJc93lPj1n3OLcKkeNjgPJ+5InOg jWgVGx8gBTKMdayShk22U8EpxgpqvqRHDVXbGQsl8NdCS+ucR+014BpD1UI4B+ly rv7VsNCay0/vye+xxl9oj23ftGeiXupQKFNv1jiFgxHGxm5X60c4nqg67P70MUGO MuesnFDvqX6gySi/LCWgZ0AHNCVeJAgZUJ0TufVn7lgAYA6JpGsmsZw5ifTjgdOP h6B8r7H45UkM+SLP9t7KzNMWIJy9HB7bdacqeFiQw7vgD8yuz/FynQDnY55bNgMM XnStazcSkpfR+lYFQ0xIkK+6X9XCxfJZzAiGpxNVBIiEf+iRObnaBL3uqfXbsLMc RA9+oHzFvLYqT4DBc1gmPpijSJ9GnGesTVtKaCFDZRnk8/JJvQXnog/egbUBb9VD iG2NbUN3dCiJxQCeaSaIdTBoiNjyZQqoZ+JTjSY0cpGVz7o1SqHnVw45XqfCpdH/ Dw0sUQwHDMC5n2+X =/VUR -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Wed Aug 11 15:12:45 2021 Received: (at 49969) by debbugs.gnu.org; 11 Aug 2021 19:12:45 +0000 Received: from localhost ([127.0.0.1]:36639 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDtef-00048I-EL for submit@debbugs.gnu.org; Wed, 11 Aug 2021 15:12:45 -0400 Received: from mail-ed1-f54.google.com ([209.85.208.54]:40588) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDtec-000482-77 for 49969@debbugs.gnu.org; Wed, 11 Aug 2021 15:12:44 -0400 Received: by mail-ed1-f54.google.com with SMTP id d6so5335041edt.7 for <49969@debbugs.gnu.org>; Wed, 11 Aug 2021 12:12:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=references:user-agent:from:to:cc:subject:in-reply-to:date :message-id:mime-version:content-transfer-encoding; bh=ss2P1dboyFntl6n7thVPAI2UZCIwm/mq6UkI3tZfcjM=; b=MdYQgwNjdnNo0UoJwksCGVt153ouxEdfEJENkJRioSwNByixMHudey44+mG0DfPgxb dv9ieSkK2kEtvn8EOYbpzEBU89HMJMKSWi3HvPFLlqzQI+9dzTC4pouPNhjs9ASYEDh/ wfhCy/8OwkM4hJ6FOGyILkvKkJT1MAomA8/eHv/nmk/Mv4r9K4yswsHg7MT7WXC/m1V3 xE2oTYK8dhI1b/wZmUOypIio2mbaiNluk7++RjZfURdg9OACK4+w1njzztumxvkB9qnr CD2MJvtb7tm/MCMbXBtsH4eNXbuEcDPO3iIsPG0kguiG2YqNf6Txo6nTYgFIkXegVXDB e9Eg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:references:user-agent:from:to:cc:subject :in-reply-to:date:message-id:mime-version:content-transfer-encoding; bh=ss2P1dboyFntl6n7thVPAI2UZCIwm/mq6UkI3tZfcjM=; b=oU9Zv7h++pySpli+MEUdJ9EXirMyS9MZxypTAccHZ8mR90nGrMnJueCIPiszu/H1FA 4E1VLfcpN3PF4szJ42XqLKDKSotF1pndoqxYC+PlcEV5hN+6jwv2Us27coSxigLAZOYl bBgzYQbk9fdpIbJeBV4bkCpph+oD97rV02f6lwveuggUh/IHclvtGsra7yjuc812ahdY vH7SJ27kCEKwGMw+/BP+zCVjHdImULue6LHdUkAuyXyNedDhTIrtA8XQhqneqnrLzXb4 9bQO11LBFVekMA2XOfzn7AQE1oW/r/K8+zAsEeoOt9xDGUzPh+5zxcOd4x7iZAOlabd3 uSRQ== X-Gm-Message-State: AOAM530MkLu+SPn3QFDhuWTjXAprG2fxV2/Bk9gdujgHRbFO5+c2MVmi z/qL4X766rhpA34cxr/N5IU1QGWEYHanog== X-Google-Smtp-Source: ABdhPJy443ysiVF6/WK1ov2vpJ97uUxosLMNFjSVDMKLmdglNKKAyGoF5656WWyh7533jXvlSncmsA== X-Received: by 2002:a05:6402:42ce:: with SMTP id i14mr486962edc.345.1628709155715; Wed, 11 Aug 2021 12:12:35 -0700 (PDT) Received: from nomad-lp1 ([31.142.104.228]) by smtp.gmail.com with ESMTPSA id t19sm97929ejs.32.2021.08.11.12.12.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Aug 2021 12:12:35 -0700 (PDT) References: <20210810193626.9186-1-mail@muradm.net> <20210810200756.9581-1-mail@muradm.net> <87o8a41bb5.fsf@yoctocell.xyz> User-agent: mu4e 1.4.15; emacs 28.0.50 From: muradm To: Xinglu Chen Subject: Re: [bug#49969] [PATCH v2 1/7] gnu: crates-io: Add rust-enquote 1.0.3 In-reply-to: <87o8a41bb5.fsf@yoctocell.xyz> Date: Wed, 11 Aug 2021 22:12:31 +0300 Message-ID: <87pmuj6bj4.fsf@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable X-Spam-Score: 2.0 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Noted for next update, thanks Xinglu Chen writes: > On Tue, Aug 10 2021, muradm wrote: > >> * gnu/packages/crates-io.scm (rust-enquote-1): Add rust-enquote >> 1.0.3 >> --- >> gnu/packages/crates-io.scm | 22 ++++++++++++++++++++++ >> 1 file changed, 2 [...] Content analysis details: (2.0 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 SPF_NONE SPF: sender does not publish an SPF Record 2.0 PDS_OTHER_BAD_TLD Untrustworthy TLDs [URI: yoctocell.xyz (xyz)] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [209.85.208.54 listed in list.dnswl.org] -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [209.85.208.54 listed in wl.mailspike.net] X-Debbugs-Envelope-To: 49969 Cc: 49969@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) Noted for next update, thanks Xinglu Chen writes: > On Tue, Aug 10 2021, muradm wrote: > >> * gnu/packages/crates-io.scm (rust-enquote-1): Add rust-enquote=20 >> 1.0.3 >> --- >> gnu/packages/crates-io.scm | 22 ++++++++++++++++++++++ >> 1 file changed, 22 insertions(+) >> >> diff --git a/gnu/packages/crates-io.scm=20 >> b/gnu/packages/crates-io.scm >> index 24cc772ba7..b458080ca7 100644 >> --- a/gnu/packages/crates-io.scm >> +++ b/gnu/packages/crates-io.scm >> @@ -18,6 +18,7 @@ >> ;;; Copyright =C2=A9 2021 Antero Mejr >> ;;; Copyright =C2=A9 2021 Maxim Cournoyer=20 >> >> ;;; Copyright =C2=A9 2021 Vinicius Monego >> +;;; Copyright =C2=A9 2021 muradm >> ;;; >> ;;; This file is part of GNU Guix. >> ;;; >> @@ -56972,3 +56973,24 @@ variant of this library is available=20 >> separately as @code{im}.") >> (description >> "Generate Rust register maps (`struct`s) from SVD=20 >> files") >> (license (list license:expat license:asl2.0)))) >> + >> +(define-public rust-enquote-1 >> + (package >> + (name "rust-enquote") >> + (version "1.0.3") >> + (home-page "https://github.com/reujab/enquote") >> + (source >> + (origin >> + (method url-fetch) >> + (uri (crate-uri "enquote" version)) >> + (file-name >> + (string-append name "-" version ".tar.gz")) >> + (sha256 >> + (base32 >> + "0vm687r2wwgc3d3l2iqhag9wgkql6k93sdvjxvmfkdpksajpij1f")))) >> + (build-system cargo-build-system) >> + (synopsis >> + "This Rust library quotes, unquotes, and unescapes=20 >> strings.") > > The synopsis should not end with a period. =E2=80=9CThis=E2=80=9D doesn= =E2=80=99t=20 > really bring > anything, maybe something like > > Rust library that quotes, unquotes, and unescapes strings > > See =E2=80=9C16.4.4 Synopses and Descriptions=E2=80=9D in the manual for = more=20 > details. From debbugs-submit-bounces@debbugs.gnu.org Wed Aug 11 15:13:04 2021 Received: (at 49969) by debbugs.gnu.org; 11 Aug 2021 19:13:05 +0000 Received: from localhost ([127.0.0.1]:36643 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDtey-00049C-NG for submit@debbugs.gnu.org; Wed, 11 Aug 2021 15:13:04 -0400 Received: from mail-ed1-f49.google.com ([209.85.208.49]:42727) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDtew-00048b-Fl for 49969@debbugs.gnu.org; Wed, 11 Aug 2021 15:13:03 -0400 Received: by mail-ed1-f49.google.com with SMTP id bo19so5313155edb.9 for <49969@debbugs.gnu.org>; Wed, 11 Aug 2021 12:13:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=references:user-agent:from:to:cc:subject:in-reply-to:date :message-id:mime-version:content-transfer-encoding; bh=E9FF5CMuqaSoGYirMlF1WdaiYuXcAB2ZnJUO9a5u1wk=; b=G4Fp7xn+Rd6ynRaLlNuWZh2w3RINQNy+Nd5Wp9CydlbMIYI/kiyq8yrbcJL8VPGWwg yWokZdGY369waPoKvkKZ1eX/OtUvIPU8LPV72uaSGyE4UF6JKuiP8SKseBM/I1/zrZt7 HcOODhZBpQWjjqcgYnCgdCqOdoEEzhO2GctNRzRq2Uw8Bvs7H75bW7C+MzVT81pN0hcn bga/VHqXj5XLx5gadEQLyB/EEBMnI5LF1oR/O+JcNjV9pbl819vsGDXa21R2/AT+vKQ6 E4DRJF8whg5GvwyHZJ2q9f3z2sW5t+QtaDxM0SSHvUdCLnR21FmD3ZBeDvk0U+2sXRRL cf0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:references:user-agent:from:to:cc:subject :in-reply-to:date:message-id:mime-version:content-transfer-encoding; bh=E9FF5CMuqaSoGYirMlF1WdaiYuXcAB2ZnJUO9a5u1wk=; b=cMyOFh7Qw9oEu4PsMy0EUpeXDuIl/bupoZG2nRMR7nzs31ZLvNfrQvnWIbK7HhMn6Y dizLgKlf4eZAUGjSHBgpDreo0Fq9egmNBcVfPyvuoYXyyS16YTwuhQBTVo0qD+bhgDBE XDfFHD453MemhRYBdikD7vX5ZR/IcgCy5uYeZ3Rtw/ZS4+HLMV4RNt3cwcUvCCbqP3vt hvSnas7iBd6VJkfPDFmcWhwXCCo7ayyWxbiSVw4PXFN7m2CROeMkrQ408+5aQpk8tUVP TCNdXDo2vlETGj69qui93jy95epbDezBSSmS7T/ovs6HUrHPw2+c1Hk7W7OyH7AJhrwY 7n2g== X-Gm-Message-State: AOAM531jJqlIja1qUFB9BftanEB5VhpS9c90vKH6mfwt4syqRmPoS35u XhuYXLdjNcVODSIVcYM6xbdK0/Rm9gzxkw== X-Google-Smtp-Source: ABdhPJwbzN1DDzVBUcg8Oe5TsfnioYNxnYc4XWQ3hGheYlKgA4kIcLGhs0QJiS9r5A94g+mUZD/FWg== X-Received: by 2002:a05:6402:4cf:: with SMTP id n15mr489558edw.269.1628709176531; Wed, 11 Aug 2021 12:12:56 -0700 (PDT) Received: from nomad-lp1 ([31.142.104.228]) by smtp.gmail.com with ESMTPSA id d2sm99933ejo.13.2021.08.11.12.12.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Aug 2021 12:12:55 -0700 (PDT) References: <20210810193626.9186-1-mail@muradm.net> <20210810200756.9581-2-mail@muradm.net> <87lf581b48.fsf@yoctocell.xyz> User-agent: mu4e 1.4.15; emacs 28.0.50 From: muradm To: Xinglu Chen Subject: Re: [bug#49969] [PATCH v2 2/7] gnu: crates-io: Add rust-pam-sys 0.5.6 In-reply-to: <87lf581b48.fsf@yoctocell.xyz> Date: Wed, 11 Aug 2021 22:12:53 +0300 Message-ID: <87mtpn6bii.fsf@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable X-Spam-Score: 2.0 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Noted for next update, thanks Xinglu Chen writes: > On Tue, Aug 10 2021, muradm wrote: > >> * gnu/packages/crates-io.scm (rust-pam-sys): Add rust-pam-sys >> 0.5.6 >> --- >> gnu/packages/crates-io.scm | 27 +++++++++++++++++++++++++++ >> 1 file changed [...] Content analysis details: (2.0 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 SPF_NONE SPF: sender does not publish an SPF Record 2.0 PDS_OTHER_BAD_TLD Untrustworthy TLDs [URI: yoctocell.xyz (xyz)] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [209.85.208.49 listed in wl.mailspike.net] -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [209.85.208.49 listed in list.dnswl.org] X-Debbugs-Envelope-To: 49969 Cc: 49969@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) Noted for next update, thanks Xinglu Chen writes: > On Tue, Aug 10 2021, muradm wrote: > >> * gnu/packages/crates-io.scm (rust-pam-sys): Add rust-pam-sys=20 >> 0.5.6 >> --- >> gnu/packages/crates-io.scm | 27 +++++++++++++++++++++++++++ >> 1 file changed, 27 insertions(+) >> >> diff --git a/gnu/packages/crates-io.scm=20 >> b/gnu/packages/crates-io.scm >> index b458080ca7..b365a2c8c0 100644 >> --- a/gnu/packages/crates-io.scm >> +++ b/gnu/packages/crates-io.scm >> @@ -56,6 +56,7 @@ >> #:use-module (gnu packages image) >> #:use-module (gnu packages jemalloc) >> #:use-module (gnu packages llvm) >> + #:use-module (gnu packages linux) >> #:use-module (gnu packages multiprecision) >> #:use-module (gnu packages nettle) >> #:use-module (gnu packages pcre) >> @@ -56994,3 +56995,29 @@ variant of this library is available=20 >> separately as @code{im}.") >> (description >> "This Rust library quotes, unquotes, and unescapes=20 >> strings.") >> (license license:unlicense))) >> + >> +(define-public rust-pam-sys-0.5.6 >> + (package >> + (name "rust-pam-sys") >> + (version "0.5.6") >> + (home-page "https://github.com/1wilkens/pam-sys") >> + (source >> + (origin >> + (method url-fetch) >> + (uri (crate-uri "pam-sys" version)) >> + (file-name >> + (string-append name "-" version ".tar.gz")) >> + (sha256 >> + (base32 >> + "0d14501d5vybjnzxfjf96321xa5wa36x1xvf02h02zq938qmhj6d")))) >> + (build-system cargo-build-system) >> + (arguments >> + `(#:cargo-inputs >> + (("rust-libc" ,rust-libc-0.2)))) >> + (native-inputs >> + `(("linux-pam" ,linux-pam))) >> + (synopsis >> + "Rust FFI wrappers for the Linux Pluggable Authentication=20 >> Modules (PAM).") > > The synopsis should not end with a period. > >> + (description >> + "Rust FFI wrappers for the Linux Pluggable Authentication=20 >> Modules (PAM).") > > The description should contain one or more complete sentences,=20 > see > =E2=80=9C16.4.4 Synopses and Descriptions=E2=80=9D in the manual. From debbugs-submit-bounces@debbugs.gnu.org Wed Aug 11 16:10:59 2021 Received: (at 49969) by debbugs.gnu.org; 11 Aug 2021 20:10:59 +0000 Received: from localhost ([127.0.0.1]:36697 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDuYu-0001br-TG for submit@debbugs.gnu.org; Wed, 11 Aug 2021 16:10:58 -0400 Received: from mail-ej1-f41.google.com ([209.85.218.41]:42815) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDuYs-0001bb-Kl for 49969@debbugs.gnu.org; Wed, 11 Aug 2021 16:10:51 -0400 Received: by mail-ej1-f41.google.com with SMTP id e19so6635096ejs.9 for <49969@debbugs.gnu.org>; Wed, 11 Aug 2021 13:10:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=references:user-agent:from:to:cc:subject:in-reply-to:date :message-id:mime-version:content-transfer-encoding; bh=Zwh7Vq/uY/0clqVX5DDuKNqzLTh+8XiCTfmEcW9RryI=; b=Dxj7x8w/VATlM9aRvxw6PUrgLXbGNZIm9oVowVswIkr6IiauvGrkk/Ib7HCvUU/o0j osb7SQ20stwHmH7pdVI8OGAxSaCHFrpsCw9efx9kElFfHY/lIumlWDM6/IGq2cguvPl/ GFEHiWFTjIoPoDwnpZThCHalEtUmz/+qlaxVN1eNNbjqxpQzsuZA14Z3qpxWopGk2n+p O2L2Vnt7Zlcb5JIxd1VcZWhFmjsz+gbSHJ7jTpFIZTWikgY6NPOzowKuHmh6UT0/CkSL HuHH8eAmgl6zscpFU001ies9Q5y6cwQ7y06+vGN1mmUOKCZfgRBBRYY2rSbcmvDuVeom I/Vg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:references:user-agent:from:to:cc:subject :in-reply-to:date:message-id:mime-version:content-transfer-encoding; bh=Zwh7Vq/uY/0clqVX5DDuKNqzLTh+8XiCTfmEcW9RryI=; b=YSSR/fHWZSxkDRfQ/mrGpy+9nES2XtzN/GxVpJJrZiijcn4nuKU/SimxH5tl/W80v3 C22gsjawuyZxQeb6YKKyv6gYfVmRmjguSzSx3LVFXr4mmcubXGygmW3Qf0S/5srTRwMi kS4adY4TNDxpTdk06nj8TYcod53osFuAo35Ypg4QoO6cFPe+xugT8EE0z9dl4qpVqALC 1u7cdSMnia+1lu3uUFlp2DuM2JZDiCuVzKjBhlaB66eGj0sUEJkoDbnl3thytgGTy+KM cFIVHsYUydm6F9fCtCpawQv242EJduqBxk4wvWO/hyutIizkX5i01SbL7Pw5ILlVX+ln gp2A== X-Gm-Message-State: AOAM5336bFf5+ipdNBNfSB68hv18xuZHN0OrE2hI572OsZIh4/Ucm7ef W1Jw1ViwoVb8oLEMKa8cCaIVR3B7aAeWTA== X-Google-Smtp-Source: ABdhPJwyB7YAqWhtd7wdMQ5Cdiw83WKrkyzFzXz2ioiNelh9dseW+Rb37zURTX/fp+pYQlrMp4gL1Q== X-Received: by 2002:a17:906:9616:: with SMTP id s22mr282294ejx.136.1628712644103; Wed, 11 Aug 2021 13:10:44 -0700 (PDT) Received: from nomad-lp1 ([31.142.104.228]) by smtp.gmail.com with ESMTPSA id ck3sm118574edb.80.2021.08.11.13.10.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Aug 2021 13:10:43 -0700 (PDT) References: <20210810193626.9186-1-mail@muradm.net> <20210810200756.9581-3-mail@muradm.net> <87im0c1app.fsf@yoctocell.xyz> User-agent: mu4e 1.4.15; emacs 28.0.50 From: muradm To: Xinglu Chen Subject: Re: [bug#49969] [PATCH v2 3/7] gnu: freedesktop: Add greetd 0.7.0 In-reply-to: <87im0c1app.fsf@yoctocell.xyz> Date: Wed, 11 Aug 2021 23:10:40 +0300 Message-ID: <87k0kr68u7.fsf@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable X-Spam-Score: 2.0 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Xinglu Chen 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 change [...] Content analysis details: (2.0 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 SPF_NONE SPF: sender does not publish an SPF Record 2.0 PDS_OTHER_BAD_TLD Untrustworthy TLDs [URI: yoctocell.xyz (xyz)] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [209.85.218.41 listed in list.dnswl.org] -0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) [209.85.218.41 listed in wl.mailspike.net] -0.0 RCVD_IN_MSPIKE_WL Mailspike good senders X-Debbugs-Envelope-To: 49969 Cc: 49969@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) Xinglu Chen writes: > On Tue, Aug 10 2021, muradm wrote: > >> * gnu/packages/freedesktop.scm (greetd): Add greetd 0.7.0 >> --- >> gnu/packages/freedesktop.scm | 80=20 >> ++++++++++++++++++++++++++++++++++++ >> 1 file changed, 80 insertions(+) >> >> diff --git a/gnu/packages/freedesktop.scm=20 >> b/gnu/packages/freedesktop.scm >> index 693a79c738..631d36e765 100644 >> --- a/gnu/packages/freedesktop.scm >> +++ b/gnu/packages/freedesktop.scm >> @@ -24,6 +24,7 @@ >> ;;; Copyright =C2=A9 2020 Raghav Gururajan=20 >> >> ;;; Copyright =C2=A9 2021 Brendan Tildesley >> ;;; Copyright =C2=A9 2021 pineapples >> +;;; Copyright =C2=A9 2021 muradm >> ;;; >> ;;; 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=20 >> universal seat management library that >> allows applications to use whatever seat management is=20 >> 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=20 >> "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=20 >> "/greetd")) >> + (agreety-bin (string-append release=20 >> "/agreety"))) >> + (install-file greetd-bin sbin) >> + (install-file agreety-bin bin) >> + (mkdir-p man1) >> + (mkdir-p man5) >> + (mkdir-p man7) > > No need to =E2=80=98mkdir-p=E2=80=99 if you will call =E2=80=98install-fi= le=E2=80=99 on the=20 > 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 >=20 >> 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=20 > (with-directory-excursion "man" > =E2=80=A6) form, and remove the "man" prefix? > Refactored, scdoc moved to 'build-man-pages after 'build, install=20 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=20 "/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=E2=80=99t need to return #t once the =E2=80=98core-updates=E2= =80=99 branch=20 > gets > merged. > Left over, i was using this to fail package build, noted for next=20 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.") > > =E2=80=9Cwhat you want to launch=E2=80=9D sounds a bit vague, is it refer= ring to=20 > desktop > environment, window manager, or something else? As description says anything, it is from official documentation.=20 Launches any thing, could be DE, WM, Emacs, top etc. literally any thing :) From debbugs-submit-bounces@debbugs.gnu.org Wed Aug 11 16:15:55 2021 Received: (at 49969) by debbugs.gnu.org; 11 Aug 2021 20:15:55 +0000 Received: from localhost ([127.0.0.1]:36706 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDudj-0002VR-JR for submit@debbugs.gnu.org; Wed, 11 Aug 2021 16:15:55 -0400 Received: from mail-ej1-f45.google.com ([209.85.218.45]:39451) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDudg-0002O0-M5 for 49969@debbugs.gnu.org; Wed, 11 Aug 2021 16:15:50 -0400 Received: by mail-ej1-f45.google.com with SMTP id go31so6677826ejc.6 for <49969@debbugs.gnu.org>; Wed, 11 Aug 2021 13:15:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=references:user-agent:from:to:cc:subject:in-reply-to:date :message-id:mime-version:content-transfer-encoding; bh=sumltW8gSHKURlHK2kAu5i3GSNa9OgwOKfbQ0SKHGCg=; b=XXgyusNI5gJbYNH9sG+/gChYj+aOzg8r+PYcQKmmjfRyv7uxGBvQ/hpGrPvXyUdIpL 9U/ewl3kBJPkPfLrz58XtZVXVFCwOCEwJUTGIC7e5dmWohT0hRzeHDQ6241rJT8xOTK3 7rylOAvn0ZMv592tAoBlf9ojbtXW99fEafr6qLY720uo4WV4bz6wEhTiwqRkGZlkgL2g juhGNXQAXnfc4537ikOdbvEZ7rVcYaFZvMqLf1xf0vb1/yzdcJARR8GvXvaZUvFAmj7U T/oHrl3bKWLdx8fJJ7EbJOTkK7TsWPaMwWMyiGjcpbbXP3u5/VH96ehb5Q6OTORavS5E QNTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:references:user-agent:from:to:cc:subject :in-reply-to:date:message-id:mime-version:content-transfer-encoding; bh=sumltW8gSHKURlHK2kAu5i3GSNa9OgwOKfbQ0SKHGCg=; b=Pv2rQZ93N8zw/DZR5EwAgo2+8dos5fspo3Euc5tSPMnyRkYzfMKGn9MBFPFTe9f+lK d3r7SVmrAd3PFrO7Yr06CfMAsFkiv0kJ8vHrXbBqQ0CAJtzolv+Lkt5XqETLXde//0ZN uzCS+1qsbF6Gj+q77ARO8GqblemM51X+ZOLfVOZQyNujPuM27SPB9JmC6NeEvKHuBAt0 9zeOggcHB1F4EIbGfDJv6my09HzPOexI6VezXjQtB2hpE5ummVDAlmj8aWJqoxniM9iP PEpAV5npN06LRQgGvsVfzIiQ5ulgfopfUFwrXpdqVM/J4T9luOKzUCyKdvw1+WeLp+A1 0Lcg== X-Gm-Message-State: AOAM532Uxx72YNwpIkk0PUgbhrhRoQP9EoHI24qQKLJSva/8ecgqP6kt 4SVXA49Bryx31yxa9lb5lo/bXxeQ+HdW+w== X-Google-Smtp-Source: ABdhPJyUIXGJ7UC+sCFTblhuj7EUXqZrwHKUptWzUz+WJMZFLFR78n4gCGFyWt50bEqi9nX9XKGvFA== X-Received: by 2002:a17:906:6b1b:: with SMTP id q27mr252049ejr.169.1628712942660; Wed, 11 Aug 2021 13:15:42 -0700 (PDT) Received: from nomad-lp1 ([31.142.104.228]) by smtp.gmail.com with ESMTPSA id dh8sm130829edb.14.2021.08.11.13.15.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Aug 2021 13:15:42 -0700 (PDT) References: <20210810193626.9186-1-mail@muradm.net> <20210810200756.9581-4-mail@muradm.net> <87fsvg1akn.fsf@yoctocell.xyz> User-agent: mu4e 1.4.15; emacs 28.0.50 From: muradm To: Xinglu Chen Subject: Re: [bug#49969] [PATCH v2 4/7] gnu: admin: Add greetd-pam-mount In-reply-to: <87fsvg1akn.fsf@yoctocell.xyz> Date: Wed, 11 Aug 2021 23:15:39 +0300 Message-ID: <87h7fv68lw.fsf@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable X-Spam-Score: 2.0 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Noted for next update, thanks Xinglu Chen writes: > On Tue, Aug 10 2021, muradm wrote: > >> This package inherits pam-mount in the way that it is compiled >> specifically for use with greetd daemon. It uses different >> configuration location and nam [...] Content analysis details: (2.0 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 SPF_NONE SPF: sender does not publish an SPF Record 2.0 PDS_OTHER_BAD_TLD Untrustworthy TLDs [URI: selfhosted.xyz (xyz)] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [209.85.218.45 listed in list.dnswl.org] -0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) [209.85.218.45 listed in wl.mailspike.net] -0.0 RCVD_IN_MSPIKE_WL Mailspike good senders X-Debbugs-Envelope-To: 49969 Cc: 49969@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) Noted for next update, thanks Xinglu Chen writes: > On Tue, Aug 10 2021, muradm wrote: > >> This package inherits pam-mount in the way that it is compiled >> specifically for use with greetd daemon. It uses different >> configuration location and name space for storing data in PAM. >> >> greetd-pam-mount is used in configuration of greetd to provide >> auto-(mounting/unmounting) of XDG_RUNTIME_DIR in the way that >> it will not interfere with default pam-mount configuration. > > It might be a good idea to put this in a comment in the code=20 > too. :-) > >> * gnu/packages/admin.scm (greetd-pam-mount): Add=20 >> greetd-pam-mount >> --- >> gnu/packages/admin.scm | 20 ++++++++++++++++++++ >> 1 file changed, 20 insertions(+) >> >> diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm >> index eda269f148..e805b219c5 100644 >> --- a/gnu/packages/admin.scm >> +++ b/gnu/packages/admin.scm >> @@ -42,6 +42,7 @@ >> ;;; Copyright =C2=A9 2021 David Larsson=20 >> >> ;;; Copyright =C2=A9 2021 WinterHound >> ;;; Copyright =C2=A9 2021 Brice Waegeneire >> +;;; Copyright =C2=A9 2021 muradm >> ;;; >> ;;; This file is part of GNU Guix. >> ;;; >> @@ -4247,6 +4248,25 @@ supports. It can also mount encrypted=20 >> LUKS volumes using the password >> supplied by the user when logging in.") >> (license (list license:gpl2+ license:lgpl2.1+)))) >> >> +(define-public greetd-pam-mount >> + (package >> + (inherit pam-mount) >> + (name "greetd-pam-mount") >> + (arguments >> + (substitute-keyword-arguments (package-arguments=20 >> pam-mount) >> + ((#:configure-flags flags ''()) >> + `(cons* "--with-rundir=3D/run/greetd" ,flags)) >> + ((#:phases phases) >> + `(modify-phases ,phases >> + (add-after 'unpack 'patch-config-file-name >> + (lambda* (#:key inputs #:allow-other-keys) >> + (substitute* "src/pam_mount.c" >> + ((".*define CONFIGFILE .*$") >> + "#define CONFIGFILE=20 >> \"/etc/security/greetd_pam_mount.conf.xml\"\n") >> + (("pam_mount_config")=20 >> "greetd_pam_mount_config") >> + (("pam_mount_system_authtok")=20 >> "greetd_pam_mount_system_authtok")))))))) >> + (synopsis "pam-mount specifically compiled for use with=20 >> greetd"))) > > The description should also be updated. From debbugs-submit-bounces@debbugs.gnu.org Wed Aug 11 16:32:05 2021 Received: (at 49969) by debbugs.gnu.org; 11 Aug 2021 20:32:05 +0000 Received: from localhost ([127.0.0.1]:36737 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDutN-0004Mo-60 for submit@debbugs.gnu.org; Wed, 11 Aug 2021 16:32:05 -0400 Received: from mail-ed1-f46.google.com ([209.85.208.46]:44648) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mDutG-0004MN-QI for 49969@debbugs.gnu.org; Wed, 11 Aug 2021 16:31:59 -0400 Received: by mail-ed1-f46.google.com with SMTP id z11so5666832edb.11 for <49969@debbugs.gnu.org>; Wed, 11 Aug 2021 13:31:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=references:user-agent:from:to:cc:subject:in-reply-to:date :message-id:mime-version:content-transfer-encoding; bh=cAnU0+oTEvRv+0C0+oifOooHRuVbO4IagIY/Pc6QO88=; b=RGSLYCP4btlc95APRE8ouMgLnBtKUL7F2Pf1vCnOlDAD+EPKw5+Ceh9cuTg3PAzBlc yu82vjMFtjsUd3gMTHF59e7uZ15ALWdA5ve8cS+GbiMRI9DVPjwX/LJ1HXPr5gYvEd4T qpSRKZTXbTsrcs8JKB4G4bGNgB7DmaoaMdof/c3QUukVgCmGhHuqf1Sv+0JiQUeoJ+hY lQfSGu8wrDDS9YsgnxZY+09rHv9/ZUSfKoa1rddFTqzXuqsWctGPAxPYJIK1ed41Si8/ jYYmq4srlF7U1MK1Gl0YGo3ENj0BUOR8qcDko63iGDfK6h6V1hJ6dFVKD5/SL3btN3+I ph9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:references:user-agent:from:to:cc:subject :in-reply-to:date:message-id:mime-version:content-transfer-encoding; bh=cAnU0+oTEvRv+0C0+oifOooHRuVbO4IagIY/Pc6QO88=; b=i49388/Q4TjjpWwlYAsXgcYN4D8O4mMYURBAeTLK6Km/ykMPbHw+B8fa0HmwqAkZb9 PzP8KQIgQjFimzqwZlcfORSIpYXfxrG5GC0G1FSq2IEemJLDDiNEGYVayVSK8pC9vc4j Hp5cZfyuWATd8Nh+V7oqixbM0XtSs7rl9LBJxDmWqSxCOc51R0pWdQKYAO+lDf8mQAIi 3n7tmEFUeF73n9YxtjtUC7mdidtwHfBrkTryc559i3VjVeB5sHNiWW1sKtv+22pkbThS 5J0re+QJ8Dbi47VNUTYdkCijmgPIPbWioAEgk3J0FR0d0p+7eVahEOXGXrq6xuUuCqa/ /iAA== X-Gm-Message-State: AOAM5328w2ED+8+8VwDDKBahtLgs3yTB3zVqB5BUc5oB2jN1XIHqa2VM dN462Fombg1LRW95rsNnIgAzijPJM004Tw== X-Google-Smtp-Source: ABdhPJzJRsu4aIq80PMz/4hVTyPO2EBYU1yRZ4KVXF/Ppu9bbzcZm9zt5QqTdBErm9vOrNy2B5X0Tw== X-Received: by 2002:a50:a69e:: with SMTP id e30mr905804edc.332.1628713908289; Wed, 11 Aug 2021 13:31:48 -0700 (PDT) Received: from nomad-lp1 ([31.142.104.228]) by smtp.gmail.com with ESMTPSA id j13sm137126edr.89.2021.08.11.13.31.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Aug 2021 13:31:47 -0700 (PDT) References: <20210810193626.9186-1-mail@muradm.net> <20210810200756.9581-5-mail@muradm.net> <87czqk19mi.fsf@yoctocell.xyz> User-agent: mu4e 1.4.15; emacs 28.0.50 From: muradm To: Xinglu Chen Subject: Re: [bug#49969] [PATCH v2 5/7] gnu: desktop: Add seatd-service-type In-reply-to: <87czqk19mi.fsf@yoctocell.xyz> Date: Wed, 11 Aug 2021 23:31:44 +0300 Message-ID: <87eeaz67v3.fsf@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable X-Spam-Score: 2.0 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Noted for next update, thanks Xinglu Chen writes: > On Tue, Aug 10 2021, muradm wrote: > >> A seat management daemon, that does everything it needs to do. >> Nothing more, nothing less. Depends only on libc. > > I don’t it is necessary to put this [...] Content analysis details: (2.0 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [209.85.208.46 listed in wl.mailspike.net] 2.0 PDS_OTHER_BAD_TLD Untrustworthy TLDs [URI: yoctocell.xyz (xyz)] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 T_SPF_TEMPERROR SPF: test of record failed (temperror) X-Debbugs-Envelope-To: 49969 Cc: 49969@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) Noted for next update, thanks Xinglu Chen writes: > On Tue, Aug 10 2021, muradm wrote: > >> A seat management daemon, that does everything it needs to do. >> Nothing more, nothing less. Depends only on libc. > > I don=E2=80=99t it is necessary to put this in the commit log. > >> * gnu/services/desktop.scm: Add seatd-service-type >> --- >> gnu/services/desktop.scm | 59=20 >> +++++++++++++++++++++++++++++++++++++++- >> 1 file changed, 58 insertions(+), 1 deletion(-) >> >> diff --git a/gnu/services/desktop.scm=20 >> b/gnu/services/desktop.scm >> index 64d0e85301..bfba9bccec 100644 >> --- a/gnu/services/desktop.scm >> +++ b/gnu/services/desktop.scm >> @@ -13,6 +13,7 @@ >> ;;; Copyright =C2=A9 2020 Tobias Geerinckx-Rice >> ;;; Copyright =C2=A9 2020 Reza Alizadeh Majd >> ;;; Copyright =C2=A9 2021 Brice Waegeneire >> +;;; Copyright =C2=A9 2021 muradm >> ;;; >> ;;; This file is part of GNU Guix. >> ;;; >> @@ -39,7 +40,9 @@ >> #:use-module (gnu services networking) >> #:use-module (gnu services sound) >> #:use-module ((gnu system file-systems) >> - #:select (%elogind-file-systems file-system)) >> + #:select (%control-groups >> + %elogind-file-systems >> + file-system)) >> #:use-module (gnu system) >> #:use-module (gnu system setuid) >> #:use-module (gnu system shadow) >> @@ -154,6 +157,9 @@ >> gnome-keyring-configuration? >> gnome-keyring-service-type >> >> + seatd-configuration >> + seatd-service-type >> + >> %desktop-services)) >> >> ;;; Commentary: >> @@ -1182,6 +1188,57 @@ or setting its password with passwd."))) >> (define polkit-wheel-service >> (simple-service 'polkit-wheel polkit-service-type (list=20 >> polkit-wheel))) >> >> + >> +;;; >> +;;; seatd-service-type -- minimal seat management daemon >> +;;; >> + >> +(define-record-type* seatd-configuration >> + make-seatd-configuration >> + seatd-configuration? >> + (seatd seatd-package (default seatd)) >> + (user seatd-user (default "root")) >> + (group seatd-group (default "users")) >> + (socket seatd-socket (default "/run/seatd/socket")) >> + (loglevel seatd-loglevel (default "error"))) >> + >> +(define (seatd-shepherd-service config) >> + (list (shepherd-service >> + (requirement '()) >> + ;; TODO: once cgroups is separate dependency >> + ;; here we should depend on it rather than elogind >> + (provision '(seatd elogind)) >> + (start #~(make-forkexec-constructor >> + (list #$(file-append (seatd-package config)=20 >> "/bin/seatd") >> + "-u" #$(seatd-user config) >> + "-g" #$(seatd-group config) >> + "-s" #$(seatd-socket config)) >> + #:environment-variables >> + (list (string-append "SEATD_LOGLEVEL=3D" >> + #$(seatd-loglevel=20 >> config))) >> + #:log-file "/tmp/seatd.log")) >> + (stop #~(make-kill-destructor))))) > > =E2=80=98documentation=E2=80=99 field is missing. > >> + >> +(define seatd-environment >> + (match-lambda >> + (($ _ _ _ socket) >> + `(("SEATD_SOCK" . ,socket))))) >> + >> +(define seatd-service-type >> + (service-type >> + (name 'seatd) >> + (extensions >> + (list >> + (service-extension session-environment-service-type >> + seatd-environment) >> + ;; TODO: once cgroups is separate dependency >> + ;; we should not mount it here >> + (service-extension file-system-service-type >> + (const %control-groups)) >> + (service-extension shepherd-root-service-type >> + seatd-shepherd-service))) >> + (default-value (seatd-configuration)))) > > Missing =E2=80=98description=E2=80=99 field. > > It might also be a good idea to write a system test for the=20 > service, you > can look at the (gnu tests =E2=80=A6) modules for examples. > > I am not familiar with how seatd works, so I can=E2=80=99t really=20 > comment too > much. :-) From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 12 07:45:48 2021 Received: (at 49969) by debbugs.gnu.org; 12 Aug 2021 11:45:48 +0000 Received: from localhost ([127.0.0.1]:37709 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mE99a-00075Y-Cp for submit@debbugs.gnu.org; Thu, 12 Aug 2021 07:45:48 -0400 Received: from h87-96-130-155.cust.a3fiber.se ([87.96.130.155]:60414 helo=mail.yoctocell.xyz) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mE99U-00075H-W1 for 49969@debbugs.gnu.org; Thu, 12 Aug 2021 07:45:41 -0400 From: Xinglu Chen DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=yoctocell.xyz; s=mail; t=1628768726; bh=zp977slDqrzJCYy+jJPvbKt9W1xQJ66ViZFE3jORWlk=; h=From:To:Cc:Subject:In-Reply-To:References:Date; b=mvRpKDb4g8V8EVq7k/kniRe8sgfDO8haOAFZeKMsDBk5fpr4HuWAn2uJW+0KX0vIh VqKLH32chbUD3pwoaUTHSJA9K20PWbi7sDEWZyObmBRUW0KS9ykhLNOSO09d6ItQ1r g6U3ApVf5OELKpd/4g0GQqlilTm2cN10jHSrUKps= To: muradm Subject: Re: [bug#49969] [PATCH v2 3/7] gnu: freedesktop: Add greetd 0.7.0 In-Reply-To: <87k0kr68u7.fsf@muradm.net> References: <20210810193626.9186-1-mail@muradm.net> <20210810200756.9581-3-mail@muradm.net> <87im0c1app.fsf@yoctocell.xyz> <87k0kr68u7.fsf@muradm.net> Date: Thu, 12 Aug 2021 13:45:25 +0200 Message-ID: <8735rej38q.fsf@yoctocell.xyz> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: 2.9 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: On Wed, Aug 11 2021, muradm wrote: > Xinglu Chen writes: > >> On Tue, Aug 10 2021, muradm wrote: >> >>> * gnu/packages/freedesktop.scm (greetd): Add greetd 0.7.0 >>> --- >>> gnu/packages/freedesktop.scm | 80 >>> [...] Content analysis details: (2.9 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record 2.0 PDS_OTHER_BAD_TLD Untrustworthy TLDs [URI: yoctocell.xyz (xyz)] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.5 FROM_SUSPICIOUS_NTLD From abused NTLD 0.4 RDNS_DYNAMIC Delivered to internal network by host with dynamic-looking rDNS 0.0 PDS_RDNS_DYNAMIC_FP RDNS_DYNAMIC with FP steps X-Debbugs-Envelope-To: 49969 Cc: 49969@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 2.9 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: On Wed, Aug 11 2021, muradm wrote: > Xinglu Chen writes: > >> On Tue, Aug 10 2021, muradm wrote: >> >>> * gnu/packages/freedesktop.scm (greetd): Add greetd 0.7.0 >>> --- >>> gnu/packages/freedesktop.scm | 80 >>> [...] Content analysis details: (2.9 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record 2.0 PDS_OTHER_BAD_TLD Untrustworthy TLDs [URI: yoctocell.xyz (xyz)] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.5 FROM_SUSPICIOUS_NTLD From abused NTLD 0.4 RDNS_DYNAMIC Delivered to internal network by host with dynamic-looking rDNS 1.0 BULK_RE_SUSP_NTLD Precedence bulk and RE: from a suspicious TLD -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager 0.0 PDS_RDNS_DYNAMIC_FP RDNS_DYNAMIC with FP steps --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On Wed, Aug 11 2021, muradm wrote: > Xinglu Chen writes: > >> On Tue, Aug 10 2021, muradm wrote: >> >>> * gnu/packages/freedesktop.scm (greetd): Add greetd 0.7.0 >>> --- >>> gnu/packages/freedesktop.scm | 80=20 >>> ++++++++++++++++++++++++++++++++++++ >>> 1 file changed, 80 insertions(+) >>> >>> diff --git a/gnu/packages/freedesktop.scm=20 >>> b/gnu/packages/freedesktop.scm >>> index 693a79c738..631d36e765 100644 >>> --- a/gnu/packages/freedesktop.scm >>> +++ b/gnu/packages/freedesktop.scm >>> @@ -24,6 +24,7 @@ >>> ;;; Copyright =C2=A9 2020 Raghav Gururajan=20 >>> >>> ;;; Copyright =C2=A9 2021 Brendan Tildesley >>> ;;; Copyright =C2=A9 2021 pineapples >>> +;;; Copyright =C2=A9 2021 muradm >>> ;;; >>> ;;; 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=20 >>> universal seat management library that >>> allows applications to use whatever seat management is=20 >>> 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=20 >>> "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=20 >>> "/greetd")) >>> + (agreety-bin (string-append release=20 >>> "/agreety"))) >>> + (install-file greetd-bin sbin) >>> + (install-file agreety-bin bin) >>> + (mkdir-p man1) >>> + (mkdir-p man5) >>> + (mkdir-p man7) >> >> No need to =E2=80=98mkdir-p=E2=80=99 if you will call =E2=80=98install-f= ile=E2=80=99 on the=20 >> directory. >> > > Didn't work for me, without it I get: > In procedure copy-file: No such file or directory Hmm, weird, the docs for =E2=80=98install-file=E2=80=99 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 >=20 >>> 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=20 >> (with-directory-excursion "man" >> =E2=80=A6) form, and remove the "man" prefix? >> > > Refactored, scdoc moved to 'build-man-pages after 'build, install=20 > 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=20 > "/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.") >> >> =E2=80=9Cwhat you want to launch=E2=80=9D sounds a bit vague, is it refe= rring to=20 >> desktop >> environment, window manager, or something else? > > As description says anything, it is from official documentation.=20 > Launches any thing, > could be DE, WM, Emacs, top etc. literally any thing :) Ah, OK, then maybe =E2=80=9Cwhat program=E2=80=9D instead of just =E2=80=9C= what=E2=80=9D? Someone might try to launch a missile with it ;-) --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQJJBAEBCAAzFiEEAVhh4yyK5+SEykIzrPUJmaL7XHkFAmEVCdUVHHB1YmxpY0B5 b2N0b2NlbGwueHl6AAoJEKz1CZmi+1x5T8gP/2WB5hJuPYczu+Svb8oiRP44rUfZ EdCjnAlz52c80pU2ljB/gS+lr0s5bZrgzgA9DFVUP+4OpPqH4b4+CY5FqzcciXEK cDT8uGQVuZWvoOH5jUm2gLx9tmf+TptGZrTxJkuJzuMBAg1mi8wgFYPoiEH8S3Qt YkdxSr3bTPOk/hMgo0yL4SWiqzDlqN3btldNPbimWWT8/tNFowsKySUN96KXH5bl L+q7JLbNsd7LzWrB95m/CXXG6L+D9dlmhQby5vlbrQeMDOFHbqfSRr2mrD00AcKP SNHcZ/8RKLOrklBOq1wFcPQQhLZ/F5rh+WPM6CQm+Xz+NxxHAenPA+z7BihvlS/Q ipde6EOfE6xd6p07vurAzGbhCgBpC+YpmUgTT5E5AQ6f/kWBeeXHue7zyOAqRdap bEmIUcoEa40voKQLbQ8o/pFBgRzWfvsoM6OUnM+Nn6OCL5uY8FkYCchpBI/D34SG r62sqgCjVg/tzVvzmtoFg5Su4S42j2+zIgV4qGdnUwpaXmfU/JzmaXm/+KLMTFs8 Q6GncMLdGXeh38jXzu7t0BqVg1p2qJ3kWwajuhUeGyLmbfWiTZt0J29l+14C4vYb V0e1woHuCIcpbzfpy3tm5GCotct2ut2ufayrDqXzgxZh7XyR1Ao/8EX/e4anCT0s g5+FfpBxyAvvTpFe =FG85 -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 12 15:52:18 2021 Received: (at 49969) by debbugs.gnu.org; 12 Aug 2021 19:52:18 +0000 Received: from localhost ([127.0.0.1]:39947 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mEGkO-0007wu-0L for submit@debbugs.gnu.org; Thu, 12 Aug 2021 15:52:18 -0400 Received: from mail-ed1-f46.google.com ([209.85.208.46]:35448) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mEGkH-0007wL-Ql for 49969@debbugs.gnu.org; Thu, 12 Aug 2021 15:52:11 -0400 Received: by mail-ed1-f46.google.com with SMTP id dj8so3635926edb.2 for <49969@debbugs.gnu.org>; Thu, 12 Aug 2021 12:52:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=references:user-agent:from:to:cc:subject:in-reply-to:date :message-id:mime-version:content-transfer-encoding; bh=nmjG7UmE7PRsOXZWDAkSICjL8SvES14xpX5bJ0GN+RU=; b=f5cYdaVJJ94W+uXok/kx8rDZTpGw1ULJy1ARCabEgJSJy9N/S6HQHL/774C7Kum6Zc QTNFUSL8at1ln3G0vCSyL1eM9H1j2N9ZTWX/1KqDOP64LMps9fQNv0zju+IShgqKYXLy JKYZtsw5OYGCMcakjmMd+lEFgaDLkgKsxcO4qMI8KKvnaiRAnf6rwL91Q3QtMIV+VPOx XUfUpV/cJvx3KfDDAJa8JhLl62AbNbwtw3oTHnCW0BIOtYnW8MLlrBsDG9zeoimIVEOj 8rplPiwjtpL5l9FJFtWF0kVKoxhqXOOEK0pvqLDHImGLAzrdA/lj/z3U9aX8avop3nex 0CYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:references:user-agent:from:to:cc:subject :in-reply-to:date:message-id:mime-version:content-transfer-encoding; bh=nmjG7UmE7PRsOXZWDAkSICjL8SvES14xpX5bJ0GN+RU=; b=LynfrfeaBMBmfy8mzvJ8NqgemarrQCp3Nl6vkuT9kVT9sYDvcy4hongi3dO/MyrA3t nhaYyCZnGrTU6eweT2qg0towYFSiEXRtu0MLtGKiJqa4PLpkd9TMGS98jlO2+jgs/DlN VLsQhWzi1f/9kSAuMd/Ka+KLnQtvL9mIhiiJjmj6SnIoYHzXtqm8yISpdKCfo9R221Oh tKEx34qtW41XqR3JhbsB5gEpYFKelaCR730F8M8A+UKdKwCmdVFhU6dCdkwECbdVt1G/ F/660SMZYBbFwBPeJ3T0/j6v+DYvRBgYc6x/+q/REtMqMWLqvXYGkb1r0zPTCkZOwulg DZUQ== X-Gm-Message-State: AOAM533BgSVZN//Vr17/FrPFtgIab/1MCo9eimvZuD8pEpDgBaVKlD/P gardcz+gLDNxaZQTXHw+HMIdDtOLApw2Jw== X-Google-Smtp-Source: ABdhPJxwPIF7DUpPOOU9tqekFudo3cEaKRt6hQiCO76EJ76S0cbpa0iRIoJOQmup9+co0sbN2ag6NQ== X-Received: by 2002:aa7:ccc1:: with SMTP id y1mr7446227edt.321.1628797918670; Thu, 12 Aug 2021 12:51:58 -0700 (PDT) Received: from nomad-lp1 ([5.24.104.153]) by smtp.gmail.com with ESMTPSA id jy17sm1171747ejc.112.2021.08.12.12.51.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Aug 2021 12:51:58 -0700 (PDT) References: <20210810193626.9186-1-mail@muradm.net> <20210810200756.9581-3-mail@muradm.net> <87im0c1app.fsf@yoctocell.xyz> <87k0kr68u7.fsf@muradm.net> <8735rej38q.fsf@yoctocell.xyz> User-agent: mu4e 1.4.15; emacs 28.0.50 From: muradm To: Xinglu Chen Subject: Re: [bug#49969] [PATCH v2 3/7] gnu: freedesktop: Add greetd 0.7.0 In-reply-to: <8735rej38q.fsf@yoctocell.xyz> Date: Thu, 12 Aug 2021 22:51:55 +0300 Message-ID: <87bl62qw4k.fsf@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable X-Spam-Score: 2.0 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Xinglu Chen writes: > On Wed, Aug 11 2021, muradm wrote: > >> Xinglu Chen writes: >> >>> On Tue, Aug 10 2021, muradm wrote: >>> >>>> * gnu/packages/freedesktop.scm (greetd): Add greetd 0.7.0 >>>> - [...] Content analysis details: (2.0 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 SPF_NONE SPF: sender does not publish an SPF Record 2.0 PDS_OTHER_BAD_TLD Untrustworthy TLDs [URI: yoctocell.xyz (xyz)] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [209.85.208.46 listed in wl.mailspike.net] -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [209.85.208.46 listed in list.dnswl.org] X-Debbugs-Envelope-To: 49969 Cc: 49969@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) Xinglu Chen writes: > On Wed, Aug 11 2021, muradm wrote: > >> Xinglu Chen 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 =C2=A9 2020 Raghav Gururajan >>>> >>>> ;;; Copyright =C2=A9 2021 Brendan Tildesley >>>> ;;; Copyright =C2=A9 2021 pineapples=20 >>>> >>>> +;;; Copyright =C2=A9 2021 muradm >>>> ;;; >>>> ;;; 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=20 >>>> #: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 =E2=80=98mkdir-p=E2=80=99 if you will call =E2=80=98install-= file=E2=80=99 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 =E2=80=98install-file=E2=80=99 says > > -- Scheme Procedure: install-file FILE DIRECTORY > Create DIRECTORY if it does not exist and copy FILE in=20 > 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=20 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 >=20 >>>> 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" >>> =E2=80=A6) form, and remove the "man" prefix? >>> >> >> Refactored, scdoc moved to 'build-man-pages after 'build,=20 >> 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=20 >> "/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.") >>> >>> =E2=80=9Cwhat you want to launch=E2=80=9D sounds a bit vague, is it ref= erring=20 >>> to >>> desktop >>> environment, window manager, or something else? >> >> As description says anything, it is from official=20 >> documentation. >> Launches any thing, >> could be DE, WM, Emacs, top etc. literally any thing :) > > Ah, OK, then maybe =E2=80=9Cwhat program=E2=80=9D instead of just =E2=80= =9Cwhat=E2=80=9D?=20 > 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. From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 12 17:56:15 2021 Received: (at 49969) by debbugs.gnu.org; 12 Aug 2021 21:56:15 +0000 Received: from localhost ([127.0.0.1]:40014 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mEIgR-0002dr-6o for submit@debbugs.gnu.org; Thu, 12 Aug 2021 17:56:15 -0400 Received: from mail-ej1-f53.google.com ([209.85.218.53]:45764) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mEIgO-0002db-Kb for 49969@debbugs.gnu.org; Thu, 12 Aug 2021 17:56:13 -0400 Received: by mail-ej1-f53.google.com with SMTP id qk33so14361664ejc.12 for <49969@debbugs.gnu.org>; Thu, 12 Aug 2021 14:56:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=jbYP/8V2ps6VBWu0DNAJvSe2+7kqeptcoLM5geqo4rQ=; b=aJTSc7Nqh0kOvDEP1OBE2RjgBer0Wyxk1UCCxR0fZ81aHsBHO3pz+/SONSKu4EZ9SL uKx3GdfMjbhGEt+jUPfPSaYf7iISdsarVY6OKZUVczYSxhYo5y5t2q03dtr7BE99jWpQ cd+WO7TYBklWBNJGLVi1izdrAgMCARpxZjb16zG+urF/Y5boysx2hXoG1V0YYvMV39nh JLUForuw6j4FKPh3XiG3zFU0WFx5rQBJhpR3w7QnDrbQOW4DMc7G7fMs8CtEn4zDguFN w1O9eTdXMNDcgsDdid9YDY7uswCPcwmh9z8zRszVryEONHEqu8oz/1qJr2Fv9uEf6AVv q0cw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=jbYP/8V2ps6VBWu0DNAJvSe2+7kqeptcoLM5geqo4rQ=; b=RYAf+txWcbM5Tp8hyCdWrQ4mnRT9mOYuWsAQnPN3r+mXIKUO/o0QRvYU2Qm3YTugj1 ybj59f34l+WMvkfNCUAgAsIqZyiLe4cny7p489HUTLfzhwh+WH4bCy7LpcdQT6OZMWWt HJMUQwHjf7tr/p2V3oLRUKf9s5zPjcx5iM3mJXRZY6qkgCZxWo3YdCfki7X2Z6EfdufB +gPfmot6q1v6E5ckgzmLqCOiq5V1imeON2EKQNN+fafbukg3OT56S8JHGDnJBY9jyMuQ QOF+pkOh2oNZdkpedyGFliK+sgSgFgEAGEdKxHexKuVwU8phdTkYW50t0fxLlTdjXKC/ xUNg== X-Gm-Message-State: AOAM532ePJabxWvatjhsxI7znPkCyAyyALGk9oN/D5ykH9jBo0UwO7QN PH6UO8vKMLqgs0xBHe+j6nyUzwxrAcQ0WQ== X-Google-Smtp-Source: ABdhPJw75yhv7Cp25cOattpKYWja1PNROMp88cfwLuPFXrX6+AGW0ZMwfzBk8/3RLjsfx2N4ajhvlg== X-Received: by 2002:a17:907:16a1:: with SMTP id hc33mr5674318ejc.536.1628805366341; Thu, 12 Aug 2021 14:56:06 -0700 (PDT) Received: from localhost.localdomain ([5.24.104.153]) by smtp.gmail.com with ESMTPSA id o17sm1251768ejb.84.2021.08.12.14.56.04 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Aug 2021 14:56:05 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH 00/10] gnu: desktop: Add seatd-service-type and greetd-service-type Date: Fri, 13 Aug 2021 00:55:57 +0300 Message-Id: <20210812215557.23835-1-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210810193626.9186-1-mail@muradm.net> References: <20210810193626.9186-1-mail@muradm.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) This patch series introduces two new services; - seatd-service-type: simple seat management daemon - greetd-service-type: simple login daemon Both services are very minimalistic in nature. Simple seatd daemon could be said as replacement for elogind-service-type. greetd daemon is simple replacement for mingetty. In addition to the base services, special build of pam-mount module is included as greetd-pam-mount. It is used to provide auto-(mounting/unmounting) of XDG_RUNTIME_DIR. Special build is required to avoid interference with default pam-mount, if used in the system. greetd provides agreety terminal greeter out of the box. Current greetd-service-type includes configuration for greetd-agreety-session variations, i.e. only terminal are supported at the moment. Next step would be adding gtkgreet and/or wlgreet alternatives for graphical greeter. muradm (10): gnu: crates-io: Add rust-enquote 1.0.3 gnu: crates-io: Add rust-pam-sys 0.5.6 gnu: freedesktop: Add greetd 0.7.0 gnu: admin: Add greetd-pam-mount gnu: desktop: Add seatd-service-type gnu: desktop: Add greetd-service-type gnu: base: Add greetd to applied PAM services gnu: pam-mount: Add greetd to applied PAM services gnu: tests: Add seatd/greetd based minimal desktop system tests doc: Add desktop seatd-service-type and greetd-service-type doc/guix.texi | 183 ++++++++++++++++++++++ gnu/packages/admin.scm | 33 ++++ gnu/packages/crates-io.scm | 49 ++++++ gnu/packages/freedesktop.scm | 86 +++++++++++ gnu/services/base.scm | 3 +- gnu/services/desktop.scm | 285 ++++++++++++++++++++++++++++++++++- gnu/services/pam-mount.scm | 3 +- gnu/tests/desktop.scm | 191 ++++++++++++++++++++++- 8 files changed, 829 insertions(+), 4 deletions(-) -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 12 18:00:38 2021 Received: (at 49969) by debbugs.gnu.org; 12 Aug 2021 22:00:38 +0000 Received: from localhost ([127.0.0.1]:40019 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mEIkf-0002m6-O4 for submit@debbugs.gnu.org; Thu, 12 Aug 2021 18:00:37 -0400 Received: from mail-ej1-f48.google.com ([209.85.218.48]:45973) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mEIkd-0002lt-QE for 49969@debbugs.gnu.org; Thu, 12 Aug 2021 18:00:36 -0400 Received: by mail-ej1-f48.google.com with SMTP id qk33so14381895ejc.12 for <49969@debbugs.gnu.org>; Thu, 12 Aug 2021 15:00:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=jbYP/8V2ps6VBWu0DNAJvSe2+7kqeptcoLM5geqo4rQ=; b=goWSvUFjg238ScgFLE1sTcN4I+Ms8yLHeSfOz/lueqEuT39d/sDkAhl1Ir0LVZwnRQ zzI15eyaU8t/Jw4Ugi9Zl7HtojjiLVADdFJ6o7kDcn4K0+6Jta7e8OAqLLzpKVHPCr19 mXRN2V+QEDARk9faHyFlGVjN8ufexV7QYXp//qcvdF/vEguVpgBc+yDcLhoMDcA/04tQ Mj58liP7S9BKbnV+hlFMZ4WK088ftprtpAD5JDlJ7NrLRVcBadH5QJXuivyCaBvTt7E8 MPnzuaPqHoPNQkSH7xWWC5hw3RrWM6fR2C4unRb4ZEcJBcoar5v75giv/6HP75Fg+yrn 3ZEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=jbYP/8V2ps6VBWu0DNAJvSe2+7kqeptcoLM5geqo4rQ=; b=KG3LSNyiNh8rEd0T/NOQotrfz4B6LwwlABKiX91Vqe6cglEnMa6UJ+TzUCJ832XKl5 SHU1Rn/YEpeY7Ef6h1bqJoKcP0ca3e80Yl9qvD3p76LP7v+k/Izc6noTP+BG8KzQaO0O dqHfQdfULocdKdLuuiQuaS92qWhuAJPlwR+QO/EQ3QECJEFSs71ylDrHKQMPAhHrjzFK /kRu8svvxLqz12Aib7UBTzKJNT45qbvIIVA4v53hGZ9YJ6yOcc+c5E38RM+SPKIbK14j WFa02iE0ao0mDjDxeITvuV5At2mTyFajfGaKv7/etbXTkWhkJD173o8K0gNKMKMDjrTo t5NA== X-Gm-Message-State: AOAM533PBOm1g+q9Zbmt8V+RcXrgPPcUKOm7Zfx+l1d3qV77sCgHwivZ 4MpW1Y2IKG6o1ipHpRhOoxhOxGJTG4bqAQ== X-Google-Smtp-Source: ABdhPJxFTlJX+m5JbmAyekioENgX1lfs/gcAe+4wRGFZofy32D+7cq+MC+Jdh5rxOJAO0rcb6L0TPA== X-Received: by 2002:a17:906:5384:: with SMTP id g4mr5787909ejo.27.1628805629702; Thu, 12 Aug 2021 15:00:29 -0700 (PDT) Received: from localhost.localdomain ([5.24.104.153]) by smtp.gmail.com with ESMTPSA id m21sm1707596edc.5.2021.08.12.15.00.28 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Aug 2021 15:00:29 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH 00/10] gnu: desktop: Add seatd-service-type and greetd-service-type Date: Fri, 13 Aug 2021 01:00:22 +0300 Message-Id: <20210812220022.24025-1-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210810193626.9186-1-mail@muradm.net> References: <20210810193626.9186-1-mail@muradm.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) This patch series introduces two new services; - seatd-service-type: simple seat management daemon - greetd-service-type: simple login daemon Both services are very minimalistic in nature. Simple seatd daemon could be said as replacement for elogind-service-type. greetd daemon is simple replacement for mingetty. In addition to the base services, special build of pam-mount module is included as greetd-pam-mount. It is used to provide auto-(mounting/unmounting) of XDG_RUNTIME_DIR. Special build is required to avoid interference with default pam-mount, if used in the system. greetd provides agreety terminal greeter out of the box. Current greetd-service-type includes configuration for greetd-agreety-session variations, i.e. only terminal are supported at the moment. Next step would be adding gtkgreet and/or wlgreet alternatives for graphical greeter. muradm (10): gnu: crates-io: Add rust-enquote 1.0.3 gnu: crates-io: Add rust-pam-sys 0.5.6 gnu: freedesktop: Add greetd 0.7.0 gnu: admin: Add greetd-pam-mount gnu: desktop: Add seatd-service-type gnu: desktop: Add greetd-service-type gnu: base: Add greetd to applied PAM services gnu: pam-mount: Add greetd to applied PAM services gnu: tests: Add seatd/greetd based minimal desktop system tests doc: Add desktop seatd-service-type and greetd-service-type doc/guix.texi | 183 ++++++++++++++++++++++ gnu/packages/admin.scm | 33 ++++ gnu/packages/crates-io.scm | 49 ++++++ gnu/packages/freedesktop.scm | 86 +++++++++++ gnu/services/base.scm | 3 +- gnu/services/desktop.scm | 285 ++++++++++++++++++++++++++++++++++- gnu/services/pam-mount.scm | 3 +- gnu/tests/desktop.scm | 191 ++++++++++++++++++++++- 8 files changed, 829 insertions(+), 4 deletions(-) -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 12 18:04:38 2021 Received: (at 49969) by debbugs.gnu.org; 12 Aug 2021 22:04:38 +0000 Received: from localhost ([127.0.0.1]:40029 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mEIoY-0002sh-DJ for submit@debbugs.gnu.org; Thu, 12 Aug 2021 18:04:38 -0400 Received: from mail-ej1-f44.google.com ([209.85.218.44]:45653) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mEIoU-0002s7-Fi for 49969@debbugs.gnu.org; Thu, 12 Aug 2021 18:04:37 -0400 Received: by mail-ej1-f44.google.com with SMTP id qk33so14403009ejc.12 for <49969@debbugs.gnu.org>; Thu, 12 Aug 2021 15:04:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=hVMJiMZrCDmRRBKI4Op5PPeRX5HGfsylxhPwiGBmOYw=; b=ngzTrP3jgme++mO01GD0A4lc2IsAJsqGFLE5DBQ02hr0upENyaOS0T2XRdo+vfBTZK 1GCqbvjcq+Cfli8Tsm3G4NAWOqIzPcp+lja7FXZFXKSo82yJBGtT3ZpSByYh6zGy+Tte XX2tytKaoYhX4TdhVBQ11Qjn4mR0zS52NHZxq3QkD/PV3pm/Bdu//unnXbmPvXFeY95m Ofu+Yq3vqmXlXLkeTtwcZccZrYRSdeoq9zOuTfAOA7FfIu0COvOa0qEzPMl8bFnPAQBu 3aoWmYXx53XPDZ+tk/N0tUN3oVv9yFfkJfB9SodqTcJZUAnH6ae9+A9n+QmAQZyzZYgK UDyA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=hVMJiMZrCDmRRBKI4Op5PPeRX5HGfsylxhPwiGBmOYw=; b=ZhprMqZExv5e8fM+UeAzedccsyLACft25vGBCTXQjuWrasFyfu2LcJqAIRwbH248VB owX1WLQz0gG+45xG+ya6l2CoQ2G2uiJ8gvryngErqp/zzBTHoKNhsnNejuEQwLY3Tpqx cgOvpoTU13Osi36E9fCqb9OwOoQsc+AlGaoq4GbrnwBlg+LXpgsNOgNCFGaXC6v3ypgt UZfZVjf3H6ey6Bsxon+uARdf4O0aORSYlOqz5I3k7ENg1ccQsibDiwUAk4g7Q3j0CRX5 1mIejocpySmaF6s7MfCqFt4IlqoRswFraUbEQsqPuTtN6Vr7KQCzf3xebfP4kLCis8+v x33Q== X-Gm-Message-State: AOAM531jxwazGkJdiRqI2JMezdVmQ1ermZN/9qnDPSoYsCfYMUHqq8p4 H+gTESgDH/GVEDBVMc/ouIAGkdu5iJ/mvw== X-Google-Smtp-Source: ABdhPJy0ZwTSur6iYJfqH+rO3Eig/ie0x5LyE+CZDPkkZG9vnCBCt5/yQn71ItE5mv74KPJzBWXhvA== X-Received: by 2002:a17:906:2c45:: with SMTP id f5mr5652359ejh.464.1628805868580; Thu, 12 Aug 2021 15:04:28 -0700 (PDT) Received: from localhost.localdomain ([5.24.104.153]) by smtp.gmail.com with ESMTPSA id o23sm1750302eds.75.2021.08.12.15.04.27 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Aug 2021 15:04:28 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v3 01/10] gnu: crates-io: Add rust-enquote 1.0.3 Date: Fri, 13 Aug 2021 01:04:11 +0300 Message-Id: <20210812220420.24118-2-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210812220022.24025-1-mail@muradm.net> References: <20210812220022.24025-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/crates-io.scm (rust-enquote-1): Add rust-enquote 1.0.3 --- gnu/packages/crates-io.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 24cc772ba7..6484d4c4fc 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -18,6 +18,7 @@ ;;; Copyright © 2021 Antero Mejr ;;; Copyright © 2021 Maxim Cournoyer ;;; Copyright © 2021 Vinicius Monego +;;; Copyright © 2021 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -56972,3 +56973,24 @@ variant of this library is available separately as @code{im}.") (description "Generate Rust register maps (`struct`s) from SVD files") (license (list license:expat license:asl2.0)))) + +(define-public rust-enquote-1 + (package + (name "rust-enquote") + (version "1.0.3") + (home-page "https://github.com/reujab/enquote") + (source + (origin + (method url-fetch) + (uri (crate-uri "enquote" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0vm687r2wwgc3d3l2iqhag9wgkql6k93sdvjxvmfkdpksajpij1f")))) + (build-system cargo-build-system) + (synopsis + "A Rust library quotes, unquotes, and unescapes strings") + (description + "A Rust library quotes, unquotes, and unescapes strings") + (license license:unlicense))) -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 12 18:04:38 2021 Received: (at 49969) by debbugs.gnu.org; 12 Aug 2021 22:04:39 +0000 Received: from localhost ([127.0.0.1]:40031 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mEIoY-0002sk-LL for submit@debbugs.gnu.org; Thu, 12 Aug 2021 18:04:38 -0400 Received: from mail-ej1-f43.google.com ([209.85.218.43]:34703) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mEIoW-0002sB-DH for 49969@debbugs.gnu.org; Thu, 12 Aug 2021 18:04:37 -0400 Received: by mail-ej1-f43.google.com with SMTP id u3so14495601ejz.1 for <49969@debbugs.gnu.org>; Thu, 12 Aug 2021 15:04:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=5UKAphfDxOzm3bwyBiHJxbodPH6X2Jnn4XQw6tMBdHI=; b=yErM6EqsqnsFXScoZgBqn/FBZsj6oIpSmEflC6G5pKMpP7MJkw7bK5ybpN2Z1AccPg AQNIAawAbedX66GCcVbkWIFgcrxy+BaZvlEMU8XLxNwtWsvAFFEdz+XXjI9zJCEApj/X 2Jy/6okN53bdwVMLlsGCgUrsM5vVcvCUCRuulQhxGn3Uwgm4cEK12KgrbXjSxbGR+xpc 40vt8j3NNwGJR30dhsLfPiQzvVawHHK4cOIaRFOU1kog/w0x09ozmHMs411CbEKqUN7W IMQHP21+5l5ydXLLvJXdSBe0Hq8n1HlUPs5uc96qCdceA1D8ym21X19ZtXj56mkr7eO7 CFzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=5UKAphfDxOzm3bwyBiHJxbodPH6X2Jnn4XQw6tMBdHI=; b=l/JaDcMixglvFUj1hSscjPNQo5QvCnyAa8cXkOmckR+BlEsYMH1/rfQ73oQSkhFUk8 yRyNqPIcYNesDC+d1Rr3Jp2G4EaEe2hy2U+4C+wGH4p6Dv67szg1DLOX9kuDgzlyYr7K 1iOMQYGDF6reBwEqdZ4UUQ31M9GcAqLJLISEtFnZfRizlnQnUp1KEINP+bZ01aYCnJ5V Tx9RhJ3TS8q/LmuvfMk6IvM2iTADXJZPJKozX9qPKfxIthgLkDnw/tZ/jk/5dTQ/4I6V HOR0BL9qKHDEV6cxUZGjNJ0c9LUrWFc9kENbS347nvQYJjmlNcA7hMyK1Wr/vjhBYQn9 Bc4Q== X-Gm-Message-State: AOAM532V1wCKlc/irWS5k3wLMBGrWerzEeBZtsm3WoSJhlk0WfjTgezf TgA0gWEW7+n/2Gn8PqvtUFRAe66GqRX/Dw== X-Google-Smtp-Source: ABdhPJxv36MQjCqe3gcSX9of2fhOkXhIRZopBaad3uH9iXxTh+LucyYc24lLY7WWT+ynrsxgy3pt8g== X-Received: by 2002:a17:906:8a6a:: with SMTP id hy10mr5774792ejc.319.1628805870137; Thu, 12 Aug 2021 15:04:30 -0700 (PDT) Received: from localhost.localdomain ([5.24.104.153]) by smtp.gmail.com with ESMTPSA id o23sm1750302eds.75.2021.08.12.15.04.28 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Aug 2021 15:04:29 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v3 02/10] gnu: crates-io: Add rust-pam-sys 0.5.6 Date: Fri, 13 Aug 2021 01:04:12 +0300 Message-Id: <20210812220420.24118-3-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210812220022.24025-1-mail@muradm.net> References: <20210812220022.24025-1-mail@muradm.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/crates-io.scm (rust-pam-sys): Add rust-pam-sys 0.5.6 --- gnu/packages/crates-io.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 6484d4c4fc..d91417d76f 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -55,6 +55,7 @@ #:use-module (gnu packages glib) #:use-module (gnu packages image) #:use-module (gnu packages jemalloc) + #:use-module (gnu packages linux) #:use-module (gnu packages llvm) #:use-module (gnu packages multiprecision) #:use-module (gnu packages nettle) @@ -56994,3 +56995,29 @@ variant of this library is available separately as @code{im}.") (description "A Rust library quotes, unquotes, and unescapes strings") (license license:unlicense))) + +(define-public rust-pam-sys-0.5.6 + (package + (name "rust-pam-sys") + (version "0.5.6") + (home-page "https://github.com/1wilkens/pam-sys") + (source + (origin + (method url-fetch) + (uri (crate-uri "pam-sys" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0d14501d5vybjnzxfjf96321xa5wa36x1xvf02h02zq938qmhj6d")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-libc" ,rust-libc-0.2)))) + (native-inputs + `(("linux-pam" ,linux-pam))) + (synopsis + "Rust FFI wrappers for the Linux Pluggable Authentication Modules (PAM)") + (description + "Rust FFI wrappers for the Linux Pluggable Authentication Modules (PAM)") + (license (list license:expat license:asl2.0)))) -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 12 18:04:39 2021 Received: (at 49969) by debbugs.gnu.org; 12 Aug 2021 22:04:39 +0000 Received: from localhost ([127.0.0.1]:40034 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mEIoY-0002sr-V5 for submit@debbugs.gnu.org; Thu, 12 Aug 2021 18:04:39 -0400 Received: from mail-ej1-f52.google.com ([209.85.218.52]:39853) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mEIoT-0002s5-JZ for 49969@debbugs.gnu.org; Thu, 12 Aug 2021 18:04:37 -0400 Received: by mail-ej1-f52.google.com with SMTP id go31so14448990ejc.6 for <49969@debbugs.gnu.org>; Thu, 12 Aug 2021 15:04:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=jbYP/8V2ps6VBWu0DNAJvSe2+7kqeptcoLM5geqo4rQ=; b=bjujq/U6EiN0YgbZZHcbbOPPinAW8ZGpUbUx6WItsazM/RSUr4c0CO2iiz3hVsqkcO cZkMrgnHcvur6EpkPn4EsQGz/cl4fwGWCR+jn8S1Ln1/VSSC/o7Hp6Z4EmHglYlD71kO 5OtZN5X9e75YAV2KWSx9xjCucgqX3lvjMGumdUT/LIW8jqXU4cNY1Ugg4vS1yujP+fS1 LdDnhCUnObnNSmuVZoDbD+XQQvxTp1By18YcMsoUc4H1KxXR99WnJvolunIg7vZEq/8k 9WEarYX1ZlHp/9gU94BLOM7sR1oAYcyhregZ6m4kchkLJws3wN5qOwsFb9NQQwgdhVvF 5gvw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=jbYP/8V2ps6VBWu0DNAJvSe2+7kqeptcoLM5geqo4rQ=; b=GJG26O/6Sudibp/sQ4vjQpXST9PBoU6Kem68FUTReMNzlz2EXaDxqZObiXLn5PfQK0 +1fZF4E7Esfy8dsprkbd+rQRhev2FlWYGeZoMsPvcEeaKjMSgNGdBmVhDVJ+b606qTjn LVT58Ngi2A+76Rfm0syA3WO43jc5IplMa4JeXuErD2GzgF/neUH7r1vCoGqpYbw95Fpc umYkx8VkC1xY3VKKFeEbuRp2S4ZOsTTirKRYzAfql+w3YPleJMCuOX1u5EbzbjkVIWAR bpOKO/c/Nnok6OEMtUnPWyuyn58GFe4ZFWb/Oe8w84HeBqtmiqp+w4WBvTB6TSBAILko Ibsw== X-Gm-Message-State: AOAM531RYp6OGqFTRr2biIW5PJCYokuJtjdsJpT4XGmLWyUYO2CSR4tH hmsaDeNqHNxTu/v/p/8BPJ8BTG0pLbRpRQ== X-Google-Smtp-Source: ABdhPJywCyTdbHKMSrlRAF3dFf15gF4KMhq/Dt62rlpkrl+YA4aXEO2iuUq7welzxTVV/u1nUwZwhQ== X-Received: by 2002:a17:906:cd02:: with SMTP id oz2mr5752302ejb.227.1628805867086; Thu, 12 Aug 2021 15:04:27 -0700 (PDT) Received: from localhost.localdomain ([5.24.104.153]) by smtp.gmail.com with ESMTPSA id o23sm1750302eds.75.2021.08.12.15.04.26 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Aug 2021 15:04:26 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v3 00/10] gnu: desktop: Add seatd-service-type and greetd-service-type Date: Fri, 13 Aug 2021 01:04:10 +0300 Message-Id: <20210812220420.24118-1-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210812220022.24025-1-mail@muradm.net> References: <20210812220022.24025-1-mail@muradm.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) This patch series introduces two new services; - seatd-service-type: simple seat management daemon - greetd-service-type: simple login daemon Both services are very minimalistic in nature. Simple seatd daemon could be said as replacement for elogind-service-type. greetd daemon is simple replacement for mingetty. In addition to the base services, special build of pam-mount module is included as greetd-pam-mount. It is used to provide auto-(mounting/unmounting) of XDG_RUNTIME_DIR. Special build is required to avoid interference with default pam-mount, if used in the system. greetd provides agreety terminal greeter out of the box. Current greetd-service-type includes configuration for greetd-agreety-session variations, i.e. only terminal are supported at the moment. Next step would be adding gtkgreet and/or wlgreet alternatives for graphical greeter. muradm (10): gnu: crates-io: Add rust-enquote 1.0.3 gnu: crates-io: Add rust-pam-sys 0.5.6 gnu: freedesktop: Add greetd 0.7.0 gnu: admin: Add greetd-pam-mount gnu: desktop: Add seatd-service-type gnu: desktop: Add greetd-service-type gnu: base: Add greetd to applied PAM services gnu: pam-mount: Add greetd to applied PAM services gnu: tests: Add seatd/greetd based minimal desktop system tests doc: Add desktop seatd-service-type and greetd-service-type doc/guix.texi | 183 ++++++++++++++++++++++ gnu/packages/admin.scm | 33 ++++ gnu/packages/crates-io.scm | 49 ++++++ gnu/packages/freedesktop.scm | 86 +++++++++++ gnu/services/base.scm | 3 +- gnu/services/desktop.scm | 285 ++++++++++++++++++++++++++++++++++- gnu/services/pam-mount.scm | 3 +- gnu/tests/desktop.scm | 191 ++++++++++++++++++++++- 8 files changed, 829 insertions(+), 4 deletions(-) -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 12 18:04:47 2021 Received: (at 49969) by debbugs.gnu.org; 12 Aug 2021 22:04:47 +0000 Received: from localhost ([127.0.0.1]:40036 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mEIoe-0002tL-B3 for submit@debbugs.gnu.org; Thu, 12 Aug 2021 18:04:47 -0400 Received: from mail-ej1-f52.google.com ([209.85.218.52]:39864) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mEIoX-0002sD-Cc for 49969@debbugs.gnu.org; Thu, 12 Aug 2021 18:04:38 -0400 Received: by mail-ej1-f52.google.com with SMTP id go31so14449311ejc.6 for <49969@debbugs.gnu.org>; Thu, 12 Aug 2021 15:04:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=3V8DMCKbRSqdR3wtMv+7Ro3Vrt3PCoHfrpfXzhJ1GgI=; b=grhrcvS0tLAB3HL7AuJ+KYQKrq6qtMvlTehC/+pqo5UKigQVnR6SoMG9nth3XVPHzw sZRJofnlNO9VhQ/NP/m+93aJgAFf5b3mhUoPfWQWXLf88h4KtXzerIockjcibHhlgRF6 rZ86x8JFWtXB9EWZ6CpXY2ZwUaBlaiUcQvLRahnf+6YCyh1VRpZDkI8eatrBUy2xtLqu z7t1Ux22PjStRJSqfkMFfmi2Qlt6eYtFttu9VWrYJESJpJ/MR+9gA9A4PXSPO88cU7yh FUDdKIGvcRfUN4GMBf88nQZIQ4460lbCtuxAcSDpLhcKrTSmdN8oKmWYcN4prTaneLN1 nV7A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=3V8DMCKbRSqdR3wtMv+7Ro3Vrt3PCoHfrpfXzhJ1GgI=; b=ARV0H3Ky65Q21Zi9H7hFWxYC6eOcfnjkOU6IoTu0+mXYqYo0bgYHWm5IhT2B6m8QJS OG3YpwPUj+P3zm97s2HfLGV4Mhh+JO0V4TNFML9SeOBnT+sjX3SLAYFbr6jp0Xp8xSeH cyv7WVILr/RAacG4bCSx+37L+0ODDnN3m1MPY7FMQaqox+/4O1RQ69ZaTWXiKQ1faHVl vDSFyD2SGzk08OQTYjRLle26R+d6UmZSikBVsofeLIgqhTk67NmlgLadNSx4Zr9UqbuL e/fF1vdMUiav/ohgkzJ4WX4FwpNzx7oPR0N0/SbKkcj/fd0ulNLX50ufJEGkHMsqh/EF 0/9Q== X-Gm-Message-State: AOAM533sdyaH6KKwqRWRy2b22nZVaHACtHuZ3dE7CQqUe4qRarfb+19h +hFL3UkZnytHFoKDzSX/Jg5fqsejJxG3FQ== X-Google-Smtp-Source: ABdhPJyr34SGerVd3NsghbX5ffl98agzRWEeFB+K4sTN+4tkmczZJtgSAkY2EBEzMuCM7n9eDrjjBg== X-Received: by 2002:a17:906:32cf:: with SMTP id k15mr5842332ejk.68.1628805871599; Thu, 12 Aug 2021 15:04:31 -0700 (PDT) Received: from localhost.localdomain ([5.24.104.153]) by smtp.gmail.com with ESMTPSA id o23sm1750302eds.75.2021.08.12.15.04.30 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Aug 2021 15:04:31 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH 03/10] gnu: freedesktop: Add greetd 0.7.0 Date: Fri, 13 Aug 2021 01:04:13 +0300 Message-Id: <20210812220420.24118-4-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210812220022.24025-1-mail@muradm.net> References: <20210812220022.24025-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/freedesktop.scm (greetd): Add greetd 0.7.0 --- gnu/packages/freedesktop.scm | 86 ++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 693a79c738..0be7d0fe4d 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -24,6 +24,7 @@ ;;; Copyright © 2020 Raghav Gururajan ;;; Copyright © 2021 Brendan Tildesley ;;; Copyright © 2021 pineapples +;;; Copyright © 2021 muradm ;;; ;;; 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,89 @@ 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) + (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)))))))) + (native-inputs + `(("linux-pam" ,linux-pam) + ("scdoc" ,scdoc))) + (synopsis "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. + +If you can run it from your shell in a TTY, greetd can start it. + +If it can be taught to speak a simple JSON-based IPC protocol, +then it can be a greeter.") + (license license:gpl3+))) + (define-public packagekit (package (name "packagekit") -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 12 18:04:48 2021 Received: (at 49969) by debbugs.gnu.org; 12 Aug 2021 22:04:48 +0000 Received: from localhost ([127.0.0.1]:40040 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mEIoh-0002tX-Nf for submit@debbugs.gnu.org; Thu, 12 Aug 2021 18:04:47 -0400 Received: from mail-ej1-f54.google.com ([209.85.218.54]:35613) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mEIoY-0002sF-Mc for 49969@debbugs.gnu.org; Thu, 12 Aug 2021 18:04:39 -0400 Received: by mail-ej1-f54.google.com with SMTP id w5so14469138ejq.2 for <49969@debbugs.gnu.org>; Thu, 12 Aug 2021 15:04:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=pK0Xo5knw/WPuOhCSupK0HXcx0+IBEMDHq9i6ENLVnA=; b=oyxcmQjVoC8Y1emVariCYvIkxXVaUtoa4Lh00LN/vRDZUvzJzYLsZxSm32CvrIZBwu LnXadNF2sIjTUi1xD1wle0lNvbV1mI1E0YZwBbWb8y5AB3k9IqUz7seRXZ5PCHUBZYi8 S/j6PAfw3iADfMW050MXWr7i094iJOAzXcyPo8Jm41csUI3bDRtpIgMXVWFY1c03Snzh hIKqP5IVjPEseffh0g3S3TznIeS2rc6eaEDF6zooVU4pTZ5zMdsIV6FOU3fhut9rk3rX hgvm93gPXYlRMB6o2tngl/KASSrpDafJW3Az/wn4d1HbH37mxqxjRzZG0kGOPZJ2n1Jx U9XA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=pK0Xo5knw/WPuOhCSupK0HXcx0+IBEMDHq9i6ENLVnA=; b=o5BmVZG+zNVLUgi4XvZLYGs+O/Y80ddO6WUflbjIUzG2GEfd6jGqQGr/8fZMCv6zeD xlMiCEDz7qiu5z2dSjPV2rPb5egJ96/6r/0vI3kB2TK76gYwothEFXyNcejAr7aBEwY9 ogG7ahrwQBUcRxZJ7v7Mds/SQ8DvIrUgxjIi+IoA0xh+/0LHZ0D4Xv23EjgFFlt5t3rM Ieg/wNPy+7cwQme3gEydMvMUOEaDP1wIX3LeseJc8YJkysxc0w3QAa4ak1GLzYH7yWzE BeGVAGchTnxvfYD66TCh5lizznwUeKvmKalgIRRNMQegqUyEPeAMNHNLmCLll/uIhCuo Q9yA== X-Gm-Message-State: AOAM532MMXVSAYo5AxhTGL4DowN6tf39q6agyQhSQQVEpbuyK5q81ok0 prblpXRjgVVD/t9Oyu7ttMqHQKV9J2KcxA== X-Google-Smtp-Source: ABdhPJw2/YyrBWwx1tyrMHBuX75eg3AX9aE5FzcS/XT0clZ0ekX3p7i8cLkudNV22WW0KDy9lRnm6Q== X-Received: by 2002:a17:906:3bc3:: with SMTP id v3mr5680499ejf.482.1628805872808; Thu, 12 Aug 2021 15:04:32 -0700 (PDT) Received: from localhost.localdomain ([5.24.104.153]) by smtp.gmail.com with ESMTPSA id o23sm1750302eds.75.2021.08.12.15.04.31 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Aug 2021 15:04:32 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v3 04/10] gnu: admin: Add greetd-pam-mount Date: Fri, 13 Aug 2021 01:04:14 +0300 Message-Id: <20210812220420.24118-5-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210812220022.24025-1-mail@muradm.net> References: <20210812220022.24025-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 2.0 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: * gnu/packages/admin.scm (greetd-pam-mount): Add greetd-pam-mount --- gnu/packages/admin.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index eda269f148..e5ed1785d8 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -42,6 +42,7 @@ ;;; Copyright © 2021 David [...] Content analysis details: (2.0 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 SPF_NONE SPF: sender does not publish an SPF Record 2.0 PDS_OTHER_BAD_TLD Untrustworthy TLDs [URI: selfhosted.xyz (xyz)] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [209.85.218.54 listed in list.dnswl.org] -0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) [209.85.218.54 listed in wl.mailspike.net] -0.0 RCVD_IN_MSPIKE_WL Mailspike good senders X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) * gnu/packages/admin.scm (greetd-pam-mount): Add greetd-pam-mount --- gnu/packages/admin.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index eda269f148..e5ed1785d8 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -42,6 +42,7 @@ ;;; Copyright © 2021 David Larsson ;;; Copyright © 2021 WinterHound ;;; Copyright © 2021 Brice Waegeneire +;;; Copyright © 2021 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -4247,6 +4248,38 @@ supports. It can also mount encrypted LUKS volumes using the password supplied by the user when logging in.") (license (list license:gpl2+ license:lgpl2.1+)))) +(define-public greetd-pam-mount + (package + (inherit pam-mount) + (name "greetd-pam-mount") + (arguments + (substitute-keyword-arguments (package-arguments pam-mount) + ((#:configure-flags flags ''()) + `(cons* "--with-rundir=/run/greetd" ,flags)) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'unpack 'patch-config-file-name + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/pam_mount.c" + ((".*define CONFIGFILE .*$") + "#define CONFIGFILE \"/etc/security/greetd_pam_mount.conf.xml\"\n") + (("pam_mount_config") "greetd_pam_mount_config") + (("pam_mount_system_authtok") "greetd_pam_mount_system_authtok")))))))) + (synopsis "pam-mount specifically compiled for use with greetd") + (description + "Pam-mount is a PAM module that can mount volumes when a user logs in. +It supports mounting local filesystems of any kind the normal mount utility +supports. It can also mount encrypted LUKS volumes using the password +supplied by the user when logging in. + +This package inherits pam-mount in the way that it is compiled specifically +for use with greetd daemon. It uses different configuration location and +name space for storing data in PAM. + +greetd-pam-mount is used in configuration of greetd to provide +auto-(mounting/unmounting) of XDG_RUNTIME_DIR in the way that it will not +interfere with default pam-mount configuration."))) + (define-public jc (package (name "jc") -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 12 18:04:48 2021 Received: (at 49969) by debbugs.gnu.org; 12 Aug 2021 22:04:48 +0000 Received: from localhost ([127.0.0.1]:40042 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mEIoi-0002te-07 for submit@debbugs.gnu.org; Thu, 12 Aug 2021 18:04:48 -0400 Received: from mail-ej1-f48.google.com ([209.85.218.48]:43914) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mEIof-0002tA-Hq for 49969@debbugs.gnu.org; Thu, 12 Aug 2021 18:04:46 -0400 Received: by mail-ej1-f48.google.com with SMTP id b15so14421973ejg.10 for <49969@debbugs.gnu.org>; Thu, 12 Aug 2021 15:04:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=VBcyOm+hs1UvnMoo/bXfZIc2oTwGkhWXIaWrIjHUG/0=; b=vO5yqmRSOWcnyk6tjyTmlTwrTjECx9Q+OE/urwozjCh5peWCR8Qi8U9D/oakYDvna6 ivAT8rwstmzoSbkqFkO5jmNYiAphRMny944IOneg+y8SjOL/KCPdRJ4fMr6J46++Pl67 hxmUKxlDmZ/Y/kd27JfC1DSF5psVhpkkHmvQR6UvfGtuN1b9TMCt30zOu4IH+bIR/Dzg oUXfxbYXY57qp1ax1Z+P7ws/DmkUZhALOMoY8SnNy19iSzuv41MUUh2sdo7hLID8bx9G En9OcxHpb2716CXX/W+FRM5XHXbFHTSk37Je9ZoAbz1y7jcBagYVqQu4MvCwHmdWDhw+ VqDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=VBcyOm+hs1UvnMoo/bXfZIc2oTwGkhWXIaWrIjHUG/0=; b=Avq2ZcSyKqYefUFFCkpWEg3BOHE2gGBO2SbEkIwpTp+hmUXtY/PDpVCDExvKkBfyYI erMQMmU8X8uygKfPYd0KNV3AIO5kUuzhheHCquQrC0l7MKI2joTNEvWRWChaShWRGxpX HS6UFFU4CW/sx984m76rCcwaSIM/arpq84UnVGZbcyuqh8T0NfKzIEUBR4/loYTjt55o mWo8dahhnMQp/BSCFPxcGv0rs257X36vDD5f6WBXyScsQ2WF8FjnZm4TXA4qurrzG5xA EFL2iLZ4FQXzzWnzWE1Kc1W9Ck6kzdb9kuArAfUAgghDk74vtjiHaxC896Jkds3yV+gB anXA== X-Gm-Message-State: AOAM531P6aWuwcYBdkKAvTR9VAVE3YRkNFvffvml120mZAo1YvE0E+em Vl9OJ5NvqQOMcB3gsT/uD9zJ+xwGSeStPQ== X-Google-Smtp-Source: ABdhPJylIDtaRjwsrY0LQiLmlxEnIqzuBQVp3sXGDBWN0CiSA5l3H1qAesCyZEyLKYLdUQtah3A//w== X-Received: by 2002:a17:906:d7af:: with SMTP id pk15mr5724446ejb.51.1628805874311; Thu, 12 Aug 2021 15:04:34 -0700 (PDT) Received: from localhost.localdomain ([5.24.104.153]) by smtp.gmail.com with ESMTPSA id o23sm1750302eds.75.2021.08.12.15.04.33 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Aug 2021 15:04:33 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v3 05/10] gnu: desktop: Add seatd-service-type Date: Fri, 13 Aug 2021 01:04:15 +0300 Message-Id: <20210812220420.24118-6-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210812220022.24025-1-mail@muradm.net> References: <20210812220022.24025-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/services/desktop.scm: Add seatd-service-type --- gnu/services/desktop.scm | 60 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 59 insertions(+), 1 deletion(-) diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index 64d0e85301..a63a2936a7 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -13,6 +13,7 @@ ;;; Copyright © 2020 Tobias Geerinckx-Rice ;;; Copyright © 2020 Reza Alizadeh Majd ;;; Copyright © 2021 Brice Waegeneire +;;; Copyright © 2021 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -39,7 +40,9 @@ #:use-module (gnu services networking) #:use-module (gnu services sound) #:use-module ((gnu system file-systems) - #:select (%elogind-file-systems file-system)) + #:select (%control-groups + %elogind-file-systems + file-system)) #:use-module (gnu system) #:use-module (gnu system setuid) #:use-module (gnu system shadow) @@ -154,6 +157,9 @@ gnome-keyring-configuration? gnome-keyring-service-type + seatd-configuration + seatd-service-type + %desktop-services)) ;;; Commentary: @@ -1182,6 +1188,58 @@ or setting its password with passwd."))) (define polkit-wheel-service (simple-service 'polkit-wheel polkit-service-type (list polkit-wheel))) + +;;; +;;; seatd-service-type -- minimal seat management daemon +;;; + +(define-record-type* seatd-configuration + make-seatd-configuration + seatd-configuration? + (seatd seatd-package (default seatd)) + (user seatd-user (default "root")) + (group seatd-group (default "users")) + (socket seatd-socket (default "/run/seatd.sock")) + (loglevel seatd-loglevel (default "error"))) + +(define (seatd-shepherd-service config) + (list (shepherd-service + (documentation "Minimal seat management daemon") + (requirement '()) + ;; TODO: once cgroups is separate dependency + ;; here we should depend on it rather than elogind + (provision '(seatd elogind)) + (start #~(make-forkexec-constructor + (list #$(file-append (seatd-package config) "/bin/seatd") + "-u" #$(seatd-user config) + "-g" #$(seatd-group config) + "-s" #$(seatd-socket config)) + #:environment-variables + (list (string-append "SEATD_LOGLEVEL=" + #$(seatd-loglevel config))) + #:log-file "/tmp/seatd.log")) + (stop #~(make-kill-destructor))))) + +(define seatd-environment + (match-lambda + (($ _ _ _ socket) + `(("SEATD_SOCK" . ,socket))))) + +(define seatd-service-type + (service-type + (name 'seatd) + (description "Seat management takes care of mediating access +to shared devices (graphics, input), without requiring the +applications needing access to be root.") + (extensions + (list + (service-extension session-environment-service-type seatd-environment) + ;; TODO: once cgroups is separate dependency + ;; we should not mount it here + (service-extension file-system-service-type (const %control-groups)) + (service-extension shepherd-root-service-type seatd-shepherd-service))) + (default-value (seatd-configuration)))) + ;;; ;;; The default set of desktop services. -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 12 18:04:51 2021 Received: (at 49969) by debbugs.gnu.org; 12 Aug 2021 22:04:51 +0000 Received: from localhost ([127.0.0.1]:40047 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mEIol-0002u7-DS for submit@debbugs.gnu.org; Thu, 12 Aug 2021 18:04:51 -0400 Received: from mail-ed1-f48.google.com ([209.85.208.48]:47046) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mEIoi-0002tF-1Z for 49969@debbugs.gnu.org; Thu, 12 Aug 2021 18:04:49 -0400 Received: by mail-ed1-f48.google.com with SMTP id r19so8792377eds.13 for <49969@debbugs.gnu.org>; Thu, 12 Aug 2021 15:04:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=dh/8N+CXmlWZw91Zsb/y/jh8BpZ7QLm1nQKa/aRV3eI=; b=pQC/fjCZHbv5UG5REpUz3beeQNcDxztscz/UarX053dVTAnLUcoyfdiHFQz2QxVms3 lEEzk0VEf/m1RZDEgJkjKCjSayHCf+hSX7Z01Qnf1VySGcMKP+ttDTxHB/X0E6sBZPbL Hv5/WOwXu6wZ95/XbrP0tSTQf27BU8iobsePEUqQq1ZpMUL+TN3xHX/hivexfqEnfFId 3kf82RjW8v0ZnCGkmPqnJMd+RPYafHvMWo/E4ilmovRoddyS4zSFI+FTIL6MwFBVxxB+ 1RRCYG8IRfkG7wAlcClTKbzYHgggBou1Ai0NwNS7Ex7zdBlCNSxxlI/72WPCEv+kY0QX 79sA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=dh/8N+CXmlWZw91Zsb/y/jh8BpZ7QLm1nQKa/aRV3eI=; b=WcKmr2RcHjwT6owxg6Ynf3Sj4yEju8luCWbzypT6SJRvjVr5kkqzxE9dZSwVJgMYul MYQJShN4GFNKE+ShIaHmHf6DLEo/xQrDkWCQT9/bwk/DyR8c7oYaV8WDNUqqcgMGm3tA KcsE2h/c1OmvMn3DXkGpAcqSPKNqyoTqKQFOrZxSpOE/VM8mpFSKGdlII+I6km367Sey el45Gzn3451KS1rENpTX2LkYTCx9FvRUTrTjx3wjpOIQtkU/f68f1zQJ7bwUzjSF4CZH 1MmqZwmpsopt5HsspwXaGVCUp1gPVgHzrrdXO1kXgeYYeDWhAyMXwbjeD+CQBtZoewsT ARVQ== X-Gm-Message-State: AOAM530uR0+Y0YJjL0Wkq9X0vy6RAwBqGPuG/UOSknSuKpOQe4u3vCAi ga5FSvv9DISb9SSH+DwdDnFOrBgC8Tnbrw== X-Google-Smtp-Source: ABdhPJyL3OZx65vCMAnVfhZmSn+CQzEGdrOK6xuNuJgi6n6szpd1F5jkUWutjz9yeFwwzdyJOrqa0g== X-Received: by 2002:aa7:cb19:: with SMTP id s25mr8437444edt.194.1628805882171; Thu, 12 Aug 2021 15:04:42 -0700 (PDT) Received: from localhost.localdomain ([5.24.104.153]) by smtp.gmail.com with ESMTPSA id o23sm1750302eds.75.2021.08.12.15.04.41 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Aug 2021 15:04:41 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v3 07/10] gnu: base: Add greetd to applied PAM services Date: Fri, 13 Aug 2021 01:04:17 +0300 Message-Id: <20210812220420.24118-8-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210812220022.24025-1-mail@muradm.net> References: <20210812220022.24025-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/services/base.scm (pam-limits-service-type): add greetd PAM service to applicable PAM services --- gnu/services/base.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/services/base.scm b/gnu/services/base.scm index c784d312b1..446ecc30f8 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -15,6 +15,7 @@ ;;; Copyright © 2020, 2021 Brice Waegeneire ;;; Copyright © 2021 qblade ;;; Copyright © 2021 Hui Lu +;;; Copyright © 2021 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -1392,7 +1393,7 @@ information on the configuration file syntax." (module "pam_limits.so") (arguments '("conf=/etc/security/limits.conf"))))) (if (member (pam-service-name pam) - '("login" "su" "slim" "gdm-password" "sddm")) + '("login" "greetd" "su" "slim" "gdm-password" "sddm")) (pam-service (inherit pam) (session (cons pam-limits -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 12 18:04:54 2021 Received: (at 49969) by debbugs.gnu.org; 12 Aug 2021 22:04:55 +0000 Received: from localhost ([127.0.0.1]:40050 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mEIoo-0002uR-Nf for submit@debbugs.gnu.org; Thu, 12 Aug 2021 18:04:54 -0400 Received: from mail-ed1-f52.google.com ([209.85.208.52]:39790) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mEIoj-0002tJ-BE for 49969@debbugs.gnu.org; Thu, 12 Aug 2021 18:04:51 -0400 Received: by mail-ed1-f52.google.com with SMTP id cn28so262712edb.6 for <49969@debbugs.gnu.org>; Thu, 12 Aug 2021 15:04:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=6iBM8ZI3T3fHzn8rEzUJ2i4QvCgwKO7iPLoH5R+yrGg=; b=tD02Ii43NXjOM7I01qolqC9hKdVviCf6guhVarJlV7g6QguhVKBl9SdKcDTb4hhye9 WC4BNRZZEBoBtmqwLQpc2oE8SwEOIdDldtJaaGPAlYlLiKM+B5SCQUbuG2lIMwLByZcF 9PPQ1xSSWkbgQ9WOVlm2p7CKMWr26iDxJhcaOZrfVKkDHDxl6BUJJfFTg3tjM4JE8BFd U9mS7Ywe7ZwvGr6lmoEv5ji/d8bhQkyPfHZWI+G0TeCgZtVkB2YuVPEXoNAxJwljdlP6 BCxKPc/WeJWV+DJeWseIeLDiSrqpBsjQhsLkZgu2nexQUwNs+NzXVanPDsFm1Vl9YRJe cxSQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=6iBM8ZI3T3fHzn8rEzUJ2i4QvCgwKO7iPLoH5R+yrGg=; b=KlfDfuPJUlqYI8/sZ/kyPNXGXJY8Drbar5n31v1g55Nuqzq5EW+y31rnqaoKdHxdqJ GSOYbsivTmMmbQw0T9ArMpf8te4NnkpxfNTGgM6ZaeZhVZnXjamFB9ewfvDoLAWdv/HW HJ1IBjdgqgPZ1W28qfn2tOiOytny14PbZ8SdCSnLv37V6gbcOIVDvxi0/GPC0/BuisjB Kly4PuM+I4s9k4NIJyCpVUDD8k2eL4B5Mm744DlkjQGOb2TMCHSLauhDWa8EXf9+my1Y e9UL2CSy+UHxxofd+wuE5484lB2fGVqNBkxGsVsQf+J+d9cXotO2hUiOwnZGT2WqITgF Kf8w== X-Gm-Message-State: AOAM5310xRXnG+8E1fggLS6ybvRQrp8xo+sdhhYe9Lew+ELZ2x2v/Rux /9KvZYhSa8acHMRP+6taCWwjgXkyLoNE5w== X-Google-Smtp-Source: ABdhPJyTulipd7tKiMtohO+XGmb1o2PBbC+Urq4/OdJNYbA8V09hTnt3tr5FnhnSWuNVkPL1p8RauQ== X-Received: by 2002:aa7:d3cf:: with SMTP id o15mr8091496edr.98.1628805883545; Thu, 12 Aug 2021 15:04:43 -0700 (PDT) Received: from localhost.localdomain ([5.24.104.153]) by smtp.gmail.com with ESMTPSA id o23sm1750302eds.75.2021.08.12.15.04.42 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Aug 2021 15:04:43 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v3 08/10] gnu: pam-mount: Add greetd to applied PAM services Date: Fri, 13 Aug 2021 01:04:18 +0300 Message-Id: <20210812220420.24118-9-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210812220022.24025-1-mail@muradm.net> References: <20210812220022.24025-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/services/pam-mount.scm (pam-mount-service-type): add greetd PAM service to applicable PAM services --- gnu/services/pam-mount.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/services/pam-mount.scm b/gnu/services/pam-mount.scm index 98611462c2..7b25efeb50 100644 --- a/gnu/services/pam-mount.scm +++ b/gnu/services/pam-mount.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2019 Guillaume Le Vaillant +;;; Copyright © 2021 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -90,7 +91,7 @@ (module #~(string-append #$pam-mount "/lib/security/pam_mount.so")))) (list (lambda (pam) (if (member (pam-service-name pam) - '("login" "su" "slim" "gdm-password")) + '("login" "greetd" "su" "slim" "gdm-password")) (pam-service (inherit pam) (auth (append (pam-service-auth pam) -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 12 18:04:55 2021 Received: (at 49969) by debbugs.gnu.org; 12 Aug 2021 22:04:55 +0000 Received: from localhost ([127.0.0.1]:40052 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mEIoo-0002uv-UY for submit@debbugs.gnu.org; Thu, 12 Aug 2021 18:04:55 -0400 Received: from mail-ed1-f41.google.com ([209.85.208.41]:41670) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mEIok-0002tN-MD for 49969@debbugs.gnu.org; Thu, 12 Aug 2021 18:04:51 -0400 Received: by mail-ed1-f41.google.com with SMTP id n12so12098914edx.8 for <49969@debbugs.gnu.org>; Thu, 12 Aug 2021 15:04:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=V2suJjcVy17tTRnQKeIyUBEEZxZKyYpC1Cq3fO+PSqE=; b=oJkJuZmdBANM4JyHb0aQ/zWm9+6Bqnvb9a+2vEwTDWaxLtQRAz2iGW+VKQUd5lVB1J uYffecLfhEZeROgHx8blGq65EN9sEakks+XZceX31CctApEClHHC54JzgPk0GakoH3iR lxOWGkQ1vJ7IDmnDoDSIqHYmdtz/NKhu2fV4KzJf39T32I3WK0pc10FL3LG+NHsPhHaV 7/mpwcgIVvpJbMbsFhUquKdrUVLoZY76tpDYyuXP1wie4lLnm5+B67nx3IbJEXCbJC5E 6/KE9HYGVGNcV4uoW1cjb7EOvyF/DARdZxz71e6MRIgWbE3wWr7+KBtU/k3k4jf0mvpZ Rryg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=V2suJjcVy17tTRnQKeIyUBEEZxZKyYpC1Cq3fO+PSqE=; b=lozrdvhT5b51lhbDhxKa1zbKKTgA+IHhWBx83cjiRPFLmOdL1F55PViEzyQAZ5d6Ex DASfrsxJpuB6qrrf1cqxvQe2zr6dVTv7kA8AeoRQTvlZHS0ArnPF1XiKCAh1fh1fxuE/ 2QieJFA5jShVgKcAmdoIRRkyzXUR9a5iQj+ZxbSv1r2ne3mADu+UE4RHQnJ8/Ag9kl1R pwTAg+2/zScUc+UQNr0/6T/wErdKzLewnREn+xTheI+mSSGQ9pv2lQ7x3HT6c1Cv5cDy V/gO9psgtlE1/cp9xkMz0biVZogdlh4NvBJvHIA0nHOpQYpg7XGsHa27bCj4Ac1sY2wx 29Xw== X-Gm-Message-State: AOAM533ixNgqFoSVEMUnpTN1crcQ4G3qhR0Q1ygRnLxE2ktYrtBEcTfP CaDxkSDyK2r+waeWy/iASQpQ8xQWyU4RTw== X-Google-Smtp-Source: ABdhPJzDh9FvC9rOS8GLn2EtcPCOTbW+9HHcrvwNuDX4wlQOou9MvYCHHXktCdcPyUBn70CptXnzXA== X-Received: by 2002:aa7:cad9:: with SMTP id l25mr8292300edt.351.1628805884833; Thu, 12 Aug 2021 15:04:44 -0700 (PDT) Received: from localhost.localdomain ([5.24.104.153]) by smtp.gmail.com with ESMTPSA id o23sm1750302eds.75.2021.08.12.15.04.43 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Aug 2021 15:04:44 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v3 09/10] gnu: tests: Add seatd/greetd based minimal desktop system tests Date: Fri, 13 Aug 2021 01:04:19 +0300 Message-Id: <20210812220420.24118-10-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210812220022.24025-1-mail@muradm.net> References: <20210812220022.24025-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/tests/desktop.scm (minimal-desktop): seatd/greetd based minimal desktop --- gnu/tests/desktop.scm | 191 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 190 insertions(+), 1 deletion(-) diff --git a/gnu/tests/desktop.scm b/gnu/tests/desktop.scm index 6aa22fd49b..c57c4a4462 100644 --- a/gnu/tests/desktop.scm +++ b/gnu/tests/desktop.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Ludovic Courtès +;;; Copyright © 2021 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -19,12 +20,15 @@ (define-module (gnu tests desktop) #:use-module (gnu tests) #:use-module (gnu services) + #:use-module (gnu services base) #:use-module (gnu services dbus) #:use-module (gnu services desktop) + #:use-module (gnu system) #:use-module (gnu system vm) #:use-module (guix gexp) #:use-module (srfi srfi-1) - #:export (%test-elogind)) + #:export (%test-elogind + %test-minimal-desktop)) ;;; @@ -103,3 +107,188 @@ #:imported-modules '((gnu services herd) (guix combinators))))) (run-elogind-test (virtual-machine os)))))) + + +;;; +;;; Seatd/greetd based minimal desktop +;;; + +(define %minimal-services + (append + (list + (service seatd-service-type) + (service greetd-service-type + (greetd-configuration + (terminals + (list + (greetd-terminal-configuration (terminal-vt "1")) + (greetd-terminal-configuration (terminal-vt "2")) + (greetd-terminal-configuration (terminal-vt "3")) + (greetd-terminal-configuration (terminal-vt "4")) + (greetd-terminal-configuration (terminal-vt "5")) + (greetd-terminal-configuration (terminal-vt "6"))))))) + (modify-services %base-services + (delete login-service-type) + (delete mingetty-service-type)))) + +(define-syntax-rule (minimal-operating-system user-services ...) + "Return an operating system that includes USER-SERVICES in addition to +minimal %BASE-SERVICES." + (operating-system (inherit %simple-os) + (services (cons* user-services ... %minimal-services)))) + +(define (run-minimal-desktop-test os vm) + (define test + (with-imported-modules '((gnu build marionette) + (guix build syscalls)) + #~(begin + (use-modules (gnu build marionette) + (guix build syscalls) + (srfi srfi-1) + (srfi srfi-64) + (ice-9 pretty-print)) + + (define marionette + (make-marionette #$vm)) + + (define (file-get-all-strings fname) + (marionette-eval '(use-modules (rnrs io ports)) marionette) + (wait-for-file fname marionette #:read 'get-string-all)) + + (define (wait-for-unix-socket-m socket) + (wait-for-unix-socket socket marionette)) + + (mkdir #$output) + (chdir #$output) + + (test-begin "minimal-desktop") + + (test-assert "seatd is ready" + (wait-for-unix-socket-m "/run/seatd.sock")) + + (test-equal "login user on tty1" + "alice\n" + (begin + ;; Wait for tty1. + (marionette-eval + '(begin + (use-modules (gnu services herd)) + (start-service 'term-tty1)) + marionette) + (marionette-control "sendkey ctrl-alt-f1" marionette) + + ;; login as root change alice password and exit + ;; then login as alice + (for-each + (lambda (cmd) (marionette-type cmd marionette) (sleep 1)) + (list + "root\n" + "\n" + "passwd alice\n" + "alice\n" + "alice\n" + "exit\n" + "alice\n" + "alice\n" + "id -un > logged-in\n")) + + (file-get-all-strings "/home/alice/logged-in"))) + + (test-equal "validate user environment" + '("SEATD_SOCK=/run/seatd.sock" + "XDG_RUNTIME_DIR=/run/user/1000" + "XDG_SEAT=seat0" + "XDG_VTNR=1") + + (begin + (marionette-type "env > env\n" marionette) + (sleep 1) + + (define user-env (string-tokenize + (file-get-all-strings "/home/alice/env"))) + + (define (expected-var var) + (any (lambda (s) (string-contains var s)) + '("SEATD_SOCK" + "XDG_RUNTIME_DIR" + "XDG_SEAT" + "XDG_VTNR"))) + + (sort (filter expected-var user-env) string env\n" marionette) + (sleep 1) + + (define (sock-var? var) + (any (lambda (s) (string-contains var s)) + '("SEATD_SOCK" "GREETD_SOCK"))) + + (define (sock-var-sock var) + (car (cdr (string-split var #\=)))) + + (let* + ((out (file-get-all-strings "/home/alice/env")) + (out (string-tokenize out)) + (out (filter sock-var? out)) + (socks (map sock-var-sock out)) + (socks (map wait-for-unix-socket-m socks))) + (and (= 2 (length socks)) (every identity socks))))) + + (test-assert "greetd is ready" + (begin + (marionette-type "ps -C greetd -o pid,args --no-headers > ps-greetd\n" + marionette) + (sleep 1) + + (define (greetd-daemon? cmd) + (string-contains cmd "config")) + + (define (greetd-cmd-to-pid cmd) + (car (string-split cmd #\space))) + + (define (greetd-pid-to-sock pid) + (string-append "/run/greetd-" pid ".sock")) + + (let* ((out (file-get-all-strings "/home/alice/ps-greetd")) + (out (string-split out #\newline)) + (out (map string-trim-both out)) + (out (filter greetd-daemon? out)) + (pids (map greetd-cmd-to-pid out)) + (socks (map greetd-pid-to-sock pids)) + (socks (map wait-for-unix-socket-m socks))) + (every identity socks)))) + + ;; a bit weak, but tests everything at once actually + (test-equal "check /run/user/ mounted and writable" + "alice\n" + (begin + (marionette-type "echo alice > /run/user/1000/test\n" marionette) + (file-get-all-strings "/run/user/1000/test"))) + + (test-assert "screendump" + (begin + (marionette-control (string-append "screendump " #$output + "/tty1.ppm") + marionette) + (file-exists? "tty1.ppm"))) + + (test-end) + (exit (= (test-runner-fail-count (test-runner-current)) 0))))) + + (gexp->derivation "minimal-desktop" test)) + +(define %test-minimal-desktop + (system-test + (name "minimal-desktop") + (description + "Test whether we can log in when seatd and greetd is enabled") + (value + (let* ((os (marionette-operating-system + (minimal-operating-system) + #:imported-modules '((gnu services herd) + (guix combinators)))) + (vm (virtual-machine os))) + (run-minimal-desktop-test (virtualized-operating-system os '()) + #~(list #$vm)))))) -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 12 18:04:55 2021 Received: (at 49969) by debbugs.gnu.org; 12 Aug 2021 22:04:56 +0000 Received: from localhost ([127.0.0.1]:40054 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mEIop-0002v3-Et for submit@debbugs.gnu.org; Thu, 12 Aug 2021 18:04:55 -0400 Received: from mail-ed1-f43.google.com ([209.85.208.43]:37714) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mEIol-0002tR-Tr for 49969@debbugs.gnu.org; Thu, 12 Aug 2021 18:04:52 -0400 Received: by mail-ed1-f43.google.com with SMTP id g21so12144870edb.4 for <49969@debbugs.gnu.org>; Thu, 12 Aug 2021 15:04:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=PhTX7jcScgkGl1cYJiOkS0WUjZf4D6PwHWC4hMrfT+g=; b=k2P8zjxWpiI4661DnLRuw2A/FipVAv8xVZUbLK6Cw1wwPDySLGQNA2/mJAp6T5tTcq WtFoQGWx0P8V6YQ47XJOoDzhPSQ7PwHqNBCBaWYacl+kcqCbrEYE3OWl1mCUbSsYA33R g3B25VCVfRTtJiqfAPc5q4jL9Ha8bNO8s7N9QfZq7da8O7DV/OCLCrqXEdeXryJrP/Jr rYxZutUMLhAvASwZNhVepDoOLkqoPU/y7mXH0OzOMlbgmaq/fcGk5PIpxLJJGyF1LHW9 xGtKdT+3ljPao1LtxtxrzZLf0LhdkS5cBYTPNMxdZWsbatZ0IbVqC8tteJC8oDZt3oRb /2yg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=PhTX7jcScgkGl1cYJiOkS0WUjZf4D6PwHWC4hMrfT+g=; b=k0ITEGPadV3RaFVeSueZh9e9MaTYZOhFydtD9c9NLN3mJLIHHcqEzNotR8uphe5rJt BIFzQtKAJdMdABaM/AoFuu4lSHa1nouUVmGoBq0GoO2a8X65eVE1efm6rg6hZ9BUcBTA z1iHrrBWWZifIfvqg/UxsDCBH+KR9wIgZiD3OSGq0M2k4UuCgoWCsVeHyZus9vbr7KZm rFvUANxerOn3Vg7iIBFDq+HD9l1OE5sma8j9f56Pgxw73NM/ZEb3ThfE+1jIFS8431mG wJKVAWqS4L1slp7thFqUvlpu786rlutb1xLxGkJWxSPwSXGEvTxZz/cSt37Z4RjYCbmK lWLg== X-Gm-Message-State: AOAM532TMZbKaOe0uz4vsa6AZ7bpMq3hbmO24RCyIUhlv2idPjwBdDST B/93KuFmGH/MnInM3fTGGK3H1FgbO//LVA== X-Google-Smtp-Source: ABdhPJx0IjIJYkAtUA9ij+wdw6hhO0meJC1W6bEQoOowFMh2hTLYqYUNUxIaRz2BtxHHYyb2qu8AMA== X-Received: by 2002:a05:6402:2937:: with SMTP id ee55mr709731edb.91.1628805886068; Thu, 12 Aug 2021 15:04:46 -0700 (PDT) Received: from localhost.localdomain ([5.24.104.153]) by smtp.gmail.com with ESMTPSA id o23sm1750302eds.75.2021.08.12.15.04.45 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Aug 2021 15:04:45 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v3 10/10] doc: Add desktop seatd-service-type and greetd-service-type Date: Fri, 13 Aug 2021 01:04:20 +0300 Message-Id: <20210812220420.24118-11-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210812220022.24025-1-mail@muradm.net> References: <20210812220022.24025-1-mail@muradm.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * doc/guix.texi (Desktop Services): Provide documentation for seatd-service-type and greetd-service-type including configuration and sample usage. --- doc/guix.texi | 183 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 183 insertions(+) diff --git a/doc/guix.texi b/doc/guix.texi index 78c1c09858..1e5838ce32 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -94,6 +94,7 @@ Copyright @copyright{} 2021 Xinglu Chen@* Copyright @copyright{} 2021 Raghav Gururajan@* Copyright @copyright{} 2021 Domagoj Stolfa@* Copyright @copyright{} 2021 Hui Lu@* +Copyright @copyright{} 2021 muradm@* Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -19694,6 +19695,188 @@ and ``passwd'' is with the value @code{passwd}. @end table @end deftp +@defvr {Scheme Variable} seatd-service-type +A minimal seat management daemon, and a universal seat management library. + +Seat management takes care of mediating access to shared devices (graphics, +input), without requiring the applications needing access to be root. + +In general should be used as replacement to @code{elogind-service-type}. + +@lisp +(append + (list + ;; make sure seatd is running + (service seatd-service-type) + + (service greetd-service-type + (greetd-configuration + (terminals + (list + ;; lets have terminals 1, 2 and 3 run default XDG terminal session + (greetd-terminal-configuration (terminal-vt "1")) + (greetd-terminal-configuration (terminal-vt "2")) + (greetd-terminal-configuration (terminal-vt "3")) + ;; and terminals 4, 5 and 6 plain bash terminal session + ;; although not so plain, just to illustrate flexibility + (greetd-terminal-configuration + (terminal-vt "4") + (default-session-command greetd-agreety-tty-session)) + (greetd-terminal-configuration + (terminal-vt "5") + (default-session-command greetd-agreety-tty-session)) + (greetd-terminal-configuration + (terminal-vt "6") + (default-session-command greetd-agreety-tty-session)))))) + + ;; normaly one would want %base-services + (modify-services %base-services + ;; seatd/greetd combination can replace these + ;; greetd provides its own PAM service + (delete login-service-type) + (delete mingetty-service-type))) + +@end lisp + +@end defvr + +@deftp {Data Type} seatd-configuration +Configuration record for the seatd daemon service. + +@table @asis +@item @code{seatd} (default: @code{seatd}) +The seatd package to use. + +@item @code{user} (default: @samp{"root"}) +User to own the seatd socket. + +@item @code{group} (default: @samp{"users"}) +Group to own the seatd socket. + +@item @code{socket} (default: @samp{"/run/seatd.sock"}) +Where to create the seatd socket. + +@item @code{loglevel} (default: @samp{"error"}) +Log level to output logs. Possible values: @samp{"silent"}, @samp{"error"}, +@samp{"info"} and @samp{"debug"}. + +@end table +@end deftp + +@defvr {Scheme Variable} greetd-service-type +greetd is a minimal and flexible login manager daemon that makes no +assumptions about what you want to launch. + +If you can run it from your shell in a TTY, greetd can start it. If it +can be taught to speak a simple JSON-based IPC protocol, then it can +be a greeter. + +@code{} provides necessary infrastructure for +logging in users, including: + +@itemize @bullet +@item +@code{greetd} PAM service + +@item +Special variation of @code{pam-mount} to mount @code{XDG_RUNTIME_DIR} + +@end itemize + +@end defvr + +@deftp {Data Type} greetd-configuration +Configuration record for the greetd service. + +@table @asis +@item @code{motd} +A file-like object containing the ``message of the day''. + +@item @code{allow-empty-passwords?} (default: @code{#t}) +Allow empty passwords by default so that first-time users can log in when +the 'root' account has just been created. + +@item @code{terminals} (default: @code{'()}) +List of @code{} per terminal for which +@code{greetd} should be started. + +@end table +@end deftp + +@deftp {Data Type} greetd-terminal-configuration +Configuration record for per terminal greetd daemon service. + +@table @asis +@item @code{greetd} (default: @code{greetd}) +The greetd package to use. + +@item @code{config-file-name} +Configuration file name to use for greetd daemon. Generally, autogenerated +derivation based on @code{terminal-vt} value. + +@item @code{terminal-vt} (default: @samp{"7"}) +The VT to run on. Use of a specific VT with appropriate conflict avoidance +is recommended. + +@item @code{default-session-user} (default: @samp{"greeter"}) +The user to use for running the greeter. + +@item @code{default-session-command} (default: @code{greetd-agreety-tty-xdg-session}) +The command-line to run to start the default session. + +Possible values are: + +@itemize @bullet +@item +@code{greetd-agreety-tty-session} - bash terminal session + +@item +@code{greetd-agreety-tty-xdg-session} - bash terminal session with XDG environment + +@item +@code{greetd-agreety-session} - custom instance of terminal session +@end itemize + +@end table +@end deftp + +@deftp {Data Type} greetd-agreety-session +Configuration record for the agreety greetd greeter. + +@table @asis +@item @code{package} (default: @code{bash}) +The package of command. + +@item @code{command-bin} (default: @samp{"/bin/bash"}) +Path to binary relative to @code{package}. + +@item @code{command-args} (default: @code{'("-l")}) +Command arguments to pass to command. + +@item @code{extra-env} (default: @code{'()}) +Extra environment variables to set on login. + +@item @code{command-generator} +Function that receives instance of this configuration as an argument and +returns @code{program-file} that can be used with @code{agreety} greeter. + +Both @code{greetd-agreety-tty-session} and @code{greetd-agreety-tty-xdg-session} +uses @code{greetd-agreety-session} under the hood. + +@end table +@end deftp + +@defvr {Scheme Variable} greetd-agreety-tty-session +Provides instance of @code{greetd-agreety-session} which starts @samp{"bash -l"} +on login. +@end defvr + +@defvr {Scheme Variable} greetd-agreety-tty-xdg-session +Provides instance of @code{greetd-agreety-session} which starts @samp{"bash -l"} +on login. Additionally, will set @code{XDG_SESSION_TYPE} and +@code{XDG_RUNTIME_DIR} environment variables for session. +@end defvr + @node Sound Services @subsection Sound Services -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 12 18:05:03 2021 Received: (at 49969) by debbugs.gnu.org; 12 Aug 2021 22:05:04 +0000 Received: from localhost ([127.0.0.1]:40058 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mEIox-0002vn-0d for submit@debbugs.gnu.org; Thu, 12 Aug 2021 18:05:03 -0400 Received: from mail-ej1-f52.google.com ([209.85.218.52]:41616) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mEIog-0002tC-Rb for 49969@debbugs.gnu.org; Thu, 12 Aug 2021 18:05:01 -0400 Received: by mail-ej1-f52.google.com with SMTP id d11so14464030eja.8 for <49969@debbugs.gnu.org>; Thu, 12 Aug 2021 15:04:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=2Zn/3A00/43wl0uo5PNfKqQ3QKrkErw0e6iG1A0CZ7w=; b=ZxdxgQYOho5+INrSBZIF31ZjQO+OFsJUCdkcdCS+3tf1anx53LSsNM44pyQEZfVk9x Pzvog2ErPFskFEL2qdowVersnx/rfAmZghGiml8WYT2ZFWkJgNjOJukyPMFML9uWZ2Kb F/Jv7A7SPm3aXAHwETB579YAUnLBn4kKmaxx5k+thPquOuC/th4ZxLwZcXNSZSwakxb2 ZA9PDyW9f5wusMKFV2XA73GEinAAkffDUZYI1VkNnbmocdq0XyA209gl4xtxvV7ldws6 FAMdCnkKKEFYE2p9V6H7oJ5tqgR086cAdTjTpcbxrswWvDl0MrMplMPd2WfB5cAxpKnD aL9w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=2Zn/3A00/43wl0uo5PNfKqQ3QKrkErw0e6iG1A0CZ7w=; b=AuwbkkJm3OD0S3mW4l6tUmkcFnVAGbcIU9ZBgl55wsEY6OQl8/hSb9cUiFmMEOtPcT A7PrHoMJ3F+HkuacHwozKeEhsImE0XVVmbl3xThU6Y33n+xB/2wI5yOlCNz/tSPrp/BZ TeM125s8Sm2KPYaggrAF1ViSKaUf1rzed0V7ZgHiUkm+dgrJ8yFrBn+yV8ycv5qP+uXx pLom1sWqT7ePkWBQdBVspEe/3pjngA2IBjYH22nWaI8PXw11na5EHusmYqczjQPDgEW+ mmz02S4QYOhlQhDqaYSkrtPaCTMcj2JxGx6qRyJlLiJoG9zjBLkwh4wZH0Tw9lHhy3lB xmsQ== X-Gm-Message-State: AOAM530qqaY+NpXgveAc4QAPrPOB9YLc0ghycX25Nbkh0vdIRBbt/OQ2 Zz/spmlhfZg222kAmDoI5y/irqYrBn+LIw== X-Google-Smtp-Source: ABdhPJxltSnyafH72NHutIm7KxWkHGS7RAH60U/kAPCRar+VfZ4O17FUcTSj1rj7Qdjbsf8aHq+n/g== X-Received: by 2002:a17:906:3812:: with SMTP id v18mr5696133ejc.399.1628805880976; Thu, 12 Aug 2021 15:04:40 -0700 (PDT) Received: from localhost.localdomain ([5.24.104.153]) by smtp.gmail.com with ESMTPSA id o23sm1750302eds.75.2021.08.12.15.04.39 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Aug 2021 15:04:40 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v3 06/10] gnu: desktop: Add greetd-service-type Date: Fri, 13 Aug 2021 01:04:16 +0300 Message-Id: <20210812220420.24118-7-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210812220022.24025-1-mail@muradm.net> References: <20210812220022.24025-1-mail@muradm.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Currently, only agreety configuration is provided. * gnu/services/desktop.scm: Add greetd-service-type --- gnu/services/desktop.scm | 225 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 225 insertions(+) diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index a63a2936a7..b7ac08cf20 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -49,6 +49,7 @@ #:use-module (gnu system pam) #:use-module (gnu packages glib) #:use-module (gnu packages admin) + #:use-module (gnu packages bash) #:use-module (gnu packages cups) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gnome) @@ -160,6 +161,12 @@ seatd-configuration seatd-service-type + greetd-configuration + greetd-terminal-configuration + greetd-service-type + greetd-agreety-tty-session + greetd-agreety-tty-xdg-session + %desktop-services)) ;;; Commentary: @@ -1240,6 +1247,224 @@ applications needing access to be root.") (service-extension shepherd-root-service-type seatd-shepherd-service))) (default-value (seatd-configuration)))) + +;;; +;;; greetd-service-type -- minimal and flexible login manager daemon +;;; + +(define-record-type* + greetd-agreety-session make-greetd-agreety-session + greetd-agreety-session? + (package greetd-agreety-command-package (default bash)) + (command-bin greetd-agreety-command-bin (default "/bin/bash")) + (command-args greetd-agreety-command-args (default '("-l"))) + (extra-env greetd-agreety-extra-env (default '())) + (command-generator greetd-agreety-command-generator)) + +(define greetd-agreety-tty-session-command + (match-lambda + (($ pkg command-bin command-args extra-env) + (program-file + "agreety-tty-session-command" + #~(begin + (use-modules (ice-9 match)) + (let* ((abs-cmd-bin #$(file-append pkg command-bin))) + (for-each + (match-lambda ((var . val) (setenv var val))) + (quote (#$@extra-env))) + (apply execl abs-cmd-bin abs-cmd-bin + (list #$@command-args)))))))) + +(define greetd-agreety-tty-xdg-session-command + (match-lambda + (($ package command-bin command-args extra-env) + (program-file + "agreety-tty-xdg-session-command" + #~(begin + (use-modules (ice-9 match)) + (let* + ((username (getenv "USER")) + (useruid (passwd:uid (getpwuid username))) + (useruid (number->string useruid)) + (abs-cmd-bin #$(file-append package command-bin))) + (setenv "XDG_SESSION_TYPE" "tty") + (setenv "XDG_RUNTIME_DIR" (string-append "/run/user/" useruid)) + (for-each + (match-lambda ((var . val) (setenv var val))) + (quote (#$@extra-env))) + (apply execl abs-cmd-bin abs-cmd-bin + (list #$@command-args)))))))) + +(define greetd-agreety-tty-session + (greetd-agreety-session + (command-generator greetd-agreety-tty-session-command))) + +(define greetd-agreety-tty-xdg-session + (greetd-agreety-session + (command-generator greetd-agreety-tty-xdg-session-command))) + +(define-record-type* + greetd-terminal-configuration make-greetd-terminal-configuration + greetd-terminal-configuration? + (greetd greetd-package (default greetd)) + (config-file-name greetd-config-file-name (thunked) + (default (default-config-file-name this-record))) + (terminal-vt greetd-terminal-vt (default "7")) + (default-session-user greetd-default-session-user (default "greeter")) + (default-session-command greetd-default-session-command + (default greetd-agreety-tty-xdg-session))) + +(define (default-config-file-name config) + (string-join (list "config-" (greetd-terminal-vt config) ".toml") "")) + +(define make-greetd-terminal-default-session-command + (match-lambda + (($ greetd _ _ _ default-session-command) + (cond ((greetd-agreety-session? default-session-command) + (let* + ((generator (greetd-agreety-command-generator + default-session-command)) + (command (apply generator (list default-session-command))) + (agreety-bin (file-append greetd "/bin/agreety"))) + (program-file + "agreety-command" + #~(execl #$agreety-bin #$agreety-bin "-c" #$command)))) + (else (program-file "agreety-command-exit" #~(exit #f))))))) + +(define (make-greetd-terminal-configuration-file config) + (let* + ((config-file-name (greetd-config-file-name config)) + (terminal-vt (greetd-terminal-vt config)) + (default-session-user (greetd-default-session-user config)) + (default-session-command (make-greetd-terminal-default-session-command config))) + (mixed-text-file + config-file-name + "[terminal]\n" + "vt = " terminal-vt "\n" + "[default_session]\n" + "user = " default-session-user "\n" + "command = " default-session-command "\n"))) + +(define %default-motd + (plain-file "motd" "This is the GNU operating system, welcome!\n\n")) + +(define %greetd-accounts + (list (user-account + (name "greeter") + (group "wheel") + (supplementary-groups '("users" "tty" "input" "video" "audio")) + (system? #t)))) + +(define %greetd-file-systems + (list (file-system + (device "none") + (mount-point "/run/greetd/pam_mount") + (type "tmpfs") + (check? #f) + (flags '(no-suid no-dev no-exec)) + (options "mode=0755") + (create-mount-point? #t)))) + +(define %greetd-pam-mount-rules + `((debug (@ (enable "0"))) + (volume (@ (sgrp "users") + (fstype "tmpfs") + (mountpoint "/run/user/%(USERUID)") + (options "noexec,nosuid,nodev,size=1g,mode=0700,uid=%(USERUID),gid=%(USERGID)"))) + (logout (@ (wait "0") + (hup "0") + (term "yes") + (kill "no"))) + (mkmountpoint (@ (enable "1") (remove "true"))))) + +(define-record-type* + greetd-configuration make-greetd-configuration + greetd-configuration? + (motd greetd-motd (default %default-motd)) + (allow-empty-passwords? greetd-allow-empty-passwords? (default #t)) + (terminals greetd-terminals (default '()))) + +(define (make-greetd-pam-mount-conf-file config) + (computed-file + "greetd_pam_mount.conf.xml" + #~(begin + (use-modules (sxml simple)) + (call-with-output-file #$output + (lambda (port) + (sxml->xml + '(*TOP* + (*PI* xml "version='1.0' encoding='utf-8'") + (pam_mount + #$@%greetd-pam-mount-rules + (pmvarrun + #$(file-append greetd-pam-mount + "/sbin/pmvarrun -u '%(USER)' -o '%(OPERATION)'")))) + port)))))) + +(define (greetd-etc-service config) + `(("security/greetd_pam_mount.conf.xml" + ,(make-greetd-pam-mount-conf-file config)))) + +(define (greetd-pam-service config) + (define optional-pam-mount + (pam-entry + (control "optional") + (module #~(string-append #$greetd-pam-mount "/lib/security/pam_mount.so")))) + + (list + (unix-pam-service "greetd" + #:login-uid? #t + #:allow-empty-passwords? + (greetd-allow-empty-passwords? config) + #:motd + (greetd-motd config)) + (lambda (pam) + (if (member (pam-service-name pam) + '("login" "greetd" "su" "slim" "gdm-password")) + (pam-service + (inherit pam) + (auth (append (pam-service-auth pam) + (list optional-pam-mount))) + (session (append (pam-service-session pam) + (list optional-pam-mount)))) + pam)))) + +(define (greetd-shepherd-services config) + (map + (lambda (tc) + (let* + ((greetd-bin (file-append (greetd-package tc) "/sbin/greetd")) + (greetd-conf (make-greetd-terminal-configuration-file tc)) + (greetd-vt (greetd-terminal-vt tc))) + (shepherd-service + (documentation "Minimal and flexible login manager daemon") + (requirement '(user-processes host-name udev virtual-terminal)) + (provision (list (symbol-append + 'term-tty + (string->symbol (greetd-terminal-vt tc))))) + (start #~(make-forkexec-constructor + (list #$greetd-bin "-c" #$greetd-conf) + #:log-file + (string-append "/tmp/greetd." #$greetd-vt ".log"))) + (stop #~(make-kill-destructor))))) + (greetd-terminals config))) + +(define greetd-service-type + (service-type + (name 'greetd) + (description "Provides necessary infrastructure for logging into the +system including @code{greetd} PAM service, @code{pam-mount} module to +mount/unmount /run/user/ directory for user and @code{greetd} +login manager daemon.") + (extensions + (list + (service-extension account-service-type (const %greetd-accounts)) + (service-extension file-system-service-type (const %greetd-file-systems)) + (service-extension etc-service-type greetd-etc-service) + (service-extension pam-root-service-type greetd-pam-service) + (service-extension shepherd-root-service-type greetd-shepherd-services))) + (default-value (greetd-configuration)))) + ;;; ;;; The default set of desktop services. -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Fri Aug 13 16:43:43 2021 Received: (at 49969) by debbugs.gnu.org; 13 Aug 2021 20:43:43 +0000 Received: from localhost ([127.0.0.1]:43128 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mEe1h-00058b-Sp for submit@debbugs.gnu.org; Fri, 13 Aug 2021 16:43:43 -0400 Received: from mail-wr1-f49.google.com ([209.85.221.49]:42551) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mEe1e-000587-MI for 49969@debbugs.gnu.org; Fri, 13 Aug 2021 16:43:36 -0400 Received: by mail-wr1-f49.google.com with SMTP id q11so14863821wrr.9 for <49969@debbugs.gnu.org>; Fri, 13 Aug 2021 13:43:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=3V8DMCKbRSqdR3wtMv+7Ro3Vrt3PCoHfrpfXzhJ1GgI=; b=QpI0nyxz6PIH3LH+RIkmAGe9aTE10YTrUHFacM29afpzyBrh0arRIghOXV4cVoTDjF luCmo+k4Ab6J26Xi29dhuDml3lLTAXX/6juAInE/Z8hXn565l899OIggEA4ZkKF8gWgh xCeyQL98YpYrRHW1eoK/X0PKsZyGS2N0FZM6RMtTYww4EQ7n8XjzwEVLbDCCpxFeads/ mphzKn9WksP5u8orwWH0ENtN1oIu1F8ji1C5Twnpsa0byI8h/kA3rO4gWUsM+z2WAkma +oFr4S8+/NbvTsoCG8wa8ET/rW6krm0zf1OohPntYEBX35zeRAvOL2bkWHtGrc/+vH3N WutA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=3V8DMCKbRSqdR3wtMv+7Ro3Vrt3PCoHfrpfXzhJ1GgI=; b=mN/1XpbCDXDBTuu2RcQFlHOvvD7C2LsdHdD2c74Wlrs/AX3xDUYMcDpjZaLgOuYdnT O7jZjQ5VSDoM4gXS+T+Hvc8oTpH6HImtfwalMUyK60/o6AMeWqb9skXLH+v8II4gn+bt H6YpTm5J1GWBc33mD8rMDwTBxEPmpzd7AssyWsw27SZ/BoYwSTJ0aVYUvAuEhqralfPL D5Qfn+SFg6Z62mkgJPpjhEK/p53ncZ7ufgYSvSXAgvPbXxbiGdzTLhEpl7XkedYEq/R/ 7sDwh1ZgaldyeOutL9w/BwGRUFv17tLkgbGLiNPkEggCQhClEyOgwjxD+zpeBOOKJjYq 04zg== X-Gm-Message-State: AOAM531QT5d1AWbUm8cemtt9X9e/KuFTFmg61t67Uxkx/eMqN33eVXQ+ KNVn5QmED/FiFfLWWaiDAmwRbXzTIjl5JQ== X-Google-Smtp-Source: ABdhPJyceTXnMdQCDuPV5AdcPkOxcR/9KsVyp6ELI0nYSfeQSfVI3dr8MmZ7L8S/axbhapVHD3wwuw== X-Received: by 2002:a05:6000:2c3:: with SMTP id o3mr5136163wry.133.1628887408472; Fri, 13 Aug 2021 13:43:28 -0700 (PDT) Received: from localhost.localdomain ([5.24.113.45]) by smtp.gmail.com with ESMTPSA id p14sm2380187wmi.42.2021.08.13.13.43.27 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 13 Aug 2021 13:43:27 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v3 03/10] gnu: freedesktop: Add greetd 0.7.0 Date: Fri, 13 Aug 2021 23:43:21 +0300 Message-Id: <20210813204321.2111-1-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210812220022.24025-1-mail@muradm.net> References: <20210812220022.24025-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/freedesktop.scm (greetd): Add greetd 0.7.0 --- gnu/packages/freedesktop.scm | 86 ++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 693a79c738..0be7d0fe4d 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -24,6 +24,7 @@ ;;; Copyright © 2020 Raghav Gururajan ;;; Copyright © 2021 Brendan Tildesley ;;; Copyright © 2021 pineapples +;;; Copyright © 2021 muradm ;;; ;;; 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,89 @@ 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) + (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)))))))) + (native-inputs + `(("linux-pam" ,linux-pam) + ("scdoc" ,scdoc))) + (synopsis "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. + +If you can run it from your shell in a TTY, greetd can start it. + +If it can be taught to speak a simple JSON-based IPC protocol, +then it can be a greeter.") + (license license:gpl3+))) + (define-public packagekit (package (name "packagekit") -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 19 10:31:56 2021 Received: (at 49969) by debbugs.gnu.org; 19 Aug 2021 14:31:56 +0000 Received: from localhost ([127.0.0.1]:60519 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mGj5H-0007xs-TT for submit@debbugs.gnu.org; Thu, 19 Aug 2021 10:31:56 -0400 Received: from mail-ej1-f45.google.com ([209.85.218.45]:37858) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mGj5A-0007mN-LX for 49969@debbugs.gnu.org; Thu, 19 Aug 2021 10:31:49 -0400 Received: by mail-ej1-f45.google.com with SMTP id h9so13390396ejs.4 for <49969@debbugs.gnu.org>; Thu, 19 Aug 2021 07:31:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=qK7l6DtJppdkfMIjcx1nu8JZfRFfqW4TL5Sw7SwXMx8=; b=fF+EEgzz5sb5biAcMOj34lbspkzOMzIwtDsF8Z6LwF6qCotKQN+KguKFY+GGPUA+pY 3ahPPjJO/lkfVrWrb5cHbm+9Lp8Zl5ahFACRWWJDNOzof8leY5spvEFIxT1kTtSrnSMd 8TOCPCycFKiSl0hEXHkQP/bAlfMB8jX17bic4hYNEKMn+7eAHCBTKDD+AvMLMzc+SDbn IKLhieJSf3/zIIO4KN5v6uztrFdMttSfkEqw6qJQk+Ian6wsHlMSdMieNsjNt/rH56JM V3VfIR2lN4lxH5Pjta4pLbmitXK5f37Z7m2aLePnt5hpMQGwuQOpEiajHJ8npftfPijJ aL5g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=qK7l6DtJppdkfMIjcx1nu8JZfRFfqW4TL5Sw7SwXMx8=; b=gpRQslllAYAMw9phuRtFgpRobbdSSwP7JNCWZwuxZSwe9X4CCgyUguS/5/pHZH/qEx P+RV83o5AAadykhwgv6x8hnMd4V8RTHluK4HRv57WEr1wC4wbO97IOjUssvKYpWipW0G hp4qS9f6/St4CfEonC+kQD9TyUfOjCfSeJBuFjY2yomjl1Kyd2Pq9VMgGO7VqDYD1gyl N0CiKlz+WfXhJG9wBL4nBRiNTEuEOW8lpcuDMnr4EpJxJPh1cB/lPT3iLVnsop7z6g36 wveb61iJhY/f7Z/uUCgVrSa7e5yzDKEZFO1YfMICekUIsh6Vvi56WmuP4gTGjbCk0sa1 5/7g== X-Gm-Message-State: AOAM530XekC9gHUTsvx8KTm0i1KdbPOMbf8cCr3Ttkj4tzr1XKrCZvkz PvRawDtAKThzoeNyNX+A6IlqTBqMmvKb6Q== X-Google-Smtp-Source: ABdhPJx4dxIqsemaB4Kjyt7Afeacwsr4CtMDpADnPPCFBF0/GOGQlj4Q1sti90D7AUW/Owl4/lorqw== X-Received: by 2002:a17:907:b09:: with SMTP id h9mr16280620ejl.278.1629383502406; Thu, 19 Aug 2021 07:31:42 -0700 (PDT) Received: from localhost.localdomain ([188.58.13.35]) by smtp.gmail.com with ESMTPSA id s3sm1379449ejm.49.2021.08.19.07.31.40 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Aug 2021 07:31:41 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v4 00/10] gnu: desktop: Add seatd-service-type and greetd-service-type Date: Thu, 19 Aug 2021 17:31:33 +0300 Message-Id: <20210819143133.6398-1-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210812220420.24118-1-mail@muradm.net> References: <20210812220420.24118-1-mail@muradm.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) This patch series introduces two new services; - seatd-service-type: simple seat management daemon - greetd-service-type: simple login daemon Both services are very minimalistic in nature. Simple seatd daemon could be said as replacement for elogind-service-type. greetd daemon is simple replacement for mingetty. In addition to the base services, special build of pam-mount module is included as greetd-pam-mount. It is used to provide auto-(mounting/unmounting) of XDG_RUNTIME_DIR. Special build is required to avoid interference with default pam-mount, if used in the system. greetd provides agreety terminal greeter out of the box. Current greetd-service-type includes configuration for greetd-agreety-session variations, i.e. only terminal are supported at the moment. Next step would be adding gtkgreet and/or wlgreet alternatives for graphical greeter. muradm (10): gnu: crates-io: Add rust-enquote 1.0.3 gnu: crates-io: Add rust-pam-sys 0.5.6 gnu: freedesktop: Add greetd 0.7.0 gnu: admin: Add greetd-pam-mount gnu: desktop: Add seatd-service-type gnu: desktop: Add greetd-service-type gnu: base: Add greetd to applied PAM services gnu: pam-mount: Add greetd to applied PAM services gnu: tests: Add seatd/greetd based minimal desktop system tests doc: Add desktop seatd-service-type and greetd-service-type doc/guix.texi | 187 +++++++++++++++++++++++ gnu/packages/admin.scm | 33 ++++ gnu/packages/crates-io.scm | 49 ++++++ gnu/packages/freedesktop.scm | 120 +++++++++++++++ gnu/services/base.scm | 3 +- gnu/services/desktop.scm | 288 ++++++++++++++++++++++++++++++++++- gnu/services/pam-mount.scm | 3 +- gnu/tests/desktop.scm | 191 ++++++++++++++++++++++- 8 files changed, 870 insertions(+), 4 deletions(-) -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 19 10:39:23 2021 Received: (at 49969) by debbugs.gnu.org; 19 Aug 2021 14:39:23 +0000 Received: from localhost ([127.0.0.1]:60543 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mGjCV-0000I0-0V for submit@debbugs.gnu.org; Thu, 19 Aug 2021 10:39:23 -0400 Received: from mail-ej1-f42.google.com ([209.85.218.42]:44981) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mGjCT-0000Hf-Vm for 49969@debbugs.gnu.org; Thu, 19 Aug 2021 10:39:22 -0400 Received: by mail-ej1-f42.google.com with SMTP id bq25so13357247ejb.11 for <49969@debbugs.gnu.org>; Thu, 19 Aug 2021 07:39:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=5UKAphfDxOzm3bwyBiHJxbodPH6X2Jnn4XQw6tMBdHI=; b=0f5sMz4i/L8KznZCIj/O3euEtweM6g59UGWh83FRnLz9tZh/1B8X85fUQXAL4fHbAz UtAQ2EZ4QKQZG4qk3GzSuF3Vv8AzmC5/iuOT8koha3f/mvZ0N3yEuvJb58YvoxI0zN9i r4ONudzkGjLFmMlgP6cBcM4eFi6NybZg1FV2TVho/OvutpOUNwtFVeZN7NV7iO3N37pG De+4IlaIMZbM238PPaFZEb6Ezw7jyQKhIG1dtQu8KpYDW8QwAQSiNH547fDpuF27zT7K ICjF1xCZBCj4gRPWFwOROCn3YTpzoxS0EhJpS+JZ290hkELM3gywCERZtU2VfMUTEDEr PRKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=5UKAphfDxOzm3bwyBiHJxbodPH6X2Jnn4XQw6tMBdHI=; b=ayWDj2PErlOh93IENQ9qAD04r18TwkL/5FW9piToXDQsnUIHeCDnc6DMzQaoi1pAJw wruz2QT6naTExIHQlsM7/74AWhbItzxEvDQP7QvPFvqtwnDvw0AUQwNDhzudQRehKfnQ wbcrjHogqb9x8Rxh3R2N5mXT2rU3zzIvJy1zgYDDv8N/WYowme9Ln8Jyx8icS3MxIdky fwYgczI1WPwyj6rdxAAalzVsFbmqjxNVMCJnO2Ms79oHSST2zdOIHcGxKadDET5pVMSc +MJujZrYvfNhLrDb5fj0WJyowYeI2/umODoCjADtdNF76IpItPBu3lzHS025+8uNEzGp IOvA== X-Gm-Message-State: AOAM530JI103n9OJO8LFQP45FOsyzeeWOrmWI0r43eg9dn4fEFL802TF 0RvNLbXl7lmpx/4Pm2n5x58+1goSXvAUSA== X-Google-Smtp-Source: ABdhPJzsthxjmjgz9buYvI3eFWwK5zbbhXjM7W01aipcAy3CocU4EAYJDCw4KjOXouT4ALyuFWlpMQ== X-Received: by 2002:a17:906:7d83:: with SMTP id v3mr16161766ejo.216.1629383956165; Thu, 19 Aug 2021 07:39:16 -0700 (PDT) Received: from localhost.localdomain ([188.58.13.35]) by smtp.gmail.com with ESMTPSA id b8sm1825954edv.96.2021.08.19.07.39.15 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Aug 2021 07:39:15 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v4 02/10] gnu: crates-io: Add rust-pam-sys 0.5.6 Date: Thu, 19 Aug 2021 17:38:58 +0300 Message-Id: <20210819143906.6705-2-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210819143133.6398-1-mail@muradm.net> References: <20210819143133.6398-1-mail@muradm.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/crates-io.scm (rust-pam-sys): Add rust-pam-sys 0.5.6 --- gnu/packages/crates-io.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 6484d4c4fc..d91417d76f 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -55,6 +55,7 @@ #:use-module (gnu packages glib) #:use-module (gnu packages image) #:use-module (gnu packages jemalloc) + #:use-module (gnu packages linux) #:use-module (gnu packages llvm) #:use-module (gnu packages multiprecision) #:use-module (gnu packages nettle) @@ -56994,3 +56995,29 @@ variant of this library is available separately as @code{im}.") (description "A Rust library quotes, unquotes, and unescapes strings") (license license:unlicense))) + +(define-public rust-pam-sys-0.5.6 + (package + (name "rust-pam-sys") + (version "0.5.6") + (home-page "https://github.com/1wilkens/pam-sys") + (source + (origin + (method url-fetch) + (uri (crate-uri "pam-sys" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0d14501d5vybjnzxfjf96321xa5wa36x1xvf02h02zq938qmhj6d")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-libc" ,rust-libc-0.2)))) + (native-inputs + `(("linux-pam" ,linux-pam))) + (synopsis + "Rust FFI wrappers for the Linux Pluggable Authentication Modules (PAM)") + (description + "Rust FFI wrappers for the Linux Pluggable Authentication Modules (PAM)") + (license (list license:expat license:asl2.0)))) -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 19 10:39:27 2021 Received: (at 49969) by debbugs.gnu.org; 19 Aug 2021 14:39:27 +0000 Received: from localhost ([127.0.0.1]:60548 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mGjCZ-0000IU-7b for submit@debbugs.gnu.org; Thu, 19 Aug 2021 10:39:27 -0400 Received: from mail-ej1-f42.google.com ([209.85.218.42]:38871) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mGjCT-0000Hd-JU for 49969@debbugs.gnu.org; Thu, 19 Aug 2021 10:39:22 -0400 Received: by mail-ej1-f42.google.com with SMTP id z20so13409667ejf.5 for <49969@debbugs.gnu.org>; Thu, 19 Aug 2021 07:39:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=hVMJiMZrCDmRRBKI4Op5PPeRX5HGfsylxhPwiGBmOYw=; b=BZUivYRP7XnCzVUAlUo6pQlueqIpdSRhk0yczjQK8noAD3sXtrCdcO5tTQKgE/ZTTh z/eI8Y1C97ZKE2a9g4bRYiCBPuSTYcY03Ae0BbPduk7TQ8Orlbh5IROEa7DEoFo3W98Q 0WneWkFcUNJ42mJKaaZQYzu8I2FK8OQOub0GhwhrQLYX20IfVQQpoyMrUVSPSVrfcZ/l +y3eGBkurY7nNoV6ZarPjusI9Lkj0UjWrNs4rxmiwrvq8atEh6c9kE2qTYTelzdGDh+v Md5t90THY4wfhUxl7qj0O7Gk/ELPGcKHbICarH8Wu2cLhnBhZ9iRgDE8UBAS9U1Z+vlM KA+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=hVMJiMZrCDmRRBKI4Op5PPeRX5HGfsylxhPwiGBmOYw=; b=L99ytuIvwCZ9rHhUVNP98hHasDwYaeJDD/R5vJsfoIvCWaks4d6g3R6UWyvyYyrLfh s2kq22UDRNOUFTwI+OWmFXTbbcnEPXApAee4g+dGGZODg2ItgaS7xkft7ZCPq1kkdOu1 doo98Mylo18M7mYVLFiXyQiAsKXFakxoGYzmCnipTp7/ab16KdfsW0UW8iLjrOYQQ81w WO9XyKVa9HYuZQzBcETBcoV2DEZlAeOuxV9/gtzRdZ1bX4aPldCOEf2Rb9d9jONmcdQ3 aM0dz3ijfy6fVtAvKmhTJU6svR+dRUke8DCMWbYK2xC3KsWPKwq25XO7mbW+Mt3xSCGY 5UgA== X-Gm-Message-State: AOAM530m0p3PmRgRZTHaOsDlOf1ij9eMuJVMdlTPEVXxjpv+l/9DAOlB XubhVze+Tg5SrdTa6+Ruhfh0RupLAV8gIA== X-Google-Smtp-Source: ABdhPJxfwqMdR+58xpnmqotConpPozyGHxEaYKwfYb0ldBi9A1JfJuvOohnIEIbQ+1GdwNyPxNQUEA== X-Received: by 2002:a17:907:c11:: with SMTP id ga17mr15552290ejc.298.1629383954893; Thu, 19 Aug 2021 07:39:14 -0700 (PDT) Received: from localhost.localdomain ([188.58.13.35]) by smtp.gmail.com with ESMTPSA id b8sm1825954edv.96.2021.08.19.07.39.13 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Aug 2021 07:39:14 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v4 01/10] gnu: crates-io: Add rust-enquote 1.0.3 Date: Thu, 19 Aug 2021 17:38:57 +0300 Message-Id: <20210819143906.6705-1-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210819143133.6398-1-mail@muradm.net> References: <20210819143133.6398-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/crates-io.scm (rust-enquote-1): Add rust-enquote 1.0.3 --- gnu/packages/crates-io.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 24cc772ba7..6484d4c4fc 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -18,6 +18,7 @@ ;;; Copyright © 2021 Antero Mejr ;;; Copyright © 2021 Maxim Cournoyer ;;; Copyright © 2021 Vinicius Monego +;;; Copyright © 2021 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -56972,3 +56973,24 @@ variant of this library is available separately as @code{im}.") (description "Generate Rust register maps (`struct`s) from SVD files") (license (list license:expat license:asl2.0)))) + +(define-public rust-enquote-1 + (package + (name "rust-enquote") + (version "1.0.3") + (home-page "https://github.com/reujab/enquote") + (source + (origin + (method url-fetch) + (uri (crate-uri "enquote" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0vm687r2wwgc3d3l2iqhag9wgkql6k93sdvjxvmfkdpksajpij1f")))) + (build-system cargo-build-system) + (synopsis + "A Rust library quotes, unquotes, and unescapes strings") + (description + "A Rust library quotes, unquotes, and unescapes strings") + (license license:unlicense))) -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 19 10:39:32 2021 Received: (at 49969) by debbugs.gnu.org; 19 Aug 2021 14:39:33 +0000 Received: from localhost ([127.0.0.1]:60551 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mGjCZ-0000IW-Ft for submit@debbugs.gnu.org; Thu, 19 Aug 2021 10:39:32 -0400 Received: from mail-ej1-f44.google.com ([209.85.218.44]:37782) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mGjCV-0000Hh-8j for 49969@debbugs.gnu.org; Thu, 19 Aug 2021 10:39:25 -0400 Received: by mail-ej1-f44.google.com with SMTP id h9so13442173ejs.4 for <49969@debbugs.gnu.org>; Thu, 19 Aug 2021 07:39:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=iKIEPRgsK/zmp47VzGKwZKvsHQHZQ4+FxLcUWNU5T9A=; b=1mz/agn36BSOP3irCIwVLa5y2/CpPJGYmWH5eGJ+iQduMhAqhl+GtnA9b4dH5+v8pS DN3gQTaXK1cGFb6bKrLgwwsDXzDgSLSV7+yj/xhTQsF+EnI5jmTWoEpMuMDMwIZYctqD BHbNL7LaGYX4uvNBF611h3zWQeesq4BlwHyIONjCPYPI4XlPn5fmyTRJxvmDYLTXFsbM medscKoenQxy4U8SJZYI1V+glWFyGJO4+T+HvCNXUabp3M1gdyDDv47pDwJlwR+8v+9+ 3eL5ku/lXL77kNAkTdCLRDc4Ov33MUeXYambAsTpwBbrHoRriinD3jHJbfCSJqiGxIAe +0ew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=iKIEPRgsK/zmp47VzGKwZKvsHQHZQ4+FxLcUWNU5T9A=; b=fqNYjtAxsvDdbfRQX93PED3HJ+0yolFmaMmlAgYVqWzofb6cwM2XqnpcgBIPMqaIfl jolmx5Xaz4EWy3GhT+mYFQ+K7g+cG8+siaXKi/v4GnrEvnoJs6xX86VW0NoDBvY71DWm /4zTR0c6ogLqzurVwx0On3nLALakrwMVTtq8ARGF6KwoZxwVA98ywn2HrnppdxNB2HGT +kOUgoE3HfPP+yMQI6Lmt8blZw4u/LEjfngYVJT7bbqS0siSIoy35uo1Oa8JZeG3Oh1i Rvak1ponVaVwgKkxBGQ25FBgxUNfCQ9f32WBigGJPpZbiFt7w4hyPEfLv84+4qa3NpKP 8OEw== X-Gm-Message-State: AOAM530MaqMdvL0F2OF4F3MpbgCLo+qPlMvaJ2/LjRkvNGLB65PefNJw 81ODzLncOYVWTa4405YHX6LoyxEw+VgxLQ== X-Google-Smtp-Source: ABdhPJyf0rx8eNbFZe4YbRUnxic2xAkAq+xFGsm0gf3T7X6Qg7J7pcs1KjkwBHFiDaNlh7k8SOatuA== X-Received: by 2002:a17:906:b09:: with SMTP id u9mr15681539ejg.496.1629383957344; Thu, 19 Aug 2021 07:39:17 -0700 (PDT) Received: from localhost.localdomain ([188.58.13.35]) by smtp.gmail.com with ESMTPSA id b8sm1825954edv.96.2021.08.19.07.39.16 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Aug 2021 07:39:16 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v4 03/10] gnu: freedesktop: Add greetd 0.7.0 Date: Thu, 19 Aug 2021 17:38:59 +0300 Message-Id: <20210819143906.6705-3-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210819143133.6398-1-mail@muradm.net> References: <20210819143133.6398-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/freedesktop.scm (greetd): Add greetd 0.7.0 --- gnu/packages/freedesktop.scm | 120 +++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 693a79c738..ba5f6b0f99 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -24,6 +24,7 @@ ;;; Copyright © 2020 Raghav Gururajan ;;; Copyright © 2021 Brendan Tildesley ;;; Copyright © 2021 pineapples +;;; Copyright © 2021 muradm ;;; ;;; 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,123 @@ 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 + ;; issue with terminal activation solved by this feature: + ;; https://lists.sr.ht/~kennylevinsen/greetd-devel/patches/24441 + ;; greetd-next builds from head of #24441 + ;; below substitute is provided as workaround for tagged version + (add-after 'unpack 'patch-terminal-switch + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "greetd/src/server.rs" + (("switch: true,") + "switch: false,")))) + (delete 'package) + (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)))))))) + (native-inputs + `(("linux-pam" ,linux-pam) + ("scdoc" ,scdoc))) + (synopsis "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. + +If you can run it from your shell in a TTY, greetd can start it. + +If it can be taught to speak a simple JSON-based IPC protocol, +then it can be a greeter.") + (license license:gpl3+))) + +(define-public greetd-next + (package + (inherit greetd) + (name "greetd") + (version "0.7.0-next") + (source (origin + (method git-fetch) + (uri (git-reference + (url (package-home-page greetd)) + (commit "87e92776543c224676d64316f4519b509c21a0d5"))) + (file-name (git-file-name name version)) + (sha256 + (base32 "13dblvhx5vbsx0yqyz2sq1ayffqwadbkn90p52wd5b66ij1z6v1a")))) + (arguments + (substitute-keyword-arguments (package-arguments greetd) + ((#:cargo-inputs inputs) + `(("rust-nix" ,rust-nix-0.19) + ("rust-pam-sys" ,rust-pam-sys-0.5.6) + ("rust-rpassword" ,rust-rpassword-5) + ("rust-users" ,rust-users-0.11) + ("rust-serde" ,rust-serde-1) + ("rust-serde-json" ,rust-serde-json-1) + ("rust-libc" ,rust-libc-0.2) + ("rust-tokio" ,rust-tokio-1) + ("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 phases) + `(modify-phases ,phases + (delete 'patch-terminal-switch))))))) + (define-public packagekit (package (name "packagekit") -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 19 10:39:33 2021 Received: (at 49969) by debbugs.gnu.org; 19 Aug 2021 14:39:33 +0000 Received: from localhost ([127.0.0.1]:60557 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mGjCe-0000J3-Rl for submit@debbugs.gnu.org; Thu, 19 Aug 2021 10:39:33 -0400 Received: from mail-ed1-f52.google.com ([209.85.208.52]:44899) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mGjCW-0000Hj-Kz for 49969@debbugs.gnu.org; Thu, 19 Aug 2021 10:39:25 -0400 Received: by mail-ed1-f52.google.com with SMTP id i22so9165654edq.11 for <49969@debbugs.gnu.org>; Thu, 19 Aug 2021 07:39:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=VB+zCSmnI6JPNNd+dmQ7nv1CAeu5yk6+FSBxIyafSxw=; b=Ji4gNa6Jgk5UhNagrenozsouZVTcn7ulbkhzFUddoHxuWV5ZkC2CWJL+TXofgza0+6 c562D3C42WAqBwrG0T4SkOiu6q9ynUWddOe/YuM8zXW36VPoHMNYu/mBiVNzM3t9YCCb +4OYnBdlgShGkrL7FmjvGKU0OBM0hy//UcFjA0CDF5omPMIm7ppiMDyDFTq6012vKvP2 CSPMR9HsPUZJrm/YhrLb9AQD2FrQzVrMt31/qmQMrJEkvhOvT5iu+/D5gBaYIFzhCYbG xT2QPA8ELrQUoCDdDngQj7KlF5KGJvceM8g55oiekXai6Ngh1o3b+kwK4zSbslg2LDRG SO7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=VB+zCSmnI6JPNNd+dmQ7nv1CAeu5yk6+FSBxIyafSxw=; b=gQeJ5eTaeKYoARd/lOIY8P7Et7CShmOZAXY8trF+HbuiF3tnW1+gEqD7lvXcU3Xn2v grENmjGVDBLo4Lw9vF2EsxOyK56x2x7nSXZtjE052A+zTXt7przi7gZorDXeFbLwprB8 7Ltuwt8LiOG4p1NjDCPMzpfTYjX4THBYEe5eKnZ0vEgGK6lZ3sz621Vsp5SPkQOe0vFo +gcW5P5E9x7/NVBP3lauhvJP+NOVwP2PnTXYS3BkkUvDX7TwTgCYS2OUTryTORUaDPVa Qb8lmBtYsR/J+CL43hTBOs0UyZqr3pwGjByWKcqFdy5G1stUKllciVVZMXhw3UJOEy3H dz5g== X-Gm-Message-State: AOAM531fhGZiIVhtcxfhMoMY+uvqwVPHMv4KvC6bjk8W1HevHLn0jWdX Gbzqz19J9H75mtb9NDy6IsWlr1vUx/zyUA== X-Google-Smtp-Source: ABdhPJxeByyY+TQIK8h8zYM7zouCNLJ1s6pH4FUD8+XU+E5CEO0JTMSfvGnGZlK9GA0Yner4YzShVg== X-Received: by 2002:a05:6402:49a:: with SMTP id k26mr16636542edv.279.1629383958546; Thu, 19 Aug 2021 07:39:18 -0700 (PDT) Received: from localhost.localdomain ([188.58.13.35]) by smtp.gmail.com with ESMTPSA id b8sm1825954edv.96.2021.08.19.07.39.17 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Aug 2021 07:39:18 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v4 04/10] gnu: admin: Add greetd-pam-mount Date: Thu, 19 Aug 2021 17:39:00 +0300 Message-Id: <20210819143906.6705-4-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210819143133.6398-1-mail@muradm.net> References: <20210819143133.6398-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 2.0 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: * gnu/packages/admin.scm (greetd-pam-mount): Add greetd-pam-mount --- gnu/packages/admin.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 007f15f9f5..c9bfe0b667 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -42,6 +42,7 @@ ;;; Copyright © 2021 David [...] Content analysis details: (2.0 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 SPF_NONE SPF: sender does not publish an SPF Record 2.0 PDS_OTHER_BAD_TLD Untrustworthy TLDs [URI: selfhosted.xyz (xyz)] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [209.85.208.52 listed in list.dnswl.org] -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [209.85.208.52 listed in wl.mailspike.net] X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) * gnu/packages/admin.scm (greetd-pam-mount): Add greetd-pam-mount --- gnu/packages/admin.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 007f15f9f5..c9bfe0b667 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -42,6 +42,7 @@ ;;; Copyright © 2021 David Larsson ;;; Copyright © 2021 WinterHound ;;; Copyright © 2021 Brice Waegeneire +;;; Copyright © 2021 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -4247,6 +4248,38 @@ supports. It can also mount encrypted LUKS volumes using the password supplied by the user when logging in.") (license (list license:gpl2+ license:lgpl2.1+)))) +(define-public greetd-pam-mount + (package + (inherit pam-mount) + (name "greetd-pam-mount") + (arguments + (substitute-keyword-arguments (package-arguments pam-mount) + ((#:configure-flags flags ''()) + `(cons* "--with-rundir=/run/greetd" ,flags)) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'unpack 'patch-config-file-name + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/pam_mount.c" + ((".*define CONFIGFILE .*$") + "#define CONFIGFILE \"/etc/security/greetd_pam_mount.conf.xml\"\n") + (("pam_mount_config") "greetd_pam_mount_config") + (("pam_mount_system_authtok") "greetd_pam_mount_system_authtok")))))))) + (synopsis "pam-mount specifically compiled for use with greetd") + (description + "Pam-mount is a PAM module that can mount volumes when a user logs in. +It supports mounting local filesystems of any kind the normal mount utility +supports. It can also mount encrypted LUKS volumes using the password +supplied by the user when logging in. + +This package inherits pam-mount in the way that it is compiled specifically +for use with greetd daemon. It uses different configuration location and +name space for storing data in PAM. + +greetd-pam-mount is used in configuration of greetd to provide +auto-(mounting/unmounting) of XDG_RUNTIME_DIR in the way that it will not +interfere with default pam-mount configuration."))) + (define-public jc (package (name "jc") -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 19 10:39:33 2021 Received: (at 49969) by debbugs.gnu.org; 19 Aug 2021 14:39:33 +0000 Received: from localhost ([127.0.0.1]:60559 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mGjCf-0000JH-Dc for submit@debbugs.gnu.org; Thu, 19 Aug 2021 10:39:33 -0400 Received: from mail-ej1-f43.google.com ([209.85.218.43]:44996) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mGjCY-0000Hl-02 for 49969@debbugs.gnu.org; Thu, 19 Aug 2021 10:39:26 -0400 Received: by mail-ej1-f43.google.com with SMTP id bq25so13357648ejb.11 for <49969@debbugs.gnu.org>; Thu, 19 Aug 2021 07:39:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=Sp33gQQBygwHj8x5D/cTuv92CAb24beXS7SlNnF62pw=; b=ssjtWBXema9F85APczYWbMKB+vqQJ27sCR97x7jNzzyJORr2fdY85OiNL0eGMOzW82 ucSCsaHWES20DXH+wmehtEM2XeOLr9jxzYkQaZHkgJRDPNUToeFPbAHwkjX9H+uIiebM JHFTvIE6pSu85BeUrXquS91SV70pKJedsWP3ZrQsw/dIMqjg0UIaieWqXwVAFMC4i1YR dZ5n0xL+E46o6I96h2+S0R7nXYggjSwyF/EDt6zjMnw6rbFm+aTD7FB2JcsKh+jQDdN8 uA9PqtnrmpvzlpO50kh9gvkhzl3kAXqDFtCZP/OQMibcRG08VeMtdLuIWgxQmwK/Znh3 6UVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Sp33gQQBygwHj8x5D/cTuv92CAb24beXS7SlNnF62pw=; b=uKcLm2qHLehNsCZbCqj9MZiZVe1CCqDoBtaIZg4mZS1F1DCA6zaEhqZ4OGtjoM8dsW 4zLwKSnni93JgxNF7sIJeqhhnEzmykhZapBlb0Mo0f5D0PqniM+8Kn96ZMK4K5Dbpiiu SNwhc4OoVgsBFyLoxxnjLG2CY1WuzFSMbYB9usQQrba+t5XgROpFKwgLlAL3YO7UGakZ w+z+mJXbE9EXrwJ1ec/Ubw15gPE9omD0PidugZz9qTcSnoaW0Al1lfqVLCNp+zZjCqQz 9uVk0y4/p0t9l/NP72Ry4ym608sH9uU8Bemhlwa0peSzwEkjIgixPTnClNcWcq7yCHQc IUhA== X-Gm-Message-State: AOAM530CCOAI+40h4IL9XkSQQtYhROOGQ99EePjBjkJFa5wtIT+6fd2+ u33yKnbX2k1KOQ+/vTOrXDUOvxpbEDzXyg== X-Google-Smtp-Source: ABdhPJw25GjxKMYASOKOXEfD2I14km14dLTe70AnVP+WphniW5/deLkpIAxyEc5zNE9qUCifzpbrHQ== X-Received: by 2002:a17:906:aac7:: with SMTP id kt7mr16111107ejb.4.1629383959885; Thu, 19 Aug 2021 07:39:19 -0700 (PDT) Received: from localhost.localdomain ([188.58.13.35]) by smtp.gmail.com with ESMTPSA id b8sm1825954edv.96.2021.08.19.07.39.18 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Aug 2021 07:39:19 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v4 05/10] gnu: desktop: Add seatd-service-type Date: Thu, 19 Aug 2021 17:39:01 +0300 Message-Id: <20210819143906.6705-5-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210819143133.6398-1-mail@muradm.net> References: <20210819143133.6398-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/services/desktop.scm: Add seatd-service-type --- gnu/services/desktop.scm | 60 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 59 insertions(+), 1 deletion(-) diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index 64d0e85301..c42db5987e 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -13,6 +13,7 @@ ;;; Copyright © 2020 Tobias Geerinckx-Rice ;;; Copyright © 2020 Reza Alizadeh Majd ;;; Copyright © 2021 Brice Waegeneire +;;; Copyright © 2021 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -39,7 +40,9 @@ #:use-module (gnu services networking) #:use-module (gnu services sound) #:use-module ((gnu system file-systems) - #:select (%elogind-file-systems file-system)) + #:select (%control-groups + %elogind-file-systems + file-system)) #:use-module (gnu system) #:use-module (gnu system setuid) #:use-module (gnu system shadow) @@ -154,6 +157,9 @@ gnome-keyring-configuration? gnome-keyring-service-type + seatd-configuration + seatd-service-type + %desktop-services)) ;;; Commentary: @@ -1182,6 +1188,58 @@ or setting its password with passwd."))) (define polkit-wheel-service (simple-service 'polkit-wheel polkit-service-type (list polkit-wheel))) + +;;; +;;; seatd-service-type -- minimal seat management daemon +;;; + +(define-record-type* seatd-configuration + make-seatd-configuration + seatd-configuration? + (seatd seatd-package (default seatd)) + (user seatd-user (default "root")) + (group seatd-group (default "users")) + (socket seatd-socket (default "/run/seatd.sock")) + (loglevel seatd-loglevel (default "error"))) + +(define (seatd-shepherd-service config) + (list (shepherd-service + (documentation "Minimal seat management daemon") + (requirement '()) + ;; TODO: once cgroups is separate dependency + ;; here we should depend on it rather than elogind + (provision '(seatd elogind)) + (start #~(make-forkexec-constructor + (list #$(file-append (seatd-package config) "/bin/seatd") + "-u" #$(seatd-user config) + "-g" #$(seatd-group config) + "-s" #$(seatd-socket config)) + #:environment-variables + (list (string-append "SEATD_LOGLEVEL=" + #$(seatd-loglevel config))) + #:log-file "/tmp/seatd.log")) + (stop #~(make-kill-destructor))))) + +(define seatd-environment + (match-lambda + (($ _ _ _ socket) + `(("SEATD_SOCK" . ,socket))))) + +(define seatd-service-type + (service-type + (name 'seatd) + (description "Seat management takes care of mediating access +to shared devices (graphics, input), without requiring the +applications needing access to be root.") + (extensions + (list + (service-extension session-environment-service-type seatd-environment) + ;; TODO: once cgroups is separate dependency we should not mount it here + ;; for now it is mounted here, because elogind mounts it + (service-extension file-system-service-type (const %control-groups)) + (service-extension shepherd-root-service-type seatd-shepherd-service))) + (default-value (seatd-configuration)))) + ;;; ;;; The default set of desktop services. -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 19 10:39:43 2021 Received: (at 49969) by debbugs.gnu.org; 19 Aug 2021 14:39:43 +0000 Received: from localhost ([127.0.0.1]:60561 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mGjCo-0000Jb-SN for submit@debbugs.gnu.org; Thu, 19 Aug 2021 10:39:43 -0400 Received: from mail-ej1-f49.google.com ([209.85.218.49]:40662) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mGjCZ-0000Ho-5y for 49969@debbugs.gnu.org; Thu, 19 Aug 2021 10:39:27 -0400 Received: by mail-ej1-f49.google.com with SMTP id lo4so13389596ejb.7 for <49969@debbugs.gnu.org>; Thu, 19 Aug 2021 07:39:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=pPvug1pEJs0Qy8My6Srzy5M97XV/OUX7ph60ZRxN+4A=; b=ZY7d0H43LOZNVfrpIrVlMyYpbaDshghJbgB6a9E5XA3R51o1luTGjtOJ9JIHzCRVcx fAZoEgoEL97Np5F1cW9v+sjyhouz7Ce8CCNVl03YtGvucUGVxOuTB8TnyHMGyMtLB3cU 72KeoAjsTVCNaLH/TWFcYJycXSScgiUhJZpIAwILtV8kuPqv4XmJc85qx3oNiG3XuP49 QOQfCstf0kbqk/zrtTmXrMUlRnb/g0SwelnpUNtDQFRoJSh+dnkURyLFv7ojxOmtQHbj DyOpow9I7q/q2lCxd4WJpd3GPU3hG3cgw1YmlmwlQaJdlIFjDAXq0W4MIegpElqfGQQ3 CxNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=pPvug1pEJs0Qy8My6Srzy5M97XV/OUX7ph60ZRxN+4A=; b=ApZuL/xdczShyp0gVyhYdTvIY9e4Kz0aEHpqS3TL1DR8HLXxuQNfXFlC+I20lRG+VB 9Q8ttqv7apZjsdBGcFmcJ7kgZlYzACr+fWj/uWgQWbdbocq+aB5NR4jkgl7zuVG8OpaN KnOqgHOP3wCke9OOS1Uc3+qlF0zZBZG9I+sFQaxXpD5VsTNlcmQi14nslmgnDJE0mgcs bYIdGw/q3JiT+HaFVH53lywzOXOXeOqLlGQScIk2gr2RcpWVWf5fOgTnJhFnQxBEzWHj IW1nCtaPav9vWBNBKxJNx4ctsG96RRPjrUuQshnYvP2SQAV6PboSY9UEI5MZ14g3FsV2 FIDw== X-Gm-Message-State: AOAM533JfPFZEbvSlIgQ4pwwD3ghO5wQY4prNmFw0a9gbdF6TjNx7hBP hxr7+qf1Yzf8qILKAH7T438YqSzBKQ1U9w== X-Google-Smtp-Source: ABdhPJxYxmDAWFxH50LmrhbOAR5/7jAycYq6EbXozPVMg/drxTLq963MDy7Tt3iTpHOeAAkpZyFXIA== X-Received: by 2002:a17:906:270f:: with SMTP id z15mr16136068ejc.348.1629383961104; Thu, 19 Aug 2021 07:39:21 -0700 (PDT) Received: from localhost.localdomain ([188.58.13.35]) by smtp.gmail.com with ESMTPSA id b8sm1825954edv.96.2021.08.19.07.39.20 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Aug 2021 07:39:20 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v4 06/10] gnu: desktop: Add greetd-service-type Date: Thu, 19 Aug 2021 17:39:02 +0300 Message-Id: <20210819143906.6705-6-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210819143133.6398-1-mail@muradm.net> References: <20210819143133.6398-1-mail@muradm.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Currently, only agreety configuration is provided. * gnu/services/desktop.scm: Add greetd-service-type --- gnu/services/desktop.scm | 228 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 228 insertions(+) diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index c42db5987e..e37811cf94 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -49,6 +49,7 @@ #:use-module (gnu system pam) #:use-module (gnu packages glib) #:use-module (gnu packages admin) + #:use-module (gnu packages bash) #:use-module (gnu packages cups) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gnome) @@ -160,6 +161,12 @@ seatd-configuration seatd-service-type + greetd-configuration + greetd-terminal-configuration + greetd-service-type + greetd-agreety-tty-session + greetd-agreety-tty-xdg-session + %desktop-services)) ;;; Commentary: @@ -1240,6 +1247,227 @@ applications needing access to be root.") (service-extension shepherd-root-service-type seatd-shepherd-service))) (default-value (seatd-configuration)))) + +;;; +;;; greetd-service-type -- minimal and flexible login manager daemon +;;; + +(define-record-type* + greetd-agreety-session make-greetd-agreety-session + greetd-agreety-session? + (package greetd-agreety-command-package (default bash)) + (command-bin greetd-agreety-command-bin (default "/bin/bash")) + (command-args greetd-agreety-command-args (default '("-l"))) + (extra-env greetd-agreety-extra-env (default '())) + (command-generator greetd-agreety-command-generator)) + +(define greetd-agreety-tty-session-command + (match-lambda + (($ pkg command-bin command-args extra-env) + (program-file + "agreety-tty-session-command" + #~(begin + (use-modules (ice-9 match)) + (let* ((abs-cmd-bin #$(file-append pkg command-bin))) + (for-each + (match-lambda ((var . val) (setenv var val))) + (quote (#$@extra-env))) + (apply execl abs-cmd-bin abs-cmd-bin + (list #$@command-args)))))))) + +(define greetd-agreety-tty-xdg-session-command + (match-lambda + (($ package command-bin command-args extra-env) + (program-file + "agreety-tty-xdg-session-command" + #~(begin + (use-modules (ice-9 match)) + (let* + ((username (getenv "USER")) + (useruid (passwd:uid (getpwuid username))) + (useruid (number->string useruid)) + (abs-cmd-bin #$(file-append package command-bin))) + (setenv "XDG_SESSION_TYPE" "tty") + (setenv "XDG_RUNTIME_DIR" (string-append "/run/user/" useruid)) + (for-each + (match-lambda ((var . val) (setenv var val))) + (quote (#$@extra-env))) + (apply execl abs-cmd-bin abs-cmd-bin + (list #$@command-args)))))))) + +(define greetd-agreety-tty-session + (greetd-agreety-session + (command-generator greetd-agreety-tty-session-command))) + +(define greetd-agreety-tty-xdg-session + (greetd-agreety-session + (command-generator greetd-agreety-tty-xdg-session-command))) + +(define-record-type* + greetd-terminal-configuration make-greetd-terminal-configuration + greetd-terminal-configuration? + (greetd greetd-package (default greetd)) + (config-file-name greetd-config-file-name (thunked) + (default (default-config-file-name this-record))) + (terminal-vt greetd-terminal-vt (default "7")) + (terminal-switch greetd-terminal-switch (default #f)) + (default-session-user greetd-default-session-user (default "greeter")) + (default-session-command greetd-default-session-command + (default greetd-agreety-tty-xdg-session))) + +(define (default-config-file-name config) + (string-join (list "config-" (greetd-terminal-vt config) ".toml") "")) + +(define make-greetd-terminal-default-session-command + (match-lambda + (($ greetd _ _ _ _ default-session-command) + (cond ((greetd-agreety-session? default-session-command) + (let* + ((generator (greetd-agreety-command-generator + default-session-command)) + (command (apply generator (list default-session-command))) + (agreety-bin (file-append greetd "/bin/agreety"))) + (program-file + "agreety-command" + #~(execl #$agreety-bin #$agreety-bin "-c" #$command)))) + (else (program-file "agreety-command-exit" #~(exit #f))))))) + +(define (make-greetd-terminal-configuration-file config) + (let* + ((config-file-name (greetd-config-file-name config)) + (terminal-vt (greetd-terminal-vt config)) + (terminal-switch (greetd-terminal-switch config)) + (default-session-user (greetd-default-session-user config)) + (default-session-command (make-greetd-terminal-default-session-command config))) + (mixed-text-file + config-file-name + "[terminal]\n" + "vt = " terminal-vt "\n" + "switch = " (if terminal-switch "true" "false") "\n" + "[default_session]\n" + "user = " default-session-user "\n" + "command = " default-session-command "\n"))) + +(define %default-motd + (plain-file "motd" "This is the GNU operating system, welcome!\n\n")) + +(define %greetd-accounts + (list (user-account + (name "greeter") + (group "wheel") + (supplementary-groups '("users" "tty" "input" "video" "audio")) + (system? #t)))) + +(define %greetd-file-systems + (list (file-system + (device "none") + (mount-point "/run/greetd/pam_mount") + (type "tmpfs") + (check? #f) + (flags '(no-suid no-dev no-exec)) + (options "mode=0755") + (create-mount-point? #t)))) + +(define %greetd-pam-mount-rules + `((debug (@ (enable "0"))) + (volume (@ (sgrp "users") + (fstype "tmpfs") + (mountpoint "/run/user/%(USERUID)") + (options "noexec,nosuid,nodev,size=1g,mode=0700,uid=%(USERUID),gid=%(USERGID)"))) + (logout (@ (wait "0") + (hup "0") + (term "yes") + (kill "no"))) + (mkmountpoint (@ (enable "1") (remove "true"))))) + +(define-record-type* + greetd-configuration make-greetd-configuration + greetd-configuration? + (motd greetd-motd (default %default-motd)) + (allow-empty-passwords? greetd-allow-empty-passwords? (default #t)) + (terminals greetd-terminals (default '()))) + +(define (make-greetd-pam-mount-conf-file config) + (computed-file + "greetd_pam_mount.conf.xml" + #~(begin + (use-modules (sxml simple)) + (call-with-output-file #$output + (lambda (port) + (sxml->xml + '(*TOP* + (*PI* xml "version='1.0' encoding='utf-8'") + (pam_mount + #$@%greetd-pam-mount-rules + (pmvarrun + #$(file-append greetd-pam-mount + "/sbin/pmvarrun -u '%(USER)' -o '%(OPERATION)'")))) + port)))))) + +(define (greetd-etc-service config) + `(("security/greetd_pam_mount.conf.xml" + ,(make-greetd-pam-mount-conf-file config)))) + +(define (greetd-pam-service config) + (define optional-pam-mount + (pam-entry + (control "optional") + (module #~(string-append #$greetd-pam-mount "/lib/security/pam_mount.so")))) + + (list + (unix-pam-service "greetd" + #:login-uid? #t + #:allow-empty-passwords? + (greetd-allow-empty-passwords? config) + #:motd + (greetd-motd config)) + (lambda (pam) + (if (member (pam-service-name pam) + '("login" "greetd" "su" "slim" "gdm-password")) + (pam-service + (inherit pam) + (auth (append (pam-service-auth pam) + (list optional-pam-mount))) + (session (append (pam-service-session pam) + (list optional-pam-mount)))) + pam)))) + +(define (greetd-shepherd-services config) + (map + (lambda (tc) + (let* + ((greetd-bin (file-append (greetd-package tc) "/sbin/greetd")) + (greetd-conf (make-greetd-terminal-configuration-file tc)) + (greetd-vt (greetd-terminal-vt tc))) + (shepherd-service + (documentation "Minimal and flexible login manager daemon") + (requirement '(user-processes host-name udev virtual-terminal)) + (provision (list (symbol-append + 'term-tty + (string->symbol (greetd-terminal-vt tc))))) + (start #~(make-forkexec-constructor + (list #$greetd-bin "-c" #$greetd-conf) + #:log-file + (string-append "/tmp/greetd." #$greetd-vt ".log"))) + (stop #~(make-kill-destructor))))) + (greetd-terminals config))) + +(define greetd-service-type + (service-type + (name 'greetd) + (description "Provides necessary infrastructure for logging into the +system including @code{greetd} PAM service, @code{pam-mount} module to +mount/unmount /run/user/ directory for user and @code{greetd} +login manager daemon.") + (extensions + (list + (service-extension account-service-type (const %greetd-accounts)) + (service-extension file-system-service-type (const %greetd-file-systems)) + (service-extension etc-service-type greetd-etc-service) + (service-extension pam-root-service-type greetd-pam-service) + (service-extension shepherd-root-service-type greetd-shepherd-services))) + (default-value (greetd-configuration)))) + ;;; ;;; The default set of desktop services. -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 19 10:39:43 2021 Received: (at 49969) by debbugs.gnu.org; 19 Aug 2021 14:39:43 +0000 Received: from localhost ([127.0.0.1]:60563 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mGjCp-0000Je-CF for submit@debbugs.gnu.org; Thu, 19 Aug 2021 10:39:43 -0400 Received: from mail-ej1-f51.google.com ([209.85.218.51]:35713) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mGjCa-0000I3-Fr for 49969@debbugs.gnu.org; Thu, 19 Aug 2021 10:39:29 -0400 Received: by mail-ej1-f51.google.com with SMTP id w5so13454389ejq.2 for <49969@debbugs.gnu.org>; Thu, 19 Aug 2021 07:39:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=dh/8N+CXmlWZw91Zsb/y/jh8BpZ7QLm1nQKa/aRV3eI=; b=sueM4XhRz/6QRZM/0ZA6O743wuDIl5A6hYmf5CxlD3Sd0945lOJLnOYsyYsoI5H6kQ DPSJVz5WDx3DVMMw/W+Oc+rcoU9EWANLRF8MpZtoYjm2mxO6NmE68/6ybNV/HLGppQ8e v3hNIdrRSbUWdWwRoi/ubus1mRWJdfG9SaS95CQMe93rMFKs6vsCHndoPvlqBMFryIZZ UX7JMb/I+iAP1qubHsDKEfDnis6qXORzWrCuNiRCl5kiZ8ZW75dI06Dg4Bw8ru6Aeb0k 5iLMB+38nnuuBCULoydsD4aMsKxRZI6M0XaoWZDsUIxufL2tH4r634llM3Cs7wkA+ds5 Kyhg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=dh/8N+CXmlWZw91Zsb/y/jh8BpZ7QLm1nQKa/aRV3eI=; b=JdxjZaqQB2ygvYqmF937DbP4mVVRS2XsHhxypl3aqUIyUzGkOgbQ+IS0hPtNnd6l/m sm+BRX8IiGEk7ZdcwV/wlzWSBL6ZdqJEpq5715YQbwjrM0H75M66qzFOr1jSxZA3128E BH0iyWAqLtffvsdoYLgW++3bkL4yfSWNmr776a7H21GohWqXiqboO7dsdUk7aOxb0o9h jChIcJTl3dmd46YFflLpLIYOzkW1EDIfZDKrzJXzorQ8X92X2gIfDyvxw0UdE7JZHV4G pmSa4SrV/R+DOKBI8ogUcRxefrjD7DMmvOz5Sz+iS1R6ojzWREwF/DsCUMsL725cY/rU YSpw== X-Gm-Message-State: AOAM532wXMudNTjMxpti/q29nbLRt3eXvf9hGrnnempuwLffQq+nmFnH KCcBjZu02B68NiuQkBjd2axrzb52wBOPyQ== X-Google-Smtp-Source: ABdhPJzPkUEmtX5bNYMSkxYKkX5X0A1IVv0Tw9M2kxSF+AImsI8iQqM96r03zSgfNaan0iWPI/vk5g== X-Received: by 2002:a17:906:c316:: with SMTP id s22mr16318752ejz.39.1629383962587; Thu, 19 Aug 2021 07:39:22 -0700 (PDT) Received: from localhost.localdomain ([188.58.13.35]) by smtp.gmail.com with ESMTPSA id b8sm1825954edv.96.2021.08.19.07.39.21 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Aug 2021 07:39:22 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v4 07/10] gnu: base: Add greetd to applied PAM services Date: Thu, 19 Aug 2021 17:39:03 +0300 Message-Id: <20210819143906.6705-7-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210819143133.6398-1-mail@muradm.net> References: <20210819143133.6398-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/services/base.scm (pam-limits-service-type): add greetd PAM service to applicable PAM services --- gnu/services/base.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/services/base.scm b/gnu/services/base.scm index c784d312b1..446ecc30f8 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -15,6 +15,7 @@ ;;; Copyright © 2020, 2021 Brice Waegeneire ;;; Copyright © 2021 qblade ;;; Copyright © 2021 Hui Lu +;;; Copyright © 2021 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -1392,7 +1393,7 @@ information on the configuration file syntax." (module "pam_limits.so") (arguments '("conf=/etc/security/limits.conf"))))) (if (member (pam-service-name pam) - '("login" "su" "slim" "gdm-password" "sddm")) + '("login" "greetd" "su" "slim" "gdm-password" "sddm")) (pam-service (inherit pam) (session (cons pam-limits -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 19 10:39:44 2021 Received: (at 49969) by debbugs.gnu.org; 19 Aug 2021 14:39:44 +0000 Received: from localhost ([127.0.0.1]:60565 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mGjCp-0000Jl-MA for submit@debbugs.gnu.org; Thu, 19 Aug 2021 10:39:43 -0400 Received: from mail-ej1-f45.google.com ([209.85.218.45]:45011) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mGjCb-0000IA-Kz for 49969@debbugs.gnu.org; Thu, 19 Aug 2021 10:39:29 -0400 Received: by mail-ej1-f45.google.com with SMTP id bq25so13357976ejb.11 for <49969@debbugs.gnu.org>; Thu, 19 Aug 2021 07:39:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=6iBM8ZI3T3fHzn8rEzUJ2i4QvCgwKO7iPLoH5R+yrGg=; b=t0FVaEjulDRFDVt+qOpEhPPKBixcIHG/caTSNOrhTuIMZct4wdqNZKZBrkG6fnXyoW QFusVm7/GDDCls1d3lZ4ko8Z1zqyuJEkejIXPIret8moX0cgE7T8/tyVsux13l1mG/9c i2dUS5lSWhWz0Ks93v3Hf22eBgw6LS5NnuIb7g3QRLLZ65O2HNbbQA7B5xGLVN5e4icn 9vZZJg9CrkgH8A7jkV9T/Fyd/FkRc+xc0pPid7Ww5nmB3zFhwUnQ9kx0rc7GPstyoD7O O91LbZCwmnzt5vnwpXZU+8E3g5YPyiJ3piFALD8axqy11Q7q8SpsK0SnzKAJjAxO5E2t htHA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=6iBM8ZI3T3fHzn8rEzUJ2i4QvCgwKO7iPLoH5R+yrGg=; b=CPNz2z3MuCQ+EsBb7SJoLR9OcsSU2dGYWNjOMGOlZHYXCmUt2qT0wz5At830LcR7DI MiB+NGSyhwokbRhiUds3UXsDoB6W3VWOmDx0l39bUw7zIixD8RvceCWB13ZdQFJcoKYO cI8+LOJyBy5PTKjBW5N67bZ99DFrtMq2dB4jzZTBKAG7VRt2pPsWA9E8akUDHnIVrI8g Ub49pnsVlpuNSiHGsbBmJFVgc6onJ9LDlvhLqzUuYfUvu3HDOf527h10Hp9cgsPg0kYi c+2sRCmfVbjD1OxHDX4dOrHoPh3zxF9U7s6fHYECU+TrTobbo3q7ltsNlZGIzQwUJdvj GPlA== X-Gm-Message-State: AOAM530rd2Gafm2hsR+pCa3DVxizpju6x/hSsush2eL1fr+w8emyHfJB Mn19A26Mup//gl3yZplPa9Ec+joru9KYxQ== X-Google-Smtp-Source: ABdhPJwkcpT/OEDJZBiseDo5CgHVIlrbcn+2Jl1DjA44tRNa3BnppiQ24KcrXj4Xl0fOL1BYM4pUig== X-Received: by 2002:a17:906:aada:: with SMTP id kt26mr16255540ejb.199.1629383963738; Thu, 19 Aug 2021 07:39:23 -0700 (PDT) Received: from localhost.localdomain ([188.58.13.35]) by smtp.gmail.com with ESMTPSA id b8sm1825954edv.96.2021.08.19.07.39.22 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Aug 2021 07:39:23 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v4 08/10] gnu: pam-mount: Add greetd to applied PAM services Date: Thu, 19 Aug 2021 17:39:04 +0300 Message-Id: <20210819143906.6705-8-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210819143133.6398-1-mail@muradm.net> References: <20210819143133.6398-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/services/pam-mount.scm (pam-mount-service-type): add greetd PAM service to applicable PAM services --- gnu/services/pam-mount.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/services/pam-mount.scm b/gnu/services/pam-mount.scm index 98611462c2..7b25efeb50 100644 --- a/gnu/services/pam-mount.scm +++ b/gnu/services/pam-mount.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2019 Guillaume Le Vaillant +;;; Copyright © 2021 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -90,7 +91,7 @@ (module #~(string-append #$pam-mount "/lib/security/pam_mount.so")))) (list (lambda (pam) (if (member (pam-service-name pam) - '("login" "su" "slim" "gdm-password")) + '("login" "greetd" "su" "slim" "gdm-password")) (pam-service (inherit pam) (auth (append (pam-service-auth pam) -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 19 10:39:44 2021 Received: (at 49969) by debbugs.gnu.org; 19 Aug 2021 14:39:44 +0000 Received: from localhost ([127.0.0.1]:60567 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mGjCp-0000Js-WB for submit@debbugs.gnu.org; Thu, 19 Aug 2021 10:39:44 -0400 Received: from mail-ed1-f54.google.com ([209.85.208.54]:40491) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mGjCd-0000IM-8I for 49969@debbugs.gnu.org; Thu, 19 Aug 2021 10:39:32 -0400 Received: by mail-ed1-f54.google.com with SMTP id d6so9222044edt.7 for <49969@debbugs.gnu.org>; Thu, 19 Aug 2021 07:39:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=Zwh3CsWrgNCycdU0+Zpth9Ex7PFXkjrmiNwAyclSYpk=; b=E43en6JOuBJrU+pXm59RubvWtwEp4jNo1fRBh0DPaPX4yl68O+G2qPmHyVwf5IenG+ A8OYRxY+V/zKy3uTPZ/mXHCqzSz1FFCOpnnXk+bVSWxLfQ5PMDjk3rN9TVlgtW0Mu7AX jE+8+q1rYmkylaVVXkbmvDm6DEkn8ftwKn7jj3Bz4BtNs1YMy5piLa37KKhNd+QLcPsl IhbYUr0qxkoJZJVra1YRwGfhwhhOhYXFh9+pWzp3GxSUe0qD34QT5mEWL/Tist0gQbXD oQ2pCqYYrrR0xzy33o1+XjP/5NeAWCzyUB0/g766IaRWm3K8GDjbQdm/HO+S8CJS/08T LV2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Zwh3CsWrgNCycdU0+Zpth9Ex7PFXkjrmiNwAyclSYpk=; b=PnKmDe8vlU/R/HP9YbgXVKYUS4+gcsN/mvsCTz6iXwsNbqhc3xoFx9l66MfG1lJa5d ZTnAVbG//N0+rH7PawalW5NjnSeipuH9rSd2qLzPDSEVVQBDOv9Ct41OlYC5qWvxhOMm 0zPOhhjaw0gHFOPj2ZQAN79PLSmBJe0O9Lg0igOXq8FxSukCGl1rfKxaUnWyRnwVvmyH VkYzsAbDKmYSZY/eBYlYlKFybO8oyjtnyWZhsz1EFC2cJQgmFzshsLHIX59qgyIFYqTb 5LnwjCj8WJfAt0WJqmpJgsNj6VHWo/rV1bEHPKZI3PxGHXDZL9Z3etwu9NxAwX05066Q W78g== X-Gm-Message-State: AOAM531fEwuGK802l2g7q4rhI0CbO0pcBVHgbqX81q3Q0izi7xSEfIZz f50AXpDfpTB4csCx6apDTQAyTD7mRQsnCA== X-Google-Smtp-Source: ABdhPJx8u252PXyeF1Pb7GBSRljSoOHU+Uuzcocb6CwSOoJolRM08Za6uE7WMMx/jhmAKmvMzQzpDQ== X-Received: by 2002:aa7:c952:: with SMTP id h18mr16999640edt.18.1629383965145; Thu, 19 Aug 2021 07:39:25 -0700 (PDT) Received: from localhost.localdomain ([188.58.13.35]) by smtp.gmail.com with ESMTPSA id b8sm1825954edv.96.2021.08.19.07.39.24 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Aug 2021 07:39:24 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v4 09/10] gnu: tests: Add seatd/greetd based minimal desktop system tests Date: Thu, 19 Aug 2021 17:39:05 +0300 Message-Id: <20210819143906.6705-9-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210819143133.6398-1-mail@muradm.net> References: <20210819143133.6398-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/tests/desktop.scm (minimal-desktop): seatd/greetd based minimal desktop --- gnu/tests/desktop.scm | 191 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 190 insertions(+), 1 deletion(-) diff --git a/gnu/tests/desktop.scm b/gnu/tests/desktop.scm index 6aa22fd49b..2517eb7b30 100644 --- a/gnu/tests/desktop.scm +++ b/gnu/tests/desktop.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Ludovic Courtès +;;; Copyright © 2021 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -19,12 +20,15 @@ (define-module (gnu tests desktop) #:use-module (gnu tests) #:use-module (gnu services) + #:use-module (gnu services base) #:use-module (gnu services dbus) #:use-module (gnu services desktop) + #:use-module (gnu system) #:use-module (gnu system vm) #:use-module (guix gexp) #:use-module (srfi srfi-1) - #:export (%test-elogind)) + #:export (%test-elogind + %test-minimal-desktop)) ;;; @@ -103,3 +107,188 @@ #:imported-modules '((gnu services herd) (guix combinators))))) (run-elogind-test (virtual-machine os)))))) + + +;;; +;;; Seatd/greetd based minimal desktop +;;; + +(define %minimal-services + (append + (list + (service seatd-service-type) + (service greetd-service-type + (greetd-configuration + (terminals + (list + (greetd-terminal-configuration (terminal-vt "1") (terminal-switch #t)) + (greetd-terminal-configuration (terminal-vt "2")) + (greetd-terminal-configuration (terminal-vt "3")) + (greetd-terminal-configuration (terminal-vt "4")) + (greetd-terminal-configuration (terminal-vt "5")) + (greetd-terminal-configuration (terminal-vt "6"))))))) + (modify-services %base-services + (delete login-service-type) + (delete mingetty-service-type)))) + +(define-syntax-rule (minimal-operating-system user-services ...) + "Return an operating system that includes USER-SERVICES in addition to +minimal %BASE-SERVICES." + (operating-system (inherit %simple-os) + (services (cons* user-services ... %minimal-services)))) + +(define (run-minimal-desktop-test os vm) + (define test + (with-imported-modules '((gnu build marionette) + (guix build syscalls)) + #~(begin + (use-modules (gnu build marionette) + (guix build syscalls) + (srfi srfi-1) + (srfi srfi-64) + (ice-9 pretty-print)) + + (define marionette + (make-marionette #$vm)) + + (define (file-get-all-strings fname) + (marionette-eval '(use-modules (rnrs io ports)) marionette) + (wait-for-file fname marionette #:read 'get-string-all)) + + (define (wait-for-unix-socket-m socket) + (wait-for-unix-socket socket marionette)) + + (mkdir #$output) + (chdir #$output) + + (test-begin "minimal-desktop") + + (test-assert "seatd is ready" + (wait-for-unix-socket-m "/run/seatd.sock")) + + (test-equal "login user on tty1" + "alice\n" + (begin + ;; Wait for tty1. + (marionette-eval + '(begin + (use-modules (gnu services herd)) + (start-service 'term-tty1)) + marionette) + (marionette-control "sendkey ctrl-alt-f1" marionette) + + ;; login as root change alice password and exit + ;; then login as alice + (for-each + (lambda (cmd) (marionette-type cmd marionette) (sleep 1)) + (list + "root\n" + "\n" + "passwd alice\n" + "alice\n" + "alice\n" + "exit\n" + "alice\n" + "alice\n" + "id -un > logged-in\n")) + + (file-get-all-strings "/home/alice/logged-in"))) + + (test-equal "validate user environment" + '("SEATD_SOCK=/run/seatd.sock" + "XDG_RUNTIME_DIR=/run/user/1000" + "XDG_SEAT=seat0" + "XDG_VTNR=1") + + (begin + (marionette-type "env > env\n" marionette) + (sleep 1) + + (define user-env (string-tokenize + (file-get-all-strings "/home/alice/env"))) + + (define (expected-var var) + (any (lambda (s) (string-contains var s)) + '("SEATD_SOCK" + "XDG_RUNTIME_DIR" + "XDG_SEAT" + "XDG_VTNR"))) + + (sort (filter expected-var user-env) string env\n" marionette) + (sleep 1) + + (define (sock-var? var) + (any (lambda (s) (string-contains var s)) + '("SEATD_SOCK" "GREETD_SOCK"))) + + (define (sock-var-sock var) + (car (cdr (string-split var #\=)))) + + (let* + ((out (file-get-all-strings "/home/alice/env")) + (out (string-tokenize out)) + (out (filter sock-var? out)) + (socks (map sock-var-sock out)) + (socks (map wait-for-unix-socket-m socks))) + (and (= 2 (length socks)) (every identity socks))))) + + (test-assert "greetd is ready" + (begin + (marionette-type "ps -C greetd -o pid,args --no-headers > ps-greetd\n" + marionette) + (sleep 1) + + (define (greetd-daemon? cmd) + (string-contains cmd "config")) + + (define (greetd-cmd-to-pid cmd) + (car (string-split cmd #\space))) + + (define (greetd-pid-to-sock pid) + (string-append "/run/greetd-" pid ".sock")) + + (let* ((out (file-get-all-strings "/home/alice/ps-greetd")) + (out (string-split out #\newline)) + (out (map string-trim-both out)) + (out (filter greetd-daemon? out)) + (pids (map greetd-cmd-to-pid out)) + (socks (map greetd-pid-to-sock pids)) + (socks (map wait-for-unix-socket-m socks))) + (every identity socks)))) + + ;; a bit weak, but tests everything at once actually + (test-equal "check /run/user/ mounted and writable" + "alice\n" + (begin + (marionette-type "echo alice > /run/user/1000/test\n" marionette) + (file-get-all-strings "/run/user/1000/test"))) + + (test-assert "screendump" + (begin + (marionette-control (string-append "screendump " #$output + "/tty1.ppm") + marionette) + (file-exists? "tty1.ppm"))) + + (test-end) + (exit (= (test-runner-fail-count (test-runner-current)) 0))))) + + (gexp->derivation "minimal-desktop" test)) + +(define %test-minimal-desktop + (system-test + (name "minimal-desktop") + (description + "Test whether we can log in when seatd and greetd is enabled") + (value + (let* ((os (marionette-operating-system + (minimal-operating-system) + #:imported-modules '((gnu services herd) + (guix combinators)))) + (vm (virtual-machine os))) + (run-minimal-desktop-test (virtualized-operating-system os '()) + #~(list #$vm)))))) -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 19 10:39:45 2021 Received: (at 49969) by debbugs.gnu.org; 19 Aug 2021 14:39:45 +0000 Received: from localhost ([127.0.0.1]:60569 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mGjCq-0000K0-FS for submit@debbugs.gnu.org; Thu, 19 Aug 2021 10:39:44 -0400 Received: from mail-ej1-f47.google.com ([209.85.218.47]:37821) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mGjCe-0000IT-F0 for 49969@debbugs.gnu.org; Thu, 19 Aug 2021 10:39:33 -0400 Received: by mail-ej1-f47.google.com with SMTP id h9so13443096ejs.4 for <49969@debbugs.gnu.org>; Thu, 19 Aug 2021 07:39:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=X5B9Qd55nSCKA6XjB1MsLqDY4wPCKD2qims4BRcZ9xg=; b=ftevKKrfcyNnDSYcxwl1dQm7NNIfXS1Su4jy2OQmvayN0yayhgVXQq8l6+o8M+XM6E 3m/1PwhVV1C5gon70iap+Ln6bAYOtf/oci49Ejyzz31QGqYHmt+jLb54Zzrgn/C58iIu wCCA9Sfy/4X2LKatWSAnKNNJEJ5bMIl1U9V0O2VJrcX2sSIQsGwj/XF/s0QZPGwdvo32 DfzYrBAptar8EhH5TPcWc69EMRUmdkbFeObf6eIfzjH8gUFlaunne3Xgwag/KsHyUQyB 1hwJLsfl7+vr4M7fT56MsL8UiUCfzyFA7Gk3sjX/VRjYGnR3eOI3Aay8CZQJ7rW+PCMM ETBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=X5B9Qd55nSCKA6XjB1MsLqDY4wPCKD2qims4BRcZ9xg=; b=W3kNcFf//JlUcKSich+Ye4+VH+wNwy1JIpJz5jyA197zadS0UepR5DoeFydoBDvhjB LA4E6ffYao7+ohq8GUAwBxjo9Grio7s3bkfc535q2m0kmANeHaKEX1IWfb0JdZEQ+4dZ vQIe2ApTfO/eI/z5YMhZIe8izwZZTOUYdRQx228cEmkMBvQrCnCArVQAe0gj0apuC/4t b48e9oUK0R8Ecn40G/XgYvNWvZ3WwJ4NSGTUWvOt1GEWnX0LIj67+zSFwrz9EDSx6pgN m3DwkhgR9U8ndcjskWlLob0huKg2tDg4yXVHIcvPiK9MkCI7E+/ZqmIgn9VHA4Cc4nOI aIHw== X-Gm-Message-State: AOAM530Gysw1y6JkuUpGoxxOUD7wPl3Ygyq8bkcDJKRjKNFpazS/vA4C wmhKD6xOqae+oK8fzFpmww8VRHwqr1Asdw== X-Google-Smtp-Source: ABdhPJxD737JbMFM1gmeAH3AThJt3a+T+MR+Kdje1Xm+xqq+ceQxZHhvpmzssWpK5oRx87fdfbly+A== X-Received: by 2002:a17:907:1c8d:: with SMTP id nb13mr16329365ejc.155.1629383966460; Thu, 19 Aug 2021 07:39:26 -0700 (PDT) Received: from localhost.localdomain ([188.58.13.35]) by smtp.gmail.com with ESMTPSA id b8sm1825954edv.96.2021.08.19.07.39.25 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Aug 2021 07:39:26 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v4 10/10] doc: Add desktop seatd-service-type and greetd-service-type Date: Thu, 19 Aug 2021 17:39:06 +0300 Message-Id: <20210819143906.6705-10-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210819143133.6398-1-mail@muradm.net> References: <20210819143133.6398-1-mail@muradm.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * doc/guix.texi (Desktop Services): Provide documentation for seatd-service-type and greetd-service-type including configuration and sample usage. --- doc/guix.texi | 187 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 187 insertions(+) diff --git a/doc/guix.texi b/doc/guix.texi index 17ecc3ad0f..01a895fe62 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -94,6 +94,7 @@ Copyright @copyright{} 2021 Xinglu Chen@* Copyright @copyright{} 2021 Raghav Gururajan@* Copyright @copyright{} 2021 Domagoj Stolfa@* Copyright @copyright{} 2021 Hui Lu@* +Copyright @copyright{} 2021 muradm@* Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -19702,6 +19703,192 @@ and ``passwd'' is with the value @code{passwd}. @end table @end deftp +@defvr {Scheme Variable} seatd-service-type +A minimal seat management daemon, and a universal seat management library. + +Seat management takes care of mediating access to shared devices (graphics, +input), without requiring the applications needing access to be root. + +In general should be used as replacement to @code{elogind-service-type}. + +@lisp +(append + (list + ;; make sure seatd is running + (service seatd-service-type) + + (service greetd-service-type + (greetd-configuration + (terminals + (list + ;; lets have terminals 1, 2 and 3 run default XDG terminal session + ;; also ask terminal 1 to become active + (greetd-terminal-configuration (terminal-vt "1") (terminal-switch #t)) + (greetd-terminal-configuration (terminal-vt "2")) + (greetd-terminal-configuration (terminal-vt "3")) + ;; and terminals 4, 5 and 6 plain bash terminal session + ;; although not so plain, just to illustrate flexibility + (greetd-terminal-configuration + (terminal-vt "4") + (default-session-command greetd-agreety-tty-session)) + (greetd-terminal-configuration + (terminal-vt "5") + (default-session-command greetd-agreety-tty-session)) + (greetd-terminal-configuration + (terminal-vt "6") + (default-session-command greetd-agreety-tty-session)))))) + + ;; normaly one would want %base-services + (modify-services %base-services + ;; seatd/greetd combination can replace these + ;; greetd provides its own PAM service + (delete login-service-type) + (delete mingetty-service-type))) + +@end lisp + +@end defvr + +@deftp {Data Type} seatd-configuration +Configuration record for the seatd daemon service. + +@table @asis +@item @code{seatd} (default: @code{seatd}) +The seatd package to use. + +@item @code{user} (default: @samp{"root"}) +User to own the seatd socket. + +@item @code{group} (default: @samp{"users"}) +Group to own the seatd socket. + +@item @code{socket} (default: @samp{"/run/seatd.sock"}) +Where to create the seatd socket. + +@item @code{loglevel} (default: @samp{"error"}) +Log level to output logs. Possible values: @samp{"silent"}, @samp{"error"}, +@samp{"info"} and @samp{"debug"}. + +@end table +@end deftp + +@defvr {Scheme Variable} greetd-service-type +greetd is a minimal and flexible login manager daemon that makes no +assumptions about what you want to launch. + +If you can run it from your shell in a TTY, greetd can start it. If it +can be taught to speak a simple JSON-based IPC protocol, then it can +be a greeter. + +@code{} provides necessary infrastructure for +logging in users, including: + +@itemize @bullet +@item +@code{greetd} PAM service + +@item +Special variation of @code{pam-mount} to mount @code{XDG_RUNTIME_DIR} + +@end itemize + +@end defvr + +@deftp {Data Type} greetd-configuration +Configuration record for the greetd service. + +@table @asis +@item @code{motd} +A file-like object containing the ``message of the day''. + +@item @code{allow-empty-passwords?} (default: @code{#t}) +Allow empty passwords by default so that first-time users can log in when +the 'root' account has just been created. + +@item @code{terminals} (default: @code{'()}) +List of @code{} per terminal for which +@code{greetd} should be started. + +@end table +@end deftp + +@deftp {Data Type} greetd-terminal-configuration +Configuration record for per terminal greetd daemon service. + +@table @asis +@item @code{greetd} (default: @code{greetd}) +The greetd package to use. + +@item @code{config-file-name} +Configuration file name to use for greetd daemon. Generally, autogenerated +derivation based on @code{terminal-vt} value. + +@item @code{terminal-vt} (default: @samp{"7"}) +The VT to run on. Use of a specific VT with appropriate conflict avoidance +is recommended. + +@item @code{terminal-switch} (default: @code{#f}) +Make this terminal active on start of @code{greetd}. + +@item @code{default-session-user} (default: @samp{"greeter"}) +The user to use for running the greeter. + +@item @code{default-session-command} (default: @code{greetd-agreety-tty-xdg-session}) +The command-line to run to start the default session. + +Possible values are: + +@itemize @bullet +@item +@code{greetd-agreety-tty-session} - bash terminal session + +@item +@code{greetd-agreety-tty-xdg-session} - bash terminal session with XDG environment + +@item +@code{greetd-agreety-session} - custom instance of terminal session +@end itemize + +@end table +@end deftp + +@deftp {Data Type} greetd-agreety-session +Configuration record for the agreety greetd greeter. + +@table @asis +@item @code{package} (default: @code{bash}) +The package of command. + +@item @code{command-bin} (default: @samp{"/bin/bash"}) +Path to binary relative to @code{package}. + +@item @code{command-args} (default: @code{'("-l")}) +Command arguments to pass to command. + +@item @code{extra-env} (default: @code{'()}) +Extra environment variables to set on login. + +@item @code{command-generator} +Function that receives instance of this configuration as an argument and +returns @code{program-file} that can be used with @code{agreety} greeter. + +Both @code{greetd-agreety-tty-session} and @code{greetd-agreety-tty-xdg-session} +uses @code{greetd-agreety-session} under the hood. + +@end table +@end deftp + +@defvr {Scheme Variable} greetd-agreety-tty-session +Provides instance of @code{greetd-agreety-session} which starts @samp{"bash -l"} +on login. +@end defvr + +@defvr {Scheme Variable} greetd-agreety-tty-xdg-session +Provides instance of @code{greetd-agreety-session} which starts @samp{"bash -l"} +on login. Additionally, will set @code{XDG_SESSION_TYPE} and +@code{XDG_RUNTIME_DIR} environment variables for session. +@end defvr + @node Sound Services @subsection Sound Services -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Sun Aug 22 17:51:07 2021 Received: (at 49969) by debbugs.gnu.org; 22 Aug 2021 21:51:07 +0000 Received: from localhost ([127.0.0.1]:39912 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mHvMw-0007aF-Rv for submit@debbugs.gnu.org; Sun, 22 Aug 2021 17:51:07 -0400 Received: from mail-ej1-f49.google.com ([209.85.218.49]:41619) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mHvMt-0007Ze-Va for 49969@debbugs.gnu.org; Sun, 22 Aug 2021 17:51:05 -0400 Received: by mail-ej1-f49.google.com with SMTP id d11so32656067eja.8 for <49969@debbugs.gnu.org>; Sun, 22 Aug 2021 14:51:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=hVMJiMZrCDmRRBKI4Op5PPeRX5HGfsylxhPwiGBmOYw=; b=Di+RaDXfffZnXdihEiEVOZvc5R4yoqmgOohAZD7b8rmop4X1xS940wuXS6KesLaSEE lYKR2ksJRbm+v56d0k6zYIT7Bw9cuLbJMr7pbZl6XLxznZ+TG1bysW0WNYPgDXl0TIOi sufdaMaxdzdSoLMEyUMsGSYpScZV0JmM0KafGa6r8JqjyfUaz7aYFS2wnsd5a8y/X4Ps w3HmN28kPI844RfDpsKCaTvagdo3m+CRd5l7ShEfmvJ2i4r4vKvHPzvqUnK/efi+wu5E 6r8RJW0XBGGwKDTRQ2Y6f1JL0UHGO4aXbc7+t0tfthGc9XUpl1wBO3xlKb/7oMmBiuN9 qxKw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=hVMJiMZrCDmRRBKI4Op5PPeRX5HGfsylxhPwiGBmOYw=; b=frjacQIPPu+69uqtg4W+s8JkQ6XEdo6tbOK0aDZPr1XJGrSwTaj554Uz3M2Rd5gYpK 2mOeNZf3+u1Hsk7MCQxuB7bNhYmAcozCKm/Azv7EwAwZ581/gPY1fTi1Ya5sbjcuGmLQ 1MJ6PzP9Z2Voak/aGi0gCBJ82K99MyBuYeOWkeL/Tn+upj0jxMpNIAHr3ymPwesf5kb/ 8S0k7pXNxDHOnPUtuZTfCfD2KbgbGcQEn9numSfOVpmQnjHjFwcUb4D6OryFQVHUM0wM X90MI0EYi9RDZd0FcFJO+wo985YmqjmcCdqHsC9/VCdPY3/f/qAaMlfcJa4N8NMU0815 lesA== X-Gm-Message-State: AOAM533Y0arxDLn+c3I6xWnmWceiEloAMmoCHIoZ6+Glk+3Dr3PmpK5P ONZUahgspqO5jntYI3RO2k1UOWwogSRoeQ== X-Google-Smtp-Source: ABdhPJwPT5KmTdXEAAHsWaUUUudMSxvOyt4P6f4vtr2qKtMtOgi95uoG9sARU0EOhf+VBHhjOcA2+w== X-Received: by 2002:a17:906:fa12:: with SMTP id lo18mr33038056ejb.84.1629669057983; Sun, 22 Aug 2021 14:50:57 -0700 (PDT) Received: from localhost.localdomain ([31.142.76.217]) by smtp.gmail.com with ESMTPSA id q5sm7959755edt.50.2021.08.22.14.50.56 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 22 Aug 2021 14:50:57 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v5 01/10] gnu: crates-io: Add rust-enquote 1.0.3 Date: Mon, 23 Aug 2021 00:50:39 +0300 Message-Id: <20210822215048.20480-2-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210822215048.20480-1-mail@muradm.net> References: <20210819143133.6398-1-mail@muradm.net> <20210822215048.20480-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/crates-io.scm (rust-enquote-1): Add rust-enquote 1.0.3 --- gnu/packages/crates-io.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 24cc772ba7..6484d4c4fc 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -18,6 +18,7 @@ ;;; Copyright © 2021 Antero Mejr ;;; Copyright © 2021 Maxim Cournoyer ;;; Copyright © 2021 Vinicius Monego +;;; Copyright © 2021 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -56972,3 +56973,24 @@ variant of this library is available separately as @code{im}.") (description "Generate Rust register maps (`struct`s) from SVD files") (license (list license:expat license:asl2.0)))) + +(define-public rust-enquote-1 + (package + (name "rust-enquote") + (version "1.0.3") + (home-page "https://github.com/reujab/enquote") + (source + (origin + (method url-fetch) + (uri (crate-uri "enquote" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0vm687r2wwgc3d3l2iqhag9wgkql6k93sdvjxvmfkdpksajpij1f")))) + (build-system cargo-build-system) + (synopsis + "A Rust library quotes, unquotes, and unescapes strings") + (description + "A Rust library quotes, unquotes, and unescapes strings") + (license license:unlicense))) -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Sun Aug 22 17:51:12 2021 Received: (at 49969) by debbugs.gnu.org; 22 Aug 2021 21:51:12 +0000 Received: from localhost ([127.0.0.1]:39918 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mHvN2-0007av-7N for submit@debbugs.gnu.org; Sun, 22 Aug 2021 17:51:12 -0400 Received: from mail-ej1-f51.google.com ([209.85.218.51]:34342) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mHvMv-0007Zg-Fd for 49969@debbugs.gnu.org; Sun, 22 Aug 2021 17:51:06 -0400 Received: by mail-ej1-f51.google.com with SMTP id u3so32775594ejz.1 for <49969@debbugs.gnu.org>; Sun, 22 Aug 2021 14:51:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=5UKAphfDxOzm3bwyBiHJxbodPH6X2Jnn4XQw6tMBdHI=; b=gvM4gjIZid0IgSFP6WDRApwMC0ca6MXhqNVghCq57S5wEjEDemt5mK7LLFMedS+gQF r+oLH34ekX5Nj03GzApPz+/GNvejCWRlyxqfPGb98Z6mnEzLLbbKUMURfmow9B9RWgxW ELaaIpRIkWMfaJZ8t3kOcDxzl9dvKeKkchGPJcItBpFXlavdb9+bAIqeswBxJG8Kms6V CGjAopUjGo6uZ6stCl/HdFf+B2dHUrN2H3OhWNCqi/Z4SegAd+49U3jMBo/6QMR7E+se zIzd3vX+AA9x4HN/1HZ14R0O7jCrS+vatTfbhokSzYFXZW+xLI4y8yJRbqTbYO3J9t/A 9AXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=5UKAphfDxOzm3bwyBiHJxbodPH6X2Jnn4XQw6tMBdHI=; b=BxraYfPDJ2+09sN1Cg9XCJKsx1hJqHWemJYqulmlm6K4L5shcajGPTTBkWXokwLFrg M3vo5TMkaGKTOm0Q8+BQMOMs2CyAHTo2zZBv4Oo2DZ125ROKiPATzNXpu8uJB7Ip478B QXvs/xOokaF9JylxgkYEcRLbSlzj9EI+cnTmPZ//jJXX95GXACBVGGqysKN0FhRdNtkK 70Wxhtys5s5+MIKLU2FI6lhmcyJwCuLJ0csCd2b4axejZpIobvC50telwGZpBmtVht0+ +/yojog+edsKCGU2y4LNoGspTC9dYgmON9mrAlNxfcxo0atxuBQDxSeMFeUdGPkMNjzD kEKQ== X-Gm-Message-State: AOAM530XWSMrTEO56btHn1jOueI9MaYryB8K4HCRvZBjc70IGXWBO8vF WacU6YnADWoQwXuMFerkZq5BiaFob+0v7g== X-Google-Smtp-Source: ABdhPJz/ecOhd+2rELURziLt10R7PJ9LLqoQJx4ZyQtTmiJ83E+blVoUFu6NopEUb4bQDiUihC1/dw== X-Received: by 2002:a17:906:4892:: with SMTP id v18mr1998686ejq.541.1629669059531; Sun, 22 Aug 2021 14:50:59 -0700 (PDT) Received: from localhost.localdomain ([31.142.76.217]) by smtp.gmail.com with ESMTPSA id q5sm7959755edt.50.2021.08.22.14.50.58 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 22 Aug 2021 14:50:59 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v5 02/10] gnu: crates-io: Add rust-pam-sys 0.5.6 Date: Mon, 23 Aug 2021 00:50:40 +0300 Message-Id: <20210822215048.20480-3-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210822215048.20480-1-mail@muradm.net> References: <20210819143133.6398-1-mail@muradm.net> <20210822215048.20480-1-mail@muradm.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/crates-io.scm (rust-pam-sys): Add rust-pam-sys 0.5.6 --- gnu/packages/crates-io.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 6484d4c4fc..d91417d76f 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -55,6 +55,7 @@ #:use-module (gnu packages glib) #:use-module (gnu packages image) #:use-module (gnu packages jemalloc) + #:use-module (gnu packages linux) #:use-module (gnu packages llvm) #:use-module (gnu packages multiprecision) #:use-module (gnu packages nettle) @@ -56994,3 +56995,29 @@ variant of this library is available separately as @code{im}.") (description "A Rust library quotes, unquotes, and unescapes strings") (license license:unlicense))) + +(define-public rust-pam-sys-0.5.6 + (package + (name "rust-pam-sys") + (version "0.5.6") + (home-page "https://github.com/1wilkens/pam-sys") + (source + (origin + (method url-fetch) + (uri (crate-uri "pam-sys" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0d14501d5vybjnzxfjf96321xa5wa36x1xvf02h02zq938qmhj6d")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-libc" ,rust-libc-0.2)))) + (native-inputs + `(("linux-pam" ,linux-pam))) + (synopsis + "Rust FFI wrappers for the Linux Pluggable Authentication Modules (PAM)") + (description + "Rust FFI wrappers for the Linux Pluggable Authentication Modules (PAM)") + (license (list license:expat license:asl2.0)))) -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Sun Aug 22 17:51:12 2021 Received: (at 49969) by debbugs.gnu.org; 22 Aug 2021 21:51:12 +0000 Received: from localhost ([127.0.0.1]:39920 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mHvN2-0007b1-FK for submit@debbugs.gnu.org; Sun, 22 Aug 2021 17:51:12 -0400 Received: from mail-ej1-f54.google.com ([209.85.218.54]:37554) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mHvMs-0007Zc-Rj for 49969@debbugs.gnu.org; Sun, 22 Aug 2021 17:51:07 -0400 Received: by mail-ej1-f54.google.com with SMTP id h9so32775544ejs.4 for <49969@debbugs.gnu.org>; Sun, 22 Aug 2021 14:51:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=YpkAcnMn3WIGqLd9RmRninKXaohxmUdjLIsYdDCfF+g=; b=gelxKyNy5sZVT/YPGZMLRsJQdB3l0vDfwY1fK1hARXHePYoICGDaRYCiIAhkbMfsFg f3pgJPDIo3rzapwahqCDvlJZIOj2aFPz5at68SPu3xvxbhWZEnk/5UkLEK6f5LtfyL+g f0gCUOXWDg4cj3G+G57A0ldobQou+uoGBY89OzvizQnYpzsy/QA8+r7JxpCDoDHA8xRc k1E8ysRxwAKWgXUwCCsz5ta/DLTK6MR/KsIXxHnHna3uVf5Q+UazggRr8wpvMfSwbQ7Q ojNNF/PGJlDlxn0T/EwNgn2isQ/9hG3cmgi78V86VJMJXoVf+OrvwcarpUqO8z2kz3mQ k52A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=YpkAcnMn3WIGqLd9RmRninKXaohxmUdjLIsYdDCfF+g=; b=ghNK+TAhEPlfVG7Ev+k9dSbZFs8ws4xA5P9CUgVP34UKKD3AHR4/VPpxl/VYTj1PIk 2q905j+LZc0oQbzkC8KuSRxfN2DpbPcupkfwToSPebXo0ZD9XvIStarWh1Qsfp7AhBjd npU6q+2YuFxHkRkHYpk2u2lhGaEpa6MLwzazm4iVcsN8xX6gy6NzpbQDJiS39fzb+nZF 18MgohYAbXGqAyahdXaxZx52SPq/1EfJCXBmbz+sz1s22P5vtER2eCGIK/Bo0mrLlUiQ wxtst5a5O8UdN7pjwITrQxaldqYK1121QpgM37EDLyYDXthTHj7XqfHAOUa+9+zaLhfF 6vSg== X-Gm-Message-State: AOAM533t7pmoG1YtJsyqFoOpakApxnm8mGxiiF19t6ZLYFDEn9VelX3l 5DkJD+ehftAHkJ6Xyp6/C35YlO4w+atfKw== X-Google-Smtp-Source: ABdhPJzwBrkrYUTl5VaVgi2bIGRRIlUFMrfl5jf2arv1DZ4WCVk9JZ8ix4iDwI7/6BF/kX0wKeuYgg== X-Received: by 2002:a17:907:12d5:: with SMTP id vp21mr9515782ejb.144.1629669056415; Sun, 22 Aug 2021 14:50:56 -0700 (PDT) Received: from localhost.localdomain ([31.142.76.217]) by smtp.gmail.com with ESMTPSA id q5sm7959755edt.50.2021.08.22.14.50.55 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 22 Aug 2021 14:50:55 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v5 00/10] gnu: desktop: Add seatd-service-type and greetd-service-type Date: Mon, 23 Aug 2021 00:50:38 +0300 Message-Id: <20210822215048.20480-1-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210819143133.6398-1-mail@muradm.net> References: <20210819143133.6398-1-mail@muradm.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) This patch series introduces two new services; - seatd-service-type: simple seat management daemon - greetd-service-type: simple login daemon Both services are very minimalistic in nature. Simple seatd daemon could be said as replacement for elogind-service-type. greetd daemon is simple replacement for mingetty. In addition to the base services, special build of pam-mount module is included as greetd-pam-mount. It is used to provide auto-(mounting/unmounting) of XDG_RUNTIME_DIR. Special build is required to avoid interference with default pam-mount, if used in the system. greetd provides agreety terminal greeter out of the box. Current greetd-service-type includes configuration for greetd-agreety-session variations, i.e. only terminal are supported at the moment. Next step would be adding gtkgreet and/or wlgreet alternatives for graphical greeter. muradm (10): gnu: crates-io: Add rust-enquote 1.0.3 gnu: crates-io: Add rust-pam-sys 0.5.6 gnu: freedesktop: Add greetd 0.7.0 gnu: admin: Add greetd-pam-mount gnu: desktop: Add seatd-service-type gnu: desktop: Add greetd-service-type gnu: base: Add greetd to applied PAM services gnu: pam-mount: Add greetd to applied PAM services gnu: tests: Add seatd/greetd based minimal desktop system tests doc: Add desktop seatd-service-type and greetd-service-type doc/guix.texi | 187 +++++++++++++++++++++++ gnu/packages/admin.scm | 33 ++++ gnu/packages/crates-io.scm | 49 ++++++ gnu/packages/freedesktop.scm | 120 +++++++++++++++ gnu/services/base.scm | 3 +- gnu/services/desktop.scm | 289 ++++++++++++++++++++++++++++++++++- gnu/services/pam-mount.scm | 3 +- gnu/tests/desktop.scm | 190 ++++++++++++++++++++++- 8 files changed, 870 insertions(+), 4 deletions(-) -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Sun Aug 22 17:51:18 2021 Received: (at 49969) by debbugs.gnu.org; 22 Aug 2021 21:51:18 +0000 Received: from localhost ([127.0.0.1]:39922 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mHvN2-0007b9-Nr for submit@debbugs.gnu.org; Sun, 22 Aug 2021 17:51:17 -0400 Received: from mail-ej1-f41.google.com ([209.85.218.41]:41617) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mHvMx-0007Zq-8R for 49969@debbugs.gnu.org; Sun, 22 Aug 2021 17:51:09 -0400 Received: by mail-ej1-f41.google.com with SMTP id d11so32656212eja.8 for <49969@debbugs.gnu.org>; Sun, 22 Aug 2021 14:51:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=nEINoMLrzaS30XC8gG/xmfBFpnpQM1RqcwbtjT5QaQU=; b=P8WT7RwLI/Bi+swmBQ9bU4J8z1oMV9weR0CCnouIBSxSo4uMdl59qL6DSdUslfXzxH xLjgW/B65QZ2SD07pl8qHCg3GLBVINP988MMuuHdyr4j9nem0W4gTeo9QfqEnzaMrDgA UXDUIcbCHWsyahUHaeIr0rNmvwMD5fDGtRB4h6k5FoyC31MdLpaQ3B6TLlcwg3wTirWe +iDxqj8lRb0PjiNwZEqJNX7HE/5bq8KPf26wcLUhJi+bSTPsQ/WKQe2+guLER+u/hyok h15qbyPP+YxI57AMDA5b3qA1WD1VvHgjfleYRQJW745Pax96pUZO9jCHuD7oKDNElGPF z0XQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=nEINoMLrzaS30XC8gG/xmfBFpnpQM1RqcwbtjT5QaQU=; b=d5MR8XfQ5OPorgEAG5t/AbMT91UKeNbtx88ULhgV5PoFESkkk8EloYPf7K+Hm7A/c1 NV45GTD2PAaXZJYYCIXGK0W2ABXAyCfrUnRC9soI76asFC+qt5tJAe7jh28jfXgs8NVR J48Db+keegHp6YGuQfyRDIIl1mM7hVlkP1YMM0/13VfFUgPIWVvTjdYgatAbAduZ+Mne pxXreUUDNgZXOHTz6zHzR5kckRxmY0aV+SBtxRoSh+T2RXnHCqsDzv/cZhR+Wza1W334 f0RbBgYJHTrMvHIfLNaAf5zhOdbjUk9NNsLUKzkATQP4wHvjsHC08BYz8gl71/e7D2En 2y7w== X-Gm-Message-State: AOAM533wLW7XzbqxI9XdEmuLl/VemgCXQx97nPMHUskfaEQ7qBpEk9Jq PkgVj3QTF7KQ7b9whax9U0y2ZY8O2JDkbw== X-Google-Smtp-Source: ABdhPJwE8218gPCFsEfkiKQUvJwS77ZAm4zF7q0RRRybkYZVaaNfEPimTYmgbE6+Sc8uU8IjcY2lmQ== X-Received: by 2002:a17:906:2ad5:: with SMTP id m21mr32408542eje.88.1629669061259; Sun, 22 Aug 2021 14:51:01 -0700 (PDT) Received: from localhost.localdomain ([31.142.76.217]) by smtp.gmail.com with ESMTPSA id q5sm7959755edt.50.2021.08.22.14.50.59 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 22 Aug 2021 14:51:00 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v5 03/10] gnu: freedesktop: Add greetd 0.7.0 Date: Mon, 23 Aug 2021 00:50:41 +0300 Message-Id: <20210822215048.20480-4-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210822215048.20480-1-mail@muradm.net> References: <20210819143133.6398-1-mail@muradm.net> <20210822215048.20480-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Also adds greetd-next which is built from master that includes configurable terminal switch flag, required for smooth operation. See https://lists.sr.ht/~kennylevinsen/greetd-devel/patches/24441 for more details. * gnu/packages/freedesktop.scm (greetd): Add greetd 0.7.0 --- gnu/packages/freedesktop.scm | 120 +++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 693a79c738..aa83eb0a37 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -24,6 +24,7 @@ ;;; Copyright © 2020 Raghav Gururajan ;;; Copyright © 2021 Brendan Tildesley ;;; Copyright © 2021 pineapples +;;; Copyright © 2021 muradm ;;; ;;; 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,123 @@ 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 + ;; issue with terminal activation solved by this feature: + ;; https://lists.sr.ht/~kennylevinsen/greetd-devel/patches/24441 + ;; greetd-next builds from head of #24441 + ;; below substitute is provided as workaround for tagged version + (add-after 'unpack 'patch-terminal-switch + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "greetd/src/server.rs" + (("switch: true,") + "switch: false,")))) + (delete 'package) + (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)))))))) + (native-inputs + `(("linux-pam" ,linux-pam) + ("scdoc" ,scdoc))) + (synopsis "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. + +If you can run it from your shell in a TTY, greetd can start it. + +If it can be taught to speak a simple JSON-based IPC protocol, +then it can be a greeter.") + (license license:gpl3+))) + +(define-public greetd-next + (package + (inherit greetd) + (name "greetd-next") + (version "0.7.0-87e9277") + (source (origin + (method git-fetch) + (uri (git-reference + (url (package-home-page greetd)) + (commit "87e92776543c224676d64316f4519b509c21a0d5"))) + (file-name (git-file-name name version)) + (sha256 + (base32 "13dblvhx5vbsx0yqyz2sq1ayffqwadbkn90p52wd5b66ij1z6v1a")))) + (arguments + (substitute-keyword-arguments (package-arguments greetd) + ((#:cargo-inputs inputs) + `(("rust-nix" ,rust-nix-0.19) + ("rust-pam-sys" ,rust-pam-sys-0.5.6) + ("rust-rpassword" ,rust-rpassword-5) + ("rust-users" ,rust-users-0.11) + ("rust-serde" ,rust-serde-1) + ("rust-serde-json" ,rust-serde-json-1) + ("rust-libc" ,rust-libc-0.2) + ("rust-tokio" ,rust-tokio-1) + ("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 phases) + `(modify-phases ,phases + (delete 'patch-terminal-switch))))))) + (define-public packagekit (package (name "packagekit") -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Sun Aug 22 17:51:18 2021 Received: (at 49969) by debbugs.gnu.org; 22 Aug 2021 21:51:18 +0000 Received: from localhost ([127.0.0.1]:39928 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mHvN8-0007bc-0c for submit@debbugs.gnu.org; Sun, 22 Aug 2021 17:51:18 -0400 Received: from mail-ej1-f53.google.com ([209.85.218.53]:41630) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mHvMy-0007a2-JQ for 49969@debbugs.gnu.org; Sun, 22 Aug 2021 17:51:09 -0400 Received: by mail-ej1-f53.google.com with SMTP id d11so32656252eja.8 for <49969@debbugs.gnu.org>; Sun, 22 Aug 2021 14:51:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=VB+zCSmnI6JPNNd+dmQ7nv1CAeu5yk6+FSBxIyafSxw=; b=y53qC9p+2GugUNpQZ1KPJ2T4kFLH5+RlsHbNr+YHUfAAzkXFGHKMKvdqF7T9yGvRK4 jCzNDqKINSqszNyaDtwaRFUibYYaIf4wJrKsEPIR/RRQlTBlxpvSn0p9NWFoLZptuFGB qoiUgRdCz/e3Z661bvxX4TIEXXeg1/JaQG8DvpRHm40R4Oi4Pk6o4uLH1bc3TktC/Ucw wbMmDjzSfLTW/ZHpkRh5NjN3HZry9TRzt04c/tW664W9/+yFG2FSTRhFEWnPulYROrCH daJNrPZeyeu6zVy6567u5rGcauZiEjBmHTf1Rsr2Re7roeoiutU2kQBfq90AvgUDHsOU hGfw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=VB+zCSmnI6JPNNd+dmQ7nv1CAeu5yk6+FSBxIyafSxw=; b=qhR1yn1WSce9uDDNyn+DfO5XIvQIzKWbROReQhurbVVrUT+K2+sPHcaX2dXi5N9B28 ur9F0BVUB9t+W8b4NdQP3pzlOrBkorr6K3utXA11HXhJ2l8CTRgbBWbniVn4752yi71D KvIa/y0h1Ab3slPD6d7yLaccQLnSrrbwt6BGMoV8NJP5dGvvUlZGfEwhDu/2yVXG80yw 4VARGY3HpDL96347wEsG/ylZhPiMU9bt3lZhMmW7+aGJjn6jTABkyaEm1Fny0+8nkKG5 opuIOWbVWjwX6tuAUoKJhAzQVSAwYBSThPHUd9sSwBnoZaSYBZ36sokvJwQGnOGC2Mq1 S9+Q== X-Gm-Message-State: AOAM5328YiWA7RI5oa+XyBlQcQzo2tiaREaHfGwJVQiTzZYogH5SLacS 23ykYYVpFup2oShgm9W+7ScJEP30hl5wVg== X-Google-Smtp-Source: ABdhPJzXI8BpsFmSEhYo4WnvNP5n9AMboQJk5MsCyUD6WkF+JIUz/8+1trTn93yVA/6j2WcGImUBqw== X-Received: by 2002:a17:906:85d0:: with SMTP id i16mr32870455ejy.552.1629669062644; Sun, 22 Aug 2021 14:51:02 -0700 (PDT) Received: from localhost.localdomain ([31.142.76.217]) by smtp.gmail.com with ESMTPSA id q5sm7959755edt.50.2021.08.22.14.51.01 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 22 Aug 2021 14:51:02 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v5 04/10] gnu: admin: Add greetd-pam-mount Date: Mon, 23 Aug 2021 00:50:42 +0300 Message-Id: <20210822215048.20480-5-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210822215048.20480-1-mail@muradm.net> References: <20210819143133.6398-1-mail@muradm.net> <20210822215048.20480-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 2.0 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: * gnu/packages/admin.scm (greetd-pam-mount): Add greetd-pam-mount --- gnu/packages/admin.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 007f15f9f5..c9bfe0b667 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -42,6 +42,7 @@ ;;; Copyright © 2021 David [...] Content analysis details: (2.0 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 SPF_NONE SPF: sender does not publish an SPF Record 2.0 PDS_OTHER_BAD_TLD Untrustworthy TLDs [URI: selfhosted.xyz (xyz)] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [209.85.218.53 listed in list.dnswl.org] -0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) [209.85.218.53 listed in wl.mailspike.net] -0.0 RCVD_IN_MSPIKE_WL Mailspike good senders X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) * gnu/packages/admin.scm (greetd-pam-mount): Add greetd-pam-mount --- gnu/packages/admin.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 007f15f9f5..c9bfe0b667 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -42,6 +42,7 @@ ;;; Copyright © 2021 David Larsson ;;; Copyright © 2021 WinterHound ;;; Copyright © 2021 Brice Waegeneire +;;; Copyright © 2021 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -4247,6 +4248,38 @@ supports. It can also mount encrypted LUKS volumes using the password supplied by the user when logging in.") (license (list license:gpl2+ license:lgpl2.1+)))) +(define-public greetd-pam-mount + (package + (inherit pam-mount) + (name "greetd-pam-mount") + (arguments + (substitute-keyword-arguments (package-arguments pam-mount) + ((#:configure-flags flags ''()) + `(cons* "--with-rundir=/run/greetd" ,flags)) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'unpack 'patch-config-file-name + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/pam_mount.c" + ((".*define CONFIGFILE .*$") + "#define CONFIGFILE \"/etc/security/greetd_pam_mount.conf.xml\"\n") + (("pam_mount_config") "greetd_pam_mount_config") + (("pam_mount_system_authtok") "greetd_pam_mount_system_authtok")))))))) + (synopsis "pam-mount specifically compiled for use with greetd") + (description + "Pam-mount is a PAM module that can mount volumes when a user logs in. +It supports mounting local filesystems of any kind the normal mount utility +supports. It can also mount encrypted LUKS volumes using the password +supplied by the user when logging in. + +This package inherits pam-mount in the way that it is compiled specifically +for use with greetd daemon. It uses different configuration location and +name space for storing data in PAM. + +greetd-pam-mount is used in configuration of greetd to provide +auto-(mounting/unmounting) of XDG_RUNTIME_DIR in the way that it will not +interfere with default pam-mount configuration."))) + (define-public jc (package (name "jc") -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Sun Aug 22 17:51:19 2021 Received: (at 49969) by debbugs.gnu.org; 22 Aug 2021 21:51:19 +0000 Received: from localhost ([127.0.0.1]:39930 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mHvN8-0007br-Ps for submit@debbugs.gnu.org; Sun, 22 Aug 2021 17:51:19 -0400 Received: from mail-ej1-f44.google.com ([209.85.218.44]:38584) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mHvN0-0007a5-6X for 49969@debbugs.gnu.org; Sun, 22 Aug 2021 17:51:10 -0400 Received: by mail-ej1-f44.google.com with SMTP id n27so776741eja.5 for <49969@debbugs.gnu.org>; Sun, 22 Aug 2021 14:51:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=Sp33gQQBygwHj8x5D/cTuv92CAb24beXS7SlNnF62pw=; b=JWXU6HNjKXKLPCZywxFJOAG5aPyg02aaFLYIgFA2r9wJ5BsHodWxtKErfaM2LXTnjU rNNl4Eyh0aOYNd97Bm1SMiQSVOChoRkLjOjLM69V/ZBf1TtsbHOqwMrbl7gDlrHjoEht TaE91eSMhB8LnUR0aCIF8p1KihF0Si+uUST8fPHoTzXjgmduusaMDWHc5+zLI2UL3/wz anXP6nfaeTgpczgzxxufZX++e93QXrlL14DwjgrmeK11bPkGRFjFZGi0Wo5QWulT50uh DwQhnPB3sJ6NxU3JbdyyPdpUsO1Bfdu5egVTOtlntXJF2jgRS9VlxDltQr6E72rFNjGx SZ9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Sp33gQQBygwHj8x5D/cTuv92CAb24beXS7SlNnF62pw=; b=i41FCDbzRuuhFdcJOHtEFjISX2O5/+E/TqwXTraBCBxba5Yi4qgm65ODpfhkJ9Svrp 7X1zCbX8hJJHQiQlT7HuzpGl3I7PsLlII+ISpk+TRNsPk6XmVFfJgGbid8MBJJOgvKqy QqzRhepUU9Rb7Rjf+0Ntno83BVR6f5n6AwT2LTtWzLcI2eDaed9hoa9xH9FyG01tiWFB AmSxCP4HnvV01cTkuLC/pbNQw0odnize7WISGC48jkWW6fzFXcQfJKZirHHCS2nW/+X6 bccLK0748iuD2tmV72CD+6DfVGuSHmkjdwaOfOlGDIPaplaxQlV0fjOx1yH4738Bg3ej IbZQ== X-Gm-Message-State: AOAM532PvPTT+/PW1YQ3Jp8UFQzxn3MLN44yBkGtSYgA5UvzOPAT55OJ YT7SyevqxrsRXpEm+puBnDpcwnOMMkcAGQ== X-Google-Smtp-Source: ABdhPJwxPsBRo2+HE0T72ud1LXzvKMsQ2ZWrPJxtZLSfg1RR8vRAi+nQEA76tjL6d+jfqKoF4cqgGA== X-Received: by 2002:a17:906:1994:: with SMTP id g20mr24406962ejd.397.1629669064223; Sun, 22 Aug 2021 14:51:04 -0700 (PDT) Received: from localhost.localdomain ([31.142.76.217]) by smtp.gmail.com with ESMTPSA id q5sm7959755edt.50.2021.08.22.14.51.03 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 22 Aug 2021 14:51:03 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v5 05/10] gnu: desktop: Add seatd-service-type Date: Mon, 23 Aug 2021 00:50:43 +0300 Message-Id: <20210822215048.20480-6-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210822215048.20480-1-mail@muradm.net> References: <20210819143133.6398-1-mail@muradm.net> <20210822215048.20480-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/services/desktop.scm: Add seatd-service-type --- gnu/services/desktop.scm | 60 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 59 insertions(+), 1 deletion(-) diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index 64d0e85301..c42db5987e 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -13,6 +13,7 @@ ;;; Copyright © 2020 Tobias Geerinckx-Rice ;;; Copyright © 2020 Reza Alizadeh Majd ;;; Copyright © 2021 Brice Waegeneire +;;; Copyright © 2021 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -39,7 +40,9 @@ #:use-module (gnu services networking) #:use-module (gnu services sound) #:use-module ((gnu system file-systems) - #:select (%elogind-file-systems file-system)) + #:select (%control-groups + %elogind-file-systems + file-system)) #:use-module (gnu system) #:use-module (gnu system setuid) #:use-module (gnu system shadow) @@ -154,6 +157,9 @@ gnome-keyring-configuration? gnome-keyring-service-type + seatd-configuration + seatd-service-type + %desktop-services)) ;;; Commentary: @@ -1182,6 +1188,58 @@ or setting its password with passwd."))) (define polkit-wheel-service (simple-service 'polkit-wheel polkit-service-type (list polkit-wheel))) + +;;; +;;; seatd-service-type -- minimal seat management daemon +;;; + +(define-record-type* seatd-configuration + make-seatd-configuration + seatd-configuration? + (seatd seatd-package (default seatd)) + (user seatd-user (default "root")) + (group seatd-group (default "users")) + (socket seatd-socket (default "/run/seatd.sock")) + (loglevel seatd-loglevel (default "error"))) + +(define (seatd-shepherd-service config) + (list (shepherd-service + (documentation "Minimal seat management daemon") + (requirement '()) + ;; TODO: once cgroups is separate dependency + ;; here we should depend on it rather than elogind + (provision '(seatd elogind)) + (start #~(make-forkexec-constructor + (list #$(file-append (seatd-package config) "/bin/seatd") + "-u" #$(seatd-user config) + "-g" #$(seatd-group config) + "-s" #$(seatd-socket config)) + #:environment-variables + (list (string-append "SEATD_LOGLEVEL=" + #$(seatd-loglevel config))) + #:log-file "/tmp/seatd.log")) + (stop #~(make-kill-destructor))))) + +(define seatd-environment + (match-lambda + (($ _ _ _ socket) + `(("SEATD_SOCK" . ,socket))))) + +(define seatd-service-type + (service-type + (name 'seatd) + (description "Seat management takes care of mediating access +to shared devices (graphics, input), without requiring the +applications needing access to be root.") + (extensions + (list + (service-extension session-environment-service-type seatd-environment) + ;; TODO: once cgroups is separate dependency we should not mount it here + ;; for now it is mounted here, because elogind mounts it + (service-extension file-system-service-type (const %control-groups)) + (service-extension shepherd-root-service-type seatd-shepherd-service))) + (default-value (seatd-configuration)))) + ;;; ;;; The default set of desktop services. -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Sun Aug 22 17:51:19 2021 Received: (at 49969) by debbugs.gnu.org; 22 Aug 2021 21:51:19 +0000 Received: from localhost ([127.0.0.1]:39932 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mHvN9-0007by-6b for submit@debbugs.gnu.org; Sun, 22 Aug 2021 17:51:19 -0400 Received: from mail-ed1-f50.google.com ([209.85.208.50]:46648) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mHvN1-0007aD-IO for 49969@debbugs.gnu.org; Sun, 22 Aug 2021 17:51:12 -0400 Received: by mail-ed1-f50.google.com with SMTP id r19so23084988eds.13 for <49969@debbugs.gnu.org>; Sun, 22 Aug 2021 14:51:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=4RvNuH2f0DUKJXveSm9L/j8vYPWQ0l8XsRGzPRTkteY=; b=lZiUMqXMPb2z+nuJxH8NQyAKawrW3DLiC7RNEjw8mmrlsyv18SK27mtP6H8HrYuYe0 Zqbdp6GoUwL+2Ln05iIzLIWFdtSXqC8aTkZ3fcK7q+IzmqFSD9yLYIvtOqSrTpuy80oc kzbOXqm6Q11JO7vjWmlKdV4MEHQEoYXXWqSliplVjpVktl27EdDuo95pUndMHM6PQ6zG B6yigbCxPLvj/ngsihhLShEYqDPVjnQLQQ5N1BNQ/ApLn8f6+QKD5ksLkSmFr2MZD3T9 pHADxl5b2EaDwnKCQJjmFYUBGZckc9nEzFu2rJRDXFljLHID8HlQO+LRYai5MYibQVzl mC+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=4RvNuH2f0DUKJXveSm9L/j8vYPWQ0l8XsRGzPRTkteY=; b=lCboV54tV+2Z1j3Hgqkgh1ja79oHGHJdzVLi1fBNn+ekZAS9v/e2SgN/MfPMSjCWrp WKdgefjS7k9N7Fav0+vVKmz/Rf3i1l5VhU6jYTiRiQnphZpDmjp2m/6vmDe6bPS72RSB Gtyqb+bWspejI9JPWxwfFGGHdxLvaDN3L3OeMTTPmsGlOpLnfecP7O2Jf1NQOXkzA1Ma +K5fGUIIMBeC41uE0VZOM4XpqjMQuBoUhC/fOQh6XlCZcjgcPbohHGqKZrr/iIYHVuxH eXlHBpNJk54TXrGzTb75ZFIizX6h3/iC3yGo5oX0rgGEVYl1VpUu4sLSJ7DKNxF8IwP3 LWSA== X-Gm-Message-State: AOAM531YA2cqS1/nt/ZIs7YKUtuk3cqs9ltLQabr/mEIFci9xi28aDEx UP7SR9DUwyVcA8BBAZQjqNHzDhC5pg6Udg== X-Google-Smtp-Source: ABdhPJxczoEOPfK/1GaKnP8k0jYd7KDHFtw4a/uDHFyozJlEGWNlzCzSk98DsFKFtnlrgnbREw+QAg== X-Received: by 2002:a05:6402:1601:: with SMTP id f1mr33874946edv.388.1629669065514; Sun, 22 Aug 2021 14:51:05 -0700 (PDT) Received: from localhost.localdomain ([31.142.76.217]) by smtp.gmail.com with ESMTPSA id q5sm7959755edt.50.2021.08.22.14.51.04 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 22 Aug 2021 14:51:05 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v5 06/10] gnu: desktop: Add greetd-service-type Date: Mon, 23 Aug 2021 00:50:44 +0300 Message-Id: <20210822215048.20480-7-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210822215048.20480-1-mail@muradm.net> References: <20210819143133.6398-1-mail@muradm.net> <20210822215048.20480-1-mail@muradm.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Currently, only agreety configuration is provided. * gnu/services/desktop.scm: Add greetd-service-type --- gnu/services/desktop.scm | 229 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 229 insertions(+) diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index c42db5987e..1f4838d4d8 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -49,6 +49,7 @@ #:use-module (gnu system pam) #:use-module (gnu packages glib) #:use-module (gnu packages admin) + #:use-module (gnu packages bash) #:use-module (gnu packages cups) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gnome) @@ -160,6 +161,12 @@ seatd-configuration seatd-service-type + greetd-configuration + greetd-terminal-configuration + greetd-service-type + greetd-agreety-tty-session + greetd-agreety-tty-xdg-session + %desktop-services)) ;;; Commentary: @@ -1240,6 +1247,228 @@ applications needing access to be root.") (service-extension shepherd-root-service-type seatd-shepherd-service))) (default-value (seatd-configuration)))) + +;;; +;;; greetd-service-type -- minimal and flexible login manager daemon +;;; + +(define-record-type* + greetd-agreety-session make-greetd-agreety-session + greetd-agreety-session? + (package greetd-agreety-command-package (default bash)) + (command-bin greetd-agreety-command-bin (default "/bin/bash")) + (command-args greetd-agreety-command-args (default '("-l"))) + (extra-env greetd-agreety-extra-env (default '())) + (command-generator greetd-agreety-command-generator)) + +(define greetd-agreety-tty-session-command + (match-lambda + (($ pkg command-bin command-args extra-env) + (program-file + "agreety-tty-session-command" + #~(begin + (use-modules (ice-9 match)) + (let* ((abs-cmd-bin #$(file-append pkg command-bin))) + (for-each + (match-lambda ((var . val) (setenv var val))) + (quote (#$@extra-env))) + (apply execl abs-cmd-bin abs-cmd-bin + (list #$@command-args)))))))) + +(define greetd-agreety-tty-xdg-session-command + (match-lambda + (($ package command-bin command-args extra-env) + (program-file + "agreety-tty-xdg-session-command" + #~(begin + (use-modules (ice-9 match)) + (let* + ((username (getenv "USER")) + (useruid (passwd:uid (getpwuid username))) + (useruid (number->string useruid)) + (abs-cmd-bin #$(file-append package command-bin))) + (setenv "XDG_SESSION_TYPE" "tty") + (setenv "XDG_RUNTIME_DIR" (string-append "/run/user/" useruid)) + (for-each + (match-lambda ((var . val) (setenv var val))) + (quote (#$@extra-env))) + (apply execl abs-cmd-bin abs-cmd-bin + (list #$@command-args)))))))) + +(define greetd-agreety-tty-session + (greetd-agreety-session + (command-generator greetd-agreety-tty-session-command))) + +(define greetd-agreety-tty-xdg-session + (greetd-agreety-session + (command-generator greetd-agreety-tty-xdg-session-command))) + +(define-record-type* + greetd-terminal-configuration make-greetd-terminal-configuration + greetd-terminal-configuration? + (greetd greetd-package (default greetd-next)) + (config-file-name greetd-config-file-name (thunked) + (default (default-config-file-name this-record))) + (terminal-vt greetd-terminal-vt (default "7")) + (terminal-switch greetd-terminal-switch (default #f)) + (default-session-user greetd-default-session-user (default "greeter")) + (default-session-command greetd-default-session-command + (default greetd-agreety-tty-xdg-session))) + +(define (default-config-file-name config) + (string-join (list "config-" (greetd-terminal-vt config) ".toml") "")) + +(define make-greetd-terminal-default-session-command + (match-lambda + (($ greetd _ _ _ _ default-session-command) + (cond ((greetd-agreety-session? default-session-command) + (let* + ((generator (greetd-agreety-command-generator + default-session-command)) + (command (apply generator (list default-session-command))) + (agreety-bin (file-append greetd "/bin/agreety"))) + (program-file + "agreety-command" + #~(execl #$agreety-bin #$agreety-bin "-c" #$command)))) + (else (program-file "agreety-command-exit" #~(exit #f))))))) + +(define (make-greetd-terminal-configuration-file config) + (let* + ((config-file-name (greetd-config-file-name config)) + (terminal-vt (greetd-terminal-vt config)) + (terminal-switch (greetd-terminal-switch config)) + (default-session-user (greetd-default-session-user config)) + (default-session-command (make-greetd-terminal-default-session-command config))) + (mixed-text-file + config-file-name + "[terminal]\n" + "vt = " terminal-vt "\n" + "switch = " (if terminal-switch "true" "false") "\n" + "[default_session]\n" + "user = " default-session-user "\n" + "command = " default-session-command "\n"))) + +(define %default-motd + (plain-file "motd" "This is the GNU operating system, welcome!\n\n")) + +(define %greetd-accounts + (list (user-account + (name "greeter") + (group "wheel") + (supplementary-groups '("users" "tty" "input" "video" "audio")) + (system? #t)))) + +(define %greetd-file-systems + (list (file-system + (device "none") + (mount-point "/run/greetd/pam_mount") + (type "tmpfs") + (check? #f) + (flags '(no-suid no-dev no-exec)) + (options "mode=0755") + (create-mount-point? #t)))) + +(define %greetd-pam-mount-rules + `((debug (@ (enable "0"))) + (volume (@ (sgrp "users") + (fstype "tmpfs") + (mountpoint "/run/user/%(USERUID)") + (options "noexec,nosuid,nodev,size=1g,mode=0700,uid=%(USERUID),gid=%(USERGID)"))) + (logout (@ (wait "0") + (hup "0") + (term "yes") + (kill "no"))) + (mkmountpoint (@ (enable "1") (remove "true"))))) + +(define-record-type* + greetd-configuration make-greetd-configuration + greetd-configuration? + (motd greetd-motd (default %default-motd)) + (allow-empty-passwords? greetd-allow-empty-passwords? (default #t)) + (terminals greetd-terminals (default '()))) + +(define (make-greetd-pam-mount-conf-file config) + (computed-file + "greetd_pam_mount.conf.xml" + #~(begin + (use-modules (sxml simple)) + (call-with-output-file #$output + (lambda (port) + (sxml->xml + '(*TOP* + (*PI* xml "version='1.0' encoding='utf-8'") + (pam_mount + #$@%greetd-pam-mount-rules + (pmvarrun + #$(file-append greetd-pam-mount + "/sbin/pmvarrun -u '%(USER)' -o '%(OPERATION)'")))) + port)))))) + +(define (greetd-etc-service config) + `(("security/greetd_pam_mount.conf.xml" + ,(make-greetd-pam-mount-conf-file config)))) + +(define (greetd-pam-service config) + (define optional-pam-mount + (pam-entry + (control "optional") + (module #~(string-append #$greetd-pam-mount "/lib/security/pam_mount.so")) + (arguments '("disable_interactive")))) + + (list + (unix-pam-service "greetd" + #:login-uid? #t + #:allow-empty-passwords? + (greetd-allow-empty-passwords? config) + #:motd + (greetd-motd config)) + (lambda (pam) + (if (member (pam-service-name pam) + '("login" "greetd" "su" "slim" "gdm-password")) + (pam-service + (inherit pam) + (auth (append (pam-service-auth pam) + (list optional-pam-mount))) + (session (append (pam-service-session pam) + (list optional-pam-mount)))) + pam)))) + +(define (greetd-shepherd-services config) + (map + (lambda (tc) + (let* + ((greetd-bin (file-append (greetd-package tc) "/sbin/greetd")) + (greetd-conf (make-greetd-terminal-configuration-file tc)) + (greetd-vt (greetd-terminal-vt tc))) + (shepherd-service + (documentation "Minimal and flexible login manager daemon") + (requirement '(user-processes host-name udev virtual-terminal)) + (provision (list (symbol-append + 'term-tty + (string->symbol (greetd-terminal-vt tc))))) + (start #~(make-forkexec-constructor + (list #$greetd-bin "-c" #$greetd-conf) + #:log-file + (string-append "/tmp/greetd." #$greetd-vt ".log"))) + (stop #~(make-kill-destructor))))) + (greetd-terminals config))) + +(define greetd-service-type + (service-type + (name 'greetd) + (description "Provides necessary infrastructure for logging into the +system including @code{greetd} PAM service, @code{pam-mount} module to +mount/unmount /run/user/ directory for user and @code{greetd} +login manager daemon.") + (extensions + (list + (service-extension account-service-type (const %greetd-accounts)) + (service-extension file-system-service-type (const %greetd-file-systems)) + (service-extension etc-service-type greetd-etc-service) + (service-extension pam-root-service-type greetd-pam-service) + (service-extension shepherd-root-service-type greetd-shepherd-services))) + (default-value (greetd-configuration)))) + ;;; ;;; The default set of desktop services. -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Sun Aug 22 17:51:38 2021 Received: (at 49969) by debbugs.gnu.org; 22 Aug 2021 21:51:38 +0000 Received: from localhost ([127.0.0.1]:39934 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mHvNR-0007cS-Pt for submit@debbugs.gnu.org; Sun, 22 Aug 2021 17:51:38 -0400 Received: from mail-ed1-f47.google.com ([209.85.208.47]:44583) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mHvN3-0007aW-6d for 49969@debbugs.gnu.org; Sun, 22 Aug 2021 17:51:13 -0400 Received: by mail-ed1-f47.google.com with SMTP id s3so10869494edd.11 for <49969@debbugs.gnu.org>; Sun, 22 Aug 2021 14:51:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=dh/8N+CXmlWZw91Zsb/y/jh8BpZ7QLm1nQKa/aRV3eI=; b=NEAAvGAGqfXW3hGKMOyMst6Nr4Vh/+fuEIsLl55yF6o9j/4usLCwbGm5C2/EWjFj+u OjSuA5DO+igdGvUpKAoG8l3z0kFZd0INJbC5mZgeAZfJ1/+tkgwG802k1T1NaFx1qGp5 AVEo6wGp7e4wRKfH2txsMWpRubWi6ovqY9TR8xXGd0ZDBUDssJtw/DXGiTIJ0aUQQUyW ZwiE/pvsyASmvxrxiZF+GKLSu+0WkwGGbQTVfk1j9YRr4g9ugHEX1VWMLgsaQCCrDtwP elZ6fqW2ClgSquVPGRS6qJVBXLDsJdEqrhqZLdVlaGyPaFrpHx8oUhG2Py/FXzYRIJAE wGBg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=dh/8N+CXmlWZw91Zsb/y/jh8BpZ7QLm1nQKa/aRV3eI=; b=HbTzu4yH15z0D8DGZ1KnPudllY0xapwEsocRhjzE9VaXx2qeMdVHWWd4cvAwlel8JH F0TbmjZDlbcQbgrj/GP7chqdKQvBPj3Mzr6aZeKO+f6wbPrjctPRiPWmfyYYbH9qh1EZ RTILn+o58pJaNt8vBlkOxIG2mFO8MtNtRsOo04P2cTcwSPdbrMUNot/SFHNW4+qF+zEZ CoevvXirgmcTRckk56sbPYy4W6UrH6rzv65TN9QnSeIVjLLPoG+W15QXvgeFn3ZdAXsM teEd8tNw3q6RXaRrBlAnT5fEEGT+IpmCZzpfVAwU1/dTOQRaBbGNiJbmwxtc/oB7qyjg AHzw== X-Gm-Message-State: AOAM532p7vZnlaKXoCe9idNqOXbS/LFsIgBPR8emugj73Libz/3na6Fm 2UNoYespGKZeNWdDFCdlGQfLdf8A74S8/w== X-Google-Smtp-Source: ABdhPJyJMx5I4uPo3u+/NRDXGRJ6GameOWqA2wXOjb2o5G3uKdVFxngrbIWNbjodD7kFOZ7/f1bgVA== X-Received: by 2002:a05:6402:8da:: with SMTP id d26mr33463125edz.109.1629669067156; Sun, 22 Aug 2021 14:51:07 -0700 (PDT) Received: from localhost.localdomain ([31.142.76.217]) by smtp.gmail.com with ESMTPSA id q5sm7959755edt.50.2021.08.22.14.51.06 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 22 Aug 2021 14:51:06 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v5 07/10] gnu: base: Add greetd to applied PAM services Date: Mon, 23 Aug 2021 00:50:45 +0300 Message-Id: <20210822215048.20480-8-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210822215048.20480-1-mail@muradm.net> References: <20210819143133.6398-1-mail@muradm.net> <20210822215048.20480-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/services/base.scm (pam-limits-service-type): add greetd PAM service to applicable PAM services --- gnu/services/base.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/services/base.scm b/gnu/services/base.scm index c784d312b1..446ecc30f8 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -15,6 +15,7 @@ ;;; Copyright © 2020, 2021 Brice Waegeneire ;;; Copyright © 2021 qblade ;;; Copyright © 2021 Hui Lu +;;; Copyright © 2021 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -1392,7 +1393,7 @@ information on the configuration file syntax." (module "pam_limits.so") (arguments '("conf=/etc/security/limits.conf"))))) (if (member (pam-service-name pam) - '("login" "su" "slim" "gdm-password" "sddm")) + '("login" "greetd" "su" "slim" "gdm-password" "sddm")) (pam-service (inherit pam) (session (cons pam-limits -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Sun Aug 22 17:51:38 2021 Received: (at 49969) by debbugs.gnu.org; 22 Aug 2021 21:51:38 +0000 Received: from localhost ([127.0.0.1]:39936 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mHvNS-0007cU-4V for submit@debbugs.gnu.org; Sun, 22 Aug 2021 17:51:38 -0400 Received: from mail-ej1-f51.google.com ([209.85.218.51]:41638) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mHvN4-0007ak-Ml for 49969@debbugs.gnu.org; Sun, 22 Aug 2021 17:51:14 -0400 Received: by mail-ej1-f51.google.com with SMTP id d11so32656585eja.8 for <49969@debbugs.gnu.org>; Sun, 22 Aug 2021 14:51:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=6iBM8ZI3T3fHzn8rEzUJ2i4QvCgwKO7iPLoH5R+yrGg=; b=CUsk2N7LsSMhzZqY8Ac9vEJhZxde5/2Yo3qjrG3VMnzDIXOhtDU9UNCo2B1IooiyAn nGTUzFpV28MU9HYOQtuwcgJKfhudChReJv8fNl3uECDUH2+bNccZGfMQrEBH5F7RmN4M A3WqhSrvNE2eHZ+Zw9wyCm75jvuBMpLP8P9HfKRe8EMsLzbOHoVX8WJKevIGCuMLQBtM UMvSKieWeqQ4fG6Xqy1NmzES7/gXNf56ZXvfnZL96pwNRh29exFu+5OnIDV3hHtUP8Uw 5DNAt+Ghgi7t48aDs0KvO3CfA+8dAuvAN8G68gevaLB7GwjazJrMpMDMAAksw1KZIoDi 2sCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=6iBM8ZI3T3fHzn8rEzUJ2i4QvCgwKO7iPLoH5R+yrGg=; b=NLqW04Jfw6jy+TosM9686W5TphhenpKe4D1djm8MY5cL+dAfT9oz4MFvFHPcX4wvfV CXmixiu1cB17ZnQVhDlL9qWCR2rO2pbRr7bxVbxYvp9ggqbftc9RdmuqCWGf5q+JWdR6 aWgLGACHvue58Gt870QpUTlN5Sc4MXFw6nonYfMlia59qPKEqJu4BdrzrmGUDsNPc6W1 y0/rAqxMmGlZTWhsxbx7NK4HMucGnNDUhFLMP8FYvgzdz7JepKTIgBEVmkkI/DGSjPS1 61KCMPTjvUs2hFCEri18qDua0okK7F1Sa5Kw1hwZ1HCxFdsQhJCwT0xbEWHK4S24y1wi jIUA== X-Gm-Message-State: AOAM531zv+7hDo6z9X5Ugw5xoagYhxk449nsha1MGGBt3PU3WRlcLZIq WJaLt/45tMYzUTu8n2zangi8hI3r6AjVvg== X-Google-Smtp-Source: ABdhPJy+MQuwodgz6uNaLfTSycYuo1qkSdooc+Z3gn9kxzdtSQfFmDhhvKK9futx0e7QLPRkVRKbqw== X-Received: by 2002:a17:906:9bdc:: with SMTP id de28mr32142591ejc.154.1629669068805; Sun, 22 Aug 2021 14:51:08 -0700 (PDT) Received: from localhost.localdomain ([31.142.76.217]) by smtp.gmail.com with ESMTPSA id q5sm7959755edt.50.2021.08.22.14.51.07 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 22 Aug 2021 14:51:08 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v5 08/10] gnu: pam-mount: Add greetd to applied PAM services Date: Mon, 23 Aug 2021 00:50:46 +0300 Message-Id: <20210822215048.20480-9-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210822215048.20480-1-mail@muradm.net> References: <20210819143133.6398-1-mail@muradm.net> <20210822215048.20480-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/services/pam-mount.scm (pam-mount-service-type): add greetd PAM service to applicable PAM services --- gnu/services/pam-mount.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/services/pam-mount.scm b/gnu/services/pam-mount.scm index 98611462c2..7b25efeb50 100644 --- a/gnu/services/pam-mount.scm +++ b/gnu/services/pam-mount.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2019 Guillaume Le Vaillant +;;; Copyright © 2021 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -90,7 +91,7 @@ (module #~(string-append #$pam-mount "/lib/security/pam_mount.so")))) (list (lambda (pam) (if (member (pam-service-name pam) - '("login" "su" "slim" "gdm-password")) + '("login" "greetd" "su" "slim" "gdm-password")) (pam-service (inherit pam) (auth (append (pam-service-auth pam) -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Sun Aug 22 17:51:38 2021 Received: (at 49969) by debbugs.gnu.org; 22 Aug 2021 21:51:38 +0000 Received: from localhost ([127.0.0.1]:39938 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mHvNS-0007cc-Ck for submit@debbugs.gnu.org; Sun, 22 Aug 2021 17:51:38 -0400 Received: from mail-ej1-f45.google.com ([209.85.218.45]:33306) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mHvN6-0007ar-Cf for 49969@debbugs.gnu.org; Sun, 22 Aug 2021 17:51:16 -0400 Received: by mail-ej1-f45.google.com with SMTP id x11so32862626ejv.0 for <49969@debbugs.gnu.org>; Sun, 22 Aug 2021 14:51:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=8uNEFbhCcZ5WCQmsAiAnbvd+W1moFq/ow1w3NN/2S2c=; b=gbBjsCaaUL0Obf69jTR550NoCL0SkKzZ5/Es6U2QtRrY0urcvRX+g0ZXNaelPO0YIO J4kVgQDQQuY0yDa8336eRP6GKW1nrHC8DZBt0Ls01ZvCuNiH4N2/HHLYU05q7Ayxnnni +Xfz8vpeU0tnGS9VpU+BktEumPuHeWB7HGobYeji8bMqw2ZyClOAEuYiwbcr9odjNQnI ZBEPDT9KT0Dsq8H+MAKEKCGCh73DD3Golfqm84DkQjZ4TAGgA/MdLM995A/vzNPlnHsq XUP9D04036mqfMv53rrj++icA7YeqPZGIdsiGZBKXEOL+nRQLm+Y9bkMjMJTC8+XZww5 ZaaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=8uNEFbhCcZ5WCQmsAiAnbvd+W1moFq/ow1w3NN/2S2c=; b=iyPXpC2ZnCn3TFXH+3wKZE80yEm9xpr4XOhXVHPTN6fspeIno6DanT9GJ9GlYoiq+F TAMsp7T9oY+D/hqgcq2OIUgUdaTQwYlzQV48AvFpiRZ+AXxzYksD0vm9/sH5X314LYc+ 10738MPNYKamWXbwzxUk3J4ym2rxhXS5Yt4iAfyCV5NHzpUSyhvfVq2A9kHlnCBwI7i+ ocadVY7jtHFuUcQN73iDkQgP6QCogOh5+bcGM21L6W1CIgnEv4qAW22Ix/CnZYDhnwt8 2flh0zSRwkEZqc+2XVh+zzNFbTzNXRStivKK8pzBwgSVOVZStJDyE0WWKfH6Sy9Zg558 KTlg== X-Gm-Message-State: AOAM533LSeD3bosdnXLVlwIuxGl3qy8qf86uEidjLOjk6uiUc6lPlmiZ ZaaVsePJZyslk1QypxwM2m0GsfEma3caMA== X-Google-Smtp-Source: ABdhPJyMJe+WEKb4ND0RWK0sTjP1RSqTMX/j4aVWgxAdhcCzCYpbw1cOju93KBR+nMeSGnaTMPpXww== X-Received: by 2002:a17:906:378f:: with SMTP id n15mr6208296ejc.467.1629669070385; Sun, 22 Aug 2021 14:51:10 -0700 (PDT) Received: from localhost.localdomain ([31.142.76.217]) by smtp.gmail.com with ESMTPSA id q5sm7959755edt.50.2021.08.22.14.51.09 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 22 Aug 2021 14:51:09 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v5 09/10] gnu: tests: Add seatd/greetd based minimal desktop system tests Date: Mon, 23 Aug 2021 00:50:47 +0300 Message-Id: <20210822215048.20480-10-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210822215048.20480-1-mail@muradm.net> References: <20210819143133.6398-1-mail@muradm.net> <20210822215048.20480-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/tests/desktop.scm (minimal-desktop): seatd/greetd based minimal desktop --- gnu/tests/desktop.scm | 190 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 189 insertions(+), 1 deletion(-) diff --git a/gnu/tests/desktop.scm b/gnu/tests/desktop.scm index 6aa22fd49b..463fe7e08f 100644 --- a/gnu/tests/desktop.scm +++ b/gnu/tests/desktop.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Ludovic Courtès +;;; Copyright © 2021 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -19,12 +20,15 @@ (define-module (gnu tests desktop) #:use-module (gnu tests) #:use-module (gnu services) + #:use-module (gnu services base) #:use-module (gnu services dbus) #:use-module (gnu services desktop) + #:use-module (gnu system) #:use-module (gnu system vm) #:use-module (guix gexp) #:use-module (srfi srfi-1) - #:export (%test-elogind)) + #:export (%test-elogind + %test-minimal-desktop)) ;;; @@ -103,3 +107,187 @@ #:imported-modules '((gnu services herd) (guix combinators))))) (run-elogind-test (virtual-machine os)))))) + + +;;; +;;; Seatd/greetd based minimal desktop +;;; + +(define %minimal-services + (append + (list + (service seatd-service-type) + (service greetd-service-type + (greetd-configuration + (terminals + (list + (greetd-terminal-configuration (terminal-vt "1") (terminal-switch #t)) + (greetd-terminal-configuration (terminal-vt "2")) + (greetd-terminal-configuration (terminal-vt "3")) + (greetd-terminal-configuration (terminal-vt "4")) + (greetd-terminal-configuration (terminal-vt "5")) + (greetd-terminal-configuration (terminal-vt "6"))))))) + (modify-services %base-services + (delete login-service-type) + (delete mingetty-service-type)))) + +(define-syntax-rule (minimal-operating-system user-services ...) + "Return an operating system that includes USER-SERVICES in addition to +minimal %BASE-SERVICES." + (operating-system (inherit %simple-os) + (services (cons* user-services ... %minimal-services)))) + +(define (run-minimal-desktop-test os vm) + (define test + (with-imported-modules '((gnu build marionette) + (guix build syscalls)) + #~(begin + (use-modules (gnu build marionette) + (guix build syscalls) + (srfi srfi-1) + (srfi srfi-64) + (ice-9 pretty-print)) + + (define marionette + (make-marionette #$vm)) + + (define (file-get-all-strings fname) + (marionette-eval '(use-modules (rnrs io ports)) marionette) + (wait-for-file fname marionette #:read 'get-string-all)) + + (define (wait-for-unix-socket-m socket) + (wait-for-unix-socket socket marionette)) + + (mkdir #$output) + (chdir #$output) + + (test-begin "minimal-desktop") + + (test-assert "seatd is ready" + (wait-for-unix-socket-m "/run/seatd.sock")) + + (test-equal "login user on tty1" + "alice\n" + (begin + ;; Wait for tty1. + (marionette-eval + '(begin + (use-modules (gnu services herd)) + (start-service 'term-tty1)) + marionette) + (marionette-control "sendkey ctrl-alt-f1" marionette) + + ;; login as root change alice password and exit + ;; then login as alice + (for-each + (lambda (cmd) (marionette-type cmd marionette) (sleep 1)) + (list + "root\n" + "passwd alice\n" + "alice\n" + "alice\n" + "exit\n" + "alice\n" + "alice\n" + "id -un > logged-in\n")) + + (file-get-all-strings "/home/alice/logged-in"))) + + (test-equal "validate user environment" + '("SEATD_SOCK=/run/seatd.sock" + "XDG_RUNTIME_DIR=/run/user/1000" + "XDG_SEAT=seat0" + "XDG_VTNR=1") + + (begin + (marionette-type "env > env\n" marionette) + (sleep 1) + + (define user-env (string-tokenize + (file-get-all-strings "/home/alice/env"))) + + (define (expected-var var) + (any (lambda (s) (string-contains var s)) + '("SEATD_SOCK" + "XDG_RUNTIME_DIR" + "XDG_SEAT" + "XDG_VTNR"))) + + (sort (filter expected-var user-env) string env\n" marionette) + (sleep 1) + + (define (sock-var? var) + (any (lambda (s) (string-contains var s)) + '("SEATD_SOCK" "GREETD_SOCK"))) + + (define (sock-var-sock var) + (car (cdr (string-split var #\=)))) + + (let* + ((out (file-get-all-strings "/home/alice/env")) + (out (string-tokenize out)) + (out (filter sock-var? out)) + (socks (map sock-var-sock out)) + (socks (map wait-for-unix-socket-m socks))) + (and (= 2 (length socks)) (every identity socks))))) + + (test-assert "greetd is ready" + (begin + (marionette-type "ps -C greetd -o pid,args --no-headers > ps-greetd\n" + marionette) + (sleep 1) + + (define (greetd-daemon? cmd) + (string-contains cmd "config")) + + (define (greetd-cmd-to-pid cmd) + (car (string-split cmd #\space))) + + (define (greetd-pid-to-sock pid) + (string-append "/run/greetd-" pid ".sock")) + + (let* ((out (file-get-all-strings "/home/alice/ps-greetd")) + (out (string-split out #\newline)) + (out (map string-trim-both out)) + (out (filter greetd-daemon? out)) + (pids (map greetd-cmd-to-pid out)) + (socks (map greetd-pid-to-sock pids)) + (socks (map wait-for-unix-socket-m socks))) + (every identity socks)))) + + ;; a bit weak, but tests everything at once actually + (test-equal "check /run/user/ mounted and writable" + "alice\n" + (begin + (marionette-type "echo alice > /run/user/1000/test\n" marionette) + (file-get-all-strings "/run/user/1000/test"))) + + (test-assert "screendump" + (begin + (marionette-control (string-append "screendump " #$output + "/tty1.ppm") + marionette) + (file-exists? "tty1.ppm"))) + + (test-end) + (exit (= (test-runner-fail-count (test-runner-current)) 0))))) + + (gexp->derivation "minimal-desktop" test)) + +(define %test-minimal-desktop + (system-test + (name "minimal-desktop") + (description + "Test whether we can log in when seatd and greetd is enabled") + (value + (let* ((os (marionette-operating-system + (minimal-operating-system) + #:imported-modules '((gnu services herd) + (guix combinators)))) + (vm (virtual-machine os))) + (run-minimal-desktop-test (virtualized-operating-system os '()) + #~(list #$vm)))))) -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Sun Aug 22 17:51:39 2021 Received: (at 49969) by debbugs.gnu.org; 22 Aug 2021 21:51:39 +0000 Received: from localhost ([127.0.0.1]:39940 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mHvNS-0007cj-RP for submit@debbugs.gnu.org; Sun, 22 Aug 2021 17:51:39 -0400 Received: from mail-ej1-f52.google.com ([209.85.218.52]:45877) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mHvN7-0007az-M1 for 49969@debbugs.gnu.org; Sun, 22 Aug 2021 17:51:18 -0400 Received: by mail-ej1-f52.google.com with SMTP id e21so16833970ejz.12 for <49969@debbugs.gnu.org>; Sun, 22 Aug 2021 14:51:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=YqgNTsAIUCjuQ/rnza+49PvRULkOaokN/a+4k2+tycE=; b=EwWrkCQQLch4tm9VsHuTD9bVQqPjStVfU/tLoTxJFNk47EPz6pdOJAmm5jy1SF/z6O 9AwvzLxCWk8TSqV68ymdmyFF7HI2ZQGaUbDGkNeioIU3OY/P1DUZwNXWlPdQreZ94fc/ OxdADVShlBw7xdNRgO9OyLr1JoclkBLdMoZKKTMhQfqJdUSnkx6tOqd6a9PL9FAHc/TT CzEBJuMIqvnaZnjP3e1GVvaSydAFcE+AsJ1PR4zF18Q3Iebcc48nKyq/nc2Vnu0OSx5a HZxJvf8uxiYp8rAjfxpIiCL+1OFEOZsVzKcX5kyWjnExAnvzaxTNw2wZ44eYIko4ALGY aEKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=YqgNTsAIUCjuQ/rnza+49PvRULkOaokN/a+4k2+tycE=; b=PyVVl3WgwcCkVC6nOFX6RQ7IYi1YxeGjObGa+OWt9yollnsmFOeHKredNacodCrD4c ecYuxIXRVin1frkpOBvb0VlzlLI98k92uCMeRgdDlf8dAcnBmN62EZidZ09IrXn+HSaE KaYu7fzeaoldliQaHSCEsDJvd4GCtZKdEHp18MOM/OxHQH0STmWUoAcu19oh+3CJ1gxM bvGkiqiyZua1uBeirGK/MRpJ9VJqRnO+IkVim+weonoZuS04xBsuyQdmi4HaN6nfws1s OOLE231GdFK3bMQzAsJrStMExFEer9rE7je9BFcd279IV6QIA6JnoupKw9C1k79eafz0 w5lA== X-Gm-Message-State: AOAM533Qh69OgrZrCGFJyQGST4t3pv+rvjvT9Uqf5mkIq0OSqiqkG3Cq wWeDFh8xlBJ5NBAhYNY5TVnE9BUbJ//iFA== X-Google-Smtp-Source: ABdhPJwHOOKzxfRMKHNi9TlyW2ypqpU7AYBsJ5fZyg/hajxlLhQbjac1NL/1uiyAKOnaIsJReZj+NQ== X-Received: by 2002:a17:906:49d5:: with SMTP id w21mr32029436ejv.30.1629669071612; Sun, 22 Aug 2021 14:51:11 -0700 (PDT) Received: from localhost.localdomain ([31.142.76.217]) by smtp.gmail.com with ESMTPSA id q5sm7959755edt.50.2021.08.22.14.51.10 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 22 Aug 2021 14:51:11 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v5 10/10] doc: Add desktop seatd-service-type and greetd-service-type Date: Mon, 23 Aug 2021 00:50:48 +0300 Message-Id: <20210822215048.20480-11-mail@muradm.net> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210822215048.20480-1-mail@muradm.net> References: <20210819143133.6398-1-mail@muradm.net> <20210822215048.20480-1-mail@muradm.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * doc/guix.texi (Desktop Services): Provide documentation for seatd-service-type and greetd-service-type including configuration and sample usage. --- doc/guix.texi | 187 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 187 insertions(+) diff --git a/doc/guix.texi b/doc/guix.texi index 2b8448c856..1590c29f9b 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -96,6 +96,7 @@ Copyright @copyright{} 2021 Domagoj Stolfa@* Copyright @copyright{} 2021 Hui Lu@* Copyright @copyright{} 2021 pukkamustard@* Copyright @copyright{} 2021 Alice Brenon@* +Copyright @copyright{} 2021 muradm@* Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -19767,6 +19768,192 @@ and ``passwd'' is with the value @code{passwd}. @end table @end deftp +@defvr {Scheme Variable} seatd-service-type +A minimal seat management daemon, and a universal seat management library. + +Seat management takes care of mediating access to shared devices (graphics, +input), without requiring the applications needing access to be root. + +In general should be used as replacement to @code{elogind-service-type}. + +@lisp +(append + (list + ;; make sure seatd is running + (service seatd-service-type) + + (service greetd-service-type + (greetd-configuration + (terminals + (list + ;; lets have terminals 1, 2 and 3 run default XDG terminal session + ;; also ask terminal 1 to become active + (greetd-terminal-configuration (terminal-vt "1") (terminal-switch #t)) + (greetd-terminal-configuration (terminal-vt "2")) + (greetd-terminal-configuration (terminal-vt "3")) + ;; and terminals 4, 5 and 6 plain bash terminal session + ;; although not so plain, just to illustrate flexibility + (greetd-terminal-configuration + (terminal-vt "4") + (default-session-command greetd-agreety-tty-session)) + (greetd-terminal-configuration + (terminal-vt "5") + (default-session-command greetd-agreety-tty-session)) + (greetd-terminal-configuration + (terminal-vt "6") + (default-session-command greetd-agreety-tty-session)))))) + + ;; normaly one would want %base-services + (modify-services %base-services + ;; seatd/greetd combination can replace these + ;; greetd provides its own PAM service + (delete login-service-type) + (delete mingetty-service-type))) + +@end lisp + +@end defvr + +@deftp {Data Type} seatd-configuration +Configuration record for the seatd daemon service. + +@table @asis +@item @code{seatd} (default: @code{seatd}) +The seatd package to use. + +@item @code{user} (default: @samp{"root"}) +User to own the seatd socket. + +@item @code{group} (default: @samp{"users"}) +Group to own the seatd socket. + +@item @code{socket} (default: @samp{"/run/seatd.sock"}) +Where to create the seatd socket. + +@item @code{loglevel} (default: @samp{"error"}) +Log level to output logs. Possible values: @samp{"silent"}, @samp{"error"}, +@samp{"info"} and @samp{"debug"}. + +@end table +@end deftp + +@defvr {Scheme Variable} greetd-service-type +greetd is a minimal and flexible login manager daemon that makes no +assumptions about what you want to launch. + +If you can run it from your shell in a TTY, greetd can start it. If it +can be taught to speak a simple JSON-based IPC protocol, then it can +be a greeter. + +@code{} provides necessary infrastructure for +logging in users, including: + +@itemize @bullet +@item +@code{greetd} PAM service + +@item +Special variation of @code{pam-mount} to mount @code{XDG_RUNTIME_DIR} + +@end itemize + +@end defvr + +@deftp {Data Type} greetd-configuration +Configuration record for the greetd service. + +@table @asis +@item @code{motd} +A file-like object containing the ``message of the day''. + +@item @code{allow-empty-passwords?} (default: @code{#t}) +Allow empty passwords by default so that first-time users can log in when +the 'root' account has just been created. + +@item @code{terminals} (default: @code{'()}) +List of @code{} per terminal for which +@code{greetd} should be started. + +@end table +@end deftp + +@deftp {Data Type} greetd-terminal-configuration +Configuration record for per terminal greetd daemon service. + +@table @asis +@item @code{greetd} (default: @code{greetd}) +The greetd package to use. + +@item @code{config-file-name} +Configuration file name to use for greetd daemon. Generally, autogenerated +derivation based on @code{terminal-vt} value. + +@item @code{terminal-vt} (default: @samp{"7"}) +The VT to run on. Use of a specific VT with appropriate conflict avoidance +is recommended. + +@item @code{terminal-switch} (default: @code{#f}) +Make this terminal active on start of @code{greetd}. + +@item @code{default-session-user} (default: @samp{"greeter"}) +The user to use for running the greeter. + +@item @code{default-session-command} (default: @code{greetd-agreety-tty-xdg-session}) +The command-line to run to start the default session. + +Possible values are: + +@itemize @bullet +@item +@code{greetd-agreety-tty-session} - bash terminal session + +@item +@code{greetd-agreety-tty-xdg-session} - bash terminal session with XDG environment + +@item +@code{greetd-agreety-session} - custom instance of terminal session +@end itemize + +@end table +@end deftp + +@deftp {Data Type} greetd-agreety-session +Configuration record for the agreety greetd greeter. + +@table @asis +@item @code{package} (default: @code{bash}) +The package of command. + +@item @code{command-bin} (default: @samp{"/bin/bash"}) +Path to binary relative to @code{package}. + +@item @code{command-args} (default: @code{'("-l")}) +Command arguments to pass to command. + +@item @code{extra-env} (default: @code{'()}) +Extra environment variables to set on login. + +@item @code{command-generator} +Function that receives instance of this configuration as an argument and +returns @code{program-file} that can be used with @code{agreety} greeter. + +Both @code{greetd-agreety-tty-session} and @code{greetd-agreety-tty-xdg-session} +uses @code{greetd-agreety-session} under the hood. + +@end table +@end deftp + +@defvr {Scheme Variable} greetd-agreety-tty-session +Provides instance of @code{greetd-agreety-session} which starts @samp{"bash -l"} +on login. +@end defvr + +@defvr {Scheme Variable} greetd-agreety-tty-xdg-session +Provides instance of @code{greetd-agreety-session} which starts @samp{"bash -l"} +on login. Additionally, will set @code{XDG_SESSION_TYPE} and +@code{XDG_RUNTIME_DIR} environment variables for session. +@end defvr + @node Sound Services @subsection Sound Services -- 2.32.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 06 11:26:56 2021 Received: (at 49969) by debbugs.gnu.org; 6 Sep 2021 15:26:56 +0000 Received: from localhost ([127.0.0.1]:54220 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mNGWO-0006kJ-99 for submit@debbugs.gnu.org; Mon, 06 Sep 2021 11:26:56 -0400 Received: from mail-wm1-f47.google.com ([209.85.128.47]:45794) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mNGWL-0006jo-Tl for 49969@debbugs.gnu.org; Mon, 06 Sep 2021 11:26:55 -0400 Received: by mail-wm1-f47.google.com with SMTP id j17-20020a05600c1c1100b002e754875260so182724wms.4 for <49969@debbugs.gnu.org>; Mon, 06 Sep 2021 08:26:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=uh6CPbMblWOqVk6uBN+dj1PDmjgNn8dTFg9zeMKXgOQ=; b=sn+ngqKnzxS73FIit5gMNljFZkgaiplP/ytDCsLQc/lzAXloTbe9LmeVdkecAeuWDp 1s2u7S/dWXgdTDhwASXuQsu5X0+BO1nZseqGwy7as4k7OorPCg9N9G6h2fkz0aSTmPVu xoV3ljvt64bWPklLmdwOulJ3CKm/QbcpoHmHdjwKefq/+mq1JXdEpQTPLHkCckOWgkYC GxCrhFOtYO+xOks6S7BTcsBojidoph7taGQrhuoIQeYx9mGVxxRWdZe1Zx7QvCcZONeg FB5oFw1LMcB5C+kdgp/v2dtkmaAkwMr7uKLiE6VDVCsGH0i49+5ZkPSryyKRJmq0/DCE 3Zlw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=uh6CPbMblWOqVk6uBN+dj1PDmjgNn8dTFg9zeMKXgOQ=; b=siaQiVIrqs3HS2Uc7lvc4ZceEgUU6QvPaCovLJi1dbEyyPdj7EvhKevr/nOoPV6zXQ fHF3EbYjv/zCtVRR9HHVKIP30sBlSLeZ5cI/q2ge9YZ4qgSloWr/vxX18ozHWSc99s4/ jTp90KfWcnwog2hlftjfpVg2xbrGQUn+VxUNbKDiZDBuoscO9SysBxYdTTHGqcP+BK/e FhYADYsSLAU8d51DY+5xV5kXUuhtPatHN8/7YZgbw395B7poXpBRi0K0iXpaeGvnsgZj cgLccXMRWNDljDp7trOwKLxshCV9pmjjv3ypdGY9yOtdbd6r7DCrBoWogByJL/8bbqLF PC8A== X-Gm-Message-State: AOAM532eBz4O8HBKd6CphMO9FWM+SHujduel0klDUtGxymJ9lhHFYA2A COu6UTi0r4Npnymmh4hAj1Ne7xGXUqSJCue6 X-Google-Smtp-Source: ABdhPJxHcsPfGWlhQYUCKvbFU5H5AKPmb5zrNlmXCQWn0I6+zv6xWmHmtkcxcuLBY7Z4Add/X+0kXw== X-Received: by 2002:a1c:c911:: with SMTP id f17mr11906625wmb.190.1630942007602; Mon, 06 Sep 2021 08:26:47 -0700 (PDT) Received: from localhost.localdomain ([176.234.10.27]) by smtp.gmail.com with ESMTPSA id m4sm7687896wml.28.2021.09.06.08.26.46 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Sep 2021 08:26:47 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v6 0/8] gnu: Add seatd-service-type and greetd-service-type. Date: Mon, 6 Sep 2021 18:26:33 +0300 Message-Id: <20210906152641.11020-1-mail@muradm.net> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210822215048.20480-1-mail@muradm.net> References: <20210822215048.20480-1-mail@muradm.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) In this version: - libseat and seatd are split into separate packages - libseat and seatd now live in (gnu packages admin) - original seatd is removed from (gnu packages freedesktop) - greetd is updated to 0.8.0 and moved to (gnu packages admin) - greetd default-session-command configurations is greatly simplified. - greetd-service-type is now live in (gnu services base) - documentation is splitted and included in commits of each service muradm (8): gnu: crates-io: Add rust-enquote-1 1.0.3. gnu: crates-io: Add rust-pam-sys 0.5.6. gnu: admin: Add greetd 0.8.0. gnu: admin: Add greetd-pam-mount. gnu: base: Add greetd-service-type. gnu: admin: Add libseat 0.5.0 and move seatd. gnu: desktop: Add seatd-service-type. gnu: tests: Add seatd/greetd based minimal desktop system tests. doc/guix.texi | 175 ++++++++++++++++++++++++++++ gnu/packages/admin.scm | 164 ++++++++++++++++++++++++++ gnu/packages/crates-io.scm | 49 ++++++++ gnu/packages/freedesktop.scm | 30 ----- gnu/services/base.scm | 218 ++++++++++++++++++++++++++++++++++- gnu/services/desktop.scm | 60 +++++++++- gnu/services/pam-mount.scm | 2 +- gnu/tests/desktop.scm | 212 +++++++++++++++++++++++++++++++++- 8 files changed, 876 insertions(+), 34 deletions(-) -- 2.33.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 06 11:26:58 2021 Received: (at 49969) by debbugs.gnu.org; 6 Sep 2021 15:26:58 +0000 Received: from localhost ([127.0.0.1]:54224 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mNGWQ-0006kd-Et for submit@debbugs.gnu.org; Mon, 06 Sep 2021 11:26:58 -0400 Received: from mail-wr1-f46.google.com ([209.85.221.46]:35658) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mNGWM-0006jq-Q9 for 49969@debbugs.gnu.org; Mon, 06 Sep 2021 11:26:55 -0400 Received: by mail-wr1-f46.google.com with SMTP id i6so10400335wrv.2 for <49969@debbugs.gnu.org>; Mon, 06 Sep 2021 08:26:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=nGRF6KAbypoktvlGEItN5gIlD/JiWED8K+c6mSAChh8=; b=RgRMqFtyM2nXCxEWllaLV/f/ZorUElNZY8n2//WMMLp3ArLP6eTyqlVfodrBg6GfPr rsMP7yQLh4E/luZEltNbGcc7JcIplYFQdox60vg9nD8ryPWxseXTjh25IueWFI0qQXio 61G1XU2tYwfK3vMqmIXZ6hWZtVCM2AIxyohk2NZgDe82Vomd7bIwEzSIhYIiw68NkI31 PdMm96rKAzzj5i9s3xuGKaBl5OBCYNGT/c6AnsJxztU/8by0E7KqjrBT5itIAU3DGZyU 1fR2t5sTRRHRzJSyi9bKQc7N0A56daRa7f0u6Tkhnap9LyAtSEuAVocY21tHSqKj5O8R bdaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=nGRF6KAbypoktvlGEItN5gIlD/JiWED8K+c6mSAChh8=; b=fjukUBfkV8O4up1RqwRa8+BI5c+3EV8qbD+RPEgHdsEHD47tzc3bdZGUv95GutYoDg EXj8QwHHSpBCYbsMKIRiWhiI2zFdqptSIJCuOA56lasEmATkqtotN9oxKufMHBKD3Taq EAQdCBxN1eo1kOHXzEoK/Su+TcZEycGQ6KuYzKuaYy/GwNvJIs3LXP0ibMadxKcO14xM qADzMkqp+9gRlnOWEWaDAr0Iz3CroKM3FiExtoXLvBNO+/NLPIX/yGw+rDQ4WeM70Fsx bfZjL1XsmBj+yd2ElVwh3n8fsEXdmzDuSglNJk8MxCh9879xLZaB66UwcpgLyG+Spj7e AxOA== X-Gm-Message-State: AOAM532vaewMgPjWc1XJi1d0gaj6NQLEFmfLIeUxHjMhN377BZ0PjTVU rAGMv5U0gBe98Ng4kZ7/ksmZEc1FLF1wyoFa X-Google-Smtp-Source: ABdhPJyth0fTJEP9v0C2opdvyGfKLB8Rdlj3AKdzxGMASaH71Q4ZZGT6TpBy3fOndM7PQc/rbpkmSg== X-Received: by 2002:a05:6000:188d:: with SMTP id a13mr13837868wri.99.1630942008553; Mon, 06 Sep 2021 08:26:48 -0700 (PDT) Received: from localhost.localdomain ([176.234.10.27]) by smtp.gmail.com with ESMTPSA id m4sm7687896wml.28.2021.09.06.08.26.47 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Sep 2021 08:26:48 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v6 1/8] gnu: crates-io: Add rust-enquote-1 1.0.3. Date: Mon, 6 Sep 2021 18:26:34 +0300 Message-Id: <20210906152641.11020-2-mail@muradm.net> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210906152641.11020-1-mail@muradm.net> References: <20210822215048.20480-1-mail@muradm.net> <20210906152641.11020-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/crates-io.scm (rust-enquote-1): New variable --- gnu/packages/crates-io.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index aee7a6f756..7c915df487 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -18,6 +18,7 @@ ;;; Copyright © 2021 Antero Mejr ;;; Copyright © 2021 Maxim Cournoyer ;;; Copyright © 2021 Vinicius Monego +;;; Copyright © 2021 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -57383,3 +57384,24 @@ variant of this library is available separately as @code{im}.") (description "Generate Rust register maps (`struct`s) from SVD files") (license (list license:expat license:asl2.0)))) + +(define-public rust-enquote-1 + (package + (name "rust-enquote") + (version "1.0.3") + (home-page "https://github.com/reujab/enquote") + (source + (origin + (method url-fetch) + (uri (crate-uri "enquote" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0vm687r2wwgc3d3l2iqhag9wgkql6k93sdvjxvmfkdpksajpij1f")))) + (build-system cargo-build-system) + (synopsis + "A Rust library quotes, unquotes, and unescapes strings") + (description + "A Rust library quotes, unquotes, and unescapes strings") + (license license:unlicense))) -- 2.33.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 06 11:26:58 2021 Received: (at 49969) by debbugs.gnu.org; 6 Sep 2021 15:26:59 +0000 Received: from localhost ([127.0.0.1]:54226 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mNGWQ-0006kf-Mg for submit@debbugs.gnu.org; Mon, 06 Sep 2021 11:26:58 -0400 Received: from mail-wm1-f50.google.com ([209.85.128.50]:34574) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mNGWN-0006jr-GS for 49969@debbugs.gnu.org; Mon, 06 Sep 2021 11:26:55 -0400 Received: by mail-wm1-f50.google.com with SMTP id v20-20020a1cf714000000b002e71f4d2026so135052wmh.1 for <49969@debbugs.gnu.org>; Mon, 06 Sep 2021 08:26:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=ITcOEM+wtNs9cmAKCTGmBFvPFkXnzJdOpIyV8Z++toU=; b=aNklrpHYaI4HWNjvNgRST2EFHkTH/Sp/nRem/gqTSNjTxfh11RTd4cYECVAxTi4Y8D yJMKHTZLUJeqxshawiF6ZymxKZDQ6yIeu1qEX3UQC4DQ+6iabTP0pW/8AECuw0Wu/E3w WvjWGUJy70WBqnGRcT4uiA2ZiGYqi76gSApSfsu4wZ4IB70k7MNZr6PaurXUTDX8qIY5 AQ5GIOu6btGekA21bj+XdSTMXfJUqE4RZku+dVQsNBssJYY9PZoDO+5K+yLJy18cpZ2J ZxJ8yDUHsyVK+/6SSmJISHew5TtB2bhTUWEQdoui8rzpFHdJP1Lb8jzXAZz4hnFmKvPT ytmg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=ITcOEM+wtNs9cmAKCTGmBFvPFkXnzJdOpIyV8Z++toU=; b=RZNexOi9OCb0u4tLAXfhSxE/J3T1AssJggn1qydQjzGhGoRZcwvT9iSc3pbLyudfNI wuI09T+W/AjO+dO3EGhRSE2QGwekDbgbCve1Ly8nG8zQGjHr5WSugamfdHlwoZ0mRAAE fp4mg7d3Z0M7dEQY6Xd0n8YZFqHg+SUsf41IZZWgQPlASCGijoRSSnlzt8vHkEvdZbMF 2hJ4sr+vB+Gcb8M88B4pV3t8HEQWeupcXK1l04TOq8etoXRiFchL4CTsK/RNdZL8aNPP Kc7b321F7ZG+2FhR8H7NAQhEGNyYV4ZAORQy9beV3YLNIW+6l8T5HV2MLV64+2Kl97nY nxhw== X-Gm-Message-State: AOAM531ryo8UY6zJSUX2JZi/u4OvkO6izP1mytyWv+zLmIjNMV04hE06 zZh+X8POQKAjAuEW4xv0n0BQJHXDmEHDEdod X-Google-Smtp-Source: ABdhPJy+Z5c4Z92iqfgmk6s7AWdwtuvEFvRImNZJEQJqEpqAXdy5DhvkLJmUx2hNgfL0YvgIyckARA== X-Received: by 2002:a05:600c:3b26:: with SMTP id m38mr11735689wms.155.1630942009582; Mon, 06 Sep 2021 08:26:49 -0700 (PDT) Received: from localhost.localdomain ([176.234.10.27]) by smtp.gmail.com with ESMTPSA id m4sm7687896wml.28.2021.09.06.08.26.48 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Sep 2021 08:26:49 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v6 2/8] gnu: crates-io: Add rust-pam-sys 0.5.6. Date: Mon, 6 Sep 2021 18:26:35 +0300 Message-Id: <20210906152641.11020-3-mail@muradm.net> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210906152641.11020-1-mail@muradm.net> References: <20210822215048.20480-1-mail@muradm.net> <20210906152641.11020-1-mail@muradm.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/crates-io.scm (rust-pam-sys-0): New variable --- gnu/packages/crates-io.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 7c915df487..6f962dec9e 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -55,6 +55,7 @@ #:use-module (gnu packages glib) #:use-module (gnu packages image) #:use-module (gnu packages jemalloc) + #:use-module (gnu packages linux) #:use-module (gnu packages llvm) #:use-module (gnu packages multiprecision) #:use-module (gnu packages nettle) @@ -57405,3 +57406,29 @@ variant of this library is available separately as @code{im}.") (description "A Rust library quotes, unquotes, and unescapes strings") (license license:unlicense))) + +(define-public rust-pam-sys-0 + (package + (name "rust-pam-sys") + (version "0.5.6") + (home-page "https://github.com/1wilkens/pam-sys") + (source + (origin + (method url-fetch) + (uri (crate-uri "pam-sys" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0d14501d5vybjnzxfjf96321xa5wa36x1xvf02h02zq938qmhj6d")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-libc" ,rust-libc-0.2)))) + (native-inputs + `(("linux-pam" ,linux-pam))) + (synopsis + "Rust FFI wrappers for the Linux Pluggable Authentication Modules (PAM)") + (description + "Rust FFI wrappers for the Linux Pluggable Authentication Modules (PAM)") + (license (list license:expat license:asl2.0)))) -- 2.33.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 06 11:27:03 2021 Received: (at 49969) by debbugs.gnu.org; 6 Sep 2021 15:27:03 +0000 Received: from localhost ([127.0.0.1]:54229 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mNGWR-0006ks-Vi for submit@debbugs.gnu.org; Mon, 06 Sep 2021 11:27:03 -0400 Received: from mail-wr1-f47.google.com ([209.85.221.47]:38600) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mNGWO-0006jt-QQ for 49969@debbugs.gnu.org; Mon, 06 Sep 2021 11:26:57 -0400 Received: by mail-wr1-f47.google.com with SMTP id u16so10382224wrn.5 for <49969@debbugs.gnu.org>; Mon, 06 Sep 2021 08:26:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=+kPyJClvY2gokRyY+vFO+UTd8Le0znSYq8SQWJwy+lM=; b=VGuVAB6Dynhxt303SzSF/VcscTZR1QRKauTCKLe9qIZzIDYFBd44egxUdVd0jsRlHN h5jYpNWRcrKBSV+mtnZ5uYfBREr66rjihoCP+2g2kj3BOAZmyaoFVJaDoBPSceYP/4g8 gLot+h1KvM2TiIfVA89pUIRRxNnr3lf67x++yBeGxDq8RiZEK37mozXqJaOHKD5/FDBB EJrD6SCsVzgQSQXFvczosp0/75frorbgrI/Zr0EKZUSRxecVkrYetpKhoCIy4ulRcrz3 NTIWYh+EC1fuBWsMWsclmKhSVazn9EkHRCRDiobWG31gRpyCB4/6AZbQA3kfCvJXAwL6 g7zQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=+kPyJClvY2gokRyY+vFO+UTd8Le0znSYq8SQWJwy+lM=; b=rpLvA0VeQ+fE5WmBz73Jv1uLP+hO3SjU6l3PoaTRethJd1Y9mMfDf0YNhxVWoWOOVq eKU8gPJEhN5fBs95shpEeoBiH3zkgjX9USZADtYn+cujXYtLxmbbeufVVR7zqtdN0arG 7F/6IP/4GwXGBydF8RgzxaofE3HPujGxd8az9dfzYyoGRUzpJUuMGVO0MYAB/RYCl1zO Le0Vof5PTrY8E8atWuHbarCUKaunudAY1ZeWB4O1cDZs3lLycRBE3+Cd8UjKm9/OMhsY PmFhinxSOiBRTmb0Zg2e9Ewzkweax8WxoE37JZuEPRqwB4WnbvDNCj1vNrf6bp8MT9V7 yozw== X-Gm-Message-State: AOAM5316pqXLuihylpV3Kdyv3UIm38G3q4fDndEjCyJzM6oukMCP0v37 nxyGpGeiWo7Q6JB3YWQky18dVfZdCT5qqp4+ X-Google-Smtp-Source: ABdhPJxSS7xONKSKQXj6u8aF4RrTqL0ITwLoyto4/cak0KG2SFCJ0EyYg14P63v05wv7uZSltTlwTw== X-Received: by 2002:adf:9f4a:: with SMTP id f10mr13921981wrg.384.1630942010706; Mon, 06 Sep 2021 08:26:50 -0700 (PDT) Received: from localhost.localdomain ([176.234.10.27]) by smtp.gmail.com with ESMTPSA id m4sm7687896wml.28.2021.09.06.08.26.49 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Sep 2021 08:26:50 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v6 3/8] gnu: admin: Add greetd 0.8.0. Date: Mon, 6 Sep 2021 18:26:36 +0300 Message-Id: <20210906152641.11020-4-mail@muradm.net> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210906152641.11020-1-mail@muradm.net> References: <20210822215048.20480-1-mail@muradm.net> <20210906152641.11020-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/admin.scm (greetd): New variable --- gnu/packages/admin.scm | 79 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index db820b28c1..de59c793cc 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -44,6 +44,7 @@ ;;; Copyright © 2021 Brice Waegeneire ;;; Copyright © 2021 Maxim Cournoyer ;;; Copyright © 2021 Maxime Devos +;;; Copyright © 2021 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -61,6 +62,7 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu packages admin) + #:use-module (guix build-system cargo) #:use-module (guix build-system cmake) #:use-module (guix build-system emacs) #:use-module (guix build-system glib-or-gtk) @@ -87,6 +89,7 @@ #:use-module (gnu packages c) #:use-module (gnu packages check) #:use-module (gnu packages compression) + #:use-module (gnu packages crates-io) #:use-module (gnu packages cross-base) #:use-module (gnu packages crypto) #:use-module (gnu packages cryptsetup) @@ -4799,3 +4802,79 @@ setup, maintenance, supervision, or any long-running processes.") (description "Utility to convert @code{lsof} output to a graph showing FIFO and UNIX interprocess communication.") (license license:bsd-2)))) + +(define-public greetd + (package + (name "greetd") + (version "0.8.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 "0x5c3jkw09kvj2grcxm899y2n6ws8p990cyp9cs0fy6lm4fzlh6v")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-nix" ,rust-nix-0.19) + ("rust-pam-sys" ,rust-pam-sys-0) + ("rust-rpassword" ,rust-rpassword-5) + ("rust-users" ,rust-users-0.11) + ("rust-serde" ,rust-serde-1) + ("rust-serde-json" ,rust-serde-json-1) + ("rust-libc" ,rust-libc-0.2) + ("rust-tokio" ,rust-tokio-1) + ("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 + (delete 'package) + (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)))))))) + (native-inputs + `(("linux-pam" ,linux-pam) + ("scdoc" ,scdoc))) + (synopsis "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. + +If you can run it from your shell in a TTY, greetd can start it. + +If it can be taught to speak a simple JSON-based IPC protocol, +then it can be a greeter.") + (license license:gpl3+))) -- 2.33.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 06 11:27:04 2021 Received: (at 49969) by debbugs.gnu.org; 6 Sep 2021 15:27:04 +0000 Received: from localhost ([127.0.0.1]:54237 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mNGWV-0006la-Cv for submit@debbugs.gnu.org; Mon, 06 Sep 2021 11:27:04 -0400 Received: from mail-wr1-f46.google.com ([209.85.221.46]:44586) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mNGWP-0006jv-Qq for 49969@debbugs.gnu.org; Mon, 06 Sep 2021 11:26:58 -0400 Received: by mail-wr1-f46.google.com with SMTP id d6so9741635wrc.11 for <49969@debbugs.gnu.org>; Mon, 06 Sep 2021 08:26:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=axcYfzOaSjpWu/K2adWVmBxQl2mHcn/sXEeyRImVzeI=; b=JGgTs1VXzDGKA0Dc/X2+5IThJeUtlV6Gq8pxA/mNjzkOuwtHbsK86lCjcSn2zklkBU csi9YLBfjt1STAn/KKKHPSSs0Gs0OSUeUi0F56o+6DqUmOVMu78yDfCQf+STJZ+ltdkE /1MbRGR8E8B5LWiNCg1BN1fl0RJ83U+2xO/2czZk+gx0blPGeKz53/PYr9JFqkmzkYTl XIbD56oIb0klCKmB0T37LrPSsc4WH+wQAI5Byxt9RHdCadL74946x/Kx5ZOYH0x3W6FX LdaSmgE5iYw4Fje26PH56MT7MDDNPbxzNePsLUkn80jP9JNk/Ajth9wW9KsuSh7biL28 Q66A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=axcYfzOaSjpWu/K2adWVmBxQl2mHcn/sXEeyRImVzeI=; b=jzx8GX5uNA6bt1GO04d+IQHyOcFFNPy1TDBXtA9uSYJZCO2ryaaG08SWuaESpEUnpl rSIenonxlN+1C7HDvsbgEy2AOSKk07u4fQk10H73oXcmJxsWV0DIAE4xD8QCbCoE6Pt3 4XElnH1i2wNNAxB6kwGd3EFSdpnLmJ+aP8HxwqHay7+rgDe6agv4gi0zzmjpQe0E5wSU vHCNQI4TsYTKEWneqnC9Y+0NSbLQEVjF6YXuudB4JCqMk0FW9kux9H7HbkCSc8pB2J7H 6Wc/wuMfqqJEM12o2d1HrjSjo5DMSWl7466LNczGvjIBqzPtYUtfLnPZlOO7SCs7Z+uS aRVg== X-Gm-Message-State: AOAM5318iznYNAvEgL0Jsmlk4M15bo3LkoFR11tnrl565785x+JS7rCK gldaqIynIoh6loDNSueYBiOGX7L62qSNl72K X-Google-Smtp-Source: ABdhPJwHYMqr/F/ug5ivBxlDybk67zcTdPSIgmy3TpR1lmno4CYVNI+H5Q6jcby/vNIVDjfDA4Lz+w== X-Received: by 2002:a5d:53c1:: with SMTP id a1mr13853993wrw.209.1630942011873; Mon, 06 Sep 2021 08:26:51 -0700 (PDT) Received: from localhost.localdomain ([176.234.10.27]) by smtp.gmail.com with ESMTPSA id m4sm7687896wml.28.2021.09.06.08.26.50 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Sep 2021 08:26:51 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v6 4/8] gnu: admin: Add greetd-pam-mount. Date: Mon, 6 Sep 2021 18:26:37 +0300 Message-Id: <20210906152641.11020-5-mail@muradm.net> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210906152641.11020-1-mail@muradm.net> References: <20210822215048.20480-1-mail@muradm.net> <20210906152641.11020-1-mail@muradm.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/admin.scm (greetd-pam-mount): New variable --- gnu/packages/admin.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index de59c793cc..90cc1d62da 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -4878,3 +4878,35 @@ If you can run it from your shell in a TTY, greetd can start it. If it can be taught to speak a simple JSON-based IPC protocol, then it can be a greeter.") (license license:gpl3+))) + +(define-public greetd-pam-mount + (package + (inherit pam-mount) + (name "greetd-pam-mount") + (arguments + (substitute-keyword-arguments (package-arguments pam-mount) + ((#:configure-flags flags ''()) + `(cons* "--with-rundir=/run/greetd" ,flags)) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'unpack 'patch-config-file-name + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/pam_mount.c" + ((".*define CONFIGFILE .*$") + "#define CONFIGFILE \"/etc/security/greetd_pam_mount.conf.xml\"\n") + (("pam_mount_config") "greetd_pam_mount_config") + (("pam_mount_system_authtok") "greetd_pam_mount_system_authtok")))))))) + (synopsis "pam-mount specifically compiled for use with greetd") + (description + "Pam-mount is a PAM module that can mount volumes when a user logs in. +It supports mounting local filesystems of any kind the normal mount utility +supports. It can also mount encrypted LUKS volumes using the password +supplied by the user when logging in. + +This package inherits pam-mount in the way that it is compiled specifically +for use with greetd daemon. It uses different configuration location and +name space for storing data in PAM. + +greetd-pam-mount is used in configuration of greetd to provide +auto-(mounting/unmounting) of XDG_RUNTIME_DIR in the way that it will not +interfere with default pam-mount configuration."))) -- 2.33.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 06 11:27:05 2021 Received: (at 49969) by debbugs.gnu.org; 6 Sep 2021 15:27:05 +0000 Received: from localhost ([127.0.0.1]:54239 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mNGWX-0006m1-F4 for submit@debbugs.gnu.org; Mon, 06 Sep 2021 11:27:05 -0400 Received: from mail-wm1-f54.google.com ([209.85.128.54]:33790) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mNGWS-0006k1-9j for 49969@debbugs.gnu.org; Mon, 06 Sep 2021 11:27:04 -0400 Received: by mail-wm1-f54.google.com with SMTP id 192-20020a1c04c9000000b002f7a4ab0a49so165702wme.0 for <49969@debbugs.gnu.org>; Mon, 06 Sep 2021 08:27:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=4mZtYHzSGxDT/1cWU1R9cOsdqEjO9CpUULIb7Fu5ak4=; b=03N/Puqnoio5C/1xf4l3he+QZQHQvwqSz7YiFuIQTYMfnAnjN+xIooSfv8YpJPenLe pdzMSSlj3HZ5iFW7SmF2XV3bPFkqi7ZDYbZ6so/+YksC8O4ufmePNuO9Pk1nP/MXsJBq b0fkp6ibwvrXP+iwBLJqMqpCpKYTEgxE8J6HUY6LqsgAwoMi4fnnDS+NCaGOXsmpyr5b QMYlVYeMVbawSn7h2V3SGAv8o/girwuxS0h6Y+8XDONK9x4f0fCQx+KNjix5Q1h/GAms DKjjgkYw6CBU6SP5dkWRAnmUDmes9QnvddMJLCaL6cqPgAu+nADiWgnrSTeN65IVvdFu BKww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=4mZtYHzSGxDT/1cWU1R9cOsdqEjO9CpUULIb7Fu5ak4=; b=N1gIppHDHwyQi0j0E/fwSTLQ+FSIednJg9GW/LlnaBU6s3VWJ7AuPfPQ3tNkqAscYR fXS6CIUGrI8J4byP9HbfD4SJ5faTdR+444WGEpQGSa/V1WG1OlVGwh6Pdr6p1eCfvT5l Z4NkHyd2JLwccYAdAd/cPgM9aNsrjHvWUSmhom4yaXca8kG98cTXn21UebPLqtvr35cK flNfJ94q1wci7VxbCt9drVXqZwIaZTed8FqaIR0LeC/2Pn2taJlI9AkIlKUbM7pfInSb smMdi7oP8IRnxpv5ZeKFYmc9Z6Yyqbeni7rsisPh+H/S/mMNX+ibU+ayUgOoc+M7P4F8 TDiA== X-Gm-Message-State: AOAM532dfa3UgvBah1l132eWb6evZop3JibF4JeCaSkjhRoScWGEZ0ys m8dyZuzE+V+MzK74+2C9N0QBkvNbOMcsbzuW X-Google-Smtp-Source: ABdhPJye1pJuNT7q2p8054XFo85nGTRn+NUZyLot9oAFt8m8zz6BjgucjZulg8gS0yVwXWhh9IOP1w== X-Received: by 2002:a05:600c:a05:: with SMTP id z5mr11746212wmp.73.1630942014206; Mon, 06 Sep 2021 08:26:54 -0700 (PDT) Received: from localhost.localdomain ([176.234.10.27]) by smtp.gmail.com with ESMTPSA id m4sm7687896wml.28.2021.09.06.08.26.53 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Sep 2021 08:26:53 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v6 6/8] gnu: admin: Add libseat 0.5.0 and move seatd. Date: Mon, 6 Sep 2021 18:26:39 +0300 Message-Id: <20210906152641.11020-7-mail@muradm.net> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210906152641.11020-1-mail@muradm.net> References: <20210822215048.20480-1-mail@muradm.net> <20210906152641.11020-1-mail@muradm.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/admin.scm (libseat): New variable * gnu/packages/admin.scm (seatd): New variable * gnu/packages/freedesktop.scm (seatd): Removed variable --- gnu/packages/admin.scm | 53 ++++++++++++++++++++++++++++++++++++ gnu/packages/freedesktop.scm | 30 -------------------- 2 files changed, 53 insertions(+), 30 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 90cc1d62da..3a8efa50fe 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -98,6 +98,7 @@ #:use-module (gnu packages elf) #:use-module (gnu packages file) #:use-module (gnu packages flex) + #:use-module (gnu packages freedesktop) #:use-module (gnu packages gawk) #:use-module (gnu packages gettext) #:use-module (gnu packages gl) @@ -4803,6 +4804,58 @@ setup, maintenance, supervision, or any long-running processes.") FIFO and UNIX interprocess communication.") (license license:bsd-2)))) +(define-public libseat + (package + (name "libseat") + (version "0.5.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~kennylevinsen/seatd") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1kglq8v4rnr3415mfaghyv2s2f8mxsy5s881gmm2908ig4n4j297")))) + (build-system meson-build-system) + (arguments + `(#:configure-flags '("-Dlibseat-logind=enabled" + "-Dserver=disabled"))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("elogind" ,elogind))) + (home-page "https://sr.ht/~kennylevinsen/seatd") + (synopsis "Seat management library") + (description + "This package provides a universal seat management library that +allows applications to use whatever seat management is available.") + (license license:expat))) + +(define-public seatd + (package + (inherit libseat) + (name "seatd") + (arguments + `(#:configure-flags '("-Dlibseat-logind=disabled" + "-Dlibseat-seatd=disabled") + #:phases + (modify-phases %standard-phases + (add-after 'install 'remove-libs + (lambda* (#:key outputs #:allow-other-keys) + (with-directory-excursion (assoc-ref outputs "out") + (for-each delete-file-recursively '("lib" "include")))))))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("scdoc" ,scdoc))) + (inputs '()) + (synopsis "Seat management daemon") + (description + "This package provides a minimal seat management daemon whose task is to +mediate access to shared devices, such as graphics and input, for applications +that require it.") + (license license:expat))) + (define-public greetd (package (name "greetd") diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 086707d51a..76a16454b1 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -833,36 +833,6 @@ GNOME Shell. The @command{localectl} command-line tool allows you to interact with localed. This package is extracted from the broader systemd package.") (license license:lgpl2.1+))) -(define-public seatd - (package - (name "seatd") - (version "0.5.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://git.sr.ht/~kennylevinsen/seatd") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1kglq8v4rnr3415mfaghyv2s2f8mxsy5s881gmm2908ig4n4j297")))) - (build-system meson-build-system) - (arguments - `(#:configure-flags '("-Dlogind=enabled"))) - (native-inputs - `(("pkg-config" ,pkg-config) - ("scdoc" ,scdoc))) - (inputs - `(("elogind" ,elogind))) - (home-page "https://sr.ht/~kennylevinsen/seatd") - (synopsis "Seat management daemon and library") - (description - "This package provides a minimal seat management daemon whose task is to -mediate access to shared devices, such as graphics and input, for applications -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 packagekit (package (name "packagekit") -- 2.33.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 06 11:27:07 2021 Received: (at 49969) by debbugs.gnu.org; 6 Sep 2021 15:27:07 +0000 Received: from localhost ([127.0.0.1]:54241 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mNGWY-0006mA-Pj for submit@debbugs.gnu.org; Mon, 06 Sep 2021 11:27:07 -0400 Received: from mail-wm1-f45.google.com ([209.85.128.45]:39634) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mNGWR-0006jz-N9 for 49969@debbugs.gnu.org; Mon, 06 Sep 2021 11:27:04 -0400 Received: by mail-wm1-f45.google.com with SMTP id u26-20020a05600c441a00b002f66b2d8603so5274696wmn.4 for <49969@debbugs.gnu.org>; Mon, 06 Sep 2021 08:26:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=IalnNXP0H/t+CIyYtKSGdpVxvxILqEneh6CQnel+TjY=; b=n0X1Ycwj3l6yfSZ/A7yEdwLpA26rF27wwHqH5B6yY5adVN8E19EkgTj3d1E4eR0ubX ls0229l+KKC/73tR87s9TySW9Eclq6sfuP39wPIZG2FPHzJzFBT7EvuffSPvYQl3EUFs vzqVJa5WfO8g1ucrGTC3OuOOE94bo2U1vxrkBip8gM8JYLlo9mDz2SvzzrPgCsR9oDaH samge9gTtYFDANCoJKxxuHdFtJv7hN/A4C4NuHfLX1WxZBmiY6Sg7Fs9+rFgSyLqq5B5 s1VOq9Bt9LQUAs1YCFyxfGIhpuZF/AJ2xd5/Ln5QnRHw6k3D6Idfm0T/mYb+Jdq68fA1 fECQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=IalnNXP0H/t+CIyYtKSGdpVxvxILqEneh6CQnel+TjY=; b=WzHM2gMV+u68mGqz8E/0cDl1mDrbXyPIFt8Nlg7gvU/NF+Xt0F2HsKOvVgMf4fldu2 5e2I8erPzY6an/w+bzewrkyggzdDM+PD2df/mPK8tiGmjnNNwKJLriTd+EXs6ND0ZgUO y6ghJgXzBVcb69xnrrPreomlXsr2eT1auQz1XfXvSMtKpWTOT1Qv3xNf8aRxGkKCtLBg LcbG+1Ba5HVlH8gXwbBKc/F6dWC/tM4MTOH6SceopcVcUXF5md3TOsv8LBBAu73vPCme 8P/WgOh8LnQcAS5z3grwhCWnSokrPS5Kp0t6cAs8EUUn1zJlgI/nLTRv/EPeAJ7Bg52F OnLQ== X-Gm-Message-State: AOAM5306ASMVtLirHmmd5vBh/bSSwAprc2nqLtZicknty98p8sv/K1fD K1KaLVsPT8YR0GA14RP/sE5mnuTmuzm8MvL9 X-Google-Smtp-Source: ABdhPJyPxyAlyeMlj4bD5n9ym48AovHd9MDxx30aUwagTV4gjrhOi+G1I9/xNR2S78lF+2j/zz/teA== X-Received: by 2002:a05:600c:230a:: with SMTP id 10mr11943153wmo.79.1630942013193; Mon, 06 Sep 2021 08:26:53 -0700 (PDT) Received: from localhost.localdomain ([176.234.10.27]) by smtp.gmail.com with ESMTPSA id m4sm7687896wml.28.2021.09.06.08.26.52 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Sep 2021 08:26:52 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v6 5/8] gnu: base: Add greetd-service-type. Date: Mon, 6 Sep 2021 18:26:38 +0300 Message-Id: <20210906152641.11020-6-mail@muradm.net> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210906152641.11020-1-mail@muradm.net> References: <20210822215048.20480-1-mail@muradm.net> <20210906152641.11020-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Currently, only agreety greeter and its configuration is provided. * gnu/services/base.scm (greetd-service-type): New variable * gnu/services/base.scm (pam-limits-service-type): Should be aware of greetd PAM service * gnu/services/pam-mount.scm (pam-mount-pam-service): Should be aware of greetd PAM service. --- doc/guix.texi | 133 ++++++++++++++++++++++ gnu/services/base.scm | 218 ++++++++++++++++++++++++++++++++++++- gnu/services/pam-mount.scm | 2 +- 3 files changed, 351 insertions(+), 2 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 36a0c7f5ec..79bf291ec4 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -96,6 +96,7 @@ Copyright @copyright{} 2021 Domagoj Stolfa@* Copyright @copyright{} 2021 Hui Lu@* Copyright @copyright{} 2021 pukkamustard@* Copyright @copyright{} 2021 Alice Brenon@* +Copyright @copyright{} 2021 muradm@* Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -15953,6 +15954,138 @@ about the Pluggable Authentication Module (PAM) limits, refer to the @samp{pam_limits} man page from the @code{linux-pam} package. @end deffn +@defvr {Scheme Variable} greetd-service-type +@uref{https://git.sr.ht/~kennylevinsen/greetd, @code{greetd}} is a minimal and +flexible login manager daemon, that makes no assumptions about what you +want to launch. + +If you can run it from your shell in a TTY, greetd can start it. If it +can be taught to speak a simple JSON-based IPC protocol, then it can be +a geeter. + +@code{greetd-service-type} provides necessary infrastructure for logging +in users, including: + +@itemize @bullet +@item +@code{greetd} PAM service + +@item +Special variation of @code{pam-mount} to mount @code{XDG_RUNTIME_DIR} +@end itemize + +Here is example of switching from @code{mingetty-service-type} to +@code{greetd-service-type}, and how different terminals could be: + +@lisp + (append + (modify-services %base-services + ;; greetd-service-type provides "greetd" PAM service + (delete login-service-type) + ;; and can be used in place of mingetty-service-type + (delete mingetty-service-type)) + (list + (service greetd-service-type + (greetd-configuration + (terminals + (list + ;; we can make any terminal active by default + (greetd-terminal-configuration (terminal-vt "1") (terminal-switch #t)) + ;; we can make environment without XDG_RUNTIME_DIR set + ;; even provide our own environment variables + (greetd-terminal-configuration + (terminal-vt "2") + (default-session-command + (greetd-agreety-session + (extra-env '(("MY_VAR" . "1"))) + (xdg-env? #f)))) + ;; we can use different shell instead of default bash + (greetd-terminal-configuration + (terminal-vt "3") + (default-session-command + (greetd-agreety-session (command (file-append zsh "/bin/zsh"))))) + ;; we can use any other executable command as greeter + (greetd-terminal-configuration + (terminal-vt "4") + (default-session-command (program-file "my-noop-greeter" #~(exit)))) + (greetd-terminal-configuration (terminal-vt "5")) + (greetd-terminal-configuration (terminal-vt "6")))))) + ;; mingetty-service-type can be used in parallel + ;; if needed to do so, do not (delete login-service-type) + ;; as illustrated above + #| (service mingetty-service-type (mingetty-configuration (tty "tty8"))) |#)) +@end lisp +@end defvr + +@deftp {Data Type} greetd-configuration +Configuration record for the @code{greetd-service-type}. +@table @asis + +@item @code{motd} +A file-like object containing the ``message of the day''. + +@item @code{allow-empty-passwords?} (default: @code{#t}) +Allow empty passwords by default so that first-time users can log in when +the 'root' account has just been created. + +@item @code{terminals} (default: @code{'()}) +List of @code{greetd-terminal-configuration} per terminal for which +@code{greetd} should be started. +@end table +@end deftp + +@deftp {Data Type} greetd-terminal-configuration +Configuration record for per terminal greetd daemon service. + +@table @asis +@item @code{greetd} (default: @code{greetd}) +The greetd package to use. + +@item @code{config-file-name} +Configuration file name to use for greetd daemon. Generally, autogenerated +derivation based on @code{terminal-vt} value. + +@item @code{terminal-vt} (default: @samp{"7"}) +The VT to run on. Use of a specific VT with appropriate conflict avoidance +is recommended. + +@item @code{terminal-switch} (default: @code{#f}) +Make this terminal active on start of @code{greetd}. + +@item @code{default-session-user} (default: @samp{"greeter"}) +The user to use for running the greeter. + +@item @code{default-session-command} (default: @code{(greetd-agreety-session)}) +Can be either instance of @code{greetd-agreety-session} configuration or +@code{gexp->script} like object to use as greeter. + +@end table +@end deftp + +@deftp {Data Type} greetd-agreety-session +Configuration record for the agreety greetd greeter. + +@table @asis +@item @code{agreety} (default: @code{greetd}) +The package with @command{/bin/agreety} command. + +@item @code{command} (default: @code{(file-append bash "/bin/bash")}) +Command to be started by @command{/bin/agreety} on successful login. + +@item @code{command-args} (default: @code{'("-l")}) +Command arguments to pass to command. + +@item @code{extra-env} (default: @code{'()}) +Extra environment variables to set on login. + +@item @code{xdg-env?} (default: @code{#t}) +If true @code{XDG_RUNTIME_DIR} and @code{XDG_SESSION_TYPE} will be set +before starting command. One should note that, @code{extra-env} variables +are set right after mentioned variables, so that they can be overriden. + +@end table +@end deftp + @node Scheduled Job Execution @subsection Scheduled Job Execution diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 50865055fe..fe2c4d6fe5 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -16,6 +16,7 @@ ;;; Copyright © 2021 qblade ;;; Copyright © 2021 Hui Lu ;;; Copyright © 2021 Maxim Cournoyer +;;; Copyright © 2021 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -186,6 +187,11 @@ references-file + greetd-service-type + greetd-configuration + greetd-terminal-configuration + greetd-agreety-session + %base-services)) ;;; Commentary: @@ -1401,7 +1407,7 @@ information on the configuration file syntax." (module "pam_limits.so") (arguments '("conf=/etc/security/limits.conf"))))) (if (member (pam-service-name pam) - '("login" "su" "slim" "gdm-password" "sddm")) + '("login" "greetd" "su" "slim" "gdm-password" "sddm")) (pam-service (inherit pam) (session (cons pam-limits @@ -2462,6 +2468,216 @@ to handle." (requirement requirement) (name-servers name-servers))))) + +;;; +;;; greetd-service-type -- minimal and flexible login manager daemon +;;; + +(define-record-type* + greetd-agreety-session make-greetd-agreety-session + greetd-agreety-session? + (agreety greetd-agreety (default greetd)) + (command greetd-agreety-command (default (file-append bash "/bin/bash"))) + (command-args greetd-agreety-command-args (default '("-l"))) + (extra-env greetd-agreety-extra-env (default '())) + (xdg-env? greetd-agreety-xdg-env? (default #t))) + +(define greetd-agreety-tty-session-command + (match-lambda + (($ _ command args extra-env) + (program-file + "agreety-tty-session-command" + #~(begin + (use-modules (ice-9 match)) + (for-each (match-lambda ((var . val) (setenv var val))) + (quote (#$@extra-env))) + (apply execl #$command #$command (list #$@args))))))) + +(define greetd-agreety-tty-xdg-session-command + (match-lambda + (($ _ command args extra-env) + (program-file + "agreety-tty-xdg-session-command" + #~(begin + (use-modules (ice-9 match)) + (let* + ((username (getenv "USER")) + (useruid (passwd:uid (getpwuid username))) + (useruid (number->string useruid))) + (setenv "XDG_SESSION_TYPE" "tty") + (setenv "XDG_RUNTIME_DIR" (string-append "/run/user/" useruid))) + (for-each (match-lambda ((var . val) (setenv var val))) + (quote (#$@extra-env))) + (apply execl #$command #$command (list #$@args))))))) + +(define (make-greetd-agreety-session-command config command) + (let ((agreety (file-append (greetd-agreety config) "/bin/agreety"))) + (program-file + "agreety-command" + #~(execl #$agreety #$agreety "-c" #$command)))) + +(define (make-greetd-default-session-command config-or-command) + (cond ((greetd-agreety-session? config-or-command) + (cond ((greetd-agreety-xdg-env? config-or-command) + (make-greetd-agreety-session-command + config-or-command + (greetd-agreety-tty-xdg-session-command config-or-command))) + (#t + (make-greetd-agreety-session-command + config-or-command + (greetd-agreety-tty-session-command config-or-command))))) + (#t config-or-command))) + +(define-record-type* + greetd-terminal-configuration make-greetd-terminal-configuration + greetd-terminal-configuration? + (greetd greetd-package (default greetd)) + (config-file-name greetd-config-file-name (thunked) + (default (default-config-file-name this-record))) + (terminal-vt greetd-terminal-vt (default "7")) + (terminal-switch greetd-terminal-switch (default #f)) + (default-session-user greetd-default-session-user (default "greeter")) + (default-session-command greetd-default-session-command + (default (greetd-agreety-session)) + (sanitize make-greetd-default-session-command))) + +(define (default-config-file-name config) + (string-join (list "config-" (greetd-terminal-vt config) ".toml") "")) + +(define (make-greetd-terminal-configuration-file config) + (let* + ((config-file-name (greetd-config-file-name config)) + (terminal-vt (greetd-terminal-vt config)) + (terminal-switch (greetd-terminal-switch config)) + (default-session-user (greetd-default-session-user config)) + (default-session-command (greetd-default-session-command config))) + (mixed-text-file + config-file-name + "[terminal]\n" + "vt = " terminal-vt "\n" + "switch = " (if terminal-switch "true" "false") "\n" + "[default_session]\n" + "user = " default-session-user "\n" + "command = " default-session-command "\n"))) + +(define %greetd-accounts + (list (user-account + (name "greeter") + (group "wheel") + (supplementary-groups '("users" "tty" "input" "video" "audio")) + (system? #t)))) + +(define %greetd-file-systems + (list (file-system + (device "none") + (mount-point "/run/greetd/pam_mount") + (type "tmpfs") + (check? #f) + (flags '(no-suid no-dev no-exec)) + (options "mode=0755") + (create-mount-point? #t)))) + +(define %greetd-pam-mount-rules + `((debug (@ (enable "0"))) + (volume (@ (sgrp "users") + (fstype "tmpfs") + (mountpoint "/run/user/%(USERUID)") + (options "noexec,nosuid,nodev,size=1g,mode=0700,uid=%(USERUID),gid=%(USERGID)"))) + (logout (@ (wait "0") + (hup "0") + (term "yes") + (kill "no"))) + (mkmountpoint (@ (enable "1") (remove "true"))))) + +(define-record-type* + greetd-configuration make-greetd-configuration + greetd-configuration? + (motd greetd-motd (default %default-motd)) + (allow-empty-passwords? greetd-allow-empty-passwords? (default #t)) + (terminals greetd-terminals (default '()))) + +(define (make-greetd-pam-mount-conf-file config) + (computed-file + "greetd_pam_mount.conf.xml" + #~(begin + (use-modules (sxml simple)) + (call-with-output-file #$output + (lambda (port) + (sxml->xml + '(*TOP* + (*PI* xml "version='1.0' encoding='utf-8'") + (pam_mount + #$@%greetd-pam-mount-rules + (pmvarrun + #$(file-append greetd-pam-mount + "/sbin/pmvarrun -u '%(USER)' -o '%(OPERATION)'")))) + port)))))) + +(define (greetd-etc-service config) + `(("security/greetd_pam_mount.conf.xml" + ,(make-greetd-pam-mount-conf-file config)))) + +(define (greetd-pam-service config) + (define optional-pam-mount + (pam-entry + (control "optional") + (module #~(string-append #$greetd-pam-mount "/lib/security/pam_mount.so")) + (arguments '("disable_interactive")))) + + (list + (unix-pam-service "greetd" + #:login-uid? #t + #:allow-empty-passwords? + (greetd-allow-empty-passwords? config) + #:motd + (greetd-motd config)) + (lambda (pam) + (if (member (pam-service-name pam) + '("login" "greetd" "su" "slim" "gdm-password")) + (pam-service + (inherit pam) + (auth (append (pam-service-auth pam) + (list optional-pam-mount))) + (session (append (pam-service-session pam) + (list optional-pam-mount)))) + pam)))) + +(define (greetd-shepherd-services config) + (map + (lambda (tc) + (let* + ((greetd-bin (file-append (greetd-package tc) "/sbin/greetd")) + (greetd-conf (make-greetd-terminal-configuration-file tc)) + (greetd-vt (greetd-terminal-vt tc))) + (shepherd-service + (documentation "Minimal and flexible login manager daemon") + (requirement '(user-processes host-name udev virtual-terminal)) + (provision (list (symbol-append + 'term-tty + (string->symbol (greetd-terminal-vt tc))))) + (start #~(make-forkexec-constructor + (list #$greetd-bin "-c" #$greetd-conf) + #:log-file + (string-append "/tmp/greetd." #$greetd-vt ".log"))) + (stop #~(make-kill-destructor))))) + (greetd-terminals config))) + +(define greetd-service-type + (service-type + (name 'greetd) + (description "Provides necessary infrastructure for logging into the +system including @code{greetd} PAM service, @code{pam-mount} module to +mount/unmount /run/user/ directory for user and @code{greetd} +login manager daemon.") + (extensions + (list + (service-extension account-service-type (const %greetd-accounts)) + (service-extension file-system-service-type (const %greetd-file-systems)) + (service-extension etc-service-type greetd-etc-service) + (service-extension pam-root-service-type greetd-pam-service) + (service-extension shepherd-root-service-type greetd-shepherd-services))) + (default-value (greetd-configuration)))) + (define %base-services ;; Convenience variable holding the basic services. diff --git a/gnu/services/pam-mount.scm b/gnu/services/pam-mount.scm index 98611462c2..d6c65e3760 100644 --- a/gnu/services/pam-mount.scm +++ b/gnu/services/pam-mount.scm @@ -90,7 +90,7 @@ (module #~(string-append #$pam-mount "/lib/security/pam_mount.so")))) (list (lambda (pam) (if (member (pam-service-name pam) - '("login" "su" "slim" "gdm-password")) + '("login" "greetd" "su" "slim" "gdm-password")) (pam-service (inherit pam) (auth (append (pam-service-auth pam) -- 2.33.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 06 11:27:16 2021 Received: (at 49969) by debbugs.gnu.org; 6 Sep 2021 15:27:16 +0000 Received: from localhost ([127.0.0.1]:54243 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mNGWc-0006mP-Jc for submit@debbugs.gnu.org; Mon, 06 Sep 2021 11:27:16 -0400 Received: from mail-wr1-f50.google.com ([209.85.221.50]:33339) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mNGWT-0006kH-Bi for 49969@debbugs.gnu.org; Mon, 06 Sep 2021 11:27:08 -0400 Received: by mail-wr1-f50.google.com with SMTP id b10so10436988wru.0 for <49969@debbugs.gnu.org>; Mon, 06 Sep 2021 08:27:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=uzURvM08dygKJRZZBFmShSsZeHbL0S+O53XjqwFiNqk=; b=Q4x6YuGX283dtELvy1tQg1C86ChWWRxZdvYIwofy+9ptxQ+G2liJgJ3lq+gLA0aII8 GqKpmzkvRmDGO0Ko2D0bel6q274fnk+lGMAavjyUWs8WvENtmaYGlGyIDfm4su6GqG1M poAX7nrBAXjYlaT6KbWgpuzYf+62YNUlquLtkUgbP1wBtoLbwWDmYJTzxRhSsnuj8xO8 KjJsJigWTE+KW3sMyiO2SgJKoc4WnvzseocdcbiRJHnsGy9NdWf9MxoY1dUPaCkVfzGT xZfp1JFlTLQEqPMz8wJ4h4ODMwxehGxAv9pKWk1nsxCqf6DT7kPAcCX91cKnACxfLT9y H90g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=uzURvM08dygKJRZZBFmShSsZeHbL0S+O53XjqwFiNqk=; b=OKE0jN4Z2l21QIClLEIedfJjVqwF8zHhL3pvWajAlqCO1/0+8UjMWRS+P9e/67zMFi u3xxE1KlCCtbvQgzRl152JHqR8Ak9MkyZOppFfSQ+l4LzeUPN8jL1YP7HuZ9d2CD49A9 883hagme1IzLvRi9n4LvtRjZ1Wq1fH3IsgdGwS5pHg34N2kvNzwTDXrd3uGINCy+RNz6 uJAimRRY1XrF/R2KVaDqK9vhKlbnH7hT7x4RdFyoRqpNKwIAg1UdnGtpmcxTwmRM+45I 15wSm03Maujm1fzQue5Y0DjIBRZP3kBS2dVsdPsQFb+6bPsaXZzCB1LStvwAA23DHQoM ScbQ== X-Gm-Message-State: AOAM5324pmObB5KPo1Jjmxsn+05LJiJLUhVB7/NqpS8V5BiVmqWv+QNB ftPd1DYyL8GuX/AoILgFdZ4YYq5raByPhS9R X-Google-Smtp-Source: ABdhPJwTGfQw9vcNNacapLoLdq8MY+z0xWAo7H74OmlUIgld2d+5x8INPABBiZfHFjb2+lqKsP2eVw== X-Received: by 2002:adf:9f0d:: with SMTP id l13mr14187514wrf.328.1630942015333; Mon, 06 Sep 2021 08:26:55 -0700 (PDT) Received: from localhost.localdomain ([176.234.10.27]) by smtp.gmail.com with ESMTPSA id m4sm7687896wml.28.2021.09.06.08.26.54 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Sep 2021 08:26:54 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v6 7/8] gnu: desktop: Add seatd-service-type. Date: Mon, 6 Sep 2021 18:26:40 +0300 Message-Id: <20210906152641.11020-8-mail@muradm.net> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210906152641.11020-1-mail@muradm.net> References: <20210822215048.20480-1-mail@muradm.net> <20210906152641.11020-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/services/desktop.scm (seatd-service-type): New variable --- doc/guix.texi | 42 ++++++++++++++++++++++++++++ gnu/services/desktop.scm | 60 +++++++++++++++++++++++++++++++++++++++- 2 files changed, 101 insertions(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index 79bf291ec4..9c40342f9f 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -19901,6 +19901,48 @@ and ``passwd'' is with the value @code{passwd}. @end table @end deftp +@defvr {Scheme Variable} seatd-service-type +@uref{https://sr.ht/~kennylevinsen/seatd/, seatd} is a minimal seat +management daemon. + +Seat management takes care of mediating access to shared devices (graphics, +input), without requiring the applications needing access to be root. + +@lisp +(append + (list + ;; make sure seatd is running + (service seatd-service-type)) + + ;; normally one would want %base-services + %base-services) + +@end lisp +@end defvr + +@deftp {Data Type} seatd-configuration +Configuration record for the seatd daemon service. + +@table @asis +@item @code{seatd} (default: @code{seatd}) +The seatd package to use. + +@item @code{user} (default: @samp{"root"}) +User to own the seatd socket. + +@item @code{group} (default: @samp{"users"}) +Group to own the seatd socket. + +@item @code{socket} (default: @samp{"/run/seatd.sock"}) +Where to create the seatd socket. + +@item @code{loglevel} (default: @samp{"error"}) +Log level to output logs. Possible values: @samp{"silent"}, @samp{"error"}, +@samp{"info"} and @samp{"debug"}. + +@end table +@end deftp + @node Sound Services @subsection Sound Services diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index 64d0e85301..c42db5987e 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -13,6 +13,7 @@ ;;; Copyright © 2020 Tobias Geerinckx-Rice ;;; Copyright © 2020 Reza Alizadeh Majd ;;; Copyright © 2021 Brice Waegeneire +;;; Copyright © 2021 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -39,7 +40,9 @@ #:use-module (gnu services networking) #:use-module (gnu services sound) #:use-module ((gnu system file-systems) - #:select (%elogind-file-systems file-system)) + #:select (%control-groups + %elogind-file-systems + file-system)) #:use-module (gnu system) #:use-module (gnu system setuid) #:use-module (gnu system shadow) @@ -154,6 +157,9 @@ gnome-keyring-configuration? gnome-keyring-service-type + seatd-configuration + seatd-service-type + %desktop-services)) ;;; Commentary: @@ -1182,6 +1188,58 @@ or setting its password with passwd."))) (define polkit-wheel-service (simple-service 'polkit-wheel polkit-service-type (list polkit-wheel))) + +;;; +;;; seatd-service-type -- minimal seat management daemon +;;; + +(define-record-type* seatd-configuration + make-seatd-configuration + seatd-configuration? + (seatd seatd-package (default seatd)) + (user seatd-user (default "root")) + (group seatd-group (default "users")) + (socket seatd-socket (default "/run/seatd.sock")) + (loglevel seatd-loglevel (default "error"))) + +(define (seatd-shepherd-service config) + (list (shepherd-service + (documentation "Minimal seat management daemon") + (requirement '()) + ;; TODO: once cgroups is separate dependency + ;; here we should depend on it rather than elogind + (provision '(seatd elogind)) + (start #~(make-forkexec-constructor + (list #$(file-append (seatd-package config) "/bin/seatd") + "-u" #$(seatd-user config) + "-g" #$(seatd-group config) + "-s" #$(seatd-socket config)) + #:environment-variables + (list (string-append "SEATD_LOGLEVEL=" + #$(seatd-loglevel config))) + #:log-file "/tmp/seatd.log")) + (stop #~(make-kill-destructor))))) + +(define seatd-environment + (match-lambda + (($ _ _ _ socket) + `(("SEATD_SOCK" . ,socket))))) + +(define seatd-service-type + (service-type + (name 'seatd) + (description "Seat management takes care of mediating access +to shared devices (graphics, input), without requiring the +applications needing access to be root.") + (extensions + (list + (service-extension session-environment-service-type seatd-environment) + ;; TODO: once cgroups is separate dependency we should not mount it here + ;; for now it is mounted here, because elogind mounts it + (service-extension file-system-service-type (const %control-groups)) + (service-extension shepherd-root-service-type seatd-shepherd-service))) + (default-value (seatd-configuration)))) + ;;; ;;; The default set of desktop services. -- 2.33.0 From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 06 11:27:17 2021 Received: (at 49969) by debbugs.gnu.org; 6 Sep 2021 15:27:17 +0000 Received: from localhost ([127.0.0.1]:54245 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mNGWi-0006mc-MV for submit@debbugs.gnu.org; Mon, 06 Sep 2021 11:27:17 -0400 Received: from mail-wr1-f43.google.com ([209.85.221.43]:46030) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mNGWU-0006kQ-Gp for 49969@debbugs.gnu.org; Mon, 06 Sep 2021 11:27:15 -0400 Received: by mail-wr1-f43.google.com with SMTP id n5so10357896wro.12 for <49969@debbugs.gnu.org>; Mon, 06 Sep 2021 08:27:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=muradm-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=voj8wbDKGUerUIV4cXxX+kwukU2AaRDxpfHnjUCVMNs=; b=StrQ/sm9rWQzE+Y+Iler7jOx0Koz0Z0lmzieVCHLSMUn2BEZOVV3MBvbJ9vttzsxCJ Rw5wWlWO2LXVTzSjoImhuYHX5BXcNLngasFGTHoeS3Fp0LuOctKTM4ljHRSDNS99Fx9+ qu8ymH0z/TafXGQHywXy4jDRZnT22qcn/ZegXRufyGHPH4Pxp6gPqWuhKu8Uip/D+yKf pzpmLQVoT/NRQuXkmhLoOWrU2yIOb9MXRVcATXZFutXDTOjyXGCxazVTjzgzLVoXVQM2 +QavyiaP2/lt+Cs50kMNaTzVHlMJlvlJIVGLtPfcRWrZgEZio2c2aqokcDPUeCVFcThj eeqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=voj8wbDKGUerUIV4cXxX+kwukU2AaRDxpfHnjUCVMNs=; b=OLCtE9rRV3DW5JB4zOeh0bmNAyjdauJqUt8objmoRQghmBvVk/+AIBTqSfGd4rtgSg jjIxZ19aVV//nOp+ioSeKqujdYbXke2NfFbjOVZ4mBf65Xz8rO5wiufCU/HemGgcbgIQ 9osbwfwYk34GvFbYpVuVA8am8bMgf2ZqcD8CWm79QakUkAldSUt8qFrSqvGNXCrVJdmj XdlPuQsz1UlCrQhHnsAWh86bu75q3qk2xFWaeRjQtEme0Z0j6HvgqZL/WCcUcVctR4Gf 9YPFd7cClKxs29fh3ObXobjPS3wPiBMJfklm8D4McDCz4IHqL8nhccZBus2yo3ACtZiw TUOA== X-Gm-Message-State: AOAM532Fwb1oWjt+I1Hfm3+ePuwUFNtRA6J2Qc0ot96Kg/SZK8J4EDTK vgKZLD8FSEwzON61H1MYCeF6LymEdP9qmT86 X-Google-Smtp-Source: ABdhPJysyHRdZC7J4JpSUnYsSgYKreKBQ8mDeK5um8rK7rxDxixEU/IwHu2CvSAEgnZc8ZInwoFnUA== X-Received: by 2002:adf:f4ca:: with SMTP id h10mr13833175wrp.351.1630942016421; Mon, 06 Sep 2021 08:26:56 -0700 (PDT) Received: from localhost.localdomain ([176.234.10.27]) by smtp.gmail.com with ESMTPSA id m4sm7687896wml.28.2021.09.06.08.26.55 for <49969@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Sep 2021 08:26:55 -0700 (PDT) From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v6 8/8] gnu: tests: Add seatd/greetd based minimal desktop system tests. Date: Mon, 6 Sep 2021 18:26:41 +0300 Message-Id: <20210906152641.11020-9-mail@muradm.net> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210906152641.11020-1-mail@muradm.net> References: <20210822215048.20480-1-mail@muradm.net> <20210906152641.11020-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/tests/desktop.scm (minimal-desktop): seatd/greetd based minimal desktop --- gnu/tests/desktop.scm | 212 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 211 insertions(+), 1 deletion(-) diff --git a/gnu/tests/desktop.scm b/gnu/tests/desktop.scm index 6aa22fd49b..50aa859869 100644 --- a/gnu/tests/desktop.scm +++ b/gnu/tests/desktop.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Ludovic Courtès +;;; Copyright © 2021 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -18,13 +19,17 @@ (define-module (gnu tests desktop) #:use-module (gnu tests) + #:use-module (gnu packages shells) #:use-module (gnu services) + #:use-module (gnu services base) #:use-module (gnu services dbus) #:use-module (gnu services desktop) + #:use-module (gnu system) #:use-module (gnu system vm) #:use-module (guix gexp) #:use-module (srfi srfi-1) - #:export (%test-elogind)) + #:export (%test-elogind + %test-minimal-desktop)) ;;; @@ -103,3 +108,208 @@ #:imported-modules '((gnu services herd) (guix combinators))))) (run-elogind-test (virtual-machine os)))))) + + +;;; +;;; Seatd/greetd based minimal desktop +;;; + +(define %minimal-services + (append + (modify-services %base-services + ;; greetd-service-type provides "greetd" PAM service + (delete login-service-type) + ;; and can be used in place of mingetty-service-type + (delete mingetty-service-type)) + (list + (service seatd-service-type) + (service greetd-service-type + (greetd-configuration + (terminals + (list + ;; we can make any terminal active by default + (greetd-terminal-configuration (terminal-vt "1") (terminal-switch #t)) + ;; we can make environment without XDG_RUNTIME_DIR set + ;; even provide our own environment variables + (greetd-terminal-configuration + (terminal-vt "2") + (default-session-command + (greetd-agreety-session + (extra-env '(("MY_VAR" . "1"))) + (xdg-env? #f)))) + ;; we can use different shell instead of default bash + (greetd-terminal-configuration + (terminal-vt "3") + (default-session-command + (greetd-agreety-session (command (file-append zsh "/bin/zsh"))))) + ;; we can use any other executable command as greeter + (greetd-terminal-configuration + (terminal-vt "4") + (default-session-command (program-file "my-noop-greeter" #~(exit)))) + (greetd-terminal-configuration (terminal-vt "5")) + (greetd-terminal-configuration (terminal-vt "6")))))) + ;; mingetty-service-type can be used in parallel + ;; if needed to do so, do not (delete login-service-type) + ;; as illustrated above + #| (service mingetty-service-type (mingetty-configuration (tty "tty8"))) |#))) + +(define-syntax-rule (minimal-operating-system user-services ...) + "Return an operating system that includes USER-SERVICES in addition to +minimal %BASE-SERVICES." + (operating-system (inherit %simple-os) + (services (cons* user-services ... %minimal-services)))) + +(define (run-minimal-desktop-test os vm) + (define test + (with-imported-modules '((gnu build marionette) + (guix build syscalls)) + #~(begin + (use-modules (gnu build marionette) + (guix build syscalls) + (srfi srfi-1) + (srfi srfi-64) + (ice-9 pretty-print)) + + (define marionette + (make-marionette #$vm)) + + (define (file-get-all-strings fname) + (marionette-eval '(use-modules (rnrs io ports)) marionette) + (wait-for-file fname marionette #:read 'get-string-all)) + + (define (wait-for-unix-socket-m socket) + (wait-for-unix-socket socket marionette)) + + (mkdir #$output) + (chdir #$output) + + (test-begin "minimal-desktop") + + (test-assert "seatd is ready" + (wait-for-unix-socket-m "/run/seatd.sock")) + + (test-equal "login user on tty1" + "alice\n" + (begin + ;; Wait for tty1. + (marionette-eval + '(begin + (use-modules (gnu services herd)) + (start-service 'term-tty1)) + marionette) + (marionette-control "sendkey ctrl-alt-f1" marionette) + + ;; login as root change alice password and exit + ;; then login as alice + (for-each + (lambda (cmd) (marionette-type cmd marionette) (sleep 1)) + (list + "root\n" + "passwd alice\n" + "alice\n" + "alice\n" + "exit\n" + "alice\n" + "alice\n" + "id -un > logged-in\n")) + + (file-get-all-strings "/home/alice/logged-in"))) + + (test-equal "validate user environment" + '("SEATD_SOCK=/run/seatd.sock" + "XDG_RUNTIME_DIR=/run/user/1000" + "XDG_SEAT=seat0" + "XDG_VTNR=1") + + (begin + (marionette-type "env > env\n" marionette) + (sleep 1) + + (define user-env (string-tokenize + (file-get-all-strings "/home/alice/env"))) + + (define (expected-var var) + (any (lambda (s) (string-contains var s)) + '("SEATD_SOCK" + "XDG_RUNTIME_DIR" + "XDG_SEAT" + "XDG_VTNR"))) + + (sort (filter expected-var user-env) string env\n" marionette) + (sleep 1) + + (define (sock-var? var) + (any (lambda (s) (string-contains var s)) + '("SEATD_SOCK" "GREETD_SOCK"))) + + (define (sock-var-sock var) + (car (cdr (string-split var #\=)))) + + (let* + ((out (file-get-all-strings "/home/alice/env")) + (out (string-tokenize out)) + (out (filter sock-var? out)) + (socks (map sock-var-sock out)) + (socks (map wait-for-unix-socket-m socks))) + (and (= 2 (length socks)) (every identity socks))))) + + (test-assert "greetd is ready" + (begin + (marionette-type "ps -C greetd -o pid,args --no-headers > ps-greetd\n" + marionette) + (sleep 1) + + (define (greetd-daemon? cmd) + (string-contains cmd "config")) + + (define (greetd-cmd-to-pid cmd) + (car (string-split cmd #\space))) + + (define (greetd-pid-to-sock pid) + (string-append "/run/greetd-" pid ".sock")) + + (let* ((out (file-get-all-strings "/home/alice/ps-greetd")) + (out (string-split out #\newline)) + (out (map string-trim-both out)) + (out (filter greetd-daemon? out)) + (pids (map greetd-cmd-to-pid out)) + (socks (map greetd-pid-to-sock pids)) + (socks (map wait-for-unix-socket-m socks))) + (every identity socks)))) + + ;; a bit weak, but tests everything at once actually + (test-equal "check /run/user/ mounted and writable" + "alice\n" + (begin + (marionette-type "echo alice > /run/user/1000/test\n" marionette) + (file-get-all-strings "/run/user/1000/test"))) + + (test-assert "screendump" + (begin + (marionette-control (string-append "screendump " #$output + "/tty1.ppm") + marionette) + (file-exists? "tty1.ppm"))) + + (test-end) + (exit (= (test-runner-fail-count (test-runner-current)) 0))))) + + (gexp->derivation "minimal-desktop" test)) + +(define %test-minimal-desktop + (system-test + (name "minimal-desktop") + (description + "Test whether we can log in when seatd and greetd is enabled") + (value + (let* ((os (marionette-operating-system + (minimal-operating-system) + #:imported-modules '((gnu services herd) + (guix combinators)))) + (vm (virtual-machine os))) + (run-minimal-desktop-test (virtualized-operating-system os '()) + #~(list #$vm)))))) -- 2.33.0 From debbugs-submit-bounces@debbugs.gnu.org Wed Sep 15 12:30:04 2021 Received: (at 49969) by debbugs.gnu.org; 15 Sep 2021 16:30:04 +0000 Received: from localhost ([127.0.0.1]:53053 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mQXnQ-00039Q-4E for submit@debbugs.gnu.org; Wed, 15 Sep 2021 12:30:04 -0400 Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:58048 helo=nomad-cl1.muradm.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mQXnN-00038Q-QI for 49969@debbugs.gnu.org; Wed, 15 Sep 2021 12:30:03 -0400 Received: from [176.234.10.27] (port=7342 helo=localhost) by nomad-cl1.muradm.net with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1mQXnN-0000NE-AX for 49969@debbugs.gnu.org; Wed, 15 Sep 2021 16:30:01 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; s=mail; h=Content-Transfer-Encoding:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Sender:Reply-To:Cc:Content-Type:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=nW4HoVACkzmNoOIRxZQbWFHsY4g82eLy/4a54bPgrIw=; b=MZDhUSTj9u1oaU1xX2+aiAzI+u kKAOjX8r2mcRHuW9ZG2Ryeu2mQPCIhrdpBZ5ROHLsfAWvCmQJACmcpGZhDDB0pgyU9bwWlTWET5vO Wo9IBJCKqMR49vuB6B0yuux6CNuGUujhnAUyqKTAbGwBpGaXELoYuSLpLKuMcKTrgGMiACsAOYnEa ApgjfJhpM03skA5wmWwCyc5iyhoOFrWnlsH1VXc++58qd9+f1MG5qdRG67UgU058XTbXIdakuVYCJ Qmz/cWX4SURZdlf+pCaY33IVBQd3Bm7Hq/EuZKz76OBMnUozrBRAbHCw+hrK6grVFpIyYA+Ku3FE/ B4X01sOO9oUrZB5vo8KrBF0XpXwWLlrv6ZDYPHbDtibUrTnn8Qyrs9GkNAwZYeRz0N4DY8zbWZwMZ FHwfzxFqoIgXfDafWjGW9IRktWMtVuIZsNmf+A+yLNbN8I3BZqZurUeCNW0KIjWrlR+gVCJnqcdFL mVjtc/1tcf7xULIO44JKbtiS; Received: from muradm by localhost with local (Exim 4.94.2) (envelope-from ) id 1mQXnK-0007OO-O4 for 49969@debbugs.gnu.org; Wed, 15 Sep 2021 19:29:58 +0300 From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v7 0/7] gnu: Add greetd-service-type and seatd-service-type. Date: Wed, 15 Sep 2021 19:29:51 +0300 Message-Id: <20210915162958.28398-1-mail@muradm.net> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210906152641.11020-1-mail@muradm.net> References: <20210906152641.11020-1-mail@muradm.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) In this version: - updating libseat and seatd to 0.6.1 muradm (7): gnu: crates-io: Add rust-enquote 1.0.3 and rust-pam-sys 0.5.6. gnu: admin: Add greetd 0.8.0. gnu: admin: Add greetd-pam-mount. gnu: base: Add greetd-service-type. gnu: admin: Add libseat 0.6.1 and move seatd. gnu: desktop: Add seatd-service-type. gnu: tests: Add seatd/greetd based minimal desktop system tests. doc/guix.texi | 175 ++++++++++++++++++++++++++++ gnu/packages/admin.scm | 164 ++++++++++++++++++++++++++ gnu/packages/crates-io.scm | 49 ++++++++ gnu/packages/freedesktop.scm | 30 ----- gnu/services/base.scm | 218 ++++++++++++++++++++++++++++++++++- gnu/services/desktop.scm | 60 +++++++++- gnu/services/pam-mount.scm | 2 +- gnu/tests/desktop.scm | 212 +++++++++++++++++++++++++++++++++- 8 files changed, 876 insertions(+), 34 deletions(-) -- 2.33.0 From debbugs-submit-bounces@debbugs.gnu.org Wed Sep 15 12:30:11 2021 Received: (at 49969) by debbugs.gnu.org; 15 Sep 2021 16:30:11 +0000 Received: from localhost ([127.0.0.1]:53059 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mQXnW-00039w-GE for submit@debbugs.gnu.org; Wed, 15 Sep 2021 12:30:11 -0400 Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:58050 helo=nomad-cl1.muradm.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mQXnO-00038j-FH for 49969@debbugs.gnu.org; Wed, 15 Sep 2021 12:30:03 -0400 Received: from [176.234.10.27] (port=7204 helo=localhost) by nomad-cl1.muradm.net with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1mQXnO-0000NH-Ke for 49969@debbugs.gnu.org; Wed, 15 Sep 2021 16:30:02 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; s=mail; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:To:From:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=r4qkw+392FQuQOylqz4YjpcoNsJu3sw8jyNuZdfPhi4=; b=majsDHvQLCrfjY+1brPt5mjaIw a0Bnfs5toyWCVtN9U+HL4LM/t4RldQ4f+yCb3xYWaqFFAguRLs85puphDVRUYImh2qR/L9MYgAjDd ZL4WBGX7RSmMdfScXqO1+x1iqoICJhTGD++bky14dtMDOWv9f0sflXlMyaOSKKjIpUhduWvL7brpc LGrzjRRBCALVj8Hw25QJ6YonJIfusQ5ERt+T+tB6PJRK045goV7URvCvP6VsUUkBASTR9nH/R1jvs ZVmP/oCxOfrI87dKqYBqmHipM2orICSdAVT3zVlBnrayYJ9OPUzW9Rslw1M7y2MUfxVx/qEzg6GMD fXkeUN12NrRFtZUiQscmU1OKEwojKHYuP10rNwOa8Ph3rg+aLEaVI+FaRca0jKcs3WDsyYZ6dKrBi DXFxeoMgasq0wR3iavskT1Jnn9SdojE9duNiUsvSXNuajo35ypJySoiMO21jlD2fpBTboi8wuaSZK pVKPQXf3ds2TvcfB+iuialqI; Received: from muradm by localhost with local (Exim 4.94.2) (envelope-from ) id 1mQXnM-0007OR-En for 49969@debbugs.gnu.org; Wed, 15 Sep 2021 19:30:00 +0300 From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v7 1/7] gnu: crates-io: Add rust-enquote 1.0.3 and rust-pam-sys 0.5.6. Date: Wed, 15 Sep 2021 19:29:52 +0300 Message-Id: <20210915162958.28398-2-mail@muradm.net> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210915162958.28398-1-mail@muradm.net> References: <20210906152641.11020-1-mail@muradm.net> <20210915162958.28398-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/crates-io.scm (rust-enquote-1): New variable * gnu/packages/crates-io.scm (rust-pam-sys-0.5): New variable --- gnu/packages/crates-io.scm | 49 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 2b91d4b871..83a8642448 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -19,6 +19,7 @@ ;;; Copyright © 2021 Antero Mejr ;;; Copyright © 2021 Maxim Cournoyer ;;; Copyright © 2021 Vinicius Monego +;;; Copyright © 2021 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -55,6 +56,7 @@ #:use-module (gnu packages glib) #:use-module (gnu packages image) #:use-module (gnu packages jemalloc) + #:use-module (gnu packages linux) #:use-module (gnu packages llvm) #:use-module (gnu packages multiprecision) #:use-module (gnu packages nettle) @@ -57376,3 +57378,50 @@ variant of this library is available separately as @code{im}.") (description "Generate Rust register maps (`struct`s) from SVD files") (license (list license:expat license:asl2.0)))) + +(define-public rust-enquote-1 + (package + (name "rust-enquote") + (version "1.0.3") + (home-page "https://github.com/reujab/enquote") + (source + (origin + (method url-fetch) + (uri (crate-uri "enquote" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0vm687r2wwgc3d3l2iqhag9wgkql6k93sdvjxvmfkdpksajpij1f")))) + (build-system cargo-build-system) + (synopsis + "A Rust library quotes, unquotes, and unescapes strings") + (description + "A Rust library quotes, unquotes, and unescapes strings") + (license license:unlicense))) + +(define-public rust-pam-sys-0.5 + (package + (name "rust-pam-sys") + (version "0.5.6") + (home-page "https://github.com/1wilkens/pam-sys") + (source + (origin + (method url-fetch) + (uri (crate-uri "pam-sys" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0d14501d5vybjnzxfjf96321xa5wa36x1xvf02h02zq938qmhj6d")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-libc" ,rust-libc-0.2)))) + (native-inputs + `(("linux-pam" ,linux-pam))) + (synopsis + "Rust FFI wrappers for the Linux Pluggable Authentication Modules (PAM)") + (description + "Rust FFI wrappers for the Linux Pluggable Authentication Modules (PAM)") + (license (list license:expat license:asl2.0)))) -- 2.33.0 From debbugs-submit-bounces@debbugs.gnu.org Wed Sep 15 12:30:11 2021 Received: (at 49969) by debbugs.gnu.org; 15 Sep 2021 16:30:11 +0000 Received: from localhost ([127.0.0.1]:53061 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mQXnX-00039z-1j for submit@debbugs.gnu.org; Wed, 15 Sep 2021 12:30:11 -0400 Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:58054 helo=nomad-cl1.muradm.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mQXnR-00039X-Bo for 49969@debbugs.gnu.org; Wed, 15 Sep 2021 12:30:05 -0400 Received: from [176.234.10.27] (port=7488 helo=localhost) by nomad-cl1.muradm.net with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1mQXnR-0000NN-LM for 49969@debbugs.gnu.org; Wed, 15 Sep 2021 16:30:05 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; s=mail; h=Content-Transfer-Encoding:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Sender:Reply-To:Cc:Content-Type:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=sqZE6qFYalZFifHvF/PNFwJBO4Fqo2jT0XQxlzCwyVY=; b=CH+PzHcJ2cZ8jKU1PmYVdFW/mb OYJ7T1cg5vdYcvPlTL/Y0Q6pDvzU8yRZlnaFpAOsCUg1ZiFPUMpk0KfUNADVFb/E6JjzY3gy56AF2 AJBmO8WHXHF6B62u/HIYCJ/qWYf7MCL0i131JFSsnQZU4ylOK206hBecTz4KdZNA2JtwbUq+UbaV0 3Wdgg2C4elCOqWFFAzVWR1Ye9c6UyTc5bdXSv4qZsSItgMUQRQx2dPn7zhSsuOZ1Zz77K9pZj/lpA pv0t25EfyriL1a57PZ59uPhd5rR+F7Ios3IaPROqnUyjb7rxwLBOlhmVgPHs++zRng3AtnhvtDMp2 1soJE8Z7xwHo8bC42FvKjhgkBB4KelxtkSV62usgmi0Mv65hvLf1Yge5t1JsWzOS0QXivp1gnqe7w LuPP6EZyGAV0FG9DV/Af4aGfEvqBLkFbahSPhXa6VTqHSGKgz3zhqL1SUqPvElxv/KhJ7YnMpl2ik 8AZNNseAlHwvjqLlPWN47Q25; Received: from muradm by localhost with local (Exim 4.94.2) (envelope-from ) id 1mQXnP-0007OX-3O for 49969@debbugs.gnu.org; Wed, 15 Sep 2021 19:30:03 +0300 From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v7 3/7] gnu: admin: Add greetd-pam-mount. Date: Wed, 15 Sep 2021 19:29:54 +0300 Message-Id: <20210915162958.28398-4-mail@muradm.net> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210915162958.28398-1-mail@muradm.net> References: <20210906152641.11020-1-mail@muradm.net> <20210915162958.28398-1-mail@muradm.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/admin.scm (greetd-pam-mount): New variable --- gnu/packages/admin.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index bef0ca3745..e46d21844b 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -4892,3 +4892,35 @@ If you can run it from your shell in a TTY, greetd can start it. If it can be taught to speak a simple JSON-based IPC protocol, then it can be a greeter.") (license license:gpl3+))) + +(define-public greetd-pam-mount + (package + (inherit pam-mount) + (name "greetd-pam-mount") + (arguments + (substitute-keyword-arguments (package-arguments pam-mount) + ((#:configure-flags flags ''()) + `(cons* "--with-rundir=/run/greetd" ,flags)) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'unpack 'patch-config-file-name + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/pam_mount.c" + ((".*define CONFIGFILE .*$") + "#define CONFIGFILE \"/etc/security/greetd_pam_mount.conf.xml\"\n") + (("pam_mount_config") "greetd_pam_mount_config") + (("pam_mount_system_authtok") "greetd_pam_mount_system_authtok")))))))) + (synopsis "pam-mount specifically compiled for use with greetd") + (description + "Pam-mount is a PAM module that can mount volumes when a user logs in. +It supports mounting local filesystems of any kind the normal mount utility +supports. It can also mount encrypted LUKS volumes using the password +supplied by the user when logging in. + +This package inherits pam-mount in the way that it is compiled specifically +for use with greetd daemon. It uses different configuration location and +name space for storing data in PAM. + +greetd-pam-mount is used in configuration of greetd to provide +auto-(mounting/unmounting) of XDG_RUNTIME_DIR in the way that it will not +interfere with default pam-mount configuration."))) -- 2.33.0 From debbugs-submit-bounces@debbugs.gnu.org Wed Sep 15 12:30:12 2021 Received: (at 49969) by debbugs.gnu.org; 15 Sep 2021 16:30:12 +0000 Received: from localhost ([127.0.0.1]:53064 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mQXnX-0003A8-Ih for submit@debbugs.gnu.org; Wed, 15 Sep 2021 12:30:12 -0400 Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:58052 helo=nomad-cl1.muradm.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mQXnP-00039I-Uk for 49969@debbugs.gnu.org; Wed, 15 Sep 2021 12:30:06 -0400 Received: from [176.234.10.27] (port=7276 helo=localhost) by nomad-cl1.muradm.net with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1mQXnQ-0000NK-6s for 49969@debbugs.gnu.org; Wed, 15 Sep 2021 16:30:04 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; s=mail; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:To:From:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=vfeLhb630pnD8Et2n1zZ/LdDV0bK0EXXL+TxrK4iKFI=; b=NBbL7BkTtWJsfjYa6VgR2k96K+ 36PCBxbdrR7e+GCNyWY/JevJL6P+uvoZMTbx06zLxez2RqSIANhTF68qI/yN43waVmKC0cl7G+Wxo BRr5VSIeUYUeURmNW+jwdESi9RyQZMD4uij+AiUTra5YaCROZJCHCHdE4xA9vBd1FMoDDpEb4MtYK gefyDC3gWcintc+0YmcOFGI1CNiwHul6hMF5Kec0aciNKAfuoDoglSDelOoJ1bpEhaXBnduBe8oC5 WzAzz7VhKNweH3s+MH4as7kvpR2ICBVfI5m78Hs82bHHuYc2dhXjJs8hA9Cb6SWDxxp+xple0UbK0 Ge+RUaoUEHEu8EjJh9JD8380aTkA1ytmXuj+ifocMkdsEQ3BvhTD7xCahszeyXCDcKmdHP26bJWn/ Q+sWd8S0E+9mO7fKehxM+OSb/sWp++C87e6f8WXSXnxkTg6mgbpuWb91JRHVSVWcA6GBmvQxweEUm jXtr9BPkWam0xubi2CLUdKYu; Received: from muradm by localhost with local (Exim 4.94.2) (envelope-from ) id 1mQXnN-0007OU-Mt for 49969@debbugs.gnu.org; Wed, 15 Sep 2021 19:30:01 +0300 From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v7 2/7] gnu: admin: Add greetd 0.8.0. Date: Wed, 15 Sep 2021 19:29:53 +0300 Message-Id: <20210915162958.28398-3-mail@muradm.net> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210915162958.28398-1-mail@muradm.net> References: <20210906152641.11020-1-mail@muradm.net> <20210915162958.28398-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/admin.scm (greetd): New variable --- gnu/packages/admin.scm | 79 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 8d6ae9eb1f..bef0ca3745 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -45,6 +45,7 @@ ;;; Copyright © 2021 Brice Waegeneire ;;; Copyright © 2021 Maxim Cournoyer ;;; Copyright © 2021 Maxime Devos +;;; Copyright © 2021 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -62,6 +63,7 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu packages admin) + #:use-module (guix build-system cargo) #:use-module (guix build-system cmake) #:use-module (guix build-system emacs) #:use-module (guix build-system glib-or-gtk) @@ -88,6 +90,7 @@ #:use-module (gnu packages c) #:use-module (gnu packages check) #:use-module (gnu packages compression) + #:use-module (gnu packages crates-io) #:use-module (gnu packages cross-base) #:use-module (gnu packages crypto) #:use-module (gnu packages cryptsetup) @@ -4813,3 +4816,79 @@ setup, maintenance, supervision, or any long-running processes.") (description "Utility to convert @code{lsof} output to a graph showing FIFO and UNIX interprocess communication.") (license license:bsd-2)))) + +(define-public greetd + (package + (name "greetd") + (version "0.8.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 "0x5c3jkw09kvj2grcxm899y2n6ws8p990cyp9cs0fy6lm4fzlh6v")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-nix" ,rust-nix-0.19) + ("rust-pam-sys" ,rust-pam-sys-0.5) + ("rust-rpassword" ,rust-rpassword-5) + ("rust-users" ,rust-users-0.11) + ("rust-serde" ,rust-serde-1) + ("rust-serde-json" ,rust-serde-json-1) + ("rust-libc" ,rust-libc-0.2) + ("rust-tokio" ,rust-tokio-1) + ("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 + (delete 'package) + (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)))))))) + (native-inputs + `(("linux-pam" ,linux-pam) + ("scdoc" ,scdoc))) + (synopsis "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. + +If you can run it from your shell in a TTY, greetd can start it. + +If it can be taught to speak a simple JSON-based IPC protocol, +then it can be a greeter.") + (license license:gpl3+))) -- 2.33.0 From debbugs-submit-bounces@debbugs.gnu.org Wed Sep 15 12:30:16 2021 Received: (at 49969) by debbugs.gnu.org; 15 Sep 2021 16:30:16 +0000 Received: from localhost ([127.0.0.1]:53066 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mQXnY-0003AG-DE for submit@debbugs.gnu.org; Wed, 15 Sep 2021 12:30:16 -0400 Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:58058 helo=nomad-cl1.muradm.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mQXnT-00039m-7e for 49969@debbugs.gnu.org; Wed, 15 Sep 2021 12:30:09 -0400 Received: from [176.234.10.27] (port=7420 helo=localhost) by nomad-cl1.muradm.net with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1mQXnT-0000NQ-3R for 49969@debbugs.gnu.org; Wed, 15 Sep 2021 16:30:07 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; s=mail; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:To:From:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=mUh7SwkOQkEPJzi500uy1Z7lTChd7wCakkLpWk0RpWw=; b=iG+MMvLnNWXGm7XGRfE/k/qrni vFvcSHvhez8nfvzoT0j/lQz6oapBv1HPgO32gaEaKAgiIYUf+kS2wDFh/+4cN3f5YyB1U7sQZenDl P0xMLul5Egl1+iRYqcViRPlTZBo5F4F3UryZ63zpwkuppa9mn3AhCTXuk8iUneo1boYfPSV+ARhE7 9GgzA8JK5LZL3qzFAEyGuw8jc/rte5GqlfaOIFnPoO60Ze4S5aSsVwW8U9q8qLFfcblJJP6MDvWxC EB5O77f75rwJa5n7L7Z/viTOv+xyfViu9b+uuvihe9rk00QtLJHoXHomRpaWm6MGBfamSzEpPC9k1 AMzlpI4O1ibopdbwczsil1o9JTvwy33U8p31WH55URpJNl7s2pmYUhL890j5yNDJUJMZIFaZqnS/4 uC5aieVVaLiptd30fEf1sTETVKbaYbNvdXNdaibDe4jlaLTjTxYGzZIAYD7Vernbk/cMepJh3cwVQ xwZf1KjQ1lJi3sdUsklzlBFA; Received: from muradm by localhost with local (Exim 4.94.2) (envelope-from ) id 1mQXnQ-0007Oa-KR for 49969@debbugs.gnu.org; Wed, 15 Sep 2021 19:30:04 +0300 From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v7 4/7] gnu: base: Add greetd-service-type. Date: Wed, 15 Sep 2021 19:29:55 +0300 Message-Id: <20210915162958.28398-5-mail@muradm.net> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210915162958.28398-1-mail@muradm.net> References: <20210906152641.11020-1-mail@muradm.net> <20210915162958.28398-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/services/base.scm (greetd-service-type): New variable * gnu/services/base.scm (greetd-configuration): New data type * gnu/services/base.scm (greetd-terminal-configuration): New data type * gnu/services/base.scm (greetd-agreety-session): New data type * gnu/services/base.scm (pam-limits-service-type): Shoul be aware of greetd PAM service * gnu/services/pam-mount.scm (pam-mount-pam-service): Shoul be aware of greetd PAM service --- doc/guix.texi | 133 ++++++++++++++++++++++ gnu/services/base.scm | 218 ++++++++++++++++++++++++++++++++++++- gnu/services/pam-mount.scm | 2 +- 3 files changed, 351 insertions(+), 2 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 964ef6d5f4..c641ffc453 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -96,6 +96,7 @@ Copyright @copyright{} 2021 Domagoj Stolfa@* Copyright @copyright{} 2021 Hui Lu@* Copyright @copyright{} 2021 pukkamustard@* Copyright @copyright{} 2021 Alice Brenon@* +Copyright @copyright{} 2021 muradm@* Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -16156,6 +16157,138 @@ about the Pluggable Authentication Module (PAM) limits, refer to the @samp{pam_limits} man page from the @code{linux-pam} package. @end deffn +@defvr {Scheme Variable} greetd-service-type +@uref{https://git.sr.ht/~kennylevinsen/greetd, @code{greetd}} is a minimal and +flexible login manager daemon, that makes no assumptions about what you +want to launch. + +If you can run it from your shell in a TTY, greetd can start it. If it +can be taught to speak a simple JSON-based IPC protocol, then it can be +a geeter. + +@code{greetd-service-type} provides necessary infrastructure for logging +in users, including: + +@itemize @bullet +@item +@code{greetd} PAM service + +@item +Special variation of @code{pam-mount} to mount @code{XDG_RUNTIME_DIR} +@end itemize + +Here is example of switching from @code{mingetty-service-type} to +@code{greetd-service-type}, and how different terminals could be: + +@lisp + (append + (modify-services %base-services + ;; greetd-service-type provides "greetd" PAM service + (delete login-service-type) + ;; and can be used in place of mingetty-service-type + (delete mingetty-service-type)) + (list + (service greetd-service-type + (greetd-configuration + (terminals + (list + ;; we can make any terminal active by default + (greetd-terminal-configuration (terminal-vt "1") (terminal-switch #t)) + ;; we can make environment without XDG_RUNTIME_DIR set + ;; even provide our own environment variables + (greetd-terminal-configuration + (terminal-vt "2") + (default-session-command + (greetd-agreety-session + (extra-env '(("MY_VAR" . "1"))) + (xdg-env? #f)))) + ;; we can use different shell instead of default bash + (greetd-terminal-configuration + (terminal-vt "3") + (default-session-command + (greetd-agreety-session (command (file-append zsh "/bin/zsh"))))) + ;; we can use any other executable command as greeter + (greetd-terminal-configuration + (terminal-vt "4") + (default-session-command (program-file "my-noop-greeter" #~(exit)))) + (greetd-terminal-configuration (terminal-vt "5")) + (greetd-terminal-configuration (terminal-vt "6")))))) + ;; mingetty-service-type can be used in parallel + ;; if needed to do so, do not (delete login-service-type) + ;; as illustrated above + #| (service mingetty-service-type (mingetty-configuration (tty "tty8"))) |#)) +@end lisp +@end defvr + +@deftp {Data Type} greetd-configuration +Configuration record for the @code{greetd-service-type}. +@table @asis + +@item @code{motd} +A file-like object containing the ``message of the day''. + +@item @code{allow-empty-passwords?} (default: @code{#t}) +Allow empty passwords by default so that first-time users can log in when +the 'root' account has just been created. + +@item @code{terminals} (default: @code{'()}) +List of @code{greetd-terminal-configuration} per terminal for which +@code{greetd} should be started. +@end table +@end deftp + +@deftp {Data Type} greetd-terminal-configuration +Configuration record for per terminal greetd daemon service. + +@table @asis +@item @code{greetd} (default: @code{greetd}) +The greetd package to use. + +@item @code{config-file-name} +Configuration file name to use for greetd daemon. Generally, autogenerated +derivation based on @code{terminal-vt} value. + +@item @code{terminal-vt} (default: @samp{"7"}) +The VT to run on. Use of a specific VT with appropriate conflict avoidance +is recommended. + +@item @code{terminal-switch} (default: @code{#f}) +Make this terminal active on start of @code{greetd}. + +@item @code{default-session-user} (default: @samp{"greeter"}) +The user to use for running the greeter. + +@item @code{default-session-command} (default: @code{(greetd-agreety-session)}) +Can be either instance of @code{greetd-agreety-session} configuration or +@code{gexp->script} like object to use as greeter. + +@end table +@end deftp + +@deftp {Data Type} greetd-agreety-session +Configuration record for the agreety greetd greeter. + +@table @asis +@item @code{agreety} (default: @code{greetd}) +The package with @command{/bin/agreety} command. + +@item @code{command} (default: @code{(file-append bash "/bin/bash")}) +Command to be started by @command{/bin/agreety} on successful login. + +@item @code{command-args} (default: @code{'("-l")}) +Command arguments to pass to command. + +@item @code{extra-env} (default: @code{'()}) +Extra environment variables to set on login. + +@item @code{xdg-env?} (default: @code{#t}) +If true @code{XDG_RUNTIME_DIR} and @code{XDG_SESSION_TYPE} will be set +before starting command. One should note that, @code{extra-env} variables +are set right after mentioned variables, so that they can be overriden. + +@end table +@end deftp + @node Scheduled Job Execution @subsection Scheduled Job Execution diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 50865055fe..fe2c4d6fe5 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -16,6 +16,7 @@ ;;; Copyright © 2021 qblade ;;; Copyright © 2021 Hui Lu ;;; Copyright © 2021 Maxim Cournoyer +;;; Copyright © 2021 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -186,6 +187,11 @@ references-file + greetd-service-type + greetd-configuration + greetd-terminal-configuration + greetd-agreety-session + %base-services)) ;;; Commentary: @@ -1401,7 +1407,7 @@ information on the configuration file syntax." (module "pam_limits.so") (arguments '("conf=/etc/security/limits.conf"))))) (if (member (pam-service-name pam) - '("login" "su" "slim" "gdm-password" "sddm")) + '("login" "greetd" "su" "slim" "gdm-password" "sddm")) (pam-service (inherit pam) (session (cons pam-limits @@ -2462,6 +2468,216 @@ to handle." (requirement requirement) (name-servers name-servers))))) + +;;; +;;; greetd-service-type -- minimal and flexible login manager daemon +;;; + +(define-record-type* + greetd-agreety-session make-greetd-agreety-session + greetd-agreety-session? + (agreety greetd-agreety (default greetd)) + (command greetd-agreety-command (default (file-append bash "/bin/bash"))) + (command-args greetd-agreety-command-args (default '("-l"))) + (extra-env greetd-agreety-extra-env (default '())) + (xdg-env? greetd-agreety-xdg-env? (default #t))) + +(define greetd-agreety-tty-session-command + (match-lambda + (($ _ command args extra-env) + (program-file + "agreety-tty-session-command" + #~(begin + (use-modules (ice-9 match)) + (for-each (match-lambda ((var . val) (setenv var val))) + (quote (#$@extra-env))) + (apply execl #$command #$command (list #$@args))))))) + +(define greetd-agreety-tty-xdg-session-command + (match-lambda + (($ _ command args extra-env) + (program-file + "agreety-tty-xdg-session-command" + #~(begin + (use-modules (ice-9 match)) + (let* + ((username (getenv "USER")) + (useruid (passwd:uid (getpwuid username))) + (useruid (number->string useruid))) + (setenv "XDG_SESSION_TYPE" "tty") + (setenv "XDG_RUNTIME_DIR" (string-append "/run/user/" useruid))) + (for-each (match-lambda ((var . val) (setenv var val))) + (quote (#$@extra-env))) + (apply execl #$command #$command (list #$@args))))))) + +(define (make-greetd-agreety-session-command config command) + (let ((agreety (file-append (greetd-agreety config) "/bin/agreety"))) + (program-file + "agreety-command" + #~(execl #$agreety #$agreety "-c" #$command)))) + +(define (make-greetd-default-session-command config-or-command) + (cond ((greetd-agreety-session? config-or-command) + (cond ((greetd-agreety-xdg-env? config-or-command) + (make-greetd-agreety-session-command + config-or-command + (greetd-agreety-tty-xdg-session-command config-or-command))) + (#t + (make-greetd-agreety-session-command + config-or-command + (greetd-agreety-tty-session-command config-or-command))))) + (#t config-or-command))) + +(define-record-type* + greetd-terminal-configuration make-greetd-terminal-configuration + greetd-terminal-configuration? + (greetd greetd-package (default greetd)) + (config-file-name greetd-config-file-name (thunked) + (default (default-config-file-name this-record))) + (terminal-vt greetd-terminal-vt (default "7")) + (terminal-switch greetd-terminal-switch (default #f)) + (default-session-user greetd-default-session-user (default "greeter")) + (default-session-command greetd-default-session-command + (default (greetd-agreety-session)) + (sanitize make-greetd-default-session-command))) + +(define (default-config-file-name config) + (string-join (list "config-" (greetd-terminal-vt config) ".toml") "")) + +(define (make-greetd-terminal-configuration-file config) + (let* + ((config-file-name (greetd-config-file-name config)) + (terminal-vt (greetd-terminal-vt config)) + (terminal-switch (greetd-terminal-switch config)) + (default-session-user (greetd-default-session-user config)) + (default-session-command (greetd-default-session-command config))) + (mixed-text-file + config-file-name + "[terminal]\n" + "vt = " terminal-vt "\n" + "switch = " (if terminal-switch "true" "false") "\n" + "[default_session]\n" + "user = " default-session-user "\n" + "command = " default-session-command "\n"))) + +(define %greetd-accounts + (list (user-account + (name "greeter") + (group "wheel") + (supplementary-groups '("users" "tty" "input" "video" "audio")) + (system? #t)))) + +(define %greetd-file-systems + (list (file-system + (device "none") + (mount-point "/run/greetd/pam_mount") + (type "tmpfs") + (check? #f) + (flags '(no-suid no-dev no-exec)) + (options "mode=0755") + (create-mount-point? #t)))) + +(define %greetd-pam-mount-rules + `((debug (@ (enable "0"))) + (volume (@ (sgrp "users") + (fstype "tmpfs") + (mountpoint "/run/user/%(USERUID)") + (options "noexec,nosuid,nodev,size=1g,mode=0700,uid=%(USERUID),gid=%(USERGID)"))) + (logout (@ (wait "0") + (hup "0") + (term "yes") + (kill "no"))) + (mkmountpoint (@ (enable "1") (remove "true"))))) + +(define-record-type* + greetd-configuration make-greetd-configuration + greetd-configuration? + (motd greetd-motd (default %default-motd)) + (allow-empty-passwords? greetd-allow-empty-passwords? (default #t)) + (terminals greetd-terminals (default '()))) + +(define (make-greetd-pam-mount-conf-file config) + (computed-file + "greetd_pam_mount.conf.xml" + #~(begin + (use-modules (sxml simple)) + (call-with-output-file #$output + (lambda (port) + (sxml->xml + '(*TOP* + (*PI* xml "version='1.0' encoding='utf-8'") + (pam_mount + #$@%greetd-pam-mount-rules + (pmvarrun + #$(file-append greetd-pam-mount + "/sbin/pmvarrun -u '%(USER)' -o '%(OPERATION)'")))) + port)))))) + +(define (greetd-etc-service config) + `(("security/greetd_pam_mount.conf.xml" + ,(make-greetd-pam-mount-conf-file config)))) + +(define (greetd-pam-service config) + (define optional-pam-mount + (pam-entry + (control "optional") + (module #~(string-append #$greetd-pam-mount "/lib/security/pam_mount.so")) + (arguments '("disable_interactive")))) + + (list + (unix-pam-service "greetd" + #:login-uid? #t + #:allow-empty-passwords? + (greetd-allow-empty-passwords? config) + #:motd + (greetd-motd config)) + (lambda (pam) + (if (member (pam-service-name pam) + '("login" "greetd" "su" "slim" "gdm-password")) + (pam-service + (inherit pam) + (auth (append (pam-service-auth pam) + (list optional-pam-mount))) + (session (append (pam-service-session pam) + (list optional-pam-mount)))) + pam)))) + +(define (greetd-shepherd-services config) + (map + (lambda (tc) + (let* + ((greetd-bin (file-append (greetd-package tc) "/sbin/greetd")) + (greetd-conf (make-greetd-terminal-configuration-file tc)) + (greetd-vt (greetd-terminal-vt tc))) + (shepherd-service + (documentation "Minimal and flexible login manager daemon") + (requirement '(user-processes host-name udev virtual-terminal)) + (provision (list (symbol-append + 'term-tty + (string->symbol (greetd-terminal-vt tc))))) + (start #~(make-forkexec-constructor + (list #$greetd-bin "-c" #$greetd-conf) + #:log-file + (string-append "/tmp/greetd." #$greetd-vt ".log"))) + (stop #~(make-kill-destructor))))) + (greetd-terminals config))) + +(define greetd-service-type + (service-type + (name 'greetd) + (description "Provides necessary infrastructure for logging into the +system including @code{greetd} PAM service, @code{pam-mount} module to +mount/unmount /run/user/ directory for user and @code{greetd} +login manager daemon.") + (extensions + (list + (service-extension account-service-type (const %greetd-accounts)) + (service-extension file-system-service-type (const %greetd-file-systems)) + (service-extension etc-service-type greetd-etc-service) + (service-extension pam-root-service-type greetd-pam-service) + (service-extension shepherd-root-service-type greetd-shepherd-services))) + (default-value (greetd-configuration)))) + (define %base-services ;; Convenience variable holding the basic services. diff --git a/gnu/services/pam-mount.scm b/gnu/services/pam-mount.scm index 98611462c2..d6c65e3760 100644 --- a/gnu/services/pam-mount.scm +++ b/gnu/services/pam-mount.scm @@ -90,7 +90,7 @@ (module #~(string-append #$pam-mount "/lib/security/pam_mount.so")))) (list (lambda (pam) (if (member (pam-service-name pam) - '("login" "su" "slim" "gdm-password")) + '("login" "greetd" "su" "slim" "gdm-password")) (pam-service (inherit pam) (auth (append (pam-service-auth pam) -- 2.33.0 From debbugs-submit-bounces@debbugs.gnu.org Wed Sep 15 12:30:38 2021 Received: (at 49969) by debbugs.gnu.org; 15 Sep 2021 16:30:38 +0000 Received: from localhost ([127.0.0.1]:53074 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mQXnl-0003By-DC for submit@debbugs.gnu.org; Wed, 15 Sep 2021 12:30:38 -0400 Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:58060 helo=nomad-cl1.muradm.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mQXna-0003AT-FR for 49969@debbugs.gnu.org; Wed, 15 Sep 2021 12:30:15 -0400 Received: from [176.234.10.27] (port=7002 helo=localhost) by nomad-cl1.muradm.net with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1mQXna-0000NT-Ns for 49969@debbugs.gnu.org; Wed, 15 Sep 2021 16:30:14 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; s=mail; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:To:From:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=tjquRGNMWORs03M7n46GBXgvUGjXtILCoBV4Fs9Wh0M=; b=kb+uXpwurD+IGrzo01yox4IoY8 NUyJQrgxsvFv50n1iOcGslftGYs1+LV/yRiVfFTvHwvHMLmjWjsPCxvGzyLpjcILIL0xNNV0zN7fF EybpPGCeyw7I3yI7Tq2MDVh7C/oppLNEd/3YH7nQdjqxZa4tIAW7XTAvkik8fE48RbDPAGdPAPt0H 13hfQTlOKXE6wHsbfLHgzXNdnITuUTpYcuUINqkdzCJhb+c9CP+U4/4lCylCfq/i3JtsY9JwncveN dWtODlCpIVxj/l55UplnCsEeyv6dibV8voznjPbFB/HfliV7gBSXJfKFRZFrGUW1+sq6Lh8r5cNHs 4HX47UPNu31BNWlJCSm6PrB5oShm2FUEVNFzQo1+lRZRrnolT4rSRfy+tY1AH+zQcM+5xKwKoDqIR bKXM0bLAZTvhdwSaPUU9i0t3e7QrsREt91AND7qpZft15H6jQ1h6cODulHAVvuzgyeGPfZmr7HAfF yxZQtKbIaVNqysPSp6dC0rQp; Received: from muradm by localhost with local (Exim 4.94.2) (envelope-from ) id 1mQXnS-0007Od-4H for 49969@debbugs.gnu.org; Wed, 15 Sep 2021 19:30:06 +0300 From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v7 5/7] gnu: admin: Add libseat 0.6.1 and move seatd. Date: Wed, 15 Sep 2021 19:29:56 +0300 Message-Id: <20210915162958.28398-6-mail@muradm.net> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210915162958.28398-1-mail@muradm.net> References: <20210906152641.11020-1-mail@muradm.net> <20210915162958.28398-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/admin.scm (libseat): New variable * gnu/packages/admin.scm (seatd): New variable * gnu/packages/freedesktop.scm (seatd): Remove variable --- gnu/packages/admin.scm | 53 ++++++++++++++++++++++++++++++++++++ gnu/packages/freedesktop.scm | 30 -------------------- 2 files changed, 53 insertions(+), 30 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index e46d21844b..83902a9bce 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -45,6 +45,7 @@ ;;; Copyright © 2021 Brice Waegeneire ;;; Copyright © 2021 Maxim Cournoyer ;;; Copyright © 2021 Maxime Devos +;;; Copyright © 2021 pineapples ;;; Copyright © 2021 muradm ;;; ;;; This file is part of GNU Guix. @@ -99,6 +100,7 @@ #:use-module (gnu packages elf) #:use-module (gnu packages file) #:use-module (gnu packages flex) + #:use-module (gnu packages freedesktop) #:use-module (gnu packages gawk) #:use-module (gnu packages gettext) #:use-module (gnu packages gl) @@ -4817,6 +4819,57 @@ setup, maintenance, supervision, or any long-running processes.") FIFO and UNIX interprocess communication.") (license license:bsd-2)))) +(define-public libseat + (package + (name "libseat") + (version "0.6.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~kennylevinsen/seatd") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0fkfnxqz5g2kidhdh7rsa20d8j0pd4fnnz63ddn3n5mlgqckj06s")))) + (build-system meson-build-system) + (arguments + `(#:configure-flags '("-Dlibseat-logind=elogind" + "-Dserver=disabled"))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (propagated-inputs + `(("elogind" ,elogind))) + (home-page "https://sr.ht/~kennylevinsen/seatd") + (synopsis "Seat management library") + (description + "This package provides a universal seat management library that +allows applications to use whatever seat management is available.") + (license license:expat))) + +(define-public seatd + (package + (inherit libseat) + (name "seatd") + (arguments + `(#:configure-flags '("-Dlibseat-logind=elogind") + #:phases + (modify-phases %standard-phases + (add-after 'install 'remove-libs + (lambda* (#:key outputs #:allow-other-keys) + (with-directory-excursion (assoc-ref outputs "out") + (for-each delete-file-recursively '("lib" "include")))))))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("scdoc" ,scdoc))) + (inputs '()) + (synopsis "Seat management daemon") + (description + "This package provides a minimal seat management daemon whose task is to +mediate access to shared devices, such as graphics and input, for applications +that require it.") + (license license:expat))) + (define-public greetd (package (name "greetd") diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 85d9697460..d7b411b5d1 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -834,36 +834,6 @@ GNOME Shell. The @command{localectl} command-line tool allows you to interact with localed. This package is extracted from the broader systemd package.") (license license:lgpl2.1+))) -(define-public seatd - (package - (name "seatd") - (version "0.5.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://git.sr.ht/~kennylevinsen/seatd") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1kglq8v4rnr3415mfaghyv2s2f8mxsy5s881gmm2908ig4n4j297")))) - (build-system meson-build-system) - (arguments - `(#:configure-flags '("-Dlogind=enabled"))) - (native-inputs - `(("pkg-config" ,pkg-config) - ("scdoc" ,scdoc))) - (inputs - `(("elogind" ,elogind))) - (home-page "https://sr.ht/~kennylevinsen/seatd") - (synopsis "Seat management daemon and library") - (description - "This package provides a minimal seat management daemon whose task is to -mediate access to shared devices, such as graphics and input, for applications -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 packagekit (package (name "packagekit") -- 2.33.0 From debbugs-submit-bounces@debbugs.gnu.org Wed Sep 15 12:30:38 2021 Received: (at 49969) by debbugs.gnu.org; 15 Sep 2021 16:30:38 +0000 Received: from localhost ([127.0.0.1]:53076 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mQXny-0003CS-8U for submit@debbugs.gnu.org; Wed, 15 Sep 2021 12:30:38 -0400 Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:58064 helo=nomad-cl1.muradm.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mQXnd-0003B1-9n for 49969@debbugs.gnu.org; Wed, 15 Sep 2021 12:30:18 -0400 Received: from [176.234.10.27] (port=7426 helo=localhost) by nomad-cl1.muradm.net with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1mQXnd-0000NZ-K6 for 49969@debbugs.gnu.org; Wed, 15 Sep 2021 16:30:17 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; s=mail; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:To:From:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=u/G+wBrFuraegz0F142BXhhegeToVgH/LbZ3a2xCcSM=; b=b4Vq0tn9hHX/1lPhgw+BcqP+4J Y5cb0wteduM8xs9+wpp2gQWyn14/ZJV6RS7/Ro9PXh3ymkoZhz4xWyQQBm1Rua88ohI1GAuzV1vGx 0vvBDsJiRHRUqZ7XOzjmNv3E884d4oSWQotf2eqFYKPfFSiZlH1NoM8Dequ76qw6VBqQ7K4s/GpvO JJASZ2YokFIwTuqOZrW+kVp/A/VKR2evEv04DY0kVr/Awz64q+AL1ZfEnVjC/p7tA5yHIkdY5yJXa f2byFGOqQwg8QDfMUTjEVXpVKvUuQHV79FKqpiVJxUhAaxMzGTxz17SN3UHqWs2CwScTKLlSyKPh1 nooIPASdYeGAw33W+bPQpd2Qeqq42HuELpemhgYLdXOh8HEXFO6Kq7LpIipmvKTXwxMkkuzp/zohA IY2D96FBPfxrzeeUuxUiTz9dNo+iZb4WJTdkjV1hjA+n3e0aonydyCdUa5GzuKa/lPf/h+8ufLAqQ +7cbXXbXZJ8Fhn+zMpwIX1Ui; Received: from muradm by localhost with local (Exim 4.94.2) (envelope-from ) id 1mQXnb-0007Oj-51 for 49969@debbugs.gnu.org; Wed, 15 Sep 2021 19:30:15 +0300 From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v7 7/7] gnu: tests: Add seatd/greetd based minimal desktop system tests. Date: Wed, 15 Sep 2021 19:29:58 +0300 Message-Id: <20210915162958.28398-8-mail@muradm.net> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210915162958.28398-1-mail@muradm.net> References: <20210906152641.11020-1-mail@muradm.net> <20210915162958.28398-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/tests/desktop.scm (minimal-desktop): seatd/greetd based minimal desktop test --- gnu/tests/desktop.scm | 212 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 211 insertions(+), 1 deletion(-) diff --git a/gnu/tests/desktop.scm b/gnu/tests/desktop.scm index 6aa22fd49b..50aa859869 100644 --- a/gnu/tests/desktop.scm +++ b/gnu/tests/desktop.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Ludovic Courtès +;;; Copyright © 2021 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -18,13 +19,17 @@ (define-module (gnu tests desktop) #:use-module (gnu tests) + #:use-module (gnu packages shells) #:use-module (gnu services) + #:use-module (gnu services base) #:use-module (gnu services dbus) #:use-module (gnu services desktop) + #:use-module (gnu system) #:use-module (gnu system vm) #:use-module (guix gexp) #:use-module (srfi srfi-1) - #:export (%test-elogind)) + #:export (%test-elogind + %test-minimal-desktop)) ;;; @@ -103,3 +108,208 @@ #:imported-modules '((gnu services herd) (guix combinators))))) (run-elogind-test (virtual-machine os)))))) + + +;;; +;;; Seatd/greetd based minimal desktop +;;; + +(define %minimal-services + (append + (modify-services %base-services + ;; greetd-service-type provides "greetd" PAM service + (delete login-service-type) + ;; and can be used in place of mingetty-service-type + (delete mingetty-service-type)) + (list + (service seatd-service-type) + (service greetd-service-type + (greetd-configuration + (terminals + (list + ;; we can make any terminal active by default + (greetd-terminal-configuration (terminal-vt "1") (terminal-switch #t)) + ;; we can make environment without XDG_RUNTIME_DIR set + ;; even provide our own environment variables + (greetd-terminal-configuration + (terminal-vt "2") + (default-session-command + (greetd-agreety-session + (extra-env '(("MY_VAR" . "1"))) + (xdg-env? #f)))) + ;; we can use different shell instead of default bash + (greetd-terminal-configuration + (terminal-vt "3") + (default-session-command + (greetd-agreety-session (command (file-append zsh "/bin/zsh"))))) + ;; we can use any other executable command as greeter + (greetd-terminal-configuration + (terminal-vt "4") + (default-session-command (program-file "my-noop-greeter" #~(exit)))) + (greetd-terminal-configuration (terminal-vt "5")) + (greetd-terminal-configuration (terminal-vt "6")))))) + ;; mingetty-service-type can be used in parallel + ;; if needed to do so, do not (delete login-service-type) + ;; as illustrated above + #| (service mingetty-service-type (mingetty-configuration (tty "tty8"))) |#))) + +(define-syntax-rule (minimal-operating-system user-services ...) + "Return an operating system that includes USER-SERVICES in addition to +minimal %BASE-SERVICES." + (operating-system (inherit %simple-os) + (services (cons* user-services ... %minimal-services)))) + +(define (run-minimal-desktop-test os vm) + (define test + (with-imported-modules '((gnu build marionette) + (guix build syscalls)) + #~(begin + (use-modules (gnu build marionette) + (guix build syscalls) + (srfi srfi-1) + (srfi srfi-64) + (ice-9 pretty-print)) + + (define marionette + (make-marionette #$vm)) + + (define (file-get-all-strings fname) + (marionette-eval '(use-modules (rnrs io ports)) marionette) + (wait-for-file fname marionette #:read 'get-string-all)) + + (define (wait-for-unix-socket-m socket) + (wait-for-unix-socket socket marionette)) + + (mkdir #$output) + (chdir #$output) + + (test-begin "minimal-desktop") + + (test-assert "seatd is ready" + (wait-for-unix-socket-m "/run/seatd.sock")) + + (test-equal "login user on tty1" + "alice\n" + (begin + ;; Wait for tty1. + (marionette-eval + '(begin + (use-modules (gnu services herd)) + (start-service 'term-tty1)) + marionette) + (marionette-control "sendkey ctrl-alt-f1" marionette) + + ;; login as root change alice password and exit + ;; then login as alice + (for-each + (lambda (cmd) (marionette-type cmd marionette) (sleep 1)) + (list + "root\n" + "passwd alice\n" + "alice\n" + "alice\n" + "exit\n" + "alice\n" + "alice\n" + "id -un > logged-in\n")) + + (file-get-all-strings "/home/alice/logged-in"))) + + (test-equal "validate user environment" + '("SEATD_SOCK=/run/seatd.sock" + "XDG_RUNTIME_DIR=/run/user/1000" + "XDG_SEAT=seat0" + "XDG_VTNR=1") + + (begin + (marionette-type "env > env\n" marionette) + (sleep 1) + + (define user-env (string-tokenize + (file-get-all-strings "/home/alice/env"))) + + (define (expected-var var) + (any (lambda (s) (string-contains var s)) + '("SEATD_SOCK" + "XDG_RUNTIME_DIR" + "XDG_SEAT" + "XDG_VTNR"))) + + (sort (filter expected-var user-env) string env\n" marionette) + (sleep 1) + + (define (sock-var? var) + (any (lambda (s) (string-contains var s)) + '("SEATD_SOCK" "GREETD_SOCK"))) + + (define (sock-var-sock var) + (car (cdr (string-split var #\=)))) + + (let* + ((out (file-get-all-strings "/home/alice/env")) + (out (string-tokenize out)) + (out (filter sock-var? out)) + (socks (map sock-var-sock out)) + (socks (map wait-for-unix-socket-m socks))) + (and (= 2 (length socks)) (every identity socks))))) + + (test-assert "greetd is ready" + (begin + (marionette-type "ps -C greetd -o pid,args --no-headers > ps-greetd\n" + marionette) + (sleep 1) + + (define (greetd-daemon? cmd) + (string-contains cmd "config")) + + (define (greetd-cmd-to-pid cmd) + (car (string-split cmd #\space))) + + (define (greetd-pid-to-sock pid) + (string-append "/run/greetd-" pid ".sock")) + + (let* ((out (file-get-all-strings "/home/alice/ps-greetd")) + (out (string-split out #\newline)) + (out (map string-trim-both out)) + (out (filter greetd-daemon? out)) + (pids (map greetd-cmd-to-pid out)) + (socks (map greetd-pid-to-sock pids)) + (socks (map wait-for-unix-socket-m socks))) + (every identity socks)))) + + ;; a bit weak, but tests everything at once actually + (test-equal "check /run/user/ mounted and writable" + "alice\n" + (begin + (marionette-type "echo alice > /run/user/1000/test\n" marionette) + (file-get-all-strings "/run/user/1000/test"))) + + (test-assert "screendump" + (begin + (marionette-control (string-append "screendump " #$output + "/tty1.ppm") + marionette) + (file-exists? "tty1.ppm"))) + + (test-end) + (exit (= (test-runner-fail-count (test-runner-current)) 0))))) + + (gexp->derivation "minimal-desktop" test)) + +(define %test-minimal-desktop + (system-test + (name "minimal-desktop") + (description + "Test whether we can log in when seatd and greetd is enabled") + (value + (let* ((os (marionette-operating-system + (minimal-operating-system) + #:imported-modules '((gnu services herd) + (guix combinators)))) + (vm (virtual-machine os))) + (run-minimal-desktop-test (virtualized-operating-system os '()) + #~(list #$vm)))))) -- 2.33.0 From debbugs-submit-bounces@debbugs.gnu.org Wed Sep 15 12:30:39 2021 Received: (at 49969) by debbugs.gnu.org; 15 Sep 2021 16:30:39 +0000 Received: from localhost ([127.0.0.1]:53078 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mQXny-0003Ca-R5 for submit@debbugs.gnu.org; Wed, 15 Sep 2021 12:30:39 -0400 Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:58062 helo=nomad-cl1.muradm.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mQXnb-0003Aa-Vs for 49969@debbugs.gnu.org; Wed, 15 Sep 2021 12:30:29 -0400 Received: from [176.234.10.27] (port=7704 helo=localhost) by nomad-cl1.muradm.net with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1mQXnc-0000NW-74 for 49969@debbugs.gnu.org; Wed, 15 Sep 2021 16:30:16 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; s=mail; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:To:From:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=SVPToCUdzrnTMne3D6z3KrTaW/NQRsYSWbp0tL/TUtA=; b=AYFTfgT8Lz5VzuPbzdkQv5VZFV OvGdPnekqgtjL3u9eC8dsUECShhE14PP0zNGGbWm+fAgCriF/eRkKzndaG+yrkIfX/2xsU2U6Hf2H 7bTHccfvOUN4cKkU3zGG7FrV1xWnc1i3BNF4fKgdDkJ59be9EIWwv3RmG9kPr0/B4qe5ySwxb8zgu wecGgDKqBZNvq1s35Kfw3zdcftZ2LXd4zqDMTz7H9o9UOS0Qid0X3nYUa9mIs9egC1nYo60jilJjL gsZVVtCiTbpV2QPMxbMeLmgyFJc6G3S78f9N90EqCge9AKFDWn7FZNhgweaavAXSwWxnGpD3WkKGc /WcxfjuxLr0cD+g5Nj3zSIBOZfPxi2wCd5L8syK2q/M909UkX9WjkGXoOjY7FLO5CrqY1hN9MC6ez wIWQSYchPI8hS/33t50/WYm3zR5rtORV5OOLBAUaXyhPzyBy9PHvtkiIxJ3meiybndjLxWYPY9bXG pUUlnvL9k+aqVp3BFJdYSoh2; Received: from muradm by localhost with local (Exim 4.94.2) (envelope-from ) id 1mQXnZ-0007Og-Mn for 49969@debbugs.gnu.org; Wed, 15 Sep 2021 19:30:13 +0300 From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v7 6/7] gnu: desktop: Add seatd-service-type. Date: Wed, 15 Sep 2021 19:29:57 +0300 Message-Id: <20210915162958.28398-7-mail@muradm.net> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210915162958.28398-1-mail@muradm.net> References: <20210906152641.11020-1-mail@muradm.net> <20210915162958.28398-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.4 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/services/desktop.scm (seatd-service-type): New variable * gnu/services/desktop.scm (seatd-configuration): New data type --- doc/guix.texi | 42 ++++++++++++++++++++++++++++ gnu/services/desktop.scm | 60 +++++++++++++++++++++++++++++++++++++++- 2 files changed, 101 insertions(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index c641ffc453..764355c69f 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -20110,6 +20110,48 @@ and ``passwd'' is with the value @code{passwd}. @end table @end deftp +@defvr {Scheme Variable} seatd-service-type +@uref{https://sr.ht/~kennylevinsen/seatd/, seatd} is a minimal seat +management daemon. + +Seat management takes care of mediating access to shared devices (graphics, +input), without requiring the applications needing access to be root. + +@lisp +(append + (list + ;; make sure seatd is running + (service seatd-service-type)) + + ;; normally one would want %base-services + %base-services) + +@end lisp +@end defvr + +@deftp {Data Type} seatd-configuration +Configuration record for the seatd daemon service. + +@table @asis +@item @code{seatd} (default: @code{seatd}) +The seatd package to use. + +@item @code{user} (default: @samp{"root"}) +User to own the seatd socket. + +@item @code{group} (default: @samp{"users"}) +Group to own the seatd socket. + +@item @code{socket} (default: @samp{"/run/seatd.sock"}) +Where to create the seatd socket. + +@item @code{loglevel} (default: @samp{"error"}) +Log level to output logs. Possible values: @samp{"silent"}, @samp{"error"}, +@samp{"info"} and @samp{"debug"}. + +@end table +@end deftp + @node Sound Services @subsection Sound Services diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index 64d0e85301..c42db5987e 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -13,6 +13,7 @@ ;;; Copyright © 2020 Tobias Geerinckx-Rice ;;; Copyright © 2020 Reza Alizadeh Majd ;;; Copyright © 2021 Brice Waegeneire +;;; Copyright © 2021 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -39,7 +40,9 @@ #:use-module (gnu services networking) #:use-module (gnu services sound) #:use-module ((gnu system file-systems) - #:select (%elogind-file-systems file-system)) + #:select (%control-groups + %elogind-file-systems + file-system)) #:use-module (gnu system) #:use-module (gnu system setuid) #:use-module (gnu system shadow) @@ -154,6 +157,9 @@ gnome-keyring-configuration? gnome-keyring-service-type + seatd-configuration + seatd-service-type + %desktop-services)) ;;; Commentary: @@ -1182,6 +1188,58 @@ or setting its password with passwd."))) (define polkit-wheel-service (simple-service 'polkit-wheel polkit-service-type (list polkit-wheel))) + +;;; +;;; seatd-service-type -- minimal seat management daemon +;;; + +(define-record-type* seatd-configuration + make-seatd-configuration + seatd-configuration? + (seatd seatd-package (default seatd)) + (user seatd-user (default "root")) + (group seatd-group (default "users")) + (socket seatd-socket (default "/run/seatd.sock")) + (loglevel seatd-loglevel (default "error"))) + +(define (seatd-shepherd-service config) + (list (shepherd-service + (documentation "Minimal seat management daemon") + (requirement '()) + ;; TODO: once cgroups is separate dependency + ;; here we should depend on it rather than elogind + (provision '(seatd elogind)) + (start #~(make-forkexec-constructor + (list #$(file-append (seatd-package config) "/bin/seatd") + "-u" #$(seatd-user config) + "-g" #$(seatd-group config) + "-s" #$(seatd-socket config)) + #:environment-variables + (list (string-append "SEATD_LOGLEVEL=" + #$(seatd-loglevel config))) + #:log-file "/tmp/seatd.log")) + (stop #~(make-kill-destructor))))) + +(define seatd-environment + (match-lambda + (($ _ _ _ socket) + `(("SEATD_SOCK" . ,socket))))) + +(define seatd-service-type + (service-type + (name 'seatd) + (description "Seat management takes care of mediating access +to shared devices (graphics, input), without requiring the +applications needing access to be root.") + (extensions + (list + (service-extension session-environment-service-type seatd-environment) + ;; TODO: once cgroups is separate dependency we should not mount it here + ;; for now it is mounted here, because elogind mounts it + (service-extension file-system-service-type (const %control-groups)) + (service-extension shepherd-root-service-type seatd-shepherd-service))) + (default-value (seatd-configuration)))) + ;;; ;;; The default set of desktop services. -- 2.33.0 From debbugs-submit-bounces@debbugs.gnu.org Thu Sep 16 15:47:33 2021 Received: (at 49969) by debbugs.gnu.org; 16 Sep 2021 19:47:33 +0000 Received: from localhost ([127.0.0.1]:56626 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mQxM5-00056W-Bq for submit@debbugs.gnu.org; Thu, 16 Sep 2021 15:47:33 -0400 Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:58070 helo=nomad-cl1.muradm.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mQxM3-000569-NK for 49969@debbugs.gnu.org; Thu, 16 Sep 2021 15:47:32 -0400 Received: from [176.234.10.27] (port=6972 helo=localhost) by nomad-cl1.muradm.net with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1mQxM3-0000YB-G3 for 49969@debbugs.gnu.org; Thu, 16 Sep 2021 19:47:31 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; s=mail; h=Content-Transfer-Encoding:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Sender:Reply-To:Cc:Content-Type:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=9+Ol+1f882FYAFOeuk+ETmEH7IrOQf/9plaefYpWjO4=; b=kAc/knd14JySqciEu9vvMxJnlE pbTlKLw2iTJWkdwl4o3iEplBeFtR8UJ7Lqm+0nRqNY+6N01thQpMgs1HF12GHRDzBSmz/ykuLo+o5 y62ZVwfgfaXA8HbDvwpOopEm/pBkY8n8NiUoNlFOoTJ4yLTRP6WN5un9mnqIrg951uXBCcxl29Mf6 D2hqCPIWEw2jYZQXmCWgI5NT/S/CVgZB9lVKlY03GFqf069eRFmYenr34wI/9fKR2ZO7dkZO8Vju0 Hi1CuU4m4gSayPklKETzH6N/ScXYLZSMqw4BCUpIpVovl290DaNYr376/rm3HmolF2XsabkuPAyft fqIbhuuhzbTZunOVA9ToPnNvioIC77T8cnZHZyG2P7ppwt40c4/y8014+hVZiikO67N79ZKZWYWyp EUwgnKZXfR3IfTNbyXHmksH/V8irr03vDCTYSvg5kbwjXtBNne6Pek4igsCobBL2NwuyjoKRcjMA0 upuRZuBE9rF1a4SeZeoKhfXn; Received: from muradm by localhost with local (Exim 4.94.2) (envelope-from ) id 1mQxM0-00005b-SK for 49969@debbugs.gnu.org; Thu, 16 Sep 2021 22:47:28 +0300 From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v8 0/7] Update libseat and seatd to 0.6.2. Date: Thu, 16 Sep 2021 22:47:21 +0300 Message-Id: <20210916194728.324-1-mail@muradm.net> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210915162958.28398-1-mail@muradm.net> References: <20210915162958.28398-1-mail@muradm.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) After new release of libseat/seatd, vulnerability detected and fixed. muradm (7): gnu: crates-io: Add rust-enquote 1.0.3 and rust-pam-sys 0.5.6. gnu: admin: Add greetd 0.8.0. gnu: admin: Add greetd-pam-mount. gnu: base: Add greetd-service-type. gnu: admin: Add libseat 0.6.2 and move seatd. gnu: desktop: Add seatd-service-type. gnu: tests: Add seatd/greetd based minimal desktop system tests. doc/guix.texi | 175 ++++++++++++++++++++++++++++ gnu/packages/admin.scm | 164 ++++++++++++++++++++++++++ gnu/packages/crates-io.scm | 49 ++++++++ gnu/packages/freedesktop.scm | 30 ----- gnu/services/base.scm | 218 ++++++++++++++++++++++++++++++++++- gnu/services/desktop.scm | 60 +++++++++- gnu/services/pam-mount.scm | 2 +- gnu/tests/desktop.scm | 212 +++++++++++++++++++++++++++++++++- 8 files changed, 876 insertions(+), 34 deletions(-) -- 2.33.0 From debbugs-submit-bounces@debbugs.gnu.org Thu Sep 16 15:47:39 2021 Received: (at 49969) by debbugs.gnu.org; 16 Sep 2021 19:47:39 +0000 Received: from localhost ([127.0.0.1]:56634 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mQxMA-00057M-ID for submit@debbugs.gnu.org; Thu, 16 Sep 2021 15:47:38 -0400 Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:58072 helo=nomad-cl1.muradm.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mQxM5-00056R-AL for 49969@debbugs.gnu.org; Thu, 16 Sep 2021 15:47:34 -0400 Received: from [176.234.10.27] (port=7324 helo=localhost) by nomad-cl1.muradm.net with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1mQxM5-0000YE-D3 for 49969@debbugs.gnu.org; Thu, 16 Sep 2021 19:47:33 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; s=mail; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:To:From:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=r4qkw+392FQuQOylqz4YjpcoNsJu3sw8jyNuZdfPhi4=; b=SGLek0xVbn5bVP+3cCJPpERmTo 94gbh/5G8hDgCEGPwKKa2xcoNLnhXsCX+vbaZWtrsnLzFoyR1E63LdGgdqboapYVgGaiBmIfErvsc cDJ3qiiL1AHhyfJqXAXBOLHZXirODje9WITwc35YFU1JKSzc2AVCBoUz1ybzNn/uKgOf8aoREZX8m Cugz8j54o9dQl+Wev6WJvUuSZxrubHQ6Kq4z2zLmYfF/oJ3AamD9yt5huMhUkjlmkABBmnOkQE9/R A3aMF2nqXuQp6DIU/cAhoCMDdkobLdRh2pcRZ14DFypgCbyt0fxYExOTHUhykVI1TmKSOegUC/eXU 2sMuKmHbdLOuw1bvs6E9+qp43WZp0bg5bgMmoLddxSPVFbV5SgF7QRewbqpkQuZRcbIxOC/BCP8sC uEZZo0UG0uKcB3bt3KjMMlXOGdUnLDNN5yxW2KQqzzj/9rhwA6PdJA8xGkBFapRCrXdHOfv01Ll+Q gkb5Pfbypt4NMiK56El9vwYN; Received: from muradm by localhost with local (Exim 4.94.2) (envelope-from ) id 1mQxM2-00005e-8X for 49969@debbugs.gnu.org; Thu, 16 Sep 2021 22:47:30 +0300 From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v8 1/7] gnu: crates-io: Add rust-enquote 1.0.3 and rust-pam-sys 0.5.6. Date: Thu, 16 Sep 2021 22:47:22 +0300 Message-Id: <20210916194728.324-2-mail@muradm.net> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210916194728.324-1-mail@muradm.net> References: <20210915162958.28398-1-mail@muradm.net> <20210916194728.324-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/crates-io.scm (rust-enquote-1): New variable * gnu/packages/crates-io.scm (rust-pam-sys-0.5): New variable --- gnu/packages/crates-io.scm | 49 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 2b91d4b871..83a8642448 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -19,6 +19,7 @@ ;;; Copyright © 2021 Antero Mejr ;;; Copyright © 2021 Maxim Cournoyer ;;; Copyright © 2021 Vinicius Monego +;;; Copyright © 2021 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -55,6 +56,7 @@ #:use-module (gnu packages glib) #:use-module (gnu packages image) #:use-module (gnu packages jemalloc) + #:use-module (gnu packages linux) #:use-module (gnu packages llvm) #:use-module (gnu packages multiprecision) #:use-module (gnu packages nettle) @@ -57376,3 +57378,50 @@ variant of this library is available separately as @code{im}.") (description "Generate Rust register maps (`struct`s) from SVD files") (license (list license:expat license:asl2.0)))) + +(define-public rust-enquote-1 + (package + (name "rust-enquote") + (version "1.0.3") + (home-page "https://github.com/reujab/enquote") + (source + (origin + (method url-fetch) + (uri (crate-uri "enquote" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0vm687r2wwgc3d3l2iqhag9wgkql6k93sdvjxvmfkdpksajpij1f")))) + (build-system cargo-build-system) + (synopsis + "A Rust library quotes, unquotes, and unescapes strings") + (description + "A Rust library quotes, unquotes, and unescapes strings") + (license license:unlicense))) + +(define-public rust-pam-sys-0.5 + (package + (name "rust-pam-sys") + (version "0.5.6") + (home-page "https://github.com/1wilkens/pam-sys") + (source + (origin + (method url-fetch) + (uri (crate-uri "pam-sys" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0d14501d5vybjnzxfjf96321xa5wa36x1xvf02h02zq938qmhj6d")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-libc" ,rust-libc-0.2)))) + (native-inputs + `(("linux-pam" ,linux-pam))) + (synopsis + "Rust FFI wrappers for the Linux Pluggable Authentication Modules (PAM)") + (description + "Rust FFI wrappers for the Linux Pluggable Authentication Modules (PAM)") + (license (list license:expat license:asl2.0)))) -- 2.33.0 From debbugs-submit-bounces@debbugs.gnu.org Thu Sep 16 15:47:44 2021 Received: (at 49969) by debbugs.gnu.org; 16 Sep 2021 19:47:45 +0000 Received: from localhost ([127.0.0.1]:56644 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mQxMG-00058F-1H for submit@debbugs.gnu.org; Thu, 16 Sep 2021 15:47:44 -0400 Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:58076 helo=nomad-cl1.muradm.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mQxM9-000574-DC for 49969@debbugs.gnu.org; Thu, 16 Sep 2021 15:47:37 -0400 Received: from [176.234.10.27] (port=6978 helo=localhost) by nomad-cl1.muradm.net with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1mQxM9-0000YK-Ov for 49969@debbugs.gnu.org; Thu, 16 Sep 2021 19:47:37 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; s=mail; h=Content-Transfer-Encoding:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Sender:Reply-To:Cc:Content-Type:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=sqZE6qFYalZFifHvF/PNFwJBO4Fqo2jT0XQxlzCwyVY=; b=e6XcqZmJw11IZlsbhQ3Wm/cwLU cphZNrm4H09QciheNpmGKye5OKqx807v5TV2Flzr6WRaNGXlMXXd18+XBmz3B3dzNtIJEKwEpQfl/ dhrQWJHOgR4q7cferZawIAGNArHqxj8C9tE6MtEnWQixQCWsPj0y5DqNsEQSSPh8JFQSWBTLEac6r 7/q0+kX/ZkKV0r8LVi3Cwv0KDdfQaa3ZwuEYCHi1KI+jq0UIaYXPO10/mgwrdC6kGj9Hy83YOoMU+ hEnFdEFnffBAc6TB9Dk3SCinckYa1MBi/sghvE5bd1p3SFbxVk4ew14IaYuKgPDr0b6JxEe2QsyPD yReatrfOcoeycFj9g+GXTeL0JtR40gUEU+RPnPg1yWHe5M7wBEoSoT5wOETDlnKfFT8qgUE1RCWxp SoeXnr3mTAmYz9MDuCpv1N7u08rOKuCH9wpsH6Yb1/SM+Nt6XlnA7b3baBvpFDsjvlEEdzwSVA6DR mMq/bzdJ25YBeYM7Lz9mxXAQ; Received: from muradm by localhost with local (Exim 4.94.2) (envelope-from ) id 1mQxM6-00005k-Eu for 49969@debbugs.gnu.org; Thu, 16 Sep 2021 22:47:34 +0300 From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v8 3/7] gnu: admin: Add greetd-pam-mount. Date: Thu, 16 Sep 2021 22:47:24 +0300 Message-Id: <20210916194728.324-4-mail@muradm.net> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210916194728.324-1-mail@muradm.net> References: <20210915162958.28398-1-mail@muradm.net> <20210916194728.324-1-mail@muradm.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/admin.scm (greetd-pam-mount): New variable --- gnu/packages/admin.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index bef0ca3745..e46d21844b 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -4892,3 +4892,35 @@ If you can run it from your shell in a TTY, greetd can start it. If it can be taught to speak a simple JSON-based IPC protocol, then it can be a greeter.") (license license:gpl3+))) + +(define-public greetd-pam-mount + (package + (inherit pam-mount) + (name "greetd-pam-mount") + (arguments + (substitute-keyword-arguments (package-arguments pam-mount) + ((#:configure-flags flags ''()) + `(cons* "--with-rundir=/run/greetd" ,flags)) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'unpack 'patch-config-file-name + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/pam_mount.c" + ((".*define CONFIGFILE .*$") + "#define CONFIGFILE \"/etc/security/greetd_pam_mount.conf.xml\"\n") + (("pam_mount_config") "greetd_pam_mount_config") + (("pam_mount_system_authtok") "greetd_pam_mount_system_authtok")))))))) + (synopsis "pam-mount specifically compiled for use with greetd") + (description + "Pam-mount is a PAM module that can mount volumes when a user logs in. +It supports mounting local filesystems of any kind the normal mount utility +supports. It can also mount encrypted LUKS volumes using the password +supplied by the user when logging in. + +This package inherits pam-mount in the way that it is compiled specifically +for use with greetd daemon. It uses different configuration location and +name space for storing data in PAM. + +greetd-pam-mount is used in configuration of greetd to provide +auto-(mounting/unmounting) of XDG_RUNTIME_DIR in the way that it will not +interfere with default pam-mount configuration."))) -- 2.33.0 From debbugs-submit-bounces@debbugs.gnu.org Thu Sep 16 15:47:48 2021 Received: (at 49969) by debbugs.gnu.org; 16 Sep 2021 19:47:48 +0000 Received: from localhost ([127.0.0.1]:56646 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mQxMG-00058P-Q5 for submit@debbugs.gnu.org; Thu, 16 Sep 2021 15:47:48 -0400 Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:58074 helo=nomad-cl1.muradm.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mQxM7-00056s-Jk for 49969@debbugs.gnu.org; Thu, 16 Sep 2021 15:47:38 -0400 Received: from [176.234.10.27] (port=7046 helo=localhost) by nomad-cl1.muradm.net with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1mQxM7-0000YH-DF for 49969@debbugs.gnu.org; Thu, 16 Sep 2021 19:47:35 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; s=mail; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:To:From:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=vfeLhb630pnD8Et2n1zZ/LdDV0bK0EXXL+TxrK4iKFI=; b=EDhqCMIsbq+6kKaTdqcMnTnpWb KNYbSY0C6yeZ/y1ZJYVBrstIZhwx/t/gyn7IiblF4urAcZhwq+Y/hUzbjZzOyAoBhzoFm2pUQ9xis KrUidTDBek79TbsovoiDos9ZgVi1nzOApP+0cpLW6BvbX9Cb82D85lSPQngXBRz1xSoVfQa6ukJme JrwKZV2ZewabQrGIFUiUHIvVpphPSPDECU42XYX/Ota6k8FjD7KPOKmG5MBwjN0KYrmTNkYDYCP9W pv/jXu8spBEOi5LB2tXwujDiOrcUCXxFtQa7S+Rb47ubssQbtKUJWTiPoF9v/VPThEuMxsj5iMbtg JckLwDlAoXOG84S271WiJio1ot6gEjwiupOX/qYlciyrBFVfhQaePsgwkvdbkdvZLw3q5me5dqiJB 8zUhIQWHEjj6KbL48HiQytJErT54jat1FU/imO4C8f3oi1wV/awsDlkToLCmr2uBbXdPkXOKCSQdT kT3ABx6A9W6moZm1n+vnFIeW; Received: from muradm by localhost with local (Exim 4.94.2) (envelope-from ) id 1mQxM4-00005h-9G for 49969@debbugs.gnu.org; Thu, 16 Sep 2021 22:47:32 +0300 From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v8 2/7] gnu: admin: Add greetd 0.8.0. Date: Thu, 16 Sep 2021 22:47:23 +0300 Message-Id: <20210916194728.324-3-mail@muradm.net> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210916194728.324-1-mail@muradm.net> References: <20210915162958.28398-1-mail@muradm.net> <20210916194728.324-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/admin.scm (greetd): New variable --- gnu/packages/admin.scm | 79 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 8d6ae9eb1f..bef0ca3745 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -45,6 +45,7 @@ ;;; Copyright © 2021 Brice Waegeneire ;;; Copyright © 2021 Maxim Cournoyer ;;; Copyright © 2021 Maxime Devos +;;; Copyright © 2021 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -62,6 +63,7 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu packages admin) + #:use-module (guix build-system cargo) #:use-module (guix build-system cmake) #:use-module (guix build-system emacs) #:use-module (guix build-system glib-or-gtk) @@ -88,6 +90,7 @@ #:use-module (gnu packages c) #:use-module (gnu packages check) #:use-module (gnu packages compression) + #:use-module (gnu packages crates-io) #:use-module (gnu packages cross-base) #:use-module (gnu packages crypto) #:use-module (gnu packages cryptsetup) @@ -4813,3 +4816,79 @@ setup, maintenance, supervision, or any long-running processes.") (description "Utility to convert @code{lsof} output to a graph showing FIFO and UNIX interprocess communication.") (license license:bsd-2)))) + +(define-public greetd + (package + (name "greetd") + (version "0.8.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 "0x5c3jkw09kvj2grcxm899y2n6ws8p990cyp9cs0fy6lm4fzlh6v")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-nix" ,rust-nix-0.19) + ("rust-pam-sys" ,rust-pam-sys-0.5) + ("rust-rpassword" ,rust-rpassword-5) + ("rust-users" ,rust-users-0.11) + ("rust-serde" ,rust-serde-1) + ("rust-serde-json" ,rust-serde-json-1) + ("rust-libc" ,rust-libc-0.2) + ("rust-tokio" ,rust-tokio-1) + ("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 + (delete 'package) + (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)))))))) + (native-inputs + `(("linux-pam" ,linux-pam) + ("scdoc" ,scdoc))) + (synopsis "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. + +If you can run it from your shell in a TTY, greetd can start it. + +If it can be taught to speak a simple JSON-based IPC protocol, +then it can be a greeter.") + (license license:gpl3+))) -- 2.33.0 From debbugs-submit-bounces@debbugs.gnu.org Thu Sep 16 15:47:49 2021 Received: (at 49969) by debbugs.gnu.org; 16 Sep 2021 19:47:49 +0000 Received: from localhost ([127.0.0.1]:56648 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mQxMK-00058i-8p for submit@debbugs.gnu.org; Thu, 16 Sep 2021 15:47:49 -0400 Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:58078 helo=nomad-cl1.muradm.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mQxMA-00057O-U9 for 49969@debbugs.gnu.org; Thu, 16 Sep 2021 15:47:42 -0400 Received: from [176.234.10.27] (port=6980 helo=localhost) by nomad-cl1.muradm.net with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1mQxMB-0000YN-Ch for 49969@debbugs.gnu.org; Thu, 16 Sep 2021 19:47:39 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; s=mail; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:To:From:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=mUh7SwkOQkEPJzi500uy1Z7lTChd7wCakkLpWk0RpWw=; b=NgwnoJlp0tCJ8CJzMug7zEgn1R 3rx0ggdFGrYjWiN1YuAq5dPKg1yYo4ehQr4/UQ82p9g0/A8j6tCHnMtlGFmgvcSViLi70eRm4h0SD u9fyJnwlMN2jk+3Y89oa8R/au8yXnYPnonZ0o3nWbTxm2b8SamBaxgJRxHOAGVnedoUHlkrrBj8sk f1Sxeymq7qNjR1Uoou0QGse3CKvBY5/A91YLG2q/C34jomx/NZDP9/GupYThP44DOVbDLrCcjq3gO SBT/qaKHnv2XvCz8CSuAvC91Pl07YgQKrqNW8PAfQRvUnhYYz6v8kmTjkxwefzkhdun2zmL3ROnSw vu27Vlr41ddaJbjf3NCKqCZqM2RI2Dm7AywJxjYfln6NM0LseodoV1K8T/wl+kY5SfHBVZR//dV94 gxrQP3gEcCzaUek2L+USn+hFDgEjAKl/24zfuRrReAMq4mbRGunWdv7pQ1DtEbmM338Cb4J8ftiTK nYk/wxxGxuYs9f7QfIi2kREK; Received: from muradm by localhost with local (Exim 4.94.2) (envelope-from ) id 1mQxM8-00005p-Hn for 49969@debbugs.gnu.org; Thu, 16 Sep 2021 22:47:36 +0300 From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v8 4/7] gnu: base: Add greetd-service-type. Date: Thu, 16 Sep 2021 22:47:25 +0300 Message-Id: <20210916194728.324-5-mail@muradm.net> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210916194728.324-1-mail@muradm.net> References: <20210915162958.28398-1-mail@muradm.net> <20210916194728.324-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/services/base.scm (greetd-service-type): New variable * gnu/services/base.scm (greetd-configuration): New data type * gnu/services/base.scm (greetd-terminal-configuration): New data type * gnu/services/base.scm (greetd-agreety-session): New data type * gnu/services/base.scm (pam-limits-service-type): Shoul be aware of greetd PAM service * gnu/services/pam-mount.scm (pam-mount-pam-service): Shoul be aware of greetd PAM service --- doc/guix.texi | 133 ++++++++++++++++++++++ gnu/services/base.scm | 218 ++++++++++++++++++++++++++++++++++++- gnu/services/pam-mount.scm | 2 +- 3 files changed, 351 insertions(+), 2 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 964ef6d5f4..c641ffc453 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -96,6 +96,7 @@ Copyright @copyright{} 2021 Domagoj Stolfa@* Copyright @copyright{} 2021 Hui Lu@* Copyright @copyright{} 2021 pukkamustard@* Copyright @copyright{} 2021 Alice Brenon@* +Copyright @copyright{} 2021 muradm@* Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or @@ -16156,6 +16157,138 @@ about the Pluggable Authentication Module (PAM) limits, refer to the @samp{pam_limits} man page from the @code{linux-pam} package. @end deffn +@defvr {Scheme Variable} greetd-service-type +@uref{https://git.sr.ht/~kennylevinsen/greetd, @code{greetd}} is a minimal and +flexible login manager daemon, that makes no assumptions about what you +want to launch. + +If you can run it from your shell in a TTY, greetd can start it. If it +can be taught to speak a simple JSON-based IPC protocol, then it can be +a geeter. + +@code{greetd-service-type} provides necessary infrastructure for logging +in users, including: + +@itemize @bullet +@item +@code{greetd} PAM service + +@item +Special variation of @code{pam-mount} to mount @code{XDG_RUNTIME_DIR} +@end itemize + +Here is example of switching from @code{mingetty-service-type} to +@code{greetd-service-type}, and how different terminals could be: + +@lisp + (append + (modify-services %base-services + ;; greetd-service-type provides "greetd" PAM service + (delete login-service-type) + ;; and can be used in place of mingetty-service-type + (delete mingetty-service-type)) + (list + (service greetd-service-type + (greetd-configuration + (terminals + (list + ;; we can make any terminal active by default + (greetd-terminal-configuration (terminal-vt "1") (terminal-switch #t)) + ;; we can make environment without XDG_RUNTIME_DIR set + ;; even provide our own environment variables + (greetd-terminal-configuration + (terminal-vt "2") + (default-session-command + (greetd-agreety-session + (extra-env '(("MY_VAR" . "1"))) + (xdg-env? #f)))) + ;; we can use different shell instead of default bash + (greetd-terminal-configuration + (terminal-vt "3") + (default-session-command + (greetd-agreety-session (command (file-append zsh "/bin/zsh"))))) + ;; we can use any other executable command as greeter + (greetd-terminal-configuration + (terminal-vt "4") + (default-session-command (program-file "my-noop-greeter" #~(exit)))) + (greetd-terminal-configuration (terminal-vt "5")) + (greetd-terminal-configuration (terminal-vt "6")))))) + ;; mingetty-service-type can be used in parallel + ;; if needed to do so, do not (delete login-service-type) + ;; as illustrated above + #| (service mingetty-service-type (mingetty-configuration (tty "tty8"))) |#)) +@end lisp +@end defvr + +@deftp {Data Type} greetd-configuration +Configuration record for the @code{greetd-service-type}. +@table @asis + +@item @code{motd} +A file-like object containing the ``message of the day''. + +@item @code{allow-empty-passwords?} (default: @code{#t}) +Allow empty passwords by default so that first-time users can log in when +the 'root' account has just been created. + +@item @code{terminals} (default: @code{'()}) +List of @code{greetd-terminal-configuration} per terminal for which +@code{greetd} should be started. +@end table +@end deftp + +@deftp {Data Type} greetd-terminal-configuration +Configuration record for per terminal greetd daemon service. + +@table @asis +@item @code{greetd} (default: @code{greetd}) +The greetd package to use. + +@item @code{config-file-name} +Configuration file name to use for greetd daemon. Generally, autogenerated +derivation based on @code{terminal-vt} value. + +@item @code{terminal-vt} (default: @samp{"7"}) +The VT to run on. Use of a specific VT with appropriate conflict avoidance +is recommended. + +@item @code{terminal-switch} (default: @code{#f}) +Make this terminal active on start of @code{greetd}. + +@item @code{default-session-user} (default: @samp{"greeter"}) +The user to use for running the greeter. + +@item @code{default-session-command} (default: @code{(greetd-agreety-session)}) +Can be either instance of @code{greetd-agreety-session} configuration or +@code{gexp->script} like object to use as greeter. + +@end table +@end deftp + +@deftp {Data Type} greetd-agreety-session +Configuration record for the agreety greetd greeter. + +@table @asis +@item @code{agreety} (default: @code{greetd}) +The package with @command{/bin/agreety} command. + +@item @code{command} (default: @code{(file-append bash "/bin/bash")}) +Command to be started by @command{/bin/agreety} on successful login. + +@item @code{command-args} (default: @code{'("-l")}) +Command arguments to pass to command. + +@item @code{extra-env} (default: @code{'()}) +Extra environment variables to set on login. + +@item @code{xdg-env?} (default: @code{#t}) +If true @code{XDG_RUNTIME_DIR} and @code{XDG_SESSION_TYPE} will be set +before starting command. One should note that, @code{extra-env} variables +are set right after mentioned variables, so that they can be overriden. + +@end table +@end deftp + @node Scheduled Job Execution @subsection Scheduled Job Execution diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 50865055fe..fe2c4d6fe5 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -16,6 +16,7 @@ ;;; Copyright © 2021 qblade ;;; Copyright © 2021 Hui Lu ;;; Copyright © 2021 Maxim Cournoyer +;;; Copyright © 2021 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -186,6 +187,11 @@ references-file + greetd-service-type + greetd-configuration + greetd-terminal-configuration + greetd-agreety-session + %base-services)) ;;; Commentary: @@ -1401,7 +1407,7 @@ information on the configuration file syntax." (module "pam_limits.so") (arguments '("conf=/etc/security/limits.conf"))))) (if (member (pam-service-name pam) - '("login" "su" "slim" "gdm-password" "sddm")) + '("login" "greetd" "su" "slim" "gdm-password" "sddm")) (pam-service (inherit pam) (session (cons pam-limits @@ -2462,6 +2468,216 @@ to handle." (requirement requirement) (name-servers name-servers))))) + +;;; +;;; greetd-service-type -- minimal and flexible login manager daemon +;;; + +(define-record-type* + greetd-agreety-session make-greetd-agreety-session + greetd-agreety-session? + (agreety greetd-agreety (default greetd)) + (command greetd-agreety-command (default (file-append bash "/bin/bash"))) + (command-args greetd-agreety-command-args (default '("-l"))) + (extra-env greetd-agreety-extra-env (default '())) + (xdg-env? greetd-agreety-xdg-env? (default #t))) + +(define greetd-agreety-tty-session-command + (match-lambda + (($ _ command args extra-env) + (program-file + "agreety-tty-session-command" + #~(begin + (use-modules (ice-9 match)) + (for-each (match-lambda ((var . val) (setenv var val))) + (quote (#$@extra-env))) + (apply execl #$command #$command (list #$@args))))))) + +(define greetd-agreety-tty-xdg-session-command + (match-lambda + (($ _ command args extra-env) + (program-file + "agreety-tty-xdg-session-command" + #~(begin + (use-modules (ice-9 match)) + (let* + ((username (getenv "USER")) + (useruid (passwd:uid (getpwuid username))) + (useruid (number->string useruid))) + (setenv "XDG_SESSION_TYPE" "tty") + (setenv "XDG_RUNTIME_DIR" (string-append "/run/user/" useruid))) + (for-each (match-lambda ((var . val) (setenv var val))) + (quote (#$@extra-env))) + (apply execl #$command #$command (list #$@args))))))) + +(define (make-greetd-agreety-session-command config command) + (let ((agreety (file-append (greetd-agreety config) "/bin/agreety"))) + (program-file + "agreety-command" + #~(execl #$agreety #$agreety "-c" #$command)))) + +(define (make-greetd-default-session-command config-or-command) + (cond ((greetd-agreety-session? config-or-command) + (cond ((greetd-agreety-xdg-env? config-or-command) + (make-greetd-agreety-session-command + config-or-command + (greetd-agreety-tty-xdg-session-command config-or-command))) + (#t + (make-greetd-agreety-session-command + config-or-command + (greetd-agreety-tty-session-command config-or-command))))) + (#t config-or-command))) + +(define-record-type* + greetd-terminal-configuration make-greetd-terminal-configuration + greetd-terminal-configuration? + (greetd greetd-package (default greetd)) + (config-file-name greetd-config-file-name (thunked) + (default (default-config-file-name this-record))) + (terminal-vt greetd-terminal-vt (default "7")) + (terminal-switch greetd-terminal-switch (default #f)) + (default-session-user greetd-default-session-user (default "greeter")) + (default-session-command greetd-default-session-command + (default (greetd-agreety-session)) + (sanitize make-greetd-default-session-command))) + +(define (default-config-file-name config) + (string-join (list "config-" (greetd-terminal-vt config) ".toml") "")) + +(define (make-greetd-terminal-configuration-file config) + (let* + ((config-file-name (greetd-config-file-name config)) + (terminal-vt (greetd-terminal-vt config)) + (terminal-switch (greetd-terminal-switch config)) + (default-session-user (greetd-default-session-user config)) + (default-session-command (greetd-default-session-command config))) + (mixed-text-file + config-file-name + "[terminal]\n" + "vt = " terminal-vt "\n" + "switch = " (if terminal-switch "true" "false") "\n" + "[default_session]\n" + "user = " default-session-user "\n" + "command = " default-session-command "\n"))) + +(define %greetd-accounts + (list (user-account + (name "greeter") + (group "wheel") + (supplementary-groups '("users" "tty" "input" "video" "audio")) + (system? #t)))) + +(define %greetd-file-systems + (list (file-system + (device "none") + (mount-point "/run/greetd/pam_mount") + (type "tmpfs") + (check? #f) + (flags '(no-suid no-dev no-exec)) + (options "mode=0755") + (create-mount-point? #t)))) + +(define %greetd-pam-mount-rules + `((debug (@ (enable "0"))) + (volume (@ (sgrp "users") + (fstype "tmpfs") + (mountpoint "/run/user/%(USERUID)") + (options "noexec,nosuid,nodev,size=1g,mode=0700,uid=%(USERUID),gid=%(USERGID)"))) + (logout (@ (wait "0") + (hup "0") + (term "yes") + (kill "no"))) + (mkmountpoint (@ (enable "1") (remove "true"))))) + +(define-record-type* + greetd-configuration make-greetd-configuration + greetd-configuration? + (motd greetd-motd (default %default-motd)) + (allow-empty-passwords? greetd-allow-empty-passwords? (default #t)) + (terminals greetd-terminals (default '()))) + +(define (make-greetd-pam-mount-conf-file config) + (computed-file + "greetd_pam_mount.conf.xml" + #~(begin + (use-modules (sxml simple)) + (call-with-output-file #$output + (lambda (port) + (sxml->xml + '(*TOP* + (*PI* xml "version='1.0' encoding='utf-8'") + (pam_mount + #$@%greetd-pam-mount-rules + (pmvarrun + #$(file-append greetd-pam-mount + "/sbin/pmvarrun -u '%(USER)' -o '%(OPERATION)'")))) + port)))))) + +(define (greetd-etc-service config) + `(("security/greetd_pam_mount.conf.xml" + ,(make-greetd-pam-mount-conf-file config)))) + +(define (greetd-pam-service config) + (define optional-pam-mount + (pam-entry + (control "optional") + (module #~(string-append #$greetd-pam-mount "/lib/security/pam_mount.so")) + (arguments '("disable_interactive")))) + + (list + (unix-pam-service "greetd" + #:login-uid? #t + #:allow-empty-passwords? + (greetd-allow-empty-passwords? config) + #:motd + (greetd-motd config)) + (lambda (pam) + (if (member (pam-service-name pam) + '("login" "greetd" "su" "slim" "gdm-password")) + (pam-service + (inherit pam) + (auth (append (pam-service-auth pam) + (list optional-pam-mount))) + (session (append (pam-service-session pam) + (list optional-pam-mount)))) + pam)))) + +(define (greetd-shepherd-services config) + (map + (lambda (tc) + (let* + ((greetd-bin (file-append (greetd-package tc) "/sbin/greetd")) + (greetd-conf (make-greetd-terminal-configuration-file tc)) + (greetd-vt (greetd-terminal-vt tc))) + (shepherd-service + (documentation "Minimal and flexible login manager daemon") + (requirement '(user-processes host-name udev virtual-terminal)) + (provision (list (symbol-append + 'term-tty + (string->symbol (greetd-terminal-vt tc))))) + (start #~(make-forkexec-constructor + (list #$greetd-bin "-c" #$greetd-conf) + #:log-file + (string-append "/tmp/greetd." #$greetd-vt ".log"))) + (stop #~(make-kill-destructor))))) + (greetd-terminals config))) + +(define greetd-service-type + (service-type + (name 'greetd) + (description "Provides necessary infrastructure for logging into the +system including @code{greetd} PAM service, @code{pam-mount} module to +mount/unmount /run/user/ directory for user and @code{greetd} +login manager daemon.") + (extensions + (list + (service-extension account-service-type (const %greetd-accounts)) + (service-extension file-system-service-type (const %greetd-file-systems)) + (service-extension etc-service-type greetd-etc-service) + (service-extension pam-root-service-type greetd-pam-service) + (service-extension shepherd-root-service-type greetd-shepherd-services))) + (default-value (greetd-configuration)))) + (define %base-services ;; Convenience variable holding the basic services. diff --git a/gnu/services/pam-mount.scm b/gnu/services/pam-mount.scm index 98611462c2..d6c65e3760 100644 --- a/gnu/services/pam-mount.scm +++ b/gnu/services/pam-mount.scm @@ -90,7 +90,7 @@ (module #~(string-append #$pam-mount "/lib/security/pam_mount.so")))) (list (lambda (pam) (if (member (pam-service-name pam) - '("login" "su" "slim" "gdm-password")) + '("login" "greetd" "su" "slim" "gdm-password")) (pam-service (inherit pam) (auth (append (pam-service-auth pam) -- 2.33.0 From debbugs-submit-bounces@debbugs.gnu.org Thu Sep 16 15:47:58 2021 Received: (at 49969) by debbugs.gnu.org; 16 Sep 2021 19:47:58 +0000 Received: from localhost ([127.0.0.1]:56650 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mQxMT-00059H-M0 for submit@debbugs.gnu.org; Thu, 16 Sep 2021 15:47:58 -0400 Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:58082 helo=nomad-cl1.muradm.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mQxME-00057n-1M for 49969@debbugs.gnu.org; Thu, 16 Sep 2021 15:47:43 -0400 Received: from [176.234.10.27] (port=7474 helo=localhost) by nomad-cl1.muradm.net with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1mQxME-0000YT-E6 for 49969@debbugs.gnu.org; Thu, 16 Sep 2021 19:47:42 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; s=mail; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:To:From:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=SVPToCUdzrnTMne3D6z3KrTaW/NQRsYSWbp0tL/TUtA=; b=ZFuEV4g+esE25D4cLA11X5uHwd Z5qavz8aO81Qu+qE4mRw6ggJadfQc6PkQPvuSFqBdawZCgD+7yKIdynFk0Fm73kg2lWmqra6lJwCh 0DFKXl9X0+cq0ckbAuX/kMjJHu4COTEkvQA18ZeVrNemHPLHNrk8mY9LZ4xH+WLxc6+bHfRKlZ1R8 UCPvXVdmyxUXuSYe+Od/Ptnoy14zmnQUdj5xtwjQvWcGp4dlNkNs+PqBO0H4ak9ML4T7Ozao91Hv6 Btb0dQ7JomoPJhQTbV/zS16A6YOb/9YX4Nz5tMvJZqd2LJSWqL68rltwUSYOfdeKv2FgezCNge2go 2SX6pGG91Dhy+Tl5AhMTpBDFOCTmxxEyg0GXVCsFCplhWkJVs4qqAnQI3J6kn27HNGTI28pY55HfR cIzIED9x5zGlUvMoPXDeHNln/141lNaW83USpTBW0bmAsjhaeB0xvJD/WiiGExsUc0FVKUCnYI5DO lACIZsqgb/cPOqDcKo9pcZRS; Received: from muradm by localhost with local (Exim 4.94.2) (envelope-from ) id 1mQxMB-00005v-HD for 49969@debbugs.gnu.org; Thu, 16 Sep 2021 22:47:39 +0300 From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v8 6/7] gnu: desktop: Add seatd-service-type. Date: Thu, 16 Sep 2021 22:47:27 +0300 Message-Id: <20210916194728.324-7-mail@muradm.net> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210916194728.324-1-mail@muradm.net> References: <20210915162958.28398-1-mail@muradm.net> <20210916194728.324-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/services/desktop.scm (seatd-service-type): New variable * gnu/services/desktop.scm (seatd-configuration): New data type --- doc/guix.texi | 42 ++++++++++++++++++++++++++++ gnu/services/desktop.scm | 60 +++++++++++++++++++++++++++++++++++++++- 2 files changed, 101 insertions(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index c641ffc453..764355c69f 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -20110,6 +20110,48 @@ and ``passwd'' is with the value @code{passwd}. @end table @end deftp +@defvr {Scheme Variable} seatd-service-type +@uref{https://sr.ht/~kennylevinsen/seatd/, seatd} is a minimal seat +management daemon. + +Seat management takes care of mediating access to shared devices (graphics, +input), without requiring the applications needing access to be root. + +@lisp +(append + (list + ;; make sure seatd is running + (service seatd-service-type)) + + ;; normally one would want %base-services + %base-services) + +@end lisp +@end defvr + +@deftp {Data Type} seatd-configuration +Configuration record for the seatd daemon service. + +@table @asis +@item @code{seatd} (default: @code{seatd}) +The seatd package to use. + +@item @code{user} (default: @samp{"root"}) +User to own the seatd socket. + +@item @code{group} (default: @samp{"users"}) +Group to own the seatd socket. + +@item @code{socket} (default: @samp{"/run/seatd.sock"}) +Where to create the seatd socket. + +@item @code{loglevel} (default: @samp{"error"}) +Log level to output logs. Possible values: @samp{"silent"}, @samp{"error"}, +@samp{"info"} and @samp{"debug"}. + +@end table +@end deftp + @node Sound Services @subsection Sound Services diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index 64d0e85301..c42db5987e 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -13,6 +13,7 @@ ;;; Copyright © 2020 Tobias Geerinckx-Rice ;;; Copyright © 2020 Reza Alizadeh Majd ;;; Copyright © 2021 Brice Waegeneire +;;; Copyright © 2021 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -39,7 +40,9 @@ #:use-module (gnu services networking) #:use-module (gnu services sound) #:use-module ((gnu system file-systems) - #:select (%elogind-file-systems file-system)) + #:select (%control-groups + %elogind-file-systems + file-system)) #:use-module (gnu system) #:use-module (gnu system setuid) #:use-module (gnu system shadow) @@ -154,6 +157,9 @@ gnome-keyring-configuration? gnome-keyring-service-type + seatd-configuration + seatd-service-type + %desktop-services)) ;;; Commentary: @@ -1182,6 +1188,58 @@ or setting its password with passwd."))) (define polkit-wheel-service (simple-service 'polkit-wheel polkit-service-type (list polkit-wheel))) + +;;; +;;; seatd-service-type -- minimal seat management daemon +;;; + +(define-record-type* seatd-configuration + make-seatd-configuration + seatd-configuration? + (seatd seatd-package (default seatd)) + (user seatd-user (default "root")) + (group seatd-group (default "users")) + (socket seatd-socket (default "/run/seatd.sock")) + (loglevel seatd-loglevel (default "error"))) + +(define (seatd-shepherd-service config) + (list (shepherd-service + (documentation "Minimal seat management daemon") + (requirement '()) + ;; TODO: once cgroups is separate dependency + ;; here we should depend on it rather than elogind + (provision '(seatd elogind)) + (start #~(make-forkexec-constructor + (list #$(file-append (seatd-package config) "/bin/seatd") + "-u" #$(seatd-user config) + "-g" #$(seatd-group config) + "-s" #$(seatd-socket config)) + #:environment-variables + (list (string-append "SEATD_LOGLEVEL=" + #$(seatd-loglevel config))) + #:log-file "/tmp/seatd.log")) + (stop #~(make-kill-destructor))))) + +(define seatd-environment + (match-lambda + (($ _ _ _ socket) + `(("SEATD_SOCK" . ,socket))))) + +(define seatd-service-type + (service-type + (name 'seatd) + (description "Seat management takes care of mediating access +to shared devices (graphics, input), without requiring the +applications needing access to be root.") + (extensions + (list + (service-extension session-environment-service-type seatd-environment) + ;; TODO: once cgroups is separate dependency we should not mount it here + ;; for now it is mounted here, because elogind mounts it + (service-extension file-system-service-type (const %control-groups)) + (service-extension shepherd-root-service-type seatd-shepherd-service))) + (default-value (seatd-configuration)))) + ;;; ;;; The default set of desktop services. -- 2.33.0 From debbugs-submit-bounces@debbugs.gnu.org Thu Sep 16 15:47:58 2021 Received: (at 49969) by debbugs.gnu.org; 16 Sep 2021 19:47:58 +0000 Received: from localhost ([127.0.0.1]:56652 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mQxMU-00059J-4F for submit@debbugs.gnu.org; Thu, 16 Sep 2021 15:47:58 -0400 Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:58080 helo=nomad-cl1.muradm.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mQxMC-00057b-AY for 49969@debbugs.gnu.org; Thu, 16 Sep 2021 15:47:43 -0400 Received: from [176.234.10.27] (port=7122 helo=localhost) by nomad-cl1.muradm.net with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1mQxMC-0000YQ-Sn for 49969@debbugs.gnu.org; Thu, 16 Sep 2021 19:47:40 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; s=mail; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:To:From:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=c5uCMRzt6UGeHZ2V3Rkbiwy2VEC1LzbNDcL4i4Gux3I=; b=YBau56MOO6r3ogMeTrW3Yb7lbG jZwYP/t7julZUZAlQDmDAKdYh0mVCvlvQvazzGjgKjHNGJPVBogBBej1YzTloCLMC4OCJAEzGih6t AQN3GHCi3WuNsRkxKxbfODaGRv3+10gXHLmv6bE1OQeJf26F5Hvdw18YynlxkpC5O9pbBm5CcQ8Uv AVDmzdaSboeKzDtICNDyhQtRUvSe7r6fJ2n6wsgUWXDytWRqX5xu4vlmGOqjvbih7HVMdX4ZXx9G6 drsvF01MSIKocrqglbL7bLy+vQ3Q0OQsWQcKqh3ALJWWUlWVRjdeHSyUsPBA7R9m18Sqi6JhuO7xE HNaTtIL45lNFeiB0VL0rVwDF2H9Aqvlke7SC/dxmMzQbI8sBKD68YxGvSm8OFWy6ERznBnzUkOyqs KEwY02L5wCWfQO4eYP0uMTuE8CNAD+Zf8+p0e4Ij3/OzuGQYH7CVXFIXrNIErT7sYHxo1UrNQtUCB g728Qz30USn1VQphHNaCUDAV; Received: from muradm by localhost with local (Exim 4.94.2) (envelope-from ) id 1mQxMA-00005s-6x for 49969@debbugs.gnu.org; Thu, 16 Sep 2021 22:47:38 +0300 From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v8 5/7] gnu: admin: Add libseat 0.6.2 and move seatd. Date: Thu, 16 Sep 2021 22:47:26 +0300 Message-Id: <20210916194728.324-6-mail@muradm.net> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210916194728.324-1-mail@muradm.net> References: <20210915162958.28398-1-mail@muradm.net> <20210916194728.324-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/admin.scm (libseat): New variable * gnu/packages/admin.scm (seatd): New variable * gnu/packages/freedesktop.scm (seatd): Remove variable --- gnu/packages/admin.scm | 53 ++++++++++++++++++++++++++++++++++++ gnu/packages/freedesktop.scm | 30 -------------------- 2 files changed, 53 insertions(+), 30 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index e46d21844b..c5b719996f 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -45,6 +45,7 @@ ;;; Copyright © 2021 Brice Waegeneire ;;; Copyright © 2021 Maxim Cournoyer ;;; Copyright © 2021 Maxime Devos +;;; Copyright © 2021 pineapples ;;; Copyright © 2021 muradm ;;; ;;; This file is part of GNU Guix. @@ -99,6 +100,7 @@ #:use-module (gnu packages elf) #:use-module (gnu packages file) #:use-module (gnu packages flex) + #:use-module (gnu packages freedesktop) #:use-module (gnu packages gawk) #:use-module (gnu packages gettext) #:use-module (gnu packages gl) @@ -4817,6 +4819,57 @@ setup, maintenance, supervision, or any long-running processes.") FIFO and UNIX interprocess communication.") (license license:bsd-2)))) +(define-public libseat + (package + (name "libseat") + (version "0.6.2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~kennylevinsen/seatd") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0c07i1nq0k60xmcsnr37ryqs7nzbg4qfq6fzbnzwbh1yhr8kypcm")))) + (build-system meson-build-system) + (arguments + `(#:configure-flags '("-Dlibseat-logind=elogind" + "-Dserver=disabled"))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (propagated-inputs + `(("elogind" ,elogind))) + (home-page "https://sr.ht/~kennylevinsen/seatd") + (synopsis "Seat management library") + (description + "This package provides a universal seat management library that +allows applications to use whatever seat management is available.") + (license license:expat))) + +(define-public seatd + (package + (inherit libseat) + (name "seatd") + (arguments + `(#:configure-flags '("-Dlibseat-logind=elogind") + #:phases + (modify-phases %standard-phases + (add-after 'install 'remove-libs + (lambda* (#:key outputs #:allow-other-keys) + (with-directory-excursion (assoc-ref outputs "out") + (for-each delete-file-recursively '("lib" "include")))))))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("scdoc" ,scdoc))) + (inputs '()) + (synopsis "Seat management daemon") + (description + "This package provides a minimal seat management daemon whose task is to +mediate access to shared devices, such as graphics and input, for applications +that require it.") + (license license:expat))) + (define-public greetd (package (name "greetd") diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 85d9697460..d7b411b5d1 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -834,36 +834,6 @@ GNOME Shell. The @command{localectl} command-line tool allows you to interact with localed. This package is extracted from the broader systemd package.") (license license:lgpl2.1+))) -(define-public seatd - (package - (name "seatd") - (version "0.5.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://git.sr.ht/~kennylevinsen/seatd") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1kglq8v4rnr3415mfaghyv2s2f8mxsy5s881gmm2908ig4n4j297")))) - (build-system meson-build-system) - (arguments - `(#:configure-flags '("-Dlogind=enabled"))) - (native-inputs - `(("pkg-config" ,pkg-config) - ("scdoc" ,scdoc))) - (inputs - `(("elogind" ,elogind))) - (home-page "https://sr.ht/~kennylevinsen/seatd") - (synopsis "Seat management daemon and library") - (description - "This package provides a minimal seat management daemon whose task is to -mediate access to shared devices, such as graphics and input, for applications -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 packagekit (package (name "packagekit") -- 2.33.0 From debbugs-submit-bounces@debbugs.gnu.org Thu Sep 16 15:47:59 2021 Received: (at 49969) by debbugs.gnu.org; 16 Sep 2021 19:47:59 +0000 Received: from localhost ([127.0.0.1]:56654 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mQxMU-00059Q-Kp for submit@debbugs.gnu.org; Thu, 16 Sep 2021 15:47:59 -0400 Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:58086 helo=nomad-cl1.muradm.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mQxMF-000580-FE for 49969@debbugs.gnu.org; Thu, 16 Sep 2021 15:47:44 -0400 Received: from [176.234.10.27] (port=7126 helo=localhost) by nomad-cl1.muradm.net with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1mQxMG-0000YW-07 for 49969@debbugs.gnu.org; Thu, 16 Sep 2021 19:47:44 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; s=mail; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:To:From:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=u/G+wBrFuraegz0F142BXhhegeToVgH/LbZ3a2xCcSM=; b=XAO1doAA0pg27uPqDgVWIUgvZ9 CgpWZj7z5rLaOIf4F9JJ+ivU++Gfaqg0ex10RFD3ipDYwU3szWchwALA+YTjjfz4N+2/y34lFzGLs HhGXv+ZWnMAi3rK576OMO3VT14aaB02ih9YJioEvYDy2YU6m2WKrIJXC7HZm6F47BZ7u5KD9s40k/ 19a+gwLwxj9cXJ6TCqvYoE2dt3rHjnC+iG/q1pu8NK5x5pVFGpZQJ6BPWsGuXoEGGXu9mreYADgvV kmkezgpCwFrJQ6jvA/56FSqrXmZDI5mdlc7TMvzes22JsfKj9adj64+CUQahGmCNhfrH12fhZL7+5 TmHEDxsHjlXlV495gJrgu91ZriI4m/RWp6AvqiKCltbW9Qx3lMEBEQnLKD4HdndmAise2RJ0ucTB3 Fyp9sPBmJP/lrWsMmgYxeZfnjGhNOkEy37B8XffNjtiS+ZiBhfvs2PzhS0BcLtAeifCCRMlqRO1xr vvszFzITRVPBFo38zVYmPTug; Received: from muradm by localhost with local (Exim 4.94.2) (envelope-from ) id 1mQxMD-00005y-8q for 49969@debbugs.gnu.org; Thu, 16 Sep 2021 22:47:41 +0300 From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v8 7/7] gnu: tests: Add seatd/greetd based minimal desktop system tests. Date: Thu, 16 Sep 2021 22:47:28 +0300 Message-Id: <20210916194728.324-8-mail@muradm.net> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210916194728.324-1-mail@muradm.net> References: <20210915162958.28398-1-mail@muradm.net> <20210916194728.324-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/tests/desktop.scm (minimal-desktop): seatd/greetd based minimal desktop test --- gnu/tests/desktop.scm | 212 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 211 insertions(+), 1 deletion(-) diff --git a/gnu/tests/desktop.scm b/gnu/tests/desktop.scm index 6aa22fd49b..50aa859869 100644 --- a/gnu/tests/desktop.scm +++ b/gnu/tests/desktop.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Ludovic Courtès +;;; Copyright © 2021 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -18,13 +19,17 @@ (define-module (gnu tests desktop) #:use-module (gnu tests) + #:use-module (gnu packages shells) #:use-module (gnu services) + #:use-module (gnu services base) #:use-module (gnu services dbus) #:use-module (gnu services desktop) + #:use-module (gnu system) #:use-module (gnu system vm) #:use-module (guix gexp) #:use-module (srfi srfi-1) - #:export (%test-elogind)) + #:export (%test-elogind + %test-minimal-desktop)) ;;; @@ -103,3 +108,208 @@ #:imported-modules '((gnu services herd) (guix combinators))))) (run-elogind-test (virtual-machine os)))))) + + +;;; +;;; Seatd/greetd based minimal desktop +;;; + +(define %minimal-services + (append + (modify-services %base-services + ;; greetd-service-type provides "greetd" PAM service + (delete login-service-type) + ;; and can be used in place of mingetty-service-type + (delete mingetty-service-type)) + (list + (service seatd-service-type) + (service greetd-service-type + (greetd-configuration + (terminals + (list + ;; we can make any terminal active by default + (greetd-terminal-configuration (terminal-vt "1") (terminal-switch #t)) + ;; we can make environment without XDG_RUNTIME_DIR set + ;; even provide our own environment variables + (greetd-terminal-configuration + (terminal-vt "2") + (default-session-command + (greetd-agreety-session + (extra-env '(("MY_VAR" . "1"))) + (xdg-env? #f)))) + ;; we can use different shell instead of default bash + (greetd-terminal-configuration + (terminal-vt "3") + (default-session-command + (greetd-agreety-session (command (file-append zsh "/bin/zsh"))))) + ;; we can use any other executable command as greeter + (greetd-terminal-configuration + (terminal-vt "4") + (default-session-command (program-file "my-noop-greeter" #~(exit)))) + (greetd-terminal-configuration (terminal-vt "5")) + (greetd-terminal-configuration (terminal-vt "6")))))) + ;; mingetty-service-type can be used in parallel + ;; if needed to do so, do not (delete login-service-type) + ;; as illustrated above + #| (service mingetty-service-type (mingetty-configuration (tty "tty8"))) |#))) + +(define-syntax-rule (minimal-operating-system user-services ...) + "Return an operating system that includes USER-SERVICES in addition to +minimal %BASE-SERVICES." + (operating-system (inherit %simple-os) + (services (cons* user-services ... %minimal-services)))) + +(define (run-minimal-desktop-test os vm) + (define test + (with-imported-modules '((gnu build marionette) + (guix build syscalls)) + #~(begin + (use-modules (gnu build marionette) + (guix build syscalls) + (srfi srfi-1) + (srfi srfi-64) + (ice-9 pretty-print)) + + (define marionette + (make-marionette #$vm)) + + (define (file-get-all-strings fname) + (marionette-eval '(use-modules (rnrs io ports)) marionette) + (wait-for-file fname marionette #:read 'get-string-all)) + + (define (wait-for-unix-socket-m socket) + (wait-for-unix-socket socket marionette)) + + (mkdir #$output) + (chdir #$output) + + (test-begin "minimal-desktop") + + (test-assert "seatd is ready" + (wait-for-unix-socket-m "/run/seatd.sock")) + + (test-equal "login user on tty1" + "alice\n" + (begin + ;; Wait for tty1. + (marionette-eval + '(begin + (use-modules (gnu services herd)) + (start-service 'term-tty1)) + marionette) + (marionette-control "sendkey ctrl-alt-f1" marionette) + + ;; login as root change alice password and exit + ;; then login as alice + (for-each + (lambda (cmd) (marionette-type cmd marionette) (sleep 1)) + (list + "root\n" + "passwd alice\n" + "alice\n" + "alice\n" + "exit\n" + "alice\n" + "alice\n" + "id -un > logged-in\n")) + + (file-get-all-strings "/home/alice/logged-in"))) + + (test-equal "validate user environment" + '("SEATD_SOCK=/run/seatd.sock" + "XDG_RUNTIME_DIR=/run/user/1000" + "XDG_SEAT=seat0" + "XDG_VTNR=1") + + (begin + (marionette-type "env > env\n" marionette) + (sleep 1) + + (define user-env (string-tokenize + (file-get-all-strings "/home/alice/env"))) + + (define (expected-var var) + (any (lambda (s) (string-contains var s)) + '("SEATD_SOCK" + "XDG_RUNTIME_DIR" + "XDG_SEAT" + "XDG_VTNR"))) + + (sort (filter expected-var user-env) string env\n" marionette) + (sleep 1) + + (define (sock-var? var) + (any (lambda (s) (string-contains var s)) + '("SEATD_SOCK" "GREETD_SOCK"))) + + (define (sock-var-sock var) + (car (cdr (string-split var #\=)))) + + (let* + ((out (file-get-all-strings "/home/alice/env")) + (out (string-tokenize out)) + (out (filter sock-var? out)) + (socks (map sock-var-sock out)) + (socks (map wait-for-unix-socket-m socks))) + (and (= 2 (length socks)) (every identity socks))))) + + (test-assert "greetd is ready" + (begin + (marionette-type "ps -C greetd -o pid,args --no-headers > ps-greetd\n" + marionette) + (sleep 1) + + (define (greetd-daemon? cmd) + (string-contains cmd "config")) + + (define (greetd-cmd-to-pid cmd) + (car (string-split cmd #\space))) + + (define (greetd-pid-to-sock pid) + (string-append "/run/greetd-" pid ".sock")) + + (let* ((out (file-get-all-strings "/home/alice/ps-greetd")) + (out (string-split out #\newline)) + (out (map string-trim-both out)) + (out (filter greetd-daemon? out)) + (pids (map greetd-cmd-to-pid out)) + (socks (map greetd-pid-to-sock pids)) + (socks (map wait-for-unix-socket-m socks))) + (every identity socks)))) + + ;; a bit weak, but tests everything at once actually + (test-equal "check /run/user/ mounted and writable" + "alice\n" + (begin + (marionette-type "echo alice > /run/user/1000/test\n" marionette) + (file-get-all-strings "/run/user/1000/test"))) + + (test-assert "screendump" + (begin + (marionette-control (string-append "screendump " #$output + "/tty1.ppm") + marionette) + (file-exists? "tty1.ppm"))) + + (test-end) + (exit (= (test-runner-fail-count (test-runner-current)) 0))))) + + (gexp->derivation "minimal-desktop" test)) + +(define %test-minimal-desktop + (system-test + (name "minimal-desktop") + (description + "Test whether we can log in when seatd and greetd is enabled") + (value + (let* ((os (marionette-operating-system + (minimal-operating-system) + #:imported-modules '((gnu services herd) + (guix combinators)))) + (vm (virtual-machine os))) + (run-minimal-desktop-test (virtualized-operating-system os '()) + #~(list #$vm)))))) -- 2.33.0 From debbugs-submit-bounces@debbugs.gnu.org Fri Sep 24 19:14:00 2021 Received: (at 49969) by debbugs.gnu.org; 24 Sep 2021 23:14:00 +0000 Received: from localhost ([127.0.0.1]:59479 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mTuO8-0007pS-8w for submit@debbugs.gnu.org; Fri, 24 Sep 2021 19:14:00 -0400 Received: from wout5-smtp.messagingengine.com ([64.147.123.21]:50203) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mTuO7-0007pD-4P for 49969@debbugs.gnu.org; Fri, 24 Sep 2021 19:13:52 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.west.internal (Postfix) with ESMTP id C8BC73200E1A; Fri, 24 Sep 2021 19:13:44 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute4.internal (MEProxy); Fri, 24 Sep 2021 19:13:45 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=famulari.name; h=date:from:to:cc:subject:message-id:references:mime-version :content-type:in-reply-to; s=mesmtp; bh=cvW3lZydRWlKZOrrMTYzlSkj Vdgje0419dx5nxgusAQ=; b=CXhZC+6L5vJ8cmJLF9LfjOKDvQ0UrsjYWwU3uLSf /R9svINs5cPPUSoIIjBKNzqb8LMf8ocmss/L8hr7bth/TTBrfcWCbHRkdYBxoIyJ ttHcJ1GW1WYRLHvsP6hwsfaqXihnbSDqEx6l0OJc2NWNrfJb+Y+3iIZHuy3NdDZR ow8= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; bh=cvW3lZ ydRWlKZOrrMTYzlSkjVdgje0419dx5nxgusAQ=; b=sIha5SZcWudj3iHdfF0RS+ vHj+NgncnurEDAm4yle3rj6qKlPZtWtYuMXmSSQkaOrw6bfct2gZjLPhwd0Sk9Vs miqrpAJVFIwkK6lGQurwkPANklojE+RsKqNUBiaZXbuH4n+54zcQ+aAnKAYJjQt1 axiVPREsv0+GrL6Gp97lyucVMYQPLJWQtq8w2gDpl+VruOppheHdj+9XpVohF91A hBKcgU/4OWXSEhhvSz6sP0k70SlqK7zvjmT8Y81UBKpRi032DL8RyWpJV4IGH0Gn KemG4y63Y5oBup6E6SV+eR1jr9TJ6tv31lnkzTknGC6yqU6YDUo8svgWiQ1YBIwQ == X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvtddrudejvddgudekucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpeffhffvuffkfhggtggujgesthdtre dttddtvdenucfhrhhomhepnfgvohcuhfgrmhhulhgrrhhiuceolhgvohesfhgrmhhulhgr rhhirdhnrghmvgeqnecuggftrfgrthhtvghrnhepueekkedtffdvtddugeejgedtvefhue efiedvjeeitdeigedtveejvdejheffvefgnecuvehluhhsthgvrhfuihiivgeptdenucfr rghrrghmpehmrghilhhfrhhomheplhgvohesfhgrmhhulhgrrhhirdhnrghmvg X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri, 24 Sep 2021 19:13:43 -0400 (EDT) Date: Fri, 24 Sep 2021 19:13:28 -0400 From: Leo Famulari To: muradm Subject: Re: [bug#49969] [PATCH v8 5/7] gnu: admin: Add libseat 0.6.2 and move seatd. Message-ID: References: <20210915162958.28398-1-mail@muradm.net> <20210916194728.324-1-mail@muradm.net> <20210916194728.324-6-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20210916194728.324-6-mail@muradm.net> X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49969 Cc: 49969@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On Thu, Sep 16, 2021 at 10:47:26PM +0300, muradm wrote: > * gnu/packages/admin.scm (libseat): New variable > * gnu/packages/admin.scm (seatd): New variable > * gnu/packages/freedesktop.scm (seatd): Remove variable Thanks for working on these patches! I just applied them to the current master branch and tried building all the new packages, but libseat fails to build like this: ------ starting phase `configure' The Meson build system Version: 0.53.2 Source dir: /tmp/guix-build-libseat-0.6.2.drv-0/source Build dir: /tmp/guix-build-libseat-0.6.2.drv-0/build Build type: native build meson.build:1:0: ERROR: Meson version is 0.53.2 but project requires >=0.56.0 A full log can be found at /tmp/guix-build-libseat-0.6.2.drv-0/build/meson-logs/meson-log.txt command "meson" "--prefix=/gnu/store/4dazksqkz5yn77570jc2cmnlyfc9gikv-libseat-0.6.2" "--buildtype=debugoptimized" "-Dc_link_args=-Wl,-rpath=/gnu/store/4dazksqkz5yn77570jc2cmnlyfc9gikv-libseat-0.6.2/lib" "-Dcpp_link_args=-Wl,-rpath=/gnu/store/4dazksqkz5yn77570jc2cmnlyfc9gikv-libseat-0.6.2/lib" "-Dlibseat-logind=elogind" "-Dserver=disabled" "/tmp/guix-build-libseat-0.6.2.drv-0/source" failed with status 1 builder for `/gnu/store/l2rf97zgwwp7ccvl1wn9g7qm0w7aj4d1-libseat-0.6.2.drv' failed with exit code 1 build of /gnu/store/l2rf97zgwwp7ccvl1wn9g7qm0w7aj4d1-libseat-0.6.2.drv failed View build log at '/var/log/guix/drvs/l2/rf97zgwwp7ccvl1wn9g7qm0w7aj4d1-libseat-0.6.2.drv.bz2'. guix build: error: build of `/gnu/store/l2rf97zgwwp7ccvl1wn9g7qm0w7aj4d1-libseat-0.6.2.drv' failed ------ Sorry if I forgot about how to apply the patch series... does it need to go on another branch besides master? From debbugs-submit-bounces@debbugs.gnu.org Sat Sep 25 03:04:05 2021 Received: (at 49969) by debbugs.gnu.org; 25 Sep 2021 07:04:05 +0000 Received: from localhost ([127.0.0.1]:60170 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mU1jB-0006Ii-1W for submit@debbugs.gnu.org; Sat, 25 Sep 2021 03:04:05 -0400 Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:58096 helo=nomad-cl1.muradm.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mU1j7-0006IE-JD for 49969@debbugs.gnu.org; Sat, 25 Sep 2021 03:04:03 -0400 Received: from localhost ([127.0.0.1]:48926) by nomad-cl1.muradm.net with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1mU1j1-0002Qk-DL; Sat, 25 Sep 2021 07:03:55 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; s=mail; h=Content-Type:MIME-Version:Message-ID:In-reply-to:Date:Subject:Cc:To :From:References:Sender:Reply-To:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=tUpQ3B0JONCOBsTT00idtuvGva9+/ZovdCKf5b54sDk=; b=Kjx0m+sGURPnS6f6vy9mSDHh0T n31eunuz8KOabPMv97NdWJhKUcpLrIHG7wzXTW7Rk2hljThptulAGMwvYA+4iYZdpyQyZSWFs1rZC 05xIAntC12f+jgBcMp81n+vulCrgU5yetoscMYgPh/x4KKm+HJnjgj5cGFnQQBWlAFDIE3bw/yJHE WYVcqVaHh+0gs8HQ8DDFLgqxQsJU6nk9r7VJTDnE19JlGuH9Cj6Qx/Zv4zduH78un0G8hWUQ33PUl P30YVqJUilZqKmfFiyikOle8O1ldRDQMgCoQxNJlQiLd3R/DVp39qim/R78WXmMWjKSFrPgZUIxOy manRrMo8k8W6LOlBqS7i4yGEfoL51RBIPe6hwJA26GQDm15gT+NwR/Mf+eYMG8abEk8HDnplHwyu4 5T9hVqrrPcFtI1FywX63Vg9XITDxqOZSb6owqn4eoaaYCn0BS4qjSsMMhf3TBlZ+6WzudBe8STVmM nN+VB25T33tfDJwZ53pFux/v; Received: from muradm by localhost with local (Exim 4.94.2) (envelope-from ) id 1mU1ir-0007hr-UC; Sat, 25 Sep 2021 10:03:45 +0300 References: <20210915162958.28398-1-mail@muradm.net> <20210916194728.324-1-mail@muradm.net> <20210916194728.324-6-mail@muradm.net> User-agent: mu4e 1.6.5; emacs 28.0.50 From: muradm To: Leo Famulari Subject: Re: [bug#49969] [PATCH v8 5/7] gnu: admin: Add libseat 0.6.2 and move seatd. Date: Sat, 25 Sep 2021 10:00:40 +0300 In-reply-to: Message-ID: <87lf3lp25q.fsf@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; format=flowed X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 49969 Cc: 49969@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hi, Ah yes, on master you will need to set: (arguments `(#:meson ,meson-next I was testing the patches on both core-updates-frozen and master. For me both braches was applicable without change. Except on master, meson should be next. Sorry for forgetting that. Thanks in advance, muradm Leo Famulari writes: > On Thu, Sep 16, 2021 at 10:47:26PM +0300, muradm wrote: >> * gnu/packages/admin.scm (libseat): New variable >> * gnu/packages/admin.scm (seatd): New variable >> * gnu/packages/freedesktop.scm (seatd): Remove variable > > Thanks for working on these patches! > > I just applied them to the current master branch and tried > building all > the new packages, but libseat fails to build like this: > > ------ > starting phase `configure' > The Meson build system > Version: 0.53.2 > Source dir: /tmp/guix-build-libseat-0.6.2.drv-0/source > Build dir: /tmp/guix-build-libseat-0.6.2.drv-0/build > Build type: native build > > meson.build:1:0: ERROR: Meson version is 0.53.2 but project > requires >=0.56.0 > > A full log can be found at > /tmp/guix-build-libseat-0.6.2.drv-0/build/meson-logs/meson-log.txt > command "meson" > "--prefix=/gnu/store/4dazksqkz5yn77570jc2cmnlyfc9gikv-libseat-0.6.2" > "--buildtype=debugoptimized" > "-Dc_link_args=-Wl,-rpath=/gnu/store/4dazksqkz5yn77570jc2cmnlyfc9gikv-libseat-0.6.2/lib" > "-Dcpp_link_args=-Wl,-rpath=/gnu/store/4dazksqkz5yn77570jc2cmnlyfc9gikv-libseat-0.6.2/lib" > "-Dlibseat-logind=elogind" "-Dserver=disabled" > "/tmp/guix-build-libseat-0.6.2.drv-0/source" failed with status > 1 > builder for > `/gnu/store/l2rf97zgwwp7ccvl1wn9g7qm0w7aj4d1-libseat-0.6.2.drv' > failed > with exit code 1 > build of > /gnu/store/l2rf97zgwwp7ccvl1wn9g7qm0w7aj4d1-libseat-0.6.2.drv > failed > View build log at > '/var/log/guix/drvs/l2/rf97zgwwp7ccvl1wn9g7qm0w7aj4d1-libseat-0.6.2.drv.bz2'. > guix build: error: build of > `/gnu/store/l2rf97zgwwp7ccvl1wn9g7qm0w7aj4d1-libseat-0.6.2.drv' > failed > ------ > > Sorry if I forgot about how to apply the patch series... does it > need to > go on another branch besides master? From debbugs-submit-bounces@debbugs.gnu.org Sun Nov 14 13:25:13 2021 Received: (at 49969) by debbugs.gnu.org; 14 Nov 2021 18:25:13 +0000 Received: from localhost ([127.0.0.1]:51636 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmKBk-0001Ze-T2 for submit@debbugs.gnu.org; Sun, 14 Nov 2021 13:25:13 -0500 Received: from mail-4325.protonmail.ch ([185.70.43.25]:20185) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mmJX8-0000NX-Qs for 49969@debbugs.gnu.org; Sun, 14 Nov 2021 12:43:15 -0500 Date: Sun, 14 Nov 2021 17:43:06 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail; t=1636911788; bh=P6QibB6jayrgDVkomFrY7EiHReNS/D9XclDjgQvHf9Y=; h=Date:To:From:Reply-To:Subject:From; b=ZTQBqLuaVrfDjsMnV3hD2f6i74L7/YaZrGumWUmsKAuFFCzU5fNkF+d11C4fRyBgc zX5IMytOmRfd6MrJulfT5nbVXqF+/XwvxH0btnGc5oLjzYxHmQoBFSkiHIvUUoBFDY 7RSwTvSX/DE/B0xyf5Sru2cb3eHUUQuj7KhaUDwU= To: "49969@debbugs.gnu.org" <49969@debbugs.gnu.org> From: norgli Subject: [PATCH 0/7] gnu: desktop: Add seatd-service-type and greetd-service-type Message-ID: <9-7QPzh7iXLJ-hoENE5DC6yzvKw5hLS556ydJ_MxG2LyePg7riUT8VFXNN_me1vyM9tPKKu5DMopxWC_FLI_TpQA8Zqdr-ogTnCSlNI2LiM=@protonmail.com> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="b1_jGWt1Lb4nIkuWR6Y0jA8UOE1IAFqhsP5RfzUJTjZQhY" X-Spam-Status: No, score=-1.2 required=10.0 tests=ALL_TRUSTED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,HTML_MESSAGE shortcircuit=no autolearn=disabled version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on mailout.protonmail.ch X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-Mailman-Approved-At: Sun, 14 Nov 2021 13:25:11 -0500 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: norgli Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) This is a multi-part message in MIME format. --b1_jGWt1Lb4nIkuWR6Y0jA8UOE1IAFqhsP5RfzUJTjZQhY Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 SGVsbG8sCkkgd291bGQgYmUgbG9va2luZyB0byB1c2UgdGhpcywgc2VlbXMgdW5mb3J0dW5hdGUg dGhlIG1lcmdlIGhhcyBoYWx0ZWQgYXQgYSB2ZXJ5IGFkdmFuY2VkIHBvaW50IC0tIGFueSBjaGFu Y2UgaXQgZ2V0cyBwaWNrZWQgdXAgYWdhaW4/IDopCldvdWxkIGJlIHRyeWluZyB0byBwYWNrYWdl IHRoZSBRdEdyZWV0IGFwcGxpY2F0aW9uIHRoYXQgaSB1c2Ugb24gbXkgb3RoZXIgc3lzdGVtL3Bh cnRpdGlvbiwgaWYgaXQgd2FzLgpUaGFua3MsCkZsb3JpYW4KKEBmbG9yaGl6b206bWF0cml4Lm9y ZyBvbiBpcmMp --b1_jGWt1Lb4nIkuWR6Y0jA8UOE1IAFqhsP5RfzUJTjZQhY Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 SGVsbG8sPGJyPkkgd291bGQgYmUgbG9va2luZyB0byB1c2UgdGhpcywgc2VlbXMgdW5mb3J0dW5h dGUgdGhlIG1lcmdlIGhhcyBoYWx0ZWQgYXQgYSB2ZXJ5IGFkdmFuY2VkIHBvaW50IC0tIGFueSBj aGFuY2UgaXQgZ2V0cyBwaWNrZWQgdXAgYWdhaW4/IDopIDxicj5Xb3VsZCBiZSB0cnlpbmcgdG8g cGFja2FnZSB0aGUgUXRHcmVldCBhcHBsaWNhdGlvbiB0aGF0IGkgdXNlIG9uIG15IG90aGVyIHN5 c3RlbS9wYXJ0aXRpb24sIGlmIGl0IHdhcy48YnI+VGhhbmtzLCA8YnI+RmxvcmlhbiA8YnI+KEBm bG9yaGl6b206bWF0cml4Lm9yZyBvbiBpcmMpIDxicj48ZGl2Pjxicj48L2Rpdj4= --b1_jGWt1Lb4nIkuWR6Y0jA8UOE1IAFqhsP5RfzUJTjZQhY-- From debbugs-submit-bounces@debbugs.gnu.org Fri Jun 03 06:45:43 2022 Received: (at 49969) by debbugs.gnu.org; 3 Jun 2022 10:45:43 +0000 Received: from localhost ([127.0.0.1]:55352 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nx4oG-0002le-EL for submit@debbugs.gnu.org; Fri, 03 Jun 2022 06:45:43 -0400 Received: from [192.151.158.155] (port=47952 helo=mail.boiledscript.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nx4Gb-0001j0-0Y for 49969@debbugs.gnu.org; Fri, 03 Jun 2022 06:10:54 -0400 Received: from localhost (unknown [192.168.203.1]) by mail.boiledscript.com (Postfix) with ESMTP id 8C11E3008F7 for <49969@debbugs.gnu.org>; Fri, 3 Jun 2022 10:10:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ultrarare.space; s=dkim; t=1654251046; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ZVbUxRj1H1klcwBosvbFQfs0q+GKr8Dcpocbqb5STwI=; b=TEyaYI+bf+cv7Kd9ERny1Rl7CZOMOmpndqTmGJiwEMfXG1WWJodnIXeODE/wCQ/UB30C6p /PvHHxHHX51l2MTlNEPA9NpHmohyAlN0nd/Fkd8FhyJzW9VkP9k4Re9usrbStdc2FCondV NKTJuEVF6ZyUOwXI5yG60K8zvVphlBt1e5OSZhlB7EiIPhrDZFHClvpWMhk/Dn4DdTSXx3 boDyLM6WmsgqUOnexTW9+MSrJr6aiMhchsCJwobVGyFwEYhyuWNni1ZbBgctThevZsf2Zq ECw8Dp95UtYMrln2cR0kCWyfkmh/HJwZ08iEKzwFEdDQYpQccScjcd+/SQZloQ== Date: Fri, 3 Jun 2022 18:10:31 +0800 From: Hilton Chain To: 49969@debbugs.gnu.org Subject: [PATCH v9 1/7] gnu: crates-io: Add rust-enquote 1.1.0 and rust-pam-sys 0.5.6. Message-ID: <20220603181031.1ac07de0@ultrarare.space> In-Reply-To: <20220603180923.0caf6958@ultrarare.space> References: <20220603180923.0caf6958@ultrarare.space> X-Mailer: Claws Mail 4.0.0 (GTK+ 3.24.30; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Authentication-Results: mail.boiledscript.com; none X-Spamd-Bar: / X-Spam-Score: 3.4 (+++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: * gnu/packages/crates-io.scm (rust-enquote-1): New variable * gnu/packages/crates-io.scm (rust-pam-sys-0.5): New variable Signed-off-by: Hilton Chain --- gnu/packages/crates-io.scm | 40 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) Content analysis details: (3.4 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 1.6 PDS_OTHER_BAD_TLD Untrustworthy TLDs [URI: ultrarare.space (space)] 1.3 RDNS_NONE Delivered to internal network by a host with no rDNS 0.5 FROM_SUSPICIOUS_NTLD From abused NTLD -0.0 T_SCC_BODY_TEXT_LINE No description available. X-Debbugs-Envelope-To: 49969 X-Mailman-Approved-At: Fri, 03 Jun 2022 06:45:39 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 2.4 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: * gnu/packages/crates-io.scm (rust-enquote-1): New variable * gnu/packages/crates-io.scm (rust-pam-sys-0.5): New variable Signed-off-by: Hilton Chain --- gnu/packages/crates-io.scm | 40 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) Content analysis details: (2.4 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 1.6 PDS_OTHER_BAD_TLD Untrustworthy TLDs [URI: ultrarare.space (space)] 1.3 RDNS_NONE Delivered to internal network by a host with no rDNS 0.5 FROM_SUSPICIOUS_NTLD From abused NTLD -0.0 T_SCC_BODY_TEXT_LINE No description available. -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager * gnu/packages/crates-io.scm (rust-enquote-1): New variable * gnu/packages/crates-io.scm (rust-pam-sys-0.5): New variable Signed-off-by: Hilton Chain --- gnu/packages/crates-io.scm | 40 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 86313f5e4fd3..9374601bb4f3 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -19,6 +19,7 @@ ;;; Copyright =C2=A9 2021 Antero Mejr ;;; Copyright =C2=A9 2021 Maxim Cournoyer ;;; Copyright =C2=A9 2021 Vinicius Monego +;;; Copyright =C2=A9 2021 muradm ;;; Copyright =C2=A9 2021, 2022 Petr Hodina ;;; Copyright =C2=A9 2021, 2022 Ricardo Wurmus ;;; Copyright =C2=A9 2021 Jacob Hrbek @@ -73053,3 +73054,42 @@ (define-public rust-shell2batch-0.4 and automatically convert it to a windows batch file, this library provide= s a way to convert simple shell commands to windows batch commands.") (license license:asl2.0))) + +(define-public rust-enquote-1 + (package + (name "rust-enquote") + (version "1.1.0") + (home-page "https://github.com/reujab/enquote") + (source (origin + (method url-fetch) + (uri (crate-uri "enquote" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0clrjghlfkkb7sndabs5wch0fz2nif6nj4b117s8kqxx3nqnrhq6")))) + (build-system cargo-build-system) + (synopsis "Rust library that quotes, unquotes, and unescapes strings") + (description "A Rust library quotes, unquotes, and unescapes strings") + (license license:unlicense))) + +(define-public rust-pam-sys-0.5 + (package + (name "rust-pam-sys") + (version "0.5.6") + (home-page "https://github.com/1wilkens/pam-sys") + (source (origin + (method url-fetch) + (uri (crate-uri "pam-sys" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0d14501d5vybjnzxfjf96321xa5wa36x1xvf02h02zq938qmhj6d")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs (("rust-libc" ,rust-libc-0.2)))) + (native-inputs `(("linux-pam" ,linux-pam))) + (synopsis + "Rust FFI wrappers for the Linux Pluggable Authentication Modules (PA= M)") + (description + "Rust FFI wrappers for the Linux Pluggable Authentication Modules (PA= M)") + (license (list license:expat license:asl2.0)))) --=20 2.36.1 From debbugs-submit-bounces@debbugs.gnu.org Fri Jun 03 06:51:34 2022 Received: (at 49969) by debbugs.gnu.org; 3 Jun 2022 10:51:34 +0000 Received: from localhost ([127.0.0.1]:55368 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nx4tu-0002xF-Le for submit@debbugs.gnu.org; Fri, 03 Jun 2022 06:51:33 -0400 Received: from [192.151.158.155] (port=48142 helo=mail.boiledscript.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nx4Hk-0001kf-2u for 49969@debbugs.gnu.org; Fri, 03 Jun 2022 06:12:05 -0400 Received: from localhost (unknown [192.168.203.1]) by mail.boiledscript.com (Postfix) with ESMTP id A94893008F7 for <49969@debbugs.gnu.org>; Fri, 3 Jun 2022 10:11:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ultrarare.space; s=dkim; t=1654251118; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=WVrOxeRUe8KQdV8xw4qar6u2s0RTSUp+6KqeC6ua7Cw=; b=LmjoDCm1+5aooK8XT8e82YcQDsVawK7hgts+vv0Aw+pMHwarvUGUJy+DxnCgjH+O+/NFTG TfjZo4hCLudyfEzmkJbcMXj/7Kza+qL42WsxsFf6ynj9y4D+aFn9Fr/PD4AJmJaUBna7iV 9wP+GerV78alXucQv8scp8ZBH6Ib7MO4Abbev48xJ6FgvO/VOoA5jsqe3TWkhIgxFQEDh/ E7kfwuTsdiAoczevT1kW+/IjH7xsXFETRfmy9thCzH5NBoGQ/0MCm0aJKmhnIZ2dVwPSRu jEd5rYnPZwM44f48lPn7dfdjOCAB7obnq3n4F4PxUIzJPpzvkb0c2i+KmsjjIg== Date: Fri, 3 Jun 2022 18:11:43 +0800 From: Hilton Chain To: 49969@debbugs.gnu.org Subject: [PATCH 2/7] gnu: admin: Add greetd 0.8.0. Message-ID: <20220603181143.5bef4199@ultrarare.space> In-Reply-To: <20220603181031.1ac07de0@ultrarare.space> References: <20220603180923.0caf6958@ultrarare.space> <20220603181031.1ac07de0@ultrarare.space> X-Mailer: Claws Mail 4.0.0 (GTK+ 3.24.30; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Authentication-Results: mail.boiledscript.com; none X-Spamd-Bar: / X-Spam-Score: 3.4 (+++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: * gnu/packages/admin.scm (greetd): New variable Signed-off-by: Hilton Chain --- gnu/packages/admin.scm | 80 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) Content analysis details: (3.4 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 1.6 PDS_OTHER_BAD_TLD Untrustworthy TLDs [URI: ultrarare.space (space)] 1.3 RDNS_NONE Delivered to internal network by a host with no rDNS 0.5 FROM_SUSPICIOUS_NTLD From abused NTLD -0.0 T_SCC_BODY_TEXT_LINE No description available. X-Debbugs-Envelope-To: 49969 X-Mailman-Approved-At: Fri, 03 Jun 2022 06:51:29 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 2.4 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: * gnu/packages/admin.scm (greetd): New variable Signed-off-by: Hilton Chain --- gnu/packages/admin.scm | 80 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) Content analysis details: (2.4 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 1.6 PDS_OTHER_BAD_TLD Untrustworthy TLDs [URI: ultrarare.space (space)] 1.3 RDNS_NONE Delivered to internal network by a host with no rDNS 0.5 FROM_SUSPICIOUS_NTLD From abused NTLD -0.0 T_SCC_BODY_TEXT_LINE No description available. -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager * gnu/packages/admin.scm (greetd): New variable Signed-off-by: Hilton Chain --- gnu/packages/admin.scm | 80 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 92ee007729ee..d94b113d4e24 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -45,6 +45,7 @@ ;;; Copyright =C2=A9 2021 Brice Waegeneire ;;; Copyright =C2=A9 2021 Maxim Cournoyer ;;; Copyright =C2=A9 2021 Maxime Devos +;;; Copyright =C2=A9 2021 muradm ;;; Copyright =C2=A9 2021 Petr Hodina ;;; Copyright =C2=A9 2021 Artyom V. Poptsov ;;; Copyright =C2=A9 2022 Wamm K. D. @@ -65,6 +66,7 @@ ;;; along with GNU Guix. If not, see . =20 (define-module (gnu packages admin) + #:use-module (guix build-system cargo) #:use-module (guix build-system cmake) #:use-module (guix build-system emacs) #:use-module (guix build-system glib-or-gtk) @@ -92,6 +94,7 @@ (define-module (gnu packages admin) #:use-module (gnu packages c) #:use-module (gnu packages check) #:use-module (gnu packages compression) + #:use-module (gnu packages crates-io) #:use-module (gnu packages cross-base) #:use-module (gnu packages crypto) #:use-module (gnu packages cryptsetup) @@ -100,6 +103,7 @@ (define-module (gnu packages admin) #:use-module (gnu packages elf) #:use-module (gnu packages file) #:use-module (gnu packages flex) + #:use-module (gnu packages freedesktop) #:use-module (gnu packages gawk) #:use-module (gnu packages gettext) #:use-module (gnu packages gl) @@ -4972,4 +4976,80 @@ (define-public udpcast (home-page "https://www.udpcast.linux.lu") (license license:gpl2+))) =20 +(define-public greetd + (package + (name "greetd") + (version "0.8.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 + "0x5c3jkw09kvj2grcxm899y2n6ws8p990cyp9cs0fy6lm4fzlh6v")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs (("rust-nix" ,rust-nix-0.19) ("rust-pam-sys" ,rust-p= am-sys-0.5) + ("rust-rpassword" ,rust-rpassword-5) + ("rust-users" ,rust-users-0.11) + ("rust-serde" ,rust-serde-1) + ("rust-serde-json" ,rust-serde-json-1) + ("rust-libc" ,rust-libc-0.2) + ("rust-tokio" ,rust-tokio-1) + ("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 + (delete 'package) + (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)))= ))))) + (native-inputs `(("linux-pam" ,linux-pam) ("scdoc" ,scdoc))) + (synopsis "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. =20 +If you can run it from your shell in a TTY, greetd can start it. + +If it can be taught to speak a simple JSON-based IPC protocol, +then it can be a greeter.") + (license license:gpl3+))) --=20 2.36.1 From debbugs-submit-bounces@debbugs.gnu.org Fri Jun 03 06:51:34 2022 Received: (at 49969) by debbugs.gnu.org; 3 Jun 2022 10:51:34 +0000 Received: from localhost ([127.0.0.1]:55370 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nx4ty-0002xL-0W for submit@debbugs.gnu.org; Fri, 03 Jun 2022 06:51:34 -0400 Received: from [192.151.158.155] (port=48404 helo=mail.boiledscript.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nx4K6-0001oK-IX for 49969@debbugs.gnu.org; Fri, 03 Jun 2022 06:14:30 -0400 Received: from localhost (unknown [192.168.203.1]) by mail.boiledscript.com (Postfix) with ESMTP id BD7D1300A0B for <49969@debbugs.gnu.org>; Fri, 3 Jun 2022 10:14:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ultrarare.space; s=dkim; t=1654251265; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=lbFTTvtHIIQoSCOC/MUp+3CjaIhveJ48hRXfh/6Wz0M=; b=05VWzaQ11MbmycDApvtIkV2obgSgwZ06oyoNbwt6XI2SBzTLDmyUazK48Sf0MfWrCAcj1Z r1UJB+EPipp+oJcYQjcXrYCLZulmXmUZBlaY1r3ptizfWyN5w8+NymCXxmf6a6O1u0fvIz vc0Sxd/mqaOpFcgNRfgN5QKPitY2P9OP3J9CtOvd7eT0MSR3QpsQ+ytk7/A6vGWjOppf2J +LHlSDwnlB6AKiLQkfNin8YFPJZjmo8p5hZHDNrO5ibi8f3MPwTU7Re5Gq2b2PDxPBEXvR aY8CspKiTUxwde8VD6TVRlt6FpJaScWHcqP0zBGC1MohGF11onSq+d2T5proMg== Date: Fri, 3 Jun 2022 18:14:11 +0800 From: Hilton Chain To: 49969@debbugs.gnu.org Subject: [PATCH v9 3/7] gnu: admin: Add greetd-pam-mount. Message-ID: <20220603181411.0a9ec225@ultrarare.space> In-Reply-To: <20220603181143.5bef4199@ultrarare.space> References: <20220603180923.0caf6958@ultrarare.space> <20220603181031.1ac07de0@ultrarare.space> <20220603181143.5bef4199@ultrarare.space> X-Mailer: Claws Mail 4.0.0 (GTK+ 3.24.30; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Authentication-Results: mail.boiledscript.com; none X-Spamd-Bar: / X-Spam-Score: 3.4 (+++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: * gnu/packages/admin.scm (greetd-pam-mount): New variable Signed-off-by: Hilton Chain --- gnu/packages/admin.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) Content analysis details: (3.4 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 1.6 PDS_OTHER_BAD_TLD Untrustworthy TLDs [URI: ultrarare.space (space)] 1.3 RDNS_NONE Delivered to internal network by a host with no rDNS 0.5 FROM_SUSPICIOUS_NTLD From abused NTLD -0.0 T_SCC_BODY_TEXT_LINE No description available. X-Debbugs-Envelope-To: 49969 X-Mailman-Approved-At: Fri, 03 Jun 2022 06:51:29 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 2.4 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: * gnu/packages/admin.scm (greetd-pam-mount): New variable Signed-off-by: Hilton Chain --- gnu/packages/admin.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) Content analysis details: (2.4 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 1.6 PDS_OTHER_BAD_TLD Untrustworthy TLDs [URI: ultrarare.space (space)] 1.3 RDNS_NONE Delivered to internal network by a host with no rDNS 0.5 FROM_SUSPICIOUS_NTLD From abused NTLD -0.0 T_SCC_BODY_TEXT_LINE No description available. -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager * gnu/packages/admin.scm (greetd-pam-mount): New variable Signed-off-by: Hilton Chain --- gnu/packages/admin.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index d94b113d4e24..7095259ff9b0 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -5053,3 +5053,35 @@ (define-public greetd If it can be taught to speak a simple JSON-based IPC protocol, then it can be a greeter.") (license license:gpl3+))) + +(define-public greetd-pam-mount + (package + (inherit pam-mount) + (name "greetd-pam-mount") + (arguments + (substitute-keyword-arguments (package-arguments pam-mount) + ((#:configure-flags flags ''()) + `(cons* "--with-rundir=/run/greetd" ,flags)) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'unpack 'patch-config-file-name + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/pam_mount.c" + ((".*define CONFIGFILE .*$") + "#define CONFIGFILE \"/etc/security/greetd_pam_mount.conf.xml\"\n") + (("pam_mount_config") "greetd_pam_mount_config") + (("pam_mount_system_authtok") "greetd_pam_mount_system_authtok")))))))) + (synopsis "pam-mount specifically compiled for use with greetd") + (description + "Pam-mount is a PAM module that can mount volumes when a user logs in. +It supports mounting local filesystems of any kind the normal mount utility +supports. It can also mount encrypted LUKS volumes using the password +supplied by the user when logging in. + +This package inherits pam-mount in the way that it is compiled specifically +for use with greetd daemon. It uses different configuration location and +name space for storing data in PAM. + +greetd-pam-mount is used in configuration of greetd to provide +auto-(mounting/unmounting) of XDG_RUNTIME_DIR in the way that it will not +interfere with default pam-mount configuration."))) -- 2.36.1 From debbugs-submit-bounces@debbugs.gnu.org Fri Jun 03 06:51:38 2022 Received: (at 49969) by debbugs.gnu.org; 3 Jun 2022 10:51:38 +0000 Received: from localhost ([127.0.0.1]:55372 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nx4ty-0002xS-8j for submit@debbugs.gnu.org; Fri, 03 Jun 2022 06:51:38 -0400 Received: from [192.151.158.155] (port=48598 helo=mail.boiledscript.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nx4LZ-0001r9-Rj for 49969@debbugs.gnu.org; Fri, 03 Jun 2022 06:16:12 -0400 Received: from localhost (unknown [192.168.203.1]) by mail.boiledscript.com (Postfix) with ESMTP id 954C1300A0B for <49969@debbugs.gnu.org>; Fri, 3 Jun 2022 10:15:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ultrarare.space; s=dkim; t=1654251355; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=PcTXoqDCchNFkstkz6ihSzEE1EluTjfhAW9JS1h8dHQ=; b=u1f/lu0p28maDNAgDyK5Q+YBw5PojxOMiS/2DPle+/T4Ye5Nm5s84Jwh0+OPaC8AOCTP7L 114vVgXbuwi2mrEf2yAls+WbIQBWZaAGX/jhrK3ZhpjJngtOwSCAp4vheBOLTERLJoTxAA qUjgnM+0DC82SbzInVAPhgmWB6fg8RJXMy/eHxjZQ79b4mnmjdGitPHJmQ9RWqvddZxtjP 2Upr6UL85Zvcenzg9yzDYAVmY+SNZVRTfTaaQC4G6QeNuTCRNtdinpS8jFhoMMoouJzoeC vb1ZJuubXbjxQrwQc4VfcpCspzPJ8o2JnlWQzb0WGPi/6VN3p1QdWWZgL+bt/Q== Date: Fri, 3 Jun 2022 18:15:41 +0800 From: Hilton Chain To: 49969@debbugs.gnu.org Subject: [PATCH v9 4/7] gnu: base: Add greetd-service-type. Message-ID: <20220603181541.26a4c4f5@ultrarare.space> In-Reply-To: <20220603181411.0a9ec225@ultrarare.space> References: <20220603180923.0caf6958@ultrarare.space> <20220603181031.1ac07de0@ultrarare.space> <20220603181143.5bef4199@ultrarare.space> <20220603181411.0a9ec225@ultrarare.space> X-Mailer: Claws Mail 4.0.0 (GTK+ 3.24.30; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Authentication-Results: mail.boiledscript.com; none X-Spamd-Bar: / X-Spam-Score: 3.4 (+++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: * gnu/services/base.scm (greetd-service-type): New variable * gnu/services/base.scm (greetd-configuration): New data type * gnu/services/base.scm (greetd-terminal-configuration): New data type * gnu/s [...] Content analysis details: (3.4 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 T_SPF_HELO_TEMPERROR SPF: test of HELO record failed (temperror) -0.0 SPF_PASS SPF: sender matches SPF record 1.6 PDS_OTHER_BAD_TLD Untrustworthy TLDs [URI: ultrarare.space (space)] 1.3 RDNS_NONE Delivered to internal network by a host with no rDNS 0.5 FROM_SUSPICIOUS_NTLD From abused NTLD -0.0 T_SCC_BODY_TEXT_LINE No description available. X-Debbugs-Envelope-To: 49969 X-Mailman-Approved-At: Fri, 03 Jun 2022 06:51:29 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 2.4 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: * gnu/services/base.scm (greetd-service-type): New variable * gnu/services/base.scm (greetd-configuration): New data type * gnu/services/base.scm (greetd-terminal-configuration): New data type * gnu/s [...] Content analysis details: (2.4 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 1.6 PDS_OTHER_BAD_TLD Untrustworthy TLDs [URI: ultrarare.space (space)] 1.3 RDNS_NONE Delivered to internal network by a host with no rDNS 0.5 FROM_SUSPICIOUS_NTLD From abused NTLD -0.0 T_SCC_BODY_TEXT_LINE No description available. -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager * gnu/services/base.scm (greetd-service-type): New variable * gnu/services/base.scm (greetd-configuration): New data type * gnu/services/base.scm (greetd-terminal-configuration): New data type * gnu/services/base.scm (greetd-agreety-session): New data type * gnu/services/base.scm (pam-limits-service-type): Shoul be aware of greetd PAM service * gnu/services/pam-mount.scm (pam-mount-pam-service): Shoul be aware of greetd PAM service Signed-off-by: Hilton Chain --- doc/guix.texi | 133 ++++++++++++++++++++++ gnu/services/base.scm | 218 ++++++++++++++++++++++++++++++++++++- gnu/services/pam-mount.scm | 2 +- 3 files changed, 351 insertions(+), 2 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 2bfff7c2ff9e..825c7d93c577 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -96,6 +96,7 @@ Copyright @copyright{} 2021 Hui Lu@* Copyright @copyright{} 2021 pukkamustard@* Copyright @copyright{} 2021 Alice Brenon@* +Copyright @copyright{} 2021 muradm@* Copyright @copyright{} 2021 Josselin Poiret@* Copyright @copyright{} 2021 Andrew Tropin@* Copyright @copyright{} 2021 Sarah Morgensen@* @@ -18018,6 +18019,138 @@ Base Services @samp{pam_limits} man page from the @code{linux-pam} package. @end deffn =20 +@defvr {Scheme Variable} greetd-service-type +@uref{https://git.sr.ht/~kennylevinsen/greetd, @code{greetd}} is a minimal= and +flexible login manager daemon, that makes no assumptions about what you +want to launch. + +If you can run it from your shell in a TTY, greetd can start it. If it +can be taught to speak a simple JSON-based IPC protocol, then it can be +a geeter. + +@code{greetd-service-type} provides necessary infrastructure for logging +in users, including: + +@itemize @bullet +@item +@code{greetd} PAM service + +@item +Special variation of @code{pam-mount} to mount @code{XDG_RUNTIME_DIR} +@end itemize + +Here is example of switching from @code{mingetty-service-type} to +@code{greetd-service-type}, and how different terminals could be: + +@lisp + (append + (modify-services %base-services + ;; greetd-service-type provides "greetd" PAM service + (delete login-service-type) + ;; and can be used in place of mingetty-service-type + (delete mingetty-service-type)) + (list + (service greetd-service-type + (greetd-configuration + (terminals + (list + ;; we can make any terminal active by default + (greetd-terminal-configuration (terminal-vt "1") (terminal= -switch #t)) + ;; we can make environment without XDG_RUNTIME_DIR set + ;; even provide our own environment variables + (greetd-terminal-configuration + (terminal-vt "2") + (default-session-command + (greetd-agreety-session + (extra-env '(("MY_VAR" . "1"))) + (xdg-env? #f)))) + ;; we can use different shell instead of default bash + (greetd-terminal-configuration + (terminal-vt "3") + (default-session-command + (greetd-agreety-session (command (file-append zsh "/bin= /zsh"))))) + ;; we can use any other executable command as greeter + (greetd-terminal-configuration + (terminal-vt "4") + (default-session-command (program-file "my-noop-greeter" = #~(exit)))) + (greetd-terminal-configuration (terminal-vt "5")) + (greetd-terminal-configuration (terminal-vt "6")))))) + ;; mingetty-service-type can be used in parallel + ;; if needed to do so, do not (delete login-service-type) + ;; as illustrated above + #| (service mingetty-service-type (mingetty-configuration (tty "tty8")= )) |#)) +@end lisp +@end defvr + +@deftp {Data Type} greetd-configuration +Configuration record for the @code{greetd-service-type}. +@table @asis + +@item @code{motd} +A file-like object containing the ``message of the day''. + +@item @code{allow-empty-passwords?} (default: @code{#t}) +Allow empty passwords by default so that first-time users can log in when +the 'root' account has just been created. + +@item @code{terminals} (default: @code{'()}) +List of @code{greetd-terminal-configuration} per terminal for which +@code{greetd} should be started. +@end table +@end deftp + +@deftp {Data Type} greetd-terminal-configuration +Configuration record for per terminal greetd daemon service. + +@table @asis +@item @code{greetd} (default: @code{greetd}) +The greetd package to use. + +@item @code{config-file-name} +Configuration file name to use for greetd daemon. Generally, autogenerated +derivation based on @code{terminal-vt} value. + +@item @code{terminal-vt} (default: @samp{"7"}) +The VT to run on. Use of a specific VT with appropriate conflict avoidance +is recommended. + +@item @code{terminal-switch} (default: @code{#f}) +Make this terminal active on start of @code{greetd}. + +@item @code{default-session-user} (default: @samp{"greeter"}) +The user to use for running the greeter. + +@item @code{default-session-command} (default: @code{(greetd-agreety-sessi= on)}) +Can be either instance of @code{greetd-agreety-session} configuration or +@code{gexp->script} like object to use as greeter. + +@end table +@end deftp + +@deftp {Data Type} greetd-agreety-session +Configuration record for the agreety greetd greeter. + +@table @asis +@item @code{agreety} (default: @code{greetd}) +The package with @command{/bin/agreety} command. + +@item @code{command} (default: @code{(file-append bash "/bin/bash")}) +Command to be started by @command{/bin/agreety} on successful login. + +@item @code{command-args} (default: @code{'("-l")}) +Command arguments to pass to command. + +@item @code{extra-env} (default: @code{'()}) +Extra environment variables to set on login. + +@item @code{xdg-env?} (default: @code{#t}) +If true @code{XDG_RUNTIME_DIR} and @code{XDG_SESSION_TYPE} will be set +before starting command. One should note that, @code{extra-env} variables +are set right after mentioned variables, so that they can be overriden. + +@end table +@end deftp + @node Scheduled Job Execution @subsection Scheduled Job Execution =20 diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 3fb92e6da071..3a5c85ce61fd 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -15,6 +15,7 @@ ;;; Copyright =C2=A9 2020, 2021 Brice Waegeneire ;;; Copyright =C2=A9 2021 qblade ;;; Copyright =C2=A9 2021 Hui Lu +;;; Copyright =C2=A9 2021 muradm ;;; Copyright =C2=A9 2021, 2022 Maxim Cournoyer ;;; Copyright =C2=A9 2022 Guillaume Le Vaillant ;;; @@ -219,6 +220,11 @@ (define-module (gnu services base) pam-limits-service-type pam-limits-service =20 + greetd-service-type + greetd-configuration + greetd-terminal-configuration + greetd-agreety-session + %base-services)) =20 ;;; Commentary: @@ -1438,7 +1444,7 @@ (define pam-limits-service-type (module "pam_limits.so") (arguments '("conf=3D/etc/security/limits.co= nf"))))) (if (member (pam-service-name pam) - '("login" "su" "slim" "gdm-password" "sddm")) + '("login" "greetd" "su" "slim" "gdm-password" "sd= dm")) (pam-service (inherit pam) (session (cons pam-limits @@ -2773,6 +2779,216 @@ (define %qemu-static-networking (provision '(networking)) (name-servers '("10.0.2.3")))) =20 +=0C +;;; +;;; greetd-service-type -- minimal and flexible login manager daemon +;;; + +(define-record-type* + greetd-agreety-session make-greetd-agreety-session + greetd-agreety-session? + (agreety greetd-agreety (default greetd)) + (command greetd-agreety-command (default (file-append bash "/bin/bash"))) + (command-args greetd-agreety-command-args (default '("-l"))) + (extra-env greetd-agreety-extra-env (default '())) + (xdg-env? greetd-agreety-xdg-env? (default #t))) + +(define greetd-agreety-tty-session-command + (match-lambda + (($ _ command args extra-env) + (program-file + "agreety-tty-session-command" + #~(begin + (use-modules (ice-9 match)) + (for-each (match-lambda ((var . val) (setenv var val))) + (quote (#$@extra-env))) + (apply execl #$command #$command (list #$@args))))))) + +(define greetd-agreety-tty-xdg-session-command + (match-lambda + (($ _ command args extra-env) + (program-file + "agreety-tty-xdg-session-command" + #~(begin + (use-modules (ice-9 match)) + (let* + ((username (getenv "USER")) + (useruid (passwd:uid (getpwuid username))) + (useruid (number->string useruid))) + (setenv "XDG_SESSION_TYPE" "tty") + (setenv "XDG_RUNTIME_DIR" (string-append "/run/user/" useruid)= )) + (for-each (match-lambda ((var . val) (setenv var val))) + (quote (#$@extra-env))) + (apply execl #$command #$command (list #$@args))))))) + +(define (make-greetd-agreety-session-command config command) + (let ((agreety (file-append (greetd-agreety config) "/bin/agreety"))) + (program-file + "agreety-command" + #~(execl #$agreety #$agreety "-c" #$command)))) + +(define (make-greetd-default-session-command config-or-command) + (cond ((greetd-agreety-session? config-or-command) + (cond ((greetd-agreety-xdg-env? config-or-command) + (make-greetd-agreety-session-command + config-or-command + (greetd-agreety-tty-xdg-session-command config-or-command= ))) + (#t + (make-greetd-agreety-session-command + config-or-command + (greetd-agreety-tty-session-command config-or-command))))) + (#t config-or-command))) + +(define-record-type* + greetd-terminal-configuration make-greetd-terminal-configuration + greetd-terminal-configuration? + (greetd greetd-package (default greetd)) + (config-file-name greetd-config-file-name (thunked) + (default (default-config-file-name this-record))) + (terminal-vt greetd-terminal-vt (default "7")) + (terminal-switch greetd-terminal-switch (default #f)) + (default-session-user greetd-default-session-user (default "greeter")) + (default-session-command greetd-default-session-command + (default (greetd-agreety-session)) + (sanitize make-greetd-default-session-command))) + +(define (default-config-file-name config) + (string-join (list "config-" (greetd-terminal-vt config) ".toml") "")) + +(define (make-greetd-terminal-configuration-file config) + (let* + ((config-file-name (greetd-config-file-name config)) + (terminal-vt (greetd-terminal-vt config)) + (terminal-switch (greetd-terminal-switch config)) + (default-session-user (greetd-default-session-user config)) + (default-session-command (greetd-default-session-command config))) + (mixed-text-file + config-file-name + "[terminal]\n" + "vt =3D " terminal-vt "\n" + "switch =3D " (if terminal-switch "true" "false") "\n" + "[default_session]\n" + "user =3D " default-session-user "\n" + "command =3D " default-session-command "\n"))) + +(define %greetd-accounts + (list (user-account + (name "greeter") + (group "wheel") + (supplementary-groups '("users" "tty" "input" "video" "audio")) + (system? #t)))) + +(define %greetd-file-systems + (list (file-system + (device "none") + (mount-point "/run/greetd/pam_mount") + (type "tmpfs") + (check? #f) + (flags '(no-suid no-dev no-exec)) + (options "mode=3D0755") + (create-mount-point? #t)))) + +(define %greetd-pam-mount-rules + `((debug (@ (enable "0"))) + (volume (@ (sgrp "users") + (fstype "tmpfs") + (mountpoint "/run/user/%(USERUID)") + (options "noexec,nosuid,nodev,size=3D1g,mode=3D0700,uid=3D%= (USERUID),gid=3D%(USERGID)"))) + (logout (@ (wait "0") + (hup "0") + (term "yes") + (kill "no"))) + (mkmountpoint (@ (enable "1") (remove "true"))))) + +(define-record-type* + greetd-configuration make-greetd-configuration + greetd-configuration? + (motd greetd-motd (default %default-motd)) + (allow-empty-passwords? greetd-allow-empty-passwords? (default #t)) + (terminals greetd-terminals (default '()))) + +(define (make-greetd-pam-mount-conf-file config) + (computed-file + "greetd_pam_mount.conf.xml" + #~(begin + (use-modules (sxml simple)) + (call-with-output-file #$output + (lambda (port) + (sxml->xml + '(*TOP* + (*PI* xml "version=3D'1.0' encoding=3D'utf-8'") + (pam_mount + #$@%greetd-pam-mount-rules + (pmvarrun + #$(file-append greetd-pam-mount + "/sbin/pmvarrun -u '%(USER)' -o '%(OPERATIO= N)'")))) + port)))))) + +(define (greetd-etc-service config) + `(("security/greetd_pam_mount.conf.xml" + ,(make-greetd-pam-mount-conf-file config)))) + +(define (greetd-pam-service config) + (define optional-pam-mount + (pam-entry + (control "optional") + (module #~(string-append #$greetd-pam-mount "/lib/security/pam_mount.= so")) + (arguments '("disable_interactive")))) + + (list + (unix-pam-service "greetd" + #:login-uid? #t + #:allow-empty-passwords? + (greetd-allow-empty-passwords? config) + #:motd + (greetd-motd config)) + (lambda (pam) + (if (member (pam-service-name pam) + '("login" "greetd" "su" "slim" "gdm-password")) + (pam-service + (inherit pam) + (auth (append (pam-service-auth pam) + (list optional-pam-mount))) + (session (append (pam-service-session pam) + (list optional-pam-mount)))) + pam)))) + +(define (greetd-shepherd-services config) + (map + (lambda (tc) + (let* + ((greetd-bin (file-append (greetd-package tc) "/sbin/greetd")) + (greetd-conf (make-greetd-terminal-configuration-file tc)) + (greetd-vt (greetd-terminal-vt tc))) + (shepherd-service + (documentation "Minimal and flexible login manager daemon") + (requirement '(user-processes host-name udev virtual-terminal)) + (provision (list (symbol-append + 'term-tty + (string->symbol (greetd-terminal-vt tc))))) + (start #~(make-forkexec-constructor + (list #$greetd-bin "-c" #$greetd-conf) + #:log-file + (string-append "/tmp/greetd." #$greetd-vt ".log"))) + (stop #~(make-kill-destructor))))) + (greetd-terminals config))) + +(define greetd-service-type + (service-type + (name 'greetd) + (description "Provides necessary infrastructure for logging into the +system including @code{greetd} PAM service, @code{pam-mount} module to +mount/unmount /run/user/ directory for user and @code{greetd} +login manager daemon.") + (extensions + (list + (service-extension account-service-type (const %greetd-accounts)) + (service-extension file-system-service-type (const %greetd-file-syste= ms)) + (service-extension etc-service-type greetd-etc-service) + (service-extension pam-root-service-type greetd-pam-service) + (service-extension shepherd-root-service-type greetd-shepherd-service= s))) + (default-value (greetd-configuration)))) + =0C (define %base-services ;; Convenience variable holding the basic services. diff --git a/gnu/services/pam-mount.scm b/gnu/services/pam-mount.scm index 33649b0f7c64..e60781d05bbe 100644 --- a/gnu/services/pam-mount.scm +++ b/gnu/services/pam-mount.scm @@ -90,7 +90,7 @@ (define (pam-mount-pam-service config) (module #~(string-append #$pam-mount "/lib/security/pam_mount.so")))) (list (lambda (pam) (if (member (pam-service-name pam) - '("login" "su" "slim" "gdm-password" "sddm")) + '("login" "greetd" "su" "slim" "gdm-password" "sddm"= )) (pam-service (inherit pam) (auth (append (pam-service-auth pam) --=20 2.36.1 From debbugs-submit-bounces@debbugs.gnu.org Fri Jun 03 06:51:39 2022 Received: (at 49969) by debbugs.gnu.org; 3 Jun 2022 10:51:39 +0000 Received: from localhost ([127.0.0.1]:55374 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nx4u2-0002xe-M1 for submit@debbugs.gnu.org; Fri, 03 Jun 2022 06:51:39 -0400 Received: from [192.151.158.155] (port=48760 helo=mail.boiledscript.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nx4MZ-0001st-L5 for 49969@debbugs.gnu.org; Fri, 03 Jun 2022 06:17:14 -0400 Received: from localhost (unknown [192.168.203.1]) by mail.boiledscript.com (Postfix) with ESMTP id 4E150300A0B for <49969@debbugs.gnu.org>; Fri, 3 Jun 2022 10:16:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ultrarare.space; s=dkim; t=1654251417; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=F0vHyleS5KGmAOfqHNdqBFNhcsn2oBcn4iBoO8Bsbtc=; b=q5ULlwsP7dj4H+THJyQUilx9YPpoVc5pPgniY3/HBCTsvTiGjdAVYCiBKmAnUD7LvFqvXG p7IL0BJFDTjdJbzGYd8vVcziy0g6LZVCORWq4osexFoRBarm1czH4wdkvYDnXZ+m1mes+B 0DLgZ0/Xi37lcCQIAmVTtEozhDpFruh2kYKaD1ZcN0O5aYA4lyQggyJ7IVs2RNBd5JAUKL /xaLDE5iluCMvLoUa03BptroAP/nac6y9JQBcqxsz0DChjikRNmZsWCQ4HxDzzEzlbSY9I L8HXEt6z59Tgp367bhceI8ZYJmUEFOn6VF93xmkMAr1OFlE0l7FiqUl40pyb8g== Date: Fri, 3 Jun 2022 18:16:44 +0800 From: Hilton Chain To: 49969@debbugs.gnu.org Subject: [PATCH v9 5/7] gnu: admin: Add libseat 0.7.0 and move seatd. Message-ID: <20220603181644.4dd65bf3@ultrarare.space> In-Reply-To: <20220603181541.26a4c4f5@ultrarare.space> References: <20220603180923.0caf6958@ultrarare.space> <20220603181031.1ac07de0@ultrarare.space> <20220603181143.5bef4199@ultrarare.space> <20220603181411.0a9ec225@ultrarare.space> <20220603181541.26a4c4f5@ultrarare.space> X-Mailer: Claws Mail 4.0.0 (GTK+ 3.24.30; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Authentication-Results: mail.boiledscript.com; none X-Spamd-Bar: / X-Spam-Score: 3.4 (+++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: * gnu/packages/admin.scm (libseat): New variable * gnu/packages/admin.scm (seatd): New variable * gnu/packages/freedesktop.scm (seatd): Remove variable Signed-off-by: Hilton Chain --- gnu/packages/admin.scm | 51 ++++++++++++++++++++++++++++++++++++ gnu/packages/freedesktop.scm | 29 2 files changed, 51 inser [...] Content analysis details: (3.4 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 T_SPF_HELO_TEMPERROR SPF: test of HELO record failed (temperror) -0.0 SPF_PASS SPF: sender matches SPF record 1.6 PDS_OTHER_BAD_TLD Untrustworthy TLDs [URI: ultrarare.space (space)] 1.3 RDNS_NONE Delivered to internal network by a host with no rDNS 0.5 FROM_SUSPICIOUS_NTLD From abused NTLD -0.0 T_SCC_BODY_TEXT_LINE No description available. X-Debbugs-Envelope-To: 49969 X-Mailman-Approved-At: Fri, 03 Jun 2022 06:51:29 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 2.4 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: * gnu/packages/admin.scm (libseat): New variable * gnu/packages/admin.scm (seatd): New variable * gnu/packages/freedesktop.scm (seatd): Remove variable Signed-off-by: Hilton Chain --- gnu/packages/admin.scm | 51 ++++++++++++++++++++++++++++++++++++ gnu/packages/freedesktop.scm | 29 2 files changed, 51 inser [...] Content analysis details: (2.4 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 1.6 PDS_OTHER_BAD_TLD Untrustworthy TLDs [URI: ultrarare.space (space)] 1.3 RDNS_NONE Delivered to internal network by a host with no rDNS 0.5 FROM_SUSPICIOUS_NTLD From abused NTLD -0.0 T_SCC_BODY_TEXT_LINE No description available. -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager * gnu/packages/admin.scm (libseat): New variable * gnu/packages/admin.scm (seatd): New variable * gnu/packages/freedesktop.scm (seatd): Remove variable Signed-off-by: Hilton Chain --- gnu/packages/admin.scm | 51 ++++++++++++++++++++++++++++++++++++ gnu/packages/freedesktop.scm | 29 -------------------- 2 files changed, 51 insertions(+), 29 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 7095259ff9b0..774ad88274b2 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -46,6 +46,7 @@ ;;; Copyright =C2=A9 2021 Maxim Cournoyer ;;; Copyright =C2=A9 2021 Maxime Devos ;;; Copyright =C2=A9 2021 muradm +;;; Copyright =C2=A9 2021 pineapples ;;; Copyright =C2=A9 2021 Petr Hodina ;;; Copyright =C2=A9 2021 Artyom V. Poptsov ;;; Copyright =C2=A9 2022 Wamm K. D. @@ -4976,6 +4977,56 @@ (define-public udpcast (home-page "https://www.udpcast.linux.lu") (license license:gpl2+))) =20 +(define-public libseat + (package + (name "libseat") + (version "0.7.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~kennylevinsen/seatd") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "10f8387yy5as547xjjhl0cna6iywdgjmw0iq2nvcs8q6vlpnik4v")))) + (build-system meson-build-system) + (arguments + `(#:configure-flags '("-Dlibseat-logind=3Delogind" + "-Dserver=3Ddisabled"))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (propagated-inputs + `(("elogind" ,elogind))) + (home-page "https://sr.ht/~kennylevinsen/seatd") + (synopsis "Seat management library") + (description + "This package provides a universal seat management library that +allows applications to use whatever seat management is available.") + (license license:expat))) + +(define-public seatd + (package + (inherit libseat) + (name "seatd") + (arguments + `(#:configure-flags '("-Dlibseat-logind=3Delogind") + #:phases + (modify-phases %standard-phases + (add-after 'install 'remove-libs + (lambda* (#:key outputs #:allow-other-keys) + (with-directory-excursion (assoc-ref outputs "out") + (for-each delete-file-recursively + '("lib" "include")))))))) + (native-inputs `(("pkg-config" ,pkg-config) ("scdoc" ,scdoc))) + (inputs '()) + (synopsis "Seat management daemon") + (description + "This package provides a minimal seat management daemon whose task is= to +mediate access to shared devices, such as graphics and input, for applicat= ions +that require it.") + (license license:expat))) + (define-public greetd (package (name "greetd") diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index fc2c45c1f137..309876867a16 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -849,35 +849,6 @@ (define-public localed with localed. This package is extracted from the broader systemd package.= ") (license license:lgpl2.1+))) =20 -(define-public seatd - (package - (name "seatd") - (version "0.5.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://git.sr.ht/~kennylevinsen/seatd") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1kglq8v4rnr3415mfaghyv2s2f8mxsy5s881gmm2908ig4n4j297")))) - (build-system meson-build-system) - (arguments - `(#:configure-flags '("-Dlogind=3Denabled"))) - (native-inputs - (list pkg-config scdoc)) - (propagated-inputs - (list elogind)) - (home-page "https://sr.ht/~kennylevinsen/seatd") - (synopsis "Seat management daemon and library") - (description - "This package provides a minimal seat management daemon whose task is= to -mediate access to shared devices, such as graphics and input, for applicat= ions -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 packagekit (package (name "packagekit") --=20 2.36.1 From debbugs-submit-bounces@debbugs.gnu.org Fri Jun 03 06:51:39 2022 Received: (at 49969) by debbugs.gnu.org; 3 Jun 2022 10:51:39 +0000 Received: from localhost ([127.0.0.1]:55376 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nx4u3-0002xm-6S for submit@debbugs.gnu.org; Fri, 03 Jun 2022 06:51:39 -0400 Received: from [192.151.158.155] (port=48930 helo=mail.boiledscript.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nx4NN-0001uJ-M3 for 49969@debbugs.gnu.org; Fri, 03 Jun 2022 06:17:55 -0400 Received: from localhost (unknown [192.168.203.1]) by mail.boiledscript.com (Postfix) with ESMTP id 4F384300A0B for <49969@debbugs.gnu.org>; Fri, 3 Jun 2022 10:17:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ultrarare.space; s=dkim; t=1654251468; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=PRSXOce/KWZjd7RImPKoiHLofiTC6TX4PcTfHRvZGl8=; b=pxH6xgEQ1PlT2LF7pgkoLu5k7WQdjTUYQ3isDZV7Nirbaxq/UpCgaDjiY6bbryg/TFlfhg nX7JzNXgN0Jp055jQK8/mLxezGXPV5C16h4+hjmrcFClgnjcGZq0jgJzRCm5MZw0hq5Mta rK+o0YfU4CFORbPU5oBnaFY5zxrWdD2b96KJC08GaiFnj3+vOq9sAAzGWgNZvQkDkCP96l Woy4x47UCSI1OufaTPGGXovOFZU72yJJRLcNJqLxw4MudbNmESBeROUFjy1kUXtvcMbiaw mtVQFaH/Kkrd4d785d7DFV9EFrqbdNrl4pJIPlMJrsuufBqmOqAbBFxc/qSO/w== Date: Fri, 3 Jun 2022 18:17:35 +0800 From: Hilton Chain To: 49969@debbugs.gnu.org Subject: [PATCH v9 6/7] gnu: desktop: Add seatd-service-type. Message-ID: <20220603181735.4ceb2425@ultrarare.space> In-Reply-To: <20220603181644.4dd65bf3@ultrarare.space> References: <20220603180923.0caf6958@ultrarare.space> <20220603181031.1ac07de0@ultrarare.space> <20220603181143.5bef4199@ultrarare.space> <20220603181411.0a9ec225@ultrarare.space> <20220603181541.26a4c4f5@ultrarare.space> <20220603181644.4dd65bf3@ultrarare.space> X-Mailer: Claws Mail 4.0.0 (GTK+ 3.24.30; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Authentication-Results: mail.boiledscript.com; none X-Spamd-Bar: / X-Spam-Score: 3.4 (+++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: * gnu/services/desktop.scm (seatd-service-type): New variable * gnu/services/desktop.scm (seatd-configuration): New data type Signed-off-by: Hilton Chain --- doc/guix.texi | 42 ++++++++++++++++++++++++++++ gnu/services/desktop.scm | 59 +++++++++++++++++++++++++++++++++++++++- 2 files changed, 100 inser [...] Content analysis details: (3.4 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 1.6 PDS_OTHER_BAD_TLD Untrustworthy TLDs [URI: ultrarare.space (space)] 1.3 RDNS_NONE Delivered to internal network by a host with no rDNS 0.5 FROM_SUSPICIOUS_NTLD From abused NTLD -0.0 T_SCC_BODY_TEXT_LINE No description available. X-Debbugs-Envelope-To: 49969 X-Mailman-Approved-At: Fri, 03 Jun 2022 06:51:29 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 2.4 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: * gnu/services/desktop.scm (seatd-service-type): New variable * gnu/services/desktop.scm (seatd-configuration): New data type Signed-off-by: Hilton Chain --- doc/guix.texi | 42 ++++++++++++++++++++++++++++ gnu/services/desktop.scm | 59 +++++++++++++++++++++++++++++++++++++++- 2 files changed, 100 inser [...] Content analysis details: (2.4 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 1.6 PDS_OTHER_BAD_TLD Untrustworthy TLDs [URI: ultrarare.space (space)] 1.3 RDNS_NONE Delivered to internal network by a host with no rDNS 0.5 FROM_SUSPICIOUS_NTLD From abused NTLD -0.0 T_SCC_BODY_TEXT_LINE No description available. -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager * gnu/services/desktop.scm (seatd-service-type): New variable * gnu/services/desktop.scm (seatd-configuration): New data type Signed-off-by: Hilton Chain --- doc/guix.texi | 42 ++++++++++++++++++++++++++++ gnu/services/desktop.scm | 59 +++++++++++++++++++++++++++++++++++++++- 2 files changed, 100 insertions(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index 825c7d93c577..3f8e61a2b16e 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -22656,6 +22656,48 @@ Desktop Services @end table @end deftp =20 +@defvr {Scheme Variable} seatd-service-type +@uref{https://sr.ht/~kennylevinsen/seatd/, seatd} is a minimal seat +management daemon. + +Seat management takes care of mediating access to shared devices (graphics, +input), without requiring the applications needing access to be root. + +@lisp +(append + (list + ;; make sure seatd is running + (service seatd-service-type)) + + ;; normally one would want %base-services + %base-services) + +@end lisp +@end defvr + +@deftp {Data Type} seatd-configuration +Configuration record for the seatd daemon service. + +@table @asis +@item @code{seatd} (default: @code{seatd}) +The seatd package to use. + +@item @code{user} (default: @samp{"root"}) +User to own the seatd socket. + +@item @code{group} (default: @samp{"users"}) +Group to own the seatd socket. + +@item @code{socket} (default: @samp{"/run/seatd.sock"}) +Where to create the seatd socket. + +@item @code{loglevel} (default: @samp{"error"}) +Log level to output logs. Possible values: @samp{"silent"}, @samp{"error"}, +@samp{"info"} and @samp{"debug"}. + +@end table +@end deftp + @node Sound Services @subsection Sound Services =20 diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index 0499071436af..1ba91002e444 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -13,6 +13,7 @@ ;;; Copyright =C2=A9 2020 Tobias Geerinckx-Rice ;;; Copyright =C2=A9 2020 Reza Alizadeh Majd ;;; Copyright =C2=A9 2021 Brice Waegeneire +;;; Copyright =C2=A9 2021 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -39,7 +40,9 @@ (define-module (gnu services desktop) #:use-module (gnu services networking) #:use-module (gnu services sound) #:use-module ((gnu system file-systems) - #:select (%elogind-file-systems file-system)) + #:select (%control-groups + %elogind-file-systems + file-system)) #:autoload (gnu services sddm) (sddm-service-type) #:use-module (gnu system) #:use-module (gnu system setuid) @@ -157,6 +160,9 @@ (define-module (gnu services desktop) gnome-keyring-configuration? gnome-keyring-service-type =20 + seatd-configuration + seatd-service-type + %desktop-services)) =20 ;;; Commentary: @@ -1630,6 +1636,57 @@ (define polkit-wheel (define polkit-wheel-service (simple-service 'polkit-wheel polkit-service-type (list polkit-wheel))) =20 +=0C +;;; +;;; seatd-service-type -- minimal seat management daemon +;;; + +(define-record-type* seatd-configuration + make-seatd-configuration + seatd-configuration? + (seatd seatd-package (default seatd)) + (user seatd-user (default "root")) + (group seatd-group (default "users")) + (socket seatd-socket (default "/run/seatd.sock")) + (loglevel seatd-loglevel (default "error"))) + +(define (seatd-shepherd-service config) + (list (shepherd-service + (documentation "Minimal seat management daemon") + (requirement '()) + ;; TODO: once cgroups is separate dependency + ;; here we should depend on it rather than elogind + (provision '(seatd elogind)) + (start #~(make-forkexec-constructor + (list #$(file-append (seatd-package config) "/bin/seatd= ") + "-u" #$(seatd-user config) + "-g" #$(seatd-group config)) + #:environment-variables + (list (string-append "SEATD_LOGLEVEL=3D" + #$(seatd-loglevel config))) + #:log-file "/tmp/seatd.log")) + (stop #~(make-kill-destructor))))) + +(define seatd-environment + (match-lambda + (($ _ _ _ socket) + `(("SEATD_SOCK" . ,socket))))) + +(define seatd-service-type + (service-type + (name 'seatd) + (description "Seat management takes care of mediating access +to shared devices (graphics, input), without requiring the +applications needing access to be root.") + (extensions + (list + (service-extension session-environment-service-type seatd-environment) + ;; TODO: once cgroups is separate dependency we should not mount it h= ere + ;; for now it is mounted here, because elogind mounts it + (service-extension file-system-service-type (const %control-groups)) + (service-extension shepherd-root-service-type seatd-shepherd-service)= )) + (default-value (seatd-configuration)))) + =0C ;;; ;;; The default set of desktop services. --=20 2.36.1 From debbugs-submit-bounces@debbugs.gnu.org Fri Jun 03 06:51:40 2022 Received: (at 49969) by debbugs.gnu.org; 3 Jun 2022 10:51:40 +0000 Received: from localhost ([127.0.0.1]:55378 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nx4u3-0002xt-O8 for submit@debbugs.gnu.org; Fri, 03 Jun 2022 06:51:40 -0400 Received: from [192.151.158.155] (port=49052 helo=mail.boiledscript.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nx4O7-0001vc-BP for 49969@debbugs.gnu.org; Fri, 03 Jun 2022 06:18:39 -0400 Received: from localhost (unknown [192.168.203.1]) by mail.boiledscript.com (Postfix) with ESMTP id A5A0D300A0B for <49969@debbugs.gnu.org>; Fri, 3 Jun 2022 10:18:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ultrarare.space; s=dkim; t=1654251513; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Zb5Mb44EiyZMox+PnjBBx67Q4ApBFm7RQ8MXKJg/xn4=; b=LIdZMf6G+Ymr05hs67+/WnWXyor//AkD8d9oHIyhajFTpDip+eZDMnpvrjQwMwqV1/M/E2 GPUwOHsaFgjaqKRoIfIJWEITLXMZ1sKDa6roRHUxDM7d+/njJ3uaSCh0BiltrNh3vwxBG6 1OTB3ZQo4c5gVgdhQZMUOsOYORa/YjNm5raqEpWXUlgHN6JXGJYJKFwGeDKzsGM7aui4+4 LNdioPXrQdB/lJxjcxICUkxSo5Yo4uYvIKdbejg6J3vvq/sRGluh92n/uKo5O7OrnAeOJp 8KAtU7fLuvwEWNyxX/jU9z1ob0TdezV17aktxfzML68ZD2pLDtS+Dt0kNgZBpw== Date: Fri, 3 Jun 2022 18:18:21 +0800 From: Hilton Chain To: 49969@debbugs.gnu.org Subject: [PATCH v9 7/7] gnu: tests: Add seatd/greetd based minimal desktop system tests. Message-ID: <20220603181821.112028c2@ultrarare.space> In-Reply-To: <20220603181735.4ceb2425@ultrarare.space> References: <20220603180923.0caf6958@ultrarare.space> <20220603181031.1ac07de0@ultrarare.space> <20220603181143.5bef4199@ultrarare.space> <20220603181411.0a9ec225@ultrarare.space> <20220603181541.26a4c4f5@ultrarare.space> <20220603181644.4dd65bf3@ultrarare.space> <20220603181735.4ceb2425@ultrarare.space> X-Mailer: Claws Mail 4.0.0 (GTK+ 3.24.30; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Authentication-Results: mail.boiledscript.com; none X-Spamd-Bar: / X-Spam-Score: 3.4 (+++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: * gnu/tests/desktop.scm (minimal-desktop): seatd/greetd based minimal desktop test Signed-off-by: Hilton Chain --- gnu/tests/desktop.scm | 212 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 211 insertions(+), 1 deletion(-) Content analysis details: (3.4 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 1.6 PDS_OTHER_BAD_TLD Untrustworthy TLDs [URI: ultrarare.space (space)] 1.3 RDNS_NONE Delivered to internal network by a host with no rDNS 0.5 FROM_SUSPICIOUS_NTLD From abused NTLD -0.0 T_SCC_BODY_TEXT_LINE No description available. X-Debbugs-Envelope-To: 49969 X-Mailman-Approved-At: Fri, 03 Jun 2022 06:51:29 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 2.4 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: * gnu/tests/desktop.scm (minimal-desktop): seatd/greetd based minimal desktop test Signed-off-by: Hilton Chain --- gnu/tests/desktop.scm | 212 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 211 insertions(+), 1 deletion(-) Content analysis details: (2.4 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 1.6 PDS_OTHER_BAD_TLD Untrustworthy TLDs [URI: ultrarare.space (space)] 1.3 RDNS_NONE Delivered to internal network by a host with no rDNS 0.5 FROM_SUSPICIOUS_NTLD From abused NTLD -0.0 T_SCC_BODY_TEXT_LINE No description available. -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager * gnu/tests/desktop.scm (minimal-desktop): seatd/greetd based minimal desktop test Signed-off-by: Hilton Chain --- gnu/tests/desktop.scm | 212 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 211 insertions(+), 1 deletion(-) diff --git a/gnu/tests/desktop.scm b/gnu/tests/desktop.scm index 57069c0edee5..7cc837f42e72 100644 --- a/gnu/tests/desktop.scm +++ b/gnu/tests/desktop.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright =C2=A9 2017, 2021 Ludovic Court=C3=A8s +;;; Copyright =C2=A9 2021 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -18,13 +19,17 @@ =20 (define-module (gnu tests desktop) #:use-module (gnu tests) + #:use-module (gnu packages shells) #:use-module (gnu services) + #:use-module (gnu services base) #:use-module (gnu services dbus) #:use-module (gnu services desktop) + #:use-module (gnu system) #:use-module (gnu system vm) #:use-module (guix gexp) #:use-module (srfi srfi-1) - #:export (%test-elogind)) + #:export (%test-elogind + %test-minimal-desktop)) =20 =0C ;;; @@ -100,3 +105,208 @@ (define %test-elogind #:imported-modules '((gnu services herd) (guix combinators))))) (run-elogind-test (virtual-machine os)))))) + +=0C +;;; +;;; Seatd/greetd based minimal desktop +;;; + +(define %minimal-services + (append + (modify-services %base-services + ;; greetd-service-type provides "greetd" PAM service + (delete login-service-type) + ;; and can be used in place of mingetty-service-type + (delete mingetty-service-type)) + (list + (service seatd-service-type) + (service greetd-service-type + (greetd-configuration + (terminals + (list + ;; we can make any terminal active by default + (greetd-terminal-configuration (terminal-vt "1") (terminal= -switch #t)) + ;; we can make environment without XDG_RUNTIME_DIR set + ;; even provide our own environment variables + (greetd-terminal-configuration + (terminal-vt "2") + (default-session-command + (greetd-agreety-session + (extra-env '(("MY_VAR" . "1"))) + (xdg-env? #f)))) + ;; we can use different shell instead of default bash + (greetd-terminal-configuration + (terminal-vt "3") + (default-session-command + (greetd-agreety-session (command (file-append zsh "/bin= /zsh"))))) + ;; we can use any other executable command as greeter + (greetd-terminal-configuration + (terminal-vt "4") + (default-session-command (program-file "my-noop-greeter" = #~(exit)))) + (greetd-terminal-configuration (terminal-vt "5")) + (greetd-terminal-configuration (terminal-vt "6")))))) + ;; mingetty-service-type can be used in parallel + ;; if needed to do so, do not (delete login-service-type) + ;; as illustrated above + #| (service mingetty-service-type (mingetty-configuration (tty "tty8")= )) |#))) + +(define-syntax-rule (minimal-operating-system user-services ...) + "Return an operating system that includes USER-SERVICES in addition to +minimal %BASE-SERVICES." + (operating-system (inherit %simple-os) + (services (cons* user-services ... %minimal-services))= )) + +(define (run-minimal-desktop-test os vm) + (define test + (with-imported-modules '((gnu build marionette) + (guix build syscalls)) + #~(begin + (use-modules (gnu build marionette) + (guix build syscalls) + (srfi srfi-1) + (srfi srfi-64) + (ice-9 pretty-print)) + + (define marionette + (make-marionette #$vm)) + + (define (file-get-all-strings fname) + (marionette-eval '(use-modules (rnrs io ports)) marionette) + (wait-for-file fname marionette #:read 'get-string-all)) + + (define (wait-for-unix-socket-m socket) + (wait-for-unix-socket socket marionette)) + + (mkdir #$output) + (chdir #$output) + + (test-begin "minimal-desktop") + + (test-assert "seatd is ready" + (wait-for-unix-socket-m "/run/seatd.sock")) + + (test-equal "login user on tty1" + "alice\n" + (begin + ;; Wait for tty1. + (marionette-eval + '(begin + (use-modules (gnu services herd)) + (start-service 'term-tty1)) + marionette) + (marionette-control "sendkey ctrl-alt-f1" marionette) + + ;; login as root change alice password and exit + ;; then login as alice + (for-each + (lambda (cmd) (marionette-type cmd marionette) (sleep 1)) + (list + "root\n" + "passwd alice\n" + "alice\n" + "alice\n" + "exit\n" + "alice\n" + "alice\n" + "id -un > logged-in\n")) + + (file-get-all-strings "/home/alice/logged-in"))) + + (test-equal "validate user environment" + '("SEATD_SOCK=3D/run/seatd.sock" + "XDG_RUNTIME_DIR=3D/run/user/1000" + "XDG_SEAT=3Dseat0" + "XDG_VTNR=3D1") + + (begin + (marionette-type "env > env\n" marionette) + (sleep 1) + + (define user-env (string-tokenize + (file-get-all-strings "/home/alice/env"))) + + (define (expected-var var) + (any (lambda (s) (string-contains var s)) + '("SEATD_SOCK" + "XDG_RUNTIME_DIR" + "XDG_SEAT" + "XDG_VTNR"))) + + (sort (filter expected-var user-env) string env\n" marionette) + (sleep 1) + + (define (sock-var? var) + (any (lambda (s) (string-contains var s)) + '("SEATD_SOCK" "GREETD_SOCK"))) + + (define (sock-var-sock var) + (car (cdr (string-split var #\=3D)))) + + (let* + ((out (file-get-all-strings "/home/alice/env")) + (out (string-tokenize out)) + (out (filter sock-var? out)) + (socks (map sock-var-sock out)) + (socks (map wait-for-unix-socket-m socks))) + (and (=3D 2 (length socks)) (every identity socks))))) + + (test-assert "greetd is ready" + (begin + (marionette-type "ps -C greetd -o pid,args --no-headers > ps= -greetd\n" + marionette) + (sleep 1) + + (define (greetd-daemon? cmd) + (string-contains cmd "config")) + + (define (greetd-cmd-to-pid cmd) + (car (string-split cmd #\space))) + + (define (greetd-pid-to-sock pid) + (string-append "/run/greetd-" pid ".sock")) + + (let* ((out (file-get-all-strings "/home/alice/ps-greetd")) + (out (string-split out #\newline)) + (out (map string-trim-both out)) + (out (filter greetd-daemon? out)) + (pids (map greetd-cmd-to-pid out)) + (socks (map greetd-pid-to-sock pids)) + (socks (map wait-for-unix-socket-m socks))) + (every identity socks)))) + + ;; a bit weak, but tests everything at once actually + (test-equal "check /run/user/ mounted and writable" + "alice\n" + (begin + (marionette-type "echo alice > /run/user/1000/test\n" marion= ette) + (file-get-all-strings "/run/user/1000/test"))) + + (test-assert "screendump" + (begin + (marionette-control (string-append "screendump " #$output + "/tty1.ppm") + marionette) + (file-exists? "tty1.ppm"))) + + (test-end) + (exit (=3D (test-runner-fail-count (test-runner-current)) 0))))) + + (gexp->derivation "minimal-desktop" test)) + +(define %test-minimal-desktop + (system-test + (name "minimal-desktop") + (description + "Test whether we can log in when seatd and greetd is enabled") + (value + (let* ((os (marionette-operating-system + (minimal-operating-system) + #:imported-modules '((gnu services herd) + (guix combinators)))) + (vm (virtual-machine os))) + (run-minimal-desktop-test (virtualized-operating-system os '()) + #~(list #$vm)))))) --=20 2.36.1 From debbugs-submit-bounces@debbugs.gnu.org Tue Jun 07 05:44:29 2022 Received: (at 49969) by debbugs.gnu.org; 7 Jun 2022 09:44:29 +0000 Received: from localhost ([127.0.0.1]:37754 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nyVlF-0000MY-5D for submit@debbugs.gnu.org; Tue, 07 Jun 2022 05:44:29 -0400 Received: from mout-p-102.mailbox.org ([80.241.56.152]:43928) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nyVlC-0000MI-Fo for 49969@debbugs.gnu.org; Tue, 07 Jun 2022 05:44:27 -0400 Received: from smtp2.mailbox.org (smtp2.mailbox.org [IPv6:2001:67c:2050:b231:465::2]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-384) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-102.mailbox.org (Postfix) with ESMTPS id 4LHQRk21f8z9syG; Tue, 7 Jun 2022 11:44:18 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=6xq.net; s=MBO0001; t=1654595058; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to; bh=AxdsSqZrXnzFvniXGKPgp8ddO0q/7o/gmV7E+Oxf6J0=; b=gn7xC0UWWNaQoQI92I36dToG/ZT+8P5Zdpph5H80auqYSrExspkZ3U7LiL+FZ1ZHWBR58F XPhTPFBDyoYxY63FkkgDYjZHc4GSff7w1tD77Xkdga05iGlEHl1Dm0pPg6jDAzDfU1uydc SSooK4UClqnYH0yyrkMyD468cehXZyvMkI7bz9uTDeJvdqrOmS/ihq/oaEVyjmD+aKxA7Q lNf0VCKOz4vNfpB4J4Cq0y8ySc1PL109r/jRA9bH7YHJDM6NslpN+f1A4ruW39xZSnyVOb WcsyYUNX7TxpJ2jZxHDAWKTruElvOByFSLljBoVwqny9x0WAKzhG3jPfxNrvMw== Date: Tue, 7 Jun 2022 11:44:15 +0200 From: Lars-Dominik Braun To: Hilton Chain Subject: Re: [bug#49969] [PATCH v9 4/7] gnu: base: Add greetd-service-type. Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20220603181735.4ceb2425@ultrarare.space> <20220603181644.4dd65bf3@ultrarare.space> <20220603181541.26a4c4f5@ultrarare.space> X-Rspamd-Queue-Id: 4LHQRk21f8z9syG X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49969 Cc: 49969@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Hi, overall this works quite well for me, thanks! A few comments: > + #:log-file > + (string-append "/tmp/greetd." #$greetd-vt ".log"))) Why log to /tmp and not /var/log here? > + #:log-file "/tmp/seatd.log")) Same. > * gnu/packages/admin.scm (libseat): New variable > * gnu/packages/admin.scm (seatd): New variable > * gnu/packages/freedesktop.scm (seatd): Remove variable (gnu packages wm) references seatd, but does not use (gnu packages admin), thus `guix pull` fails. Cheers, Lars From debbugs-submit-bounces@debbugs.gnu.org Mon Jun 13 04:46:10 2022 Received: (at 49969) by debbugs.gnu.org; 13 Jun 2022 08:46:10 +0000 Received: from localhost ([127.0.0.1]:57223 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o0fi5-0004jQ-W4 for submit@debbugs.gnu.org; Mon, 13 Jun 2022 04:46:10 -0400 Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:43508 helo=nomad-cl1.muradm.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o0fi2-0004it-0t for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 04:46:08 -0400 Received: from localhost ([127.0.0.1]:35032) by nomad-cl1.muradm.net with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1o0ffs-0003ee-Ld for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 08:43:52 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; s=mail; h=Content-Transfer-Encoding:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Sender:Reply-To:Cc:Content-Type:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=B1znATd7QgoolLldeNMwc8L4yD787YLi1F8aUYVeojs=; b=iPgY3bEjN9FHuOSy2gcpLyIfqd ztb4jxBhdFHTmx9lK+UTB7Z5dLp55c/wsqFVlHiWeSAVabJ5JnFIcuQJsId6GgSVXSoY1GWj+AQx4 RPUKPi4ZwOguL+qgfEL+xNLlOg0yARgYtyEelPXlm3ln7sCY48ARWxSusqjuCB70b9psBBQTJN+lJ mEfRePGpopSyzbmdkT5A0ux02JR4g8802D8qVczHVh1/9kMXrHTt/MBhOEm9Vv4WB8E0PT9F+XWD0 4MWDr1AZ7XX9HfMDYY9EpbhmuFu03D0jHFtz+4EATVGFdVhf8gsVwRLaIVClR7vQTwsTgET5ZKX5i gn8IOF+LDuU/nWU8TQ6ynsqAi3TxUyrUQGllTz5mBOm13CjV30lCYj1WSASlIwbFSMkVQC/0HwzTZ BzoLki7yD0+ok7sJPfh7pe+dR8JbSIZGDOU/kMq4gbChR797HTbTUrS7ZPxP9/JOicB+8y9pDoxzn zMSFmCzR0AN7nYEnGQrPhA71; Received: from muradm by localhost with local (Exim 4.95) (envelope-from ) id 1o0fi0-0000ft-4a for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 11:46:04 +0300 From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v10 0/7] Re: [bug#49969] [PATCH v9 4/7] gnu: base: Add greetd-service-type. Date: Mon, 13 Jun 2022 11:45:57 +0300 Message-Id: <20220613084604.2575-1-mail@muradm.net> X-Mailer: git-send-email 2.36.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hi, Updating patch set with: * dependency versions * log files are now pointing to /var/log/* * wlroots should depend on libseat from new location * some minor formatting and fixes compared to v9 muradm (7): gnu: crates-io: Add rust-enquote 1.1.0 and rust-pam-sys 0.5.6. gnu: admin: Add greetd 0.8.0. gnu: admin: Add greetd-pam-mount. gnu: base: Add greetd-service-type. gnu: admin: Add libseat 0.8.0 and move seatd. gnu: desktop: Add seatd-service-type. gnu: tests: Add seatd/greetd based minimal desktop system tests. doc/guix.texi | 183 ++++++++++++++++++++++++++++ gnu/packages/admin.scm | 162 +++++++++++++++++++++++++ gnu/packages/crates-io.scm | 40 +++++++ gnu/packages/freedesktop.scm | 29 ----- gnu/packages/wm.scm | 4 +- gnu/services/base.scm | 223 ++++++++++++++++++++++++++++++++++- gnu/services/desktop.scm | 62 +++++++++- gnu/services/pam-mount.scm | 2 +- gnu/tests/desktop.scm | 212 ++++++++++++++++++++++++++++++++- 9 files changed, 883 insertions(+), 34 deletions(-) -- 2.36.1 From debbugs-submit-bounces@debbugs.gnu.org Mon Jun 13 04:46:10 2022 Received: (at 49969) by debbugs.gnu.org; 13 Jun 2022 08:46:10 +0000 Received: from localhost ([127.0.0.1]:57225 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o0fi6-0004jS-6f for submit@debbugs.gnu.org; Mon, 13 Jun 2022 04:46:10 -0400 Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:43516 helo=nomad-cl1.muradm.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o0fi4-0004j0-Qc for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 04:46:09 -0400 Received: from localhost ([127.0.0.1]:35038) by nomad-cl1.muradm.net with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1o0ffv-0003en-Qg for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 08:43:55 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; s=mail; h=Content-Transfer-Encoding:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Sender:Reply-To:Cc:Content-Type:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=QJcCzGQEbK7Hay3t/cLTMcCKQeBOaopP00hsM6LgYUE=; b=ktpRXa26E8ayj9bbKXfns4R2oJ OsQOM4AUno+KuNeP5pvXI6iq1+QPKLK94gJI7XWZaG/4FVMXXMsGLmHGe06sCVWfUH/m/Nq/KLkHo DyDzQw+qWxne9YwEc2IvjNJLkhnBg4IBA7KGVpFtKXZuoiGrKFKk183qsHeAEbYOwnAyqorElBrxW fsYJfti4Ocj28ss5JsG//gYMgcbiEaIQdfJ2O/Bj1DMEcuUaTv9XPMOjK/qNUYAu3BB+WsEJWD2db Bib4arC8FQixpoGc+MnlH/xnH1kEa6LIv1u0RHlmjUR/Bey58vP5GGAVcYaCRdm8EEiopEBzqTN8g BtYR5yd2LMU5RjmyTEOsR6TCt1SQogAwa50UdDXX+3MUNhI1oWEHuHExKIVW981b/UMDRIlwJfnc2 9lIdX9E+v3cviSqtPXUyVchyXmqoIl0+O+TXEW2IBpxoM9K+r7r/QkzBB532Ux9iKENqZj05JZD7e RE/0YZSagHedBxnTVAilxOgm; Received: from muradm by localhost with local (Exim 4.95) (envelope-from ) id 1o0fi3-0000g2-Am for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 11:46:07 +0300 From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v10 3/7] gnu: admin: Add greetd-pam-mount. Date: Mon, 13 Jun 2022 11:46:00 +0300 Message-Id: <20220613084604.2575-4-mail@muradm.net> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220613084604.2575-1-mail@muradm.net> References: <20220613084604.2575-1-mail@muradm.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/admin.scm (greetd-pam-mount): New variable --- gnu/packages/admin.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 73d70744e1..d6e1d819ab 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -5065,3 +5065,35 @@ (define (scdoc-cmd doc lvl) If it can be taught to speak a simple JSON-based IPC protocol, then it can be a greeter.") (license license:gpl3+))) + +(define-public greetd-pam-mount + (package + (inherit pam-mount) + (name "greetd-pam-mount") + (arguments + (substitute-keyword-arguments (package-arguments pam-mount) + ((#:configure-flags flags ''()) + #~(cons* "--with-rundir=/run/greetd" #$flags)) + ((#:phases phases) + #~(modify-phases #$phases + (add-after 'unpack 'patch-config-file-name + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/pam_mount.c" + ((".*define CONFIGFILE .*$") + "#define CONFIGFILE \"/etc/security/greetd_pam_mount.conf.xml\"\n") + (("pam_mount_config") "greetd_pam_mount_config") + (("pam_mount_system_authtok") "greetd_pam_mount_system_authtok")))))))) + (synopsis "pam-mount specifically compiled for use with greetd") + (description + "Pam-mount is a PAM module that can mount volumes when a user logs in. +It supports mounting local filesystems of any kind the normal mount utility +supports. It can also mount encrypted LUKS volumes using the password +supplied by the user when logging in. + +This package inherits pam-mount in the way that it is compiled specifically +for use with greetd daemon. It uses different configuration location and +name space for storing data in PAM. + +greetd-pam-mount is used in configuration of greetd to provide +auto-(mounting/unmounting) of XDG_RUNTIME_DIR in the way that it will not +interfere with default pam-mount configuration."))) -- 2.36.1 From debbugs-submit-bounces@debbugs.gnu.org Mon Jun 13 04:46:21 2022 Received: (at 49969) by debbugs.gnu.org; 13 Jun 2022 08:46:21 +0000 Received: from localhost ([127.0.0.1]:57235 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o0fiD-0004kF-MY for submit@debbugs.gnu.org; Mon, 13 Jun 2022 04:46:21 -0400 Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:43512 helo=nomad-cl1.muradm.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o0fi2-0004iw-Oc for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 04:46:09 -0400 Received: from localhost ([127.0.0.1]:35034) by nomad-cl1.muradm.net with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1o0fft-0003eh-QD for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 08:43:53 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; s=mail; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:To:From:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=V+rK1wsJVIhhBKOHxw+BWDfP7w+MZ56iotq766UvSP0=; b=piGFtEfnuaTulMSM2sQ4cVvYSb DfSUDyDkj05sbUHtXdMZLpOFiTxvMWTHNjK1HIKE0HC4/qH8lfqE0X3OISotwhE9jjJYTlCcsH4+P 20yDySW2mnN8KL5OC8ECefgVt63iwxNHWco+Jxt7kaToQs42A9CbUqyfVocKZMBcMJozGVUVEnNtU b1nKUi/NkkSoWMDLf1sB/4WwY8ycZmoNigADx35w4tfg74TJxFmFRdn7SjiGGyaU5U2Xn08/cJIZk GkJfwjghBSyzOM47+i6x7YzJaNtPc/tJs+FRWDDorIa5ibuVOdQNhP/jXiO9hy39U4Rn9ZV83YIMV rypagBIPnsUT8/X2GWk8r8kKHhOVIQBL9sz4dsbUHwIYbDzOib2P6dkM2CnNih5LI6FalPVqrEwtF Z3uH8IMFyUnSKmysWufA+OrTT8Cjdrb3oj10PNgHKKczUci5UKe8jRK9tEFsJAXpxSH8jvMnYJyH6 U9nW2zdsl0vTyb0hTxRcwfQl; Received: from muradm by localhost with local (Exim 4.95) (envelope-from ) id 1o0fi1-0000fw-9I for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 11:46:05 +0300 From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v10 1/7] gnu: crates-io: Add rust-enquote 1.1.0 and rust-pam-sys 0.5.6. Date: Mon, 13 Jun 2022 11:45:58 +0300 Message-Id: <20220613084604.2575-2-mail@muradm.net> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220613084604.2575-1-mail@muradm.net> References: <20220613084604.2575-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/crates-io.scm (rust-enquote-1): New variable * gnu/packages/crates-io.scm (rust-pam-sys-0.5): New variable --- gnu/packages/crates-io.scm | 40 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 86313f5e4f..9374601bb4 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -19,6 +19,7 @@ ;;; Copyright © 2021 Antero Mejr ;;; Copyright © 2021 Maxim Cournoyer ;;; Copyright © 2021 Vinicius Monego +;;; Copyright © 2021 muradm ;;; Copyright © 2021, 2022 Petr Hodina ;;; Copyright © 2021, 2022 Ricardo Wurmus ;;; Copyright © 2021 Jacob Hrbek @@ -73053,3 +73054,42 @@ (define-public rust-shell2batch-0.4 and automatically convert it to a windows batch file, this library provides a way to convert simple shell commands to windows batch commands.") (license license:asl2.0))) + +(define-public rust-enquote-1 + (package + (name "rust-enquote") + (version "1.1.0") + (home-page "https://github.com/reujab/enquote") + (source (origin + (method url-fetch) + (uri (crate-uri "enquote" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0clrjghlfkkb7sndabs5wch0fz2nif6nj4b117s8kqxx3nqnrhq6")))) + (build-system cargo-build-system) + (synopsis "Rust library that quotes, unquotes, and unescapes strings") + (description "A Rust library quotes, unquotes, and unescapes strings") + (license license:unlicense))) + +(define-public rust-pam-sys-0.5 + (package + (name "rust-pam-sys") + (version "0.5.6") + (home-page "https://github.com/1wilkens/pam-sys") + (source (origin + (method url-fetch) + (uri (crate-uri "pam-sys" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0d14501d5vybjnzxfjf96321xa5wa36x1xvf02h02zq938qmhj6d")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs (("rust-libc" ,rust-libc-0.2)))) + (native-inputs `(("linux-pam" ,linux-pam))) + (synopsis + "Rust FFI wrappers for the Linux Pluggable Authentication Modules (PAM)") + (description + "Rust FFI wrappers for the Linux Pluggable Authentication Modules (PAM)") + (license (list license:expat license:asl2.0)))) -- 2.36.1 From debbugs-submit-bounces@debbugs.gnu.org Mon Jun 13 04:46:21 2022 Received: (at 49969) by debbugs.gnu.org; 13 Jun 2022 08:46:21 +0000 Received: from localhost ([127.0.0.1]:57237 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o0fiH-0004kL-37 for submit@debbugs.gnu.org; Mon, 13 Jun 2022 04:46:21 -0400 Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:43514 helo=nomad-cl1.muradm.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o0fi3-0004iy-PW for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 04:46:09 -0400 Received: from localhost ([127.0.0.1]:35036) by nomad-cl1.muradm.net with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1o0ffu-0003ek-Ps for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 08:43:54 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; s=mail; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:To:From:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=RozKN4irD+c6HlJfAmqLSZkvFzhfWCbNGOZYmXWR0n0=; b=DVzlRuWJbcFtYfYn2WWwbIHgwY 2CvTsEqyjWiCzb+SQOwVzCbme8YX/GwQMCYkLnYVTTcDu3JipLUbbyy8/NzjNKc/H5LQByBssU1Vt hLb3fZ+Wlh/Hh8PYUf4A6XjP0EAC2xvrpRAM6W3XJzfVQq5nSy2w+zoYgwesIcL+1dujrZwxW2asZ hoxHkndGjLvYlQF2y1Gi/lWl726jasO67mt7cFYGwI1TCrFb3i/E0rqQfEEuKZ1bD1WrR+i434QMw lVjYuNSbB5Niz1h2dvCxWgPEOKUkNOeECRkim2XnfA+yVlT6b1BPYKXMFQjX/GmVV4C0H9OQrS8b5 6r8XbIyKg0XxwzY+kHyxJWIVT9GkWF7ukkslqPPmwwzg9pZ/K9JRW60QNm7VGpXLGfKiL5/WcBNoQ uVhiPPQDkprV5FMgxDCOe5QloDUQPNER/Fucf6ry6IImMlKDLWsbwi4d0phioqR+pTfsygJZDAKVM mZ1FCcn9KwyMdRn0zmGfRjPW; Received: from muradm by localhost with local (Exim 4.95) (envelope-from ) id 1o0fi2-0000fz-AQ for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 11:46:06 +0300 From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v10 2/7] gnu: admin: Add greetd 0.8.0. Date: Mon, 13 Jun 2022 11:45:59 +0300 Message-Id: <20220613084604.2575-3-mail@muradm.net> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220613084604.2575-1-mail@muradm.net> References: <20220613084604.2575-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/admin.scm (greetd): New variable --- gnu/packages/admin.scm | 77 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 6acfff8881..73d70744e1 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -45,6 +45,7 @@ ;;; Copyright © 2021 Brice Waegeneire ;;; Copyright © 2021 Maxim Cournoyer ;;; Copyright © 2021 Maxime Devos +;;; Copyright © 2021 muradm ;;; Copyright © 2021 Petr Hodina ;;; Copyright © 2021 Artyom V. Poptsov ;;; Copyright © 2022 Wamm K. D. @@ -66,6 +67,7 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu packages admin) + #:use-module (guix build-system cargo) #:use-module (guix build-system cmake) #:use-module (guix build-system emacs) #:use-module (guix build-system glib-or-gtk) @@ -93,6 +95,7 @@ (define-module (gnu packages admin) #:use-module (gnu packages c) #:use-module (gnu packages check) #:use-module (gnu packages compression) + #:use-module (gnu packages crates-io) #:use-module (gnu packages cross-base) #:use-module (gnu packages crypto) #:use-module (gnu packages cryptsetup) @@ -4987,4 +4990,78 @@ (define-public udpcast (home-page "https://www.udpcast.linux.lu") (license license:gpl2+))) +(define-public greetd + (package + (name "greetd") + (version "0.8.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 "0x5c3jkw09kvj2grcxm899y2n6ws8p990cyp9cs0fy6lm4fzlh6v")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-nix" ,rust-nix-0.19) + ("rust-pam-sys" ,rust-pam-sys-0.5) + ("rust-rpassword" ,rust-rpassword-5) + ("rust-users" ,rust-users-0.11) + ("rust-serde" ,rust-serde-1) + ("rust-serde-json" ,rust-serde-json-1) + ("rust-libc" ,rust-libc-0.2) + ("rust-tokio" ,rust-tokio-1) + ("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 + (delete 'package) + (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)))))))) + (native-inputs + `(("linux-pam" ,linux-pam) + ("scdoc" ,scdoc))) + (synopsis "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. +If you can run it from your shell in a TTY, greetd can start it. + +If it can be taught to speak a simple JSON-based IPC protocol, +then it can be a greeter.") + (license license:gpl3+))) -- 2.36.1 From debbugs-submit-bounces@debbugs.gnu.org Mon Jun 13 04:46:25 2022 Received: (at 49969) by debbugs.gnu.org; 13 Jun 2022 08:46:25 +0000 Received: from localhost ([127.0.0.1]:57239 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o0fiH-0004kT-Oz for submit@debbugs.gnu.org; Mon, 13 Jun 2022 04:46:25 -0400 Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:43518 helo=nomad-cl1.muradm.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o0fi6-0004jK-36 for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 04:46:11 -0400 Received: from localhost ([127.0.0.1]:35040) by nomad-cl1.muradm.net with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1o0ffw-0003eq-U5 for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 08:43:57 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; s=mail; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:To:From:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=j2WU1LsszHWe7mflP/Eu6HYcyIxRvEvzFmUrg20g4/w=; b=c1sGUQEYciezdI9HX9/AagiY/z nZJbOmoNiQv1cXnmftR17qF6p1UrPmMtexMbdcYDefdT6tyPpxw40RCK6xt32GsZ3aVJ74yOKIU3m ZrQlptEkmkuNIddOuN3PTzMBPJAyrqGplgTsnsWQqrVDk8NOL110X3w3lk83fhyV2h6DbL5GSKzB9 Y59/PA+rU4Dw5ISmiplO9nlgH1fo+MFshpv7LeqpYgIdzJNhV1HV5oXKxq0ej7CA4TQ0GklvizNzc 0N4PZknWkF01/byOTGhSWk5xK/sKPqd8WXSvXvQ0DteFY8RuUkvLNpoGto2WXx2pT+MdkS9t5/EwQ LZ+MXLNl9BxW/SQW3WKVjKu/Hrit2byx+FKPgSdfbXNFVG4Q3EYNOfJLmRChMIZv22NaKm/1Ctja4 D1mFQRRsUbMvNVYo1Mtq5Wc3fJANgiOVqHXw2i8/CXiKS6/wzZ5y11/pNX5Fi8urDJJVlHIRFuSxh jG2yGrXjRg4kEVKfDQa88c9x; Received: from muradm by localhost with local (Exim 4.95) (envelope-from ) id 1o0fi4-0000g5-C8 for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 11:46:08 +0300 From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v10 4/7] gnu: base: Add greetd-service-type. Date: Mon, 13 Jun 2022 11:46:01 +0300 Message-Id: <20220613084604.2575-5-mail@muradm.net> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220613084604.2575-1-mail@muradm.net> References: <20220613084604.2575-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/services/base.scm (greetd-service-type): New variable * gnu/services/base.scm (greetd-configuration): New data type * gnu/services/base.scm (greetd-terminal-configuration): New data type * gnu/services/base.scm (greetd-agreety-session): New data type * gnu/services/base.scm (pam-limits-service-type): Shoul be aware of greetd PAM service * gnu/services/pam-mount.scm (pam-mount-pam-service): Shoul be aware of greetd PAM service --- doc/guix.texi | 137 +++++++++++++++++++++++ gnu/services/base.scm | 223 ++++++++++++++++++++++++++++++++++++- gnu/services/pam-mount.scm | 2 +- 3 files changed, 360 insertions(+), 2 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index ea133d519a..997b93c831 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -96,6 +96,7 @@ Copyright @copyright{} 2021 Domagoj Stolfa@* Copyright @copyright{} 2021 Hui Lu@* Copyright @copyright{} 2021 pukkamustard@* Copyright @copyright{} 2021 Alice Brenon@* +Copyright @copyright{} 2021 muradm@* Copyright @copyright{} 2021 Josselin Poiret@* Copyright @copyright{} 2021 Andrew Tropin@* Copyright @copyright{} 2021 Sarah Morgensen@* @@ -18019,6 +18020,142 @@ about the Pluggable Authentication Module (PAM) limits, refer to the @samp{pam_limits} man page from the @code{linux-pam} package. @end deffn +@defvr {Scheme Variable} greetd-service-type +@uref{https://git.sr.ht/~kennylevinsen/greetd, @code{greetd}} is a minimal and +flexible login manager daemon, that makes no assumptions about what you +want to launch. + +If you can run it from your shell in a TTY, greetd can start it. If it +can be taught to speak a simple JSON-based IPC protocol, then it can be +a geeter. + +@code{greetd-service-type} provides necessary infrastructure for logging +in users, including: + +@itemize @bullet +@item +@code{greetd} PAM service + +@item +Special variation of @code{pam-mount} to mount @code{XDG_RUNTIME_DIR} +@end itemize + +Here is example of switching from @code{mingetty-service-type} to +@code{greetd-service-type}, and how different terminals could be: + +@lisp + (append + (modify-services %base-services + ;; greetd-service-type provides "greetd" PAM service + (delete login-service-type) + ;; and can be used in place of mingetty-service-type + (delete mingetty-service-type)) + (list + (service greetd-service-type + (greetd-configuration + (terminals + (list + ;; we can make any terminal active by default + (greetd-terminal-configuration (terminal-vt "1") (terminal-switch #t)) + ;; we can make environment without XDG_RUNTIME_DIR set + ;; even provide our own environment variables + (greetd-terminal-configuration + (terminal-vt "2") + (default-session-command + (greetd-agreety-session + (extra-env '(("MY_VAR" . "1"))) + (xdg-env? #f)))) + ;; we can use different shell instead of default bash + (greetd-terminal-configuration + (terminal-vt "3") + (default-session-command + (greetd-agreety-session (command (file-append zsh "/bin/zsh"))))) + ;; we can use any other executable command as greeter + (greetd-terminal-configuration + (terminal-vt "4") + (default-session-command (program-file "my-noop-greeter" #~(exit)))) + (greetd-terminal-configuration (terminal-vt "5")) + (greetd-terminal-configuration (terminal-vt "6")))))) + ;; mingetty-service-type can be used in parallel + ;; if needed to do so, do not (delete login-service-type) + ;; as illustrated above + #| (service mingetty-service-type (mingetty-configuration (tty "tty8"))) |#)) +@end lisp +@end defvr + +@deftp {Data Type} greetd-configuration +Configuration record for the @code{greetd-service-type}. +@table @asis + +@item @code{motd} +A file-like object containing the ``message of the day''. + +@item @code{allow-empty-passwords?} (default: @code{#t}) +Allow empty passwords by default so that first-time users can log in when +the 'root' account has just been created. + +@item @code{terminals} (default: @code{'()}) +List of @code{greetd-terminal-configuration} per terminal for which +@code{greetd} should be started. +@end table +@end deftp + +@deftp {Data Type} greetd-terminal-configuration +Configuration record for per terminal greetd daemon service. + +@table @asis +@item @code{greetd} (default: @code{greetd}) +The greetd package to use. + +@item @code{config-file-name} +Configuration file name to use for greetd daemon. Generally, autogenerated +derivation based on @code{terminal-vt} value. + +@item @code{log-file-name} +Log file name to use for greetd daemon. Generally, autogenerated +name based on @code{terminal-vt} value. + +@item @code{terminal-vt} (default: @samp{"7"}) +The VT to run on. Use of a specific VT with appropriate conflict avoidance +is recommended. + +@item @code{terminal-switch} (default: @code{#f}) +Make this terminal active on start of @code{greetd}. + +@item @code{default-session-user} (default: @samp{"greeter"}) +The user to use for running the greeter. + +@item @code{default-session-command} (default: @code{(greetd-agreety-session)}) +Can be either instance of @code{greetd-agreety-session} configuration or +@code{gexp->script} like object to use as greeter. + +@end table +@end deftp + +@deftp {Data Type} greetd-agreety-session +Configuration record for the agreety greetd greeter. + +@table @asis +@item @code{agreety} (default: @code{greetd}) +The package with @command{/bin/agreety} command. + +@item @code{command} (default: @code{(file-append bash "/bin/bash")}) +Command to be started by @command{/bin/agreety} on successful login. + +@item @code{command-args} (default: @code{'("-l")}) +Command arguments to pass to command. + +@item @code{extra-env} (default: @code{'()}) +Extra environment variables to set on login. + +@item @code{xdg-env?} (default: @code{#t}) +If true @code{XDG_RUNTIME_DIR} and @code{XDG_SESSION_TYPE} will be set +before starting command. One should note that, @code{extra-env} variables +are set right after mentioned variables, so that they can be overriden. + +@end table +@end deftp + @node Scheduled Job Execution @subsection Scheduled Job Execution diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 6865d03f25..0e7bfe7f5a 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -16,6 +16,7 @@ ;;; Copyright © 2021 qblade ;;; Copyright © 2021 Hui Lu ;;; Copyright © 2021, 2022 Maxim Cournoyer +;;; Copyright © 2021 muradm ;;; Copyright © 2022 Guillaume Le Vaillant ;;; ;;; This file is part of GNU Guix. @@ -219,6 +220,11 @@ (define-module (gnu services base) pam-limits-service-type pam-limits-service + greetd-service-type + greetd-configuration + greetd-terminal-configuration + greetd-agreety-session + %base-services)) ;;; Commentary: @@ -1439,7 +1445,7 @@ (define pam-limits-service-type (module "pam_limits.so") (arguments '("conf=/etc/security/limits.conf"))))) (if (member (pam-service-name pam) - '("login" "su" "slim" "gdm-password" "sddm" + '("login" "greetd" "su" "slim" "gdm-password" "sddm" "sudo" "sshd")) (pam-service (inherit pam) @@ -2775,6 +2781,221 @@ (define %qemu-static-networking (provision '(networking)) (name-servers '("10.0.2.3")))) + +;;; +;;; greetd-service-type -- minimal and flexible login manager daemon +;;; + +(define-record-type* + greetd-agreety-session make-greetd-agreety-session + greetd-agreety-session? + (agreety greetd-agreety (default greetd)) + (command greetd-agreety-command (default (file-append bash "/bin/bash"))) + (command-args greetd-agreety-command-args (default '("-l"))) + (extra-env greetd-agreety-extra-env (default '())) + (xdg-env? greetd-agreety-xdg-env? (default #t))) + +(define greetd-agreety-tty-session-command + (match-lambda + (($ _ command args extra-env) + (program-file + "agreety-tty-session-command" + #~(begin + (use-modules (ice-9 match)) + (for-each (match-lambda ((var . val) (setenv var val))) + (quote (#$@extra-env))) + (apply execl #$command #$command (list #$@args))))))) + +(define greetd-agreety-tty-xdg-session-command + (match-lambda + (($ _ command args extra-env) + (program-file + "agreety-tty-xdg-session-command" + #~(begin + (use-modules (ice-9 match)) + (let* + ((username (getenv "USER")) + (useruid (passwd:uid (getpwuid username))) + (useruid (number->string useruid))) + (setenv "XDG_SESSION_TYPE" "tty") + (setenv "XDG_RUNTIME_DIR" (string-append "/run/user/" useruid))) + (for-each (match-lambda ((var . val) (setenv var val))) + (quote (#$@extra-env))) + (apply execl #$command #$command (list #$@args))))))) + +(define (make-greetd-agreety-session-command config command) + (let ((agreety (file-append (greetd-agreety config) "/bin/agreety"))) + (program-file + "agreety-command" + #~(execl #$agreety #$agreety "-c" #$command)))) + +(define (make-greetd-default-session-command config-or-command) + (cond ((greetd-agreety-session? config-or-command) + (cond ((greetd-agreety-xdg-env? config-or-command) + (make-greetd-agreety-session-command + config-or-command + (greetd-agreety-tty-xdg-session-command config-or-command))) + (#t + (make-greetd-agreety-session-command + config-or-command + (greetd-agreety-tty-session-command config-or-command))))) + (#t config-or-command))) + +(define-record-type* + greetd-terminal-configuration make-greetd-terminal-configuration + greetd-terminal-configuration? + (greetd greetd-package (default greetd)) + (config-file-name greetd-config-file-name (thunked) + (default (default-config-file-name this-record))) + (log-file-name greetd-log-file-name (thunked) + (default (default-log-file-name this-record))) + (terminal-vt greetd-terminal-vt (default "7")) + (terminal-switch greetd-terminal-switch (default #f)) + (default-session-user greetd-default-session-user (default "greeter")) + (default-session-command greetd-default-session-command + (default (greetd-agreety-session)) + (sanitize make-greetd-default-session-command))) + +(define (default-config-file-name config) + (string-join (list "config-" (greetd-terminal-vt config) ".toml") "")) + +(define (default-log-file-name config) + (string-join (list "/var/log/greetd-" (greetd-terminal-vt config) ".log") "")) + +(define (make-greetd-terminal-configuration-file config) + (let* + ((config-file-name (greetd-config-file-name config)) + (terminal-vt (greetd-terminal-vt config)) + (terminal-switch (greetd-terminal-switch config)) + (default-session-user (greetd-default-session-user config)) + (default-session-command (greetd-default-session-command config))) + (mixed-text-file + config-file-name + "[terminal]\n" + "vt = " terminal-vt "\n" + "switch = " (if terminal-switch "true" "false") "\n" + "[default_session]\n" + "user = " default-session-user "\n" + "command = " default-session-command "\n"))) + +(define %greetd-accounts + (list (user-account + (name "greeter") + (group "wheel") + (supplementary-groups '("users" "tty" "input" "video" "audio")) + (system? #t)))) + +(define %greetd-file-systems + (list (file-system + (device "none") + (mount-point "/run/greetd/pam_mount") + (type "tmpfs") + (check? #f) + (flags '(no-suid no-dev no-exec)) + (options "mode=0755") + (create-mount-point? #t)))) + +(define %greetd-pam-mount-rules + `((debug (@ (enable "0"))) + (volume (@ (sgrp "users") + (fstype "tmpfs") + (mountpoint "/run/user/%(USERUID)") + (options "noexec,nosuid,nodev,size=1g,mode=0700,uid=%(USERUID),gid=%(USERGID)"))) + (logout (@ (wait "0") + (hup "0") + (term "yes") + (kill "no"))) + (mkmountpoint (@ (enable "1") (remove "true"))))) + +(define-record-type* + greetd-configuration make-greetd-configuration + greetd-configuration? + (motd greetd-motd (default %default-motd)) + (allow-empty-passwords? greetd-allow-empty-passwords? (default #t)) + (terminals greetd-terminals (default '()))) + +(define (make-greetd-pam-mount-conf-file config) + (computed-file + "greetd_pam_mount.conf.xml" + #~(begin + (use-modules (sxml simple)) + (call-with-output-file #$output + (lambda (port) + (sxml->xml + '(*TOP* + (*PI* xml "version='1.0' encoding='utf-8'") + (pam_mount + #$@%greetd-pam-mount-rules + (pmvarrun + #$(file-append greetd-pam-mount + "/sbin/pmvarrun -u '%(USER)' -o '%(OPERATION)'")))) + port)))))) + +(define (greetd-etc-service config) + `(("security/greetd_pam_mount.conf.xml" + ,(make-greetd-pam-mount-conf-file config)))) + +(define (greetd-pam-service config) + (define optional-pam-mount + (pam-entry + (control "optional") + (module #~(string-append #$greetd-pam-mount "/lib/security/pam_mount.so")) + (arguments '("disable_interactive")))) + + (list + (unix-pam-service "greetd" + #:login-uid? #t + #:allow-empty-passwords? + (greetd-allow-empty-passwords? config) + #:motd + (greetd-motd config)) + (lambda (pam) + (if (member (pam-service-name pam) + '("login" "greetd" "su" "slim" "gdm-password")) + (pam-service + (inherit pam) + (auth (append (pam-service-auth pam) + (list optional-pam-mount))) + (session (append (pam-service-session pam) + (list optional-pam-mount)))) + pam)))) + +(define (greetd-shepherd-services config) + (map + (lambda (tc) + (let* + ((greetd-bin (file-append (greetd-package tc) "/sbin/greetd")) + (greetd-conf (make-greetd-terminal-configuration-file tc)) + (greetd-log (greetd-log-file-name tc)) + (greetd-vt (greetd-terminal-vt tc))) + (shepherd-service + (documentation "Minimal and flexible login manager daemon") + (requirement '(user-processes host-name udev virtual-terminal)) + (provision (list (symbol-append + 'term-tty + (string->symbol (greetd-terminal-vt tc))))) + (start #~(make-forkexec-constructor + (list #$greetd-bin "-c" #$greetd-conf) + #:log-file #$greetd-log)) + (stop #~(make-kill-destructor))))) + (greetd-terminals config))) + +(define greetd-service-type + (service-type + (name 'greetd) + (description "Provides necessary infrastructure for logging into the +system including @code{greetd} PAM service, @code{pam-mount} module to +mount/unmount /run/user/ directory for user and @code{greetd} +login manager daemon.") + (extensions + (list + (service-extension account-service-type (const %greetd-accounts)) + (service-extension file-system-service-type (const %greetd-file-systems)) + (service-extension etc-service-type greetd-etc-service) + (service-extension pam-root-service-type greetd-pam-service) + (service-extension shepherd-root-service-type greetd-shepherd-services))) + (default-value (greetd-configuration)))) + (define %base-services ;; Convenience variable holding the basic services. diff --git a/gnu/services/pam-mount.scm b/gnu/services/pam-mount.scm index 33649b0f7c..e60781d05b 100644 --- a/gnu/services/pam-mount.scm +++ b/gnu/services/pam-mount.scm @@ -90,7 +90,7 @@ (define optional-pam-mount (module #~(string-append #$pam-mount "/lib/security/pam_mount.so")))) (list (lambda (pam) (if (member (pam-service-name pam) - '("login" "su" "slim" "gdm-password" "sddm")) + '("login" "greetd" "su" "slim" "gdm-password" "sddm")) (pam-service (inherit pam) (auth (append (pam-service-auth pam) -- 2.36.1 From debbugs-submit-bounces@debbugs.gnu.org Mon Jun 13 04:46:25 2022 Received: (at 49969) by debbugs.gnu.org; 13 Jun 2022 08:46:25 +0000 Received: from localhost ([127.0.0.1]:57241 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o0fiL-0004kg-8z for submit@debbugs.gnu.org; Mon, 13 Jun 2022 04:46:25 -0400 Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:43522 helo=nomad-cl1.muradm.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o0fi8-0004jg-4k for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 04:46:13 -0400 Received: from localhost ([127.0.0.1]:35044) by nomad-cl1.muradm.net with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1o0ffz-0003ew-3H for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 08:43:59 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; s=mail; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:To:From:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=9OKNnQJMWqLxmJgn9iWyU3TM14PZmrTLw/2VCc0jci0=; b=Qd1ZOvZRNA3PQZzqT7MYEYVoiz 0YSxULDGy4UAWMWzNOgqmN+Rrr0yZFjR+ClfiWTzfXw6Jq9xpKgthPTwrt6ejB5jA3Zq3ukPJbDZf qX/E/dr7XLMavvP/e2A2JTkWWH9Dq712J2gixal1zfWiYe7l3I2MCq8Oi2mis/5M60FVSppbM9rWb YP6DaDLt6Xe9aAHjYBXQ28BeAcj/C7CTecEpKNyTcJYAJbfagqEsEvJiIwtvwdveM6jhijMlA/TmT 6EyQMeUcChljYgj/6c0iypvKQb0DiaKrxsvCz3R0gGgceMsHDplEsDHi7TndTI00/+e5NXKUZWVcG SgnCLREHnE2Gd4AqyxkQXyWdhNBSEmCkHLSGwWmszBH7x/qLo/PaLNs3IbqiYlg7C0Pp+YqjEE70L 86pxiHA4XzobqF8BdaRINRrO5g9nEZl/CaRuIAu+l39wo6cG6pCybVz+5eg3JxP5CduNRENtCgI8D aIimArlTDxXma1KQDq39YwYA; Received: from muradm by localhost with local (Exim 4.95) (envelope-from ) id 1o0fi6-0000gB-LM for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 11:46:10 +0300 From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v10 6/7] gnu: desktop: Add seatd-service-type. Date: Mon, 13 Jun 2022 11:46:03 +0300 Message-Id: <20220613084604.2575-7-mail@muradm.net> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220613084604.2575-1-mail@muradm.net> References: <20220613084604.2575-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/services/desktop.scm (seatd-service-type): New variable * gnu/services/desktop.scm (seatd-configuration): New data type fix seatd path --- doc/guix.texi | 46 +++++++++++++++++++++++++++++ gnu/services/desktop.scm | 62 +++++++++++++++++++++++++++++++++++++++- 2 files changed, 107 insertions(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index 997b93c831..799ea932d7 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -22661,6 +22661,52 @@ and ``passwd'' is with the value @code{passwd}. @end table @end deftp +@defvr {Scheme Variable} seatd-service-type +@uref{https://sr.ht/~kennylevinsen/seatd/, seatd} is a minimal seat +management daemon. + +Seat management takes care of mediating access to shared devices (graphics, +input), without requiring the applications needing access to be root. + +@lisp +(append + (list + ;; make sure seatd is running + (service seatd-service-type)) + + ;; normally one would want %base-services + %base-services) + +@end lisp +@end defvr + +@deftp {Data Type} seatd-configuration +Configuration record for the seatd daemon service. + +@table @asis +@item @code{seatd} (default: @code{seatd}) +The seatd package to use. + +@item @code{user} (default: @samp{"root"}) +User to own the seatd socket. + +@item @code{group} (default: @samp{"users"}) +Group to own the seatd socket. + +@item @code{socket} (default: @samp{"/run/seatd.sock"}) +Where to create the seatd socket. + +@item @code{logfile} (default: @samp{"/var/log/seatd.log"}) +Log file to write to. + +@item @code{loglevel} (default: @samp{"error"}) +Log level to output logs. Possible values: @samp{"silent"}, @samp{"error"}, +@samp{"info"} and @samp{"debug"}. + +@end table +@end deftp + + @node Sound Services @subsection Sound Services diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index 0499071436..29a3722f1b 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -13,6 +13,7 @@ ;;; Copyright © 2020 Tobias Geerinckx-Rice ;;; Copyright © 2020 Reza Alizadeh Majd ;;; Copyright © 2021 Brice Waegeneire +;;; Copyright © 2021 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -39,7 +40,9 @@ (define-module (gnu services desktop) #:use-module (gnu services networking) #:use-module (gnu services sound) #:use-module ((gnu system file-systems) - #:select (%elogind-file-systems file-system)) + #:select (%control-groups + %elogind-file-systems + file-system)) #:autoload (gnu services sddm) (sddm-service-type) #:use-module (gnu system) #:use-module (gnu system setuid) @@ -157,6 +160,9 @@ (define-module (gnu services desktop) gnome-keyring-configuration? gnome-keyring-service-type + seatd-configuration + seatd-service-type + %desktop-services)) ;;; Commentary: @@ -1630,6 +1636,60 @@ (define polkit-wheel (define polkit-wheel-service (simple-service 'polkit-wheel polkit-service-type (list polkit-wheel))) + +;;; +;;; seatd-service-type -- minimal seat management daemon +;;; + +(define-record-type* seatd-configuration + make-seatd-configuration + seatd-configuration? + (seatd seatd-package (default seatd)) + (user seatd-user (default "root")) + (group seatd-group (default "users")) + (socket seatd-socket (default "/run/seatd.sock")) + (logfile seatd-logfile (default "/var/log/seatd.log")) + (loglevel seatd-loglevel (default "info"))) + +(define (seatd-shepherd-service config) + (list (shepherd-service + (documentation "Minimal seat management daemon") + (requirement '()) + ;; TODO: once cgroups is separate dependency + ;; here we should depend on it rather than elogind + (provision '(seatd elogind)) + (start #~(make-forkexec-constructor + (list #$(file-append (seatd-package config) "/bin/seatd") + "-u" #$(seatd-user config) + "-g" #$(seatd-group config)) + #:environment-variables + (list (string-append "SEATD_LOGLEVEL=" + #$(seatd-loglevel config)) + (string-append "SEATD_DEFAULTPATH=" + #$(seatd-socket config))) + #:log-file #$(seatd-logfile config))) + (stop #~(make-kill-destructor))))) + +(define seatd-environment + (match-lambda + (($ _ _ _ socket) + `(("SEATD_SOCK" . ,socket))))) + +(define seatd-service-type + (service-type + (name 'seatd) + (description "Seat management takes care of mediating access +to shared devices (graphics, input), without requiring the +applications needing access to be root.") + (extensions + (list + (service-extension session-environment-service-type seatd-environment) + ;; TODO: once cgroups is separate dependency we should not mount it here + ;; for now it is mounted here, because elogind mounts it + (service-extension file-system-service-type (const %control-groups)) + (service-extension shepherd-root-service-type seatd-shepherd-service))) + (default-value (seatd-configuration)))) + ;;; ;;; The default set of desktop services. -- 2.36.1 From debbugs-submit-bounces@debbugs.gnu.org Mon Jun 13 04:46:29 2022 Received: (at 49969) by debbugs.gnu.org; 13 Jun 2022 08:46:29 +0000 Received: from localhost ([127.0.0.1]:57243 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o0fiL-0004ko-PB for submit@debbugs.gnu.org; Mon, 13 Jun 2022 04:46:29 -0400 Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:43520 helo=nomad-cl1.muradm.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o0fi7-0004ja-0m for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 04:46:14 -0400 Received: from localhost ([127.0.0.1]:35042) by nomad-cl1.muradm.net with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1o0ffy-0003et-2c for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 08:43:58 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; s=mail; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:To:From:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=po1J4ShuM0sOY+4h1QcvWtZw4wM1NBH6QqFVX7ESczI=; b=oBDMhm+9s8u6duB5Z+z4nVx1M7 9C2mXtF367azDA8MLZQjsSxv+8KspWLl0mp6XWxa4NVpRQUyZK0P7n0WZNEaFuHrgnHxmNp41+tVi Uf7fVRgIf2H/DSg9IQ5aPwSBilxeI4TwPDzFJPPd+RSTvdqqBhoHr+VE8gsXq0QOBla0cfYN1opmt egOnWnaGpA0J+uPmzIqKt6RrbGCICjNgoxHSQAc8F27n+rlbpN57pKV7pLpJWPhCREJg/S+IBS0lI ocpQMsZglC9snzbjEuLL+vtoBzUvXDssNR43rnMoFTolI6rU6biioJgwjig5uWTzhLxObJcPAKbx9 sLhoAW3fDGgedW5UvYEbYI7UG+trneW2j/oYmpMjgjYGqEveI7fEud9fvCaYbOCe46GUg8jAa/nzG iNOnEvckcPn6lw3BtauhMy+AAWTRXFYC0fNAKQpgpwTilvXvRyED0ib2WAmclscr4AkQGuR1ZhGdT ZOQjA27UQJM1G3d/g5DR9HEm; Received: from muradm by localhost with local (Exim 4.95) (envelope-from ) id 1o0fi5-0000g8-Hy for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 11:46:09 +0300 From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v10 5/7] gnu: admin: Add libseat 0.8.0 and move seatd. Date: Mon, 13 Jun 2022 11:46:02 +0300 Message-Id: <20220613084604.2575-6-mail@muradm.net> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220613084604.2575-1-mail@muradm.net> References: <20220613084604.2575-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/admin.scm (libseat): New variable * gnu/packages/admin.scm (seatd): New variable * gnu/packages/freedesktop.scm (seatd): Remove variable * gnu/packages/wm.scm (wlroots): Replace seatd input with libseat --- gnu/packages/admin.scm | 53 ++++++++++++++++++++++++++++++++++++ gnu/packages/freedesktop.scm | 29 -------------------- gnu/packages/wm.scm | 4 ++- 3 files changed, 56 insertions(+), 30 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index d6e1d819ab..eb6450b4da 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -46,6 +46,7 @@ ;;; Copyright © 2021 Maxim Cournoyer ;;; Copyright © 2021 Maxime Devos ;;; Copyright © 2021 muradm +;;; Copyright © 2021 pineapples ;;; Copyright © 2021 Petr Hodina ;;; Copyright © 2021 Artyom V. Poptsov ;;; Copyright © 2022 Wamm K. D. @@ -104,6 +105,7 @@ (define-module (gnu packages admin) #:use-module (gnu packages elf) #:use-module (gnu packages file) #:use-module (gnu packages flex) + #:use-module (gnu packages freedesktop) #:use-module (gnu packages gawk) #:use-module (gnu packages gettext) #:use-module (gnu packages gl) @@ -5097,3 +5099,54 @@ (define-public greetd-pam-mount greetd-pam-mount is used in configuration of greetd to provide auto-(mounting/unmounting) of XDG_RUNTIME_DIR in the way that it will not interfere with default pam-mount configuration."))) + +(define-public libseat + (package + (name "libseat") + (version "0.7.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~kennylevinsen/seatd") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "10f8387yy5as547xjjhl0cna6iywdgjmw0iq2nvcs8q6vlpnik4v")))) + (build-system meson-build-system) + (arguments + `(#:configure-flags '("-Dlibseat-logind=elogind" + "-Dserver=disabled"))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (propagated-inputs + `(("elogind" ,elogind))) + (home-page "https://sr.ht/~kennylevinsen/seatd") + (synopsis "Seat management library") + (description + "This package provides a universal seat management library that +allows applications to use whatever seat management is available.") + (license license:expat))) + +(define-public seatd + (package + (inherit libseat) + (name "seatd") + (arguments + `(#:configure-flags '("-Dlibseat-logind=elogind") + #:phases + (modify-phases %standard-phases + (add-after 'install 'remove-libs + (lambda* (#:key outputs #:allow-other-keys) + (with-directory-excursion (assoc-ref outputs "out") + (for-each delete-file-recursively '("lib" "include")))))))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("scdoc" ,scdoc))) + (inputs '()) + (synopsis "Seat management daemon") + (description + "This package provides a minimal seat management daemon whose task is to +mediate access to shared devices, such as graphics and input, for applications +that require it.") + (license license:expat))) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index fc2c45c1f1..309876867a 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -849,35 +849,6 @@ (define (source-file regexp) with localed. This package is extracted from the broader systemd package.") (license license:lgpl2.1+))) -(define-public seatd - (package - (name "seatd") - (version "0.5.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://git.sr.ht/~kennylevinsen/seatd") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1kglq8v4rnr3415mfaghyv2s2f8mxsy5s881gmm2908ig4n4j297")))) - (build-system meson-build-system) - (arguments - `(#:configure-flags '("-Dlogind=enabled"))) - (native-inputs - (list pkg-config scdoc)) - (propagated-inputs - (list elogind)) - (home-page "https://sr.ht/~kennylevinsen/seatd") - (synopsis "Seat management daemon and library") - (description - "This package provides a minimal seat management daemon whose task is to -mediate access to shared devices, such as graphics and input, for applications -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 packagekit (package (name "packagekit") diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index 123e6ca7e7..24d95ba86c 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -54,6 +54,7 @@ ;;; Copyright © 2022 Daniel Meißner ;;; Copyright © 2022 Pier-Hugues Pellerin ;;; Copyright © 2022 Maxim Cournoyer +;;; Copyright © 2022 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -88,6 +89,7 @@ (define-module (gnu packages wm) #:use-module (guix utils) #:use-module (gnu packages) #:use-module (gnu packages bash) + #:use-module (gnu packages admin) #:use-module (gnu packages autotools) #:use-module (gnu packages base) #:use-module (gnu packages bison) @@ -1537,7 +1539,7 @@ (define-public wlroots libxkbcommon mesa pixman - seatd + libseat wayland wayland-protocols xcb-util-errors -- 2.36.1 From debbugs-submit-bounces@debbugs.gnu.org Mon Jun 13 04:46:29 2022 Received: (at 49969) by debbugs.gnu.org; 13 Jun 2022 08:46:29 +0000 Received: from localhost ([127.0.0.1]:57245 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o0fiP-0004l0-7i for submit@debbugs.gnu.org; Mon, 13 Jun 2022 04:46:29 -0400 Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:43524 helo=nomad-cl1.muradm.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o0fi9-0004jm-3W for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 04:46:14 -0400 Received: from localhost ([127.0.0.1]:35046) by nomad-cl1.muradm.net with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1o0fg0-0003ez-2d for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 08:44:00 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; s=mail; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:To:From:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=V50/s1aHPz1lg/xFgnuRBtKadEuLaqkQs6hVma7/WWM=; b=BiLoKMIMRrSb2ZQmCh3p06N3x4 sFUUCG1kuTa8I+x1KJRMa6n7u5yuBn43g2Wz2/Fj7C+1vOU9Lu3fsXTeiWD2qtr6wVFyfdkjdv00L VDZbj5cQNVE7I/GPRBLZDRCGIYjlna+DQVk488koIe0NBBVRa+0/bkBG5AeqckCFBySFhLH3TcBzK /TKiHTbs/vqlv7xmGwLKkLV3fW2+zlD2irku8/yBMAQzbIwt5bgw07TqmejBKz8nHjdvGaJXh9CZA n8lF0m1ukE/bbXA4JqvIpzcxsL2Lzx8Ce3viUj5+Jv2TcOSud6InNeKvngoBpkPc8ahAjtPHGfDoD xyEOtedYWC/QrlwHCrXrUlRiGF14zVBGz6274txt7JhfEyZ0zCZ4I0yoC2ftqy+qHBWtk5zdXWszS hgvwSRjOcNqV//bSLYonGFau1jBAa1F+VfKaEM4krA8/swbJjrbcl3EDmfgIVhHkEsvHL13vAaQ6u DxuKk0i2PP0LIZ+/q4bsN3c2; Received: from muradm by localhost with local (Exim 4.95) (envelope-from ) id 1o0fi7-0000gE-KI for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 11:46:11 +0300 From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v10 7/7] gnu: tests: Add seatd/greetd based minimal desktop system tests. Date: Mon, 13 Jun 2022 11:46:04 +0300 Message-Id: <20220613084604.2575-8-mail@muradm.net> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220613084604.2575-1-mail@muradm.net> References: <20220613084604.2575-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/tests/desktop.scm (minimal-desktop): seatd/greetd based minimal desktop test --- gnu/tests/desktop.scm | 212 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 211 insertions(+), 1 deletion(-) diff --git a/gnu/tests/desktop.scm b/gnu/tests/desktop.scm index 57069c0ede..7cc837f42e 100644 --- a/gnu/tests/desktop.scm +++ b/gnu/tests/desktop.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017, 2021 Ludovic Courtès +;;; Copyright © 2021 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -18,13 +19,17 @@ (define-module (gnu tests desktop) #:use-module (gnu tests) + #:use-module (gnu packages shells) #:use-module (gnu services) + #:use-module (gnu services base) #:use-module (gnu services dbus) #:use-module (gnu services desktop) + #:use-module (gnu system) #:use-module (gnu system vm) #:use-module (guix gexp) #:use-module (srfi srfi-1) - #:export (%test-elogind)) + #:export (%test-elogind + %test-minimal-desktop)) ;;; @@ -100,3 +105,208 @@ (define %test-elogind #:imported-modules '((gnu services herd) (guix combinators))))) (run-elogind-test (virtual-machine os)))))) + + +;;; +;;; Seatd/greetd based minimal desktop +;;; + +(define %minimal-services + (append + (modify-services %base-services + ;; greetd-service-type provides "greetd" PAM service + (delete login-service-type) + ;; and can be used in place of mingetty-service-type + (delete mingetty-service-type)) + (list + (service seatd-service-type) + (service greetd-service-type + (greetd-configuration + (terminals + (list + ;; we can make any terminal active by default + (greetd-terminal-configuration (terminal-vt "1") (terminal-switch #t)) + ;; we can make environment without XDG_RUNTIME_DIR set + ;; even provide our own environment variables + (greetd-terminal-configuration + (terminal-vt "2") + (default-session-command + (greetd-agreety-session + (extra-env '(("MY_VAR" . "1"))) + (xdg-env? #f)))) + ;; we can use different shell instead of default bash + (greetd-terminal-configuration + (terminal-vt "3") + (default-session-command + (greetd-agreety-session (command (file-append zsh "/bin/zsh"))))) + ;; we can use any other executable command as greeter + (greetd-terminal-configuration + (terminal-vt "4") + (default-session-command (program-file "my-noop-greeter" #~(exit)))) + (greetd-terminal-configuration (terminal-vt "5")) + (greetd-terminal-configuration (terminal-vt "6")))))) + ;; mingetty-service-type can be used in parallel + ;; if needed to do so, do not (delete login-service-type) + ;; as illustrated above + #| (service mingetty-service-type (mingetty-configuration (tty "tty8"))) |#))) + +(define-syntax-rule (minimal-operating-system user-services ...) + "Return an operating system that includes USER-SERVICES in addition to +minimal %BASE-SERVICES." + (operating-system (inherit %simple-os) + (services (cons* user-services ... %minimal-services)))) + +(define (run-minimal-desktop-test os vm) + (define test + (with-imported-modules '((gnu build marionette) + (guix build syscalls)) + #~(begin + (use-modules (gnu build marionette) + (guix build syscalls) + (srfi srfi-1) + (srfi srfi-64) + (ice-9 pretty-print)) + + (define marionette + (make-marionette #$vm)) + + (define (file-get-all-strings fname) + (marionette-eval '(use-modules (rnrs io ports)) marionette) + (wait-for-file fname marionette #:read 'get-string-all)) + + (define (wait-for-unix-socket-m socket) + (wait-for-unix-socket socket marionette)) + + (mkdir #$output) + (chdir #$output) + + (test-begin "minimal-desktop") + + (test-assert "seatd is ready" + (wait-for-unix-socket-m "/run/seatd.sock")) + + (test-equal "login user on tty1" + "alice\n" + (begin + ;; Wait for tty1. + (marionette-eval + '(begin + (use-modules (gnu services herd)) + (start-service 'term-tty1)) + marionette) + (marionette-control "sendkey ctrl-alt-f1" marionette) + + ;; login as root change alice password and exit + ;; then login as alice + (for-each + (lambda (cmd) (marionette-type cmd marionette) (sleep 1)) + (list + "root\n" + "passwd alice\n" + "alice\n" + "alice\n" + "exit\n" + "alice\n" + "alice\n" + "id -un > logged-in\n")) + + (file-get-all-strings "/home/alice/logged-in"))) + + (test-equal "validate user environment" + '("SEATD_SOCK=/run/seatd.sock" + "XDG_RUNTIME_DIR=/run/user/1000" + "XDG_SEAT=seat0" + "XDG_VTNR=1") + + (begin + (marionette-type "env > env\n" marionette) + (sleep 1) + + (define user-env (string-tokenize + (file-get-all-strings "/home/alice/env"))) + + (define (expected-var var) + (any (lambda (s) (string-contains var s)) + '("SEATD_SOCK" + "XDG_RUNTIME_DIR" + "XDG_SEAT" + "XDG_VTNR"))) + + (sort (filter expected-var user-env) string env\n" marionette) + (sleep 1) + + (define (sock-var? var) + (any (lambda (s) (string-contains var s)) + '("SEATD_SOCK" "GREETD_SOCK"))) + + (define (sock-var-sock var) + (car (cdr (string-split var #\=)))) + + (let* + ((out (file-get-all-strings "/home/alice/env")) + (out (string-tokenize out)) + (out (filter sock-var? out)) + (socks (map sock-var-sock out)) + (socks (map wait-for-unix-socket-m socks))) + (and (= 2 (length socks)) (every identity socks))))) + + (test-assert "greetd is ready" + (begin + (marionette-type "ps -C greetd -o pid,args --no-headers > ps-greetd\n" + marionette) + (sleep 1) + + (define (greetd-daemon? cmd) + (string-contains cmd "config")) + + (define (greetd-cmd-to-pid cmd) + (car (string-split cmd #\space))) + + (define (greetd-pid-to-sock pid) + (string-append "/run/greetd-" pid ".sock")) + + (let* ((out (file-get-all-strings "/home/alice/ps-greetd")) + (out (string-split out #\newline)) + (out (map string-trim-both out)) + (out (filter greetd-daemon? out)) + (pids (map greetd-cmd-to-pid out)) + (socks (map greetd-pid-to-sock pids)) + (socks (map wait-for-unix-socket-m socks))) + (every identity socks)))) + + ;; a bit weak, but tests everything at once actually + (test-equal "check /run/user/ mounted and writable" + "alice\n" + (begin + (marionette-type "echo alice > /run/user/1000/test\n" marionette) + (file-get-all-strings "/run/user/1000/test"))) + + (test-assert "screendump" + (begin + (marionette-control (string-append "screendump " #$output + "/tty1.ppm") + marionette) + (file-exists? "tty1.ppm"))) + + (test-end) + (exit (= (test-runner-fail-count (test-runner-current)) 0))))) + + (gexp->derivation "minimal-desktop" test)) + +(define %test-minimal-desktop + (system-test + (name "minimal-desktop") + (description + "Test whether we can log in when seatd and greetd is enabled") + (value + (let* ((os (marionette-operating-system + (minimal-operating-system) + #:imported-modules '((gnu services herd) + (guix combinators)))) + (vm (virtual-machine os))) + (run-minimal-desktop-test (virtualized-operating-system os '()) + #~(list #$vm)))))) -- 2.36.1 From debbugs-submit-bounces@debbugs.gnu.org Mon Jun 13 09:21:04 2022 Received: (at 49969) by debbugs.gnu.org; 13 Jun 2022 13:21:04 +0000 Received: from localhost ([127.0.0.1]:57610 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o0k08-00049T-1b for submit@debbugs.gnu.org; Mon, 13 Jun 2022 09:21:04 -0400 Received: from michel.telenet-ops.be ([195.130.137.88]:54166) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o0k04-00048h-Es for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 09:21:02 -0400 Received: from ptr-bvsjgyhxw7psv60dyze.18120a2.ip6.access.telenet.be ([IPv6:2a02:1811:8c09:9d00:3c5f:2eff:feb0:ba5a]) by michel.telenet-ops.be with bizsmtp id idLy2700T4UW6Th06dLyWX; Mon, 13 Jun 2022 15:20:59 +0200 Message-ID: <6e4bf02cf382ff003951fc2f2bdf96289384ece2.camel@telenet.be> Subject: Re: [bug#49969] [PATCH v10 1/7] gnu: crates-io: Add rust-enquote 1.1.0 and rust-pam-sys 0.5.6. From: Maxime Devos To: muradm , 49969@debbugs.gnu.org Date: Mon, 13 Jun 2022 15:20:54 +0200 In-Reply-To: <20220613084604.2575-2-mail@muradm.net> References: <20220613084604.2575-1-mail@muradm.net> <20220613084604.2575-2-mail@muradm.net> Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-7QmjHGfHTL09jTH32/9C" User-Agent: Evolution 3.38.3-1 MIME-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r22; t=1655126459; bh=UGbHDKIZRf6ru5P4Fj0fBRfv4WHsFhIEJR0YHz7KOtM=; h=Subject:From:To:Date:In-Reply-To:References; b=EZnAZzgWJsRdka0aglc9KXYYnNvaop9PaRIYfv2PU2iXgjFYuQwjPOR8FKHe6biPv cJeuDgmrSGeSYhZdUbIQ6F/9IuWsNYQ5638/Et2izA5fMQ2fkfoHdc76Wpcq4Bc6HY 5bDZyqWKHXEx9sEQiBkqTM2dIC6tuB0HWsyPIp5tEZ+apz1mx3IWnz12MKGqHKQcb8 g1CTzNst5T9g2mg3oMU6od1cJNXpua4h4Vo7HAMIhs+sTqlWpja2K1js2f+jNpzuJv XTbCB1w0981g88IPMx+Opf+/ilr1Kveu6KyGctZSKJVzvx1wXBWOhQPvMU31xOXNmw adPOriQR2Npgg== X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-7QmjHGfHTL09jTH32/9C Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable * gnu/packages/crates-io.scm (rust-enquote-1): New variable * gnu/packages/crates-io.scm (rust-pam-sys-0.5): New variable Only a single independent change per patch. muradm schreef op ma 13-06-2022 om 11:45 [+0300]: > +=C2=A0=C2=A0=C2=A0 (native-inputs `(("linux-pam" ,linux-pam))) Most likely not a native input but a non-native input that needs to be cross-compiled when rust-pam-sys is cross-compiled. > +=C2=A0=C2=A0=C2=A0 (synopsis > +=C2=A0=C2=A0=C2=A0=C2=A0 "Rust FFI wrappers for the Linux Pluggable Auth= entication Modules (PAM)") > +=C2=A0=C2=A0=C2=A0 (description > +=C2=A0=C2=A0=C2=A0=C2=A0 "Rust FFI wrappers for the Linux Pluggable Auth= entication Modules (PAM)") Description is missing, this just repeats the synopsis. Greetings, Maxime. --=-7QmjHGfHTL09jTH32/9C Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYqc5thccbWF4aW1lZGV2 b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7rnVAP42R2ooHXpWTRGZvYirHCB2i/yH 459JiSQUTQv6pLZ7/AEA6NsTF8yQRgHL8XlQSRocPEf7WlTVZ6vGlxXz0t7qows= =gnrc -----END PGP SIGNATURE----- --=-7QmjHGfHTL09jTH32/9C-- From debbugs-submit-bounces@debbugs.gnu.org Mon Jun 13 10:45:51 2022 Received: (at 49969) by debbugs.gnu.org; 13 Jun 2022 14:45:52 +0000 Received: from localhost ([127.0.0.1]:60060 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o0lKB-00060t-9j for submit@debbugs.gnu.org; Mon, 13 Jun 2022 10:45:51 -0400 Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:43526 helo=nomad-cl1.muradm.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o0lK8-0005xi-T0 for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 10:45:50 -0400 Received: from localhost ([127.0.0.1]:35050) by nomad-cl1.muradm.net with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1o0lHz-0003jA-4F for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 14:43:35 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; s=mail; h=Content-Transfer-Encoding:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Sender:Reply-To:Cc:Content-Type:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=7lRVrZCJ2IFTBbabelfuGvHz1NMr9CoGl+fIbXvGXS4=; b=j2PmYgBAnGd/WQACOS1JbWVZ7/ NbpoPshgFScl8fA9N6S7ReUDDz6mNRK3uBwqIau8R4i0qANb8AWUdH+KnZa3JN7An4HfSw6PM4M3x imiXB0nmFawJhDe6/ul1Sq6xN7zKKB/zKoI737y/doZ7AzngX2UdxcXaZ/JV3yRy1DOuviOrm+x63 fmkQzbvhbCbueayE0r6br7vVWgf5nxYWzDjG7Q2o7u7unbz0vngLZLm9GtuoYmBTiGPZG60sru0V3 Og4sueQGP90lpbWXNzVxk87RXIvrtj3mK4rkD7Z7E5rvYUMy+oBoo/4M6wbJX8zwl/NtR3NZVvx91 5DV1CH5ZGFnXtrJrUfDu7qTx9bIgSyyf78Fjt1f4kRqbXqlDiVBglK7EziXy1CPdjl+sxnjQ0hVem rzjquJKVdnIdzl5ZBnXradIwQkyd3OVc1QnltdGpXrQHmc896WI5F6Bwvy27enZiCW2SPraAFgSv3 D23uidfyBaPvsgcuOs/PnL4C; Received: from muradm by localhost with local (Exim 4.95) (envelope-from ) id 1o0lK6-0002wp-RX for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 17:45:46 +0300 From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v11 0/8] Re: [bug#49969] [PATCH v10 1/7] gnu: crates-io: Add rust-enquote 1.1.0 and rust-pam-sys 0.5.6. Date: Mon, 13 Jun 2022 17:45:38 +0300 Message-Id: <20220613144546.11306-1-mail@muradm.net> X-Mailer: git-send-email 2.36.1 In-Reply-To: <6e4bf02cf382ff003951fc2f2bdf96289384ece2.camel@telenet.be> References: <6e4bf02cf382ff003951fc2f2bdf96289384ece2.camel@telenet.be> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Fixing as suggested: * splitting rust packages to commit per package * linux-pam should be in 'inputs * varying description Thanks in advance, muradm muradm (8): gnu: crates-io: Add rust-enquote 1.1.0. gnu: crates-io: Add rust-pam-sys 0.5.6. gnu: admin: Add greetd 0.8.0. gnu: admin: Add greetd-pam-mount. gnu: base: Add greetd-service-type. gnu: admin: Add libseat 0.8.0 and move seatd. gnu: desktop: Add seatd-service-type. gnu: tests: Add seatd/greetd based minimal desktop system tests. doc/guix.texi | 183 ++++++++++++++++++++++++++++ gnu/packages/admin.scm | 162 +++++++++++++++++++++++++ gnu/packages/crates-io.scm | 40 +++++++ gnu/packages/freedesktop.scm | 29 ----- gnu/packages/wm.scm | 4 +- gnu/services/base.scm | 223 ++++++++++++++++++++++++++++++++++- gnu/services/desktop.scm | 62 +++++++++- gnu/services/pam-mount.scm | 2 +- gnu/tests/desktop.scm | 212 ++++++++++++++++++++++++++++++++- 9 files changed, 883 insertions(+), 34 deletions(-) -- 2.36.1 From debbugs-submit-bounces@debbugs.gnu.org Mon Jun 13 10:45:58 2022 Received: (at 49969) by debbugs.gnu.org; 13 Jun 2022 14:45:58 +0000 Received: from localhost ([127.0.0.1]:60074 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o0lKH-00065M-UH for submit@debbugs.gnu.org; Mon, 13 Jun 2022 10:45:58 -0400 Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:43532 helo=nomad-cl1.muradm.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o0lKA-00060C-Pj for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 10:45:51 -0400 Received: from localhost ([127.0.0.1]:35054) by nomad-cl1.muradm.net with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1o0lI1-0003jG-Ea for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 14:43:37 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; s=mail; h=Content-Transfer-Encoding:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Sender:Reply-To:Cc:Content-Type:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=aLHHNuqBMI5250Chq6uMa4We7eN4pnKT9R8u3hlKfJ8=; b=r1iFffKRV3ed5ky2Mv+eSP3If8 OpFO9jI9z+/vP2oO7Ja2h0XO09N/K7+99SlIf2iYl338MWu4vt5bRngAh1wPpTdvlrRi6xauNnE0a ZrbMP/oqpI54bltzBdf6bQjJuPmPp6MUioPnxDKBg/P+ofsDzkQH0cbt18o89wmET48nueH8ua/Rn 93+Wd1oKc1GfkERcCZ/RkojOQ9i6nUouJTI6fpWaxbEj9UdWtIdoSOk88OoLRAUU+3Yc/gmBaltvi TTphUDE+2/PwgifosA6Vd8HlB3GH0TM0BgugAHspgXUWrqTeQmZyZdSFipTlNvR0wB4/XJTEcGYMD qbpxkREeDiH5HZWHy3kvQpsn1sXGq8BTGVDhHBqmGKA8iR38ENCh4kNwWaXxfc1ou8x2YNxiNWb+X gpeGjGgwUveScsJ5gRK6yeSZaz0mQyVOOFHll9U3f3PuQNRLDCId3ENa6ROg8V7ICn78wMTVsWzlp VKISa532fKbPleGzN9TgeRrf; Received: from muradm by localhost with local (Exim 4.95) (envelope-from ) id 1o0lK9-0002wv-7B for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 17:45:49 +0300 From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v11 2/8] gnu: crates-io: Add rust-pam-sys 0.5.6. Date: Mon, 13 Jun 2022 17:45:40 +0300 Message-Id: <20220613144546.11306-3-mail@muradm.net> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220613144546.11306-1-mail@muradm.net> References: <6e4bf02cf382ff003951fc2f2bdf96289384ece2.camel@telenet.be> <20220613144546.11306-1-mail@muradm.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/crates-io.scm (rust-pam-sys-0.5): New variable --- gnu/packages/crates-io.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index a4d381899e..f93b9b0eea 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -73071,3 +73071,25 @@ (define-public rust-enquote-1 (synopsis "Rust library that quotes, unquotes, and unescapes strings") (description "A Rust library quotes, unquotes, and unescapes strings") (license license:unlicense))) + +(define-public rust-pam-sys-0.5 + (package + (name "rust-pam-sys") + (version "0.5.6") + (home-page "https://github.com/1wilkens/pam-sys") + (source (origin + (method url-fetch) + (uri (crate-uri "pam-sys" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0d14501d5vybjnzxfjf96321xa5wa36x1xvf02h02zq938qmhj6d")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs (("rust-libc" ,rust-libc-0.2)))) + (inputs `(("linux-pam" ,linux-pam))) + (synopsis + "Rust FFI wrappers for the Linux Pluggable Authentication Modules (PAM)") + (description + "This crate uses bindgen to generate the raw FFI definitions for PAM. For a rustified API consider using pam.") + (license (list license:expat license:asl2.0)))) -- 2.36.1 From debbugs-submit-bounces@debbugs.gnu.org Mon Jun 13 10:46:03 2022 Received: (at 49969) by debbugs.gnu.org; 13 Jun 2022 14:46:03 +0000 Received: from localhost ([127.0.0.1]:60076 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o0lKI-00065b-Cr for submit@debbugs.gnu.org; Mon, 13 Jun 2022 10:46:03 -0400 Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:43534 helo=nomad-cl1.muradm.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o0lKC-00061A-0m for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 10:45:53 -0400 Received: from localhost ([127.0.0.1]:35056) by nomad-cl1.muradm.net with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1o0lI2-0003jK-Jx for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 14:43:38 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; s=mail; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:To:From:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=RozKN4irD+c6HlJfAmqLSZkvFzhfWCbNGOZYmXWR0n0=; b=RfXT6/3MzYIyy1ZJShHWKQ/ehE IUHwt+PsMbrHgyQI5m44+6uWqYdjRDkQ/6zpe0E4Xke8M8LAAHOs5BcJkKG+V3y0WMi4BwuFtP3sH ckuCcNlAarPU23d930GkbnfSkOV30ltX3vInhgORvumDh6vx5OCAvACXfYqoqkWpWT8xafftVB2h9 30v/7ZFP+raxxE8ytRI/Eaqma9Irj/4vepBVFUiN1b7lMLBW4vJX1TdDKJcjp1vXVeMG9aILieb+v KqKCnwLKrKlGIP8fD1kB0f0n/j+ceWEV1vQMV6OmH+q2IT49DrAtCbDZfeucassEyrt7KyszaVZqh C9VTCLjkcvzFPVa6Lh5nxWvz86KsXBQITQ26GnzuTUD6pRvZb9Mm/4aPyu12Mirn+fMjxpOT7feT2 SMAcJR0NOJ5OWX/TywvjnqyOGJu/ryHuO0L2zcHBA2ZKndCQqb4UKrGO4PFtcxjHq0JMyzE8K5wyV c809yYnzpziXPKf1yqLrIvr/; Received: from muradm by localhost with local (Exim 4.95) (envelope-from ) id 1o0lKA-0002wy-BY for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 17:45:50 +0300 From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v11 3/8] gnu: admin: Add greetd 0.8.0. Date: Mon, 13 Jun 2022 17:45:41 +0300 Message-Id: <20220613144546.11306-4-mail@muradm.net> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220613144546.11306-1-mail@muradm.net> References: <6e4bf02cf382ff003951fc2f2bdf96289384ece2.camel@telenet.be> <20220613144546.11306-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/admin.scm (greetd): New variable --- gnu/packages/admin.scm | 77 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 6acfff8881..73d70744e1 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -45,6 +45,7 @@ ;;; Copyright © 2021 Brice Waegeneire ;;; Copyright © 2021 Maxim Cournoyer ;;; Copyright © 2021 Maxime Devos +;;; Copyright © 2021 muradm ;;; Copyright © 2021 Petr Hodina ;;; Copyright © 2021 Artyom V. Poptsov ;;; Copyright © 2022 Wamm K. D. @@ -66,6 +67,7 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu packages admin) + #:use-module (guix build-system cargo) #:use-module (guix build-system cmake) #:use-module (guix build-system emacs) #:use-module (guix build-system glib-or-gtk) @@ -93,6 +95,7 @@ (define-module (gnu packages admin) #:use-module (gnu packages c) #:use-module (gnu packages check) #:use-module (gnu packages compression) + #:use-module (gnu packages crates-io) #:use-module (gnu packages cross-base) #:use-module (gnu packages crypto) #:use-module (gnu packages cryptsetup) @@ -4987,4 +4990,78 @@ (define-public udpcast (home-page "https://www.udpcast.linux.lu") (license license:gpl2+))) +(define-public greetd + (package + (name "greetd") + (version "0.8.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 "0x5c3jkw09kvj2grcxm899y2n6ws8p990cyp9cs0fy6lm4fzlh6v")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-nix" ,rust-nix-0.19) + ("rust-pam-sys" ,rust-pam-sys-0.5) + ("rust-rpassword" ,rust-rpassword-5) + ("rust-users" ,rust-users-0.11) + ("rust-serde" ,rust-serde-1) + ("rust-serde-json" ,rust-serde-json-1) + ("rust-libc" ,rust-libc-0.2) + ("rust-tokio" ,rust-tokio-1) + ("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 + (delete 'package) + (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)))))))) + (native-inputs + `(("linux-pam" ,linux-pam) + ("scdoc" ,scdoc))) + (synopsis "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. +If you can run it from your shell in a TTY, greetd can start it. + +If it can be taught to speak a simple JSON-based IPC protocol, +then it can be a greeter.") + (license license:gpl3+))) -- 2.36.1 From debbugs-submit-bounces@debbugs.gnu.org Mon Jun 13 10:46:04 2022 Received: (at 49969) by debbugs.gnu.org; 13 Jun 2022 14:46:04 +0000 Received: from localhost ([127.0.0.1]:60079 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o0lKN-00069B-CJ for submit@debbugs.gnu.org; Mon, 13 Jun 2022 10:46:04 -0400 Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:43536 helo=nomad-cl1.muradm.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o0lKC-00061p-Vx for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 10:45:53 -0400 Received: from localhost ([127.0.0.1]:35058) by nomad-cl1.muradm.net with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1o0lI3-0003jN-Oq for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 14:43:39 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; s=mail; h=Content-Transfer-Encoding:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Sender:Reply-To:Cc:Content-Type:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=QJcCzGQEbK7Hay3t/cLTMcCKQeBOaopP00hsM6LgYUE=; b=ha8PJxItjBZZvFD6Oh6LyWXb5C szRE3KOe60IPnfuk+iQSk9b8avE/dQYU5V4tf966i6iCTJeU5tMsLa0TU5904eRSJeLfZKU77pWFk g9m5hLCj49+dyvz0RgzS8k5juVzMmOdruzbCPFYMfcGU+SYznyjgbYFMDRybQkROLE+IEgRWqmulF pfPzMqG4Cy2Y7zqPqe9C2wKLAkDi4dbde+P3GewTO/3wk+WNqGSc0kOu2ytJr/bkCTa6yEWM/MoUV VdpLbqzLwsBLFtLnEUonQbO8a9OEy49hbdKoYbaFvjLCvTao/V4zTpqESo4SEjDf8wV3lsF6r9A+0 n4xrn1yfIngf6lXOW17Pkf0SJk8dpGTxXD/YMlu15UBRGK819AMhn4TnoY4CTHtzrFaUMsHKxHFlR 6jvt+/vck6YQTjrI43M0vMjvEghxyWrq1aRp6Gqh/la/76kGEU6z5zZYAiNBU+aLx7wmaMgVFkVVz 8R2XPmz46sD6Mu3UxtRVJf+O; Received: from muradm by localhost with local (Exim 4.95) (envelope-from ) id 1o0lKB-0002x1-HQ for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 17:45:51 +0300 From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v11 4/8] gnu: admin: Add greetd-pam-mount. Date: Mon, 13 Jun 2022 17:45:42 +0300 Message-Id: <20220613144546.11306-5-mail@muradm.net> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220613144546.11306-1-mail@muradm.net> References: <6e4bf02cf382ff003951fc2f2bdf96289384ece2.camel@telenet.be> <20220613144546.11306-1-mail@muradm.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/admin.scm (greetd-pam-mount): New variable --- gnu/packages/admin.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 73d70744e1..d6e1d819ab 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -5065,3 +5065,35 @@ (define (scdoc-cmd doc lvl) If it can be taught to speak a simple JSON-based IPC protocol, then it can be a greeter.") (license license:gpl3+))) + +(define-public greetd-pam-mount + (package + (inherit pam-mount) + (name "greetd-pam-mount") + (arguments + (substitute-keyword-arguments (package-arguments pam-mount) + ((#:configure-flags flags ''()) + #~(cons* "--with-rundir=/run/greetd" #$flags)) + ((#:phases phases) + #~(modify-phases #$phases + (add-after 'unpack 'patch-config-file-name + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/pam_mount.c" + ((".*define CONFIGFILE .*$") + "#define CONFIGFILE \"/etc/security/greetd_pam_mount.conf.xml\"\n") + (("pam_mount_config") "greetd_pam_mount_config") + (("pam_mount_system_authtok") "greetd_pam_mount_system_authtok")))))))) + (synopsis "pam-mount specifically compiled for use with greetd") + (description + "Pam-mount is a PAM module that can mount volumes when a user logs in. +It supports mounting local filesystems of any kind the normal mount utility +supports. It can also mount encrypted LUKS volumes using the password +supplied by the user when logging in. + +This package inherits pam-mount in the way that it is compiled specifically +for use with greetd daemon. It uses different configuration location and +name space for storing data in PAM. + +greetd-pam-mount is used in configuration of greetd to provide +auto-(mounting/unmounting) of XDG_RUNTIME_DIR in the way that it will not +interfere with default pam-mount configuration."))) -- 2.36.1 From debbugs-submit-bounces@debbugs.gnu.org Mon Jun 13 10:46:08 2022 Received: (at 49969) by debbugs.gnu.org; 13 Jun 2022 14:46:08 +0000 Received: from localhost ([127.0.0.1]:60082 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o0lKO-00069f-3R for submit@debbugs.gnu.org; Mon, 13 Jun 2022 10:46:08 -0400 Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:43528 helo=nomad-cl1.muradm.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o0lK9-0005yv-Ht for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 10:45:54 -0400 Received: from localhost ([127.0.0.1]:35052) by nomad-cl1.muradm.net with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1o0lI0-0003jD-8d for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 14:43:36 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; s=mail; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:To:From:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=41KHYxDeMIq0Z60Ijd7P4iegnhE3lhaVnyFApjAZRhU=; b=FktNa6N7xN48RxvpWN6hL3emzg JoBaVgbWu44kunjRdhM8oT5BNsJS+lPQZvZ+WKTG2MCrggpqh6y2t2nbztsjojiopfRgEzDmLfZuZ SVekldQUURANeri23StdS8dRywn7vA7+MqI3aS4p8VtZOkXbXNHQrSIM4YMDS6Dh24pgkZDmFOH0v M3Le7MeAh7mrpn5ps98xAfhIIdlqJsnDIdx+uJTUveFZbJhBvFG4T7PzGN4FQc0+ZYFokPRB9yJrA YDP0ywyRkTTfKdePUUTze0QBoNia5C8ACuXQyL+JwarUFfzV1E6wjYejblvPXfu/0ST5/Bh6uet2p H4fQZAVq2LlKSbs5VK1h+Y1kv1C4nX4GhFj89eanpP4/LienYx14lW5d4zUMS4NK3tcjnSlz5ih66 75iNpso3L2kjYJ26Vb8jbO5nUqCUcM4P63HxC4gJb6P+jt51lgkrw9TnEQ4EvoMPXhQyaFFW+nUi8 q0hQVkEzlo3i9veYoAeU2NaF; Received: from muradm by localhost with local (Exim 4.95) (envelope-from ) id 1o0lK8-0002ws-3O for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 17:45:48 +0300 From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v11 1/8] gnu: crates-io: Add rust-enquote 1.1.0. Date: Mon, 13 Jun 2022 17:45:39 +0300 Message-Id: <20220613144546.11306-2-mail@muradm.net> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220613144546.11306-1-mail@muradm.net> References: <6e4bf02cf382ff003951fc2f2bdf96289384ece2.camel@telenet.be> <20220613144546.11306-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/crates-io.scm (rust-enquote-1): New variable --- gnu/packages/crates-io.scm | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 86313f5e4f..a4d381899e 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -19,6 +19,7 @@ ;;; Copyright © 2021 Antero Mejr ;;; Copyright © 2021 Maxim Cournoyer ;;; Copyright © 2021 Vinicius Monego +;;; Copyright © 2021 muradm ;;; Copyright © 2021, 2022 Petr Hodina ;;; Copyright © 2021, 2022 Ricardo Wurmus ;;; Copyright © 2021 Jacob Hrbek @@ -73053,3 +73054,20 @@ (define-public rust-shell2batch-0.4 and automatically convert it to a windows batch file, this library provides a way to convert simple shell commands to windows batch commands.") (license license:asl2.0))) + +(define-public rust-enquote-1 + (package + (name "rust-enquote") + (version "1.1.0") + (home-page "https://github.com/reujab/enquote") + (source (origin + (method url-fetch) + (uri (crate-uri "enquote" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0clrjghlfkkb7sndabs5wch0fz2nif6nj4b117s8kqxx3nqnrhq6")))) + (build-system cargo-build-system) + (synopsis "Rust library that quotes, unquotes, and unescapes strings") + (description "A Rust library quotes, unquotes, and unescapes strings") + (license license:unlicense))) -- 2.36.1 From debbugs-submit-bounces@debbugs.gnu.org Mon Jun 13 10:46:10 2022 Received: (at 49969) by debbugs.gnu.org; 13 Jun 2022 14:46:10 +0000 Received: from localhost ([127.0.0.1]:60084 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o0lKS-0006D2-DN for submit@debbugs.gnu.org; Mon, 13 Jun 2022 10:46:09 -0400 Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:43538 helo=nomad-cl1.muradm.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o0lKE-00062b-A0 for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 10:45:55 -0400 Received: from localhost ([127.0.0.1]:35060) by nomad-cl1.muradm.net with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1o0lI4-0003jQ-Q4 for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 14:43:41 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; s=mail; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:To:From:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=j2WU1LsszHWe7mflP/Eu6HYcyIxRvEvzFmUrg20g4/w=; b=KWbl/hEh5uAo7Rzkbi8FDSpyDs dgWi8lUCHGsgHHyQCCZ1zzEOcrDABq/TSVVJb/TzF9IR/PlI+1PVhY82wwIw02etqWeCTHXh8F5WQ Ry5UU4/ZkYsx0YYN8JqeMsuZ6Yzd23e0PmlqpqPYuXEWeLnscK3RdRi+QLmBuMqgZrdvWCAvWav5c G7Vt51HHTQht0oVMaplYVLnhBxn730x2Vo7w+3RYJEezEVQK1lS/B3kOxYGGRSkUP6Ul/dImSSUZO /OvefnxIlPR/pfVkG3nRvTxS/k2HXMYJMq4D3/IKLwjS15wXoQ/JNrvJVt6qI2OZX/7HrM/q0eh2s m1K+QPkZrGiRkLQFjQrZSiJa/ZUyPvg7SLqE3j0ca0aA0hRdh9gz8UmzprpdekwoRvE/WuSWl+Wdj MyBCCVBZyCBJa72xCxQ7Mcu2Dfloc6ZAcOnWHEUX5bHAKnM8U4FlRScoOwbPuVwCZpYzwxMYQuRH7 xE8jqhwXNh2cK8DMf2GllH+x; Received: from muradm by localhost with local (Exim 4.95) (envelope-from ) id 1o0lKC-0002x4-J8 for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 17:45:52 +0300 From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v11 5/8] gnu: base: Add greetd-service-type. Date: Mon, 13 Jun 2022 17:45:43 +0300 Message-Id: <20220613144546.11306-6-mail@muradm.net> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220613144546.11306-1-mail@muradm.net> References: <6e4bf02cf382ff003951fc2f2bdf96289384ece2.camel@telenet.be> <20220613144546.11306-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/services/base.scm (greetd-service-type): New variable * gnu/services/base.scm (greetd-configuration): New data type * gnu/services/base.scm (greetd-terminal-configuration): New data type * gnu/services/base.scm (greetd-agreety-session): New data type * gnu/services/base.scm (pam-limits-service-type): Shoul be aware of greetd PAM service * gnu/services/pam-mount.scm (pam-mount-pam-service): Shoul be aware of greetd PAM service --- doc/guix.texi | 137 +++++++++++++++++++++++ gnu/services/base.scm | 223 ++++++++++++++++++++++++++++++++++++- gnu/services/pam-mount.scm | 2 +- 3 files changed, 360 insertions(+), 2 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index ea133d519a..997b93c831 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -96,6 +96,7 @@ Copyright @copyright{} 2021 Domagoj Stolfa@* Copyright @copyright{} 2021 Hui Lu@* Copyright @copyright{} 2021 pukkamustard@* Copyright @copyright{} 2021 Alice Brenon@* +Copyright @copyright{} 2021 muradm@* Copyright @copyright{} 2021 Josselin Poiret@* Copyright @copyright{} 2021 Andrew Tropin@* Copyright @copyright{} 2021 Sarah Morgensen@* @@ -18019,6 +18020,142 @@ about the Pluggable Authentication Module (PAM) limits, refer to the @samp{pam_limits} man page from the @code{linux-pam} package. @end deffn +@defvr {Scheme Variable} greetd-service-type +@uref{https://git.sr.ht/~kennylevinsen/greetd, @code{greetd}} is a minimal and +flexible login manager daemon, that makes no assumptions about what you +want to launch. + +If you can run it from your shell in a TTY, greetd can start it. If it +can be taught to speak a simple JSON-based IPC protocol, then it can be +a geeter. + +@code{greetd-service-type} provides necessary infrastructure for logging +in users, including: + +@itemize @bullet +@item +@code{greetd} PAM service + +@item +Special variation of @code{pam-mount} to mount @code{XDG_RUNTIME_DIR} +@end itemize + +Here is example of switching from @code{mingetty-service-type} to +@code{greetd-service-type}, and how different terminals could be: + +@lisp + (append + (modify-services %base-services + ;; greetd-service-type provides "greetd" PAM service + (delete login-service-type) + ;; and can be used in place of mingetty-service-type + (delete mingetty-service-type)) + (list + (service greetd-service-type + (greetd-configuration + (terminals + (list + ;; we can make any terminal active by default + (greetd-terminal-configuration (terminal-vt "1") (terminal-switch #t)) + ;; we can make environment without XDG_RUNTIME_DIR set + ;; even provide our own environment variables + (greetd-terminal-configuration + (terminal-vt "2") + (default-session-command + (greetd-agreety-session + (extra-env '(("MY_VAR" . "1"))) + (xdg-env? #f)))) + ;; we can use different shell instead of default bash + (greetd-terminal-configuration + (terminal-vt "3") + (default-session-command + (greetd-agreety-session (command (file-append zsh "/bin/zsh"))))) + ;; we can use any other executable command as greeter + (greetd-terminal-configuration + (terminal-vt "4") + (default-session-command (program-file "my-noop-greeter" #~(exit)))) + (greetd-terminal-configuration (terminal-vt "5")) + (greetd-terminal-configuration (terminal-vt "6")))))) + ;; mingetty-service-type can be used in parallel + ;; if needed to do so, do not (delete login-service-type) + ;; as illustrated above + #| (service mingetty-service-type (mingetty-configuration (tty "tty8"))) |#)) +@end lisp +@end defvr + +@deftp {Data Type} greetd-configuration +Configuration record for the @code{greetd-service-type}. +@table @asis + +@item @code{motd} +A file-like object containing the ``message of the day''. + +@item @code{allow-empty-passwords?} (default: @code{#t}) +Allow empty passwords by default so that first-time users can log in when +the 'root' account has just been created. + +@item @code{terminals} (default: @code{'()}) +List of @code{greetd-terminal-configuration} per terminal for which +@code{greetd} should be started. +@end table +@end deftp + +@deftp {Data Type} greetd-terminal-configuration +Configuration record for per terminal greetd daemon service. + +@table @asis +@item @code{greetd} (default: @code{greetd}) +The greetd package to use. + +@item @code{config-file-name} +Configuration file name to use for greetd daemon. Generally, autogenerated +derivation based on @code{terminal-vt} value. + +@item @code{log-file-name} +Log file name to use for greetd daemon. Generally, autogenerated +name based on @code{terminal-vt} value. + +@item @code{terminal-vt} (default: @samp{"7"}) +The VT to run on. Use of a specific VT with appropriate conflict avoidance +is recommended. + +@item @code{terminal-switch} (default: @code{#f}) +Make this terminal active on start of @code{greetd}. + +@item @code{default-session-user} (default: @samp{"greeter"}) +The user to use for running the greeter. + +@item @code{default-session-command} (default: @code{(greetd-agreety-session)}) +Can be either instance of @code{greetd-agreety-session} configuration or +@code{gexp->script} like object to use as greeter. + +@end table +@end deftp + +@deftp {Data Type} greetd-agreety-session +Configuration record for the agreety greetd greeter. + +@table @asis +@item @code{agreety} (default: @code{greetd}) +The package with @command{/bin/agreety} command. + +@item @code{command} (default: @code{(file-append bash "/bin/bash")}) +Command to be started by @command{/bin/agreety} on successful login. + +@item @code{command-args} (default: @code{'("-l")}) +Command arguments to pass to command. + +@item @code{extra-env} (default: @code{'()}) +Extra environment variables to set on login. + +@item @code{xdg-env?} (default: @code{#t}) +If true @code{XDG_RUNTIME_DIR} and @code{XDG_SESSION_TYPE} will be set +before starting command. One should note that, @code{extra-env} variables +are set right after mentioned variables, so that they can be overriden. + +@end table +@end deftp + @node Scheduled Job Execution @subsection Scheduled Job Execution diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 6865d03f25..0e7bfe7f5a 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -16,6 +16,7 @@ ;;; Copyright © 2021 qblade ;;; Copyright © 2021 Hui Lu ;;; Copyright © 2021, 2022 Maxim Cournoyer +;;; Copyright © 2021 muradm ;;; Copyright © 2022 Guillaume Le Vaillant ;;; ;;; This file is part of GNU Guix. @@ -219,6 +220,11 @@ (define-module (gnu services base) pam-limits-service-type pam-limits-service + greetd-service-type + greetd-configuration + greetd-terminal-configuration + greetd-agreety-session + %base-services)) ;;; Commentary: @@ -1439,7 +1445,7 @@ (define pam-limits-service-type (module "pam_limits.so") (arguments '("conf=/etc/security/limits.conf"))))) (if (member (pam-service-name pam) - '("login" "su" "slim" "gdm-password" "sddm" + '("login" "greetd" "su" "slim" "gdm-password" "sddm" "sudo" "sshd")) (pam-service (inherit pam) @@ -2775,6 +2781,221 @@ (define %qemu-static-networking (provision '(networking)) (name-servers '("10.0.2.3")))) + +;;; +;;; greetd-service-type -- minimal and flexible login manager daemon +;;; + +(define-record-type* + greetd-agreety-session make-greetd-agreety-session + greetd-agreety-session? + (agreety greetd-agreety (default greetd)) + (command greetd-agreety-command (default (file-append bash "/bin/bash"))) + (command-args greetd-agreety-command-args (default '("-l"))) + (extra-env greetd-agreety-extra-env (default '())) + (xdg-env? greetd-agreety-xdg-env? (default #t))) + +(define greetd-agreety-tty-session-command + (match-lambda + (($ _ command args extra-env) + (program-file + "agreety-tty-session-command" + #~(begin + (use-modules (ice-9 match)) + (for-each (match-lambda ((var . val) (setenv var val))) + (quote (#$@extra-env))) + (apply execl #$command #$command (list #$@args))))))) + +(define greetd-agreety-tty-xdg-session-command + (match-lambda + (($ _ command args extra-env) + (program-file + "agreety-tty-xdg-session-command" + #~(begin + (use-modules (ice-9 match)) + (let* + ((username (getenv "USER")) + (useruid (passwd:uid (getpwuid username))) + (useruid (number->string useruid))) + (setenv "XDG_SESSION_TYPE" "tty") + (setenv "XDG_RUNTIME_DIR" (string-append "/run/user/" useruid))) + (for-each (match-lambda ((var . val) (setenv var val))) + (quote (#$@extra-env))) + (apply execl #$command #$command (list #$@args))))))) + +(define (make-greetd-agreety-session-command config command) + (let ((agreety (file-append (greetd-agreety config) "/bin/agreety"))) + (program-file + "agreety-command" + #~(execl #$agreety #$agreety "-c" #$command)))) + +(define (make-greetd-default-session-command config-or-command) + (cond ((greetd-agreety-session? config-or-command) + (cond ((greetd-agreety-xdg-env? config-or-command) + (make-greetd-agreety-session-command + config-or-command + (greetd-agreety-tty-xdg-session-command config-or-command))) + (#t + (make-greetd-agreety-session-command + config-or-command + (greetd-agreety-tty-session-command config-or-command))))) + (#t config-or-command))) + +(define-record-type* + greetd-terminal-configuration make-greetd-terminal-configuration + greetd-terminal-configuration? + (greetd greetd-package (default greetd)) + (config-file-name greetd-config-file-name (thunked) + (default (default-config-file-name this-record))) + (log-file-name greetd-log-file-name (thunked) + (default (default-log-file-name this-record))) + (terminal-vt greetd-terminal-vt (default "7")) + (terminal-switch greetd-terminal-switch (default #f)) + (default-session-user greetd-default-session-user (default "greeter")) + (default-session-command greetd-default-session-command + (default (greetd-agreety-session)) + (sanitize make-greetd-default-session-command))) + +(define (default-config-file-name config) + (string-join (list "config-" (greetd-terminal-vt config) ".toml") "")) + +(define (default-log-file-name config) + (string-join (list "/var/log/greetd-" (greetd-terminal-vt config) ".log") "")) + +(define (make-greetd-terminal-configuration-file config) + (let* + ((config-file-name (greetd-config-file-name config)) + (terminal-vt (greetd-terminal-vt config)) + (terminal-switch (greetd-terminal-switch config)) + (default-session-user (greetd-default-session-user config)) + (default-session-command (greetd-default-session-command config))) + (mixed-text-file + config-file-name + "[terminal]\n" + "vt = " terminal-vt "\n" + "switch = " (if terminal-switch "true" "false") "\n" + "[default_session]\n" + "user = " default-session-user "\n" + "command = " default-session-command "\n"))) + +(define %greetd-accounts + (list (user-account + (name "greeter") + (group "wheel") + (supplementary-groups '("users" "tty" "input" "video" "audio")) + (system? #t)))) + +(define %greetd-file-systems + (list (file-system + (device "none") + (mount-point "/run/greetd/pam_mount") + (type "tmpfs") + (check? #f) + (flags '(no-suid no-dev no-exec)) + (options "mode=0755") + (create-mount-point? #t)))) + +(define %greetd-pam-mount-rules + `((debug (@ (enable "0"))) + (volume (@ (sgrp "users") + (fstype "tmpfs") + (mountpoint "/run/user/%(USERUID)") + (options "noexec,nosuid,nodev,size=1g,mode=0700,uid=%(USERUID),gid=%(USERGID)"))) + (logout (@ (wait "0") + (hup "0") + (term "yes") + (kill "no"))) + (mkmountpoint (@ (enable "1") (remove "true"))))) + +(define-record-type* + greetd-configuration make-greetd-configuration + greetd-configuration? + (motd greetd-motd (default %default-motd)) + (allow-empty-passwords? greetd-allow-empty-passwords? (default #t)) + (terminals greetd-terminals (default '()))) + +(define (make-greetd-pam-mount-conf-file config) + (computed-file + "greetd_pam_mount.conf.xml" + #~(begin + (use-modules (sxml simple)) + (call-with-output-file #$output + (lambda (port) + (sxml->xml + '(*TOP* + (*PI* xml "version='1.0' encoding='utf-8'") + (pam_mount + #$@%greetd-pam-mount-rules + (pmvarrun + #$(file-append greetd-pam-mount + "/sbin/pmvarrun -u '%(USER)' -o '%(OPERATION)'")))) + port)))))) + +(define (greetd-etc-service config) + `(("security/greetd_pam_mount.conf.xml" + ,(make-greetd-pam-mount-conf-file config)))) + +(define (greetd-pam-service config) + (define optional-pam-mount + (pam-entry + (control "optional") + (module #~(string-append #$greetd-pam-mount "/lib/security/pam_mount.so")) + (arguments '("disable_interactive")))) + + (list + (unix-pam-service "greetd" + #:login-uid? #t + #:allow-empty-passwords? + (greetd-allow-empty-passwords? config) + #:motd + (greetd-motd config)) + (lambda (pam) + (if (member (pam-service-name pam) + '("login" "greetd" "su" "slim" "gdm-password")) + (pam-service + (inherit pam) + (auth (append (pam-service-auth pam) + (list optional-pam-mount))) + (session (append (pam-service-session pam) + (list optional-pam-mount)))) + pam)))) + +(define (greetd-shepherd-services config) + (map + (lambda (tc) + (let* + ((greetd-bin (file-append (greetd-package tc) "/sbin/greetd")) + (greetd-conf (make-greetd-terminal-configuration-file tc)) + (greetd-log (greetd-log-file-name tc)) + (greetd-vt (greetd-terminal-vt tc))) + (shepherd-service + (documentation "Minimal and flexible login manager daemon") + (requirement '(user-processes host-name udev virtual-terminal)) + (provision (list (symbol-append + 'term-tty + (string->symbol (greetd-terminal-vt tc))))) + (start #~(make-forkexec-constructor + (list #$greetd-bin "-c" #$greetd-conf) + #:log-file #$greetd-log)) + (stop #~(make-kill-destructor))))) + (greetd-terminals config))) + +(define greetd-service-type + (service-type + (name 'greetd) + (description "Provides necessary infrastructure for logging into the +system including @code{greetd} PAM service, @code{pam-mount} module to +mount/unmount /run/user/ directory for user and @code{greetd} +login manager daemon.") + (extensions + (list + (service-extension account-service-type (const %greetd-accounts)) + (service-extension file-system-service-type (const %greetd-file-systems)) + (service-extension etc-service-type greetd-etc-service) + (service-extension pam-root-service-type greetd-pam-service) + (service-extension shepherd-root-service-type greetd-shepherd-services))) + (default-value (greetd-configuration)))) + (define %base-services ;; Convenience variable holding the basic services. diff --git a/gnu/services/pam-mount.scm b/gnu/services/pam-mount.scm index 33649b0f7c..e60781d05b 100644 --- a/gnu/services/pam-mount.scm +++ b/gnu/services/pam-mount.scm @@ -90,7 +90,7 @@ (define optional-pam-mount (module #~(string-append #$pam-mount "/lib/security/pam_mount.so")))) (list (lambda (pam) (if (member (pam-service-name pam) - '("login" "su" "slim" "gdm-password" "sddm")) + '("login" "greetd" "su" "slim" "gdm-password" "sddm")) (pam-service (inherit pam) (auth (append (pam-service-auth pam) -- 2.36.1 From debbugs-submit-bounces@debbugs.gnu.org Mon Jun 13 10:46:10 2022 Received: (at 49969) by debbugs.gnu.org; 13 Jun 2022 14:46:10 +0000 Received: from localhost ([127.0.0.1]:60086 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o0lKT-0006Dw-V3 for submit@debbugs.gnu.org; Mon, 13 Jun 2022 10:46:10 -0400 Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:43540 helo=nomad-cl1.muradm.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o0lKF-00063P-Cv for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 10:45:56 -0400 Received: from localhost ([127.0.0.1]:35062) by nomad-cl1.muradm.net with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1o0lI6-0003jT-2T for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 14:43:42 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; s=mail; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:To:From:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=po1J4ShuM0sOY+4h1QcvWtZw4wM1NBH6QqFVX7ESczI=; b=Yx0dvDFuyFn8ewNHEcF+1JQ8rQ oQL30t3ZAWXuyWGBl+XhCZbnQWZhdyyp9sRvQfhIcBbFzXpx8Jr4Ww7mtVwzOonF0bbXz/CfcqigS uqcsdQFE7Q/r5XcsHOogB4Bd30SXjrJRZwbYasiInP7wEnSil69oX8udtfITi0KeZaJMOEI+XJ8WD gSgWSqekPiaHVkKoL+3Ngwnd2qO23eRYbTS95JxAVGl9BD0k00aDPin8RxWD/7YrE5l3cU11QIDJY dRIZb4EmlpVXNF1EGiNDd0zJHC4R+8BXPEjDMoWpeZOwNyqagzkQ3k10sFSKQIMZBFd+ozasD1EAL cBga6W5zU8iiQ7XtGiDZm5zIyjP5FGsspXMK93+eY92jbi0YIGMK0FTxPFwv+mnV9o7GSdiKlqiEm FchIlsElVd6frkvfGBRgrZO/DyYxXCkayJm+n+vzk6hidQIFXjBk+ojOP0lwAlykNwgfEXPM9YEzG Z/cssevmE9U3kQPkgIPT4q94; Received: from muradm by localhost with local (Exim 4.95) (envelope-from ) id 1o0lKD-0002x7-R9 for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 17:45:53 +0300 From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v11 6/8] gnu: admin: Add libseat 0.8.0 and move seatd. Date: Mon, 13 Jun 2022 17:45:44 +0300 Message-Id: <20220613144546.11306-7-mail@muradm.net> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220613144546.11306-1-mail@muradm.net> References: <6e4bf02cf382ff003951fc2f2bdf96289384ece2.camel@telenet.be> <20220613144546.11306-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/admin.scm (libseat): New variable * gnu/packages/admin.scm (seatd): New variable * gnu/packages/freedesktop.scm (seatd): Remove variable * gnu/packages/wm.scm (wlroots): Replace seatd input with libseat --- gnu/packages/admin.scm | 53 ++++++++++++++++++++++++++++++++++++ gnu/packages/freedesktop.scm | 29 -------------------- gnu/packages/wm.scm | 4 ++- 3 files changed, 56 insertions(+), 30 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index d6e1d819ab..eb6450b4da 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -46,6 +46,7 @@ ;;; Copyright © 2021 Maxim Cournoyer ;;; Copyright © 2021 Maxime Devos ;;; Copyright © 2021 muradm +;;; Copyright © 2021 pineapples ;;; Copyright © 2021 Petr Hodina ;;; Copyright © 2021 Artyom V. Poptsov ;;; Copyright © 2022 Wamm K. D. @@ -104,6 +105,7 @@ (define-module (gnu packages admin) #:use-module (gnu packages elf) #:use-module (gnu packages file) #:use-module (gnu packages flex) + #:use-module (gnu packages freedesktop) #:use-module (gnu packages gawk) #:use-module (gnu packages gettext) #:use-module (gnu packages gl) @@ -5097,3 +5099,54 @@ (define-public greetd-pam-mount greetd-pam-mount is used in configuration of greetd to provide auto-(mounting/unmounting) of XDG_RUNTIME_DIR in the way that it will not interfere with default pam-mount configuration."))) + +(define-public libseat + (package + (name "libseat") + (version "0.7.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~kennylevinsen/seatd") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "10f8387yy5as547xjjhl0cna6iywdgjmw0iq2nvcs8q6vlpnik4v")))) + (build-system meson-build-system) + (arguments + `(#:configure-flags '("-Dlibseat-logind=elogind" + "-Dserver=disabled"))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (propagated-inputs + `(("elogind" ,elogind))) + (home-page "https://sr.ht/~kennylevinsen/seatd") + (synopsis "Seat management library") + (description + "This package provides a universal seat management library that +allows applications to use whatever seat management is available.") + (license license:expat))) + +(define-public seatd + (package + (inherit libseat) + (name "seatd") + (arguments + `(#:configure-flags '("-Dlibseat-logind=elogind") + #:phases + (modify-phases %standard-phases + (add-after 'install 'remove-libs + (lambda* (#:key outputs #:allow-other-keys) + (with-directory-excursion (assoc-ref outputs "out") + (for-each delete-file-recursively '("lib" "include")))))))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("scdoc" ,scdoc))) + (inputs '()) + (synopsis "Seat management daemon") + (description + "This package provides a minimal seat management daemon whose task is to +mediate access to shared devices, such as graphics and input, for applications +that require it.") + (license license:expat))) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index fc2c45c1f1..309876867a 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -849,35 +849,6 @@ (define (source-file regexp) with localed. This package is extracted from the broader systemd package.") (license license:lgpl2.1+))) -(define-public seatd - (package - (name "seatd") - (version "0.5.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://git.sr.ht/~kennylevinsen/seatd") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1kglq8v4rnr3415mfaghyv2s2f8mxsy5s881gmm2908ig4n4j297")))) - (build-system meson-build-system) - (arguments - `(#:configure-flags '("-Dlogind=enabled"))) - (native-inputs - (list pkg-config scdoc)) - (propagated-inputs - (list elogind)) - (home-page "https://sr.ht/~kennylevinsen/seatd") - (synopsis "Seat management daemon and library") - (description - "This package provides a minimal seat management daemon whose task is to -mediate access to shared devices, such as graphics and input, for applications -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 packagekit (package (name "packagekit") diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index 123e6ca7e7..24d95ba86c 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -54,6 +54,7 @@ ;;; Copyright © 2022 Daniel Meißner ;;; Copyright © 2022 Pier-Hugues Pellerin ;;; Copyright © 2022 Maxim Cournoyer +;;; Copyright © 2022 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -88,6 +89,7 @@ (define-module (gnu packages wm) #:use-module (guix utils) #:use-module (gnu packages) #:use-module (gnu packages bash) + #:use-module (gnu packages admin) #:use-module (gnu packages autotools) #:use-module (gnu packages base) #:use-module (gnu packages bison) @@ -1537,7 +1539,7 @@ (define-public wlroots libxkbcommon mesa pixman - seatd + libseat wayland wayland-protocols xcb-util-errors -- 2.36.1 From debbugs-submit-bounces@debbugs.gnu.org Mon Jun 13 10:46:39 2022 Received: (at 49969) by debbugs.gnu.org; 13 Jun 2022 14:46:39 +0000 Received: from localhost ([127.0.0.1]:60088 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o0lKj-0006Sl-QK for submit@debbugs.gnu.org; Mon, 13 Jun 2022 10:46:39 -0400 Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:43542 helo=nomad-cl1.muradm.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o0lKG-000643-Dt for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 10:45:57 -0400 Received: from localhost ([127.0.0.1]:35064) by nomad-cl1.muradm.net with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1o0lI7-0003jW-4i for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 14:43:43 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; s=mail; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:To:From:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=9OKNnQJMWqLxmJgn9iWyU3TM14PZmrTLw/2VCc0jci0=; b=mJYBgS2Hg8mBy/7EqNoz+p12e4 Z8+PwQgxiI2mSVHfmSPk+MzVwlLoUXHmcVGOOj3lrNNMx3K46cBZnOUvXvhcGfAUw++2TPBN4RQyG SrPIwKLKBfZ6kz46aoMzcrAmmHXoGcHQIrZP8ACgl5JAb+lA7+NrE4auZcZQmm2806FwpsSGl5DiH vWRM3wdqj5GQI1mZAiwaApLUhKCtMhvhgXSE9x9ieHGjxhmjC6BkW74GomJGiIg73y1NyxISrp7xb NEJTlVVNPWpFuzXGutZQoVuavbZkpMjdgZshd6drucCxma0MlFpUjVKM3qpAS7VIomSRWZVshhmql 4zoQOC1UoMkyH7VH/uIWC6P1u9cfR478hw53oRGpYNdwB/bQXQbfFNJcmBtdNjBJ2bvYApHFcpvNR klTeHXSi6Uomw/iKN1q1Fx0SLmWc3mPomwKP58m6lJSzUqkGRTmQqvC3AKFk8m8rf59XzwYKVXXhj tj3vhAx3NHh31UFHW/kBuW7D; Received: from muradm by localhost with local (Exim 4.95) (envelope-from ) id 1o0lKE-0002xC-SE for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 17:45:54 +0300 From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v11 7/8] gnu: desktop: Add seatd-service-type. Date: Mon, 13 Jun 2022 17:45:45 +0300 Message-Id: <20220613144546.11306-8-mail@muradm.net> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220613144546.11306-1-mail@muradm.net> References: <6e4bf02cf382ff003951fc2f2bdf96289384ece2.camel@telenet.be> <20220613144546.11306-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/services/desktop.scm (seatd-service-type): New variable * gnu/services/desktop.scm (seatd-configuration): New data type fix seatd path --- doc/guix.texi | 46 +++++++++++++++++++++++++++++ gnu/services/desktop.scm | 62 +++++++++++++++++++++++++++++++++++++++- 2 files changed, 107 insertions(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index 997b93c831..799ea932d7 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -22661,6 +22661,52 @@ and ``passwd'' is with the value @code{passwd}. @end table @end deftp +@defvr {Scheme Variable} seatd-service-type +@uref{https://sr.ht/~kennylevinsen/seatd/, seatd} is a minimal seat +management daemon. + +Seat management takes care of mediating access to shared devices (graphics, +input), without requiring the applications needing access to be root. + +@lisp +(append + (list + ;; make sure seatd is running + (service seatd-service-type)) + + ;; normally one would want %base-services + %base-services) + +@end lisp +@end defvr + +@deftp {Data Type} seatd-configuration +Configuration record for the seatd daemon service. + +@table @asis +@item @code{seatd} (default: @code{seatd}) +The seatd package to use. + +@item @code{user} (default: @samp{"root"}) +User to own the seatd socket. + +@item @code{group} (default: @samp{"users"}) +Group to own the seatd socket. + +@item @code{socket} (default: @samp{"/run/seatd.sock"}) +Where to create the seatd socket. + +@item @code{logfile} (default: @samp{"/var/log/seatd.log"}) +Log file to write to. + +@item @code{loglevel} (default: @samp{"error"}) +Log level to output logs. Possible values: @samp{"silent"}, @samp{"error"}, +@samp{"info"} and @samp{"debug"}. + +@end table +@end deftp + + @node Sound Services @subsection Sound Services diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index 0499071436..29a3722f1b 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -13,6 +13,7 @@ ;;; Copyright © 2020 Tobias Geerinckx-Rice ;;; Copyright © 2020 Reza Alizadeh Majd ;;; Copyright © 2021 Brice Waegeneire +;;; Copyright © 2021 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -39,7 +40,9 @@ (define-module (gnu services desktop) #:use-module (gnu services networking) #:use-module (gnu services sound) #:use-module ((gnu system file-systems) - #:select (%elogind-file-systems file-system)) + #:select (%control-groups + %elogind-file-systems + file-system)) #:autoload (gnu services sddm) (sddm-service-type) #:use-module (gnu system) #:use-module (gnu system setuid) @@ -157,6 +160,9 @@ (define-module (gnu services desktop) gnome-keyring-configuration? gnome-keyring-service-type + seatd-configuration + seatd-service-type + %desktop-services)) ;;; Commentary: @@ -1630,6 +1636,60 @@ (define polkit-wheel (define polkit-wheel-service (simple-service 'polkit-wheel polkit-service-type (list polkit-wheel))) + +;;; +;;; seatd-service-type -- minimal seat management daemon +;;; + +(define-record-type* seatd-configuration + make-seatd-configuration + seatd-configuration? + (seatd seatd-package (default seatd)) + (user seatd-user (default "root")) + (group seatd-group (default "users")) + (socket seatd-socket (default "/run/seatd.sock")) + (logfile seatd-logfile (default "/var/log/seatd.log")) + (loglevel seatd-loglevel (default "info"))) + +(define (seatd-shepherd-service config) + (list (shepherd-service + (documentation "Minimal seat management daemon") + (requirement '()) + ;; TODO: once cgroups is separate dependency + ;; here we should depend on it rather than elogind + (provision '(seatd elogind)) + (start #~(make-forkexec-constructor + (list #$(file-append (seatd-package config) "/bin/seatd") + "-u" #$(seatd-user config) + "-g" #$(seatd-group config)) + #:environment-variables + (list (string-append "SEATD_LOGLEVEL=" + #$(seatd-loglevel config)) + (string-append "SEATD_DEFAULTPATH=" + #$(seatd-socket config))) + #:log-file #$(seatd-logfile config))) + (stop #~(make-kill-destructor))))) + +(define seatd-environment + (match-lambda + (($ _ _ _ socket) + `(("SEATD_SOCK" . ,socket))))) + +(define seatd-service-type + (service-type + (name 'seatd) + (description "Seat management takes care of mediating access +to shared devices (graphics, input), without requiring the +applications needing access to be root.") + (extensions + (list + (service-extension session-environment-service-type seatd-environment) + ;; TODO: once cgroups is separate dependency we should not mount it here + ;; for now it is mounted here, because elogind mounts it + (service-extension file-system-service-type (const %control-groups)) + (service-extension shepherd-root-service-type seatd-shepherd-service))) + (default-value (seatd-configuration)))) + ;;; ;;; The default set of desktop services. -- 2.36.1 From debbugs-submit-bounces@debbugs.gnu.org Mon Jun 13 10:46:39 2022 Received: (at 49969) by debbugs.gnu.org; 13 Jun 2022 14:46:39 +0000 Received: from localhost ([127.0.0.1]:60090 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o0lKx-0006f2-3J for submit@debbugs.gnu.org; Mon, 13 Jun 2022 10:46:39 -0400 Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:43544 helo=nomad-cl1.muradm.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o0lKH-00064l-Fn for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 10:45:58 -0400 Received: from localhost ([127.0.0.1]:35066) by nomad-cl1.muradm.net with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1o0lI8-0003jZ-8G for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 14:43:44 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; s=mail; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:To:From:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=V50/s1aHPz1lg/xFgnuRBtKadEuLaqkQs6hVma7/WWM=; b=Un4ToJH9Nwa0qq9rPP9dg0Vzr9 FeWUgLD4iUTFNp9DsRxoDzBHnl7+L1LRTfiOMvP/EbdrTNmWCie5tKagHOOn2XWfaRPVpQSBleyzE d3dKZvlUErV3l3j7O4NLJYdciJkJvzZgrIBqHIYesWn3cmWJgIEzMIzTwiTz4lrL5CmqN+ANL7uAj 01hqhr3QXvohiXnTUxNG26B3GZCoVOtzsvxH2oyVkDyWKogWw+f53oOT1FT9Lr4D9hDOeTEu2COzR nuloxKXmS76Iu7ZG6brPsWWqSTXTbp4RtejQxelrKNZa+0MMxjKTJs8kOKSDaCoJwYSLTlS0ufZra DACNgKs1/GD60H3vC84TO/J0rJZ5BVVrcOscZuKE4eQifTYwCVUchQsFH9mRBMqKJQrmEi+zUtuTa TSHZfzLMFKvXH2HWfzP/v3p4ZNqp+dRwmPl5OZ9sd6D6ETLJ/QVLYJ8UofmQZpgXahtPiLPTk4JYl fqXbNmheJlp4PWxKJg0QdHmq; Received: from muradm by localhost with local (Exim 4.95) (envelope-from ) id 1o0lKF-0002xL-WB for 49969@debbugs.gnu.org; Mon, 13 Jun 2022 17:45:56 +0300 From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v11 8/8] gnu: tests: Add seatd/greetd based minimal desktop system tests. Date: Mon, 13 Jun 2022 17:45:46 +0300 Message-Id: <20220613144546.11306-9-mail@muradm.net> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220613144546.11306-1-mail@muradm.net> References: <6e4bf02cf382ff003951fc2f2bdf96289384ece2.camel@telenet.be> <20220613144546.11306-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/tests/desktop.scm (minimal-desktop): seatd/greetd based minimal desktop test --- gnu/tests/desktop.scm | 212 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 211 insertions(+), 1 deletion(-) diff --git a/gnu/tests/desktop.scm b/gnu/tests/desktop.scm index 57069c0ede..7cc837f42e 100644 --- a/gnu/tests/desktop.scm +++ b/gnu/tests/desktop.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017, 2021 Ludovic Courtès +;;; Copyright © 2021 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -18,13 +19,17 @@ (define-module (gnu tests desktop) #:use-module (gnu tests) + #:use-module (gnu packages shells) #:use-module (gnu services) + #:use-module (gnu services base) #:use-module (gnu services dbus) #:use-module (gnu services desktop) + #:use-module (gnu system) #:use-module (gnu system vm) #:use-module (guix gexp) #:use-module (srfi srfi-1) - #:export (%test-elogind)) + #:export (%test-elogind + %test-minimal-desktop)) ;;; @@ -100,3 +105,208 @@ (define %test-elogind #:imported-modules '((gnu services herd) (guix combinators))))) (run-elogind-test (virtual-machine os)))))) + + +;;; +;;; Seatd/greetd based minimal desktop +;;; + +(define %minimal-services + (append + (modify-services %base-services + ;; greetd-service-type provides "greetd" PAM service + (delete login-service-type) + ;; and can be used in place of mingetty-service-type + (delete mingetty-service-type)) + (list + (service seatd-service-type) + (service greetd-service-type + (greetd-configuration + (terminals + (list + ;; we can make any terminal active by default + (greetd-terminal-configuration (terminal-vt "1") (terminal-switch #t)) + ;; we can make environment without XDG_RUNTIME_DIR set + ;; even provide our own environment variables + (greetd-terminal-configuration + (terminal-vt "2") + (default-session-command + (greetd-agreety-session + (extra-env '(("MY_VAR" . "1"))) + (xdg-env? #f)))) + ;; we can use different shell instead of default bash + (greetd-terminal-configuration + (terminal-vt "3") + (default-session-command + (greetd-agreety-session (command (file-append zsh "/bin/zsh"))))) + ;; we can use any other executable command as greeter + (greetd-terminal-configuration + (terminal-vt "4") + (default-session-command (program-file "my-noop-greeter" #~(exit)))) + (greetd-terminal-configuration (terminal-vt "5")) + (greetd-terminal-configuration (terminal-vt "6")))))) + ;; mingetty-service-type can be used in parallel + ;; if needed to do so, do not (delete login-service-type) + ;; as illustrated above + #| (service mingetty-service-type (mingetty-configuration (tty "tty8"))) |#))) + +(define-syntax-rule (minimal-operating-system user-services ...) + "Return an operating system that includes USER-SERVICES in addition to +minimal %BASE-SERVICES." + (operating-system (inherit %simple-os) + (services (cons* user-services ... %minimal-services)))) + +(define (run-minimal-desktop-test os vm) + (define test + (with-imported-modules '((gnu build marionette) + (guix build syscalls)) + #~(begin + (use-modules (gnu build marionette) + (guix build syscalls) + (srfi srfi-1) + (srfi srfi-64) + (ice-9 pretty-print)) + + (define marionette + (make-marionette #$vm)) + + (define (file-get-all-strings fname) + (marionette-eval '(use-modules (rnrs io ports)) marionette) + (wait-for-file fname marionette #:read 'get-string-all)) + + (define (wait-for-unix-socket-m socket) + (wait-for-unix-socket socket marionette)) + + (mkdir #$output) + (chdir #$output) + + (test-begin "minimal-desktop") + + (test-assert "seatd is ready" + (wait-for-unix-socket-m "/run/seatd.sock")) + + (test-equal "login user on tty1" + "alice\n" + (begin + ;; Wait for tty1. + (marionette-eval + '(begin + (use-modules (gnu services herd)) + (start-service 'term-tty1)) + marionette) + (marionette-control "sendkey ctrl-alt-f1" marionette) + + ;; login as root change alice password and exit + ;; then login as alice + (for-each + (lambda (cmd) (marionette-type cmd marionette) (sleep 1)) + (list + "root\n" + "passwd alice\n" + "alice\n" + "alice\n" + "exit\n" + "alice\n" + "alice\n" + "id -un > logged-in\n")) + + (file-get-all-strings "/home/alice/logged-in"))) + + (test-equal "validate user environment" + '("SEATD_SOCK=/run/seatd.sock" + "XDG_RUNTIME_DIR=/run/user/1000" + "XDG_SEAT=seat0" + "XDG_VTNR=1") + + (begin + (marionette-type "env > env\n" marionette) + (sleep 1) + + (define user-env (string-tokenize + (file-get-all-strings "/home/alice/env"))) + + (define (expected-var var) + (any (lambda (s) (string-contains var s)) + '("SEATD_SOCK" + "XDG_RUNTIME_DIR" + "XDG_SEAT" + "XDG_VTNR"))) + + (sort (filter expected-var user-env) string env\n" marionette) + (sleep 1) + + (define (sock-var? var) + (any (lambda (s) (string-contains var s)) + '("SEATD_SOCK" "GREETD_SOCK"))) + + (define (sock-var-sock var) + (car (cdr (string-split var #\=)))) + + (let* + ((out (file-get-all-strings "/home/alice/env")) + (out (string-tokenize out)) + (out (filter sock-var? out)) + (socks (map sock-var-sock out)) + (socks (map wait-for-unix-socket-m socks))) + (and (= 2 (length socks)) (every identity socks))))) + + (test-assert "greetd is ready" + (begin + (marionette-type "ps -C greetd -o pid,args --no-headers > ps-greetd\n" + marionette) + (sleep 1) + + (define (greetd-daemon? cmd) + (string-contains cmd "config")) + + (define (greetd-cmd-to-pid cmd) + (car (string-split cmd #\space))) + + (define (greetd-pid-to-sock pid) + (string-append "/run/greetd-" pid ".sock")) + + (let* ((out (file-get-all-strings "/home/alice/ps-greetd")) + (out (string-split out #\newline)) + (out (map string-trim-both out)) + (out (filter greetd-daemon? out)) + (pids (map greetd-cmd-to-pid out)) + (socks (map greetd-pid-to-sock pids)) + (socks (map wait-for-unix-socket-m socks))) + (every identity socks)))) + + ;; a bit weak, but tests everything at once actually + (test-equal "check /run/user/ mounted and writable" + "alice\n" + (begin + (marionette-type "echo alice > /run/user/1000/test\n" marionette) + (file-get-all-strings "/run/user/1000/test"))) + + (test-assert "screendump" + (begin + (marionette-control (string-append "screendump " #$output + "/tty1.ppm") + marionette) + (file-exists? "tty1.ppm"))) + + (test-end) + (exit (= (test-runner-fail-count (test-runner-current)) 0))))) + + (gexp->derivation "minimal-desktop" test)) + +(define %test-minimal-desktop + (system-test + (name "minimal-desktop") + (description + "Test whether we can log in when seatd and greetd is enabled") + (value + (let* ((os (marionette-operating-system + (minimal-operating-system) + #:imported-modules '((gnu services herd) + (guix combinators)))) + (vm (virtual-machine os))) + (run-minimal-desktop-test (virtualized-operating-system os '()) + #~(list #$vm)))))) -- 2.36.1 From debbugs-submit-bounces@debbugs.gnu.org Tue Jun 14 08:14:24 2022 Received: (at 49969) by debbugs.gnu.org; 14 Jun 2022 12:14:24 +0000 Received: from localhost ([127.0.0.1]:33309 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o15RA-0000Nu-4c for submit@debbugs.gnu.org; Tue, 14 Jun 2022 08:14:24 -0400 Received: from wout5-smtp.messagingengine.com ([64.147.123.21]:33361) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o15R6-0000Ne-7L for 49969@debbugs.gnu.org; Tue, 14 Jun 2022 08:14:22 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.west.internal (Postfix) with ESMTP id E1BFF3200564; Tue, 14 Jun 2022 08:14:13 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute4.internal (MEProxy); Tue, 14 Jun 2022 08:14:14 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= tom-fitzhenry.me.uk; h=cc:cc:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to; s=fm2; t=1655208853; x= 1655295253; bh=exRJF13i7QJzW2QZjKYmxvibpCDc4eGS+iHMHrswza4=; b=Z sPHLeukQh0oSeFCdLgffPtDKUWx0GQrNHd2AmkaejZwLfYCReqlEN61RujmPR5WO 8ug3zQUiQiFcUiiT+N4g4K4svEzxDG/fnVeFxQbd8oRuKbaOcn+FnMtGGQenbQdj V191ntEtietkP9mthdxmAa6ey/WyhQatTylyC0bXCBatlShDJI5083vN8lbSCs6Z 8HDc46cB0GT9yx67qMQXuSvCDRTx/PjvK00uEP3gpYqH5+MOShB4GuZeTesA4+GW WHh6wHbGLg9qz7ct3j6SJ+bFNRVQ4Jbv0BF6Z7lksAIq1Czqdp1Ui4WXjtoVl3bH tFnsYdcQXOfEK09kNkrpw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:date:date:feedback-id :feedback-id:from:from:in-reply-to:in-reply-to:message-id :mime-version:references:reply-to:sender:subject:subject:to:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; t=1655208853; x=1655295253; bh=exRJF13i7QJzW2QZjKYmxvibpCDc 4eGS+iHMHrswza4=; b=vIrpjEpwXZsu1ywYpsnJ6gyxTrw/LdSRQVNaJzuv+DGm 6HD9OsdhXh0JGKEUfLJfqtqizHA83N/XjtvBDkplHRZERVdD9vUB5g+wb7nM5GSs yrPhJW8Wdh3by7aORMOW1QGdlhkmA5kTVrbaTKSbs/fdy9/le8eNS1mvyIX6xUuf eJkLhV0NF5j9wHAyvDYVVjWuQDfw/3ryKuNOwampw/y2z0ncm02iW2+kQM/crGJN +OBdLNBpUTHinPbybQHAjrjnnzwFwS+V1SBNkqJHMFiHUdsr74P65uUxGvwaNbD0 1BNC9IFTJsYQQQWO+06KL2fNpeRzVZKjkjhnbjrdww== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrudduledggeekucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefhvfevufhfffgjkfgfgggtsehttd ertddtredtnecuhfhrohhmpefvohhmucfhihhtiihhvghnrhihuceothhomhesthhomhdq fhhithiihhgvnhhrhidrmhgvrdhukheqnecuggftrfgrthhtvghrnhepjeevgfehieeute evjefhhffhfeehjedvueegtddvvdffjeevtddugeffkedvudelnecuvehluhhsthgvrhfu ihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepthhomhesthhomhdqfhhithiihh gvnhhrhidrmhgvrdhukh X-ME-Proxy: Feedback-ID: iefc945ae:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 14 Jun 2022 08:14:11 -0400 (EDT) From: Tom Fitzhenry To: muradm Subject: Re: [bug#49969] [PATCH v11 7/8] gnu: desktop: Add seatd-service-type. References: <6e4bf02cf382ff003951fc2f2bdf96289384ece2.camel@telenet.be> <20220613144546.11306-1-mail@muradm.net> <20220613144546.11306-8-mail@muradm.net> Date: Tue, 14 Jun 2022 22:13:51 +1000 In-Reply-To: <20220613144546.11306-8-mail@muradm.net> (muradm's message of "Mon, 13 Jun 2022 17:45:45 +0300") Message-ID: <87a6afwigw.fsf@tom-fitzhenry.me.uk> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49969 Cc: 49969@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) muradm writes: > * gnu/services/desktop.scm (seatd-service-type): New variable I've tested this on my aarch64 RockPro64 and used it to log into Sway from TTY. Worked for me, thanks! From debbugs-submit-bounces@debbugs.gnu.org Wed Jun 15 02:59:02 2022 Received: (at 49969) by debbugs.gnu.org; 15 Jun 2022 06:59:02 +0000 Received: from localhost ([127.0.0.1]:36288 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o1MzV-0000ze-Rd for submit@debbugs.gnu.org; Wed, 15 Jun 2022 02:59:02 -0400 Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:43546 helo=nomad-cl1.muradm.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o1MzS-0000zL-2F for 49969@debbugs.gnu.org; Wed, 15 Jun 2022 02:59:00 -0400 Received: from localhost ([127.0.0.1]:35078) by nomad-cl1.muradm.net with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1o1MxG-0003wU-Gx; Wed, 15 Jun 2022 06:56:42 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; s=mail; h=Content-Type:MIME-Version:Message-ID:In-reply-to:Date:Subject:To: From:References:Sender:Reply-To:Cc:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=UKW5fZcZr5y6FUBJ48zyHQbOtdvUwNTe7oSXr9GB1qI=; b=ScgW3FdekI7inlh+Re2BdXvSml YB9xR3+A6Fb4Z9RwXMIfB6vEZrz5TGUmp0wnoIVqY/VnDqhkqJ2EUCekb2ttDVxmtyUt7MynSOuTN nwcCJ4VaxidPTygQ7g3CCb2TWFhNoR8dDsqyIm6Qn7g/evleWF3+YUOZ5ZoQPT6QYxchiW3639nSd IgbXpCN7/HmeB6lAFlcjUh7ukd0MsHFzCrZVgcHYeNjuSH4Nvl9YSGuPqFQeFRu4MbTLKnKQSop4Q n7vc0pFOjQDyZ9IzC9Lr8UqTvc3g1GGAZzw/IRkQmakELS9hpDbi9KsmTVDeXPmb4uLFv7fuJI2Zi KVhaojoLWXPGjppIAy0c8mtvJAev9/5B3/Rg/KGEAFUBfjXhONfPtybe1BIolMQ7zzHsYNa4EGWW4 SfyjhEXiBCQ4WGRMG05IDH22JV8aUNykP96TnAgl6Wwf/6+Z5sm656TP/rHJVtIou0n7Phett6fne /rfvImaTvwOmLnBxQVe01Cak; Received: from muradm by localhost with local (Exim 4.95) (envelope-from ) id 1o1MzP-0002LY-Rt; Wed, 15 Jun 2022 09:58:55 +0300 References: <6e4bf02cf382ff003951fc2f2bdf96289384ece2.camel@telenet.be> <20220613144546.11306-1-mail@muradm.net> User-agent: mu4e 1.6.10; emacs 29.0.50 From: muradm To: 49969@debbugs.gnu.org, lars@6xq.net, hako@ultrarare.space Subject: Re: [bug#49969] [PATCH v11 0/8] Re: [bug#49969] [PATCH v10 1/7] gnu: crates-io: Add rust-enquote 1.1.0 and rust-pam-sys 0.5.6. Date: Wed, 15 Jun 2022 09:54:25 +0300 In-reply-to: <20220613144546.11306-1-mail@muradm.net> Message-ID: <8735g6if9s.fsf@muradm.net> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain; format=flowed Hi, is there anything else needed to be updated for merging? Thanks in advance, muradm muradm writes: > Fixing as suggested: > * splitting rust packages to commit per package > * linux-pam should be in 'inputs > * varying description > > Thanks in advance, > muradm > > muradm (8): > gnu: crates-io: Add rust-enquote 1.1.0. > gnu: crates-io: Add rust-pam-sys 0.5.6. > gnu: admin: Add greetd 0.8.0. > gnu: admin: Add greetd-pam-mount. > gnu: base: Add greetd-service-type. > gnu: admin: Add libseat 0.8.0 and move seatd. > gnu: desktop: Add seatd-service-type. > gnu: tests: Add seatd/greetd based minimal desktop system > tests. > > doc/guix.texi | 183 ++++++++++++++++++++++++++++ > gnu/packages/admin.scm | 162 +++++++++++++++++++++++++ > gnu/packages/crates-io.scm | 40 +++++++ > gnu/packages/freedesktop.scm | 29 ----- > gnu/packages/wm.scm | 4 +- > gnu/services/base.scm | 223 > ++++++++++++++++++++++++++++++++++- > gnu/services/desktop.scm | 62 +++++++++- > gnu/services/pam-mount.scm | 2 +- > gnu/tests/desktop.scm | 212 > ++++++++++++++++++++++++++++++++- > 9 files changed, 883 insertions(+), 34 deletions(-) --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEESPY5lma9A9l5HGLP6M7O0mLOBeIFAmKpgy8ACgkQ6M7O0mLO BeIRuhAAmH83ZuI4O7bzMGcKO+j4iM3kFqo82/VJ6QBDUeCMcXGTQxxQVOTGwpHT MQUtM454z5rp/2vj8pVPZ6gdoA+dNAgqQ5UwWYh438JGiiZG41J151t89qw81J0K k5YziaDXfwVxyp5NsCtmtfCbhmZ+u0arDmmwCYrx8chG6X3Op72mQNX+VjsoU8kj qKM++ukAKlOroocoxnPUy01idTEqDV1hRpufHrMrPLOQh0zb6Kev/2W0qpLvOZ5H IWVlkHaBtLPaWRVd6UedeYc3ClZbMusMLhW+hZ8mIgK+tBWrHDQed0xe9u/6jvmA l8PqdLfijkwZbtLatiNly6ZDy0q09lrjzJlwpaOIMWKD3lPpBphlNatPLzUpJVEg czFNKnSoXjfXGYIKQDvTicYzalmmHmqt5DZIoe/BjYxv0Y+a3T2czUPTpTuzkYVN V4udAlyKDGIUmJdzFkQ2RBM+TKSqE6G/wXnAc6Al/fkE7SG/gzJP7CiVrv2sxoyW rgzL8UVGOSXSyBZLSl3/Dxu4xplFKwvmiLO7RsN8olZjMjhKBYO7lveb2sVMINxx k+P/yTygxVqMREB/uYxltdEYe4tEd6MRvXPYK8CG7rt5UvYq9IDJmH0fyLdh4JEI D7wKZfIwzO2GyYT105GUCjB1dxKOY7P08Jt1EIbhmaCzSPL5Jts= =VAM8 -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Wed Jun 15 04:28:14 2022 Received: (at 49969) by debbugs.gnu.org; 15 Jun 2022 08:28:14 +0000 Received: from localhost ([127.0.0.1]:36459 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o1ONq-0005XS-1m for submit@debbugs.gnu.org; Wed, 15 Jun 2022 04:28:14 -0400 Received: from mout-p-201.mailbox.org ([80.241.56.171]:41228) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o1ONn-0005XD-85 for 49969@debbugs.gnu.org; Wed, 15 Jun 2022 04:28:12 -0400 Received: from smtp202.mailbox.org (smtp202.mailbox.org [IPv6:2001:67c:2050:b231:465::202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-384) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-201.mailbox.org (Postfix) with ESMTPS id 4LNJN30Lsqz9sYf; Wed, 15 Jun 2022 10:28:03 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=6xq.net; s=MBO0001; t=1655281683; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=VyD6B7I8tbUF0NFczITW4u7oFyn9PgM041qFaFONKIU=; b=L+HOIILjq9QCo5ChyQs4moMtVTGAOB3waBE/bLe3NA0mT5Te9G97sKJaJ+7MUpD0qmsVPt AP6hdIRvWXLc04cEHc+r6OeMBLKnF+hDTVuGv0N6o+nD+XUDoJwQsPx+dTXNsiwgmjnbjs XoDfNnVT9EAnW7wjQ1PJZ+NkxDVm9xMR+WjjJ8pW8MmmUWtfFRVt0XRATvQqxWUqH1qk0F Dnr/L4RuU3aGst8phxbHGpgx9aDH5CIVaqNbefNuRkMcFcRXhyqlVjljulJUrEErKOmrX9 GhpMAXdZn2/1J2BeFez8N3cB5ZDvmQR2GvyINuiqJdOnwGxG1S1PbwgMKz28hw== Date: Wed, 15 Jun 2022 10:28:00 +0200 From: Lars-Dominik Braun To: muradm Subject: Re: [bug#49969] [PATCH v11 0/8] Re: [bug#49969] [PATCH v10 1/7] gnu: crates-io: Add rust-enquote 1.1.0 and rust-pam-sys 0.5.6. Message-ID: References: <6e4bf02cf382ff003951fc2f2bdf96289384ece2.camel@telenet.be> <20220613144546.11306-1-mail@muradm.net> <8735g6if9s.fsf@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <8735g6if9s.fsf@muradm.net> X-Rspamd-Queue-Id: 4LNJN30Lsqz9sYf X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49969 Cc: hako@ultrarare.space, 49969@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Hi, > Hi, is there anything else needed to be updated for merging? any chance of getting that system test working? It currently backtraces for me: ---snip--- Backtrace: 4 (primitive-load "/gnu/store/wwbnxhlshbw39amrwcwbq4i8rkw?") In ice-9/eval.scm: 191:35 3 (_ #f) 196:35 2 (_ #f) 263:9 1 (_ #(#(#) #f)) 155:9 0 (_ _) ice-9/eval.scm:155:9: In procedure struct-vtable: Wrong type argument in position 1 (expecting struct): #f ---snap--- Lars From debbugs-submit-bounces@debbugs.gnu.org Wed Jun 15 05:17:46 2022 Received: (at 49969) by debbugs.gnu.org; 15 Jun 2022 09:17:47 +0000 Received: from localhost ([127.0.0.1]:36490 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o1P9m-0006nI-Iq for submit@debbugs.gnu.org; Wed, 15 Jun 2022 05:17:46 -0400 Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:43548 helo=nomad-cl1.muradm.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o1P9k-0006n2-Li for 49969@debbugs.gnu.org; Wed, 15 Jun 2022 05:17:45 -0400 Received: from localhost ([127.0.0.1]:35080) by nomad-cl1.muradm.net with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1o1P7Y-0003xS-Vm for 49969@debbugs.gnu.org; Wed, 15 Jun 2022 09:15:29 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; s=mail; h=Content-Transfer-Encoding:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Sender:Reply-To:Cc:Content-Type:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=VevqRhRoC2PAtnuG1+JBq5nIRWpEar51xoVSAtsmIDE=; b=cw/QrN57hI8mmqcDl0JpjYBs06 EXfI1jwKnMVQd2/FiaASCqmZilnvwKoUN18ce9VliLma9S4kMQ9G52Jvs6Jf4VhJyoWaa70zmr+76 NEsV5ApxLMytq3XP+6j/F75GfkBxZdtqQCXa7sIJ7RcHj/sP4a2F4g7B0rezUv8KevPF47Wj+PApj k2a1Bp37g5Zoece4Iwa+jv6FHkORUearwgbzgj1N/u3rao/5losIBl6exEu7NpkaZX9V5ICZQ3MLP d+mjfGLaAvz4YA5Em3D6F5piRajVuUiu8+fbA+v5PqqHmmdXcwukjZjYf39Og5AAiSFL8FoiF7nND fnZ7zrIpuylwT8o+x1WeTvMHsed8rMBFPauWqRsF8aPgYHsUzm4Fq9tXx2gzNwKJ7Pc+BeHM6lTa+ Kql7hvXacqtNIQpmh8Zdz0Qvhp4gYULTYesodarTjiW0IQvLbr94lgW1ud0mOr0AED3NdJFGdCWU5 Gt1fovv4KqSowAryXNfwR7zh; Received: from muradm by localhost with local (Exim 4.95) (envelope-from ) id 1o1P9i-0004Oe-Kq for 49969@debbugs.gnu.org; Wed, 15 Jun 2022 12:17:42 +0300 From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v12 0/8] with fixed tests Date: Wed, 15 Jun 2022 12:17:34 +0300 Message-Id: <20220615091742.16880-1-mail@muradm.net> X-Mailer: git-send-email 2.36.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) system test now ends as required muradm (8): gnu: crates-io: Add rust-enquote 1.1.0. gnu: crates-io: Add rust-pam-sys 0.5.6. gnu: admin: Add greetd 0.8.0. gnu: admin: Add greetd-pam-mount. gnu: base: Add greetd-service-type. gnu: admin: Add libseat 0.8.0 and move seatd. gnu: desktop: Add seatd-service-type. gnu: tests: Add seatd/greetd based minimal desktop system tests. doc/guix.texi | 183 ++++++++++++++++++++++++++++ gnu/packages/admin.scm | 162 +++++++++++++++++++++++++ gnu/packages/crates-io.scm | 40 +++++++ gnu/packages/freedesktop.scm | 29 ----- gnu/packages/wm.scm | 4 +- gnu/services/base.scm | 223 ++++++++++++++++++++++++++++++++++- gnu/services/desktop.scm | 62 +++++++++- gnu/services/pam-mount.scm | 2 +- gnu/tests/desktop.scm | 212 ++++++++++++++++++++++++++++++++- 9 files changed, 883 insertions(+), 34 deletions(-) -- 2.36.1 From debbugs-submit-bounces@debbugs.gnu.org Wed Jun 15 05:17:55 2022 Received: (at 49969) by debbugs.gnu.org; 15 Jun 2022 09:17:55 +0000 Received: from localhost ([127.0.0.1]:36502 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o1P9r-0006np-UX for submit@debbugs.gnu.org; Wed, 15 Jun 2022 05:17:55 -0400 Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:43550 helo=nomad-cl1.muradm.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o1P9l-0006n4-GU for 49969@debbugs.gnu.org; Wed, 15 Jun 2022 05:17:46 -0400 Received: from localhost ([127.0.0.1]:35082) by nomad-cl1.muradm.net with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1o1P7Z-0003xV-VV for 49969@debbugs.gnu.org; Wed, 15 Jun 2022 09:15:30 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; s=mail; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:To:From:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=41KHYxDeMIq0Z60Ijd7P4iegnhE3lhaVnyFApjAZRhU=; b=rRWjazAfQ0eb+OZFFFcUqk2pX+ XQBrY4z56FLvzgJUI6EJGC8b3nFrUTu94m5r3zjc65+mnzTRsCtemGdtLu4/O/AFqYuWB2llqFiBx 29MmSm1ZLGh0vyVcvQb6T01vZ6AeKgw7w8ZskkaRND7q0qmmL6hVDrjsx+GdGbywoxLXeeumwjrF5 YD6x4i7vFEmSkufwJAB0p5STyRm9GQ7VVtuyIyfVXucdtqURwPg1OiGEqKEwIyZw+e2jC2S2LEYXV 9upm4N7VwtHRU45S9574Qd6vjkDBqR6bWVM4Lp1XKkWVxK/u3OftdykV4y+cVqEar6UYGviMJSFlG h2dR/+x0hUsqrCkbEivneQMtBxH8frtNCSl0vjlyWTa1wqhNF0twyKYIKtbEy29xSwPWxzoyJ5CK7 XYQIJl01LYn9S4FQf6VerAnpjNU7tGe/KbkDcI9eGwA/Mylsly4jhm8y2NRVglCv1wyItdaFZPpf0 jOn6q4fo/PKW/fB0EaBq0n8g; Received: from muradm by localhost with local (Exim 4.95) (envelope-from ) id 1o1P9j-0004Oh-Q4 for 49969@debbugs.gnu.org; Wed, 15 Jun 2022 12:17:43 +0300 From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v12 1/8] gnu: crates-io: Add rust-enquote 1.1.0. Date: Wed, 15 Jun 2022 12:17:35 +0300 Message-Id: <20220615091742.16880-2-mail@muradm.net> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220615091742.16880-1-mail@muradm.net> References: <20220615091742.16880-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/crates-io.scm (rust-enquote-1): New variable --- gnu/packages/crates-io.scm | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 86313f5e4f..a4d381899e 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -19,6 +19,7 @@ ;;; Copyright © 2021 Antero Mejr ;;; Copyright © 2021 Maxim Cournoyer ;;; Copyright © 2021 Vinicius Monego +;;; Copyright © 2021 muradm ;;; Copyright © 2021, 2022 Petr Hodina ;;; Copyright © 2021, 2022 Ricardo Wurmus ;;; Copyright © 2021 Jacob Hrbek @@ -73053,3 +73054,20 @@ (define-public rust-shell2batch-0.4 and automatically convert it to a windows batch file, this library provides a way to convert simple shell commands to windows batch commands.") (license license:asl2.0))) + +(define-public rust-enquote-1 + (package + (name "rust-enquote") + (version "1.1.0") + (home-page "https://github.com/reujab/enquote") + (source (origin + (method url-fetch) + (uri (crate-uri "enquote" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0clrjghlfkkb7sndabs5wch0fz2nif6nj4b117s8kqxx3nqnrhq6")))) + (build-system cargo-build-system) + (synopsis "Rust library that quotes, unquotes, and unescapes strings") + (description "A Rust library quotes, unquotes, and unescapes strings") + (license license:unlicense))) -- 2.36.1 From debbugs-submit-bounces@debbugs.gnu.org Wed Jun 15 05:17:56 2022 Received: (at 49969) by debbugs.gnu.org; 15 Jun 2022 09:17:56 +0000 Received: from localhost ([127.0.0.1]:36508 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o1P9v-0006o2-JB for submit@debbugs.gnu.org; Wed, 15 Jun 2022 05:17:56 -0400 Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:43552 helo=nomad-cl1.muradm.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o1P9m-0006nB-H9 for 49969@debbugs.gnu.org; Wed, 15 Jun 2022 05:17:46 -0400 Received: from localhost ([127.0.0.1]:35084) by nomad-cl1.muradm.net with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1o1P7b-0003xZ-AO for 49969@debbugs.gnu.org; Wed, 15 Jun 2022 09:15:31 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; s=mail; h=Content-Transfer-Encoding:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Sender:Reply-To:Cc:Content-Type:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=aLHHNuqBMI5250Chq6uMa4We7eN4pnKT9R8u3hlKfJ8=; b=CqLZWYb2TymfmQ/yQY3bdTHFDx NxLUDwwUTwTSuzKxHwi4rkM07Tg19+w+BWwZbjYFjIBhWGZAmzsjzRyDupIXBkgHegF3HM4CpA59w QemJC4wzemrnVjGh3bAo8lfvKtsgAOjk7QMIsxtR7+P5dglKpTLcLB5zLR4CMdZf8PDzMG/T3Zl0q VjdKy9/+rZ5G54fJOWLhS/m3FEIg82PTtqvWcsdUib5FgKO98JokHQ72A9axhVjBPDqHNQtEzIGah cb/+xCuJP5DFAKeuiXswaR7DthDIONhNeCmRZF6vhbsljBEm8WA5N62GkeWMkCqGQgKcjosMYTRnY PxEwbJq62MItKwSAjQQifryAXZw/6YNG1D/4L56W1U7kKcfQ42EZpcz2dl8IoB7rC08nmnHWDMTsQ xWWUXafdYKOFwqaL5zJvnC2g+fRHcA+m6QXz+zY6la5jfOVKA2rPHcXOE5tUsDagrz2Oaw4UMd9ar H86nPmrYV/I4RPSszzc40DdD; Received: from muradm by localhost with local (Exim 4.95) (envelope-from ) id 1o1P9k-0004Ok-UY for 49969@debbugs.gnu.org; Wed, 15 Jun 2022 12:17:44 +0300 From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v12 2/8] gnu: crates-io: Add rust-pam-sys 0.5.6. Date: Wed, 15 Jun 2022 12:17:36 +0300 Message-Id: <20220615091742.16880-3-mail@muradm.net> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220615091742.16880-1-mail@muradm.net> References: <20220615091742.16880-1-mail@muradm.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/crates-io.scm (rust-pam-sys-0.5): New variable --- gnu/packages/crates-io.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index a4d381899e..f93b9b0eea 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -73071,3 +73071,25 @@ (define-public rust-enquote-1 (synopsis "Rust library that quotes, unquotes, and unescapes strings") (description "A Rust library quotes, unquotes, and unescapes strings") (license license:unlicense))) + +(define-public rust-pam-sys-0.5 + (package + (name "rust-pam-sys") + (version "0.5.6") + (home-page "https://github.com/1wilkens/pam-sys") + (source (origin + (method url-fetch) + (uri (crate-uri "pam-sys" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0d14501d5vybjnzxfjf96321xa5wa36x1xvf02h02zq938qmhj6d")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs (("rust-libc" ,rust-libc-0.2)))) + (inputs `(("linux-pam" ,linux-pam))) + (synopsis + "Rust FFI wrappers for the Linux Pluggable Authentication Modules (PAM)") + (description + "This crate uses bindgen to generate the raw FFI definitions for PAM. For a rustified API consider using pam.") + (license (list license:expat license:asl2.0)))) -- 2.36.1 From debbugs-submit-bounces@debbugs.gnu.org Wed Jun 15 05:17:56 2022 Received: (at 49969) by debbugs.gnu.org; 15 Jun 2022 09:17:56 +0000 Received: from localhost ([127.0.0.1]:36510 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o1P9w-0006oC-9N for submit@debbugs.gnu.org; Wed, 15 Jun 2022 05:17:56 -0400 Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:43556 helo=nomad-cl1.muradm.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o1P9o-0006nW-Je for 49969@debbugs.gnu.org; Wed, 15 Jun 2022 05:17:49 -0400 Received: from localhost ([127.0.0.1]:35088) by nomad-cl1.muradm.net with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1o1P7d-0003xf-GP for 49969@debbugs.gnu.org; Wed, 15 Jun 2022 09:15:33 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; s=mail; h=Content-Transfer-Encoding:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Sender:Reply-To:Cc:Content-Type:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=QJcCzGQEbK7Hay3t/cLTMcCKQeBOaopP00hsM6LgYUE=; b=gx1VcmdAkz7Q5Qn6QB4X2WZqEW kY62mUiuUzPsmoLI7ax5YTmyqgjJNNe3i6JWi6M6ISXiZ75pZuvdvSS8qvzBAUTdyyZGV4MzV/y3f gy0jqAqqfaOAPBQbVeqRCQMcnVvGuVX64mLJ7RJCyqjHaElI/b/8xDgcZMzdM5R9BkfeZWvT97iGG qMHPa5VjpxFP7ueTxp7bM614SQAN1EgHCDe7u1nL/fyn3N0Wwke8W4Qp3JTt0gFRj8mE9+N4EKH7v I4pP0MT/ZgGf99bb2kRg/FknyXCGFVsRBCCZUEZ9Uhy0PoPtjKQIS+Pze/cpFd7XlYzwfFkW1FBo+ B95lo/kr/TCGLd83y8nl2TgzFqkCPCWvBGZGsRwx8KYm5mD1S0vtVm1UBA1iJ4tyfzbwWa6VhJviK MYTBjPwNVEreWpEmF0b0L6HosR7qDOHqbWkWRegrICdxt3DizxejeZllSKcZDCP3iZJdraWclDTBJ Inea1CHlIMxYIAg17XTAdVNT; Received: from muradm by localhost with local (Exim 4.95) (envelope-from ) id 1o1P9n-0004Oq-7Z for 49969@debbugs.gnu.org; Wed, 15 Jun 2022 12:17:47 +0300 From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v12 4/8] gnu: admin: Add greetd-pam-mount. Date: Wed, 15 Jun 2022 12:17:38 +0300 Message-Id: <20220615091742.16880-5-mail@muradm.net> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220615091742.16880-1-mail@muradm.net> References: <20220615091742.16880-1-mail@muradm.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/admin.scm (greetd-pam-mount): New variable --- gnu/packages/admin.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 73d70744e1..d6e1d819ab 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -5065,3 +5065,35 @@ (define (scdoc-cmd doc lvl) If it can be taught to speak a simple JSON-based IPC protocol, then it can be a greeter.") (license license:gpl3+))) + +(define-public greetd-pam-mount + (package + (inherit pam-mount) + (name "greetd-pam-mount") + (arguments + (substitute-keyword-arguments (package-arguments pam-mount) + ((#:configure-flags flags ''()) + #~(cons* "--with-rundir=/run/greetd" #$flags)) + ((#:phases phases) + #~(modify-phases #$phases + (add-after 'unpack 'patch-config-file-name + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/pam_mount.c" + ((".*define CONFIGFILE .*$") + "#define CONFIGFILE \"/etc/security/greetd_pam_mount.conf.xml\"\n") + (("pam_mount_config") "greetd_pam_mount_config") + (("pam_mount_system_authtok") "greetd_pam_mount_system_authtok")))))))) + (synopsis "pam-mount specifically compiled for use with greetd") + (description + "Pam-mount is a PAM module that can mount volumes when a user logs in. +It supports mounting local filesystems of any kind the normal mount utility +supports. It can also mount encrypted LUKS volumes using the password +supplied by the user when logging in. + +This package inherits pam-mount in the way that it is compiled specifically +for use with greetd daemon. It uses different configuration location and +name space for storing data in PAM. + +greetd-pam-mount is used in configuration of greetd to provide +auto-(mounting/unmounting) of XDG_RUNTIME_DIR in the way that it will not +interfere with default pam-mount configuration."))) -- 2.36.1 From debbugs-submit-bounces@debbugs.gnu.org Wed Jun 15 05:18:00 2022 Received: (at 49969) by debbugs.gnu.org; 15 Jun 2022 09:18:00 +0000 Received: from localhost ([127.0.0.1]:36512 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o1P9w-0006oO-Or for submit@debbugs.gnu.org; Wed, 15 Jun 2022 05:18:00 -0400 Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:43558 helo=nomad-cl1.muradm.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o1P9p-0006nd-Uy for 49969@debbugs.gnu.org; Wed, 15 Jun 2022 05:17:50 -0400 Received: from localhost ([127.0.0.1]:35090) by nomad-cl1.muradm.net with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1o1P7e-0003xi-Iy for 49969@debbugs.gnu.org; Wed, 15 Jun 2022 09:15:34 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; s=mail; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:To:From:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=j2WU1LsszHWe7mflP/Eu6HYcyIxRvEvzFmUrg20g4/w=; b=y8RDA67KphUCahaWvlvgba0D8B VxOkcPgPizuEph2vLT7VLFArD2/rgsOMYx4OKYTLIgvyBNJYbnHOBhvCp1P1RKB0NjE+618z137rU b3VX/er5ffDd7vmMOe+u6EZQ9PbkF0fQQDqmH0YngtbRo5hwyQHc62hbmOkT6TBShzgyNcoC216jb VKfA2Y6R/MLCgdV0J8wzkYi+A5199TdA2ekoAXyqe3jFQL2tN04isNAWX1kx2/zIRqEe/SQFiwl5d 1LKJ8R09iS90YvGUeg0C0MNUxNG9gyvzGtSlSgz3hV/y7FjzorU7QmIffZMGlaUevbRY1XHmO+KFe tHeZLaFjHbXhjPcSuySGmlaGiCWbTvnN4ZOim91yRTk4oFzydmsBbyBBJI/XsRytMp/AKdGaz3v4c Ru+sQ186z/6AzXNwDp5QgAyF42MQypWooUzcx+jT9iQPr5/fQxJD4J5Xm/4rJx8ggxWGT7FwHtx7n VQxNcSVXg/+ShTOA4kZsjWGU; Received: from muradm by localhost with local (Exim 4.95) (envelope-from ) id 1o1P9o-0004Ot-AY for 49969@debbugs.gnu.org; Wed, 15 Jun 2022 12:17:48 +0300 From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v12 5/8] gnu: base: Add greetd-service-type. Date: Wed, 15 Jun 2022 12:17:39 +0300 Message-Id: <20220615091742.16880-6-mail@muradm.net> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220615091742.16880-1-mail@muradm.net> References: <20220615091742.16880-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/services/base.scm (greetd-service-type): New variable * gnu/services/base.scm (greetd-configuration): New data type * gnu/services/base.scm (greetd-terminal-configuration): New data type * gnu/services/base.scm (greetd-agreety-session): New data type * gnu/services/base.scm (pam-limits-service-type): Shoul be aware of greetd PAM service * gnu/services/pam-mount.scm (pam-mount-pam-service): Shoul be aware of greetd PAM service --- doc/guix.texi | 137 +++++++++++++++++++++++ gnu/services/base.scm | 223 ++++++++++++++++++++++++++++++++++++- gnu/services/pam-mount.scm | 2 +- 3 files changed, 360 insertions(+), 2 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index ea133d519a..997b93c831 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -96,6 +96,7 @@ Copyright @copyright{} 2021 Domagoj Stolfa@* Copyright @copyright{} 2021 Hui Lu@* Copyright @copyright{} 2021 pukkamustard@* Copyright @copyright{} 2021 Alice Brenon@* +Copyright @copyright{} 2021 muradm@* Copyright @copyright{} 2021 Josselin Poiret@* Copyright @copyright{} 2021 Andrew Tropin@* Copyright @copyright{} 2021 Sarah Morgensen@* @@ -18019,6 +18020,142 @@ about the Pluggable Authentication Module (PAM) limits, refer to the @samp{pam_limits} man page from the @code{linux-pam} package. @end deffn +@defvr {Scheme Variable} greetd-service-type +@uref{https://git.sr.ht/~kennylevinsen/greetd, @code{greetd}} is a minimal and +flexible login manager daemon, that makes no assumptions about what you +want to launch. + +If you can run it from your shell in a TTY, greetd can start it. If it +can be taught to speak a simple JSON-based IPC protocol, then it can be +a geeter. + +@code{greetd-service-type} provides necessary infrastructure for logging +in users, including: + +@itemize @bullet +@item +@code{greetd} PAM service + +@item +Special variation of @code{pam-mount} to mount @code{XDG_RUNTIME_DIR} +@end itemize + +Here is example of switching from @code{mingetty-service-type} to +@code{greetd-service-type}, and how different terminals could be: + +@lisp + (append + (modify-services %base-services + ;; greetd-service-type provides "greetd" PAM service + (delete login-service-type) + ;; and can be used in place of mingetty-service-type + (delete mingetty-service-type)) + (list + (service greetd-service-type + (greetd-configuration + (terminals + (list + ;; we can make any terminal active by default + (greetd-terminal-configuration (terminal-vt "1") (terminal-switch #t)) + ;; we can make environment without XDG_RUNTIME_DIR set + ;; even provide our own environment variables + (greetd-terminal-configuration + (terminal-vt "2") + (default-session-command + (greetd-agreety-session + (extra-env '(("MY_VAR" . "1"))) + (xdg-env? #f)))) + ;; we can use different shell instead of default bash + (greetd-terminal-configuration + (terminal-vt "3") + (default-session-command + (greetd-agreety-session (command (file-append zsh "/bin/zsh"))))) + ;; we can use any other executable command as greeter + (greetd-terminal-configuration + (terminal-vt "4") + (default-session-command (program-file "my-noop-greeter" #~(exit)))) + (greetd-terminal-configuration (terminal-vt "5")) + (greetd-terminal-configuration (terminal-vt "6")))))) + ;; mingetty-service-type can be used in parallel + ;; if needed to do so, do not (delete login-service-type) + ;; as illustrated above + #| (service mingetty-service-type (mingetty-configuration (tty "tty8"))) |#)) +@end lisp +@end defvr + +@deftp {Data Type} greetd-configuration +Configuration record for the @code{greetd-service-type}. +@table @asis + +@item @code{motd} +A file-like object containing the ``message of the day''. + +@item @code{allow-empty-passwords?} (default: @code{#t}) +Allow empty passwords by default so that first-time users can log in when +the 'root' account has just been created. + +@item @code{terminals} (default: @code{'()}) +List of @code{greetd-terminal-configuration} per terminal for which +@code{greetd} should be started. +@end table +@end deftp + +@deftp {Data Type} greetd-terminal-configuration +Configuration record for per terminal greetd daemon service. + +@table @asis +@item @code{greetd} (default: @code{greetd}) +The greetd package to use. + +@item @code{config-file-name} +Configuration file name to use for greetd daemon. Generally, autogenerated +derivation based on @code{terminal-vt} value. + +@item @code{log-file-name} +Log file name to use for greetd daemon. Generally, autogenerated +name based on @code{terminal-vt} value. + +@item @code{terminal-vt} (default: @samp{"7"}) +The VT to run on. Use of a specific VT with appropriate conflict avoidance +is recommended. + +@item @code{terminal-switch} (default: @code{#f}) +Make this terminal active on start of @code{greetd}. + +@item @code{default-session-user} (default: @samp{"greeter"}) +The user to use for running the greeter. + +@item @code{default-session-command} (default: @code{(greetd-agreety-session)}) +Can be either instance of @code{greetd-agreety-session} configuration or +@code{gexp->script} like object to use as greeter. + +@end table +@end deftp + +@deftp {Data Type} greetd-agreety-session +Configuration record for the agreety greetd greeter. + +@table @asis +@item @code{agreety} (default: @code{greetd}) +The package with @command{/bin/agreety} command. + +@item @code{command} (default: @code{(file-append bash "/bin/bash")}) +Command to be started by @command{/bin/agreety} on successful login. + +@item @code{command-args} (default: @code{'("-l")}) +Command arguments to pass to command. + +@item @code{extra-env} (default: @code{'()}) +Extra environment variables to set on login. + +@item @code{xdg-env?} (default: @code{#t}) +If true @code{XDG_RUNTIME_DIR} and @code{XDG_SESSION_TYPE} will be set +before starting command. One should note that, @code{extra-env} variables +are set right after mentioned variables, so that they can be overriden. + +@end table +@end deftp + @node Scheduled Job Execution @subsection Scheduled Job Execution diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 6865d03f25..0e7bfe7f5a 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -16,6 +16,7 @@ ;;; Copyright © 2021 qblade ;;; Copyright © 2021 Hui Lu ;;; Copyright © 2021, 2022 Maxim Cournoyer +;;; Copyright © 2021 muradm ;;; Copyright © 2022 Guillaume Le Vaillant ;;; ;;; This file is part of GNU Guix. @@ -219,6 +220,11 @@ (define-module (gnu services base) pam-limits-service-type pam-limits-service + greetd-service-type + greetd-configuration + greetd-terminal-configuration + greetd-agreety-session + %base-services)) ;;; Commentary: @@ -1439,7 +1445,7 @@ (define pam-limits-service-type (module "pam_limits.so") (arguments '("conf=/etc/security/limits.conf"))))) (if (member (pam-service-name pam) - '("login" "su" "slim" "gdm-password" "sddm" + '("login" "greetd" "su" "slim" "gdm-password" "sddm" "sudo" "sshd")) (pam-service (inherit pam) @@ -2775,6 +2781,221 @@ (define %qemu-static-networking (provision '(networking)) (name-servers '("10.0.2.3")))) + +;;; +;;; greetd-service-type -- minimal and flexible login manager daemon +;;; + +(define-record-type* + greetd-agreety-session make-greetd-agreety-session + greetd-agreety-session? + (agreety greetd-agreety (default greetd)) + (command greetd-agreety-command (default (file-append bash "/bin/bash"))) + (command-args greetd-agreety-command-args (default '("-l"))) + (extra-env greetd-agreety-extra-env (default '())) + (xdg-env? greetd-agreety-xdg-env? (default #t))) + +(define greetd-agreety-tty-session-command + (match-lambda + (($ _ command args extra-env) + (program-file + "agreety-tty-session-command" + #~(begin + (use-modules (ice-9 match)) + (for-each (match-lambda ((var . val) (setenv var val))) + (quote (#$@extra-env))) + (apply execl #$command #$command (list #$@args))))))) + +(define greetd-agreety-tty-xdg-session-command + (match-lambda + (($ _ command args extra-env) + (program-file + "agreety-tty-xdg-session-command" + #~(begin + (use-modules (ice-9 match)) + (let* + ((username (getenv "USER")) + (useruid (passwd:uid (getpwuid username))) + (useruid (number->string useruid))) + (setenv "XDG_SESSION_TYPE" "tty") + (setenv "XDG_RUNTIME_DIR" (string-append "/run/user/" useruid))) + (for-each (match-lambda ((var . val) (setenv var val))) + (quote (#$@extra-env))) + (apply execl #$command #$command (list #$@args))))))) + +(define (make-greetd-agreety-session-command config command) + (let ((agreety (file-append (greetd-agreety config) "/bin/agreety"))) + (program-file + "agreety-command" + #~(execl #$agreety #$agreety "-c" #$command)))) + +(define (make-greetd-default-session-command config-or-command) + (cond ((greetd-agreety-session? config-or-command) + (cond ((greetd-agreety-xdg-env? config-or-command) + (make-greetd-agreety-session-command + config-or-command + (greetd-agreety-tty-xdg-session-command config-or-command))) + (#t + (make-greetd-agreety-session-command + config-or-command + (greetd-agreety-tty-session-command config-or-command))))) + (#t config-or-command))) + +(define-record-type* + greetd-terminal-configuration make-greetd-terminal-configuration + greetd-terminal-configuration? + (greetd greetd-package (default greetd)) + (config-file-name greetd-config-file-name (thunked) + (default (default-config-file-name this-record))) + (log-file-name greetd-log-file-name (thunked) + (default (default-log-file-name this-record))) + (terminal-vt greetd-terminal-vt (default "7")) + (terminal-switch greetd-terminal-switch (default #f)) + (default-session-user greetd-default-session-user (default "greeter")) + (default-session-command greetd-default-session-command + (default (greetd-agreety-session)) + (sanitize make-greetd-default-session-command))) + +(define (default-config-file-name config) + (string-join (list "config-" (greetd-terminal-vt config) ".toml") "")) + +(define (default-log-file-name config) + (string-join (list "/var/log/greetd-" (greetd-terminal-vt config) ".log") "")) + +(define (make-greetd-terminal-configuration-file config) + (let* + ((config-file-name (greetd-config-file-name config)) + (terminal-vt (greetd-terminal-vt config)) + (terminal-switch (greetd-terminal-switch config)) + (default-session-user (greetd-default-session-user config)) + (default-session-command (greetd-default-session-command config))) + (mixed-text-file + config-file-name + "[terminal]\n" + "vt = " terminal-vt "\n" + "switch = " (if terminal-switch "true" "false") "\n" + "[default_session]\n" + "user = " default-session-user "\n" + "command = " default-session-command "\n"))) + +(define %greetd-accounts + (list (user-account + (name "greeter") + (group "wheel") + (supplementary-groups '("users" "tty" "input" "video" "audio")) + (system? #t)))) + +(define %greetd-file-systems + (list (file-system + (device "none") + (mount-point "/run/greetd/pam_mount") + (type "tmpfs") + (check? #f) + (flags '(no-suid no-dev no-exec)) + (options "mode=0755") + (create-mount-point? #t)))) + +(define %greetd-pam-mount-rules + `((debug (@ (enable "0"))) + (volume (@ (sgrp "users") + (fstype "tmpfs") + (mountpoint "/run/user/%(USERUID)") + (options "noexec,nosuid,nodev,size=1g,mode=0700,uid=%(USERUID),gid=%(USERGID)"))) + (logout (@ (wait "0") + (hup "0") + (term "yes") + (kill "no"))) + (mkmountpoint (@ (enable "1") (remove "true"))))) + +(define-record-type* + greetd-configuration make-greetd-configuration + greetd-configuration? + (motd greetd-motd (default %default-motd)) + (allow-empty-passwords? greetd-allow-empty-passwords? (default #t)) + (terminals greetd-terminals (default '()))) + +(define (make-greetd-pam-mount-conf-file config) + (computed-file + "greetd_pam_mount.conf.xml" + #~(begin + (use-modules (sxml simple)) + (call-with-output-file #$output + (lambda (port) + (sxml->xml + '(*TOP* + (*PI* xml "version='1.0' encoding='utf-8'") + (pam_mount + #$@%greetd-pam-mount-rules + (pmvarrun + #$(file-append greetd-pam-mount + "/sbin/pmvarrun -u '%(USER)' -o '%(OPERATION)'")))) + port)))))) + +(define (greetd-etc-service config) + `(("security/greetd_pam_mount.conf.xml" + ,(make-greetd-pam-mount-conf-file config)))) + +(define (greetd-pam-service config) + (define optional-pam-mount + (pam-entry + (control "optional") + (module #~(string-append #$greetd-pam-mount "/lib/security/pam_mount.so")) + (arguments '("disable_interactive")))) + + (list + (unix-pam-service "greetd" + #:login-uid? #t + #:allow-empty-passwords? + (greetd-allow-empty-passwords? config) + #:motd + (greetd-motd config)) + (lambda (pam) + (if (member (pam-service-name pam) + '("login" "greetd" "su" "slim" "gdm-password")) + (pam-service + (inherit pam) + (auth (append (pam-service-auth pam) + (list optional-pam-mount))) + (session (append (pam-service-session pam) + (list optional-pam-mount)))) + pam)))) + +(define (greetd-shepherd-services config) + (map + (lambda (tc) + (let* + ((greetd-bin (file-append (greetd-package tc) "/sbin/greetd")) + (greetd-conf (make-greetd-terminal-configuration-file tc)) + (greetd-log (greetd-log-file-name tc)) + (greetd-vt (greetd-terminal-vt tc))) + (shepherd-service + (documentation "Minimal and flexible login manager daemon") + (requirement '(user-processes host-name udev virtual-terminal)) + (provision (list (symbol-append + 'term-tty + (string->symbol (greetd-terminal-vt tc))))) + (start #~(make-forkexec-constructor + (list #$greetd-bin "-c" #$greetd-conf) + #:log-file #$greetd-log)) + (stop #~(make-kill-destructor))))) + (greetd-terminals config))) + +(define greetd-service-type + (service-type + (name 'greetd) + (description "Provides necessary infrastructure for logging into the +system including @code{greetd} PAM service, @code{pam-mount} module to +mount/unmount /run/user/ directory for user and @code{greetd} +login manager daemon.") + (extensions + (list + (service-extension account-service-type (const %greetd-accounts)) + (service-extension file-system-service-type (const %greetd-file-systems)) + (service-extension etc-service-type greetd-etc-service) + (service-extension pam-root-service-type greetd-pam-service) + (service-extension shepherd-root-service-type greetd-shepherd-services))) + (default-value (greetd-configuration)))) + (define %base-services ;; Convenience variable holding the basic services. diff --git a/gnu/services/pam-mount.scm b/gnu/services/pam-mount.scm index 33649b0f7c..e60781d05b 100644 --- a/gnu/services/pam-mount.scm +++ b/gnu/services/pam-mount.scm @@ -90,7 +90,7 @@ (define optional-pam-mount (module #~(string-append #$pam-mount "/lib/security/pam_mount.so")))) (list (lambda (pam) (if (member (pam-service-name pam) - '("login" "su" "slim" "gdm-password" "sddm")) + '("login" "greetd" "su" "slim" "gdm-password" "sddm")) (pam-service (inherit pam) (auth (append (pam-service-auth pam) -- 2.36.1 From debbugs-submit-bounces@debbugs.gnu.org Wed Jun 15 05:18:09 2022 Received: (at 49969) by debbugs.gnu.org; 15 Jun 2022 09:18:09 +0000 Received: from localhost ([127.0.0.1]:36519 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o1PA8-0006pl-SW for submit@debbugs.gnu.org; Wed, 15 Jun 2022 05:18:09 -0400 Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:43560 helo=nomad-cl1.muradm.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o1P9r-0006ng-3W for 49969@debbugs.gnu.org; Wed, 15 Jun 2022 05:17:51 -0400 Received: from localhost ([127.0.0.1]:35092) by nomad-cl1.muradm.net with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1o1P7f-0003xl-U6 for 49969@debbugs.gnu.org; Wed, 15 Jun 2022 09:15:35 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; s=mail; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:To:From:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=po1J4ShuM0sOY+4h1QcvWtZw4wM1NBH6QqFVX7ESczI=; b=q8oqcqF6pS3dZFg80xZZwOqIf9 2ylwx2pYwN1/Trl9nkeiygPHwn94Dlasi3nJpw2BKrQudY549Fu974JCQCTiByOrf6X9heMMnP4tx 1wch+sNjzgu2j2jYAim2H1jwbbqUQM8atOBXD5s6NwN6ahPPqADiTAm0makIo81n42xFQ6WSCp/n+ avUQYG9l7Am7fk4N/wsFXUVfpfggXKpu7Ox0hYASHHLdEl1zhMtmEi2aPeqDoQ3dWsHx+3dN6gMM4 Q7albZcs8y56rTYCqfZS6c27+paA2yPCUVzbT/xPX7lM3VU3I5suARwt/RFVpB+dcNVvXC3kj0BAz 7+fVvGDCLCDFQtY/+3XjoFlSkEtkvk0QNLeqg/UuBcRCNfsAVK8xsF+lx4SHksqJiwtua6OcHSmyR GylNr45CnQJkzsGp/ZSkujmfVpK0XlA3apW5R6IMxU7kkKMS5ba63VI5ivgKYxZhfdJMEdTgsHO0h xr5CwvEur2zuZsSW0nxPb01s; Received: from muradm by localhost with local (Exim 4.95) (envelope-from ) id 1o1P9p-0004Ow-L1 for 49969@debbugs.gnu.org; Wed, 15 Jun 2022 12:17:49 +0300 From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v12 6/8] gnu: admin: Add libseat 0.8.0 and move seatd. Date: Wed, 15 Jun 2022 12:17:40 +0300 Message-Id: <20220615091742.16880-7-mail@muradm.net> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220615091742.16880-1-mail@muradm.net> References: <20220615091742.16880-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/admin.scm (libseat): New variable * gnu/packages/admin.scm (seatd): New variable * gnu/packages/freedesktop.scm (seatd): Remove variable * gnu/packages/wm.scm (wlroots): Replace seatd input with libseat --- gnu/packages/admin.scm | 53 ++++++++++++++++++++++++++++++++++++ gnu/packages/freedesktop.scm | 29 -------------------- gnu/packages/wm.scm | 4 ++- 3 files changed, 56 insertions(+), 30 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index d6e1d819ab..eb6450b4da 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -46,6 +46,7 @@ ;;; Copyright © 2021 Maxim Cournoyer ;;; Copyright © 2021 Maxime Devos ;;; Copyright © 2021 muradm +;;; Copyright © 2021 pineapples ;;; Copyright © 2021 Petr Hodina ;;; Copyright © 2021 Artyom V. Poptsov ;;; Copyright © 2022 Wamm K. D. @@ -104,6 +105,7 @@ (define-module (gnu packages admin) #:use-module (gnu packages elf) #:use-module (gnu packages file) #:use-module (gnu packages flex) + #:use-module (gnu packages freedesktop) #:use-module (gnu packages gawk) #:use-module (gnu packages gettext) #:use-module (gnu packages gl) @@ -5097,3 +5099,54 @@ (define-public greetd-pam-mount greetd-pam-mount is used in configuration of greetd to provide auto-(mounting/unmounting) of XDG_RUNTIME_DIR in the way that it will not interfere with default pam-mount configuration."))) + +(define-public libseat + (package + (name "libseat") + (version "0.7.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~kennylevinsen/seatd") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "10f8387yy5as547xjjhl0cna6iywdgjmw0iq2nvcs8q6vlpnik4v")))) + (build-system meson-build-system) + (arguments + `(#:configure-flags '("-Dlibseat-logind=elogind" + "-Dserver=disabled"))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (propagated-inputs + `(("elogind" ,elogind))) + (home-page "https://sr.ht/~kennylevinsen/seatd") + (synopsis "Seat management library") + (description + "This package provides a universal seat management library that +allows applications to use whatever seat management is available.") + (license license:expat))) + +(define-public seatd + (package + (inherit libseat) + (name "seatd") + (arguments + `(#:configure-flags '("-Dlibseat-logind=elogind") + #:phases + (modify-phases %standard-phases + (add-after 'install 'remove-libs + (lambda* (#:key outputs #:allow-other-keys) + (with-directory-excursion (assoc-ref outputs "out") + (for-each delete-file-recursively '("lib" "include")))))))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("scdoc" ,scdoc))) + (inputs '()) + (synopsis "Seat management daemon") + (description + "This package provides a minimal seat management daemon whose task is to +mediate access to shared devices, such as graphics and input, for applications +that require it.") + (license license:expat))) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index fc2c45c1f1..309876867a 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -849,35 +849,6 @@ (define (source-file regexp) with localed. This package is extracted from the broader systemd package.") (license license:lgpl2.1+))) -(define-public seatd - (package - (name "seatd") - (version "0.5.0") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://git.sr.ht/~kennylevinsen/seatd") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1kglq8v4rnr3415mfaghyv2s2f8mxsy5s881gmm2908ig4n4j297")))) - (build-system meson-build-system) - (arguments - `(#:configure-flags '("-Dlogind=enabled"))) - (native-inputs - (list pkg-config scdoc)) - (propagated-inputs - (list elogind)) - (home-page "https://sr.ht/~kennylevinsen/seatd") - (synopsis "Seat management daemon and library") - (description - "This package provides a minimal seat management daemon whose task is to -mediate access to shared devices, such as graphics and input, for applications -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 packagekit (package (name "packagekit") diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index 123e6ca7e7..24d95ba86c 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -54,6 +54,7 @@ ;;; Copyright © 2022 Daniel Meißner ;;; Copyright © 2022 Pier-Hugues Pellerin ;;; Copyright © 2022 Maxim Cournoyer +;;; Copyright © 2022 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -88,6 +89,7 @@ (define-module (gnu packages wm) #:use-module (guix utils) #:use-module (gnu packages) #:use-module (gnu packages bash) + #:use-module (gnu packages admin) #:use-module (gnu packages autotools) #:use-module (gnu packages base) #:use-module (gnu packages bison) @@ -1537,7 +1539,7 @@ (define-public wlroots libxkbcommon mesa pixman - seatd + libseat wayland wayland-protocols xcb-util-errors -- 2.36.1 From debbugs-submit-bounces@debbugs.gnu.org Wed Jun 15 05:18:09 2022 Received: (at 49969) by debbugs.gnu.org; 15 Jun 2022 09:18:10 +0000 Received: from localhost ([127.0.0.1]:36521 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o1PA9-0006pn-CL for submit@debbugs.gnu.org; Wed, 15 Jun 2022 05:18:09 -0400 Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:43564 helo=nomad-cl1.muradm.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o1P9t-0006nw-At for 49969@debbugs.gnu.org; Wed, 15 Jun 2022 05:17:56 -0400 Received: from localhost ([127.0.0.1]:35096) by nomad-cl1.muradm.net with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1o1P7i-0003xr-6G for 49969@debbugs.gnu.org; Wed, 15 Jun 2022 09:15:38 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; s=mail; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:To:From:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=B5KCPTJa//Q3aMv6xoWZdlzY9NmWTpe/Ekmz7qbt6xk=; b=vdMF78aZwY+PkfnIdasOU5zl+w TUPO99ixBSBIEMhTzqPb+tgV4Vz5tPGdTiQpOkP0O6b1riXsGyOjne6CVMdZDqflJsAvrtEJbcnyf dShXCb9YKvA27KaXggbr+z2UoQysPD5bmVjVEOYgrpTVet1KTuRDq8fiNgErHtIWoOnQlr6sep25p Bl/oAnKB25gAPOhvbvUvcTe2dxLBFR4CrApNGtUkAIlCbaBGvwOUvy8zgAtLE7rSN1vTql+qSbd+C M5v6vRLnJ9NdQYMuHpbtAZDKOFiB+UeJI9ssJnyVdJDyg3EH7zfwMRQMCVf9rxwaD3aFND1TGLKFg +OLlwwNnCMUtDTIyzCokaUickPKKIMPIfQD2nXiUpMtjVI4QdbjhOKKmu0iO679rTJ4V5MAllLFj/ NvTKCf/kkQ0iQ8cmmwDe/oEfIIByrEA2RkbLyfY3t3kqdPcc6sVR8w1CBrLFvfx+f+Mb3taJpv7t4 i0GaSlf/unobhQHuoMDbBSFn; Received: from muradm by localhost with local (Exim 4.95) (envelope-from ) id 1o1P9r-0004P2-Qh for 49969@debbugs.gnu.org; Wed, 15 Jun 2022 12:17:51 +0300 From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v12 8/8] gnu: tests: Add seatd/greetd based minimal desktop system tests. Date: Wed, 15 Jun 2022 12:17:42 +0300 Message-Id: <20220615091742.16880-9-mail@muradm.net> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220615091742.16880-1-mail@muradm.net> References: <20220615091742.16880-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/tests/desktop.scm (minimal-desktop): seatd/greetd based minimal desktop test fix tests --- gnu/tests/desktop.scm | 212 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 211 insertions(+), 1 deletion(-) diff --git a/gnu/tests/desktop.scm b/gnu/tests/desktop.scm index 57069c0ede..25971f9225 100644 --- a/gnu/tests/desktop.scm +++ b/gnu/tests/desktop.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017, 2021 Ludovic Courtès +;;; Copyright © 2021 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -18,13 +19,17 @@ (define-module (gnu tests desktop) #:use-module (gnu tests) + #:use-module (gnu packages shells) #:use-module (gnu services) + #:use-module (gnu services base) #:use-module (gnu services dbus) #:use-module (gnu services desktop) + #:use-module (gnu system) #:use-module (gnu system vm) #:use-module (guix gexp) #:use-module (srfi srfi-1) - #:export (%test-elogind)) + #:export (%test-elogind + %test-minimal-desktop)) ;;; @@ -100,3 +105,208 @@ (define %test-elogind #:imported-modules '((gnu services herd) (guix combinators))))) (run-elogind-test (virtual-machine os)))))) + + +;;; +;;; Seatd/greetd based minimal desktop +;;; + +(define %minimal-services + (append + (modify-services %base-services + ;; greetd-service-type provides "greetd" PAM service + (delete login-service-type) + ;; and can be used in place of mingetty-service-type + (delete mingetty-service-type)) + (list + (service seatd-service-type) + (service greetd-service-type + (greetd-configuration + (terminals + (list + ;; we can make any terminal active by default + (greetd-terminal-configuration (terminal-vt "1") (terminal-switch #t)) + ;; we can make environment without XDG_RUNTIME_DIR set + ;; even provide our own environment variables + (greetd-terminal-configuration + (terminal-vt "2") + (default-session-command + (greetd-agreety-session + (extra-env '(("MY_VAR" . "1"))) + (xdg-env? #f)))) + ;; we can use different shell instead of default bash + (greetd-terminal-configuration + (terminal-vt "3") + (default-session-command + (greetd-agreety-session (command (file-append zsh "/bin/zsh"))))) + ;; we can use any other executable command as greeter + (greetd-terminal-configuration + (terminal-vt "4") + (default-session-command (program-file "my-noop-greeter" #~(exit)))) + (greetd-terminal-configuration (terminal-vt "5")) + (greetd-terminal-configuration (terminal-vt "6")))))) + ;; mingetty-service-type can be used in parallel + ;; if needed to do so, do not (delete login-service-type) + ;; as illustrated above + #| (service mingetty-service-type (mingetty-configuration (tty "tty8"))) |#))) + +(define-syntax-rule (minimal-operating-system user-services ...) + "Return an operating system that includes USER-SERVICES in addition to +minimal %BASE-SERVICES." + (operating-system (inherit %simple-os) + (services (cons* user-services ... %minimal-services)))) + +(define (run-minimal-desktop-test os vm) + (define test + (with-imported-modules '((gnu build marionette) + (guix build syscalls)) + #~(begin + (use-modules (gnu build marionette) + (guix build syscalls) + (srfi srfi-1) + (srfi srfi-64) + (ice-9 pretty-print)) + + (define marionette + (make-marionette #$vm)) + + (define (file-get-all-strings fname) + (marionette-eval '(use-modules (rnrs io ports)) marionette) + (wait-for-file fname marionette #:read 'get-string-all)) + + (define (wait-for-unix-socket-m socket) + (wait-for-unix-socket socket marionette)) + + (mkdir #$output) + (chdir #$output) + + (test-runner-current (system-test-runner #$output)) + (test-begin "minimal-desktop") + + (test-assert "seatd is ready" + (wait-for-unix-socket-m "/run/seatd.sock")) + + (test-equal "login user on tty1" + "alice\n" + (begin + ;; Wait for tty1. + (marionette-eval + '(begin + (use-modules (gnu services herd)) + (start-service 'term-tty1)) + marionette) + (marionette-control "sendkey ctrl-alt-f1" marionette) + + ;; login as root change alice password and exit + ;; then login as alice + (for-each + (lambda (cmd) (marionette-type cmd marionette) (sleep 1)) + (list + "root\n" + "passwd alice\n" + "alice\n" + "alice\n" + "exit\n" + "alice\n" + "alice\n" + "id -un > logged-in\n")) + + (file-get-all-strings "/home/alice/logged-in"))) + + (test-equal "validate user environment" + '("SEATD_SOCK=/run/seatd.sock" + "XDG_RUNTIME_DIR=/run/user/1000" + "XDG_SEAT=seat0" + "XDG_VTNR=1") + + (begin + (marionette-type "env > env\n" marionette) + (sleep 1) + + (define user-env (string-tokenize + (file-get-all-strings "/home/alice/env"))) + + (define (expected-var var) + (any (lambda (s) (string-contains var s)) + '("SEATD_SOCK" + "XDG_RUNTIME_DIR" + "XDG_SEAT" + "XDG_VTNR"))) + + (sort (filter expected-var user-env) string env\n" marionette) + (sleep 1) + + (define (sock-var? var) + (any (lambda (s) (string-contains var s)) + '("SEATD_SOCK" "GREETD_SOCK"))) + + (define (sock-var-sock var) + (car (cdr (string-split var #\=)))) + + (let* + ((out (file-get-all-strings "/home/alice/env")) + (out (string-tokenize out)) + (out (filter sock-var? out)) + (socks (map sock-var-sock out)) + (socks (map wait-for-unix-socket-m socks))) + (and (= 2 (length socks)) (every identity socks))))) + + (test-assert "greetd is ready" + (begin + (marionette-type "ps -C greetd -o pid,args --no-headers > ps-greetd\n" + marionette) + (sleep 1) + + (define (greetd-daemon? cmd) + (string-contains cmd "config")) + + (define (greetd-cmd-to-pid cmd) + (car (string-split cmd #\space))) + + (define (greetd-pid-to-sock pid) + (string-append "/run/greetd-" pid ".sock")) + + (let* ((out (file-get-all-strings "/home/alice/ps-greetd")) + (out (string-split out #\newline)) + (out (map string-trim-both out)) + (out (filter greetd-daemon? out)) + (pids (map greetd-cmd-to-pid out)) + (socks (map greetd-pid-to-sock pids)) + (socks (map wait-for-unix-socket-m socks))) + (every identity socks)))) + + ;; a bit weak, but tests everything at once actually + (test-equal "check /run/user/ mounted and writable" + "alice\n" + (begin + (marionette-type "echo alice > /run/user/1000/test\n" marionette) + (file-get-all-strings "/run/user/1000/test"))) + + (test-assert "screendump" + (begin + (marionette-control (string-append "screendump " #$output + "/tty1.ppm") + marionette) + (file-exists? "tty1.ppm"))) + + (test-end)))) + + (gexp->derivation "minimal-desktop" test)) + +(define %test-minimal-desktop + (system-test + (name "minimal-desktop") + (description + "Test whether we can log in when seatd and greetd is enabled") + (value + (let* ((os (marionette-operating-system + (minimal-operating-system) + #:imported-modules '((gnu services herd) + (guix combinators)))) + (vm (virtual-machine os))) + (run-minimal-desktop-test (virtualized-operating-system os '()) + #~(list #$vm)))))) -- 2.36.1 From debbugs-submit-bounces@debbugs.gnu.org Wed Jun 15 05:18:14 2022 Received: (at 49969) by debbugs.gnu.org; 15 Jun 2022 09:18:14 +0000 Received: from localhost ([127.0.0.1]:36523 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o1PA9-0006px-UG for submit@debbugs.gnu.org; Wed, 15 Jun 2022 05:18:14 -0400 Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:43554 helo=nomad-cl1.muradm.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o1P9n-0006nU-Mu for 49969@debbugs.gnu.org; Wed, 15 Jun 2022 05:18:00 -0400 Received: from localhost ([127.0.0.1]:35086) by nomad-cl1.muradm.net with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1o1P7c-0003xc-EC for 49969@debbugs.gnu.org; Wed, 15 Jun 2022 09:15:32 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; s=mail; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:To:From:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=RozKN4irD+c6HlJfAmqLSZkvFzhfWCbNGOZYmXWR0n0=; b=qPzLZ0s4is1A97QF+YWZYnXWa3 90hs7km83escnP3+Hi5AqJp48XMA+sLDXUfD0u7C/cctlPG78ElHkn6AzFN/M62QZtXT4LdWU6rJz Ok61Jn24eE5itmMjs9V0MMzjZ8JXvsvMPyWSOOgPPh4TFcOnByM2sU2VO0p76OPWBg/6MdSEJ/S6V 89GXP7Esf8NH63cHWRhjq3XFBqJ6T2rC0ZCFzGgago3L2pb3XW5QAchh0iYZWyJ+WpiPWz+LvnFSk f71z5MpBCXuM2HbpGT5JwoADLtIK9imzvb1WxsbSLx7xZ5b1kFHj4X3eAhiHugnEsEr2Ivtl3/jP4 aPmF8r2DNhdEyx15BATQVd9vzXHKVrRtoPfWv4ajRLdR5R6Sy0x0ZdcpUWkr1dOlKJuydKBrvaoDA +UH6WMW9zDUaIag3djCRyMLVZ9AIIULKt5Iuh0oGDhUmnaLkCwZVkjKFRr0YWAhDeDIcONu90wvND 4AbL1bA28ybSI66pWGGCK+ga; Received: from muradm by localhost with local (Exim 4.95) (envelope-from ) id 1o1P9m-0004On-5G for 49969@debbugs.gnu.org; Wed, 15 Jun 2022 12:17:46 +0300 From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v12 3/8] gnu: admin: Add greetd 0.8.0. Date: Wed, 15 Jun 2022 12:17:37 +0300 Message-Id: <20220615091742.16880-4-mail@muradm.net> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220615091742.16880-1-mail@muradm.net> References: <20220615091742.16880-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/admin.scm (greetd): New variable --- gnu/packages/admin.scm | 77 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 6acfff8881..73d70744e1 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -45,6 +45,7 @@ ;;; Copyright © 2021 Brice Waegeneire ;;; Copyright © 2021 Maxim Cournoyer ;;; Copyright © 2021 Maxime Devos +;;; Copyright © 2021 muradm ;;; Copyright © 2021 Petr Hodina ;;; Copyright © 2021 Artyom V. Poptsov ;;; Copyright © 2022 Wamm K. D. @@ -66,6 +67,7 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu packages admin) + #:use-module (guix build-system cargo) #:use-module (guix build-system cmake) #:use-module (guix build-system emacs) #:use-module (guix build-system glib-or-gtk) @@ -93,6 +95,7 @@ (define-module (gnu packages admin) #:use-module (gnu packages c) #:use-module (gnu packages check) #:use-module (gnu packages compression) + #:use-module (gnu packages crates-io) #:use-module (gnu packages cross-base) #:use-module (gnu packages crypto) #:use-module (gnu packages cryptsetup) @@ -4987,4 +4990,78 @@ (define-public udpcast (home-page "https://www.udpcast.linux.lu") (license license:gpl2+))) +(define-public greetd + (package + (name "greetd") + (version "0.8.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 "0x5c3jkw09kvj2grcxm899y2n6ws8p990cyp9cs0fy6lm4fzlh6v")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-nix" ,rust-nix-0.19) + ("rust-pam-sys" ,rust-pam-sys-0.5) + ("rust-rpassword" ,rust-rpassword-5) + ("rust-users" ,rust-users-0.11) + ("rust-serde" ,rust-serde-1) + ("rust-serde-json" ,rust-serde-json-1) + ("rust-libc" ,rust-libc-0.2) + ("rust-tokio" ,rust-tokio-1) + ("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 + (delete 'package) + (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)))))))) + (native-inputs + `(("linux-pam" ,linux-pam) + ("scdoc" ,scdoc))) + (synopsis "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. +If you can run it from your shell in a TTY, greetd can start it. + +If it can be taught to speak a simple JSON-based IPC protocol, +then it can be a greeter.") + (license license:gpl3+))) -- 2.36.1 From debbugs-submit-bounces@debbugs.gnu.org Wed Jun 15 05:18:14 2022 Received: (at 49969) by debbugs.gnu.org; 15 Jun 2022 09:18:14 +0000 Received: from localhost ([127.0.0.1]:36525 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o1PAE-0006q7-9o for submit@debbugs.gnu.org; Wed, 15 Jun 2022 05:18:14 -0400 Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:43562 helo=nomad-cl1.muradm.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o1P9s-0006nn-8O for 49969@debbugs.gnu.org; Wed, 15 Jun 2022 05:18:01 -0400 Received: from localhost ([127.0.0.1]:35094) by nomad-cl1.muradm.net with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1o1P7h-0003xo-2a for 49969@debbugs.gnu.org; Wed, 15 Jun 2022 09:15:37 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; s=mail; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:To:From:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=9OKNnQJMWqLxmJgn9iWyU3TM14PZmrTLw/2VCc0jci0=; b=RdINQj92gsx/euH6N77Fblu82Q YCUod6q0iyZ7JbMhK9LsEVbLJPcXYtKxHxSBM/fLF5CXATqZPGO7iSPeiQXVeTCdI8yjq7TEnak7H vpKScF9RHe6kgx4asPjOxMAK2MiAoIRQS+wBKZ2lktMYGDVtpBMnRJruyGK1vABL/vfz+0diP5zwf aJhcLe67el6IIsxJG7B+PmAEYXbXrwsZRsUpUHTOCH6F7TX2xT53vR6YUsI7ZAW/Hiky3TGLebqgd PwsCk2GUEWn9v21InNbvfKpPwp2y2fulVNq8EBvN2iWEYsJc9Ruz12VLbUJCWVmfOQkcE2dmOpl53 iVRXMufrTmeSkMyRgME+E+mPpKvZOF4KXVrKszo6c1YReuLDErzxRD2x4cc5if2IN24SPPOJV8NuR PF1nk/uet5UURcnHt7oyPNM0skBky+kW6YpdU55GAlRf7OC3hKKkGvDpQxisOU1GwthGaJ9AtPgI0 Hg2hIDlCbpb+uDLOxHuvpjRo; Received: from muradm by localhost with local (Exim 4.95) (envelope-from ) id 1o1P9q-0004Oz-OO for 49969@debbugs.gnu.org; Wed, 15 Jun 2022 12:17:50 +0300 From: muradm To: 49969@debbugs.gnu.org Subject: [PATCH v12 7/8] gnu: desktop: Add seatd-service-type. Date: Wed, 15 Jun 2022 12:17:41 +0300 Message-Id: <20220615091742.16880-8-mail@muradm.net> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220615091742.16880-1-mail@muradm.net> References: <20220615091742.16880-1-mail@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 49969 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/services/desktop.scm (seatd-service-type): New variable * gnu/services/desktop.scm (seatd-configuration): New data type fix seatd path --- doc/guix.texi | 46 +++++++++++++++++++++++++++++ gnu/services/desktop.scm | 62 +++++++++++++++++++++++++++++++++++++++- 2 files changed, 107 insertions(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index 997b93c831..799ea932d7 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -22661,6 +22661,52 @@ and ``passwd'' is with the value @code{passwd}. @end table @end deftp +@defvr {Scheme Variable} seatd-service-type +@uref{https://sr.ht/~kennylevinsen/seatd/, seatd} is a minimal seat +management daemon. + +Seat management takes care of mediating access to shared devices (graphics, +input), without requiring the applications needing access to be root. + +@lisp +(append + (list + ;; make sure seatd is running + (service seatd-service-type)) + + ;; normally one would want %base-services + %base-services) + +@end lisp +@end defvr + +@deftp {Data Type} seatd-configuration +Configuration record for the seatd daemon service. + +@table @asis +@item @code{seatd} (default: @code{seatd}) +The seatd package to use. + +@item @code{user} (default: @samp{"root"}) +User to own the seatd socket. + +@item @code{group} (default: @samp{"users"}) +Group to own the seatd socket. + +@item @code{socket} (default: @samp{"/run/seatd.sock"}) +Where to create the seatd socket. + +@item @code{logfile} (default: @samp{"/var/log/seatd.log"}) +Log file to write to. + +@item @code{loglevel} (default: @samp{"error"}) +Log level to output logs. Possible values: @samp{"silent"}, @samp{"error"}, +@samp{"info"} and @samp{"debug"}. + +@end table +@end deftp + + @node Sound Services @subsection Sound Services diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index 0499071436..29a3722f1b 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -13,6 +13,7 @@ ;;; Copyright © 2020 Tobias Geerinckx-Rice ;;; Copyright © 2020 Reza Alizadeh Majd ;;; Copyright © 2021 Brice Waegeneire +;;; Copyright © 2021 muradm ;;; ;;; This file is part of GNU Guix. ;;; @@ -39,7 +40,9 @@ (define-module (gnu services desktop) #:use-module (gnu services networking) #:use-module (gnu services sound) #:use-module ((gnu system file-systems) - #:select (%elogind-file-systems file-system)) + #:select (%control-groups + %elogind-file-systems + file-system)) #:autoload (gnu services sddm) (sddm-service-type) #:use-module (gnu system) #:use-module (gnu system setuid) @@ -157,6 +160,9 @@ (define-module (gnu services desktop) gnome-keyring-configuration? gnome-keyring-service-type + seatd-configuration + seatd-service-type + %desktop-services)) ;;; Commentary: @@ -1630,6 +1636,60 @@ (define polkit-wheel (define polkit-wheel-service (simple-service 'polkit-wheel polkit-service-type (list polkit-wheel))) + +;;; +;;; seatd-service-type -- minimal seat management daemon +;;; + +(define-record-type* seatd-configuration + make-seatd-configuration + seatd-configuration? + (seatd seatd-package (default seatd)) + (user seatd-user (default "root")) + (group seatd-group (default "users")) + (socket seatd-socket (default "/run/seatd.sock")) + (logfile seatd-logfile (default "/var/log/seatd.log")) + (loglevel seatd-loglevel (default "info"))) + +(define (seatd-shepherd-service config) + (list (shepherd-service + (documentation "Minimal seat management daemon") + (requirement '()) + ;; TODO: once cgroups is separate dependency + ;; here we should depend on it rather than elogind + (provision '(seatd elogind)) + (start #~(make-forkexec-constructor + (list #$(file-append (seatd-package config) "/bin/seatd") + "-u" #$(seatd-user config) + "-g" #$(seatd-group config)) + #:environment-variables + (list (string-append "SEATD_LOGLEVEL=" + #$(seatd-loglevel config)) + (string-append "SEATD_DEFAULTPATH=" + #$(seatd-socket config))) + #:log-file #$(seatd-logfile config))) + (stop #~(make-kill-destructor))))) + +(define seatd-environment + (match-lambda + (($ _ _ _ socket) + `(("SEATD_SOCK" . ,socket))))) + +(define seatd-service-type + (service-type + (name 'seatd) + (description "Seat management takes care of mediating access +to shared devices (graphics, input), without requiring the +applications needing access to be root.") + (extensions + (list + (service-extension session-environment-service-type seatd-environment) + ;; TODO: once cgroups is separate dependency we should not mount it here + ;; for now it is mounted here, because elogind mounts it + (service-extension file-system-service-type (const %control-groups)) + (service-extension shepherd-root-service-type seatd-shepherd-service))) + (default-value (seatd-configuration)))) + ;;; ;;; The default set of desktop services. -- 2.36.1 From debbugs-submit-bounces@debbugs.gnu.org Thu Jun 16 12:21:39 2022 Received: (at submit) by debbugs.gnu.org; 16 Jun 2022 16:21:39 +0000 Received: from localhost ([127.0.0.1]:42975 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o1sFX-0005hu-DB for submit@debbugs.gnu.org; Thu, 16 Jun 2022 12:21:39 -0400 Received: from lists.gnu.org ([209.51.188.17]:58480) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o1sFV-0005hl-Ni for submit@debbugs.gnu.org; Thu, 16 Jun 2022 12:21:38 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40104) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o1sFV-0005pb-IR for guix-patches@gnu.org; Thu, 16 Jun 2022 12:21:37 -0400 Received: from nomad-cl1.staging.muradm.net ([139.162.159.157]:60370 helo=nomad-cl1.muradm.net) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o1sFU-0002c6-3H for guix-patches@gnu.org; Thu, 16 Jun 2022 12:21:37 -0400 Received: from localhost ([127.0.0.1]:35100) by nomad-cl1.muradm.net with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1o1sDE-0004GZ-7i; Thu, 16 Jun 2022 16:19:16 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; s=mail; h=Content-Type:MIME-Version:Message-ID:In-reply-to:Date:Subject:To: From:References:Sender:Reply-To:Cc:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=htnf5ysvmoI1KsnwSSX9myvJ/mlA5fjm5l7/HiNQ74g=; b=j6kx9bSqkFRZxKuSKaZ3vIlU6M 7v4XOQ65SSECU0NmEvxTvc0mqSX0BeTwrriH+/6tTp7OcDftTuaaOPRy/1t15tNujH958Ba2O0nTU ESz8rPdJ+NenzE+6tsHS9ZbL6mOvJLZvXlqd3f0tDmiVghwXKlfNWu4SRBD6VVo/U/S+Fl2YZSzPq MHN7+NITx0H32zp34RxYtQ28zT8wXQIKUT8IQfRPGa8df1O9sAGUvMYX/V2IpqC2Wnwp6VaG+EYrR cMq7fBebqoL5pEqjKCCD9Ay0B56cY3pyPe+YVu38qPUIV0mrsttKPQ1xBVEP3zuouUz6OsTMbVEUc Yf3i4A8NsIDk7OeX9iTo0oi0AXhuLHqpE8zbsCSDDlXfWZQNTj4bPQFTkSzu3P6daPz+aIg6KKAuT Aw+C3AImkc+qyHdkk5SHf1i6P0sHT0cS4YX0B/KX9latbk0yfD88OV67/7cV8uFCyle1fSuSG2bb6 n57rYC7jyhxxMftjFEK2jLED; Received: from muradm by localhost with local (Exim 4.95) (envelope-from ) id 1o1sFP-0007ln-5T; Thu, 16 Jun 2022 19:21:31 +0300 References: <20220615091742.16880-1-mail@muradm.net> User-agent: mu4e 1.6.10; emacs 29.0.50 From: muradm To: guix-patches@gnu.org, lars@6xq.net Subject: Re: [bug#49969] [PATCH v12 0/8] with fixed tests Date: Thu, 16 Jun 2022 19:19:46 +0300 In-reply-to: <20220615091742.16880-1-mail@muradm.net> Message-ID: <87h74kh94l.fsf@muradm.net> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" Received-SPF: pass client-ip=139.162.159.157; envelope-from=mail@muradm.net; helo=nomad-cl1.muradm.net X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.4 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.4 (--) --=-=-= Content-Type: text/plain; format=flowed Hi, is there anything else needed to be updated for merging? Thanks in advance, Muradm muradm writes: > system test now ends as required > > muradm (8): > gnu: crates-io: Add rust-enquote 1.1.0. > gnu: crates-io: Add rust-pam-sys 0.5.6. > gnu: admin: Add greetd 0.8.0. > gnu: admin: Add greetd-pam-mount. > gnu: base: Add greetd-service-type. > gnu: admin: Add libseat 0.8.0 and move seatd. > gnu: desktop: Add seatd-service-type. > gnu: tests: Add seatd/greetd based minimal desktop system > tests. > > doc/guix.texi | 183 ++++++++++++++++++++++++++++ > gnu/packages/admin.scm | 162 +++++++++++++++++++++++++ > gnu/packages/crates-io.scm | 40 +++++++ > gnu/packages/freedesktop.scm | 29 ----- > gnu/packages/wm.scm | 4 +- > gnu/services/base.scm | 223 > ++++++++++++++++++++++++++++++++++- > gnu/services/desktop.scm | 62 +++++++++- > gnu/services/pam-mount.scm | 2 +- > gnu/tests/desktop.scm | 212 > ++++++++++++++++++++++++++++++++- > 9 files changed, 883 insertions(+), 34 deletions(-) --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEESPY5lma9A9l5HGLP6M7O0mLOBeIFAmKrWIoACgkQ6M7O0mLO BeIRxBAAsc20BQILRNUMNVzXYLxxJabXnMCB0CcOaEzQWNMpJX30bnJesxn++pNp iFWcXsZmXxZWNlE0R/1jlji7k36I1ZhD6GhERscd9QLBNrGCNbDyBjF64NeUHIAb 0LQJImoV7Mosnp/oPRX0nzi9qrJe+aHiXYe4c2hTa0gqWjyNLjaydlug5iZR2CTZ ep83eMRVMf1lJdireAAthuOC109Fi9KvagN0/8JZcx2R7GG86LLhecnkc3mwUPzq 7EBWw5aKsugnLgcxH16Q43TKLgq2XDBCSTXDC0tm3XuWkB3PBekbgLYouT3B32X7 d6ZqvWXZdXE91KFYKzLA3JZr4zd7wKQiUI3Pqad3R8PfC2dPP/5ZyUtD9IzzSUgX Fvspv5hnh1tPfi0cjDLLyMXoJJzyJ9aS1qxiFPHTHyqyg7LehiDr6qsVuChuazf/ 0zsDoMU1pxEfpBQkDiol0d+TEG7ZanhpAp/d8SzMgE2JNEeARbj8WMzhcWAbExvi Dl36KXH+IDHzViGV8ijFKlSEPiS64uRKmR8wAfUXE+UGjEpsvysq6nQDJniHVTN3 0boAcE3pu8ERT0D0ugBy6B13taTRuFi/c5MvNDYDERAU6HxLIhqPC8d0VDyg1FJC eUzt0ZCP89NY48BBNyu0Q5qU8BmsvePfV7xTpHrJpviOHZYb+6E= =C20F -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Fri Jun 17 04:47:39 2022 Received: (at 49969-done) by debbugs.gnu.org; 17 Jun 2022 08:47:39 +0000 Received: from localhost ([127.0.0.1]:43665 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o27dj-00072Y-8r for submit@debbugs.gnu.org; Fri, 17 Jun 2022 04:47:39 -0400 Received: from mout-p-101.mailbox.org ([80.241.56.151]:57962) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o27dg-00071c-EZ for 49969-done@debbugs.gnu.org; Fri, 17 Jun 2022 04:47:38 -0400 Received: from smtp1.mailbox.org (smtp1.mailbox.org [IPv6:2001:67c:2050:b231:465::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-384) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-101.mailbox.org (Postfix) with ESMTPS id 4LPXjX0x9Qz9sSg; Fri, 17 Jun 2022 10:47:28 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=6xq.net; s=MBO0001; t=1655455648; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=6kOaqIQJMIHGfAEIxM0K29Gx6kI9oKvVtKovK5MZLMw=; b=NIqmV+tqSLqHffB4fhMpB77dI/qdNAr4fjLoFu8ZNhgbum0FndkWMdv9ss6YYodaHCreYJ XtUq35In7lr3QfSFXD+Vw3R7zttTPWIg1bf+boBnMIHSqQKM8aIaDojJ2GMwI+SJq0MW+D WAwL2Z+XVlZB5KcVRz807tp9cR2GmNtW7pIiO1tHhHY3o2OOMvAI7a41Vz5Yos/V7iS3+v 0tnAxQTado+ok2iirxQqbUzJHU2Vhmx113uZXlkREiGCUt/68wewbZsGjGOCsCuZEGVwgm qaA6k7aK4wKBboCSlfPdcCUHgR8GJhRk+3qH2cX7vJrGO2xrKvPOR2QR74tFJw== Date: Fri, 17 Jun 2022 10:47:26 +0200 From: Lars-Dominik Braun To: muradm Subject: Re: [bug#49969] [PATCH v12 0/8] with fixed tests Message-ID: References: <20220615091742.16880-1-mail@muradm.net> <87h74kh94l.fsf@muradm.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <87h74kh94l.fsf@muradm.net> X-Rspamd-Queue-Id: 4LPXjX0x9Qz9sSg X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 49969-done Cc: 49969-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Hi, > Hi, is there anything else needed to be updated for merging? looks good to me. Merged. d6dda325c10a4aa8605fefa3906066ce792c2e81 gnu: desktop: Add seatd-service-type. 167b8f29b3679a23bb20f5ed4181738c389d9d89 gnu: admin: Add libseat 0.8.0 and move seatd. 530e0f02606a0e04818bdd792bb5239f7ee9e637 gnu: base: Add greetd-service-type. 32ca068cb9f98698bd1c29b980ecd4ae36caf795 gnu: admin: Add greetd-pam-mount. c08d56a161d1308e7c021acec3a57c3f559137de gnu: admin: Add greetd 0.8.0. 7943f9f170f099b3cae78cc897d4ac68649d03ee gnu: crates-io: Add rust-pam-sys 0.5.6. 7f7a075c3debc92168db7dbdf9a2a1ef3156b0ea gnu: crates-io: Add rust-enquote 1.1.0. Cheers, Lars From unknown Fri Jun 20 07:23:45 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Fri, 15 Jul 2022 11:24:07 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator