[Pkg-haskell-commits] darcs: helium: Redo helium packaging, now based on Cabal. Requires some new dependencies.

Joachim Breitner mail at joachim-breitner.de
Fri Oct 24 07:54:04 UTC 2014


Fri Oct 24 07:53:26 UTC 2014  Joachim Breitner <mail at joachim-breitner.de>
  * Redo helium packaging, now based on Cabal. Requires some new dependencies.

    R ./patches/01_fhs-and-destdir
    R ./patches/02_typed-punning
    R ./patches/03_add-readline-support
    R ./patches/05_fixes-for-64bit
    R ./patches/06_no-strip
    R ./patches/10_autoconf
    R ./patches/20_fix-as-needed-linking
    R ./patches/fixes-for-ghc
    R ./patches/ghc-7.4-compat
    R ./patches/parsec3-compat
    R ./patches/replace-config.sub
    R ./patches/series
    R ./patches/use-sinclude
    R ./patches/
    R ./clean
    R ./helium.docs
    A ./helium.haskell-binaries
    R ./scripts/helium
    R ./scripts/lvmrun
    R ./scripts/texthint
    R ./scripts/
    M ./changelog +7
    M ./control -13 +18
    M ./copyright -86 +28
    M ./helium.haskell-binaries +3
    M ./rules -105 +3
    M ./watch -2 +1

Fri Oct 24 07:53:26 UTC 2014  Joachim Breitner <mail at joachim-breitner.de>
  * Redo helium packaging, now based on Cabal. Requires some new dependencies.
diff -rN -u old-helium/changelog new-helium/changelog
--- old-helium/changelog	2014-10-24 07:54:04.211222104 +0000
+++ new-helium/changelog	2014-10-24 07:54:04.223222116 +0000
@@ -1,3 +1,10 @@
+helium (1.8-1) UNRELEASED; urgency=medium
+
+  * New upstream release, now Cabal based 
+  * New packaging
+
+ -- Joachim Breitner <nomeata at debian.org>  Thu, 23 Oct 2014 23:28:57 +0200
+
 helium (1.7~pre20090428-5) UNRELEASED; urgency=low
 
   * Restore changes from NMU (Luk Claes):
diff -rN -u old-helium/clean new-helium/clean
--- old-helium/clean	2014-10-24 07:54:04.211222104 +0000
+++ new-helium/clean	1970-01-01 00:00:00.000000000 +0000
@@ -1,7 +0,0 @@
-helium/src/parser/ResolveOperators.hs
-helium/src/staticanalysis/directives/TS_Analyse.hs
-helium/src/staticanalysis/directives/TS_Apply.hs
-helium/src/staticanalysis/directives/TS_ToCore.hs
-helium/src/staticanalysis/inferencers/KindInferencing.hs
-helium/src/staticanalysis/staticchecks/StaticChecks.hs
-helium/src/codegeneration/CodeGeneration.hs
diff -rN -u old-helium/control new-helium/control
--- old-helium/control	2014-10-24 07:54:04.211222104 +0000
+++ new-helium/control	2014-10-24 07:54:04.223222116 +0000
@@ -2,10 +2,19 @@
 Section: haskell
 Priority: optional
 Maintainer: Debian Haskell Group <pkg-haskell-maintainers at lists.alioth.debian.org>
-Uploaders: Marco Túlio Gontijo e Silva <marcot at debian.org>
-Build-Depends: autotools-dev, debhelper (>= 9),
- ghc (>= 6.8.2), haddock, libghc-mtl-dev, libghc-parsec3-dev, uuagc, libghc-editline-dev, libghc-network-dev, libncurses-dev
-Build-Conflicts: libghc-parsec2-dev
+Uploaders: Joachim Breitner <nomeata at debian.org>
+Build-Depends: autotools-dev,
+   debhelper (>= 9),
+   haskell-devscripts,
+   ghc,
+   libghc-mtl-dev,
+   libghc-parsec3-dev,
+   libghc-network-dev,
+   libghc-process-dev,
+   libghc-transformers-dev,
+   libghc-wl-pprint-dev,
+   libghc-top-dev,
+   libghc-lvmlib-dev,
 Standards-Version: 3.9.4
 Homepage: http://www.cs.uu.nl/wiki/bin/view/Helium/WebHome
 Vcs-Darcs: http://darcs.debian.org/pkg-haskell/helium
@@ -15,12 +24,8 @@
 Architecture: any
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Description: compiler used for learning the programming language Haskell
- Helium is a functional programming language and a compiler designed
- especially for learning Haskell. Quality of the error messages has
- been the main concern both in the choice of the language features and
- in the implementation of the compiler. The goal of the language and
- the compiler is to let students (or anyone) learn functional
- programming more quickly and with more fun. 
- .
- Note: Helium does not support type classes yet. For that reason it is
- incompatible with Haskell text books. 
+ Helium is a compiler for a subset of Haskell that aims at delivering high
+ quality type error messages particularly for beginner programmers. It also
+ includes facilities for specializing type error diagnosis for embedded domain
+ specific languages. The compiler supports Haskell 98, but without the ability
+ to define new type classes and instances.
diff -rN -u old-helium/copyright new-helium/copyright
--- old-helium/copyright	2014-10-24 07:54:04.211222104 +0000
+++ new-helium/copyright	2014-10-24 07:54:04.223222116 +0000
@@ -1,89 +1,31 @@
-This package was debianized by Arjan Oosting <arjanoosting at home.nl> on
-Fri, 15 Sep 2006 02:35:13 +0200.
-
-It was downloaded from http://www.cs.uu.nl/helium/download.html
-
-Upstream Authors:  
-  Arjan van IJzendoorn
-  Rijk-Jan van Haaften
-  Daan Leijen <daan at cs.uu.nl>
-  Bastiaan Heeren  <bastiaan at cs.uu.nl>
-	
-Current Maintainer: 
-  Bastiaan Heeren  <bastiaan at cs.uu.nl>
-
-Copyright: 
-
-  (c) 1996,1997,1999-2001  Institut National de Recherche en
-                           Informatique et en Automatique.  
-  (c) 1999,2001            Daan Leijen <daan at cs.uu.nl>
-  (c)                      Bastiaan Heerden <bastiaan at cs.uu.nl>
-
-
-This package expect the source files in the directory lvm is licensed
-under the GPL:
-
-   This package is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License version 2 as
-   published by the Free Software Foundation.
-
-   This package is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this package; if not, write to the Free Software
-   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
-
-On Debian systems, the complete text of the GNU General
-Public License version 2 can be found in `/usr/share/common-licenses/GPL-2'.
-
-********************************************************************** 
-The source files of the Lazy Virtual Machine, which are the files in
-the directory lvm, except the files in lvm/src/lib/core, are licensed
-under the GNU Library General Public License, currectly known as the
-GNU Lesser General Public License: 
-
-    This package is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Lesser General Public
-    License version 2 as published by the Free Software Foundation.
-
-    This package is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-    Lesser General Public License for more details.
-
-    You should have received a copy of the GNU Lesser General Public
-    License along with this package; if not, write to the Free Software
-    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
-
-On Debian systems, the complete text of the GNU Lesser General
-Public License can be found in `/usr/share/common-licenses/LGPL-2'.
-
-**********************************************************************  
-The source files in the directory lvm/src/lib/core which are part of
-the Core Assembler of the Lazy Virtual Machine are licensed under the
-BSD license:
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted under the terms of the BSD License.
-
-    THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-    ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-    ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-    SUCH DAMAGE.
-
-On Debian systems, the complete text of the BSD License can be
-found in `/usr/share/common-licenses/BSD'.
-
-********************************************************************** 
-The Debian packaging is (C) 2006, Arjan Oosting <arjanoosting at home.nl> and
-is licensed under the GPL, see above.
+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: helium
+Upstream-Contact: helium at cs.uu.nl
+Source: http://hackage.haskell.org/package/helium
+
+Files: *
+Copyright: 1996-2014
+	Arjan van IJzendoorn, Bastiaan Heeren, Jurriaan Hage,
+	Daan Leijen, Rijk-Jan van Haaften, Arie Middelkoop, Arjan Oosting, 
+	Jurriën Stutterheim, Jeroen Fokker, Andres Löh, Arthur Baars, Remco Burema, 
+        Atze Dijkstra, Maarten van Gompel, Doaitse Swierstra, Martijn Lammerts, 
+        Martijn Schrage and Stefan Holdermans.
+License: GPL-3
+
+Files: debian/*
+Copyright: held by the contributors mentioned in debian/changelog
+License: GPL-3
+
+License: GPL-3
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+ .
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+ .
+ See /usr/share/common-licenses/GPL-3 for a copy of the GNU General General
+ Public License.
diff -rN -u old-helium/helium.docs new-helium/helium.docs
--- old-helium/helium.docs	2014-10-24 07:54:04.211222104 +0000
+++ new-helium/helium.docs	1970-01-01 00:00:00.000000000 +0000
@@ -1,2 +0,0 @@
-helium/docs/PreludeDiffs.hs
-helium/docs/TODO.txt
diff -rN -u old-helium/helium.haskell-binaries new-helium/helium.haskell-binaries
--- old-helium/helium.haskell-binaries	1970-01-01 00:00:00.000000000 +0000
+++ new-helium/helium.haskell-binaries	2014-10-24 07:54:04.223222116 +0000
@@ -0,0 +1,3 @@
+helium
+lvmrun
+texthint
diff -rN -u old-helium/patches/01_fhs-and-destdir new-helium/patches/01_fhs-and-destdir
--- old-helium/patches/01_fhs-and-destdir	2014-10-24 07:54:04.219222112 +0000
+++ new-helium/patches/01_fhs-and-destdir	1970-01-01 00:00:00.000000000 +0000
@@ -1,22 +0,0 @@
-# Description: FHS and destdir
-# Author: Arjan Oosting <arjanoosting at home.nl>
-Index: helium-1.7~pre20090428/helium/src/Makefile.in
-===================================================================
---- helium-1.7~pre20090428.orig/helium/src/Makefile.in	2011-06-02 19:13:59.000000000 +0200
-+++ helium-1.7~pre20090428/helium/src/Makefile.in	2011-06-02 19:14:24.000000000 +0200
-@@ -29,12 +29,12 @@
- 
- # Installation paths
- prefix      = @prefix@
--basedir     = @prefix@/helium-$(VERSION)
-+basedir     = $(DESTDIR)@prefix@/lib/helium
- exec_prefix = @exec_prefix@
--bindir      = @bindir@          # Typically, this is in your path
-+bindir      = $(DESTDIR)@bindir@          # Typically, this is in your path
- hbindir     = $(basedir)/bin    # typically, this one is not. Used to support multiple versions.
- libdir      = $(basedir)/lib
--demodir     = $(basedir)/demo
-+demodir     = $(DESTDIR)@prefix@/share/doc/helium/demo
- 
- status :
- 	@echo "*******************************************************************"
diff -rN -u old-helium/patches/02_typed-punning new-helium/patches/02_typed-punning
--- old-helium/patches/02_typed-punning	2014-10-24 07:54:04.219222112 +0000
+++ new-helium/patches/02_typed-punning	1970-01-01 00:00:00.000000000 +0000
@@ -1,22 +0,0 @@
-# Description: Typed punning
-# Author: Arjan Oosting <arjanoosting at home.nl>
-Index: helium-1.6/lvm/src/configure
-===================================================================
---- helium-1.6.orig/lvm/src/configure	2006-02-05 14:35:50.000000000 -0200
-+++ helium-1.6/lvm/src/configure	2010-03-15 10:27:12.000000000 -0300
-@@ -662,7 +662,7 @@
-      echo "CONFIGPATH=../config" >> makefile;;
- esac
- 
--echo "CCOPTS=$cccompopts -I\$(CONFIGPATH)" >> makefile
-+echo "CCOPTS=$cccompopts -fno-strict-aliasing -I\$(CONFIGPATH)" >> makefile
-  
- rm -f tst$exe hasgot.c *.obj
- 
-@@ -694,4 +694,4 @@
- echo "        linker used............... $link"
- echo "        options for linking....... $cclinkopts"
- echo
--echo
-\ No newline at end of file
-+echo
diff -rN -u old-helium/patches/03_add-readline-support new-helium/patches/03_add-readline-support
--- old-helium/patches/03_add-readline-support	2014-10-24 07:54:04.219222112 +0000
+++ new-helium/patches/03_add-readline-support	1970-01-01 00:00:00.000000000 +0000
@@ -1,55 +0,0 @@
-# Description: Add readline support
-# Author: Arjan Oosting <arjanoosting at home.nl>
-Index: helium-1.7~pre20090428/helium/src/texthint/Main.hs
-===================================================================
---- helium-1.7~pre20090428.orig/helium/src/texthint/Main.hs	2011-06-02 18:34:20.000000000 +0200
-+++ helium-1.7~pre20090428/helium/src/texthint/Main.hs	2011-06-02 18:43:48.000000000 +0200
-@@ -23,6 +23,7 @@
- import Data.IORef       ( IORef, readIORef, newIORef, writeIORef )
- import System.IO.Unsafe ( unsafePerformIO )
- import System(system, getEnv, getArgs, exitWith, ExitCode(..))
-+import qualified System.Console.Editline.Readline as RL
- import OSSpecific(slash)
- import Directory
- import ConfigFile(Config, readConfig)
-@@ -155,6 +156,9 @@
-               (initialState{ compOptions = addStandardLVMPath basepath (configOptions ++ (map show options)) })
-           Nothing ->
-             return initialState{ compOptions = addStandardLVMPath basepath configOptions }
-+
-+    -- Initialize editline
-+    RL.initialize
-     
-     -- Enter read-eval-print loop
-     loop stateAfterLoad
-@@ -170,20 +174,22 @@
- 
- loop :: State -> IO State
- loop state = do
--    putStr (prompt state)
--    hFlush stdout
--    command' <- getLine
--    let command = trim command'
-+    command' <- RL.readline (prompt state)
-+    let command = fmap trim command'
-     newState <- case command of
--        (':':cmd:rest) -> 
-+        Just (':':cmd:rest) -> do
-+            RL.addHistory (':':cmd:rest)
-             processCommand (toLower cmd) (trim rest) state
--        (':':_) -> do
-+        Just (':':_) -> do
-             putStrLn "Expecting command after colon. Type :? for help"
-             return state
--        expression -> do
-+        Just expression -> do
-             if null expression 
-               then return state
--              else processExpression expression state
-+              else do
-+                RL.addHistory expression
-+                processExpression expression state
-+        Nothing -> return state
-     loop newState
-   where
-     prompt :: State -> String
diff -rN -u old-helium/patches/05_fixes-for-64bit new-helium/patches/05_fixes-for-64bit
--- old-helium/patches/05_fixes-for-64bit	2014-10-24 07:54:04.219222112 +0000
+++ new-helium/patches/05_fixes-for-64bit	1970-01-01 00:00:00.000000000 +0000
@@ -1,240 +0,0 @@
-# Description: Fix for 64 bit
-# Author: Arjan Oosting <arjan at debian.org>
-Index: helium-1.7~pre20090428/lvm/src/lib/common/Byte.hs
-===================================================================
---- helium-1.7~pre20090428.orig/lvm/src/lib/common/Byte.hs	2009-04-24 16:26:18.000000000 +0200
-+++ helium-1.7~pre20090428/lvm/src/lib/common/Byte.hs	2011-06-02 18:17:28.000000000 +0200
-@@ -27,6 +27,8 @@
-            , stringFromByteList, bytesFromByteList
-            ) where
- 
-+import Data.Word
-+
- import IO       ( IOMode(..) )
- import Special  ( openBinary, writeBinaryChar, readBinary, closeBinary )
- import Standard ( strict )
-@@ -35,7 +37,7 @@
- {----------------------------------------------------------------
-   types
- ----------------------------------------------------------------}
--type Byte   = Char
-+type Byte   = Word8
- 
- data Bytes  = Nil
-             | Cons Byte   !Bytes    -- Byte is not strict since LvmWrite uses it lazily right now.
-@@ -52,19 +54,19 @@
- ----------------------------------------------------------------}
- byteFromInt8 :: Int -> Byte
- byteFromInt8 i
--  = toEnum (mod i 256)
-+  = toEnum i
-   
- intFromByte :: Byte -> Int
- intFromByte b
-   = fromEnum b
- 
- bytesFromString :: String -> Bytes
--bytesFromString s
--  = bytesFromList s
-+bytesFromString 
-+  = bytesFromList . map (toEnum . fromEnum)
- 
- stringFromBytes :: Bytes -> String
--stringFromBytes bs
--  = listFromBytes bs
-+stringFromBytes 
-+  = map (toEnum . fromEnum) . listFromBytes 
- 
- bytesFromInt32 :: Int -> Bytes    -- 4 byte big-endian encoding
- bytesFromInt32 i
-@@ -72,7 +74,7 @@
-         n1 = div n0 256
-         n2 = div n1 256
-         n3 = div n2 256
--        xs = map byteFromInt8 [n3,n2,n1,n0]
-+        xs = map (byteFromInt8 . (flip mod) 256) [n3,n2,n1,n0]
-     in bytesFromList xs
- 
- max32 :: Int
-@@ -131,7 +133,7 @@
-     write h bs
-       = case bs of
-           Nil       -> return ()
--          Cons b bs -> do{ writeBinaryChar h b; write h bs }
-+          Cons b bs -> do{ writeBinaryChar h (toEnum (fromEnum b)); write h bs }
-           Cat bs cs -> do{ write h bs; write h cs }
- 
- 
-@@ -150,7 +152,7 @@
- 
- stringFromByteList :: [Byte] -> String
- stringFromByteList bs
--  = bs
-+  = map (toEnum . fromEnum) bs
- 
- bytesFromByteList :: [Byte] -> Bytes
- bytesFromByteList bs
-@@ -161,7 +163,7 @@
-   = do{ h <- openBinary path ReadMode
-       ; xs <- readBinary h
-       ; closeBinary h
--      ; return xs
-+      ; return (map (toEnum . fromEnum) xs)
-       } `catch` (\exception ->
-             let message =  show exception ++ "\n\nUnable to read from file " ++ show path
-             in do { putStrLn message; exitWith (ExitFailure 1) })
-Index: helium-1.7~pre20090428/lvm/src/lib/common/Id.hs
-===================================================================
---- helium-1.7~pre20090428.orig/lvm/src/lib/common/Id.hs	2005-11-07 12:48:22.000000000 +0100
-+++ helium-1.7~pre20090428/lvm/src/lib/common/Id.hs	2011-06-02 18:17:28.000000000 +0200
-@@ -29,16 +29,19 @@
- import Standard  (foldlStrict)
- import qualified IntMap
- 
-+import Data.Int (Int32)
- import Data.IORef( IORef, newIORef, readIORef, writeIORef )
- import Special ( unsafePerformIO )
- 
- ----------------------------------------------------------------
- -- Types
- ----------------------------------------------------------------
--newtype Id        = Id Int
-+newtype Id        = Id Int32
- 
--intFromId (Id i)  = i
--idFromInt i       = Id i
-+intFromId :: Id -> Int
-+intFromId (Id i)  = fromIntegral i
-+idFromInt :: Int -> Id
-+idFromInt i       = Id (fromIntegral i)
- 
- 
- ----------------------------------------------------------------
-@@ -83,7 +86,7 @@
- -- fresh identifiers without a nice name
- -- but the advantage of a pure interface
- ----------------------------------------------------------------
--newtype NameSupply   = NameSupply (IORef Int)
-+newtype NameSupply   = NameSupply (IORef Int32)
- 
- newNameSupply :: IO NameSupply
- newNameSupply
-@@ -133,24 +136,24 @@
- dummyId :: Id
- dummyId           = Id (0x7FFFFFF1)
- 
--shiftSort, maxSort :: Int
-+shiftSort, maxSort :: Int32
- shiftSort         = 0x00000002
- maxSort           = 0x7F
- 
--maxHash, shiftHash :: Int
-+maxHash, shiftHash :: Int32
- maxHash           = 0xFFF
- shiftHash         = 0x00000100
- 
--shiftIdx, maxIdx :: Int
-+shiftIdx, maxIdx :: Int32
- shiftIdx          = 0x00100000
- maxIdx            = 0x7FF
- 
--shiftUniq,maxUniq,flagUniq :: Int
-+shiftUniq,maxUniq,flagUniq :: Int32
- shiftUniq         = 0x00000100
- maxUniq           = 0x007FFFFF
- flagUniq          = 0x00000001
- 
--extractBits, clearBits, initBits :: Int -> Int -> Int -> Int
-+extractBits, clearBits, initBits :: Int32 -> Int32 -> Int32 -> Int32
- extractBits shift max i
-   = (i `div` shift) `mod` (max+1)
- 
-@@ -192,21 +195,21 @@
- 
- getNameSpace :: Enum a => Id -> a
- getNameSpace (Id i)
--  = toEnum (extractSort i)
-+  = toEnum (fromIntegral (extractSort i))
- 
- setNameSpace :: Enum a => a -> Id -> Id
- setNameSpace sort (Id i)
-   | s > maxSort   = error "Id.setIdSort: sort index out of range"
-   | otherwise     = Id (initSort s (clearSort i))
-   where
--    s    = fromEnum sort
-+    s    = fromIntegral (fromEnum sort)
- 
- 
- lookupId :: Id -> Names -> Maybe String
- lookupId (Id i) (Names fresh map)
-   = let idx = extractIdx i
-         h   = extractHash i
--    in  case IntMap.lookupM map h of
-+    in  case IntMap.lookupM map (fromIntegral h) of
-           Nothing -> Nothing
-           Just xs -> Just (index idx xs)
-   where
-@@ -223,7 +226,7 @@
- insertName' name (Names fr[...incomplete...]



More information about the Pkg-haskell-commits mailing list