forked from pool/mono-core
Accepting request 809780 from Mono:Factory
- Fixup mono-find-requires for v1 profiles - Add mono-find-provides and mono-find-requires from Fedora and use it instead. Fixes boo#1152775 - Add fix-s390x-ucontext.patch: fix the build on 15.2/s390x (bsc#1171934). - Add _constraints to prevent running out of disk space. - Enable roslyn on aarch64 to build additionnal tools (mdoc.exe, ...) - Add mono.attr and install it to %_rpmconfigdir/fileattrs: enable the dependency scanner for rpm packages (boo#1152775). - Update to the most current mono release, 6.8.0.105. OBS-URL: https://build.opensuse.org/request/show/809780 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/mono-core?expand=0&rev=127
This commit is contained in:
commit
e8d122b371
7
_constraints
Normal file
7
_constraints
Normal file
@ -0,0 +1,7 @@
|
||||
<constraints>
|
||||
<hardware>
|
||||
<disk>
|
||||
<size unit="G">6</size>
|
||||
</disk>
|
||||
</hardware>
|
||||
</constraints>
|
12
fix-s390x-ucontext.patch
Normal file
12
fix-s390x-ucontext.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff -urp mono-6.8.0.123.orig/mono/utils/mono-context.h mono-6.8.0.123/mono/utils/mono-context.h
|
||||
--- mono-6.8.0.123.orig/mono/utils/mono-context.h 2020-05-11 12:58:14.000000000 -0500
|
||||
+++ mono-6.8.0.123/mono/utils/mono-context.h 2020-05-21 15:10:03.209484526 -0500
|
||||
@@ -879,7 +879,7 @@ typedef struct {
|
||||
|
||||
#include <sys/ucontext.h>
|
||||
|
||||
-#if __GLIBC_PREREQ(2, 27)
|
||||
+#if __GLIBC_PREREQ(2, 26)
|
||||
typedef ucontext_t MonoContext;
|
||||
#else
|
||||
typedef struct ucontext MonoContext;
|
3
mono-6.8.0.105.tar.xz
Normal file
3
mono-6.8.0.105.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:578799c44c3c86a9eb5daf6dec6c60a24341940fd376371956d4a46cf8612178
|
||||
size 243441900
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:ed5df4ec663a4e228e89e910e954fa18d33f72e790c11174e1b62fc8cca90ba0
|
||||
size 245059192
|
@ -1,3 +1,37 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu May 28 07:05:06 UTC 2020 - Ismail Dönmez <idonmez@suse.com>
|
||||
|
||||
- Fixup mono-find-requires for v1 profiles
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed May 27 09:35:05 UTC 2020 - Ismail Dönmez <idonmez@suse.com>
|
||||
|
||||
- Add mono-find-provides and mono-find-requires from Fedora and use
|
||||
it instead. Fixes boo#1152775
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue May 26 19:57:47 UTC 2020 - Michael Gorse <mgorse@suse.com>
|
||||
|
||||
- Add fix-s390x-ucontext.patch: fix the build on 15.2/s390x
|
||||
(bsc#1171934).
|
||||
- Add _constraints to prevent running out of disk space.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun May 24 08:07:07 UTC 2020 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
||||
|
||||
- Enable roslyn on aarch64 to build additionnal tools (mdoc.exe, ...)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Apr 29 10:05:31 UTC 2020 - Dominique Leuenberger <dimstar@opensuse.org>
|
||||
|
||||
- Add mono.attr and install it to %_rpmconfigdir/fileattrs: enable
|
||||
the dependency scanner for rpm packages (boo#1152775).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Apr 21 19:10:16 UTC 2020 - David Mulder <dmulder@suse.com>
|
||||
|
||||
- Update to the most current mono release, 6.8.0.105.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Mar 19 07:44:57 UTC 2020 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
||||
|
||||
|
@ -33,13 +33,13 @@
|
||||
%define btls no
|
||||
%endif
|
||||
|
||||
%ifarch %ix86 x86_64 %{arm}
|
||||
%ifarch %ix86 x86_64 %{arm} aarch64
|
||||
%define roslyn yes
|
||||
%else
|
||||
%define roslyn no
|
||||
%endif
|
||||
|
||||
%define version_suffix 96
|
||||
%define version_suffix 105
|
||||
|
||||
Name: mono-core
|
||||
Version: 6.8.0
|
||||
@ -51,6 +51,9 @@ Url: http://www.mono-project.com
|
||||
Source0: http://download.mono-project.com/sources/mono/mono-%{version}.%{version_suffix}.tar.xz
|
||||
Source1: mono-core.rpmlintrc
|
||||
Source2: gmcs
|
||||
Source3: mono.attr
|
||||
Source4: mono-find-provides
|
||||
Source5: mono-find-requires
|
||||
# ppc build segfault so exclude it
|
||||
ExcludeArch: ppc
|
||||
# PATCH-FIX-OPENSUSE remove checks for libmono in mono-find-provides and mono-find-requires scripts
|
||||
@ -63,6 +66,8 @@ Patch16: fix-dbg-headers.patch
|
||||
Patch20: xbuild-use-roslyn-vbc.patch
|
||||
# PATCH-FIX-OPENSUSE fix 64bit-portability-issue at exceptions-ppc.c:799
|
||||
Patch21: fix-ppc-64bit-portability-issue.patch
|
||||
# PATCH-FIX-UPSTREAM fix-s390x-ucontext.patch bsc#1171934 mgorse@suse.com -- fix s390x build on glibc 2.26.
|
||||
Patch22: fix-s390x-ucontext.patch
|
||||
BuildRequires: autoconf
|
||||
BuildRequires: automake
|
||||
BuildRequires: bison
|
||||
@ -212,6 +217,7 @@ technologies that have been submitted to the ECMA for standardization.
|
||||
%patch20 -p1
|
||||
%endif
|
||||
%patch21 -p1
|
||||
%patch22 -p1
|
||||
|
||||
%build
|
||||
%define _lto_cflags %{nil}
|
||||
@ -277,6 +283,16 @@ make
|
||||
%install
|
||||
%make_install
|
||||
|
||||
%if 0%{?suse_version} > 1500
|
||||
# install the rpm file attributes to arm the dependency scanner
|
||||
mkdir -p %{buildroot}%{_rpmconfigdir}/fileattrs
|
||||
install %{SOURCE3} %{buildroot}%{_rpmconfigdir}/fileattrs/mono.attr
|
||||
|
||||
# Install custom mono-find-{provides/requires}
|
||||
install -p -m755 %{SOURCE4} %{SOURCE5} %{buildroot}%{_rpmconfigdir}
|
||||
|
||||
%endif
|
||||
|
||||
# Remove hardcoded lib directory from the config
|
||||
sed -i 's,\$mono_libdir/,,g' %{buildroot}%{_sysconfdir}/mono/config
|
||||
|
||||
@ -1268,7 +1284,7 @@ Mono development tools.
|
||||
%defattr(-, root, root)
|
||||
%{_bindir}/aprofutil
|
||||
%{_prefix}/lib/mono/4.5/aprofutil.exe
|
||||
%ifnarch aarch64 ppc64 ppc64le
|
||||
%ifnarch ppc64 ppc64le s390x
|
||||
%{_prefix}/lib/mono/4.5/aprofutil.pdb
|
||||
%else
|
||||
%{_prefix}/lib/mono/4.5/aprofutil.exe.mdb
|
||||
@ -1293,6 +1309,13 @@ Mono development tools.
|
||||
%{_bindir}/mono-api-info
|
||||
%{_bindir}/mono-api-html
|
||||
%{_bindir}/mono-cil-strip
|
||||
|
||||
%if 0%{?suse_version} > 1500
|
||||
%{_rpmconfigdir}/fileattrs/mono.attr
|
||||
%{_rpmconfigdir}/mono-find-provides
|
||||
%{_rpmconfigdir}/mono-find-requires
|
||||
%endif
|
||||
|
||||
%{_bindir}/mono-find-provides
|
||||
%{_bindir}/mono-find-requires
|
||||
%{_bindir}/mono-heapviz
|
||||
@ -1406,7 +1429,7 @@ Mono development tools.
|
||||
%{_prefix}/lib/mono/4.5/mono-cil-strip.exe*
|
||||
%{_prefix}/lib/mono/4.5/mono-shlib-cop.exe*
|
||||
%{_prefix}/lib/mono/4.5/mono-xmltool.exe*
|
||||
%ifnarch aarch64 ppc64 ppc64le
|
||||
%ifnarch ppc64 ppc64le s390x
|
||||
%{_prefix}/lib/mono/4.5/monolinker.*
|
||||
%endif
|
||||
%{_prefix}/lib/mono/4.5/monop.exe*
|
||||
@ -1559,7 +1582,7 @@ Monodoc-core contains documentation tools for C#.
|
||||
%{_mandir}/man1/monodocer.1%ext_man
|
||||
%{_mandir}/man1/monodocs2html.1%ext_man
|
||||
%{_mandir}/man5/mdoc.5%ext_man
|
||||
%ifnarch aarch64 ppc64 ppc64le
|
||||
%ifnarch ppc64 ppc64le s390x
|
||||
%{_prefix}/lib/mono/4.5/mdoc.exe*
|
||||
%endif
|
||||
%{_prefix}/lib/mono/4.5/mod.exe*
|
||||
|
42
mono-find-provides
Normal file
42
mono-find-provides
Normal file
@ -0,0 +1,42 @@
|
||||
#!/usr/bin/bash
|
||||
#
|
||||
# mono-find-provides
|
||||
#
|
||||
# Authors:
|
||||
# Ben Maurer (bmaurer@ximian.com)
|
||||
#
|
||||
# (C) 2005 Novell (http://www.novell.com)
|
||||
#
|
||||
# Args: builddir buildroot libdir
|
||||
|
||||
IFS=$'\n'
|
||||
filelist=($(grep -Ev '/usr/doc/|/usr/share/doc/'))
|
||||
monolist=($(printf "%s\n" "${filelist[@]}" | grep -E "\\.(exe|dll)\$"))
|
||||
|
||||
# If monodis is in the package being installed, use that one
|
||||
# This is to support building mono
|
||||
build_bindir="$2/usr/bin"
|
||||
build_libdir="$2$3"
|
||||
|
||||
if [ -x $build_bindir/monodis ]; then
|
||||
monodis="$build_bindir/monodis"
|
||||
export LD_LIBRARY_PATH=$build_libdir${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
|
||||
elif [ -x /usr/bin/monodis ]; then
|
||||
monodis="/usr/bin/monodis"
|
||||
else
|
||||
exit 0;
|
||||
fi
|
||||
|
||||
export MONO_SHARED_DIR=$1
|
||||
|
||||
for i in "${monolist[@]}"; do
|
||||
($monodis --assembly $i | awk '
|
||||
BEGIN { LIBNAME=""; VERSION=""; }
|
||||
/^Version:/ { VERSION=$2 }
|
||||
/^Name:/ { LIBNAME=$2 }
|
||||
END {
|
||||
if (VERSION && LIBNAME)
|
||||
print "mono(" LIBNAME ") = " VERSION
|
||||
}
|
||||
') 2>/dev/null
|
||||
done
|
90
mono-find-requires
Normal file
90
mono-find-requires
Normal file
@ -0,0 +1,90 @@
|
||||
#!/usr/bin/bash
|
||||
#
|
||||
# mono-find-requires
|
||||
#
|
||||
# Authors:
|
||||
# Ben Maurer (bmaurer@ximian.com)
|
||||
#
|
||||
# (C) 2005 Novell (http://www.novell.com)
|
||||
#
|
||||
# Args: builddir buildroot libdir
|
||||
|
||||
IFS=$'\n'
|
||||
filelist=($(grep -Ev '/usr/doc/|/usr/share/doc/'))
|
||||
monolist=($(printf "%s\n" "${filelist[@]}" | grep -E "\\.(exe|dll)\$"))
|
||||
|
||||
# If monodis is in the package being installed, use that one
|
||||
# This is to support building mono
|
||||
build_bindir="$2/usr/bin"
|
||||
build_libdir="$2$3"
|
||||
|
||||
if [ -x $build_bindir/monodis ]; then
|
||||
monodis="$build_bindir/monodis"
|
||||
export LD_LIBRARY_PATH=$build_libdir${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
|
||||
elif [ -x /usr/bin/monodis ]; then
|
||||
monodis="/usr/bin/monodis"
|
||||
else
|
||||
exit 0;
|
||||
fi
|
||||
|
||||
export MONO_SHARED_DIR=$1
|
||||
|
||||
REQUIRES=$(
|
||||
for i in "${monolist[@]}"; do
|
||||
($monodis --assemblyref $i | awk '
|
||||
BEGIN { START=0; LIBNAME=""; VERSION=""; }
|
||||
(START==0) && /^[0-9]+: Version=/ {
|
||||
START=1;
|
||||
sub(/Version=/, "", $2);
|
||||
VERSION=$2
|
||||
}
|
||||
|
||||
(START==1) && /^\tName=/ {
|
||||
sub(/Name=/, "", $1);
|
||||
LIBNAME=$1
|
||||
# Allow rpm deps to be resolved for 1.0 profile version
|
||||
if (VERSION=="1.0.3300.0")
|
||||
OP=">="
|
||||
else
|
||||
OP="="
|
||||
print "mono(" LIBNAME ") " OP " " VERSION
|
||||
START=0
|
||||
}
|
||||
') 2> /dev/null
|
||||
done
|
||||
)
|
||||
|
||||
PROVIDES=$(
|
||||
for i in "${monolist[@]}"; do
|
||||
($monodis --assembly $i | awk '
|
||||
BEGIN { LIBNAME=""; VERSION=""; }
|
||||
/^Version:/ { VERSION=$2 }
|
||||
/^Name:/ { LIBNAME=$2 }
|
||||
END {
|
||||
if (VERSION && LIBNAME)
|
||||
print "mono(" LIBNAME ") = " VERSION
|
||||
}
|
||||
') 2>/dev/null
|
||||
done
|
||||
)
|
||||
#
|
||||
# This is a little magic trick to get all REQUIRES that are not
|
||||
# in PROVIDES. While RPM functions correctly when such deps exist,
|
||||
# they make the metadata a bit bloated.
|
||||
#
|
||||
|
||||
# Filter out dups from both lists
|
||||
REQUIRES=$(echo "$REQUIRES" | sort | uniq)
|
||||
PROVIDES=$(echo "$PROVIDES" | sort | uniq)
|
||||
|
||||
#
|
||||
# Get a list of elements that exist in exactly one of PROVIDES or REQUIRES
|
||||
#
|
||||
UNIQ=$(echo "$PROVIDES
|
||||
$REQUIRES" | sort | uniq -u)
|
||||
|
||||
#
|
||||
# Of those, only chose the ones that are in REQUIRES
|
||||
#
|
||||
echo "$UNIQ
|
||||
$REQUIRES" | sort | uniq -d
|
Loading…
Reference in New Issue
Block a user