Specifying the path for mime-info files.

Alejandro Forero Cuervo <[email protected]>
Newsgroups gmane.comp.gnome.vfs
Message-ID <[email protected]>
Hey there. :)

I noticed  that libgnomevfs library  1.0.5 looks for mime-info  files in
two  locations: GNOME_VFS_DATADIR (a  C  preprocessor  symbol that  gets
hardcoded into the library) and ~/.gnome/mime-files.

I've been seeing  how to make GNOME  play nicely with GNU stow  so it is
possible to install each of  GNOME's packages into a different directory
and use  environment variables  and similar mechanism  to make  it work.
I'm creating a document with instructions on how to do this.

Unfortunately, as libgnomevfs has the system directory for the mime-info
files hardcoded,  it is impossible  for the user  to specify it.   In my
situation,  I  would  like  libgnomevfs  to  look  for  these  files  in
/usr/local/share/mime-info rather  that in the datadir  for the location
on which the gnome-vfs package was installed.

Attached   is   a  trivially   simple   patch   that  fixes   this   and
causes  gnome-vfs  to  look  in  the  directory  specified  through  the
GNOME_VFS_DATADIR  environment variable  (this  environment variable  is
checked at run time rather than at compile time).

The  only other  viable  solution  involves forcing  the  admin to  keep
the  mime-info files  in gnome-vfs'  prefix  updated with  links to  all
the  files in  the  GNOME directory.   I'd rather  go  for specifing  an
environment variable, specially as a  similar mechanism has already been
implemented  for  similar  GNOME  packages (through  variables  such  as
GNOMEDIR,  GNOME_PATH,  GNOME_LIBCONFIG_PATH, GNOME_GNORBA_PATH  and  so
on).

Notice that this makes it possible  for the user to override the default
system directory for  mime-info files, which shouldn't  matter (but then
again I am not familiar with gnome-vfs ins and outs).

Please let  me know if I  can expect my  changes to get included  in the
next official  release so I will  know what to write  in my instructions
document.

Thanks. :)

Alejo.
http://bachue.com/alejo

--
The mere formulation of a problem is far more essential than its solution.
      -- Albert Einstein.

$0='!/sfldbi!yjoV0msfQ!sfiupob!utvK'x44;print map{("\e[7m \e[0m",chr ord
(chop$0)-1)[$_].("\n")[++$i%77]}split//,unpack'B*',pack'H*',($F='F'x19).
"F0F3E0607879CC1E0F0F339F3FF399C666733333CCF87F99E6133999999E67CFFCCF3".
"219CC1CCC033E7E660198CCE4E66798303873CCE60F3387$F"#Don't you love Perl?
patch-gnome-vfs-datadir (text/plain, 846 B)
diff -Naur gnome-vfs-1.0.5/libgnomevfs/gnome-vfs-mime-info.c gnome-vfs-1.0.5-alejo/libgnomevfs/gnome-vfs-mime-info.c
--- gnome-vfs-1.0.5/libgnomevfs/gnome-vfs-mime-info.c	Fri Mar 15 03:33:01 2002
+++ gnome-vfs-1.0.5-alejo/libgnomevfs/gnome-vfs-mime-info.c	Thu May  9 05:40:53 2002
@@ -969,6 +969,8 @@
 static void
 gnome_vfs_mime_init (void)
 {
+	char *gnome_dir = getenv("GNOME_VFS_DATADIR");
+
 	/*
 	 * The hash tables that store the mime keys.
 	 */
@@ -984,7 +986,7 @@
 	 * Setup the descriptors for the information loading
 	 */
 
-	gnome_mime_dir.dirname = g_strconcat (GNOME_VFS_DATADIR, "/mime-info", NULL);
+	gnome_mime_dir.dirname = g_strconcat (gnome_dir ? gnome_dir : GNOME_VFS_DATADIR, "/mime-info", NULL);
 	gnome_mime_dir.system_dir = TRUE;
 	
 	user_mime_dir.dirname  = g_strconcat (g_get_home_dir(), "/.gnome/mime-info", NULL);
signature.asc (application/pgp-signature, 232 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org

iD8DBQE82hJekEv0SM2OU1kRAgXnAJ4yhNx6R2JNWPI4YemDIrn+o8QP+gCgxO+Q
jIavqsxu1Kwa3KSo6Hm6Rv4=
=0hcx
-----END PGP SIGNATURE-----
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.