Bug 1752940

Summary: build of mono for EPEL 8
Product: [Fedora] Fedora EPEL Reporter: Breno <brandfbb>
Component: monoAssignee: Timotheus Pokorra <mailinglists>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: epel8CC: boboshaq, chkr, flipneus, itamar, john.j5live, lxtnow, mailinglists, mavit, rhughes, rstrode, sandmann
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: mono-6.6.0-8.el8 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-05-13 05:12:32 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1792998    

Description Breno 2019-09-17 15:52:20 UTC
Hi,

I would like to ask a build of mono for EPEL 8.

Would you mind requesting the branches and build them?

Building it from src.fedoraproject.org, I only had to do a small change, prevented /usr/lib/rpm/mono-find-provides of being installed from mono-devel, once it is also provided by rpm-build.

Thank you very much.


- Breno

Comment 1 Timotheus Pokorra 2019-09-18 04:32:48 UTC
I guess we should upgrade to Mono 5.18 at the same time. It seems that is for long term support, since Debian Buster has that Mono version.

Comment 2 Timotheus Pokorra 2019-10-21 04:40:33 UTC
Quick Update: On the mailinglist, I announced the plan of providing Mono 5.18 in Epel8:
https://lists.fedoraproject.org/archives/list/epel-devel@lists.fedoraproject.org/thread/TYMH72KDBSV5Z4QAYK6BCUZTXJDGAGYX/

Neil Gompa suggested to go for Mono 6.4 immediately.
I liked that idea, and tried it for Fedora Rawhide.
Unfortunately, I still have issues building Mono 6.4: https://copr.fedorainfracloud.org/coprs/tpokorra/mono-6.4/builds/

My current work on the spec file and patches is here:
https://github.com/tpokorra/mono-6.x-fedora/tree/master/mono-6.4

Or do people think it is better to have Mono 5.18 in Epel than nothing?

Comment 3 Timotheus Pokorra 2019-10-24 06:15:30 UTC
the build error from bootstrap can be seen in the build log:

if test -w /builddir/build/BUILD/mono-6.4.0.198/mcs; then :; else chmod -R +w /builddir/build/BUILD/mono-6.4.0.198/mcs; fi
cd /builddir/build/BUILD/mono-6.4.0.198/mcs && make --no-print-directory -s NO_DIR_CHECK=1 PROFILES='net_4_x xbuild_12 xbuild_14             ' CC='gcc' all-profiles
make[6]: mcs: Command not found
make[6]: *** [build/profiles/build.make:134: build/deps/basic-profile-check.exe] Error 127
*** The runtime 'mono' doesn't appear to be usable.
*** Trying the 'monolite-linux/62731146-81CF-4D61-826D-9A8DDED14432' directory.
error CS2001: Source file `build/common/basic-profile-check.cs' could not be found
Compilation failed: 1 error(s), 0 warnings
make[8]: *** [build/profiles/build.make:134: build/deps/basic-profile-check.exe] Error 1
*** The contents of your 'monolite-linux/62731146-81CF-4D61-826D-9A8DDED14432' directory may be out-of-date
*** You may want to try 'make get-monolite-latest'
make[8]: *** [build/profiles/build.make:117: do-profile-check-monolite] Error 1
make[7]: *** [build/profiles/build.make:93: do-profile-check] Error 2
make[6]: *** [build/profiles/build.make:129: do-profile-check-monolite] Error 2
make[5]: *** [build/profiles/build.make:93: do-profile-check] Error 2
make[4]: *** [Makefile:57: profile-do--build--all] Error 2
make[3]: *** [Makefile:53: profiles-do--all] Error 2
make[2]: *** [Makefile:657: all-mcs] Error 2
make[2]: Leaving directory '/builddir/build/BUILD/mono-6.4.0.198/runtime'
make[1]: *** [Makefile:590: all-recursive] Error 1
make[1]: Leaving directory '/builddir/build/BUILD/mono-6.4.0.198'
make: *** [Makefile:520: all] Error 2
error: Bad exit status from /var/tmp/rpm-tmp.lz4o6s (%build)
RPM build errors:
    Bad exit status from /var/tmp/rpm-tmp.lz4o6s (%build)
Child return code was: 1
EXCEPTION: [Error()]
Traceback (most recent call last):
  File "/usr/lib/python3.7/site-packages/mockbuild/trace_decorator.py", line 95, in trace
    result = func(*args, **kw)
  File "/usr/lib/python3.7/site-packages/mockbuild/util.py", line 745, in do_with_status
    raise exception.Error("Command failed: \n # %s\n%s" % (command, output), child.returncode)
mockbuild.exception.Error: Command failed: 
 # /usr/bin/systemd-nspawn -q -M 89a319d46ce640e1ba06f2644a36f17d -D /var/lib/mock/1078358-fedora-31-x86_64-1571891134.666679/root -a --capability=cap_ipc_lock --bind=/tmp/mock-resolv.p0zagh3m:/etc/resolv.conf --setenv=TERM=vt100 --setenv=SHELL=/bin/bash --setenv=HOME=/builddir --setenv=HOSTNAME=mock --setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin --setenv=PROMPT_COMMAND=printf "\033]0;<mock-chroot>\007" --setenv=PS1=<mock-chroot> \s-\v\$  --setenv=LANG=en_US.UTF-8 -u mockbuild bash --login -c /usr/bin/rpmbuild -bb --target x86_64 --nodeps /builddir/build/SPECS/mono.spec


It seems, the monolite included in the tarball is not sufficient. But we don't want to download the monolite from the web, because the build can only be from the tarball.

I tried to copy files around, that are missing or in the wrong place, but did not succeed yet.

Comment 4 Timotheus Pokorra 2019-12-27 17:15:04 UTC
It is now working in my copr: https://copr.fedorainfracloud.org/coprs/tpokorra/mono-6.6/builds/

I am now trying to get libgdiplus for epel8, and then will build mono 6.6 for epel8.

Comment 5 Timotheus Pokorra 2020-01-20 22:12:46 UTC
We have Mono 6.6 in Rawhide now.

Unfortunately, mdoc is gone, when building with mcs.
https://github.com/mono/mono/blob/2019-08/mcs/tools/mdoc/Makefile#L49

That means quite a number of packages need fixing that depend on mdoc... eg. mono-tools and newtonsoft-json

Comment 6 Timotheus Pokorra 2020-04-25 12:51:32 UTC
mdoc has been fixed in F32.

I have now built Mono for Epel8 with bootstrap enabled.
Now trying to build without bootstrap.

I get this error:

DEBUG util.py:600:  Error: Transaction test error:
DEBUG util.py:600:    file /usr/lib/rpm/mono-find-provides from install of mono-devel-6.6.0-6.el8.x86_64 conflicts with file from package rpm-build-4.14.2-26.el8_1.x86_64
DEBUG util.py:600:    file /usr/lib/rpm/mono-find-requires from install of mono-devel-6.6.0-6.el8.x86_64 conflicts with file from package rpm-build-4.14.2-26.el8_1.x86_64

So this needs to be fixed. Do we need to put the scripts into another directory?

Comment 7 Timotheus Pokorra 2020-04-25 12:52:31 UTC
Or we drop those files from the epel builds, because they are not needed here, because rpm-build still provides them

Comment 8 Fedora Update System 2020-04-25 21:06:49 UTC
FEDORA-EPEL-2020-21d2ce425f has been submitted as an update to Fedora EPEL 8. https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2020-21d2ce425f

Comment 9 Fedora Update System 2020-04-26 05:26:35 UTC
FEDORA-EPEL-2020-21d2ce425f has been pushed to the Fedora EPEL 8 testing repository.

You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2020-21d2ce425f

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 10 Peter Oliver 2020-04-26 11:08:32 UTC
(In reply to Timotheus Pokorra from comment #6)

> I get this error:
> 
> DEBUG util.py:600:  Error: Transaction test error:
> DEBUG util.py:600:    file /usr/lib/rpm/mono-find-provides from install of
> mono-devel-6.6.0-6.el8.x86_64 conflicts with file from package
> rpm-build-4.14.2-26.el8_1.x86_64
> DEBUG util.py:600:    file /usr/lib/rpm/mono-find-requires from install of
> mono-devel-6.6.0-6.el8.x86_64 conflicts with file from package
> rpm-build-4.14.2-26.el8_1.x86_64
> 
> So this needs to be fixed. Do we need to put the scripts into another
> directory?

We had the dependency generators removed from version 4.15 of RPM, because the Mono-provided ones are better (https://github.com/rpm-software-management/rpm/issues/673).  However, until RHEL catches up (presumably not until RHEL 9), I think we have to use RPM's outdated versions and live with the incorrect dependencies that result from that.

Comment 11 Breno 2020-04-27 13:20:32 UTC
A big thanks for building it,  Timotheus!

Comment 12 Fedora Update System 2020-05-13 05:12:32 UTC
FEDORA-EPEL-2020-21d2ce425f has been pushed to the Fedora EPEL 8 stable repository.
If problem still persists, please make note of it in this bug report.