On Wed, Jun 05, 2013 at 01:38:33PM -0600, Kevin Fenzi wrote: > On Wed, 5 Jun 2013 20:33:14 +0100 > "Richard W.M. Jones" <rjones@xxxxxxxxxx> wrote: > > > On Tue, Jun 04, 2013 at 04:52:14PM +0200, Simone Caronni wrote: > > > Hello, > > > > > > I have a package that builds fine in a fresh rawhide mock chroot > > > and not in a koji build. Is there any difference between the two? > > > > The other thing they don't tell you ... and it's an endless source of > > "fun" ... is that Koji runs the whole Fedora userspace on top of a > > RHEL 6 kernel. > > > > This causes some extremely obscure bugs. > > I'm not sure how you intended this, but it reads like there's some > cabal hiding setup details from you. This is not at all the case. ;) > > I'm happy to gather information about or relate information about our > setup to anyone who asks. > > If you can think of places we could document things better, please do > add the details there. Sorry I didn't mean to imply this was hidden. > There are some oddities due to running RHEL on builders, but I would > call it a pretty corner set of cases, not something to panic about. Actually the worse case is EPEL 6 / RHEL 6 which seem to use a RHEL 5 kernel. I have to use an LD_PRELOAD hack to get things to to run there [attached]. The issue wasn't with the LD_PRELOAD hack itself which is quite small, but with the amount of days I spent debugging this. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Fedora Windows cross-compiler. Compile Windows programs, test, and build Windows installers. Over 100 libraries supported. http://fedoraproject.org/wiki/MinGW
/* LD_PRELOAD library used as a workaround for RHBZ#563103 & RHBZ#968905. */ #define _GNU_SOURCE 1 #include <stdlib.h> #include <unistd.h> #include <errno.h> #include <dlfcn.h> ssize_t preadv (int fd, ...) { errno = ENOSYS; return -1; } ssize_t preadv64 (int fd, ...) { errno = ENOSYS; return -1; } ssize_t pwritev(int fd, ...) { errno = ENOSYS; return -1; } ssize_t pwritev64 (int fd, ...) { errno = ENOSYS; return -1; } static int (*orig_socket) (int domain, int type, int protocol); int socket (int domain, int type, int protocol) { /* Remove SOCK_CLOEXEC flag. */ return orig_socket (domain, type & ~02000000, protocol); } static void init (void) __attribute__((constructor)); static void init (void) { orig_socket = dlsym (RTLD_NEXT, "socket"); }
-- devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxxx https://admin.fedoraproject.org/mailman/listinfo/devel