rpm: install mono.attr and mono-find-[requires|provides] [release 6.12.0.122-2mamba;Wed Nov 24 2021]
This commit is contained in:
parent
89bd9f2f5b
commit
1b7c4ee81c
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
|
86
mono-find-requires
Normal file
86
mono-find-requires
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
#!/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
|
||||||
|
|
||||||
|
print "mono(" LIBNAME ") = " 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
|
3
mono.attr
Normal file
3
mono.attr
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
%__mono_provides %{_rpmconfigdir}/mono-find-provides %{_builddir}/%{?buildsubdir} %{buildroot} %{_libdir}
|
||||||
|
%__mono_requires %{_rpmconfigdir}/mono-find-requires %{_builddir}/%{?buildsubdir} %{buildroot} %{_libdir}
|
||||||
|
%__mono_magic Mono/.Net assembly
|
108
mono.spec
108
mono.spec
@ -1,7 +1,7 @@
|
|||||||
%define pkgver %(echo %version | cut -d. -f1-3)
|
%define pkgver %(echo %version | cut -d. -f1-3)
|
||||||
Name: mono
|
Name: mono
|
||||||
Version: 6.12.0.122
|
Version: 6.12.0.122
|
||||||
Release: 1mamba
|
Release: 2mamba
|
||||||
Summary: A .NET runtime environment
|
Summary: A .NET runtime environment
|
||||||
Group: Applications/Development
|
Group: Applications/Development
|
||||||
Vendor: openmamba
|
Vendor: openmamba
|
||||||
@ -10,12 +10,14 @@ Packager: Silvan Calarco <silvan.calarco@mambasoft.it>
|
|||||||
URL: https://www.mono-project.com
|
URL: https://www.mono-project.com
|
||||||
Source: http://download.mono-project.com/sources/mono/mono-%{version}.tar.xz
|
Source: http://download.mono-project.com/sources/mono/mono-%{version}.tar.xz
|
||||||
Source1: mono-binfmt
|
Source1: mono-binfmt
|
||||||
|
Source2: mono-find-provides
|
||||||
|
Source3: mono-find-requires
|
||||||
|
Source4: mono.attr
|
||||||
Patch0: %{name}-1.9.1-ppc-threading.patch
|
Patch0: %{name}-1.9.1-ppc-threading.patch
|
||||||
Patch1: %{name}-2.6.4-required.patch
|
Patch1: %{name}-2.6.4-required.patch
|
||||||
License: GPL, LGPL, MIT, BSD
|
License: GPL, LGPL, MIT, BSD
|
||||||
## AUTOBUILDREQ-BEGIN
|
## AUTOBUILDREQ-BEGIN
|
||||||
BuildRequires: glibc-devel
|
BuildRequires: glibc-devel
|
||||||
BuildRequires: ldconfig
|
|
||||||
BuildRequires: libgcc
|
BuildRequires: libgcc
|
||||||
BuildRequires: libkrb5-devel
|
BuildRequires: libkrb5-devel
|
||||||
BuildRequires: libstdc++6-devel
|
BuildRequires: libstdc++6-devel
|
||||||
@ -31,41 +33,41 @@ BuildRequires: cmake
|
|||||||
Requires: ca-certificates
|
Requires: ca-certificates
|
||||||
Requires: libgdiplus
|
Requires: libgdiplus
|
||||||
Provides: mono-core
|
Provides: mono-core
|
||||||
Obsoletes: mono-core
|
Obsoletes: mono-core < 6.12.0.122
|
||||||
Provides: mono-ikvm = %{?epoch:%epoch:}%{version}-%{release}
|
Provides: mono-ikvm = %{?epoch:%epoch:}%{version}-%{release}
|
||||||
Obsoletes: mono-ikvm
|
Obsoletes: mono-ikvm < 6.12.0.122
|
||||||
Provides: monodoc
|
Provides: monodoc
|
||||||
Obsoletes: monodoc
|
Obsoletes: monodoc < 6.12.0.122
|
||||||
Provides: mono-jay
|
Provides: mono-jay
|
||||||
Obsoletes: mono-jay
|
Obsoletes: mono-jay < 6.12.0.122
|
||||||
Provides: mono-web
|
Provides: mono-web
|
||||||
Obsoletes: mono-web
|
Obsoletes: mono-web < 6.12.0.122
|
||||||
Provides: mono-winforms
|
Provides: mono-winforms
|
||||||
Obsoletes: mono-winforms
|
Obsoletes: mono-winforms < 6.12.0.122
|
||||||
Provides: mono-nunit
|
Provides: mono-nunit
|
||||||
Obsoletes: mono-nunit
|
Obsoletes: mono-nunit < 6.12.0.122
|
||||||
Provides: mono-data
|
Provides: mono-data
|
||||||
Obsoletes: mono-data
|
Obsoletes: mono-data < 6.12.0.122
|
||||||
Provides: mono-locale-extras
|
Provides: mono-locale-extras
|
||||||
Obsoletes: mono-locale-extras
|
Obsoletes: mono-locale-extras < 6.12.0.122
|
||||||
Provides: mono-extras
|
Provides: mono-extras
|
||||||
Obsoletes: mono-extras
|
Obsoletes: mono-extras < 6.12.0.122
|
||||||
Provides: mono-jscript
|
Provides: mono-jscript
|
||||||
Obsoletes: mono-jscript
|
Obsoletes: mono-jscript < 6.12.0.122
|
||||||
Provides: mono-data-sqlite
|
Provides: mono-data-sqlite
|
||||||
Obsoletes: mono-data-sqlite
|
Obsoletes: mono-data-sqlite < 6.12.0.122
|
||||||
Provides: mono-data-sybase
|
Provides: mono-data-sybase
|
||||||
Obsoletes: mono-data-sybase
|
Obsoletes: mono-data-sybase < 6.12.0.122
|
||||||
Provides: mono-data-oracle
|
Provides: mono-data-oracle
|
||||||
Obsoletes: mono-data-oracle
|
Obsoletes: mono-data-oracle < 6.12.0.122
|
||||||
Provides: mono-data-postgresql
|
Provides: mono-data-postgresql
|
||||||
Obsoletes: mono-data-postgresql
|
Obsoletes: mono-data-postgresql < 6.12.0.122
|
||||||
Provides: mono-data-firebird
|
Provides: mono-data-firebird
|
||||||
Obsoletes: mono-data-firebird
|
Obsoletes: mono-data-firebird < 6.12.0.122
|
||||||
Provides: mono-ibm-data-db2
|
Provides: mono-ibm-data-db2
|
||||||
Obsoletes: mono-ibm-data-db2
|
Obsoletes: mono-ibm-data-db2 < 6.12.0.122
|
||||||
Provides: mono-bytefx-data-mysql
|
Provides: mono-bytefx-data-mysql
|
||||||
Obsoletes: mono-bytefx-data-mysql
|
Obsoletes: mono-bytefx-data-mysql < 6.12.0.122
|
||||||
Provides: mono(System.Reactive.Linq)
|
Provides: mono(System.Reactive.Linq)
|
||||||
Provides: mono(Microsoft.Build.Framework)
|
Provides: mono(Microsoft.Build.Framework)
|
||||||
Provides: mono(Microsoft.Build.Tasks.Core)
|
Provides: mono(Microsoft.Build.Tasks.Core)
|
||||||
@ -89,19 +91,18 @@ Its objective is to enable Unix developers to build and deploy cross-platform .N
|
|||||||
%package devel
|
%package devel
|
||||||
Summary: Development tools for Mono
|
Summary: Development tools for Mono
|
||||||
Group: Development/Languages
|
Group: Development/Languages
|
||||||
Obsoletes: mono-cilc
|
Obsoletes: mono-cilc < 6.12.0.122
|
||||||
Provides: mono-cilc = %{?epoch:%epoch:}%{version}-%{release}
|
Provides: mono-cilc = %{?epoch:%epoch:}%{version}-%{release}
|
||||||
Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release}
|
Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release}
|
||||||
Provides: mono-nunit-devel
|
Provides: mono-nunit-devel
|
||||||
Obsoletes: mono-nunit-devel
|
Obsoletes: mono-nunit-devel < 6.12.0.122
|
||||||
Provides: monodoc-devel
|
Provides: monodoc-devel
|
||||||
Obsoletes: monodoc-devel
|
Obsoletes: monodoc-devel < 6.12.0.122
|
||||||
Requires: libglib-devel
|
Requires: libglib-devel
|
||||||
|
|
||||||
%description devel
|
%description devel
|
||||||
The Mono Project is an open development initiative that is working to develop an open source, Unix version of the .NET development platform.
|
The Mono Project is an open development initiative that is working to develop an open source, Unix version of the .NET development platform.
|
||||||
Its objective is to enable Unix developers to build and deploy cross-platform .NET applications.
|
Its objective is to enable Unix developers to build and deploy cross-platform .NET applications.
|
||||||
|
|
||||||
This package completes the Mono developer toolchain with the mono profiler, assembler and other various tools.
|
This package completes the Mono developer toolchain with the mono profiler, assembler and other various tools.
|
||||||
|
|
||||||
%debug_package
|
%debug_package
|
||||||
@ -113,27 +114,27 @@ This package completes the Mono developer toolchain with the mono profiler, asse
|
|||||||
#%patch0 -p1 -b .ppc-threading
|
#%patch0 -p1 -b .ppc-threading
|
||||||
#%patch1 -p1
|
#%patch1 -p1
|
||||||
|
|
||||||
# NOTE: this is to pass %{_libdir} to __mono_requires to allow running of monodis
|
## NOTE: this is to pass %{_libdir} to __mono_requires to allow running of monodis
|
||||||
# using internal libraries to allow 2 -> 3 smooth update
|
## using internal libraries to allow 2 -> 3 smooth update
|
||||||
%define __mono_requires %{_builddir}/mono-%{version}/mono_requires.sh
|
#% define __mono_requires %{_builddir}/mono-%{version}/mono_requires.sh
|
||||||
cat > mono_requires.sh << _EOF
|
#cat > mono_requires.sh << _EOF
|
||||||
%ifarch x86_64
|
#%ifarch x86_64
|
||||||
# WORKAROUND: LD_LIBRARY_PATH seems to be ignored in x86_64
|
## WORKAROUND: LD_LIBRARY_PATH seems to be ignored in x86_64
|
||||||
export LD_PRELOAD=%{buildroot}%{_libdir}/libmono-2.0.so.1.0.0
|
#export LD_PRELOAD=%{buildroot}%{_libdir}/libmono-2.0.so.1.0.0
|
||||||
%endif
|
#%endif
|
||||||
%{_prefix}/lib/rpm/mono-find-requires %{_builddir} %{buildroot} %{_libdir}
|
#%{_prefix}/lib/rpm/mono-find-requires %{_builddir} %{buildroot} %{_libdir}
|
||||||
_EOF
|
#_EOF
|
||||||
|
#
|
||||||
%define __mono_provides %{_builddir}/mono-%{version}/mono_provides.sh
|
#% define __mono_provides %{_builddir}/mono-%{version}/mono_provides.sh
|
||||||
cat > mono_provides.sh << _EOF
|
#cat > mono_provides.sh << _EOF
|
||||||
%ifarch x86_64
|
#%ifarch x86_64
|
||||||
# WORKAROUND: LD_LIBRARY_PATH seems to be ignored in x86_64
|
## WORKAROUND: LD_LIBRARY_PATH seems to be ignored in x86_64
|
||||||
export LD_PRELOAD=%{buildroot}%{_libdir}/libmono-2.0.so.1.0.0
|
#export LD_PRELOAD=%{buildroot}%{_libdir}/libmono-2.0.so.1.0.0
|
||||||
%endif
|
#%endif
|
||||||
%{_prefix}/lib/rpm/mono-find-provides %{_builddir} %{buildroot} %{_libdir}
|
#%{_prefix}/lib/rpm/mono-find-provides %{_builddir} %{buildroot} %{_libdir}
|
||||||
_EOF
|
#_EOF
|
||||||
|
#
|
||||||
chmod +x mono_requires.sh mono_provides.sh
|
#chmod +x mono_requires.sh mono_provides.sh
|
||||||
|
|
||||||
%build
|
%build
|
||||||
#:<< ___EOF
|
#:<< ___EOF
|
||||||
@ -193,6 +194,15 @@ ln -s mono-sgen %{buildroot}%{_bindir}/mono
|
|||||||
|
|
||||||
ln -s mcs %{buildroot}%{_bindir}/gmcs
|
ln -s mcs %{buildroot}%{_bindir}/gmcs
|
||||||
|
|
||||||
|
# rpm helper scripts
|
||||||
|
mkdir -p %{buildroot}%{_prefix}/lib/rpm/fileattrs/
|
||||||
|
install -p -m755 %{SOURCE2} %{SOURCE3} %{buildroot}%{_prefix}/lib/rpm/
|
||||||
|
install -p -m644 %{SOURCE4} %{buildroot}%{_prefix}/lib/rpm/fileattrs/
|
||||||
|
|
||||||
|
# remove these files, we are using the files installed in /usr/lib/rpm/
|
||||||
|
rm %{buildroot}%{_bindir}/mono-find-requires
|
||||||
|
rm %{buildroot}%{_bindir}/mono-find-provides
|
||||||
|
|
||||||
%clean
|
%clean
|
||||||
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
|
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
|
||||||
|
|
||||||
@ -246,8 +256,6 @@ fi
|
|||||||
%{_bindir}/ikdasm
|
%{_bindir}/ikdasm
|
||||||
%{_bindir}/illinkanalyzer
|
%{_bindir}/illinkanalyzer
|
||||||
%{_bindir}/mono-package-runtime
|
%{_bindir}/mono-package-runtime
|
||||||
%{_bindir}/%{name}-find-provides
|
|
||||||
%{_bindir}/%{name}-find-requires
|
|
||||||
%{_bindir}/mono-symbolicate
|
%{_bindir}/mono-symbolicate
|
||||||
%{_bindir}/%{name}-service
|
%{_bindir}/%{name}-service
|
||||||
%{_bindir}/%{name}-service2
|
%{_bindir}/%{name}-service2
|
||||||
@ -402,6 +410,9 @@ fi
|
|||||||
%files devel
|
%files devel
|
||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
%{_includedir}/%{name}-*
|
%{_includedir}/%{name}-*
|
||||||
|
%{_prefix}/lib/rpm/mono-find-provides
|
||||||
|
%{_prefix}/lib/rpm/mono-find-requires
|
||||||
|
%{_prefix}/lib/rpm/fileattrs/mono.attr
|
||||||
%{_libdir}/lib%{name}-2.0.so
|
%{_libdir}/lib%{name}-2.0.so
|
||||||
%{_libdir}/lib%{name}-2.0.a
|
%{_libdir}/lib%{name}-2.0.a
|
||||||
%{_libdir}/lib%{name}-2.0.la
|
%{_libdir}/lib%{name}-2.0.la
|
||||||
@ -447,6 +458,9 @@ fi
|
|||||||
#%doc ChangeLog NEWS
|
#%doc ChangeLog NEWS
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Nov 24 2021 Silvan Calarco <silvan.calarco@mambasoft.it> 6.12.0.122-2mamba
|
||||||
|
- rpm: install mono.attr and mono-find-[requires|provides]
|
||||||
|
|
||||||
* Thu Feb 25 2021 Automatic Build System <autodist@mambasoft.it> 6.12.0.122-1mamba
|
* Thu Feb 25 2021 Automatic Build System <autodist@mambasoft.it> 6.12.0.122-1mamba
|
||||||
- automatic version update by autodist
|
- automatic version update by autodist
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user