diff --git a/debian/patches/debian/Exclude-Debian-globally-allocated-UIDs-from-sys_uid-range.patch b/debian/patches/debian/Exclude-Debian-globally-allocated-UIDs-from-sys_uid-range.patch
index 3c2785f9..f35088ec 100644
--- a/debian/patches/debian/Exclude-Debian-globally-allocated-UIDs-from-sys_uid-range.patch
+++ b/debian/patches/debian/Exclude-Debian-globally-allocated-UIDs-from-sys_uid-range.patch
@@ -8,10 +8,10 @@ Bug: http://bugs.debian.org/1100563
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/src/useradd.c b/src/useradd.c
-index dc65618..25a5920 100644
+index 9da533a..2f5df5f 100644
--- a/src/useradd.c
+++ b/src/useradd.c
-@@ -2382,14 +2382,21 @@ static void create_mail (void)
+@@ -2372,14 +2372,21 @@ static void create_mail (void)
#endif
}
diff --git a/debian/patches/debian/Keep-using-Debian-adduser-defaults.patch b/debian/patches/debian/Keep-using-Debian-adduser-defaults.patch
index 9e839d4e..f7b38d98 100644
--- a/debian/patches/debian/Keep-using-Debian-adduser-defaults.patch
+++ b/debian/patches/debian/Keep-using-Debian-adduser-defaults.patch
@@ -17,10 +17,10 @@ configuration files shipped in Debian (debian/default/useradd).
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/man/useradd.8.xml b/man/useradd.8.xml
-index eda1fef..38f2c68 100644
+index fd9ff69..69126ee 100644
--- a/man/useradd.8.xml
+++ b/man/useradd.8.xml
-@@ -248,7 +248,7 @@
+@@ -262,7 +262,7 @@
command line), useradd will set the primary group of the new
user to the value specified by the
variable in /etc/default/useradd, or
@@ -30,10 +30,10 @@ index eda1fef..38f2c68 100644
diff --git a/src/useradd.c b/src/useradd.c
-index 6e744b0..dc65618 100644
+index 36b9b8f..9da533a 100644
--- a/src/useradd.c
+++ b/src/useradd.c
-@@ -97,14 +97,14 @@ static const char Prog[] = "useradd";
+@@ -100,14 +100,14 @@ static const char Prog[] = "useradd";
/*
* These defaults are used if there is no defaults file.
*/
diff --git a/debian/patches/debian/Recommend-using-adduser-and-deluser.patch b/debian/patches/debian/Recommend-using-adduser-and-deluser.patch
index 31acce15..2934cf07 100644
--- a/debian/patches/debian/Recommend-using-adduser-and-deluser.patch
+++ b/debian/patches/debian/Recommend-using-adduser-and-deluser.patch
@@ -11,7 +11,7 @@ Status wrt upstream: Debian specific patch.
2 files changed, 12 insertions(+)
diff --git a/man/useradd.8.xml b/man/useradd.8.xml
-index 38f2c68..9009d83 100644
+index 69126ee..e198028 100644
--- a/man/useradd.8.xml
+++ b/man/useradd.8.xml
@@ -82,6 +82,12 @@
diff --git a/debian/patches/debian/Set-group-and-mode-for-g-shadow-files.patch b/debian/patches/debian/Set-group-and-mode-for-g-shadow-files.patch
index 4ccab3aa..2dfc76a1 100644
--- a/debian/patches/debian/Set-group-and-mode-for-g-shadow-files.patch
+++ b/debian/patches/debian/Set-group-and-mode-for-g-shadow-files.patch
@@ -12,7 +12,7 @@ Fixes: #166793
3 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/lib/commonio.c b/lib/commonio.c
-index fc8ad7a..24a3230 100644
+index 7304ec0..6b13f4a 100644
--- a/lib/commonio.c
+++ b/lib/commonio.c
@@ -21,6 +21,7 @@
@@ -23,7 +23,7 @@ index fc8ad7a..24a3230 100644
#include "alloc/malloc.h"
#include "alloc/reallocf.h"
-@@ -944,12 +945,23 @@ int commonio_close (struct commonio_db *db)
+@@ -949,12 +950,23 @@ int commonio_close (struct commonio_db *db)
if (errors)
goto fail;
} else {
@@ -48,10 +48,10 @@ index fc8ad7a..24a3230 100644
if (SNPRINTF(buf, "%s+", db->filename) == -1)
diff --git a/lib/sgroupio.c b/lib/sgroupio.c
-index 9805761..e3c0458 100644
+index ef82976..53e7ecd 100644
--- a/lib/sgroupio.c
+++ b/lib/sgroupio.c
-@@ -210,7 +210,7 @@ static struct commonio_db gshadow_db = {
+@@ -211,7 +211,7 @@ static struct commonio_db gshadow_db = {
#ifdef WITH_SELINUX
NULL, /* scontext */
#endif
@@ -61,10 +61,10 @@ index 9805761..e3c0458 100644
0, /* st_gid */
NULL, /* head */
diff --git a/lib/shadowio.c b/lib/shadowio.c
-index d2c3b47..53dac0b 100644
+index 8b1c1d2..395d0c8 100644
--- a/lib/shadowio.c
+++ b/lib/shadowio.c
-@@ -85,7 +85,7 @@ static struct commonio_db shadow_db = {
+@@ -87,7 +87,7 @@ static struct commonio_db shadow_db = {
#ifdef WITH_SELINUX
NULL, /* scontext */
#endif /* WITH_SELINUX */
diff --git a/debian/patches/debian/Warn-when-badname-and-variants-are-given.patch b/debian/patches/debian/Warn-when-badname-and-variants-are-given.patch
index 2cd10a88..e01d7770 100644
--- a/debian/patches/debian/Warn-when-badname-and-variants-are-given.patch
+++ b/debian/patches/debian/Warn-when-badname-and-variants-are-given.patch
@@ -11,10 +11,10 @@ Upstream PR 1158 will remove them, probably in the forky timeframe.
4 files changed, 16 insertions(+), 4 deletions(-)
diff --git a/src/newusers.c b/src/newusers.c
-index e3685ef..16abd81 100644
+index 38cbddd..710c3e9 100644
--- a/src/newusers.c
+++ b/src/newusers.c
-@@ -127,7 +127,7 @@ static void usage (int status)
+@@ -128,7 +128,7 @@ static void usage (int status)
"\n"
"Options:\n"),
Prog);
@@ -23,7 +23,7 @@ index e3685ef..16abd81 100644
#ifndef USE_PAM
(void) fprintf (usageout,
_(" -c, --crypt-method METHOD the crypt method (one of %s)\n"),
-@@ -660,6 +660,9 @@ static void process_flags (int argc, char **argv)
+@@ -661,6 +661,9 @@ static void process_flags (int argc, char **argv)
switch (c) {
case 'b':
allow_bad_names = true;
@@ -34,10 +34,10 @@ index e3685ef..16abd81 100644
#ifndef USE_PAM
case 'c':
diff --git a/src/pwck.c b/src/pwck.c
-index b485a5a..e20be0f 100644
+index 6272839..a970e74 100644
--- a/src/pwck.c
+++ b/src/pwck.c
-@@ -133,7 +133,7 @@ usage (int status)
+@@ -134,7 +134,7 @@ usage (int status)
"Options:\n"),
Prog);
}
@@ -46,7 +46,7 @@ index b485a5a..e20be0f 100644
(void) fputs (_(" -h, --help display this help message and exit\n"), usageout);
(void) fputs (_(" -q, --quiet report errors only\n"), usageout);
(void) fputs (_(" -r, --read-only display errors and warnings\n"
-@@ -175,6 +175,9 @@ static void process_flags (int argc, char **argv)
+@@ -176,6 +176,9 @@ static void process_flags (int argc, char **argv)
switch (c) {
case 'b':
allow_bad_names = true;
@@ -57,10 +57,10 @@ index b485a5a..e20be0f 100644
case 'h':
usage (E_SUCCESS);
diff --git a/src/useradd.c b/src/useradd.c
-index 25a5920..7e9dbce 100644
+index 2f5df5f..73bf307 100644
--- a/src/useradd.c
+++ b/src/useradd.c
-@@ -879,7 +879,7 @@ static void usage (int status)
+@@ -874,7 +874,7 @@ static void usage (int status)
"\n"
"Options:\n"),
Prog, Prog, Prog);
@@ -69,7 +69,7 @@ index 25a5920..7e9dbce 100644
(void) fputs (_(" -b, --base-dir BASE_DIR base directory for the home directory of the\n"
" new account\n"), usageout);
#ifdef WITH_BTRFS
-@@ -1202,6 +1202,9 @@ static void process_flags (int argc, char **argv)
+@@ -1197,6 +1197,9 @@ static void process_flags (int argc, char **argv)
break;
case 201:
allow_bad_names = true;
@@ -80,10 +80,10 @@ index 25a5920..7e9dbce 100644
case 'c':
if (!VALID (optarg)) {
diff --git a/src/usermod.c b/src/usermod.c
-index 22113da..9030883 100644
+index a0f4d7d..2e04b09 100644
--- a/src/usermod.c
+++ b/src/usermod.c
-@@ -383,7 +383,7 @@ usage (int status)
+@@ -384,7 +384,7 @@ usage (int status)
(void) fputs (_(" -a, --append append the user to the supplemental GROUPS\n"
" mentioned by the -G option without removing\n"
" the user from other groups\n"), usageout);
@@ -92,7 +92,7 @@ index 22113da..9030883 100644
(void) fputs (_(" -c, --comment COMMENT new value of the GECOS field\n"), usageout);
(void) fputs (_(" -d, --home HOME_DIR new home directory for the user account\n"), usageout);
(void) fputs (_(" -e, --expiredate EXPIRE_DATE set account expiration date to EXPIRE_DATE\n"), usageout);
-@@ -1054,6 +1054,9 @@ process_flags(int argc, char **argv)
+@@ -1052,6 +1052,9 @@ process_flags(int argc, char **argv)
break;
case 'b':
allow_bad_names = true;
diff --git a/debian/patches/debian/configure.ac-align-exec_prefix-with-prefix.patch b/debian/patches/debian/configure.ac-align-exec_prefix-with-prefix.patch
index 7eec5cca..12a62ea1 100644
--- a/debian/patches/debian/configure.ac-align-exec_prefix-with-prefix.patch
+++ b/debian/patches/debian/configure.ac-align-exec_prefix-with-prefix.patch
@@ -9,7 +9,7 @@ Reported as https://github.com/shadow-maint/shadow/issues/1229
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
-index 571e20d..c9cd472 100644
+index bacce98..8746683 100644
--- a/configure.ac
+++ b/configure.ac
@@ -18,7 +18,7 @@ AC_SUBST([LIBSUBID_ABI], [libsubid_abi])
diff --git a/debian/patches/series b/debian/patches/series
index b0373865..a01dd676 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -9,5 +9,3 @@ debian/Define-LOGIN_NAME_MAX-on-HURD.patch
debian/Stop-building-programs-we-do-not-install.patch
debian/Warn-when-badname-and-variants-are-given.patch
debian/configure.ac-align-exec_prefix-with-prefix.patch
-upstream/Accept-usr-sbin-nologin-as-an-alternate-to-sbin-nologin.patch
-upstream/Add-LOGIN_ENV_SAFELIST-to-FOREIGNDEFS.patch
diff --git a/debian/patches/upstream/Accept-usr-sbin-nologin-as-an-alternate-to-sbin-nologin.patch b/debian/patches/upstream/Accept-usr-sbin-nologin-as-an-alternate-to-sbin-nologin.patch
deleted file mode 100644
index 0d8ff541..00000000
--- a/debian/patches/upstream/Accept-usr-sbin-nologin-as-an-alternate-to-sbin-nologin.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From: Chris Hofstaedtler
-Date: Fri, 28 Mar 2025 12:12:13 +0100
-Subject: Accept /usr/sbin/nologin as an alternate to /sbin/nologin
-
-Noticed by adduser's autopkgtests, thanks: Marc Haber
-
-Link: https://github.com/shadow-maint/shadow/pull/1246
----
- src/useradd.c | 1 +
- src/usermod.c | 1 +
- 2 files changed, 2 insertions(+)
-
-diff --git a/src/useradd.c b/src/useradd.c
-index 7e9dbce..0653d1d 100644
---- a/src/useradd.c
-+++ b/src/useradd.c
-@@ -1380,6 +1380,7 @@ static void process_flags (int argc, char **argv)
- if (!streq(optarg, "")
- && '*' != optarg[0]
- && !streq(optarg, "/sbin/nologin")
-+ && !streq(optarg, "/usr/sbin/nologin")
- && ( stat(optarg, &st) != 0
- || S_ISDIR(st.st_mode)
- || access(optarg, X_OK) != 0)) {
-diff --git a/src/usermod.c b/src/usermod.c
-index 9030883..4156ce5 100644
---- a/src/usermod.c
-+++ b/src/usermod.c
-@@ -1179,6 +1179,7 @@ process_flags(int argc, char **argv)
- if (!streq(optarg, "")
- && '*' != optarg[0]
- && !streq(optarg, "/sbin/nologin")
-+ && !streq(optarg, "/usr/sbin/nologin")
- && ( stat(optarg, &st) != 0
- || S_ISDIR(st.st_mode)
- || access(optarg, X_OK) != 0)) {
diff --git a/debian/patches/upstream/Add-LOGIN_ENV_SAFELIST-to-FOREIGNDEFS.patch b/debian/patches/upstream/Add-LOGIN_ENV_SAFELIST-to-FOREIGNDEFS.patch
deleted file mode 100644
index e70b10ab..00000000
--- a/debian/patches/upstream/Add-LOGIN_ENV_SAFELIST-to-FOREIGNDEFS.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From: Stanislav Brabec
-Date: Wed, 9 Apr 2025 02:03:10 +0200
-Subject: Add LOGIN_ENV_SAFELIST to FOREIGNDEFS
-
-util-linux-2.41 introduced new variable: LOGIN_ENV_SAFELIST.
-Add it to known login.defs variables.
-
-Signed-off-by: Stanislav Brabec
----
- lib/getdef.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/lib/getdef.c b/lib/getdef.c
-index e354d89..8883a29 100644
---- a/lib/getdef.c
-+++ b/lib/getdef.c
-@@ -76,6 +76,7 @@ struct itemdef {
- #define FOREIGNDEFS \
- {"ALWAYS_SET_PATH", NULL}, \
- {"ENV_ROOTPATH", NULL}, \
-+ {"LOGIN_ENV_SAFELIST", NULL}, \
- {"LOGIN_KEEP_USERNAME", NULL}, \
- {"LOGIN_PLAIN_PROMPT", NULL}, \
- {"MOTD_FIRSTONLY", NULL}, \