haskellPackages.gitit: fetch patch from upstream

The patch I proposed yesterday and vendored in here as a precautionary
measure in case I'd have to amend it in order for it to got merged, has
been accepted without changes.

Thus we can remove the patch file from the tree and just use fetchpatch.
This commit is contained in:
sternenseemann 2021-04-03 11:30:26 +02:00
parent ccd936df18
commit f44086409f
2 changed files with 8 additions and 70 deletions

View file

@ -1165,11 +1165,14 @@ self: super: {
# $HOME, which we don't have in our build sandbox. # $HOME, which we don't have in our build sandbox.
cabal-install-parsers = dontCheck super.cabal-install-parsers; cabal-install-parsers = dontCheck super.cabal-install-parsers;
# * jailbreak can be removed at the next release (current is 0.13.0.0) # jailbreak and patch (for pandoc >= 2.12) ensure compilation with newer dependencies.
# * patch fixes compilation with pandoc >= 2.12, can be removed if a # can both be removed at the next release (current is 0.13.0.0)
# release contains https://github.com/jgm/gitit/pull/670 or equivalent. gitit = doJailbreak (appendPatch super.gitit
# Patch is vendored in as it may change upstream in the future. (pkgs.fetchpatch {
gitit = doJailbreak (appendPatch super.gitit ./patches/gitit-pandoc-2.12.patch); url = "https://github.com/jgm/gitit/commit/e8c9d94be332e2f73de9b0eee222a2a09f191faf.patch";
sha256 = "1rl2c3sz8cd2c3qwv9b640853s4bblcknvfv29k472wqhs62mwz1";
includes = [ "src/**" ];
}));
# Test suite requires database # Test suite requires database
persistent-mysql = dontCheck super.persistent-mysql; persistent-mysql = dontCheck super.persistent-mysql;

View file

@ -1,65 +0,0 @@
commit a03d3b043458f45d29ba32068a77c0d3b8a4223f
Author: sternenseemann <0rpkxez4ksa01gb3typccl0i@systemli.org>
Date: Fri Apr 2 15:14:02 2021 +0200
Allow compilation with pandoc 2.12 and 2.13
pandoc 2.13 introduced the following breakages for gitit:
* UTF8.readFile now returns a Text which is actually ideal for gitit.
If pandoc is new enough we just make readFileUTF8 an alias for
UTF8.readFile.
* Text.Pandoc.Shared no longer exports substitute. In order to be
conservative I've chosen to just copy the substitute function from
pandoc 2.11.4. I need this patch kind of urgently so I didn't want to
make any changes or refactors independently from upstream if
avoidable. However, I'd be happy to rebase this PR branch to adopt a
different solution to just copying the function.
diff --git a/src/Network/Gitit/Authentication.hs b/src/Network/Gitit/Authentication.hs
index 4c240e7..c0f92fd 100644
--- a/src/Network/Gitit/Authentication.hs
+++ b/src/Network/Gitit/Authentication.hs
@@ -44,7 +44,7 @@ import System.Exit
import System.Log.Logger (logM, Priority(..))
import Data.Char (isAlphaNum, isAlpha)
import qualified Data.Map as M
-import Text.Pandoc.Shared (substitute)
+import Data.List (stripPrefix)
import Data.Maybe (isJust, fromJust, isNothing, fromMaybe)
import Network.URL (exportURL, add_param, importURL)
import Network.BSD (getHostName)
@@ -54,6 +54,16 @@ import Codec.Binary.UTF8.String (encodeString)
import Data.ByteString.UTF8 (toString)
import Network.Gitit.Rpxnow as R
+-- | Replace each occurrence of one sublist in a list with another.
+-- Vendored in from pandoc 2.11.4 as 2.12 removed this function.
+substitute :: (Eq a) => [a] -> [a] -> [a] -> [a]
+substitute _ _ [] = []
+substitute [] _ xs = xs
+substitute target replacement lst@(x:xs) =
+ case stripPrefix target lst of
+ Just lst' -> replacement ++ substitute target replacement lst'
+ Nothing -> x : substitute target replacement xs
+
data ValidationType = Register
| ResetPassword
deriving (Show,Read)
diff --git a/src/Network/Gitit/Util.hs b/src/Network/Gitit/Util.hs
index c5e9fe5..067130a 100644
--- a/src/Network/Gitit/Util.hs
+++ b/src/Network/Gitit/Util.hs
@@ -45,7 +45,11 @@ import Network.URL (encString)
-- | Read file as UTF-8 string. Encode filename as UTF-8.
readFileUTF8 :: FilePath -> IO Text
+#if MIN_VERSION_pandoc(2,12,0)
+readFileUTF8 = UTF8.readFile
+#else
readFileUTF8 = fmap T.pack . UTF8.readFile
+#endif
-- | Perform a function a directory and return to working directory.
inDir :: FilePath -> IO a -> IO a