diff options
author | Lehrgangsserver | 2023-02-03 20:34:01 +0100 |
---|---|---|
committer | Lehrgangsserver | 2023-02-03 20:34:01 +0100 |
commit | 539fce5f675157ef552b009d49f526b0d61e3d53 (patch) | |
tree | 5c6ecff74b4791a79926e6c5f74bd88dd0e03cf3 | |
parent | 4a279b198b4cb7623614b677bc6bd0553b3d1d91 (diff) | |
download | aur-539fce5f675157ef552b009d49f526b0d61e3d53.tar.gz |
updates, remove isolate from the package
-rw-r--r-- | .SRCINFO | 15 | ||||
-rw-r--r-- | PKGBUILD | 45 | ||||
-rw-r--r-- | dont_install_isolate.patch | 24 | ||||
-rw-r--r-- | new_jinja2_1.patch | 11 | ||||
-rw-r--r-- | new_jinja2_2.patch | 136 | ||||
-rw-r--r-- | pgf.patch | 45 |
6 files changed, 196 insertions, 80 deletions
@@ -1,6 +1,6 @@ pkgbase = cms-germany-git pkgdesc = CMS, or Contest Management System, is a distributed system for running and (to some extent) organizing a programming contest. This is a fork used for the German IOI team selection process. - pkgver = r4741.f6b4bd18 + pkgver = r5032.b78d8a4e pkgrel = 1 url = https://github.com/ioi-germany/cms install = cms-germany-git.install @@ -10,6 +10,7 @@ pkgbase = cms-germany-git makedepends = git makedepends = asciidoc makedepends = python-setuptools + depends = isolate depends = python depends = python-tornado depends = python-psycopg2 @@ -27,6 +28,7 @@ pkgbase = cms-germany-git depends = python-yaml depends = python-future depends = python-jinja + depends = python-markupsafe depends = python-xdg depends = postgresql depends = postgresql-client @@ -45,17 +47,16 @@ pkgbase = cms-germany-git optdepends = fpc: support for Pascal submissions optdepends = jdk8-openjdk: support for Java submissions provides = cms-germany - provides = isolate-germany conflicts = cms - conflicts = isolate backup = etc/cms.conf backup = etc/cms.ranking.conf - source = git://github.com/ioi-germany/cms.git#branch=main - source = git://github.com/ioi-germany/isolate.git - source = pgf.patch + source = git+https://github.com/ioi-germany/cms.git#branch=main + source = dont_install_isolate.patch + source = new_jinja2_1.patch + source = new_jinja2_2.patch + sha256sums = SKIP sha256sums = SKIP sha256sums = SKIP sha256sums = SKIP pkgname = cms-germany-git - @@ -1,11 +1,12 @@ pkgname=cms-germany-git -pkgver=r5003.07a9d40e +pkgver=r5032.b78d8a4e pkgrel=1 pkgdesc="CMS, or Contest Management System, is a distributed system for running and (to some extent) organizing a programming contest. This is a fork used for the German IOI team selection process." arch=('i686' 'x86_64') url="https://github.com/ioi-germany/cms" license=('AGPL3') depends=( + 'isolate' 'python' 'python-tornado' 'python-psycopg2' @@ -18,17 +19,15 @@ depends=( 'python-requests' 'python-gevent' 'python-werkzeug' -# 'patool-py3' 'python-bcrypt' 'python-chardet' -# 'python-ipaddress' 'python-yaml' 'python-future' 'python-jinja' + 'python-markupsafe' 'python-xdg' 'postgresql' 'postgresql-client' -# 'libcgroup' 'iso-codes' 'shared-mime-info' 'asymptote' @@ -56,17 +55,21 @@ backup=( 'etc/cms.ranking.conf' ) -provides=('cms-germany' 'isolate-germany') -conflicts=('cms' 'isolate') +provides=('cms-germany') +conflicts=('cms') install=$pkgname.install source=( 'git+https://github.com/ioi-germany/cms.git#branch=main' - 'git+https://github.com/ioi-germany/isolate.git' - 'pgf.patch' + 'dont_install_isolate.patch' + 'new_jinja2_1.patch' + 'new_jinja2_2.patch' ) sha256sums=( - 'SKIP' 'SKIP' 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' + 'SKIP' ) pkgver() { @@ -75,29 +78,15 @@ pkgver() { } build() { - cd isolate - make PREFIX="/usr" VARPREFIX="/var" CONFIGDIR="/etc" isolate isolate.1 - - cd ../cms - - git config submodule.isolate.url "$srcdir/isolate" - git submodule update + true } package() { - cd isolate - make PREFIX="$pkgdir/usr" VARPREFIX="$pkgdir/var" CONFIGDIR="$pkgdir/etc" install install-doc - - # Patch the configuration file so that it uses a standard directory - sed -i "s|/var/local/lib/isolate|/var/lib/isolate|" $pkgdir/etc/isolate - - # The isolate binary has the setuid bit set (to run as root without sudo) - # however we should let only the owner and the group be able to run it: - chmod o-x $pkgdir/usr/bin/isolate - - cd ../cms + cd cms - patch cmscontrib/gerpythonformat/templates/lg/graphdrawing.tex ../pgf.patch + patch prerequisites.py ../dont_install_isolate.patch + patch cms/grading/ParameterTypes.py ../new_jinja2_1.patch + patch cms/server/jinja2_toolbox.py ../new_jinja2_2.patch # Logs and cache directories install -d -m770 $pkgdir/var/log/cms diff --git a/dont_install_isolate.patch b/dont_install_isolate.patch new file mode 100644 index 000000000000..e7556bfad7a9 --- /dev/null +++ b/dont_install_isolate.patch @@ -0,0 +1,24 @@ +--- src/cms/prerequisites.py 2023-02-03 20:07:08.513538486 +0100 ++++ prerequisites.py 2023-02-03 20:06:48.243380178 +0100 +@@ -232,11 +232,7 @@ + + + def build(): +- """This function builds all the prerequisites by calling: +- - build_isolate +- +- """ +- build_isolate() ++ pass + + + def install_conf(): +@@ -299,8 +295,6 @@ + subprocess.check_call(["sudo", "-E", "-u", real_user, + sys.executable, sys.argv[0], "build"]) + +- install_isolate() +- + # We set permissions for each manually installed files, so we want + # max liberty to change them. + old_umask = os.umask(0o000) diff --git a/new_jinja2_1.patch b/new_jinja2_1.patch new file mode 100644 index 000000000000..72bfc690f882 --- /dev/null +++ b/new_jinja2_1.patch @@ -0,0 +1,11 @@ +diff -ruN pkg/cms-germany-git/usr/lib/python3.10/site-packages/cms/grading/ParameterTypes.py /usr/lib/python3.10/site-packages/cms/grading/ParameterTypes.py +--- pkg/cms-germany-git/usr/lib/python3.10/site-packages/cms/grading/ParameterTypes.py 2023-02-03 16:35:06.000000000 +0100 ++++ /usr/lib/python3.10/site-packages/cms/grading/ParameterTypes.py 2023-02-03 17:05:45.781269085 +0100 +@@ -29,7 +29,7 @@ + + from abc import ABCMeta, abstractmethod + +-from jinja2 import Markup ++from markupsafe import Markup + + from cms.server.jinja2_toolbox import GLOBAL_ENVIRONMENT diff --git a/new_jinja2_2.patch b/new_jinja2_2.patch new file mode 100644 index 000000000000..ddf2d402439d --- /dev/null +++ b/new_jinja2_2.patch @@ -0,0 +1,136 @@ +diff -ruN pkg/cms-germany-git/usr/lib/python3.10/site-packages/cms/server/jinja2_toolbox.py /usr/lib/python3.10/site-packages/cms/server/jinja2_toolbox.py +--- pkg/cms-germany-git/usr/lib/python3.10/site-packages/cms/server/jinja2_toolbox.py 2023-02-03 16:35:06.000000000 +0100 ++++ /usr/lib/python3.10/site-packages/cms/server/jinja2_toolbox.py 2023-02-03 17:20:15.062792373 +0100 +@@ -24,8 +24,7 @@ + + """ + +-from jinja2 import Environment, StrictUndefined, contextfilter, \ +- contextfunction, environmentfunction ++from jinja2 import Environment, StrictUndefined, pass_context, pass_environment + + from cms import TOKEN_MODE_DISABLED, TOKEN_MODE_FINITE, TOKEN_MODE_INFINITE, \ + TOKEN_MODE_MIXED, FEEDBACK_LEVEL_FULL, FEEDBACK_LEVEL_RESTRICTED +@@ -40,7 +39,7 @@ + get_icon_for_type + + +-@contextfilter ++@pass_context + def all_(ctx, l, test=None, *args): + """Check if all elements of the given list pass the given test. + +@@ -64,7 +63,7 @@ + return True + + +-@contextfilter ++@pass_context + def any_(ctx, l, test=None, *args): + """Check if any element of the given list passes the given test. + +@@ -88,7 +87,7 @@ + return False + + +-@contextfilter ++@pass_context + def dictselect(ctx, d, test=None, *args, by="key"): + """Filter the given dict: keep only items that pass the given test. + +@@ -115,7 +114,7 @@ + if ctx.call(test, {"key": k, "value": v}[by], *args)) + + +-@contextfunction ++@pass_context + def today(ctx, dt): + """Returns whether the given datetime is today. + +@@ -165,7 +164,7 @@ + env.tests["is_unit_test"] = lambda s: s.is_unit_test() + + +-@environmentfunction ++@pass_environment + def safe_get_task_type(env, *, dataset): + try: + return dataset.task_type_object +@@ -175,7 +174,7 @@ + return env.undefined("TaskType not found: %s" % err) + + +-@environmentfunction ++@pass_environment + def safe_get_score_type(env, *, dataset): + try: + return dataset.score_type_object +@@ -196,21 +195,21 @@ + env.filters["to_language"] = get_language + + +-@contextfilter ++@pass_context + def format_datetime(ctx, dt): + translation = ctx.get("translation", DEFAULT_TRANSLATION) + timezone = ctx.get("timezone", local_tz) + return translation.format_datetime(dt, timezone) + + +-@contextfilter ++@pass_context + def format_time(ctx, dt): + translation = ctx.get("translation", DEFAULT_TRANSLATION) + timezone = ctx.get("timezone", local_tz) + return translation.format_time(dt, timezone) + + +-@contextfilter ++@pass_context + def format_datetime_smart(ctx, dt): + translation = ctx.get("translation", DEFAULT_TRANSLATION) + now = ctx.get("now", make_datetime()) +@@ -218,37 +217,37 @@ + return translation.format_datetime_smart(dt, now, timezone) + + +-@contextfilter ++@pass_context + def format_timedelta(ctx, td): + translation = ctx.get("translation", DEFAULT_TRANSLATION) + return translation.format_timedelta(td) + + +-@contextfilter ++@pass_context + def format_duration(ctx, d, length="short"): + translation = ctx.get("translation", DEFAULT_TRANSLATION) + return translation.format_duration(d, length) + + +-@contextfilter ++@pass_context + def format_size(ctx, s): + translation = ctx.get("translation", DEFAULT_TRANSLATION) + return translation.format_size(s) + + +-@contextfilter ++@pass_context + def format_decimal(ctx, n): + translation = ctx.get("translation", DEFAULT_TRANSLATION) + return translation.format_decimal(n) + + +-@contextfilter ++@pass_context + def format_locale(ctx, n): + translation = ctx.get("translation", DEFAULT_TRANSLATION) + return translation.format_locale(n) + + +-@contextfilter ++@pass_context + def wrapped_format_status_text(ctx, status_text): + translation = ctx.get("translation", DEFAULT_TRANSLATION) + return format_status_text(status_text, translation=translation) diff --git a/pgf.patch b/pgf.patch deleted file mode 100644 index 0b178245b58c..000000000000 --- a/pgf.patch +++ /dev/null @@ -1,45 +0,0 @@ ---- cmscontrib/gerpythonformat/templates/lg/graphdrawing.tex 2019-02-01 20:37:11.175618929 +0100 -+++ /tmp/graphdrawing.tex 2019-02-01 20:45:34.593613925 +0100 -@@ -2,6 +2,42 @@ - \usetikzlibrary{graphs} - \usetikzlibrary{graphdrawing} - -+\usepackage{luacode} -+\begin{luacode} -+ function pgf_lookup_and_require(name) -+ local sep = '/' -+ if string.find(os.getenv('PATH'),';') then -+ sep = '\string\\' -+ end -+ local function lookup(name) -+ local sub = name:gsub('%.',sep) -+ local find_func = function (name, suffix) -+ if resolvers then -+ local n = resolvers.findfile (name.."."..suffix, suffix) -- changed -+ return (not (n == '')) and n or nil -+ else -+ return kpse.find_file(name,suffix) -+ end -+ end -+ if find_func(sub, 'lua') then -+ require(name) -+ elseif find_func(sub, 'clua') then -+ collectgarbage('stop') -+ require(name) -+ collectgarbage('restart') -+ else -+ return false -+ end -+ return true -+ end -+ return -+ lookup('pgf.gd.' .. name .. '.library') or -+ lookup('pgf.gd.' .. name) or -+ lookup(name .. '.library') or -+ lookup(name) -+ end -+\end{luacode} -+ - \usegdlibrary{force, layered} - - \directlua{require("graphdrawing.lua")} |