Download - Ada in Fedora linux
Ada in Fedora Linux
Ada in Fedora LinuxPresent and future
Pavel Zhukov
FOSDEM’14
1 / 28
Ada in Fedora Linux
Why Fedora?Fedora Project OverviewAdvantages
Packaging issues
Guidelines
Multilib support
List of packages
Our plans
Resources
2 / 28
Ada in Fedora Linux
Why Fedora?
Fedora Project Overview
FedoraProject
We believe we should use and dis-tribute the software and content wepromote to accomplish our mission ofadvancing free software. We providefree alternatives to proprietary codeand content to make Fedora com-
pletely free and redistributable for everyone. That way,anyone can use any of our work for their own purposes,without legal hassles, to further spread free software.
We believe success comes from astrong community, made of peoplefrom around the world, working to-gether. There’s a place in Fedorafor anyone who supports our valuesand wants to help. By collaborating
with each other openly and transparently, and with astrong, supportive partnership with our sponsors, wecan achieve great things.
We believe the hard work of creatingnew technical features makes free soft-ware more powerful, flexible, and use-ful for millions of people. We don’tmind shaking up the status quo, whenit means we can more effectively move
free software forward. And we do it by collaboratingdirectly with the many software communities whosework is distributed by Fedora. That way everyone ben-efits, regardless of whether they use Fedora or not.
We believe in the power of innovationand showing off new work in our re-leases. Since we release twice a year,you never have to wait long to seethe latest and greatest software, whilethere are other Linux products derived
from Fedora you can use for long-term stability. Wealways keep Fedora moving forward so that you cansee the future first.
3 / 28
Ada in Fedora Linux
Why Fedora?
Advantages
Why fedora?
I ModernI GCC-4.8.2 (Fedora 20)I systemd
I Great VirtualizationI Use different VMs for different compilers/versions/archesI Use snapshots to be safeI Use SPICE to use native GUI
I Wide community
I The main reason is: Each Linux distribution must have Adastack!
4 / 28
Ada in Fedora Linux
Why Fedora?
Advantages
Why fedora?
I ModernI GCC-4.8.2 (Fedora 20)I systemd
I Great VirtualizationI Use different VMs for different compilers/versions/archesI Use snapshots to be safeI Use SPICE to use native GUI
I Wide community
I The main reason is: Each Linux distribution must have Adastack!
5 / 28
Ada in Fedora Linux
Why Fedora?
Advantages
Why fedora?
I ModernI GCC-4.8.2 (Fedora 20)I systemd
I Great VirtualizationI Use different VMs for different compilers/versions/archesI Use snapshots to be safeI Use SPICE to use native GUI
I Wide community
I The main reason is: Each Linux distribution must have Adastack!
6 / 28
Ada in Fedora Linux
Why Fedora?
Advantages
Why fedora?
I ModernI GCC-4.8.2 (Fedora 20)I systemd
I Great VirtualizationI Use different VMs for different compilers/versions/archesI Use snapshots to be safeI Use SPICE to use native GUI
I Wide community
I The main reason is: Each Linux distribution must have Adastack!
7 / 28
Ada in Fedora Linux
Packaging issues
Issues
I The latest versions are not properly tested and contain manybugs.
I Libraries are being updated frequently
I Multilib support is not implemented by default
I Build systems of the packages do not follow any standards
I Almost all packages are linked statically
I GNAT-GPL is not packaged because of fedora policies.
I ASIS and DSA is not packaged because of there is noGNAT-GPL in fedora
8 / 28
Ada in Fedora Linux
Packaging issues
Issues
I The latest versions are not properly tested and contain manybugs.
I Libraries are being updated frequently
I Multilib support is not implemented by default
I Build systems of the packages do not follow any standards
I Almost all packages are linked statically
I GNAT-GPL is not packaged because of fedora policies.
I ASIS and DSA is not packaged because of there is noGNAT-GPL in fedora
9 / 28
Ada in Fedora Linux
Packaging issues
Issues
I The latest versions are not properly tested and contain manybugs.
I Libraries are being updated frequently
I Multilib support is not implemented by default
I Build systems of the packages do not follow any standards
I Almost all packages are linked statically
I GNAT-GPL is not packaged because of fedora policies.
I ASIS and DSA is not packaged because of there is noGNAT-GPL in fedora
10 / 28
Ada in Fedora Linux
Packaging issues
Issues
I The latest versions are not properly tested and contain manybugs.
I Libraries are being updated frequently
I Multilib support is not implemented by default
I Build systems of the packages do not follow any standards
I Almost all packages are linked statically
I GNAT-GPL is not packaged because of fedora policies.
I ASIS and DSA is not packaged because of there is noGNAT-GPL in fedora
11 / 28
Ada in Fedora Linux
Packaging issues
Issues
I The latest versions are not properly tested and contain manybugs.
I Libraries are being updated frequently
I Multilib support is not implemented by default
I Build systems of the packages do not follow any standards
I Almost all packages are linked statically
I GNAT-GPL is not packaged because of fedora policies.
I ASIS and DSA is not packaged because of there is noGNAT-GPL in fedora
12 / 28
Ada in Fedora Linux
Packaging issues
Issues
I The latest versions are not properly tested and contain manybugs.
I Libraries are being updated frequently
I Multilib support is not implemented by default
I Build systems of the packages do not follow any standards
I Almost all packages are linked statically
I GNAT-GPL is not packaged because of fedora policies.
I ASIS and DSA is not packaged because of there is noGNAT-GPL in fedora
13 / 28
Ada in Fedora Linux
Packaging issues
Issues
I The latest versions are not properly tested and contain manybugs.
I Libraries are being updated frequently
I Multilib support is not implemented by default
I Build systems of the packages do not follow any standards
I Almost all packages are linked statically
I GNAT-GPL is not packaged because of fedora policies.
I ASIS and DSA is not packaged because of there is noGNAT-GPL in fedora
14 / 28
Ada in Fedora Linux
Guidelines
Guidelines
I No static libs allowed*I ./confugire –build-sharedI make -XLIBRARY TYPE=dynamicI patching /
I No bundled libs allowedI rm -rf zlibI remove it from gpr files patching /
I Versioned libraries requiredI Directories project MUST be included to support multilib
I ”with directories;for Library Dir use Directories.Libdir & ”myniceproject”;
15 / 28
Ada in Fedora Linux
Guidelines
Guidelines
I No static libs allowed*I ./confugire –build-sharedI make -XLIBRARY TYPE=dynamicI patching /
I No bundled libs allowedI rm -rf zlibI remove it from gpr files patching /
I Versioned libraries requiredI Directories project MUST be included to support multilib
I ”with directories;for Library Dir use Directories.Libdir & ”myniceproject”;
16 / 28
Ada in Fedora Linux
Guidelines
Guidelines
I No static libs allowed*I ./confugire –build-sharedI make -XLIBRARY TYPE=dynamicI patching /
I No bundled libs allowedI rm -rf zlibI remove it from gpr files patching /
I Versioned libraries required
I Directories project MUST be included to support multilibI ”with directories;
for Library Dir use Directories.Libdir & ”myniceproject”;
17 / 28
Ada in Fedora Linux
Guidelines
Guidelines
I No static libs allowed*I ./confugire –build-sharedI make -XLIBRARY TYPE=dynamicI patching /
I No bundled libs allowedI rm -rf zlibI remove it from gpr files patching /
I Versioned libraries requiredI Directories project MUST be included to support multilib
I ”with directories;for Library Dir use Directories.Libdir & ”myniceproject”;
18 / 28
Ada in Fedora Linux
Guidelines
Guidelines cont.
I The package MUST be compiled using Fedora optimizationflags*
I gcc -c -O2 -gnatn -gnatws -gnat05 -O2 -g -pipe -Wall-Wp,-D FORTIFY SOURCE=2 -fexceptions-fstack-protector-strong –param=ssp-buffer-size=4-grecord-gcc-switches -m64 -mtune=generic -gnatn -gnat-p-gnatVd -gnatwn -gnatyN gnatcoll-readline.adb
I Unversioned libraries (symlinks) and ad[bs] files placed in-devel package
I Project files MUST be architecture-independent and placedunder % GNAT project dir (/usr/share/gpr)
19 / 28
Ada in Fedora Linux
Guidelines
Guidelines cont.
I The package MUST be compiled using Fedora optimizationflags*
I gcc -c -O2 -gnatn -gnatws -gnat05 -O2 -g -pipe -Wall-Wp,-D FORTIFY SOURCE=2 -fexceptions-fstack-protector-strong –param=ssp-buffer-size=4-grecord-gcc-switches -m64 -mtune=generic -gnatn -gnat-p-gnatVd -gnatwn -gnatyN gnatcoll-readline.adb
I Unversioned libraries (symlinks) and ad[bs] files placed in-devel package
I Project files MUST be architecture-independent and placedunder % GNAT project dir (/usr/share/gpr)
20 / 28
Ada in Fedora Linux
Guidelines
Guidelines cont.
I The package MUST be compiled using Fedora optimizationflags*
I gcc -c -O2 -gnatn -gnatws -gnat05 -O2 -g -pipe -Wall-Wp,-D FORTIFY SOURCE=2 -fexceptions-fstack-protector-strong –param=ssp-buffer-size=4-grecord-gcc-switches -m64 -mtune=generic -gnatn -gnat-p-gnatVd -gnatwn -gnatyN gnatcoll-readline.adb
I Unversioned libraries (symlinks) and ad[bs] files placed in-devel package
I Project files MUST be architecture-independent and placedunder % GNAT project dir (/usr/share/gpr)
21 / 28
Ada in Fedora Linux
Multilib support
To make you package according with Fedora packaging guidelines:
I Add option to build shared libraries
I Add ”with directories;” to the gpr use clauses and use ”forLibrary Dir use Directories.LibDir & ”name””
I OR add library dir/include dir options to configure/makefileoptions
22 / 28
Ada in Fedora Linux
Multilib support
To make you package according with Fedora packaging guidelines:
I Add option to build shared libraries
I Add ”with directories;” to the gpr use clauses and use ”forLibrary Dir use Directories.LibDir & ”name””
I OR add library dir/include dir options to configure/makefileoptions
23 / 28
Ada in Fedora Linux
Multilib support
To make you package according with Fedora packaging guidelines:
I Add option to build shared libraries
I Add ”with directories;” to the gpr use clauses and use ”forLibrary Dir use Directories.LibDir & ”name””
I OR add library dir/include dir options to configure/makefileoptions
24 / 28
Ada in Fedora Linux
List of packages
Packages
Name Version Summary
aunit 2012 Unit test frameworkaws 2013 Ada Web Serverflorist 2011 IEEE Standard 1003.5b-1996 implement.gela-asis 0.3.1 ASIS implementationgnatcoll 2013 Suite of reusable software componentsgprbuild 2013 Ada project builderGtkAda 2.24.2 Gtk bindingmatreshka 0.6.0 Set of libraries: text codecs, XML, FastCGI,
SQL, UML. etcxmlada 2013 Full XML stack for Adazeromq-ada git Ada bindings for zeromq
25 / 28
Ada in Fedora Linux
Our plans
Our plans
I ARM and ARM64 supportI New packages coming soon:
I PolyORB - without DSAI GtkAda v3 - as alternative libraryI QtAda - http://qtada.comI GPS is really needed. Patches are welcomed!I YourNicePackage.rpm /
I Ada group in comps ”yum groupinstall Ada”
I Ada Special Interest Group (SIG)
26 / 28
Ada in Fedora Linux
Resources
Resources
I https://fedoraproject.org/wiki/Ada
I https://fedoraproject.org/wiki/Packaging:Ada
I https://admin.fedoraproject.org/mailman/listinfo/ada
27 / 28
Ada in Fedora Linux
Resources
Interesting thing: Ada in Russian sounds like ”hell’. Ada language sounds line ”Language of hell”, Adaprogramming sounds like ”programming in hell” and so on.
28 / 28