summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 1d7042ff4778b8fd85a99eea9cae86a8dead9ba2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
# Maintainer: Hu Butui <hot123tea123@gmail.com>
# Contributor: Matthijs Tadema <M dot J dot Tadema at pm dot me>
# Contributor: Staal <staal1978@gmail.com>
# Contributor: Jens Staal <staal1978@gmail.com>

_pkgname=ugene
pkgname='ugene'
pkgver=53.1
pkgrel=2
pkgdesc='A free open-source cross-platform bioinformatics software'
arch=('x86_64')
url='http://ugene.net'
license=('GPL-2.0-or-later')
depends=(
  glu
  libxtst
  hicolor-icon-theme
  qt5-base
  qt5-svg
  qt5-websockets
  qt5-networkauth
  gcc-libs
  glibc
  libx11
  libxext
  python
  libgcc
  bash
  libstdc++
  libglvnd
  sqlite
)
makedepends=(
  cmake
  qt5-tools
  opencl-headers
  mold
)
optdepends=(
  'man-db: Read manpages'
)
source=("${_pkgname}-${pkgver}.tar.gz::https://github.com/ugeneunipro/ugene/archive/refs/tags/${pkgver}.tar.gz"
        "use_sqlite.patch"
        "wayland-app-id.patch")
sha256sums=('3eca3bc97824d855b5dfe4844b7a5d46052f98279fa015c7e152e111f89c4673'
            'a697c392ce97fec770ff14aca9da9ed052c1d47c5cb08a905dbaef186a327763'
            '4665ce739e730dd1c9619aa530135f78825324c311df23ba4cc4b8253363d142')

prepare() {
  cd "${srcdir}/${_pkgname}-${pkgver}"
  # use system sqlite
  patch -p1 < ${srcdir}/use_sqlite.patch
  # Fix generic Wayland window icon
  patch -p1 < ${srcdir}/wayland-app-id.patch

  # Convert -Werror=foo to -Wfoo to prevent build failure on warnings
  sed -i 's/-Werror=/-W/g' CMakeLists.txt
  # Allow deprecated Qt 5.15 APIs
  sed -i 's/QT_DISABLE_DEPRECATED_BEFORE=0x050F00/QT_DISABLE_DEPRECATED_BEFORE=0x050E00/g' CMakeLists.txt
  # Fix QComboBox::activated ambiguity for Qt 5
  sed -i 's/&QComboBox::activated/QOverload<int>::of(\&QComboBox::activated)/g' src/corelibs/U2Gui/src/util/RegionSelectorController.cpp
  # Fix QButtonGroup::buttonToggled ambiguity for Qt 5
  sed -i 's/&QButtonGroup::buttonToggled/QOverload<QAbstractButton\*, bool>::of(\&QButtonGroup::buttonToggled)/g' src/corelibs/U2View/src/ov_sequence/find_pattern/FindPatternWidget.cpp

  # Fix the desktop file Exec path
  sed -i 's|Exec=.*|Exec=ugeneui|' "etc/shared/${_pkgname}.desktop"
  sed -i 's|Categories=.*|Categories=Science;|' "etc/shared/${_pkgname}.desktop"
  echo "StartupWMClass=ugene" >> "etc/shared/${_pkgname}.desktop"
}

build() {
  export LDFLAGS="$LDFLAGS -fuse-ld=mold -Wl,-z,relro,-z,now"
  cmake -B build -S "${_pkgname}-${pkgver}" \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DCMAKE_INSTALL_RPATH="/usr/lib/${_pkgname}" \
    -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON \
    -DCMAKE_EXE_LINKER_FLAGS="$LDFLAGS" \
    -DCMAKE_SHARED_LINKER_FLAGS="$LDFLAGS"
  cmake --build build
}

package() {
  install -d "${pkgdir}/usr/bin"
  install -d "${pkgdir}/usr/share/applications"
  install -d "${pkgdir}/usr/share/pixmaps"
  install -d "${pkgdir}/usr/share/icons/hicolor/48x48/apps"
  install -d "${pkgdir}/usr/share/icons/hicolor/128x128/apps"
  install -d "${pkgdir}/usr/share/man/man1"
  install -d "${pkgdir}/usr/lib/${_pkgname}"

  # copy built files from build/dist to /usr/lib/ugene
  cp -a "${srcdir}/build/dist/"* "${pkgdir}/usr/lib/${_pkgname}/"
  
  # copy data directory from source
  cp -a "${srcdir}/${_pkgname}-${pkgver}/data" "${pkgdir}/usr/lib/${_pkgname}/"

  # Install desktop file and icon from source folder
  install -m644 "${srcdir}/${_pkgname}-${pkgver}/etc/shared/${_pkgname}.desktop" "${pkgdir}/usr/share/applications/${_pkgname}.desktop"
  install -m644 "${srcdir}/${_pkgname}-${pkgver}/etc/shared/${_pkgname}.png" "${pkgdir}/usr/share/pixmaps/${_pkgname}.png"
  install -m644 "${srcdir}/${_pkgname}-${pkgver}/etc/shared/${_pkgname}.1.gz" "${pkgdir}/usr/share/man/man1/${_pkgname}.1.gz"
  install -m644 "${srcdir}/${_pkgname}-${pkgver}/etc/shared/${_pkgname}.png" "${pkgdir}/usr/share/icons/hicolor/48x48/apps/${_pkgname}.png"
  install -m644 "${srcdir}/${_pkgname}-${pkgver}/src/ugeneui/images/originals/${_pkgname}_128.png" "${pkgdir}/usr/share/icons/hicolor/128x128/apps/${_pkgname}.png"

  # Create symlinks
  ln -sf "/usr/lib/${_pkgname}/ugene" "${pkgdir}/usr/bin/ugene"
  ln -sf "/usr/lib/${_pkgname}/ugeneui" "${pkgdir}/usr/bin/ugeneui"
  ln -sf "/usr/lib/${_pkgname}/ugenecl" "${pkgdir}/usr/bin/ugenecl"
}