git: 548c97a157b8 - main - java/autofirma: [new port]. Digital signature application

From: Fernando Apesteguía <fernape_at_FreeBSD.org>
Date: Fri, 12 Dec 2025 18:47:58 UTC
The branch main has been updated by fernape:

URL: https://cgit.FreeBSD.org/ports/commit/?id=548c97a157b80d813cad1cdef4e0182e74c3fb2b

commit 548c97a157b80d813cad1cdef4e0182e74c3fb2b
Author:     Fernando Apesteguía <fernape@FreeBSD.org>
AuthorDate: 2025-11-01 19:28:27 +0000
Commit:     Fernando Apesteguía <fernape@FreeBSD.org>
CommitDate: 2025-12-12 18:46:30 +0000

    java/autofirma: [new port]. Digital signature application
    
    Autofirma is a java application used to sign digital documents.
    It is the official application of the Spanish Government and as such it is
    required to perform many online tasks with the Administration.
    
    Reviewed by:            michaelo@
    Differential Revision:  https://reviews.freebsd.org/D53807
---
 security/Makefile                          |  1 +
 security/autofirma/Makefile                | 47 ++++++++++++++++++++++++++++++
 security/autofirma/distinfo                |  3 ++
 security/autofirma/files/Autofirma.js.in   |  4 +++
 security/autofirma/files/afirma.desktop.in | 16 ++++++++++
 security/autofirma/files/autofirma.in      |  5 ++++
 security/autofirma/files/pkg-message.in    |  9 ++++++
 security/autofirma/pkg-descr               |  4 +++
 security/autofirma/pkg-plist               |  5 ++++
 9 files changed, 94 insertions(+)

diff --git a/security/Makefile b/security/Makefile
index 176dfc48ad3f..67f44efbc33a 100644
--- a/security/Makefile
+++ b/security/Makefile
@@ -36,6 +36,7 @@
     SUBDIR += assh
     SUBDIR += authenticator
     SUBDIR += authoscope
+    SUBDIR += autofirma
     SUBDIR += autossh
     SUBDIR += aws-c-auth
     SUBDIR += aws-c-cal
diff --git a/security/autofirma/Makefile b/security/autofirma/Makefile
new file mode 100644
index 000000000000..034ca3b487e2
--- /dev/null
+++ b/security/autofirma/Makefile
@@ -0,0 +1,47 @@
+PORTNAME=	autofirma
+DISTVERSION=	1.9
+CATEGORIES=	security
+MASTER_SITES=	https://firmaelectronica.gob.es/content/dam/firmaelectronica/descargas-software/autofirma19/
+DISTNAME=	Autofirma_Linux_Debian
+
+MAINTAINER=	fernape@FreeBSD.org
+COMMENT=	Spanish Government digital signature application
+WWW=		https://sedediatid.digital.gob.es/es-es/firmaelectronica/Paginas/AutoFirma.aspx
+
+LICENSE=	GPLv2 EUPL11
+LICENSE_COMB=	dual
+LICENSE_FILE=	${WRKSRC}/usr/share/common-licenses/eupl-1.1.txt
+
+LIB_DEPENDS=	libnss3.so:security/nss
+
+USES=		desktop-file-utils java zip
+JAVA_VERSION=	24
+JAVA_VENDOR=	openjdk
+
+DATADIR=	${JAVASHAREDIR}/${PORTNAME}
+
+NO_BUILD=	yes
+
+SUB_FILES=	${PORTNAME} \
+		Autofirma.js \
+		afirma.desktop \
+		pkg-message
+SUB_LIST+=	JAVA_HOME=${JAVA_HOME} \
+		JAVA=${JAVA}
+
+WRKSRC=${WRKDIR}
+
+post-extract:
+	${TAR} -C ${WRKDIR} -xvzf ${WRKDIR}/autofirma_1_9.deb
+	${TAR} -C ${WRKDIR} -xvzf ${WRKDIR}/data.tar.gz
+	${ZIP_CMD} -d ${PORTNAME}.jar "nss/WINDOWS/*" "windows/*" "osx/*" "linux/*"
+
+do-install:
+	${MKDIR} ${STAGEDIR}${DATADIR}
+	${INSTALL_SCRIPT} ${WRKDIR}/${PORTNAME} ${STAGEDIR}${PREFIX}/bin/
+	${INSTALL_DATA} ${WRKSRC}/usr/lib/Autofirma/autofirma.jar ${STAGEDIR}${JAVAJARDIR}
+	${INSTALL_DATA} ${WRKSRC}/usr/lib/Autofirma/Autofirma.png ${STAGEDIR}${DATADIR}
+	${INSTALL_DATA} ${WRKDIR}/afirma.desktop ${STAGEDIR}${PREFIX}/share/applications/
+	${INSTALL_DATA} ${WRKDIR}/Autofirma.js ${STAGEDIR}${DATADIR}
+
+.include <bsd.port.mk>
diff --git a/security/autofirma/distinfo b/security/autofirma/distinfo
new file mode 100644
index 000000000000..451ef847a707
--- /dev/null
+++ b/security/autofirma/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1762021451
+SHA256 (Autofirma_Linux_Debian.zip) = c29c251f2ee9f00dfc87f9582677dbd436a83565986ab0417ff065ceae716798
+SIZE (Autofirma_Linux_Debian.zip) = 67295518
diff --git a/security/autofirma/files/Autofirma.js.in b/security/autofirma/files/Autofirma.js.in
new file mode 100644
index 000000000000..3a5451fe2bbc
--- /dev/null
+++ b/security/autofirma/files/Autofirma.js.in
@@ -0,0 +1,4 @@
+pref("network.protocol-handler.app.afirma","%%LOCALBASE%%/bin/autofirma");
+pref("network.protocol-handler.warn-external.afirma",false);
+pref("network.protocol-handler.external.afirma",true);
+
diff --git a/security/autofirma/files/afirma.desktop.in b/security/autofirma/files/afirma.desktop.in
new file mode 100644
index 000000000000..6005ea9bde1a
--- /dev/null
+++ b/security/autofirma/files/afirma.desktop.in
@@ -0,0 +1,16 @@
+[Desktop Entry]
+Encoding=UTF-8
+Version=1.9
+Name=Autofirma
+Type=Application
+Terminal=false
+Categories=Office;Utilities;Signature;Java
+Exec=%%LOCALBASE%%/bin/autofirma %u
+Icon=%%DATADIR%%/Autofirma.png
+GenericName=Herramienta de firma
+Comment=Herramienta de firma
+MimeType=x-scheme-handler/afirma;
+StartupNotify=true
+StartupWMClass=autofirma
+Name[es_ES]=Autofirma
+
diff --git a/security/autofirma/files/autofirma.in b/security/autofirma/files/autofirma.in
new file mode 100644
index 000000000000..b124586a67d7
--- /dev/null
+++ b/security/autofirma/files/autofirma.in
@@ -0,0 +1,5 @@
+#!/bin/sh
+export AFIRMA_NSS_HOME_ENV=%%LOCALBASE%%/lib/
+JAVA_OPTS="-Djdk.tls.maxHandshakeMessageSize=65536 \
+		   -Des.gob.afirma.keystores.mozilla.UseEnvironmentVariables=true"
+%%JAVA%% ${JAVA_OPTS} -jar %%JAVAJARDIR%%/autofirma.jar "$@"
diff --git a/security/autofirma/files/pkg-message.in b/security/autofirma/files/pkg-message.in
new file mode 100644
index 000000000000..df006385bd4b
--- /dev/null
+++ b/security/autofirma/files/pkg-message.in
@@ -0,0 +1,9 @@
+[
+{ type: install
+  message: <<EOM
+You can install the preferences file Autofirma.js in your Firefox profile:
+
+ln -s %%DATADIR%%/Autofirma.js ~/.mozilla/firefox/xxxxxxx.default-release/
+EOM
+}
+]
diff --git a/security/autofirma/pkg-descr b/security/autofirma/pkg-descr
new file mode 100644
index 000000000000..cbda164f3fd1
--- /dev/null
+++ b/security/autofirma/pkg-descr
@@ -0,0 +1,4 @@
+AutoFirma is a desktop application that allows signing documents with digital
+certificates.
+It is the official digital signature application of the Spanish Government and a
+requirement for many digital procedures.
diff --git a/security/autofirma/pkg-plist b/security/autofirma/pkg-plist
new file mode 100644
index 000000000000..17a03206e75e
--- /dev/null
+++ b/security/autofirma/pkg-plist
@@ -0,0 +1,5 @@
+bin/autofirma
+share/applications/afirma.desktop
+%%DATADIR%%/Autofirma.js
+%%DATADIR%%/Autofirma.png
+%%JAVAJARDIR%%/autofirma.jar