Hello everybody, my name is Vratislav Podzimek. I'm a member of the Installer team at Red Hat primarily focusing on storage configuration and management. Other than that I'm also a "junior Ada enthusiast". Last weekend I spent some time trying to build GPS on my Fedora 23, but after overcoming 10 issues I gave up.
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.
My first question is - are there any plans to build the 2015 toolset for Fedora? I noticed all the built packages are based on the 2014 version now.
Thanks,
-- Vratislav Podzimek
Anaconda Rider | Red Hat, Inc. | Brno - Czech Republic
Vratislav Podzimek vpodzime@redhat.com wrote:
Hello everybody, my name is Vratislav Podzimek. I'm a member of the Installer team at Red Hat primarily focusing on storage configuration and management. Other than that I'm also a "junior Ada enthusiast".
Welcome to the team, Vratislav! Have you found the Ada packaging policy? https://fedoraproject.org/wiki/Packaging:Ada
Last weekend I spent some time trying to build GPS on my Fedora 23, but after overcoming 10 issues I gave up.
Yeah, that's probably not the best place to begin. Packaging Adacore's software is far from trivial, unfortunately. Their idea of how to distribute software isn't well aligned with Fedora's. I think you should get some experience before you take on GPS.
There was an attempt to package it once: https://bugzilla.redhat.com/show_bug.cgi?id=834747
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.
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 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.
If you want to make new packages, then you could for example pick something from https://codelabs.ch/. I've packaged Anet. I had to patch their makefile to make compiler and linker options, directories and file permissions configurable, but I had much less trouble with that than with Adacore's stuff. I managed to convince them to accept my patches.
My first question is - are there any plans to build the 2015 toolset for Fedora? I noticed all the built packages are based on the 2014 version now.
Do you mean in Fedora 22? In Fedora 23 on the primary architectures we have the 2015 versions of XMLada, GPRbuild, AWS and Aunit, and GTKada 3.8.3 which is also distributed as "2015". We don't normally push version upgrades to stable releases, as that would introduce soname changes and possibly other incompatibilities.
On the secondary architectures some packages are blocked by the GPRbuild trouble.
Björn Persson
On Fri, 2016-04-08 at 16:03 +0200, Björn Persson wrote:
Vratislav Podzimek vpodzime@redhat.com wrote:
Hello everybody, my name is Vratislav Podzimek. I'm a member of the Installer team at Red Hat primarily focusing on storage configuration and management. Other than that I'm also a "junior Ada enthusiast".
Welcome to the team, Vratislav! Have you found the Ada packaging policy? https://fedoraproject.org/wiki/Packaging:Ada
Thanks! I found it some time ago when I was looking for some information about building Ada stuff on Fedora. It's time to read it again and more thoroughly now, I think.
Last weekend I spent some time trying to build GPS on my Fedora 23, but after overcoming 10 issues I gave up.
Yeah, that's probably not the best place to begin. Packaging Adacore's software is far from trivial, unfortunately. Their idea of how to distribute software isn't well aligned with Fedora's. I think you should get some experience before you take on GPS.
There was an attempt to package it once: https://bugzilla.redhat.com/show_bug.cgi?id=834747
Well, I didn't try to package it, but merely build it. Even that proved to be quite hard for me though.
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?
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.
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?
If you want to make new packages, then you could for example pick something from https://codelabs.ch/. I've packaged Anet. I had to patch their makefile to make compiler and linker options, directories and file permissions configurable, but I had much less trouble with that than with Adacore's stuff. I managed to convince them to accept my patches.
Maybe once I find something there I'd like/need to use in one of my hobby projects.
My first question is - are there any plans to build the 2015 toolset for Fedora? I noticed all the built packages are based on the 2014 version now.
Do you mean in Fedora 22? In Fedora 23 on the primary architectures we have the 2015 versions of XMLada, GPRbuild, AWS and Aunit, and GTKada 3.8.3 which is also distributed as "2015". We don't normally push version upgrades to stable releases, as that would introduce soname changes and possibly other incompatibilities.
For some reason I thought that because 'gnatcoll' is a "2014" version, all the packages are.
# rpm -q gnatcoll gnatcoll-2014-5.fc23.x86_64
Is there a reason for gnatcoll being only in its "2014" version?
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?
Also sorry for such a late reply, I have been quite busy at work lately. That should get better soon so I hope to become helpful soon. :)
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