From 2680ce8dff90bddc883acce5d858e90116e5dc4b Mon Sep 17 00:00:00 2001 From: Peter Johanson Date: Fri, 24 Nov 2006 23:40:40 +0000 Subject: [PATCH] Bump. Package-Manager: portage-2.1.2_pre2-r8 --- dev-lang/mono/ChangeLog | 8 +- dev-lang/mono/Manifest | 20 +- dev-lang/mono/files/digest-mono-1.2.1 | 3 + .../files/mono-1.2.1-zombie-processes.diff | 256 ++++++++++++++++++ dev-lang/mono/mono-1.2.1.ebuild | 103 +++++++ 5 files changed, 385 insertions(+), 5 deletions(-) create mode 100644 dev-lang/mono/files/digest-mono-1.2.1 create mode 100644 dev-lang/mono/files/mono-1.2.1-zombie-processes.diff create mode 100644 dev-lang/mono/mono-1.2.1.ebuild diff --git a/dev-lang/mono/ChangeLog b/dev-lang/mono/ChangeLog index 41e5f0a64d38..7c8a02fc4f30 100644 --- a/dev-lang/mono/ChangeLog +++ b/dev-lang/mono/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for dev-lang/mono # Copyright 2002-2006 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-lang/mono/ChangeLog,v 1.97 2006/11/04 15:03:34 dertobi123 Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-lang/mono/ChangeLog,v 1.98 2006/11/24 23:40:40 latexer Exp $ + +*mono-1.2.1 (24 Nov 2006) + + 24 Nov 2006; Peter Johanson + +files/mono-1.2.1-zombie-processes.diff, +mono-1.2.1.ebuild: + Bump. 04 Nov 2006; Tobias Scherbaum ChangeLog: ppc stable, bug #150264 diff --git a/dev-lang/mono/Manifest b/dev-lang/mono/Manifest index 5d18326e6c36..f9fbb0559a38 100644 --- a/dev-lang/mono/Manifest +++ b/dev-lang/mono/Manifest @@ -22,9 +22,14 @@ AUX mono-1.1.18-mcs-crasher-fix.diff 437 RMD160 08cd21ee2aaf40d1fc608a48eaa07fc7 MD5 48a38cb735bc6e9a4735dc9c2952625b files/mono-1.1.18-mcs-crasher-fix.diff 437 RMD160 08cd21ee2aaf40d1fc608a48eaa07fc72a486034 files/mono-1.1.18-mcs-crasher-fix.diff 437 SHA256 71b06b9f00ad66a87872cd90f3c3d578e11a2152215883a40c73c44879cf7c80 files/mono-1.1.18-mcs-crasher-fix.diff 437 +AUX mono-1.2.1-zombie-processes.diff 6382 RMD160 9e497bdc3ba8f63a34bfd9921b390b0e94aca018 SHA1 f623bbfe9fdb01e01be30eaf70e53f402068e51b SHA256 df5879f4f98b7631b3bb8395657883609bf35761dc0444d4a28b98eb1386b901 +MD5 2827d95f880924b8f51f70ee8998cd89 files/mono-1.2.1-zombie-processes.diff 6382 +RMD160 9e497bdc3ba8f63a34bfd9921b390b0e94aca018 files/mono-1.2.1-zombie-processes.diff 6382 +SHA256 df5879f4f98b7631b3bb8395657883609bf35761dc0444d4a28b98eb1386b901 files/mono-1.2.1-zombie-processes.diff 6382 DIST mono-1.1.13.8.1.tar.gz 17758715 RMD160 a100a96b19300b253c12a2ad70caf65721418209 SHA1 f2cb79844073694859b1fb92eb770e3705239a3d SHA256 841cd62de1f61fefd17190dcc744e03f49c495039cc2088627ede9d9d825e21a DIST mono-1.1.16.1.tar.gz 19115095 RMD160 3ccf59d5e8f3e7ce74bccd495d7a8413a0fdce9c SHA1 fd68988e2d6002f4b631edfb8dee372bc9d979b3 SHA256 6404bd0b34c642bb159328486949424d7d51f444cfbed5c83ee5f4ee3ad34b0f DIST mono-1.1.18.tar.gz 19457001 RMD160 60134edff923ca2a39cb82f75f5dcc7468edb601 SHA1 9791658fe6f5e4c6fd001a2f7fe4d46e80b549e2 SHA256 8b5a62cb91b92a9b77c62595f7f081971efac66fdfebaf1de7cd5c15b425c36b +DIST mono-1.2.1.tar.gz 19861863 RMD160 1f363ab99cbfcb6ded9dc5b2a82cd0c2f61276be SHA1 70056379eee61c2b4691af772efb5111dd0a63c3 SHA256 7d37908a6841209d44380602426e5e751b987e6f32c08dd6d15bc806298358de DIST mono-1.2.tar.gz 19606768 RMD160 5143aee08d5289852166cdac1d81c6be63a1595d SHA1 e19af80b014590d9bf9e5986b9920779c3086595 SHA256 41e1dfe6e2acfd22375f949c6f5984eacfb3b75d0b140a1062d1d78a4aabf64f EBUILD mono-1.1.13.8.1.ebuild 2664 RMD160 7e1f083b783beb6ecb57e2cb07e477cd89835b34 SHA1 e419b741d0501de08d339aa95f1cb20b1cfa1fce SHA256 aa9ef22440048d16a0b2fd5635774132997c88e227b18bd1d75dd4bd5e90a34f MD5 0ed35833d9b3acbfed16adc5baaf56d4 mono-1.1.13.8.1.ebuild 2664 @@ -42,14 +47,18 @@ EBUILD mono-1.1.18.ebuild 2839 RMD160 0d460cf3ba4ae4ded656f8a7eb919c3011579ac5 S MD5 161188252053d1852e854b488b901647 mono-1.1.18.ebuild 2839 RMD160 0d460cf3ba4ae4ded656f8a7eb919c3011579ac5 mono-1.1.18.ebuild 2839 SHA256 7a986002ca72aa5a399666e015c1a74929573d994d8b76dbf6792b724391add3 mono-1.1.18.ebuild 2839 +EBUILD mono-1.2.1.ebuild 2795 RMD160 505a40bd19ccf7208639cd5b434f50d02771ee51 SHA1 9f597be390269bf7ba72aabcdcffc40aaed91992 SHA256 d697b553803c79a10e3add508c5f2fce65fe7bf9a3e8b785801a8a453e954316 +MD5 13347d3eca628172da524ae9de0499c1 mono-1.2.1.ebuild 2795 +RMD160 505a40bd19ccf7208639cd5b434f50d02771ee51 mono-1.2.1.ebuild 2795 +SHA256 d697b553803c79a10e3add508c5f2fce65fe7bf9a3e8b785801a8a453e954316 mono-1.2.1.ebuild 2795 EBUILD mono-1.2.ebuild 2743 RMD160 4cdf88df26e446a2570feeb1419164b5d14e3bdc SHA1 2f3926f0628cf1766a33887c08fabc8d977d2b9b SHA256 86fe892557d5da34fbbace09290ad4cf0d09c8176769f6aa61fc57f37cf004c9 MD5 7bbd3370a815b9ed4935d7b8758615e7 mono-1.2.ebuild 2743 RMD160 4cdf88df26e446a2570feeb1419164b5d14e3bdc mono-1.2.ebuild 2743 SHA256 86fe892557d5da34fbbace09290ad4cf0d09c8176769f6aa61fc57f37cf004c9 mono-1.2.ebuild 2743 -MISC ChangeLog 24134 RMD160 081f4f2320628477ed086d16e60f0f709ad9f949 SHA1 6132df1cc600765fcefb3b872a166132284d64dc SHA256 9fe39c7e05187e4c5008038235ee0dba473bede92abf0dbbbe6d976cd55ca341 -MD5 2e48a91714ceac96e25be9facfb7b93e ChangeLog 24134 -RMD160 081f4f2320628477ed086d16e60f0f709ad9f949 ChangeLog 24134 -SHA256 9fe39c7e05187e4c5008038235ee0dba473bede92abf0dbbbe6d976cd55ca341 ChangeLog 24134 +MISC ChangeLog 24281 RMD160 d9cc433bc0a3d19251f0f90edb053bb20063645c SHA1 fc6976d8378b0bd1aefefd98b6ba92a6aae246b1 SHA256 5c6d04911c2872e2ff488ae2c365175522869a508c7c88c7a59349b2a9e3ce9d +MD5 6e9eabc33ae83f404ec408bf73e74245 ChangeLog 24281 +RMD160 d9cc433bc0a3d19251f0f90edb053bb20063645c ChangeLog 24281 +SHA256 5c6d04911c2872e2ff488ae2c365175522869a508c7c88c7a59349b2a9e3ce9d ChangeLog 24281 MISC metadata.xml 159 RMD160 41527b6d3fa74dfdcd619b7d91c478b72ecc8ae8 SHA1 ac19a418765e817e54d4c54c1992c9062d5dcf3e SHA256 986c3e2fa3baa5d6e8c0b5c27a2550601780d0cc7857f7f1c01523491706d909 MD5 76b314cc7b7b79b298dd4889dff8c9cd metadata.xml 159 RMD160 41527b6d3fa74dfdcd619b7d91c478b72ecc8ae8 metadata.xml 159 @@ -69,3 +78,6 @@ SHA256 f6cfe6d2dfd1765838f21bc87f80a4014e6607a40315208e2e3768c5400879ce files/di MD5 ca1445b57a30df1ac1497849a2016110 files/digest-mono-1.2 232 RMD160 7888c0c2715ab0782d331ddc999b4fe2ed839a35 files/digest-mono-1.2 232 SHA256 6d49fa27482d64ea72177881a66448a413ac642ed164deaea5530da1d856e513 files/digest-mono-1.2 232 +MD5 3c5db3d0c8e3c9a9f3fc434f1ebeaafe files/digest-mono-1.2.1 238 +RMD160 c4aa4ce70004170e9ab5a2c78da795df3cc0870c files/digest-mono-1.2.1 238 +SHA256 06421ce2dd70bb6435485dec46534f105e80ac9507e18701e64e3aad10d99418 files/digest-mono-1.2.1 238 diff --git a/dev-lang/mono/files/digest-mono-1.2.1 b/dev-lang/mono/files/digest-mono-1.2.1 new file mode 100644 index 000000000000..dbe2bc9c88d5 --- /dev/null +++ b/dev-lang/mono/files/digest-mono-1.2.1 @@ -0,0 +1,3 @@ +MD5 47621f63126d6599356d28668fb5fea2 mono-1.2.1.tar.gz 19861863 +RMD160 1f363ab99cbfcb6ded9dc5b2a82cd0c2f61276be mono-1.2.1.tar.gz 19861863 +SHA256 7d37908a6841209d44380602426e5e751b987e6f32c08dd6d15bc806298358de mono-1.2.1.tar.gz 19861863 diff --git a/dev-lang/mono/files/mono-1.2.1-zombie-processes.diff b/dev-lang/mono/files/mono-1.2.1-zombie-processes.diff new file mode 100644 index 000000000000..d3cf471d821c --- /dev/null +++ b/dev-lang/mono/files/mono-1.2.1-zombie-processes.diff @@ -0,0 +1,256 @@ +--- trunk/mono/mono/io-layer/process-private.h 2006/05/12 10:38:20 60618 ++++ trunk/mono/mono/io-layer/process-private.h 2006/11/23 00:39:10 68378 +@@ -31,6 +31,7 @@ + gchar proc_name[_WAPI_PROC_NAME_MAX_LEN]; + size_t min_working_set; + size_t max_working_set; ++ gboolean waited; + }; + + extern void _wapi_process_reap (void); + +--- trunk/mono/mono/io-layer/processes.c 2006/11/18 19:02:51 68130 ++++ trunk/mono/mono/io-layer/processes.c 2006/11/23 00:39:10 68378 +@@ -80,6 +80,10 @@ + process_handle->exitstatus = WEXITSTATUS(status); + } + _wapi_time_t_to_filetime (time(NULL), &process_handle->exit_time); ++ ++ /* Don't set process_handle->waited here, it needs to only ++ * happen in the parent when wait() has been called. ++ */ + + #ifdef DEBUG + g_message ("%s: Setting handle %p signalled", __func__, handle); +@@ -108,17 +112,17 @@ + int status; + pid_t ret; + +- if (_wapi_handle_issignalled (test)) { +- /* We've already done this one */ +- return (FALSE); +- } +- + ok = _wapi_lookup_handle (test, WAPI_HANDLE_PROCESS, + (gpointer *)&process); + if (ok == FALSE) { + /* The handle must have been too old and was reaped */ + return (FALSE); + } ++ ++ if (process->waited) { ++ /* We've already done this one */ ++ return(FALSE); ++ } + + do { + ret = waitpid (process->id, &status, WNOHANG); +@@ -138,6 +142,8 @@ + g_message ("%s: Process %d finished", __func__, ret); + #endif + ++ process->waited = TRUE; ++ + *(int *)user_data = status; + + return (TRUE); +@@ -185,8 +191,16 @@ + #ifdef DEBUG + g_message ("%s: Waiting for process %p", __func__, handle); + #endif ++ ++ ok = _wapi_lookup_handle (handle, WAPI_HANDLE_PROCESS, ++ (gpointer *)&process_handle); ++ if (ok == FALSE) { ++ g_warning ("%s: error looking up process handle %p", __func__, ++ handle); ++ return(WAIT_FAILED); ++ } + +- if (_wapi_handle_issignalled (handle)) { ++ if (process_handle->waited) { + /* We've already done this one */ + #ifdef DEBUG + g_message ("%s: Process %p already signalled", __func__, +@@ -195,14 +209,6 @@ + + return (WAIT_OBJECT_0); + } +- +- ok = _wapi_lookup_handle (handle, WAPI_HANDLE_PROCESS, +- (gpointer *)&process_handle); +- if (ok == FALSE) { +- g_warning ("%s: error looking up process handle %p", __func__, +- handle); +- return(WAIT_FAILED); +- } + + pid = process_handle->id; + +@@ -211,9 +217,15 @@ + #endif + + if (timeout == INFINITE) { +- while ((ret = waitpid (pid, &status, 0)) != pid) { +- if (ret == (pid_t)-1 && errno != EINTR) { +- return(WAIT_FAILED); ++ if (pid == _wapi_getpid ()) { ++ do { ++ Sleep (10000); ++ } while(1); ++ } else { ++ while ((ret = waitpid (pid, &status, 0)) != pid) { ++ if (ret == (pid_t)-1 && errno != EINTR) { ++ return(WAIT_FAILED); ++ } + } + } + } else if (timeout == 0) { +@@ -224,18 +236,47 @@ + } + } else { + /* Poll in a loop */ +- do { +- ret = waitpid (pid, &status, WNOHANG); +- if (ret == pid) { +- break; +- } else if (ret == (pid_t)-1 && errno != EINTR) { +- return(WAIT_FAILED); +- } ++ if (pid == _wapi_getpid ()) { ++ Sleep (timeout); ++ return(WAIT_TIMEOUT); ++ } else { ++ do { ++ ret = waitpid (pid, &status, WNOHANG); ++#ifdef DEBUG ++ g_message ("%s: waitpid returns: %d, timeout is %d", __func__, ret, timeout); ++#endif ++ ++ if (ret == pid) { ++ break; ++ } else if (ret == (pid_t)-1 && ++ errno != EINTR) { ++#ifdef DEBUG ++ g_message ("%s: waitpid failure: %s", ++ __func__, ++ g_strerror (errno)); ++#endif + +- _wapi_handle_spin (100); +- timeout -= 100; +- } while (timeout > 0); ++ if (errno == ECHILD && ++ process_handle->waited) { ++ /* The background ++ * process reaper must ++ * have got this one ++ */ ++#ifdef DEBUG ++ g_message ("%s: Process %p already reaped", __func__, handle); ++#endif + ++ return(WAIT_OBJECT_0); ++ } else { ++ return(WAIT_FAILED); ++ } ++ } ++ ++ _wapi_handle_spin (100); ++ timeout -= 100; ++ } while (timeout > 0); ++ } ++ + if (timeout <= 0) { + return(WAIT_TIMEOUT); + } +@@ -251,7 +292,8 @@ + SetLastError (ERROR_OUTOFMEMORY); + return (WAIT_FAILED); + } +- ++ process_handle->waited = TRUE; ++ + return(WAIT_OBJECT_0); + } + +@@ -268,6 +310,8 @@ + process_handle->min_working_set = 204800; + process_handle->max_working_set = 1413120; + ++ process_handle->waited = FALSE; ++ + _wapi_time_t_to_filetime (time (NULL), &process_handle->create_time); + } + +@@ -919,6 +963,11 @@ + g_strfreev (env_strings); + } + ++#ifdef DEBUG ++ g_message ("%s: returning handle %p for pid %d", __func__, handle, ++ pid); ++#endif ++ + return(ret); + } + +@@ -960,6 +1009,8 @@ + const char *handle_env; + struct _WapiHandle_process process_handle = {0}; + ++ mono_once (&process_ops_once, process_ops_init); ++ + handle_env = g_getenv ("_WAPI_PROCESS_HANDLE_OFFSET"); + g_unsetenv ("_WAPI_PROCESS_HANDLE_OFFSET"); + +--- trunk/mono/mono/io-layer/wapi-private.h 2006/03/24 12:19:30 58409 ++++ trunk/mono/mono/io-layer/wapi-private.h 2006/11/23 00:39:10 68378 +@@ -24,8 +24,7 @@ + /* Increment this whenever an incompatible change is made to the + * shared handle structure. + */ +-/* Next time I change this, remember to fix the process count in shared.c */ +-#define _WAPI_HANDLE_VERSION 10 ++#define _WAPI_HANDLE_VERSION 11 + + typedef enum { + WAPI_HANDLE_UNUSED=0, + +--- trunk/mono/mono/io-layer/shared.c 2006/07/25 12:56:51 62955 ++++ trunk/mono/mono/io-layer/shared.c 2006/11/23 00:39:10 68378 +@@ -292,12 +292,11 @@ + for (i = 0; i < _WAPI_SHARED_SEM_COUNT; i++) { + def_vals[i] = 1; + } +-#ifdef NEXT_VERSION_INC ++ + /* Process count must start at '0' - the 1 for all the others + * sets the semaphore to "unlocked" + */ + def_vals[_WAPI_SHARED_SEM_PROCESS_COUNT] = 0; +-#endif + + defs.array = def_vals; + +@@ -438,19 +437,9 @@ + + proc_count = semctl (_wapi_sem_id, _WAPI_SHARED_SEM_PROCESS_COUNT, + GETVAL); +-#ifdef NEXT_VERSION_INC ++ + g_assert (proc_count > 0); + if (proc_count == 1) { +-#else +- /* Compatibility - the semaphore was initialised to '1' (which +- * normally means 'unlocked'. Instead of fixing that right +- * now, which would mean a shared file version increment, just +- * cope with the value starting too high for now. Fix this +- * next time I have to change the file version. +- */ +- g_assert (proc_count > 1); +- if (proc_count == 2) { +-#endif + /* Just us, so blow away the semaphores and the shared + * files + */ diff --git a/dev-lang/mono/mono-1.2.1.ebuild b/dev-lang/mono/mono-1.2.1.ebuild new file mode 100644 index 000000000000..45e0aa702150 --- /dev/null +++ b/dev-lang/mono/mono-1.2.1.ebuild @@ -0,0 +1,103 @@ +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-lang/mono/mono-1.2.1.ebuild,v 1.1 2006/11/24 23:40:40 latexer Exp $ + +inherit eutils flag-o-matic multilib autotools + +DESCRIPTION="Mono runtime and class libraries, a C# compiler/interpreter" +HOMEPAGE="http://www.go-mono.com" +SRC_URI="http://www.go-mono.com/sources/mono/${P}.tar.gz" + +LICENSE="|| ( GPL-2 LGPL-2 X11 )" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~x86" +IUSE="X nptl" + +RDEPEND="!=dev-libs/glib-2.6 + nptl? ( >=sys-devel/gcc-3.3.5-r1 ) + ppc? ( + >=sys-devel/gcc-3.2.3-r4 + >=sys-libs/glibc-2.3.3_pre20040420 + ) + X? ( >=dev-dotnet/libgdiplus-1.2.1 )" +DEPEND="${RDEPEND} + sys-devel/bc + >=dev-util/pkgconfig-0.19" + +# Parallel build unfriendly +MAKEOPTS="${MAKEOPTS} -j1" + +# confcache causes build errors +RESTRICT="confcache" + +function get-memory-total() { + cat /proc/meminfo | grep MemTotal | sed -r "s/[^0-9]*([[0-9]+).*/\1/" +} + +src_unpack() { + unpack ${A} + cd ${S} + + epatch ${FILESDIR}/${P}-zombie-processes.diff + + # Fix the install path, install into $(libdir) + sed -i -e 's:$(prefix)/lib:$(libdir):' \ + -i -e 's:$(exec_prefix)/lib:$(libdir):' \ + -i -e "s:'mono_libdir=\${exec_prefix}/lib':\"mono_libdir=\$libdir\":" \ + ${S}/{scripts,mono/metadata}/Makefile.am ${S}/configure.in \ + || die "sed failed" + + sed -i -e 's:^libdir.*:libdir=@libdir@:' \ + -i -e 's:${prefix}/lib/:${libdir}/:g' \ + ${S}/{scripts,}/*.pc.in \ + || die "sed failed" + + # Remove dummy ltconfig and let libtool handle it + rm -f ${S}/libgc/ltconfig + + eautoreconf +} + +src_compile() { + # mono's build system is finiky, strip the flags + strip-flags + + # Enable the 2.0 FX, use the system glib and the gc + local myconf="--with-preview=yes --with-glib=system --with-gc=included" + + # Threading support + if use amd64 ; then + # force __thread on amd64 (bug #83770) + myconf="${myconf} --with-tls=__thread" + else + if use nptl ; then + myconf="${myconf} --with-tls=__thread" + else + myconf="${myconf} --with-tls=pthread" + fi + fi + + # Enable large heaps if memory is more than >=3GB + if [[ $(get-memory-total) -ge 3145728 ]] ; then + myconf="${myconf} --with-large-heap=yes" + fi + + # Force the use of monolite mcs to prevent issues with classlibs (bug #118062) + touch ${S}/mcs/build/deps/use-monolite + + econf ${myconf} || die "configure failed" + emake || die "compile failed" +} + +src_install() { + emake DESTDIR=${D} install || die "install failed" + + dodoc AUTHORS ChangeLog NEWS README + + docinto docs + dodoc docs/* + + docinto libgc + dodoc libgc/ChangeLog +} -- 2.26.2