diff --git a/sys-auth/pam_mount/Manifest b/sys-auth/pam_mount/Manifest
index caf8020cba63a..2de87dd002bc5 100644
--- a/sys-auth/pam_mount/Manifest
+++ b/sys-auth/pam_mount/Manifest
@@ -1 +1,2 @@
DIST pam_mount-2.18.tar.xz 324524 BLAKE2B a3f29de8c0a348c98d3e73ac3568595083036fa704b5c34ed17c3660fcc8ff5f64195ad4158af6e351f79865a9128dbb773c7d18bbb07bdff1010e555803cfce SHA512 7f1e373fd7876eddd9226163602ba484ed8a7e1ce92ba6140c1f7603cb205190cb11ad75be41b54d2a6cd21602320d41a65714bfd0af8b5247850a3ef0fe3b22
+DIST pam_mount-2.20.tar.xz 325328 BLAKE2B 2b8a419c8b8604a6546ee5ac2b554d3c90ad04dd58c54bf8904d7e0354a2aafe1ae97a817e67143a24fd8ed40e62008baff94723ced8c4ad2d977e14c3e762ad SHA512 8661dc5ec134c256825df28e53751d1e0e1e881008c3687a56009f4046b3d17c5b9ddd1b1971dff4e023e5d74e5059f486b08a6cab2861a4bee5ba57fbae3454
diff --git a/sys-auth/pam_mount/metadata.xml b/sys-auth/pam_mount/metadata.xml
index 2c4bc1428e94c..dd341fea2acac 100644
--- a/sys-auth/pam_mount/metadata.xml
+++ b/sys-auth/pam_mount/metadata.xml
@@ -5,6 +5,6 @@
hanno@gentoo.org
- pam-mount
+ jengelh/pam_mount
diff --git a/sys-auth/pam_mount/pam_mount-2.20.ebuild b/sys-auth/pam_mount/pam_mount-2.20.ebuild
new file mode 100644
index 0000000000000..3dfc5f2c00b1d
--- /dev/null
+++ b/sys-auth/pam_mount/pam_mount-2.20.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="A PAM module that can mount volumes for a user session"
+HOMEPAGE="https://inai.de/projects/pam_mount/"
+SRC_URI="https://inai.de/files/pam_mount/${P}.tar.xz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+
+IUSE="crypt ssl selinux"
+
+DEPEND="
+ >=sys-libs/pam-0.99
+ >=sys-libs/libhx-3.12.1:=
+ >=sys-apps/util-linux-2.20:=
+ >=dev-libs/libxml2-2.6:=
+ dev-libs/libpcre2
+ crypt? ( >=sys-fs/cryptsetup-1.1.0:= )
+ ssl? ( dev-libs/openssl:0= )
+ selinux? ( sys-libs/libselinux )"
+RDEPEND="${DEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+src_configure() {
+ econf --with-slibdir="/$(get_libdir)" \
+ $(use_with crypt cryptsetup) \
+ $(use_with ssl crypto) \
+ $(use_with selinux)
+}
+
+src_install() {
+ default
+ use selinux || rm -r "${D}"/etc/selinux
+ dodoc doc/*.txt
+
+ # Remove unused nonstandard run-dir, current version uses
+ # FHS-compatible /run, but has leftover mkdir from old version
+ # Upstream report: https://codeberg.org/jengelh/pam_mount/pulls/9
+ rm -r "${D}/var/lib"
+
+ find "${ED}" -name '*.la' -delete || die
+}