From 9d6300ac8f6ba349e4c27b52714ac8a02e5cf60b Mon Sep 17 00:00:00 2001
From: Jake <j.vondoemming@stud.uni-goettingen.de>
Date: Sat, 25 Mar 2023 15:30:32 +0100
Subject: [PATCH] don't use system pandoc

---
 .gitignore     |  2 ++
 .gitlab-ci.yml |  2 --
 Makefile       | 17 +++++++++++++++--
 README.md      |  1 -
 fgs/pandoc.py  |  2 +-
 pandoc         |  1 +
 6 files changed, 19 insertions(+), 6 deletions(-)
 create mode 120000 pandoc

diff --git a/.gitignore b/.gitignore
index 28ebbf5..b3b8833 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,5 +2,7 @@
 /docs-output
 /public
 /content
+/pandoc-*
+/venv
 __pycache__
 *.swp
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index ec08728..fc7f6bc 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -17,7 +17,6 @@ site:
     - when: on_success
   before_script:
     - apt-get update && apt-get install -y --no-install-recommends python3-pip python3 make git wget software-properties-common
-    - wget -O pandoc.deb https://github.com/jgm/pandoc/releases/download/2.18/pandoc-2.18-1-amd64.deb && dpkg -i pandoc.deb && rm --interactive=never pandoc.deb
     - pip3 install -r requirements.txt
     - "echo \"CHECKOUT_BRANCH: $CHECKOUT_BRANCH UPSTREAM_BRANCH: $UPSTREAM_BRANCH\""
     - git clone https://gitlab.gwdg.de/GAUMI-fginfo/fg-website-data.git content --branch $CHECKOUT_BRANCH
@@ -32,7 +31,6 @@ docs:
   stage: build
   before_script:
     - apt-get update && apt-get install -y --no-install-recommends python3-pip python3 make git wget software-properties-common
-    - wget -O pandoc.deb https://github.com/jgm/pandoc/releases/download/2.18/pandoc-2.18-1-amd64.deb && dpkg -i pandoc.deb && rm --interactive=never pandoc.deb
     - pip3 install -r requirements.txt
   script:
     - make docs
diff --git a/Makefile b/Makefile
index 74de51e..4731833 100644
--- a/Makefile
+++ b/Makefile
@@ -5,11 +5,11 @@ html: docs build
 publish: build
 
 .PHONY: build
-build: mathjax
+build: pandoc mathjax
 	cd fgs && python3 __main__.py "../content" "../output" "../theme" "../config.json" "../lang.json"
 
 .PHONY: docs
-docs: mathjax
+docs: pandoc mathjax
 	cd fgs && python3 __main__.py "../docs" "../docs-output" "../theme" "../config.json" "../lang.json"
 
 .PHONY: mathjax
@@ -20,3 +20,16 @@ mathjax:
 devserver:
 	python -m http.server 8000
 
+.PHONY: pandoc
+pandoc: pandoc-2.18
+	ln -svf pandoc-2.18 pandoc
+
+pandoc-2.18:
+	[ ! -x pandoc-2.18/bin/pandoc ] \
+	&& wget https://github.com/jgm/pandoc/releases/download/2.18/pandoc-2.18-linux-amd64.tar.gz -O pandoc.tar.gz \
+	&& tar xzvf pandoc.tar.gz \
+	&& rm -v pandoc.tar.gz \
+	|| true
+	[ -x pandoc-2.18/bin/pandoc ]
+
+
diff --git a/README.md b/README.md
index 585c2de..aa391f1 100644
--- a/README.md
+++ b/README.md
@@ -25,7 +25,6 @@ Um an der Seite zu arbeiten ist es meistens sinnvoll diese auch lokal zu hosten.
 Die folgenden Befehle sind für Ubuntu 20.04 LTS (Focal) gedacht.
 
 1. Pakete installieren: `apt-get update && apt-get install -y --no-install-recommends python3-pip python3 make git wget software-properties-common`
-1. Pandoc 2.18 installieren: `wget -O pandoc.deb https://github.com/jgm/pandoc/releases/download/2.18/pandoc-2.18-1-amd64.deb && dpkg -i pandoc.deb && rm --interactive=never pandoc.deb`
 1. Metarepo klonen: `git clone --recurse-submodules git@gitlab.gwdg.de:GAUMI-fginfo/fg-website.git`
 1. `cd fg-website`
 1. Python Pakete installieren: `pip3 install -r requirements.txt`
diff --git a/fgs/pandoc.py b/fgs/pandoc.py
index 8921b38..c8ce849 100644
--- a/fgs/pandoc.py
+++ b/fgs/pandoc.py
@@ -27,7 +27,7 @@ def run_pandoc(source, factories, lang, base="markdown", extensions=[], extra_ar
             ext_str = ext_str + flag + ext_key
 
     #print(ext_str)
-    pandoc_bin = "pandoc"
+    pandoc_bin = "../pandoc/bin/pandoc"
     args = [pandoc_bin, "-f", base + ext_str, "-t", to] + extra_args
     p = subprocess.Popen(args, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
     out, _ = p.communicate(source.encode('utf-8', errors='strict'))
diff --git a/pandoc b/pandoc
new file mode 120000
index 0000000..1812cfa
--- /dev/null
+++ b/pandoc
@@ -0,0 +1 @@
+pandoc-2.18
\ No newline at end of file
-- 
GitLab