summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD184
1 files changed, 146 insertions, 38 deletions
diff --git a/PKGBUILD b/PKGBUILD
index fbcfcf19219f..cbdbefa86d5d 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,53 +1,161 @@
+# Maintainer: Carl Smedstad <carl.smedstad at protonmail dot com>
# Maintainer: Ali Molaei <ali dot molaei at protonmail dot com>
+# Maintainer: Ben Westover <me at benthetechguy dot net>
# Contributor: Lenovsky <lenovsky at pm dot me>
# Contributor: aimileus <me at aimileus dot nl>
-pkgname=protonmail-bridge
-pkgver=1.8.10
-pkgrel=2
+pkgbase=protonmail-bridge
+_basename=proton-bridge
+pkgname=(
+ protonmail-bridge-core
+ protonmail-bridge
+)
+pkgver=3.10.0
+pkgrel=1
pkgdesc="Integrate ProtonMail paid account with any program that supports IMAP and SMTP"
-arch=('x86_64')
-url="https://protonmail.com/bridge"
-license=('GPL3')
-makedepends=('go' 'gcc' 'git')
-depends=('hicolor-icon-theme' 'libsecret' 'qt5-multimedia' 'ttf-dejavu')
-optdepends=(
- 'gnome-keyring: gnome-keyring support'
- 'pass: pass support'
+arch=(x86_64)
+url="https://github.com/ProtonMail/proton-bridge"
+license=(GPL-3.0-only)
+makedepends=(
+ abseil-cpp
+ cmake
+ gcc-libs
+ glib2
+ glibc
+ go
+ grpc
+ libsecret
+ protobuf
+ qt6-base
+ qt6-declarative
+ qt6-svg
+ sentry-native
+)
+source=(
+ "$pkgname-$pkgver.tar.gz::$url/archive/v$pkgver.tar.gz"
+ "protonmail-bridge.desktop"
+ "protonmail-bridge.service"
+ "remove-vcpkg-dependency.patch"
+)
+sha256sums=(
+ 'fe2b048eb3a442a571e469ed376697a7c038189a29f824ffefc00d6fc36ba766'
+ '404db600803b9be875365d84e0726c3f7aedceaf122a795ca2248ee9f005753b'
+ 'd51fb6efde22354d84b894b979a685d06fcc9cf3040d999d1cd6ebf5242a5043'
+ '436a9a293424fb7d48a8fd61fff7d63985dec56d6170cd2fbae24fe03ef98136'
)
-conflicts=('protonmail-bridge-bin')
-options=('!emptydirs' '!strip')
-# Source to compile to a specific tag
-#source=("git://github.com/ProtonMail/proton-bridge.git#tag=br-${pkgver}"
-# "protonmail-bridge.desktop")
+_archive="$_basename-$pkgver"
-# Source to compile to a specific commit
-source=("git+https://github.com/ProtonMail/proton-bridge.git#commit=a219ecf3cbe4fa31517136131fc585e93b86c3dd"
- "protonmail-bridge.desktop")
+prepare() {
+ cd "$_archive"
-sha256sums=('SKIP'
- '226bc140ec5c34cfdff42b33058d045446a4006518d2660db932c7f51632b48a')
+ patch --forward --strip 1 --input "$srcdir/remove-vcpkg-dependency.patch"
-prepare() {
- cd ${srcdir}/proton-bridge/
- sed -i s/1.8.0+git/1.8.1+git/ Makefile
- export PATH=$PATH:$(go env GOPATH)/bin/
- make clean
+ # Use system Qt rather than bundling it
+ rm internal/frontend/bridge-gui/bridge-gui/DeployLinux.cmake
+ touch internal/frontend/bridge-gui/bridge-gui/DeployLinux.cmake
+
+ # Avoid downloading Go dependencies in build() by doing it here instead
+ go mod download -x
+}
+
+build() {
+ cd "$_archive"
+
+ pushd utils/
+ ./credits.sh bridge
+ popd
+
+ export CGO_CPPFLAGS="${CPPFLAGS}"
+ export CGO_CFLAGS="${CFLAGS}"
+ export CGO_CXXFLAGS="${CXXFLAGS}"
+ export CGO_LDFLAGS="${LDFLAGS}"
+ export GOFLAGS="-buildmode=pie -trimpath -mod=readonly -modcacherw"
+
+ local ld_flags=" \
+ -X github.com/ProtonMail/proton-bridge/v3/internal/constants.Version=$pkgver \
+ -X github.com/ProtonMail/proton-bridge/v3/internal/constants.Revision=NOGIT \
+ -X github.com/ProtonMail/proton-bridge/v3/internal/constants.Tag=$pkgver \
+ -X github.com/ProtonMail/proton-bridge/v3/internal/constants.BuildTime= \
+ -X 'github.com/ProtonMail/proton-bridge/v3/internal/constants.FullAppName=Proton Mail Bridge' \
+ -X 'github.com/ProtonMail/proton-bridge/v3/internal/constants.BuildEnv=Arch Linux' \
+ "
+ go build -v -buildvcs=false \
+ -ldflags "$ld_flags" \
+ -o bridge \
+ ./cmd/Desktop-Bridge/
+
+ cmake \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_SKIP_RPATH=YES \
+ -Wno-dev \
+ -DBRIDGE_APP_FULL_NAME='Proton Mail Bridge' \
+ -DBRIDGE_VENDOR='Proton AG' \
+ -DBRIDGE_REVISION=NOGIT \
+ -DBRIDGE_TAG=$pkgver \
+ -DBRIDGE_DSN_SENTRY= \
+ -DBRIDGE_BUILD_ENV='Arch Linux' \
+ -DBRIDGE_APP_VERSION=$pkgver \
+ -S internal/frontend/bridge-gui/bridge-gui \
+ -B build
+ cmake --build build
}
-build(){
- export PATH=$PATH:$(go env GOPATH)/bin/
- cd ${srcdir}/proton-bridge/
- make build
+package_protonmail-bridge-core() {
+ pkgdesc="$pkgdesc (core executable and daemon)"
+ depends=(
+ glib2
+ glibc
+ libsecret
+ )
+ optdepends=(
+ 'gnome-keyring: gnome-keyring support'
+ 'org.freedesktop.secrets: Applications that support Freedesktop secrets api'
+ 'pass: pass support'
+ )
+
+ cd "$_archive"
+
+ install -Dm644 -t "$pkgdir/usr/share/licenses/$pkgname" LICENSE
+ install -Dm644 -t "$pkgdir/usr/share/doc/protonmail/bridge" ./*.md
+
+ install -Dm644 -t "$pkgdir/usr/lib/systemd/user" "$srcdir/protonmail-bridge.service"
+
+ install -Dm755 bridge "$pkgdir/usr/lib/protonmail/bridge/bridge"
+
+ install -dm755 "$pkgdir/usr/bin/"
+ ln -s /usr/lib/protonmail/bridge/bridge "$pkgdir/usr/bin/protonmail-bridge-core"
}
-package() {
- mkdir -p "${pkgdir}"/opt
- mkdir -p "${pkgdir}"/usr/bin
- cp -r "${srcdir}"/proton-bridge/cmd/Desktop-Bridge/deploy/linux/ "${pkgdir}"/opt/protonmail-bridge
- install -D -m644 "${pkgdir}"/opt/protonmail-bridge/LICENSE -t "${pkgdir}"/usr/share/licenses/"${pkgname}"/
- install -D -m644 "${pkgdir}"/opt/protonmail-bridge/logo.svg "${pkgdir}"/usr/share/icons/hicolor/scalable/apps/"${pkgname}".svg
- install -D -m644 "${srcdir}"/protonmail-bridge.desktop -t "${pkgdir}"/usr/share/applications/
- ln -s "/opt/protonmail-bridge/proton-bridge" "$pkgdir/usr/bin/protonmail-bridge"
+package_protonmail-bridge() {
+ pkgdesc="$pkgdesc (Qt desktop application)"
+ depends=(
+ protonmail-bridge-core
+
+ abseil-cpp
+ gcc-libs
+ glibc
+ grpc
+ hicolor-icon-theme
+ protobuf
+ qt6-base
+ qt6-declarative
+ qt6-svg
+ sentry-native
+ )
+ optdepends=(
+ 'qt6-wayland: Wayland support'
+ )
+
+ cd "$_archive"
+
+ install -Dm644 -t "$pkgdir/usr/share/licenses/$pkgname" LICENSE
+ install -Dm644 -t "$pkgdir/usr/share/applications" "$srcdir/protonmail-bridge.desktop"
+ install -Dm644 dist/bridge.svg "$pkgdir/usr/share/icons/hicolor/scalable/apps/protonmail-bridge.svg"
+
+ install -Dm755 build/bridge-gui "$pkgdir/usr/lib/protonmail/bridge/bridge-gui"
+
+ install -dm755 "$pkgdir/usr/bin/"
+ ln -s /usr/lib/protonmail/bridge/bridge-gui "$pkgdir/usr/bin/protonmail-bridge"
}