util-linux: 2.33.2 -> 2.35.1

This commit is contained in:
oxalica 2020-03-09 12:45:12 +08:00 committed by Frederik Rietdijk
parent e18bb6fa83
commit 7760cff5d7
2 changed files with 57 additions and 15 deletions

View File

@ -3,11 +3,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "util-linux"; pname = "util-linux";
version = "2.33.2"; version = "2.35.1";
src = fetchurl { src = fetchurl {
url = "mirror://kernel/linux/utils/util-linux/v${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; url = "mirror://kernel/linux/utils/util-linux/v${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "15yf2dh4jd1kg6066hydlgdhhs2j3na13qld8yx30qngqvmfh6v3"; sha256 = "1yfpy6bkab4jw61mpx48gfy24yrqp4a7arvpis8csrkk53fkxpnr";
}; };
patches = [ patches = [

View File

@ -2,26 +2,68 @@ Search $PATH for the shutdown binary instead of hard-coding /sbin/shutdown,
which isn't valid on NixOS (and a compatibility link on most other modern which isn't valid on NixOS (and a compatibility link on most other modern
distros anyway). distros anyway).
-- nckx <github@tobias.gr>
--- a/include/pathnames.h --- a/include/pathnames.h
+++ b/include/pathnames.h +++ b/include/pathnames.h
@@ -53,7 +53,7 @@ @@ -50,8 +50,8 @@
#ifndef _PATH_LOGIN #ifndef _PATH_LOGIN
#define _PATH_LOGIN "/bin/login" # define _PATH_LOGIN "/bin/login"
#endif #endif
-#define _PATH_SHUTDOWN "/sbin/shutdown" -#define _PATH_SHUTDOWN "/sbin/shutdown"
+#define _PATH_SHUTDOWN "shutdown" -#define _PATH_POWEROFF "/sbin/poweroff"
+#define _PATH_SHUTDOWN "shutdown"
+#define _PATH_POWEROFF "poweroff"
#define _PATH_TERMCOLORS_DIRNAME "terminal-colors.d" #define _PATH_TERMCOLORS_DIRNAME "terminal-colors.d"
#define _PATH_TERMCOLORS_DIR "/etc/" _PATH_TERMCOLORS_DIRNAME #define _PATH_TERMCOLORS_DIR "/etc/" _PATH_TERMCOLORS_DIRNAME
--- a/sys-utils/rtcwake.c --- a/sys-utils/rtcwake.c
+++ b/sys-utils/rtcwake.c +++ b/sys-utils/rtcwake.c
@@ -575,7 +575,7 @@ int main(int argc, char **argv) @@ -587,29 +587,29 @@ int main(int argc, char **argv)
arg[i++] = "now"; char *arg[5];
arg[i] = NULL; int i = 0;
if (!ctl.dryrun) {
- execv(arg[0], arg); - if (!access(_PATH_SHUTDOWN, X_OK)) {
- arg[i++] = _PATH_SHUTDOWN;
- arg[i++] = "-h";
- arg[i++] = "-P";
- arg[i++] = "now";
- arg[i] = NULL;
- } else if (!access(_PATH_POWEROFF, X_OK)) {
- arg[i++] = _PATH_POWEROFF;
- arg[i] = NULL;
- } else {
- arg[i] = NULL;
- }
+ arg[i++] = _PATH_SHUTDOWN;
+ arg[i++] = "-h";
+ arg[i++] = "-P";
+ arg[i++] = "now";
+ arg[i] = NULL;
- if (arg[0]) {
- if (ctl.verbose)
- printf(_("suspend mode: off; executing %s\n"),
- arg[0]);
- if (!ctl.dryrun) {
- execv(arg[0], arg);
+ if (ctl.verbose)
+ printf(_("suspend mode: off; executing %s\n"),
+ arg[0]);
+
+ if (!ctl.dryrun) {
+ execvp(arg[0], arg); + execvp(arg[0], arg);
warn(_("failed to execute %s"), _PATH_SHUTDOWN); + if (ctl.verbose) {
rc = EXIT_FAILURE; warn(_("failed to execute %s"), arg[0]);
} - rc = EX_EXEC_ENOENT;
+ // Reuse translations.
+ printf(_("suspend mode: off; executing %s\n"),
+ _PATH_POWEROFF);
}
- } else {
+
+ i = 0;
+ arg[i++] = _PATH_POWEROFF;
+ arg[i] = NULL;
+ execvp(arg[0], arg);
/* Failed to find shutdown command */
warn(_("failed to find shutdown command"));
rc = EX_EXEC_ENOENT;