After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 157867 - [PATCH] multilib support
[PATCH] multilib support
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gstreamer (core)
0.8.x
Other Linux
: Normal normal
: 0.10.0
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2004-11-10 16:30 UTC by Colin Walters
Modified: 2006-01-12 10:08 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
32/64 bit parallel install (10.59 KB, patch)
2004-11-10 16:31 UTC, Colin Walters
none Details | Review
lib64 patch (5.29 KB, patch)
2005-01-10 20:54 UTC, Colin Walters
none Details | Review

Description Colin Walters 2004-11-10 16:30:43 UTC
Hi,

This patch adds support for parallel 32/64 bit installations.  See:
http://sourceforge.net/mailarchive/forum.php?thread_id=5929366&forum_id=5947
Comment 1 Colin Walters 2004-11-10 16:31:06 UTC
Created attachment 33640 [details] [review]
32/64 bit parallel install
Comment 2 Ronald Bultje 2004-11-10 17:44:57 UTC
No controversy is a bit short, I just didn't look yet. Are you sure this is ok?
At least you shouldn't use cpu (i686) but arch (i386).
Comment 3 Colin Walters 2004-11-10 22:24:34 UTC
There is, as far as I know, no portable definition of architecture.  You'd have
to have a database of CPU compatibility in autoconf, and I don't think they
wanted to do that.

It could try to call out to RPM or dpkg or whatever, but...yeah.
Comment 4 Christian Fredrik Kalager Schaller 2004-12-12 12:28:06 UTC
Setting milestone to next release so it will be reviewed for inclusion then.
Comment 5 Benjamin Otte (Company) 2004-12-16 11:30:18 UTC
I think this should be WONTFIX.
If you want to have binaries for different architectures, install them into a
different prefix or use configure renaming options.

Unless of course there's a common agreed on way to do this. How do glib and
friends do this? (I can come up with at least gdk-pixbuf-query-loaders that has
the same issue, maybe gtkdoc-scan, too)
Comment 6 David Schleef 2004-12-16 20:35:01 UTC
Can't you just use ./configure --program-transform-name='s,$,-arch,' ?
Comment 7 Colin Walters 2004-12-21 22:34:34 UTC
Benjamin: Currently at least the Fedora package of GTK+ has a patch which is
similar conceptually; but I think this patch is better in that
/usr/bin/gst-register still works, but gdk-pixbuf-query-loaders requires you to
pass the architecture name.  Longer term, Owen wants to move the cache files
into the actual directory, instead of storing them in /etc.

The most important part of this patch by far is gst-register; we need separate
versions of those for caching the separate library directories.

As for using program-transform-name...that might allow us to avoid hardcoding
binary name transformations in Makefile.am, but we still need to have separate
registry.xml files for 32-bit and 64-bit plugins.  
Comment 8 David Schleef 2004-12-21 22:43:26 UTC
The registries are already in different locations because GST_CACHE_DIR is
different.  However, for other reasons (NFS-mounted home directories), we should
use .gstreamer-0.8/registry-${arch}.xml for the user registry.
Comment 9 Colin Walters 2005-01-05 22:15:12 UTC
Why would GST_CACHE_DIR be different?  It's defined as:
"${localstatedir}/cache/gstreamer-$GST_MAJORMINOR", i.e. /var/cache/gstreamer-0.8.
Comment 10 Colin Walters 2005-01-05 22:23:19 UTC
Mike Hearn mentioned here:
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=143312
that transforming the names breaks gst-launch-ext.  

Thinking about it I'm inclined to just move the gst-register executable, and
keep gst-launch and friends unchanged.  Would that make the patch more palatable?
Comment 11 David Schleef 2005-01-06 10:04:51 UTC
GST_CACHE_DIR is different because you used
--with-cachedir=/var/cache/gstreamer-0.8-somearch.  Did I forget to mention that?

gst-launch should probably be fixed to understand $(program_transform_name).

gst-register should arguably be installed in $(libexecdir), but as a long-time
SysV user, I find this evil.
Comment 12 Colin Walters 2005-01-10 20:54:15 UTC
Created attachment 35796 [details] [review]
lib64 patch

For NFS-mounted homedirs, it seems to me that even registry-${arch}.xml isn't
sufficient; you need registry-${arch}-${machine}.xml, no?  Since different
systems can have different sets of plugins installed.

But anyways, here's an updated patch which only moves gst-register to
/usr/libexec and suffixes it with an architecture, and adds the architecture to
the registry files.
Comment 13 David Schleef 2005-01-11 00:27:10 UTC
The point of installing into libexecdir is that the directory should already be
versioned.
Comment 14 Colin Walters 2005-01-11 16:41:35 UTC
What do you mean by versioned?  The problem being solved is multiarch compatibility.
Comment 15 David Schleef 2005-01-11 22:29:48 UTC
heh, yeah.  I meant that.

Presumably, $(libexecdir) becomes /usr/lib64exec or something.
Comment 16 Colin Walters 2005-01-25 22:55:07 UTC
No, there is no /usr/lib64exec; this would break 32-bit applications which want
to execute helper programs; e.g. gnome_segv2.
Comment 17 Luca Ognibene 2005-11-11 16:31:28 UTC
any news here ?
Comment 18 Thomas Vander Stichele 2006-01-12 10:08:49 UTC
this can basically be closed for 0.10, because:

- gst-register does not exist anymore
- no global cache file gets written anymore - only a user one, in the user's home dir
- that registry gets named registry.${arch}.xml

So unless I'm missing something, everything should now work with multilib (tested) and NFS home mounts (untested)