summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Januszewski <spock@gentoo.org>2008-06-10 22:42:10 +0000
committerMichael Januszewski <spock@gentoo.org>2008-06-10 22:42:10 +0000
commita6b78ef0493a5fd6de58b13f6fcdf7820223fabf (patch)
tree7eacc8ade6c0dfe80ca4ddc6967e45e198934948 /sys-apps
parentAdd kdebase-3.5.9-r4.ebuild, fixes glibc-2.8 compatibility bug #225727 and br... (diff)
downloadgentoo-2-a6b78ef0493a5fd6de58b13f6fcdf7820223fabf.tar.gz
gentoo-2-a6b78ef0493a5fd6de58b13f6fcdf7820223fabf.tar.bz2
gentoo-2-a6b78ef0493a5fd6de58b13f6fcdf7820223fabf.zip
Initial commit.
(Portage version: 2.1.5.4)
Diffstat (limited to 'sys-apps')
-rw-r--r--sys-apps/fakechroot/ChangeLog10
-rw-r--r--sys-apps/fakechroot/Manifest5
-rw-r--r--sys-apps/fakechroot/fakechroot-2.6.ebuild28
-rw-r--r--sys-apps/fakechroot/files/fakechroot-2.6.patch206
-rw-r--r--sys-apps/fakechroot/metadata.xml10
5 files changed, 259 insertions, 0 deletions
diff --git a/sys-apps/fakechroot/ChangeLog b/sys-apps/fakechroot/ChangeLog
new file mode 100644
index 000000000000..129697339b09
--- /dev/null
+++ b/sys-apps/fakechroot/ChangeLog
@@ -0,0 +1,10 @@
+# ChangeLog for sys-apps/fakechroot
+# Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/fakechroot/ChangeLog,v 1.1 2008/06/10 22:42:10 spock Exp $
+
+*fakechroot-2.6 (10 Jun 2008)
+
+ 10 Jun 2008; Michał Januszewski <spock@gentoo.org>
+ +files/fakechroot-2.6.patch, +metadata.xml, +fakechroot-2.6.ebuild:
+ Initial commit.
+
diff --git a/sys-apps/fakechroot/Manifest b/sys-apps/fakechroot/Manifest
new file mode 100644
index 000000000000..697bab964990
--- /dev/null
+++ b/sys-apps/fakechroot/Manifest
@@ -0,0 +1,5 @@
+AUX fakechroot-2.6.patch 8286 RMD160 d971cab9908bde150226ffca9a1fe1b08cd28799 SHA1 ecc8b65fa1300e672e7b76232da1d2551b57137a SHA256 b1eee3091426e2d06637083f333c21f4fc08e8579771893d3d11e9e7cc651462
+DIST fakechroot_2.6.orig.tar.gz 445712 RMD160 7b4d997b02a3ae9ba27a570ca45ab4768c112f12 SHA1 00e0ba26f127d1fb004093361202845cc230e85f SHA256 2bc10cd8ad2bb9da611af93cc21c9295d820880ae49f70b6d96bc3a2555faaaf
+EBUILD fakechroot-2.6.ebuild 669 RMD160 73d50b4283f8799c6a572f4324d33d504bfc06bf SHA1 7c8a1d50ea6b8e32d059950049f9ca88f6233979 SHA256 a750e1636eb88d2b3accbf77319bfa847953c4e123360b7d0cdae5f602f47084
+MISC ChangeLog 294 RMD160 f4bd46f287b23e1d6aec13385668a73c5d10ee84 SHA1 fe0b4bc0ad619dc1db96805bd5753a9456070fe8 SHA256 33bebe1cdc4b4571b20985ecf8badb0f0bbc00019b7bd69459f06c8a5a3a1dc3
+MISC metadata.xml 260 RMD160 7c8f2391a156380ab813494ac3d3db92386fc03b SHA1 631f6ea758b913f6dabd59b83bc8a5f053274f50 SHA256 4e471cd253b0e2e3c1900f0dd3383623080ca9ad9b6e116dd88bac46224681ac
diff --git a/sys-apps/fakechroot/fakechroot-2.6.ebuild b/sys-apps/fakechroot/fakechroot-2.6.ebuild
new file mode 100644
index 000000000000..81bd1a2cc530
--- /dev/null
+++ b/sys-apps/fakechroot/fakechroot-2.6.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/fakechroot/fakechroot-2.6.ebuild,v 1.1 2008/06/10 22:42:10 spock Exp $
+
+inherit eutils
+
+DESCRIPTION="Provide a faked chroot environment without requiring root privileges"
+HOMEPAGE="http://fakechroot.alioth.debian.org/"
+SRC_URI="mirror://debian/pool/main/f/fakechroot/${PF/-/_}.orig.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND=""
+DEPEND=""
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+ epatch "${FILESDIR}"/${P}.patch
+}
+
+src_install() {
+ emake DESTDIR="${D}" install || die
+ dodoc README THANKS
+}
diff --git a/sys-apps/fakechroot/files/fakechroot-2.6.patch b/sys-apps/fakechroot/files/fakechroot-2.6.patch
new file mode 100644
index 000000000000..87936921a6a5
--- /dev/null
+++ b/sys-apps/fakechroot/files/fakechroot-2.6.patch
@@ -0,0 +1,206 @@
+diff -Naurp fakechroot-2.6-orig/src/libfakechroot.c fakechroot-2.6/src/libfakechroot.c
+--- fakechroot-2.6-orig/src/libfakechroot.c 2008-06-11 00:19:33.000000000 +0200
++++ fakechroot-2.6/src/libfakechroot.c 2008-06-11 00:21:08.000000000 +0200
+@@ -321,7 +321,9 @@ static char * (*next_canonicalize_file_
+ #endif
+ static int (*next_chdir) (const char *path) = NULL;
+ static int (*next_chmod) (const char *path, mode_t mode) = NULL;
++static int (*next_fchmodat) (int dfd, const char *path, mode_t mode, int flag) = NULL;
+ static int (*next_chown) (const char *path, uid_t owner, gid_t group) = NULL;
++static int (*next_fchownat) (int dfd, const char *path, uid_t owner, gid_t group, int flag) = NULL;
+ /* static int (*next_chroot) (const char *path) = NULL; */
+ static int (*next_creat) (const char *pathname, mode_t mode) = NULL;
+ static int (*next_creat64) (const char *pathname, mode_t mode) = NULL;
+@@ -422,12 +424,14 @@ static int (*next_nftw) (const char
+ static int (*next_nftw64) (const char *dir, int (*fn)(const char *file, const struct stat64 *sb, int flag, struct FTW *s), int nopenfd, int flags) = NULL;
+ #endif
+ static int (*next_open) (const char *pathname, int flags, ...) = NULL;
++static int (*next_openat) (int dfd, const char *pathname, int flags, ...) = NULL;
+ static int (*next_open64) (const char *pathname, int flags, ...) = NULL;
++static int (*next_openat64) (int dfd, const char *pathname, int flags, ...) = NULL;
+ #if !defined(HAVE___OPENDIR2)
+ static DIR * (*next_opendir) (const char *name) = NULL;
+ #endif
+ static long (*next_pathconf) (const char *path, int name) = NULL;
+-static int (*next_readlink) (const char *path, char *buf, READLINK_TYPE_ARG3) = NULL;
++static ssize_t (*next_readlink) (const char *path, char *buf, READLINK_TYPE_ARG3) = NULL;
+ static char * (*next_realpath) (const char *name, char *resolved) = NULL;
+ static int (*next_remove) (const char *pathname) = NULL;
+ #ifdef HAVE_REMOVEXATTR
+@@ -463,6 +467,9 @@ static int (*next_truncate) (const c
+ static int (*next_truncate64) (const char *path, off64_t length) = NULL;
+ #endif
+ static int (*next_unlink) (const char *pathname) = NULL;
++static int (*next_unlinkat) (int dirfd, const char *pathname, int flags) = NULL;
++static int (*next___fxstatat) (int ver, int dirfd, const char *pathname, struct stat *buf, int flags) = NULL;
++static int (*next___fxstatat64) (int ver, int dirfd, const char *pathname, struct stat64 *buf, int flags) = NULL;
+ #ifdef HAVE_ULCKPWDF
+ /* static int (*next_ulckpwdf) (void) = NULL; */
+ #endif
+@@ -536,7 +543,9 @@ void fakechroot_init (void)
+ #endif
+ nextsym(chdir, "chdir");
+ nextsym(chmod, "chmod");
++ nextsym(fchmodat, "fchmodat");
+ nextsym(chown, "chown");
++ nextsym(fchownat, "fchownat");
+ /* nextsym(chroot, "chroot"); */
+ nextsym(creat, "creat");
+ nextsym(creat64, "creat64");
+@@ -637,7 +646,9 @@ void fakechroot_init (void)
+ nextsym(nftw64, "nftw64");
+ #endif
+ nextsym(open, "open");
++ nextsym(openat, "openat");
+ nextsym(open64, "open64");
++ nextsym(openat64, "openat64");
+ #if !defined(HAVE___OPENDIR2)
+ nextsym(opendir, "opendir");
+ #endif
+@@ -678,6 +689,9 @@ void fakechroot_init (void)
+ nextsym(truncate64, "truncate64");
+ #endif
+ nextsym(unlink, "unlink");
++ nextsym(unlinkat, "unlinkat");
++ nextsym(__fxstatat, "__fxstatat");
++ nextsym(__fxstatat64, "__fxstatat64");
+ #ifdef HAVE_ULCKPWDF
+ /* nextsym(ulckpwdf, "ulckpwdf"); */
+ #endif
+@@ -921,6 +935,13 @@ int chmod (const char *path, mode_t mode
+ if (next_chmod == NULL) fakechroot_init();
+ return next_chmod(path, mode);
+ }
++int fchmodat (int dfd, const char *path, mode_t mode, int flag)
++{
++ char *fakechroot_path, *fakechroot_ptr, fakechroot_buf[FAKECHROOT_MAXPATH];
++ expand_chroot_path(path, fakechroot_path, fakechroot_ptr, fakechroot_buf);
++ if (next_fchmodat == NULL) fakechroot_init();
++ return next_fchmodat(dfd, path, mode, flag);
++}
+
+
+ /* #include <sys/types.h> */
+@@ -933,6 +954,13 @@ int chown (const char *path, uid_t owner
+ return next_chown(path, owner, group);
+ }
+
++int fchownat (int dfd, const char *path, uid_t owner, gid_t group, int flag)
++{
++ char *fakechroot_path, *fakechroot_ptr, fakechroot_buf[FAKECHROOT_MAXPATH];
++ expand_chroot_path(path, fakechroot_path, fakechroot_ptr, fakechroot_buf);
++ if (next_fchownat == NULL) fakechroot_init();
++ return next_fchownat(dfd, path, owner, group, flag);
++}
+
+ /* #include <unistd.h> */
+ int chroot (const char *path)
+@@ -1921,6 +1949,21 @@ int open (const char *pathname, int flag
+ return next_open(pathname, flags, mode);
+ }
+
++int openat (int dfd, const char *pathname, int flags, ...) {
++ int mode = 0;
++ char *fakechroot_path, *fakechroot_ptr, fakechroot_buf[FAKECHROOT_MAXPATH];
++ expand_chroot_path(pathname, fakechroot_path, fakechroot_ptr, fakechroot_buf);
++
++ if (flags & O_CREAT) {
++ va_list arg;
++ va_start (arg, flags);
++ mode = va_arg (arg, int);
++ va_end (arg);
++ }
++
++ if (next_openat == NULL) fakechroot_init();
++ return next_openat(dfd, pathname, flags, mode);
++}
+
+ /* #include <sys/types.h> */
+ /* #include <sys/stat.h> */
+@@ -1942,6 +1985,22 @@ int open64 (const char *pathname, int fl
+ return next_open64(pathname, flags, mode);
+ }
+
++int openat64 (int dfd, const char *pathname, int flags, ...)
++{
++ int mode = 0;
++ char *fakechroot_path, *fakechroot_ptr, fakechroot_buf[FAKECHROOT_MAXPATH];
++ expand_chroot_path(pathname, fakechroot_path, fakechroot_ptr, fakechroot_buf);
++
++ if (flags & O_CREAT) {
++ va_list arg;
++ va_start (arg, flags);
++ mode = va_arg (arg, int);
++ va_end (arg);
++ }
++
++ if (next_openat64 == NULL) fakechroot_init();
++ return next_openat64(dfd, pathname, flags, mode);
++}
+
+ #if !defined(HAVE___OPENDIR2)
+ /* #include <sys/types.h> */
+@@ -1967,7 +2026,7 @@ long pathconf (const char *path, int nam
+
+
+ /* #include <unistd.h> */
+-int readlink (const char *path, char *buf, READLINK_TYPE_ARG3)
++ssize_t readlink (const char *path, char *buf, READLINK_TYPE_ARG3)
+ {
+ int status;
+ char tmp[FAKECHROOT_MAXPATH], *tmpptr;
+@@ -2222,6 +2281,31 @@ int unlink (const char *pathname)
+ return next_unlink(pathname);
+ }
+
++/* #include <fcntl.h> */
++int unlinkat (int dirfd, const char *pathname, int flags)
++{
++ char *fakechroot_path, *fakechroot_ptr, fakechroot_buf[FAKECHROOT_MAXPATH];
++ expand_chroot_path(pathname, fakechroot_path, fakechroot_ptr, fakechroot_buf);
++ if (next_unlinkat == NULL) fakechroot_init();
++ return next_unlinkat(dirfd, pathname, flags);
++}
++
++/* #include <fcntl.h> */
++/* #include <sys/stat.h> */
++int __fxstatat (int ver, int dirfd, const char *pathname, struct stat *buf, int flags)
++{
++ char *fakechroot_path, *fakechroot_ptr, fakechroot_buf[FAKECHROOT_MAXPATH];
++ expand_chroot_path(pathname, fakechroot_path, fakechroot_ptr, fakechroot_buf);
++ if (next___fxstatat == NULL) fakechroot_init();
++ return next___fxstatat(ver, dirfd, pathname, buf, flags);
++}
++int __fxstatat64 (int ver, int dirfd, const char *pathname, struct stat64 *buf, int flags)
++{
++ char *fakechroot_path, *fakechroot_ptr, fakechroot_buf[FAKECHROOT_MAXPATH];
++ expand_chroot_path(pathname, fakechroot_path, fakechroot_ptr, fakechroot_buf);
++ if (next___fxstatat64 == NULL) fakechroot_init();
++ return next___fxstatat64(ver, dirfd, pathname, buf, flags);
++}
+
+ /* #include <sys/types.h> */
+ /* #include <utime.h> */
+diff -Naurp fakechroot-2.6-orig/test/fakechroot.sh fakechroot-2.6/test/fakechroot.sh
+--- fakechroot-2.6-orig/test/fakechroot.sh 2008-06-11 00:19:33.000000000 +0200
++++ fakechroot-2.6/test/fakechroot.sh 2008-06-11 00:21:08.000000000 +0200
+@@ -30,8 +30,12 @@ for f in \
+ /bin/bash \
+ /bin/grep \
+ /bin/ls \
++ /bin/cp \
++ /bin/mkdir \
++ /bin/chmod \
+ /bin/pwd \
+ /bin/sh \
++ /bin/rm \
+ /usr/bin/id \
+ /usr/bin/find \
+ /usr/bin/perl \
+@@ -63,5 +67,5 @@ export LD_PRELOAD
+ if [ -n "$*" ]; then
+ HOME=/root /usr/sbin/chroot `pwd`/testtree "$@"
+ else
+- HOME=/root /usr/sbin/chroot `pwd`/testtree /bin/sh
++ HOME=/root /usr/sbin/chroot `pwd`/testtree /bin/bash
+ fi
diff --git a/sys-apps/fakechroot/metadata.xml b/sys-apps/fakechroot/metadata.xml
new file mode 100644
index 000000000000..2c3ddaaa0f8e
--- /dev/null
+++ b/sys-apps/fakechroot/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>no-herd</herd>
+ <maintainer>
+ <email>spock@gentoo.org</email>
+ <name>Michał Januszewski</name>
+ </maintainer>
+</pkgmetadata>
+