diff options
Diffstat (limited to 'sys-apps/fakechroot')
-rw-r--r-- | sys-apps/fakechroot/Manifest | 3 | ||||
-rw-r--r-- | sys-apps/fakechroot/fakechroot-2.20.1.ebuild | 23 | ||||
-rw-r--r-- | sys-apps/fakechroot/files/fakechroot-2.20.1-glibc-2.33.patch | 469 |
3 files changed, 0 insertions, 495 deletions
diff --git a/sys-apps/fakechroot/Manifest b/sys-apps/fakechroot/Manifest index 39f6f671666c..9baab735688b 100644 --- a/sys-apps/fakechroot/Manifest +++ b/sys-apps/fakechroot/Manifest @@ -1,7 +1,4 @@ -AUX fakechroot-2.20.1-glibc-2.33.patch 13065 BLAKE2B 3ed7c151bd07c323c3bf0e6eb925d6964dcf18fbb92c17cee3537ec0c707ce727e624a17335ad60fa74f06c86a41abd011f3c0f1f1fa50a2f58b4c35cd1bfdd7 SHA512 8cddb31f70d819ffe1058f5f764d12634b5bf290379f709e6d3a08796b7c8ba2a97157a19b7fe9c886f65f495a7e42ca84fa3f9651d3692df11b0f69e9588be0 -DIST fakechroot-2.20.1.tar.gz 504343 BLAKE2B 73459895319c1fd6297ab455e0d15f4b9985f433d958598d8581a35268e4df0f631b39d026061fe5c00ec6b805f3bf4f5f261039b93176db460b6f936c0de1b8 SHA512 9ddc715ff5c550b700c2384284c9f0cf6c2a99353a06d8e4c3b8363f4affdf9a11757ed5d1c9b85c83499b3bec054544290508a20f2ee16d46e66dc824a924ed DIST fakechroot_2.20.1+ds-2.debian.tar.xz 16120 BLAKE2B f4fe6943ca8e0f2bc68cc9d97af1195c34b8700b37838ced773e1452352d46806ebd31dbd6439121fa625ce74148d749e5064fe347ea5b1fa2e41c4e1b1a9867 SHA512 060448526eb7ac89b53984c582bcfffb641abdf4e7696e0033610343039012e6d459fb6682b4c1caa12bfcb91d515dfc4123ff3f1be3468d9db1a58ab9a8b415 DIST fakechroot_2.20.1+ds.orig.tar.xz 88680 BLAKE2B 5e119eb6d7acee1f45bfc267e15b228624bbc5e29ebb19bcb61c4684719df4ce751c315423c27bceb0e2f97bcd491daa16d76f6b964842dcaddb90761dca092e SHA512 c61960b4fb03e65d7678511ae01a6f977d7f5584e81ee15a283f98da102dfc85d923265936443c7e9e208b62bb2147e8ae21a0ac62acf5bd8432775a4f6e723e -EBUILD fakechroot-2.20.1.ebuild 592 BLAKE2B 3e2f4b9323b3ed118c5449cbc16fbe894e03f92640ea4a548d45d65a387ba16f509275a925d326ae219c8a446159f80c92e64a9daa4e8bca3f8bd83b566bcf83 SHA512 fc41327b742410adb4baafc2d45399b3ed36f17660ea6c6b15fd0c50c5dedf32a670eb65ca12fa1184344c53f0924a20f9f6dfbd9f7ecfbc4a6ac4f43cfb2a96 EBUILD fakechroot-2.20.1_p2.ebuild 1082 BLAKE2B 3b554369f6da72c86f034eece546b3f002c3a08ee9b75eed05fbb8899e1c27890ebf4f042b726b37325526d61055707d806633e7df661920eeaca9637d8ca3f2 SHA512 17bf483f2059c2b2e3a0e7710fb0aca0897f9b96573b993f509668eb096af590e9222dd79b3b1a1fbc1b27ea57bca8a2820d63b2ba8e246be6000b81704363ef MISC metadata.xml 250 BLAKE2B 439cdb685dbeb4302786aefff7c6285f3fe97a6b1dd5dc66d2ff8b8e640c67b7db0ad3935428e819422598f3baf2a6795435bf0ba157ee49f427424c4346ebf7 SHA512 77c38fd1709e879ba98cf21c705aa95a31e7a9068a64105e7c9bec80efda5ee0ca7ee486346ace48849deda2e54a693f248b7eaa0d97f78da31797b8a7fc6b6c diff --git a/sys-apps/fakechroot/fakechroot-2.20.1.ebuild b/sys-apps/fakechroot/fakechroot-2.20.1.ebuild deleted file mode 100644 index 9b303ca2be1b..000000000000 --- a/sys-apps/fakechroot/fakechroot-2.20.1.ebuild +++ /dev/null @@ -1,23 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DESCRIPTION="Provide a faked chroot environment without requiring root privileges" -HOMEPAGE="https://github.com/dex4er/fakechroot" -SRC_URI="https://github.com/dex4er/${PN}/releases/download/${PV}/${P}.tar.gz" - -LICENSE="LGPL-2.1" -SLOT="0" -KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" - -RESTRICT="test" - -PATCHES=( - "${FILESDIR}/fakechroot-2.20.1-glibc-2.33.patch" -) - -src_install() { - default - find "${ED}" -name '*.la' -exec rm -f '{}' + -} diff --git a/sys-apps/fakechroot/files/fakechroot-2.20.1-glibc-2.33.patch b/sys-apps/fakechroot/files/fakechroot-2.20.1-glibc-2.33.patch deleted file mode 100644 index 31c2dd784393..000000000000 --- a/sys-apps/fakechroot/files/fakechroot-2.20.1-glibc-2.33.patch +++ /dev/null @@ -1,469 +0,0 @@ -From 534e6d555736b97211523970d378dfb0db2608e9 Mon Sep 17 00:00:00 2001 -From: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com> -Date: Mon, 22 Feb 2021 21:44:07 -0800 -Subject: [PATCH 1/6] tmpnam.c: fix heap overflow - -Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com> ---- - src/tmpnam.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/tmpnam.c b/src/tmpnam.c -index ce60817..917ee6b 100644 ---- a/src/tmpnam.c -+++ b/src/tmpnam.c -@@ -42,7 +42,7 @@ wrapper(tmpnam, char *, (char * s)) - - expand_chroot_path(ptr); - -- ptr2 = malloc(strlen(ptr)); -+ ptr2 = malloc(strlen(ptr) + 1); - if (ptr2 == NULL) return NULL; - - strcpy(ptr2, ptr); - -From 75d7e6fa191c11a791faff06a0de86eaa7801d05 Mon Sep 17 00:00:00 2001 -From: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com> -Date: Mon, 22 Feb 2021 21:46:36 -0800 -Subject: [PATCH 2/6] declare missing bufs, remove ver from lstat - -Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com> ---- - src/lstat.c | 8 +++++--- - src/lstat.h | 2 +- - src/mknod.c | 2 ++ - src/stat.c | 2 ++ - src/stat64.c | 2 ++ - 5 files changed, 12 insertions(+), 4 deletions(-) - -diff --git a/src/lstat.c b/src/lstat.c -index 3f6d819..54e3263 100644 ---- a/src/lstat.c -+++ b/src/lstat.c -@@ -28,9 +28,11 @@ - #include "lstat.h" - - --wrapper(lstat, int, (int ver, const char * filename, struct stat * buf)) -+wrapper(lstat, int, (const char * filename, struct stat * buf)) - { -- debug("lstat(%d, \"%s\", &buf)", ver, filename); -+ char fakechroot_abspath[FAKECHROOT_PATH_MAX]; -+ char fakechroot_buf[FAKECHROOT_PATH_MAX]; -+ debug("lstat(\"%s\", &buf)", filename); - - if (!fakechroot_localdir(filename)) { - if (filename != NULL) { -@@ -40,7 +42,7 @@ wrapper(lstat, int, (int ver, const char * filename, struct stat * buf)) - } - } - -- return lstat_rel(ver, filename, buf); -+ return lstat_rel(filename, buf); - } - - -diff --git a/src/lstat.h b/src/lstat.h -index 751c1ea..ee48303 100644 ---- a/src/lstat.h -+++ b/src/lstat.h -@@ -26,7 +26,7 @@ - - #ifndef HAVE___LXSTAT - --wrapper_proto(lstat, int, (int, const char *, struct stat *)); -+wrapper_proto(lstat, int, (const char *, struct stat *)); - - int lstat_rel(const char *, struct stat *); - -diff --git a/src/mknod.c b/src/mknod.c -index 52fd33b..2771037 100644 ---- a/src/mknod.c -+++ b/src/mknod.c -@@ -28,6 +28,8 @@ - - wrapper(mknod, int, (const char * pathname, mode_t mode, dev_t dev)) - { -+ char fakechroot_abspath[FAKECHROOT_PATH_MAX]; -+ char fakechroot_buf[FAKECHROOT_PATH_MAX]; - debug("mknod(\"%s\", 0%o, %ld)", pathname, mode, dev); - expand_chroot_path(pathname); - return nextcall(mknod)(pathname, mode, dev); -diff --git a/src/stat.c b/src/stat.c -index 7845662..7b37793 100644 ---- a/src/stat.c -+++ b/src/stat.c -@@ -33,6 +33,8 @@ - - wrapper(stat, int, (const char * file_name, struct stat * buf)) - { -+ char fakechroot_abspath[FAKECHROOT_PATH_MAX]; -+ char fakechroot_buf[FAKECHROOT_PATH_MAX]; - debug("stat(\"%s\", &buf)", file_name); - expand_chroot_path(file_name); - return nextcall(stat)(file_name, buf); -diff --git a/src/stat64.c b/src/stat64.c -index aac9c75..a360f66 100644 ---- a/src/stat64.c -+++ b/src/stat64.c -@@ -34,6 +34,8 @@ - - wrapper(stat64, int, (const char * file_name, struct stat64 * buf)) - { -+ char fakechroot_abspath[FAKECHROOT_PATH_MAX]; -+ char fakechroot_buf[FAKECHROOT_PATH_MAX]; - debug("stat64(\"%s\", &buf)", file_name); - expand_chroot_path(file_name); - return nextcall(stat64)(file_name, buf); - -From 693a3597ea7fccfb62f357503ff177bd3e3d5a89 Mon Sep 17 00:00:00 2001 -From: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com> -Date: Mon, 22 Feb 2021 21:47:09 -0800 -Subject: [PATCH 3/6] fix glibc 2.33+ compatibility - -Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com> ---- - configure.ac | 20 ++++++++++++++++++++ - src/ftw.c | 2 +- - src/ftw64.c | 14 +++++++++++--- - src/libfakechroot.h | 15 +++++++++++++++ - src/lstat.c | 2 +- - src/lstat.h | 2 +- - src/lstat64.c | 2 +- - src/mknod.c | 2 +- - src/mknodat.c | 2 +- - src/stat.c | 2 +- - src/stat64.c | 2 +- - 11 files changed, 54 insertions(+), 11 deletions(-) - -diff --git a/configure.ac b/configure.ac -index f8cdb32..9cc2e77 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -75,6 +75,26 @@ ACX_CHECK_C_ATTRIBUTE_VISIBILITY - # Checks for libraries. - AC_CHECK_LIB([dl], [dlsym]) - -+AH_TEMPLATE([NEW_GLIBC], [glibc >= 2.33]) -+AC_MSG_CHECKING([for glibc 2.33+]) -+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ -+ #include <sys/stat.h> -+ ]], [[ -+#ifdef __GLIBC__ -+#if !__GLIBC_PREREQ(2,33) -+#error glibc<2.33 -+#endif -+#else -+#error not glibc -+#endif -+ ]])],[ -+ AC_DEFINE(NEW_GLIBC,1) -+ AC_MSG_RESULT([yes]) -+ ],[ -+ AC_DEFINE(NEW_GLIBC,0) -+ AC_MSG_RESULT([no]) -+ ]) -+ - # Checks for header files. - AC_HEADER_DIRENT - AC_HEADER_STDC -diff --git a/src/ftw.c b/src/ftw.c -index 92fc126..a9abc85 100644 ---- a/src/ftw.c -+++ b/src/ftw.c -@@ -185,7 +185,7 @@ int rpl_lstat (const char *, struct stat *); - # define NFTW_NEW_NAME __new_nftw - # define INO_T ino_t - # define STAT stat --# ifdef _LIBC -+# if defined(_LIBC) && !NEW_GLIBC - # define LXSTAT __lxstat - # define XSTAT __xstat - # define FXSTATAT __fxstatat -diff --git a/src/ftw64.c b/src/ftw64.c -index 7cc8cdf..cee1f2b 100644 ---- a/src/ftw64.c -+++ b/src/ftw64.c -@@ -18,6 +18,8 @@ - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -+#include "config.h" -+ - #define __FTW64_C - #define FTW_NAME ftw64 - #define NFTW_NAME nftw64 -@@ -25,9 +27,15 @@ - #define NFTW_NEW_NAME __new_nftw64 - #define INO_T ino64_t - #define STAT stat64 --#define LXSTAT __lxstat64 --#define XSTAT __xstat64 --#define FXSTATAT __fxstatat64 -+#if NEW_GLIBC -+# define LXSTAT(V,f,sb) lstat64 (f,sb) -+# define XSTAT(V,f,sb) stat64 (f,sb) -+# define FXSTATAT(V,d,f,sb,m) fstatat64 (d, f, sb, m) -+#else -+# define LXSTAT __lxstat64 -+# define XSTAT __xstat64 -+# define FXSTATAT __fxstatat64 -+#endif - #define FTW_FUNC_T __ftw64_func_t - #define NFTW_FUNC_T __nftw64_func_t - -diff --git a/src/libfakechroot.h b/src/libfakechroot.h -index 4cf199f..64ff15f 100644 ---- a/src/libfakechroot.h -+++ b/src/libfakechroot.h -@@ -200,6 +200,21 @@ - # endif - #endif - -+#ifndef _STAT_VER -+ #if defined (__aarch64__) -+ #define _STAT_VER 0 -+ #elif defined (__powerpc__) && __WORDSIZE == 64 -+ #define _STAT_VER 1 -+ #elif defined (__riscv) && __riscv_xlen==64 -+ #define _STAT_VER 0 -+ #elif defined (__s390x__) -+ #define _STAT_VER 1 -+ #elif defined (__x86_64__) -+ #define _STAT_VER 1 -+ #else -+ #define _STAT_VER 3 -+ #endif -+#endif - - typedef void (*fakechroot_wrapperfn_t)(void); - -diff --git a/src/lstat.c b/src/lstat.c -index 54e3263..fa38323 100644 ---- a/src/lstat.c -+++ b/src/lstat.c -@@ -20,7 +20,7 @@ - - #include <config.h> - --#ifndef HAVE___LXSTAT -+#if !defined(HAVE___LXSTAT) || NEW_GLIBC - - #include <sys/stat.h> - #include <unistd.h> -diff --git a/src/lstat.h b/src/lstat.h -index ee48303..c46a2b9 100644 ---- a/src/lstat.h -+++ b/src/lstat.h -@@ -24,7 +24,7 @@ - #include <config.h> - #include "libfakechroot.h" - --#ifndef HAVE___LXSTAT -+#if !defined(HAVE___LXSTAT) || NEW_GLIBC - - wrapper_proto(lstat, int, (const char *, struct stat *)); - -diff --git a/src/lstat64.c b/src/lstat64.c -index b6212fc..a332d7c 100644 ---- a/src/lstat64.c -+++ b/src/lstat64.c -@@ -20,7 +20,7 @@ - - #include <config.h> - --#if defined(HAVE_LSTAT64) && !defined(HAVE___LXSTAT64) -+#if defined(HAVE_LSTAT64) && (!defined(HAVE___LXSTAT64) || NEW_GLIBC) - - #define _LARGEFILE64_SOURCE - #define _BSD_SOURCE -diff --git a/src/mknod.c b/src/mknod.c -index 2771037..aeb750b 100644 ---- a/src/mknod.c -+++ b/src/mknod.c -@@ -20,7 +20,7 @@ - - #include <config.h> - --#ifndef HAVE___XMKNOD -+#if !defined(HAVE___XMKNOD) || NEW_GLIBC - - #include <sys/stat.h> - #include "libfakechroot.h" -diff --git a/src/mknodat.c b/src/mknodat.c -index 732a22b..3239b35 100644 ---- a/src/mknodat.c -+++ b/src/mknodat.c -@@ -20,7 +20,7 @@ - - #include <config.h> - --#if defined(HAVE_MKNODAT) && !defined(HAVE___XMKNODAT) -+#if defined(HAVE_MKNODAT) && (!defined(HAVE___XMKNODAT) || NEW_GLIBC) - - #define _ATFILE_SOURCE - #include <sys/stat.h> -diff --git a/src/stat.c b/src/stat.c -index 7b37793..5ef57ba 100644 ---- a/src/stat.c -+++ b/src/stat.c -@@ -20,7 +20,7 @@ - - #include <config.h> - --#ifndef HAVE___XSTAT -+#if !defined(HAVE___XSTAT) || NEW_GLIBC - - #define _BSD_SOURCE - #define _DEFAULT_SOURCE -diff --git a/src/stat64.c b/src/stat64.c -index a360f66..993ce80 100644 ---- a/src/stat64.c -+++ b/src/stat64.c -@@ -20,7 +20,7 @@ - - #include <config.h> - --#if defined(HAVE_STAT64) && !defined(HAVE___XSTAT64) -+#if defined(HAVE_STAT64) && (!defined(HAVE___XSTAT64) || NEW_GLIBC) - - #define _BSD_SOURCE - #define _LARGEFILE64_SOURCE - -From e7c1f3a446e594a4d0cce5f5d499c9439ce1d5c5 Mon Sep 17 00:00:00 2001 -From: neok-m4700 <neok-m4700@users.noreply.github.com> -Date: Wed, 24 Feb 2021 17:36:57 +0100 -Subject: [PATCH 6/6] wrap fstatat and fstatat64 - ---- - configure.ac | 2 ++ - src/Makefile.am | 2 ++ - src/fstatat.c | 42 ++++++++++++++++++++++++++++++++++++++++++ - src/fstatat64.c | 43 +++++++++++++++++++++++++++++++++++++++++++ - 4 files changed, 89 insertions(+) - create mode 100644 src/fstatat.c - create mode 100644 src/fstatat64.c - -diff --git a/configure.ac b/configure.ac -index 9cc2e77..5b3053e 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -218,6 +218,8 @@ AC_CHECK_FUNCS(m4_normalize([ - freopen64 - fstat - fstat64 -+ fstatat -+ fstatat64 - fts_children - fts_open - fts_read -diff --git a/src/Makefile.am b/src/Makefile.am -index 6066345..eb311c0 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -61,6 +61,8 @@ libfakechroot_la_SOURCES = \ - fopen64.c \ - freopen.c \ - freopen64.c \ -+ fstatat.c \ -+ fstatat64.c \ - fts.c \ - fts64.c \ - ftw.c \ -diff --git a/src/fstatat.c b/src/fstatat.c -new file mode 100644 -index 0000000..ca7578b ---- /dev/null -+++ b/src/fstatat.c -@@ -0,0 +1,42 @@ -+/* -+ libfakechroot -- fake chroot environment -+ Copyright (c) 2010, 2021 Piotr Roszatycki <dexter@debian.org> -+ -+ This library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ This library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with this library; if not, write to the Free Software -+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -+*/ -+ -+ -+#include <config.h> -+ -+#ifdef HAVE_FSTATAT -+ -+#define _ATFILE_SOURCE -+#define _POSIX_C_SOURCE 200809L -+#include <sys/stat.h> -+#include <limits.h> -+#include "libfakechroot.h" -+ -+wrapper(fstatat, int, (int dirfd, const char *pathname, struct stat *buf, int flags)) -+{ -+ char fakechroot_abspath[FAKECHROOT_PATH_MAX]; -+ char fakechroot_buf[FAKECHROOT_PATH_MAX]; -+ debug("fstatat(%d, \"%s\", &buf, %d)", dirfd, pathname, flags); -+ expand_chroot_path_at(dirfd, pathname); -+ return nextcall(fstatat)(dirfd, pathname, buf, flags); -+} -+ -+#else -+typedef int empty_translation_unit; -+#endif -diff --git a/src/fstatat64.c b/src/fstatat64.c -new file mode 100644 -index 0000000..1863372 ---- /dev/null -+++ b/src/fstatat64.c -@@ -0,0 +1,43 @@ -+/* -+ libfakechroot -- fake chroot environment -+ Copyright (c) 2010, 2021 Piotr Roszatycki <dexter@debian.org> -+ -+ This library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ This library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with this library; if not, write to the Free Software -+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -+*/ -+ -+ -+#include <config.h> -+ -+#ifdef HAVE_FSTATAT64 -+ -+#define _ATFILE_SOURCE -+#define _POSIX_C_SOURCE 200809L -+#define _LARGEFILE64_SOURCE -+#include <sys/stat.h> -+#include <limits.h> -+#include "libfakechroot.h" -+ -+wrapper(fstatat64, int, (int dirfd, const char *pathname, struct stat64 *buf, int flags)) -+{ -+ char fakechroot_abspath[FAKECHROOT_PATH_MAX]; -+ char fakechroot_buf[FAKECHROOT_PATH_MAX]; -+ debug("fstatat64(%d, \"%s\", &buf, %d)", dirfd, pathname, flags); -+ expand_chroot_path_at(dirfd, pathname); -+ return nextcall(fstatat64)(dirfd, pathname, buf, flags); -+} -+ -+#else -+typedef int empty_translation_unit; -+#endif |