1. Ada in Fedora Linux
Ada in Fedora Linux
Present and future
Pavel Zhukov
FOSDEM’14
1 / 28
2. Ada in Fedora Linux
Why Fedora?
Fedora Project Overview
Advantages
Packaging issues
Guidelines
Multilib support
List of packages
Our plans
Resources
2 / 28
3. Ada in Fedora Linux
Why Fedora?
Fedora Project Overview
FedoraProject
We believe we should use and distribute the software and content we
promote to accomplish our mission of
advancing free software. We provide
free alternatives to proprietary code
and content to make Fedora completely 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 a
strong community, made of people
from around the world, working together. There’s a place in Fedora
for anyone who supports our values
and wants to help. By collaborating
with each other openly and transparently, and with a
strong, supportive partnership with our sponsors, we
can achieve great things.
We believe the hard work of creating
new technical features makes free software more powerful, flexible, and useful for millions of people. We don’t
mind shaking up the status quo, when
it means we can more effectively move
free software forward. And we do it by collaborating
directly with the many software communities whose
work is distributed by Fedora. That way everyone benefits, regardless of whether they use Fedora or not.
We believe in the power of innovation
and showing off new work in our releases. Since we release twice a year,
you never have to wait long to see
the latest and greatest software, while
there are other Linux products derived
from Fedora you can use for long-term stability. We
always keep Fedora moving forward so that you can
see the future first.
3 / 28
4. Ada in Fedora Linux
Why Fedora?
Advantages
Why fedora?
Modern
GCC-4.8.2 (Fedora 20)
systemd
4 / 28
5. Ada in Fedora Linux
Why Fedora?
Advantages
Why fedora?
Modern
GCC-4.8.2 (Fedora 20)
systemd
Great Virtualization
Use different VMs for different compilers/versions/arches
Use snapshots to be safe
Use SPICE to use native GUI
5 / 28
6. Ada in Fedora Linux
Why Fedora?
Advantages
Why fedora?
Modern
GCC-4.8.2 (Fedora 20)
systemd
Great Virtualization
Use different VMs for different compilers/versions/arches
Use snapshots to be safe
Use SPICE to use native GUI
Wide community
6 / 28
7. Ada in Fedora Linux
Why Fedora?
Advantages
Why fedora?
Modern
GCC-4.8.2 (Fedora 20)
systemd
Great Virtualization
Use different VMs for different compilers/versions/arches
Use snapshots to be safe
Use SPICE to use native GUI
Wide community
The main reason is: Each Linux distribution must have Ada
stack!
7 / 28
8. Ada in Fedora Linux
Packaging issues
Issues
The latest versions are not properly tested and contain many
bugs.
8 / 28
9. Ada in Fedora Linux
Packaging issues
Issues
The latest versions are not properly tested and contain many
bugs.
Libraries are being updated frequently
9 / 28
10. Ada in Fedora Linux
Packaging issues
Issues
The latest versions are not properly tested and contain many
bugs.
Libraries are being updated frequently
Multilib support is not implemented by default
10 / 28
11. Ada in Fedora Linux
Packaging issues
Issues
The latest versions are not properly tested and contain many
bugs.
Libraries are being updated frequently
Multilib support is not implemented by default
Build systems of the packages do not follow any standards
11 / 28
12. Ada in Fedora Linux
Packaging issues
Issues
The latest versions are not properly tested and contain many
bugs.
Libraries are being updated frequently
Multilib support is not implemented by default
Build systems of the packages do not follow any standards
Almost all packages are linked statically
12 / 28
13. Ada in Fedora Linux
Packaging issues
Issues
The latest versions are not properly tested and contain many
bugs.
Libraries are being updated frequently
Multilib support is not implemented by default
Build systems of the packages do not follow any standards
Almost all packages are linked statically
GNAT-GPL is not packaged because of fedora policies.
13 / 28
14. Ada in Fedora Linux
Packaging issues
Issues
The latest versions are not properly tested and contain many
bugs.
Libraries are being updated frequently
Multilib support is not implemented by default
Build systems of the packages do not follow any standards
Almost all packages are linked statically
GNAT-GPL is not packaged because of fedora policies.
ASIS and DSA is not packaged because of there is no
GNAT-GPL in fedora
14 / 28
15. Ada in Fedora Linux
Guidelines
Guidelines
No static libs allowed*
./confugire –build-shared
make -XLIBRARY TYPE=dynamic
patching
15 / 28
16. Ada in Fedora Linux
Guidelines
Guidelines
No static libs allowed*
./confugire –build-shared
make -XLIBRARY TYPE=dynamic
patching
No bundled libs allowed
rm -rf zlib
remove it from gpr files patching
16 / 28
17. Ada in Fedora Linux
Guidelines
Guidelines
No static libs allowed*
./confugire –build-shared
make -XLIBRARY TYPE=dynamic
patching
No bundled libs allowed
rm -rf zlib
remove it from gpr files patching
Versioned libraries required
17 / 28
18. Ada in Fedora Linux
Guidelines
Guidelines
No static libs allowed*
./confugire –build-shared
make -XLIBRARY TYPE=dynamic
patching
No bundled libs allowed
rm -rf zlib
remove it from gpr files patching
Versioned libraries required
Directories project MUST be included to support multilib
”with directories;
for Library Dir use Directories.Libdir & ”myniceproject”;
18 / 28
19. Ada in Fedora Linux
Guidelines
Guidelines cont.
The package MUST be compiled using Fedora optimization
flags*
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
19 / 28
20. Ada in Fedora Linux
Guidelines
Guidelines cont.
The package MUST be compiled using Fedora optimization
flags*
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
Unversioned libraries (symlinks) and ad[bs] files placed in
-devel package
20 / 28
21. Ada in Fedora Linux
Guidelines
Guidelines cont.
The package MUST be compiled using Fedora optimization
flags*
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
Unversioned libraries (symlinks) and ad[bs] files placed in
-devel package
Project files MUST be architecture-independent and placed
under % GNAT project dir (/usr/share/gpr)
21 / 28
22. Ada in Fedora Linux
Multilib support
To make you package according with Fedora packaging guidelines:
Add option to build shared libraries
22 / 28
23. Ada in Fedora Linux
Multilib support
To make you package according with Fedora packaging guidelines:
Add option to build shared libraries
Add ”with directories;” to the gpr use clauses and use ”for
Library Dir use Directories.LibDir & ”name””
23 / 28
24. Ada in Fedora Linux
Multilib support
To make you package according with Fedora packaging guidelines:
Add option to build shared libraries
Add ”with directories;” to the gpr use clauses and use ”for
Library Dir use Directories.LibDir & ”name””
OR add library dir/include dir options to configure/makefile
options
24 / 28
25. Ada in Fedora Linux
List of packages
Packages
Name
aunit
aws
florist
gela-asis
gnatcoll
gprbuild
GtkAda
matreshka
Version
2012
2013
2011
0.3.1
2013
2013
2.24.2
0.6.0
xmlada
zeromq-ada
2013
git
Summary
Unit test framework
Ada Web Server
IEEE Standard 1003.5b-1996 implement.
ASIS implementation
Suite of reusable software components
Ada project builder
Gtk binding
Set of libraries: text codecs, XML, FastCGI,
SQL, UML. etc
Full XML stack for Ada
Ada bindings for zeromq
25 / 28
26. Ada in Fedora Linux
Our plans
Our plans
ARM and ARM64 support
New packages coming soon:
PolyORB - without DSA
GtkAda v3 - as alternative library
QtAda - http://qtada.com
GPS is really needed. Patches are welcomed!
YourNicePackage.rpm
Ada group in comps ”yum groupinstall Ada”
Ada Special Interest Group (SIG)
26 / 28
27. Ada in Fedora Linux
Resources
Resources
https://fedoraproject.org/wiki/Ada
https://fedoraproject.org/wiki/Packaging:Ada
https://admin.fedoraproject.org/mailman/listinfo/ada
27 / 28
28. Ada in Fedora Linux
Resources
Interesting thing: Ada in Russian sounds like ”hell’. Ada language sounds line ”Language of hell”, Ada
programming sounds like ”programming in hell” and so on.
28 / 28