FS#54040 - [mono] wants to install a file that is already owned by the chicken package: /usr/bin/csc

Attached to Project: Community Packages
Opened by Taegil Bae (esrevinu) - Sunday, 14 May 2017, 10:45 GMT
Last edited by Toolybird (Toolybird) - Tuesday, 04 April 2023, 02:18 GMT
Task Type Bug Report
Category Packages
Status Closed
Assigned To Levente Polyak (anthraxx)
Giancarlo Razzolini (grazzolini)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 12
Private No


file owned by 'chicken' and 'mono': 'usr/bin/csc'

Additional info:
* package version(s)
* config and/or log files etc.

Steps to reproduce:
1. upgrade mono package with chicken installed.
This task depends upon

Closed by  Toolybird (Toolybird)
Tuesday, 04 April 2023, 02:18 GMT
Reason for closing:  Fixed
Additional comments about closing:  chicken 5.0.0-2
Comment by Alexander F. Rødseth (xyproto) - Sunday, 14 May 2017, 12:38 GMT
Can add a conflict.
Comment by Earnestly (Earnest) - Sunday, 14 May 2017, 18:00 GMT
That would be problematic for people who need both.
Comment by Alexander F. Rødseth (xyproto) - Sunday, 14 May 2017, 19:40 GMT
The problem is there either way. Updated the chicken package to conflict with mono.

Please ask the mono or chicken developers to change the name of the binary.
Comment by Isenmann Daniel (ise) - Monday, 15 May 2017, 08:45 GMT
I don't think that you will have much luck that the projects will rename their binaries. You can try, but I think that will take a while. If you have a look and search the issue I have found something on a mailing list which is from 2004 with the same issue! Seems that both projects have the same binary name since ages.
Comment by Jonathon (jonathon) - Monday, 15 May 2017, 18:18 GMT
As mono is the younger project, Debian solved this by renaming mono's `/usr/bin/csc` to `/usr/bin/mono-csc`. If the upstream mono project is unwilling to change (which is likely given the length of time this has been an issue) a similar rename would likely be the solution of least surprise for Arch.

[1] http://mono.1490590.n4.nabble.com/Re-Best-way-to-solve-a-file-conflict-between-packages-td1551944.html
[2] https://packages.debian.org/jessie/all/mono-devel/filelist
[3] http://packages.ubuntu.com/yakkety/all/mono-devel/filelist


Just a couple of extra points:
1) the mono package introduced the conflicting file, so technically mono conflicts with chicken.
2) please don't leave a rename to `mono-csc` without action for an extended period of time; the file was only recently introduced so noone should yet be relying upon it.

Comment by Alexander F. Rødseth (xyproto) - Thursday, 01 June 2017, 11:34 GMT
Comment by lilydjwg (lilydjwg) - Friday, 14 July 2017, 03:34 GMT
+1 for renaming csc to mono-csc too. Too sad pacman can't ignore conflicts.
Comment by Earnestly (Earnest) - Sunday, 19 November 2017, 11:56 GMT
Any updates on this? The longer we wait, the more potential breakage there will be.

Additionally, has there been any effort to get upstream to use the mono-csc name? I doubt upstream will be happy with a situation that requires various distributions to rename their tools, causing widespread inconsistencies between systems...
Comment by Alexander F. Rødseth (xyproto) - Monday, 20 November 2017, 10:13 GMT
I believe the "correct" solution is to just rename mono's /usr/bin/csc to /usr/bin/mono-csc, like Debian did.

A more comfortable solution for users, but less minimalistic and not so much in the spirit of Arch Linux, would be to have a "csc" package which provides a /usr/bin/csc symlink, and a config script that lets the user configure if chicken or mono should be pointed to by /usr/bin/csc. If only mono or only chicken is installed, /usr/bin/csc would point to that.

Another, more ambitious solution, would be to create a global system of reserved executable names and make all major distros join in. This could potentially solve the problem for other packages in the future.
Comment by Earnestly (Earnest) - Thursday, 23 November 2017, 14:18 GMT
Added upstream bug report/feature request for this: https://bugzilla.xamarin.com/show_bug.cgi?id=60838
Comment by Eli Schwartz (eschwartz) - Thursday, 23 November 2017, 16:38 GMT
"You are not authorized to access bug #60838. To see this bug, you must first log in to an account with the appropriate permissions."
Comment by Alexander F. Rødseth (xyproto) - Sunday, 11 November 2018, 19:15 GMT
quine-relay in AUR is uninstallable because of the conflict that mono introduced.
Comment by Alexander F. Rødseth (xyproto) - Thursday, 15 November 2018, 15:14 GMT
Comment by Alexander F. Rødseth (xyproto) - Tuesday, 19 February 2019, 23:41 GMT
Comment by Alexander F. Rødseth (xyproto) - Wednesday, 02 June 2021, 08:48 GMT
Any news on this?
Comment by Toolybird (Toolybird) - Tuesday, 04 April 2023, 02:16 GMT
This will never be fixed in mono [1]. The chicken pkg has the workaround.

[1] https://github.com/mono/mono/issues/9056