1 |
commit: 99d34f88dcb8a1d465e476497c127039dcc17f0b |
2 |
Author: Matthew Thode <prometheanfire <AT> gentoo <DOT> org> |
3 |
AuthorDate: Wed Nov 30 01:33:47 2016 +0000 |
4 |
Commit: Matt Thode <prometheanfire <AT> gentoo <DOT> org> |
5 |
CommitDate: Wed Nov 30 02:11:48 2016 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=99d34f88 |
7 |
|
8 |
dev-lang/mono: make kernel config checking not need a kernel to be installed |
9 |
|
10 |
Change to linux_chkconfig_builtin as the value can only be 'y' and even if the |
11 |
kernel config value could be 'm' we don't have a way of checking if it is |
12 |
loaded. |
13 |
|
14 |
Package-Manager: portage-2.3.0 |
15 |
|
16 |
dev-lang/mono/mono-4.6.1.5-r1.ebuild | 119 ++++++++++++++++++++++++++++++++ |
17 |
dev-lang/mono/mono-4.9.0.729-r1.ebuild | 120 +++++++++++++++++++++++++++++++++ |
18 |
2 files changed, 239 insertions(+) |
19 |
|
20 |
diff --git a/dev-lang/mono/mono-4.6.1.5-r1.ebuild b/dev-lang/mono/mono-4.6.1.5-r1.ebuild |
21 |
new file mode 100644 |
22 |
index 00000000..9232a04 |
23 |
--- /dev/null |
24 |
+++ b/dev-lang/mono/mono-4.6.1.5-r1.ebuild |
25 |
@@ -0,0 +1,119 @@ |
26 |
+# Copyright 1999-2016 Gentoo Foundation |
27 |
+# Distributed under the terms of the GNU General Public License v2 |
28 |
+# $Id$ |
29 |
+ |
30 |
+EAPI=6 |
31 |
+ |
32 |
+inherit eutils linux-info mono-env flag-o-matic pax-utils versionator multilib-minimal |
33 |
+ |
34 |
+DESCRIPTION="Mono runtime and class libraries, a C# compiler/interpreter" |
35 |
+HOMEPAGE="http://www.mono-project.com/Main_Page" |
36 |
+SRC_URI="http://download.mono-project.com/sources/${PN}/${P}.tar.bz2" |
37 |
+ |
38 |
+LICENSE="MIT LGPL-2.1 GPL-2 BSD-4 NPL-1.1 Ms-PL GPL-2-with-linking-exception IDPL" |
39 |
+SLOT="0" |
40 |
+ |
41 |
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86 ~amd64-linux" |
42 |
+ |
43 |
+IUSE="nls minimal pax_kernel xen doc" |
44 |
+ |
45 |
+COMMONDEPEND=" |
46 |
+ !minimal? ( >=dev-dotnet/libgdiplus-2.10 ) |
47 |
+ ia64? ( sys-libs/libunwind ) |
48 |
+ nls? ( sys-devel/gettext ) |
49 |
+" |
50 |
+RDEPEND="${COMMONDEPEND} |
51 |
+ || ( www-client/links www-client/lynx ) |
52 |
+" |
53 |
+DEPEND="${COMMONDEPEND} |
54 |
+ sys-devel/bc |
55 |
+ virtual/yacc |
56 |
+ pax_kernel? ( sys-apps/elfix ) |
57 |
+ !dev-lang/mono-basic |
58 |
+" |
59 |
+ |
60 |
+S="${WORKDIR}/${PN}-$(get_version_component_range 1-3)" |
61 |
+ |
62 |
+pkg_pretend() { |
63 |
+ linux-info_pkg_setup |
64 |
+ if use kernel_linux; then |
65 |
+ if linux_config_exists; then |
66 |
+ linux_chkconfig_builtin SYSVIPC || die "SYSVIPC not enabled in the kernel" |
67 |
+ else |
68 |
+ # https://github.com/gentoo/gentoo/blob/f200e625bda8de696a28338318c9005b69e34710/eclass/linux-info.eclass#L686 |
69 |
+ ewarn "kernel config not found" |
70 |
+ ewarn "If CONFIG_SYSVIPC is not set in your kernel .config, mono will hang while compiling." |
71 |
+ ewarn "See http://bugs.gentoo.org/261869 for more info." |
72 |
+ fi |
73 |
+ fi |
74 |
+} |
75 |
+ |
76 |
+pkg_setup() { |
77 |
+ mono-env_pkg_setup |
78 |
+} |
79 |
+ |
80 |
+src_prepare() { |
81 |
+ # we need to sed in the paxctl-ng -mr in the runtime/mono-wrapper.in so it don't |
82 |
+ # get killed in the build proces when MPROTECT is enable. #286280 |
83 |
+ # RANDMMAP kill the build proces to #347365 |
84 |
+ # use paxmark.sh to get PT/XT logic #532244 |
85 |
+ if use pax_kernel ; then |
86 |
+ ewarn "We are disabling MPROTECT on the mono binary." |
87 |
+ |
88 |
+ # issue 9 : https://github.com/Heather/gentoo-dotnet/issues/9 |
89 |
+ sed '/exec "/ i\paxmark.sh -mr "$r/@mono_runtime@"' -i "${S}"/runtime/mono-wrapper.in || die "Failed to sed mono-wrapper.in" |
90 |
+ fi |
91 |
+ |
92 |
+ # mono build system can fail otherwise |
93 |
+ strip-flags |
94 |
+ |
95 |
+ # Fix VB targets |
96 |
+ # http://osdir.com/ml/general/2015-05/msg20808.html |
97 |
+ #eapply "${FILESDIR}/add_missing_vb_portable_targets.patch" |
98 |
+ |
99 |
+ # Fix build when sgen disabled |
100 |
+ # https://bugzilla.xamarin.com/show_bug.cgi?id=32015 |
101 |
+ #eapply "${FILESDIR}/${PN}-4.0.2.5-fix-mono-dis-makefile-am-when-without-sgen.patch" |
102 |
+ |
103 |
+ # TODO: update patch |
104 |
+ # Fix atomic_add_i4 support for 32-bit ppc |
105 |
+ # https://github.com/mono/mono/compare/f967c79926900343f399c75624deedaba460e544^...8f379f0c8f98493180b508b9e68b9aa76c0c5bdf |
106 |
+ #epatch "${FILESDIR}/${PN}-4.0.2.5-fix-ppc-atomic-add-i4.patch" |
107 |
+ |
108 |
+ # TODO: update patch |
109 |
+ #epatch "${FILESDIR}/systemweb3.patch" |
110 |
+ #epatch "${FILESDIR}/fix-for-GitExtensions-issue-2710-another-resolution.patch" |
111 |
+ #epatch "${FILESDIR}/fix-for-bug36724.patch" |
112 |
+ |
113 |
+ default |
114 |
+ #eapply_user |
115 |
+ multilib_copy_sources |
116 |
+} |
117 |
+ |
118 |
+multilib_src_configure() { |
119 |
+ local myeconfargs=( |
120 |
+ --disable-silent-rules |
121 |
+ $(use_with xen xen_opt) |
122 |
+ --without-ikvm-native |
123 |
+ --disable-dtrace |
124 |
+ $(use_with doc mcs-docs) |
125 |
+ $(use_enable nls) |
126 |
+ ) |
127 |
+ |
128 |
+ econf "${myeconfargs[@]}" |
129 |
+} |
130 |
+ |
131 |
+multilib_src_test() { |
132 |
+ cd mcs/tests || die |
133 |
+ emake check |
134 |
+} |
135 |
+ |
136 |
+multilib_src_install() { |
137 |
+ default_src_install |
138 |
+ |
139 |
+ # Remove files not respecting LDFLAGS and that we are not supposed to provide, see Fedora |
140 |
+ # mono.spec and http://www.mail-archive.com/mono-devel-list@××××××××××××.com/msg24870.html |
141 |
+ # for reference. |
142 |
+ rm -f "${ED}"/usr/lib/mono/{2.0,4.5}/mscorlib.dll.so || die |
143 |
+ rm -f "${ED}"/usr/lib/mono/{2.0,4.5}/mcs.exe.so || die |
144 |
+} |
145 |
|
146 |
diff --git a/dev-lang/mono/mono-4.9.0.729-r1.ebuild b/dev-lang/mono/mono-4.9.0.729-r1.ebuild |
147 |
new file mode 100644 |
148 |
index 00000000..b97f86a |
149 |
--- /dev/null |
150 |
+++ b/dev-lang/mono/mono-4.9.0.729-r1.ebuild |
151 |
@@ -0,0 +1,120 @@ |
152 |
+# Copyright 1999-2016 Gentoo Foundation |
153 |
+# Distributed under the terms of the GNU General Public License v2 |
154 |
+# $Id$ |
155 |
+ |
156 |
+EAPI=6 |
157 |
+ |
158 |
+inherit eutils linux-info mono-env flag-o-matic pax-utils versionator multilib-minimal |
159 |
+ |
160 |
+DESCRIPTION="Mono runtime and class libraries, a C# compiler/interpreter" |
161 |
+HOMEPAGE="http://www.mono-project.com/Main_Page" |
162 |
+SRC_URI="http://download.mono-project.com/sources/${PN}/nightly/${P}.tar.bz2" |
163 |
+ |
164 |
+LICENSE="MIT LGPL-2.1 GPL-2 BSD-4 NPL-1.1 Ms-PL GPL-2-with-linking-exception IDPL" |
165 |
+SLOT="0" |
166 |
+ |
167 |
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86 ~amd64-linux" |
168 |
+ |
169 |
+IUSE="nls minimal pax_kernel xen doc" |
170 |
+ |
171 |
+COMMONDEPEND=" |
172 |
+ !minimal? ( >=dev-dotnet/libgdiplus-2.10 ) |
173 |
+ ia64? ( sys-libs/libunwind ) |
174 |
+ nls? ( sys-devel/gettext ) |
175 |
+" |
176 |
+RDEPEND="${COMMONDEPEND} |
177 |
+ || ( www-client/links www-client/lynx ) |
178 |
+" |
179 |
+DEPEND="${COMMONDEPEND} |
180 |
+ sys-devel/bc |
181 |
+ virtual/yacc |
182 |
+ pax_kernel? ( sys-apps/elfix ) |
183 |
+ dev-util/cmake |
184 |
+ !dev-lang/mono-basic |
185 |
+" |
186 |
+ |
187 |
+S="${WORKDIR}/${PN}-$(get_version_component_range 1-3)" |
188 |
+ |
189 |
+pkg_pretend() { |
190 |
+ linux-info_pkg_setup |
191 |
+ if use kernel_linux; then |
192 |
+ if linux_config_exists; then |
193 |
+ linux_chkconfig_builtin SYSVIPC || die "SYSVIPC not enabled in the kernel" |
194 |
+ else |
195 |
+ # https://github.com/gentoo/gentoo/blob/f200e625bda8de696a28338318c9005b69e34710/eclass/linux-info.eclass#L686 |
196 |
+ ewarn "kernel config not found" |
197 |
+ ewarn "If CONFIG_SYSVIPC is not set in your kernel .config, mono will hang while compiling." |
198 |
+ ewarn "See http://bugs.gentoo.org/261869 for more info." |
199 |
+ fi |
200 |
+ fi |
201 |
+} |
202 |
+ |
203 |
+pkg_setup() { |
204 |
+ mono-env_pkg_setup |
205 |
+} |
206 |
+ |
207 |
+src_prepare() { |
208 |
+ # we need to sed in the paxctl-ng -mr in the runtime/mono-wrapper.in so it don't |
209 |
+ # get killed in the build proces when MPROTECT is enable. #286280 |
210 |
+ # RANDMMAP kill the build proces to #347365 |
211 |
+ # use paxmark.sh to get PT/XT logic #532244 |
212 |
+ if use pax_kernel ; then |
213 |
+ ewarn "We are disabling MPROTECT on the mono binary." |
214 |
+ |
215 |
+ # issue 9 : https://github.com/Heather/gentoo-dotnet/issues/9 |
216 |
+ sed '/exec "/ i\paxmark.sh -mr "$r/@mono_runtime@"' -i "${S}"/runtime/mono-wrapper.in || die "Failed to sed mono-wrapper.in" |
217 |
+ fi |
218 |
+ |
219 |
+ # mono build system can fail otherwise |
220 |
+ strip-flags |
221 |
+ |
222 |
+ # Fix VB targets |
223 |
+ # http://osdir.com/ml/general/2015-05/msg20808.html |
224 |
+ #eapply "${FILESDIR}/add_missing_vb_portable_targets.patch" |
225 |
+ |
226 |
+ # Fix build when sgen disabled |
227 |
+ # https://bugzilla.xamarin.com/show_bug.cgi?id=32015 |
228 |
+ #eapply "${FILESDIR}/${PN}-4.0.2.5-fix-mono-dis-makefile-am-when-without-sgen.patch" |
229 |
+ |
230 |
+ # TODO: update patch |
231 |
+ # Fix atomic_add_i4 support for 32-bit ppc |
232 |
+ # https://github.com/mono/mono/compare/f967c79926900343f399c75624deedaba460e544^...8f379f0c8f98493180b508b9e68b9aa76c0c5bdf |
233 |
+ #epatch "${FILESDIR}/${PN}-4.0.2.5-fix-ppc-atomic-add-i4.patch" |
234 |
+ |
235 |
+ # TODO: update patch |
236 |
+ #epatch "${FILESDIR}/systemweb3.patch" |
237 |
+ #epatch "${FILESDIR}/fix-for-GitExtensions-issue-2710-another-resolution.patch" |
238 |
+ #epatch "${FILESDIR}/fix-for-bug36724.patch" |
239 |
+ |
240 |
+ default |
241 |
+ #eapply_user |
242 |
+ multilib_copy_sources |
243 |
+} |
244 |
+ |
245 |
+multilib_src_configure() { |
246 |
+ local myeconfargs=( |
247 |
+ --disable-silent-rules |
248 |
+ $(use_with xen xen_opt) |
249 |
+ --without-ikvm-native |
250 |
+ --disable-dtrace |
251 |
+ $(use_with doc mcs-docs) |
252 |
+ $(use_enable nls) |
253 |
+ ) |
254 |
+ |
255 |
+ econf "${myeconfargs[@]}" |
256 |
+} |
257 |
+ |
258 |
+multilib_src_test() { |
259 |
+ cd mcs/tests || die |
260 |
+ emake check |
261 |
+} |
262 |
+ |
263 |
+multilib_src_install() { |
264 |
+ default_src_install |
265 |
+ |
266 |
+ # Remove files not respecting LDFLAGS and that we are not supposed to provide, see Fedora |
267 |
+ # mono.spec and http://www.mail-archive.com/mono-devel-list@××××××××××××.com/msg24870.html |
268 |
+ # for reference. |
269 |
+ rm -f "${ED}"/usr/lib/mono/{2.0,4.5}/mscorlib.dll.so || die |
270 |
+ rm -f "${ED}"/usr/lib/mono/{2.0,4.5}/mcs.exe.so || die |
271 |
+} |