%define name_project mono %define name_subpackage libgdiplus %define version_package_major 5 %define version_package_minor 12 %define version_package_revision 0 %define version_subpackage_major 2 %define version_subpackage_minor 10 %undefine version_subpackage_revision %define version_file %{nil} %define version_git %{nil} # do not touch this: %define version_package %{?version_package_major:%{version_package_major}.%{?version_package_minor}%{!?version_package_minor:0}%{?version_package_revision:.%{version_package_revision}}} %define version_subpackage %{?version_subpackage_major:%{version_subpackage_major}.%{?version_subpackage_minor}%{!?version_subpackage_minor:0}%{?version_subpackage_revision:.%{version_subpackage_revision}}} %define version_major %{?version_subpackage_major:%{version_subpackage_major}}%{!?version_subpackage_major:%{version_package_major}} %define version_minor %{?version_subpackage_major:%{version_subpackage_minor}}%{!?version_subpackage_major:%{version_package_minor}} %define version_revision %{?version_subpackage_major:%{version_subpackage_revision}}%{!?version_subpackage_major:%{version_package_revision}} %define version %{?version_subpackage_major:%{version_subpackage}}%{!?version_subpackage_major:%{version_package}} %define version_project %{version_package_major} %define name_base %{name_project}%{?version_project} %define name_postfix opt %undefine name_postfix %define name_full %{name_base}%{?name_postfix:-%{name_postfix}} %define name_package %{name_base} %define name %{name_base}%{?name_subpackage:-%{name_subpackage}}%{?name_postfix:-%{name_postfix}} %define path_package /opt/%{name_base} ################################################################################ # force redefine mono_arches # # rpm --eval "%{mono_arches}" # i386 i486 i586 i686 pentium3 pentium4 athlon geode x86_64 sparc sparcv9 ia64 armv3l armv4b armv4l armv4tl armv5tel armv5tejl armv6l armv7l armv7hl armv7hnl alpha s390x ppc ppc64 # # rpm --eval "%{ix86} x86_64 sparc sparcv9 ia64 %{arm} alpha s390x ppc ppc64 ppc64le" # i386 i486 i586 i686 pentium3 pentium4 athlon geode x86_64 sparc sparcv9 ia64 armv3l armv4b armv4l armv4tl armv5tel armv5tejl armv6l armv7l armv7hl armv7hnl alpha s390x ppc ppc64 ppc64le %define mono_arches_force %{nil} %define mono_arches_force 1 # if not defined %if 0%{!?mono_arches:1} || 0%{?mono_arches_force} %global mono_arches %{ix86} x86_64 sparc sparcv9 ia64 %{arm} alpha s390x ppc ppc64 ppc64le %endif %if 0%{!?_monodir:1} %global _monodir %{_prefix}/lib/mono %endif %if 0%{!?_monogacdir:1} %global _monogacdir %{_monodir}/gac %endif %define dotnet_version ?.? %define dotnet_version 4.5 %define monodir %{path_package}/lib/mono %define gac_dll(dll) %{monodir}/gac/%{1} \ %{monodir}/%{dotnet_version}/%{1}.dll \ %{nil} %define mono_bin(bin) %{monodir}/bin/%{1} \ %{monodir}/%{dotnet_version}/%{1}.exe \ %{monodir}/%{dotnet_version}/%{1}.exe.* \ %{nil} ################################################################################ %define buildroot_manual %{nil} %if 0%{?rhel}%{?fedora} %if 0%{?rhel} %if 0%{?rhel} < 6 %define buildroot_manual 1 %endif %endif %endif %define buildroot_manual_directory %{nil} %if "%{?buildroot}" != "" %define buildroot_manual_directory %{?buildroot} %else %if %{!?_topdir} %define _topdir %{getenv:HOME}/rpmbuild %endif %if %{!?_buildrootdir} %define _buildrootdir %{_topdir}/BUILDROOT %endif %define buildroot_manual_directory %{?buildroot}%{!?buildroot:%{_buildrootdir}/%{name}-%{version}-%{release}.%{_arch}} %define buildroot %{buildroot_manual_directory} %endif %define buildroot_manual_clean [ -d "%{buildroot}" ] && [ "/" != "%{buildroot}" ] && rm -rf "%{buildroot}" %define buildroot_manual_setup mkdir -p "%{buildroot}" %define buildroot_manual_cleansetup %{?buildroot_manual_clean:%{buildroot_manual_clean} ; }%{?buildroot_manual_setup} ################################################################################ # define liberationfonts %define liberationfonts liberation-mono-fonts %if 0%{?rhel}%{?fedora} %define liberationfonts liberation-mono-fonts %else %if 0%{?suse_version} %define liberationfonts liberation-fonts %else %define liberationfonts fonts-ttf-liberation %endif %endif ################################################################################ Name: %{name} Version: %{version} Release: 1.3%{?dist} Summary: Links for libgdiplus for Mono #Group: Development Group: Development/Languages License: MIT Vendor: Mono Project Packager: Tomasz Tomasik URL: http://www.mono-project.com # JIT only available on these: ExclusiveArch: %{mono_arches} %if 0%{?buildroot_manual} #BuildRoot: /tmp/buildroot BuildRoot: %{?buildroot_manual_directory}%{!?buildroot_manual_directory:/tmp/buildroot} %endif BuildRequires: pkgconfig BuildRequires: %{?name_full}%{!?name_full:mono5} BuildRequires: %{?name_subpackage}%{!?name_subpackage:libgdiplus} >= 2.10 BuildRequires: %{?liberationfonts}%{!?liberationfonts:liberation-mono-fonts} Requires: pkgconfig Requires: %{?name_full}%{!?name_full:mono5} Requires: %{?name_subpackage}%{!?name_subpackage:libgdiplus} >= 2.10 Requires: %{?liberationfonts}%{!?liberationfonts:liberation-mono-fonts} %description Links for libgdiplus for Mono. %prep %build %install %if 0%{?buildroot_manual} %{?buildroot_manual_cleansetup} %endif target_base="%{name_subpackage}.so" target_file="${target_base}.0" target_path="%{_libdir}/${target_file}" if [[ ! -f "${target_path}" ]]; then echo "Error: Target file not exist." >&2 exit 1 fi mkdir -p "%{buildroot}/%{path_package}/lib/" ln -sf ../../.."${target_path}" "%{buildroot}/%{path_package}/lib/${target_file}" ln -sf "${target_file}" "%{buildroot}/%{path_package}/lib/${target_base}" %if 0%{?buildroot_manual} %clean # Clean up after ourselves, but be careful in case someone sets a bad buildroot %{?buildroot_manual_clean} %endif %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %files %{path_package}/lib/%{name_subpackage}.so* %changelog * Sun Jun 17 2018 Tomasz Tomasik - 2.10-1.3 - Redefine mono_arches * Sun Jun 17 2018 Tomasz Tomasik - 2.10-1.2 - Update URL * Sat Jun 16 2018 Tomasz Tomasik - 2.10-1 - Initial build for Mono 5 libgdiplus opt package based on mono-libgdiplus-opt-4.2-3.src.rpm from tpokorra-mono-opt by Timotheus Pokorra