[gtkada] Patches for gtkada-2.24.4 with gnat-pro-17.x (and higher)

BEAUGY Alexandre alexandre.beaugy at thalesgroup.com
Mon Mar 18 15:57:00 CET 2019


Dear all,

Please find in attachment one last patch (for (gnatpro|gps)-19.1 only).

This patch upgrades gtkada2 GPR files content in order to be able to use
them within gps-19.1 (otherwise it complains on "static-pic" kind not
defined).

Br,

-- 
Alexandre BEAUGY
[@@ OPEN @@]

-----Message d'origine-----
De : gtkada-bounces at lists.adacore.com
[mailto:gtkada-bounces at lists.adacore.com] De la part de BEAUGY Alexandre
Envoyé : mercredi 6 mars 2019 14:43
À : gtkada at lists.adacore.com
Objet : [gtkada] Patches for gtkada-2.24.4 with gnat-pro-17.x (and higher)

Dear all,

For those who still need to work with Gtk2 to build their Ada graphical
solution, but don't want to stay stuck with gnat(-pro) 7.2.2, and so using
gnat(-pro)-17.x (or higher), I've managed to setup a set of patches to allow
anyone to build a Gtk2 Ada project with gnat-pro-17.x (or higher).

First of all, I want to clarify a few things to explain my context:
- My target is el7.x86_64
- I want and I need to work with the latest gnat(-pro) available
- The GTK HMIs of my solution are stuck in gtk2 in the short-term (gtk3
migration only considered at a longer term)
- I don't want to carry an Adacore gtk2 binaries bundle at runtime (i.e.
gtk+-2.24.8-x86_64-pc-linux-gnu.tgz), so I'm working with gtk2 libraries
provided by el7

Now that the context is given, here is my approach:

First of all, to avoid any misunderstanding, the solution I will detail
below is mainly based on Fedora Project's work on gtkada2 (thanks to them),
that's why a big part of my solution come from there. But, as you will soon
notice, I did not do the full Fedora Project job, as I skipped all the
"Fedora Project -- Ada Packaging" specific stuff.

So let's go :

1. I first studied the patches extracted from GtkAda-2.24.2-19.fc24.src.rpm
and applicable to gtkada2-2.24.2

2. Then I did a(n incomplete) work of creating an equivalent set of patches
adapted to gtkada2-2.24.4, which led me to the following:
2.a. Patches *not* adapted:
(considered Fedora Project specific, or too much time consuming to fix, or
even already fixed in 2.24.*4*)
- GtkAda-2.14.1-multilib_gpr.patch
- GtkAda-2.14.1-multilib_gtkada-config.patch
- GtkAda-2.18.0-gl_placement.patch
- GtkAda-2.18.0-no_include_gmain.patch
- GtkAda-2.24.2-configuration-5.patch
- GtkAda-2.24.2-source_dir.patch
2.b. Patches adapted to gtkada2-2.24.2:
- GtkAda-2.18.0-link_as_needed.patch
- GtkAda-2.18.0-lm.patch
- GtkAda-2.24.2-man_xref.patch
- GtkAda-2.24.2-no_extern_inline.patch
- GtkAda-2.24.2-stringcopy.patch

3. I fixed GPR errors (non-blocking in gnat-pro-17.2 /*blocking* in
gnat-pro-19.1) in one last patch
(this patch includes one snippet -- simplified version of one debian
GNU/Linux
script: library-cfg.sh
(https://salsa.debian.org/debian/ncurses/blob/stretch/Ada95/src/library-cfg.
sh)
- GtkAda-2.24.4-gnatmake_cargs.patch

4. I determined the following order of application of patches based on
GtkAda.spec (from GtkAda-2.24.2-19.fc24.src.rpm):
4.a. GtkAda-2.18.0-lm.patch
4.b. GtkAda-2.18.0-link_as_needed.patch
4.c. GtkAda-2.24.2-man_xref.patch
4.d. GtkAda-2.24.2-stringcopy.patch
4.e. GtkAda-2.24.2-no_extern_inline.patch
4.f. GtkAda-2.24.4-gnatmake_cargs.patch

5. Then I built my gtkada2 that way:
  rm -rf /var/tmp/maestro-env.WK01yNE3Io/gtkada-2.24.4-src
  tar -C /var/tmp/maestro-env.WK01yNE3Io -xf gtkada-2.24.4-src.tgz
  pushd /var/tmp/maestro-env.WK01yNE3Io/gtkada-2.24.4-src
  patch -Np1 -i GtkAda-2.18.0-lm.patch
  patch -Np1 -i  GtkAda-2.18.0-link_as_needed.patch
  patch -Np1 -i GtkAda-2.24.2-man_xref.patch
  patch -Np1 -i GtkAda-2.24.2-stringcopy.patch
  patch -Np1 -i GtkAda-2.24.2-no_extern_inline.patch
  patch -Np1 -i GtkAda-2.24.4-gnatmake_cargs.patch
  ./configure
  make
  make install
  popd

I finally checked that my solution build and run properly with my newly
built gtkada2-2.24.4.el7.x86-64.
It did!
Successfully tested with gnat-pro-17.2 and gnat-pro-19.1.

Hope this helps.

Best Regards,

--
Alexandre BEAUGY
[@@ OPEN @@]

-------------- next part --------------
A non-text attachment was scrubbed...
Name: GtkAda-2.24.4-gpr_upgrade.patch.xz
Type: application/octet-stream
Size: 1104 bytes
Desc: not available
URL: </pipermail/gtkada/attachments/20190318/fd68460a/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 7349 bytes
Desc: not available
URL: </pipermail/gtkada/attachments/20190318/fd68460a/attachment.bin>


More information about the gtkada mailing list