Re: 64-bit

"Isak Savo" <[email protected]>
Newsgroups gmane.comp.autopackage.devel
Message-ID <[email protected]>
2007/11/27, Justin Karneges <[email protected]>:
> Hi Isak,
>
> On Monday 26 November 2007 11:44 pm, Isak Savo wrote:
> > 2007/11/27, Justin Karneges <[email protected]>:
> >
> > Right now, you'd definitely need to bundle the runtime files, since we
> > don't have a 64-bit version of it on our web. Part of the runtime is
> > compiled c-code, so you'd need to compile it on a 64bit system.
>
> Can you describe how to do this?  It sounds like it is probably not the same
> as traditionally bundling the autopackage files.  I presume this also means
> the package becomes 64-bit-only?  (which is fine, that's what I was asking
> for.)  Can my application remain 32-bit even if it is wrapped in a
> 64-bit-only autopackage?

First you need to create autopackage.tar.bz2 and autopackage-gtk.x86:

Check out the full environment from svn, see
http://www.autopackage.org/source.html

Then, enter main/release/ and run:
   ./autopackage-build --gtkfe

This will create autopackage.tar.bz2 and autopackage-gtk-1.2.5.package
in the 1.2.5 subdirectory. These two files should be bundled with your
package.

Follow the devguide on how to make a sealed package (that contains
deps, including autopackage support code):
http://www.autopackage.org/docs/devguide/ch02s05.html

Let us know if something fails to build on 64bit (it should work - I
fixed this a while ago)

> > > 2) Is it possible to make a 32-bit package that works on both 32-bit or
> > > 64-bit platforms, with very minimal user instructions?  Something like
> > > "install the 32bit compat libs, then run our 32-bit application package"
> > > would be nice.  I saw this idea mentioned during my searches, but it
> > > wasn't stated confidently (I get the impression that none of the AP devs
> > > have 64-bit systems...).
> >
> > In theory, this is exactly how it's supposed to work. Problem is, from
> > what I understand the user needs to have 32bit compatibility libs for
> > ALL the app's dependencies. Many distros provide a bunch of base stuff
> > (including X11, GTK etc.) as 32bit compat libs, but more exotic
> > libraries might be missing.
>
> I should be able to provide my own 32-bit packages for the "exotic" libraries
> in our application package file (or via URLs to our company website)
> shouldn't I?  It seems to me like compat libs shouldn't be a problem unless a
> distro is missing 32-bit compat libs on base libraries.

Yes, problem is our detection system is not aware of 32bit vs 64bit.
It might pass a dep check if it finds the 64bit version, not sure. (I
*think* we have checks against that, but I don't remember)

> > One issue with this is our detection system. It is very hard to
> > programatically determine if the users system is 32bit compatible or
> > not (it'd require that all our dependency checking API functions
> > became aware of this, not to mention all distros put the 32bit libs in
> > different locations.)
>
> Hmm, it sounds like the 32-bit compat approach is not very reliable then.  Two
> questions about this:
>
> 1) Is it possible to make 32-bit compat reliable?

To some extent, yes. By making the autopackage API fully 64/32bit
aware so that it can determine whether the compat version of a lib is
installed or not.

One thing to tackle is where do we install 32bit libs/binaries on a
64bit distro? I'm sure they all have different locations (they always
do).

> 2) Ultimately, do we really need 32-bit compat?  If we can get a dual package
> that contains both 32-bit and 64-bit binaries, then you'd never use compat.

It's a nice thing for situations where the developer doesn't have
access to a 64bit machine, and can't build native 64bit packages
(hmm.. cross compilation should work, shouldn't it?)

> > A good middle step I think would be to allow 64bit only packages to work.
>
> And what is left for this to work?  Compile the autopackage runtime as 64-bit?

Basically, yes. And of course fix all the minor issues that will pop
up during that process ;-)

> What is left to support autopackages containing both 32-bit and 64-bit?

Once the API is upgraded to handle it, we just need to put both
binaries in the package. We already have a mechanism for dealing with
two C++ ABI's (see
http://trac.autopackage.org/wiki/C%2B%2BSupportIn1.2 ) which should be
usable for 64/32bit hybrids aswell.

Not sure how modular that code is though, since I wasn't involved in
writing it...

> > We fix minor bugs here and there, and for most people Autopackage
> > works quite well. But none of us has the time or energy to do big
> > changes.
> >
> > BUT. There's always a but. If you are willing to invest some time in
> > looking into making autopackage more 64bit friendly I will certainly
> > assist you in doing that. Maybe Taj and Curtis can help too.
>
> Great, then here I am. :)

Awesome!

-Isak

---------------------------------------------------------------------
To unsubscribe, e-mail: autopackage-dev-unsubscribe-OfajU3CKLf1/[email protected]
For additional commands, e-mail: autopackage-dev-help-OfajU3CKLf1/[email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.