git: 930f7ed0ac0a - main - devel/alire: New Port, alr, Ada LIbrary REpository (ALIRE) management tool

From: Robert Clausecker <fuz_at_FreeBSD.org>
Date: Wed, 04 Oct 2023 20:03:06 UTC
The branch main has been updated by fuz:

URL: https://cgit.FreeBSD.org/ports/commit/?id=930f7ed0ac0ad777d9a83b030f7dabe9b6fc883c

commit 930f7ed0ac0ad777d9a83b030f7dabe9b6fc883c
Author:     Alastair Hogge <agh@riseup.net>
AuthorDate: 2023-10-04 03:20:12 +0000
Commit:     Robert Clausecker <fuz@FreeBSD.org>
CommitDate: 2023-10-04 20:01:38 +0000

    devel/alire: New Port, alr, Ada LIbrary REpository (ALIRE) management tool
    
    ALIRE: Ada LIbrary REpository tool, alr.
    
    A catalog of ready-to-use Ada/SPARK libraries plus a command-line tool
    (alr) to obtain, build, and incorporate them into your own projects. It
    aims to fulfill a similar role to Rust’s cargo or OCaml’s opam.
    
    Design principles:
    
    alr is tailored to userspace, in a similar way to Python’s virtualenv. A
    project or workspace will contain all its dependencies.
    
    Properties and dependencies of projects are managed through a TOML file.
    This file exists locally for working copies of projects, and the Alire
    community index stores the files corresponding to its projects.
    
    The complete build environment is automatically set up by Alire, thus
    freeing the user from concerns about installation paths. The user simply
    adds dependencies to the alire.toml manifest, either from the
    command-line (alr with) or a text editor, Alire handles the rest.
    
    WWW: https://github.com/alire-project/alire
    
    PR:             273092
    Differential Revision:  https://reviews.freebsd.org/D41478
---
 devel/Makefile        |  1 +
 devel/alire/Makefile  | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++
 devel/alire/distinfo  |  3 +++
 devel/alire/pkg-descr | 15 +++++++++++++
 devel/alire/pkg-plist | 21 ++++++++++++++++++
 5 files changed, 101 insertions(+)

diff --git a/devel/Makefile b/devel/Makefile
index a386c5549d8c..e63743be84ad 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -155,6 +155,7 @@
     SUBDIR += aifad
     SUBDIR += aixlog
     SUBDIR += ald
+    SUBDIR += alire
     SUBDIR += allegro
     SUBDIR += allegro5
     SUBDIR += amber
diff --git a/devel/alire/Makefile b/devel/alire/Makefile
new file mode 100644
index 000000000000..342a69fd7d71
--- /dev/null
+++ b/devel/alire/Makefile
@@ -0,0 +1,61 @@
+PORTNAME=	alire
+DISTVERSION=	1.2.2
+CATEGORIES=	devel
+MASTER_SITES=	https://github.com/alire-project/${PORTNAME}/releases/download/v${DISTVERSION}/
+DISTNAME=	alr-${DISTVERSION}-full-sources
+
+MAINTAINER=	agh@riseup.net
+COMMENT=	Ada LIbrary REpository (ALIRE) management tool, alr
+WWW=		https://alire.ada.dev/
+
+LICENSE=	GPLv3
+LICENSE_FILE=	${WRKSRC}/LICENSE.txt
+
+BROKEN_i386=	segfault: raised STORAGE_ERROR : s-intman.adb:136 explicit raise
+
+BUILD_DEPENDS=	gprbuild>0:devel/gprbuild
+
+USES=		ada:12,run desktop-file-utils zip
+USE_GCC=	yes:build
+
+_GPR_ARGS=	-j${MAKE_JOBS_NUMBER} -p -XALIRE_OS=freebsd
+
+WRKSRC=		${WRKDIR}/alr-${DISTVERSION}
+
+OPTIONS_DEFINE=	DEBUG DOCS
+OPTIONS_SUB=	yes
+
+DOCS_DESC=	Install Design and Development documentation
+
+.include <bsd.port.options.mk>
+
+.if empty(PORT_OPTIONS:MDEBUG)
+_GPR_ARGS+=	-XALIRE_BUILD_MODE=release
+.else
+WITH_DEBUG=	yes
+.endif
+
+do-build:
+	(cd ${WRKSRC} && \
+		${SETENV} ${MAKE_ENV} gprbuild ${_GPR_ARGS} -P alr_env)
+
+do-install:
+	${MKDIR} ${STAGEDIR}${PREFIX}/bin
+	${INSTALL_PROGRAM} ${WRKSRC}/bin/alr \
+		${STAGEDIR}${PREFIX}/bin
+	${MKDIR} ${STAGEDIR}${PREFIX}/etc/bash_completion.d
+	${INSTALL_DATA} ${WRKSRC}/scripts/alr-completion.bash \
+		${STAGEDIR}${PREFIX}/etc/bash_completion.d/
+	${MKDIR} ${STAGEDIR}${PREFIX}/share/applications
+	${INSTALL_DATA} ${WRKSRC}/resources/alr.desktop \
+		${STAGEDIR}${PREFIX}/share/applications
+	${MKDIR} ${STAGEDIR}${PREFIX}/share/pixmaps
+	${INSTALL_DATA} ${WRKSRC}/resources/alr.png \
+		${STAGEDIR}${PREFIX}/share/pixmaps
+
+do-install-DOCS-on:
+	${MKDIR} ${STAGEDIR}${DOCSDIR}
+	(cd ${WRKSRC}/doc && \
+		${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR})
+
+.include <bsd.port.mk>
diff --git a/devel/alire/distinfo b/devel/alire/distinfo
new file mode 100644
index 000000000000..aa0ad93172dc
--- /dev/null
+++ b/devel/alire/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1691804403
+SHA256 (alr-1.2.2-full-sources.zip) = 8a9efd65a3da4e22ffaf5b146dba8dc125cf4ea26d482a25bcaac85d0d2764d1
+SIZE (alr-1.2.2-full-sources.zip) = 2267709
diff --git a/devel/alire/pkg-descr b/devel/alire/pkg-descr
new file mode 100644
index 000000000000..7b4340358a89
--- /dev/null
+++ b/devel/alire/pkg-descr
@@ -0,0 +1,15 @@
+ALIRE: Ada LIbrary REpository.
+
+A catalog of ready-to-use Ada libraries plus a command-line tool (alr) to
+obtain, build, and use with your own projects.
+
+alr is designed to configure, and deploy custom isolated userspace
+environments, known as a project or workspace. Environments will contain
+all the state, and dependencies it requires for operation.
+
+Properties and dependencies of projects are managed through a TOML file
+(alire.toml, found at the root of Alire workspaces). This file exists locally
+for working copies of projects, and the Alire community index stores the files
+corresponding to its projects.
+
+You can check the environment alr is using with 'alr printenv'
diff --git a/devel/alire/pkg-plist b/devel/alire/pkg-plist
new file mode 100644
index 000000000000..5e6b9951cd10
--- /dev/null
+++ b/devel/alire/pkg-plist
@@ -0,0 +1,21 @@
+bin/alr
+etc/bash_completion.d/alr-completion.bash
+share/applications/alr.desktop
+%%DOCS%%%%DOCSDIR%%/2018-03.alr-draft.pdf
+%%DOCS%%%%DOCSDIR%%/AEPs/aep-0001.md
+%%DOCS%%%%DOCSDIR%%/AEPs/aep-0002.md
+%%DOCS%%%%DOCSDIR%%/alr-logo-black-white.svg
+%%DOCS%%%%DOCSDIR%%/alr-logo-sq.png
+%%DOCS%%%%DOCSDIR%%/alr-logo-white.svg
+%%DOCS%%%%DOCSDIR%%/alr-logo.svg
+%%DOCS%%%%DOCSDIR%%/alr-logo.svg.png
+%%DOCS%%%%DOCSDIR%%/catalog-format-spec.md
+%%DOCS%%%%DOCSDIR%%/classes.graphml
+%%DOCS%%%%DOCSDIR%%/configuration.md
+%%DOCS%%%%DOCSDIR%%/getting-started.md
+%%DOCS%%%%DOCSDIR%%/introduction.md
+%%DOCS%%%%DOCSDIR%%/policies.md
+%%DOCS%%%%DOCSDIR%%/publishing.md
+%%DOCS%%%%DOCSDIR%%/toolchains.md
+%%DOCS%%%%DOCSDIR%%/user-changes.md
+share/pixmaps/alr.png