diff options
-rw-r--r-- | .SRCINFO | 47 | ||||
-rw-r--r-- | .gitignore | 4 | ||||
-rw-r--r-- | PKGBUILD | 154 | ||||
-rw-r--r-- | dbeaver-ce.desktop | 13 | ||||
-rw-r--r-- | dbeaver-ce.hook | 12 | ||||
-rw-r--r-- | dbeaver-ce.install | 13 | ||||
-rw-r--r-- | dbeaver-ce.profile.gz | bin | 0 -> 97767 bytes | |||
-rw-r--r-- | dbeaver-ce.sh | 6 | ||||
-rwxr-xr-x | mksrcinfo | 6 | ||||
-rw-r--r-- | packaging_steps.md | 8 |
10 files changed, 185 insertions, 78 deletions
@@ -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 @@ -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 Binary files differnew file mode 100644 index 000000000000..54ff321abe69 --- /dev/null +++ b/dbeaver-ce.profile.gz 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. |