# vim: set ft=sh ts=4 sw=4 et: # Maintainer: Maarten de Boer # Maintainer: Dan Fuhry pkgname=('teleport' 'teleport-client') _pkgname=teleport pkgver=15.1.9 pkgrel=1 pkgdesc="Modern SSH server for teams managing distributed infrastructure" arch=('i386' 'x86_64' 'armv7h' 'aarch64') url="https://github.com/gravitational/teleport" license=('Apache') depends=('glibc' 'libbpf') makedepends=('go>=1.17.0' 'rustup' 'yarn' 'libbpf-static>=1.2.0' 'wasm-pack') provides=('tctl' 'tsh') _webassets_ref=f48049a453348e0ee1ce2b998dffe5659455b398 _go_srcpath="go/src/github.com/gravitational" source=("${_pkgname}-${pkgver}.tar.gz::https://github.com/gravitational/teleport/archive/refs/tags/v${pkgver}.tar.gz" "${_pkgname}-webassets-${_webassets_ref}.tar.gz::https://github.com/gravitational/webassets/archive/${_webassets_ref}.tar.gz" "teleport.service" "teleport@.service" "teleport.install") prepare() { install -dm755 "${srcdir}/go/src/github.com" if [ -d "${srcdir}/${_pkgname}-${pkgver}" ]; then rm -Rf "${srcdir}/${_go_srcpath}" mv "${srcdir}/${_pkgname}-${pkgver}" "${srcdir}/${_go_srcpath}" fi if [ -d "${srcdir}/webassets-${_webassets_ref}" ]; then rm -Rf "${srcdir}/${_go_srcpath}/webassets" mv "${srcdir}/webassets-${_webassets_ref}" "${srcdir}/${_go_srcpath}/webassets" fi cd "${srcdir}/${_go_srcpath}" for f in "${source[@]}"; do if [ "${f##*.}" = "patch" ]; then msg "Aplying patch: ${f}" patch -Np1 -i "${srcdir}/${f}" fi done env CARGO_HOME="${srcdir}/cargo" \ rustup default 1.76.0 # Update wasm-bindgen. This is due to a version conflict specifically with v15.0.1. env PATH="${CARGO_HOME}/bin:${PATH}" \ CARGO_HOME="${srcdir}/cargo" \ cargo add --package rdp-client wasm-bindgen@0.2.91 } build() { cd "${srcdir}/${_go_srcpath}" export GOPATH="${srcdir}/go" export CARGO_HOME="${srcdir}/cargo" # See: https://wiki.archlinux.org/index.php/Go_package_guidelines export CGO_CPPFLAGS="${CPPFLAGS}" export CGO_CFLAGS="${CFLAGS}" export CGO_CXXFLAGS="${CXXFLAGS}" export CGO_LDFLAGS="${LDFLAGS}" export ADDFLAGS="-buildmode=pie -trimpath -ldflags=-linkmode=external -mod=readonly -modcacherw" # Build env PATH="${PATH}:${CARGO_HOME}/bin" \ RUST_LOG=debug \ make full # Make sure go path is writable so it can be cleaned up chmod -R u+w "${srcdir}/go" } package_teleport() { install=teleport.install optdepends=('teleport-client: for "tsh" and "tctl" commands') cd "${srcdir}/${_go_srcpath}" # Install binaries install -Dm755 build/teleport "${pkgdir}/usr/bin/teleport" # Install services install -Dm644 ${srcdir}/teleport.service "${pkgdir}/usr/lib/systemd/system/teleport.service" install -Dm644 ${srcdir}/teleport@.service "${pkgdir}/usr/lib/systemd/system/teleport@.service" # Copy example files install -dm755 "${pkgdir}/usr/share/teleport" cp -r examples "${pkgdir}/usr/share/teleport/" } package_teleport-client() { cd "${srcdir}/${_go_srcpath}" install -Dm755 build/tctl "${pkgdir}/usr/bin/tctl" install -Dm755 build/tsh "${pkgdir}/usr/bin/tsh" } sha512sums=('11fb7cce583a8bb0fc36443c13e1afdfebbcbc57a680e94e224af6cda7d37abeeb6d28a4f83be1e7280cc804c2c6c61d53fb559a14be5cfadc7691662fa32de1' 'bf13a77d1cdaa0c3e09034ede9acdf6834a7e21dbb18b0f9d8f46917be9772416edba7f0001cd38f6124564c0c31549f8d7048dd7a9f5ad76ff8e02f4451f044' '409116e201c40b7e0a379b316123500ab7691cbf441ecee048811885f97cd1185671676bb61bf36cb288399e8c0355a0a9f963ce7f94e44ba49e061187c9249e' '469249bebaa974e5e205c66c0459ed071b06a35aa9b94a3f34d3cbc5e75aa0f290d70ba8e5c63b49a6319a0f524a846ded459e07e3dde4c260e7668959821b96' 'a0ea7d029567244c4d2c970752955f27d157a848b6567e5521822df4ec7bcd4919436b03a602278681b043476e8171ce1da5e0f2e44d06f2c163cd8e82daab41')