abraunegg / onedrive

OneDrive Client for Linux
https://abraunegg.github.io
GNU General Public License v3.0
9.62k stars 849 forks source link

Feature Request: GDC >=12.x support #2472

Open joecool1029 opened 11 months ago

joecool1029 commented 11 months ago

Is your feature request related to a problem? Please describe.

Currently the project officially only supports LDC and DMD. GDC used to be super-outdated but as of gcc-12 it's been synced up to a new enough DMD. This newer branch can build it provided the sqlite phobos interface gets added directly to this project and minor changes are made to support the syntax. For unknown reasons it was dropped out and I have asked upstream about it: https://forum.dlang.org/thread/doevjetmiwxovecplksr@forum.dlang.org

Describe the solution you'd like

Ideally, support GDC now that it's kept more up to date. Add the missing sqlite3 interface to the project and adapt autotools and the build system to handle the different GDC syntax. It's possible dlang's upstream may eventually re-add it to GCC but there's no guarantee it will make it into all current branches.

Describe alternatives you've considered

I've forked and added support for building this with GDC so long as autotools isn't touched. It is available here but not suitable for merging yet: https://github.com/joecool1029/onedrive/tree/gdcsupport

It would need to be further adapted to let it work with autotools, but it currently functions just fine to build the current release. I am requesting Gentoo move onedrive from the outdated dlang-overlay to the main package repository where it will normally be built with GDC (as this is the only one of the major dlang compilers available in the main Gentoo tree).

Additional context

No response

abraunegg commented 11 months ago

@joecool1029 Thanks for your effort in looking at this.

For the moment, the blocker is GDC itself and the missing sqlite interface. I am really hesitant to include something that should be included with the compiler - as then I will need to keep dependency tracking on another component outside of the static ones that are used - so that is not an ideal situation.

to the main package repository where it will normally be built with GDC (as this is the only one of the major dlang compilers available in the main Gentoo tree)

Why cant you look to include LDC or DMD directly? This seems to be the path of least resistance - given that LDC is available on most other distributions?

For now I am going to put this FR on hold and not think about it until one of the following happens: