--- /dev/null
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit multiprocessing
+
+MY_P=${PN}-gpl-${PV}-src
+
+DESCRIPTION="A complete Web development framework"
+HOMEPAGE="http://libre.adacore.com/tools/aws/"
+SRC_URI="http://mirrors.cdn.adacore.com/art/5b0819e0c7a447df26c27abd
+ -> ${MY_P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="gnat_2016 gnat_2017 +gnat_2018 gnat_2019"
+
+RDEPEND="dev-ada/xmlada[gnat_2016=,gnat_2017=,gnat_2018(-)=,gnat_2019(-)=]
+ dev-ada/xmlada[shared,static-libs]"
+DEPEND="${RDEPEND}
+ gnat_2016? ( dev-ada/asis[gnat_2016] )
+ gnat_2017? ( dev-ada/asis[gnat_2017] )
+ gnat_2018? ( dev-ada/asis[gnat_2018] )
+ gnat_2019? ( dev-ada/asis[gnat_2019] )
+ dev-ada/gprbuild[gnat_2016=,gnat_2017=,gnat_2018(-)=,gnat_2019(-)=]"
+
+S="${WORKDIR}"/${MY_P}
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2016-gentoo.patch
+ "${FILESDIR}"/${PN}-2018-gentoo.patch
+)
+
+src_configure() {
+ emake -j1 setup prefix=/usr ENABLE_SHARED=true \
+ GPRBUILD="/usr/bin/gprbuild -v"
+}
+
+src_compile() {
+ emake \
+ PROCESSORS=$(makeopts_jobs) \
+ GPRBUILD="/usr/bin/gprbuild -v"
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+ einstalldocs
+}
--- /dev/null
+--- a/config/src/aws-net-std__gnat.adb 2019-05-31 19:03:42.565961279 +0200
++++ b/config/src/aws-net-std__gnat.adb 2019-05-31 19:05:23.895245892 +0200
+@@ -132,7 +132,7 @@
+
+ if Reuse_Address then
+ Sockets.Set_Socket_Option
+- (Socket.S.FD, Option => (Sockets.Reuse_Address, Enabled => True));
++ (Socket.S.FD, Sockets.Socket_Level, (Sockets.Reuse_Address, Enabled => True));
+ end if;
+
+ Sockets.Bind_Socket
+@@ -263,7 +263,7 @@
+ package SC renames OS_Lib;
+
+ Option : constant Option_Type :=
+- Get_Socket_Option (Socket.S.FD, Name => Error);
++ Get_Socket_Option (Socket.S.FD, Socket_Level, Error);
+ begin
+ case Option.Error is
+ when Success =>
+@@ -439,7 +439,7 @@
+ is
+ use Sockets;
+ begin
+- return Get_Socket_Option (Socket.S.FD, Name => Receive_Buffer).Size;
++ return Get_Socket_Option (Socket.S.FD, Socket_Level, Receive_Buffer).Size;
+ exception
+ when E : Sockets.Socket_Error =>
+ Raise_Exception (E, "Get_Receive_Buffer_Size", Socket);
+@@ -454,7 +454,7 @@
+ is
+ use Sockets;
+ begin
+- return Get_Socket_Option (Socket.S.FD, Name => Send_Buffer).Size;
++ return Get_Socket_Option (Socket.S.FD, Socket_Level, Send_Buffer).Size;
+ exception
+ when E : Sockets.Socket_Error =>
+ Raise_Exception (E, "Get_Send_Buffer_Size", Socket);
+@@ -709,7 +709,7 @@
+ is
+ use Sockets;
+ begin
+- Set_Socket_Option (Socket.S.FD, Option => (Receive_Buffer, Size));
++ Set_Socket_Option (Socket.S.FD, Socket_Level, (Receive_Buffer, Size));
+ exception
+ when E : Sockets.Socket_Error =>
+ Raise_Exception (E, "Set_Receive_Buffer_Size", Socket);
+@@ -725,7 +725,7 @@
+ is
+ use Sockets;
+ begin
+- Set_Socket_Option (Socket.S.FD, Option => (Send_Buffer, Size));
++ Set_Socket_Option (Socket.S.FD, Socket_Level, (Send_Buffer, Size));
+ exception
+ when E : Sockets.Socket_Error =>
+ Raise_Exception (E, "Set_Send_Buffer_Size", Socket);