Your message dated Sat, 29 Aug 2009 09:54:08 +0100
with message-id <[email protected]>
and subject line Package glib1.2 has been removed from Debian
has caused the Debian Bug report #159802,
regarding patch for G_MODULE_BIND_LOCAL
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)
--
159802: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=159802
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: libglib1.2
Severity: wishlist
Version: 1.2.10-4
This is a backport of the patch in
http://bugzilla.gnome.org/show_bug.cgi?id=71615
The patch is only for reference, if local bindings for modules ends
up being the preferred solution for some of the SONAME mess in
some broken Gnome apps.
dave...
diff -urN glib1.2-1.2.10/gmodule/gmodule-dl.c
glib1.2-1.2.10-ds/gmodule/gmodule-dl.c
--- glib1.2-1.2.10/gmodule/gmodule-dl.c 2001-02-26 19:44:38.000000000 -0800
+++ glib1.2-1.2.10-ds/gmodule/gmodule-dl.c 2002-09-05 20:45:08.000000000
-0700
@@ -86,11 +86,13 @@
static gpointer
_g_module_open (const gchar *file_name,
- gboolean bind_lazy)
+ gboolean bind_lazy,
+ gboolean bind_local)
{
gpointer handle;
- handle = dlopen (file_name, RTLD_GLOBAL | (bind_lazy ? RTLD_LAZY :
RTLD_NOW));
+ handle = dlopen (file_name,
+ (bind_local ? 0 : RTLD_GLOBAL) | (bind_lazy ? RTLD_LAZY : RTLD_NOW));
if (!handle)
g_module_set_error (fetch_dlerror ());
diff -urN glib1.2-1.2.10/gmodule/gmodule-dld.c
glib1.2-1.2.10-ds/gmodule/gmodule-dld.c
--- glib1.2-1.2.10/gmodule/gmodule-dld.c 2000-02-29 20:53:47.000000000
-0800
+++ glib1.2-1.2.10-ds/gmodule/gmodule-dld.c 2002-09-05 20:45:08.000000000
-0700
@@ -67,9 +67,21 @@
/* --- functions --- */
+
+/*
+ * shl_load() does not appear to support making symbols invisible to
+ * the global namespace. However, the default is to put the library
+ * last in the search order, which is approximately what we want,
+ * since it will cause symbols that conflict with existing symbols to
+ * be invisible. It is unclear if BIND_FIRST should be used when
+ * bind_local==0, since it may cause the loaded symbols to be used
+ * preferentially to the application's symbols, which is Almost
+ * Always Wrong. --ds
+ */
static gpointer
_g_module_open (const gchar *file_name,
- gboolean bind_lazy)
+ gboolean bind_lazy,
+ gboolean bind_local)
{
shl_t shl_handle;
diff -urN glib1.2-1.2.10/gmodule/gmodule-win32.c
glib1.2-1.2.10-ds/gmodule/gmodule-win32.c
--- glib1.2-1.2.10/gmodule/gmodule-win32.c 2000-02-29 20:53:47.000000000
-0800
+++ glib1.2-1.2.10-ds/gmodule/gmodule-win32.c 2002-09-05 20:45:08.000000000
-0700
@@ -37,7 +37,8 @@
/* --- functions --- */
static gpointer
_g_module_open (const gchar *file_name,
- gboolean bind_lazy)
+ gboolean bind_lazy,
+ gboolean bind_local)
{
HINSTANCE handle;
diff -urN glib1.2-1.2.10/gmodule/gmodule.c glib1.2-1.2.10-ds/gmodule/gmodule.c
--- glib1.2-1.2.10/gmodule/gmodule.c 2001-03-15 07:33:10.000000000 -0800
+++ glib1.2-1.2.10-ds/gmodule/gmodule.c 2002-09-05 20:46:40.000000000 -0700
@@ -57,7 +57,8 @@
/* --- prototypes --- */
static gpointer _g_module_open (const gchar
*file_name,
- gboolean bind_lazy);
+ gboolean bind_lazy,
+ gboolean bind_local);
static void _g_module_close (gpointer handle,
gboolean is_unref);
static gpointer _g_module_self (void);
@@ -139,7 +140,8 @@
"not supported by this system");
return rv; }
static gpointer
_g_module_open (const gchar *file_name,
- gboolean bind_lazy)
+ gboolean bind_lazy,
+ gboolean bind_local)
{
return NULL;
}
@@ -228,7 +230,8 @@
}
/* open the module */
- handle = _g_module_open (file_name, (flags & G_MODULE_BIND_LAZY) != 0);
+ handle = _g_module_open (file_name, (flags & G_MODULE_BIND_LAZY) != 0,
+ (flags & G_MODULE_BIND_LOCAL) != 0);
if (handle)
{
gchar *saved_error;
diff -urN glib1.2-1.2.10/gmodule/gmodule.h glib1.2-1.2.10-ds/gmodule/gmodule.h
--- glib1.2-1.2.10/gmodule/gmodule.h 2001-03-15 07:33:10.000000000 -0800
+++ glib1.2-1.2.10-ds/gmodule/gmodule.h 2002-09-05 20:45:08.000000000 -0700
@@ -46,7 +46,8 @@
typedef enum
{
G_MODULE_BIND_LAZY = 1 << 0,
- G_MODULE_BIND_MASK = 0x01
+ G_MODULE_BIND_LOCAL = 1 << 1,
+ G_MODULE_BIND_MASK = 0x03
} GModuleFlags;
typedef struct _GModule GModule;
--- End Message ---
--- Begin Message ---
Version: 1.2.10-20+rm
You filled the bug http://bugs.debian.org/159802 in Debian BTS
against the package glib1.2. I'm closing it at *unstable*, but it will
remain open for older distributions.
For more information about this package's removal, read
http://bugs.debian.org/540620. That bug might give the reasons why
this package was removed and suggestions of possible replacements.
Don't hesitate to reply to this mail if you have any question.
Thank you for your contribution to Debian.
--
Marco Rodrigues
--- End Message ---