Hello devel,

I recently packaged blackbox-terminal, but, someone packaging another app, extension-manager noticed that his package conflicted with mine, and a `dnf whatprovides` later noticed that it also conflicted with cozy*. I soon discovered that all those apps shared icons from the Icon Development Kit[1] app, mostly known thanks to Icon Library[2].

Icon Library instruct developers to include these icons in a gresource file, basically hard coding them into the app. But, it seems that this is not followed by all app developers, and that some install them directly in `/usr/share/icons/hicolor/`.

There are multiple other apps packaged in Fedora out there using these icons. And it is likely that some of them are causing implicit conflicts we haven't caught (Note: fortunately, that does not seem to be the case, look at the end note). And, this problem will only worsen with time.

So, if you are a maintainer of a GNOME app, please check if your app is concerned. Especially since most packagers "glob" icons in the %files section.

Fortunately, Icon Development Kit is under CC0, so we're kinda saved from a Licensing apocalypse (although, I have to admit that this is not ideal).

From there, packagers who have noticed the conflict have three options at their disposal:

1- Using gresource files, or
2- Renaming the icons by appending the app's name or uuid, or
3- Install them somewhere else, like in /usr/share/%{name}/icons

Both require patching the source code of the app, and quite a bit of effort.

Another option would be to package those icons, and delete all icons concerned from what the app installs (maybe using a macro to simplify things), and make the app depend on the package containing these icons.

Another question we should ask ourselves is how to prevent those conflicts from slipping by in the distribution in the Future.

Regards,
Lyes Saadi

---
Note:
I've decided before sending this e-mail to check which packages have installed in /usr/share/icons/hicolor an icon for which an icon with a similar name exists in Icon Development Kit. My script seems to have some errors, I thus might have missed some, but it already took me 1h30 to execute it, so I'll try to fix it another day. Anyway, here is the list:

cozy
gnome-system-monitor
geary
notejot
gnome-control-center

Fortunately, the number of affected packages is limited, but the fact that some core apps are there show that no package is immune from this problem.
---

* not all of them are from the Icon Development Kit.

[1]: https://gitlab.gnome.org/Teams/Design/icon-development-kit
[2]: https://apps.gnome.org/fr/app/org.gnome.design.IconLibrary/
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue

Reply via email to