Monorepo for Aesthetic.Computer aesthetic.computer
4
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix: oven papers build — add CJK fonts + fix deploy permissions

deploy.sh: Added texlive-lang-chinese and texlive-lang-cjk to TeX Live install. These provide xeCJK package needed for Chinese translations. Without them, all zh .tex files fail with "Emergency stop" at \setCJKmainfont.

papers-builder.mjs: Added chmod -R u+w on the deploy directory before running publish. PDFs committed locally by developers may have restrictive permissions that prevent the oven process from overwriting them during deployment.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

+7 -1
+1 -1
oven/deploy.sh
··· 90 90 echo "" 91 91 echo "📄 Installing TeX Live for papers builds..." 92 92 ssh -i "$SSH_KEY" -o StrictHostKeyChecking=no "root@$OVEN_HOST" \ 93 - "apt-get install -y -q texlive-xetex texlive-fonts-extra texlive-latex-extra texlive-bibtex-extra fonts-droid-fallback 2>&1 | tail -5 || true" 93 + "apt-get install -y -q texlive-xetex texlive-fonts-extra texlive-latex-extra texlive-bibtex-extra texlive-lang-chinese texlive-lang-cjk fonts-droid-fallback 2>&1 | tail -5 || true" 94 94 echo "✅ TeX Live ready" 95 95 96 96 # Optional vault-managed admin key for /os-base-build endpoints
+6
oven/papers-builder.mjs
··· 172 172 job.percent = 0; 173 173 buildCount = 0; 174 174 175 + // Ensure deploy directory is writable (PDFs committed by others may have restrictive perms) 176 + const deployDir = path.join(GIT_REPO_DIR, "system", "public", "papers.aesthetic.computer"); 177 + try { 178 + await new Promise((res) => execFile("chmod", ["-R", "u+w", deployDir], () => res())); 179 + } catch {} 180 + 175 181 // Single phase: node papers/cli.mjs publish 176 182 const cliPath = path.join(GIT_REPO_DIR, "papers", "cli.mjs"); 177 183 job.stage = "build";