On Wed, Feb 25, 2009 at 11:44:33PM -0600, Nils wrote:
> 9999 ebuild are live ebuilds, as in they follow whatever source control
> system you need them too

Ahh, that makes sense.


> the ebuild is online at  http://bugs.gentoo.org/show_bug.cgi?id=215399

I forgot about that... whenever I try to find gentoo stuff, I go rummaging
around in gentoo-portage.com, and find out of date stuff. :-)


> >  Applying barry-9999-gcc43.patch ...  ok
> 
> It adds  various includes to a few files, i just compiled without errors
> without this patch

Excellent!


> >  Applying barry-9999-tarfile-int.patch ...  ok
> >
> > If this is the patch I think it is, it is a bug in Gentoo's version of
> > libtar
> > and is well documented on this list.  It shouldn't affect your build, but
> > if you care about Gentoo being accurate, you might want to submit a bug
> > report.  I'm happy to provide additional details if you need them.
> 
> 
> This fixes errors in tarfile-opts-nt.cc:
>    tarfile-ops-nt.cc:108: error: invalid conversion from ?int (*)(int)? to
> ?int (*)(long int)?
>    tarfile-ops-nt.cc:108: error: invalid conversion from ?ssize_t (*)(int,
> void*, size_t)? to ?ssize_t (*)(long int, void*, size_t)?
>    tarfile-ops-nt.cc:108: error: invalid conversion from ?ssize_t (*)(int,
> const void*, size_t)? to ?ssize_t (*)(long int, const void*, size_t)?
> 
> Additional details would be great on this.

The documentation explanation is under the heading "The Case of the Broken
Libtar" on this page:

        http://www.netdirect.ca/software/packages/barry/dependencies.php

In summary, there was a patch by someone who tried to fix 64-bit compile
issues in the libtar example by changing the prototypes of the
open/read/write functions from int to long, instead of fixing the example
itself.  This patch escaped the source and infected a few distributions before
slowly getting fixed.  :-)

Debian fixes the libtar example with a hack, which is ok, since it's just
an example:

        
http://patch-tracking.debian.net/patch/misc/view/libtar/1.2.11-4/libtar/libtar.c

Barry handles 64bit systems by coding around the problem rather verbosely,
as you can see in the tarfile* files in the GUI source.

On 32bit systems, the size of a pointer is the same as an int, but this is
not the case on 64 bit.  So in order to map a pointer to an integer file
handle, you have to do some extra coding.  The reason the 'long' patch
is incorrect, is that it breaks compatibility with POSIX open/read/write
prototypes.

So in Gentoo, there is a 64bit patch to the libtar package,
and then a patch to Barry to make it conform.  Remove both patches
from both packages, and Barry will just work.  The libtar package's example
will probably fail, when compiling libtar on Gentoo on 64bit systems,
so you'll need to hack around it with a patch similar to Debian's.


> > That equals sign is confusing libtool.
> 
> Ok, sorry about that, I just removed it. This should not be an issue
> anymore.

Thanks Nils!

- Chris


------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Barry-devel mailing list
Barry-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/barry-devel

Reply via email to