diff --git a/compile-time64-wraps-with-D_TIME_BITS-64.patch b/compile-time64-wraps-with-D_TIME_BITS-64.patch deleted file mode 100644 index 3eeda1e..0000000 --- a/compile-time64-wraps-with-D_TIME_BITS-64.patch +++ /dev/null @@ -1,393 +0,0 @@ -From 5af3efd9f2987dd3a687941d12bb08322e8d19ec Mon Sep 17 00:00:00 2001 -From: Shengjing Zhu -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 -+ -+#ifdef HAVE_SYS_ACL_H -+#include -+#endif /* HAVE_SYS_ACL_H */ -+#ifdef HAVE_SYS_CAPABILITY_H -+#include -+#endif -+#if HAVE_FTS_H -+#include -+#endif /* HAVE_FTS_H */ -+#ifdef HAVE_SYS_SYSMACROS_H -+# include -+#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 - diff --git a/fakeroot-inttypes.patch b/fakeroot-inttypes.patch deleted file mode 100644 index 1c645dc..0000000 --- a/fakeroot-inttypes.patch +++ /dev/null @@ -1,55 +0,0 @@ -diff -up fakeroot-1.20.2/faked.c.inttypes fakeroot-1.20.2/faked.c ---- fakeroot-1.20.2/faked.c.inttypes 2014-10-05 17:16:00.000000000 +0200 -+++ fakeroot-1.20.2/faked.c 2015-06-17 11:29:01.335799421 +0200 -@@ -125,7 +125,7 @@ - #ifdef FAKEROOT_DB_PATH - # include - #endif -- -+#include - #ifndef FAKEROOT_FAKENET - # define FAKE_KEY msg_key - #else /* FAKEROOT_FAKENET */ -@@ -614,10 +614,10 @@ int save_database(const uint32_t remote) - (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 - } - -@@ -655,7 +655,7 @@ int load_database(const uint32_t remote) - 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; -@@ -682,13 +682,13 @@ int load_database(const uint32_t remote) - /* */ - /*********************************/ - 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); - } -