commit feb4d6951b3f8aa70df521d72d0cd9f8510a6f06 Author: alex Date: Wed Jul 8 16:55:33 2026 +0200 init diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 0000000..5be10ea --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,25 @@ +pkgbase = cato-client-bin + pkgdesc = VPN client from Cato Networks to connect to the Cato Cloud. + pkgver = 5.7.0.5525 + pkgrel = 1 + url = https://clientdownload.catonetworks.com/ + install = cato-client-bin.install + arch = x86_64 + license = custom + makedepends = libarchive + makedepends = curl + depends = glibc + depends = gcc-libs + depends = zlib + depends = ca-certificates-utils + provides = cato-linux-client + conflicts = cato-linux-client + noextract = cato-client-install.deb + source = cato-client-install.deb::https://clientdownload.catonetworks.com/public/clients/cato-client-install.deb + source = cato-client-bin.sysusers + source = cato-client-bin.tmpfiles + sha256sums = SKIP + sha256sums = 3c51ce0ebde44edf062e2c9db69c95949ee2031f4e85156f2f401d6e8767f704 + sha256sums = d381f7126126f45ca36e43bd33772bfa0aa6d9cbc9a720e2485fc6061cdd9435 + +pkgname = cato-client-bin diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..711bc94 --- /dev/null +++ b/.gitignore @@ -0,0 +1,16 @@ +# makepkg build dirs +src/ +pkg/ + +# built packages +*.pkg.tar.zst +*.pkg.tar.xz +*.pkg.tar.gz +*.src.tar.gz + +# upstream binary (re-downloaded on every build) +cato-client-install.deb + +# signatures / logs +*.sig +*.log diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 0000000..0636f6c --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,80 @@ +# Maintainer: aheuwes +# Previous maintainers: mreschke, Didrole + +pkgname=cato-client-bin +pkgver=5.7.0.5525 +pkgrel=1 +pkgdesc='VPN client from Cato Networks to connect to the Cato Cloud.' +arch=('x86_64') +url='https://clientdownload.catonetworks.com/' +license=('custom') +depends=('glibc' 'gcc-libs' 'zlib' 'ca-certificates-utils') +makedepends=('libarchive' 'curl') +conflicts=('cato-linux-client') +provides=('cato-linux-client') +install=cato-client-bin.install + +_deb_url='https://clientdownload.catonetworks.com/public/clients/cato-client-install.deb' + +source=( + "cato-client-install.deb::${_deb_url}" + cato-client-bin.sysusers + cato-client-bin.tmpfiles +) +noextract=('cato-client-install.deb') +sha256sums=( + 'SKIP' + '3c51ce0ebde44edf062e2c9db69c95949ee2031f4e85156f2f401d6e8767f704' + 'd381f7126126f45ca36e43bd33772bfa0aa6d9cbc9a720e2485fc6061cdd9435' +) + +_fetch_deb() { + curl -fsSL -o cato-client-install.deb "${_deb_url}" +} + +pkgver() { + cd "$srcdir" + _fetch_deb + bsdtar -xf cato-client-install.deb control.tar.xz + bsdtar -xOf control.tar.xz control \ + | awk -F': ' '/^Version:/ { print $2 }' \ + | sed 's/-release$//' +} + +prepare() { + cd "$srcdir" + _fetch_deb + bsdtar -xf cato-client-install.deb +} + +package() { + bsdtar -xf "${srcdir}/data.tar.xz" -C "${pkgdir}/" + + # Debian layout -> Arch layout + mv "${pkgdir}/lib/systemd" "${pkgdir}/usr/lib/" + rmdir "${pkgdir}/lib/" + + if [[ -f "${pkgdir}/usr/sbin/cato-clientd" ]]; then + install -Dm755 "${pkgdir}/usr/sbin/cato-clientd" "${pkgdir}/usr/bin/cato-clientd" + rm -f "${pkgdir}/usr/sbin/cato-clientd" + fi + + rmdir "${pkgdir}/usr/sbin" 2>/dev/null || true + rmdir "${pkgdir}/usr/local/lib" 2>/dev/null || true + + # usr-merge safe paths in the unit file + sed -i \ + -e 's|/usr/sbin/cato-clientd|/usr/bin/cato-clientd|g' \ + -e 's|WorkingDirectory=/usr/sbin/|WorkingDirectory=/usr/bin/|g' \ + "${pkgdir}/usr/lib/systemd/system/cato-client.service" + + # Arch trusts CAs from this path, not update-ca-certificates + install -Dm644 \ + "${pkgdir}/usr/local/share/ca-certificates/CatoNetworksRootCA.crt" \ + "${pkgdir}/etc/ca-certificates/trust-source/anchors/CatoNetworksRootCA.crt" + + install -Dm644 "${srcdir}/cato-client-bin.sysusers" \ + "${pkgdir}/usr/lib/sysusers.d/cato-client-bin.conf" + install -Dm644 "${srcdir}/cato-client-bin.tmpfiles" \ + "${pkgdir}/usr/lib/tmpfiles.d/cato-client-bin.conf" +} diff --git a/cato-client-bin.install b/cato-client-bin.install new file mode 100644 index 0000000..ddcc490 --- /dev/null +++ b/cato-client-bin.install @@ -0,0 +1,20 @@ +post_install() { + ldconfig + update-ca-trust + systemd-sysusers + systemd-tmpfiles --create cato-client-bin.conf + rm -f /var/run/cato-sdp.i /var/run/cato-sdp.o + systemctl daemon-reload + systemctl enable cato-client.service + systemctl try-restart cato-client.service +} + +post_upgrade() { + post_install +} + +post_remove() { + rm -f /var/run/cato-sdp.i /var/run/cato-sdp.o + systemctl disable --now cato-client.service 2>/dev/null || true + systemctl daemon-reload +} diff --git a/cato-client-bin.sysusers b/cato-client-bin.sysusers new file mode 100644 index 0000000..3f874b5 --- /dev/null +++ b/cato-client-bin.sysusers @@ -0,0 +1 @@ +g cato-client - diff --git a/cato-client-bin.tmpfiles b/cato-client-bin.tmpfiles new file mode 100644 index 0000000..768915c --- /dev/null +++ b/cato-client-bin.tmpfiles @@ -0,0 +1,2 @@ +z /usr/bin/cato-clientd 02770 root cato-client +z /usr/bin/cato-sdp 02755 root cato-client