diff options
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). |