diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/coreos-dev/coreos-dev-0.1.0-r74.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/coreos-dev/coreos-dev-0.1.0-r73.ebuild similarity index 100% rename from sdk_container/src/third_party/coreos-overlay/coreos-base/coreos-dev/coreos-dev-0.1.0-r74.ebuild rename to sdk_container/src/third_party/coreos-overlay/coreos-base/coreos-dev/coreos-dev-0.1.0-r73.ebuild diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/coreos-dev/coreos-dev-0.1.0.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/coreos-dev/coreos-dev-0.1.0.ebuild index 890416784d..a179691f30 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/coreos-dev/coreos-dev-0.1.0.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/coreos-dev/coreos-dev-0.1.0.ebuild @@ -46,7 +46,9 @@ RDEPEND=" sys-apps/which sys-devel/gcc sys-devel/gdb + sys-fs/fuse sys-fs/lvm2 + sys-fs/sshfs-fuse sys-process/ktop sys-process/procps sys-process/psmisc diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/hard-host-depends/hard-host-depends-0.0.1-r173.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/hard-host-depends/hard-host-depends-0.0.1-r172.ebuild similarity index 100% rename from sdk_container/src/third_party/coreos-overlay/coreos-base/hard-host-depends/hard-host-depends-0.0.1-r173.ebuild rename to sdk_container/src/third_party/coreos-overlay/coreos-base/hard-host-depends/hard-host-depends-0.0.1-r172.ebuild diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/hard-host-depends/hard-host-depends-0.0.1.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/hard-host-depends/hard-host-depends-0.0.1.ebuild index f4c99d9003..3ebec684a2 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/hard-host-depends/hard-host-depends-0.0.1.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/hard-host-depends/hard-host-depends-0.0.1.ebuild @@ -83,6 +83,7 @@ RDEPEND="${RDEPEND} sys-apps/systemd !sys-apps/nih-dbus-tool =sys-devel/automake-1.10* + sys-fs/sshfs-fuse sys-libs/libnih sys-libs/nss-usrfiles sys-power/iasl @@ -120,6 +121,7 @@ RDEPEND="${RDEPEND} # Host dependencies that are needed to create and sign images # TODO: sys-apps/mosys RDEPEND="${RDEPEND} + sys-fs/libfat sys-fs/squashfs-tools " diff --git a/sdk_container/src/third_party/coreos-overlay/metadata/md5-cache/sys-fs/fuse-2.8.6-r3 b/sdk_container/src/third_party/coreos-overlay/metadata/md5-cache/sys-fs/fuse-2.8.6-r3 new file mode 100644 index 0000000000..0aa934a584 --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/metadata/md5-cache/sys-fs/fuse-2.8.6-r3 @@ -0,0 +1,12 @@ +DEFINED_PHASES=configure install prepare setup +DESCRIPTION=An interface for filesystems implemented in userspace. +EAPI=3 +HOMEPAGE=http://fuse.sourceforge.net +IUSE=kernel_linux kernel_FreeBSD +KEYWORDS=alpha amd64 arm hppa ia64 ppc ppc64 sparc x86 ~x86-fbsd +LICENSE=GPL-2 +PDEPEND=kernel_FreeBSD? ( sys-fs/fuse4bsd ) +SLOT=0 +SRC_URI=mirror://sourceforge/fuse/fuse-2.8.6.tar.gz +_eclasses_=eutils 6faef4c127028ccbba3a11400d24ae34 libtool 52d0e17251d04645ffaa61bfdd858944 linux-info 2b8c53f6065bdee2d757472215a3088f multilib 3bf24e6abb9b76d9f6c20600f0b716bf toolchain-funcs 0dfbfa13f57c6184f4728d12ac002aac versionator cd0bcdb170807e4a1984115e9d53a26f +_md5_=d183f42b5be02d89f014faa3c6a7c252 diff --git a/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/package.accept_keywords b/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/package.accept_keywords index 2c2a89a148..c420f27c1d 100644 --- a/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/package.accept_keywords +++ b/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/package.accept_keywords @@ -9,6 +9,7 @@ =dev-python/ws4py-0.2.4 ~amd64 =dev-embedded/smdk-dltool-0.20-r3 ~amd64 +=sys-fs/libfat-0.3a ~amd64 =dev-cpp/gflags-2.0 ~amd64 =sys-devel/smatch-1.57-r1 ~amd64 =dev-lang/closure-compiler-bin-20120305 ~amd64 diff --git a/sdk_container/src/third_party/coreos-overlay/sys-fs/fuse/Manifest b/sdk_container/src/third_party/coreos-overlay/sys-fs/fuse/Manifest new file mode 100644 index 0000000000..a4a5b81b6e --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/sys-fs/fuse/Manifest @@ -0,0 +1 @@ +DIST fuse-2.8.6.tar.gz 505334 RMD160 df66df0256a677c50f2fc94fef6f34b2d598386c SHA1 c2c0f9fff8bfee217da200888123e5abb5b498f2 SHA256 1ec1913e38f09b2a9ec1579e1800805b5e2c747d1dce515e316dbb665ca139d6 diff --git a/sdk_container/src/third_party/coreos-overlay/sys-fs/fuse/files/fuse-2.8.5-fix-lazy-binding.patch b/sdk_container/src/third_party/coreos-overlay/sys-fs/fuse/files/fuse-2.8.5-fix-lazy-binding.patch new file mode 100644 index 0000000000..a8e8e7576c --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/sys-fs/fuse/files/fuse-2.8.5-fix-lazy-binding.patch @@ -0,0 +1,11 @@ +diff -pur fuse-1.4.orig/util/Makefile.in fuse-1.4/util/Makefile.in +--- fuse-1.4.orig/util/Makefile.in 2005-01-02 21:09:09.000000000 +0100 ++++ fuse-1.4/util/Makefile.in 2005-01-03 08:49:25.333258992 +0100 +@@ -36,6 +36,7 @@ NORMAL_UNINSTALL = : + PRE_UNINSTALL = : + POST_UNINSTALL = : + ACLOCAL = @ACLOCAL@ ++AM_CFLAGS=-Wl,-z,now + AMTAR = @AMTAR@ + AR = @AR@ + AUTOCONF = @AUTOCONF@ diff --git a/sdk_container/src/third_party/coreos-overlay/sys-fs/fuse/files/fuse-2.8.5-gold.patch b/sdk_container/src/third_party/coreos-overlay/sys-fs/fuse/files/fuse-2.8.5-gold.patch new file mode 100644 index 0000000000..451ccec621 --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/sys-fs/fuse/files/fuse-2.8.5-gold.patch @@ -0,0 +1,66 @@ +diff -purN fuse-2.8.5.orig/lib/fuse.c fuse-2.8.5/lib/fuse.c +--- fuse-2.8.5.orig/lib/fuse.c 2011-07-27 12:57:39.580516283 -0700 ++++ fuse-2.8.5/lib/fuse.c 2011-07-27 13:00:12.920525842 -0700 +@@ -3947,11 +3947,11 @@ struct fuse *fuse_new_compat1(int fd, in + 11); + } + +-FUSE_SYMVER(".symver fuse_exited,__fuse_exited@"); +-FUSE_SYMVER(".symver fuse_process_cmd,__fuse_process_cmd@"); +-FUSE_SYMVER(".symver fuse_read_cmd,__fuse_read_cmd@"); +-FUSE_SYMVER(".symver fuse_set_getcontext_func,__fuse_set_getcontext_func@"); +-FUSE_SYMVER(".symver fuse_new_compat2,fuse_new@"); ++FUSE_SYMVER(".symver fuse_exited,__fuse_exited@FUSE_UNVERSIONED"); ++FUSE_SYMVER(".symver fuse_process_cmd,__fuse_process_cmd@FUSE_UNVERSIONED"); ++FUSE_SYMVER(".symver fuse_read_cmd,__fuse_read_cmd@FUSE_UNVERSIONED"); ++FUSE_SYMVER(".symver fuse_set_getcontext_func,__fuse_set_getcontext_func@FUSE_UNVERSIONED"); ++FUSE_SYMVER(".symver fuse_new_compat2,fuse_new@FUSE_UNVERSIONED"); + FUSE_SYMVER(".symver fuse_new_compat22,fuse_new@FUSE_2.2"); + + #endif /* __FreeBSD__ */ +diff -purN fuse-2.8.5.orig/lib/fuse_mt.c fuse-2.8.5/lib/fuse_mt.c +--- fuse-2.8.5.orig/lib/fuse_mt.c 2011-07-27 12:57:39.580516283 -0700 ++++ fuse-2.8.5/lib/fuse_mt.c 2011-07-27 13:01:08.011292778 -0700 +@@ -113,4 +113,4 @@ int fuse_loop_mt(struct fuse *f) + return fuse_session_loop_mt(fuse_get_session(f)); + } + +-FUSE_SYMVER(".symver fuse_loop_mt_proc,__fuse_loop_mt@"); ++FUSE_SYMVER(".symver fuse_loop_mt_proc,__fuse_loop_mt@FUSE_UNVERSIONED"); +diff -purN fuse-2.8.5.orig/lib/fuse_session.c fuse-2.8.5/lib/fuse_session.c +--- fuse-2.8.5.orig/lib/fuse_session.c 2011-07-27 12:57:39.580516283 -0700 ++++ fuse-2.8.5/lib/fuse_session.c 2011-07-27 13:02:22.181708010 -0700 +@@ -202,4 +202,6 @@ void fuse_chan_destroy(struct fuse_chan + + #ifndef __FreeBSD__ + FUSE_SYMVER(".symver fuse_chan_new_compat24,fuse_chan_new@FUSE_2.4"); ++#else ++FUSE_SYMVER(".symver fuse_chan_new,fuse_chan_new@FUSE_2.4"); + #endif +diff -purN fuse-2.8.5.orig/lib/fuse_versionscript fuse-2.8.5/lib/fuse_versionscript +--- fuse-2.8.5.orig/lib/fuse_versionscript 2011-07-27 12:57:39.580516283 -0700 ++++ fuse-2.8.5/lib/fuse_versionscript 2011-07-27 13:05:21.620513909 -0700 +@@ -1,3 +1,6 @@ ++FUSE_UNVERSIONED { ++}; ++ + FUSE_2.2 { + global: + fuse_destroy; +diff -purN fuse-2.8.5.orig/lib/helper.c fuse-2.8.5/lib/helper.c +--- fuse-2.8.5.orig/lib/helper.c 2011-07-27 12:57:39.580516283 -0700 ++++ fuse-2.8.5/lib/helper.c 2011-07-27 13:06:26.560513148 -0700 +@@ -409,10 +409,10 @@ int fuse_mount_compat1(const char *mount + return fuse_mount_compat22(mountpoint, NULL); + } + +-FUSE_SYMVER(".symver fuse_setup_compat2,__fuse_setup@"); ++FUSE_SYMVER(".symver fuse_setup_compat2,__fuse_setup@FUSE_UNVERSIONED"); + FUSE_SYMVER(".symver fuse_setup_compat22,fuse_setup@FUSE_2.2"); +-FUSE_SYMVER(".symver fuse_teardown,__fuse_teardown@"); +-FUSE_SYMVER(".symver fuse_main_compat2,fuse_main@"); ++FUSE_SYMVER(".symver fuse_teardown,__fuse_teardown@FUSE_UNVERSIONED"); ++FUSE_SYMVER(".symver fuse_main_compat2,fuse_main@FUSE_UNVERSIONED"); + FUSE_SYMVER(".symver fuse_main_real_compat22,fuse_main_real@FUSE_2.2"); + + #endif /* __FreeBSD__ */ diff --git a/sdk_container/src/third_party/coreos-overlay/sys-fs/fuse/files/fuse-2.8.6-user-option.patch b/sdk_container/src/third_party/coreos-overlay/sys-fs/fuse/files/fuse-2.8.6-user-option.patch new file mode 100644 index 0000000000..c528ec045a --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/sys-fs/fuse/files/fuse-2.8.6-user-option.patch @@ -0,0 +1,77 @@ +diff -rupN fuse-2.8.6/util/fusermount.c fuse-2.8.6.patched/util/fusermount.c +--- fuse-2.8.6/util/fusermount.c 2011-09-13 00:23:14.000000000 -0700 ++++ fuse-2.8.6.patched/util/fusermount.c 2011-10-19 08:48:44.346535813 -0700 +@@ -613,6 +613,21 @@ static int add_option(char **optsp, cons + return 0; + } + ++static int add_user_option(char **mnt_optsp, const char *user) ++{ ++ if (getuid() != 0) { ++ if (user == NULL) ++ user = get_user_name(); ++ if (user == NULL) ++ return -1; ++ ++ if (add_option(mnt_optsp, "user=", strlen(user)) == -1) ++ return -1; ++ strcat(*mnt_optsp, user); ++ } ++ return 0; ++} ++ + static int get_mnt_opts(int flags, char *opts, char **mnt_optsp) + { + int i; +@@ -633,15 +648,6 @@ static int get_mnt_opts(int flags, char + l = strlen(*mnt_optsp); + if ((*mnt_optsp)[l-1] == ',') + (*mnt_optsp)[l-1] = '\0'; +- if (getuid() != 0) { +- const char *user = get_user_name(); +- if (user == NULL) +- return -1; +- +- if (add_option(mnt_optsp, "user=", strlen(user)) == -1) +- return -1; +- strcat(*mnt_optsp, user); +- } + return 0; + } + +@@ -694,6 +700,7 @@ static int do_mount(const char *mnt, cha + char *subtype = NULL; + char *source = NULL; + char *type = NULL; ++ char *user = NULL; + int check_empty = 1; + int blkdev = 0; + +@@ -707,6 +714,7 @@ static int do_mount(const char *mnt, cha + unsigned len; + const char *fsname_str = "fsname="; + const char *subtype_str = "subtype="; ++ const char *user_str = "user="; + for (len = 0; s[len]; len++) { + if (s[len] == '\\' && s[len + 1]) + len++; +@@ -719,6 +727,9 @@ static int do_mount(const char *mnt, cha + } else if (begins_with(s, subtype_str)) { + if (!get_string_opt(s, len, subtype_str, &subtype)) + goto err; ++ } else if (begins_with(s, user_str)) { ++ if (!get_string_opt(s, len, user_str, &user)) ++ goto err; + } else if (opt_eq(s, len, "blkdev")) { + if (getuid() != 0) { + fprintf(stderr, +@@ -775,6 +786,9 @@ static int do_mount(const char *mnt, cha + res = get_mnt_opts(flags, optbuf, &mnt_opts); + if (res == -1) + goto err; ++ res = add_user_option(&mnt_opts, user); ++ if (res == -1) ++ goto err; + + sprintf(d, "fd=%i,rootmode=%o,user_id=%i,group_id=%i", + fd, rootmode, getuid(), getgid()); diff --git a/sdk_container/src/third_party/coreos-overlay/sys-fs/fuse/files/fuse-fbsd.init b/sdk_container/src/third_party/coreos-overlay/sys-fs/fuse/files/fuse-fbsd.init new file mode 100644 index 0000000000..19b8400eb5 --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/sys-fs/fuse/files/fuse-fbsd.init @@ -0,0 +1,23 @@ +#!/sbin/runscript +# Copyright 1999-2007 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +depend() { + need localmount +} + +start() { + ebegin "Starting fuse" + if ! kldstat -q -m fuse; then + kldload fuse >/dev/null 2>&1 || eerror $? "Error loading fuse module" + fi + eend ${?} +} + +stop() { + ebegin "Stopping fuse" + if kldstat -q -m fuse; then + kldunload fuse >/dev/null 2>&1 || eerror $? "Error unloading fuse module" + fi + eend ${?} +} diff --git a/sdk_container/src/third_party/coreos-overlay/sys-fs/fuse/files/fuse.init b/sdk_container/src/third_party/coreos-overlay/sys-fs/fuse/files/fuse.init new file mode 100644 index 0000000000..30b512e8dc --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/sys-fs/fuse/files/fuse.init @@ -0,0 +1,35 @@ +#!/sbin/runscript +# Copyright 1999-2007 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +MOUNTPOINT=/sys/fs/fuse/connections + +depend() { + need localmount +} + +start() { + + ebegin "Starting fuse" + if ! grep -qw fuse /proc/filesystems; then + modprobe fuse >/dev/null 2>&1 || eerror $? "Error loading fuse module" + fi + if grep -qw fusectl /proc/filesystems && \ + ! grep -qw $MOUNTPOINT /proc/mounts; then + mount -t fusectl none $MOUNTPOINT >/dev/null 2>&1 || \ + eerror $? "Error mounting control filesystem" + fi + eend ${?} + +} + +stop() { + + ebegin "Stopping fuse" + if grep -qw $MOUNTPOINT /proc/mounts; then + umount $MOUNTPOINT >/dev/null 2>&1 || \ + eerror $? "Error unmounting control filesystem" + fi + eend ${?} + +} diff --git a/sdk_container/src/third_party/coreos-overlay/sys-fs/fuse/fuse-2.8.6-r3.ebuild b/sdk_container/src/third_party/coreos-overlay/sys-fs/fuse/fuse-2.8.6-r3.ebuild new file mode 100644 index 0000000000..27bc24d0b2 --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/sys-fs/fuse/fuse-2.8.6-r3.ebuild @@ -0,0 +1,88 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-fs/fuse/fuse-2.8.5.ebuild,v 1.11 2011/07/26 00:09:54 zmedico Exp $ + +EAPI=3 +inherit eutils libtool linux-info + +MY_P=${P/_/-} +DESCRIPTION="An interface for filesystems implemented in userspace." +HOMEPAGE="http://fuse.sourceforge.net" +SRC_URI="mirror://sourceforge/fuse/${MY_P}.tar.gz" +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 sparc x86 ~x86-fbsd" +IUSE="kernel_linux kernel_FreeBSD" +S=${WORKDIR}/${MY_P} +PDEPEND="kernel_FreeBSD? ( sys-fs/fuse4bsd )" + +pkg_setup() { + if use kernel_linux ; then + if kernel_is lt 2 6 9; then + die "Your kernel is too old." + fi + CONFIG_CHECK="~FUSE_FS" + FUSE_FS_WARNING="You need to have FUSE module built to use user-mode utils" + linux-info_pkg_setup + fi +} + +src_prepare() { + epatch "${FILESDIR}"/fuse-2.8.5-fix-lazy-binding.patch + epatch "${FILESDIR}"/fuse-2.8.5-gold.patch + # This patch changes fusermount to avoid calling getpwuid(3) + # if '-o user=' is provided in the command line. + # This prevents glibc's implementation of getpwuid from invoking + # socket/connect syscalls, which allows Chromium OS daemons to + # put more restrictive seccomp filters on fusermount. + epatch "${FILESDIR}"/fuse-2.8.6-user-option.patch + + elibtoolize +} + +src_configure() { + econf \ + INIT_D_PATH="${EPREFIX}/etc/init.d" \ + MOUNT_FUSE_PATH="${EPREFIX}/sbin" \ + UDEV_RULES_PATH="${EPREFIX}/lib/udev/rules.d" \ + --disable-example \ + --disable-mtab +} + +src_install() { + emake DESTDIR="${D}" install || die "emake install failed" + + dodoc AUTHORS ChangeLog Filesystems README \ + README.NFS NEWS doc/how-fuse-works \ + doc/kernel.txt FAQ + docinto example + dodoc example/* + + if use kernel_linux ; then + newinitd "${FILESDIR}"/fuse.init fuse + elif use kernel_FreeBSD ; then + insinto /usr/include/fuse + doins include/fuse_kernel.h + newinitd "${FILESDIR}"/fuse-fbsd.init fuse + else + die "We don't know what init code install for your kernel, please file a bug." + fi + + rm -rf "${D}/dev" + + # user_allow_other is enabled to allow Chromium OS to run FUSE-based + # file system daemons as a non-root and non-chronos user, while + # allowing chronos to access the mount file systems. + dodir /etc + cat >"${ED}"/etc/fuse.conf <<-EOF + # Set the maximum number of FUSE mounts allowed to non-root users. + # The default is 1000. + # + #mount_max = 1000 + + # Allow non-root users to specify the 'allow_other' or 'allow_root' + # mount options. + # + user_allow_other + EOF +}