Package: mono-common
Version: 1.9.1+dfsg-3
Severity: serious
Justification: Policy 9.1.1


 violates the FHS because it does not respect symbolic links in / in
its path correctly.

Scenario:
Debian setup with two partitions: "/" and "/localvol".
"/usr", "/lib" and "/var" are symbolic links to the according directory on
"/localvol".
"/etc" resides on the root partition and is NOT a symbolic link.

This setup is explicitelz allowed by the FHS ("The following directories,
or symbolic links to directories, are required in /.")!


In this scenario mono looks for its config in "/localvol/usr/etc/mono/config" 
instead of "/etc/mono/config". Which results in an error like this when
starting a mono application:
"MONO_LOG_MASK="dll" mono /usr/lib/gnome-do/Do.exe

Unhandled Exception: System.DllNotFoundException: intl
  at (wrapper managed-to-native) Mono.Unix.Catalog:bindtextdomain 
(intptr,intptr)
  at Mono.Unix.Catalog.Init (System.String package, System.String localedir) 
[0x00000]
  at Do.Do.Main (System.String[] args) [0x00000]

Unhandled Exception: System.DllNotFoundException: msvcrt
  at (wrapper managed-to-native) Mono.Unix.Native.Stdlib:free (intptr)
  at Mono.Unix.UnixMarshal.FreeHeap (IntPtr ptr) [0x00000]
  at Mono.Unix.Catalog.Init (System.String package, System.String localedir) 
[0x00000]
  at Do.Do.Main (System.String[] args) [0x00000]"


The strace reveils that mono is indeed looking for the config in the wrong 
directory
(open("/localvol/usr/etc/mono/config", O_RDONLY) = -1 ENOENT (No such file or 
directory),
line 80 of the full strace below)
When a symbolic link from "/localvol/usr/etc" to "/etc" is set, mono works.

Full strace:
strace -e trace=file mono gnome-do.exe
execve("/usr/bin/mono", ["mono", "gnome-do.exe"], [/* 50 vars */]) = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/usr/lib/libgthread-2.0.so.0", O_RDONLY) = 3
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/librt.so.1", O_RDONLY)       = 3
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/usr/lib/libglib-2.0.so.0", O_RDONLY) = 3
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/libdl.so.2", O_RDONLY)       = 3
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/libpthread.so.0", O_RDONLY)  = 3
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/libm.so.6", O_RDONLY)        = 3
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/libc.so.6", O_RDONLY)        = 3
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/usr/lib/libpcre.so.3", O_RDONLY) = 3
open("/usr/lib/locale/locale-archive", O_RDONLY) = 3
open("/usr/lib/charset.alias", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/locale.alias", O_RDONLY) = 3
access("/proc/self/maps", F_OK)         = 0
open("/proc/self/maps", O_RDONLY)       = 3
open("/proc/stat", O_RDONLY)            = 3
access("/proc/xen", F_OK)               = -1 ENOENT (No such file or directory)
open("/proc/self/maps", O_RDONLY)       = 3
readlink("/proc/self/exe", "/localvol/usr/bin/mono"..., 4095) = 22
stat("/localvol/usr/lib/mono/1.0", {st_mode=S_IFDIR|0755, st_size=696, ...}) = 0
stat("gnome-do.exe.config", 0x7fff17c34c00) = -1 ENOENT (No such file or 
directory)
getcwd("/etc/mono"..., 4096)            = 10
open("gnome-do.exe", O_RDONLY)          = -1 ENOENT (No such file or directory)
access("gnome-do.exe", F_OK)            = -1 ENOENT (No such file or directory)
access("gnome-do.exe", F_OK)            = -1 ENOENT (No such file or directory)
open("/localvol/usr/lib/mono/1.0/mscorlib.dll", O_RDONLY) = 3
readlink("/localvol/usr/lib/mono/1.0/mscorlib.dll", 0x7fff17c33ac0, 4096) = -1 
EINVAL (Invalid argument)
open("/localvol/usr/lib/mono/1.0/mscorlib.dll.so", O_RDONLY) = -1 ENOENT (No 
such file or directory)
open("/localvol/usr/lib/mono/1.0/mscorlib.dll.so.la", O_RDONLY) = -1 ENOENT (No 
such file or directory)
open("/usr/share/locale/locale.alias", O_RDONLY) = 3
open("/proc/meminfo", O_RDONLY)         = 3
open("/usr/share/locale/en_GB.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT 
(No such file or directory)
open("/usr/share/locale/en_GB.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT 
(No such file or directory)
open("/usr/share/locale/en_GB/LC_MESSAGES/libc.mo", O_RDONLY) = 3
open("/usr/share/locale/en.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT 
(No such file or directory)
open("/usr/share/locale/en.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No 
such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such 
file or directory)
open("/localvol/usr/lib/mono/1.0/mscorlib.dll.config", O_RDONLY) = -1 ENOENT 
(No such file or directory)
open("/usr/share/locale/en_GB.UTF-8/LC_MESSAGES/glib20.mo", O_RDONLY) = -1 
ENOENT (No such file or directory)
open("/usr/share/locale/en_GB.utf8/LC_MESSAGES/glib20.mo", O_RDONLY) = -1 
ENOENT (No such file or directory)
open("/usr/share/locale/en_GB/LC_MESSAGES/glib20.mo", O_RDONLY) = 3
open("/usr/lib/gconv/gconv-modules.cache", O_RDONLY) = 3
open("/etc/nsswitch.conf", O_RDONLY)    = 3
open("/etc/ld.so.cache", O_RDONLY)      = 3
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/libnss_compat.so.2", O_RDONLY) = 3
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/libnsl.so.1", O_RDONLY)      = 3
open("/etc/ld.so.cache", O_RDONLY)      = 3
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/libnss_nis.so.2", O_RDONLY)  = 3
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/libnss_files.so.2", O_RDONLY) = 3
open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 3
open("/localvol/usr/etc/mono/assemblies/mscorlib/mscorlib.config", O_RDONLY) = 
-1 ENOENT (No such file or directory)
open("/home/user/.mono/assemblies/mscorlib/mscorlib.config", O_RDONLY) = -1 
ENOENT (No such file or directory)
mkdir("/home/user/.wapi", 0755)       = -1 EEXIST (File exists)
open("/home/user/.wapi/shared_data-fatboy-Linux-x86_64-328-11-0", O_RDWR) = -1 
ENOENT (No such file or directory)
open("/home/user/.wapi/shared_data-fatboy-Linux-x86_64-328-11-0", 
O_RDWR|O_CREAT|O_EXCL, 0600) = 3
mkdir("/home/user/.wapi", 0755)       = -1 EEXIST (File exists)
stat("/home/user/.wapi/shared_data-fatboy-Linux-x86_64-328-11-0", 
{st_mode=S_IFREG|0600, st_size=1343496, ...}) = 0
mkdir("/home/user/.wapi", 0755)       = -1 EEXIST (File exists)
open("/home/user/.wapi/shared_data-fatboy-Linux-x86_64-328-11-0", O_RDWR) = 3
mkdir("/home/user/.wapi", 0755)       = -1 EEXIST (File exists)
open("/home/user/.wapi/shared_fileshare-fatboy-Linux-x86_64-40-11-0", O_RDWR) = 
-1 ENOENT (No such file or directory)
open("/home/user/.wapi/shared_fileshare-fatboy-Linux-x86_64-40-11-0", 
O_RDWR|O_CREAT|O_EXCL, 0600) = 3
open("/proc/stat", O_RDONLY)            = 3
open("/proc/self/maps", O_RDONLY)       = 3
open("/localvol/usr/etc/mono/config", O_RDONLY) = -1 ENOENT (No such file or 
directory)
open("/home/user/.mono/config", O_RDONLY) = -1 ENOENT (No such file or 
directory)
getcwd("/etc/mono"..., 4096)            = 10
open("gnome-do.exe", O_RDONLY)          = -1 ENOENT (No such file or directory)
Cannot open assembly gnome-do.exe.
mkdir("/home/user/.wapi", 0755)       = -1 EEXIST (File exists)
unlink("/home/user/.wapi/shared_data-fatboy-Linux-x86_64-328-11-0") = 0
mkdir("/home/user/.wapi", 0755)       = -1 EEXIST (File exists)
unlink("/home/user/.wapi/shared_fileshare-fatboy-Linux-x86_64-40-11-0") = 0

-- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable'), (1, 
'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.25.3
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages mono-common depends on:
ii  libc6                         2.7-13     GNU C Library: Shared libraries
ii  libglib2.0-0                  2.16.6-1   The GLib library of C routines

Versions of packages mono-common recommends:
ii  binfmt-support                1.2.11     Support for extra binary formats

mono-common suggests no packages.

-- no debconf information



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to