parent
f95bb4b448
commit
b9a52e9548
@ -0,0 +1,26 @@
|
|||||||
|
--- a/libfakeroot.c
|
||||||
|
+++ b/libfakeroot.c
|
||||||
|
@@ -1949,11 +1949,7 @@
|
||||||
|
|| r->fts_info == FTS_NS || r->fts_info == FTS_NSOK))
|
||||||
|
r->fts_statp = NULL; /* Otherwise fts_statp may be a random pointer */
|
||||||
|
if(r && r->fts_statp) { /* Should we bother checking fts_info here? */
|
||||||
|
-# if defined(STAT64_SUPPORT) && !defined(__APPLE__)
|
||||||
|
- SEND_GET_STAT64(r->fts_statp, _STAT_VER);
|
||||||
|
-# else
|
||||||
|
SEND_GET_STAT(r->fts_statp, _STAT_VER);
|
||||||
|
-# endif
|
||||||
|
}
|
||||||
|
|
||||||
|
return r;
|
||||||
|
@@ -1972,11 +1968,7 @@
|
||||||
|
first=next_fts_children(ftsp, options);
|
||||||
|
for(r = first; r; r = r->fts_link) {
|
||||||
|
if(r && r->fts_statp) { /* Should we bother checking fts_info here? */
|
||||||
|
-# if defined(STAT64_SUPPORT) && !defined(__APPLE__)
|
||||||
|
- SEND_GET_STAT64(r->fts_statp, _STAT_VER);
|
||||||
|
-# else
|
||||||
|
SEND_GET_STAT(r->fts_statp, _STAT_VER);
|
||||||
|
-# endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,13 @@
|
|||||||
|
Description: Fix shell in fakeroot.in
|
||||||
|
Use /bin/sh instead of @SHELL@ in fakeroot.in
|
||||||
|
Author: Juan Picca <jumapico@gmail.com>
|
||||||
|
Last-Update: 2016-06-27
|
||||||
|
---
|
||||||
|
--- a/scripts/fakeroot.in
|
||||||
|
+++ b/scripts/fakeroot.in
|
||||||
|
@@ -1,4 +1,4 @@
|
||||||
|
-#!@SHELL@
|
||||||
|
+#!/bin/sh
|
||||||
|
|
||||||
|
# This script first starts faked (the daemon), and then it will run
|
||||||
|
# the requested program with fake root privileges.
|
@ -0,0 +1,108 @@
|
|||||||
|
Fix the type of xattr functions to match the glibc headers.
|
||||||
|
|
||||||
|
--- a/libfakeroot.c
|
||||||
|
+++ b/libfakeroot.c
|
||||||
|
@@ -1570,7 +1570,7 @@
|
||||||
|
#endif /* HAVE_CAPSET */
|
||||||
|
|
||||||
|
#if defined(HAVE_SETXATTR) || defined(HAVE_LSETXATTR) || defined(HAVE_FSETXATTR)
|
||||||
|
-static size_t common_setxattr(INT_STRUCT_STAT *st, const char *name, void * value, size_t size, int flags)
|
||||||
|
+static int common_setxattr(INT_STRUCT_STAT *st, const char *name, const void * value, size_t size, int flags)
|
||||||
|
{
|
||||||
|
xattr_args xattr;
|
||||||
|
xattr.name = name;
|
||||||
|
@@ -1625,7 +1625,7 @@
|
||||||
|
#endif /* defined(HAVE_LISTXATTR) || defined(HAVE_LLISTXATTR) || defined(HAVE_FLISTXATTR) */
|
||||||
|
|
||||||
|
#if defined(HAVE_REMOVEXATTR) || defined(HAVE_LREMOVEXATTR) || defined(HAVE_FREMOVEXATTR)
|
||||||
|
-static size_t common_removexattr(INT_STRUCT_STAT *st, const char *name)
|
||||||
|
+static int common_removexattr(INT_STRUCT_STAT *st, const char *name)
|
||||||
|
{
|
||||||
|
xattr_args xattr;
|
||||||
|
xattr.name = name;
|
||||||
|
@@ -1643,7 +1643,7 @@
|
||||||
|
#endif /* defined(HAVE_REMOVEXATTR) || defined(HAVE_LREMOVEXATTR) || defined(HAVE_FREMOVEXATTR) */
|
||||||
|
|
||||||
|
#ifdef HAVE_SETXATTR
|
||||||
|
-ssize_t setxattr(const char *path, const char *name, void *value, size_t size, int flags)
|
||||||
|
+int setxattr(const char *path, const char *name, const void *value, size_t size, int flags)
|
||||||
|
{
|
||||||
|
INT_STRUCT_STAT st;
|
||||||
|
int r;
|
||||||
|
@@ -1664,7 +1664,7 @@
|
||||||
|
#endif /* HAVE_SETXATTR */
|
||||||
|
|
||||||
|
#ifdef HAVE_LSETXATTR
|
||||||
|
-ssize_t lsetxattr(const char *path, const char *name, void *value, size_t size, int flags)
|
||||||
|
+int lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags)
|
||||||
|
{
|
||||||
|
INT_STRUCT_STAT st;
|
||||||
|
int r;
|
||||||
|
@@ -1685,7 +1685,7 @@
|
||||||
|
#endif /* HAVE_LSETXATTR */
|
||||||
|
|
||||||
|
#ifdef HAVE_FSETXATTR
|
||||||
|
-ssize_t fsetxattr(int fd, const char *name, void *value, size_t size, int flags)
|
||||||
|
+int fsetxattr(int fd, const char *name, const void *value, size_t size, int flags)
|
||||||
|
{
|
||||||
|
INT_STRUCT_STAT st;
|
||||||
|
int r;
|
||||||
|
@@ -1832,7 +1832,7 @@
|
||||||
|
#endif /* HAVE_FLISTXATTR */
|
||||||
|
|
||||||
|
#ifdef HAVE_REMOVEXATTR
|
||||||
|
-ssize_t removexattr(const char *path, const char *name)
|
||||||
|
+int removexattr(const char *path, const char *name)
|
||||||
|
{
|
||||||
|
INT_STRUCT_STAT st;
|
||||||
|
int r;
|
||||||
|
@@ -1853,7 +1853,7 @@
|
||||||
|
#endif /* HAVE_REMOVEXATTR */
|
||||||
|
|
||||||
|
#ifdef HAVE_LREMOVEXATTR
|
||||||
|
-ssize_t lremovexattr(const char *path, const char *name)
|
||||||
|
+int lremovexattr(const char *path, const char *name)
|
||||||
|
{
|
||||||
|
INT_STRUCT_STAT st;
|
||||||
|
int r;
|
||||||
|
@@ -1874,7 +1874,7 @@
|
||||||
|
#endif /* HAVE_LREMOVEXATTR */
|
||||||
|
|
||||||
|
#ifdef HAVE_FREMOVEXATTR
|
||||||
|
-ssize_t fremovexattr(int fd, const char *name)
|
||||||
|
+int fremovexattr(int fd, const char *name)
|
||||||
|
{
|
||||||
|
INT_STRUCT_STAT st;
|
||||||
|
int r;
|
||||||
|
--- a/wrapfunc.inp
|
||||||
|
+++ b/wrapfunc.inp
|
||||||
|
@@ -168,22 +168,22 @@
|
||||||
|
fgetxattr;ssize_t;(int fd, const char *name, void *value, size_t size);(fd, name, value, size)
|
||||||
|
#endif /* HAVE_FGETXATTR */
|
||||||
|
#ifdef HAVE_SETXATTR
|
||||||
|
-setxattr;ssize_t;(const char *path, const char *name, void *value, size_t size, int flags);(path, name, value, size, flags)
|
||||||
|
+setxattr;int;(const char *path, const char *name, const void *value, size_t size, int flags);(path, name, value, size, flags)
|
||||||
|
#endif /* HAVE_SETXATTR */
|
||||||
|
#ifdef HAVE_LSETXATTR
|
||||||
|
-lsetxattr;ssize_t;(const char *path, const char *name, void *value, size_t size, int flags);(path, name, value, size, flags)
|
||||||
|
+lsetxattr;int;(const char *path, const char *name, const void *value, size_t size, int flags);(path, name, value, size, flags)
|
||||||
|
#endif /* HAVE_LSETXATTR */
|
||||||
|
#ifdef HAVE_FSETXATTR
|
||||||
|
-fsetxattr;ssize_t;(int fd, const char *name, void *value, size_t size, int flags);(fd, name, value, size, flags)
|
||||||
|
+fsetxattr;int;(int fd, const char *name, const void *value, size_t size, int flags);(fd, name, value, size, flags)
|
||||||
|
#endif /* HAVE_FSETXATTR */
|
||||||
|
#ifdef HAVE_REMOVEXATTR
|
||||||
|
-removexattr;ssize_t;(const char *path, const char *name);(path, name)
|
||||||
|
+removexattr;int;(const char *path, const char *name);(path, name)
|
||||||
|
#endif /* HAVE_REMOVEXATTR */
|
||||||
|
#ifdef HAVE_LREMOVEXATTR
|
||||||
|
-lremovexattr;ssize_t;(const char *path, const char *name);(path, name)
|
||||||
|
+lremovexattr;int;(const char *path, const char *name);(path, name)
|
||||||
|
#endif /* HAVE_LREMOVEXATTR */
|
||||||
|
#ifdef HAVE_FREMOVEXATTR
|
||||||
|
-fremovexattr;ssize_t;(int fd, const char *name);(fd, name)
|
||||||
|
+fremovexattr;int;(int fd, const char *name);(fd, name)
|
||||||
|
#endif /* HAVE_FREMOVEXATTR */
|
||||||
|
|
||||||
|
#ifdef HAVE_FSTATAT
|
||||||
|
|
@ -0,0 +1,32 @@
|
|||||||
|
Description: Hide error from dlsym()
|
||||||
|
dlsym(), starting in glibc 2.24 actually reports errors. In our case,
|
||||||
|
we try to get ACL functions which are not in the glibc. This causes
|
||||||
|
failures in test suites, so hide those messages for non-debugging
|
||||||
|
purposes for now. It also makes the build logs annoying to read.
|
||||||
|
Author: Julian Andres Klode <juliank@ubuntu.com>
|
||||||
|
Origin: vendor
|
||||||
|
Bug-Debian: https://bugs.debian.org/830912
|
||||||
|
Forwarded: no
|
||||||
|
Last-Update: 2016-08-12
|
||||||
|
|
||||||
|
--- a/libfakeroot.c
|
||||||
|
+++ b/libfakeroot.c
|
||||||
|
@@ -256,10 +256,16 @@ void load_library_symbols(void){
|
||||||
|
/* clear dlerror() just in case dlsym() legitimately returns NULL */
|
||||||
|
msg = dlerror();
|
||||||
|
*(next_wrap[i].doit)=dlsym(get_libc(), next_wrap[i].name);
|
||||||
|
+
|
||||||
|
if ( (msg = dlerror()) != NULL){
|
||||||
|
- fprintf (stderr, "dlsym(%s): %s\n", next_wrap[i].name, msg);
|
||||||
|
-/* abort ();*/
|
||||||
|
+#ifdef LIBFAKEROOT_DEBUGGING
|
||||||
|
+ if (fakeroot_debug) {
|
||||||
|
+ fprintf (stderr, "dlsym(%s): %s\n", next_wrap[i].name, msg);
|
||||||
|
+/* abort ();*/
|
||||||
|
+ }
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
+
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in new issue