Something went wrong. Try again.
What happens if I push all of nixpkgs
Something went wrong. Try again.
4.4 kB · 162 lines
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163diff -rc checkinstall-orig/installwatch/installwatch.c checkinstall/installwatch/installwatch.c*** checkinstall-orig/installwatch/installwatch.c 2009-03-12 13:40:24.000000000 +0100--- checkinstall/installwatch/installwatch.c 2009-03-27 22:42:19.000000000 +0100****************** 110,115 ****--- 110,117 ---- static int (*true_setxattr)(const char *,const char *,const void *, size_t, int); static int (*true_removexattr)(const char *,const char *);+ static ssize_t (*true_getxattr)(const char *,const char *,const void *,size_t);+ static ssize_t (*true_lgetxattr)(const char *,const char *,const void *,size_t); #if(GLIBC_MINOR >= 1) ****************** 369,374 ****--- 371,378 ---- true_unlink = dlsym(libc_handle, "unlink"); true_utime = dlsym(libc_handle, "utime"); true_setxattr = dlsym(libc_handle, "setxattr");+ true_getxattr = dlsym(libc_handle, "getxattr");+ true_lgetxattr = dlsym(libc_handle, "lgetxattr"); true_utimes = dlsym(libc_handle, "utimes"); true_access = dlsym(libc_handle, "access"); ****************** 3494,3499 ****--- 3498,3587 ---- return result; } + int getxattr (const char *pathname, const char *name,+ const void *value, size_t size)+ {+ int result;+ instw_t instw;+ int status;+ + REFCOUNT;+ + if (!libc_handle)+ initialize();+ + #if DEBUG+ debug(2,"getxattr(%s,%s)\n",pathname,name);+ #endif+ + /* We were asked to work in "real" mode */+ if( !(__instw.gstatus & INSTW_INITIALIZED) ||+ !(__instw.gstatus & INSTW_OKWRAP) ) {+ result=true_getxattr(pathname,name,value,size);+ return result;+ }+ + instw_new(&instw);+ instw_setpath(&instw,pathname);+ instw_getstatus(&instw,&status);+ + #if DEBUG+ instw_print(&instw);+ #endif+ + if(status&INSTW_TRANSLATED) {+ result=true_getxattr(instw.translpath,name,value,size);+ } else {+ result=true_getxattr(instw.path,name,value,size);+ }+ + instw_delete(&instw);+ + return result;+ }+ + int lgetxattr (const char *pathname, const char *name,+ const void *value, size_t size)+ {+ int result;+ instw_t instw;+ int status;+ + REFCOUNT;+ + if (!libc_handle)+ initialize();+ + #if DEBUG+ debug(2,"lgetxattr(%s,%s)\n",pathname,name);+ #endif+ + /* We were asked to work in "real" mode */+ if( !(__instw.gstatus & INSTW_INITIALIZED) ||+ !(__instw.gstatus & INSTW_OKWRAP) ) {+ result=true_lgetxattr(pathname,name,value,size);+ return result;+ }+ + instw_new(&instw);+ instw_setpath(&instw,pathname);+ instw_getstatus(&instw,&status);+ + #if DEBUG+ instw_print(&instw);+ #endif+ + if(status&INSTW_TRANSLATED) {+ result=true_lgetxattr(instw.translpath,name,value,size);+ } else {+ result=true_lgetxattr(instw.path,name,value,size);+ }+ + instw_delete(&instw);+ + return result;+ }+ #if(GLIBC_MINOR >= 1) int creat64(const char *pathname, __mode_t mode) {****************** 3663,3668 ****--- 3751,3791 ---- return result; } + int __open_2(const char *pathname, int flags, ...) {+ va_list ap;+ mode_t mode;+ + #if DEBUG+ debug(2,"__open_2(%s,%d,mode)\n",pathname,flags);+ #endif+ + va_start(ap, flags);+ mode = va_arg(ap, mode_t);+ va_end(ap);+ + /* The open() function in Glibc 2.9 is an always-inline+ function that may call __open_2(), so it's important that+ we handle it. I don't know what __open_2() is supposed to+ do, but redirecting it to open() seems to work fine. */+ + return open(pathname,flags,mode);+ }+ + int __open64_2(const char *pathname, int flags, ...) {+ va_list ap;+ mode_t mode;+ + #if DEBUG+ debug(2,"__open64_2(%s,%d,mode)\n",pathname,flags);+ #endif+ + va_start(ap, flags);+ mode = va_arg(ap, mode_t);+ va_end(ap);+ + return open64(pathname,flags,mode);+ }+ struct dirent64 *readdir64(DIR *dir) { struct dirent64 *result;