Github messages for voidlinux
 help / color / mirror / Atom feed
* [PR PATCH] New package: gprbuild-25.0.0
@ 2024-12-21  1:55 Tevo45
  2024-12-21  2:27 ` [PR REVIEW] " abenson
                   ` (17 more replies)
  0 siblings, 18 replies; 19+ messages in thread
From: Tevo45 @ 2024-12-21  1:55 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1357 bytes --]

There is a new pull request by Tevo45 against master on the void-packages repository

https://github.com/Tevo45/void-packages gprbuild
https://github.com/void-linux/void-packages/pull/53605

New package: gprbuild-25.0.0
<!-- Uncomment relevant sections and delete options which are not applicable -->

GPRbuild is a multi-language build system commonly found in Ada projects. Changes include xmlada and gprconfig_kb, both dependencies of gprbuild, as well as libgpr, an optional library component. Lightly tested, but should receive some more usage in the coming days.

#### Testing the changes
- I tested the changes in this PR: **briefly**

#### New package
- This new package conforms to the [package requirements](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#package-requirements): **YES**

<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
#### Local build testing
- I built this PR locally for my native architecture, (x86_64-glibc)



A patch file from https://github.com/void-linux/void-packages/pull/53605.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gprbuild-53605.patch --]
[-- Type: text/x-diff, Size: 9551 bytes --]

From 40f274f0697b8a32d3482061031afc70dac5e92c Mon Sep 17 00:00:00 2001
From: "Estevan Castilho (Tevo)" <estevan.cps@gmail.com>
Date: Fri, 20 Dec 2024 02:08:39 +0000
Subject: [PATCH 1/4] New package: gprbuild-bootstrap-25.0.0

---
 srcpkgs/gprbuild-bootstrap/template | 34 +++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)
 create mode 100644 srcpkgs/gprbuild-bootstrap/template

diff --git a/srcpkgs/gprbuild-bootstrap/template b/srcpkgs/gprbuild-bootstrap/template
new file mode 100644
index 00000000000000..34f38ddf75839d
--- /dev/null
+++ b/srcpkgs/gprbuild-bootstrap/template
@@ -0,0 +1,34 @@
+# Template file for 'gprbuild-bootstrap'
+pkgname=gprbuild-bootstrap
+version=25.0.0
+revision=1
+short_desc="Advanced build system for multi-language programs - bootstrap package"
+maintainer="Estevan Castilho <estevan.cps@gmail.com>"
+license=GPL-3.0
+homepage="https://github.com/AdaCore/gprbuild"
+distfiles="
+	https://github.com/AdaCore/gprbuild/archive/refs/tags/v${version}.tar.gz>gprbuild-${version}.tar.gz
+	https://github.com/AdaCore/xmlada/archive/refs/tags/v${version}.tar.gz>xmlada-${version}.tar.gz
+	https://github.com/AdaCore/gprconfig_kb/archive/refs/tags/v${version}.tar.gz>gprconfig_kb-${version}.tar.gz"
+checksum="
+	d12f94c1ec0b6e219f6b162f71f57129d22426e7798092f5f85b9ec2cc818bf1
+	dbb5984a0931311c7a787a679ef4cfaeeedd357474a585dc170140ef2251dcca
+	802e6d38a3b110897924a9c16e143cb86360f2dde94bb5b9144c7c391e37b121"
+
+hostmakedepends="gcc-ada"
+
+do_build() {
+	cd "gprbuild-${version}"
+	./bootstrap.sh \
+		--with-xmlada="../xmlada-${version}" \
+		--with-kb="../gprconfig_kb-${version}" \
+		--build
+}
+
+do_install() {
+	cd "gprbuild-${version}"
+	./bootstrap.sh \
+		--with-kb="../gprconfig_kb-${version}" \
+		--prefix="$DESTDIR/usr" \
+		--install
+}

From b4500b580cf409e6ad1bac7cd3de06e753f30a37 Mon Sep 17 00:00:00 2001
From: "Estevan Castilho (Tevo)" <estevan.cps@gmail.com>
Date: Fri, 20 Dec 2024 02:10:55 +0000
Subject: [PATCH 2/4] New package: xmlada-25.0.0

---
 common/shlibs                                 |  5 +++
 srcpkgs/xmlada-devel                          |  1 +
 .../patches/fix-autoconf-flag-confusion.patch | 32 +++++++++++++++++
 srcpkgs/xmlada/template                       | 36 +++++++++++++++++++
 4 files changed, 74 insertions(+)
 create mode 120000 srcpkgs/xmlada-devel
 create mode 100644 srcpkgs/xmlada/patches/fix-autoconf-flag-confusion.patch
 create mode 100644 srcpkgs/xmlada/template

diff --git a/common/shlibs b/common/shlibs
index c732517b8d50ed..964bce100999f4 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -4545,3 +4545,8 @@ libflashrom.so.1 flashrom-1.4.0_1
 libpyside6.so.6.7 libpyside6-6.7.2_1
 libpyside6qml.so.6.7 libpyside6-6.7.2_1
 libshiboken6.so.6.7 libshiboken6-6.7.2_1
+libxmlada_schema.so.18.0w xmlada-25.0.0_1
+libxmlada_dom.so.18.0w xmlada-25.0.0_1
+libxmlada_sax.so.18.0w xmlada-25.0.0_1
+libxmlada_unicode.so.18.0w xmlada-25.0.0_1
+libxmlada_input_sources.so.18.0w xmlada-25.0.0_1
diff --git a/srcpkgs/xmlada-devel b/srcpkgs/xmlada-devel
new file mode 120000
index 00000000000000..2f2d27d92b8ead
--- /dev/null
+++ b/srcpkgs/xmlada-devel
@@ -0,0 +1 @@
+xmlada
\ No newline at end of file
diff --git a/srcpkgs/xmlada/patches/fix-autoconf-flag-confusion.patch b/srcpkgs/xmlada/patches/fix-autoconf-flag-confusion.patch
new file mode 100644
index 00000000000000..4b74bee17a89fe
--- /dev/null
+++ b/srcpkgs/xmlada/patches/fix-autoconf-flag-confusion.patch
@@ -0,0 +1,32 @@
+diff --git a/Makefile.in b/Makefile.in
+index e03b63c..880262b 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -16,9 +16,9 @@ GPRBUILD_OPTIONS=
+ PROCESSORS?=0
+ GPRBUILD=@gprbuild@ -j${PROCESSORS} -m ${GPRBUILD_OPTIONS}
+ GPRINSTALL=@gprinstall@
+-TARGET=@target@
+-TARGET_ALIAS=@target_alias@
+-HOST=@host@
++TARGET=@host@
++TARGET_ALIAS=@host_alias@
++HOST=@build@
+ 
+ # Compiler mode: one of "distrib", "Debug", "Production", "profile", "coverage"
+ MODE=@BUILD_TYPE@
+diff --git a/aclocal.m4 b/aclocal.m4
+index 39392bc..e17b338 100644
+--- a/aclocal.m4
++++ b/aclocal.m4
+@@ -91,8 +91,8 @@ project Lib is
+ end Lib;
+ EOF
+ 
+-      if test "x$host_alias" != "x$target_alias"; then
+-          $gprbuild --target=$target_alias -c -q -P$tmp/lib 2>/dev/null
++      if test "x$build_alias" != "x$host_alias"; then
++          $gprbuild --target=$host_alias -c -q -P$tmp/lib 2>/dev/null
+       else
+           $gprbuild -c -q -P$tmp/lib 2>/dev/null
+       fi
diff --git a/srcpkgs/xmlada/template b/srcpkgs/xmlada/template
new file mode 100644
index 00000000000000..597c59bf996139
--- /dev/null
+++ b/srcpkgs/xmlada/template
@@ -0,0 +1,36 @@
+# Template file for 'xmlada'
+pkgname=xmlada
+version=25.0.0
+revision=1
+build_style=gnu-configure
+short_desc="XML parser for Ada"
+maintainer="Estevan Castilho <estevan.cps@gmail.com>"
+license=GPL-3.0-with-GCC-exception
+homepage="https://github.com/AdaCore/xmlada"
+distfiles="https://github.com/AdaCore/xmlada/archive/refs/tags/v${version}.tar.gz"
+checksum="dbb5984a0931311c7a787a679ef4cfaeeedd357474a585dc170140ef2251dcca"
+
+hostmakedepends="gcc-ada autoconf gprbuild-bootstrap"
+
+configure_args+=" --enable-shared"
+
+do_configure() {
+	autoreconf -fi
+	./configure $configure_args
+}
+
+xmlada-devel_package() {
+	short_desc+=" - development files"
+	depends="${sourcepkg}>=${version}_${revision}"
+	pkg_install() {
+		cd "$DESTDIR"
+		# vmove isn't the biggest fan of globs on parent directories
+		for file in usr/lib/xmlada/*/*.{ali,a}; do
+			vmove "$file"
+		done
+		vmove "usr/lib/*.so"
+		vmove usr/share/gpr
+		vmove usr/include
+		vmove usr/share/examples/xmlada
+	}
+}

From b2b6956651e7ef947f55025c0ca637ad08f9b715 Mon Sep 17 00:00:00 2001
From: "Estevan Castilho (Tevo)" <estevan.cps@gmail.com>
Date: Sat, 21 Dec 2024 01:42:44 +0000
Subject: [PATCH 3/4] New package: gprconfig_kb-25.0.0

---
 srcpkgs/gprconfig_kb/template | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)
 create mode 100644 srcpkgs/gprconfig_kb/template

diff --git a/srcpkgs/gprconfig_kb/template b/srcpkgs/gprconfig_kb/template
new file mode 100644
index 00000000000000..e4f9c3c7c2cf87
--- /dev/null
+++ b/srcpkgs/gprconfig_kb/template
@@ -0,0 +1,16 @@
+# Template file for 'gprconfig_kb'
+pkgname=gprconfig_kb
+version=25.0.0
+revision=1
+short_desc="Knowledge base for configuring GPR toolchains"
+maintainer="Estevan Castilho <estevan.cps@gmail.com>"
+license=GPL-3.0
+homepage="https://github.com/AdaCore/gprconfig_kb"
+distfiles="https://github.com/AdaCore/gprconfig_kb/archive/refs/tags/v${version}.tar.gz"
+checksum="802e6d38a3b110897924a9c16e143cb86360f2dde94bb5b9144c7c391e37b121"
+
+do_install() {
+    destination="$DESTDIR/usr/share/gprconfig"
+    mkdir -p "$destination"
+	cp -rv db/* "$destination"
+}

From 3ab7cab8ac33130dcefed896d1af3f1bba4ff821 Mon Sep 17 00:00:00 2001
From: "Estevan Castilho (Tevo)" <estevan.cps@gmail.com>
Date: Fri, 20 Dec 2024 02:11:10 +0000
Subject: [PATCH 4/4] New package: gprbuild-25.0.0

---
 common/shlibs             |  1 +
 srcpkgs/gprbuild/template | 49 +++++++++++++++++++++++++++++++++++++++
 srcpkgs/libgpr            |  1 +
 srcpkgs/libgpr-devel      |  1 +
 4 files changed, 52 insertions(+)
 create mode 100644 srcpkgs/gprbuild/template
 create mode 120000 srcpkgs/libgpr
 create mode 120000 srcpkgs/libgpr-devel

diff --git a/common/shlibs b/common/shlibs
index 964bce100999f4..618f86175840b2 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -4550,3 +4550,4 @@ libxmlada_dom.so.18.0w xmlada-25.0.0_1
 libxmlada_sax.so.18.0w xmlada-25.0.0_1
 libxmlada_unicode.so.18.0w xmlada-25.0.0_1
 libxmlada_input_sources.so.18.0w xmlada-25.0.0_1
+libgpr.so libgpr-25.0.0_1
diff --git a/srcpkgs/gprbuild/template b/srcpkgs/gprbuild/template
new file mode 100644
index 00000000000000..ea936afd10af3c
--- /dev/null
+++ b/srcpkgs/gprbuild/template
@@ -0,0 +1,49 @@
+# Template file for 'gprbuild'
+pkgname=gprbuild
+version=25.0.0
+revision=1
+build_style=gnu-configure
+short_desc="Advanced build system for multi-language programs"
+maintainer="Estevan Castilho <estevan.cps@gmail.com>"
+license=GPL-3.0
+homepage="https://github.com/AdaCore/gprbuild"
+distfiles="https://github.com/AdaCore/gprbuild/archive/refs/tags/v${version}.tar.gz"
+checksum="d12f94c1ec0b6e219f6b162f71f57129d22426e7798092f5f85b9ec2cc818bf1"
+
+hostmakedepends="gcc-ada gprbuild-bootstrap which"
+makedepends="xmlada-devel"
+depends="gprconfig_kb"
+
+subpackages="libgpr libgpr-devel"
+
+make_build_target="all libgpr.build"
+make_install_target="install libgpr.install"
+
+do_configure() {
+	make prefix="$DESTDIR/usr" setup
+}
+
+libgpr_package() {
+	license=GPL-3.0-with-GCC-exception
+	short_desc+=" - library"
+	depends="${sourcepkg}>=${version}_${revision}"
+	pkg_install() {
+		cd "$DESTDIR"
+		# vmove isn't the biggest fan of globs on parent directories
+		for file in usr/lib/gpr/*/*/*.so*; do
+			vmove "$file"
+		done
+	}
+}
+
+libgpr-devel_package() {
+	license=GPL-3.0-with-GCC-exception
+	short_desc+=" - library - development files"
+	depends="${sourcepkg}>=${version}_${revision}"
+	pkg_install() {
+		vmove "usr/lib/*.so"
+		vmove usr/lib/gpr
+		vmove usr/share/gpr
+		vmove usr/include
+	}
+}
diff --git a/srcpkgs/libgpr b/srcpkgs/libgpr
new file mode 120000
index 00000000000000..5cd80f8ab7fe46
--- /dev/null
+++ b/srcpkgs/libgpr
@@ -0,0 +1 @@
+gprbuild
\ No newline at end of file
diff --git a/srcpkgs/libgpr-devel b/srcpkgs/libgpr-devel
new file mode 120000
index 00000000000000..5cd80f8ab7fe46
--- /dev/null
+++ b/srcpkgs/libgpr-devel
@@ -0,0 +1 @@
+gprbuild
\ No newline at end of file

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PR REVIEW] New package: gprbuild-25.0.0
  2024-12-21  1:55 [PR PATCH] New package: gprbuild-25.0.0 Tevo45
@ 2024-12-21  2:27 ` abenson
  2024-12-22 19:33 ` [PR PATCH] [Updated] " Tevo45
                   ` (16 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: abenson @ 2024-12-21  2:27 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 189 bytes --]

New review comment by abenson on void-packages repository

https://github.com/void-linux/void-packages/pull/53605#discussion_r1894537181

Comment:
These are going to be `GPL-3.0-or-later`.

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PR PATCH] [Updated] New package: gprbuild-25.0.0
  2024-12-21  1:55 [PR PATCH] New package: gprbuild-25.0.0 Tevo45
  2024-12-21  2:27 ` [PR REVIEW] " abenson
@ 2024-12-22 19:33 ` Tevo45
  2024-12-22 19:37 ` [PR REVIEW] " Tevo45
                   ` (15 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: Tevo45 @ 2024-12-22 19:33 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1379 bytes --]

There is an updated pull request by Tevo45 against master on the void-packages repository

https://github.com/Tevo45/void-packages gprbuild
https://github.com/void-linux/void-packages/pull/53605

New package: gprbuild-25.0.0
<!-- Uncomment relevant sections and delete options which are not applicable -->

GPRbuild is a multi-language build system commonly found in Ada projects. Changes include xmlada and gprconfig_kb, both dependencies of gprbuild, as well as libgpr, an optional library component. Lightly tested, but should receive some more usage in the coming days.

Closes #45421

#### Testing the changes
- I tested the changes in this PR: **briefly**

#### New package
- This new package conforms to the [package requirements](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#package-requirements): **YES**

<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
#### Local build testing
- I built this PR locally for my native architecture, (x86_64-glibc)



A patch file from https://github.com/void-linux/void-packages/pull/53605.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gprbuild-53605.patch --]
[-- Type: text/x-diff, Size: 9588 bytes --]

From c70f520f7284319a92b4cc9cf7d192efa8fc1eca Mon Sep 17 00:00:00 2001
From: "Estevan Castilho (Tevo)" <estevan.cps@gmail.com>
Date: Fri, 20 Dec 2024 02:08:39 +0000
Subject: [PATCH 1/4] New package: gprbuild-bootstrap-25.0.0

---
 srcpkgs/gprbuild-bootstrap/template | 34 +++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)
 create mode 100644 srcpkgs/gprbuild-bootstrap/template

diff --git a/srcpkgs/gprbuild-bootstrap/template b/srcpkgs/gprbuild-bootstrap/template
new file mode 100644
index 00000000000000..3133d64174e85c
--- /dev/null
+++ b/srcpkgs/gprbuild-bootstrap/template
@@ -0,0 +1,34 @@
+# Template file for 'gprbuild-bootstrap'
+pkgname=gprbuild-bootstrap
+version=25.0.0
+revision=1
+short_desc="Advanced build system for multi-language programs - bootstrap package"
+maintainer="Estevan Castilho <estevan.cps@gmail.com>"
+license=GPL-3.0-or-later
+homepage="https://github.com/AdaCore/gprbuild"
+distfiles="
+	https://github.com/AdaCore/gprbuild/archive/refs/tags/v${version}.tar.gz>gprbuild-${version}.tar.gz
+	https://github.com/AdaCore/xmlada/archive/refs/tags/v${version}.tar.gz>xmlada-${version}.tar.gz
+	https://github.com/AdaCore/gprconfig_kb/archive/refs/tags/v${version}.tar.gz>gprconfig_kb-${version}.tar.gz"
+checksum="
+	d12f94c1ec0b6e219f6b162f71f57129d22426e7798092f5f85b9ec2cc818bf1
+	dbb5984a0931311c7a787a679ef4cfaeeedd357474a585dc170140ef2251dcca
+	802e6d38a3b110897924a9c16e143cb86360f2dde94bb5b9144c7c391e37b121"
+
+hostmakedepends="gcc-ada"
+
+do_build() {
+	cd "gprbuild-${version}"
+	./bootstrap.sh \
+		--with-xmlada="../xmlada-${version}" \
+		--with-kb="../gprconfig_kb-${version}" \
+		--build
+}
+
+do_install() {
+	cd "gprbuild-${version}"
+	./bootstrap.sh \
+		--with-kb="../gprconfig_kb-${version}" \
+		--prefix="$DESTDIR/usr" \
+		--install
+}

From 23b4e1649c83b2f8f4d7b1f17bf64420fdff783c Mon Sep 17 00:00:00 2001
From: "Estevan Castilho (Tevo)" <estevan.cps@gmail.com>
Date: Fri, 20 Dec 2024 02:10:55 +0000
Subject: [PATCH 2/4] New package: xmlada-25.0.0

---
 common/shlibs                                 |  5 +++
 srcpkgs/xmlada-devel                          |  1 +
 .../patches/fix-autoconf-flag-confusion.patch | 32 +++++++++++++++++
 srcpkgs/xmlada/template                       | 36 +++++++++++++++++++
 4 files changed, 74 insertions(+)
 create mode 120000 srcpkgs/xmlada-devel
 create mode 100644 srcpkgs/xmlada/patches/fix-autoconf-flag-confusion.patch
 create mode 100644 srcpkgs/xmlada/template

diff --git a/common/shlibs b/common/shlibs
index c732517b8d50ed..964bce100999f4 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -4545,3 +4545,8 @@ libflashrom.so.1 flashrom-1.4.0_1
 libpyside6.so.6.7 libpyside6-6.7.2_1
 libpyside6qml.so.6.7 libpyside6-6.7.2_1
 libshiboken6.so.6.7 libshiboken6-6.7.2_1
+libxmlada_schema.so.18.0w xmlada-25.0.0_1
+libxmlada_dom.so.18.0w xmlada-25.0.0_1
+libxmlada_sax.so.18.0w xmlada-25.0.0_1
+libxmlada_unicode.so.18.0w xmlada-25.0.0_1
+libxmlada_input_sources.so.18.0w xmlada-25.0.0_1
diff --git a/srcpkgs/xmlada-devel b/srcpkgs/xmlada-devel
new file mode 120000
index 00000000000000..2f2d27d92b8ead
--- /dev/null
+++ b/srcpkgs/xmlada-devel
@@ -0,0 +1 @@
+xmlada
\ No newline at end of file
diff --git a/srcpkgs/xmlada/patches/fix-autoconf-flag-confusion.patch b/srcpkgs/xmlada/patches/fix-autoconf-flag-confusion.patch
new file mode 100644
index 00000000000000..4b74bee17a89fe
--- /dev/null
+++ b/srcpkgs/xmlada/patches/fix-autoconf-flag-confusion.patch
@@ -0,0 +1,32 @@
+diff --git a/Makefile.in b/Makefile.in
+index e03b63c..880262b 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -16,9 +16,9 @@ GPRBUILD_OPTIONS=
+ PROCESSORS?=0
+ GPRBUILD=@gprbuild@ -j${PROCESSORS} -m ${GPRBUILD_OPTIONS}
+ GPRINSTALL=@gprinstall@
+-TARGET=@target@
+-TARGET_ALIAS=@target_alias@
+-HOST=@host@
++TARGET=@host@
++TARGET_ALIAS=@host_alias@
++HOST=@build@
+ 
+ # Compiler mode: one of "distrib", "Debug", "Production", "profile", "coverage"
+ MODE=@BUILD_TYPE@
+diff --git a/aclocal.m4 b/aclocal.m4
+index 39392bc..e17b338 100644
+--- a/aclocal.m4
++++ b/aclocal.m4
+@@ -91,8 +91,8 @@ project Lib is
+ end Lib;
+ EOF
+ 
+-      if test "x$host_alias" != "x$target_alias"; then
+-          $gprbuild --target=$target_alias -c -q -P$tmp/lib 2>/dev/null
++      if test "x$build_alias" != "x$host_alias"; then
++          $gprbuild --target=$host_alias -c -q -P$tmp/lib 2>/dev/null
+       else
+           $gprbuild -c -q -P$tmp/lib 2>/dev/null
+       fi
diff --git a/srcpkgs/xmlada/template b/srcpkgs/xmlada/template
new file mode 100644
index 00000000000000..613e0454d5caa2
--- /dev/null
+++ b/srcpkgs/xmlada/template
@@ -0,0 +1,36 @@
+# Template file for 'xmlada'
+pkgname=xmlada
+version=25.0.0
+revision=1
+build_style=gnu-configure
+short_desc="XML parser for Ada"
+maintainer="Estevan Castilho <estevan.cps@gmail.com>"
+license="GPL-3.0-or-later WITH GCC-exception-3.1"
+homepage="https://github.com/AdaCore/xmlada"
+distfiles="https://github.com/AdaCore/xmlada/archive/refs/tags/v${version}.tar.gz"
+checksum="dbb5984a0931311c7a787a679ef4cfaeeedd357474a585dc170140ef2251dcca"
+
+hostmakedepends="gcc-ada autoconf gprbuild-bootstrap"
+
+configure_args+=" --enable-shared"
+
+do_configure() {
+	autoreconf -fi
+	./configure $configure_args
+}
+
+xmlada-devel_package() {
+	short_desc+=" - development files"
+	depends="${sourcepkg}>=${version}_${revision}"
+	pkg_install() {
+		cd "$DESTDIR"
+		# vmove isn't the biggest fan of globs on parent directories
+		for file in usr/lib/xmlada/*/*.{ali,a}; do
+			vmove "$file"
+		done
+		vmove "usr/lib/*.so"
+		vmove usr/share/gpr
+		vmove usr/include
+		vmove usr/share/examples/xmlada
+	}
+}

From dbb5e6ce3b97cc18a940b3b64fbb84dd5d0365df Mon Sep 17 00:00:00 2001
From: "Estevan Castilho (Tevo)" <estevan.cps@gmail.com>
Date: Sat, 21 Dec 2024 01:42:44 +0000
Subject: [PATCH 3/4] New package: gprconfig_kb-25.0.0

---
 srcpkgs/gprconfig_kb/template | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)
 create mode 100644 srcpkgs/gprconfig_kb/template

diff --git a/srcpkgs/gprconfig_kb/template b/srcpkgs/gprconfig_kb/template
new file mode 100644
index 00000000000000..9fa01eb70c27e1
--- /dev/null
+++ b/srcpkgs/gprconfig_kb/template
@@ -0,0 +1,16 @@
+# Template file for 'gprconfig_kb'
+pkgname=gprconfig_kb
+version=25.0.0
+revision=1
+short_desc="Knowledge base for configuring GPR toolchains"
+maintainer="Estevan Castilho <estevan.cps@gmail.com>"
+license=GPL-3.0-or-later
+homepage="https://github.com/AdaCore/gprconfig_kb"
+distfiles="https://github.com/AdaCore/gprconfig_kb/archive/refs/tags/v${version}.tar.gz"
+checksum="802e6d38a3b110897924a9c16e143cb86360f2dde94bb5b9144c7c391e37b121"
+
+do_install() {
+	destination="$DESTDIR/usr/share/gprconfig"
+	mkdir -p "$destination"
+	cp -rv db/* "$destination"
+}

From 0610b198fe1393b9d20b5b97167b7d92b28cc4b3 Mon Sep 17 00:00:00 2001
From: "Estevan Castilho (Tevo)" <estevan.cps@gmail.com>
Date: Fri, 20 Dec 2024 02:11:10 +0000
Subject: [PATCH 4/4] New package: gprbuild-25.0.0

---
 common/shlibs             |  1 +
 srcpkgs/gprbuild/template | 49 +++++++++++++++++++++++++++++++++++++++
 srcpkgs/libgpr            |  1 +
 srcpkgs/libgpr-devel      |  1 +
 4 files changed, 52 insertions(+)
 create mode 100644 srcpkgs/gprbuild/template
 create mode 120000 srcpkgs/libgpr
 create mode 120000 srcpkgs/libgpr-devel

diff --git a/common/shlibs b/common/shlibs
index 964bce100999f4..039b82ee1cf888 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -4550,3 +4550,4 @@ libxmlada_dom.so.18.0w xmlada-25.0.0_1
 libxmlada_sax.so.18.0w xmlada-25.0.0_1
 libxmlada_unicode.so.18.0w xmlada-25.0.0_1
 libxmlada_input_sources.so.18.0w xmlada-25.0.0_1
+libgnatprj.so libgpr-25.0.0_1
diff --git a/srcpkgs/gprbuild/template b/srcpkgs/gprbuild/template
new file mode 100644
index 00000000000000..103832270ce34a
--- /dev/null
+++ b/srcpkgs/gprbuild/template
@@ -0,0 +1,49 @@
+# Template file for 'gprbuild'
+pkgname=gprbuild
+version=25.0.0
+revision=1
+build_style=gnu-configure
+short_desc="Advanced build system for multi-language programs"
+maintainer="Estevan Castilho <estevan.cps@gmail.com>"
+license=GPL-3.0-or-later
+homepage="https://github.com/AdaCore/gprbuild"
+distfiles="https://github.com/AdaCore/gprbuild/archive/refs/tags/v${version}.tar.gz"
+checksum="d12f94c1ec0b6e219f6b162f71f57129d22426e7798092f5f85b9ec2cc818bf1"
+
+hostmakedepends="gcc-ada gprbuild-bootstrap which"
+makedepends="xmlada-devel"
+depends="gprconfig_kb"
+
+subpackages="libgpr libgpr-devel"
+
+make_build_target="all libgpr.build"
+make_install_target="install libgpr.install"
+
+do_configure() {
+	make prefix="$DESTDIR/usr" setup
+}
+
+libgpr_package() {
+	license+=" WITH GCC-exception-3.1"
+	short_desc+=" - library"
+	depends="${sourcepkg}>=${version}_${revision}"
+	pkg_install() {
+		cd "$DESTDIR"
+		# vmove isn't the biggest fan of globs on parent directories
+		for file in usr/lib/gpr/*/*/*.so*; do
+			vmove "$file"
+		done
+	}
+}
+
+libgpr-devel_package() {
+    license+=" WITH GCC-exception-3.1"
+	short_desc+=" - library - development files"
+	depends="libgpr>=${version}_${revision}"
+	pkg_install() {
+		vmove "usr/lib/*.so"
+		vmove usr/lib/gpr
+		vmove usr/share/gpr
+		vmove usr/include
+	}
+}
diff --git a/srcpkgs/libgpr b/srcpkgs/libgpr
new file mode 120000
index 00000000000000..5cd80f8ab7fe46
--- /dev/null
+++ b/srcpkgs/libgpr
@@ -0,0 +1 @@
+gprbuild
\ No newline at end of file
diff --git a/srcpkgs/libgpr-devel b/srcpkgs/libgpr-devel
new file mode 120000
index 00000000000000..5cd80f8ab7fe46
--- /dev/null
+++ b/srcpkgs/libgpr-devel
@@ -0,0 +1 @@
+gprbuild
\ No newline at end of file

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PR REVIEW] New package: gprbuild-25.0.0
  2024-12-21  1:55 [PR PATCH] New package: gprbuild-25.0.0 Tevo45
  2024-12-21  2:27 ` [PR REVIEW] " abenson
  2024-12-22 19:33 ` [PR PATCH] [Updated] " Tevo45
@ 2024-12-22 19:37 ` Tevo45
  2024-12-22 19:44 ` Tevo45
                   ` (14 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: Tevo45 @ 2024-12-22 19:37 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 401 bytes --]

New review comment by Tevo45 on void-packages repository

https://github.com/void-linux/void-packages/pull/53605#discussion_r1895035074

Comment:
Had seen the COPYING3 file in the repository roots, but didn't pay too much attention to the file headers. I've also changed the libgpr and xmlada licenses to use `WITH GCC-exception-3.1`, as per https://spdx.org/licenses/GPL-3.0-with-GCC-exception.html.

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: New package: gprbuild-25.0.0
  2024-12-21  1:55 [PR PATCH] New package: gprbuild-25.0.0 Tevo45
                   ` (2 preceding siblings ...)
  2024-12-22 19:37 ` [PR REVIEW] " Tevo45
@ 2024-12-22 19:44 ` Tevo45
  2024-12-22 19:44 ` Tevo45
                   ` (13 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: Tevo45 @ 2024-12-22 19:44 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1602 bytes --]

New comment by Tevo45 on void-packages repository

https://github.com/void-linux/void-packages/pull/53605#issuecomment-2558574058

Comment:
I hadn't noticed it before, since libgpr-devel was missing a dependency on libgpr, it seems I cannot install the built libgpr package due to "broken, unresolvable shlib"s on xmlada's libraries?
```sh
tenshi$ sudo xbps-install --repository hostdir/binpkgs/gprbuild libgpr
Password: 
libgpr-25.0.0_1: broken, unresolvable shlib `libxmlada_dom.so.18.0w'
libgpr-25.0.0_1: broken, unresolvable shlib `libxmlada_input_sources.so.18.0w'
libgpr-25.0.0_1: broken, unresolvable shlib `libxmlada_sax.so.18.0w'
libgpr-25.0.0_1: broken, unresolvable shlib `libxmlada_schema.so.18.0w'
libgpr-25.0.0_1: broken, unresolvable shlib `libxmlada_unicode.so.18.0w'
Transaction aborted due to unresolved shlibs.
```
I'm not exactly sure why; xmlada's shared objects are listed on `common/shlibs`, and the soname for those listed built libgpr.so seems to those match exactly:
```sh
tenshi$ readelf -d libgnatprj.so

Dynamic section at offset 0x63ad40 contains 35 entries:
  Tag        Type                         Name/Value
 0x0000000000000001 (NEEDED)             Shared library: [libxmlada_schema.so.18.0w]
 0x0000000000000001 (NEEDED)             Shared library: [libxmlada_dom.so.18.0w]
 0x0000000000000001 (NEEDED)             Shared library: [libxmlada_sax.so.18.0w]
 0x0000000000000001 (NEEDED)             Shared library: [libxmlada_input_sources.so.18.0w]
 0x0000000000000001 (NEEDED)             Shared library: [libxmlada_unicode.so.18.0w]
[...]
```

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: New package: gprbuild-25.0.0
  2024-12-21  1:55 [PR PATCH] New package: gprbuild-25.0.0 Tevo45
                   ` (3 preceding siblings ...)
  2024-12-22 19:44 ` Tevo45
@ 2024-12-22 19:44 ` Tevo45
  2024-12-22 19:45 ` Tevo45
                   ` (12 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: Tevo45 @ 2024-12-22 19:44 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1606 bytes --]

New comment by Tevo45 on void-packages repository

https://github.com/void-linux/void-packages/pull/53605#issuecomment-2558574058

Comment:
I hadn't noticed it before, since libgpr-devel was missing a dependency on libgpr, but it seems I cannot install the built libgpr package due to "broken, unresolvable shlib"s on xmlada's libraries?
```sh
tenshi$ sudo xbps-install --repository hostdir/binpkgs/gprbuild libgpr
Password: 
libgpr-25.0.0_1: broken, unresolvable shlib `libxmlada_dom.so.18.0w'
libgpr-25.0.0_1: broken, unresolvable shlib `libxmlada_input_sources.so.18.0w'
libgpr-25.0.0_1: broken, unresolvable shlib `libxmlada_sax.so.18.0w'
libgpr-25.0.0_1: broken, unresolvable shlib `libxmlada_schema.so.18.0w'
libgpr-25.0.0_1: broken, unresolvable shlib `libxmlada_unicode.so.18.0w'
Transaction aborted due to unresolved shlibs.
```
I'm not exactly sure why; xmlada's shared objects are listed on `common/shlibs`, and the soname for those listed built libgpr.so seems to those match exactly:
```sh
tenshi$ readelf -d libgnatprj.so

Dynamic section at offset 0x63ad40 contains 35 entries:
  Tag        Type                         Name/Value
 0x0000000000000001 (NEEDED)             Shared library: [libxmlada_schema.so.18.0w]
 0x0000000000000001 (NEEDED)             Shared library: [libxmlada_dom.so.18.0w]
 0x0000000000000001 (NEEDED)             Shared library: [libxmlada_sax.so.18.0w]
 0x0000000000000001 (NEEDED)             Shared library: [libxmlada_input_sources.so.18.0w]
 0x0000000000000001 (NEEDED)             Shared library: [libxmlada_unicode.so.18.0w]
[...]
```

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: New package: gprbuild-25.0.0
  2024-12-21  1:55 [PR PATCH] New package: gprbuild-25.0.0 Tevo45
                   ` (4 preceding siblings ...)
  2024-12-22 19:44 ` Tevo45
@ 2024-12-22 19:45 ` Tevo45
  2024-12-22 19:48 ` [PR PATCH] [Updated] " Tevo45
                   ` (11 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: Tevo45 @ 2024-12-22 19:45 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1607 bytes --]

New comment by Tevo45 on void-packages repository

https://github.com/void-linux/void-packages/pull/53605#issuecomment-2558574058

Comment:
I hadn't noticed it before, since libgpr-devel was missing a dependency on libgpr, but it seems I cannot install the built libgpr package due to "broken, unresolvable shlib"s on xmlada's libraries?
```sh
tenshi$ sudo xbps-install --repository hostdir/binpkgs/gprbuild libgpr
Password: 
libgpr-25.0.0_1: broken, unresolvable shlib `libxmlada_dom.so.18.0w'
libgpr-25.0.0_1: broken, unresolvable shlib `libxmlada_input_sources.so.18.0w'
libgpr-25.0.0_1: broken, unresolvable shlib `libxmlada_sax.so.18.0w'
libgpr-25.0.0_1: broken, unresolvable shlib `libxmlada_schema.so.18.0w'
libgpr-25.0.0_1: broken, unresolvable shlib `libxmlada_unicode.so.18.0w'
Transaction aborted due to unresolved shlibs.
```
I'm not exactly sure why; xmlada's shared objects are listed on `common/shlibs`, and the soname for those listed on the built libgpr.so seems to match exactly:
```sh
tenshi$ readelf -d libgnatprj.so

Dynamic section at offset 0x63ad40 contains 35 entries:
  Tag        Type                         Name/Value
 0x0000000000000001 (NEEDED)             Shared library: [libxmlada_schema.so.18.0w]
 0x0000000000000001 (NEEDED)             Shared library: [libxmlada_dom.so.18.0w]
 0x0000000000000001 (NEEDED)             Shared library: [libxmlada_sax.so.18.0w]
 0x0000000000000001 (NEEDED)             Shared library: [libxmlada_input_sources.so.18.0w]
 0x0000000000000001 (NEEDED)             Shared library: [libxmlada_unicode.so.18.0w]
[...]
```

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PR PATCH] [Updated] New package: gprbuild-25.0.0
  2024-12-21  1:55 [PR PATCH] New package: gprbuild-25.0.0 Tevo45
                   ` (5 preceding siblings ...)
  2024-12-22 19:45 ` Tevo45
@ 2024-12-22 19:48 ` Tevo45
  2024-12-22 19:56 ` Tevo45
                   ` (10 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: Tevo45 @ 2024-12-22 19:48 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1379 bytes --]

There is an updated pull request by Tevo45 against master on the void-packages repository

https://github.com/Tevo45/void-packages gprbuild
https://github.com/void-linux/void-packages/pull/53605

New package: gprbuild-25.0.0
<!-- Uncomment relevant sections and delete options which are not applicable -->

GPRbuild is a multi-language build system commonly found in Ada projects. Changes include xmlada and gprconfig_kb, both dependencies of gprbuild, as well as libgpr, an optional library component. Lightly tested, but should receive some more usage in the coming days.

Closes #45421

#### Testing the changes
- I tested the changes in this PR: **briefly**

#### New package
- This new package conforms to the [package requirements](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#package-requirements): **YES**

<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
#### Local build testing
- I built this PR locally for my native architecture, (x86_64-glibc)



A patch file from https://github.com/void-linux/void-packages/pull/53605.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gprbuild-53605.patch --]
[-- Type: text/x-diff, Size: 9592 bytes --]

From c70f520f7284319a92b4cc9cf7d192efa8fc1eca Mon Sep 17 00:00:00 2001
From: "Estevan Castilho (Tevo)" <estevan.cps@gmail.com>
Date: Fri, 20 Dec 2024 02:08:39 +0000
Subject: [PATCH 1/4] New package: gprbuild-bootstrap-25.0.0

---
 srcpkgs/gprbuild-bootstrap/template | 34 +++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)
 create mode 100644 srcpkgs/gprbuild-bootstrap/template

diff --git a/srcpkgs/gprbuild-bootstrap/template b/srcpkgs/gprbuild-bootstrap/template
new file mode 100644
index 00000000000000..3133d64174e85c
--- /dev/null
+++ b/srcpkgs/gprbuild-bootstrap/template
@@ -0,0 +1,34 @@
+# Template file for 'gprbuild-bootstrap'
+pkgname=gprbuild-bootstrap
+version=25.0.0
+revision=1
+short_desc="Advanced build system for multi-language programs - bootstrap package"
+maintainer="Estevan Castilho <estevan.cps@gmail.com>"
+license=GPL-3.0-or-later
+homepage="https://github.com/AdaCore/gprbuild"
+distfiles="
+	https://github.com/AdaCore/gprbuild/archive/refs/tags/v${version}.tar.gz>gprbuild-${version}.tar.gz
+	https://github.com/AdaCore/xmlada/archive/refs/tags/v${version}.tar.gz>xmlada-${version}.tar.gz
+	https://github.com/AdaCore/gprconfig_kb/archive/refs/tags/v${version}.tar.gz>gprconfig_kb-${version}.tar.gz"
+checksum="
+	d12f94c1ec0b6e219f6b162f71f57129d22426e7798092f5f85b9ec2cc818bf1
+	dbb5984a0931311c7a787a679ef4cfaeeedd357474a585dc170140ef2251dcca
+	802e6d38a3b110897924a9c16e143cb86360f2dde94bb5b9144c7c391e37b121"
+
+hostmakedepends="gcc-ada"
+
+do_build() {
+	cd "gprbuild-${version}"
+	./bootstrap.sh \
+		--with-xmlada="../xmlada-${version}" \
+		--with-kb="../gprconfig_kb-${version}" \
+		--build
+}
+
+do_install() {
+	cd "gprbuild-${version}"
+	./bootstrap.sh \
+		--with-kb="../gprconfig_kb-${version}" \
+		--prefix="$DESTDIR/usr" \
+		--install
+}

From 23b4e1649c83b2f8f4d7b1f17bf64420fdff783c Mon Sep 17 00:00:00 2001
From: "Estevan Castilho (Tevo)" <estevan.cps@gmail.com>
Date: Fri, 20 Dec 2024 02:10:55 +0000
Subject: [PATCH 2/4] New package: xmlada-25.0.0

---
 common/shlibs                                 |  5 +++
 srcpkgs/xmlada-devel                          |  1 +
 .../patches/fix-autoconf-flag-confusion.patch | 32 +++++++++++++++++
 srcpkgs/xmlada/template                       | 36 +++++++++++++++++++
 4 files changed, 74 insertions(+)
 create mode 120000 srcpkgs/xmlada-devel
 create mode 100644 srcpkgs/xmlada/patches/fix-autoconf-flag-confusion.patch
 create mode 100644 srcpkgs/xmlada/template

diff --git a/common/shlibs b/common/shlibs
index c732517b8d50ed..964bce100999f4 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -4545,3 +4545,8 @@ libflashrom.so.1 flashrom-1.4.0_1
 libpyside6.so.6.7 libpyside6-6.7.2_1
 libpyside6qml.so.6.7 libpyside6-6.7.2_1
 libshiboken6.so.6.7 libshiboken6-6.7.2_1
+libxmlada_schema.so.18.0w xmlada-25.0.0_1
+libxmlada_dom.so.18.0w xmlada-25.0.0_1
+libxmlada_sax.so.18.0w xmlada-25.0.0_1
+libxmlada_unicode.so.18.0w xmlada-25.0.0_1
+libxmlada_input_sources.so.18.0w xmlada-25.0.0_1
diff --git a/srcpkgs/xmlada-devel b/srcpkgs/xmlada-devel
new file mode 120000
index 00000000000000..2f2d27d92b8ead
--- /dev/null
+++ b/srcpkgs/xmlada-devel
@@ -0,0 +1 @@
+xmlada
\ No newline at end of file
diff --git a/srcpkgs/xmlada/patches/fix-autoconf-flag-confusion.patch b/srcpkgs/xmlada/patches/fix-autoconf-flag-confusion.patch
new file mode 100644
index 00000000000000..4b74bee17a89fe
--- /dev/null
+++ b/srcpkgs/xmlada/patches/fix-autoconf-flag-confusion.patch
@@ -0,0 +1,32 @@
+diff --git a/Makefile.in b/Makefile.in
+index e03b63c..880262b 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -16,9 +16,9 @@ GPRBUILD_OPTIONS=
+ PROCESSORS?=0
+ GPRBUILD=@gprbuild@ -j${PROCESSORS} -m ${GPRBUILD_OPTIONS}
+ GPRINSTALL=@gprinstall@
+-TARGET=@target@
+-TARGET_ALIAS=@target_alias@
+-HOST=@host@
++TARGET=@host@
++TARGET_ALIAS=@host_alias@
++HOST=@build@
+ 
+ # Compiler mode: one of "distrib", "Debug", "Production", "profile", "coverage"
+ MODE=@BUILD_TYPE@
+diff --git a/aclocal.m4 b/aclocal.m4
+index 39392bc..e17b338 100644
+--- a/aclocal.m4
++++ b/aclocal.m4
+@@ -91,8 +91,8 @@ project Lib is
+ end Lib;
+ EOF
+ 
+-      if test "x$host_alias" != "x$target_alias"; then
+-          $gprbuild --target=$target_alias -c -q -P$tmp/lib 2>/dev/null
++      if test "x$build_alias" != "x$host_alias"; then
++          $gprbuild --target=$host_alias -c -q -P$tmp/lib 2>/dev/null
+       else
+           $gprbuild -c -q -P$tmp/lib 2>/dev/null
+       fi
diff --git a/srcpkgs/xmlada/template b/srcpkgs/xmlada/template
new file mode 100644
index 00000000000000..613e0454d5caa2
--- /dev/null
+++ b/srcpkgs/xmlada/template
@@ -0,0 +1,36 @@
+# Template file for 'xmlada'
+pkgname=xmlada
+version=25.0.0
+revision=1
+build_style=gnu-configure
+short_desc="XML parser for Ada"
+maintainer="Estevan Castilho <estevan.cps@gmail.com>"
+license="GPL-3.0-or-later WITH GCC-exception-3.1"
+homepage="https://github.com/AdaCore/xmlada"
+distfiles="https://github.com/AdaCore/xmlada/archive/refs/tags/v${version}.tar.gz"
+checksum="dbb5984a0931311c7a787a679ef4cfaeeedd357474a585dc170140ef2251dcca"
+
+hostmakedepends="gcc-ada autoconf gprbuild-bootstrap"
+
+configure_args+=" --enable-shared"
+
+do_configure() {
+	autoreconf -fi
+	./configure $configure_args
+}
+
+xmlada-devel_package() {
+	short_desc+=" - development files"
+	depends="${sourcepkg}>=${version}_${revision}"
+	pkg_install() {
+		cd "$DESTDIR"
+		# vmove isn't the biggest fan of globs on parent directories
+		for file in usr/lib/xmlada/*/*.{ali,a}; do
+			vmove "$file"
+		done
+		vmove "usr/lib/*.so"
+		vmove usr/share/gpr
+		vmove usr/include
+		vmove usr/share/examples/xmlada
+	}
+}

From dbb5e6ce3b97cc18a940b3b64fbb84dd5d0365df Mon Sep 17 00:00:00 2001
From: "Estevan Castilho (Tevo)" <estevan.cps@gmail.com>
Date: Sat, 21 Dec 2024 01:42:44 +0000
Subject: [PATCH 3/4] New package: gprconfig_kb-25.0.0

---
 srcpkgs/gprconfig_kb/template | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)
 create mode 100644 srcpkgs/gprconfig_kb/template

diff --git a/srcpkgs/gprconfig_kb/template b/srcpkgs/gprconfig_kb/template
new file mode 100644
index 00000000000000..9fa01eb70c27e1
--- /dev/null
+++ b/srcpkgs/gprconfig_kb/template
@@ -0,0 +1,16 @@
+# Template file for 'gprconfig_kb'
+pkgname=gprconfig_kb
+version=25.0.0
+revision=1
+short_desc="Knowledge base for configuring GPR toolchains"
+maintainer="Estevan Castilho <estevan.cps@gmail.com>"
+license=GPL-3.0-or-later
+homepage="https://github.com/AdaCore/gprconfig_kb"
+distfiles="https://github.com/AdaCore/gprconfig_kb/archive/refs/tags/v${version}.tar.gz"
+checksum="802e6d38a3b110897924a9c16e143cb86360f2dde94bb5b9144c7c391e37b121"
+
+do_install() {
+	destination="$DESTDIR/usr/share/gprconfig"
+	mkdir -p "$destination"
+	cp -rv db/* "$destination"
+}

From 6137ca17fa83b08352d5b29bbd2b4c4cba195e9a Mon Sep 17 00:00:00 2001
From: "Estevan Castilho (Tevo)" <estevan.cps@gmail.com>
Date: Fri, 20 Dec 2024 02:11:10 +0000
Subject: [PATCH 4/4] New package: gprbuild-25.0.0

---
 common/shlibs             |  1 +
 srcpkgs/gprbuild/template | 49 +++++++++++++++++++++++++++++++++++++++
 srcpkgs/libgpr            |  1 +
 srcpkgs/libgpr-devel      |  1 +
 4 files changed, 52 insertions(+)
 create mode 100644 srcpkgs/gprbuild/template
 create mode 120000 srcpkgs/libgpr
 create mode 120000 srcpkgs/libgpr-devel

diff --git a/common/shlibs b/common/shlibs
index 964bce100999f4..039b82ee1cf888 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -4550,3 +4550,4 @@ libxmlada_dom.so.18.0w xmlada-25.0.0_1
 libxmlada_sax.so.18.0w xmlada-25.0.0_1
 libxmlada_unicode.so.18.0w xmlada-25.0.0_1
 libxmlada_input_sources.so.18.0w xmlada-25.0.0_1
+libgnatprj.so libgpr-25.0.0_1
diff --git a/srcpkgs/gprbuild/template b/srcpkgs/gprbuild/template
new file mode 100644
index 00000000000000..a8f6ec331d0cc5
--- /dev/null
+++ b/srcpkgs/gprbuild/template
@@ -0,0 +1,49 @@
+# Template file for 'gprbuild'
+pkgname=gprbuild
+version=25.0.0
+revision=1
+build_style=gnu-configure
+short_desc="Advanced build system for multi-language programs"
+maintainer="Estevan Castilho <estevan.cps@gmail.com>"
+license=GPL-3.0-or-later
+homepage="https://github.com/AdaCore/gprbuild"
+distfiles="https://github.com/AdaCore/gprbuild/archive/refs/tags/v${version}.tar.gz"
+checksum="d12f94c1ec0b6e219f6b162f71f57129d22426e7798092f5f85b9ec2cc818bf1"
+
+hostmakedepends="gcc-ada gprbuild-bootstrap which"
+makedepends="xmlada-devel"
+depends="gprconfig_kb"
+
+subpackages="libgpr libgpr-devel"
+
+make_build_target="all libgpr.build"
+make_install_target="install libgpr.install"
+
+do_configure() {
+	make prefix="$DESTDIR/usr" setup
+}
+
+libgpr_package() {
+	license+=" WITH GCC-exception-3.1"
+	short_desc+=" - library"
+	depends="xmlada ${sourcepkg}>=${version}_${revision}"
+	pkg_install() {
+		cd "$DESTDIR"
+		# vmove isn't the biggest fan of globs on parent directories
+		for file in usr/lib/gpr/*/*/*.so*; do
+			vmove "$file"
+		done
+	}
+}
+
+libgpr-devel_package() {
+	license+=" WITH GCC-exception-3.1"
+	short_desc+=" - library - development files"
+	depends="libgpr>=${version}_${revision}"
+	pkg_install() {
+		vmove "usr/lib/*.so"
+		vmove usr/lib/gpr
+		vmove usr/share/gpr
+		vmove usr/include
+	}
+}
diff --git a/srcpkgs/libgpr b/srcpkgs/libgpr
new file mode 120000
index 00000000000000..5cd80f8ab7fe46
--- /dev/null
+++ b/srcpkgs/libgpr
@@ -0,0 +1 @@
+gprbuild
\ No newline at end of file
diff --git a/srcpkgs/libgpr-devel b/srcpkgs/libgpr-devel
new file mode 120000
index 00000000000000..5cd80f8ab7fe46
--- /dev/null
+++ b/srcpkgs/libgpr-devel
@@ -0,0 +1 @@
+gprbuild
\ No newline at end of file

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: New package: gprbuild-25.0.0
  2024-12-21  1:55 [PR PATCH] New package: gprbuild-25.0.0 Tevo45
                   ` (6 preceding siblings ...)
  2024-12-22 19:48 ` [PR PATCH] [Updated] " Tevo45
@ 2024-12-22 19:56 ` Tevo45
  2024-12-22 20:00 ` [PR PATCH] [Updated] " Tevo45
                   ` (9 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: Tevo45 @ 2024-12-22 19:56 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 360 bytes --]

New comment by Tevo45 on void-packages repository

https://github.com/void-linux/void-packages/pull/53605#issuecomment-2558577575

Comment:
Following the example from [Fedora](https://src.fedoraproject.org/rpms/gprbuild/blob/rawhide/f/gprbuild-resolve-libgpr-conflict.patch), I've also renamed libgpr.so to libgnatprj.so, to avoid conflict with gRPC's libgpr.

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PR PATCH] [Updated] New package: gprbuild-25.0.0
  2024-12-21  1:55 [PR PATCH] New package: gprbuild-25.0.0 Tevo45
                   ` (7 preceding siblings ...)
  2024-12-22 19:56 ` Tevo45
@ 2024-12-22 20:00 ` Tevo45
  2024-12-22 20:00 ` Tevo45
                   ` (8 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: Tevo45 @ 2024-12-22 20:00 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1379 bytes --]

There is an updated pull request by Tevo45 against master on the void-packages repository

https://github.com/Tevo45/void-packages gprbuild
https://github.com/void-linux/void-packages/pull/53605

New package: gprbuild-25.0.0
<!-- Uncomment relevant sections and delete options which are not applicable -->

GPRbuild is a multi-language build system commonly found in Ada projects. Changes include xmlada and gprconfig_kb, both dependencies of gprbuild, as well as libgpr, an optional library component. Lightly tested, but should receive some more usage in the coming days.

Closes #45421

#### Testing the changes
- I tested the changes in this PR: **briefly**

#### New package
- This new package conforms to the [package requirements](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#package-requirements): **YES**

<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
#### Local build testing
- I built this PR locally for my native architecture, (x86_64-glibc)



A patch file from https://github.com/void-linux/void-packages/pull/53605.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gprbuild-53605.patch --]
[-- Type: text/x-diff, Size: 9585 bytes --]

From c70f520f7284319a92b4cc9cf7d192efa8fc1eca Mon Sep 17 00:00:00 2001
From: "Estevan Castilho (Tevo)" <estevan.cps@gmail.com>
Date: Fri, 20 Dec 2024 02:08:39 +0000
Subject: [PATCH 1/4] New package: gprbuild-bootstrap-25.0.0

---
 srcpkgs/gprbuild-bootstrap/template | 34 +++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)
 create mode 100644 srcpkgs/gprbuild-bootstrap/template

diff --git a/srcpkgs/gprbuild-bootstrap/template b/srcpkgs/gprbuild-bootstrap/template
new file mode 100644
index 00000000000000..3133d64174e85c
--- /dev/null
+++ b/srcpkgs/gprbuild-bootstrap/template
@@ -0,0 +1,34 @@
+# Template file for 'gprbuild-bootstrap'
+pkgname=gprbuild-bootstrap
+version=25.0.0
+revision=1
+short_desc="Advanced build system for multi-language programs - bootstrap package"
+maintainer="Estevan Castilho <estevan.cps@gmail.com>"
+license=GPL-3.0-or-later
+homepage="https://github.com/AdaCore/gprbuild"
+distfiles="
+	https://github.com/AdaCore/gprbuild/archive/refs/tags/v${version}.tar.gz>gprbuild-${version}.tar.gz
+	https://github.com/AdaCore/xmlada/archive/refs/tags/v${version}.tar.gz>xmlada-${version}.tar.gz
+	https://github.com/AdaCore/gprconfig_kb/archive/refs/tags/v${version}.tar.gz>gprconfig_kb-${version}.tar.gz"
+checksum="
+	d12f94c1ec0b6e219f6b162f71f57129d22426e7798092f5f85b9ec2cc818bf1
+	dbb5984a0931311c7a787a679ef4cfaeeedd357474a585dc170140ef2251dcca
+	802e6d38a3b110897924a9c16e143cb86360f2dde94bb5b9144c7c391e37b121"
+
+hostmakedepends="gcc-ada"
+
+do_build() {
+	cd "gprbuild-${version}"
+	./bootstrap.sh \
+		--with-xmlada="../xmlada-${version}" \
+		--with-kb="../gprconfig_kb-${version}" \
+		--build
+}
+
+do_install() {
+	cd "gprbuild-${version}"
+	./bootstrap.sh \
+		--with-kb="../gprconfig_kb-${version}" \
+		--prefix="$DESTDIR/usr" \
+		--install
+}

From 23b4e1649c83b2f8f4d7b1f17bf64420fdff783c Mon Sep 17 00:00:00 2001
From: "Estevan Castilho (Tevo)" <estevan.cps@gmail.com>
Date: Fri, 20 Dec 2024 02:10:55 +0000
Subject: [PATCH 2/4] New package: xmlada-25.0.0

---
 common/shlibs                                 |  5 +++
 srcpkgs/xmlada-devel                          |  1 +
 .../patches/fix-autoconf-flag-confusion.patch | 32 +++++++++++++++++
 srcpkgs/xmlada/template                       | 36 +++++++++++++++++++
 4 files changed, 74 insertions(+)
 create mode 120000 srcpkgs/xmlada-devel
 create mode 100644 srcpkgs/xmlada/patches/fix-autoconf-flag-confusion.patch
 create mode 100644 srcpkgs/xmlada/template

diff --git a/common/shlibs b/common/shlibs
index c732517b8d50ed..964bce100999f4 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -4545,3 +4545,8 @@ libflashrom.so.1 flashrom-1.4.0_1
 libpyside6.so.6.7 libpyside6-6.7.2_1
 libpyside6qml.so.6.7 libpyside6-6.7.2_1
 libshiboken6.so.6.7 libshiboken6-6.7.2_1
+libxmlada_schema.so.18.0w xmlada-25.0.0_1
+libxmlada_dom.so.18.0w xmlada-25.0.0_1
+libxmlada_sax.so.18.0w xmlada-25.0.0_1
+libxmlada_unicode.so.18.0w xmlada-25.0.0_1
+libxmlada_input_sources.so.18.0w xmlada-25.0.0_1
diff --git a/srcpkgs/xmlada-devel b/srcpkgs/xmlada-devel
new file mode 120000
index 00000000000000..2f2d27d92b8ead
--- /dev/null
+++ b/srcpkgs/xmlada-devel
@@ -0,0 +1 @@
+xmlada
\ No newline at end of file
diff --git a/srcpkgs/xmlada/patches/fix-autoconf-flag-confusion.patch b/srcpkgs/xmlada/patches/fix-autoconf-flag-confusion.patch
new file mode 100644
index 00000000000000..4b74bee17a89fe
--- /dev/null
+++ b/srcpkgs/xmlada/patches/fix-autoconf-flag-confusion.patch
@@ -0,0 +1,32 @@
+diff --git a/Makefile.in b/Makefile.in
+index e03b63c..880262b 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -16,9 +16,9 @@ GPRBUILD_OPTIONS=
+ PROCESSORS?=0
+ GPRBUILD=@gprbuild@ -j${PROCESSORS} -m ${GPRBUILD_OPTIONS}
+ GPRINSTALL=@gprinstall@
+-TARGET=@target@
+-TARGET_ALIAS=@target_alias@
+-HOST=@host@
++TARGET=@host@
++TARGET_ALIAS=@host_alias@
++HOST=@build@
+ 
+ # Compiler mode: one of "distrib", "Debug", "Production", "profile", "coverage"
+ MODE=@BUILD_TYPE@
+diff --git a/aclocal.m4 b/aclocal.m4
+index 39392bc..e17b338 100644
+--- a/aclocal.m4
++++ b/aclocal.m4
+@@ -91,8 +91,8 @@ project Lib is
+ end Lib;
+ EOF
+ 
+-      if test "x$host_alias" != "x$target_alias"; then
+-          $gprbuild --target=$target_alias -c -q -P$tmp/lib 2>/dev/null
++      if test "x$build_alias" != "x$host_alias"; then
++          $gprbuild --target=$host_alias -c -q -P$tmp/lib 2>/dev/null
+       else
+           $gprbuild -c -q -P$tmp/lib 2>/dev/null
+       fi
diff --git a/srcpkgs/xmlada/template b/srcpkgs/xmlada/template
new file mode 100644
index 00000000000000..613e0454d5caa2
--- /dev/null
+++ b/srcpkgs/xmlada/template
@@ -0,0 +1,36 @@
+# Template file for 'xmlada'
+pkgname=xmlada
+version=25.0.0
+revision=1
+build_style=gnu-configure
+short_desc="XML parser for Ada"
+maintainer="Estevan Castilho <estevan.cps@gmail.com>"
+license="GPL-3.0-or-later WITH GCC-exception-3.1"
+homepage="https://github.com/AdaCore/xmlada"
+distfiles="https://github.com/AdaCore/xmlada/archive/refs/tags/v${version}.tar.gz"
+checksum="dbb5984a0931311c7a787a679ef4cfaeeedd357474a585dc170140ef2251dcca"
+
+hostmakedepends="gcc-ada autoconf gprbuild-bootstrap"
+
+configure_args+=" --enable-shared"
+
+do_configure() {
+	autoreconf -fi
+	./configure $configure_args
+}
+
+xmlada-devel_package() {
+	short_desc+=" - development files"
+	depends="${sourcepkg}>=${version}_${revision}"
+	pkg_install() {
+		cd "$DESTDIR"
+		# vmove isn't the biggest fan of globs on parent directories
+		for file in usr/lib/xmlada/*/*.{ali,a}; do
+			vmove "$file"
+		done
+		vmove "usr/lib/*.so"
+		vmove usr/share/gpr
+		vmove usr/include
+		vmove usr/share/examples/xmlada
+	}
+}

From dbb5e6ce3b97cc18a940b3b64fbb84dd5d0365df Mon Sep 17 00:00:00 2001
From: "Estevan Castilho (Tevo)" <estevan.cps@gmail.com>
Date: Sat, 21 Dec 2024 01:42:44 +0000
Subject: [PATCH 3/4] New package: gprconfig_kb-25.0.0

---
 srcpkgs/gprconfig_kb/template | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)
 create mode 100644 srcpkgs/gprconfig_kb/template

diff --git a/srcpkgs/gprconfig_kb/template b/srcpkgs/gprconfig_kb/template
new file mode 100644
index 00000000000000..9fa01eb70c27e1
--- /dev/null
+++ b/srcpkgs/gprconfig_kb/template
@@ -0,0 +1,16 @@
+# Template file for 'gprconfig_kb'
+pkgname=gprconfig_kb
+version=25.0.0
+revision=1
+short_desc="Knowledge base for configuring GPR toolchains"
+maintainer="Estevan Castilho <estevan.cps@gmail.com>"
+license=GPL-3.0-or-later
+homepage="https://github.com/AdaCore/gprconfig_kb"
+distfiles="https://github.com/AdaCore/gprconfig_kb/archive/refs/tags/v${version}.tar.gz"
+checksum="802e6d38a3b110897924a9c16e143cb86360f2dde94bb5b9144c7c391e37b121"
+
+do_install() {
+	destination="$DESTDIR/usr/share/gprconfig"
+	mkdir -p "$destination"
+	cp -rv db/* "$destination"
+}

From 27f99ecd26aa3de28eb592a7b07dca9cf7025210 Mon Sep 17 00:00:00 2001
From: "Estevan Castilho (Tevo)" <estevan.cps@gmail.com>
Date: Fri, 20 Dec 2024 02:11:10 +0000
Subject: [PATCH 4/4] New package: gprbuild-25.0.0

---
 common/shlibs             |  1 +
 srcpkgs/gprbuild/template | 49 +++++++++++++++++++++++++++++++++++++++
 srcpkgs/libgpr            |  1 +
 srcpkgs/libgpr-devel      |  1 +
 4 files changed, 52 insertions(+)
 create mode 100644 srcpkgs/gprbuild/template
 create mode 120000 srcpkgs/libgpr
 create mode 120000 srcpkgs/libgpr-devel

diff --git a/common/shlibs b/common/shlibs
index 964bce100999f4..039b82ee1cf888 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -4550,3 +4550,4 @@ libxmlada_dom.so.18.0w xmlada-25.0.0_1
 libxmlada_sax.so.18.0w xmlada-25.0.0_1
 libxmlada_unicode.so.18.0w xmlada-25.0.0_1
 libxmlada_input_sources.so.18.0w xmlada-25.0.0_1
+libgnatprj.so libgpr-25.0.0_1
diff --git a/srcpkgs/gprbuild/template b/srcpkgs/gprbuild/template
new file mode 100644
index 00000000000000..9b30226450a325
--- /dev/null
+++ b/srcpkgs/gprbuild/template
@@ -0,0 +1,49 @@
+# Template file for 'gprbuild'
+pkgname=gprbuild
+version=25.0.0
+revision=1
+build_style=gnu-configure
+short_desc="Advanced build system for multi-language programs"
+maintainer="Estevan Castilho <estevan.cps@gmail.com>"
+license=GPL-3.0-or-later
+homepage="https://github.com/AdaCore/gprbuild"
+distfiles="https://github.com/AdaCore/gprbuild/archive/refs/tags/v${version}.tar.gz"
+checksum="d12f94c1ec0b6e219f6b162f71f57129d22426e7798092f5f85b9ec2cc818bf1"
+
+hostmakedepends="gcc-ada gprbuild-bootstrap which"
+makedepends="xmlada-devel"
+depends="gprconfig_kb"
+
+subpackages="libgpr libgpr-devel"
+
+make_build_target="all libgpr.build"
+make_install_target="install libgpr.install"
+
+do_configure() {
+	make prefix="$DESTDIR/usr" setup
+}
+
+libgpr_package() {
+	license+=" WITH GCC-exception-3.1"
+	short_desc+=" - library"
+	depends="${sourcepkg}>=${version}_${revision}"
+	pkg_install() {
+		cd "$DESTDIR"
+		# vmove isn't the biggest fan of globs on parent directories
+		for file in usr/lib/gpr/*/*/*.so*; do
+			vmove "$file"
+		done
+	}
+}
+
+libgpr-devel_package() {
+	license+=" WITH GCC-exception-3.1"
+	short_desc+=" - library - development files"
+	depends="libgpr>=${version}_${revision}"
+	pkg_install() {
+		vmove "usr/lib/*.so"
+		vmove usr/lib/gpr
+		vmove usr/share/gpr
+		vmove usr/include
+	}
+}
diff --git a/srcpkgs/libgpr b/srcpkgs/libgpr
new file mode 120000
index 00000000000000..5cd80f8ab7fe46
--- /dev/null
+++ b/srcpkgs/libgpr
@@ -0,0 +1 @@
+gprbuild
\ No newline at end of file
diff --git a/srcpkgs/libgpr-devel b/srcpkgs/libgpr-devel
new file mode 120000
index 00000000000000..5cd80f8ab7fe46
--- /dev/null
+++ b/srcpkgs/libgpr-devel
@@ -0,0 +1 @@
+gprbuild
\ No newline at end of file

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: New package: gprbuild-25.0.0
  2024-12-21  1:55 [PR PATCH] New package: gprbuild-25.0.0 Tevo45
                   ` (8 preceding siblings ...)
  2024-12-22 20:00 ` [PR PATCH] [Updated] " Tevo45
@ 2024-12-22 20:00 ` Tevo45
  2025-01-12  3:12 ` Tevo45
                   ` (7 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: Tevo45 @ 2024-12-22 20:00 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1813 bytes --]

New comment by Tevo45 on void-packages repository

https://github.com/void-linux/void-packages/pull/53605#issuecomment-2558574058

Comment:
I hadn't noticed it before, since libgpr-devel was missing a dependency on libgpr, but it seems I cannot install the built libgpr package due to "broken, unresolvable shlib"s on xmlada's libraries?
```sh
tenshi$ sudo xbps-install --repository hostdir/binpkgs/gprbuild libgpr
Password: 
libgpr-25.0.0_1: broken, unresolvable shlib `libxmlada_dom.so.18.0w'
libgpr-25.0.0_1: broken, unresolvable shlib `libxmlada_input_sources.so.18.0w'
libgpr-25.0.0_1: broken, unresolvable shlib `libxmlada_sax.so.18.0w'
libgpr-25.0.0_1: broken, unresolvable shlib `libxmlada_schema.so.18.0w'
libgpr-25.0.0_1: broken, unresolvable shlib `libxmlada_unicode.so.18.0w'
Transaction aborted due to unresolved shlibs.
```
I'm not exactly sure why; xmlada's shared objects are listed on `common/shlibs`, and the soname for those listed on the built libgpr.so seems to match exactly:
```sh
tenshi$ readelf -d libgnatprj.so

Dynamic section at offset 0x63ad40 contains 35 entries:
  Tag        Type                         Name/Value
 0x0000000000000001 (NEEDED)             Shared library: [libxmlada_schema.so.18.0w]
 0x0000000000000001 (NEEDED)             Shared library: [libxmlada_dom.so.18.0w]
 0x0000000000000001 (NEEDED)             Shared library: [libxmlada_sax.so.18.0w]
 0x0000000000000001 (NEEDED)             Shared library: [libxmlada_input_sources.so.18.0w]
 0x0000000000000001 (NEEDED)             Shared library: [libxmlada_unicode.so.18.0w]
[...]
```
I've tried adding xmlada to libgpr's depends, and adding xmlada's libraries' full path to `common/shlibs` (i.e. /usr/lib/xmlada/xmlada_schema.relocatable/libxmlada_schema.so.18.0w, etc) without much luck.

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: New package: gprbuild-25.0.0
  2024-12-21  1:55 [PR PATCH] New package: gprbuild-25.0.0 Tevo45
                   ` (9 preceding siblings ...)
  2024-12-22 20:00 ` Tevo45
@ 2025-01-12  3:12 ` Tevo45
  2025-01-12  3:14 ` [PR PATCH] [Updated] " Tevo45
                   ` (6 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: Tevo45 @ 2025-01-12  3:12 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 384 bytes --]

New comment by Tevo45 on void-packages repository

https://github.com/void-linux/void-packages/pull/53605#issuecomment-2585558951

Comment:
I haven't made any effort to investigate the installation failure for libgpr, but gprbuild itself has been working fine for me. I figure if nobody minds we could just drop libgpr for the time being, and revisit it once somebody feels the need.

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PR PATCH] [Updated] New package: gprbuild-25.0.0
  2024-12-21  1:55 [PR PATCH] New package: gprbuild-25.0.0 Tevo45
                   ` (10 preceding siblings ...)
  2025-01-12  3:12 ` Tevo45
@ 2025-01-12  3:14 ` Tevo45
  2025-01-12 21:59 ` abenson
                   ` (5 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: Tevo45 @ 2025-01-12  3:14 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1379 bytes --]

There is an updated pull request by Tevo45 against master on the void-packages repository

https://github.com/Tevo45/void-packages gprbuild
https://github.com/void-linux/void-packages/pull/53605

New package: gprbuild-25.0.0
<!-- Uncomment relevant sections and delete options which are not applicable -->

GPRbuild is a multi-language build system commonly found in Ada projects. Changes include xmlada and gprconfig_kb, both dependencies of gprbuild, as well as libgpr, an optional library component. Lightly tested, but should receive some more usage in the coming days.

Closes #45421

#### Testing the changes
- I tested the changes in this PR: **briefly**

#### New package
- This new package conforms to the [package requirements](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#package-requirements): **YES**

<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
#### Local build testing
- I built this PR locally for my native architecture, (x86_64-glibc)



A patch file from https://github.com/void-linux/void-packages/pull/53605.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gprbuild-53605.patch --]
[-- Type: text/x-diff, Size: 9591 bytes --]

From 793051719e3e31e63bc8d863d1b90e51f942e67d Mon Sep 17 00:00:00 2001
From: "Estevan Castilho (Tevo)" <estevan.cps@gmail.com>
Date: Fri, 20 Dec 2024 02:08:39 +0000
Subject: [PATCH 1/4] New package: gprbuild-bootstrap-25.0.0

---
 srcpkgs/gprbuild-bootstrap/template | 34 +++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)
 create mode 100644 srcpkgs/gprbuild-bootstrap/template

diff --git a/srcpkgs/gprbuild-bootstrap/template b/srcpkgs/gprbuild-bootstrap/template
new file mode 100644
index 00000000000000..3133d64174e85c
--- /dev/null
+++ b/srcpkgs/gprbuild-bootstrap/template
@@ -0,0 +1,34 @@
+# Template file for 'gprbuild-bootstrap'
+pkgname=gprbuild-bootstrap
+version=25.0.0
+revision=1
+short_desc="Advanced build system for multi-language programs - bootstrap package"
+maintainer="Estevan Castilho <estevan.cps@gmail.com>"
+license=GPL-3.0-or-later
+homepage="https://github.com/AdaCore/gprbuild"
+distfiles="
+	https://github.com/AdaCore/gprbuild/archive/refs/tags/v${version}.tar.gz>gprbuild-${version}.tar.gz
+	https://github.com/AdaCore/xmlada/archive/refs/tags/v${version}.tar.gz>xmlada-${version}.tar.gz
+	https://github.com/AdaCore/gprconfig_kb/archive/refs/tags/v${version}.tar.gz>gprconfig_kb-${version}.tar.gz"
+checksum="
+	d12f94c1ec0b6e219f6b162f71f57129d22426e7798092f5f85b9ec2cc818bf1
+	dbb5984a0931311c7a787a679ef4cfaeeedd357474a585dc170140ef2251dcca
+	802e6d38a3b110897924a9c16e143cb86360f2dde94bb5b9144c7c391e37b121"
+
+hostmakedepends="gcc-ada"
+
+do_build() {
+	cd "gprbuild-${version}"
+	./bootstrap.sh \
+		--with-xmlada="../xmlada-${version}" \
+		--with-kb="../gprconfig_kb-${version}" \
+		--build
+}
+
+do_install() {
+	cd "gprbuild-${version}"
+	./bootstrap.sh \
+		--with-kb="../gprconfig_kb-${version}" \
+		--prefix="$DESTDIR/usr" \
+		--install
+}

From 99f537ac9b090c6accaa85ec5750e92a47aa48b1 Mon Sep 17 00:00:00 2001
From: "Estevan Castilho (Tevo)" <estevan.cps@gmail.com>
Date: Fri, 20 Dec 2024 02:10:55 +0000
Subject: [PATCH 2/4] New package: xmlada-25.0.0

---
 common/shlibs                                 |  5 +++
 srcpkgs/xmlada-devel                          |  1 +
 .../patches/fix-autoconf-flag-confusion.patch | 32 +++++++++++++++++
 srcpkgs/xmlada/template                       | 36 +++++++++++++++++++
 4 files changed, 74 insertions(+)
 create mode 120000 srcpkgs/xmlada-devel
 create mode 100644 srcpkgs/xmlada/patches/fix-autoconf-flag-confusion.patch
 create mode 100644 srcpkgs/xmlada/template

diff --git a/common/shlibs b/common/shlibs
index e0bba1a4f23171..37f46190a50146 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -4550,3 +4550,8 @@ libshiboken6.so.6.7 libshiboken6-6.7.2_1
 libopencore-amrnb.so.0 opencore-amr-0.1.6_1
 libopencore-amrwb.so.0 opencore-amr-0.1.6_1
 libilbc.so.3 libilbc-3.0.4_1
+libxmlada_schema.so.18.0w xmlada-25.0.0_1
+libxmlada_dom.so.18.0w xmlada-25.0.0_1
+libxmlada_sax.so.18.0w xmlada-25.0.0_1
+libxmlada_unicode.so.18.0w xmlada-25.0.0_1
+libxmlada_input_sources.so.18.0w xmlada-25.0.0_1
diff --git a/srcpkgs/xmlada-devel b/srcpkgs/xmlada-devel
new file mode 120000
index 00000000000000..2f2d27d92b8ead
--- /dev/null
+++ b/srcpkgs/xmlada-devel
@@ -0,0 +1 @@
+xmlada
\ No newline at end of file
diff --git a/srcpkgs/xmlada/patches/fix-autoconf-flag-confusion.patch b/srcpkgs/xmlada/patches/fix-autoconf-flag-confusion.patch
new file mode 100644
index 00000000000000..4b74bee17a89fe
--- /dev/null
+++ b/srcpkgs/xmlada/patches/fix-autoconf-flag-confusion.patch
@@ -0,0 +1,32 @@
+diff --git a/Makefile.in b/Makefile.in
+index e03b63c..880262b 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -16,9 +16,9 @@ GPRBUILD_OPTIONS=
+ PROCESSORS?=0
+ GPRBUILD=@gprbuild@ -j${PROCESSORS} -m ${GPRBUILD_OPTIONS}
+ GPRINSTALL=@gprinstall@
+-TARGET=@target@
+-TARGET_ALIAS=@target_alias@
+-HOST=@host@
++TARGET=@host@
++TARGET_ALIAS=@host_alias@
++HOST=@build@
+ 
+ # Compiler mode: one of "distrib", "Debug", "Production", "profile", "coverage"
+ MODE=@BUILD_TYPE@
+diff --git a/aclocal.m4 b/aclocal.m4
+index 39392bc..e17b338 100644
+--- a/aclocal.m4
++++ b/aclocal.m4
+@@ -91,8 +91,8 @@ project Lib is
+ end Lib;
+ EOF
+ 
+-      if test "x$host_alias" != "x$target_alias"; then
+-          $gprbuild --target=$target_alias -c -q -P$tmp/lib 2>/dev/null
++      if test "x$build_alias" != "x$host_alias"; then
++          $gprbuild --target=$host_alias -c -q -P$tmp/lib 2>/dev/null
+       else
+           $gprbuild -c -q -P$tmp/lib 2>/dev/null
+       fi
diff --git a/srcpkgs/xmlada/template b/srcpkgs/xmlada/template
new file mode 100644
index 00000000000000..613e0454d5caa2
--- /dev/null
+++ b/srcpkgs/xmlada/template
@@ -0,0 +1,36 @@
+# Template file for 'xmlada'
+pkgname=xmlada
+version=25.0.0
+revision=1
+build_style=gnu-configure
+short_desc="XML parser for Ada"
+maintainer="Estevan Castilho <estevan.cps@gmail.com>"
+license="GPL-3.0-or-later WITH GCC-exception-3.1"
+homepage="https://github.com/AdaCore/xmlada"
+distfiles="https://github.com/AdaCore/xmlada/archive/refs/tags/v${version}.tar.gz"
+checksum="dbb5984a0931311c7a787a679ef4cfaeeedd357474a585dc170140ef2251dcca"
+
+hostmakedepends="gcc-ada autoconf gprbuild-bootstrap"
+
+configure_args+=" --enable-shared"
+
+do_configure() {
+	autoreconf -fi
+	./configure $configure_args
+}
+
+xmlada-devel_package() {
+	short_desc+=" - development files"
+	depends="${sourcepkg}>=${version}_${revision}"
+	pkg_install() {
+		cd "$DESTDIR"
+		# vmove isn't the biggest fan of globs on parent directories
+		for file in usr/lib/xmlada/*/*.{ali,a}; do
+			vmove "$file"
+		done
+		vmove "usr/lib/*.so"
+		vmove usr/share/gpr
+		vmove usr/include
+		vmove usr/share/examples/xmlada
+	}
+}

From edd548c1d4f53ce84946be74cd74f58f4eae9c66 Mon Sep 17 00:00:00 2001
From: "Estevan Castilho (Tevo)" <estevan.cps@gmail.com>
Date: Sat, 21 Dec 2024 01:42:44 +0000
Subject: [PATCH 3/4] New package: gprconfig_kb-25.0.0

---
 srcpkgs/gprconfig_kb/template | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)
 create mode 100644 srcpkgs/gprconfig_kb/template

diff --git a/srcpkgs/gprconfig_kb/template b/srcpkgs/gprconfig_kb/template
new file mode 100644
index 00000000000000..9fa01eb70c27e1
--- /dev/null
+++ b/srcpkgs/gprconfig_kb/template
@@ -0,0 +1,16 @@
+# Template file for 'gprconfig_kb'
+pkgname=gprconfig_kb
+version=25.0.0
+revision=1
+short_desc="Knowledge base for configuring GPR toolchains"
+maintainer="Estevan Castilho <estevan.cps@gmail.com>"
+license=GPL-3.0-or-later
+homepage="https://github.com/AdaCore/gprconfig_kb"
+distfiles="https://github.com/AdaCore/gprconfig_kb/archive/refs/tags/v${version}.tar.gz"
+checksum="802e6d38a3b110897924a9c16e143cb86360f2dde94bb5b9144c7c391e37b121"
+
+do_install() {
+	destination="$DESTDIR/usr/share/gprconfig"
+	mkdir -p "$destination"
+	cp -rv db/* "$destination"
+}

From 04720e590b8182d62043e2050878db044183e37d Mon Sep 17 00:00:00 2001
From: "Estevan Castilho (Tevo)" <estevan.cps@gmail.com>
Date: Fri, 20 Dec 2024 02:11:10 +0000
Subject: [PATCH 4/4] New package: gprbuild-25.0.0

---
 common/shlibs             |  1 +
 srcpkgs/gprbuild/template | 49 +++++++++++++++++++++++++++++++++++++++
 srcpkgs/libgpr            |  1 +
 srcpkgs/libgpr-devel      |  1 +
 4 files changed, 52 insertions(+)
 create mode 100644 srcpkgs/gprbuild/template
 create mode 120000 srcpkgs/libgpr
 create mode 120000 srcpkgs/libgpr-devel

diff --git a/common/shlibs b/common/shlibs
index 37f46190a50146..ab0e4ae4418efb 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -4555,3 +4555,4 @@ libxmlada_dom.so.18.0w xmlada-25.0.0_1
 libxmlada_sax.so.18.0w xmlada-25.0.0_1
 libxmlada_unicode.so.18.0w xmlada-25.0.0_1
 libxmlada_input_sources.so.18.0w xmlada-25.0.0_1
+libgnatprj.so libgpr-25.0.0_1
diff --git a/srcpkgs/gprbuild/template b/srcpkgs/gprbuild/template
new file mode 100644
index 00000000000000..9b30226450a325
--- /dev/null
+++ b/srcpkgs/gprbuild/template
@@ -0,0 +1,49 @@
+# Template file for 'gprbuild'
+pkgname=gprbuild
+version=25.0.0
+revision=1
+build_style=gnu-configure
+short_desc="Advanced build system for multi-language programs"
+maintainer="Estevan Castilho <estevan.cps@gmail.com>"
+license=GPL-3.0-or-later
+homepage="https://github.com/AdaCore/gprbuild"
+distfiles="https://github.com/AdaCore/gprbuild/archive/refs/tags/v${version}.tar.gz"
+checksum="d12f94c1ec0b6e219f6b162f71f57129d22426e7798092f5f85b9ec2cc818bf1"
+
+hostmakedepends="gcc-ada gprbuild-bootstrap which"
+makedepends="xmlada-devel"
+depends="gprconfig_kb"
+
+subpackages="libgpr libgpr-devel"
+
+make_build_target="all libgpr.build"
+make_install_target="install libgpr.install"
+
+do_configure() {
+	make prefix="$DESTDIR/usr" setup
+}
+
+libgpr_package() {
+	license+=" WITH GCC-exception-3.1"
+	short_desc+=" - library"
+	depends="${sourcepkg}>=${version}_${revision}"
+	pkg_install() {
+		cd "$DESTDIR"
+		# vmove isn't the biggest fan of globs on parent directories
+		for file in usr/lib/gpr/*/*/*.so*; do
+			vmove "$file"
+		done
+	}
+}
+
+libgpr-devel_package() {
+	license+=" WITH GCC-exception-3.1"
+	short_desc+=" - library - development files"
+	depends="libgpr>=${version}_${revision}"
+	pkg_install() {
+		vmove "usr/lib/*.so"
+		vmove usr/lib/gpr
+		vmove usr/share/gpr
+		vmove usr/include
+	}
+}
diff --git a/srcpkgs/libgpr b/srcpkgs/libgpr
new file mode 120000
index 00000000000000..5cd80f8ab7fe46
--- /dev/null
+++ b/srcpkgs/libgpr
@@ -0,0 +1 @@
+gprbuild
\ No newline at end of file
diff --git a/srcpkgs/libgpr-devel b/srcpkgs/libgpr-devel
new file mode 120000
index 00000000000000..5cd80f8ab7fe46
--- /dev/null
+++ b/srcpkgs/libgpr-devel
@@ -0,0 +1 @@
+gprbuild
\ No newline at end of file

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: New package: gprbuild-25.0.0
  2024-12-21  1:55 [PR PATCH] New package: gprbuild-25.0.0 Tevo45
                   ` (11 preceding siblings ...)
  2025-01-12  3:14 ` [PR PATCH] [Updated] " Tevo45
@ 2025-01-12 21:59 ` abenson
  2025-03-30 18:43 ` [PR PATCH] [Updated] " Tevo45
                   ` (4 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: abenson @ 2025-01-12 21:59 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 191 bytes --]

New comment by abenson on void-packages repository

https://github.com/void-linux/void-packages/pull/53605#issuecomment-2585932594

Comment:
It's still using the host `gcc` for cross-builds.

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PR PATCH] [Updated] New package: gprbuild-25.0.0
  2024-12-21  1:55 [PR PATCH] New package: gprbuild-25.0.0 Tevo45
                   ` (12 preceding siblings ...)
  2025-01-12 21:59 ` abenson
@ 2025-03-30 18:43 ` Tevo45
  2025-03-30 19:05 ` Tevo45
                   ` (3 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: Tevo45 @ 2025-03-30 18:43 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1379 bytes --]

There is an updated pull request by Tevo45 against master on the void-packages repository

https://github.com/Tevo45/void-packages gprbuild
https://github.com/void-linux/void-packages/pull/53605

New package: gprbuild-25.0.0
<!-- Uncomment relevant sections and delete options which are not applicable -->

GPRbuild is a multi-language build system commonly found in Ada projects. Changes include xmlada and gprconfig_kb, both dependencies of gprbuild, as well as libgpr, an optional library component. Lightly tested, but should receive some more usage in the coming days.

Closes #45421

#### Testing the changes
- I tested the changes in this PR: **briefly**

#### New package
- This new package conforms to the [package requirements](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#package-requirements): **YES**

<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
#### Local build testing
- I built this PR locally for my native architecture, (x86_64-glibc)



A patch file from https://github.com/void-linux/void-packages/pull/53605.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gprbuild-53605.patch --]
[-- Type: text/x-diff, Size: 28870 bytes --]

From 68c7a543162c731d14fb974f745b1ff440c54d9f Mon Sep 17 00:00:00 2001
From: "Estevan Castilho (Tevo)" <estevan.cps@gmail.com>
Date: Sat, 21 Dec 2024 01:42:44 +0000
Subject: [PATCH 1/4] New package: gprconfig_kb-25.0.0

---
 .../add-arm-v7l-and-musl-targets.patch        | 366 ++++++++++++++++++
 srcpkgs/gprconfig_kb/template                 |  16 +
 2 files changed, 382 insertions(+)
 create mode 100644 srcpkgs/gprconfig_kb/patches/add-arm-v7l-and-musl-targets.patch
 create mode 100644 srcpkgs/gprconfig_kb/template

diff --git a/srcpkgs/gprconfig_kb/patches/add-arm-v7l-and-musl-targets.patch b/srcpkgs/gprconfig_kb/patches/add-arm-v7l-and-musl-targets.patch
new file mode 100644
index 00000000000000..ca1601c5e7fa05
--- /dev/null
+++ b/srcpkgs/gprconfig_kb/patches/add-arm-v7l-and-musl-targets.patch
@@ -0,0 +1,366 @@
+From b7dc6bc873aaf8809b511b2110286e5978a888ce Mon Sep 17 00:00:00 2001
+From: Estevan Castilho <tevo@riajuu.net>
+Date: Sun, 30 Mar 2025 17:17:52 +0000
+Subject: [PATCH] Add aarch64-linux-musl, arm(v7l)?-linux-(gnu|musl)eabi(hf)?
+
+---
+ db/compilers.xml |  24 +++----
+ db/cross.xml     |   4 +-
+ db/linker.xml    | 161 +++++++++++++++++++++++++++++++++++++++++++++--
+ 3 files changed, 169 insertions(+), 20 deletions(-)
+
+diff --git a/db/compilers.xml b/db/compilers.xml
+index 185ca031..59e8e407 100644
+--- a/db/compilers.xml
++++ b/db/compilers.xml
+@@ -20,7 +20,7 @@
+   <!--    GCC 3.x & 4.x (not for GNAT Pro)-->
+   <compiler_description>
+     <name>GCC</name>
+-    <executable prefix="1">(.*-wrs-.*|.*-sysgo.*|.*-elf-.*|.*-eabi-.*|.*-eabispe-.*|avr-.*|.*-elinos-linux.*|.*-linux-gnu-|.*mingw32.*|.*-xcoff-.*|.*linux-android.*|arm-linux-gnueabi-|arm-linux-gnueabihf-|e500v2-gnu-linux-|powerpc-.*-linux.*-|.*-darwin.*-|.*-freebsd.*)?gcc(-\d+)?</executable>
++    <executable prefix="1">(.*-wrs-.*|.*-sysgo.*|.*-elf-.*|.*-eabi-.*|.*-eabispe-.*|avr-.*|.*-elinos-linux.*|.*-linux-(gnu|musl)-|.*mingw32.*|.*-xcoff-.*|.*linux-android.*|arm.*-linux-(gnu|musl)eabi-|arm.*-linux-(gnu|musl)eabihf-|e500v2-gnu-linux-|powerpc-.*-linux.*-|.*-darwin.*-|.*-freebsd.*)?gcc(-\d+)?</executable>
+     <version>
+       <external>$EXEC -v</external>
+       <nogrep regexp="for GNAT Pro"></nogrep>
+@@ -36,7 +36,7 @@
+   <!--    GCC for GNAT Pro 3.x & 4.x -->
+   <compiler_description>
+     <name>GCC_Pro</name>
+-    <executable prefix="1">(.*-wrs-.*|.*-sysgo.*|.*-elf-.*|.*-eabi-.*|.*-eabispe-.*|avr-.*|.*-elinos-linux.*|.*-linux-gnu-|.*mingw32.*|.*-xcoff-.*|.*linux-android.*|arm-linux-gnueabi-|arm-linux-gnueabihf-|e500v2-gnu-linux-|powerpc-.*-linux.*-|.*-darwin.*-|.*-fastos.*|.*-freebsd.*|.*-qnx.*|.*-rtems.*)?gcc</executable>
++    <executable prefix="1">(.*-wrs-.*|.*-sysgo.*|.*-elf-.*|.*-eabi-.*|.*-eabispe-.*|avr-.*|.*-elinos-linux.*|.*-linux-(gnu|musl)-|.*mingw32.*|.*-xcoff-.*|.*linux-android.*|arm.*-linux-(gnu|musl)eabi-|arm.*-linux-(gnu|musl)eabihf-|e500v2-gnu-linux-|powerpc-.*-linux.*-|.*-darwin.*-|.*-fastos.*|.*-freebsd.*|.*-qnx.*|.*-rtems.*)?gcc</executable>
+     <version>
+       <external>${PREFIX}gcc -v</external>
+ 
+@@ -121,7 +121,7 @@
+   <!--  G++ compilers for GNAT Pro  -->
+   <compiler_description>
+     <name>G++_Pro</name>
+-    <executable prefix="1">(.*-elf-.*|.*-eabi-.*|.*-wrs-.*|.*-fastos.*|.*-freebsd.*|.*-linux-gnu.*-|.*-linux-android.*|.*-rtems.*)?g\+\+</executable>
++    <executable prefix="1">(.*-elf-.*|.*-eabi-.*|.*-wrs-.*|.*-fastos.*|.*-freebsd.*|.*-linux-(gnu|musl).*-|.*-linux-android.*|.*-rtems.*)?g\+\+</executable>
+     <version>
+       <external>${PREFIX}g++ -v</external>
+ 
+@@ -138,7 +138,7 @@
+   <!--  Assembler (not for GNAT Pro) -->
+   <compiler_description>
+     <name>GCC-ASM</name>
+-    <executable prefix="1">(.*-wrs-.*|.*-sysgo.*|.*-elf-.*|.*-eabi-.*|.*-eabispe-.*|avr-.*|.*-elinos-linux.*|.*-linux-gnu-|.*mingw32.*|.*-xcoff-.*|.*linux-android.*|arm-linux-gnueabi-|arm-linux-gnueabihf-|e500v2-gnu-linux-|powerpc-.*-linux.*-|.*-darwin.*-|.*-fastos.*|.*-freebsd.*|.*-qnx.*|.*-rtems.*)?gcc(-\d+)?</executable>
++    <executable prefix="1">(.*-wrs-.*|.*-sysgo.*|.*-elf-.*|.*-eabi-.*|.*-eabispe-.*|avr-.*|.*-elinos-linux.*|.*-linux-(gnu|musl)-|.*mingw32.*|.*-xcoff-.*|.*linux-android.*|arm.*-linux-(gnu|musl)eabi-|arm.*-linux-(gnu|musl)eabihf-|e500v2-gnu-linux-|powerpc-.*-linux.*-|.*-darwin.*-|.*-fastos.*|.*-freebsd.*|.*-qnx.*|.*-rtems.*)?gcc(-\d+)?</executable>
+     <version>
+       <external>$EXEC -v</external>
+       <nogrep regexp="for GNAT Pro"></nogrep>
+@@ -154,7 +154,7 @@
+   <!--  Assembler (for GNAT Pro) -->
+   <compiler_description>
+     <name>GCC-ASM_Pro</name>
+-    <executable prefix="1">(.*-wrs-.*|.*-sysgo.*|.*-elf-.*|.*-eabi-.*|.*-eabispe-.*|avr-.*|.*-elinos-linux.*|.*-linux-gnu-|.*mingw32.*|.*-xcoff-.*|.*linux-android.*|arm-linux-gnueabi-|arm-linux-gnueabihf-|e500v2-gnu-linux-|powerpc-.*-linux.*-|.*-darwin.*-|.*-.*fastos.*|.*-freebsd.*|.*-qnx.*|.*-rtems.*)?gcc</executable>
++    <executable prefix="1">(.*-wrs-.*|.*-sysgo.*|.*-elf-.*|.*-eabi-.*|.*-eabispe-.*|avr-.*|.*-elinos-linux.*|.*-linux-(gnu|musl)-|.*mingw32.*|.*-xcoff-.*|.*linux-android.*|arm.*-linux-(gnu|musl)eabi-|arm.*-linux-(gnu|musl)eabihf-|e500v2-gnu-linux-|powerpc-.*-linux.*-|.*-darwin.*-|.*-.*fastos.*|.*-freebsd.*|.*-qnx.*|.*-rtems.*)?gcc</executable>
+     <version>
+       <external>${PREFIX}gcc -v</external>
+       <grep regexp="^gcc \S+ (\S+) \d+ (\(prerelease\) )?\(?for GNAT Pro" group="1"></grep>
+@@ -169,7 +169,7 @@
+   <!--  Binary image -->
+   <compiler_description>
+     <name>LD</name>
+-    <executable prefix="1">(.*-wrs.*-|.*-sysgo.*-|.*-elf.*-|.*-eabi.*-|.*-eabispe.*-|avr.*-|.*-elinos-linux.*-|.*-linux-gnu-|.*mingw32.*-|.*-xcoff.*-|.*linux-android.*|arm-linux-gnueabi-|arm-linux-gnueabihf-|e500v2-gnu-linux-|powerpc-.*-linux.*-|.*-darwin.*-|.*-fastos.*|.*-freebsd.*|.*-qnx.*-|.*-rtems.*-)?ld</executable>
++    <executable prefix="1">(.*-wrs.*-|.*-sysgo.*-|.*-elf.*-|.*-eabi.*-|.*-eabispe.*-|avr.*-|.*-elinos-linux.*-|.*-linux-(gnu|musl)-|.*mingw32.*-|.*-xcoff.*-|.*linux-android.*|arm.*-linux-(gnu|musl)eabi-|arm.*-linux-(gnu|musl)eabihf-|e500v2-gnu-linux-|powerpc-.*-linux.*-|.*-darwin.*-|.*-fastos.*|.*-freebsd.*|.*-qnx.*-|.*-rtems.*-)?ld</executable>
+     <version>
+       <external>${PREFIX}ld -v</external>
+       <grep regexp="^(GNU ld.*|LLD) (\S+)" group="2"></grep>
+@@ -189,7 +189,7 @@
+    -->
+   <compiler_description>
+     <name>GNAT</name>
+-    <executable prefix="1">(.*-wrs-.*|.*-sysgo.*|.*-elf-.*|.*-eabi-.*|.*-eabispe-.*|avr-.*|.*-elinos-linux.*|.*-linux-gnu-|.*mingw32.*|.*-xcoff-.*|.*linux-android.*|arm-linux-gnueabi-|arm-linux-gnueabihf-|e500v2-gnu-linux-|powerpc-.*-linux.*-|.*-darwin.*-|.*-fastos.*|.*-freebsd.*|.*-qnx.*|.*-rtems.*)?gnatls</executable>
++    <executable prefix="1">(.*-wrs-.*|.*-sysgo.*|.*-elf-.*|.*-eabi-.*|.*-eabispe-.*|avr-.*|.*-elinos-linux.*|.*-linux-(gnu|musl)-|.*mingw32.*|.*-xcoff-.*|.*linux-android.*|arm.*-linux-(gnu|musl)eabi-|arm.*-linux-(gnu|musl)eabihf-|e500v2-gnu-linux-|powerpc-.*-linux.*-|.*-darwin.*-|.*-fastos.*|.*-freebsd.*|.*-qnx.*|.*-rtems.*)?gnatls</executable>
+     <version>
+       <external>${PREFIX}gnatls -v --version</external>
+       <grep regexp="^GNATLS.+?(\d+(\.\d+)?)" group="1"></grep>
+@@ -262,7 +262,7 @@
+ 
+   <compiler_description>
+     <name>GNAT_LLVM</name>
+-    <executable prefix="1">((.*-elf-|.*-linux-gnu-)?llvm-)gnatls</executable>
++    <executable prefix="1">((.*-elf-|.*-linux-(gnu|musl)-)?llvm-)gnatls</executable>
+     <version>
+       <external>${PREFIX}gnatls -v</external>
+       <grep regexp="^GNATLS.+?(\d+(\.\d+)?)" group="1"></grep>
+@@ -287,7 +287,7 @@
+ 
+   <compiler_description>
+     <name>GNAT_LLVM_ASM</name>
+-    <executable prefix="1">((.*-elf-|.*-linux-gnu-)?llvm-)gcc</executable>
++    <executable prefix="1">((.*-elf-|.*-linux-(gnu|musl)-)?llvm-)gcc</executable>
+     <version>
+       <external>$EXEC -v</external>
+       <grep regexp="^llvm-.*gcc.+GNAT Pro (\S+)" group="1"></grep>
+@@ -532,7 +532,7 @@
+   <!-- Clang C compiler -->
+   <compiler_description>
+     <name>CLANG-C</name>
+-    <executable prefix="1">((.*-elf-|.*-linux-gnu-)?)clang</executable>
++    <executable prefix="1">((.*-elf-|.*-linux-(gnu|musl)-)?)clang</executable>
+     <version>
+       <external>$EXEC -v</external>
+       <grep regexp=".*(LLVM|clang) version ([0-9.]*)" group="2"></grep>
+@@ -547,7 +547,7 @@
+   <!-- Clang++ C++ compiler -->
+   <compiler_description>
+     <name>CLANG-C++</name>
+-    <executable prefix="1">((.*-elf-|.*-linux-gnu-)?)clang\+\+</executable>
++    <executable prefix="1">((.*-elf-|.*-linux-(gnu|musl)-)?)clang\+\+</executable>
+     <version>
+       <external>$EXEC -v</external>
+       <grep regexp=".*(LLVM|clang) version ([0-9.]*)" group="2"></grep>
+@@ -562,7 +562,7 @@
+   <!-- Clang assembler -->
+   <compiler_description>
+     <name>CLANG-ASM</name>
+-    <executable prefix="1">((.*-elf-|.*-linux-gnu-)?)clang</executable>
++    <executable prefix="1">((.*-elf-|.*-linux-(gnu|musl)-)?)clang</executable>
+     <version>
+       <external>$EXEC -v</external>
+       <grep regexp=".*(LLVM|clang) version ([0-9.]*)" group="2"></grep>
+diff --git a/db/cross.xml b/db/cross.xml
+index 1c7a5d41..d4165d2a 100644
+--- a/db/cross.xml
++++ b/db/cross.xml
+@@ -44,8 +44,8 @@
+        <target name="^.*-qnx[0-9]*$" />
+        <target name="^.*-rtems.*$" />
+        <target name="^arm-linux-androideabi" />
+-       <target name="^arm-linux-gnueabi" />
+-       <target name="^arm-linux-gnueabihf" />
++       <target name="^arm.*-linux-(gnu|musl)eabi" />
++       <target name="^arm.*-linux-(gnu|musl)eabihf" />
+        <target name="^aarch64-linux-android" />
+        <target name="^aarch64-.*linux-gnu" />
+        <target name="^e500v2-gnu-linux" />
+diff --git a/db/linker.xml b/db/linker.xml
+index c83f3051..acb27a11 100644
+--- a/db/linker.xml
++++ b/db/linker.xml
+@@ -162,10 +162,10 @@
+   <configuration>
+     <!-- aarch64-linux - native compiler. -->
+     <targets>
+-      <target name="^aarch64-linux-gnu$" />
++      <target name="^aarch64-linux-(gnu|musl)$" />
+     </targets>
+     <hosts>
+-      <host name="^aarch64-linux-gnu$" />
++      <host name="^aarch64-linux-(gnu|musl)$" />
+     </hosts>
+     <config>
+    for Object_Lister use ("nm", "-g");
+@@ -179,7 +179,7 @@
+   </configuration>
+ 
+   <configuration>
+-    <!-- aarch64-linux - cross compiler. -->
++    <!-- aarch64-linux-gnu - cross compiler. -->
+     <targets>
+       <target name="^aarch64-.*linux-gnu$" />
+     </targets>
+@@ -197,6 +197,25 @@
+     </config>
+   </configuration>
+ 
++  <configuration>
++    <!-- aarch64-linux-musl - cross compiler. -->
++    <targets>
++      <target name="^aarch64-.*linux-musl$" />
++    </targets>
++    <hosts negate="true">
++      <host name="^aarch64-linux-musl$" />
++    </hosts>
++    <config>
++      for Object_Lister use ("${PREFIX(C)}nm", "-g");
++      for Object_Lister_Matcher use " [TDRBSG] (.*)";
++
++      package Linker is
++      for Export_File_Format use "GNU";
++      for Export_File_Switch use "-Wl,--version-script=";
++      end Linker;
++    </config>
++  </configuration>
++
+   <configuration>
+     <targets>
+       <target name="^arm-linux-gnueabi$" />
+@@ -227,6 +246,96 @@
+     </config>
+   </configuration>
+ 
++  <configuration>
++    <targets>
++      <target name="^armv7l-linux-gnueabi$" />
++    </targets>
++    <config>
++   for Object_Lister use ("armv7l-linux-gnueabi-nm", "-g");
++   for Object_Lister_Matcher use " [TDSR] (.*)";
++
++   package Linker is
++      for Export_File_Format use "GNU";
++      for Export_File_Switch use "-Wl,--version-script=";
++   end Linker;
++    </config>
++  </configuration>
++
++  <configuration>
++    <targets>
++      <target name="^armv7l-linux-gnueabihf$" />
++    </targets>
++    <config>
++   for Object_Lister use ("armv7l-linux-gnueabihf-nm", "-g");
++   for Object_Lister_Matcher use " [TDRBSG] (.*)";
++
++   package Linker is
++      for Export_File_Format use "GNU";
++      for Export_File_Switch use "-Wl,--version-script=";
++   end Linker;
++    </config>
++  </configuration>
++
++  <configuration>
++    <targets>
++      <target name="^arm-linux-musleabi$" />
++    </targets>
++    <config>
++   for Object_Lister use ("arm-linux-musleabi-nm", "-g");
++   for Object_Lister_Matcher use " [TDSR] (.*)";
++
++   package Linker is
++      for Export_File_Format use "GNU";
++      for Export_File_Switch use "-Wl,--version-script=";
++   end Linker;
++    </config>
++  </configuration>
++
++  <configuration>
++    <targets>
++      <target name="^arm-linux-musleabihf$" />
++    </targets>
++    <config>
++   for Object_Lister use ("arm-linux-musleabihf-nm", "-g");
++   for Object_Lister_Matcher use " [TDRBSG] (.*)";
++
++   package Linker is
++      for Export_File_Format use "GNU";
++      for Export_File_Switch use "-Wl,--version-script=";
++   end Linker;
++    </config>
++  </configuration>
++
++  <configuration>
++    <targets>
++      <target name="^armv7l-linux-musleabi$" />
++    </targets>
++    <config>
++   for Object_Lister use ("armv7l-linux-musleabi-nm", "-g");
++   for Object_Lister_Matcher use " [TDSR] (.*)";
++
++   package Linker is
++      for Export_File_Format use "GNU";
++      for Export_File_Switch use "-Wl,--version-script=";
++   end Linker;
++    </config>
++  </configuration>
++
++  <configuration>
++    <targets>
++      <target name="^armv7l-linux-musleabihf$" />
++    </targets>
++    <config>
++   for Object_Lister use ("armv7l-linux-musleabihf-nm", "-g");
++   for Object_Lister_Matcher use " [TDRBSG] (.*)";
++
++   package Linker is
++      for Export_File_Format use "GNU";
++      for Export_File_Switch use "-Wl,--version-script=";
++   end Linker;
++    </config>
++  </configuration>
++
+   <configuration>
+     <targets>
+       <target name="^powerpc-.*linux.*$" />
+@@ -676,6 +785,30 @@
+     </config>
+   </configuration>
+ 
++  <configuration>
++    <targets>
++      <target name="^armv7l-linux-gnueabi$" />
++    </targets>
++    <config>
++   for Archive_Builder  use ("armv7l-linux-gnueabi-ar", "cr");
++   for Archive_Builder_Append_Option use ("q");
++   for Archive_Indexer  use ("armv7l-linux-gnueabi-ranlib");
++   for Archive_Suffix   use ".a";
++    </config>
++  </configuration>
++
++  <configuration>
++    <targets>
++      <target name="^armv7l-linux-gnueabihf$" />
++    </targets>
++    <config>
++   for Archive_Builder  use ("armv7l-linux-gnueabihf-ar", "cr");
++   for Archive_Builder_Append_Option use ("q");
++   for Archive_Indexer  use ("armv7l-linux-gnueabihf-ranlib");
++   for Archive_Suffix   use ".a";
++    </config>
++  </configuration>
++
+   <configuration>
+     <!-- aarch64-android - cross compiler. -->
+     <targets>
+@@ -692,10 +825,10 @@
+   <configuration>
+     <!-- aarch64-linux - native compiler. -->
+     <targets>
+-      <target name="^aarch64-linux-gnu$" />
++      <target name="^aarch64-linux-(gnu|musl)$" />
+     </targets>
+     <hosts>
+-      <host name="^aarch64-linux-gnu$" />
++      <host name="^aarch64-linux-(gnu|musl)$" />
+     </hosts>
+     <config>
+    for Archive_Builder  use ("ar", "cr");
+@@ -706,7 +839,7 @@
+   </configuration>
+ 
+   <configuration>
+-    <!-- aarch64-linux - cross compiler. -->
++    <!-- aarch64-linux-gnu - cross compiler. -->
+     <targets>
+       <target name="^aarch64-.*linux-gnu$" />
+     </targets>
+@@ -721,6 +854,22 @@
+     </config>
+   </configuration>
+ 
++  <configuration>
++    <!-- aarch64-linux-musl - cross compiler. -->
++    <targets>
++      <target name="^aarch64-.*linux-musl$" />
++    </targets>
++    <hosts negate="true">
++      <host name="^aarch64-linux-musl$" />
++    </hosts>
++    <config>
++   for Archive_Builder  use ("aarch64-linux-musl-ar", "cr");
++   for Archive_Builder_Append_Option use ("q");
++   for Archive_Indexer  use ("aarch64-linux-musl-ranlib");
++   for Archive_Suffix   use ".a";
++    </config>
++  </configuration>
++
+   <configuration>
+     <targets>
+       <target name="^aarch64-thales-fastos$" />
+-- 
+2.48.1
+
diff --git a/srcpkgs/gprconfig_kb/template b/srcpkgs/gprconfig_kb/template
new file mode 100644
index 00000000000000..c8e1ed701ccbe2
--- /dev/null
+++ b/srcpkgs/gprconfig_kb/template
@@ -0,0 +1,16 @@
+# Template file for 'gprconfig_kb'
+pkgname=gprconfig_kb
+version=25.0.0
+revision=1
+short_desc="Knowledge base for configuring GPR toolchains"
+maintainer="Estevan Castilho <tevo@riajuu.net>"
+license=GPL-3.0-or-later
+homepage="https://github.com/AdaCore/gprconfig_kb"
+distfiles="https://github.com/AdaCore/gprconfig_kb/archive/refs/tags/v${version}.tar.gz"
+checksum="802e6d38a3b110897924a9c16e143cb86360f2dde94bb5b9144c7c391e37b121"
+
+do_install() {
+	destination="$DESTDIR/usr/share/gprconfig"
+	mkdir -p "$destination"
+	cp -rv db/* "$destination"
+}

From f0bc19cb8ad9eb97dba04d6c24bb48e2a451a5f7 Mon Sep 17 00:00:00 2001
From: "Estevan Castilho (Tevo)" <estevan.cps@gmail.com>
Date: Fri, 20 Dec 2024 02:08:39 +0000
Subject: [PATCH 2/4] New package: gprbuild-bootstrap-25.0.0

---
 srcpkgs/gprbuild-bootstrap/template | 42 +++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)
 create mode 100644 srcpkgs/gprbuild-bootstrap/template

diff --git a/srcpkgs/gprbuild-bootstrap/template b/srcpkgs/gprbuild-bootstrap/template
new file mode 100644
index 00000000000000..10d5985ec3c354
--- /dev/null
+++ b/srcpkgs/gprbuild-bootstrap/template
@@ -0,0 +1,42 @@
+# Template file for 'gprbuild-bootstrap'
+pkgname=gprbuild-bootstrap
+version=25.0.0
+revision=1
+short_desc="Advanced build system for multi-language programs - bootstrap package"
+maintainer="Estevan Castilho <tevo@riajuu.net>"
+license=GPL-3.0-or-later
+homepage="https://github.com/AdaCore/gprbuild"
+distfiles="
+	https://github.com/AdaCore/gprbuild/archive/refs/tags/v${version}.tar.gz>gprbuild-${version}.tar.gz
+	https://github.com/AdaCore/xmlada/archive/refs/tags/v${version}.tar.gz>xmlada-${version}.tar.gz"
+checksum="
+	d12f94c1ec0b6e219f6b162f71f57129d22426e7798092f5f85b9ec2cc818bf1
+	dbb5984a0931311c7a787a679ef4cfaeeedd357474a585dc170140ef2251dcca"
+
+nocross="This is only used by the bootstrap process to build the real gprbuild - it doesn't make much sense to cross-compile."
+
+hostmakedepends="gprconfig_kb gcc-ada"
+depends="gprconfig_kb"
+
+do_configure() {
+    # kludge to get the bootstrap to use our packaged gprconfig
+    # knowledge base - it expects the kb to be under db/, as on the
+    # source package
+    mkdir -p gprconfig_kb
+    ln -sf /usr/share/gprconfig gprconfig_kb/db
+}
+
+do_build() {
+	cd "gprbuild-${version}"
+	./bootstrap.sh \
+		--with-xmlada="../xmlada-${version}" \
+		--build
+}
+
+do_install() {
+	cd "gprbuild-${version}"
+	./bootstrap.sh \
+		--prefix="$DESTDIR/usr" \
+		--install
+    rm -rf "$DESTDIR/usr/share/gprconfig"
+}

From b17bc833ee47563768a183234e0a29dfc0871239 Mon Sep 17 00:00:00 2001
From: "Estevan Castilho (Tevo)" <estevan.cps@gmail.com>
Date: Fri, 20 Dec 2024 02:10:55 +0000
Subject: [PATCH 3/4] New package: xmlada-25.0.0

---
 common/shlibs                                 |  5 ++
 srcpkgs/xmlada-devel                          |  1 +
 .../patches/fix-autoconf-flag-confusion.patch | 59 +++++++++++++++++++
 .../install-cross-under-native-prefix.patch   | 26 ++++++++
 srcpkgs/xmlada/template                       | 36 +++++++++++
 5 files changed, 127 insertions(+)
 create mode 120000 srcpkgs/xmlada-devel
 create mode 100644 srcpkgs/xmlada/patches/fix-autoconf-flag-confusion.patch
 create mode 100644 srcpkgs/xmlada/patches/install-cross-under-native-prefix.patch
 create mode 100644 srcpkgs/xmlada/template

diff --git a/common/shlibs b/common/shlibs
index 0bd2d1fb7e4696..c99c9d1148a5d2 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -4542,3 +4542,8 @@ libmaliit-plugins.so.2 maliit-keyboard-2.3.1_1
 libSDL3.so.0 SDL3-3.2.2_1
 libiconv.so.2 libiconv-1.18_1
 libcharset.so.1 libiconv-1.18_1
+libxmlada_schema.so.18.0w xmlada-25.0.0_1
+libxmlada_dom.so.18.0w xmlada-25.0.0_1
+libxmlada_sax.so.18.0w xmlada-25.0.0_1
+libxmlada_unicode.so.18.0w xmlada-25.0.0_1
+libxmlada_input_sources.so.18.0w xmlada-25.0.0_1
diff --git a/srcpkgs/xmlada-devel b/srcpkgs/xmlada-devel
new file mode 120000
index 00000000000000..2f2d27d92b8ead
--- /dev/null
+++ b/srcpkgs/xmlada-devel
@@ -0,0 +1 @@
+xmlada
\ No newline at end of file
diff --git a/srcpkgs/xmlada/patches/fix-autoconf-flag-confusion.patch b/srcpkgs/xmlada/patches/fix-autoconf-flag-confusion.patch
new file mode 100644
index 00000000000000..ed43b0051f9e12
--- /dev/null
+++ b/srcpkgs/xmlada/patches/fix-autoconf-flag-confusion.patch
@@ -0,0 +1,59 @@
+From a8be28e067456dc2c700719d09ab08e20fccc0ea Mon Sep 17 00:00:00 2001
+From: "Estevan Castilho (Tevo)" <estevan.cps@gmail.com>
+Date: Fri, 20 Dec 2024 00:05:37 +0000
+Subject: [PATCH] Fix Autoconf cross-compilation flag confusion
+
+Previously, we used the --host and --target arguments of the configure
+script to mean the build machine and the machine the package will run
+on, mirroring GPRBuild's own usage of the terminology. By convention,
+however, autoconf scripts usually take --build to mean the build
+machine, --host to mean the machine the package will run on and
+--target to mean the target of the toolchain being configured (if
+relevant). Our non-standard usage tends to cause problems with some
+distribution's packaging machinery (such as Void Linux's, or RHEL's),
+which often follow autoconf's conventions instead.
+
+When in Rome, do as the Romans do; hopefully this won't confuse
+GPRBuild users (too much)!
+
+Fixes #15
+---
+ Makefile.in | 6 +++---
+ aclocal.m4  | 4 ++--
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index e03b63c..880262b 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -16,9 +16,9 @@ GPRBUILD_OPTIONS=
+ PROCESSORS?=0
+ GPRBUILD=@gprbuild@ -j${PROCESSORS} -m ${GPRBUILD_OPTIONS}
+ GPRINSTALL=@gprinstall@
+-TARGET=@target@
+-TARGET_ALIAS=@target_alias@
+-HOST=@host@
++TARGET=@host@
++TARGET_ALIAS=@host_alias@
++HOST=@build@
+ 
+ # Compiler mode: one of "distrib", "Debug", "Production", "profile", "coverage"
+ MODE=@BUILD_TYPE@
+diff --git a/aclocal.m4 b/aclocal.m4
+index 39392bc..e17b338 100644
+--- a/aclocal.m4
++++ b/aclocal.m4
+@@ -91,8 +91,8 @@ project Lib is
+ end Lib;
+ EOF
+ 
+-      if test "x$host_alias" != "x$target_alias"; then
+-          $gprbuild --target=$target_alias -c -q -P$tmp/lib 2>/dev/null
++      if test "x$build_alias" != "x$host_alias"; then
++          $gprbuild --target=$host_alias -c -q -P$tmp/lib 2>/dev/null
+       else
+           $gprbuild -c -q -P$tmp/lib 2>/dev/null
+       fi
+-- 
+2.48.1
+
diff --git a/srcpkgs/xmlada/patches/install-cross-under-native-prefix.patch b/srcpkgs/xmlada/patches/install-cross-under-native-prefix.patch
new file mode 100644
index 00000000000000..41bb0c0e47fedf
--- /dev/null
+++ b/srcpkgs/xmlada/patches/install-cross-under-native-prefix.patch
@@ -0,0 +1,26 @@
+From f239d0499875a5dcadc2f9ea4586c4d933bbbcf1 Mon Sep 17 00:00:00 2001
+From: Estevan Castilho <tevo@riajuu.net>
+Date: Sat, 29 Mar 2025 22:19:53 +0000
+Subject: [PATCH] Do not install cross-compiled built artifacts under a
+ separate tree
+
+---
+ Makefile.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index 880262b..521e04f 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -40,7 +40,7 @@ ifeq (${HOST},${TARGET})
+ IPREFIX=${DESTDIR}${prefix}
+ else
+ GPROPTS+=--target=${TARGET_ALIAS}
+-IPREFIX=${DESTDIR}${prefix}/${TARGET_ALIAS}
++IPREFIX=${DESTDIR}${prefix}
+ endif
+ 
+ ifdef RTS
+-- 
+2.48.1
+
diff --git a/srcpkgs/xmlada/template b/srcpkgs/xmlada/template
new file mode 100644
index 00000000000000..f678c6cb3cd7dc
--- /dev/null
+++ b/srcpkgs/xmlada/template
@@ -0,0 +1,36 @@
+# Template file for 'xmlada'
+pkgname=xmlada
+version=25.0.0
+revision=1
+build_style=gnu-configure
+short_desc="XML parser for Ada"
+maintainer="Estevan Castilho <tevo@riajuu.net>"
+license="GPL-3.0-or-later WITH GCC-exception-3.1"
+homepage="https://github.com/AdaCore/xmlada"
+distfiles="https://github.com/AdaCore/xmlada/archive/refs/tags/v${version}.tar.gz"
+checksum="dbb5984a0931311c7a787a679ef4cfaeeedd357474a585dc170140ef2251dcca"
+
+hostmakedepends="gcc-ada autoconf gprbuild-bootstrap"
+
+configure_args+=" --enable-shared"
+
+do_configure() {
+	autoreconf -fi
+	./configure $configure_args
+}
+
+xmlada-devel_package() {
+	short_desc+=" - development files"
+	depends="${sourcepkg}>=${version}_${revision}"
+	pkg_install() {
+		cd "$DESTDIR"
+		# vmove isn't the biggest fan of globs on parent directories
+		for file in usr/lib/xmlada/*/*.{ali,a}; do
+			vmove "$file"
+		done
+		vmove "usr/lib/*.so"
+		vmove usr/share/gpr
+		vmove usr/include
+		vmove usr/share/examples/xmlada
+	}
+}

From 0cb57b8933ac2fa0e1cad3760c6542f7e921dd01 Mon Sep 17 00:00:00 2001
From: "Estevan Castilho (Tevo)" <estevan.cps@gmail.com>
Date: Fri, 20 Dec 2024 02:11:10 +0000
Subject: [PATCH 4/4] New package: gprbuild-25.0.0

---
 common/shlibs                                 |  1 +
 .../do-not-clear-gprbuild_options.patch       | 25 +++++++++++++++++++
 .../patches/resolve-libgpr-conflict.patch     | 25 +++++++++++++++++++
 srcpkgs/gprbuild/template                     | 24 ++++++++++++++++++
 4 files changed, 75 insertions(+)
 create mode 100644 srcpkgs/gprbuild/patches/do-not-clear-gprbuild_options.patch
 create mode 100644 srcpkgs/gprbuild/patches/resolve-libgpr-conflict.patch
 create mode 100644 srcpkgs/gprbuild/template

diff --git a/common/shlibs b/common/shlibs
index c99c9d1148a5d2..ad4ac4c42ac9bb 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -4547,3 +4547,4 @@ libxmlada_dom.so.18.0w xmlada-25.0.0_1
 libxmlada_sax.so.18.0w xmlada-25.0.0_1
 libxmlada_unicode.so.18.0w xmlada-25.0.0_1
 libxmlada_input_sources.so.18.0w xmlada-25.0.0_1
+libgnatprj.so libgpr-25.0.0_1
diff --git a/srcpkgs/gprbuild/patches/do-not-clear-gprbuild_options.patch b/srcpkgs/gprbuild/patches/do-not-clear-gprbuild_options.patch
new file mode 100644
index 00000000000000..a29c686db1805e
--- /dev/null
+++ b/srcpkgs/gprbuild/patches/do-not-clear-gprbuild_options.patch
@@ -0,0 +1,25 @@
+From 28fef2080e8b9f9b0c52b486b5f059aafbc8efb0 Mon Sep 17 00:00:00 2001
+From: Estevan Castilho <tevo@riajuu.net>
+Date: Sat, 29 Mar 2025 23:19:47 +0000
+Subject: [PATCH] Do not clear GPRBUILD_OPTIONS if it has been set
+
+---
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index aa5a175c..e8993e07 100644
+--- a/Makefile
++++ b/Makefile
+@@ -75,7 +75,7 @@ endif
+ LIBGPR_OS = $(if $(findstring linux,$(TARGET)),-XOS=UNIX)
+ 
+ # Used to pass extra options to GPRBUILD, like -d for instance
+-GPRBUILD_OPTIONS=
++GPRBUILD_OPTIONS:=
+ 
+ BUILDER=gprbuild -p -m $(GTARGET) $(RBD) -j${PROCESSORS} -XBUILD=${BUILD} ${GPRBUILD_OPTIONS}
+ LIB_INSTALLER=gprinstall -p -f --target=$(TARGET) $(RBD) "--prefix=${prefix}"
+-- 
+2.48.1
+
diff --git a/srcpkgs/gprbuild/patches/resolve-libgpr-conflict.patch b/srcpkgs/gprbuild/patches/resolve-libgpr-conflict.patch
new file mode 100644
index 00000000000000..fbc3ecea39e302
--- /dev/null
+++ b/srcpkgs/gprbuild/patches/resolve-libgpr-conflict.patch
@@ -0,0 +1,25 @@
+From 52238495d997432ecf6bd811977f9165ad3fb765 Mon Sep 17 00:00:00 2001
+From: Estevan Castilho <tevo@riajuu.net>
+Date: Sun, 30 Mar 2025 03:52:52 +0000
+Subject: [PATCH] Resolve .so conflict with gRPC
+
+---
+ gpr/gpr.gpr | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/gpr/gpr.gpr b/gpr/gpr.gpr
+index da6b0a08..67122de7 100644
+--- a/gpr/gpr.gpr
++++ b/gpr/gpr.gpr
+@@ -38,7 +38,7 @@ library project GPR is
+ 
+    for Source_Dirs use ("src");
+ 
+-   for Library_Name use "gpr";
++   for Library_Name use "gnatprj";
+    for Object_Dir use "libobj/" & Bld & "/" & Gnat_Lib_Type;
+    for Library_Dir use "lib/" & Bld & "/" & Gnat_Lib_Type;
+ 
+-- 
+2.48.1
+
diff --git a/srcpkgs/gprbuild/template b/srcpkgs/gprbuild/template
new file mode 100644
index 00000000000000..d124967ef35a37
--- /dev/null
+++ b/srcpkgs/gprbuild/template
@@ -0,0 +1,24 @@
+# Template file for 'gprbuild'
+pkgname=gprbuild
+version=25.0.0
+revision=1
+build_style=gnu-configure
+short_desc="Advanced build system for multi-language programs"
+maintainer="Estevan Castilho <tevo@riajuu.net>"
+license=GPL-3.0-or-later
+homepage="https://github.com/AdaCore/gprbuild"
+distfiles="https://github.com/AdaCore/gprbuild/archive/refs/tags/v${version}.tar.gz"
+checksum="d12f94c1ec0b6e219f6b162f71f57129d22426e7798092f5f85b9ec2cc818bf1"
+
+hostmakedepends="gcc-ada gprbuild-bootstrap which"
+makedepends="xmlada-devel"
+depends="gprconfig_kb"
+
+make_build_target="all"
+make_install_target="install"
+
+export GPR_PROJECT_PATH="$XBPS_CROSS_BASE/usr/share/gpr"
+
+do_configure() {
+    make prefix="$DESTDIR/usr" TARGET="$($CC -dumpmachine)" setup
+}

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PR PATCH] [Updated] New package: gprbuild-25.0.0
  2024-12-21  1:55 [PR PATCH] New package: gprbuild-25.0.0 Tevo45
                   ` (13 preceding siblings ...)
  2025-03-30 18:43 ` [PR PATCH] [Updated] " Tevo45
@ 2025-03-30 19:05 ` Tevo45
  2025-03-30 19:06 ` Tevo45
                   ` (2 subsequent siblings)
  17 siblings, 0 replies; 19+ messages in thread
From: Tevo45 @ 2025-03-30 19:05 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1379 bytes --]

There is an updated pull request by Tevo45 against master on the void-packages repository

https://github.com/Tevo45/void-packages gprbuild
https://github.com/void-linux/void-packages/pull/53605

New package: gprbuild-25.0.0
<!-- Uncomment relevant sections and delete options which are not applicable -->

GPRbuild is a multi-language build system commonly found in Ada projects. Changes include xmlada and gprconfig_kb, both dependencies of gprbuild, as well as libgpr, an optional library component. Lightly tested, but should receive some more usage in the coming days.

Closes #45421

#### Testing the changes
- I tested the changes in this PR: **briefly**

#### New package
- This new package conforms to the [package requirements](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#package-requirements): **YES**

<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
#### Local build testing
- I built this PR locally for my native architecture, (x86_64-glibc)



A patch file from https://github.com/void-linux/void-packages/pull/53605.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gprbuild-53605.patch --]
[-- Type: text/x-diff, Size: 27642 bytes --]

From 68c7a543162c731d14fb974f745b1ff440c54d9f Mon Sep 17 00:00:00 2001
From: "Estevan Castilho (Tevo)" <estevan.cps@gmail.com>
Date: Sat, 21 Dec 2024 01:42:44 +0000
Subject: [PATCH 1/4] New package: gprconfig_kb-25.0.0

---
 .../add-arm-v7l-and-musl-targets.patch        | 366 ++++++++++++++++++
 srcpkgs/gprconfig_kb/template                 |  16 +
 2 files changed, 382 insertions(+)
 create mode 100644 srcpkgs/gprconfig_kb/patches/add-arm-v7l-and-musl-targets.patch
 create mode 100644 srcpkgs/gprconfig_kb/template

diff --git a/srcpkgs/gprconfig_kb/patches/add-arm-v7l-and-musl-targets.patch b/srcpkgs/gprconfig_kb/patches/add-arm-v7l-and-musl-targets.patch
new file mode 100644
index 00000000000000..ca1601c5e7fa05
--- /dev/null
+++ b/srcpkgs/gprconfig_kb/patches/add-arm-v7l-and-musl-targets.patch
@@ -0,0 +1,366 @@
+From b7dc6bc873aaf8809b511b2110286e5978a888ce Mon Sep 17 00:00:00 2001
+From: Estevan Castilho <tevo@riajuu.net>
+Date: Sun, 30 Mar 2025 17:17:52 +0000
+Subject: [PATCH] Add aarch64-linux-musl, arm(v7l)?-linux-(gnu|musl)eabi(hf)?
+
+---
+ db/compilers.xml |  24 +++----
+ db/cross.xml     |   4 +-
+ db/linker.xml    | 161 +++++++++++++++++++++++++++++++++++++++++++++--
+ 3 files changed, 169 insertions(+), 20 deletions(-)
+
+diff --git a/db/compilers.xml b/db/compilers.xml
+index 185ca031..59e8e407 100644
+--- a/db/compilers.xml
++++ b/db/compilers.xml
+@@ -20,7 +20,7 @@
+   <!--    GCC 3.x & 4.x (not for GNAT Pro)-->
+   <compiler_description>
+     <name>GCC</name>
+-    <executable prefix="1">(.*-wrs-.*|.*-sysgo.*|.*-elf-.*|.*-eabi-.*|.*-eabispe-.*|avr-.*|.*-elinos-linux.*|.*-linux-gnu-|.*mingw32.*|.*-xcoff-.*|.*linux-android.*|arm-linux-gnueabi-|arm-linux-gnueabihf-|e500v2-gnu-linux-|powerpc-.*-linux.*-|.*-darwin.*-|.*-freebsd.*)?gcc(-\d+)?</executable>
++    <executable prefix="1">(.*-wrs-.*|.*-sysgo.*|.*-elf-.*|.*-eabi-.*|.*-eabispe-.*|avr-.*|.*-elinos-linux.*|.*-linux-(gnu|musl)-|.*mingw32.*|.*-xcoff-.*|.*linux-android.*|arm.*-linux-(gnu|musl)eabi-|arm.*-linux-(gnu|musl)eabihf-|e500v2-gnu-linux-|powerpc-.*-linux.*-|.*-darwin.*-|.*-freebsd.*)?gcc(-\d+)?</executable>
+     <version>
+       <external>$EXEC -v</external>
+       <nogrep regexp="for GNAT Pro"></nogrep>
+@@ -36,7 +36,7 @@
+   <!--    GCC for GNAT Pro 3.x & 4.x -->
+   <compiler_description>
+     <name>GCC_Pro</name>
+-    <executable prefix="1">(.*-wrs-.*|.*-sysgo.*|.*-elf-.*|.*-eabi-.*|.*-eabispe-.*|avr-.*|.*-elinos-linux.*|.*-linux-gnu-|.*mingw32.*|.*-xcoff-.*|.*linux-android.*|arm-linux-gnueabi-|arm-linux-gnueabihf-|e500v2-gnu-linux-|powerpc-.*-linux.*-|.*-darwin.*-|.*-fastos.*|.*-freebsd.*|.*-qnx.*|.*-rtems.*)?gcc</executable>
++    <executable prefix="1">(.*-wrs-.*|.*-sysgo.*|.*-elf-.*|.*-eabi-.*|.*-eabispe-.*|avr-.*|.*-elinos-linux.*|.*-linux-(gnu|musl)-|.*mingw32.*|.*-xcoff-.*|.*linux-android.*|arm.*-linux-(gnu|musl)eabi-|arm.*-linux-(gnu|musl)eabihf-|e500v2-gnu-linux-|powerpc-.*-linux.*-|.*-darwin.*-|.*-fastos.*|.*-freebsd.*|.*-qnx.*|.*-rtems.*)?gcc</executable>
+     <version>
+       <external>${PREFIX}gcc -v</external>
+ 
+@@ -121,7 +121,7 @@
+   <!--  G++ compilers for GNAT Pro  -->
+   <compiler_description>
+     <name>G++_Pro</name>
+-    <executable prefix="1">(.*-elf-.*|.*-eabi-.*|.*-wrs-.*|.*-fastos.*|.*-freebsd.*|.*-linux-gnu.*-|.*-linux-android.*|.*-rtems.*)?g\+\+</executable>
++    <executable prefix="1">(.*-elf-.*|.*-eabi-.*|.*-wrs-.*|.*-fastos.*|.*-freebsd.*|.*-linux-(gnu|musl).*-|.*-linux-android.*|.*-rtems.*)?g\+\+</executable>
+     <version>
+       <external>${PREFIX}g++ -v</external>
+ 
+@@ -138,7 +138,7 @@
+   <!--  Assembler (not for GNAT Pro) -->
+   <compiler_description>
+     <name>GCC-ASM</name>
+-    <executable prefix="1">(.*-wrs-.*|.*-sysgo.*|.*-elf-.*|.*-eabi-.*|.*-eabispe-.*|avr-.*|.*-elinos-linux.*|.*-linux-gnu-|.*mingw32.*|.*-xcoff-.*|.*linux-android.*|arm-linux-gnueabi-|arm-linux-gnueabihf-|e500v2-gnu-linux-|powerpc-.*-linux.*-|.*-darwin.*-|.*-fastos.*|.*-freebsd.*|.*-qnx.*|.*-rtems.*)?gcc(-\d+)?</executable>
++    <executable prefix="1">(.*-wrs-.*|.*-sysgo.*|.*-elf-.*|.*-eabi-.*|.*-eabispe-.*|avr-.*|.*-elinos-linux.*|.*-linux-(gnu|musl)-|.*mingw32.*|.*-xcoff-.*|.*linux-android.*|arm.*-linux-(gnu|musl)eabi-|arm.*-linux-(gnu|musl)eabihf-|e500v2-gnu-linux-|powerpc-.*-linux.*-|.*-darwin.*-|.*-fastos.*|.*-freebsd.*|.*-qnx.*|.*-rtems.*)?gcc(-\d+)?</executable>
+     <version>
+       <external>$EXEC -v</external>
+       <nogrep regexp="for GNAT Pro"></nogrep>
+@@ -154,7 +154,7 @@
+   <!--  Assembler (for GNAT Pro) -->
+   <compiler_description>
+     <name>GCC-ASM_Pro</name>
+-    <executable prefix="1">(.*-wrs-.*|.*-sysgo.*|.*-elf-.*|.*-eabi-.*|.*-eabispe-.*|avr-.*|.*-elinos-linux.*|.*-linux-gnu-|.*mingw32.*|.*-xcoff-.*|.*linux-android.*|arm-linux-gnueabi-|arm-linux-gnueabihf-|e500v2-gnu-linux-|powerpc-.*-linux.*-|.*-darwin.*-|.*-.*fastos.*|.*-freebsd.*|.*-qnx.*|.*-rtems.*)?gcc</executable>
++    <executable prefix="1">(.*-wrs-.*|.*-sysgo.*|.*-elf-.*|.*-eabi-.*|.*-eabispe-.*|avr-.*|.*-elinos-linux.*|.*-linux-(gnu|musl)-|.*mingw32.*|.*-xcoff-.*|.*linux-android.*|arm.*-linux-(gnu|musl)eabi-|arm.*-linux-(gnu|musl)eabihf-|e500v2-gnu-linux-|powerpc-.*-linux.*-|.*-darwin.*-|.*-.*fastos.*|.*-freebsd.*|.*-qnx.*|.*-rtems.*)?gcc</executable>
+     <version>
+       <external>${PREFIX}gcc -v</external>
+       <grep regexp="^gcc \S+ (\S+) \d+ (\(prerelease\) )?\(?for GNAT Pro" group="1"></grep>
+@@ -169,7 +169,7 @@
+   <!--  Binary image -->
+   <compiler_description>
+     <name>LD</name>
+-    <executable prefix="1">(.*-wrs.*-|.*-sysgo.*-|.*-elf.*-|.*-eabi.*-|.*-eabispe.*-|avr.*-|.*-elinos-linux.*-|.*-linux-gnu-|.*mingw32.*-|.*-xcoff.*-|.*linux-android.*|arm-linux-gnueabi-|arm-linux-gnueabihf-|e500v2-gnu-linux-|powerpc-.*-linux.*-|.*-darwin.*-|.*-fastos.*|.*-freebsd.*|.*-qnx.*-|.*-rtems.*-)?ld</executable>
++    <executable prefix="1">(.*-wrs.*-|.*-sysgo.*-|.*-elf.*-|.*-eabi.*-|.*-eabispe.*-|avr.*-|.*-elinos-linux.*-|.*-linux-(gnu|musl)-|.*mingw32.*-|.*-xcoff.*-|.*linux-android.*|arm.*-linux-(gnu|musl)eabi-|arm.*-linux-(gnu|musl)eabihf-|e500v2-gnu-linux-|powerpc-.*-linux.*-|.*-darwin.*-|.*-fastos.*|.*-freebsd.*|.*-qnx.*-|.*-rtems.*-)?ld</executable>
+     <version>
+       <external>${PREFIX}ld -v</external>
+       <grep regexp="^(GNU ld.*|LLD) (\S+)" group="2"></grep>
+@@ -189,7 +189,7 @@
+    -->
+   <compiler_description>
+     <name>GNAT</name>
+-    <executable prefix="1">(.*-wrs-.*|.*-sysgo.*|.*-elf-.*|.*-eabi-.*|.*-eabispe-.*|avr-.*|.*-elinos-linux.*|.*-linux-gnu-|.*mingw32.*|.*-xcoff-.*|.*linux-android.*|arm-linux-gnueabi-|arm-linux-gnueabihf-|e500v2-gnu-linux-|powerpc-.*-linux.*-|.*-darwin.*-|.*-fastos.*|.*-freebsd.*|.*-qnx.*|.*-rtems.*)?gnatls</executable>
++    <executable prefix="1">(.*-wrs-.*|.*-sysgo.*|.*-elf-.*|.*-eabi-.*|.*-eabispe-.*|avr-.*|.*-elinos-linux.*|.*-linux-(gnu|musl)-|.*mingw32.*|.*-xcoff-.*|.*linux-android.*|arm.*-linux-(gnu|musl)eabi-|arm.*-linux-(gnu|musl)eabihf-|e500v2-gnu-linux-|powerpc-.*-linux.*-|.*-darwin.*-|.*-fastos.*|.*-freebsd.*|.*-qnx.*|.*-rtems.*)?gnatls</executable>
+     <version>
+       <external>${PREFIX}gnatls -v --version</external>
+       <grep regexp="^GNATLS.+?(\d+(\.\d+)?)" group="1"></grep>
+@@ -262,7 +262,7 @@
+ 
+   <compiler_description>
+     <name>GNAT_LLVM</name>
+-    <executable prefix="1">((.*-elf-|.*-linux-gnu-)?llvm-)gnatls</executable>
++    <executable prefix="1">((.*-elf-|.*-linux-(gnu|musl)-)?llvm-)gnatls</executable>
+     <version>
+       <external>${PREFIX}gnatls -v</external>
+       <grep regexp="^GNATLS.+?(\d+(\.\d+)?)" group="1"></grep>
+@@ -287,7 +287,7 @@
+ 
+   <compiler_description>
+     <name>GNAT_LLVM_ASM</name>
+-    <executable prefix="1">((.*-elf-|.*-linux-gnu-)?llvm-)gcc</executable>
++    <executable prefix="1">((.*-elf-|.*-linux-(gnu|musl)-)?llvm-)gcc</executable>
+     <version>
+       <external>$EXEC -v</external>
+       <grep regexp="^llvm-.*gcc.+GNAT Pro (\S+)" group="1"></grep>
+@@ -532,7 +532,7 @@
+   <!-- Clang C compiler -->
+   <compiler_description>
+     <name>CLANG-C</name>
+-    <executable prefix="1">((.*-elf-|.*-linux-gnu-)?)clang</executable>
++    <executable prefix="1">((.*-elf-|.*-linux-(gnu|musl)-)?)clang</executable>
+     <version>
+       <external>$EXEC -v</external>
+       <grep regexp=".*(LLVM|clang) version ([0-9.]*)" group="2"></grep>
+@@ -547,7 +547,7 @@
+   <!-- Clang++ C++ compiler -->
+   <compiler_description>
+     <name>CLANG-C++</name>
+-    <executable prefix="1">((.*-elf-|.*-linux-gnu-)?)clang\+\+</executable>
++    <executable prefix="1">((.*-elf-|.*-linux-(gnu|musl)-)?)clang\+\+</executable>
+     <version>
+       <external>$EXEC -v</external>
+       <grep regexp=".*(LLVM|clang) version ([0-9.]*)" group="2"></grep>
+@@ -562,7 +562,7 @@
+   <!-- Clang assembler -->
+   <compiler_description>
+     <name>CLANG-ASM</name>
+-    <executable prefix="1">((.*-elf-|.*-linux-gnu-)?)clang</executable>
++    <executable prefix="1">((.*-elf-|.*-linux-(gnu|musl)-)?)clang</executable>
+     <version>
+       <external>$EXEC -v</external>
+       <grep regexp=".*(LLVM|clang) version ([0-9.]*)" group="2"></grep>
+diff --git a/db/cross.xml b/db/cross.xml
+index 1c7a5d41..d4165d2a 100644
+--- a/db/cross.xml
++++ b/db/cross.xml
+@@ -44,8 +44,8 @@
+        <target name="^.*-qnx[0-9]*$" />
+        <target name="^.*-rtems.*$" />
+        <target name="^arm-linux-androideabi" />
+-       <target name="^arm-linux-gnueabi" />
+-       <target name="^arm-linux-gnueabihf" />
++       <target name="^arm.*-linux-(gnu|musl)eabi" />
++       <target name="^arm.*-linux-(gnu|musl)eabihf" />
+        <target name="^aarch64-linux-android" />
+        <target name="^aarch64-.*linux-gnu" />
+        <target name="^e500v2-gnu-linux" />
+diff --git a/db/linker.xml b/db/linker.xml
+index c83f3051..acb27a11 100644
+--- a/db/linker.xml
++++ b/db/linker.xml
+@@ -162,10 +162,10 @@
+   <configuration>
+     <!-- aarch64-linux - native compiler. -->
+     <targets>
+-      <target name="^aarch64-linux-gnu$" />
++      <target name="^aarch64-linux-(gnu|musl)$" />
+     </targets>
+     <hosts>
+-      <host name="^aarch64-linux-gnu$" />
++      <host name="^aarch64-linux-(gnu|musl)$" />
+     </hosts>
+     <config>
+    for Object_Lister use ("nm", "-g");
+@@ -179,7 +179,7 @@
+   </configuration>
+ 
+   <configuration>
+-    <!-- aarch64-linux - cross compiler. -->
++    <!-- aarch64-linux-gnu - cross compiler. -->
+     <targets>
+       <target name="^aarch64-.*linux-gnu$" />
+     </targets>
+@@ -197,6 +197,25 @@
+     </config>
+   </configuration>
+ 
++  <configuration>
++    <!-- aarch64-linux-musl - cross compiler. -->
++    <targets>
++      <target name="^aarch64-.*linux-musl$" />
++    </targets>
++    <hosts negate="true">
++      <host name="^aarch64-linux-musl$" />
++    </hosts>
++    <config>
++      for Object_Lister use ("${PREFIX(C)}nm", "-g");
++      for Object_Lister_Matcher use " [TDRBSG] (.*)";
++
++      package Linker is
++      for Export_File_Format use "GNU";
++      for Export_File_Switch use "-Wl,--version-script=";
++      end Linker;
++    </config>
++  </configuration>
++
+   <configuration>
+     <targets>
+       <target name="^arm-linux-gnueabi$" />
+@@ -227,6 +246,96 @@
+     </config>
+   </configuration>
+ 
++  <configuration>
++    <targets>
++      <target name="^armv7l-linux-gnueabi$" />
++    </targets>
++    <config>
++   for Object_Lister use ("armv7l-linux-gnueabi-nm", "-g");
++   for Object_Lister_Matcher use " [TDSR] (.*)";
++
++   package Linker is
++      for Export_File_Format use "GNU";
++      for Export_File_Switch use "-Wl,--version-script=";
++   end Linker;
++    </config>
++  </configuration>
++
++  <configuration>
++    <targets>
++      <target name="^armv7l-linux-gnueabihf$" />
++    </targets>
++    <config>
++   for Object_Lister use ("armv7l-linux-gnueabihf-nm", "-g");
++   for Object_Lister_Matcher use " [TDRBSG] (.*)";
++
++   package Linker is
++      for Export_File_Format use "GNU";
++      for Export_File_Switch use "-Wl,--version-script=";
++   end Linker;
++    </config>
++  </configuration>
++
++  <configuration>
++    <targets>
++      <target name="^arm-linux-musleabi$" />
++    </targets>
++    <config>
++   for Object_Lister use ("arm-linux-musleabi-nm", "-g");
++   for Object_Lister_Matcher use " [TDSR] (.*)";
++
++   package Linker is
++      for Export_File_Format use "GNU";
++      for Export_File_Switch use "-Wl,--version-script=";
++   end Linker;
++    </config>
++  </configuration>
++
++  <configuration>
++    <targets>
++      <target name="^arm-linux-musleabihf$" />
++    </targets>
++    <config>
++   for Object_Lister use ("arm-linux-musleabihf-nm", "-g");
++   for Object_Lister_Matcher use " [TDRBSG] (.*)";
++
++   package Linker is
++      for Export_File_Format use "GNU";
++      for Export_File_Switch use "-Wl,--version-script=";
++   end Linker;
++    </config>
++  </configuration>
++
++  <configuration>
++    <targets>
++      <target name="^armv7l-linux-musleabi$" />
++    </targets>
++    <config>
++   for Object_Lister use ("armv7l-linux-musleabi-nm", "-g");
++   for Object_Lister_Matcher use " [TDSR] (.*)";
++
++   package Linker is
++      for Export_File_Format use "GNU";
++      for Export_File_Switch use "-Wl,--version-script=";
++   end Linker;
++    </config>
++  </configuration>
++
++  <configuration>
++    <targets>
++      <target name="^armv7l-linux-musleabihf$" />
++    </targets>
++    <config>
++   for Object_Lister use ("armv7l-linux-musleabihf-nm", "-g");
++   for Object_Lister_Matcher use " [TDRBSG] (.*)";
++
++   package Linker is
++      for Export_File_Format use "GNU";
++      for Export_File_Switch use "-Wl,--version-script=";
++   end Linker;
++    </config>
++  </configuration>
++
+   <configuration>
+     <targets>
+       <target name="^powerpc-.*linux.*$" />
+@@ -676,6 +785,30 @@
+     </config>
+   </configuration>
+ 
++  <configuration>
++    <targets>
++      <target name="^armv7l-linux-gnueabi$" />
++    </targets>
++    <config>
++   for Archive_Builder  use ("armv7l-linux-gnueabi-ar", "cr");
++   for Archive_Builder_Append_Option use ("q");
++   for Archive_Indexer  use ("armv7l-linux-gnueabi-ranlib");
++   for Archive_Suffix   use ".a";
++    </config>
++  </configuration>
++
++  <configuration>
++    <targets>
++      <target name="^armv7l-linux-gnueabihf$" />
++    </targets>
++    <config>
++   for Archive_Builder  use ("armv7l-linux-gnueabihf-ar", "cr");
++   for Archive_Builder_Append_Option use ("q");
++   for Archive_Indexer  use ("armv7l-linux-gnueabihf-ranlib");
++   for Archive_Suffix   use ".a";
++    </config>
++  </configuration>
++
+   <configuration>
+     <!-- aarch64-android - cross compiler. -->
+     <targets>
+@@ -692,10 +825,10 @@
+   <configuration>
+     <!-- aarch64-linux - native compiler. -->
+     <targets>
+-      <target name="^aarch64-linux-gnu$" />
++      <target name="^aarch64-linux-(gnu|musl)$" />
+     </targets>
+     <hosts>
+-      <host name="^aarch64-linux-gnu$" />
++      <host name="^aarch64-linux-(gnu|musl)$" />
+     </hosts>
+     <config>
+    for Archive_Builder  use ("ar", "cr");
+@@ -706,7 +839,7 @@
+   </configuration>
+ 
+   <configuration>
+-    <!-- aarch64-linux - cross compiler. -->
++    <!-- aarch64-linux-gnu - cross compiler. -->
+     <targets>
+       <target name="^aarch64-.*linux-gnu$" />
+     </targets>
+@@ -721,6 +854,22 @@
+     </config>
+   </configuration>
+ 
++  <configuration>
++    <!-- aarch64-linux-musl - cross compiler. -->
++    <targets>
++      <target name="^aarch64-.*linux-musl$" />
++    </targets>
++    <hosts negate="true">
++      <host name="^aarch64-linux-musl$" />
++    </hosts>
++    <config>
++   for Archive_Builder  use ("aarch64-linux-musl-ar", "cr");
++   for Archive_Builder_Append_Option use ("q");
++   for Archive_Indexer  use ("aarch64-linux-musl-ranlib");
++   for Archive_Suffix   use ".a";
++    </config>
++  </configuration>
++
+   <configuration>
+     <targets>
+       <target name="^aarch64-thales-fastos$" />
+-- 
+2.48.1
+
diff --git a/srcpkgs/gprconfig_kb/template b/srcpkgs/gprconfig_kb/template
new file mode 100644
index 00000000000000..c8e1ed701ccbe2
--- /dev/null
+++ b/srcpkgs/gprconfig_kb/template
@@ -0,0 +1,16 @@
+# Template file for 'gprconfig_kb'
+pkgname=gprconfig_kb
+version=25.0.0
+revision=1
+short_desc="Knowledge base for configuring GPR toolchains"
+maintainer="Estevan Castilho <tevo@riajuu.net>"
+license=GPL-3.0-or-later
+homepage="https://github.com/AdaCore/gprconfig_kb"
+distfiles="https://github.com/AdaCore/gprconfig_kb/archive/refs/tags/v${version}.tar.gz"
+checksum="802e6d38a3b110897924a9c16e143cb86360f2dde94bb5b9144c7c391e37b121"
+
+do_install() {
+	destination="$DESTDIR/usr/share/gprconfig"
+	mkdir -p "$destination"
+	cp -rv db/* "$destination"
+}

From f0bc19cb8ad9eb97dba04d6c24bb48e2a451a5f7 Mon Sep 17 00:00:00 2001
From: "Estevan Castilho (Tevo)" <estevan.cps@gmail.com>
Date: Fri, 20 Dec 2024 02:08:39 +0000
Subject: [PATCH 2/4] New package: gprbuild-bootstrap-25.0.0

---
 srcpkgs/gprbuild-bootstrap/template | 42 +++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)
 create mode 100644 srcpkgs/gprbuild-bootstrap/template

diff --git a/srcpkgs/gprbuild-bootstrap/template b/srcpkgs/gprbuild-bootstrap/template
new file mode 100644
index 00000000000000..10d5985ec3c354
--- /dev/null
+++ b/srcpkgs/gprbuild-bootstrap/template
@@ -0,0 +1,42 @@
+# Template file for 'gprbuild-bootstrap'
+pkgname=gprbuild-bootstrap
+version=25.0.0
+revision=1
+short_desc="Advanced build system for multi-language programs - bootstrap package"
+maintainer="Estevan Castilho <tevo@riajuu.net>"
+license=GPL-3.0-or-later
+homepage="https://github.com/AdaCore/gprbuild"
+distfiles="
+	https://github.com/AdaCore/gprbuild/archive/refs/tags/v${version}.tar.gz>gprbuild-${version}.tar.gz
+	https://github.com/AdaCore/xmlada/archive/refs/tags/v${version}.tar.gz>xmlada-${version}.tar.gz"
+checksum="
+	d12f94c1ec0b6e219f6b162f71f57129d22426e7798092f5f85b9ec2cc818bf1
+	dbb5984a0931311c7a787a679ef4cfaeeedd357474a585dc170140ef2251dcca"
+
+nocross="This is only used by the bootstrap process to build the real gprbuild - it doesn't make much sense to cross-compile."
+
+hostmakedepends="gprconfig_kb gcc-ada"
+depends="gprconfig_kb"
+
+do_configure() {
+    # kludge to get the bootstrap to use our packaged gprconfig
+    # knowledge base - it expects the kb to be under db/, as on the
+    # source package
+    mkdir -p gprconfig_kb
+    ln -sf /usr/share/gprconfig gprconfig_kb/db
+}
+
+do_build() {
+	cd "gprbuild-${version}"
+	./bootstrap.sh \
+		--with-xmlada="../xmlada-${version}" \
+		--build
+}
+
+do_install() {
+	cd "gprbuild-${version}"
+	./bootstrap.sh \
+		--prefix="$DESTDIR/usr" \
+		--install
+    rm -rf "$DESTDIR/usr/share/gprconfig"
+}

From b17bc833ee47563768a183234e0a29dfc0871239 Mon Sep 17 00:00:00 2001
From: "Estevan Castilho (Tevo)" <estevan.cps@gmail.com>
Date: Fri, 20 Dec 2024 02:10:55 +0000
Subject: [PATCH 3/4] New package: xmlada-25.0.0

---
 common/shlibs                                 |  5 ++
 srcpkgs/xmlada-devel                          |  1 +
 .../patches/fix-autoconf-flag-confusion.patch | 59 +++++++++++++++++++
 .../install-cross-under-native-prefix.patch   | 26 ++++++++
 srcpkgs/xmlada/template                       | 36 +++++++++++
 5 files changed, 127 insertions(+)
 create mode 120000 srcpkgs/xmlada-devel
 create mode 100644 srcpkgs/xmlada/patches/fix-autoconf-flag-confusion.patch
 create mode 100644 srcpkgs/xmlada/patches/install-cross-under-native-prefix.patch
 create mode 100644 srcpkgs/xmlada/template

diff --git a/common/shlibs b/common/shlibs
index 0bd2d1fb7e4696..c99c9d1148a5d2 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -4542,3 +4542,8 @@ libmaliit-plugins.so.2 maliit-keyboard-2.3.1_1
 libSDL3.so.0 SDL3-3.2.2_1
 libiconv.so.2 libiconv-1.18_1
 libcharset.so.1 libiconv-1.18_1
+libxmlada_schema.so.18.0w xmlada-25.0.0_1
+libxmlada_dom.so.18.0w xmlada-25.0.0_1
+libxmlada_sax.so.18.0w xmlada-25.0.0_1
+libxmlada_unicode.so.18.0w xmlada-25.0.0_1
+libxmlada_input_sources.so.18.0w xmlada-25.0.0_1
diff --git a/srcpkgs/xmlada-devel b/srcpkgs/xmlada-devel
new file mode 120000
index 00000000000000..2f2d27d92b8ead
--- /dev/null
+++ b/srcpkgs/xmlada-devel
@@ -0,0 +1 @@
+xmlada
\ No newline at end of file
diff --git a/srcpkgs/xmlada/patches/fix-autoconf-flag-confusion.patch b/srcpkgs/xmlada/patches/fix-autoconf-flag-confusion.patch
new file mode 100644
index 00000000000000..ed43b0051f9e12
--- /dev/null
+++ b/srcpkgs/xmlada/patches/fix-autoconf-flag-confusion.patch
@@ -0,0 +1,59 @@
+From a8be28e067456dc2c700719d09ab08e20fccc0ea Mon Sep 17 00:00:00 2001
+From: "Estevan Castilho (Tevo)" <estevan.cps@gmail.com>
+Date: Fri, 20 Dec 2024 00:05:37 +0000
+Subject: [PATCH] Fix Autoconf cross-compilation flag confusion
+
+Previously, we used the --host and --target arguments of the configure
+script to mean the build machine and the machine the package will run
+on, mirroring GPRBuild's own usage of the terminology. By convention,
+however, autoconf scripts usually take --build to mean the build
+machine, --host to mean the machine the package will run on and
+--target to mean the target of the toolchain being configured (if
+relevant). Our non-standard usage tends to cause problems with some
+distribution's packaging machinery (such as Void Linux's, or RHEL's),
+which often follow autoconf's conventions instead.
+
+When in Rome, do as the Romans do; hopefully this won't confuse
+GPRBuild users (too much)!
+
+Fixes #15
+---
+ Makefile.in | 6 +++---
+ aclocal.m4  | 4 ++--
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index e03b63c..880262b 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -16,9 +16,9 @@ GPRBUILD_OPTIONS=
+ PROCESSORS?=0
+ GPRBUILD=@gprbuild@ -j${PROCESSORS} -m ${GPRBUILD_OPTIONS}
+ GPRINSTALL=@gprinstall@
+-TARGET=@target@
+-TARGET_ALIAS=@target_alias@
+-HOST=@host@
++TARGET=@host@
++TARGET_ALIAS=@host_alias@
++HOST=@build@
+ 
+ # Compiler mode: one of "distrib", "Debug", "Production", "profile", "coverage"
+ MODE=@BUILD_TYPE@
+diff --git a/aclocal.m4 b/aclocal.m4
+index 39392bc..e17b338 100644
+--- a/aclocal.m4
++++ b/aclocal.m4
+@@ -91,8 +91,8 @@ project Lib is
+ end Lib;
+ EOF
+ 
+-      if test "x$host_alias" != "x$target_alias"; then
+-          $gprbuild --target=$target_alias -c -q -P$tmp/lib 2>/dev/null
++      if test "x$build_alias" != "x$host_alias"; then
++          $gprbuild --target=$host_alias -c -q -P$tmp/lib 2>/dev/null
+       else
+           $gprbuild -c -q -P$tmp/lib 2>/dev/null
+       fi
+-- 
+2.48.1
+
diff --git a/srcpkgs/xmlada/patches/install-cross-under-native-prefix.patch b/srcpkgs/xmlada/patches/install-cross-under-native-prefix.patch
new file mode 100644
index 00000000000000..41bb0c0e47fedf
--- /dev/null
+++ b/srcpkgs/xmlada/patches/install-cross-under-native-prefix.patch
@@ -0,0 +1,26 @@
+From f239d0499875a5dcadc2f9ea4586c4d933bbbcf1 Mon Sep 17 00:00:00 2001
+From: Estevan Castilho <tevo@riajuu.net>
+Date: Sat, 29 Mar 2025 22:19:53 +0000
+Subject: [PATCH] Do not install cross-compiled built artifacts under a
+ separate tree
+
+---
+ Makefile.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index 880262b..521e04f 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -40,7 +40,7 @@ ifeq (${HOST},${TARGET})
+ IPREFIX=${DESTDIR}${prefix}
+ else
+ GPROPTS+=--target=${TARGET_ALIAS}
+-IPREFIX=${DESTDIR}${prefix}/${TARGET_ALIAS}
++IPREFIX=${DESTDIR}${prefix}
+ endif
+ 
+ ifdef RTS
+-- 
+2.48.1
+
diff --git a/srcpkgs/xmlada/template b/srcpkgs/xmlada/template
new file mode 100644
index 00000000000000..f678c6cb3cd7dc
--- /dev/null
+++ b/srcpkgs/xmlada/template
@@ -0,0 +1,36 @@
+# Template file for 'xmlada'
+pkgname=xmlada
+version=25.0.0
+revision=1
+build_style=gnu-configure
+short_desc="XML parser for Ada"
+maintainer="Estevan Castilho <tevo@riajuu.net>"
+license="GPL-3.0-or-later WITH GCC-exception-3.1"
+homepage="https://github.com/AdaCore/xmlada"
+distfiles="https://github.com/AdaCore/xmlada/archive/refs/tags/v${version}.tar.gz"
+checksum="dbb5984a0931311c7a787a679ef4cfaeeedd357474a585dc170140ef2251dcca"
+
+hostmakedepends="gcc-ada autoconf gprbuild-bootstrap"
+
+configure_args+=" --enable-shared"
+
+do_configure() {
+	autoreconf -fi
+	./configure $configure_args
+}
+
+xmlada-devel_package() {
+	short_desc+=" - development files"
+	depends="${sourcepkg}>=${version}_${revision}"
+	pkg_install() {
+		cd "$DESTDIR"
+		# vmove isn't the biggest fan of globs on parent directories
+		for file in usr/lib/xmlada/*/*.{ali,a}; do
+			vmove "$file"
+		done
+		vmove "usr/lib/*.so"
+		vmove usr/share/gpr
+		vmove usr/include
+		vmove usr/share/examples/xmlada
+	}
+}

From 7860abb8a11e495ecade664863db35614e8b9675 Mon Sep 17 00:00:00 2001
From: "Estevan Castilho (Tevo)" <estevan.cps@gmail.com>
Date: Fri, 20 Dec 2024 02:11:10 +0000
Subject: [PATCH 4/4] New package: gprbuild-25.0.0

---
 common/shlibs                                 |  1 +
 .../patches/resolve-libgpr-conflict.patch     | 25 +++++++++++++++++++
 srcpkgs/gprbuild/template                     | 24 ++++++++++++++++++
 3 files changed, 50 insertions(+)
 create mode 100644 srcpkgs/gprbuild/patches/resolve-libgpr-conflict.patch
 create mode 100644 srcpkgs/gprbuild/template

diff --git a/common/shlibs b/common/shlibs
index c99c9d1148a5d2..ad4ac4c42ac9bb 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -4547,3 +4547,4 @@ libxmlada_dom.so.18.0w xmlada-25.0.0_1
 libxmlada_sax.so.18.0w xmlada-25.0.0_1
 libxmlada_unicode.so.18.0w xmlada-25.0.0_1
 libxmlada_input_sources.so.18.0w xmlada-25.0.0_1
+libgnatprj.so libgpr-25.0.0_1
diff --git a/srcpkgs/gprbuild/patches/resolve-libgpr-conflict.patch b/srcpkgs/gprbuild/patches/resolve-libgpr-conflict.patch
new file mode 100644
index 00000000000000..fbc3ecea39e302
--- /dev/null
+++ b/srcpkgs/gprbuild/patches/resolve-libgpr-conflict.patch
@@ -0,0 +1,25 @@
+From 52238495d997432ecf6bd811977f9165ad3fb765 Mon Sep 17 00:00:00 2001
+From: Estevan Castilho <tevo@riajuu.net>
+Date: Sun, 30 Mar 2025 03:52:52 +0000
+Subject: [PATCH] Resolve .so conflict with gRPC
+
+---
+ gpr/gpr.gpr | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/gpr/gpr.gpr b/gpr/gpr.gpr
+index da6b0a08..67122de7 100644
+--- a/gpr/gpr.gpr
++++ b/gpr/gpr.gpr
+@@ -38,7 +38,7 @@ library project GPR is
+ 
+    for Source_Dirs use ("src");
+ 
+-   for Library_Name use "gpr";
++   for Library_Name use "gnatprj";
+    for Object_Dir use "libobj/" & Bld & "/" & Gnat_Lib_Type;
+    for Library_Dir use "lib/" & Bld & "/" & Gnat_Lib_Type;
+ 
+-- 
+2.48.1
+
diff --git a/srcpkgs/gprbuild/template b/srcpkgs/gprbuild/template
new file mode 100644
index 00000000000000..d124967ef35a37
--- /dev/null
+++ b/srcpkgs/gprbuild/template
@@ -0,0 +1,24 @@
+# Template file for 'gprbuild'
+pkgname=gprbuild
+version=25.0.0
+revision=1
+build_style=gnu-configure
+short_desc="Advanced build system for multi-language programs"
+maintainer="Estevan Castilho <tevo@riajuu.net>"
+license=GPL-3.0-or-later
+homepage="https://github.com/AdaCore/gprbuild"
+distfiles="https://github.com/AdaCore/gprbuild/archive/refs/tags/v${version}.tar.gz"
+checksum="d12f94c1ec0b6e219f6b162f71f57129d22426e7798092f5f85b9ec2cc818bf1"
+
+hostmakedepends="gcc-ada gprbuild-bootstrap which"
+makedepends="xmlada-devel"
+depends="gprconfig_kb"
+
+make_build_target="all"
+make_install_target="install"
+
+export GPR_PROJECT_PATH="$XBPS_CROSS_BASE/usr/share/gpr"
+
+do_configure() {
+    make prefix="$DESTDIR/usr" TARGET="$($CC -dumpmachine)" setup
+}

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: New package: gprbuild-25.0.0
  2024-12-21  1:55 [PR PATCH] New package: gprbuild-25.0.0 Tevo45
                   ` (14 preceding siblings ...)
  2025-03-30 19:05 ` Tevo45
@ 2025-03-30 19:06 ` Tevo45
  2025-03-30 19:12 ` [PR PATCH] [Updated] " Tevo45
  2025-03-30 21:01 ` Tevo45
  17 siblings, 0 replies; 19+ messages in thread
From: Tevo45 @ 2025-03-30 19:06 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1453 bytes --]

New comment by Tevo45 on void-packages repository

https://github.com/void-linux/void-packages/pull/53605#issuecomment-2764701376

Comment:
Sorry for the long delay. I've removed the `libgpr*` subpackages, and also marked `gprbuild-bootstrap` as `nocross` since it doesn't make much sense to spend any effort getting that to cross-compile, as it only exists as a means to bootstrap the full GPRbuild itself. Other than that:

- Cross-compiling `x86_64-gnu` to `x86_64-musl` doesn't work, since `xmlada` ends up with a dependency on `glibc`; a native musl build works fine, however. It might be that `gprbuild` thinks both are same target and uses the native compiler, so we'd need to disambiguate that on `gprconfig_kb`, but I haven't looked into it too deeply yet.

- Cross-compiling to `armv7l` seems to produce a `xmlada` that doesn't install, complaining about "broken, unresolvable shlib"s to already packaged libraries:
```
xmlada-25.0.0_1: broken, unresolvable shlib `ld-linux-armhf.so.3'
xmlada-25.0.0_1: broken, unresolvable shlib `libc.so.6'
xmlada-25.0.0_1: broken, unresolvable shlib `libgcc_s.so.1'
xmlada-25.0.0_1: broken, unresolvable shlib `libgnat-13.so'
```

Besides those, cross-builds of `gprbuild` et. al. from `x86_64` to `aarch64`, `aarch64-musl`, `i686` and `armv6l` seem to work just fine. The patch adding `linux-*musl*` targets to `gprconfig_kb` might be worthwhile submitting upstream, I'll look into that later.

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PR PATCH] [Updated] New package: gprbuild-25.0.0
  2024-12-21  1:55 [PR PATCH] New package: gprbuild-25.0.0 Tevo45
                   ` (15 preceding siblings ...)
  2025-03-30 19:06 ` Tevo45
@ 2025-03-30 19:12 ` Tevo45
  2025-03-30 21:01 ` Tevo45
  17 siblings, 0 replies; 19+ messages in thread
From: Tevo45 @ 2025-03-30 19:12 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1379 bytes --]

There is an updated pull request by Tevo45 against master on the void-packages repository

https://github.com/Tevo45/void-packages gprbuild
https://github.com/void-linux/void-packages/pull/53605

New package: gprbuild-25.0.0
<!-- Uncomment relevant sections and delete options which are not applicable -->

GPRbuild is a multi-language build system commonly found in Ada projects. Changes include xmlada and gprconfig_kb, both dependencies of gprbuild, as well as libgpr, an optional library component. Lightly tested, but should receive some more usage in the coming days.

Closes #45421

#### Testing the changes
- I tested the changes in this PR: **briefly**

#### New package
- This new package conforms to the [package requirements](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#package-requirements): **YES**

<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
#### Local build testing
- I built this PR locally for my native architecture, (x86_64-glibc)



A patch file from https://github.com/void-linux/void-packages/pull/53605.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gprbuild-53605.patch --]
[-- Type: text/x-diff, Size: 27621 bytes --]

From 68c7a543162c731d14fb974f745b1ff440c54d9f Mon Sep 17 00:00:00 2001
From: "Estevan Castilho (Tevo)" <estevan.cps@gmail.com>
Date: Sat, 21 Dec 2024 01:42:44 +0000
Subject: [PATCH 1/4] New package: gprconfig_kb-25.0.0

---
 .../add-arm-v7l-and-musl-targets.patch        | 366 ++++++++++++++++++
 srcpkgs/gprconfig_kb/template                 |  16 +
 2 files changed, 382 insertions(+)
 create mode 100644 srcpkgs/gprconfig_kb/patches/add-arm-v7l-and-musl-targets.patch
 create mode 100644 srcpkgs/gprconfig_kb/template

diff --git a/srcpkgs/gprconfig_kb/patches/add-arm-v7l-and-musl-targets.patch b/srcpkgs/gprconfig_kb/patches/add-arm-v7l-and-musl-targets.patch
new file mode 100644
index 00000000000000..ca1601c5e7fa05
--- /dev/null
+++ b/srcpkgs/gprconfig_kb/patches/add-arm-v7l-and-musl-targets.patch
@@ -0,0 +1,366 @@
+From b7dc6bc873aaf8809b511b2110286e5978a888ce Mon Sep 17 00:00:00 2001
+From: Estevan Castilho <tevo@riajuu.net>
+Date: Sun, 30 Mar 2025 17:17:52 +0000
+Subject: [PATCH] Add aarch64-linux-musl, arm(v7l)?-linux-(gnu|musl)eabi(hf)?
+
+---
+ db/compilers.xml |  24 +++----
+ db/cross.xml     |   4 +-
+ db/linker.xml    | 161 +++++++++++++++++++++++++++++++++++++++++++++--
+ 3 files changed, 169 insertions(+), 20 deletions(-)
+
+diff --git a/db/compilers.xml b/db/compilers.xml
+index 185ca031..59e8e407 100644
+--- a/db/compilers.xml
++++ b/db/compilers.xml
+@@ -20,7 +20,7 @@
+   <!--    GCC 3.x & 4.x (not for GNAT Pro)-->
+   <compiler_description>
+     <name>GCC</name>
+-    <executable prefix="1">(.*-wrs-.*|.*-sysgo.*|.*-elf-.*|.*-eabi-.*|.*-eabispe-.*|avr-.*|.*-elinos-linux.*|.*-linux-gnu-|.*mingw32.*|.*-xcoff-.*|.*linux-android.*|arm-linux-gnueabi-|arm-linux-gnueabihf-|e500v2-gnu-linux-|powerpc-.*-linux.*-|.*-darwin.*-|.*-freebsd.*)?gcc(-\d+)?</executable>
++    <executable prefix="1">(.*-wrs-.*|.*-sysgo.*|.*-elf-.*|.*-eabi-.*|.*-eabispe-.*|avr-.*|.*-elinos-linux.*|.*-linux-(gnu|musl)-|.*mingw32.*|.*-xcoff-.*|.*linux-android.*|arm.*-linux-(gnu|musl)eabi-|arm.*-linux-(gnu|musl)eabihf-|e500v2-gnu-linux-|powerpc-.*-linux.*-|.*-darwin.*-|.*-freebsd.*)?gcc(-\d+)?</executable>
+     <version>
+       <external>$EXEC -v</external>
+       <nogrep regexp="for GNAT Pro"></nogrep>
+@@ -36,7 +36,7 @@
+   <!--    GCC for GNAT Pro 3.x & 4.x -->
+   <compiler_description>
+     <name>GCC_Pro</name>
+-    <executable prefix="1">(.*-wrs-.*|.*-sysgo.*|.*-elf-.*|.*-eabi-.*|.*-eabispe-.*|avr-.*|.*-elinos-linux.*|.*-linux-gnu-|.*mingw32.*|.*-xcoff-.*|.*linux-android.*|arm-linux-gnueabi-|arm-linux-gnueabihf-|e500v2-gnu-linux-|powerpc-.*-linux.*-|.*-darwin.*-|.*-fastos.*|.*-freebsd.*|.*-qnx.*|.*-rtems.*)?gcc</executable>
++    <executable prefix="1">(.*-wrs-.*|.*-sysgo.*|.*-elf-.*|.*-eabi-.*|.*-eabispe-.*|avr-.*|.*-elinos-linux.*|.*-linux-(gnu|musl)-|.*mingw32.*|.*-xcoff-.*|.*linux-android.*|arm.*-linux-(gnu|musl)eabi-|arm.*-linux-(gnu|musl)eabihf-|e500v2-gnu-linux-|powerpc-.*-linux.*-|.*-darwin.*-|.*-fastos.*|.*-freebsd.*|.*-qnx.*|.*-rtems.*)?gcc</executable>
+     <version>
+       <external>${PREFIX}gcc -v</external>
+ 
+@@ -121,7 +121,7 @@
+   <!--  G++ compilers for GNAT Pro  -->
+   <compiler_description>
+     <name>G++_Pro</name>
+-    <executable prefix="1">(.*-elf-.*|.*-eabi-.*|.*-wrs-.*|.*-fastos.*|.*-freebsd.*|.*-linux-gnu.*-|.*-linux-android.*|.*-rtems.*)?g\+\+</executable>
++    <executable prefix="1">(.*-elf-.*|.*-eabi-.*|.*-wrs-.*|.*-fastos.*|.*-freebsd.*|.*-linux-(gnu|musl).*-|.*-linux-android.*|.*-rtems.*)?g\+\+</executable>
+     <version>
+       <external>${PREFIX}g++ -v</external>
+ 
+@@ -138,7 +138,7 @@
+   <!--  Assembler (not for GNAT Pro) -->
+   <compiler_description>
+     <name>GCC-ASM</name>
+-    <executable prefix="1">(.*-wrs-.*|.*-sysgo.*|.*-elf-.*|.*-eabi-.*|.*-eabispe-.*|avr-.*|.*-elinos-linux.*|.*-linux-gnu-|.*mingw32.*|.*-xcoff-.*|.*linux-android.*|arm-linux-gnueabi-|arm-linux-gnueabihf-|e500v2-gnu-linux-|powerpc-.*-linux.*-|.*-darwin.*-|.*-fastos.*|.*-freebsd.*|.*-qnx.*|.*-rtems.*)?gcc(-\d+)?</executable>
++    <executable prefix="1">(.*-wrs-.*|.*-sysgo.*|.*-elf-.*|.*-eabi-.*|.*-eabispe-.*|avr-.*|.*-elinos-linux.*|.*-linux-(gnu|musl)-|.*mingw32.*|.*-xcoff-.*|.*linux-android.*|arm.*-linux-(gnu|musl)eabi-|arm.*-linux-(gnu|musl)eabihf-|e500v2-gnu-linux-|powerpc-.*-linux.*-|.*-darwin.*-|.*-fastos.*|.*-freebsd.*|.*-qnx.*|.*-rtems.*)?gcc(-\d+)?</executable>
+     <version>
+       <external>$EXEC -v</external>
+       <nogrep regexp="for GNAT Pro"></nogrep>
+@@ -154,7 +154,7 @@
+   <!--  Assembler (for GNAT Pro) -->
+   <compiler_description>
+     <name>GCC-ASM_Pro</name>
+-    <executable prefix="1">(.*-wrs-.*|.*-sysgo.*|.*-elf-.*|.*-eabi-.*|.*-eabispe-.*|avr-.*|.*-elinos-linux.*|.*-linux-gnu-|.*mingw32.*|.*-xcoff-.*|.*linux-android.*|arm-linux-gnueabi-|arm-linux-gnueabihf-|e500v2-gnu-linux-|powerpc-.*-linux.*-|.*-darwin.*-|.*-.*fastos.*|.*-freebsd.*|.*-qnx.*|.*-rtems.*)?gcc</executable>
++    <executable prefix="1">(.*-wrs-.*|.*-sysgo.*|.*-elf-.*|.*-eabi-.*|.*-eabispe-.*|avr-.*|.*-elinos-linux.*|.*-linux-(gnu|musl)-|.*mingw32.*|.*-xcoff-.*|.*linux-android.*|arm.*-linux-(gnu|musl)eabi-|arm.*-linux-(gnu|musl)eabihf-|e500v2-gnu-linux-|powerpc-.*-linux.*-|.*-darwin.*-|.*-.*fastos.*|.*-freebsd.*|.*-qnx.*|.*-rtems.*)?gcc</executable>
+     <version>
+       <external>${PREFIX}gcc -v</external>
+       <grep regexp="^gcc \S+ (\S+) \d+ (\(prerelease\) )?\(?for GNAT Pro" group="1"></grep>
+@@ -169,7 +169,7 @@
+   <!--  Binary image -->
+   <compiler_description>
+     <name>LD</name>
+-    <executable prefix="1">(.*-wrs.*-|.*-sysgo.*-|.*-elf.*-|.*-eabi.*-|.*-eabispe.*-|avr.*-|.*-elinos-linux.*-|.*-linux-gnu-|.*mingw32.*-|.*-xcoff.*-|.*linux-android.*|arm-linux-gnueabi-|arm-linux-gnueabihf-|e500v2-gnu-linux-|powerpc-.*-linux.*-|.*-darwin.*-|.*-fastos.*|.*-freebsd.*|.*-qnx.*-|.*-rtems.*-)?ld</executable>
++    <executable prefix="1">(.*-wrs.*-|.*-sysgo.*-|.*-elf.*-|.*-eabi.*-|.*-eabispe.*-|avr.*-|.*-elinos-linux.*-|.*-linux-(gnu|musl)-|.*mingw32.*-|.*-xcoff.*-|.*linux-android.*|arm.*-linux-(gnu|musl)eabi-|arm.*-linux-(gnu|musl)eabihf-|e500v2-gnu-linux-|powerpc-.*-linux.*-|.*-darwin.*-|.*-fastos.*|.*-freebsd.*|.*-qnx.*-|.*-rtems.*-)?ld</executable>
+     <version>
+       <external>${PREFIX}ld -v</external>
+       <grep regexp="^(GNU ld.*|LLD) (\S+)" group="2"></grep>
+@@ -189,7 +189,7 @@
+    -->
+   <compiler_description>
+     <name>GNAT</name>
+-    <executable prefix="1">(.*-wrs-.*|.*-sysgo.*|.*-elf-.*|.*-eabi-.*|.*-eabispe-.*|avr-.*|.*-elinos-linux.*|.*-linux-gnu-|.*mingw32.*|.*-xcoff-.*|.*linux-android.*|arm-linux-gnueabi-|arm-linux-gnueabihf-|e500v2-gnu-linux-|powerpc-.*-linux.*-|.*-darwin.*-|.*-fastos.*|.*-freebsd.*|.*-qnx.*|.*-rtems.*)?gnatls</executable>
++    <executable prefix="1">(.*-wrs-.*|.*-sysgo.*|.*-elf-.*|.*-eabi-.*|.*-eabispe-.*|avr-.*|.*-elinos-linux.*|.*-linux-(gnu|musl)-|.*mingw32.*|.*-xcoff-.*|.*linux-android.*|arm.*-linux-(gnu|musl)eabi-|arm.*-linux-(gnu|musl)eabihf-|e500v2-gnu-linux-|powerpc-.*-linux.*-|.*-darwin.*-|.*-fastos.*|.*-freebsd.*|.*-qnx.*|.*-rtems.*)?gnatls</executable>
+     <version>
+       <external>${PREFIX}gnatls -v --version</external>
+       <grep regexp="^GNATLS.+?(\d+(\.\d+)?)" group="1"></grep>
+@@ -262,7 +262,7 @@
+ 
+   <compiler_description>
+     <name>GNAT_LLVM</name>
+-    <executable prefix="1">((.*-elf-|.*-linux-gnu-)?llvm-)gnatls</executable>
++    <executable prefix="1">((.*-elf-|.*-linux-(gnu|musl)-)?llvm-)gnatls</executable>
+     <version>
+       <external>${PREFIX}gnatls -v</external>
+       <grep regexp="^GNATLS.+?(\d+(\.\d+)?)" group="1"></grep>
+@@ -287,7 +287,7 @@
+ 
+   <compiler_description>
+     <name>GNAT_LLVM_ASM</name>
+-    <executable prefix="1">((.*-elf-|.*-linux-gnu-)?llvm-)gcc</executable>
++    <executable prefix="1">((.*-elf-|.*-linux-(gnu|musl)-)?llvm-)gcc</executable>
+     <version>
+       <external>$EXEC -v</external>
+       <grep regexp="^llvm-.*gcc.+GNAT Pro (\S+)" group="1"></grep>
+@@ -532,7 +532,7 @@
+   <!-- Clang C compiler -->
+   <compiler_description>
+     <name>CLANG-C</name>
+-    <executable prefix="1">((.*-elf-|.*-linux-gnu-)?)clang</executable>
++    <executable prefix="1">((.*-elf-|.*-linux-(gnu|musl)-)?)clang</executable>
+     <version>
+       <external>$EXEC -v</external>
+       <grep regexp=".*(LLVM|clang) version ([0-9.]*)" group="2"></grep>
+@@ -547,7 +547,7 @@
+   <!-- Clang++ C++ compiler -->
+   <compiler_description>
+     <name>CLANG-C++</name>
+-    <executable prefix="1">((.*-elf-|.*-linux-gnu-)?)clang\+\+</executable>
++    <executable prefix="1">((.*-elf-|.*-linux-(gnu|musl)-)?)clang\+\+</executable>
+     <version>
+       <external>$EXEC -v</external>
+       <grep regexp=".*(LLVM|clang) version ([0-9.]*)" group="2"></grep>
+@@ -562,7 +562,7 @@
+   <!-- Clang assembler -->
+   <compiler_description>
+     <name>CLANG-ASM</name>
+-    <executable prefix="1">((.*-elf-|.*-linux-gnu-)?)clang</executable>
++    <executable prefix="1">((.*-elf-|.*-linux-(gnu|musl)-)?)clang</executable>
+     <version>
+       <external>$EXEC -v</external>
+       <grep regexp=".*(LLVM|clang) version ([0-9.]*)" group="2"></grep>
+diff --git a/db/cross.xml b/db/cross.xml
+index 1c7a5d41..d4165d2a 100644
+--- a/db/cross.xml
++++ b/db/cross.xml
+@@ -44,8 +44,8 @@
+        <target name="^.*-qnx[0-9]*$" />
+        <target name="^.*-rtems.*$" />
+        <target name="^arm-linux-androideabi" />
+-       <target name="^arm-linux-gnueabi" />
+-       <target name="^arm-linux-gnueabihf" />
++       <target name="^arm.*-linux-(gnu|musl)eabi" />
++       <target name="^arm.*-linux-(gnu|musl)eabihf" />
+        <target name="^aarch64-linux-android" />
+        <target name="^aarch64-.*linux-gnu" />
+        <target name="^e500v2-gnu-linux" />
+diff --git a/db/linker.xml b/db/linker.xml
+index c83f3051..acb27a11 100644
+--- a/db/linker.xml
++++ b/db/linker.xml
+@@ -162,10 +162,10 @@
+   <configuration>
+     <!-- aarch64-linux - native compiler. -->
+     <targets>
+-      <target name="^aarch64-linux-gnu$" />
++      <target name="^aarch64-linux-(gnu|musl)$" />
+     </targets>
+     <hosts>
+-      <host name="^aarch64-linux-gnu$" />
++      <host name="^aarch64-linux-(gnu|musl)$" />
+     </hosts>
+     <config>
+    for Object_Lister use ("nm", "-g");
+@@ -179,7 +179,7 @@
+   </configuration>
+ 
+   <configuration>
+-    <!-- aarch64-linux - cross compiler. -->
++    <!-- aarch64-linux-gnu - cross compiler. -->
+     <targets>
+       <target name="^aarch64-.*linux-gnu$" />
+     </targets>
+@@ -197,6 +197,25 @@
+     </config>
+   </configuration>
+ 
++  <configuration>
++    <!-- aarch64-linux-musl - cross compiler. -->
++    <targets>
++      <target name="^aarch64-.*linux-musl$" />
++    </targets>
++    <hosts negate="true">
++      <host name="^aarch64-linux-musl$" />
++    </hosts>
++    <config>
++      for Object_Lister use ("${PREFIX(C)}nm", "-g");
++      for Object_Lister_Matcher use " [TDRBSG] (.*)";
++
++      package Linker is
++      for Export_File_Format use "GNU";
++      for Export_File_Switch use "-Wl,--version-script=";
++      end Linker;
++    </config>
++  </configuration>
++
+   <configuration>
+     <targets>
+       <target name="^arm-linux-gnueabi$" />
+@@ -227,6 +246,96 @@
+     </config>
+   </configuration>
+ 
++  <configuration>
++    <targets>
++      <target name="^armv7l-linux-gnueabi$" />
++    </targets>
++    <config>
++   for Object_Lister use ("armv7l-linux-gnueabi-nm", "-g");
++   for Object_Lister_Matcher use " [TDSR] (.*)";
++
++   package Linker is
++      for Export_File_Format use "GNU";
++      for Export_File_Switch use "-Wl,--version-script=";
++   end Linker;
++    </config>
++  </configuration>
++
++  <configuration>
++    <targets>
++      <target name="^armv7l-linux-gnueabihf$" />
++    </targets>
++    <config>
++   for Object_Lister use ("armv7l-linux-gnueabihf-nm", "-g");
++   for Object_Lister_Matcher use " [TDRBSG] (.*)";
++
++   package Linker is
++      for Export_File_Format use "GNU";
++      for Export_File_Switch use "-Wl,--version-script=";
++   end Linker;
++    </config>
++  </configuration>
++
++  <configuration>
++    <targets>
++      <target name="^arm-linux-musleabi$" />
++    </targets>
++    <config>
++   for Object_Lister use ("arm-linux-musleabi-nm", "-g");
++   for Object_Lister_Matcher use " [TDSR] (.*)";
++
++   package Linker is
++      for Export_File_Format use "GNU";
++      for Export_File_Switch use "-Wl,--version-script=";
++   end Linker;
++    </config>
++  </configuration>
++
++  <configuration>
++    <targets>
++      <target name="^arm-linux-musleabihf$" />
++    </targets>
++    <config>
++   for Object_Lister use ("arm-linux-musleabihf-nm", "-g");
++   for Object_Lister_Matcher use " [TDRBSG] (.*)";
++
++   package Linker is
++      for Export_File_Format use "GNU";
++      for Export_File_Switch use "-Wl,--version-script=";
++   end Linker;
++    </config>
++  </configuration>
++
++  <configuration>
++    <targets>
++      <target name="^armv7l-linux-musleabi$" />
++    </targets>
++    <config>
++   for Object_Lister use ("armv7l-linux-musleabi-nm", "-g");
++   for Object_Lister_Matcher use " [TDSR] (.*)";
++
++   package Linker is
++      for Export_File_Format use "GNU";
++      for Export_File_Switch use "-Wl,--version-script=";
++   end Linker;
++    </config>
++  </configuration>
++
++  <configuration>
++    <targets>
++      <target name="^armv7l-linux-musleabihf$" />
++    </targets>
++    <config>
++   for Object_Lister use ("armv7l-linux-musleabihf-nm", "-g");
++   for Object_Lister_Matcher use " [TDRBSG] (.*)";
++
++   package Linker is
++      for Export_File_Format use "GNU";
++      for Export_File_Switch use "-Wl,--version-script=";
++   end Linker;
++    </config>
++  </configuration>
++
+   <configuration>
+     <targets>
+       <target name="^powerpc-.*linux.*$" />
+@@ -676,6 +785,30 @@
+     </config>
+   </configuration>
+ 
++  <configuration>
++    <targets>
++      <target name="^armv7l-linux-gnueabi$" />
++    </targets>
++    <config>
++   for Archive_Builder  use ("armv7l-linux-gnueabi-ar", "cr");
++   for Archive_Builder_Append_Option use ("q");
++   for Archive_Indexer  use ("armv7l-linux-gnueabi-ranlib");
++   for Archive_Suffix   use ".a";
++    </config>
++  </configuration>
++
++  <configuration>
++    <targets>
++      <target name="^armv7l-linux-gnueabihf$" />
++    </targets>
++    <config>
++   for Archive_Builder  use ("armv7l-linux-gnueabihf-ar", "cr");
++   for Archive_Builder_Append_Option use ("q");
++   for Archive_Indexer  use ("armv7l-linux-gnueabihf-ranlib");
++   for Archive_Suffix   use ".a";
++    </config>
++  </configuration>
++
+   <configuration>
+     <!-- aarch64-android - cross compiler. -->
+     <targets>
+@@ -692,10 +825,10 @@
+   <configuration>
+     <!-- aarch64-linux - native compiler. -->
+     <targets>
+-      <target name="^aarch64-linux-gnu$" />
++      <target name="^aarch64-linux-(gnu|musl)$" />
+     </targets>
+     <hosts>
+-      <host name="^aarch64-linux-gnu$" />
++      <host name="^aarch64-linux-(gnu|musl)$" />
+     </hosts>
+     <config>
+    for Archive_Builder  use ("ar", "cr");
+@@ -706,7 +839,7 @@
+   </configuration>
+ 
+   <configuration>
+-    <!-- aarch64-linux - cross compiler. -->
++    <!-- aarch64-linux-gnu - cross compiler. -->
+     <targets>
+       <target name="^aarch64-.*linux-gnu$" />
+     </targets>
+@@ -721,6 +854,22 @@
+     </config>
+   </configuration>
+ 
++  <configuration>
++    <!-- aarch64-linux-musl - cross compiler. -->
++    <targets>
++      <target name="^aarch64-.*linux-musl$" />
++    </targets>
++    <hosts negate="true">
++      <host name="^aarch64-linux-musl$" />
++    </hosts>
++    <config>
++   for Archive_Builder  use ("aarch64-linux-musl-ar", "cr");
++   for Archive_Builder_Append_Option use ("q");
++   for Archive_Indexer  use ("aarch64-linux-musl-ranlib");
++   for Archive_Suffix   use ".a";
++    </config>
++  </configuration>
++
+   <configuration>
+     <targets>
+       <target name="^aarch64-thales-fastos$" />
+-- 
+2.48.1
+
diff --git a/srcpkgs/gprconfig_kb/template b/srcpkgs/gprconfig_kb/template
new file mode 100644
index 00000000000000..c8e1ed701ccbe2
--- /dev/null
+++ b/srcpkgs/gprconfig_kb/template
@@ -0,0 +1,16 @@
+# Template file for 'gprconfig_kb'
+pkgname=gprconfig_kb
+version=25.0.0
+revision=1
+short_desc="Knowledge base for configuring GPR toolchains"
+maintainer="Estevan Castilho <tevo@riajuu.net>"
+license=GPL-3.0-or-later
+homepage="https://github.com/AdaCore/gprconfig_kb"
+distfiles="https://github.com/AdaCore/gprconfig_kb/archive/refs/tags/v${version}.tar.gz"
+checksum="802e6d38a3b110897924a9c16e143cb86360f2dde94bb5b9144c7c391e37b121"
+
+do_install() {
+	destination="$DESTDIR/usr/share/gprconfig"
+	mkdir -p "$destination"
+	cp -rv db/* "$destination"
+}

From cd207b97e0441857e3986dad2ccab09c4aaf839c Mon Sep 17 00:00:00 2001
From: "Estevan Castilho (Tevo)" <estevan.cps@gmail.com>
Date: Fri, 20 Dec 2024 02:08:39 +0000
Subject: [PATCH 2/4] New package: gprbuild-bootstrap-25.0.0

---
 srcpkgs/gprbuild-bootstrap/template | 42 +++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)
 create mode 100644 srcpkgs/gprbuild-bootstrap/template

diff --git a/srcpkgs/gprbuild-bootstrap/template b/srcpkgs/gprbuild-bootstrap/template
new file mode 100644
index 00000000000000..ee89c676c201f5
--- /dev/null
+++ b/srcpkgs/gprbuild-bootstrap/template
@@ -0,0 +1,42 @@
+# Template file for 'gprbuild-bootstrap'
+pkgname=gprbuild-bootstrap
+version=25.0.0
+revision=1
+short_desc="Advanced build system for multi-language programs - bootstrap package"
+maintainer="Estevan Castilho <tevo@riajuu.net>"
+license=GPL-3.0-or-later
+homepage="https://github.com/AdaCore/gprbuild"
+distfiles="
+	https://github.com/AdaCore/gprbuild/archive/refs/tags/v${version}.tar.gz>gprbuild-${version}.tar.gz
+	https://github.com/AdaCore/xmlada/archive/refs/tags/v${version}.tar.gz>xmlada-${version}.tar.gz"
+checksum="
+	d12f94c1ec0b6e219f6b162f71f57129d22426e7798092f5f85b9ec2cc818bf1
+	dbb5984a0931311c7a787a679ef4cfaeeedd357474a585dc170140ef2251dcca"
+
+nocross="This is only used by the bootstrap process to build the real gprbuild - it doesn't make much sense to cross-compile."
+
+hostmakedepends="gprconfig_kb gcc-ada"
+depends="gprconfig_kb"
+
+do_configure() {
+	# kludge to get the bootstrap to use our packaged gprconfig
+	# knowledge base - it expects the kb to be under db/, as on the
+	# source package
+	mkdir -p gprconfig_kb
+	ln -sf /usr/share/gprconfig gprconfig_kb/db
+}
+
+do_build() {
+	cd "gprbuild-${version}"
+	./bootstrap.sh \
+		--with-xmlada="../xmlada-${version}" \
+		--build
+}
+
+do_install() {
+	cd "gprbuild-${version}"
+	./bootstrap.sh \
+		--prefix="$DESTDIR/usr" \
+		--install
+	rm -rf "$DESTDIR/usr/share/gprconfig"
+}

From 3a74b94951aa3845b657ad0c9e8b129a1f3fc5fc Mon Sep 17 00:00:00 2001
From: "Estevan Castilho (Tevo)" <estevan.cps@gmail.com>
Date: Fri, 20 Dec 2024 02:10:55 +0000
Subject: [PATCH 3/4] New package: xmlada-25.0.0

---
 common/shlibs                                 |  5 ++
 srcpkgs/xmlada-devel                          |  1 +
 .../patches/fix-autoconf-flag-confusion.patch | 59 +++++++++++++++++++
 .../install-cross-under-native-prefix.patch   | 26 ++++++++
 srcpkgs/xmlada/template                       | 36 +++++++++++
 5 files changed, 127 insertions(+)
 create mode 120000 srcpkgs/xmlada-devel
 create mode 100644 srcpkgs/xmlada/patches/fix-autoconf-flag-confusion.patch
 create mode 100644 srcpkgs/xmlada/patches/install-cross-under-native-prefix.patch
 create mode 100644 srcpkgs/xmlada/template

diff --git a/common/shlibs b/common/shlibs
index 0bd2d1fb7e4696..c99c9d1148a5d2 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -4542,3 +4542,8 @@ libmaliit-plugins.so.2 maliit-keyboard-2.3.1_1
 libSDL3.so.0 SDL3-3.2.2_1
 libiconv.so.2 libiconv-1.18_1
 libcharset.so.1 libiconv-1.18_1
+libxmlada_schema.so.18.0w xmlada-25.0.0_1
+libxmlada_dom.so.18.0w xmlada-25.0.0_1
+libxmlada_sax.so.18.0w xmlada-25.0.0_1
+libxmlada_unicode.so.18.0w xmlada-25.0.0_1
+libxmlada_input_sources.so.18.0w xmlada-25.0.0_1
diff --git a/srcpkgs/xmlada-devel b/srcpkgs/xmlada-devel
new file mode 120000
index 00000000000000..2f2d27d92b8ead
--- /dev/null
+++ b/srcpkgs/xmlada-devel
@@ -0,0 +1 @@
+xmlada
\ No newline at end of file
diff --git a/srcpkgs/xmlada/patches/fix-autoconf-flag-confusion.patch b/srcpkgs/xmlada/patches/fix-autoconf-flag-confusion.patch
new file mode 100644
index 00000000000000..ed43b0051f9e12
--- /dev/null
+++ b/srcpkgs/xmlada/patches/fix-autoconf-flag-confusion.patch
@@ -0,0 +1,59 @@
+From a8be28e067456dc2c700719d09ab08e20fccc0ea Mon Sep 17 00:00:00 2001
+From: "Estevan Castilho (Tevo)" <estevan.cps@gmail.com>
+Date: Fri, 20 Dec 2024 00:05:37 +0000
+Subject: [PATCH] Fix Autoconf cross-compilation flag confusion
+
+Previously, we used the --host and --target arguments of the configure
+script to mean the build machine and the machine the package will run
+on, mirroring GPRBuild's own usage of the terminology. By convention,
+however, autoconf scripts usually take --build to mean the build
+machine, --host to mean the machine the package will run on and
+--target to mean the target of the toolchain being configured (if
+relevant). Our non-standard usage tends to cause problems with some
+distribution's packaging machinery (such as Void Linux's, or RHEL's),
+which often follow autoconf's conventions instead.
+
+When in Rome, do as the Romans do; hopefully this won't confuse
+GPRBuild users (too much)!
+
+Fixes #15
+---
+ Makefile.in | 6 +++---
+ aclocal.m4  | 4 ++--
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index e03b63c..880262b 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -16,9 +16,9 @@ GPRBUILD_OPTIONS=
+ PROCESSORS?=0
+ GPRBUILD=@gprbuild@ -j${PROCESSORS} -m ${GPRBUILD_OPTIONS}
+ GPRINSTALL=@gprinstall@
+-TARGET=@target@
+-TARGET_ALIAS=@target_alias@
+-HOST=@host@
++TARGET=@host@
++TARGET_ALIAS=@host_alias@
++HOST=@build@
+ 
+ # Compiler mode: one of "distrib", "Debug", "Production", "profile", "coverage"
+ MODE=@BUILD_TYPE@
+diff --git a/aclocal.m4 b/aclocal.m4
+index 39392bc..e17b338 100644
+--- a/aclocal.m4
++++ b/aclocal.m4
+@@ -91,8 +91,8 @@ project Lib is
+ end Lib;
+ EOF
+ 
+-      if test "x$host_alias" != "x$target_alias"; then
+-          $gprbuild --target=$target_alias -c -q -P$tmp/lib 2>/dev/null
++      if test "x$build_alias" != "x$host_alias"; then
++          $gprbuild --target=$host_alias -c -q -P$tmp/lib 2>/dev/null
+       else
+           $gprbuild -c -q -P$tmp/lib 2>/dev/null
+       fi
+-- 
+2.48.1
+
diff --git a/srcpkgs/xmlada/patches/install-cross-under-native-prefix.patch b/srcpkgs/xmlada/patches/install-cross-under-native-prefix.patch
new file mode 100644
index 00000000000000..41bb0c0e47fedf
--- /dev/null
+++ b/srcpkgs/xmlada/patches/install-cross-under-native-prefix.patch
@@ -0,0 +1,26 @@
+From f239d0499875a5dcadc2f9ea4586c4d933bbbcf1 Mon Sep 17 00:00:00 2001
+From: Estevan Castilho <tevo@riajuu.net>
+Date: Sat, 29 Mar 2025 22:19:53 +0000
+Subject: [PATCH] Do not install cross-compiled built artifacts under a
+ separate tree
+
+---
+ Makefile.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index 880262b..521e04f 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -40,7 +40,7 @@ ifeq (${HOST},${TARGET})
+ IPREFIX=${DESTDIR}${prefix}
+ else
+ GPROPTS+=--target=${TARGET_ALIAS}
+-IPREFIX=${DESTDIR}${prefix}/${TARGET_ALIAS}
++IPREFIX=${DESTDIR}${prefix}
+ endif
+ 
+ ifdef RTS
+-- 
+2.48.1
+
diff --git a/srcpkgs/xmlada/template b/srcpkgs/xmlada/template
new file mode 100644
index 00000000000000..f678c6cb3cd7dc
--- /dev/null
+++ b/srcpkgs/xmlada/template
@@ -0,0 +1,36 @@
+# Template file for 'xmlada'
+pkgname=xmlada
+version=25.0.0
+revision=1
+build_style=gnu-configure
+short_desc="XML parser for Ada"
+maintainer="Estevan Castilho <tevo@riajuu.net>"
+license="GPL-3.0-or-later WITH GCC-exception-3.1"
+homepage="https://github.com/AdaCore/xmlada"
+distfiles="https://github.com/AdaCore/xmlada/archive/refs/tags/v${version}.tar.gz"
+checksum="dbb5984a0931311c7a787a679ef4cfaeeedd357474a585dc170140ef2251dcca"
+
+hostmakedepends="gcc-ada autoconf gprbuild-bootstrap"
+
+configure_args+=" --enable-shared"
+
+do_configure() {
+	autoreconf -fi
+	./configure $configure_args
+}
+
+xmlada-devel_package() {
+	short_desc+=" - development files"
+	depends="${sourcepkg}>=${version}_${revision}"
+	pkg_install() {
+		cd "$DESTDIR"
+		# vmove isn't the biggest fan of globs on parent directories
+		for file in usr/lib/xmlada/*/*.{ali,a}; do
+			vmove "$file"
+		done
+		vmove "usr/lib/*.so"
+		vmove usr/share/gpr
+		vmove usr/include
+		vmove usr/share/examples/xmlada
+	}
+}

From 0a7b1580b7934dafe88dfd383a77bd40c973d5fd Mon Sep 17 00:00:00 2001
From: "Estevan Castilho (Tevo)" <estevan.cps@gmail.com>
Date: Fri, 20 Dec 2024 02:11:10 +0000
Subject: [PATCH 4/4] New package: gprbuild-25.0.0

---
 common/shlibs                                 |  1 +
 .../patches/resolve-libgpr-conflict.patch     | 25 +++++++++++++++++++
 srcpkgs/gprbuild/template                     | 24 ++++++++++++++++++
 3 files changed, 50 insertions(+)
 create mode 100644 srcpkgs/gprbuild/patches/resolve-libgpr-conflict.patch
 create mode 100644 srcpkgs/gprbuild/template

diff --git a/common/shlibs b/common/shlibs
index c99c9d1148a5d2..ad4ac4c42ac9bb 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -4547,3 +4547,4 @@ libxmlada_dom.so.18.0w xmlada-25.0.0_1
 libxmlada_sax.so.18.0w xmlada-25.0.0_1
 libxmlada_unicode.so.18.0w xmlada-25.0.0_1
 libxmlada_input_sources.so.18.0w xmlada-25.0.0_1
+libgnatprj.so libgpr-25.0.0_1
diff --git a/srcpkgs/gprbuild/patches/resolve-libgpr-conflict.patch b/srcpkgs/gprbuild/patches/resolve-libgpr-conflict.patch
new file mode 100644
index 00000000000000..fbc3ecea39e302
--- /dev/null
+++ b/srcpkgs/gprbuild/patches/resolve-libgpr-conflict.patch
@@ -0,0 +1,25 @@
+From 52238495d997432ecf6bd811977f9165ad3fb765 Mon Sep 17 00:00:00 2001
+From: Estevan Castilho <tevo@riajuu.net>
+Date: Sun, 30 Mar 2025 03:52:52 +0000
+Subject: [PATCH] Resolve .so conflict with gRPC
+
+---
+ gpr/gpr.gpr | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/gpr/gpr.gpr b/gpr/gpr.gpr
+index da6b0a08..67122de7 100644
+--- a/gpr/gpr.gpr
++++ b/gpr/gpr.gpr
+@@ -38,7 +38,7 @@ library project GPR is
+ 
+    for Source_Dirs use ("src");
+ 
+-   for Library_Name use "gpr";
++   for Library_Name use "gnatprj";
+    for Object_Dir use "libobj/" & Bld & "/" & Gnat_Lib_Type;
+    for Library_Dir use "lib/" & Bld & "/" & Gnat_Lib_Type;
+ 
+-- 
+2.48.1
+
diff --git a/srcpkgs/gprbuild/template b/srcpkgs/gprbuild/template
new file mode 100644
index 00000000000000..ea6254ef9328df
--- /dev/null
+++ b/srcpkgs/gprbuild/template
@@ -0,0 +1,24 @@
+# Template file for 'gprbuild'
+pkgname=gprbuild
+version=25.0.0
+revision=1
+build_style=gnu-configure
+short_desc="Advanced build system for multi-language programs"
+maintainer="Estevan Castilho <tevo@riajuu.net>"
+license=GPL-3.0-or-later
+homepage="https://github.com/AdaCore/gprbuild"
+distfiles="https://github.com/AdaCore/gprbuild/archive/refs/tags/v${version}.tar.gz"
+checksum="d12f94c1ec0b6e219f6b162f71f57129d22426e7798092f5f85b9ec2cc818bf1"
+
+hostmakedepends="gcc-ada gprbuild-bootstrap which"
+makedepends="xmlada-devel"
+depends="gprconfig_kb"
+
+make_build_target="all"
+make_install_target="install"
+
+export GPR_PROJECT_PATH="$XBPS_CROSS_BASE/usr/share/gpr"
+
+do_configure() {
+	make prefix="$DESTDIR/usr" TARGET="$($CC -dumpmachine)" setup
+}

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: New package: gprbuild-25.0.0
  2024-12-21  1:55 [PR PATCH] New package: gprbuild-25.0.0 Tevo45
                   ` (16 preceding siblings ...)
  2025-03-30 19:12 ` [PR PATCH] [Updated] " Tevo45
@ 2025-03-30 21:01 ` Tevo45
  17 siblings, 0 replies; 19+ messages in thread
From: Tevo45 @ 2025-03-30 21:01 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1452 bytes --]

New comment by Tevo45 on void-packages repository

https://github.com/void-linux/void-packages/pull/53605#issuecomment-2764701376

Comment:
Sorry for the long delay. I've removed the `libgpr*` subpackages, and also marked `gprbuild-bootstrap` as `nocross` since it doesn't make much sense to spend any effort getting that to cross-compile, as it only exists as a means to bootstrap the full GPRbuild itself. Other than that:

- Cross-compiling `x86_64-gnu` to `x86_64-musl` doesn't work, since `xmlada` ends up with a dependency on `glibc`; a native musl build works fine, however. It might be that `gprbuild` thinks both are same target and uses the native compiler, so we'd need to disambiguate that on `gprconfig_kb`, but I haven't looked into it too deeply yet.

- Cross-compiling to `armv7l` seems to produce a `xmlada` that doesn't install, complaining about "broken, unresolvable shlib"s to already packaged libraries:
```
xmlada-25.0.0_1: broken, unresolvable shlib `ld-linux-armhf.so.3'
xmlada-25.0.0_1: broken, unresolvable shlib `libc.so.6'
xmlada-25.0.0_1: broken, unresolvable shlib `libgcc_s.so.1'
xmlada-25.0.0_1: broken, unresolvable shlib `libgnat-13.so'
```

Besides those, cross-builds of `gprbuild` et al. from `x86_64` to `aarch64`, `aarch64-musl`, `i686` and `armv6l` seem to work just fine. The patch adding `linux-*musl*` targets to `gprconfig_kb` might be worthwhile submitting upstream, I'll look into that later.

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2025-03-30 21:01 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-12-21  1:55 [PR PATCH] New package: gprbuild-25.0.0 Tevo45
2024-12-21  2:27 ` [PR REVIEW] " abenson
2024-12-22 19:33 ` [PR PATCH] [Updated] " Tevo45
2024-12-22 19:37 ` [PR REVIEW] " Tevo45
2024-12-22 19:44 ` Tevo45
2024-12-22 19:44 ` Tevo45
2024-12-22 19:45 ` Tevo45
2024-12-22 19:48 ` [PR PATCH] [Updated] " Tevo45
2024-12-22 19:56 ` Tevo45
2024-12-22 20:00 ` [PR PATCH] [Updated] " Tevo45
2024-12-22 20:00 ` Tevo45
2025-01-12  3:12 ` Tevo45
2025-01-12  3:14 ` [PR PATCH] [Updated] " Tevo45
2025-01-12 21:59 ` abenson
2025-03-30 18:43 ` [PR PATCH] [Updated] " Tevo45
2025-03-30 19:05 ` Tevo45
2025-03-30 19:06 ` Tevo45
2025-03-30 19:12 ` [PR PATCH] [Updated] " Tevo45
2025-03-30 21:01 ` Tevo45

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).