summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO47
-rw-r--r--.gitignore4
-rw-r--r--PKGBUILD154
-rw-r--r--dbeaver-ce.desktop13
-rw-r--r--dbeaver-ce.hook12
-rw-r--r--dbeaver-ce.install13
-rw-r--r--dbeaver-ce.profile.gzbin0 -> 97767 bytes
-rw-r--r--dbeaver-ce.sh6
-rwxr-xr-xmksrcinfo6
-rw-r--r--packaging_steps.md8
10 files changed, 185 insertions, 78 deletions
diff --git a/.SRCINFO b/.SRCINFO
index f018edbc3c04..302c9ddf0652 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,29 +1,36 @@
pkgbase = dbeaver-ce
- pkgdesc = An universal database tool for developers and database administrators. Community Edition
- pkgver = 6.0.5
+ pkgdesc = Free Universal SQL Client for Developers and Database Administrators (Community Edition)
+ pkgver = 21.0.2
pkgrel = 1
- url = https://github.com/dbeaver/dbeaver
+ url = https://dbeaver.io/
install = dbeaver-ce.install
- arch = i686
arch = x86_64
- license = GPL
- depends = java-runtime>=1.6
- depends = gtk2
+ license = Apache
+ makedepends = maven
+ makedepends = java-runtime<15
+ depends = java-runtime>=11
+ depends = gtk3
depends = gtk-update-icon-cache
- noextract = dbeaver-ce-6.0.5-linux.gtk.x86.tar.gz
- noextract = dbeaver-ce-6.0.5-linux.gtk.x86_64.tar.gz
+ depends = libsecret
+ optdepends = dbeaver-plugin-office: export data in Microsoft Office Excel format
+ optdepends = dbeaver-plugin-svg-format: save diagrams in SVG format
+ provides = dbeaver-ce
+ conflicts = dbeaver-ce-bin
+ noextract = dbeaver-ce-21.0.2.tar.gz
+ noextract = dbeaver-ce.desktop
+ noextract = dbeaver-ce.sh
+ noextract = dbeaver-ce.profile.gz
+ noextract = dbeaver-ce.hook
+ source = dbeaver-ce-21.0.2.tar.gz::https://github.com/serge-rider/dbeaver/archive/21.0.2.tar.gz
source = dbeaver-ce.desktop
- source = dbeaver-ce.install
- sha256sums = f1dd2cd13732d00a36d95218d59423689112b343b2212744f6c7b6893381ce78
- sha256sums = 0c2a75baa39459fa56159e982d9f28c966837561bd52dffd24bac87b8d65555f
- source_i686 = https://dbeaver.jkiss.org/files/6.0.5/dbeaver-ce-6.0.5-linux.gtk.x86.tar.gz
- source_i686 = https://dbeaver.io/files/6.0.5/checksum/dbeaver-ce-6.0.5-linux.gtk.x86.tar.gz.sha256
- sha256sums_i686 = SKIP
- sha256sums_i686 = SKIP
- source_x86_64 = https://dbeaver.io/files/6.0.5/dbeaver-ce-6.0.5-linux.gtk.x86_64.tar.gz
- source_x86_64 = https://dbeaver.io/files/6.0.5/checksum/dbeaver-ce-6.0.5-linux.gtk.x86_64.tar.gz.sha256
- sha256sums_x86_64 = SKIP
- sha256sums_x86_64 = SKIP
+ source = dbeaver-ce.sh
+ source = dbeaver-ce.profile.gz
+ source = dbeaver-ce.hook
+ sha256sums = 39f9d518d057884a2bfd2a4cee656190fe849b06fd7184b465d159c618a28837
+ sha256sums = a53bcfa37f71e96fdc0ba3df6748d147f29fcb3bc7f35ffad9d876f3e2b072aa
+ sha256sums = ba3c2248960b2b5c6eafa227ec9bd1223e21287a991cd3b912f0b0a984666c80
+ sha256sums = 1863e74bdcf22b7328e6e8487cbebff7d5360e34bde85c1dd226b168b4737034
+ sha256sums = 131e3eb7b97723aa17c08db23a8b588fedef3d99941de1177b90ba3917459bf0
pkgname = dbeaver-ce
diff --git a/.gitignore b/.gitignore
index c0222efcd81d..9e4a8aa2b190 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,7 @@
*.tar.gz
*.tar.xz
+*.tar.zst
+*.sha256
+*-git/
src/
pkg/
-*.sha256
diff --git a/PKGBUILD b/PKGBUILD
index a1b398137df0..006d29c0561c 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,53 +1,119 @@
-# Maintainer: Denys Vitali <denys@denv.it>
-# Based on the work of (dbeaver-ee):
-# * John Sivak <jsivak@winterjewel.com>
-# * Joseph Post <joe@jcpst.com>
-# * Stephan Wienczny <stephan@wienczny.de>
+# Maintainer: Vitor Rodrigues <vitor dot rodrigues at gmail dot com>
+# Contributor: pappy@a_s_c_e_l_i_o_n.c_o_m
pkgname=dbeaver-ce
-pkgver=6.0.5
+pkgver=21.0.2
pkgrel=1
-pkgdesc="An universal database tool for developers and database administrators. Community Edition"
-arch=('i686' 'x86_64')
-url="https://github.com/dbeaver/dbeaver"
-license=("GPL")
-depends=('java-runtime>=1.6' 'gtk2' 'gtk-update-icon-cache')
-install=dbeaver-ce.install
-
-source=(dbeaver-ce.desktop dbeaver-ce.install)
-source_i686=("https://dbeaver.jkiss.org/files/${pkgver}/dbeaver-ce-${pkgver}-linux.gtk.x86.tar.gz"
- "https://dbeaver.io/files/${pkgver}/checksum/dbeaver-ce-${pkgver}-linux.gtk.x86.tar.gz.sha256")
-source_x86_64=("https://dbeaver.io/files/${pkgver}/dbeaver-ce-${pkgver}-linux.gtk.x86_64.tar.gz"
- "https://dbeaver.io/files/${pkgver}/checksum/dbeaver-ce-${pkgver}-linux.gtk.x86_64.tar.gz.sha256")
-sha256sums=('f1dd2cd13732d00a36d95218d59423689112b343b2212744f6c7b6893381ce78'
- '0c2a75baa39459fa56159e982d9f28c966837561bd52dffd24bac87b8d65555f')
-sha256sums_i686=('SKIP' 'SKIP')
-sha256sums_x86_64=('SKIP' 'SKIP')
-
-noextract=("dbeaver-ce-${pkgver}-linux.gtk.x86.tar.gz"
- "dbeaver-ce-${pkgver}-linux.gtk.x86_64.tar.gz")
+pkgdesc="Free Universal SQL Client for Developers and Database Administrators (Community Edition)"
+arch=('x86_64')
+url="https://dbeaver.io/"
+license=("Apache")
+depends=('java-runtime>=11' 'gtk3' 'gtk-update-icon-cache' 'libsecret')
+makedepends=('maven' 'java-runtime<15')
+optdepends=('dbeaver-plugin-office: export data in Microsoft Office Excel format'
+ 'dbeaver-plugin-svg-format: save diagrams in SVG format')
+install="${pkgname}.install"
+provides=(dbeaver-ce)
+conflicts=(dbeaver-ce-bin)
+
+source=("${pkgname}-${pkgver}.tar.gz"::"https://github.com/serge-rider/dbeaver/archive/${pkgver}.tar.gz"
+ "${pkgname}.desktop"
+ "${pkgname}.sh"
+ "${pkgname}.profile.gz"
+ "${pkgname}.hook")
+sha256sums=('39f9d518d057884a2bfd2a4cee656190fe849b06fd7184b465d159c618a28837'
+ 'a53bcfa37f71e96fdc0ba3df6748d147f29fcb3bc7f35ffad9d876f3e2b072aa'
+ 'ba3c2248960b2b5c6eafa227ec9bd1223e21287a991cd3b912f0b0a984666c80'
+ '1863e74bdcf22b7328e6e8487cbebff7d5360e34bde85c1dd226b168b4737034'
+ '131e3eb7b97723aa17c08db23a8b588fedef3d99941de1177b90ba3917459bf0')
+
+noextract=("${source[@]%%::*}")
prepare() {
- mkdir -p $srcdir/$pkgname
- cd $srcdir/$pkgname
- if [ "$CARCH" = "x86_64" ]; then
- tar -xf "$srcdir/dbeaver-ce-${pkgver}-linux.gtk.x86_64.tar.gz"
- else
- tar -xf "$srcdir/dbeaver-ce-${pkgver}-linux.gtk.x86.tar.gz"
- fi
+ # Decompress source
+ mkdir -p $srcdir/${pkgname}-${pkgver}
+ tar -xf "$srcdir/${pkgname}-${pkgver}.tar.gz" --strip=1 -C "$srcdir/${pkgname}-${pkgver}"
+
+ # Fix version number in profile file
+ gzip --decompress --keep --stdout "${pkgname}.profile.gz" |
+ sed "s/DBEAVER_VERSION/${pkgver}/g" |
+ gzip -9 > "${pkgname}.profile-${pkgver}.gz"
+ rm "${pkgname}.profile.gz"
+
+ # Avoid the use of any Java 15, actually incompatible with the build
+ export JAVA_HOME="/usr/lib/jvm/$(archlinux-java status | tail -n +2 | sort | cut -d ' ' -f 3 | sort -nr -k 2 -t '-' | grep -v '15-openjdk' -m 1)"
+
+ # Download dependencies during prepare FS#55873
+ # https://bugs.archlinux.org/task/55873
+ cd "${pkgname}-${pkgver}"
+ export MAVEN_OPTS="-Xmx2048m -XX:MaxPermSize=512m"
+ mvn --batch-mode validate
}
-package() {
- cd $pkgdir
- mkdir -p opt/
- mkdir -p usr/bin
- mkdir -p usr/share/applications
- mkdir -p usr/share/icons/hicolor/48x48/apps
-
- cp -r $srcdir/$pkgname/dbeaver opt/$pkgname
- chmod +x opt/$pkgname/dbeaver
- cp opt/$pkgname/icon.xpm usr/share/icons/hicolor/48x48/apps/${pkgname}.xpm
- ln -s /opt/${pkgname}/dbeaver usr/bin/dbeaver-ce
- install -m 644 $srcdir/dbeaver-ce.desktop $pkgdir/usr/share/applications/
+build() {
+ cd "${pkgname}-${pkgver}"
+ mvn --batch-mode package
}
+package() {
+ cd "${pkgname}-${pkgver}/product/community"
+ # Install icons into /usr/share/icons/hicolor
+ for _size in 16 32 48 64 128 256 512
+ do
+ install -m 644 -D "icons-sources/icon_${_size}x${_size}.png" \
+ "${pkgdir}/usr/share/icons/hicolor/${_size}x${_size}/apps/${pkgname}.png"
+ done
+
+ # Move into the target directory
+ cd "target/products/org.jkiss.dbeaver.core.product/linux/gtk/${CARCH}"
+
+ # Initially install everything into /usr/lib/dbeaver
+ install -m 755 -d "${pkgdir}/usr/lib"
+ cp -r "dbeaver" "${pkgdir}/usr/lib/${pkgname}"
+
+ # Move shared data to /usr/share/dbeaver
+ cd "${pkgdir}/usr/lib/${pkgname}"
+ install -m 755 -d "${pkgdir}/usr/share/${pkgname}"
+ for _file in configuration features p2 .eclipseproduct artifacts.xml dbeaver.ini readme.txt
+ do
+ mv "${_file}" "${pkgdir}/usr/share/${pkgname}"
+ ln -s "/usr/share/${pkgname}/${_file}" .
+ done
+
+ # Install additional licenses
+ install -m 755 -d "${pkgdir}/usr/share/licenses"
+ mv licenses "${pkgdir}/usr/share/licenses/${pkgname}"
+
+ # Install icons
+ install -m 755 -d "${pkgdir}/usr/share/pixmaps"
+ mv dbeaver.png "${pkgdir}/usr/share/pixmaps/${pkgname}.png"
+ mv icon.xpm "${pkgdir}/usr/share/pixmaps/${pkgname}.xpm"
+
+ # Install executable script into /usr/bin
+ install -m 755 -d "${pkgdir}/usr/bin"
+ install -m 755 "${srcdir}/${pkgname}.sh" "${pkgdir}/usr/bin/${pkgname}"
+
+ # Install application launcher into /usr/share/applications
+ install -m 755 -d "${pkgdir}/usr/share/applications"
+ install -m 755 -t "${pkgdir}/usr/share/applications" "${srcdir}/${pkgname}.desktop"
+
+ # Clean up and install new profile
+ rm -rf "${pkgdir}/usr/share/${pkgname}/p2/org.eclipse.equinox.p2.core"
+ cd "${pkgdir}/usr/share/${pkgname}/p2/org.eclipse.equinox.p2.engine/profileRegistry/DefaultProfile.profile"
+ find . -name "*.profile.gz" -delete
+ install -m 644 "${srcdir}/${pkgname}.profile-${pkgver}.gz" "1502633007017.profile.gz"
+ cd "${pkgdir}/usr/share/${pkgname}/p2/org.eclipse.equinox.p2.engine"
+ rm -f ".settings/org.eclipse.equinox.p2.artifact.repository.prefs"
+ rm ".settings/org.eclipse.equinox.p2.metadata.repository.prefs"
+ rmdir ".settings"
+
+ # Install system hook
+ install -m 755 -d "${pkgdir}/usr/share/libalpm/hooks"
+ install -m 644 "${srcdir}/${pkgname}.hook" "${pkgdir}/usr/share/libalpm/hooks"
+
+ # Create configuration file (handled by the hook)
+ cd "${pkgdir}/usr/share/${pkgname}/configuration/org.eclipse.equinox.simpleconfigurator"
+ install -m 755 -d "${pkgdir}/etc/${pkgname}/bundles.d"
+ mv "bundles.info" "${pkgdir}/etc/${pkgname}/bundles.d/00-${pkgname}.info"
+ ln -s "/etc/${pkgname}/bundles.info" .
+}
diff --git a/dbeaver-ce.desktop b/dbeaver-ce.desktop
index 4aa154643d65..6502e766b4d8 100644
--- a/dbeaver-ce.desktop
+++ b/dbeaver-ce.desktop
@@ -1,10 +1,17 @@
[Desktop Entry]
-Exec=/opt/dbeaver-ce/dbeaver
+Version=1.0
Type=Application
+Categories=IDE;Development;Java;Database;
Terminal=false
+Exec=dbeaver-ce
Icon=dbeaver-ce
-Categories=Development;Java;Database;
Name=DBeaver Community Edition
-GenericName=Database Client
+GenericName=Universal Database Manager
+Comment=Universal Database Manager and SQL Client.
+WM_CLASS=DBeaver
+StartupWMClass=DBeaver
+StartupNotify=true
+Keywords=Database;SQL;IDE;JDBC;ODBC;MySQL;PostgreSQL;Oracle;DB2;MariaDB
+MimeType=application/sql
diff --git a/dbeaver-ce.hook b/dbeaver-ce.hook
new file mode 100644
index 000000000000..1bd9ae668419
--- /dev/null
+++ b/dbeaver-ce.hook
@@ -0,0 +1,12 @@
+[Trigger]
+Type = Path
+Operation = Install
+Operation = Upgrade
+Operation = Remove
+Target = etc/dbeaver-ce/bundles.d/*.info
+
+[Action]
+Description = Updating the DBeaver bundles.info database...
+When = PostTransaction
+Exec = /bin/sh -c '> /etc/dbeaver-ce/bundles.info; cat /etc/dbeaver-ce/bundles.d/*.info > /etc/dbeaver-ce/bundles.info'
+
diff --git a/dbeaver-ce.install b/dbeaver-ce.install
index d641c9a2c2de..cf32dbfc4c15 100644
--- a/dbeaver-ce.install
+++ b/dbeaver-ce.install
@@ -1,12 +1,5 @@
-post_install() {
- gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
-}
-
-post_upgrade() {
- post_install $1
-}
-
-post_remove() {
- post_install $1
+pre_remove() {
+ # Remove bundles.info managed from the hook
+ rm /etc/dbeaver-ce/bundles.info
}
diff --git a/dbeaver-ce.profile.gz b/dbeaver-ce.profile.gz
new file mode 100644
index 000000000000..54ff321abe69
--- /dev/null
+++ b/dbeaver-ce.profile.gz
Binary files differ
diff --git a/dbeaver-ce.sh b/dbeaver-ce.sh
new file mode 100644
index 000000000000..d8638ef789a5
--- /dev/null
+++ b/dbeaver-ce.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+# Disable GTK+ Overlay scrolling
+# https://bugs.archlinux.org/task/63338
+# https://bugs.eclipse.org/bugs/show_bug.cgi?id=519728
+export GTK_OVERLAY_SCROLLING=0
+/usr/lib/dbeaver-ce/dbeaver
diff --git a/mksrcinfo b/mksrcinfo
new file mode 100755
index 000000000000..41ce36ccaacc
--- /dev/null
+++ b/mksrcinfo
@@ -0,0 +1,6 @@
+#!/bin/bash
+if [[ -f .SRCINFO ]]; then
+ makepkg --printsrcinfo > .SRCINFO
+else
+ echo "No .SRCINFO file found."
+fi
diff --git a/packaging_steps.md b/packaging_steps.md
new file mode 100644
index 000000000000..96c33e469547
--- /dev/null
+++ b/packaging_steps.md
@@ -0,0 +1,8 @@
+# When new version is available do the following:
+
+## Update the PKGBUILD file
+* run `updpkgsums`
+* run `mksrcinfo`
+* run `makepkg`
+
+> Test the package by installing locally. If everything works, then commit and push.