Bug List: (This bug is not in your last search results)   Show last search results      Search page      Enter new bug
Bug#: 146424
Alias:
Product:
Component:
Status: RESOLVED
Resolution: FIXED
Assigned To: dotnet <dotnet@gentoo.org>
Hardware:
OS:
Version:
Priority:
Severity:
Reporter: DEMAINE Benoît-Pierre, aka DoubleHP <dhp_gentoo@doublehp.org>
Add CC:
CC:
Remove selected CCs
URL:
Summary:
Status Whiteboard:
Keywords:

Filename Description Type Creator Created Size Actions
Create a New Attachment (proposed patch, testcase, etc.) View All

Bug 146424 depends on: 124225 126691 127066 Show dependency tree
Bug 146424 blocks:
Votes: 0    Show votes for this bug    Vote for this bug

Additional Comments: (this is where you put emerge --info)


Not eligible to see or edit group visibility for this bug.






View Bug Activity   |   Format For Printing   |   XML   |   Clone This Bug


Description:   Opened: 2006-09-05 10:55 0000
I am tired of those "mono upgrade problem ? please re-install it"; 

let me create a solution bug: if your bug has been marked duplicate of this
one, this means the solution (that is not  a fix) for your problem is simple:

***

emerge -C mono ; emerge -va1 mono

*** END

No need to comment life time this bug; this bug (will) holds a list of bugs for
which this solution works (I remind: a solution may not be a fix) so that maint
of Gentoo can quikly close new bugs, and maints of Mono can have a list of
problems and reports about it.

Good luck every body, and happy emerge -C :)

------- Comment #1 From Jakub Moc (RETIRED) 2006-09-05 11:02:23 0000 -------
/me notes that this is not a (proper) solution. Shrug...

------- Comment #2 From DEMAINE Benoît-Pierre, aka DoubleHP 2006-09-05 11:09:57 0000 -------
doing as for http://bugs.gentoo.org/show_bug.cgi?id=122774

------- Comment #3 From Jurek Bartuszek 2006-10-22 08:18:05 0000 -------
*** Bug 146301 has been marked as a duplicate of this bug. ***

------- Comment #4 From YLD 2006-11-12 13:20:38 0000 -------
*** Bug 154672 has been marked as a duplicate of this bug. ***

------- Comment #5 From Jurek Bartuszek 2006-11-24 13:12:17 0000 -------
*** Bug 155066 has been marked as a duplicate of this bug. ***

------- Comment #6 From Jurek Bartuszek 2006-12-01 07:24:50 0000 -------
*** Bug 156610 has been marked as a duplicate of this bug. ***

------- Comment #7 From Jurek Bartuszek 2006-12-01 16:12:19 0000 -------
*** Bug 156854 has been marked as a duplicate of this bug. ***

------- Comment #8 From DEMAINE Benoît-Pierre, aka DoubleHP 2006-12-04 08:29:49 0000 -------
Do you think we could partially solve the problem doing this in ebuild:
- we leave download/extract/configure steps as are
- copy /usr/include in temp/work directory
- do a symbolic link to the root of work dir, from ${WORKDIR}/${WORKDIR}
- do the make/compile in some chroot

I am not to force unemerge before compile (what if compile fails ? no more mono
at all for users ???). If mono is bothered with installed version, this should
help him about this.

If not enough, then we move configure in chroot, but then, we also have to copy
loads of tools (automake, autoconf, make ...).

I know this sounds very heavy work; I just intend to get emerge stop "stopping"
on mono every upgrade. What do you all think about chroot ?

(If some maints comes around, please close open bugs 124225 126691 127066 and
131569 . Or if you dont, tell me why not. Thanks. )

------- Comment #9 From Christian Faulhammer 2006-12-04 23:32:58 0000 -------
*** Bug 131569 has been marked as a duplicate of this bug. ***

------- Comment #10 From Jurek Bartuszek 2006-12-12 15:29:48 0000 -------
*** Bug 157969 has been marked as a duplicate of this bug. ***

------- Comment #11 From Jakub Moc (RETIRED) 2007-01-08 14:17:02 0000 -------
*** Bug 160889 has been marked as a duplicate of this bug. ***

------- Comment #12 From Jakub Moc (RETIRED) 2007-01-17 16:22:46 0000 -------
*** Bug 162548 has been marked as a duplicate of this bug. ***

------- Comment #13 From Jakub Moc (RETIRED) 2007-02-17 17:32:54 0000 -------
*** Bug 167357 has been marked as a duplicate of this bug. ***

------- Comment #14 From Kamil Gornik 2007-02-18 19:30:39 0000 -------
there is a little flow in that solution.
When it comes to upgrade of an important system package (i.e. glibc) there
'emerge -e system' is needed.
In that case mono wont'ge upgraded so we have to emerge --resume --skip-first
to skip mono and conitnue that -e battle.
To be sure that we have our software linked against newer mono wehave to
upgrade mono first, then emerge -e (system|world)
I know that is not common but it is, well, important to have it mentioned
sometimes.

------- Comment #15 From DEMAINE Benoît-Pierre, aka DoubleHP 2007-02-18 19:42:18 0000 -------
(In reply to comment #14)
> there is a little flow in that solution.

emerge -C is not proposed as a fix but as a workaround ! This bug tracks dups.
Of course you are right in a way ... and THE SOLUTION would be to fix the code
;)

By definition, the simple fact "this bug" is open DOES mean there is a
"problem". So, yes we know there may be cases where this problem have
potentially very big impact.

That's why this bug is tagged NEW, and not CLOSED ;)

If you are brave enough, please submit a patch :)

------- Comment #16 From Pacho Ramos 2007-04-10 10:58:47 0000 -------
Since some months ago (I think that 4 or 5) I always install mono (and mono
releated packages) from testing and the problem dissappeared for me. Is
possible that an updrate from 1.1.16.1 to 1.2.2.1 fails with this problem but,
an upgrate from 1.2.0 to newer versions work fine for me

------- Comment #17 From Jakub Moc (RETIRED) 2007-05-26 07:13:51 0000 -------
*** Bug 179835 has been marked as a duplicate of this bug. ***

------- Comment #18 From Raja R Harinath 2007-05-31 07:54:28 0000 -------
I think most of these problems will be solved by forcing the build to run in
the C or POSIX locales.

------- Comment #19 From Jurek Bartuszek 2007-05-31 10:14:41 0000 -------
For last few days I tried to solve that issue by preventing mcs from accessing
system-wide GAC in /usr/lib/mono/gac. When mono is not installed, I18N.dll is
not being found:

open("/usr/lib/mono/gac/policy.2.0.I18N/0.0.0.0__0738eb9f132ed756/policy.2.0.I18N.dll",
O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
stat64("/var/tmp/portage/dev-lang/mono-1.2.4/work/mono-1.2.4/mcs/class/lib/net_2_0_bootstrap/I18N.dll",
0xbfeccb78) = -1 ENOENT (No such file or directory)
stat64("/var/tmp/portage/dev-lang/mono-1.2.4/work/mono-1.2.4/mcs/class/lib/net_2_0_bootstrap/I18N.exe",
0xbfeccb78) = -1 ENOENT (No such file or directory)
stat64("/var/tmp/portage/dev-lang/mono-1.2.4/work/mono-1.2.4/mcs/class/lib/net_2_0_bootstrap/I18N/I18N.dll",
0xbfeccb78) = -1 ENOENT (No such file or directory)
stat64("/var/tmp/portage/dev-lang/mono-1.2.4/work/mono-1.2.4/mcs/class/lib/net_2_0_bootstrap/I18N/I18N.exe",
0xbfeccb78) = -1 ENOENT (No such file or directory)
stat64("../../class/lib/net_2_0_bootstrap/I18N.dll", 0xbfeccb78) = -1 ENOENT
(No such file or directory)
stat64("../../class/lib/net_2_0_bootstrap/I18N.exe", 0xbfeccb78) = -1 ENOENT
(No such file or directory)
stat64("../../class/lib/net_2_0_bootstrap/I18N/I18N.dll", 0xbfeccb78) = -1
ENOENT (No such file or directory)
stat64("../../class/lib/net_2_0_bootstrap/I18N/I18N.exe", 0xbfeccb78) = -1
ENOENT (No such file or directory)
open("/usr/lib/mono/gac/I18N/2.0.0.0__0738eb9f132ed756/I18N.dll",
O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
open("/usr/lib/I18N.dll", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or
directory)
open("/usr/lib/mono/gac/I18N/2.0.0.0__0738eb9f132ed756/I18N.exe",
O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
open("/usr/lib/I18N.exe", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or
directory)

and everything goes on smoothly. However, when there is a copy of I18N.dll in
system-wide gac:

open("/usr/lib/mono/gac/policy.2.0.I18N/0.0.0.0__0738eb9f132ed756/policy.2.0.I18N.dll",
O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
stat64("/var/tmp/portage/dev-lang/mono-1.2.4/work/mono-1.2.4/mcs/class/lib/net_2_0_bootstrap/I18N.dll",
0xbfabf768) = -1 ENOENT (No such file or directory)
stat64("/var/tmp/portage/dev-lang/mono-1.2.4/work/mono-1.2.4/mcs/class/lib/net_2_0_bootstrap/I18N.exe",
0xbfabf768) = -1 ENOENT (No such file or directory)
stat64("/var/tmp/portage/dev-lang/mono-1.2.4/work/mono-1.2.4/mcs/class/lib/net_2_0_bootstrap/I18N/I18N.dll",
0xbfabf768) = -1 ENOENT (No such file or directory)
stat64("/var/tmp/portage/dev-lang/mono-1.2.4/work/mono-1.2.4/mcs/class/lib/net_2_0_bootstrap/I18N/I18N.exe",
0xbfabf768) = -1 ENOENT (No such file or directory)
stat64("../../class/lib/net_2_0_bootstrap/I18N.dll", 0xbfabf768) = -1 ENOENT
(No such file or directory)
stat64("../../class/lib/net_2_0_bootstrap/I18N.exe", 0xbfabf768) = -1 ENOENT
(No such file or directory)
stat64("../../class/lib/net_2_0_bootstrap/I18N/I18N.dll", 0xbfabf768) = -1
ENOENT (No such file or directory)
stat64("../../class/lib/net_2_0_bootstrap/I18N/I18N.exe", 0xbfabf768) = -1
ENOENT (No such file or directory)
open("/usr/lib/mono/gac/I18N/2.0.0.0__0738eb9f132ed756/I18N.dll",
O_RDONLY|O_LARGEFILE) = 6

the file is found - last open(...) returns a correct file descriptor, then the
build process fails.

Are you sure that resetting LANG and LC_ALL to C or POSIX before building will
not affect further using mono and its I18N functionality?

------- Comment #20 From Raja R Harinath 2007-05-31 13:37:12 0000 -------
The locale used to build Mono should have no effect on the result of the build.

As far as the C# compiler goes, we specify the appropriate codepage for each 
source file, and I think we always use the "invariant culture" for
case-insensitive compares.

If there's an problem, it's a bug in mono :-)

---

As to the problem of the missing/present I18N.dll -- older mono runtimes exited
when dlls were not found, newer ones throw exceptions which can be caught and
ignored: that could explain why the build sometimes fails and sometimes passes
with a missing I18N.dll.

------- Comment #21 From Raja R Harinath 2007-05-31 13:46:56 0000 -------
The mono packager for Debian also faced a similar issue, and the Debian build
scripts have been using LC_ALL=C since Oct 2006.

Their build line, according to
http://svn.debian.org/wsvn/pkg-mono/mono/trunk/debian/rules?op=file&rev=0&sc=0

  LC_ALL=C $(MAKE) EXTERNAL_MCS=false EXTERNAL_MONO=false

This is based on:

http://lists.alioth.debian.org/pipermail/pkg-mono-devel/2006-October/000548.html

------- Comment #22 From Jurek Bartuszek 2007-05-31 19:32:28 0000 -------
I confirm, this solution works. Excellent! Thank you for your contribution,
Raja, we really appreciate it! Fixed ebuilds have already been commited to the
tree, so I'm finally closing this and all related bugs.

------- Comment #23 From Jurek Bartuszek 2007-05-31 19:34:06 0000 -------
*** Bug 127066 has been marked as a duplicate of this bug. ***

------- Comment #24 From Jurek Bartuszek 2007-06-22 16:12:58 0000 -------
*** Bug 162214 has been marked as a duplicate of this bug. ***

Bug List: (This bug is not in your last search results)   Show last search results      Search page      Enter new bug