Bump.
authorPeter Johanson <latexer@gentoo.org>
Fri, 24 Nov 2006 23:40:40 +0000 (23:40 +0000)
committerPeter Johanson <latexer@gentoo.org>
Fri, 24 Nov 2006 23:40:40 +0000 (23:40 +0000)
Package-Manager: portage-2.1.2_pre2-r8

dev-lang/mono/ChangeLog
dev-lang/mono/Manifest
dev-lang/mono/files/digest-mono-1.2.1 [new file with mode: 0644]
dev-lang/mono/files/mono-1.2.1-zombie-processes.diff [new file with mode: 0644]
dev-lang/mono/mono-1.2.1.ebuild [new file with mode: 0644]

index 41e5f0a64d3891d66411b9b68b6e3649bdb35e13..7c8a02fc4f3021669d19e2059a45537e00ffd282 100644 (file)
@@ -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 <latexer@gentoo.org>
+  +files/mono-1.2.1-zombie-processes.diff, +mono-1.2.1.ebuild:
+  Bump.
 
   04 Nov 2006; Tobias Scherbaum <dertobi123@gentoo.org> ChangeLog:
   ppc stable, bug #150264
index 5d18326e6c3605bc1a00d8138b3d6888b142187c..f9fbb0559a38aeaf97feab75bf911b1aa18ab860 100644 (file)
@@ -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 (file)
index 0000000..dbe2bc9
--- /dev/null
@@ -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 (file)
index 0000000..d3cf471
--- /dev/null
@@ -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 (file)
index 0000000..45e0aa7
--- /dev/null
@@ -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-dotnet/pnet-0.6.12
+                >=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
+}