diff -Nru kaya-0.4.4/debian/changelog kaya-0.4.4/debian/changelog --- kaya-0.4.4/debian/changelog 2012-10-10 19:35:12.000000000 +0000 +++ kaya-0.4.4/debian/changelog 2014-02-08 00:47:43.000000000 +0000 @@ -1,3 +1,18 @@ +kaya (0.4.4-6+rpi1) jessie-staging; urgency=medium + + [ Peter Michael Green ] + * Remove ghc6 alternative from build-depends (Closes: 713122) + + [ Iain Lane ] + * FTBFS fixes. + * debian/patches/ghc-7.6-fixes: Patches to work with API changes in GHC 7.6, + mainly to make use of Control.Exception. (Closes: 705157) + * debian/patches/new-gc-api.patch: Backport of upstream commits to work with + current boehm GC APIs + * Add dh_autoreconf usage for the above patch. + + -- Peter Michael Green Sat, 08 Feb 2014 00:27:51 +0000 + kaya (0.4.4-6) unstable; urgency=low [ gregor herrmann ] diff -Nru kaya-0.4.4/debian/control kaya-0.4.4/debian/control --- kaya-0.4.4/debian/control 2012-10-10 19:30:48.000000000 +0000 +++ kaya-0.4.4/debian/control 2014-02-08 00:44:11.000000000 +0000 @@ -2,7 +2,7 @@ Section: devel Priority: extra Maintainer: Stuart Teasdale -Build-Depends: debhelper (>= 7.0.0), autotools-dev, ghc6 | ghc, libghc-mtl-dev, libgc-dev, happy, libpcre3-dev(>= 5.0), libgcrypt11-dev, libncurses5-dev, freeglut3-dev, zlib1g-dev, libgnutls-dev, libpq-dev, libmysqlclient-dev, libsqlite3-dev, libgd2-xpm-dev, libsdl1.2-dev,libncursesw5-dev,libghc-editline-dev, libghc-random-dev +Build-Depends: debhelper (>= 7.0.0), autotools-dev, ghc, libghc-mtl-dev, libgc-dev, happy, libpcre3-dev(>= 5.0), libgcrypt11-dev, libncurses5-dev, freeglut3-dev, zlib1g-dev, libgnutls-dev, libpq-dev, libmysqlclient-dev, libsqlite3-dev, libgd2-xpm-dev, libsdl1.2-dev,libncursesw5-dev,libghc-editline-dev, libghc-random-dev, dh-autoreconf Standards-Version: 3.8.3 Homepage: http://kayalang.org/ diff -Nru kaya-0.4.4/debian/patches/ghc-7.6-fixes kaya-0.4.4/debian/patches/ghc-7.6-fixes --- kaya-0.4.4/debian/patches/ghc-7.6-fixes 1970-01-01 00:00:00.000000000 +0000 +++ kaya-0.4.4/debian/patches/ghc-7.6-fixes 2014-02-08 00:43:10.000000000 +0000 @@ -0,0 +1,115 @@ +Description: Fix build with changed APIs in GHC 7.6 +Author: Iain Lane +Forwarded: yes +Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=705157 + +Index: b/compiler/Driver.hs +=================================================================== +--- a/compiler/Driver.hs ++++ b/compiler/Driver.hs +@@ -28,6 +28,7 @@ + import ProgramDump + import REPL + ++import Control.Exception + import System.Cmd + import System.Exit + import System.Directory +@@ -67,8 +68,8 @@ + catch (do startup <- getStartup prtype libdirs + let pt = addToPT (parse newroot libdirs (prog++startup) fn) pinput + compile newroot libdirs opts pt extra mainfile) +- (\e -> do putStrLn (show e) +- return CompError) ++ (\(e :: IOException) -> do putStrLn (show e) ++ return CompError) + + outputfile Module mod = showuser mod ++ ".o" + -- TMP HACK: This should probably be a %extension "cgi" directive in the .ks +Index: b/compiler/Module.hs +=================================================================== +--- a/compiler/Module.hs ++++ b/compiler/Module.hs +@@ -14,8 +14,9 @@ + getAllLibDirs, linkFiles, getObjs) where + + import Language ++import Control.Exception + import Debug.Trace +-import System.Directory ++import System.Directory (doesFileExist) + import Data.List + import Lib + import Options +@@ -244,7 +245,7 @@ + (do --putStrLn $ "Trying " ++ x ++ path + f <- readFile (x++path) + return (Just f)) +- (\e -> findFile xs path) ++ (\(e :: IOException) -> findFile xs path) + + -- Get all the library directories, looking at the options and the + -- KAYA_LIBRARY_PATH environment variable. +Index: b/compiler/Portability64.hs +=================================================================== +--- a/compiler/Portability64.hs ++++ b/compiler/Portability64.hs +@@ -1,6 +1,7 @@ + module Portability64 where + + import Lib ++import Control.Exception + import System.IO + import System.Environment + import qualified Data.Map as Map +@@ -10,7 +11,7 @@ + environment :: String -> IO (Maybe String) + environment x = catch (do e <- getEnv x + return (Just e)) +- (\_ -> return Nothing) ++ (\(_ :: IOException) -> return Nothing) + + tempfile :: IO (FilePath, Handle) + tempfile = do env <- environment "TMPDIR" +Index: b/compiler/CodegenCPP.hs +=================================================================== +--- a/compiler/CodegenCPP.hs ++++ b/compiler/CodegenCPP.hs +@@ -11,6 +11,7 @@ + import Options + import TAC + import Language ++import Control.Exception + import System.IO + import Debug.Trace + import Lib +@@ -149,7 +150,7 @@ + (do --putStrLn $ "Trying " ++ x ++ path + f <- readFile (x++path) + return f) +- (\e -> findFile xs path) ++ (\(e :: IOException) -> findFile xs path) + + writecpp :: [CompileResult] -> [Output] + writecpp [] = [] +Index: b/compiler/REPL.hs.in +=================================================================== +--- a/compiler/REPL.hs.in ++++ b/compiler/REPL.hs.in +@@ -29,6 +29,7 @@ + import Lib + import Data.List + ++import Control.Exception + import Foreign.C + import Foreign.Ptr + import System.IO +@@ -154,7 +155,7 @@ + xfn <- substTerm mod ctxt phi xrv + let xinft = subst phi ity + catch (runProg xfn xinft) +- (\e -> putStrLn(show e)) ++ (\(e :: IOException) -> putStrLn(show e)) + Failure err file line -> do reportError err + processREPL (Failure err file line) + = do reportError err diff -Nru kaya-0.4.4/debian/patches/new-gc-api.patch kaya-0.4.4/debian/patches/new-gc-api.patch --- kaya-0.4.4/debian/patches/new-gc-api.patch 1970-01-01 00:00:00.000000000 +0000 +++ kaya-0.4.4/debian/patches/new-gc-api.patch 2014-02-08 00:43:10.000000000 +0000 @@ -0,0 +1,110 @@ +Description: Upstream backports: + Fri Jan 20 08:54:17 GMT 2012 c.i.morris@durham.ac.uk + * Fix for GCC-4.7 build problem + Contributed by Jochen Schmitt + Sun May 9 21:57:02 BST 2010 c.i.morris@durham.ac.uk + * Fix for change to GC API + Thanks to Jochen Schmitt for identifying the problem and providing the ./configure check +Forwarded: yes +Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=705157 +Index: b/configure.ac +=================================================================== +--- a/configure.ac ++++ b/configure.ac +@@ -169,6 +169,23 @@ + + AC_CHECK_LIB(gc, GC_malloc, [], # for garbage collection + AC_MSG_ERROR([Can't find libgc])) ++AC_RUN_IFELSE([AC_LANG_PROGRAM([#include ++#include ],[ ++ if (GC_VERSION_MAJOR > 7 || (GC_VERSION_MAJOR == 7 && GC_VERSION_MINOR > 1)) ++ exit (0); ++ else ++ exit (1); ++ ])], [AC_MSG_NOTICE([libgc has new API]) ++ FSDTYPE="GCNEW"; ++ ],[ ++ AC_MSG_NOTICE([libgc has old API]) ++ FSDTYPE="GCOLD"; ++ ],[]) ++AC_SUBST(FSDTYPE) ++ ++ ++ ++ + #AC_CHECK_LIB(cgi, cgi_init, [], # for cgi gadgetry + # AC_MSG_ERROR([Can't find libcgi])) + #AC_CHECK_HEADER([libcgi/cgi.h],[CGIINC="-I/usr/include/libcgi"], +Index: b/rts/sizes.h.in +=================================================================== +--- a/rts/sizes.h.in ++++ b/rts/sizes.h.in +@@ -58,4 +58,7 @@ + #define UNIMARSHAL L"U[[%d]" + #endif + ++ ++#define @FSDTYPE@ 1 ++ + #endif +Index: b/rts/stdfuns.cc +=================================================================== +--- a/rts/stdfuns.cc ++++ b/rts/stdfuns.cc +@@ -1762,3 +1762,16 @@ + { + return RTCHECKS; + } ++ ++kint gc_set_fsd(kint newval) { ++#ifdef GCOLD ++ // GC 7.1 or older ++ return (kint) GC_set_free_space_divisor(newval); ++#endif ++#ifdef GCNEW ++ // GC 7.2 or newer ++ kint old = (kint) GC_get_free_space_divisor(); ++ GC_set_free_space_divisor(newval); ++ return old; ++#endif ++} +Index: b/rts/stdfuns.h +=================================================================== +--- a/rts/stdfuns.h ++++ b/rts/stdfuns.h +@@ -13,6 +13,7 @@ + + #include + #include ++#include + #include + #include + #include "Heap.h" +@@ -237,4 +238,6 @@ + + kint rtchecks(); + ++kint gc_set_fsd(kint newval); ++ + #endif +Index: b/stdlib/Prelude.k +=================================================================== +--- a/stdlib/Prelude.k ++++ b/stdlib/Prelude.k +@@ -156,7 +156,7 @@ + "The garbage collection parameter + Debugging function + Adjust garbage collector - higher values use less memory but run slower (the default value is 4, and a value of 1 disables garbage collection entirely). The default is almost always acceptable." +- public Int gcSetFSD(Int fsd) = GC_set_free_space_divisor; ++ public Int gcSetFSD(Int fsd) = gc_set_fsd; + "Switch off garbage collector. + You may want this, for example, before executing some time-critical + code which should not be interrupted by a garbage collection. +@@ -375,6 +375,7 @@ + } + + ++ + "The string to print + Send a string and a newline to standard output. + Print a string and a newline on standard output. diff -Nru kaya-0.4.4/debian/patches/series kaya-0.4.4/debian/patches/series --- kaya-0.4.4/debian/patches/series 2012-10-10 19:30:48.000000000 +0000 +++ kaya-0.4.4/debian/patches/series 2014-02-08 00:43:10.000000000 +0000 @@ -1,3 +1,5 @@ debian-changes-0.4.4-5 haskell.patch gcc-4.7.patch +ghc-7.6-fixes +new-gc-api.patch diff -Nru kaya-0.4.4/debian/rules kaya-0.4.4/debian/rules --- kaya-0.4.4/debian/rules 2012-10-10 19:30:48.000000000 +0000 +++ kaya-0.4.4/debian/rules 2014-02-08 00:43:10.000000000 +0000 @@ -27,6 +27,7 @@ config.status: configure dh_testdir dh_autotools-dev_updateconfig + dh_autoreconf # Add here commands to configure the package. CFLAGS="$(CFLAGS)" ./configure --host=$(DEB_HOST_GNU_TYPE) \ --build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr \ @@ -56,6 +57,7 @@ dh_autotools-dev_restoreconfig + dh_autoreconf_clean dh_clean install: build