diff --git a/.forgejo/workflows/build-alpine.yml b/.forgejo/workflows/build-alpine.yml deleted file mode 100644 index b1757a60..00000000 --- a/.forgejo/workflows/build-alpine.yml +++ /dev/null @@ -1,49 +0,0 @@ -on: - - workflow-dispatch - - push - -jobs: - build: - runs-on: ubuntu-latest - container: - image: alpine:edge - - steps: - - name: set up dependencies - run: | - apk update - apk upgrade - apk add nodejs git alpine-sdk - - uses: actions/checkout@v4 - name: checkout the alpine dir - with: - sparse-checkout: "alpine/" - - # - uses: actions/checkout@v4 - # name: checkout the rest in the alpine dir - # with: - # path: 'alpine/continuwuity' - - name: set up user - run: adduser -DG abuild ci - - - name: set up keys - run: | - pwd - mkdir ~/.abuild - echo "${{ secrets.abuild_privkey }}" > ~/.abuild/ci@continuwuity.rsa - echo "${{ secrets.abuild_pubkey }}" > ~/.abuild/ci@continuwuity.rsa.pub - echo $HOME - echo 'PACKAGER_PRIVKEY="/root/.abuild/ci@continuwuity.rsa"' > ~/.abuild/abuild.conf - ls ~/.abuild - - - name: go go gadget abuild - run: | - cd alpine - # modify the APKBUILD to use the current branch instead of the release - # note that it seems to require the repo to be public (as you'll get - # a 404 even if the token is provided) - export ARCHIVE_URL="${{ github.server_url }}/${{ github.repository }}/archive/${{ github.ref_name }}.tar.gz" - echo $ARCHIVE_URL - sed -i '/^source=/c\source="'"$ARCHIVE_URL" APKBUILD - abuild -F checksum - abuild -Fr diff --git a/alpine/APKBUILD b/alpine/APKBUILD deleted file mode 100644 index 97f84f65..00000000 --- a/alpine/APKBUILD +++ /dev/null @@ -1,63 +0,0 @@ -# Contributor: magmaus3 -# Maintainer: magmaus3 -pkgname=continuwuity - -# abuild doesn't like the format of v0.5.0-rc.5, so i had to change it -# see https://wiki.alpinelinux.org/wiki/Package_policies -pkgver=0.5.0_rc5 -pkgrel=0 -pkgdesc="a continuwuation of a very cool, featureful fork of conduit" -url="https://continuwuity.org/" -arch="all" -license="Apache-2.0" -depends="liburing" - -# cargo version on alpine v3.21 is too old to use the 2024 edition -# i recommend either building everything on edge, or adding -# the edge repo as a tag -makedepends="cargo liburing-dev clang-dev linux-headers" -checkdepends="" -install="$pkgname.pre-install" -subpackages="$pkgname-openrc" -source="https://forgejo.ellis.link/continuwuation/continuwuity/archive/v0.5.0-rc.5.tar.gz -continuwuity.initd -continuwuity.confd -" -builddir="$srcdir/continuwuity" -options="net !check" - -prepare() { - default_prepare - cd $srcdir/continuwuity - - # add the default database path to the config (commented out) - cat conduwuit-example.toml \ - | sed '/#database_path/ s:$: "/var/lib/continuwuity":' \ - > "$srcdir"/continuwuity.toml - - cargo fetch --target="$CTARGET" --locked -} - -build() { - cargo build --frozen --release --all-features -} - -check() { - # TODO: make sure the tests work - #cargo test --frozen - return -} - -package() { - cd $srcdir - install -Dm755 continuwuity/target/release/conduwuit "$pkgdir"/usr/bin/continuwuity - install -Dm644 "$srcdir"/continuwuity.toml -t "$pkgdir"/etc/continuwuity - install -Dm755 "$srcdir"/continuwuity.initd "$pkgdir"/etc/init.d/continuwuity - install -Dm644 "$srcdir"/continuwuity.confd "$pkgdir"/etc/conf.d/continuwuity -} - -sha512sums=" -66f6da5e98b6f7bb8c1082500101d5c87b1b79955c139b44c6ef5123919fb05feb0dffc669a3af1bc8d571ddb9f3576660f08dc10a6b19eab6db9e391175436a v0.5.0-rc.5.tar.gz -0482674be24740496d70da256d4121c5a5e3b749f2445d2bbe0e8991f1449de052724f8427da21a6f55574bc53eac9ca1e47e5012b4c13049b2b39044734d80d continuwuity.initd -38e2576278b450d16ba804dd8f4a128f18cd793e6c3ce55aedee1e186905755b31ee23baaa6586b1ab0e25a1f29bf1ea86bfaae4185b0cb1a29203726a199426 continuwuity.confd -" diff --git a/alpine/README.md b/alpine/README.md deleted file mode 100644 index 5f26d772..00000000 --- a/alpine/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# building - -1. [set up your build - environment](https://wiki.alpinelinux.org/wiki/Include:Setup_your_system_and_account_for_building_packages) - -2. run `abuild` (or `abuild -K` if you want to keep the source directory to make - rebuilding faster) diff --git a/alpine/continuwuity.confd b/alpine/continuwuity.confd deleted file mode 100644 index 03d7b0a0..00000000 --- a/alpine/continuwuity.confd +++ /dev/null @@ -1,3 +0,0 @@ -supervisor=supervise-daemon -export CONTINUWUITY_CONFIG=/etc/continuwuity/continuwuity.toml - diff --git a/alpine/continuwuity.initd b/alpine/continuwuity.initd deleted file mode 100644 index 1354f4bd..00000000 --- a/alpine/continuwuity.initd +++ /dev/null @@ -1,19 +0,0 @@ -#!/sbin/openrc-run - -command="/usr/bin/continuwuity" -command_user="continuwuity:continuwuity" -command_args="--config ${CONTINUWUITY_CONFIG=/etc/continuwuity/continuwuity.toml}" -command_background=true -pidfile="/run/$RC_SVCNAME.pid" - -output_log="/var/log/continuwuity.log" -error_log="/var/log/continuwuity.log" - -depend() { - need net -} - -start_pre() { - checkpath -d -m 0755 -o "$command_user" /var/lib/continuwuity - checkpath -f -m 0644 -o "$command_user" "$output_log" -} diff --git a/alpine/continuwuity.pre-install b/alpine/continuwuity.pre-install deleted file mode 100644 index edac789f..00000000 --- a/alpine/continuwuity.pre-install +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -addgroup -S continuwuity 2>/dev/null -adduser -S -D -H -h /var/lib/continuwuity -s /sbin/nologin -G continuwuity -g continuwuity continuwuity 2>/dev/null -exit 0 diff --git a/src/api/client/space.rs b/src/api/client/space.rs index 92768926..23b1e80f 100644 --- a/src/api/client/space.rs +++ b/src/api/client/space.rs @@ -121,7 +121,9 @@ where .map(|(key, val)| (key, val.collect())) .collect(); - if !populate { + if populate { + rooms.push(summary_to_chunk(summary.clone())); + } else { children = children .iter() .rev() @@ -144,10 +146,8 @@ where .collect(); } - if populate { - rooms.push(summary_to_chunk(summary.clone())); - } else if queue.is_empty() && children.is_empty() { - return Err!(Request(InvalidParam("Room IDs in token were not found."))); + if !populate && queue.is_empty() && children.is_empty() { + break; } parents.insert(current_room.clone()); diff --git a/src/service/resolver/actual.rs b/src/service/resolver/actual.rs index 0151c4d7..053c63fc 100644 --- a/src/service/resolver/actual.rs +++ b/src/service/resolver/actual.rs @@ -306,28 +306,25 @@ impl super::Service { #[tracing::instrument(name = "srv", level = "debug", skip(self))] async fn query_srv_record(&self, hostname: &'_ str) -> Result> { - let hostnames = - [format!("_matrix-fed._tcp.{hostname}."), format!("_matrix._tcp.{hostname}.")]; + self.services.server.check_running()?; - for hostname in hostnames { - self.services.server.check_running()?; + debug!("querying SRV for {hostname:?}"); - debug!("querying SRV for {hostname:?}"); - let hostname = hostname.trim_end_matches('.'); - match self.resolver.resolver.srv_lookup(hostname).await { - | Err(e) => Self::handle_resolve_error(&e, hostname)?, - | Ok(result) => { - return Ok(result.iter().next().map(|result| { - FedDest::Named( - result.target().to_string().trim_end_matches('.').to_owned(), - format!(":{}", result.port()) - .as_str() - .try_into() - .unwrap_or_else(|_| FedDest::default_port()), - ) - })); - }, - } + let hostname_suffix = format!("_matrix-fed._tcp.{hostname}."); + let hostname = hostname_suffix.trim_end_matches('.'); + match self.resolver.resolver.srv_lookup(hostname).await { + | Err(e) => Self::handle_resolve_error(&e, hostname)?, + | Ok(result) => { + return Ok(result.iter().next().map(|result| { + FedDest::Named( + result.target().to_string().trim_end_matches('.').to_owned(), + format!(":{}", result.port()) + .as_str() + .try_into() + .unwrap_or_else(|_| FedDest::default_port()), + ) + })); + }, } Ok(None)