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]