summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--databases/Makefile1
-rw-r--r--databases/dbeaver/Makefile66
-rw-r--r--databases/dbeaver/distinfo9
-rw-r--r--databases/dbeaver/files/dbeaver.desktop.in12
-rw-r--r--databases/dbeaver/files/dbeaver.in5
-rw-r--r--databases/dbeaver/files/patch-features_org.jkiss.dbeaver.ce.feature_build.properties10
-rw-r--r--databases/dbeaver/files/patch-features_org.jkiss.dbeaver.rcp.feature_feature.xml16
-rw-r--r--databases/dbeaver/files/patch-plugins_org.jkiss.dbeaver.launcher_src_org_jkiss_dbeaver_launcher_Constants.java23
-rw-r--r--databases/dbeaver/files/patch-plugins_org.jkiss.dbeaver.launcher_src_org_jkiss_dbeaver_launcher_DBeaverLauncher.java20
-rw-r--r--databases/dbeaver/files/patch-pom.xml90
-rw-r--r--databases/dbeaver/files/patch-product_community_DBeaver.product18
-rw-r--r--databases/dbeaver/files/patch-product_community_pom.xml33
-rw-r--r--databases/dbeaver/pkg-descr10
13 files changed, 313 insertions, 0 deletions
diff --git a/databases/Makefile b/databases/Makefile
index 325309b31aca..e686734ab7f3 100644
--- a/databases/Makefile
+++ b/databases/Makefile
@@ -48,6 +48,7 @@
SUBDIR += db
SUBDIR += db18
SUBDIR += db5
+ SUBDIR += dbeaver
SUBDIR += dbf
SUBDIR += dbh
SUBDIR += dbixx
diff --git a/databases/dbeaver/Makefile b/databases/dbeaver/Makefile
new file mode 100644
index 000000000000..41cc463ba8b2
--- /dev/null
+++ b/databases/dbeaver/Makefile
@@ -0,0 +1,66 @@
+PORTNAME= dbeaver
+DISTVERSION= 25.1.3
+CATEGORIES= databases java
+
+MAINTAINER= freebsd@sysctl.cz
+COMMENT= Free universal database tool and SQL client
+WWW= https://dbeaver.io
+
+LICENSE= APACHE20
+LICENSE_FILE= ${WRKSRC}/LICENSE.md
+
+ONLY_FOR_ARCHS= aarch64 amd64
+
+BUILD_DEPENDS= maven39>0:devel/maven39
+
+USES= dos2unix java
+DOS2UNIX_GLOB= *.MF *.css *.exsd *.java *.properties *.txt *.xml
+USE_GITHUB= yes
+GH_TUPLE= dbeaver:dbeaver-common:1379027:common/../dbeaver-common \
+ dbeaver:dbeaver-jdbc-libsql:a2c75c1:jdbc/../dbeaver-jdbc-libsql
+JAVA_VERSION= 21+
+
+SUB_FILES= ${PORTNAME} ${PORTNAME}.desktop
+
+.include <bsd.port.pre.mk>
+
+# For create local maven repository (m2) run: make -DMAINTAINER_MODE
+.if !defined(MAINTAINER_MODE)
+MASTER_SITES+= LOCAL/vvd:deps
+DISTFILES+= ${PORTNAME}-${PORTVERSION}-deps.tar.xz:deps
+OFFLINE= -o
+.endif # !defined(MAINTAINER_MODE)
+
+MAVEN_ENV= MAVEN_OPTS=-Xmx2048m JAVA_HOME=${JAVA_HOME}
+
+# To make the build working, set the (maven) architecture to x86_64 instead of amd64
+# Finally there are problems with amd64
+MAVEN_ARCH= ${ARCH:S|amd64|x86_64|}
+
+MAVEN_PARAMS= ${OFFLINE} \
+ -Dmaven.repo.local=${WRKDIR}/m2 \
+ -Dnative=gtk.freebsd.${MAVEN_ARCH} \
+ -DskipTests clean verify \
+ -T ${MAKE_JOBS_NUMBER}
+
+DBEAVER_PATH= product/community/target/products/org.jkiss.dbeaver.core.product/freebsd/gtk/${MAVEN_ARCH}/dbeaver
+
+do-build:
+ @(cd ${WRKSRC}/product/aggregate && \
+ ${SETENV} ${MAVEN_ENV} ${LOCALBASE}/bin/mvn ${MAVEN_PARAMS})
+
+do-install:
+ ${MKDIR} ${STAGEDIR}${DATADIR}
+ @(cd ${WRKSRC}/${DBEAVER_PATH} && ${COPYTREE_SHARE} . ${STAGEDIR}${DATADIR})
+ ${INSTALL_PROGRAM} ${WRKSRC}/${DBEAVER_PATH}/${PORTNAME} ${STAGEDIR}${DATADIR}
+ ${INSTALL_SCRIPT} ${WRKDIR}/${PORTNAME} ${STAGEDIR}${PREFIX}/bin/${PORTNAME}
+ ${INSTALL_DATA} ${WRKDIR}/${PORTNAME}.desktop ${STAGEDIR}${DESKTOPDIR}
+ ${STRIP_CMD} ${STAGEDIR}${DATADIR}/dbeaver \
+ ${STAGEDIR}${DATADIR}/plugins/org.eclipse.equinox.launcher.gtk.freebsd.x86_64_1.2.1400.v20250607-0038/eclipse_11911.so
+ @(cd ${STAGEDIR}${PREFIX} && \
+ ${FIND} -s "share/dbeaver" -not -type d >> ${TMPPLIST} && \
+ ${FIND} -s -d "share/dbeaver" -type d -empty | ${SED} -ne 's,^,@dir ,p' >> ${TMPPLIST})
+ ${ECHO} "bin/${PORTNAME}" >> ${TMPPLIST}
+ ${ECHO} "share/applications/${PORTNAME}.desktop" >> ${TMPPLIST}
+
+.include <bsd.port.post.mk>
diff --git a/databases/dbeaver/distinfo b/databases/dbeaver/distinfo
new file mode 100644
index 000000000000..588c8e75462a
--- /dev/null
+++ b/databases/dbeaver/distinfo
@@ -0,0 +1,9 @@
+TIMESTAMP = 1754141414
+SHA256 (dbeaver-25.1.3-deps.tar.xz) = ca7a6d58d5c159e2055174f1a8a85c8a8d07d533f08ad2eb2675aecf76e07a18
+SIZE (dbeaver-25.1.3-deps.tar.xz) = 618508636
+SHA256 (dbeaver-dbeaver-25.1.3_GH0.tar.gz) = 786ed277c3221419d5b3c67103e27f68733b32647c19ae7ef1d08d8871855fa0
+SIZE (dbeaver-dbeaver-25.1.3_GH0.tar.gz) = 9670323
+SHA256 (dbeaver-dbeaver-common-1379027_GH0.tar.gz) = feb40fc85a97bb0c2f1b6de7b315f7ce4e328b2f4458566275182f7b06536b1f
+SIZE (dbeaver-dbeaver-common-1379027_GH0.tar.gz) = 103446
+SHA256 (dbeaver-dbeaver-jdbc-libsql-a2c75c1_GH0.tar.gz) = 3afd08e2c12adb0ff470b1f2bb6cad4d425f99b24cd4b009c2e70aa214c2077f
+SIZE (dbeaver-dbeaver-jdbc-libsql-a2c75c1_GH0.tar.gz) = 23611
diff --git a/databases/dbeaver/files/dbeaver.desktop.in b/databases/dbeaver/files/dbeaver.desktop.in
new file mode 100644
index 000000000000..bdf0d22fbbb7
--- /dev/null
+++ b/databases/dbeaver/files/dbeaver.desktop.in
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Version=1.0
+Encoding=UTF-8
+Type=Application
+Name=Dbeaver community edition
+GenericName=Dbeaver community edition
+Comment=Dbever Development Environment
+Icon=%%DATADIR%%/dbeaver.png
+Exec=%%PREFIX%%/bin/dbeaver
+Terminal=false
+StartupNotify=true
+Categories=Application;Development;
diff --git a/databases/dbeaver/files/dbeaver.in b/databases/dbeaver/files/dbeaver.in
new file mode 100644
index 000000000000..dee4aa79de05
--- /dev/null
+++ b/databases/dbeaver/files/dbeaver.in
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+export JAVA_HOME=${JAVA_HOME:-"%%JAVA_HOME%%"}
+
+exec "%%DATADIR%%/dbeaver" "$@"
diff --git a/databases/dbeaver/files/patch-features_org.jkiss.dbeaver.ce.feature_build.properties b/databases/dbeaver/files/patch-features_org.jkiss.dbeaver.ce.feature_build.properties
new file mode 100644
index 000000000000..9e0607961714
--- /dev/null
+++ b/databases/dbeaver/files/patch-features_org.jkiss.dbeaver.ce.feature_build.properties
@@ -0,0 +1,10 @@
+--- features/org.jkiss.dbeaver.ce.feature/build.properties.orig 2025-07-18 15:47:12 UTC
++++ features/org.jkiss.dbeaver.ce.feature/build.properties
+@@ -1,5 +1,7 @@ root = ../../docs/root,target/generated
+ bin.includes = feature.xml
+ root = ../../docs/root,target/generated
++root.freebsd.gtk.aarch64 = file:../../product/community/icons/dbeaver.png
++root.freebsd.gtk.x86_64 = file:../../product/community/icons/dbeaver.png
+ root.linux.gtk.aarch64 = file:../../product/community/icons/dbeaver.png
+ root.linux.gtk.x86_64 = file:../../product/community/icons/dbeaver.png
+ #root.macosx.cocoa.x86_64 = target/generated-macos
diff --git a/databases/dbeaver/files/patch-features_org.jkiss.dbeaver.rcp.feature_feature.xml b/databases/dbeaver/files/patch-features_org.jkiss.dbeaver.rcp.feature_feature.xml
new file mode 100644
index 000000000000..abfad9b2e4df
--- /dev/null
+++ b/databases/dbeaver/files/patch-features_org.jkiss.dbeaver.rcp.feature_feature.xml
@@ -0,0 +1,16 @@
+--- features/org.jkiss.dbeaver.rcp.feature/feature.xml.orig 2025-07-18 15:47:12 UTC
++++ features/org.jkiss.dbeaver.rcp.feature/feature.xml
+@@ -25,10 +25,13 @@
+ <plugin id="org.eclipse.equinox.security.win32" ws="win32" version="0.0.0"/>
+ <plugin id="org.eclipse.equinox.security.macosx" ws="macosx" version="0.0.0"/>
+ <plugin id="org.eclipse.equinox.security.linux" ws="linux" version="0.0.0"/>
++ <plugin id="org.eclipse.equinox.security.freebsd" os="freebsd" version="0.0.0"/>
+
+ <plugin id="org.eclipse.compare.win32" ws="win32" version="0.0.0"/>
+
+ <!-- Filesystem -->
++ <plugin id="org.eclipse.core.filesystem.freebsd.x86_64" os="freebsd" arch="x86_64" version="0.0.0"/>
++ <plugin id="org.eclipse.core.filesystem.freebsd.aarch64" os="freebsd" arch="aarch64" version="0.0.0"/>
+ <plugin id="org.eclipse.core.filesystem.linux.x86_64" os="linux" arch="x86_64" version="0.0.0"/>
+ <plugin id="org.eclipse.core.filesystem.linux.aarch64" os="linux" arch="aarch64" version="0.0.0"/>
+ <plugin id="org.eclipse.core.filesystem.macosx" os="macosx" version="0.0.0"/>
diff --git a/databases/dbeaver/files/patch-plugins_org.jkiss.dbeaver.launcher_src_org_jkiss_dbeaver_launcher_Constants.java b/databases/dbeaver/files/patch-plugins_org.jkiss.dbeaver.launcher_src_org_jkiss_dbeaver_launcher_Constants.java
new file mode 100644
index 000000000000..be4b7b1d3549
--- /dev/null
+++ b/databases/dbeaver/files/patch-plugins_org.jkiss.dbeaver.launcher_src_org_jkiss_dbeaver_launcher_Constants.java
@@ -0,0 +1,23 @@
+--- plugins/org.jkiss.dbeaver.launcher/src/org/jkiss/dbeaver/launcher/Constants.java.orig 2025-07-18 15:47:12 UTC
++++ plugins/org.jkiss.dbeaver.launcher/src/org/jkiss/dbeaver/launcher/Constants.java
+@@ -30,6 +30,7 @@ public class Constants {
+ public static final String INTERNAL_OS_OS400 = "OS/400"; //$NON-NLS-1$
+ public static final String INTERNAL_OS_OS390 = "OS/390"; //$NON-NLS-1$
+ public static final String INTERNAL_OS_ZOS = "z/OS"; //$NON-NLS-1$
++ public static final String INTERNAL_OS_FREEBSD = "FreeBSD"; //$NON-NLS-1$
+
+ public static final String ARCH_X86 = "x86";//$NON-NLS-1$
+ public static final String ARCH_X86_64 = "x86_64";//$NON-NLS-1$
+@@ -45,6 +46,12 @@ public class Constants {
+ * Linux-based operating system.
+ */
+ public static final String OS_LINUX = "linux";//$NON-NLS-1$
++
++ /**
++ * Constant string (value "freebsd") indicating the platform is running on a
++ * FreeBSD-based operating system.
++ */
++ public static final String OS_FREEBSD = "freebsd";//$NON-NLS-1$
+
+ /**
+ * Constant string (value "aix") indicating the platform is running on an
diff --git a/databases/dbeaver/files/patch-plugins_org.jkiss.dbeaver.launcher_src_org_jkiss_dbeaver_launcher_DBeaverLauncher.java b/databases/dbeaver/files/patch-plugins_org.jkiss.dbeaver.launcher_src_org_jkiss_dbeaver_launcher_DBeaverLauncher.java
new file mode 100644
index 000000000000..0e138171d267
--- /dev/null
+++ b/databases/dbeaver/files/patch-plugins_org.jkiss.dbeaver.launcher_src_org_jkiss_dbeaver_launcher_DBeaverLauncher.java
@@ -0,0 +1,20 @@
+--- plugins/org.jkiss.dbeaver.launcher/src/org/jkiss/dbeaver/launcher/DBeaverLauncher.java.orig 2025-07-18 15:47:12 UTC
++++ plugins/org.jkiss.dbeaver.launcher/src/org/jkiss/dbeaver/launcher/DBeaverLauncher.java
+@@ -392,6 +392,8 @@ public class DBeaverLauncher {
+ return Constants.WS_WIN32;
+ if (osName.equals(Constants.OS_LINUX))
+ return Constants.WS_GTK;
++ if (osName.equals(Constants.OS_FREEBSD))
++ return Constants.WS_GTK;
+ if (osName.equals(Constants.OS_MACOSX))
+ return Constants.WS_COCOA;
+ if (osName.equals(Constants.OS_HPUX))
+@@ -421,6 +423,8 @@ public class DBeaverLauncher {
+ return Constants.OS_SOLARIS;
+ if (osName.equalsIgnoreCase(Constants.INTERNAL_OS_LINUX))
+ return Constants.OS_LINUX;
++ if (osName.equalsIgnoreCase(Constants.INTERNAL_OS_FREEBSD))
++ return Constants.OS_FREEBSD;
+ if (osName.equalsIgnoreCase(Constants.INTERNAL_OS_QNX))
+ return Constants.OS_QNX;
+ if (osName.equalsIgnoreCase(Constants.INTERNAL_OS_AIX))
diff --git a/databases/dbeaver/files/patch-pom.xml b/databases/dbeaver/files/patch-pom.xml
new file mode 100644
index 000000000000..dadd5df84883
--- /dev/null
+++ b/databases/dbeaver/files/patch-pom.xml
@@ -0,0 +1,90 @@
+--- pom.xml.orig 2025-07-18 15:47:12 UTC
++++ pom.xml
+@@ -19,6 +19,19 @@
+ <properties>
+ <dbeaver-product>DBeaver</dbeaver-product>
+
++ <!-- Eclipse Platform version, to match with the 'eclipse-version' common property -->
++ <eclipse-platform-version>4.36.0</eclipse-platform-version>
++ <!-- Eclipse SWT version, to match with the 'eclipse-version' common property -->
++ <swt-version>3.130.0</swt-version>
++ <!-- temp FreeBSD p2 repo, until Eclipse's official p2 repo supports FreeBSD aarch64/x86_64 platforms -->
++ <freebsd-p2-repo.url>https://chirontt.github.io/p2/platform/repository/${eclipse-platform-version}/</freebsd-p2-repo.url>
++
++ <!-- embedded JustJ JRE settings, using the 'java.version' common property -->
++ <justj-jre-version>${java.version}</justj-jre-version>
++ <justj.jres.repository>https://download.eclipse.org/justj/jres/${justj-jre-version}/updates/release/latest</justj.jres.repository>
++ <!-- the JustJ execution environment for the target-platform-configuration -->
++ <execution.environment>org.eclipse.justj.openjdk.hotspot.jre.full.stripped-${justj-jre-version}</execution.environment>
++
+ <key.storage.path>/etc/</key.storage.path>
+ <tsa/>
+ </properties>
+@@ -31,6 +44,20 @@
+ <module>features</module>
+ </modules>
+
++ <repositories>
++ <repository>
++ <!-- Eclipse JustJ p2 repo -->
++ <id>justj-p2-repo</id>
++ <url>${justj.jres.repository}</url>
++ <layout>p2</layout>
++ </repository>
++ <!-- temp FreeBSD p2 repo, until Eclipse's official p2 repo supports FreeBSD aarch64/x86_64 platforms -->
++ <repository>
++ <id>freebsd-p2-repo</id>
++ <url>${freebsd-p2-repo.url}</url>
++ <layout>p2</layout>
++ </repository>
++ </repositories>
+ <build>
+ <sourceDirectory>${project.basedir}/src</sourceDirectory>
+ <testSourceDirectory>${project.basedir}/tests</testSourceDirectory>
+@@ -50,6 +77,7 @@
+ <artifactId>target-platform-configuration</artifactId>
+ <version>${tycho-version}</version>
+ <configuration>
++ <executionEnvironment>${execution.environment}</executionEnvironment>
+ <pomDependencies>consider</pomDependencies>
+ <environments>
+ <environment>
+@@ -63,6 +91,11 @@
+ <arch>x86_64</arch>
+ </environment>
+ <environment>
++ <os>freebsd</os>
++ <ws>gtk</ws>
++ <arch>x86_64</arch>
++ </environment>
++ <environment>
+ <os>macosx</os>
+ <ws>cocoa</ws>
+ <arch>x86_64</arch>
+@@ -85,8 +118,7 @@
+ <version>${tycho-version}</version>
+ <configuration>
+ <useProjectSettings>false</useProjectSettings>
+- <source>${java.version}</source>
+- <target>${java.version}</target>
++ <release>${java.version}</release>
+ <compilerVersion>${java.version}</compilerVersion>
+ </configuration>
+ </plugin>
+@@ -169,6 +201,16 @@
+ </environment>
+ <environment>
+ <os>linux</os>
++ <ws>gtk</ws>
++ <arch>aarch64</arch>
++ </environment>
++ <environment>
++ <os>freebsd</os>
++ <ws>gtk</ws>
++ <arch>x86_64</arch>
++ </environment>
++ <environment>
++ <os>freebsd</os>
+ <ws>gtk</ws>
+ <arch>aarch64</arch>
+ </environment>
diff --git a/databases/dbeaver/files/patch-product_community_DBeaver.product b/databases/dbeaver/files/patch-product_community_DBeaver.product
new file mode 100644
index 000000000000..4712adc4fd4f
--- /dev/null
+++ b/databases/dbeaver/files/patch-product_community_DBeaver.product
@@ -0,0 +1,18 @@
+--- product/community/DBeaver.product.orig 2025-07-18 15:47:12 UTC
++++ product/community/DBeaver.product
+@@ -50,6 +50,7 @@
+
+ <launcher name="dbeaver">
+ <linux icon="/icons/dbeaver.xpm"/>
++ <freebsd icon="/icons/dbeaver.xpm"/>
+ <macosx icon="/icons/dbeaver.icns"/>
+ <solaris/>
+ <win useIco="true">
+@@ -85,6 +86,7 @@
+
+ <features>
+ <feature id="org.jkiss.dbeaver.ce.feature"/>
++ <feature id="org.eclipse.justj.openjdk.hotspot.jre.full.stripped" installMode="root"/>
+ </features>
+
+ <configurations>
diff --git a/databases/dbeaver/files/patch-product_community_pom.xml b/databases/dbeaver/files/patch-product_community_pom.xml
new file mode 100644
index 000000000000..8a20fef8cc7a
--- /dev/null
+++ b/databases/dbeaver/files/patch-product_community_pom.xml
@@ -0,0 +1,33 @@
+--- product/community/pom.xml.orig 2025-07-18 15:47:12 UTC
++++ product/community/pom.xml
+@@ -21,6 +21,9 @@
+ <artifactId>tycho-p2-director-plugin</artifactId>
+ <version>${tycho-version}</version>
+ <configuration>
++ <formats>
++ <freebsd>tar.gz</freebsd>
++ </formats>
+ <products>
+ <product>
+ <id>org.jkiss.dbeaver.core.product</id>
+@@ -30,6 +33,7 @@
+ <macosx>DBeaver.app</macosx>
+ <win32>dbeaver</win32>
+ <linux>dbeaver</linux>
++ <freebsd>dbeaver</freebsd>
+ <solaris>dbeaver</solaris>
+ </rootFolders>
+ </product>
+@@ -40,6 +44,12 @@
+ <id>materialize-products</id>
+ <goals>
+ <goal>materialize-products</goal>
++ </goals>
++ </execution>
++ <execution>
++ <id>archive-products</id>
++ <goals>
++ <goal>archive-products</goal>
+ </goals>
+ </execution>
+ </executions>
diff --git a/databases/dbeaver/pkg-descr b/databases/dbeaver/pkg-descr
new file mode 100644
index 000000000000..bd0e061e361d
--- /dev/null
+++ b/databases/dbeaver/pkg-descr
@@ -0,0 +1,10 @@
+Free multi-platform database tool for developers, SQL programmers, database
+administrators and analysts.
+
+ * Has a lot of features including schema editor, SQL editor, data editor, AI
+ integration, ER diagrams, data export/import/migration, SQL execution plans,
+ database administration tools, database dashboards, Spatial data viewer,
+ proxy and SSH tunnelling, custom database drivers editor, etc.
+ * Out of the box supports more than 100 database drivers.
+ * Supports any database which has JDBC or ODBC driver (basically - almost all
+ existing databases).