Arch PKGBUILDs for https://tangled.org/@tangled.org/core
arch pkgbuild

Compare changes

Choose any two refs to compare.

+6 -11
.gitignore
··· 1 - /appview/tangled/ 2 - /appview/*.zip 3 - /appview/htmx.min.js 4 - /appview/pkg 5 - /appview/src 6 - /knotserver/tangled/ 7 - /knotserver-git/tangled/ 8 - /knotserver/src 9 - /knotserver-git/src 10 - /knotserver/pkg 11 - /knotserver-git/pkg 1 + /*/pkg 2 + /*/tangled/ 3 + /*/src/ 4 + *.js 12 5 *.log 6 + *.zip 13 7 *.zst 8 + *.tar.gz
+24 -1
README.md
··· 1 1 # pkgs 2 2 3 - PKGBUILDs for [@tangled.sh](https://tangled.sh/@tangled.sh/core) on [Arch](https://archlinux.org). 3 + PKGBUILDs for running [@tangled.org](https://tangled.org/@tangled.org/core) on [Arch](https://archlinux.org). 4 + 5 + > [!NOTE] 6 + > I use these packages to deploy to my knot server. 7 + > 8 + > These are **not** official tangled packages. **DO NOT** direct issues using these packages to the core tangled.org repository. 9 + 10 + ## Packages: 11 + 12 + ### [appview](appview) 13 + 14 + Builds `appview` from tag [v1.11.0-alpha](https://tangled.org/@tangled.org/core/tree/v1.11.0-alpha). 15 + 16 + ### [knotserver](knotserver) 17 + 18 + Builds `knot` from tag [v1.11.0-alpha](https://tangled.org/@tangled.org/core/tree/v1.11.0-alpha). 19 + 20 + ### [knotserver-git](knotserver-git) 21 + 22 + Builds `knot` from branch [master](https://tangled.org/@tangled.org/core/tree/master). 23 + 24 + ### [spindle](spindle) 25 + 26 + Builds `spindle` from tag [v1.11.0-alpha](https://tangled.org/@tangled.org/core/tree/v1.11.0-alpha). 4 27
+24
appview/.SRCINFO
··· 1 + pkgbase = appview 2 + pkgdesc = git collaboration platform built on ATproto 3 + pkgver = 1.11.0.alpha 4 + pkgrel = 1 5 + url = https://tangled.org/@tangled.org/core 6 + arch = x86_64 7 + license = MIT 8 + makedepends = go 9 + makedepends = npm 10 + depends = git 11 + options = strip 12 + options = !debug 13 + source = core-v1.11.0-alpha.tar.gz::https://tangled.org/@tangled.org/core/archive/refs%2Ftags%2Fv1.11.0-alpha 14 + source = https://unpkg.com/htmx.org@2.0.4/dist/htmx.min.js 15 + source = https://github.com/lucide-icons/lucide/releases/download/0.483.0/lucide-icons-0.483.0.zip 16 + source = https://github.com/rsms/inter/releases/download/v4.1/Inter-4.1.zip 17 + source = https://github.com/IBM/plex/releases/download/%40ibm%2Fplex-mono%401.1.0/ibm-plex-mono.zip 18 + sha256sums = 51d360848f8d61161a61a60adcd9f355246bdcd2a0437371096a8563896cc66a 19 + sha256sums = e209dda5c8235479f3166defc7750e1dbcd5a5c1808b7792fc2e6733768fb447 20 + sha256sums = cc9c1db50676416f6fbb4bbaf8fba46f83331ed7c895dd9602145aebd0daa20e 21 + sha256sums = 9883fdd4a49d4fb66bd8177ba6625ef9a64aa45899767dde3d36aa425756b11e 22 + sha256sums = 4bfc936d0e1fd19db6327a3786eabdbc3dc0d464500576f6458f6706df68d26c 23 + 24 + pkgname = appview
+14 -14
appview/PKGBUILD
··· 1 - _pkgver=1.2.1-alpha 1 + _pkgver=1.11.0-alpha 2 2 pkgname=appview 3 3 pkgdesc='git collaboration platform built on ATproto' 4 4 pkgver=${_pkgver/\-/\.} 5 5 pkgrel=1 6 6 license=(MIT) 7 7 arch=(x86_64) 8 - url=https://tangled.sh/@tangled.sh/core 8 + url=https://tangled.org/@tangled.org/core 9 9 depends=(git) 10 10 makedepends=(go npm) 11 11 options=(strip !debug) 12 - source=( 13 - "tangled::git+$url#tag=v$_pkgver" 12 + source=("core-v${_pkgver}.tar.gz::${url}/archive/refs%2Ftags%2Fv${_pkgver}" 14 13 "https://unpkg.com/htmx.org@2.0.4/dist/htmx.min.js" 15 14 "https://github.com/lucide-icons/lucide/releases/download/0.483.0/lucide-icons-0.483.0.zip" 16 15 "https://github.com/rsms/inter/releases/download/v4.1/Inter-4.1.zip" 17 16 "https://github.com/IBM/plex/releases/download/%40ibm%2Fplex-mono%401.1.0/ibm-plex-mono.zip") 18 - sha256sums=('2462863939d6837afe026fc0baba383e4a1dad9ca035a90aecd4084590db80b7' 17 + sha256sums=('51d360848f8d61161a61a60adcd9f355246bdcd2a0437371096a8563896cc66a' 19 18 'e209dda5c8235479f3166defc7750e1dbcd5a5c1808b7792fc2e6733768fb447' 20 19 'cc9c1db50676416f6fbb4bbaf8fba46f83331ed7c895dd9602145aebd0daa20e' 21 20 '9883fdd4a49d4fb66bd8177ba6625ef9a64aa45899767dde3d36aa425756b11e' 22 21 '4bfc936d0e1fd19db6327a3786eabdbc3dc0d464500576f6458f6706df68d26c') 23 22 24 23 build() { 24 + tangled_src=core-v${_pkgver} 25 25 mkdir -p "${srcdir}/build" 26 - mkdir -p ${srcdir}/tangled/appview/pages/static/{fonts,icons} 27 - cp -f "${srcdir}/htmx.min.js" "${srcdir}/tangled/appview/pages/static/htmx.min.js" 28 - cp -rf ${srcdir}/icons/*.svg "${srcdir}/tangled/appview/pages/static/icons/" 29 - cp -f ${srcdir}/web/InterVariable*.woff2 "${srcdir}/tangled/appview/pages/static/fonts/" 30 - cp -f ${srcdir}/web/InterDisplay*.woff2 "${srcdir}/tangled/appview/pages/static/fonts/" 31 - cp -f "${srcdir}/ibm-plex-mono/fonts/complete/woff2/IBMPlexMono-Regular.woff2" "${srcdir}/tangled/appview/pages/static/fonts/" 26 + mkdir -p ${srcdir}/${tangled_src}/appview/pages/static/{fonts,icons} 27 + cp -f "${srcdir}/htmx.min.js" "${srcdir}/${tangled_src}/appview/pages/static/htmx.min.js" 28 + cp -rf ${srcdir}/icons/*.svg "${srcdir}/${tangled_src}/appview/pages/static/icons/" 29 + cp -f ${srcdir}/web/InterVariable*.woff2 "${srcdir}/${tangled_src}/appview/pages/static/fonts/" 30 + cp -f ${srcdir}/web/InterDisplay*.woff2 "${srcdir}/${tangled_src}/appview/pages/static/fonts/" 31 + cp -f "${srcdir}/ibm-plex-mono/fonts/complete/woff2/IBMPlexMono-Regular.woff2" "${srcdir}/${tangled_src}/appview/pages/static/fonts/" 32 32 33 33 pwd 34 - cd ${srcdir}/tangled 34 + cd ${srcdir}/${tangled_src} 35 35 npm install tailwindcss@3 @tailwindcss/typography 36 36 npx tailwindcss -i input.css -o appview/pages/static/tw.css 37 37 cd ${srcdir} ··· 42 42 export CGO_CXXFLAGS="${CXXFLAGS}" 43 43 export CGO_LDFLAGS="${LDFLAGS}" 44 44 export GOFLAGS="-buildmode=pie -trimpath -ldflags=-linkmode=external -mod=readonly -modcacherw" 45 - cd ${srcdir}/tangled 45 + cd ${srcdir}/${tangled_src} 46 46 go build -o "${srcdir}/build/appview" ./cmd/appview 47 47 } 48 48 49 49 package() { 50 50 install -Dm755 "${srcdir}/build/appview" "${pkgdir}/usr/bin/appview" 51 - install -Dm644 "${srcdir}/tangled/license" "${pkgdir}/usr/share/licenses/knotserver/LICENSE" 51 + install -Dm644 "${srcdir}/core-v${_pkgver}/license" "${pkgdir}/usr/share/licenses/tangled/appview.LICENSE" 52 52 }
+7 -6
conf.sh
··· 1 + tag=1.11.0-alpha 1 2 knotserver_user=git 2 3 knotserver_group=git 3 - 4 - # Path knotserver database files will be stored. 5 - knotserver_db_path=/var/lib/knotserver 6 - 7 - # Path knotserver hosted git repositories will be stored. 4 + knotserver_path=/var/lib/knotserver 8 5 knotserver_repo_path=/var/lib/tangled 6 + knotserver_log_directory=/var/log/knotserver 9 7 10 - knotserver_log_directory=/var/log/knotserver 8 + spindle_user=spindle 9 + spindle_group=spindle 10 + spindle_path=/var/lib/spindle 11 + spindle_add_to_docker=true
+7 -7
knotserver/.SRCINFO
··· 1 1 pkgbase = knotserver 2 2 pkgdesc = git collaboration platform built on ATproto 3 - pkgver = 1.2.1.alpha 3 + pkgver = 1.11.0.alpha 4 4 pkgrel = 1 5 - url = https://tangled.sh/@tangled.sh/core 5 + url = https://tangled.org/@tangled.org/core 6 6 install = knotserver.install 7 7 arch = x86_64 8 8 license = MIT ··· 11 11 conflicts = knotserver-git 12 12 options = strip 13 13 options = !debug 14 - source = tangled::git+https://tangled.sh/@tangled.sh/core#tag=v1.2.1-alpha 14 + source = core-v1.11.0-alpha.tar.gz::https://tangled.org/@tangled.org/core/archive/refs%2Ftags%2Fv1.11.0-alpha 15 15 source = knotserver.service 16 16 source = knotserver-sshd.conf 17 17 source = knotserver-tmpfiles.conf 18 - sha256sums = 8589fec78fbb58d3ab2d8c755c29ec2d70a49a1eb61b86e563e15a2541b4b1b4 19 - sha256sums = 8d243e1bc0d2e51079550929019d18811679127e6af6aabeed60cd907ffaab32 20 - sha256sums = 8b121f30276d83ca52f793e708731fd6985118a2ff2105cd3f603523dc11d8d8 21 - sha256sums = 30d0b9df2419c22f930649273e006faa1bdab740f03c47d740c941db45dc951e 18 + sha256sums = 51d360848f8d61161a61a60adcd9f355246bdcd2a0437371096a8563896cc66a 19 + sha256sums = 91bf996bc8ea97a6c4bcd0ebf5ab2f341bb1f6fa6da0190c9ff95c4debb217f8 20 + sha256sums = 825ad80eccdfc473674cab83e4bd63d0e3b129d600b4628803d8241430da5bf8 21 + sha256sums = 21accf6d6d6c9fb545f801cb0a6d98271f7205e504249cc7fdff53ba83203394 22 22 23 23 pkgname = knotserver
+11 -15
knotserver/PKGBUILD
··· 1 1 _pkgname=knotserver 2 - _pkgver=1.2.1-alpha 2 + _pkgver=1.11.0-alpha 3 3 pkgname=${_pkgname/\-/\.} 4 4 pkgdesc='git collaboration platform built on ATproto' 5 5 pkgver=${_pkgver/\-/\.} 6 6 pkgrel=1 7 7 license=(MIT) 8 8 arch=(x86_64) 9 - url=https://tangled.sh/@tangled.sh/core 9 + url=https://tangled.org/@tangled.org/core 10 10 depends=(git) 11 11 conflicts=(knotserver-git) 12 12 makedepends=(go) 13 13 options=(strip !debug) 14 14 install=${_pkgname}.install 15 - source=("tangled::git+$url#tag=v$_pkgver" 15 + source=("core-v${_pkgver}.tar.gz::${url}/archive/refs%2Ftags%2Fv${_pkgver}" 16 16 ${_pkgname}.service 17 17 ${_pkgname}-sshd.conf 18 18 ${_pkgname}-tmpfiles.conf) 19 - sha256sums=('8589fec78fbb58d3ab2d8c755c29ec2d70a49a1eb61b86e563e15a2541b4b1b4' 20 - '8d243e1bc0d2e51079550929019d18811679127e6af6aabeed60cd907ffaab32' 21 - '8b121f30276d83ca52f793e708731fd6985118a2ff2105cd3f603523dc11d8d8' 22 - '30d0b9df2419c22f930649273e006faa1bdab740f03c47d740c941db45dc951e') 19 + sha256sums=('51d360848f8d61161a61a60adcd9f355246bdcd2a0437371096a8563896cc66a' 20 + '91bf996bc8ea97a6c4bcd0ebf5ab2f341bb1f6fa6da0190c9ff95c4debb217f8' 21 + '825ad80eccdfc473674cab83e4bd63d0e3b129d600b4628803d8241430da5bf8' 22 + '21accf6d6d6c9fb545f801cb0a6d98271f7205e504249cc7fdff53ba83203394') 23 23 24 24 build() { 25 25 mkdir -p ${srcdir}/build ··· 31 31 export CGO_LDFLAGS="${LDFLAGS}" 32 32 export GOFLAGS="-buildmode=pie -trimpath -ldflags=-linkmode=external -mod=readonly -modcacherw" 33 33 34 - cd ${srcdir}/tangled 35 - go build -o "${srcdir}/build/knotserver" ./cmd/knotserver 36 - go build -o "${srcdir}/build/repoguard" ./cmd/repoguard 37 - go build -o "${srcdir}/build/keyfetch" ./cmd/keyfetch 34 + cd ${srcdir}/core-v${_pkgver} 35 + go build -ldflags "-X tangled.org/core/knotserver/xrpc.version=${_pkgver}" -o "${srcdir}/build/knot" ./cmd/knot 38 36 } 39 37 40 38 package() { 41 39 install -Dm644 "${srcdir}/${_pkgname}.service" "${pkgdir}/usr/lib/systemd/system/${_pkgname}.service" 42 40 install -Dm644 "${srcdir}/${_pkgname}-tmpfiles.conf" "${pkgdir}/usr/lib/tmpfiles.d/${_pkgname}.conf" 43 41 install -Dm644 "${srcdir}/${_pkgname}-sshd.conf" "${pkgdir}/usr/lib/systemd/sshd_config.d/${_pkgname}.conf" 44 - install -Dm755 "${srcdir}/build/knotserver" "${pkgdir}/usr/bin/knotserver" 45 - install -Dm755 "${srcdir}/build/repoguard" "${pkgdir}/usr/bin/repoguard" 46 - install -Dm755 "${srcdir}/build/keyfetch" "${pkgdir}/usr/bin/keyfetch" 47 - install -Dm644 "${srcdir}/tangled/license" "${pkgdir}/usr/share/licenses/knotserver/LICENSE" 42 + install -Dm755 "${srcdir}/build/knot" "${pkgdir}/usr/bin/knot" 43 + install -Dm644 "${srcdir}/core-v${_pkgver}/license" "${pkgdir}/usr/share/licenses/tangled/knotserver.LICENSE" 48 44 }
+17
knotserver/README.md
··· 1 + # knotserver 2 + 3 + Builds and packages `knot`. 4 + 5 + When installed, knotserver's database files will be stored in `/var/lib/knotserver`. Repositories will 6 + be stored in `/var/lib/tangled`. 7 + 8 + ## SSH 9 + 10 + SSH access is required to push to repositories. To enable, use the sshd_config.d drop-in, and give the 11 + `git` user a shell and a home directory: 12 + 13 + ```bash 14 + ln -s /usr/lib/systemd/sshd_config.d/knotserver.conf /etc/ssh/sshd_config.d/30-knotserver.conf 15 + usermod -s /usr/bin/bash -d /var/lib/tangled git 16 + ``` 17 +
+1 -1
knotserver/knotserver-sshd.conf
··· 1 1 Match User git 2 - AuthorizedKeysCommand /usr/bin/keyfetch -git-path /var/lib/tangled -repoguard-path /usr/bin/repoguard -log-path /var/log/knotserver/keyfetch.log 2 + AuthorizedKeysCommand /usr/bin/knot keys -output authorized-keys -git-dir /var/lib/tangled -log-path /var/log/knotserver/keyfetch.log 3 3 AuthorizedKeysCommandUser nobody
+1
knotserver/knotserver-tmpfiles.conf
··· 1 1 d /etc/tangled 700 root root 2 + d /var/lib/knotserver 755 git git - 2 3 d /var/lib/tangled 755 git git -
+2 -3
knotserver/knotserver.install
··· 2 2 echo 3 3 echo knotserver installed, with repositories stored in: /var/lib/tangled 4 4 echo 5 - echo Remember to set 'KNOT_SERVER_SECRET="..."' in /etc/tangled/knotserver 6 - echo and 'KNOT_SERVER_HOSTNAME' if 'hostname' does not return the FQDN 7 - echo of your knot. 5 + echo Use "systemctl edit knotserver.service" to set "KNOT_SERVER_OWNER" to the DID of the knot owner, 6 + echo and set "KNOT_SERVER_HOSTNAME" to the FQDN of your knot. 8 7 echo 9 8 echo To enable git push over ssh for tangled repositories, run: 10 9 echo " ln -s /usr/lib/systemd/sshd_config.d/knotserver.conf /etc/ssh/sshd_config.d/30-knotserver.conf"
+1 -4
knotserver/knotserver.service
··· 6 6 AssertPathExists=/var/lib/tangled 7 7 8 8 [Service] 9 - Environment="KNOT_SERVER_HOSTNAME=%H" 10 9 Environment="KNOT_SERVER_LISTEN_ADDR=127.0.0.1:5555" 11 10 Environment="KNOT_REPO_SCAN_PATH=/var/lib/tangled" 12 - EnvironmentFile=-/etc/tangled/knotserver 13 - 14 11 WorkingDirectory=/var/lib/knotserver 15 - ExecStart=/usr/bin/knotserver 12 + ExecStart=/usr/bin/knot server 16 13 Restart=always 17 14 User=git 18 15 Group=git
+6 -6
knotserver-git/.SRCINFO
··· 1 1 pkgbase = knotserver-git 2 2 pkgdesc = git collaboration platform built on ATproto 3 - pkgver = 1.2.1.alpha.r1.gf44471b 3 + pkgver = 1.9.1.alpha.r48.g8f7177a 4 4 pkgrel = 1 5 - url = https://tangled.sh/@tangled.sh/core 5 + url = https://tangled.org/@tangled.org/core 6 6 install = knotserver.install 7 7 arch = x86_64 8 8 license = MIT ··· 10 10 depends = git 11 11 conflicts = knotserver 12 12 options = strip 13 - source = tangled::git+https://tangled.sh/@tangled.sh/core 13 + source = tangled::git+https://tangled.org/@tangled.org/core 14 14 source = knotserver.service 15 15 source = knotserver-sshd.conf 16 16 source = knotserver-tmpfiles.conf 17 17 sha256sums = SKIP 18 - sha256sums = 8d243e1bc0d2e51079550929019d18811679127e6af6aabeed60cd907ffaab32 19 - sha256sums = 8b121f30276d83ca52f793e708731fd6985118a2ff2105cd3f603523dc11d8d8 20 - sha256sums = 30d0b9df2419c22f930649273e006faa1bdab740f03c47d740c941db45dc951e 18 + sha256sums = 91bf996bc8ea97a6c4bcd0ebf5ab2f341bb1f6fa6da0190c9ff95c4debb217f8 19 + sha256sums = 825ad80eccdfc473674cab83e4bd63d0e3b129d600b4628803d8241430da5bf8 20 + sha256sums = 21accf6d6d6c9fb545f801cb0a6d98271f7205e504249cc7fdff53ba83203394 21 21 22 22 pkgname = knotserver-git
+8 -12
knotserver-git/PKGBUILD
··· 1 1 _pkgname=knotserver 2 2 pkgname=${_pkgname}-git 3 3 pkgdesc='git collaboration platform built on ATproto' 4 - pkgver=1.2.1.alpha.r1.gf44471b 4 + pkgver=1.9.1.alpha.r48.g8f7177a 5 5 pkgrel=1 6 6 license=(MIT) 7 7 arch=(x86_64) 8 - url=https://tangled.sh/@tangled.sh/core 8 + url=https://tangled.org/@tangled.org/core 9 9 depends=(git) 10 10 conflicts=(knotserver) 11 11 makedepends=(go) ··· 16 16 ${_pkgname}-sshd.conf 17 17 ${_pkgname}-tmpfiles.conf) 18 18 sha256sums=('SKIP' 19 - '8d243e1bc0d2e51079550929019d18811679127e6af6aabeed60cd907ffaab32' 20 - '8b121f30276d83ca52f793e708731fd6985118a2ff2105cd3f603523dc11d8d8' 21 - '30d0b9df2419c22f930649273e006faa1bdab740f03c47d740c941db45dc951e') 19 + '91bf996bc8ea97a6c4bcd0ebf5ab2f341bb1f6fa6da0190c9ff95c4debb217f8' 20 + '825ad80eccdfc473674cab83e4bd63d0e3b129d600b4628803d8241430da5bf8' 21 + '21accf6d6d6c9fb545f801cb0a6d98271f7205e504249cc7fdff53ba83203394') 22 22 23 23 pkgver() { 24 24 cd ${srcdir}/tangled ··· 36 36 export GOFLAGS="-buildmode=pie -trimpath -ldflags=-linkmode=external -mod=readonly -modcacherw" 37 37 38 38 cd ${srcdir}/tangled 39 - go build -o "${srcdir}/build/knotserver" ./cmd/knotserver 40 - go build -o "${srcdir}/build/repoguard" ./cmd/repoguard 41 - go build -o "${srcdir}/build/keyfetch" ./cmd/keyfetch 39 + go build -ldflags "-X tangled.org/core/knotserver/xrpc.version=${pkgver}" -o "${srcdir}/build/knot" ./cmd/knot 42 40 } 43 41 44 42 package() { 45 43 install -Dm644 "${srcdir}/${_pkgname}.service" "${pkgdir}/usr/lib/systemd/system/${_pkgname}.service" 46 44 install -Dm644 "${srcdir}/${_pkgname}-tmpfiles.conf" "${pkgdir}/usr/lib/tmpfiles.d/${_pkgname}.conf" 47 45 install -Dm644 "${srcdir}/${_pkgname}-sshd.conf" "${pkgdir}/usr/lib/systemd/sshd_config.d/${_pkgname}.conf" 48 - install -Dm755 "${srcdir}/build/knotserver" "${pkgdir}/usr/bin/knotserver" 49 - install -Dm755 "${srcdir}/build/repoguard" "${pkgdir}/usr/bin/repoguard" 50 - install -Dm755 "${srcdir}/build/keyfetch" "${pkgdir}/usr/bin/keyfetch" 51 - install -Dm644 "${srcdir}/tangled/license" "${pkgdir}/usr/share/licenses/knotserver/LICENSE" 46 + install -Dm755 "${srcdir}/build/knot" "${pkgdir}/usr/bin/knot" 47 + install -Dm644 "${srcdir}/tangled/license" "${pkgdir}/usr/share/licenses/tangled/knotserver.LICENSE" 52 48 }
+17
knotserver-git/README.md
··· 1 + # knotserver-git 2 + 3 + Builds and packages `knot`. 4 + 5 + When installed, knotserver's database files will be stored in `/var/lib/knotserver`. Repositories will 6 + be stored in `/var/lib/tangled`. 7 + 8 + ## SSH 9 + 10 + SSH access is required to push to repositories. To enable, use the sshd_config.d drop-in, and give the 11 + `git` user a shell and a home directory: 12 + 13 + ```bash 14 + ln -s /usr/lib/systemd/sshd_config.d/knotserver.conf /etc/ssh/sshd_config.d/30-knotserver.conf 15 + usermod -s /usr/bin/bash -d /var/lib/tangled git 16 + ``` 17 +
+1 -1
knotserver-git/knotserver-sshd.conf
··· 1 1 Match User git 2 - AuthorizedKeysCommand /usr/bin/keyfetch -git-path /var/lib/tangled -repoguard-path /usr/bin/repoguard -log-path /var/log/knotserver/keyfetch.log 2 + AuthorizedKeysCommand /usr/bin/knot keys -output authorized-keys -git-dir /var/lib/tangled -log-path /var/log/knotserver/keyfetch.log 3 3 AuthorizedKeysCommandUser nobody
+1
knotserver-git/knotserver-tmpfiles.conf
··· 1 1 d /etc/tangled 700 root root 2 + d /var/lib/knotserver 755 git git - 2 3 d /var/lib/tangled 755 git git -
+2 -3
knotserver-git/knotserver.install
··· 2 2 echo 3 3 echo knotserver installed, with repositories stored in: /var/lib/tangled 4 4 echo 5 - echo Remember to set 'KNOT_SERVER_SECRET="..."' in /etc/tangled/knotserver 6 - echo and 'KNOT_SERVER_HOSTNAME' if 'hostname' does not return the FQDN 7 - echo of your knot. 5 + echo Use "systemctl edit knotserver.service" to set "KNOT_SERVER_OWNER" to the DID of the knot owner, 6 + echo and set "KNOT_SERVER_HOSTNAME" to the FQDN of your knot. 8 7 echo 9 8 echo To enable git push over ssh for tangled repositories, run: 10 9 echo " ln -s /usr/lib/systemd/sshd_config.d/knotserver.conf /etc/ssh/sshd_config.d/30-knotserver.conf"
+1 -4
knotserver-git/knotserver.service
··· 6 6 AssertPathExists=/var/lib/tangled 7 7 8 8 [Service] 9 - Environment="KNOT_SERVER_HOSTNAME=%H" 10 9 Environment="KNOT_SERVER_LISTEN_ADDR=127.0.0.1:5555" 11 10 Environment="KNOT_REPO_SCAN_PATH=/var/lib/tangled" 12 - EnvironmentFile=-/etc/tangled/knotserver 13 - 14 11 WorkingDirectory=/var/lib/knotserver 15 - ExecStart=/usr/bin/knotserver 12 + ExecStart=/usr/bin/knot server 16 13 Restart=always 17 14 User=git 18 15 Group=git
+23
spindle/.SRCINFO
··· 1 + pkgbase = spindle 2 + pkgdesc = git collaboration platform built on ATproto 3 + pkgver = 1.11.0.alpha 4 + pkgrel = 1 5 + url = https://tangled.org/@tangled.org/core 6 + arch = x86_64 7 + license = MIT 8 + makedepends = git 9 + makedepends = go 10 + depends = docker 11 + conflicts = spindle-git 12 + options = strip 13 + options = !debug 14 + source = core-v1.11.0-alpha.tar.gz::https://tangled.org/@tangled.org/core/archive/refs%2Ftags%2Fv1.11.0-alpha 15 + source = spindle.service 16 + source = spindle.sysusers 17 + source = spindle-tmpfiles.conf 18 + sha256sums = 51d360848f8d61161a61a60adcd9f355246bdcd2a0437371096a8563896cc66a 19 + sha256sums = 6509c3c71ed305cc8cdf59f54261538a2f554621ae6116bb2f78ebe92b8d64bb 20 + sha256sums = 1364062c3d0daa6fa8fc439bf26e88585d503a36b9f8335bae037f659b08bd15 21 + sha256sums = 28673b854e9cd65cb129f46bc1dc894fb74a62fa3b976f2e1e5737558096b499 22 + 23 + pkgname = spindle
+43
spindle/PKGBUILD
··· 1 + _pkgname=spindle 2 + _pkgver=1.11.0-alpha 3 + pkgname=${_pkgname/\-/\.} 4 + pkgdesc='git collaboration platform built on ATproto' 5 + pkgver=${_pkgver/\-/\.} 6 + pkgrel=1 7 + license=(MIT) 8 + arch=(x86_64) 9 + url=https://tangled.org/@tangled.org/core 10 + depends=(docker) 11 + conflicts=(spindle-git) 12 + makedepends=(git go) 13 + options=(strip !debug) 14 + source=("core-v${_pkgver}.tar.gz::${url}/archive/refs%2Ftags%2Fv${_pkgver}" 15 + ${_pkgname}.service 16 + ${_pkgname}.sysusers 17 + ${_pkgname}-tmpfiles.conf) 18 + sha256sums=('51d360848f8d61161a61a60adcd9f355246bdcd2a0437371096a8563896cc66a' 19 + '6509c3c71ed305cc8cdf59f54261538a2f554621ae6116bb2f78ebe92b8d64bb' 20 + '1364062c3d0daa6fa8fc439bf26e88585d503a36b9f8335bae037f659b08bd15' 21 + '28673b854e9cd65cb129f46bc1dc894fb74a62fa3b976f2e1e5737558096b499') 22 + 23 + build() { 24 + mkdir -p ${srcdir}/build 25 + 26 + export CGO_ENABLED=1 27 + export CGO_CPPFLAGS="${CPPFLAGS}" 28 + export CGO_CFLAGS="${CFLAGS}" 29 + export CGO_CXXFLAGS="${CXXFLAGS}" 30 + export CGO_LDFLAGS="${LDFLAGS}" 31 + export GOFLAGS="-buildmode=pie -trimpath -ldflags=-linkmode=external -mod=readonly -modcacherw" 32 + 33 + cd ${srcdir}/core-v${_pkgver} 34 + go build -o "${srcdir}/build/spindle" ./cmd/spindle 35 + } 36 + 37 + package() { 38 + install -Dm644 "${srcdir}/${_pkgname}.service" "${pkgdir}/usr/lib/systemd/system/${_pkgname}.service" 39 + install -Dm644 "${srcdir}/${_pkgname}.sysusers" "${pkgdir}/usr/lib/sysusers.d/${_pkgname}.conf" 40 + install -Dm644 "${srcdir}/${_pkgname}-tmpfiles.conf" "${pkgdir}/usr/lib/tmpfiles.d/${_pkgname}.conf" 41 + install -Dm755 "${srcdir}/build/spindle" "${pkgdir}/usr/bin/spindle" 42 + install -Dm644 "${srcdir}/core-v${_pkgver}/license" "${pkgdir}/usr/share/licenses/tangled/spindle.LICENSE" 43 + }
+1
spindle/spindle-tmpfiles.conf
··· 1 + d /var/lib/spindle 755 spindle spindle -
+20
spindle/spindle.service
··· 1 + [Unit] 2 + Description=tangled spindle server 3 + After=network.target network-online.target docker.service 4 + Wants=network-online.target 5 + AssertPathExists=/var/lib/spindle 6 + 7 + [Service] 8 + Environment="SPINDLE_SERVER_LISTEN_ADDR=127.0.0.1:6555" 9 + WorkingDirectory=/var/lib/spindle 10 + ExecStart=/usr/bin/spindle 11 + Restart=always 12 + User=spindle 13 + Group=spindle 14 + StandardOutput=journal 15 + StandardError=journal 16 + LimitNOFILE=65536 17 + LogsDirectory=spindle 18 + 19 + [Install] 20 + WantedBy=multi-user.target
+2
spindle/spindle.sysusers
··· 1 + u! spindle - "spindle server" /var/lib/spindle /usr/bin/nologin 2 + m spindle docker
+31
src/README.md.sh
··· 1 + #!/usr/bin/bash 2 + set -eu 3 + cat << EOF > ${pkgbuild_path}/README.md 4 + # pkgs 5 + 6 + PKGBUILDs for running [@tangled.org](https://tangled.org/@tangled.org/core) on [Arch](https://archlinux.org). 7 + 8 + > [!NOTE] 9 + > I use these packages to deploy to my knot server. 10 + > 11 + > These are **not** official tangled packages. **DO NOT** direct issues using these packages to the core tangled.org repository. 12 + 13 + ## Packages: 14 + 15 + ### [appview](appview) 16 + 17 + Builds \`appview\` from tag [v${tag}](https://tangled.org/@tangled.org/core/tree/v${tag}). 18 + 19 + ### [knotserver](knotserver) 20 + 21 + Builds \`knot\` from tag [v${tag}](https://tangled.org/@tangled.org/core/tree/v${tag}). 22 + 23 + ### [knotserver-git](knotserver-git) 24 + 25 + Builds \`knot\` from branch [master](https://tangled.org/@tangled.org/core/tree/master). 26 + 27 + ### [spindle](spindle) 28 + 29 + Builds \`spindle\` from tag [v${tag}](https://tangled.org/@tangled.org/core/tree/v${tag}). 30 + 31 + EOF
-18
src/common/install.sh
··· 1 - #!/usr/bin/bash 2 - cat << EOF > ${pkgbuild_path}/knotserver.install 3 - post_install() { 4 - echo 5 - echo knotserver installed, with repositories stored in: $knotserver_repo_path 6 - echo 7 - echo Remember to set 'KNOT_SERVER_SECRET="..."' in /etc/tangled/knotserver 8 - echo and 'KNOT_SERVER_HOSTNAME' if 'hostname' does not return the FQDN 9 - echo of your knot. 10 - echo 11 - echo To enable git push over ssh for tangled repositories, run: 12 - echo " ln -s /usr/lib/systemd/sshd_config.d/knotserver.conf /etc/ssh/sshd_config.d/30-knotserver.conf" 13 - echo " usermod -s /usr/bin/bash -d $knotserver_repo_path $knotserver_user" 14 - echo 15 - echo and reload sshd 16 - echo 17 - } 18 - EOF
-31
src/common/service.sh
··· 1 - #!/usr/bin/bash 2 - cat << EOF > ${pkgbuild_path}/knotserver.service 3 - [Unit] 4 - Description=tangled knot server 5 - After=network.target network-online.target 6 - Wants=network-online.target 7 - AssertPathExists=$knotserver_db_path 8 - AssertPathExists=$knotserver_repo_path 9 - 10 - [Service] 11 - Environment="KNOT_SERVER_HOSTNAME=%H" 12 - Environment="KNOT_SERVER_LISTEN_ADDR=127.0.0.1:5555" 13 - Environment="KNOT_REPO_SCAN_PATH=${knotserver_repo_path}" 14 - EnvironmentFile=-/etc/tangled/knotserver 15 - 16 - WorkingDirectory=$knotserver_db_path 17 - ExecStart=/usr/bin/knotserver 18 - Restart=always 19 - User=$knotserver_user 20 - Group=$knotserver_group 21 - 22 - StandardOutput=journal 23 - StandardError=journal 24 - LimitNOFILE=65536 25 - 26 - # Creates /var/log/knotserver with the correct permissions for the repoguard log. 27 - LogsDirectory=knotserver 28 - 29 - [Install] 30 - WantedBy=multi-user.target 31 - EOF
-6
src/common/sshd.conf.sh
··· 1 - #!/usr/bin/bash 2 - cat << EOF > ${pkgbuild_path}/knotserver-sshd.conf 3 - Match User $knotserver_user 4 - AuthorizedKeysCommand /usr/bin/keyfetch -git-path $knotserver_repo_path -repoguard-path /usr/bin/repoguard -log-path ${knotserver_log_directory}/keyfetch.log 5 - AuthorizedKeysCommandUser nobody 6 - EOF
-5
src/common/tmpfiles.conf.sh
··· 1 - #!/usr/bin/bash 2 - cat << EOF > ${pkgbuild_path}/knotserver-tmpfiles.conf 3 - d /etc/tangled 700 root root 4 - d $knotserver_repo_path 755 $knotserver_user $knotserver_group - 5 - EOF
+48
src/knotserver/PKGBUILD.sh
··· 1 + #!/usr/bin/bash 2 + set -eu 3 + cat << EOF > ${pkgbuild_path}/PKGBUILD 4 + _pkgname=knotserver 5 + _pkgver=${tag} 6 + pkgname=\${_pkgname/\-/\.} 7 + pkgdesc='git collaboration platform built on ATproto' 8 + pkgver=\${_pkgver/\-/\.} 9 + pkgrel=1 10 + license=(MIT) 11 + arch=(x86_64) 12 + url=https://tangled.org/@tangled.org/core 13 + depends=(git) 14 + conflicts=(knotserver-git) 15 + makedepends=(go) 16 + options=(strip !debug) 17 + install=\${_pkgname}.install 18 + source=("core-v\${_pkgver}.tar.gz::\${url}/archive/refs%2Ftags%2Fv\${_pkgver}" 19 + \${_pkgname}.service 20 + \${_pkgname}-sshd.conf 21 + \${_pkgname}-tmpfiles.conf) 22 + sha256sums=('set by updpkgsums' 23 + 'set by updpkgsums' 24 + 'set by updpkgsums' 25 + 'set by updpkgsums') 26 + 27 + build() { 28 + mkdir -p \${srcdir}/build 29 + 30 + export CGO_ENABLED=1 31 + export CGO_CPPFLAGS="\${CPPFLAGS}" 32 + export CGO_CFLAGS="\${CFLAGS}" 33 + export CGO_CXXFLAGS="\${CXXFLAGS}" 34 + export CGO_LDFLAGS="\${LDFLAGS}" 35 + export GOFLAGS="-buildmode=pie -trimpath -ldflags=-linkmode=external -mod=readonly -modcacherw" 36 + 37 + cd \${srcdir}/core-v\${_pkgver} 38 + go build -ldflags "-X tangled.org/core/knotserver/xrpc.version=\${_pkgver}" -o "\${srcdir}/build/knot" ./cmd/knot 39 + } 40 + 41 + package() { 42 + install -Dm644 "\${srcdir}/\${_pkgname}.service" "\${pkgdir}/usr/lib/systemd/system/\${_pkgname}.service" 43 + install -Dm644 "\${srcdir}/\${_pkgname}-tmpfiles.conf" "\${pkgdir}/usr/lib/tmpfiles.d/\${_pkgname}.conf" 44 + install -Dm644 "\${srcdir}/\${_pkgname}-sshd.conf" "\${pkgdir}/usr/lib/systemd/sshd_config.d/\${_pkgname}.conf" 45 + install -Dm755 "\${srcdir}/build/knot" "\${pkgdir}/usr/bin/knot" 46 + install -Dm644 "\${srcdir}/core-v\${_pkgver}/license" "\${pkgdir}/usr/share/licenses/tangled/knotserver.LICENSE" 47 + } 48 + EOF
+21
src/knotserver/README.md.sh
··· 1 + #!/usr/bin/bash 2 + set -eu 3 + cat << EOF > ${pkgbuild_path}/README.md 4 + # knotserver 5 + 6 + Builds and packages \`knot\`. 7 + 8 + When installed, knotserver's database files will be stored in \`${knotserver_path}\`. Repositories will 9 + be stored in \`${knotserver_repo_path}\`. 10 + 11 + ## SSH 12 + 13 + SSH access is required to push to repositories. To enable, use the sshd_config.d drop-in, and give the 14 + \`${knotserver_user}\` user a shell and a home directory: 15 + 16 + \`\`\`bash 17 + ln -s /usr/lib/systemd/sshd_config.d/knotserver.conf /etc/ssh/sshd_config.d/30-knotserver.conf 18 + usermod -s /usr/bin/bash -d ${knotserver_repo_path} ${knotserver_user} 19 + \`\`\` 20 + 21 + EOF
+21
src/knotserver-git/README.md.sh
··· 1 + #!/usr/bin/bash 2 + set -eu 3 + cat << EOF > ${pkgbuild_path}/README.md 4 + # knotserver-git 5 + 6 + Builds and packages \`knot\`. 7 + 8 + When installed, knotserver's database files will be stored in \`${knotserver_path}\`. Repositories will 9 + be stored in \`${knotserver_repo_path}\`. 10 + 11 + ## SSH 12 + 13 + SSH access is required to push to repositories. To enable, use the sshd_config.d drop-in, and give the 14 + \`${knotserver_user}\` user a shell and a home directory: 15 + 16 + \`\`\`bash 17 + ln -s /usr/lib/systemd/sshd_config.d/knotserver.conf /etc/ssh/sshd_config.d/30-knotserver.conf 18 + usermod -s /usr/bin/bash -d ${knotserver_repo_path} ${knotserver_user} 19 + \`\`\` 20 + 21 + EOF
+18
src/knotserver-shared/install.sh
··· 1 + #!/usr/bin/bash 2 + set -eu 3 + cat << EOF > ${pkgbuild_path}/knotserver.install 4 + post_install() { 5 + echo 6 + echo knotserver installed, with repositories stored in: ${knotserver_repo_path} 7 + echo 8 + echo Use "systemctl edit knotserver.service" to set "KNOT_SERVER_OWNER" to the DID of the knot owner, 9 + echo and set "KNOT_SERVER_HOSTNAME" to the FQDN of your knot. 10 + echo 11 + echo To enable git push over ssh for tangled repositories, run: 12 + echo " ln -s /usr/lib/systemd/sshd_config.d/knotserver.conf /etc/ssh/sshd_config.d/30-knotserver.conf" 13 + echo " usermod -s /usr/bin/bash -d ${knotserver_repo_path} ${knotserver_user}" 14 + echo 15 + echo and reload sshd 16 + echo 17 + } 18 + EOF
+29
src/knotserver-shared/service.sh
··· 1 + #!/usr/bin/bash 2 + set -eu 3 + cat << EOF > ${pkgbuild_path}/knotserver.service 4 + [Unit] 5 + Description=tangled knot server 6 + After=network.target network-online.target 7 + Wants=network-online.target 8 + AssertPathExists=${knotserver_path} 9 + AssertPathExists=${knotserver_repo_path} 10 + 11 + [Service] 12 + Environment="KNOT_SERVER_LISTEN_ADDR=127.0.0.1:5555" 13 + Environment="KNOT_REPO_SCAN_PATH=${knotserver_repo_path}" 14 + WorkingDirectory=${knotserver_path} 15 + ExecStart=/usr/bin/knot server 16 + Restart=always 17 + User=${knotserver_user} 18 + Group=${knotserver_group} 19 + 20 + StandardOutput=journal 21 + StandardError=journal 22 + LimitNOFILE=65536 23 + 24 + # Creates /var/log/knotserver with the correct permissions for the repoguard log. 25 + LogsDirectory=knotserver 26 + 27 + [Install] 28 + WantedBy=multi-user.target 29 + EOF
+7
src/knotserver-shared/sshd.conf.sh
··· 1 + #!/usr/bin/bash 2 + set -eu 3 + cat << EOF > ${pkgbuild_path}/knotserver-sshd.conf 4 + Match User ${knotserver_user} 5 + AuthorizedKeysCommand /usr/bin/knot keys -output authorized-keys -git-dir ${knotserver_repo_path} -log-path ${knotserver_log_directory}/keyfetch.log 6 + AuthorizedKeysCommandUser nobody 7 + EOF
+7
src/knotserver-shared/tmpfiles.conf.sh
··· 1 + #!/usr/bin/bash 2 + set -eu 3 + cat << EOF > ${pkgbuild_path}/knotserver-tmpfiles.conf 4 + d /etc/tangled 700 root root 5 + d ${knotserver_path} 755 ${knotserver_user} ${knotserver_group} - 6 + d ${knotserver_repo_path} 755 ${knotserver_user} ${knotserver_group} - 7 + EOF
+47
src/spindle/PKGBUILD.sh
··· 1 + #!/usr/bin/bash 2 + set -eu 3 + cat << EOF > ${pkgbuild_path}/PKGBUILD 4 + _pkgname=spindle 5 + _pkgver=${tag} 6 + pkgname=\${_pkgname/\-/\.} 7 + pkgdesc='git collaboration platform built on ATproto' 8 + pkgver=\${_pkgver/\-/\.} 9 + pkgrel=1 10 + license=(MIT) 11 + arch=(x86_64) 12 + url=https://tangled.org/@tangled.org/core 13 + depends=(docker) 14 + conflicts=(spindle-git) 15 + makedepends=(git go) 16 + options=(strip !debug) 17 + source=("core-v\${_pkgver}.tar.gz::\${url}/archive/refs%2Ftags%2Fv\${_pkgver}" 18 + \${_pkgname}.service 19 + \${_pkgname}.sysusers 20 + \${_pkgname}-tmpfiles.conf) 21 + sha256sums=('set by updpkgsums' 22 + 'set by updpkgsums' 23 + 'set by updpkgsums' 24 + 'set by updpkgsums') 25 + 26 + build() { 27 + mkdir -p \${srcdir}/build 28 + 29 + export CGO_ENABLED=1 30 + export CGO_CPPFLAGS="\${CPPFLAGS}" 31 + export CGO_CFLAGS="\${CFLAGS}" 32 + export CGO_CXXFLAGS="\${CXXFLAGS}" 33 + export CGO_LDFLAGS="\${LDFLAGS}" 34 + export GOFLAGS="-buildmode=pie -trimpath -ldflags=-linkmode=external -mod=readonly -modcacherw" 35 + 36 + cd \${srcdir}/core-v\${_pkgver} 37 + go build -o "\${srcdir}/build/spindle" ./cmd/spindle 38 + } 39 + 40 + package() { 41 + install -Dm644 "\${srcdir}/\${_pkgname}.service" "\${pkgdir}/usr/lib/systemd/system/\${_pkgname}.service" 42 + install -Dm644 "\${srcdir}/\${_pkgname}.sysusers" "\${pkgdir}/usr/lib/sysusers.d/\${_pkgname}.conf" 43 + install -Dm644 "\${srcdir}/\${_pkgname}-tmpfiles.conf" "\${pkgdir}/usr/lib/tmpfiles.d/\${_pkgname}.conf" 44 + install -Dm755 "\${srcdir}/build/spindle" "\${pkgdir}/usr/bin/spindle" 45 + install -Dm644 "\${srcdir}/core-v\${_pkgver}/license" "\${pkgdir}/usr/share/licenses/tangled/spindle.LICENSE" 46 + } 47 + EOF
+5
src/spindle/tmpfiles.conf.sh
··· 1 + #!/usr/bin/bash 2 + set -eu 3 + cat << EOF > ${pkgbuild_path}/spindle-tmpfiles.conf 4 + d ${spindle_path} 755 ${spindle_user} ${spindle_group} - 5 + EOF
+24
src/spindle-shared/service.sh
··· 1 + #!/usr/bin/bash 2 + set -eu 3 + cat << EOF > ${pkgbuild_path}/spindle.service 4 + [Unit] 5 + Description=tangled spindle server 6 + After=network.target network-online.target docker.service 7 + Wants=network-online.target 8 + AssertPathExists=${spindle_path} 9 + 10 + [Service] 11 + Environment="SPINDLE_SERVER_LISTEN_ADDR=127.0.0.1:6555" 12 + WorkingDirectory=${spindle_path} 13 + ExecStart=/usr/bin/spindle 14 + Restart=always 15 + User=${spindle_user} 16 + Group=${spindle_group} 17 + StandardOutput=journal 18 + StandardError=journal 19 + LimitNOFILE=65536 20 + LogsDirectory=spindle 21 + 22 + [Install] 23 + WantedBy=multi-user.target 24 + EOF
+11
src/spindle-shared/sysusers.sh
··· 1 + #!/usr/bin/bash 2 + set -eu 3 + cat << EOF > ${pkgbuild_path}/spindle.sysusers 4 + u! ${spindle_user} - "spindle server" ${spindle_path} /usr/bin/nologin 5 + EOF 6 + 7 + if [[ "${spindle_add_to_docker}" == true ]]; then 8 + cat << EOF >> ${pkgbuild_path}/spindle.sysusers 9 + m ${spindle_user} docker 10 + EOF 11 + fi
+33 -4
update.sh
··· 1 1 #!/usr/bin/env bash 2 + set -eu 2 3 3 4 source ./conf.sh 4 5 6 + pkgbuild_path="." 7 + source src/README.md.sh 8 + 5 9 for pkgbuild_path in knotserver knotserver-git; do 6 - source src/common/sshd.conf.sh 7 - source src/common/tmpfiles.conf.sh 8 - source src/common/service.sh 9 - source src/common/install.sh 10 + for src in src/knotserver-shared/*.sh; do 11 + source ${src} 12 + done 13 + for src in src/${pkgbuild_path}/*.sh; do 14 + source ${src} 15 + done 10 16 11 17 cd $pkgbuild_path 12 18 updpkgsums ··· 14 20 15 21 cd .. 16 22 done 23 + 24 + for pkgbuild_path in spindle; do 25 + for src in src/spindle-shared/*.sh; do 26 + source ${src} 27 + done 28 + for src in src/${pkgbuild_path}/*.sh; do 29 + source ${src} 30 + done 31 + 32 + cd $pkgbuild_path 33 + updpkgsums 34 + makepkg --printsrcinfo > .SRCINFO 35 + 36 + cd .. 37 + done 38 + 39 + for pkgbuild_path in appview; do 40 + cd $pkgbuild_path 41 + updpkgsums 42 + makepkg --printsrcinfo > .SRCINFO 43 + 44 + cd .. 45 + done