mirror of
https://github.com/flatcar/scripts.git
synced 2026-05-05 12:16:41 +02:00
sys-apps/util-linux: Sync with Gentoo
It's from Gentoo commit ca357571bbcbf795e7a87354251ca1ff79483c09.
This commit is contained in:
parent
24dc33fd9d
commit
a6c1c882c6
@ -1,8 +1,2 @@
|
||||
DIST util-linux-2.39.3.tar.sign 833 BLAKE2B 433b9ad6e97d9e2ffbd516addf8406587d009d9c7661ac126ae89b370f22a39f1f1243e86ef383133d656833d3ad35054397d60e0e0c67bd1e9402939903570b SHA512 d9993d7a77531ca8fe3e58458d65e7d721c38aa53838547479fea169941a69b1c07fb02ac90ed5a0360025814b0999167621dbc4215348810584947a9e67756d
|
||||
DIST util-linux-2.39.3.tar.xz 8526168 BLAKE2B cd7b2b3c820e920d4a6ecd46fd807e018fc8e54439292f5e62c5f6863dd0f2505df3ec02c470d9be255a437c6ee8e4077908ac78d19a0d1273854d99eb571df0 SHA512 a2de1672f06ca5d2d431db1265a8499808770c3781019ec4a3a40170df4685826d8e3ca120841dcc5df4681ca8c935a993317bd0dc70465b21bf8e0efef65afa
|
||||
DIST util-linux-2.39.4.tar.sign 833 BLAKE2B cbefaa4968ac82491c9eaa467c5e84e9b4a0c8dac74855aa04536a08f2c924e5f027f1a6389bd75e4366671addfe10a292f293295734041da7dc90971209134c SHA512 3f29551913cf8206c144edb0f3575beabf6e228564cf4aaf8f83d44d45ec8f24c22c7d178cc225804ecdfc66f6c24ee790e3b3660622975fdeec98fe7e2500aa
|
||||
DIST util-linux-2.39.4.tar.xz 8541176 BLAKE2B 53fef6f36b802d5e4c1112376c77e5cd832280d9eaeb9a6a98b2371334a1a3a8a48f5589d16f67c623a5050ae3b16dafc43ee26a9e8cb77079f9b6a2ee6c9480 SHA512 94e0282ac9705ca666d3c3864f2656bd1a21d879339164edd2c413ae7665b1cfec01f9c58a83b3148b8c4b4e857653447e5523c3b27230b175dd39f75ac6fae0
|
||||
DIST util-linux-2.40.1.tar.sign 833 BLAKE2B 2f8537cd4f52e0c203360d081a91f17c2db13c0f6054ef02f967e8fdf03099bb8c42604864003bfb911ea7804033f4020e2f56a933667fc84ac9c4b8d01e9ed5 SHA512 ab73a27fc8601041bf7b8a088586b78c49ca83cf9c8cfe5877280c0b5c607e95695512804335a8c0ac1d243e4433595f44256407fdbfb053451b8ab40d605502
|
||||
DIST util-linux-2.40.1.tar.xz 8823784 BLAKE2B a51fcf9b63c033e470da4f4f0094f0f923fdeb5a649a5c59d2d44888e5e741dfd95e589247355296e050d9ec8dc4334c5898453af055abcb30082af6b835a3e3 SHA512 58ec6eb41d4b6bfc544a80e95c71b5f3798ab4d2a9435d3ee9e5edd56f9b3f09bcb154bdd70e002dc018938937e2e946ae731dcda0f86b362fc43423689e41fc
|
||||
DIST util-linux-2.40.2.tar.sign 833 BLAKE2B 10aae23d25c1364bac0034d6862df5738c7a405d52198fba1e4e9173a1b2ba9f3d994dacb881d920c3339c0f1018c7dd1c97c7752bdf0e8e634f54235c2b3f5c SHA512 e4ace52333df0c8dd7c8ffc3b813020615c456e06a6978e06c8183ec29896be5af7c25f59e65fc2c2849750d8d7b43043775b8504d6d01f626f1adf296493ce1
|
||||
DIST util-linux-2.40.2.tar.xz 8854820 BLAKE2B 8306d651f27db6665e91a937c9f1970938fec5b069636fea3c2688afddebd1a3424f0b0802a034eab049cf7692dd435cf93e82aa5f4a40cc8064d60b4ca59535 SHA512 ffe20b915a518a150401d429b0338bc7022190e4ca0ef91a6d9eea345db8c1e11ad01784163b8fcf978506f3f5cad473f29d5d4ef93a4c66a5ae0ebd9fb0c8f2
|
||||
|
||||
@ -1,33 +0,0 @@
|
||||
https://bugs.gentoo.org/920904
|
||||
https://github.com/util-linux/util-linux/commit/1d4456dd81a64a73685df9e5f1232d566818e453
|
||||
|
||||
From 1d4456dd81a64a73685df9e5f1232d566818e453 Mon Sep 17 00:00:00 2001
|
||||
From: John David Anglin <dave@parisc-linux.org>
|
||||
Date: Mon, 7 Aug 2023 15:37:17 +0000
|
||||
Subject: [PATCH] enosys: fix build on hppa
|
||||
|
||||
The following patch fixes the definition of SECCOMP_ARCH_NATIVE
|
||||
on hppa.
|
||||
|
||||
Signed-off-by: John David Anglin <dave.anglin@bell.net>
|
||||
---
|
||||
include/audit-arch.h | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/include/audit-arch.h b/include/audit-arch.h
|
||||
index 63d9eb52c1..f1354eec5d 100644
|
||||
--- a/include/audit-arch.h
|
||||
+++ b/include/audit-arch.h
|
||||
@@ -57,6 +57,12 @@
|
||||
# else
|
||||
# define SECCOMP_ARCH_NATIVE AUDIT_ARCH_LOONGARCH64
|
||||
# endif
|
||||
+#elif __hppa__
|
||||
+# if __SIZEOF_POINTER__ == 4
|
||||
+# define SECCOMP_ARCH_NATIVE AUDIT_ARCH_PARISC
|
||||
+# else
|
||||
+# define SECCOMP_ARCH_NATIVE AUDIT_ARCH_PARISC64
|
||||
+# endif
|
||||
#else
|
||||
# error Unknown target architecture
|
||||
#endif
|
||||
@ -1,268 +0,0 @@
|
||||
https://bugs.gentoo.org/914791
|
||||
https://github.com/util-linux/util-linux/issues/2249
|
||||
https://github.com/util-linux/util-linux/pull/2251
|
||||
|
||||
From 8b36444f447949c3ab477f2c43b45a94c30ee7bf Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= <thomas@t-8ch.de>
|
||||
Date: Sun, 21 May 2023 21:42:14 +0200
|
||||
Subject: [PATCH 1/4] fadvise: (test) dynamically calculate expected test
|
||||
values
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Signed-off-by: Thomas Weißschuh <thomas@t-8ch.de>
|
||||
---
|
||||
tests/ts/fadvise/drop | 14 +++++++-------
|
||||
1 file changed, 7 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/tests/ts/fadvise/drop b/tests/ts/fadvise/drop
|
||||
index 7c7eee5dc2..86c0d5b0a3 100755
|
||||
--- a/tests/ts/fadvise/drop
|
||||
+++ b/tests/ts/fadvise/drop
|
||||
@@ -16,7 +16,7 @@ ts_check_prog "sleep"
|
||||
ts_cd "$TS_OUTDIR"
|
||||
|
||||
FILE="ddtest"
|
||||
-BS=4k
|
||||
+BS=4096
|
||||
COUNT=8
|
||||
|
||||
FILE_FS="$("$TS_CMD_FINDMNT" -nr -o FSTYPE -T "$PWD")"
|
||||
@@ -41,22 +41,22 @@ create_file() {
|
||||
echo
|
||||
|
||||
create_file
|
||||
- echo "offset: 8192"
|
||||
- "$TS_CMD_FADVISE" -o 8192 "$FILE"
|
||||
+ echo "offset: $(( 2 * $BS ))"
|
||||
+ "$TS_CMD_FADVISE" -o $(( 2 * $BS )) "$FILE"
|
||||
echo status: $?
|
||||
"$TS_CMD_FINCORE" "$FILE"
|
||||
echo
|
||||
|
||||
create_file
|
||||
- echo "length: 16384"
|
||||
- "$TS_CMD_FADVISE" -l 16384 "$FILE"
|
||||
+ echo "length: $(( 4 * $BS ))"
|
||||
+ "$TS_CMD_FADVISE" -l $(( 4 * $BS )) "$FILE"
|
||||
echo status: $?
|
||||
"$TS_CMD_FINCORE" "$FILE"
|
||||
echo
|
||||
|
||||
create_file
|
||||
- echo "offset: 8192, length: 16384 fd: 42"
|
||||
- "$TS_CMD_FADVISE" -o 8192 -l 16384 --fd 42 42<"$FILE"
|
||||
+ echo "offset: $(( 2 * $BS )), length: $(( 4 * $BS )) fd: 42"
|
||||
+ "$TS_CMD_FADVISE" -o $(( 2 * $BS )) -l $(( 4 * $BS )) --fd 42 42<"$FILE"
|
||||
echo status: $?
|
||||
"$TS_CMD_FINCORE" "$FILE"
|
||||
echo
|
||||
|
||||
From e5009e773fc801eca887dd43b721cd1b1aa327be Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= <thomas@t-8ch.de>
|
||||
Date: Sun, 21 May 2023 21:43:38 +0200
|
||||
Subject: [PATCH 2/4] fadvise: (tests) factor out calls to "fincore"
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
This will make it easier to pass argument later.
|
||||
|
||||
Signed-off-by: Thomas Weißschuh <thomas@t-8ch.de>
|
||||
---
|
||||
tests/ts/fadvise/drop | 14 +++++++++-----
|
||||
1 file changed, 9 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/tests/ts/fadvise/drop b/tests/ts/fadvise/drop
|
||||
index 86c0d5b0a3..8869b7da4d 100755
|
||||
--- a/tests/ts/fadvise/drop
|
||||
+++ b/tests/ts/fadvise/drop
|
||||
@@ -28,37 +28,41 @@ create_file() {
|
||||
dd if=/dev/zero of="$FILE" bs=$BS count=$COUNT conv=fsync >& /dev/null
|
||||
}
|
||||
|
||||
+do_fincore() {
|
||||
+ "$TS_CMD_FINCORE" "$FILE"
|
||||
+}
|
||||
+
|
||||
{
|
||||
create_file
|
||||
- "$TS_CMD_FINCORE" "$FILE"
|
||||
+ do_fincore
|
||||
echo
|
||||
|
||||
create_file
|
||||
echo "whole file"
|
||||
"$TS_CMD_FADVISE" "$FILE"
|
||||
echo status: $?
|
||||
- "$TS_CMD_FINCORE" "$FILE"
|
||||
+ do_fincore
|
||||
echo
|
||||
|
||||
create_file
|
||||
echo "offset: $(( 2 * $BS ))"
|
||||
"$TS_CMD_FADVISE" -o $(( 2 * $BS )) "$FILE"
|
||||
echo status: $?
|
||||
- "$TS_CMD_FINCORE" "$FILE"
|
||||
+ do_fincore
|
||||
echo
|
||||
|
||||
create_file
|
||||
echo "length: $(( 4 * $BS ))"
|
||||
"$TS_CMD_FADVISE" -l $(( 4 * $BS )) "$FILE"
|
||||
echo status: $?
|
||||
- "$TS_CMD_FINCORE" "$FILE"
|
||||
+ do_fincore
|
||||
echo
|
||||
|
||||
create_file
|
||||
echo "offset: $(( 2 * $BS )), length: $(( 4 * $BS )) fd: 42"
|
||||
"$TS_CMD_FADVISE" -o $(( 2 * $BS )) -l $(( 4 * $BS )) --fd 42 42<"$FILE"
|
||||
echo status: $?
|
||||
- "$TS_CMD_FINCORE" "$FILE"
|
||||
+ do_fincore
|
||||
echo
|
||||
|
||||
rm "$FILE"
|
||||
|
||||
From 33980996d0b429fc59c40f8352633c0a21a0f96a Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= <thomas@t-8ch.de>
|
||||
Date: Sun, 21 May 2023 21:44:20 +0200
|
||||
Subject: [PATCH 3/4] fadvise: (test) don't compare fincore page counts
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
These depend on the machines pagesize and are therefore not a good
|
||||
comparision.
|
||||
|
||||
Signed-off-by: Thomas Weißschuh <thomas@t-8ch.de>
|
||||
---
|
||||
tests/expected/fadvise/drop | 20 ++++++++++----------
|
||||
tests/ts/fadvise/drop | 2 +-
|
||||
2 files changed, 11 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/tests/expected/fadvise/drop b/tests/expected/fadvise/drop
|
||||
index f2360b56fb..25f23e050a 100644
|
||||
--- a/tests/expected/fadvise/drop
|
||||
+++ b/tests/expected/fadvise/drop
|
||||
@@ -1,23 +1,23 @@
|
||||
- RES PAGES SIZE FILE
|
||||
- 32K 8 32K ddtest
|
||||
+ RES SIZE FILE
|
||||
+ 32K 32K ddtest
|
||||
|
||||
whole file
|
||||
status: 0
|
||||
-RES PAGES SIZE FILE
|
||||
- 0B 0 32K ddtest
|
||||
+RES SIZE FILE
|
||||
+ 0B 32K ddtest
|
||||
|
||||
offset: 8192
|
||||
status: 0
|
||||
-RES PAGES SIZE FILE
|
||||
- 8K 2 32K ddtest
|
||||
+RES SIZE FILE
|
||||
+ 8K 32K ddtest
|
||||
|
||||
length: 16384
|
||||
status: 0
|
||||
- RES PAGES SIZE FILE
|
||||
- 16K 4 32K ddtest
|
||||
+ RES SIZE FILE
|
||||
+ 16K 32K ddtest
|
||||
|
||||
offset: 8192, length: 16384 fd: 42
|
||||
status: 0
|
||||
- RES PAGES SIZE FILE
|
||||
- 16K 4 32K ddtest
|
||||
+ RES SIZE FILE
|
||||
+ 16K 32K ddtest
|
||||
|
||||
diff --git a/tests/ts/fadvise/drop b/tests/ts/fadvise/drop
|
||||
index 8869b7da4d..6c4298e872 100755
|
||||
--- a/tests/ts/fadvise/drop
|
||||
+++ b/tests/ts/fadvise/drop
|
||||
@@ -29,7 +29,7 @@ create_file() {
|
||||
}
|
||||
|
||||
do_fincore() {
|
||||
- "$TS_CMD_FINCORE" "$FILE"
|
||||
+ "$TS_CMD_FINCORE" -o RES,SIZE,FILE "$FILE"
|
||||
}
|
||||
|
||||
{
|
||||
|
||||
From c0f31b79f5d1c665cdc057fb32f4d161d28aa5b2 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= <thomas@t-8ch.de>
|
||||
Date: Sun, 21 May 2023 21:45:10 +0200
|
||||
Subject: [PATCH 4/4] fadvise: (test) test with 64k blocks
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
This will allow the tests to also pass on systems with 64k pagesizes.
|
||||
|
||||
Closes #2249
|
||||
Signed-off-by: Thomas Weißschuh <thomas@t-8ch.de>
|
||||
---
|
||||
tests/expected/fadvise/drop | 26 +++++++++++++-------------
|
||||
tests/ts/fadvise/drop | 2 +-
|
||||
2 files changed, 14 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/tests/expected/fadvise/drop b/tests/expected/fadvise/drop
|
||||
index 25f23e050a..e7bb26b6e2 100644
|
||||
--- a/tests/expected/fadvise/drop
|
||||
+++ b/tests/expected/fadvise/drop
|
||||
@@ -1,23 +1,23 @@
|
||||
- RES SIZE FILE
|
||||
- 32K 32K ddtest
|
||||
+ RES SIZE FILE
|
||||
+ 512K 512K ddtest
|
||||
|
||||
whole file
|
||||
status: 0
|
||||
-RES SIZE FILE
|
||||
- 0B 32K ddtest
|
||||
+RES SIZE FILE
|
||||
+ 0B 512K ddtest
|
||||
|
||||
-offset: 8192
|
||||
+offset: 131072
|
||||
status: 0
|
||||
-RES SIZE FILE
|
||||
- 8K 32K ddtest
|
||||
+ RES SIZE FILE
|
||||
+ 128K 512K ddtest
|
||||
|
||||
-length: 16384
|
||||
+length: 262144
|
||||
status: 0
|
||||
- RES SIZE FILE
|
||||
- 16K 32K ddtest
|
||||
+ RES SIZE FILE
|
||||
+ 256K 512K ddtest
|
||||
|
||||
-offset: 8192, length: 16384 fd: 42
|
||||
+offset: 131072, length: 262144 fd: 42
|
||||
status: 0
|
||||
- RES SIZE FILE
|
||||
- 16K 32K ddtest
|
||||
+ RES SIZE FILE
|
||||
+ 256K 512K ddtest
|
||||
|
||||
diff --git a/tests/ts/fadvise/drop b/tests/ts/fadvise/drop
|
||||
index 6c4298e872..45dcb9110b 100755
|
||||
--- a/tests/ts/fadvise/drop
|
||||
+++ b/tests/ts/fadvise/drop
|
||||
@@ -16,7 +16,7 @@ ts_check_prog "sleep"
|
||||
ts_cd "$TS_OUTDIR"
|
||||
|
||||
FILE="ddtest"
|
||||
-BS=4096
|
||||
+BS=65536
|
||||
COUNT=8
|
||||
|
||||
FILE_FS="$("$TS_CMD_FINDMNT" -nr -o FSTYPE -T "$PWD")"
|
||||
@ -1,23 +0,0 @@
|
||||
https://bugs.gentoo.org/627532
|
||||
https://github.com/util-linux/util-linux/commit/f5715c117e727d4ff45e0d8568f188753620356e
|
||||
|
||||
From f5715c117e727d4ff45e0d8568f188753620356e Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= <thomas@t-8ch.de>
|
||||
Date: Mon, 13 Nov 2023 21:05:59 +0100
|
||||
Subject: [PATCH] fincore: (tests) also use nosize error file
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Link: https://lore.kernel.org/util-linux/b8cafd0d89878949705782312dfe800ec2779035.camel@physik.fu-berlin.de/
|
||||
Signed-off-by: Thomas Weißschuh <thomas@t-8ch.de>
|
||||
--- a/tests/ts/fincore/count
|
||||
+++ b/tests/ts/fincore/count
|
||||
@@ -107,6 +107,7 @@ if test -f "$TS_EXPECTED.$PAGE_SIZE"; then
|
||||
OUT_COLUMNS="PAGES,SIZE,FILE"
|
||||
else
|
||||
TS_EXPECTED+=".nosize"
|
||||
+ TS_EXPECTED_ERR+=".nosize"
|
||||
OUT_COLUMNS="PAGES,FILE"
|
||||
fi
|
||||
|
||||
@ -1,25 +0,0 @@
|
||||
https://bugs.gentoo.org/927980
|
||||
https://people.rit.edu/sjf5462/6831711781/wall_2_27_2024.txt
|
||||
https://github.com/util-linux/util-linux/commit/404b0781f52f7c045ca811b2dceec526408ac253
|
||||
|
||||
From 404b0781f52f7c045ca811b2dceec526408ac253 Mon Sep 17 00:00:00 2001
|
||||
From: Karel Zak <kzak@redhat.com>
|
||||
Date: Thu, 21 Mar 2024 11:16:20 +0100
|
||||
Subject: [PATCH] wall: fix escape sequence Injection [CVE-2024-28085]
|
||||
|
||||
Let's use for all cases the same output function.
|
||||
|
||||
Reported-by: Skyler Ferrante <sjf5462@rit.edu>
|
||||
Signed-off-by: Karel Zak <kzak@redhat.com>
|
||||
--- a/term-utils/wall.c
|
||||
+++ b/term-utils/wall.c
|
||||
@@ -368,7 +368,7 @@ static char *makemsg(char *fname, char **mvec, int mvecsz,
|
||||
int i;
|
||||
|
||||
for (i = 0; i < mvecsz; i++) {
|
||||
- fputs(mvec[i], fs);
|
||||
+ fputs_careful(mvec[i], fs, '^', true, TERM_WIDTH);
|
||||
if (i < mvecsz - 1)
|
||||
fputc(' ', fs);
|
||||
}
|
||||
|
||||
@ -1,52 +0,0 @@
|
||||
https://bugs.gentoo.org/928396
|
||||
https://github.com/util-linux/util-linux/commit/4b2e6f5071a4c5beebbd9668d24dc05defc096d7
|
||||
|
||||
From 4b2e6f5071a4c5beebbd9668d24dc05defc096d7 Mon Sep 17 00:00:00 2001
|
||||
From: Tanish Yadav <devtany@gmail.com>
|
||||
Date: Tue, 5 Mar 2024 00:51:41 +0530
|
||||
Subject: [PATCH] su: fix use after free in run_shell
|
||||
|
||||
Do not free tmp for non login branch as basename may return a pointer to
|
||||
some part of it.
|
||||
|
||||
[kzak@redhat.com: - improve coding style of the function]
|
||||
|
||||
Signed-off-by: Tanish Yadav <devtany@gmail.com>
|
||||
Signed-off-by: Karel Zak <kzak@redhat.com>
|
||||
---
|
||||
login-utils/su-common.c | 9 ++++-----
|
||||
1 file changed, 4 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/login-utils/su-common.c b/login-utils/su-common.c
|
||||
index 242b6ce4ea..9bc0231961 100644
|
||||
--- a/login-utils/su-common.c
|
||||
+++ b/login-utils/su-common.c
|
||||
@@ -835,13 +835,14 @@ static void run_shell(
|
||||
size_t n_args = 1 + su->fast_startup + 2 * ! !command + n_additional_args + 1;
|
||||
const char **args = xcalloc(n_args, sizeof *args);
|
||||
size_t argno = 1;
|
||||
+ char *tmp;
|
||||
|
||||
DBG(MISC, ul_debug("starting shell [shell=%s, command=\"%s\"%s%s]",
|
||||
shell, command,
|
||||
su->simulate_login ? " login" : "",
|
||||
su->fast_startup ? " fast-start" : ""));
|
||||
+ tmp = xstrdup(shell);
|
||||
|
||||
- char* tmp = xstrdup(shell);
|
||||
if (su->simulate_login) {
|
||||
char *arg0;
|
||||
char *shell_basename;
|
||||
@@ -851,10 +852,8 @@ static void run_shell(
|
||||
arg0[0] = '-';
|
||||
strcpy(arg0 + 1, shell_basename);
|
||||
args[0] = arg0;
|
||||
- } else {
|
||||
- args[0] = basename(tmp);
|
||||
- }
|
||||
- free(tmp);
|
||||
+ } else
|
||||
+ args[0] = basename(tmp);
|
||||
|
||||
if (su->fast_startup)
|
||||
args[argno++] = "-f";
|
||||
@ -1,40 +0,0 @@
|
||||
https://bugs.gentoo.org/926950
|
||||
https://gitlab.com/lvmteam/lvm2/-/issues/11
|
||||
https://bugzilla.opensuse.org/show_bug.cgi?id=1213227
|
||||
https://github.com/util-linux/util-linux/pull/2373
|
||||
https://github.com/util-linux/util-linux/commit/93ba7961779789217a1f814ce3110ff8c040c8c3
|
||||
|
||||
From 93ba7961779789217a1f814ce3110ff8c040c8c3 Mon Sep 17 00:00:00 2001
|
||||
From: Fabian Vogt <fvogt@suse.de>
|
||||
Date: Wed, 12 Jul 2023 15:48:27 +0200
|
||||
Subject: [PATCH] Revert "libblkid: try LUKS2 first when probing"
|
||||
|
||||
mdadm superblocks before 1.1 are placed at the end of the device, which
|
||||
means that the data contained inside the array starts at offset 0. For
|
||||
LUKS inside MD, blkid falsely detects this as plain LUKS instead of a
|
||||
linux_raid_member. This causes e.g. dracut to not assemble the array
|
||||
during boot and system startup fails.
|
||||
|
||||
This reverts commit b8889c0a214aeb3dd47bf1ab280fe5534b64d2aa.
|
||||
--- a/libblkid/src/superblocks/superblocks.c
|
||||
+++ b/libblkid/src/superblocks/superblocks.c
|
||||
@@ -94,11 +94,6 @@ static int blkid_probe_set_usage(blkid_probe pr, int usage);
|
||||
*/
|
||||
static const struct blkid_idinfo *idinfos[] =
|
||||
{
|
||||
- /* In case the volume is locked with OPAL we are going to get
|
||||
- * an I/O error when reading past the LUKS header, so try it
|
||||
- * first. */
|
||||
- &luks_idinfo,
|
||||
-
|
||||
/* RAIDs */
|
||||
&linuxraid_idinfo,
|
||||
&ddfraid_idinfo,
|
||||
@@ -124,6 +119,7 @@ static const struct blkid_idinfo *idinfos[] =
|
||||
&snapcow_idinfo,
|
||||
&verity_hash_idinfo,
|
||||
&integrity_idinfo,
|
||||
+ &luks_idinfo,
|
||||
&vmfs_volume_idinfo,
|
||||
&ubi_idinfo,
|
||||
&vdo_idinfo,
|
||||
@ -1,55 +0,0 @@
|
||||
https://bugs.gentoo.org/927258
|
||||
https://github.com/util-linux/util-linux/pull/2845
|
||||
|
||||
From d271589d9536181184fcd19194f879e7c776d43e Mon Sep 17 00:00:00 2001
|
||||
From: Matt Turner <mattst88@gmail.com>
|
||||
Date: Mon, 18 Mar 2024 21:29:13 -0400
|
||||
Subject: [PATCH] libmount: Fix export of mnt_context_is_lazy and
|
||||
mnt_context_is_onlyonce
|
||||
|
||||
[kzak@redhat.com: - fix also function docs]
|
||||
|
||||
Bug: https://bugs.gentoo.org/927258
|
||||
Closes: https://github.com/util-linux/util-linux/issues/2844
|
||||
Fixes: 3d1c41c8c ("libmount: add --onlyonce")
|
||||
Signed-off-by: Matt Turner <mattst88@gmail.com>
|
||||
Signed-off-by: Karel Zak <kzak@redhat.com>
|
||||
(cherry picked from commit 6d2917f2eb910fb8bcdc6476be18c34fee152911)
|
||||
---
|
||||
libmount/src/context.c | 4 ++--
|
||||
libmount/src/libmount.sym | 2 +-
|
||||
2 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/libmount/src/context.c b/libmount/src/context.c
|
||||
index 0cd320190..20f4c64ae 100644
|
||||
--- a/libmount/src/context.c
|
||||
+++ b/libmount/src/context.c
|
||||
@@ -549,10 +549,10 @@ int mnt_context_enable_onlyonce(struct libmnt_context *cxt, int enable)
|
||||
}
|
||||
|
||||
/**
|
||||
- * mnt_context_is_lazy:
|
||||
+ * mnt_context_is_onlyonce:
|
||||
* @cxt: mount context
|
||||
*
|
||||
- * Returns: 1 if lazy umount is enabled or 0
|
||||
+ * Returns: 1 if only-once mount is enabled or 0
|
||||
*/
|
||||
int mnt_context_is_onlyonce(struct libmnt_context *cxt)
|
||||
{
|
||||
diff --git a/libmount/src/libmount.sym b/libmount/src/libmount.sym
|
||||
index 715bb5c5f..1fa8bce3c 100644
|
||||
--- a/libmount/src/libmount.sym
|
||||
+++ b/libmount/src/libmount.sym
|
||||
@@ -370,7 +370,7 @@ MOUNT_2_38 {
|
||||
MOUNT_2_39 {
|
||||
mnt_cache_set_sbprobe;
|
||||
mnt_context_enable_onlyonce;
|
||||
- mnt_context_is_lazy;
|
||||
+ mnt_context_is_onlyonce;
|
||||
mnt_context_enable_noautofs;
|
||||
mnt_table_enable_noautofs;
|
||||
mnt_table_is_noautofs;
|
||||
--
|
||||
2.43.2
|
||||
|
||||
@ -1,56 +0,0 @@
|
||||
https://bugs.gentoo.org/926293
|
||||
https://github.com/util-linux/util-linux/commit/77454e58d58f904cfdc02d3ca5bb65f1bd8739fc
|
||||
|
||||
From 77454e58d58f904cfdc02d3ca5bb65f1bd8739fc Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Sun, 3 Dec 2023 19:59:46 -0800
|
||||
Subject: [PATCH] login-utils: include libgen.h for basename API
|
||||
|
||||
musl has removed the non-prototype declaration of basename from string.h [1] which now results in build errors with clang-17+ compiler
|
||||
|
||||
include libgen.h for using the posix declaration of the funciton.
|
||||
|
||||
Fixes
|
||||
|
||||
../util-linux-2.39.2/login-utils/su-common.c:847:20: error: call to undeclared function 'basename'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
|
||||
847 | shell_basename = basename(shell);
|
||||
| ^
|
||||
|
||||
[1] https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
--- a/login-utils/su-common.c
|
||||
+++ b/login-utils/su-common.c
|
||||
@@ -26,6 +26,7 @@
|
||||
#include <sys/types.h>
|
||||
#include <pwd.h>
|
||||
#include <grp.h>
|
||||
+#include <libgen.h>
|
||||
#include <security/pam_appl.h>
|
||||
#ifdef HAVE_SECURITY_PAM_MISC_H
|
||||
# include <security/pam_misc.h>
|
||||
@@ -840,17 +841,20 @@ static void run_shell(
|
||||
su->simulate_login ? " login" : "",
|
||||
su->fast_startup ? " fast-start" : ""));
|
||||
|
||||
+ char* tmp = xstrdup(shell);
|
||||
if (su->simulate_login) {
|
||||
char *arg0;
|
||||
char *shell_basename;
|
||||
|
||||
- shell_basename = basename(shell);
|
||||
+ shell_basename = basename(tmp);
|
||||
arg0 = xmalloc(strlen(shell_basename) + 2);
|
||||
arg0[0] = '-';
|
||||
strcpy(arg0 + 1, shell_basename);
|
||||
args[0] = arg0;
|
||||
- } else
|
||||
- args[0] = basename(shell);
|
||||
+ } else {
|
||||
+ args[0] = basename(tmp);
|
||||
+ }
|
||||
+ free(tmp);
|
||||
|
||||
if (su->fast_startup)
|
||||
args[argno++] = "-f";
|
||||
|
||||
@ -1,35 +0,0 @@
|
||||
https://github.com/util-linux/util-linux/commit/9ba8eb5d89f0ebba8b3a542c041a5838e10a0d75
|
||||
https://bugs.gentoo.org/573760#c11
|
||||
|
||||
From 9ba8eb5d89f0ebba8b3a542c041a5838e10a0d75 Mon Sep 17 00:00:00 2001
|
||||
From: Karel Zak <kzak@redhat.com>
|
||||
Date: Tue, 23 Apr 2024 10:29:37 +0200
|
||||
Subject: [PATCH] libmount: fix umount --read-only
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Reported-by: Krzysztof Olędzki <ole@ans.pl>
|
||||
Signed-off-by: Karel Zak <kzak@redhat.com>
|
||||
(cherry picked from commit a20e7e23a8565e01b1c84de6924d1fbbdb1cfccc)
|
||||
--- a/libmount/src/context_umount.c
|
||||
+++ b/libmount/src/context_umount.c
|
||||
@@ -267,6 +267,9 @@ static int lookup_umount_fs_by_statfs(struct libmnt_context *cxt, const char *tg
|
||||
* So, let's use statfs() if possible (it's bad idea for --lazy/--force
|
||||
* umounts as target is probably unreachable NFS, also for --detach-loop
|
||||
* as this additionally needs to know the name of the loop device).
|
||||
+ *
|
||||
+ * For the "umount --read-only" command, we need to read the mountinfo
|
||||
+ * to obtain the mount source.
|
||||
*/
|
||||
if (mnt_context_is_restricted(cxt)
|
||||
|| *tgt != '/'
|
||||
@@ -275,6 +278,7 @@ static int lookup_umount_fs_by_statfs(struct libmnt_context *cxt, const char *tg
|
||||
|| mnt_context_is_lazy(cxt)
|
||||
|| mnt_context_is_nocanonicalize(cxt)
|
||||
|| mnt_context_is_loopdel(cxt)
|
||||
+ || mnt_context_is_rdonly_umount(cxt)
|
||||
|| mnt_safe_stat(tgt, &st) != 0 || !S_ISDIR(st.st_mode)
|
||||
|| has_utab_entry(cxt, tgt))
|
||||
return 1; /* not found */
|
||||
|
||||
@ -1,411 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{10..11} )
|
||||
|
||||
inherit toolchain-funcs libtool flag-o-matic bash-completion-r1 \
|
||||
pam python-r1 multilib-minimal multiprocessing systemd
|
||||
|
||||
MY_PV="${PV/_/-}"
|
||||
MY_P="${PN}-${MY_PV}"
|
||||
|
||||
if [[ ${PV} == 9999 ]] ; then
|
||||
EGIT_REPO_URI="https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git"
|
||||
inherit autotools git-r3
|
||||
else
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/karelzak.asc
|
||||
inherit verify-sig
|
||||
|
||||
if [[ ${PV} != *_rc* ]] ; then
|
||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos"
|
||||
fi
|
||||
|
||||
SRC_URI="https://www.kernel.org/pub/linux/utils/util-linux/v${PV:0:4}/${MY_P}.tar.xz"
|
||||
SRC_URI+=" verify-sig? ( https://www.kernel.org/pub/linux/utils/util-linux/v${PV:0:4}/${MY_P}.tar.sign )"
|
||||
fi
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
DESCRIPTION="Various useful Linux utilities"
|
||||
HOMEPAGE="https://www.kernel.org/pub/linux/utils/util-linux/ https://github.com/util-linux/util-linux"
|
||||
|
||||
LICENSE="GPL-2 GPL-3 LGPL-2.1 BSD-4 MIT public-domain"
|
||||
SLOT="0"
|
||||
IUSE="audit build caps +cramfs cryptsetup fdformat +hardlink kill +logger magic ncurses nls pam python +readline rtas selinux slang static-libs +su +suid systemd test tty-helpers udev unicode"
|
||||
|
||||
# Most lib deps here are related to programs rather than our libs,
|
||||
# so we rarely need to specify ${MULTILIB_USEDEP}.
|
||||
RDEPEND="
|
||||
virtual/libcrypt:=
|
||||
audit? ( >=sys-process/audit-2.6:= )
|
||||
caps? ( sys-libs/libcap-ng )
|
||||
cramfs? ( sys-libs/zlib:= )
|
||||
cryptsetup? ( >=sys-fs/cryptsetup-2.1.0 )
|
||||
hardlink? ( dev-libs/libpcre2:= )
|
||||
ncurses? (
|
||||
sys-libs/ncurses:=[unicode(+)?]
|
||||
magic? ( sys-apps/file:0= )
|
||||
)
|
||||
nls? ( virtual/libintl[${MULTILIB_USEDEP}] )
|
||||
pam? ( sys-libs/pam )
|
||||
python? ( ${PYTHON_DEPS} )
|
||||
readline? ( sys-libs/readline:0= )
|
||||
rtas? ( sys-libs/librtas )
|
||||
selinux? ( >=sys-libs/libselinux-2.2.2-r4[${MULTILIB_USEDEP}] )
|
||||
slang? ( sys-libs/slang )
|
||||
!build? (
|
||||
systemd? ( sys-apps/systemd )
|
||||
udev? ( virtual/libudev:= )
|
||||
)
|
||||
"
|
||||
BDEPEND="
|
||||
virtual/pkgconfig
|
||||
nls? (
|
||||
app-text/po4a
|
||||
sys-devel/gettext
|
||||
)
|
||||
test? ( app-alternatives/bc )
|
||||
"
|
||||
DEPEND="
|
||||
${RDEPEND}
|
||||
virtual/os-headers
|
||||
acct-group/root
|
||||
"
|
||||
RDEPEND+="
|
||||
hardlink? ( !app-arch/hardlink )
|
||||
logger? ( !>=app-admin/sysklogd-2.0[logger] )
|
||||
kill? (
|
||||
!sys-apps/coreutils[kill]
|
||||
!sys-process/procps[kill]
|
||||
)
|
||||
su? (
|
||||
!<sys-apps/shadow-4.7-r2
|
||||
!>=sys-apps/shadow-4.7-r2[su]
|
||||
)
|
||||
!net-wireless/rfkill
|
||||
"
|
||||
|
||||
if [[ ${PV} == 9999 ]] ; then
|
||||
# Required for man-page generation
|
||||
BDEPEND+=" dev-ruby/asciidoctor"
|
||||
else
|
||||
BDEPEND+=" verify-sig? ( >=sec-keys/openpgp-keys-karelzak-20230517 )"
|
||||
fi
|
||||
|
||||
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} ) su? ( pam )"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-2.39.2-fincore-test.patch
|
||||
"${FILESDIR}"/${PN}-2.39.2-backport-pr2251.patch
|
||||
"${FILESDIR}"/${PN}-2.39.2-backport-1d4456d.patch
|
||||
)
|
||||
|
||||
pkg_pretend() {
|
||||
if use su && ! use suid ; then
|
||||
elog "su will be installed as suid despite USE=-suid (bug #832092)"
|
||||
elog "To use su without suid, see e.g. Portage's suidctl feature."
|
||||
fi
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == 9999 ]] ; then
|
||||
git-r3_src_unpack
|
||||
return
|
||||
fi
|
||||
|
||||
if use verify-sig ; then
|
||||
mkdir "${T}"/verify-sig || die
|
||||
pushd "${T}"/verify-sig &>/dev/null || die
|
||||
|
||||
# Upstream sign the decompressed .tar
|
||||
# Let's do it separately in ${T} then cleanup to avoid external
|
||||
# effects on normal unpack.
|
||||
cp "${DISTDIR}"/${MY_P}.tar.xz . || die
|
||||
xz -d ${MY_P}.tar.xz || die
|
||||
verify-sig_verify_detached ${MY_P}.tar "${DISTDIR}"/${MY_P}.tar.sign
|
||||
|
||||
popd &>/dev/null || die
|
||||
rm -r "${T}"/verify-sig || die
|
||||
fi
|
||||
|
||||
default
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
if use test ; then
|
||||
# Known-failing tests
|
||||
# TODO: investigate these
|
||||
local known_failing_tests=(
|
||||
# Subtest 'options-maximum-size-8192' fails
|
||||
hardlink/options
|
||||
|
||||
# Fails in sandbox
|
||||
lsns/ioctl_ns
|
||||
|
||||
lsfd/mkfds-symlink
|
||||
lsfd/mkfds-rw-character-device
|
||||
# Fails with network-sandbox at least in nspawn
|
||||
lsfd/option-inet
|
||||
utmp/last-ipv6
|
||||
)
|
||||
|
||||
local known_failing_test
|
||||
for known_failing_test in "${known_failing_tests[@]}" ; do
|
||||
einfo "Removing known-failing test: ${known_failing_test}"
|
||||
rm tests/ts/${known_failing_test} || die
|
||||
done
|
||||
fi
|
||||
|
||||
if [[ ${PV} == 9999 ]] ; then
|
||||
po/update-potfiles
|
||||
eautoreconf
|
||||
else
|
||||
elibtoolize
|
||||
fi
|
||||
}
|
||||
|
||||
python_configure() {
|
||||
local myeconfargs=(
|
||||
"${commonargs[@]}"
|
||||
--disable-all-programs
|
||||
--disable-bash-completion
|
||||
--without-systemdsystemunitdir
|
||||
--with-python
|
||||
--enable-libblkid
|
||||
--enable-libmount
|
||||
--enable-pylibmount
|
||||
)
|
||||
|
||||
mkdir "${BUILD_DIR}" || die
|
||||
pushd "${BUILD_DIR}" >/dev/null || die
|
||||
ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
|
||||
popd >/dev/null || die
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
# The scanf test in a run-time test which fails while cross-compiling.
|
||||
# Blindly assume a POSIX setup since we require libmount, and libmount
|
||||
# itself fails when the scanf test fails. bug #531856
|
||||
tc-is-cross-compiler && export scanf_cv_alloc_modifier=ms
|
||||
|
||||
# bug #485486
|
||||
export ac_cv_header_security_pam_misc_h=$(multilib_native_usex pam)
|
||||
# bug #545042
|
||||
export ac_cv_header_security_pam_appl_h=$(multilib_native_usex pam)
|
||||
|
||||
# Undo bad ncurses handling by upstream. Fall back to pkg-config.
|
||||
# bug #601530
|
||||
export NCURSES6_CONFIG=false NCURSES5_CONFIG=false
|
||||
export NCURSESW6_CONFIG=false NCURSESW5_CONFIG=false
|
||||
|
||||
# Avoid automagic dependency on ppc*
|
||||
export ac_cv_lib_rtas_rtas_get_sysparm=$(usex rtas)
|
||||
|
||||
# configure args shared by python and non-python builds
|
||||
local commonargs=(
|
||||
--localstatedir="${EPREFIX}/var"
|
||||
--runstatedir="${EPREFIX}/run"
|
||||
--enable-fs-paths-extra="${EPREFIX}/usr/sbin:${EPREFIX}/bin:${EPREFIX}/usr/bin"
|
||||
|
||||
# Temporary workaround until ~2.39.2. 2.39.x introduced a big rewrite.
|
||||
# https://github.com/util-linux/util-linux/issues/2287#issuecomment-1576640373
|
||||
--disable-libmount-mountfd-support
|
||||
)
|
||||
|
||||
local myeconfargs=(
|
||||
"${commonargs[@]}"
|
||||
--with-bashcompletiondir="$(get_bashcompdir)"
|
||||
--without-python
|
||||
$(multilib_native_use_enable suid makeinstall-chown)
|
||||
$(multilib_native_use_enable suid makeinstall-setuid)
|
||||
$(multilib_native_use_with readline)
|
||||
$(multilib_native_use_with slang)
|
||||
$(multilib_native_usex ncurses "$(use_with magic libmagic)" '--without-libmagic')
|
||||
$(multilib_native_usex ncurses "$(use_with unicode ncursesw)" '--without-ncursesw')
|
||||
$(multilib_native_usex ncurses "$(use_with !unicode ncurses)" '--without-ncurses')
|
||||
$(multilib_native_use_with audit)
|
||||
$(tc-has-tls || echo --disable-tls)
|
||||
$(use_enable nls)
|
||||
$(use_enable nls poman)
|
||||
$(use_enable unicode widechar)
|
||||
$(use_enable static-libs static)
|
||||
$(use_with ncurses tinfo)
|
||||
$(use_with selinux)
|
||||
|
||||
# TODO: Wire this up (bug #931118)
|
||||
--without-econf
|
||||
)
|
||||
|
||||
if use build ; then
|
||||
myeconfargs+=(
|
||||
--without-systemd
|
||||
--without-udev
|
||||
)
|
||||
else
|
||||
myeconfargs+=(
|
||||
$(multilib_native_use_with systemd)
|
||||
$(multilib_native_use_with udev)
|
||||
)
|
||||
fi
|
||||
|
||||
if multilib_is_native_abi ; then
|
||||
myeconfargs+=(
|
||||
--disable-chfn-chsh
|
||||
--disable-login
|
||||
--disable-newgrp
|
||||
--disable-nologin
|
||||
--disable-pylibmount
|
||||
--disable-raw
|
||||
--disable-vipw
|
||||
--enable-agetty
|
||||
--enable-bash-completion
|
||||
--enable-line
|
||||
--enable-partx
|
||||
--enable-rename
|
||||
--enable-rfkill
|
||||
--enable-schedutils
|
||||
--with-systemdsystemunitdir="$(systemd_get_systemunitdir)"
|
||||
$(use_enable caps setpriv)
|
||||
$(use_enable cramfs)
|
||||
$(use_enable fdformat)
|
||||
$(use_enable hardlink)
|
||||
$(use_enable kill)
|
||||
$(use_enable logger)
|
||||
$(use_enable ncurses pg)
|
||||
$(use_enable su)
|
||||
$(use_enable tty-helpers mesg)
|
||||
$(use_enable tty-helpers wall)
|
||||
$(use_enable tty-helpers write)
|
||||
$(use_with cryptsetup)
|
||||
)
|
||||
if [[ ${PV} == *9999 ]] ; then
|
||||
myeconfargs+=( --enable-asciidoc )
|
||||
else
|
||||
# Upstream is shipping pre-generated man-pages for releases
|
||||
myeconfargs+=( --disable-asciidoc )
|
||||
fi
|
||||
else
|
||||
myeconfargs+=(
|
||||
--disable-all-programs
|
||||
--disable-asciidoc
|
||||
--disable-bash-completion
|
||||
--without-systemdsystemunitdir
|
||||
--disable-poman
|
||||
|
||||
# build libraries
|
||||
--enable-libuuid
|
||||
--enable-libblkid
|
||||
--enable-libsmartcols
|
||||
--enable-libfdisk
|
||||
--enable-libmount
|
||||
)
|
||||
fi
|
||||
|
||||
ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
|
||||
|
||||
if multilib_is_native_abi && use python ; then
|
||||
python_foreach_impl python_configure
|
||||
fi
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
append-lfs-flags
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
python_compile() {
|
||||
pushd "${BUILD_DIR}" >/dev/null || die
|
||||
emake all
|
||||
popd >/dev/null || die
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
emake all
|
||||
|
||||
if multilib_is_native_abi && use python ; then
|
||||
python_foreach_impl python_compile
|
||||
fi
|
||||
}
|
||||
|
||||
python_test() {
|
||||
pushd "${BUILD_DIR}" >/dev/null || die
|
||||
emake check TS_OPTS="--parallel=$(makeopts_jobs) --nonroot"
|
||||
popd >/dev/null || die
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
emake check TS_OPTS="--parallel=$(makeopts_jobs) --nonroot"
|
||||
if multilib_is_native_abi && use python ; then
|
||||
python_foreach_impl python_test
|
||||
fi
|
||||
}
|
||||
|
||||
python_install() {
|
||||
pushd "${BUILD_DIR}" >/dev/null || die
|
||||
emake DESTDIR="${D}" install
|
||||
python_optimize
|
||||
popd >/dev/null || die
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
if multilib_is_native_abi && use python ; then
|
||||
python_foreach_impl python_install
|
||||
fi
|
||||
|
||||
# This needs to be called AFTER python_install call, bug #689190
|
||||
emake DESTDIR="${D}" install
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
dodoc AUTHORS NEWS README* Documentation/{TODO,*.txt,releases/*}
|
||||
|
||||
# e2fsprogs-libs didn't install .la files, and .pc work fine
|
||||
find "${ED}" -name "*.la" -delete || die
|
||||
|
||||
if use pam ; then
|
||||
# See https://github.com/util-linux/util-linux/blob/master/Documentation/PAM-configuration.txt
|
||||
newpamd "${FILESDIR}/runuser.pamd" runuser
|
||||
newpamd "${FILESDIR}/runuser-l.pamd" runuser-l
|
||||
|
||||
newpamd "${FILESDIR}/su-l.pamd" su-l
|
||||
fi
|
||||
|
||||
if use su && ! use suid ; then
|
||||
# Always force suid su, even when USE=-suid, as su is useless
|
||||
# for the overwhelming-majority case without suid.
|
||||
# Users who wish to truly have a no-suid su can strip it out
|
||||
# via e.g. Portage's suidctl or some other hook.
|
||||
# See bug #832092
|
||||
fperms u+s /bin/su
|
||||
fi
|
||||
|
||||
# Note:
|
||||
# Bash completion for "runuser" command is provided by same file which
|
||||
# would also provide bash completion for "su" command. However, we don't
|
||||
# use "su" command from this package.
|
||||
# This triggers a known QA warning which we ignore for now to magically
|
||||
# keep bash completion for "su" command which shadow package does not
|
||||
# provide.
|
||||
|
||||
local ver=$(tools/git-version-gen .tarballversion)
|
||||
local major=$(ver_cut 1 ${ver})
|
||||
local minor=$(ver_cut 2 ${ver})
|
||||
local release=$(ver_cut 3 ${ver})
|
||||
export QA_PKGCONFIG_VERSION="${major}.${minor}.${release:-0}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
if ! use tty-helpers ; then
|
||||
elog "The mesg/wall/write tools have been disabled due to USE=-tty-helpers."
|
||||
fi
|
||||
|
||||
if [[ -z ${REPLACING_VERSIONS} ]] ; then
|
||||
elog "The agetty util now clears the terminal by default. You"
|
||||
elog "might want to add --noclear to your /etc/inittab lines."
|
||||
fi
|
||||
}
|
||||
@ -1,419 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{10..12} )
|
||||
|
||||
inherit toolchain-funcs libtool flag-o-matic bash-completion-r1 \
|
||||
pam python-r1 multilib-minimal multiprocessing systemd
|
||||
|
||||
MY_PV="${PV/_/-}"
|
||||
MY_P="${PN}-${MY_PV}"
|
||||
|
||||
DESCRIPTION="Various useful Linux utilities"
|
||||
HOMEPAGE="https://www.kernel.org/pub/linux/utils/util-linux/ https://github.com/util-linux/util-linux"
|
||||
|
||||
if [[ ${PV} == 9999 ]] ; then
|
||||
EGIT_REPO_URI="https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git"
|
||||
inherit autotools git-r3
|
||||
else
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/karelzak.asc
|
||||
inherit verify-sig
|
||||
|
||||
if [[ ${PV} != *_rc* ]] ; then
|
||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos"
|
||||
fi
|
||||
|
||||
SRC_URI="https://www.kernel.org/pub/linux/utils/util-linux/v${PV:0:4}/${MY_P}.tar.xz"
|
||||
SRC_URI+=" verify-sig? ( https://www.kernel.org/pub/linux/utils/util-linux/v${PV:0:4}/${MY_P}.tar.sign )"
|
||||
fi
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
LICENSE="GPL-2 GPL-3 LGPL-2.1 BSD-4 MIT public-domain"
|
||||
SLOT="0"
|
||||
IUSE="audit build caps +cramfs cryptsetup fdformat +hardlink kill +logger magic ncurses nls pam python +readline rtas selinux slang static-libs +su +suid systemd test tty-helpers udev unicode"
|
||||
|
||||
# Most lib deps here are related to programs rather than our libs,
|
||||
# so we rarely need to specify ${MULTILIB_USEDEP}.
|
||||
RDEPEND="
|
||||
virtual/libcrypt:=
|
||||
audit? ( >=sys-process/audit-2.6:= )
|
||||
caps? ( sys-libs/libcap-ng )
|
||||
cramfs? ( sys-libs/zlib:= )
|
||||
cryptsetup? ( >=sys-fs/cryptsetup-2.1.0 )
|
||||
hardlink? ( dev-libs/libpcre2:= )
|
||||
ncurses? (
|
||||
sys-libs/ncurses:=[unicode(+)?]
|
||||
magic? ( sys-apps/file:0= )
|
||||
)
|
||||
nls? ( virtual/libintl[${MULTILIB_USEDEP}] )
|
||||
pam? ( sys-libs/pam )
|
||||
python? ( ${PYTHON_DEPS} )
|
||||
readline? ( sys-libs/readline:0= )
|
||||
rtas? ( sys-libs/librtas )
|
||||
selinux? ( >=sys-libs/libselinux-2.2.2-r4[${MULTILIB_USEDEP}] )
|
||||
slang? ( sys-libs/slang )
|
||||
!build? (
|
||||
systemd? ( sys-apps/systemd )
|
||||
udev? ( virtual/libudev:= )
|
||||
)
|
||||
"
|
||||
BDEPEND="
|
||||
virtual/pkgconfig
|
||||
nls? (
|
||||
app-text/po4a
|
||||
sys-devel/gettext
|
||||
)
|
||||
test? ( app-alternatives/bc )
|
||||
"
|
||||
DEPEND="
|
||||
${RDEPEND}
|
||||
virtual/os-headers
|
||||
acct-group/root
|
||||
"
|
||||
RDEPEND+="
|
||||
hardlink? ( !app-arch/hardlink )
|
||||
logger? ( !>=app-admin/sysklogd-2.0[logger] )
|
||||
kill? (
|
||||
!sys-apps/coreutils[kill]
|
||||
!sys-process/procps[kill]
|
||||
)
|
||||
su? (
|
||||
!<sys-apps/shadow-4.7-r2
|
||||
!>=sys-apps/shadow-4.7-r2[su]
|
||||
)
|
||||
!net-wireless/rfkill
|
||||
"
|
||||
|
||||
if [[ ${PV} == 9999 ]] ; then
|
||||
# Required for man-page generation
|
||||
BDEPEND+=" dev-ruby/asciidoctor"
|
||||
else
|
||||
BDEPEND+=" verify-sig? ( >=sec-keys/openpgp-keys-karelzak-20230517 )"
|
||||
fi
|
||||
|
||||
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} ) su? ( pam )"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-2.39.2-fincore-test.patch
|
||||
"${FILESDIR}"/${PN}-2.39.2-backport-pr2251.patch
|
||||
"${FILESDIR}"/${PN}-2.39.2-backport-1d4456d.patch
|
||||
"${FILESDIR}"/${PN}-2.39.3-libblkid-luks.patch
|
||||
"${FILESDIR}"/${PN}-2.39.3-musl-1.2.5-basename.patch
|
||||
"${FILESDIR}"/${PN}-2.39.3-libmount-Fix-export-of-mnt_context_is_lazy-and-mnt_c.patch
|
||||
"${FILESDIR}"/${PN}-2.39.3-CVE-2024-28085.patch
|
||||
"${FILESDIR}"/${PN}-2.39.3-fix-use-after-free.patch
|
||||
)
|
||||
|
||||
pkg_pretend() {
|
||||
if use su && ! use suid ; then
|
||||
elog "su will be installed as suid despite USE=-suid (bug #832092)"
|
||||
elog "To use su without suid, see e.g. Portage's suidctl feature."
|
||||
fi
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == 9999 ]] ; then
|
||||
git-r3_src_unpack
|
||||
return
|
||||
fi
|
||||
|
||||
if use verify-sig ; then
|
||||
mkdir "${T}"/verify-sig || die
|
||||
pushd "${T}"/verify-sig &>/dev/null || die
|
||||
|
||||
# Upstream sign the decompressed .tar
|
||||
# Let's do it separately in ${T} then cleanup to avoid external
|
||||
# effects on normal unpack.
|
||||
cp "${DISTDIR}"/${MY_P}.tar.xz . || die
|
||||
xz -d ${MY_P}.tar.xz || die
|
||||
verify-sig_verify_detached ${MY_P}.tar "${DISTDIR}"/${MY_P}.tar.sign
|
||||
|
||||
popd &>/dev/null || die
|
||||
rm -r "${T}"/verify-sig || die
|
||||
fi
|
||||
|
||||
default
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
if use test ; then
|
||||
# Known-failing tests
|
||||
# TODO: investigate these
|
||||
local known_failing_tests=(
|
||||
# Subtest 'options-maximum-size-8192' fails
|
||||
hardlink/options
|
||||
|
||||
# Fails in sandbox
|
||||
lsns/ioctl_ns
|
||||
|
||||
lsfd/mkfds-symlink
|
||||
lsfd/mkfds-rw-character-device
|
||||
# Fails with network-sandbox at least in nspawn
|
||||
lsfd/option-inet
|
||||
utmp/last-ipv6
|
||||
)
|
||||
|
||||
local known_failing_test
|
||||
for known_failing_test in "${known_failing_tests[@]}" ; do
|
||||
einfo "Removing known-failing test: ${known_failing_test}"
|
||||
rm tests/ts/${known_failing_test} || die
|
||||
done
|
||||
fi
|
||||
|
||||
if [[ ${PV} == 9999 ]] ; then
|
||||
po/update-potfiles
|
||||
eautoreconf
|
||||
else
|
||||
elibtoolize
|
||||
fi
|
||||
}
|
||||
|
||||
python_configure() {
|
||||
local myeconfargs=(
|
||||
"${commonargs[@]}"
|
||||
--disable-all-programs
|
||||
--disable-bash-completion
|
||||
--without-systemdsystemunitdir
|
||||
--with-python
|
||||
--enable-libblkid
|
||||
--enable-libmount
|
||||
--enable-pylibmount
|
||||
)
|
||||
|
||||
mkdir "${BUILD_DIR}" || die
|
||||
pushd "${BUILD_DIR}" >/dev/null || die
|
||||
ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
|
||||
popd >/dev/null || die
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
# The scanf test in a run-time test which fails while cross-compiling.
|
||||
# Blindly assume a POSIX setup since we require libmount, and libmount
|
||||
# itself fails when the scanf test fails. bug #531856
|
||||
tc-is-cross-compiler && export scanf_cv_alloc_modifier=ms
|
||||
|
||||
# bug #485486
|
||||
export ac_cv_header_security_pam_misc_h=$(multilib_native_usex pam)
|
||||
# bug #545042
|
||||
export ac_cv_header_security_pam_appl_h=$(multilib_native_usex pam)
|
||||
|
||||
# Undo bad ncurses handling by upstream. Fall back to pkg-config.
|
||||
# bug #601530
|
||||
export NCURSES6_CONFIG=false NCURSES5_CONFIG=false
|
||||
export NCURSESW6_CONFIG=false NCURSESW5_CONFIG=false
|
||||
|
||||
# Avoid automagic dependency on ppc*
|
||||
export ac_cv_lib_rtas_rtas_get_sysparm=$(usex rtas)
|
||||
|
||||
# configure args shared by python and non-python builds
|
||||
local commonargs=(
|
||||
--localstatedir="${EPREFIX}/var"
|
||||
--runstatedir="${EPREFIX}/run"
|
||||
--enable-fs-paths-extra="${EPREFIX}/usr/sbin:${EPREFIX}/bin:${EPREFIX}/usr/bin"
|
||||
|
||||
# Temporary workaround until ~2.39.2. 2.39.x introduced a big rewrite.
|
||||
# https://github.com/util-linux/util-linux/issues/2287#issuecomment-1576640373
|
||||
--disable-libmount-mountfd-support
|
||||
)
|
||||
|
||||
local myeconfargs=(
|
||||
"${commonargs[@]}"
|
||||
--with-bashcompletiondir="$(get_bashcompdir)"
|
||||
--without-python
|
||||
$(multilib_native_use_enable suid makeinstall-chown)
|
||||
$(multilib_native_use_enable suid makeinstall-setuid)
|
||||
$(multilib_native_use_with readline)
|
||||
$(multilib_native_use_with slang)
|
||||
$(multilib_native_usex ncurses "$(use_with magic libmagic)" '--without-libmagic')
|
||||
$(multilib_native_usex ncurses "$(use_with unicode ncursesw)" '--without-ncursesw')
|
||||
$(multilib_native_usex ncurses "$(use_with !unicode ncurses)" '--without-ncurses')
|
||||
$(multilib_native_use_with audit)
|
||||
$(tc-has-tls || echo --disable-tls)
|
||||
$(use_enable nls)
|
||||
$(use_enable nls poman)
|
||||
$(use_enable unicode widechar)
|
||||
$(use_enable static-libs static)
|
||||
$(use_with ncurses tinfo)
|
||||
$(use_with selinux)
|
||||
|
||||
# TODO: Wire this up (bug #931118)
|
||||
--without-econf
|
||||
)
|
||||
|
||||
if use build ; then
|
||||
myeconfargs+=(
|
||||
--without-systemd
|
||||
--without-udev
|
||||
)
|
||||
else
|
||||
myeconfargs+=(
|
||||
$(multilib_native_use_with systemd)
|
||||
$(multilib_native_use_with udev)
|
||||
)
|
||||
fi
|
||||
|
||||
if multilib_is_native_abi ; then
|
||||
myeconfargs+=(
|
||||
--disable-chfn-chsh
|
||||
--disable-login
|
||||
--disable-newgrp
|
||||
--disable-nologin
|
||||
--disable-pylibmount
|
||||
--disable-raw
|
||||
--disable-vipw
|
||||
--enable-agetty
|
||||
--enable-bash-completion
|
||||
--enable-line
|
||||
--enable-partx
|
||||
--enable-rename
|
||||
--enable-rfkill
|
||||
--enable-schedutils
|
||||
--with-systemdsystemunitdir="$(systemd_get_systemunitdir)"
|
||||
$(use_enable caps setpriv)
|
||||
$(use_enable cramfs)
|
||||
$(use_enable fdformat)
|
||||
$(use_enable hardlink)
|
||||
$(use_enable kill)
|
||||
$(use_enable logger)
|
||||
$(use_enable ncurses pg)
|
||||
$(use_enable su)
|
||||
$(use_enable tty-helpers mesg)
|
||||
$(use_enable tty-helpers wall)
|
||||
$(use_enable tty-helpers write)
|
||||
$(use_with cryptsetup)
|
||||
)
|
||||
if [[ ${PV} == *9999 ]] ; then
|
||||
myeconfargs+=( --enable-asciidoc )
|
||||
else
|
||||
# Upstream is shipping pre-generated man-pages for releases
|
||||
myeconfargs+=( --disable-asciidoc )
|
||||
fi
|
||||
else
|
||||
myeconfargs+=(
|
||||
--disable-all-programs
|
||||
--disable-asciidoc
|
||||
--disable-bash-completion
|
||||
--without-systemdsystemunitdir
|
||||
--disable-poman
|
||||
|
||||
# build libraries
|
||||
--enable-libuuid
|
||||
--enable-libblkid
|
||||
--enable-libsmartcols
|
||||
--enable-libfdisk
|
||||
--enable-libmount
|
||||
)
|
||||
fi
|
||||
|
||||
ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
|
||||
|
||||
if multilib_is_native_abi && use python ; then
|
||||
python_foreach_impl python_configure
|
||||
fi
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
append-lfs-flags
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
python_compile() {
|
||||
pushd "${BUILD_DIR}" >/dev/null || die
|
||||
emake all
|
||||
popd >/dev/null || die
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
emake all
|
||||
|
||||
if multilib_is_native_abi && use python ; then
|
||||
python_foreach_impl python_compile
|
||||
fi
|
||||
}
|
||||
|
||||
python_test() {
|
||||
pushd "${BUILD_DIR}" >/dev/null || die
|
||||
emake check TS_OPTS="--parallel=$(makeopts_jobs) --nonroot"
|
||||
popd >/dev/null || die
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
emake check TS_OPTS="--parallel=$(makeopts_jobs) --nonroot"
|
||||
if multilib_is_native_abi && use python ; then
|
||||
python_foreach_impl python_test
|
||||
fi
|
||||
}
|
||||
|
||||
python_install() {
|
||||
pushd "${BUILD_DIR}" >/dev/null || die
|
||||
emake DESTDIR="${D}" install
|
||||
python_optimize
|
||||
popd >/dev/null || die
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
if multilib_is_native_abi && use python ; then
|
||||
python_foreach_impl python_install
|
||||
fi
|
||||
|
||||
# This needs to be called AFTER python_install call, bug #689190
|
||||
emake DESTDIR="${D}" install
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
dodoc AUTHORS NEWS README* Documentation/{TODO,*.txt,releases/*}
|
||||
|
||||
dosym hexdump /usr/bin/hd
|
||||
newman - hd.1 <<< '.so man1/hexdump.1'
|
||||
|
||||
# e2fsprogs-libs didn't install .la files, and .pc work fine
|
||||
find "${ED}" -name "*.la" -delete || die
|
||||
|
||||
if use pam ; then
|
||||
# See https://github.com/util-linux/util-linux/blob/master/Documentation/PAM-configuration.txt
|
||||
newpamd "${FILESDIR}/runuser.pamd" runuser
|
||||
newpamd "${FILESDIR}/runuser-l.pamd" runuser-l
|
||||
|
||||
newpamd "${FILESDIR}/su-l.pamd" su-l
|
||||
fi
|
||||
|
||||
if use su && ! use suid ; then
|
||||
# Always force suid su, even when USE=-suid, as su is useless
|
||||
# for the overwhelming-majority case without suid.
|
||||
# Users who wish to truly have a no-suid su can strip it out
|
||||
# via e.g. Portage's suidctl or some other hook.
|
||||
# See bug #832092
|
||||
fperms u+s /bin/su
|
||||
fi
|
||||
|
||||
# Note:
|
||||
# Bash completion for "runuser" command is provided by same file which
|
||||
# would also provide bash completion for "su" command. However, we don't
|
||||
# use "su" command from this package.
|
||||
# This triggers a known QA warning which we ignore for now to magically
|
||||
# keep bash completion for "su" command which shadow package does not
|
||||
# provide.
|
||||
|
||||
local ver=$(tools/git-version-gen .tarballversion)
|
||||
local major=$(ver_cut 1 ${ver})
|
||||
local minor=$(ver_cut 2 ${ver})
|
||||
local release=$(ver_cut 3 ${ver})
|
||||
export QA_PKGCONFIG_VERSION="${major}.${minor}.${release:-0}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
if ! use tty-helpers ; then
|
||||
elog "The mesg/wall/write tools have been disabled due to USE=-tty-helpers."
|
||||
fi
|
||||
|
||||
if [[ -z ${REPLACING_VERSIONS} ]] ; then
|
||||
elog "The agetty util now clears the terminal by default. You"
|
||||
elog "might want to add --noclear to your /etc/inittab lines."
|
||||
fi
|
||||
}
|
||||
@ -1,420 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{10..12} )
|
||||
|
||||
inherit toolchain-funcs libtool flag-o-matic bash-completion-r1 \
|
||||
pam python-r1 multilib-minimal multiprocessing systemd
|
||||
|
||||
MY_PV="${PV/_/-}"
|
||||
MY_P="${PN}-${MY_PV}"
|
||||
|
||||
DESCRIPTION="Various useful Linux utilities"
|
||||
HOMEPAGE="https://www.kernel.org/pub/linux/utils/util-linux/ https://github.com/util-linux/util-linux"
|
||||
|
||||
if [[ ${PV} == 9999 ]] ; then
|
||||
EGIT_REPO_URI="https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git"
|
||||
inherit autotools git-r3
|
||||
else
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/karelzak.asc
|
||||
inherit verify-sig
|
||||
|
||||
if [[ ${PV} != *_rc* ]] ; then
|
||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos"
|
||||
fi
|
||||
|
||||
SRC_URI="https://www.kernel.org/pub/linux/utils/util-linux/v${PV:0:4}/${MY_P}.tar.xz"
|
||||
SRC_URI+=" verify-sig? ( https://www.kernel.org/pub/linux/utils/util-linux/v${PV:0:4}/${MY_P}.tar.sign )"
|
||||
fi
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
LICENSE="GPL-2 GPL-3 LGPL-2.1 BSD-4 MIT public-domain"
|
||||
SLOT="0"
|
||||
IUSE="audit build caps +cramfs cryptsetup fdformat +hardlink kill +logger magic ncurses nls pam python +readline rtas selinux slang static-libs +su +suid systemd test tty-helpers udev unicode"
|
||||
|
||||
# Most lib deps here are related to programs rather than our libs,
|
||||
# so we rarely need to specify ${MULTILIB_USEDEP}.
|
||||
RDEPEND="
|
||||
virtual/libcrypt:=
|
||||
audit? ( >=sys-process/audit-2.6:= )
|
||||
caps? ( sys-libs/libcap-ng )
|
||||
cramfs? ( sys-libs/zlib:= )
|
||||
cryptsetup? ( >=sys-fs/cryptsetup-2.1.0 )
|
||||
hardlink? ( dev-libs/libpcre2:= )
|
||||
ncurses? (
|
||||
sys-libs/ncurses:=[unicode(+)?]
|
||||
magic? ( sys-apps/file:0= )
|
||||
)
|
||||
nls? ( virtual/libintl[${MULTILIB_USEDEP}] )
|
||||
pam? ( sys-libs/pam )
|
||||
python? ( ${PYTHON_DEPS} )
|
||||
readline? ( sys-libs/readline:0= )
|
||||
rtas? ( sys-libs/librtas )
|
||||
selinux? ( >=sys-libs/libselinux-2.2.2-r4[${MULTILIB_USEDEP}] )
|
||||
slang? ( sys-libs/slang )
|
||||
!build? (
|
||||
systemd? ( sys-apps/systemd )
|
||||
udev? ( virtual/libudev:= )
|
||||
)
|
||||
"
|
||||
BDEPEND="
|
||||
virtual/pkgconfig
|
||||
nls? (
|
||||
app-text/po4a
|
||||
sys-devel/gettext
|
||||
)
|
||||
test? ( app-alternatives/bc )
|
||||
"
|
||||
DEPEND="
|
||||
${RDEPEND}
|
||||
virtual/os-headers
|
||||
acct-group/root
|
||||
"
|
||||
RDEPEND+="
|
||||
hardlink? ( !app-arch/hardlink )
|
||||
logger? ( !>=app-admin/sysklogd-2.0[logger] )
|
||||
kill? (
|
||||
!sys-apps/coreutils[kill]
|
||||
!sys-process/procps[kill]
|
||||
)
|
||||
su? (
|
||||
!<sys-apps/shadow-4.7-r2
|
||||
!>=sys-apps/shadow-4.7-r2[su]
|
||||
)
|
||||
!net-wireless/rfkill
|
||||
"
|
||||
|
||||
if [[ ${PV} == 9999 ]] ; then
|
||||
# Required for man-page generation
|
||||
BDEPEND+=" dev-ruby/asciidoctor"
|
||||
else
|
||||
BDEPEND+=" verify-sig? ( >=sec-keys/openpgp-keys-karelzak-20230517 )"
|
||||
fi
|
||||
|
||||
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} ) su? ( pam )"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-2.39.2-fincore-test.patch
|
||||
"${FILESDIR}"/${PN}-2.39.2-backport-1d4456d.patch
|
||||
"${FILESDIR}"/${PN}-2.39.3-musl-1.2.5-basename.patch
|
||||
"${FILESDIR}"/${PN}-2.39.3-libmount-Fix-export-of-mnt_context_is_lazy-and-mnt_c.patch
|
||||
"${FILESDIR}"/${PN}-2.39.3-fix-use-after-free.patch
|
||||
"${FILESDIR}"/${PN}-2.39.4-umount-readonly.patch
|
||||
)
|
||||
|
||||
pkg_pretend() {
|
||||
if use su && ! use suid ; then
|
||||
elog "su will be installed as suid despite USE=-suid (bug #832092)"
|
||||
elog "To use su without suid, see e.g. Portage's suidctl feature."
|
||||
fi
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == 9999 ]] ; then
|
||||
git-r3_src_unpack
|
||||
return
|
||||
fi
|
||||
|
||||
if use verify-sig ; then
|
||||
mkdir "${T}"/verify-sig || die
|
||||
pushd "${T}"/verify-sig &>/dev/null || die
|
||||
|
||||
# Upstream sign the decompressed .tar
|
||||
# Let's do it separately in ${T} then cleanup to avoid external
|
||||
# effects on normal unpack.
|
||||
cp "${DISTDIR}"/${MY_P}.tar.xz . || die
|
||||
xz -d ${MY_P}.tar.xz || die
|
||||
verify-sig_verify_detached ${MY_P}.tar "${DISTDIR}"/${MY_P}.tar.sign
|
||||
|
||||
popd &>/dev/null || die
|
||||
rm -r "${T}"/verify-sig || die
|
||||
fi
|
||||
|
||||
default
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
if use test ; then
|
||||
# Known-failing tests
|
||||
# TODO: investigate these
|
||||
local known_failing_tests=(
|
||||
# Subtest 'options-maximum-size-8192' fails
|
||||
hardlink/options
|
||||
|
||||
# Fails in sandbox
|
||||
lsns/ioctl_ns
|
||||
|
||||
lsfd/mkfds-symlink
|
||||
lsfd/mkfds-rw-character-device
|
||||
# Fails with network-sandbox at least in nspawn
|
||||
lsfd/option-inet
|
||||
utmp/last-ipv6
|
||||
|
||||
# Flaky
|
||||
rename/subdir
|
||||
)
|
||||
|
||||
local known_failing_test
|
||||
for known_failing_test in "${known_failing_tests[@]}" ; do
|
||||
einfo "Removing known-failing test: ${known_failing_test}"
|
||||
rm tests/ts/${known_failing_test} || die
|
||||
done
|
||||
fi
|
||||
|
||||
if [[ ${PV} == 9999 ]] ; then
|
||||
po/update-potfiles
|
||||
eautoreconf
|
||||
else
|
||||
elibtoolize
|
||||
fi
|
||||
}
|
||||
|
||||
python_configure() {
|
||||
local myeconfargs=(
|
||||
"${commonargs[@]}"
|
||||
--disable-all-programs
|
||||
--disable-bash-completion
|
||||
--without-systemdsystemunitdir
|
||||
--with-python
|
||||
--enable-libblkid
|
||||
--enable-libmount
|
||||
--enable-pylibmount
|
||||
)
|
||||
|
||||
mkdir "${BUILD_DIR}" || die
|
||||
pushd "${BUILD_DIR}" >/dev/null || die
|
||||
ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
|
||||
popd >/dev/null || die
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
# The scanf test in a run-time test which fails while cross-compiling.
|
||||
# Blindly assume a POSIX setup since we require libmount, and libmount
|
||||
# itself fails when the scanf test fails. bug #531856
|
||||
tc-is-cross-compiler && export scanf_cv_alloc_modifier=ms
|
||||
|
||||
# bug #485486
|
||||
export ac_cv_header_security_pam_misc_h=$(multilib_native_usex pam)
|
||||
# bug #545042
|
||||
export ac_cv_header_security_pam_appl_h=$(multilib_native_usex pam)
|
||||
|
||||
# Undo bad ncurses handling by upstream. Fall back to pkg-config.
|
||||
# bug #601530
|
||||
export NCURSES6_CONFIG=false NCURSES5_CONFIG=false
|
||||
export NCURSESW6_CONFIG=false NCURSESW5_CONFIG=false
|
||||
|
||||
# Avoid automagic dependency on ppc*
|
||||
export ac_cv_lib_rtas_rtas_get_sysparm=$(usex rtas)
|
||||
|
||||
# configure args shared by python and non-python builds
|
||||
local commonargs=(
|
||||
--localstatedir="${EPREFIX}/var"
|
||||
--runstatedir="${EPREFIX}/run"
|
||||
--enable-fs-paths-extra="${EPREFIX}/usr/sbin:${EPREFIX}/bin:${EPREFIX}/usr/bin"
|
||||
|
||||
# Temporary workaround until ~2.39.2. 2.39.x introduced a big rewrite.
|
||||
# https://github.com/util-linux/util-linux/issues/2287#issuecomment-1576640373
|
||||
--disable-libmount-mountfd-support
|
||||
)
|
||||
|
||||
local myeconfargs=(
|
||||
"${commonargs[@]}"
|
||||
--with-bashcompletiondir="$(get_bashcompdir)"
|
||||
--without-python
|
||||
$(multilib_native_use_enable suid makeinstall-chown)
|
||||
$(multilib_native_use_enable suid makeinstall-setuid)
|
||||
$(multilib_native_use_with readline)
|
||||
$(multilib_native_use_with slang)
|
||||
$(multilib_native_usex ncurses "$(use_with magic libmagic)" '--without-libmagic')
|
||||
$(multilib_native_usex ncurses "$(use_with unicode ncursesw)" '--without-ncursesw')
|
||||
$(multilib_native_usex ncurses "$(use_with !unicode ncurses)" '--without-ncurses')
|
||||
$(multilib_native_use_with audit)
|
||||
$(tc-has-tls || echo --disable-tls)
|
||||
$(use_enable nls)
|
||||
$(use_enable nls poman)
|
||||
$(use_enable unicode widechar)
|
||||
$(use_enable static-libs static)
|
||||
$(use_with ncurses tinfo)
|
||||
$(use_with selinux)
|
||||
|
||||
# TODO: Wire this up (bug #931118)
|
||||
--without-econf
|
||||
)
|
||||
|
||||
if use build ; then
|
||||
myeconfargs+=(
|
||||
--without-systemd
|
||||
--without-udev
|
||||
)
|
||||
else
|
||||
myeconfargs+=(
|
||||
$(multilib_native_use_with systemd)
|
||||
$(multilib_native_use_with udev)
|
||||
)
|
||||
fi
|
||||
|
||||
if multilib_is_native_abi ; then
|
||||
myeconfargs+=(
|
||||
--disable-chfn-chsh
|
||||
--disable-login
|
||||
--disable-newgrp
|
||||
--disable-nologin
|
||||
--disable-pylibmount
|
||||
--disable-raw
|
||||
--disable-vipw
|
||||
--enable-agetty
|
||||
--enable-bash-completion
|
||||
--enable-line
|
||||
--enable-partx
|
||||
--enable-rename
|
||||
--enable-rfkill
|
||||
--enable-schedutils
|
||||
--with-systemdsystemunitdir="$(systemd_get_systemunitdir)"
|
||||
$(use_enable caps setpriv)
|
||||
$(use_enable cramfs)
|
||||
$(use_enable fdformat)
|
||||
$(use_enable hardlink)
|
||||
$(use_enable kill)
|
||||
$(use_enable logger)
|
||||
$(use_enable ncurses pg)
|
||||
$(use_enable su)
|
||||
$(use_enable tty-helpers mesg)
|
||||
$(use_enable tty-helpers wall)
|
||||
$(use_enable tty-helpers write)
|
||||
$(use_with cryptsetup)
|
||||
)
|
||||
if [[ ${PV} == *9999 ]] ; then
|
||||
myeconfargs+=( --enable-asciidoc )
|
||||
else
|
||||
# Upstream is shipping pre-generated man-pages for releases
|
||||
myeconfargs+=( --disable-asciidoc )
|
||||
fi
|
||||
else
|
||||
myeconfargs+=(
|
||||
--disable-all-programs
|
||||
--disable-asciidoc
|
||||
--disable-bash-completion
|
||||
--without-systemdsystemunitdir
|
||||
--disable-poman
|
||||
|
||||
# build libraries
|
||||
--enable-libuuid
|
||||
--enable-libblkid
|
||||
--enable-libsmartcols
|
||||
--enable-libfdisk
|
||||
--enable-libmount
|
||||
)
|
||||
fi
|
||||
|
||||
ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
|
||||
|
||||
if multilib_is_native_abi && use python ; then
|
||||
python_foreach_impl python_configure
|
||||
fi
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
append-lfs-flags
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
python_compile() {
|
||||
pushd "${BUILD_DIR}" >/dev/null || die
|
||||
emake all
|
||||
popd >/dev/null || die
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
emake all
|
||||
|
||||
if multilib_is_native_abi && use python ; then
|
||||
python_foreach_impl python_compile
|
||||
fi
|
||||
}
|
||||
|
||||
python_test() {
|
||||
pushd "${BUILD_DIR}" >/dev/null || die
|
||||
emake check TS_OPTS="--parallel=$(makeopts_jobs) --nonroot"
|
||||
popd >/dev/null || die
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
emake check TS_OPTS="--parallel=$(makeopts_jobs) --nonroot"
|
||||
if multilib_is_native_abi && use python ; then
|
||||
python_foreach_impl python_test
|
||||
fi
|
||||
}
|
||||
|
||||
python_install() {
|
||||
pushd "${BUILD_DIR}" >/dev/null || die
|
||||
emake DESTDIR="${D}" install
|
||||
python_optimize
|
||||
popd >/dev/null || die
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
if multilib_is_native_abi && use python ; then
|
||||
python_foreach_impl python_install
|
||||
fi
|
||||
|
||||
# This needs to be called AFTER python_install call, bug #689190
|
||||
emake DESTDIR="${D}" install
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
dodoc AUTHORS NEWS README* Documentation/{TODO,*.txt,releases/*}
|
||||
|
||||
dosym hexdump /usr/bin/hd
|
||||
newman - hd.1 <<< '.so man1/hexdump.1'
|
||||
|
||||
# e2fsprogs-libs didn't install .la files, and .pc work fine
|
||||
find "${ED}" -name "*.la" -delete || die
|
||||
|
||||
if use pam ; then
|
||||
# See https://github.com/util-linux/util-linux/blob/master/Documentation/PAM-configuration.txt
|
||||
newpamd "${FILESDIR}/runuser.pamd" runuser
|
||||
newpamd "${FILESDIR}/runuser-l.pamd" runuser-l
|
||||
|
||||
newpamd "${FILESDIR}/su-l.pamd" su-l
|
||||
fi
|
||||
|
||||
if use su && ! use suid ; then
|
||||
# Always force suid su, even when USE=-suid, as su is useless
|
||||
# for the overwhelming-majority case without suid.
|
||||
# Users who wish to truly have a no-suid su can strip it out
|
||||
# via e.g. Portage's suidctl or some other hook.
|
||||
# See bug #832092
|
||||
fperms u+s /bin/su
|
||||
fi
|
||||
|
||||
# Note:
|
||||
# Bash completion for "runuser" command is provided by same file which
|
||||
# would also provide bash completion for "su" command. However, we don't
|
||||
# use "su" command from this package.
|
||||
# This triggers a known QA warning which we ignore for now to magically
|
||||
# keep bash completion for "su" command which shadow package does not
|
||||
# provide.
|
||||
|
||||
local ver=$(tools/git-version-gen .tarballversion)
|
||||
local major=$(ver_cut 1 ${ver})
|
||||
local minor=$(ver_cut 2 ${ver})
|
||||
local release=$(ver_cut 3 ${ver})
|
||||
export QA_PKGCONFIG_VERSION="${major}.${minor}.${release:-0}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
if ! use tty-helpers ; then
|
||||
elog "The mesg/wall/write tools have been disabled due to USE=-tty-helpers."
|
||||
fi
|
||||
|
||||
if [[ -z ${REPLACING_VERSIONS} ]] ; then
|
||||
elog "The agetty util now clears the terminal by default. You"
|
||||
elog "might want to add --noclear to your /etc/inittab lines."
|
||||
fi
|
||||
}
|
||||
@ -1,428 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{10..12} )
|
||||
TMPFILES_OPTIONAL=1
|
||||
|
||||
inherit toolchain-funcs libtool flag-o-matic bash-completion-r1 \
|
||||
pam python-r1 multilib-minimal multiprocessing systemd tmpfiles
|
||||
|
||||
MY_PV="${PV/_/-}"
|
||||
MY_P="${PN}-${MY_PV}"
|
||||
|
||||
DESCRIPTION="Various useful Linux utilities"
|
||||
HOMEPAGE="https://www.kernel.org/pub/linux/utils/util-linux/ https://github.com/util-linux/util-linux"
|
||||
|
||||
if [[ ${PV} == 9999 ]] ; then
|
||||
EGIT_REPO_URI="https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git"
|
||||
inherit autotools git-r3
|
||||
else
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/karelzak.asc
|
||||
inherit verify-sig
|
||||
|
||||
if [[ ${PV} != *_rc* ]] ; then
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos"
|
||||
fi
|
||||
|
||||
SRC_URI="https://www.kernel.org/pub/linux/utils/util-linux/v${PV:0:4}/${MY_P}.tar.xz"
|
||||
SRC_URI+=" verify-sig? ( https://www.kernel.org/pub/linux/utils/util-linux/v${PV:0:4}/${MY_P}.tar.sign )"
|
||||
fi
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
LICENSE="GPL-2 GPL-3 LGPL-2.1 BSD-4 MIT public-domain"
|
||||
SLOT="0"
|
||||
IUSE="audit build caps +cramfs cryptsetup fdformat +hardlink kill +logger magic ncurses nls pam python +readline rtas selinux slang static-libs +su +suid systemd test tty-helpers udev unicode uuidd"
|
||||
|
||||
# Most lib deps here are related to programs rather than our libs,
|
||||
# so we rarely need to specify ${MULTILIB_USEDEP}.
|
||||
RDEPEND="
|
||||
virtual/libcrypt:=
|
||||
audit? ( >=sys-process/audit-2.6:= )
|
||||
caps? ( sys-libs/libcap-ng )
|
||||
cramfs? ( sys-libs/zlib:= )
|
||||
cryptsetup? ( >=sys-fs/cryptsetup-2.1.0 )
|
||||
hardlink? ( dev-libs/libpcre2:= )
|
||||
ncurses? (
|
||||
sys-libs/ncurses:=[unicode(+)?]
|
||||
magic? ( sys-apps/file:0= )
|
||||
)
|
||||
nls? ( virtual/libintl[${MULTILIB_USEDEP}] )
|
||||
pam? ( sys-libs/pam )
|
||||
python? ( ${PYTHON_DEPS} )
|
||||
readline? ( sys-libs/readline:0= )
|
||||
rtas? ( sys-libs/librtas )
|
||||
selinux? ( >=sys-libs/libselinux-2.2.2-r4[${MULTILIB_USEDEP}] )
|
||||
slang? ( sys-libs/slang )
|
||||
!build? (
|
||||
systemd? ( sys-apps/systemd )
|
||||
udev? ( virtual/libudev:= )
|
||||
)
|
||||
"
|
||||
BDEPEND="
|
||||
virtual/pkgconfig
|
||||
nls? (
|
||||
app-text/po4a
|
||||
sys-devel/gettext
|
||||
)
|
||||
test? ( app-alternatives/bc )
|
||||
"
|
||||
DEPEND="
|
||||
${RDEPEND}
|
||||
virtual/os-headers
|
||||
acct-group/root
|
||||
"
|
||||
RDEPEND+="
|
||||
hardlink? ( !app-arch/hardlink )
|
||||
logger? ( !>=app-admin/sysklogd-2.0[logger] )
|
||||
kill? (
|
||||
!sys-apps/coreutils[kill]
|
||||
!sys-process/procps[kill]
|
||||
)
|
||||
su? (
|
||||
!<sys-apps/shadow-4.7-r2
|
||||
!>=sys-apps/shadow-4.7-r2[su]
|
||||
)
|
||||
uuidd? (
|
||||
acct-user/uuidd
|
||||
systemd? ( virtual/tmpfiles )
|
||||
)
|
||||
!net-wireless/rfkill
|
||||
"
|
||||
|
||||
if [[ ${PV} == 9999 ]] ; then
|
||||
# Required for man-page generation
|
||||
BDEPEND+=" dev-ruby/asciidoctor"
|
||||
else
|
||||
BDEPEND+=" verify-sig? ( >=sec-keys/openpgp-keys-karelzak-20230517 )"
|
||||
fi
|
||||
|
||||
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} ) su? ( pam )"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
pkg_pretend() {
|
||||
if use su && ! use suid ; then
|
||||
elog "su will be installed as suid despite USE=-suid (bug #832092)"
|
||||
elog "To use su without suid, see e.g. Portage's suidctl feature."
|
||||
fi
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == 9999 ]] ; then
|
||||
git-r3_src_unpack
|
||||
return
|
||||
fi
|
||||
|
||||
# Upstream sign the decompressed .tar
|
||||
if use verify-sig; then
|
||||
einfo "Unpacking ${MY_P}.tar.xz ..."
|
||||
verify-sig_verify_detached - "${DISTDIR}"/${MY_P}.tar.sign \
|
||||
< <(xz -cd "${DISTDIR}"/${MY_P}.tar.xz | tee >(tar -xf -))
|
||||
assert "Unpack failed"
|
||||
else
|
||||
default
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
if use test ; then
|
||||
# Known-failing tests
|
||||
local known_failing_tests=(
|
||||
# Subtest 'options-maximum-size-8192' fails
|
||||
hardlink/options
|
||||
|
||||
# Fails in sandbox
|
||||
# re ioctl_ns: https://github.com/util-linux/util-linux/issues/2967
|
||||
lsns/ioctl_ns
|
||||
lsfd/mkfds-inotify
|
||||
lsfd/mkfds-symlink
|
||||
lsfd/mkfds-rw-character-device
|
||||
# Fails with network-sandbox at least in nspawn
|
||||
lsfd/option-inet
|
||||
utmp/last-ipv6
|
||||
|
||||
# Flaky
|
||||
rename/subdir
|
||||
|
||||
# Permission issues on /dev/random
|
||||
lsfd/mkfds-eventpoll
|
||||
lsfd/column-xmode
|
||||
)
|
||||
|
||||
local known_failing_test
|
||||
for known_failing_test in "${known_failing_tests[@]}" ; do
|
||||
einfo "Removing known-failing test: ${known_failing_test}"
|
||||
rm tests/ts/${known_failing_test} || die
|
||||
done
|
||||
fi
|
||||
|
||||
if [[ ${PV} == 9999 ]] ; then
|
||||
po/update-potfiles
|
||||
eautoreconf
|
||||
else
|
||||
elibtoolize
|
||||
fi
|
||||
}
|
||||
|
||||
python_configure() {
|
||||
local myeconfargs=(
|
||||
"${commonargs[@]}"
|
||||
--disable-all-programs
|
||||
--disable-bash-completion
|
||||
--without-systemdsystemunitdir
|
||||
--with-python
|
||||
--enable-libblkid
|
||||
--enable-libmount
|
||||
--enable-pylibmount
|
||||
)
|
||||
|
||||
mkdir "${BUILD_DIR}" || die
|
||||
pushd "${BUILD_DIR}" >/dev/null || die
|
||||
ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
|
||||
popd >/dev/null || die
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
# The scanf test in a run-time test which fails while cross-compiling.
|
||||
# Blindly assume a POSIX setup since we require libmount, and libmount
|
||||
# itself fails when the scanf test fails. bug #531856
|
||||
tc-is-cross-compiler && export scanf_cv_alloc_modifier=ms
|
||||
|
||||
# bug #485486
|
||||
export ac_cv_header_security_pam_misc_h=$(multilib_native_usex pam)
|
||||
# bug #545042
|
||||
export ac_cv_header_security_pam_appl_h=$(multilib_native_usex pam)
|
||||
|
||||
# Undo bad ncurses handling by upstream. Fall back to pkg-config.
|
||||
# bug #601530
|
||||
export NCURSES6_CONFIG=false NCURSES5_CONFIG=false
|
||||
export NCURSESW6_CONFIG=false NCURSESW5_CONFIG=false
|
||||
|
||||
# Avoid automagic dependency on ppc*
|
||||
export ac_cv_lib_rtas_rtas_get_sysparm=$(usex rtas)
|
||||
|
||||
# configure args shared by python and non-python builds
|
||||
local commonargs=(
|
||||
--localstatedir="${EPREFIX}/var"
|
||||
--runstatedir="${EPREFIX}/run"
|
||||
--enable-fs-paths-extra="${EPREFIX}/usr/sbin:${EPREFIX}/bin:${EPREFIX}/usr/bin"
|
||||
)
|
||||
|
||||
local myeconfargs=(
|
||||
"${commonargs[@]}"
|
||||
--with-bashcompletiondir="$(get_bashcompdir)"
|
||||
--without-python
|
||||
$(multilib_native_use_enable suid makeinstall-chown)
|
||||
$(multilib_native_use_enable suid makeinstall-setuid)
|
||||
$(multilib_native_use_with readline)
|
||||
$(multilib_native_use_with slang)
|
||||
$(multilib_native_usex ncurses "$(use_with magic libmagic)" '--without-libmagic')
|
||||
$(multilib_native_usex ncurses "$(use_with unicode ncursesw)" '--without-ncursesw')
|
||||
$(multilib_native_usex ncurses "$(use_with !unicode ncurses)" '--without-ncurses')
|
||||
$(multilib_native_use_with audit)
|
||||
$(tc-has-tls || echo --disable-tls)
|
||||
$(use_enable nls)
|
||||
$(use_enable nls poman)
|
||||
$(use_enable unicode widechar)
|
||||
$(use_enable static-libs static)
|
||||
$(use_with ncurses tinfo)
|
||||
$(use_with selinux)
|
||||
$(multilib_native_use_enable uuidd)
|
||||
|
||||
# TODO: Wire this up (bug #931118)
|
||||
--without-econf
|
||||
|
||||
# TODO: Wire this up (bug #931297)
|
||||
# TODO: investigate build failure w/ 2.40.1_rc1
|
||||
--disable-liblastlog2
|
||||
--disable-pam-lastlog2
|
||||
)
|
||||
|
||||
if use build ; then
|
||||
myeconfargs+=(
|
||||
--without-systemd
|
||||
--without-udev
|
||||
)
|
||||
else
|
||||
myeconfargs+=(
|
||||
$(multilib_native_use_with systemd)
|
||||
$(multilib_native_use_with udev)
|
||||
)
|
||||
fi
|
||||
|
||||
if multilib_is_native_abi ; then
|
||||
myeconfargs+=(
|
||||
--disable-chfn-chsh
|
||||
--disable-login
|
||||
--disable-newgrp
|
||||
--disable-nologin
|
||||
--disable-pylibmount
|
||||
--disable-raw
|
||||
--disable-vipw
|
||||
--enable-agetty
|
||||
--enable-bash-completion
|
||||
--enable-line
|
||||
--enable-partx
|
||||
--enable-rename
|
||||
--enable-rfkill
|
||||
--enable-schedutils
|
||||
--with-systemdsystemunitdir="$(systemd_get_systemunitdir)"
|
||||
--with-tmpfilesdir="${EPREFIX}"/usr/lib/tmpfiles.d
|
||||
$(use_enable caps setpriv)
|
||||
$(use_enable cramfs)
|
||||
$(use_enable fdformat)
|
||||
$(use_enable hardlink)
|
||||
$(use_enable kill)
|
||||
$(use_enable logger)
|
||||
$(use_enable ncurses pg)
|
||||
$(use_enable su)
|
||||
$(use_enable tty-helpers mesg)
|
||||
$(use_enable tty-helpers wall)
|
||||
$(use_enable tty-helpers write)
|
||||
$(use_with cryptsetup)
|
||||
)
|
||||
if [[ ${PV} == *9999 ]] ; then
|
||||
myeconfargs+=( --enable-asciidoc )
|
||||
else
|
||||
# Upstream is shipping pre-generated man-pages for releases
|
||||
myeconfargs+=( --disable-asciidoc )
|
||||
fi
|
||||
else
|
||||
myeconfargs+=(
|
||||
--disable-all-programs
|
||||
--disable-asciidoc
|
||||
--disable-bash-completion
|
||||
--without-systemdsystemunitdir
|
||||
--disable-poman
|
||||
|
||||
# build libraries
|
||||
--enable-libuuid
|
||||
--enable-libblkid
|
||||
--enable-libsmartcols
|
||||
--enable-libfdisk
|
||||
--enable-libmount
|
||||
|
||||
# Support uuidd for non-native libuuid
|
||||
$(use_enable uuidd libuuid-force-uuidd)
|
||||
)
|
||||
fi
|
||||
|
||||
ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
|
||||
|
||||
if multilib_is_native_abi && use python ; then
|
||||
python_foreach_impl python_configure
|
||||
fi
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
append-lfs-flags
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
python_compile() {
|
||||
pushd "${BUILD_DIR}" >/dev/null || die
|
||||
emake all
|
||||
popd >/dev/null || die
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
emake all
|
||||
|
||||
if multilib_is_native_abi && use python ; then
|
||||
python_foreach_impl python_compile
|
||||
fi
|
||||
}
|
||||
|
||||
python_test() {
|
||||
pushd "${BUILD_DIR}" >/dev/null || die
|
||||
emake check TS_OPTS="--parallel=$(makeopts_jobs) --nonroot"
|
||||
popd >/dev/null || die
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
emake check TS_OPTS="--parallel=$(makeopts_jobs) --nonroot"
|
||||
if multilib_is_native_abi && use python ; then
|
||||
python_foreach_impl python_test
|
||||
fi
|
||||
}
|
||||
|
||||
python_install() {
|
||||
pushd "${BUILD_DIR}" >/dev/null || die
|
||||
emake DESTDIR="${D}" install
|
||||
python_optimize
|
||||
popd >/dev/null || die
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
if multilib_is_native_abi && use python ; then
|
||||
python_foreach_impl python_install
|
||||
fi
|
||||
|
||||
# This needs to be called AFTER python_install call, bug #689190
|
||||
# XXX: -j1 as temporary workaround for bug #931301
|
||||
emake DESTDIR="${D}" install -j1
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
dodoc AUTHORS NEWS README* Documentation/{TODO,*.txt,releases/*}
|
||||
|
||||
dosym hexdump /usr/bin/hd
|
||||
newman - hd.1 <<< '.so man1/hexdump.1'
|
||||
|
||||
# e2fsprogs-libs didn't install .la files, and .pc work fine
|
||||
find "${ED}" -name "*.la" -delete || die
|
||||
|
||||
if use pam ; then
|
||||
# See https://github.com/util-linux/util-linux/blob/master/Documentation/PAM-configuration.txt
|
||||
newpamd "${FILESDIR}/runuser.pamd" runuser
|
||||
newpamd "${FILESDIR}/runuser-l.pamd" runuser-l
|
||||
|
||||
newpamd "${FILESDIR}/su-l.pamd" su-l
|
||||
fi
|
||||
|
||||
if use su && ! use suid ; then
|
||||
# Always force suid su, even when USE=-suid, as su is useless
|
||||
# for the overwhelming-majority case without suid.
|
||||
# Users who wish to truly have a no-suid su can strip it out
|
||||
# via e.g. Portage's suidctl or some other hook.
|
||||
# See bug #832092
|
||||
fperms u+s /bin/su
|
||||
fi
|
||||
|
||||
if use uuidd; then
|
||||
newinitd "${FILESDIR}/uuidd.initd" uuidd
|
||||
fi
|
||||
|
||||
# Note:
|
||||
# Bash completion for "runuser" command is provided by same file which
|
||||
# would also provide bash completion for "su" command. However, we don't
|
||||
# use "su" command from this package.
|
||||
# This triggers a known QA warning which we ignore for now to magically
|
||||
# keep bash completion for "su" command which shadow package does not
|
||||
# provide.
|
||||
|
||||
local ver=$(tools/git-version-gen .tarballversion)
|
||||
local major=$(ver_cut 1 ${ver})
|
||||
local minor=$(ver_cut 2 ${ver})
|
||||
local release=$(ver_cut 3 ${ver})
|
||||
export QA_PKGCONFIG_VERSION="${major}.${minor}.${release:-0}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
if ! use tty-helpers ; then
|
||||
elog "The mesg/wall/write tools have been disabled due to USE=-tty-helpers."
|
||||
fi
|
||||
|
||||
if [[ -z ${REPLACING_VERSIONS} ]] ; then
|
||||
elog "The agetty util now clears the terminal by default. You"
|
||||
elog "might want to add --noclear to your /etc/inittab lines."
|
||||
fi
|
||||
|
||||
if use systemd && use uuidd; then
|
||||
tmpfiles_process uuidd-tmpfiles.conf
|
||||
fi
|
||||
}
|
||||
@ -3,7 +3,7 @@
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{10..12} )
|
||||
PYTHON_COMPAT=( python3_{10..13} )
|
||||
TMPFILES_OPTIONAL=1
|
||||
|
||||
inherit toolchain-funcs libtool flag-o-matic bash-completion-r1 \
|
||||
@ -23,7 +23,7 @@ else
|
||||
inherit verify-sig
|
||||
|
||||
if [[ ${PV} != *_rc* ]] ; then
|
||||
KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos"
|
||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos"
|
||||
fi
|
||||
|
||||
SRC_URI="https://www.kernel.org/pub/linux/utils/util-linux/v${PV:0:4}/${MY_P}.tar.xz"
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{10..12} )
|
||||
PYTHON_COMPAT=( python3_{10..13} )
|
||||
TMPFILES_OPTIONAL=1
|
||||
|
||||
inherit toolchain-funcs libtool flag-o-matic bash-completion-r1 \
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user