!33 Update to 1.31
From: @lyn1001 Reviewed-by: @caodongxia Signed-off-by: @caodongxia
This commit is contained in:
commit
799f233b38
@ -1,20 +0,0 @@
|
|||||||
diff -ruN fakeroot/libfakeroot.c fakeroot-upstream-1.30.1/libfakeroot.c
|
|
||||||
--- fakeroot/libfakeroot.c 2022-11-14 03:31:24.576878771 +0800
|
|
||||||
+++ fakeroot-upstream-1.30.1/libfakeroot.c 2022-11-14 03:42:12.074723929 +0800
|
|
||||||
@@ -117,6 +117,16 @@
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#ifndef _STAT_VER
|
|
||||||
+ #if defined (__aarch64__)
|
|
||||||
+ #define _STAT_VER 0
|
|
||||||
+ #elif defined (__x86_64__)
|
|
||||||
+ #define _STAT_VER 1
|
|
||||||
+ #else
|
|
||||||
+ #define _STAT_VER 3
|
|
||||||
+ #endif
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
/*
|
|
||||||
These INT_* (which stands for internal) macros should always be used when
|
|
||||||
the fakeroot library owns the storage of the stat variable.
|
|
||||||
393
compile-time64-wraps-with-D_TIME_BITS-64.patch
Normal file
393
compile-time64-wraps-with-D_TIME_BITS-64.patch
Normal file
@ -0,0 +1,393 @@
|
|||||||
|
From 5af3efd9f2987dd3a687941d12bb08322e8d19ec Mon Sep 17 00:00:00 2001
|
||||||
|
From: Shengjing Zhu <shengjing.zhu@canonical.com>
|
||||||
|
Date: Wed, 1 Mar 2023 15:40:13 +0800
|
||||||
|
Subject: [PATCH] Compile time64 wraps with -D_TIME_BITS=64
|
||||||
|
|
||||||
|
This ensures using right stat struct on 32bit architectures.
|
||||||
|
Closes: #1030638
|
||||||
|
---
|
||||||
|
Makefile.am | 13 ++-
|
||||||
|
libfakeroot.c | 74 -------------
|
||||||
|
libfakeroot_time64.c | 255 +++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
3 files changed, 263 insertions(+), 79 deletions(-)
|
||||||
|
create mode 100644 libfakeroot_time64.c
|
||||||
|
|
||||||
|
diff --git a/Makefile.am b/Makefile.am
|
||||||
|
index 76210b5..4c1dfb1 100644
|
||||||
|
--- a/Makefile.am
|
||||||
|
+++ b/Makefile.am
|
||||||
|
@@ -2,20 +2,23 @@ AUTOMAKE_OPTIONS=foreign
|
||||||
|
ACLOCAL_AMFLAGS = -I build-aux
|
||||||
|
SUBDIRS=doc scripts test
|
||||||
|
|
||||||
|
-noinst_LTLIBRARIES = libcommunicate.la libmacosx.la
|
||||||
|
+noinst_LTLIBRARIES = libcommunicate.la libmacosx.la libfakeroot_time64.la
|
||||||
|
libcommunicate_la_SOURCES = communicate.c
|
||||||
|
|
||||||
|
libmacosx_la_SOURCES = libfakeroot_inode64.c libfakeroot_unix2003.c patchattr.h
|
||||||
|
|
||||||
|
+libfakeroot_time64_la_SOURCES = libfakeroot_time64.c
|
||||||
|
+libfakeroot_time64_la_CPPFLAGS = -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64
|
||||||
|
+
|
||||||
|
lib_LTLIBRARIES=libfakeroot.la
|
||||||
|
libfakeroot_la_SOURCES=libfakeroot.c statconv/glibc/linux/alpha/stats.h wrapdef.h wrapstruct.h communicate.h
|
||||||
|
libfakeroot_la_LDFLAGS=-release 0
|
||||||
|
if MACOSX
|
||||||
|
-libfakeroot_la_DEPENDENCIES=wrapdef.h wrapstruct.h libcommunicate.la libmacosx.la $(LTLIBOBJS)
|
||||||
|
-libfakeroot_la_LIBADD = libcommunicate.la libmacosx.la $(LTLIBOBJS)
|
||||||
|
+libfakeroot_la_DEPENDENCIES=wrapdef.h wrapstruct.h libfakeroot_time64.la libcommunicate.la libmacosx.la $(LTLIBOBJS)
|
||||||
|
+libfakeroot_la_LIBADD = libfakeroot_time64.la libcommunicate.la libmacosx.la $(LTLIBOBJS)
|
||||||
|
else !MACOSX
|
||||||
|
-libfakeroot_la_DEPENDENCIES=wrapdef.h wrapstruct.h libcommunicate.la $(LTLIBOBJS)
|
||||||
|
-libfakeroot_la_LIBADD = libcommunicate.la $(LTLIBOBJS)
|
||||||
|
+libfakeroot_la_DEPENDENCIES=wrapdef.h wrapstruct.h libfakeroot_time64.la libcommunicate.la $(LTLIBOBJS)
|
||||||
|
+libfakeroot_la_LIBADD = libfakeroot_time64.la libcommunicate.la $(LTLIBOBJS)
|
||||||
|
endif !MACOSX
|
||||||
|
|
||||||
|
bin_PROGRAMS=faked
|
||||||
|
diff --git a/libfakeroot.c b/libfakeroot.c
|
||||||
|
index 26a3e90..587a472 100644
|
||||||
|
--- a/libfakeroot.c
|
||||||
|
+++ b/libfakeroot.c
|
||||||
|
@@ -2631,77 +2631,3 @@ int sysinfo(int command, char *buf, long count)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
-
|
||||||
|
-#ifdef TIME64_HACK
|
||||||
|
-int WRAP_LSTAT64_TIME64 LSTAT64_TIME64_ARG(int ver,
|
||||||
|
- const char *file_name,
|
||||||
|
- struct stat64 *statbuf){
|
||||||
|
-
|
||||||
|
- int r;
|
||||||
|
-
|
||||||
|
-#ifdef LIBFAKEROOT_DEBUGGING
|
||||||
|
- if (fakeroot_debug) {
|
||||||
|
- fprintf(stderr, "lstat[time64] file_name %s\n", file_name);
|
||||||
|
- }
|
||||||
|
-#endif /* LIBFAKEROOT_DEBUGGING */
|
||||||
|
- r=NEXT_LSTAT64_TIME64(ver, file_name, statbuf);
|
||||||
|
- if(r)
|
||||||
|
- return -1;
|
||||||
|
- SEND_GET_STAT64(statbuf, ver);
|
||||||
|
- return 0;
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-
|
||||||
|
-int WRAP_STAT64_TIME64 STAT64_TIME64_ARG(int ver,
|
||||||
|
- const char *file_name,
|
||||||
|
- struct stat64 *st){
|
||||||
|
- int r;
|
||||||
|
-
|
||||||
|
-#ifdef LIBFAKEROOT_DEBUGGING
|
||||||
|
- if (fakeroot_debug) {
|
||||||
|
- fprintf(stderr, "stat64[time64] file_name %s\n", file_name);
|
||||||
|
- }
|
||||||
|
-#endif /* LIBFAKEROOT_DEBUGGING */
|
||||||
|
- r=NEXT_STAT64_TIME64(ver, file_name, st);
|
||||||
|
- if(r)
|
||||||
|
- return -1;
|
||||||
|
- SEND_GET_STAT64(st,ver);
|
||||||
|
- return 0;
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-
|
||||||
|
-int WRAP_FSTAT64_TIME64 FSTAT64_TIME64_ARG(int ver,
|
||||||
|
- int fd,
|
||||||
|
- struct stat64 *st){
|
||||||
|
-
|
||||||
|
- int r;
|
||||||
|
-
|
||||||
|
-#ifdef LIBFAKEROOT_DEBUGGING
|
||||||
|
- if (fakeroot_debug) {
|
||||||
|
- fprintf(stderr, "fstat64[time64] fd %d\n", fd);
|
||||||
|
- }
|
||||||
|
-#endif /* LIBFAKEROOT_DEBUGGING */
|
||||||
|
- r=NEXT_FSTAT64_TIME64(ver, fd, st);
|
||||||
|
- if(r)
|
||||||
|
- return -1;
|
||||||
|
- SEND_GET_STAT64(st,ver);
|
||||||
|
- return 0;
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-int WRAP_FSTATAT64_TIME64 FSTATAT64_TIME64_ARG(int ver,
|
||||||
|
- int dir_fd,
|
||||||
|
- const char *path,
|
||||||
|
- struct stat64 *st,
|
||||||
|
- int flags){
|
||||||
|
-
|
||||||
|
-
|
||||||
|
- int r;
|
||||||
|
-
|
||||||
|
- r=NEXT_FSTATAT64_TIME64(ver, dir_fd, path, st, flags);
|
||||||
|
- if(r)
|
||||||
|
- return -1;
|
||||||
|
- SEND_GET_STAT64(st,ver);
|
||||||
|
- return 0;
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-#endif /* TIME64_HACK */
|
||||||
|
diff --git a/libfakeroot_time64.c b/libfakeroot_time64.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..5b93a84
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/libfakeroot_time64.c
|
||||||
|
@@ -0,0 +1,255 @@
|
||||||
|
+#include "config.h"
|
||||||
|
+#include "communicate.h"
|
||||||
|
+
|
||||||
|
+#include <stdio.h>
|
||||||
|
+
|
||||||
|
+#ifdef HAVE_SYS_ACL_H
|
||||||
|
+#include <sys/acl.h>
|
||||||
|
+#endif /* HAVE_SYS_ACL_H */
|
||||||
|
+#ifdef HAVE_SYS_CAPABILITY_H
|
||||||
|
+#include <sys/capability.h>
|
||||||
|
+#endif
|
||||||
|
+#if HAVE_FTS_H
|
||||||
|
+#include <fts.h>
|
||||||
|
+#endif /* HAVE_FTS_H */
|
||||||
|
+#ifdef HAVE_SYS_SYSMACROS_H
|
||||||
|
+# include <sys/sysmacros.h>
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+#include "wrapped.h"
|
||||||
|
+
|
||||||
|
+extern void load_library_symbols(void);
|
||||||
|
+
|
||||||
|
+#ifdef LIBFAKEROOT_DEBUGGING
|
||||||
|
+extern int fakeroot_debug;
|
||||||
|
+#endif /* LIBFAKEROOT_DEBUGGING */
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+extern void send_get_fakem(struct fake_msg *buf);
|
||||||
|
+
|
||||||
|
+#ifdef TIME64_HACK
|
||||||
|
+
|
||||||
|
+#ifdef STUPID_ALPHA_HACK
|
||||||
|
+#define SEND_GET_STAT64_TIME64(a,b) send_get_stat64_time64(a,b)
|
||||||
|
+#else
|
||||||
|
+#define SEND_GET_STAT64_TIME64(a,b) send_get_stat64_time64(a)
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+void cpyfakemstat64_time64(struct fake_msg *f,
|
||||||
|
+ const struct stat64 *st
|
||||||
|
+#ifdef STUPID_ALPHA_HACK
|
||||||
|
+ , int ver
|
||||||
|
+#endif
|
||||||
|
+ ){
|
||||||
|
+#ifndef STUPID_ALPHA_HACK
|
||||||
|
+ f->st.mode =st->st_mode;
|
||||||
|
+ f->st.ino =st->st_ino ;
|
||||||
|
+ f->st.uid =st->st_uid ;
|
||||||
|
+ f->st.gid =st->st_gid ;
|
||||||
|
+ f->st.dev =st->st_dev ;
|
||||||
|
+ f->st.rdev =st->st_rdev;
|
||||||
|
+
|
||||||
|
+ /* DO copy the nlink count. Although the system knows this
|
||||||
|
+ one better, we need it for unlink().
|
||||||
|
+ This actually opens up a race condition, if another command
|
||||||
|
+ makes a hardlink on a file, while we try to unlink it. This
|
||||||
|
+ may cause the record to be deleted, while the link continues
|
||||||
|
+ to live on the disk. But the chance is small, and unlikely
|
||||||
|
+ to occur in practical fakeroot conditions. */
|
||||||
|
+
|
||||||
|
+ f->st.nlink=st->st_nlink;
|
||||||
|
+#else
|
||||||
|
+ switch(ver) {
|
||||||
|
+ case _STAT_VER_KERNEL:
|
||||||
|
+ f->st.mode = ((struct fakeroot_kernel_stat *)st)->st_mode;
|
||||||
|
+ f->st.ino = ((struct fakeroot_kernel_stat *)st)->st_ino;
|
||||||
|
+ f->st.uid = ((struct fakeroot_kernel_stat *)st)->st_uid;
|
||||||
|
+ f->st.gid = ((struct fakeroot_kernel_stat *)st)->st_gid;
|
||||||
|
+ f->st.dev = ((struct fakeroot_kernel_stat *)st)->st_dev;
|
||||||
|
+ f->st.rdev = ((struct fakeroot_kernel_stat *)st)->st_rdev;
|
||||||
|
+ f->st.nlink = ((struct fakeroot_kernel_stat *)st)->st_nlink;
|
||||||
|
+ break;
|
||||||
|
+ case _STAT_VER_GLIBC2:
|
||||||
|
+ f->st.mode = ((struct fakeroot_glibc2_stat *)st)->st_mode;
|
||||||
|
+ f->st.ino = ((struct fakeroot_glibc2_stat *)st)->st_ino;
|
||||||
|
+ f->st.uid = ((struct fakeroot_glibc2_stat *)st)->st_uid;
|
||||||
|
+ f->st.gid = ((struct fakeroot_glibc2_stat *)st)->st_gid;
|
||||||
|
+ f->st.dev = ((struct fakeroot_glibc2_stat *)st)->st_dev;
|
||||||
|
+ f->st.rdev = ((struct fakeroot_glibc2_stat *)st)->st_rdev;
|
||||||
|
+ f->st.nlink = ((struct fakeroot_glibc2_stat *)st)->st_nlink;
|
||||||
|
+ break;
|
||||||
|
+ case _STAT_VER_GLIBC2_1:
|
||||||
|
+ f->st.mode = ((struct fakeroot_glibc21_stat *)st)->st_mode;
|
||||||
|
+ f->st.ino = ((struct fakeroot_glibc21_stat *)st)->st_ino;
|
||||||
|
+ f->st.uid = ((struct fakeroot_glibc21_stat *)st)->st_uid;
|
||||||
|
+ f->st.gid = ((struct fakeroot_glibc21_stat *)st)->st_gid;
|
||||||
|
+ f->st.dev = ((struct fakeroot_glibc21_stat *)st)->st_dev;
|
||||||
|
+ f->st.rdev = ((struct fakeroot_glibc21_stat *)st)->st_rdev;
|
||||||
|
+ f->st.nlink = ((struct fakeroot_glibc21_stat *)st)->st_nlink;
|
||||||
|
+ break;
|
||||||
|
+ default:
|
||||||
|
+ f->st.mode = st->st_mode;
|
||||||
|
+ f->st.ino = st->st_ino;
|
||||||
|
+ f->st.uid = st->st_uid;
|
||||||
|
+ f->st.gid = st->st_gid;
|
||||||
|
+ f->st.dev = st->st_dev;
|
||||||
|
+ f->st.rdev = st->st_rdev;
|
||||||
|
+ f->st.nlink = st->st_nlink;
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+#endif
|
||||||
|
+}
|
||||||
|
+void cpystat64fakem_time64(struct stat64 *st,
|
||||||
|
+ const struct fake_msg *f
|
||||||
|
+#ifdef STUPID_ALPHA_HACK
|
||||||
|
+ , int ver
|
||||||
|
+#endif
|
||||||
|
+ ){
|
||||||
|
+#ifndef STUPID_ALPHA_HACK
|
||||||
|
+ st->st_mode =f->st.mode;
|
||||||
|
+ st->st_ino =f->st.ino ;
|
||||||
|
+ st->st_uid =f->st.uid ;
|
||||||
|
+ st->st_gid =f->st.gid ;
|
||||||
|
+ st->st_dev =f->st.dev ;
|
||||||
|
+ st->st_rdev =f->st.rdev;
|
||||||
|
+ /* DON'T copy the nlink count! The system always knows
|
||||||
|
+ this one better! */
|
||||||
|
+ /* st->st_nlink=f->st.nlink;*/
|
||||||
|
+#else
|
||||||
|
+ switch(ver) {
|
||||||
|
+ case _STAT_VER_KERNEL:
|
||||||
|
+ ((struct fakeroot_kernel_stat *)st)->st_mode = f->st.mode;
|
||||||
|
+ ((struct fakeroot_kernel_stat *)st)->st_ino = f->st.ino;
|
||||||
|
+ ((struct fakeroot_kernel_stat *)st)->st_uid = f->st.uid;
|
||||||
|
+ ((struct fakeroot_kernel_stat *)st)->st_gid = f->st.gid;
|
||||||
|
+ ((struct fakeroot_kernel_stat *)st)->st_dev = f->st.dev;
|
||||||
|
+ ((struct fakeroot_kernel_stat *)st)->st_rdev = f->st.rdev;
|
||||||
|
+ break;
|
||||||
|
+ case _STAT_VER_GLIBC2:
|
||||||
|
+ ((struct fakeroot_glibc2_stat *)st)->st_mode = f->st.mode;
|
||||||
|
+ ((struct fakeroot_glibc2_stat *)st)->st_ino = f->st.ino;
|
||||||
|
+ ((struct fakeroot_glibc2_stat *)st)->st_uid = f->st.uid;
|
||||||
|
+ ((struct fakeroot_glibc2_stat *)st)->st_gid = f->st.gid;
|
||||||
|
+ ((struct fakeroot_glibc2_stat *)st)->st_dev = f->st.dev;
|
||||||
|
+ ((struct fakeroot_glibc2_stat *)st)->st_rdev = f->st.rdev;
|
||||||
|
+ break;
|
||||||
|
+ case _STAT_VER_GLIBC2_1:
|
||||||
|
+ ((struct fakeroot_glibc21_stat *)st)->st_mode = f->st.mode;
|
||||||
|
+ ((struct fakeroot_glibc21_stat *)st)->st_ino = f->st.ino;
|
||||||
|
+ ((struct fakeroot_glibc21_stat *)st)->st_uid = f->st.uid;
|
||||||
|
+ ((struct fakeroot_glibc21_stat *)st)->st_gid = f->st.gid;
|
||||||
|
+ ((struct fakeroot_glibc21_stat *)st)->st_dev = f->st.dev;
|
||||||
|
+ ((struct fakeroot_glibc21_stat *)st)->st_rdev = f->st.rdev;
|
||||||
|
+ break;
|
||||||
|
+ default:
|
||||||
|
+ st->st_mode =f->st.mode;
|
||||||
|
+ st->st_ino =f->st.ino ;
|
||||||
|
+ st->st_uid =f->st.uid ;
|
||||||
|
+ st->st_gid =f->st.gid ;
|
||||||
|
+ st->st_dev =f->st.dev ;
|
||||||
|
+ st->st_rdev =f->st.rdev;
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+#endif
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+void send_get_stat64_time64(struct stat64 *st
|
||||||
|
+#ifdef STUPID_ALPHA_HACK
|
||||||
|
+ , int ver
|
||||||
|
+#endif
|
||||||
|
+ )
|
||||||
|
+{
|
||||||
|
+ struct fake_msg buf;
|
||||||
|
+
|
||||||
|
+#ifndef FAKEROOT_FAKENET
|
||||||
|
+ if(init_get_msg()!=-1)
|
||||||
|
+#endif /* ! FAKEROOT_FAKENET */
|
||||||
|
+ {
|
||||||
|
+#ifndef STUPID_ALPHA_HACK
|
||||||
|
+ cpyfakemstat64_time64(&buf,st);
|
||||||
|
+#else
|
||||||
|
+ cpyfakemstat64_time64(&buf,st,ver);
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+ buf.id=stat_func;
|
||||||
|
+ send_get_fakem(&buf);
|
||||||
|
+#ifndef STUPID_ALPHA_HACK
|
||||||
|
+ cpystat64fakem_time64(st,&buf);
|
||||||
|
+#else
|
||||||
|
+ cpystat64fakem_time64(st,&buf,ver);
|
||||||
|
+#endif
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+int WRAP_LSTAT64_TIME64 LSTAT64_TIME64_ARG(int ver,
|
||||||
|
+ const char *file_name,
|
||||||
|
+ struct stat64 *statbuf){
|
||||||
|
+
|
||||||
|
+ int r;
|
||||||
|
+
|
||||||
|
+#ifdef LIBFAKEROOT_DEBUGGING
|
||||||
|
+ if (fakeroot_debug) {
|
||||||
|
+ fprintf(stderr, "lstat[time64] file_name %s\n", file_name);
|
||||||
|
+ }
|
||||||
|
+#endif /* LIBFAKEROOT_DEBUGGING */
|
||||||
|
+ r=NEXT_LSTAT64_TIME64(ver, file_name, statbuf);
|
||||||
|
+ if(r)
|
||||||
|
+ return -1;
|
||||||
|
+ SEND_GET_STAT64_TIME64(statbuf, ver);
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+int WRAP_STAT64_TIME64 STAT64_TIME64_ARG(int ver,
|
||||||
|
+ const char *file_name,
|
||||||
|
+ struct stat64 *st){
|
||||||
|
+ int r;
|
||||||
|
+
|
||||||
|
+#ifdef LIBFAKEROOT_DEBUGGING
|
||||||
|
+ if (fakeroot_debug) {
|
||||||
|
+ fprintf(stderr, "stat64[time64] file_name %s\n", file_name);
|
||||||
|
+ }
|
||||||
|
+#endif /* LIBFAKEROOT_DEBUGGING */
|
||||||
|
+ r=NEXT_STAT64_TIME64(ver, file_name, st);
|
||||||
|
+ if(r)
|
||||||
|
+ return -1;
|
||||||
|
+ SEND_GET_STAT64_TIME64(st,ver);
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+int WRAP_FSTAT64_TIME64 FSTAT64_TIME64_ARG(int ver,
|
||||||
|
+ int fd,
|
||||||
|
+ struct stat64 *st){
|
||||||
|
+
|
||||||
|
+ int r;
|
||||||
|
+
|
||||||
|
+#ifdef LIBFAKEROOT_DEBUGGING
|
||||||
|
+ if (fakeroot_debug) {
|
||||||
|
+ fprintf(stderr, "fstat64[time64] fd %d\n", fd);
|
||||||
|
+ }
|
||||||
|
+#endif /* LIBFAKEROOT_DEBUGGING */
|
||||||
|
+ r=NEXT_FSTAT64_TIME64(ver, fd, st);
|
||||||
|
+ if(r)
|
||||||
|
+ return -1;
|
||||||
|
+ SEND_GET_STAT64_TIME64(st,ver);
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+int WRAP_FSTATAT64_TIME64 FSTATAT64_TIME64_ARG(int ver,
|
||||||
|
+ int dir_fd,
|
||||||
|
+ const char *path,
|
||||||
|
+ struct stat64 *st,
|
||||||
|
+ int flags){
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+ int r;
|
||||||
|
+
|
||||||
|
+ r=NEXT_FSTATAT64_TIME64(ver, dir_fd, path, st, flags);
|
||||||
|
+ if(r)
|
||||||
|
+ return -1;
|
||||||
|
+ SEND_GET_STAT64_TIME64(st,ver);
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+#endif /* TIME64_HACK */
|
||||||
|
--
|
||||||
|
2.39.2
|
||||||
|
|
||||||
@ -1,6 +1,10 @@
|
|||||||
diff -ruN fakeroot/scripts/fakeroot.in fakeroot-upstream-1.30.1/scripts/fakeroot.in
|
Description: Fix shell in fakeroot.in
|
||||||
--- fakeroot/scripts/fakeroot.in 2022-11-14 03:31:24.546545830 +0800
|
Use /bin/sh instead of @SHELL@ in fakeroot.in
|
||||||
+++ fakeroot-upstream-1.30.1/scripts/fakeroot.in 2022-11-14 03:42:11.985891734 +0800
|
Author: Juan Picca <jumapico@gmail.com>
|
||||||
|
Last-Update: 2016-06-27
|
||||||
|
---
|
||||||
|
--- a/scripts/fakeroot.in
|
||||||
|
+++ b/scripts/fakeroot.in
|
||||||
@@ -1,4 +1,4 @@
|
@@ -1,4 +1,4 @@
|
||||||
-#!@SHELL@
|
-#!@SHELL@
|
||||||
+#!/bin/sh
|
+#!/bin/sh
|
||||||
|
|||||||
@ -1,55 +0,0 @@
|
|||||||
diff -ruN fakeroot/faked.c fakeroot-upstream-1.30.1/faked.c
|
|
||||||
--- fakeroot/faked.c 2022-11-14 03:31:24.575795452 +0800
|
|
||||||
+++ fakeroot-upstream-1.30.1/faked.c 2022-11-14 03:42:12.011891401 +0800
|
|
||||||
@@ -130,7 +130,7 @@
|
|
||||||
#ifdef FAKEROOT_DB_PATH
|
|
||||||
# include <dirent.h>
|
|
||||||
#endif
|
|
||||||
-
|
|
||||||
+#include <inttypes.h>
|
|
||||||
#ifndef FAKEROOT_FAKENET
|
|
||||||
# define FAKE_KEY msg_key
|
|
||||||
#else /* FAKEROOT_FAKENET */
|
|
||||||
@@ -619,10 +619,10 @@
|
|
||||||
(uint64_t) i->buf.mode,(uint64_t) i->buf.uid,(uint64_t) i->buf.gid,
|
|
||||||
(uint64_t) i->buf.nlink,(uint64_t) i->buf.rdev,path);
|
|
||||||
#else
|
|
||||||
- fprintf(f,"dev=%llx,ino=%llu,mode=%llo,uid=%llu,gid=%llu,nlink=%llu,rdev=%llu\n",
|
|
||||||
- (uint64_t) i->buf.dev,(uint64_t) i->buf.ino,(uint64_t) i->buf.mode,
|
|
||||||
- (uint64_t) i->buf.uid,(uint64_t) i->buf.gid,(uint64_t) i->buf.nlink,
|
|
||||||
- (uint64_t) i->buf.rdev);
|
|
||||||
+ fprintf(f,"dev=%" PRIx64 ",ino=%" PRIu64 ",mode=%" PRIo32 ",uid=%" PRIu32 ",gid=%" PRIu32 ",nlink=%" PRIu32",rdev=%" PRIu64 "\n",
|
|
||||||
+ i->buf.dev, i->buf.ino, i->buf.mode,
|
|
||||||
+ i->buf.uid, i->buf.gid, i->buf.nlink,
|
|
||||||
+ i->buf.rdev);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -660,7 +660,7 @@
|
|
||||||
stdev = path_st.st_dev;
|
|
||||||
stino = path_st.st_ino;
|
|
||||||
#else
|
|
||||||
- r=scanf("dev=%llx,ino=%llu,mode=%llo,uid=%llu,gid=%llu,nlink=%llu,rdev=%llu\n",
|
|
||||||
+ r=scanf("dev=%" PRIx64 ",ino=%" PRIu64 ",mode=%" PRIo64 ",uid=%" PRIu64 ",gid=%"PRIu64 ",nlink=%" PRIu64 ",rdev=%" PRIu64 "\n",
|
|
||||||
&stdev, &stino, &stmode, &stuid, &stgid, &stnlink, &strdev);
|
|
||||||
if (r != 7)
|
|
||||||
break;
|
|
||||||
@@ -687,13 +687,13 @@
|
|
||||||
/* */
|
|
||||||
/*********************************/
|
|
||||||
void debug_stat(const struct fakestat *st){
|
|
||||||
- fprintf(stderr,"dev:ino=(%llx:%lli), mode=0%lo, own=(%li,%li), nlink=%li, rdev=%lli\n",
|
|
||||||
+ fprintf(stderr,"dev:ino=(%" PRIx64 ":%" PRIx64 "), mode=0%" PRIo32 ", own=(%" PRIi32 ",%" PRIi32 "), nlink=%" PRIi32 ", rdev=%" PRIi64 "\n",
|
|
||||||
st->dev,
|
|
||||||
st->ino,
|
|
||||||
- (long)st->mode,
|
|
||||||
- (long)st->uid,
|
|
||||||
- (long)st->gid,
|
|
||||||
- (long)st->nlink,
|
|
||||||
+ st->mode,
|
|
||||||
+ st->uid,
|
|
||||||
+ st->gid,
|
|
||||||
+ st->nlink,
|
|
||||||
st->rdev);
|
|
||||||
}
|
|
||||||
|
|
||||||
@ -1,7 +1,7 @@
|
|||||||
diff -ruN fakeroot/scripts/fakeroot.in fakeroot-upstream-1.30.1/scripts/fakeroot.in
|
diff -up fakeroot-1.25.2/scripts/fakeroot.in.multilib fakeroot-1.25.2/scripts/fakeroot.in
|
||||||
--- fakeroot/scripts/fakeroot.in 2022-11-14 03:31:24.546545830 +0800
|
--- fakeroot-1.25.2/scripts/fakeroot.in.multilib 2020-10-05 21:34:34.584490563 +0200
|
||||||
+++ fakeroot-upstream-1.30.1/scripts/fakeroot.in 2022-11-14 03:42:12.032474470 +0800
|
+++ fakeroot-1.25.2/scripts/fakeroot.in 2020-10-05 21:35:33.264201406 +0200
|
||||||
@@ -35,7 +35,7 @@
|
@@ -35,7 +35,7 @@ FAKEROOT_BINDIR=@bindir@
|
||||||
|
|
||||||
USEABSLIBPATH=@LDPRELOADABS@
|
USEABSLIBPATH=@LDPRELOADABS@
|
||||||
FAKEROOT_LIB=lib@fakeroot_transformed@@DLSUFFIX@
|
FAKEROOT_LIB=lib@fakeroot_transformed@@DLSUFFIX@
|
||||||
|
|||||||
0
fakeroot-upstream-1.25.2-sw.patch
Executable file → Normal file
0
fakeroot-upstream-1.25.2-sw.patch
Executable file → Normal file
Binary file not shown.
@ -1,23 +1,22 @@
|
|||||||
%bcond_without autoconf
|
%bcond_without autoconf
|
||||||
Summary: Gives a fake root environment
|
Summary: Gives a fake root environment
|
||||||
Name: fakeroot
|
Name: fakeroot
|
||||||
Version: 1.30.1
|
Version: 1.31
|
||||||
Release: 1
|
Release: 1
|
||||||
License: GPLv3+ and LGPLv2.1 and MIT and GPL+
|
License: GPLv3+ and LGPLv2.1 and MIT and GPL+
|
||||||
URL: https://tracker.debian.org/pkg/fakeroot
|
URL: https://tracker.debian.org/pkg/fakeroot
|
||||||
Source0: http://salsa.debian.org/clint/fakeroot/-/archive/upstream/1.30.1/%{name}-upstream-%{version}.tar.gz
|
Source0: https://ftp.debian.org/debian/pool/main/f/fakeroot/%{name}_%{version}.orig.tar.gz
|
||||||
Patch1: debian_fix-shell-in-fakeroot.patch
|
Patch1: debian_fix-shell-in-fakeroot.patch
|
||||||
Patch2: fakeroot-inttypes.patch
|
Patch2: compile-time64-wraps-with-D_TIME_BITS-64.patch
|
||||||
Patch3: fakeroot-multilib.patch
|
Patch3: fakeroot-multilib.patch
|
||||||
Patch4: fakeroot-drop-tartest.patch
|
Patch4: fakeroot-drop-tartest.patch
|
||||||
Patch5000: backport-define-_STAT_VER-if-not-already-defined.patch
|
|
||||||
%ifarch sw_64
|
%ifarch sw_64
|
||||||
Patch5001: fakeroot-upstream-1.25.2-sw.patch
|
Patch5001: fakeroot-upstream-1.25.2-sw.patch
|
||||||
%endif
|
%endif
|
||||||
%if %{with autoconf}
|
%if %{with autoconf}
|
||||||
BuildRequires: autoconf automake libtool po4a
|
BuildRequires: autoconf automake libtool po4a
|
||||||
%endif
|
%endif
|
||||||
BuildRequires: /usr/bin/getopt libacl-devel libcap-devel sharutils
|
BuildRequires: /usr/bin/getopt libacl-devel libcap-devel sharutils make gcc
|
||||||
Requires: /usr/bin/getopt fakeroot-libs = %{version}-%{release}
|
Requires: /usr/bin/getopt fakeroot-libs = %{version}-%{release}
|
||||||
Requires(post): /usr/sbin/alternatives
|
Requires(post): /usr/sbin/alternatives
|
||||||
Requires(post): /usr/bin/readlink
|
Requires(post): /usr/bin/readlink
|
||||||
@ -35,7 +34,7 @@ Summary: Gives a fake root environment (libraries)
|
|||||||
This package contains the libraries required by %{name}.
|
This package contains the libraries required by %{name}.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%autosetup -p1 -n %{name}-upstream-%{version}
|
%autosetup -p1 -n %{name}-%{version}
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%if %{with autoconf}
|
%if %{with autoconf}
|
||||||
@ -129,6 +128,9 @@ fi
|
|||||||
%ghost %{_libdir}/libfakeroot/libfakeroot-0.so
|
%ghost %{_libdir}/libfakeroot/libfakeroot-0.so
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Jun 14 2023 liyanan <thistleslyn@163.com> - 1.31-1
|
||||||
|
- Update to 1.31
|
||||||
|
|
||||||
* Sat Nov 12 2022 hua <dchang@zhixundn.com> 1.30.1-1
|
* Sat Nov 12 2022 hua <dchang@zhixundn.com> 1.30.1-1
|
||||||
- update to 1.30.1
|
- update to 1.30.1
|
||||||
|
|
||||||
|
|||||||
BIN
fakeroot_1.31.orig.tar.gz
Normal file
BIN
fakeroot_1.31.orig.tar.gz
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user