# Contributor: Chloe Kudryavtsev <code@toast.bunkerlabs.net>
# Maintainer: Mike Crute <mike@crute.us>
pkgname=rclone
pkgver=1.69.3
pkgrel=0
pkgdesc="Rsync for cloud storage"
url="https://rclone.org/"
arch="all"
license="MIT"
makedepends="go"
checkdepends="fuse"
subpackages="$pkgname-doc $pkgname-bash-completion $pkgname-fish-completion $pkgname-zsh-completion"
source="
	rclone-$pkgver.tar.gz::https://github.com/rclone/rclone/archive/refs/tags/v$pkgver.tar.gz
	update-cronokirby-saferith.patch
	"
options="!check net" # tests fail in CI due filesystem access

export GOCACHE="${GOCACHE:-"$srcdir/go-cache"}"
export GOTMPDIR="${GOTMPDIR:-"$srcdir"}"
export GOMODCACHE="${GOMODCACHE:-"$srcdir/go"}"

# secfixes:
#   1.69.3-r0:
#     - CVE-2025-30204
#   1.69.2-r0:
#     - CVE-2025-22870
#     - CVE-2025-22869
#   1.69.0-r0:
#     - CVE-2024-45337
#     - CVE-2024-45338
#   1.68.2-r0:
#     - CVE-2024-52522
#   1.67.0-r0:
#     - CVE-2023-45288

build() {
	go build

	./rclone genautocomplete bash rclone.bash
	./rclone genautocomplete fish rclone.fish
	./rclone genautocomplete zsh rclone.zsh
}

check() {
	# backend/{ftp,sftp,swift,webdav,seafile}: uses docker(1) for tests
	# backend/{local,memory}: fails in docker envs, but not on real machines
	# fs/rc: fails on ppc64le
	# shellcheck disable=SC2046
	go test $(go list ./... | grep -v \
		-e 'backend/ftp$' \
		-e 'backend/local$' \
		-e 'backend/memory$' \
		-e 'backend/sftp$' \
		-e 'backend/swift$' \
		-e 'backend/webdav$' \
		-e 'backend/seafile$' \
		-e 'fs/rc$'
		)
}

package() {
	install -Dm755 "$builddir"/rclone \
		"$pkgdir"/usr/bin/rclone

	mkdir -p mkdir -p "$pkgdir"/usr/sbin
	ln -sfv ../bin/rclone "$pkgdir"/usr/sbin/mount.rclone
	ln -sfv rclone "$pkgdir"/usr/bin/rclonefs

	install -Dm644 "$builddir"/rclone.1 \
		"$pkgdir"/usr/share/man/man1/rclone.1

	install -Dm644 "$builddir"/rclone.bash \
		"$pkgdir"/usr/share/bash-completion/completions/rclone

	install -Dm644 "$builddir"/rclone.fish \
		"$pkgdir"/usr/share/fish/vendor_completions.d/rclone.fish

	install -Dm644 "$builddir"/rclone.zsh \
		"$pkgdir"/usr/share/zsh/site-functions/_rclone

	install -Dm644 COPYING \
		"$pkgdir"/usr/share/licenses/$pkgname/COPYING
}

sha512sums="
642a92ed00ec7ff9650ad69f1d61f473d61eb598d27e6dd493fd21ff63f9f82ad931fe74305cc5b3e6a9e4793cfa90d4a15c4289c00f332aa7761f46da05d869  rclone-1.69.3.tar.gz
da777ba8eb62a51fb7e100991ebcc972b194b8c1cb1fab7c482ddc8a4899fd565491000e8c269b2e6ece8f9b728d7f8f920a7778f6dd71fc2a986e20451ea388  update-cronokirby-saferith.patch
"
