diff options
Diffstat (limited to 'repo/fakeroot')
-rw-r--r-- | repo/fakeroot/do-not-redefine-id_t.patch | 21 | ||||
-rw-r--r-- | repo/fakeroot/fakeroot-no64.patch | 17 | ||||
-rw-r--r-- | repo/fakeroot/fakeroot-skip-ipc-sanity-check.patch | 59 | ||||
-rw-r--r-- | repo/fakeroot/fakeroot-stdint.patch | 34 | ||||
-rw-r--r-- | repo/fakeroot/fakeroot.xibuild | 48 | ||||
-rw-r--r-- | repo/fakeroot/fix-format.patch | 25 | ||||
-rw-r--r-- | repo/fakeroot/fix-shell-in-fakeroot.patch | 13 | ||||
-rw-r--r-- | repo/fakeroot/xstatjunk.patch | 11 |
8 files changed, 228 insertions, 0 deletions
diff --git a/repo/fakeroot/do-not-redefine-id_t.patch b/repo/fakeroot/do-not-redefine-id_t.patch new file mode 100644 index 0000000..4d3bab1 --- /dev/null +++ b/repo/fakeroot/do-not-redefine-id_t.patch @@ -0,0 +1,21 @@ +musl defines id_t as unsigned but doesn't use the _ID_T to detect its +definition. This causes the type to be redefined as an int by fakeroot +which causes a compilation error. + +diff -upr fakeroot-1.27.orig/libfakeroot.c fakeroot-1.27/libfakeroot.c +--- fakeroot-1.27.orig/libfakeroot.c 2022-01-30 11:30:25.198506844 +0100 ++++ fakeroot-1.27/libfakeroot.c 2022-01-30 11:30:41.928524429 +0100 +@@ -133,13 +133,6 @@ + #define INT_SEND_STAT(a,b) SEND_STAT(a,b,_STAT_VER) + #define INT_SEND_GET_XATTR(a,b) SEND_GET_XATTR(a,b,_STAT_VER) + #define INT_SEND_GET_STAT(a,b) SEND_GET_STAT(a,b) +- +-/* 10.10 uses id_t in getpriority/setpriority calls, so pretend +- id_t is used everywhere, just happens to be int on some OSes */ +-#ifndef _ID_T +-#define _ID_T +-typedef int id_t; +-#endif + #endif + + #include <sys/types.h> diff --git a/repo/fakeroot/fakeroot-no64.patch b/repo/fakeroot/fakeroot-no64.patch new file mode 100644 index 0000000..ff95f96 --- /dev/null +++ b/repo/fakeroot/fakeroot-no64.patch @@ -0,0 +1,17 @@ +--- a/libfakeroot.c ++++ b/libfakeroot.c +@@ -81,12 +81,14 @@ + #define SEND_STAT64(a,b,c) send_stat64(a,b,c) + #define SEND_GET_STAT(a,b) send_get_stat(a,b) + #define SEND_GET_STAT64(a,b) send_get_stat64(a,b) ++#define SEND_GET_XATTR(a,b,c) send_get_xattr(a,b,c) + #define SEND_GET_XATTR64(a,b,c) send_get_xattr64(a,b,c) + #else + #define SEND_STAT(a,b,c) send_stat(a,b) + #define SEND_STAT64(a,b,c) send_stat64(a,b) + #define SEND_GET_STAT(a,b) send_get_stat(a) + #define SEND_GET_STAT64(a,b) send_get_stat64(a) ++#define SEND_GET_XATTR(a,b,c) send_get_xattr(a,b) + #define SEND_GET_XATTR64(a,b,c) send_get_xattr64(a,b) + #endif + diff --git a/repo/fakeroot/fakeroot-skip-ipc-sanity-check.patch b/repo/fakeroot/fakeroot-skip-ipc-sanity-check.patch new file mode 100644 index 0000000..9541973 --- /dev/null +++ b/repo/fakeroot/fakeroot-skip-ipc-sanity-check.patch @@ -0,0 +1,59 @@ +This patch was original added in aports commit +439b449b68ebf3462a3f659804c41195e2d8d8ae. It +seems to be needed since this sanity checks +fails spuriously when cros compiling fakeroot. + +diff -upr fakeroot-1.27.orig/configure.ac fakeroot-1.27/configure.ac +--- fakeroot-1.27.orig/configure.ac 2022-01-30 10:43:52.992260063 +0100 ++++ fakeroot-1.27/configure.ac 2022-01-30 10:46:22.989526929 +0100 +@@ -25,50 +25,6 @@ AC_CACHE_CHECK([which IPC method to use] + [ac_cv_use_ipc], + [ac_cv_use_ipc=sysv]) + +-if test $ac_cv_use_ipc = "sysv"; then +- AC_MSG_CHECKING([whether SysV IPC message queues are actually working on the host]) +- +- AC_LANG_PUSH(C) +- AC_RUN_IFELSE([AC_LANG_SOURCE([[ +-#include <stdlib.h> +-#include <sys/types.h> +-#include <sys/ipc.h> +-#include <sys/msg.h> +-#include <time.h> +-#include <unistd.h> +- +-int main() { +- +- srandom(time(NULL)+getpid()*33151); +- key_t msg_key = random(); +- int msg_get = msgget(msg_key, IPC_CREAT|0600); +- +- if (msg_get==-1) { +- return 1; +- } else { +- msgctl(msg_get, IPC_RMID, NULL); +- return 0; +- } +- +-}]])],[ac_cv_use_ipc=sysv],[ac_cv_use_ipc=tcp],[ac_cv_use_ipc=cross]) +- +- if test $ac_cv_use_ipc = cross; then +- if test "$host_os" = linux-gnu; then +- ac_cv_use_ipc=sysv +- AC_MSG_RESULT([cross, guessing yes]) +- else +- (set -o posix; set) +- AC_MSG_ERROR([cross compiling, unknown result for $host_os]) +- fi +- elif test $ac_cv_use_ipc = "tcp"; then +- AC_MSG_RESULT([No, using TCP]) +- else +- AC_MSG_RESULT([Yes]) +- fi +- +- AC_LANG_POP(C) +-fi +- + AC_ARG_WITH([dbformat], + AS_HELP_STRING([--with-dbformat@<:@=DBFORMAT@:>@], + [database format to use: either inode (default) or path]), diff --git a/repo/fakeroot/fakeroot-stdint.patch b/repo/fakeroot/fakeroot-stdint.patch new file mode 100644 index 0000000..bb4f67f --- /dev/null +++ b/repo/fakeroot/fakeroot-stdint.patch @@ -0,0 +1,34 @@ +--- fakeroot-1.18.2.orig/faked.c ++++ fakeroot-1.18.2/faked.c +@@ -514,11 +514,11 @@ + + #ifdef FAKEROOT_DB_PATH + if (find_path(i->buf.dev, i->buf.ino, roots, path)) +- fprintf(f,"mode=%llo,uid=%llu,gid=%llu,nlink=%llu,rdev=%llu %s\n", ++ fprintf(f,"mode=%"PRIo64",uid=%"PRIu64",gid=%"PRIu64",nlink=%"PRIu64",rdev=%"PRIu64" %s\n", + (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", ++ fprintf(f,"dev=%"PRIx64",ino=%"PRIu64",mode=%"PRIo64",uid=%"PRIu64",gid=%"PRIu64",nlink=%"PRIu64",rdev=%"PRIu64"\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); +@@ -544,7 +544,7 @@ + + while(1){ + #ifdef FAKEROOT_DB_PATH +- r=scanf("mode=%llo,uid=%llu,gid=%llu,nlink=%llu,rdev=%llu "DB_PATH_SCAN"\n", ++ r=scanf("mode=%"PRIo64",uid=%"PRIu64",gid=%"PRIu64",nlink=%"PRIu64",rdev=%"PRIu64" "DB_PATH_SCAN"\n", + &stmode, &stuid, &stgid, &stnlink, &strdev, &path); + if (r != 6) + break; +@@ -559,7 +559,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; diff --git a/repo/fakeroot/fakeroot.xibuild b/repo/fakeroot/fakeroot.xibuild new file mode 100644 index 0000000..46971af --- /dev/null +++ b/repo/fakeroot/fakeroot.xibuild @@ -0,0 +1,48 @@ +#!/bin/sh + +NAME="fakeroot" +DESC="Gives a fake root environment, useful for building packages as a non-privileged user" + +MAKEDEPS=" libtool autoconf automake po4a libcap acl linux-headers" + +PKG_VER=1.29 +SOURCE="https://deb.debian.org/debian/pool/main/f/fakeroot/fakeroot_$PKG_VER.orig.tar.gz" + +ADDITIONAL=" +do-not-redefine-id_t.patch +fakeroot-no64.patch +fakeroot-skip-ipc-sanity-check.patch +fakeroot-stdint.patch +fix-format.patch +fix-shell-in-fakeroot.patch +xstatjunk.patch +" + +prepare () { + apply_patches +} + +build() { + if [ "$CLIBC" = "musl" ]; then + # musl does not have _STAT_VER, it's really not used for + # anything, so define it as zero (just like uclibc does) + export CFLAGS="-D_STAT_VER=0 $CFLAGS" + fi + + CONFIG_SHELL=/bin/sh ./bootstrap + CONFIG_SHELL=/bin/sh ./configure \ + + + --prefix=/usr \ + --disable-static + + make + cd doc + #po4a -k 0 --rm-backups --variable "srcdir=../doc/" po4a/po4a.cfg +} + +package() { + cd .. + make DESTDIR="$PKG_DEST" install +} + diff --git a/repo/fakeroot/fix-format.patch b/repo/fakeroot/fix-format.patch new file mode 100644 index 0000000..8f86396 --- /dev/null +++ b/repo/fakeroot/fix-format.patch @@ -0,0 +1,25 @@ +Fakeroot defines custom fake_dev_t/fake_ino_t as uint64_t +but doesn't use the PRIu64 format specifier from inttypes.h +to print them thereby relying on a specific representation +of these types. + +diff -upr fakeroot-1.27.orig/faked.c fakeroot-1.27/faked.c +--- fakeroot-1.27.orig/faked.c 2022-01-17 21:37:21.000000000 +0100 ++++ fakeroot-1.27/faked.c 2022-01-30 11:36:59.963019225 +0100 +@@ -121,6 +121,7 @@ + #include <stdlib.h> + #include <string.h> + #include <signal.h> ++#include <inttypes.h> + #ifdef HAVE_STDINT_H + # include <stdint.h> + #endif +@@ -687,7 +688,7 @@ 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":%"PRIu64"), mode=0%lo, own=(%li,%li), nlink=%li, rdev=%"PRIu64"\n", + st->dev, + st->ino, + (long)st->mode, diff --git a/repo/fakeroot/fix-shell-in-fakeroot.patch b/repo/fakeroot/fix-shell-in-fakeroot.patch new file mode 100644 index 0000000..ce5d23f --- /dev/null +++ b/repo/fakeroot/fix-shell-in-fakeroot.patch @@ -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. diff --git a/repo/fakeroot/xstatjunk.patch b/repo/fakeroot/xstatjunk.patch new file mode 100644 index 0000000..12f2759 --- /dev/null +++ b/repo/fakeroot/xstatjunk.patch @@ -0,0 +1,11 @@ +--- fakeroot-1.18.4.orig/configure.ac 2012-06-02 18:23:41.000000000 +0000 ++++ fakeroot-1.18.4configure.ac 2015-09-24 23:15:56.917470073 +0000 +@@ -301,7 +301,7 @@ + FUNC=`echo $SEARCH|sed -e 's/.*%//'` + PRE=`echo $SEARCH|sed -e 's/%.*//'` + FOUND= +- for WRAPPED in __${PRE}x${FUNC} _${PRE}x${FUNC} __${PRE}${FUNC}13 ${PRE}${FUNC}; do ++ for WRAPPED in ${PRE}${FUNC}; do + AC_CHECK_FUNCS($WRAPPED,FOUND=$WRAPPED) + dnl + dnl to unconditionally define only the _* functions, comment out the 2 lines above, |