<!--
Please provide as much information as possible about what your PR aims
to do.
PRs with no description will most likely be closed until more
information is provided.
If you're planing on changing fundamental behaviour or add big new
features, please open a GitHub Issue first before starting to work on
it.
If it's not something big and you still want to contact us about it,
feel free to do so !
-->
### Problem description
<!-- Describe the bug that you fixed/feature request that you
implemented, or link to an existing issue describing it -->
This PR addresses issue #491 regarding the inability to open ImHex
project files (`.hexproj`) directly from various UNIX Desktop
Environments.
_NB: This PR's scope is limited to UNIX systems, as I have no access to
MacOS systems and could not find a way to automatically create file
associations on Windows._
### Implementation description
<!-- Explain what you did to correct the problem -->
In order for project files to be recognised as such, we need to create a
new MIME type. According to [RFC 6838 section
3.2](https://www.rfc-editor.org/rfc/rfc6838#section-3.2), additional
application MIME types should be defined with a vendor prefix.
_NB: This is preferred over the deprecated `x-` prefix, although RFC
6838 states that the vendor should be "a well known producer"_
This PR proposes a new mime type for ImHex project files:
`application/vnd.imhex.proj`, and associates it with the file format
`*.hexproj`.
It also implements small changes in the Arch Linux and RPM builds, in
order to correctly ship the MIME XML file during installation.
### Additional things
<!-- Anything else you would like to say -->
The implemented change has been manually tested in the following UNIX
systems and graphical environments:
- Arch Linux, with Gnome 47.2
- Arch Linux, with XFCE4
- Fedora 41 Workstation Edition, with Gnome 47.0
- Fedora 41 Plasma, with KDE Plasma 24.08.2
- Ubuntu 22.04.5, with Gnome 42.9
Which tests the functionality of the following build types:
- Arch Linux's `.zst` packages
- Debian `.deb` packages
- RPM packages
For Arch Linux and RPM packages, this has been tested to ensure that
post-installation hooks (such as regeneration of the MIME database) is
correctly executed (which it is). No further changes than those
implemented in the PR are needed.
---------
Signed-off-by: BioTheWolff <47079795+BioTheWolff@users.noreply.github.com>
### Problem description
The fonts list on Linux does not show all system fonts, and does not
show font names at all.
### Implementation description
Use Fontconfig to make the list less bad if Fontconfig headers are
available.
### Additional things
I like fonts.
---------
Co-authored-by: Nik <werwolv98@gmail.com>
* RUST_PATH doesn't seem to be used on ArchLinux
* renamed jobs
* no objc code on Windows (need confirmation)
* fakeroot strace patchelf for Ubuntu : not needed ?
* try to use some system libraries on Arch
* added comments to scroll to cmake instruction easily
* No ojbC code on Ubuntu
* cmake: use GNUInstallDirs to find install dirs on Linux
* install plugins to lib/imhex/plugins
* fix included files in imhex.spec
* fix the release CI + do not upload x86_64 folder for Fedora
* change rpm names
* added IMHEX_STRIP_RELEASE option to optionally strip releases files (was done all the time before)
* Customize our imhex.spec file (use online building for our Fedora package)
* added IMHEX_PLUGINS_IN_SHARE option for AppImage
* test
* Ci: use matrix for Fedora
* Ci: use ccache in Fedora build
* Ci: cache CMakeCache for Fedora
* build type release fedora
* Rawhide with lowercase
* strip binaries on Linux
* strip files for CPack (didn't test)
* add soversion to libimhex on Linux and MacOS
* fixed that typo
* store version in file
* use version file in release workflow
* use new version file in build workflow
* ArchLinux build
* setup cache for ArchLinux
* add version check in release CI
* edit step description
* update pkgbuild to install correctly
* AUR deploy
* rename version file to VERSION
* install all default plugins in PKGBUILD
* Added emojis to build workflow
* Added emojis to release workflow
* separate update packages and install dependencies in two steps
* fix Release CI
* add md5Sums to PKGBUILD
* make PKGBUILD point to the official repo + set v in tag