summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilken Gottwalt2023-08-06 08:29:01 +0200
committerWilken Gottwalt2023-08-06 08:29:01 +0200
commit739b6f2911efc7cced4f8b00166d24e94892b8c0 (patch)
tree5eba89e4a4b40bb6565d1973ecbe6e8c6ffaaade
parent647217bf02f44ad8b543f839410bbe3e9851c4d3 (diff)
downloadaur-gnoga.tar.gz
update to version 1.6a
- adds a fix for a very annoying GNAT bug
-rw-r--r--.SRCINFO11
-rw-r--r--PKGBUILD24
-rw-r--r--fix-object-subtype-not-statically-matching-designated-subtype.patch337
3 files changed, 358 insertions, 14 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 25d1e2a74122..db12219436c3 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,16 +1,19 @@
pkgbase = gnoga
pkgdesc = Ada native GUI framework similar to the Electron framework
- pkgver = 1.5a
- pkgrel = 4
+ pkgver = 1.6a
+ pkgrel = 1
url = http://www.gnoga.com/
arch = x86_64
license = GPL3
makedepends = gcc-ada
makedepends = gprbuild
+ makedepends = gprtools
makedepends = libgpr
depends = libgpr
provides = gnoga
- source = https://downloads.sourceforge.net/project/gnoga/gnoga-1.5a.zip
- sha256sums = 0b7d119b7d0c30e5889b5aaf90a0aa1bf1d0e9ecc8cfcb8738fd6c8df3e497fd
+ source = https://downloads.sourceforge.net/project/gnoga/gnoga-1.6a.zip
+ source = fix-object-subtype-not-statically-matching-designated-subtype.patch
+ sha256sums = 5eca4c8de6b59c6b6c51a22310b1e4175afe62c893604955e9014c4ed8e79148
+ sha256sums = 3365d77edb6cee4c915d437905af1bb8ab4304c8db69ad089c7cadb30662ce34
pkgname = gnoga
diff --git a/PKGBUILD b/PKGBUILD
index d506fd92198c..46806f93ffbd 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,27 +1,31 @@
# Maintainer: Wilken Gottwalt <wilken dot gottwalt at posteo dot net>
pkgname=gnoga
-pkgver=1.5a
-pkgrel=4
+pkgver=1.6a
+pkgrel=1
pkgdesc="Ada native GUI framework similar to the Electron framework"
arch=('x86_64')
url="http://www.gnoga.com/"
license=('GPL3')
depends=('libgpr')
-makedepends=('gcc-ada' 'gprbuild' 'libgpr')
+makedepends=(gcc-ada gprbuild gprtools libgpr)
provides=('gnoga')
-source=("https://downloads.sourceforge.net/project/gnoga/gnoga-${pkgver}.zip")
-sha256sums=('0b7d119b7d0c30e5889b5aaf90a0aa1bf1d0e9ecc8cfcb8738fd6c8df3e497fd')
+source=(https://downloads.sourceforge.net/project/gnoga/gnoga-${pkgver}.zip
+ fix-object-subtype-not-statically-matching-designated-subtype.patch)
+sha256sums=('5eca4c8de6b59c6b6c51a22310b1e4175afe62c893604955e9014c4ed8e79148'
+ '3365d77edb6cee4c915d437905af1bb8ab4304c8db69ad089c7cadb30662ce34')
build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
+ cd "${srcdir}/${pkgname}-${pkgver}"
- make -j1 BUILD_MODE=Release all
+ patch -Np1 -i "${srcdir}"/fix-*
+
+ make -j1 BUILD_MODE=Release all
}
package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
+ cd "${srcdir}/${pkgname}-${pkgver}"
- make -j1 PREFIX="${pkgdir}/usr" BUILD_MODE=Release install
- cp "${srcdir}/${pkgname}-${pkgver}/settings.gpr" "${pkgdir}/usr/share/gpr/settings.gpr"
+ make PREFIX="${pkgdir}"/usr -j1 BUILD_MODE=Release install
+ cp "${srcdir}/${pkgname}-${pkgver}"/settings.gpr "${pkgdir}"/usr/share/gpr/settings.gpr
}
diff --git a/fix-object-subtype-not-statically-matching-designated-subtype.patch b/fix-object-subtype-not-statically-matching-designated-subtype.patch
new file mode 100644
index 000000000000..5cd6a21d36f0
--- /dev/null
+++ b/fix-object-subtype-not-statically-matching-designated-subtype.patch
@@ -0,0 +1,337 @@
+fix object subtype not statically matching designated subtype
+
+There is a compiler bug in GNAT (https://gcc.gnu.org/bugzilla//show_bug.cgi?id=108157)
+this patch fixes by applying the latest "simple components" atomic part
+to the sources. The version 4.67 components finaly have a workaround for
+this issue.
+---
+diff --no-dereference -urpN a/deps/simple_components/atomic-access/ada/generic_blackboard.ads b/deps/simple_components/atomic-access/ada/generic_blackboard.ads
+--- a/deps/simple_components/atomic-access/ada/generic_blackboard.ads 2023-08-06 08:19:58.194524919 +0200
++++ b/deps/simple_components/atomic-access/ada/generic_blackboard.ads 2022-11-26 09:15:48.000000000 +0100
+@@ -3,7 +3,7 @@
+ -- Interface Luebeck --
+ -- Autumn, 2007 --
+ -- --
+--- Last revision : 17:44 21 Jul 2018 --
++-- Last revision : 09:15 26 Nov 2022 --
+ -- --
+ -- This library is free software; you can redistribute it and/or --
+ -- modify it under the terms of the GNU General Public License as --
+@@ -83,7 +83,7 @@ package Generic_Blackboard is
+ -- Size - The size of, in storage elements
+ --
+ -- The blackboard size detemines how long survives an element put into
+--- the balckboard, after consequent placing other elements into it.
++-- the blackboard, after consequent placing other elements into it.
+ --
+ type Blackboard (Size : Storage_Count) is
+ new Ada.Finalization.Limited_Controlled with private;
+diff --no-dereference -urpN a/deps/simple_components/atomic-access/ada/gnat-sockets-server.adb b/deps/simple_components/atomic-access/ada/gnat-sockets-server.adb
+--- a/deps/simple_components/atomic-access/ada/gnat-sockets-server.adb 2023-08-06 08:19:58.194524919 +0200
++++ b/deps/simple_components/atomic-access/ada/gnat-sockets-server.adb 2023-03-10 10:37:17.000000000 +0100
+@@ -3,7 +3,7 @@
+ -- Implementation Luebeck --
+ -- Winter, 2012 --
+ -- --
+--- Last revision : 14:53 29 Feb 2020 --
++-- Last revision : 10:37 10 Mar 2023 --
+ -- --
+ -- This library is free software; you can redistribute it and/or --
+ -- modify it under the terms of the GNU General Public License as --
+@@ -92,7 +92,7 @@ package body GNAT.Sockets.Server is
+ return Free (Client.Written);
+ end Available_To_Send;
+
+- procedure Clear (Client : in out Connection'Class) is
++ procedure Clear (Client : in out Connection) is
+ begin
+ Client.Failed := False; -- Clean I/O state
+ Client.External_Action := False;
+@@ -299,6 +299,9 @@ package body GNAT.Sockets.Server is
+ null;
+ end Downed;
+
++ function "+" is
++ new Ada.Unchecked_Conversion (System.Address, Selector_Access);
++
+ procedure Do_Connect
+ ( Listener : in out Connections_Server'Class;
+ Client : in out Connection_Ptr
+@@ -317,7 +320,9 @@ package body GNAT.Sockets.Server is
+ ( Socket => Client.Socket,
+ Server => Client.Client_Address,
+ Timeout => 0.0,
+- Selector => Listener.Selector'Unchecked_Access,
++-- Selector => Listener.Selector'Unchecked_Access,
++-- Selector => +Listener.Selector'Address, -- GNAT 12.1 bug
++ Selector => Listener.Selector'Unrestricted_Access, -- ditto
+ Status => Status
+ );
+ if Status = Completed then
+@@ -767,7 +772,9 @@ package body GNAT.Sockets.Server is
+ Client'Unchecked_Access
+ );
+ end if;
+- Set (Listener.Read_Sockets, Client.Socket);
++ if Client.Socket /= No_Socket then
++ Set (Listener.Read_Sockets, Client.Socket);
++ end if;
+ if Client.Transport = null then -- No handshaking
+ declare
+ Saved : constant Session_State := Client.Session;
+@@ -1306,7 +1313,7 @@ package body GNAT.Sockets.Server is
+ or else
+ ( Pointer > Data'Last
+ and then
+- Pointer - 1 > Data'Last
++ Pointer - Data'Last /= 1
+ ) )
+ then
+ Raise_Exception (Layout_Error'Identity, "Subscript error");
+diff --no-dereference -urpN a/deps/simple_components/atomic-access/ada/gnat-sockets-server.ads b/deps/simple_components/atomic-access/ada/gnat-sockets-server.ads
+--- a/deps/simple_components/atomic-access/ada/gnat-sockets-server.ads 2023-08-06 08:19:58.194524919 +0200
++++ b/deps/simple_components/atomic-access/ada/gnat-sockets-server.ads 2021-10-23 18:40:05.000000000 +0200
+@@ -3,7 +3,7 @@
+ -- Interface Luebeck --
+ -- Winter, 2012 --
+ -- --
+--- Last revision : 14:52 29 Feb 2020 --
++-- Last revision : 18:40 23 Oct 2021 --
+ -- --
+ -- This library is free software; you can redistribute it and/or --
+ -- modify it under the terms of the GNU General Public License as --
+@@ -151,6 +151,12 @@ package GNAT.Sockets.Server is
+ function Available_To_Send (Client : Connection)
+ return Stream_Element_Count;
+ --
++-- Clear -- Clear the client internal state
++--
++-- Client - The client connection object
++--
++ procedure Clear (Client : in out Connection);
++--
+ -- Connect -- Connect to a server
+ --
+ -- Listener - The server object
+@@ -672,7 +678,7 @@ package GNAT.Sockets.Server is
+ --
+ -- Returns :
+ --
+--- True if client handles and incoming connection
++-- True if client handles an incoming connection
+ --
+ function Is_Incoming (Client : Connection) return Boolean;
+ --
+diff --no-dereference -urpN a/deps/simple_components/atomic-access/ada/synchronization-interprocess-generic_blackboard.ads b/deps/simple_components/atomic-access/ada/synchronization-interprocess-generic_blackboard.ads
+--- a/deps/simple_components/atomic-access/ada/synchronization-interprocess-generic_blackboard.ads 2023-08-06 08:19:58.194524919 +0200
++++ b/deps/simple_components/atomic-access/ada/synchronization-interprocess-generic_blackboard.ads 2022-11-26 09:15:48.000000000 +0100
+@@ -3,7 +3,7 @@
+ -- Synchronization.Interprocess. Luebeck --
+ -- Generic_Blackboard Spring, 2018 --
+ -- Interface --
+--- Last revision : 17:44 21 Jul 2018 --
++-- Last revision : 09:15 26 Nov 2022 --
+ -- --
+ -- This library is free software; you can redistribute it and/or --
+ -- modify it under the terms of the GNU General Public License as --
+@@ -70,7 +70,7 @@ package Synchronization.Interprocess.Gen
+ -- Size - The size of, in storage elements
+ --
+ -- The blackboard size detemines how long survives an element put into
+--- the balckboard, after consequent placing other elements into it. The
++-- the blackboard, after consequent placing other elements into it. The
+ -- blackboard requires a mutex used when putting data into it. The mutex
+ -- must be placed in the shared environment object before the queue. For
+ -- example:
+diff --no-dereference -urpN a/deps/simple_components/atomic-access/gcc/gnat-sockets-server.adb b/deps/simple_components/atomic-access/gcc/gnat-sockets-server.adb
+--- a/deps/simple_components/atomic-access/gcc/gnat-sockets-server.adb 2023-08-06 08:19:58.195524919 +0200
++++ b/deps/simple_components/atomic-access/gcc/gnat-sockets-server.adb 2023-03-10 10:37:17.000000000 +0100
+@@ -3,7 +3,7 @@
+ -- Implementation Luebeck --
+ -- Winter, 2012 --
+ -- --
+--- Last revision : 22:41 09 Mar 2020 --
++-- Last revision : 10:37 10 Mar 2023 --
+ -- --
+ -- This library is free software; you can redistribute it and/or --
+ -- modify it under the terms of the GNU General Public License as --
+@@ -92,7 +92,7 @@ package body GNAT.Sockets.Server is
+ return Free (Client.Written);
+ end Available_To_Send;
+
+- procedure Clear (Client : in out Connection'Class) is
++ procedure Clear (Client : in out Connection) is
+ begin
+ Client.Failed := False; -- Clean I/O state
+ Client.External_Action := False;
+@@ -299,6 +299,9 @@ package body GNAT.Sockets.Server is
+ null;
+ end Downed;
+
++ function "+" is
++ new Ada.Unchecked_Conversion (System.Address, Selector_Access);
++
+ procedure Do_Connect
+ ( Listener : in out Connections_Server'Class;
+ Client : in out Connection_Ptr
+@@ -317,7 +320,9 @@ package body GNAT.Sockets.Server is
+ ( Socket => Client.Socket,
+ Server => Client.Client_Address,
+ Timeout => 0.0,
+- Selector => Listener.Selector'Unchecked_Access,
++-- Selector => Listener.Selector'Unchecked_Access,
++-- Selector => +Listener.Selector'Address, -- GNAT 12.1 bug
++ Selector => Listener.Selector'Unrestricted_Access, -- ditto
+ Status => Status
+ );
+ if Status = Completed then
+@@ -767,7 +772,9 @@ package body GNAT.Sockets.Server is
+ Client'Unchecked_Access
+ );
+ end if;
+- Set (Listener.Read_Sockets, Client.Socket);
++ if Client.Socket /= No_Socket then
++ Set (Listener.Read_Sockets, Client.Socket);
++ end if;
+ if Client.Transport = null then -- No handshaking
+ declare
+ Saved : constant Session_State := Client.Session;
+@@ -1306,7 +1313,7 @@ package body GNAT.Sockets.Server is
+ or else
+ ( Pointer > Data'Last
+ and then
+- Pointer - 1 > Data'Last
++ Pointer - Data'Last /= 1
+ ) )
+ then
+ Raise_Exception (Layout_Error'Identity, "Subscript error");
+diff --no-dereference -urpN a/deps/simple_components/atomic-access/gcc/gnat-sockets-server.ads b/deps/simple_components/atomic-access/gcc/gnat-sockets-server.ads
+--- a/deps/simple_components/atomic-access/gcc/gnat-sockets-server.ads 2023-08-06 08:19:58.194524919 +0200
++++ b/deps/simple_components/atomic-access/gcc/gnat-sockets-server.ads 2021-10-23 18:40:05.000000000 +0200
+@@ -3,7 +3,7 @@
+ -- Interface Luebeck --
+ -- Winter, 2012 --
+ -- --
+--- Last revision : 14:53 29 Feb 2020 --
++-- Last revision : 18:40 23 Oct 2021 --
+ -- --
+ -- This library is free software; you can redistribute it and/or --
+ -- modify it under the terms of the GNU General Public License as --
+@@ -151,6 +151,12 @@ package GNAT.Sockets.Server is
+ function Available_To_Send (Client : Connection)
+ return Stream_Element_Count;
+ --
++-- Clear -- Clear the client internal state
++--
++-- Client - The client connection object
++--
++ procedure Clear (Client : in out Connection);
++--
+ -- Connect -- Connect to a server
+ --
+ -- Listener - The server object
+@@ -672,7 +678,7 @@ package GNAT.Sockets.Server is
+ --
+ -- Returns :
+ --
+--- True if client handles and incoming connection
++-- True if client handles an incoming connection
+ --
+ function Is_Incoming (Client : Connection) return Boolean;
+ --
+diff --no-dereference -urpN a/deps/simple_components/atomic-access/gcc-long-offsets/gnat-sockets-server.adb b/deps/simple_components/atomic-access/gcc-long-offsets/gnat-sockets-server.adb
+--- a/deps/simple_components/atomic-access/gcc-long-offsets/gnat-sockets-server.adb 2023-08-06 08:19:58.194524919 +0200
++++ b/deps/simple_components/atomic-access/gcc-long-offsets/gnat-sockets-server.adb 2023-03-10 10:37:17.000000000 +0100
+@@ -3,7 +3,7 @@
+ -- Implementation Luebeck --
+ -- Winter, 2012 --
+ -- --
+--- Last revision : 14:53 29 Feb 2020 --
++-- Last revision : 10:37 10 Mar 2023 --
+ -- --
+ -- This library is free software; you can redistribute it and/or --
+ -- modify it under the terms of the GNU General Public License as --
+@@ -158,7 +158,7 @@ package body GNAT.Sockets.Server is
+ return Free (Client.Written);
+ end Available_To_Send;
+
+- procedure Clear (Client : in out Connection'Class) is
++ procedure Clear (Client : in out Connection) is
+ begin
+ Client.Failed := False; -- Clean I/O state
+ Client.External_Action := False;
+@@ -365,6 +365,9 @@ package body GNAT.Sockets.Server is
+ null;
+ end Downed;
+
++ function "+" is
++ new Ada.Unchecked_Conversion (System.Address, Selector_Access);
++
+ procedure Do_Connect
+ ( Listener : in out Connections_Server'Class;
+ Client : in out Connection_Ptr
+@@ -383,7 +386,9 @@ package body GNAT.Sockets.Server is
+ ( Socket => Client.Socket,
+ Server => Client.Client_Address,
+ Timeout => 0.0,
+- Selector => Listener.Selector'Unchecked_Access,
++-- Selector => Listener.Selector'Unchecked_Access,
++-- Selector => +Listener.Selector'Address, -- GNAT 12.1 bug
++ Selector => Listener.Selector'Unrestricted_Access, -- ditto
+ Status => Status
+ );
+ if Status = Completed then
+@@ -839,7 +844,9 @@ package body GNAT.Sockets.Server is
+ Client'Unchecked_Access
+ );
+ end if;
+- Set (Listener.Read_Sockets, Client.Socket);
++ if Client.Socket /= No_Socket then
++ Set (Listener.Read_Sockets, Client.Socket);
++ end if;
+ if Client.Transport = null then -- No handshaking
+ declare
+ Saved : constant Session_State := Client.Session;
+@@ -1410,7 +1417,7 @@ package body GNAT.Sockets.Server is
+ or else
+ ( Pointer > Data'Last
+ and then
+- Pointer - 1 > Data'Last
++ Pointer - Data'Last /= 1
+ ) )
+ then
+ Raise_Exception (Layout_Error'Identity, "Subscript error");
+diff --no-dereference -urpN a/deps/simple_components/atomic-access/gcc-long-offsets/gnat-sockets-server.ads b/deps/simple_components/atomic-access/gcc-long-offsets/gnat-sockets-server.ads
+--- a/deps/simple_components/atomic-access/gcc-long-offsets/gnat-sockets-server.ads 2023-08-06 08:19:58.194524919 +0200
++++ b/deps/simple_components/atomic-access/gcc-long-offsets/gnat-sockets-server.ads 2021-10-23 18:40:05.000000000 +0200
+@@ -3,7 +3,7 @@
+ -- Interface Luebeck --
+ -- Winter, 2012 --
+ -- --
+--- Last revision : 14:53 29 Feb 2020 --
++-- Last revision : 18:40 23 Oct 2021 --
+ -- --
+ -- This library is free software; you can redistribute it and/or --
+ -- modify it under the terms of the GNU General Public License as --
+@@ -151,6 +151,12 @@ package GNAT.Sockets.Server is
+ function Available_To_Send (Client : Connection)
+ return Stream_Element_Count;
+ --
++-- Clear -- Clear the client internal state
++--
++-- Client - The client connection object
++--
++ procedure Clear (Client : in out Connection);
++--
+ -- Connect -- Connect to a server
+ --
+ -- Listener - The server object
+@@ -672,7 +678,7 @@ package GNAT.Sockets.Server is
+ --
+ -- Returns :
+ --
+--- True if client handles and incoming connection
++-- True if client handles an incoming connection
+ --
+ function Is_Incoming (Client : Connection) return Boolean;
+ --