dbeaver/dbeaver.spec
Your Name 17c60ac86d
Some checks failed
Run CI/CD... / main (push) Failing after 19m55s
24.3.5
2025-02-19 23:31:21 +00:00

153 lines
4.8 KiB
RPMSpec

%define debug %nil
%define debug_package %nil
%define _jdk_path /opt/jdk17/jdk/bin
%define jdk_ver 17.0.11
%define liberica_rel 13
Name: dbeaver
Version: 24.3.5
Release: 1
Summary: Universal database manager and SQL client
URL: https://dbeaver.io
Source0: https://github.com/dbeaver/dbeaver/archive/%{version}/%{name}-%{version}.tar.gz
#Source1: https://github.com/bell-sw/Liberica/releases/download/%{jdk_ver}%2B%{liberica_rel}/bellsoft-jdk%{jdk_ver}+%{liberica_rel}-linux-amd64-crac.tar.gz
Source1: https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.11%2B9/OpenJDK17U-jdk_x64_linux_hotspot_17.0.11_9.tar.gz
Source100: %{name}.rpmlintrc
Group: Development/Databases
License: ASL 2.0
ExcludeArch: x86 i386 i486 i586 i686
BuildRequires: maven >= 3.9
#BuildRequires: java-devel >= 11
#BuildRequires: jdk17
BuildRequires: imagemagick
BuildRequires: git-core
BuildRequires: %{_lib}xext6
BuildRequires: %{_lib}x11_6
BuildRequires: %{_lib}xcb1
BuildRequires: pkgconfig(openssl3.3)
Requires: jdk17
%description
Free multi-platform database tool for developers,
SQL programmers, database administrators and analysts.
Supports any database which has JDBC driver (which basically
means - ANY database). EE version also supports non-JDBC
datasources (WMI, MongoDB, Cassandra, Redis).
Has a lot of features including metadata editor, SQL editor,
rich data editor, ERD, data export/import/migration,
SQL execution plans, etc.
Based on Eclipse platform.
Uses plugins architecture and provides additional functionality
for the following databases: MySQL/MariaDB, PostgreSQL,
Oracle, DB2 LUW, Exasol, SQL Server, SQLite, Firebird, H2,
HSQLDB, Derby, Teradata, Vertica, Netezza, Informix.
%prep
%setup -q
tar -xf %{SOURCE1}
%build
[ ! -d ../dbeaver-common ] && git clone https://github.com/dbeaver/dbeaver-common.git ../dbeaver-common
[ ! -d ../dbeaver-jdbc-libsql ] && git clone https://github.com/dbeaver/dbeaver-jdbc-libsql.git ../dbeaver-jdbc-libsql
cd product/aggregate
JAVA_HOME=../../jdk-17.0.11+9/ mvn clean install -Pdesktop -T 1C
cd ../..
%install
install -d %{buildroot}%{_bindir}
install -d %{buildroot}%{_datadir}
install -d %{buildroot}%{_datadir}/applications
install -d %{buildroot}%{_iconsdir}/hicolor/{16x16,24x24,32x32}/apps
#ifarch x86_64
pushd product/community/target/products/org.jkiss.dbeaver.core.product/linux/gtk/x86_64/
cp -a %{name} %{buildroot}%{_datadir}
popd
#else
#pushd product/standalone/target/products/org.jkiss.dbeaver.core.product/linux/gtk/x86
#cp -a %{name} %{buildroot}%{_datadir}
#popd
#endif
#start script
cat > %{buildroot}%{_bindir}/%{name} <<EOF
#!/bin/bash
%{_datadir}/%{name}/%{name} -vm %{_jdk_path}
EOF
chmod +x %{buildroot}%{_bindir}/%{name}
# menu-entry
cat > %{buildroot}%{_datadir}/applications/%{name}.desktop <<EOF
[Desktop Entry]
Name=DBeaver
Name[ru]=DBeaver
GenericName=DBeaver
GenericName[ru]=DBeaver
Comment=Free universal database manager and SQL client
Comment[ru]=Универсальный менеджер баз данных SQL
Exec=%{name}
Icon=%{name}
Terminal=false
Type=Application
StartupNotify=true
Categories=Application;Development;IDE;X-DataBases
EOF
# install icons product/standalone/icons-sources
pushd product/community/icons-sources
for i in 16 24 32 48 64 128 256 512; do
convert -resize "$i" icon_512x512.png %{name}.png
install -Dm0644 %{name}.png %{buildroot}%{_iconsdir}/hicolor/"$i"x"$i"/apps/%{name}.png
done
popd
# fix error solaris libs
#pushd %{buildroot}%{_datadir}/dbeaver/plugins/com.sun.jna_5.14.0.v20231211-1200/com/sun/jna/
#find %{buildroot}%{_datadir}/dbeaver/plugins/com.sun.jna_5.14.0.*/com/sun/jna/ -type d -not -name "linux-x86-64" -exec rm -rf {} \;
#rm -rf $(ls --hide="linux-x86" --hide="linux-x86_64" --hide="internal" --hide="ptr" %{buildroot}%{_datadir}/dbeaver/plugins/com.sun.jna_5.14.0*/com/sun/jna/)
#/builddir/build/BUILDROOT/dbeaver-24.3.1-1-R11.x86_64-buildroot/usr/share/dbeaver/plugins/com.sun.jna_5.15.0.v20240915-2000/com/sun/jna/sunos-sparc/libjnidispatch.so'
#popd
#find '%{buildroot}%{_datadir}/dbeaver/plugins/com.sun.jna_[0-9.]*-v[0-9]*-com/sun/jna/' -type d \
# -name linux-x86 \
# -o -name linux-x86_64 \
# -o -name internal \
# -o -name ptr \
# -prune \
# -o -exec rm -rf {} \;
#find '%{buildroot}%{_datadir}/dbeaver/plugins/com.sun.jna_[0-9.]*-v[0-9]*-com/sun/jna/' \
# -type f -name "*.so" -not \
# -path "*linux-*" -o \
# -path "internal" -o \
# -path "ptr" \
# -delete
find %{buildroot}%{_datadir}/dbeaver/plugins/ \
-type d -path "*com.sun.jna_*" \
-exec sh -c "if [ -n \"\$(find {} -type f -name '*.so' -not -path '*linux-*' -o -path 'internal' -o -path 'ptr')\" ]; then rm -rf {}; fi" \;
%files
%doc README.md LICENSE.md
%{_bindir}
%{_datadir}/%{name}
%{_datadir}/applications/%{name}.desktop
%{_iconsdir}//hicolor/*/apps/%{name}.png