Skip to content
Snippets Groups Projects
  1. Feb 25, 2025
    • Quentin Gliech's avatar
      Fix MSC4108 'rendez-vous' responses with some reverse proxy in the front of Synapse (#18178) · b9276e21
      Quentin Gliech authored
      MSC4108 relies on ETag to determine if something has changed on the
      rendez-vous channel.
      Strong and correct ETag comparison works if the response body is
      bit-for-bit identical, which isn't the case if a proxy in the middle
      compresses the response on the fly.
      
      This adds a `no-transform` directive to the `Cache-Control` header,
      which tells proxies not to transform the response body.
      
      Additionally, some proxies (nginx) will switch to `Transfer-Encoding:
      chunked` if it doesn't know the Content-Length of the response, and
      'weakening' the ETag if that's the case. I've added `Content-Length`
      headers to all responses, to hopefully solve that.
      
      This basically fixes QR-code login when nginx or cloudflare is involved,
      with gzip/zstd/deflate compression enabled.
      Unverified
      b9276e21
  2. Feb 24, 2025
  3. Feb 21, 2025
  4. Feb 20, 2025
  5. Feb 19, 2025
    • Quentin Gliech's avatar
      Speedup the building of Docker images (#18038) · 1525a3b4
      Quentin Gliech authored
      This is a split off #18033 
      
      This uses a few tricks to speed up the building of docker images:
      
      - This switches to use `uv pip install` instead of `pip install`. This
      saves a bunch of time, especially when cross-compiling
      - I then looked at what packages were not using binary wheels: I
      upgraded MarkupSafe to have binaries for py3.12, and got back to Python
      3.12 because hiredis didn't have builds for py3.13 with the version we
      were using
      - The generation of the requirements.txt is arch-agnostic, so I've
      switched this one to run on the build architecture, so that both arch
      can share it
      - The download of runtime depdendencies can be done on the build
      architecture through manual `apt-get download` plus `dpkg --extract`
      - We were using -slim images, but still installed a bunch of -dev
      dependencies. Turns out, all the dev dependencies were already installed
      in the non-slim image, which saves a bunch of time as well
      Unverified
      1525a3b4
  6. Feb 18, 2025
  7. Feb 17, 2025
  8. Feb 14, 2025
  9. Feb 12, 2025
  10. Feb 11, 2025
  11. Feb 10, 2025
  12. Feb 07, 2025
Loading