coreutils: enhances ln patch for src/copy.c

also provides coreutils on x86, a lot of recipes depend on this name.
This commit is contained in:
Jerome Duval
2021-11-02 20:38:05 +01:00
parent 7943675c7e
commit 917fe03dc7
2 changed files with 61 additions and 10 deletions

View File

@@ -17,7 +17,7 @@ uptime users vdir wc who whoami yes"
HOMEPAGE="https://www.gnu.org/software/coreutils/"
COPYRIGHT="1994-2017 Free Software Foundation, Inc."
LICENSE="GNU GPL v3"
REVISION="3"
REVISION="4"
SOURCE_URI="https://ftpmirror.gnu.org/coreutils/coreutils-$portVersion.tar.xz
https://ftp.gnu.org/gnu/coreutils/coreutils-$portVersion.tar.xz"
CHECKSUM_SHA256="ce30acdf4a41bc5bb30dd955e9eaa75fa216b4e3deb08889ed32433c7b3b97ce"
@@ -143,6 +143,9 @@ REQUIRES="
haiku$secondaryArchSuffix
"
if [ "$targetArchitecture" = x86_gcc2 ]; then
PROVIDES+="
coreutils
"
REPLACES="
coreutils
"

View File

@@ -1,4 +1,4 @@
From a034fbd419e2b13b1bb3b6d0086fbf2a353c9caf Mon Sep 17 00:00:00 2001
From f4cebd00212260f57eb61458fd39668f97621ce0 Mon Sep 17 00:00:00 2001
From: Jerome Duval <jerome.duval@gmail.com>
Date: Tue, 13 May 2014 17:18:52 +0000
Subject: define __USE_GNU for wempcpy
@@ -22,7 +22,7 @@ index b8a71f1..0dc18c7 100644
2.30.2
From 003eab13f32f56346925551fa1d1b7c4a4eefaec Mon Sep 17 00:00:00 2001
From 7166a522bd4bc179519fa4dbc54584a71df131db Mon Sep 17 00:00:00 2001
From: Jerome Duval <jerome.duval@gmail.com>
Date: Tue, 13 May 2014 17:22:10 +0000
Subject: force declaration of rpl_inet_ntop
@@ -45,7 +45,7 @@ index 9968067..ad11a60 100644
2.30.2
From 55d22feaa454df25c6c504a891576d378a6f9699 Mon Sep 17 00:00:00 2001
From 3f890e14e94eed728d7bfe47f3cf5ffb3b6fbedd Mon Sep 17 00:00:00 2001
From: Jerome Duval <jerome.duval@gmail.com>
Date: Tue, 13 May 2014 17:32:36 +0000
Subject: Haiku defines mknod in unistd.h
@@ -67,7 +67,7 @@ index c54e60c..018ed23 100644
2.30.2
From 09f7fd664fee674e09ac887c94f33fec62150d9a Mon Sep 17 00:00:00 2001
From 921e841dc52b6821052c4a635b9b8a2e7e3e7356 Mon Sep 17 00:00:00 2001
From: Jerome Duval <jerome.duval@gmail.com>
Date: Tue, 13 May 2014 17:35:25 +0000
Subject: protect the label, not used on Haiku
@@ -99,7 +99,7 @@ index 352b35f..7514f57 100644
2.30.2
From 92289b441276ade205dc8f2945bff662ac78fde6 Mon Sep 17 00:00:00 2001
From 48ac0174b030f909a4ff706249692d0d6803ae83 Mon Sep 17 00:00:00 2001
From: Jerome Duval <jerome.duval@gmail.com>
Date: Thu, 15 May 2014 15:40:32 +0000
Subject: strchrnul needs __USE_GNU on Haiku
@@ -138,7 +138,7 @@ index 8d77ae3..892640b 100644
2.30.2
From fd8eaf6e9308d0b0cec212313d6971ae67c18c40 Mon Sep 17 00:00:00 2001
From 67f9206d4658a42d5f46483d400eae8852c64294 Mon Sep 17 00:00:00 2001
From: Jerome Duval <jerome.duval@gmail.com>
Date: Thu, 15 May 2014 20:13:58 +0000
Subject: don't build hostid, nice, users, who
@@ -172,7 +172,7 @@ index b42c218..34c917e 100644
2.30.2
From 2a0307c0358423e5bf41ed01739d6cf63a11dd7c Mon Sep 17 00:00:00 2001
From d19184fd828775f44f397f51d150d145ab577106 Mon Sep 17 00:00:00 2001
From: Jerome Duval <jerome.duval@gmail.com>
Date: Fri, 6 Feb 2015 20:24:12 +0000
Subject: import Haiku changes, fix warnings.
@@ -571,7 +571,7 @@ index ae9b8e2..2c551af 100644
2.30.2
From 727b1b3f07f8eade8861623b38f6e77de1e8a6ac Mon Sep 17 00:00:00 2001
From 1990ba710bdfd4ab907bea396d2b3be3d1dc2f0a Mon Sep 17 00:00:00 2001
From: Jerome Duval <jerome.duval@gmail.com>
Date: Thu, 21 Oct 2021 20:28:22 +0200
Subject: config.h is required for stdint.h
@@ -590,13 +590,61 @@ index 20a1e41..fdf2fdf 100644
2.30.2
From fa26aa214dfe0d231c3b105ba90f7e118d9918c3 Mon Sep 17 00:00:00 2001
From 2964f144f60577b518e17857df5f2137a0b39fda Mon Sep 17 00:00:00 2001
From: Jerome Duval <jerome.duval@gmail.com>
Date: Mon, 1 Nov 2021 21:08:55 +0100
Subject: ln: handle negative errno
explicit check for -1 which is a special value in this code.
diff --git a/src/copy.c b/src/copy.c
index 495831e..2e45278 100644
--- a/src/copy.c
+++ b/src/copy.c
@@ -2002,13 +2002,13 @@ create_hard_link (char const *src_name, char const *dst_name,
int err = force_linkat (AT_FDCWD, src_name, AT_FDCWD, dst_name,
dereference ? AT_SYMLINK_FOLLOW : 0,
replace, -1);
- if (0 < err)
+ if (err != 0 && err != -1)
{
error (0, err, _("cannot create hard link %s to %s"),
quoteaf_n (0, dst_name), quoteaf_n (1, src_name));
return false;
}
- if (err < 0 && verbose)
+ if (err == -1 && verbose)
printf (_("removed %s\n"), quoteaf (dst_name));
return true;
}
@@ -2858,7 +2858,7 @@ copy_internal (char const *src_name, char const *dst_name,
int err = force_symlinkat (src_name, AT_FDCWD, dst_name,
x->unlink_dest_after_failed_open, -1);
- if (0 < err)
+ if (err != 0 && err != -1)
{
error (0, err, _("cannot create symbolic link %s to %s"),
quoteaf_n (0, dst_name), quoteaf_n (1, src_name));
@@ -2941,7 +2941,8 @@ copy_internal (char const *src_name, char const *dst_name,
int symlink_err = force_symlinkat (src_link_val, AT_FDCWD, dst_name,
x->unlink_dest_after_failed_open, -1);
- if (0 < symlink_err && x->update && !new_dst && S_ISLNK (dst_sb.st_mode)
+ if (symlink_err != 0 && symlink_err != -1 && x->update && !new_dst
+ && S_ISLNK (dst_sb.st_mode)
&& dst_sb.st_size == strlen (src_link_val))
{
/* See if the destination is already the desired symlink.
@@ -2958,7 +2959,7 @@ copy_internal (char const *src_name, char const *dst_name,
}
}
free (src_link_val);
- if (0 < symlink_err)
+ if (symlink_err != 0 && symlink_err != -1)
{
error (0, symlink_err, _("cannot create symbolic link %s"),
quoteaf (dst_name));
diff --git a/src/ln.c b/src/ln.c
index c7eb740..dde3e4b 100644
--- a/src/ln.c