Vratislav Podzimek vpodzime@redhat.com wrote:
On Fri, 2016-04-08 at 16:03 +0200, Björn Persson wrote:
Vratislav Podzimek vpodzime@redhat.com wrote:
So here I come with a hope to get some advice as well as some tasks to help with to make it easier for people to develop in Ada on Fedora.
I don't suppose you happen to have some hardware of one of the secondary architectures? In that case you might be able to help with the effort to get an up-to-date GPRbuild going on the secondary architectures.
I have access to an ARM64 system, ARMv7 system and if really needed, I could probably also reach some ppc(64) system. Would that be helpful?
Which Fedora is that ARM64 system running? In case you have F22, could you install this bugfix package and check whether that version of GPRbuild is able to build anything? https://arm.koji.fedoraproject.org/koji/buildinfo?buildID=368710
If that package works, it would be great if you could try the steps in this email and tell me how far you get: https://lists.fedoraproject.org/archives/list/arm@lists.fedoraproject.org/me...
I finally managed to get a ppc64 emulator installed last week. It's painfully slow to work with, it doesn't boot reliably unattended, and the upgrade to F24 alpha got only halfway done, but I got it working well enough that I could build with RPMbuild and troubleshoot GPRbuild. Thanks to that, I have now managed to build GPRbuild 2015 for F24 and Rawhide on ppc64, ppc64le and s390x, so that leaves aarch64 as the last architecture where it's not working yet.
If multilib compatibility is important to you, then there's an issue that you could choose to work on. 32- and 64-bit -devel packages are supposed to be parallel-installable, but those packages that have begun using gprinstall aren't, because gprinstall generates GNAT project files without multilib support. The project files would need to be fixed up at the end of the %install section.
I have no idea how to do something like this, but if it has high priority I can study it. That's probably a more general rule for me now as my experience with Ada is still quite limited (just writing and building some personal, more or less trivial, stuff). But I'd be glad to study basically anything new and interesting.
Pragmatically speaking, multilib compatibility is probably not all that important at this time. It annoys me that those packages violate both Fedora's policy and the Filesystem Hierarchy Standard, but it probably doesn't cause many problems in practice. At least I haven't heard from any users who want to compile their programs for both 32- and 64-bit CPUs and have trouble with that because of this issue.
I have also been wanting to look into Devassistant and the Developer Portal to see if it would make sense to add something Ada-related there. You could look at that if you're interested.
Maybe something for creating GPRbuild project files with some code stubs and such?
Maybe something like that yes, and a makefile with configuration variables compatible with the GNU Coding Standards, to make the project easy to build on various free operating systems.
I've written Comfignat to make Ada projects adapt well to the ways that free software is usually built and distributed. The project files and makefiles for each project can be quite simple because most of the complexity is contained in Comfignat: https://www.rombobj%C3%B6rn.se/Comfignat/
The next step could be a tool that takes some parameters such as a project name and whether it will be a program or a library, and generates project files and a makefile that use Comfignat. Maybe a module for Devassistant could be that tool.
Is there a reason for gnatcoll being only in its "2014" version?
Pavel Zhukov is the one who might know. It may be that he just didn't have time. Pavel, are you reading?
Thanks for the overview and the tips. Are there any priorities making something from the above more important than the other things? Maybe the GPRbuild issues on secondary arches?
That's what I'm prioritizing myself right now. I can't tell you what to do as I'm not paying you.
Björn Persson