Skip to content

Possible patches and suggestions for packaging on OpenBSD #162

Description

@ZenitDS

Hello,

I started a package of gprbuild for OpenBSD that uses the bootstrap script.

I was able to build, install and then use it to build Alire just fine and without errors or warnings.

However, I am not sure if some change to the source would be needed to fully support OpenBSD, so any comments, ideas and suggestions appreciated. Maybe this is helpful: AdaCore/gprconfig_kb@2f58b6b

The diff would be placed at /usr/ports/devel/gprbuild for anyone that plans on building this on their machine.

Last but not least, I found that this built without issues. That is quite infrequent on OpenBSD and very much appreciated 😄.

Index: Makefile
===================================================================
RCS file: Makefile
diff -N Makefile
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ Makefile	23 Mar 2026 18:43:04 -0000
@@ -0,0 +1,44 @@
+
+COMMENT = build system designed to construct multi-language systems
+
+V = 25.0.0
+DISTNAME = gprbuild-${V}
+REVISION = 0
+
+CATEGORIES = devel
+
+HOMEPAGE = https://github.com/AdaCore/gprbuild
+
+MAINTAINER = ports@openbsd.org
+
+# GLPv3+
+PERMIT_PACKAGE = Probably Yes, this is GPLv3
+PERMIT_DISTFILES = Probably Yes, this is GPLv3
+
+WANTLIB += c pthread
+
+SITES = https://github.com/
+
+BUILD_DEPENDS = lang/gcc/15,-ada
+
+DISTFILES += gprbuild-${V}{AdaCore/gprbuild/archive/refs/tags/v${V}}.tar.gz
+DISTFILES += xmlada-${V}{AdaCore/xmlada/archive/refs/tags/v${V}}.tar.gz
+DISTFILES += gprconfig_kb-${V}{AdaCore/gprconfig_kb/archive/refs/tags/v${V}}.tar.gz
+
+# We use the bootstrap script because building gprbuild requires gprbuild
+do-build:
+	cd ${WRKDIR}/gprbuild-${V};		\
+	./bootstrap.sh				\
+		--with-xmlada=../xmlada-${V}	\
+ 		--with-kb=../gprconfig_kb-${V}	\
+ 		--build
+
+do-install:
+	cd ${WRKDIR}/gprbuild-${V};		\
+	./bootstrap.sh				\
+		--prefix=/usr/local		\
+		--with-xmlada=../xmlada-${V}	\
+ 		--with-kb=../gprconfig_kb-${V}	\
+ 		--install
+
+.include <bsd.port.mk>
Index: distinfo
===================================================================
RCS file: distinfo
diff -N distinfo
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ distinfo	23 Mar 2026 18:43:04 -0000
@@ -0,0 +1,6 @@
+SHA256 (gprbuild-25.0.0.tar.gz) = 0S+UwewLbiGfaxYvcfVxKdIkJud5gJL1+FuewsyBi/E=
+SHA256 (gprconfig_kb-25.0.0.tar.gz) = gC5tOKOxEIl5JKnBbhQ8uGNg8t3pS7W5FEx8OR43sSE=
+SHA256 (xmlada-25.0.0.tar.gz) = 27WYSgkxMRx6eHpnnvTPru7dNXR0pYXcFwFA7yJR3Mo=
+SIZE (gprbuild-25.0.0.tar.gz) = 940774
+SIZE (gprconfig_kb-25.0.0.tar.gz) = 44165
+SIZE (xmlada-25.0.0.tar.gz) = 1082553
Index: pkg/DESCR
===================================================================
RCS file: pkg/DESCR
diff -N pkg/DESCR
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ pkg/DESCR	23 Mar 2026 18:43:04 -0000
@@ -0,0 +1,4 @@
+GPRbuild is a generic build tool designed for the construction of large
+multi-language systems organized into subsystems and libraries. It is
+well-suited for compiled languages supporting separate compilation, such as
+Ada, C, C++ and Fortran.
Index: pkg/PLIST
===================================================================
RCS file: pkg/PLIST
diff -N pkg/PLIST
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ pkg/PLIST	23 Mar 2026 18:43:04 -0000
@@ -0,0 +1,77 @@
+@bin bin/gprbuild
+@bin bin/gprclean
+@bin bin/gprconfig
+@bin bin/gprinstall
+@bin bin/gprls
+@bin bin/gprname
+libexec/gprbuild/
+@bin libexec/gprbuild/gprbind
+@bin libexec/gprbuild/gprlib
+share/gpr/
+share/gpr/_default.gpr
+share/gprconfig/
+share/gprconfig/0_default.xml
+share/gprconfig/aamp.xml
+share/gprconfig/aamp_compilers.xml
+share/gprconfig/aarch64-vx7.xml
+share/gprconfig/aarch64-vx7r2.xml
+share/gprconfig/arm-vx6.xml
+share/gprconfig/arm-vx7.xml
+share/gprconfig/arm-vx7r2.xml
+share/gprconfig/asis.xml
+share/gprconfig/asm.xml
+share/gprconfig/baselined.xml
+share/gprconfig/bin_img.xml
+share/gprconfig/c.xml
+share/gprconfig/clean.xml
+share/gprconfig/compilers-arm-vx7.xml
+share/gprconfig/compilers-asis.xml
+share/gprconfig/compilers-baselined.xml
+share/gprconfig/compilers-e500v2-vx6.xml
+share/gprconfig/compilers-e500v2-vx653.xml
+share/gprconfig/compilers-e500v2-vx7.xml
+share/gprconfig/compilers-e500v2-vx7r2.xml
+share/gprconfig/compilers-ppc-vx653.xml
+share/gprconfig/compilers-ppc-vx7.xml
+share/gprconfig/compilers-ppc-vx7r2.xml
+share/gprconfig/compilers-ppc64-vx7.xml
+share/gprconfig/compilers-ppc64-vx7r2.xml
+share/gprconfig/compilers-vxworks.xml
+share/gprconfig/compilers-x86-vx7.xml
+share/gprconfig/compilers-x86_64-vx7.xml
+share/gprconfig/compilers.xml
+share/gprconfig/cpp.xml
+share/gprconfig/cross.xml
+share/gprconfig/e500v2-vx6.xml
+share/gprconfig/e500v2-vx653.xml
+share/gprconfig/e500v2-vx7.xml
+share/gprconfig/e500v2-vx7r2.xml
+share/gprconfig/env.ent
+share/gprconfig/fallback_targets.xml
+share/gprconfig/fortran.xml
+share/gprconfig/gnat.xml
+share/gprconfig/linker.xml
+share/gprconfig/morello-vx7r2.xml
+share/gprconfig/nocompiler.xml
+share/gprconfig/ppc-vx6.xml
+share/gprconfig/ppc-vx653.xml
+share/gprconfig/ppc-vx7.xml
+share/gprconfig/ppc-vx7r2.xml
+share/gprconfig/ppc64-vx7.xml
+share/gprconfig/ppc64-vx7r2.xml
+share/gprconfig/shortcuts.ent
+share/gprconfig/targetset.xml
+share/gprconfig/tricore-compilers.xml
+share/gprconfig/tricore-configuration.xml
+share/gprconfig/tricore-target.xml
+share/gprconfig/vx6.ent
+share/gprconfig/vx653.ent
+share/gprconfig/vx7.ent
+share/gprconfig/vxworks.ent
+share/gprconfig/vxworks.xml
+share/gprconfig/windres.xml
+share/gprconfig/x86-vx6.xml
+share/gprconfig/x86-vx7.xml
+share/gprconfig/x86-vx7r2.xml
+share/gprconfig/x86_64-vx7.xml
+share/gprconfig/x86_64-vx7r2.xml

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions