I'm investigating how GTKada 3 can be packaged in Fedora. These are my current thoughts on the matter:
GTK+ 3 contains many API changes, and so does GTKada 3. Packages currently in Fedora require GTKada 2 and can't simply be recompiled with GTKada 3. There may also be users I don't know about who need GTKada 2. Therefore I think we need to ship both versions for at least a few Fedora releases.
Unlike GTK+, GTKada has no support for installing two versions side by side, other than dumping the entire directory tree under some nonstandard prefix and requiring users to mess with various environment variables. Despite the API incompatibilities, both versions use the filenames "gtkada.gpr", "gtkada-config" and "gtkada.pc".
Theoretically I could hack the build system to change various filenames from "gtkada" to "gtkada3", but that would be a lot of trouble and would make Fedora incompatible with everything that uses GTKada. Both developers and packagers would have to do special things to select the right version of the library.
I think I'll make a new package named GtkAda3, and allow it to use mostly the same filenames as the existing package GtkAda. The binary libraries will be parallel-installable because their filenames are versioned, but the -devel packages will conflict. A program using GTKada 3 will coexist peacefully with one using GTKada 2, and building packages in Koji or Mock will work as each package will pull in either GtkAda or GtkAda3 but not both. Only developers who want to program for both versions of GTKada at once will have a problem. They will have to install at least one of the libraries elsewhere in the filesystem and mess with environment variables as Adacore expects them to do.
There are no Gnome bindings in GTKada 3. The OpenGL bindings and the GTK.Extra widgets don't compile, so it looks like those will be left out of the package, at least initially.
Björn Persson
Quoting Björn Persson <bjorn@rombobjörn.se>:
I'm investigating how GTKada 3 can be packaged in Fedora. These are my current thoughts on the matter:
GTK+ 3 contains many API changes, and so does GTKada 3. Packages currently in Fedora require GTKada 2 and can't simply be recompiled with GTKada 3. There may also be users I don't know about who need GTKada 2. Therefore I think we need to ship both versions for at least a few Fedora releases.
Do we have many packages which depend on GtkAda. I *think* gnatcoll should be recompilled with v3 (not sure tbh).
Unlike GTK+, GTKada has no support for installing two versions side by side, other than dumping the entire directory tree under some nonstandard prefix and requiring users to mess with various environment variables. Despite the API incompatibilities, both versions use the filenames "gtkada.gpr", "gtkada-config" and "gtkada.pc".
Theoretically I could hack the build system to change various filenames from "gtkada" to "gtkada3", but that would be a lot of trouble and would make Fedora incompatible with everything that uses GTKada. Both developers and packagers would have to do special things to select the right version of the library.
I think I'll make a new package named GtkAda3, and allow it to use mostly the same filenames as the existing package GtkAda. The binary libraries will be parallel-installable because their filenames are versioned, but the -devel packages will conflict. A program using GTKada 3 will coexist peacefully with one using GTKada 2, and building packages in Koji or Mock will work as each package will pull in either GtkAda or GtkAda3 but not both. Only developers who want to program for both versions of GTKada at once will have a problem. They will have to install at least one of the libraries elsewhere in the filesystem and mess with environment variables as Adacore expects them to do.
Is it possible to use something like alternativities for it? It should be able to maintain symlinks... Or both GtkAda2.x and GtkAda3.x cans provide GtkAda (more usefull packages is more preffered).
There are no Gnome bindings in GTKada 3. The OpenGL bindings and the GTK.Extra widgets don't compile, so it looks like those will be left out of the package, at least initially.
Björn Persson
pavel@zhukoff.net wrote:
Do we have many packages which depend on GtkAda. I *think* gnatcoll should be recompilled with v3 (not sure tbh).
On Adacore's download page there's a README that says this:
| This version of GNATCOLL is not compatible with GtkAda 3.x. If you are | using that version, you should be configuring with: | | ./configure --without-gtk ... | | It will however work properly with GtkAda 2.x
There's also Mine Detector. An attempt to compile Mine Detector with GTKada 3.4.2 failed because it uses some subprograms that have been removed. I don't know how many other problems would show up if those were solved.
Is it possible to use something like alternativities for it? It should be able to maintain symlinks... Or both GtkAda2.x and GtkAda3.x cans provide GtkAda (more usefull packages is more preffered).
With Alternatives only one of the libraries would be active at a time, and it's a system-wide setting. Switching between them would be similar to just removing one package and installing the other.
Environment modules would be better suited for this, but I think it would take considerable work as the upstream build system doesn't support this. I also don't know if environment modules can be set up such that the library is enabled by default when only one version is installed.
I think my time is better spent packaging something else, but I can accept a co-maintainer who wants to develop and maintain a solution.
Björn Persson
Björn Persson wrote:
I'm investigating how GTKada 3 can be packaged in Fedora.
There is now a review request: https://bugzilla.redhat.com/show_bug.cgi?id=1058941
Björn Persson