+9
-5
README.md
+9
-5
README.md
···
1
1
# pkgs
2
2
3
-
PKGBUILDs for running [@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
4
5
5
> [!NOTE]
6
6
> I use these packages to deploy to my knot server.
7
7
>
8
-
> These are **not** official tangled packages. **DO NOT** direct issues using these packages to the core tangled.sh repository.
8
+
> These are **not** official tangled packages. **DO NOT** direct issues using these packages to the core tangled.org repository.
9
9
10
10
## Packages:
11
11
12
12
### [appview](appview)
13
13
14
-
Builds `appview` from tag [v1.9.1-alpha](https://tangled.sh/@tangled.sh/core/tree/v1.9.1-alpha).
14
+
Builds `appview` from tag [v1.11.0-alpha](https://tangled.org/@tangled.org/core/tree/v1.11.0-alpha).
15
15
16
16
### [knotserver](knotserver)
17
17
18
-
Builds `knot` from tag [v1.9.1-alpha](https://tangled.sh/@tangled.sh/core/tree/v1.9.1-alpha).
18
+
Builds `knot` from tag [v1.11.0-alpha](https://tangled.org/@tangled.org/core/tree/v1.11.0-alpha).
19
19
20
20
### [knotserver-git](knotserver-git)
21
21
22
-
Builds `knot` from branch [master](https://tangled.sh/@tangled.sh/core/tree/master).
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).
23
27
+3
-3
appview/.SRCINFO
+3
-3
appview/.SRCINFO
···
1
1
pkgbase = appview
2
2
pkgdesc = git collaboration platform built on ATproto
3
-
pkgver = 1.9.1.alpha
3
+
pkgver = 1.11.0.alpha
4
4
pkgrel = 1
5
5
url = https://tangled.org/@tangled.org/core
6
6
arch = x86_64
···
10
10
depends = git
11
11
options = strip
12
12
options = !debug
13
-
source = tangled::git+https://tangled.org/@tangled.org/core#tag=v1.9.1-alpha
13
+
source = core-v1.11.0-alpha.tar.gz::https://tangled.org/@tangled.org/core/archive/refs%2Ftags%2Fv1.11.0-alpha
14
14
source = https://unpkg.com/htmx.org@2.0.4/dist/htmx.min.js
15
15
source = https://github.com/lucide-icons/lucide/releases/download/0.483.0/lucide-icons-0.483.0.zip
16
16
source = https://github.com/rsms/inter/releases/download/v4.1/Inter-4.1.zip
17
17
source = https://github.com/IBM/plex/releases/download/%40ibm%2Fplex-mono%401.1.0/ibm-plex-mono.zip
18
-
sha256sums = 5562ff3aef0b7e986cccfa778d7abb6003311c44a7df79709a40604782cdef24
18
+
sha256sums = 51d360848f8d61161a61a60adcd9f355246bdcd2a0437371096a8563896cc66a
19
19
sha256sums = e209dda5c8235479f3166defc7750e1dbcd5a5c1808b7792fc2e6733768fb447
20
20
sha256sums = cc9c1db50676416f6fbb4bbaf8fba46f83331ed7c895dd9602145aebd0daa20e
21
21
sha256sums = 9883fdd4a49d4fb66bd8177ba6625ef9a64aa45899767dde3d36aa425756b11e
+13
-13
appview/PKGBUILD
+13
-13
appview/PKGBUILD
···
1
-
_pkgver=1.9.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/\-/\.}
···
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=('5562ff3aef0b7e986cccfa778d7abb6003311c44a7df79709a40604782cdef24'
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/tangled/appview.LICENSE"
51
+
install -Dm644 "${srcdir}/core-v${_pkgver}/license" "${pkgdir}/usr/share/licenses/tangled/appview.LICENSE"
52
52
}
+4
-3
conf.sh
+4
-3
conf.sh
···
1
-
tag=1.9.1-alpha
1
+
tag=1.11.0-alpha
2
2
knotserver_user=git
3
3
knotserver_group=git
4
4
knotserver_path=/var/lib/knotserver
5
5
knotserver_repo_path=/var/lib/tangled
6
6
knotserver_log_directory=/var/log/knotserver
7
7
8
-
spindle_user=root
9
-
spindle_group=root
8
+
spindle_user=spindle
9
+
spindle_group=spindle
10
10
spindle_path=/var/lib/spindle
11
+
spindle_add_to_docker=true
+4
-4
knotserver/.SRCINFO
+4
-4
knotserver/.SRCINFO
···
1
1
pkgbase = knotserver
2
2
pkgdesc = git collaboration platform built on ATproto
3
-
pkgver = 1.9.1.alpha
3
+
pkgver = 1.11.0.alpha
4
4
pkgrel = 1
5
5
url = https://tangled.org/@tangled.org/core
6
6
install = knotserver.install
···
11
11
conflicts = knotserver-git
12
12
options = strip
13
13
options = !debug
14
-
source = tangled::git+https://tangled.org/@tangled.org/core#tag=v1.9.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 = 5562ff3aef0b7e986cccfa778d7abb6003311c44a7df79709a40604782cdef24
19
-
sha256sums = ef8252f6c99f39367b574294594b7a87387525b39e5e186d5bf800e89615b126
18
+
sha256sums = 51d360848f8d61161a61a60adcd9f355246bdcd2a0437371096a8563896cc66a
19
+
sha256sums = 91bf996bc8ea97a6c4bcd0ebf5ab2f341bb1f6fa6da0190c9ff95c4debb217f8
20
20
sha256sums = 825ad80eccdfc473674cab83e4bd63d0e3b129d600b4628803d8241430da5bf8
21
21
sha256sums = 21accf6d6d6c9fb545f801cb0a6d98271f7205e504249cc7fdff53ba83203394
22
22
+7
-7
knotserver/PKGBUILD
+7
-7
knotserver/PKGBUILD
···
1
1
_pkgname=knotserver
2
-
_pkgver=1.9.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/\-/\.}
···
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=('5562ff3aef0b7e986cccfa778d7abb6003311c44a7df79709a40604782cdef24'
20
-
'ef8252f6c99f39367b574294594b7a87387525b39e5e186d5bf800e89615b126'
19
+
sha256sums=('51d360848f8d61161a61a60adcd9f355246bdcd2a0437371096a8563896cc66a'
20
+
'91bf996bc8ea97a6c4bcd0ebf5ab2f341bb1f6fa6da0190c9ff95c4debb217f8'
21
21
'825ad80eccdfc473674cab83e4bd63d0e3b129d600b4628803d8241430da5bf8'
22
22
'21accf6d6d6c9fb545f801cb0a6d98271f7205e504249cc7fdff53ba83203394')
23
23
···
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 -ldflags "-X tangled.sh/tangled.sh/core/knotserver/xrpc.version=${_pkgver}" -o "${srcdir}/build/knot" ./cmd/knot
34
+
cd ${srcdir}/core-v${_pkgver}
35
+
go build -ldflags "-X tangled.org/core/knotserver/xrpc.version=${_pkgver}" -o "${srcdir}/build/knot" ./cmd/knot
36
36
}
37
37
38
38
package() {
···
40
40
install -Dm644 "${srcdir}/${_pkgname}-tmpfiles.conf" "${pkgdir}/usr/lib/tmpfiles.d/${_pkgname}.conf"
41
41
install -Dm644 "${srcdir}/${_pkgname}-sshd.conf" "${pkgdir}/usr/lib/systemd/sshd_config.d/${_pkgname}.conf"
42
42
install -Dm755 "${srcdir}/build/knot" "${pkgdir}/usr/bin/knot"
43
-
install -Dm644 "${srcdir}/tangled/license" "${pkgdir}/usr/share/licenses/tangled/knotserver.LICENSE"
43
+
install -Dm644 "${srcdir}/core-v${_pkgver}/license" "${pkgdir}/usr/share/licenses/tangled/knotserver.LICENSE"
44
44
}
+2
-2
knotserver/knotserver.install
+2
-2
knotserver/knotserver.install
···
2
2
echo
3
3
echo knotserver installed, with repositories stored in: /var/lib/tangled
4
4
echo
5
-
echo Use `systemctl edit knotserver.service` to set `KNOT_SERVER_OWNER` to the DID of the knot owner,
6
-
echo and override `KNOT_SERVER_HOSTNAME` if 'hostname' does not return the FQDN 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.
7
7
echo
8
8
echo To enable git push over ssh for tangled repositories, run:
9
9
echo " ln -s /usr/lib/systemd/sshd_config.d/knotserver.conf /etc/ssh/sshd_config.d/30-knotserver.conf"
-1
knotserver/knotserver.service
-1
knotserver/knotserver.service
+2
-2
knotserver-git/.SRCINFO
+2
-2
knotserver-git/.SRCINFO
···
1
1
pkgbase = knotserver-git
2
2
pkgdesc = git collaboration platform built on ATproto
3
-
pkgver = 1.9.1.alpha.r0.g218b13d
3
+
pkgver = 1.9.1.alpha.r48.g8f7177a
4
4
pkgrel = 1
5
5
url = https://tangled.org/@tangled.org/core
6
6
install = knotserver.install
···
15
15
source = knotserver-sshd.conf
16
16
source = knotserver-tmpfiles.conf
17
17
sha256sums = SKIP
18
-
sha256sums = ef8252f6c99f39367b574294594b7a87387525b39e5e186d5bf800e89615b126
18
+
sha256sums = 91bf996bc8ea97a6c4bcd0ebf5ab2f341bb1f6fa6da0190c9ff95c4debb217f8
19
19
sha256sums = 825ad80eccdfc473674cab83e4bd63d0e3b129d600b4628803d8241430da5bf8
20
20
sha256sums = 21accf6d6d6c9fb545f801cb0a6d98271f7205e504249cc7fdff53ba83203394
21
21
+3
-3
knotserver-git/PKGBUILD
+3
-3
knotserver-git/PKGBUILD
···
1
1
_pkgname=knotserver
2
2
pkgname=${_pkgname}-git
3
3
pkgdesc='git collaboration platform built on ATproto'
4
-
pkgver=1.9.1.alpha.r0.g218b13d
4
+
pkgver=1.9.1.alpha.r48.g8f7177a
5
5
pkgrel=1
6
6
license=(MIT)
7
7
arch=(x86_64)
···
16
16
${_pkgname}-sshd.conf
17
17
${_pkgname}-tmpfiles.conf)
18
18
sha256sums=('SKIP'
19
-
'ef8252f6c99f39367b574294594b7a87387525b39e5e186d5bf800e89615b126'
19
+
'91bf996bc8ea97a6c4bcd0ebf5ab2f341bb1f6fa6da0190c9ff95c4debb217f8'
20
20
'825ad80eccdfc473674cab83e4bd63d0e3b129d600b4628803d8241430da5bf8'
21
21
'21accf6d6d6c9fb545f801cb0a6d98271f7205e504249cc7fdff53ba83203394')
22
22
···
36
36
export GOFLAGS="-buildmode=pie -trimpath -ldflags=-linkmode=external -mod=readonly -modcacherw"
37
37
38
38
cd ${srcdir}/tangled
39
-
go build -ldflags "-X tangled.sh/tangled.sh/core/knotserver/xrpc.version=${pkgver}" -o "${srcdir}/build/knot" ./cmd/knot
39
+
go build -ldflags "-X tangled.org/core/knotserver/xrpc.version=${pkgver}" -o "${srcdir}/build/knot" ./cmd/knot
40
40
}
41
41
42
42
package() {
+2
-2
knotserver-git/knotserver.install
+2
-2
knotserver-git/knotserver.install
···
2
2
echo
3
3
echo knotserver installed, with repositories stored in: /var/lib/tangled
4
4
echo
5
-
echo Use `systemctl edit knotserver.service` to set `KNOT_SERVER_OWNER` to the DID of the knot owner,
6
-
echo and override `KNOT_SERVER_HOSTNAME` if 'hostname' does not return the FQDN 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.
7
7
echo
8
8
echo To enable git push over ssh for tangled repositories, run:
9
9
echo " ln -s /usr/lib/systemd/sshd_config.d/knotserver.conf /etc/ssh/sshd_config.d/30-knotserver.conf"
-1
knotserver-git/knotserver.service
-1
knotserver-git/knotserver.service
+7
-5
spindle/.SRCINFO
+7
-5
spindle/.SRCINFO
···
1
1
pkgbase = spindle
2
2
pkgdesc = git collaboration platform built on ATproto
3
-
pkgver = 1.9.1.alpha
3
+
pkgver = 1.11.0.alpha
4
4
pkgrel = 1
5
5
url = https://tangled.org/@tangled.org/core
6
6
arch = x86_64
···
11
11
conflicts = spindle-git
12
12
options = strip
13
13
options = !debug
14
-
source = tangled::git+https://tangled.org/@tangled.org/core#tag=v1.9.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 = spindle.service
16
+
source = spindle.sysusers
16
17
source = spindle-tmpfiles.conf
17
-
sha256sums = 5562ff3aef0b7e986cccfa778d7abb6003311c44a7df79709a40604782cdef24
18
-
sha256sums = c133009fe69515dd35aa593e7f011136db40c22cde8804397177e1b75e3a6d5d
19
-
sha256sums = 2abd16b1b058876cc804057d9e5eb9ae39536d9a83c212326d48d3a7ba89bbd4
18
+
sha256sums = 51d360848f8d61161a61a60adcd9f355246bdcd2a0437371096a8563896cc66a
19
+
sha256sums = 6509c3c71ed305cc8cdf59f54261538a2f554621ae6116bb2f78ebe92b8d64bb
20
+
sha256sums = 1364062c3d0daa6fa8fc439bf26e88585d503a36b9f8335bae037f659b08bd15
21
+
sha256sums = 28673b854e9cd65cb129f46bc1dc894fb74a62fa3b976f2e1e5737558096b499
20
22
21
23
pkgname = spindle
+10
-7
spindle/PKGBUILD
+10
-7
spindle/PKGBUILD
···
1
1
_pkgname=spindle
2
-
_pkgver=1.9.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/\-/\.}
···
11
11
conflicts=(spindle-git)
12
12
makedepends=(git go)
13
13
options=(strip !debug)
14
-
source=("tangled::git+$url#tag=v${_pkgver}"
14
+
source=("core-v${_pkgver}.tar.gz::${url}/archive/refs%2Ftags%2Fv${_pkgver}"
15
15
${_pkgname}.service
16
+
${_pkgname}.sysusers
16
17
${_pkgname}-tmpfiles.conf)
17
-
sha256sums=('5562ff3aef0b7e986cccfa778d7abb6003311c44a7df79709a40604782cdef24'
18
-
'c133009fe69515dd35aa593e7f011136db40c22cde8804397177e1b75e3a6d5d'
19
-
'2abd16b1b058876cc804057d9e5eb9ae39536d9a83c212326d48d3a7ba89bbd4')
18
+
sha256sums=('51d360848f8d61161a61a60adcd9f355246bdcd2a0437371096a8563896cc66a'
19
+
'6509c3c71ed305cc8cdf59f54261538a2f554621ae6116bb2f78ebe92b8d64bb'
20
+
'1364062c3d0daa6fa8fc439bf26e88585d503a36b9f8335bae037f659b08bd15'
21
+
'28673b854e9cd65cb129f46bc1dc894fb74a62fa3b976f2e1e5737558096b499')
20
22
21
23
build() {
22
24
mkdir -p ${srcdir}/build
···
28
30
export CGO_LDFLAGS="${LDFLAGS}"
29
31
export GOFLAGS="-buildmode=pie -trimpath -ldflags=-linkmode=external -mod=readonly -modcacherw"
30
32
31
-
cd ${srcdir}/tangled
33
+
cd ${srcdir}/core-v${_pkgver}
32
34
go build -o "${srcdir}/build/spindle" ./cmd/spindle
33
35
}
34
36
35
37
package() {
36
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"
37
40
install -Dm644 "${srcdir}/${_pkgname}-tmpfiles.conf" "${pkgdir}/usr/lib/tmpfiles.d/${_pkgname}.conf"
38
41
install -Dm755 "${srcdir}/build/spindle" "${pkgdir}/usr/bin/spindle"
39
-
install -Dm644 "${srcdir}/tangled/license" "${pkgdir}/usr/share/licenses/tangled/spindle.LICENSE"
42
+
install -Dm644 "${srcdir}/core-v${_pkgver}/license" "${pkgdir}/usr/share/licenses/tangled/spindle.LICENSE"
40
43
}
+1
-1
spindle/spindle-tmpfiles.conf
+1
-1
spindle/spindle-tmpfiles.conf
+2
-3
spindle/spindle.service
+2
-3
spindle/spindle.service
···
5
5
AssertPathExists=/var/lib/spindle
6
6
7
7
[Service]
8
-
Environment="SPINDLE_SERVER_HOSTNAME=%H"
9
8
Environment="SPINDLE_SERVER_LISTEN_ADDR=127.0.0.1:6555"
10
9
WorkingDirectory=/var/lib/spindle
11
10
ExecStart=/usr/bin/spindle
12
11
Restart=always
13
-
User=root
14
-
Group=root
12
+
User=spindle
13
+
Group=spindle
15
14
StandardOutput=journal
16
15
StandardError=journal
17
16
LimitNOFILE=65536
+2
spindle/spindle.sysusers
+2
spindle/spindle.sysusers
+10
-5
src/README.md.sh
+10
-5
src/README.md.sh
···
1
1
#!/usr/bin/bash
2
+
set -eu
2
3
cat << EOF > ${pkgbuild_path}/README.md
3
4
# pkgs
4
5
5
-
PKGBUILDs for running [@tangled.sh](https://tangled.sh/@tangled.sh/core) on [Arch](https://archlinux.org).
6
+
PKGBUILDs for running [@tangled.org](https://tangled.org/@tangled.org/core) on [Arch](https://archlinux.org).
6
7
7
8
> [!NOTE]
8
9
> I use these packages to deploy to my knot server.
9
10
>
10
-
> These are **not** official tangled packages. **DO NOT** direct issues using these packages to the core tangled.sh repository.
11
+
> These are **not** official tangled packages. **DO NOT** direct issues using these packages to the core tangled.org repository.
11
12
12
13
## Packages:
13
14
14
15
### [appview](appview)
15
16
16
-
Builds \`appview\` from tag [v${tag}](https://tangled.sh/@tangled.sh/core/tree/v${tag}).
17
+
Builds \`appview\` from tag [v${tag}](https://tangled.org/@tangled.org/core/tree/v${tag}).
17
18
18
19
### [knotserver](knotserver)
19
20
20
-
Builds \`knot\` from tag [v${tag}](https://tangled.sh/@tangled.sh/core/tree/v${tag}).
21
+
Builds \`knot\` from tag [v${tag}](https://tangled.org/@tangled.org/core/tree/v${tag}).
21
22
22
23
### [knotserver-git](knotserver-git)
23
24
24
-
Builds \`knot\` from branch [master](https://tangled.sh/@tangled.sh/core/tree/master).
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}).
25
30
26
31
EOF
-17
src/common/install.sh
-17
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:-/var/lib/tangled/repositories}
6
-
echo
7
-
echo Use \`systemctl edit knotserver.service\` to set \`KNOT_SERVER_OWNER\` to the DID of the knot owner,
8
-
echo and override \`KNOT_SERVER_HOSTNAME\` if 'hostname' does not return the FQDN echo of your knot.
9
-
echo
10
-
echo To enable git push over ssh for tangled repositories, run:
11
-
echo " ln -s /usr/lib/systemd/sshd_config.d/knotserver.conf /etc/ssh/sshd_config.d/30-knotserver.conf"
12
-
echo " usermod -s /usr/bin/bash -d ${knotserver_repo_path:-/var/lib/tangled/repositories} ${knotserver_user:-git}"
13
-
echo
14
-
echo and reload sshd
15
-
echo
16
-
}
17
-
EOF
-29
src/common/service.sh
-29
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_path:-/var/lib/tangled}
8
-
AssertPathExists=${knotserver_repo_path:-/var/lib/tangled/repositories}
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:-/var/lib/tangled/repositories}"
14
-
WorkingDirectory=${knotserver_path:-/var/lib/tangled}
15
-
ExecStart=/usr/bin/knot server
16
-
Restart=always
17
-
User=${knotserver_user:-git}
18
-
Group=${knotserver_group:-git}
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
-6
src/common/sshd.conf.sh
-6
src/common/sshd.conf.sh
···
1
-
#!/usr/bin/bash
2
-
cat << EOF > ${pkgbuild_path}/knotserver-sshd.conf
3
-
Match User ${knotserver_user:-git}
4
-
AuthorizedKeysCommand /usr/bin/knot keys -output authorized-keys -git-dir ${knotserver_repo_path:-/var/lib/tangled/repositories} -log-path ${knotserver_log_directory:-/var/log/knotserver}/keyfetch.log
5
-
AuthorizedKeysCommandUser nobody
6
-
EOF
-6
src/common/tmpfiles.conf.sh
-6
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_path:-/var/lib/tangled} 755 ${knotserver_user:-git} ${knotserver_group:-git} -
5
-
d ${knotserver_repo_path:-/var/lib/tangled/repositories} 755 ${knotserver_user:-git} ${knotserver_group:-git} -
6
-
EOF
+5
-4
src/knotserver/PKGBUILD.sh
+5
-4
src/knotserver/PKGBUILD.sh
···
1
1
#!/usr/bin/bash
2
+
set -eu
2
3
cat << EOF > ${pkgbuild_path}/PKGBUILD
3
4
_pkgname=knotserver
4
5
_pkgver=${tag}
···
14
15
makedepends=(go)
15
16
options=(strip !debug)
16
17
install=\${_pkgname}.install
17
-
source=("tangled::git+\$url#tag=v\${_pkgver}"
18
+
source=("core-v\${_pkgver}.tar.gz::\${url}/archive/refs%2Ftags%2Fv\${_pkgver}"
18
19
\${_pkgname}.service
19
20
\${_pkgname}-sshd.conf
20
21
\${_pkgname}-tmpfiles.conf)
···
33
34
export CGO_LDFLAGS="\${LDFLAGS}"
34
35
export GOFLAGS="-buildmode=pie -trimpath -ldflags=-linkmode=external -mod=readonly -modcacherw"
35
36
36
-
cd \${srcdir}/tangled
37
-
go build -ldflags "-X tangled.sh/tangled.sh/core/knotserver/xrpc.version=\${_pkgver}" -o "\${srcdir}/build/knot" ./cmd/knot
37
+
cd \${srcdir}/core-v\${_pkgver}
38
+
go build -ldflags "-X tangled.org/core/knotserver/xrpc.version=\${_pkgver}" -o "\${srcdir}/build/knot" ./cmd/knot
38
39
}
39
40
40
41
package() {
···
42
43
install -Dm644 "\${srcdir}/\${_pkgname}-tmpfiles.conf" "\${pkgdir}/usr/lib/tmpfiles.d/\${_pkgname}.conf"
43
44
install -Dm644 "\${srcdir}/\${_pkgname}-sshd.conf" "\${pkgdir}/usr/lib/systemd/sshd_config.d/\${_pkgname}.conf"
44
45
install -Dm755 "\${srcdir}/build/knot" "\${pkgdir}/usr/bin/knot"
45
-
install -Dm644 "\${srcdir}/tangled/license" "\${pkgdir}/usr/share/licenses/tangled/knotserver.LICENSE"
46
+
install -Dm644 "\${srcdir}/core-v\${_pkgver}/license" "\${pkgdir}/usr/share/licenses/tangled/knotserver.LICENSE"
46
47
}
47
48
EOF
+3
-2
src/knotserver/README.md.sh
+3
-2
src/knotserver/README.md.sh
···
1
1
#!/usr/bin/bash
2
+
set -eu
2
3
cat << EOF > ${pkgbuild_path}/README.md
3
4
# knotserver
4
5
···
10
11
## SSH
11
12
12
13
SSH access is required to push to repositories. To enable, use the sshd_config.d drop-in, and give the
13
-
\`${knotserver_user:-git}\` user a shell and a home directory:
14
+
\`${knotserver_user}\` user a shell and a home directory:
14
15
15
16
\`\`\`bash
16
17
ln -s /usr/lib/systemd/sshd_config.d/knotserver.conf /etc/ssh/sshd_config.d/30-knotserver.conf
17
-
usermod -s /usr/bin/bash -d ${knotserver_repo_path} ${knotserver_user:-git}
18
+
usermod -s /usr/bin/bash -d ${knotserver_repo_path} ${knotserver_user}
18
19
\`\`\`
19
20
20
21
EOF
+3
-2
src/knotserver-git/README.md.sh
+3
-2
src/knotserver-git/README.md.sh
···
1
1
#!/usr/bin/bash
2
+
set -eu
2
3
cat << EOF > ${pkgbuild_path}/README.md
3
4
# knotserver-git
4
5
···
10
11
## SSH
11
12
12
13
SSH access is required to push to repositories. To enable, use the sshd_config.d drop-in, and give the
13
-
\`${knotserver_user:-git}\` user a shell and a home directory:
14
+
\`${knotserver_user}\` user a shell and a home directory:
14
15
15
16
\`\`\`bash
16
17
ln -s /usr/lib/systemd/sshd_config.d/knotserver.conf /etc/ssh/sshd_config.d/30-knotserver.conf
17
-
usermod -s /usr/bin/bash -d ${knotserver_repo_path} ${knotserver_user:-git}
18
+
usermod -s /usr/bin/bash -d ${knotserver_repo_path} ${knotserver_user}
18
19
\`\`\`
19
20
20
21
EOF
+7
-3
src/spindle/PKGBUILD.sh
+7
-3
src/spindle/PKGBUILD.sh
···
1
1
#!/usr/bin/bash
2
+
set -eu
2
3
cat << EOF > ${pkgbuild_path}/PKGBUILD
3
4
_pkgname=spindle
4
5
_pkgver=${tag}
···
13
14
conflicts=(spindle-git)
14
15
makedepends=(git go)
15
16
options=(strip !debug)
16
-
source=("tangled::git+\$url#tag=v\${_pkgver}"
17
+
source=("core-v\${_pkgver}.tar.gz::\${url}/archive/refs%2Ftags%2Fv\${_pkgver}"
17
18
\${_pkgname}.service
19
+
\${_pkgname}.sysusers
18
20
\${_pkgname}-tmpfiles.conf)
19
21
sha256sums=('set by updpkgsums'
22
+
'set by updpkgsums'
20
23
'set by updpkgsums'
21
24
'set by updpkgsums')
22
25
···
30
33
export CGO_LDFLAGS="\${LDFLAGS}"
31
34
export GOFLAGS="-buildmode=pie -trimpath -ldflags=-linkmode=external -mod=readonly -modcacherw"
32
35
33
-
cd \${srcdir}/tangled
36
+
cd \${srcdir}/core-v\${_pkgver}
34
37
go build -o "\${srcdir}/build/spindle" ./cmd/spindle
35
38
}
36
39
37
40
package() {
38
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"
39
43
install -Dm644 "\${srcdir}/\${_pkgname}-tmpfiles.conf" "\${pkgdir}/usr/lib/tmpfiles.d/\${_pkgname}.conf"
40
44
install -Dm755 "\${srcdir}/build/spindle" "\${pkgdir}/usr/bin/spindle"
41
-
install -Dm644 "\${srcdir}/tangled/license" "\${pkgdir}/usr/share/licenses/tangled/spindle.LICENSE"
45
+
install -Dm644 "\${srcdir}/core-v\${_pkgver}/license" "\${pkgdir}/usr/share/licenses/tangled/spindle.LICENSE"
42
46
}
43
47
EOF
-24
src/spindle/service.sh
-24
src/spindle/service.sh
···
1
-
#!/usr/bin/bash
2
-
cat << EOF > ${pkgbuild_path}/spindle.service
3
-
[Unit]
4
-
Description=tangled spindle server
5
-
After=network.target network-online.target docker.service
6
-
Wants=network-online.target
7
-
AssertPathExists=${spindle_path:-/var/lib/spindle}
8
-
9
-
[Service]
10
-
Environment="SPINDLE_SERVER_HOSTNAME=%H"
11
-
Environment="SPINDLE_SERVER_LISTEN_ADDR=127.0.0.1:6555"
12
-
WorkingDirectory=${spindle_path:-/var/lib/spindle}
13
-
ExecStart=/usr/bin/spindle
14
-
Restart=always
15
-
User=${spindle_user:-root}
16
-
Group=${spindle_group:-root}
17
-
StandardOutput=journal
18
-
StandardError=journal
19
-
LimitNOFILE=65536
20
-
LogsDirectory=spindle
21
-
22
-
[Install]
23
-
WantedBy=multi-user.target
24
-
EOF
+2
-1
src/spindle/tmpfiles.conf.sh
+2
-1
src/spindle/tmpfiles.conf.sh
+5
-1
update.sh
+5
-1
update.sh
···
1
1
#!/usr/bin/env bash
2
+
set -eu
2
3
3
4
source ./conf.sh
4
5
···
6
7
source src/README.md.sh
7
8
8
9
for pkgbuild_path in knotserver knotserver-git; do
9
-
for src in src/common/*.sh; do
10
+
for src in src/knotserver-shared/*.sh; do
10
11
source ${src}
11
12
done
12
13
for src in src/${pkgbuild_path}/*.sh; do
···
21
22
done
22
23
23
24
for pkgbuild_path in spindle; do
25
+
for src in src/spindle-shared/*.sh; do
26
+
source ${src}
27
+
done
24
28
for src in src/${pkgbuild_path}/*.sh; do
25
29
source ${src}
26
30
done