diff options
-rw-r--r-- | haskell/ghc/4eebc8016f68719e1ccdf460754a97d1f4d6ef05.patch | 48 | ||||
-rw-r--r-- | haskell/ghc/ghc.SlackBuild | 7 |
2 files changed, 54 insertions, 1 deletions
diff --git a/haskell/ghc/4eebc8016f68719e1ccdf460754a97d1f4d6ef05.patch b/haskell/ghc/4eebc8016f68719e1ccdf460754a97d1f4d6ef05.patch new file mode 100644 index 0000000000000..e330963792b3a --- /dev/null +++ b/haskell/ghc/4eebc8016f68719e1ccdf460754a97d1f4d6ef05.patch @@ -0,0 +1,48 @@ +From 4eebc8016f68719e1ccdf460754a97d1f4d6ef05 Mon Sep 17 00:00:00 2001 +From: Ben Gamari <ben@smart-cactus.org> +Date: Thu, 20 Sep 2018 08:27:37 -0400 +Subject: [PATCH] users-guide: Fix build with sphinx 1.8 + +It seems that both add_object_type and add_directive_to_domain both register a +directive. Previously sphinx didn't seem to mind this but as of Sphinx 1.8 it +crashes with an exception. +--- + docs/users_guide/flags.py | 12 ++++++++++-- + 1 file changed, 10 insertions(+), 2 deletions(-) + +diff --git a/docs/users_guide/flags.py b/docs/users_guide/flags.py +index a70f7fef1e0..284b5e06cc1 100644 +--- a/docs/users_guide/flags.py ++++ b/docs/users_guide/flags.py +@@ -48,6 +48,8 @@ + from docutils.parsers.rst import Directive, directives + from sphinx import addnodes + from sphinx.domains.std import GenericObject ++from sphinx.domains import ObjType ++from sphinx.roles import XRefRole + from sphinx.errors import SphinxError + from utils import build_table_from_list + +@@ -599,14 +601,20 @@ def purge_flags(app, env, docname): + ### Initialization + + def setup(app): ++ # Yuck: We can't use app.add_object_type since we need to provide the ++ # Directive instance ourselves. ++ std_object_types = app.registry.domain_object_types.setdefault('std', {}) + + # Add ghc-flag directive, and override the class with our own +- app.add_object_type('ghc-flag', 'ghc-flag') + app.add_directive_to_domain('std', 'ghc-flag', Flag) ++ app.add_role_to_domain('std', 'ghc-flag', XRefRole()) ++ std_object_types['ghc-flag'] = ObjType('ghc-flag', 'ghc-flag') + + # Add extension directive, and override the class with our own +- app.add_object_type('extension', 'extension') + app.add_directive_to_domain('std', 'extension', LanguageExtension) ++ app.add_role_to_domain('std', 'extension', XRefRole()) ++ std_object_types['extension'] = ObjType('ghc-flag', 'ghc-flag') ++ + # NB: language-extension would be misinterpreted by sphinx, and produce + # lang="extensions" XML attributes + diff --git a/haskell/ghc/ghc.SlackBuild b/haskell/ghc/ghc.SlackBuild index fae2c37322a0c..2d5985a6e8840 100644 --- a/haskell/ghc/ghc.SlackBuild +++ b/haskell/ghc/ghc.SlackBuild @@ -25,7 +25,7 @@ PRGNAM=ghc VERSION=${VERSION:-8.4.3} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} TAG=${TAG:-_SBo} if [ -z "$ARCH" ]; then @@ -115,6 +115,11 @@ find -L . \ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; +# Fix build with Sphinx +# https://phabricator.haskell.org/D5161 +# https://github.com/ghc/ghc/commit/4eebc8016f68719e1ccdf460754a97d1f4d6ef05.patch +patch -p1 < $CWD/4eebc8016f68719e1ccdf460754a97d1f4d6ef05.patch + CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ ./configure \ |