fakeroot: apply patch to ignore EINVAL errors as well
Fixes #25901 the nixos.ova job. See the referred links.
This commit is contained in:
parent
05547dbcb4
commit
0d4431cfe9
@ -9,8 +9,9 @@ stdenv.mkDerivation rec {
|
|||||||
sha256 = "0313xb2j6a4wihrw9gfd4rnyqw7zzv6wf3rfh2gglgnv356ic2kw";
|
sha256 = "0313xb2j6a4wihrw9gfd4rnyqw7zzv6wf3rfh2gglgnv356ic2kw";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
patches = stdenv.lib.optional stdenv.isLinux ./einval.patch
|
||||||
# patchset from brew
|
# patchset from brew
|
||||||
patches = stdenv.lib.optionals stdenv.isDarwin [
|
++ stdenv.lib.optionals stdenv.isDarwin [
|
||||||
(fetchpatch {
|
(fetchpatch {
|
||||||
name = "0001-Implement-openat-2-wrapper-which-handles-optional-ar.patch";
|
name = "0001-Implement-openat-2-wrapper-which-handles-optional-ar.patch";
|
||||||
url = "https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=5;filename=0001-Implement-openat-2-wrapper-which-handles-optional-ar.patch;att=1;bug=766649";
|
url = "https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=5;filename=0001-Implement-openat-2-wrapper-which-handles-optional-ar.patch;att=1;bug=766649";
|
||||||
@ -26,7 +27,7 @@ stdenv.mkDerivation rec {
|
|||||||
url = "https://bugs.debian.org/cgi-bin/bugreport.cgi?att=2;bug=766649;filename=fakeroot-always-pass-mode.patch;msg=20";
|
url = "https://bugs.debian.org/cgi-bin/bugreport.cgi?att=2;bug=766649;filename=fakeroot-always-pass-mode.patch;msg=20";
|
||||||
sha256 = "0i3zaca1v449dm9m1cq6wq4dy6hc2y04l05m9gg8d4y4swld637p";
|
sha256 = "0i3zaca1v449dm9m1cq6wq4dy6hc2y04l05m9gg8d4y4swld637p";
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
buildInputs = [ getopt ]
|
buildInputs = [ getopt ]
|
||||||
++ stdenv.lib.optional (!stdenv.isDarwin) libcap
|
++ stdenv.lib.optional (!stdenv.isDarwin) libcap
|
||||||
|
47
pkgs/tools/system/fakeroot/einval.patch
Normal file
47
pkgs/tools/system/fakeroot/einval.patch
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
Ignore EINVAL errors. This matters within user namespaces.
|
||||||
|
|
||||||
|
See:
|
||||||
|
https://github.com/NixOS/nixpkgs/issues/25901
|
||||||
|
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=802612
|
||||||
|
https://github.com/NixOS/nixpkgs/issues/10496
|
||||||
|
|
||||||
|
diff --git a/libfakeroot.c b/libfakeroot.c
|
||||||
|
index 68a95fb..70da8bc 100644
|
||||||
|
--- a/libfakeroot.c
|
||||||
|
+++ b/libfakeroot.c
|
||||||
|
@@ -792,7 +792,7 @@ int chown(const char *path, uid_t owner, gid_t group){
|
||||||
|
r=next_lchown(path,owner,group);
|
||||||
|
else
|
||||||
|
r=0;
|
||||||
|
- if(r&&(errno==EPERM))
|
||||||
|
+ if(r&&(errno==EPERM||errno==EINVAL))
|
||||||
|
r=0;
|
||||||
|
|
||||||
|
return r;
|
||||||
|
@@ -819,7 +819,7 @@ int lchown(const char *path, uid_t owner, gid_t group){
|
||||||
|
r=next_lchown(path,owner,group);
|
||||||
|
else
|
||||||
|
r=0;
|
||||||
|
- if(r&&(errno==EPERM))
|
||||||
|
+ if(r&&(errno==EPERM||errno==EINVAL))
|
||||||
|
r=0;
|
||||||
|
|
||||||
|
return r;
|
||||||
|
@@ -843,7 +843,7 @@ int fchown(int fd, uid_t owner, gid_t group){
|
||||||
|
else
|
||||||
|
r=0;
|
||||||
|
|
||||||
|
- if(r&&(errno==EPERM))
|
||||||
|
+ if(r&&(errno==EPERM||errno==EINVAL))
|
||||||
|
r=0;
|
||||||
|
|
||||||
|
return r;
|
||||||
|
@@ -870,7 +870,7 @@ int fchownat(int dir_fd, const char *path, uid_t owner, gid_t group, int flags)
|
||||||
|
else
|
||||||
|
r=0;
|
||||||
|
|
||||||
|
- if(r&&(errno==EPERM))
|
||||||
|
+ if(r&&(errno==EPERM||errno==EINVAL))
|
||||||
|
r=0;
|
||||||
|
|
||||||
|
return r;
|
Loading…
x
Reference in New Issue
Block a user