[Git][haskell-team/package-plan][master] 3 commits: Use cabal's new-install command
Ilias Tsitsimpis
gitlab at salsa.debian.org
Tue Jul 30 17:22:36 BST 2019
Ilias Tsitsimpis pushed to branch master at Debian Haskell Group / package-plan
Commits:
58dd8dde by Ilias Tsitsimpis at 2019-07-30T15:47:59Z
Use cabal's new-install command
Use cabal's `new-install` command, since the old `install` hangs and
never finishes.
- - - - -
029cac2f by Ilias Tsitsimpis at 2019-07-30T15:49:12Z
Downgrade cabal-install to v2.4.0.0
Downgrade cabal-install to v2.4.0.0, since the newer v2.4.1.0 depends on
Cabal >= 2.4.1.0, but ghc-8.6.5 has Cabal-2.4.0.1.
- - - - -
2be2e402 by Ilias Tsitsimpis at 2019-07-30T16:15:21Z
Ignore zxcvbn-c
Ignore zxcvbn-c which fails with:
zxcvbn-c:setup.Cabal-2.4.0.0 (constraint from maximum version of Cabal used by Setup.hs requires <2.4)
- - - - -
4 changed files:
- packages.txt
- + patches/cabal-install/2.4.0.0/remove-zip-archive
- + patches/cabal-install/2.4.0.0/series
- test-packages.pl
Changes:
=====================================
packages.txt
=====================================
@@ -90,7 +90,7 @@ cabal-debian 4.38.5 binary -f-local-debian key
cabal-doctest 1.0.6
cabal-file-th 0.2.4 ignore # BROKEN: see https://bugs.debian.org/911570
cabal-helper 0.8.1.2 ignore # BROKEN: LTS 12: pretty-show (>=1.8.1)
-cabal-install 2.4.1.0 binary
+cabal-install 2.4.0.0 binary behind
cabal-plan 0.4.0.0
cairo 0.13.5.0
call-stack 0.1.0 notest
@@ -1073,4 +1073,4 @@ zeromq4-haskell 0.7.0 notest
zip-archive 0.4.1
zlib 0.6.2 notest
zlib-bindings 0.1.1.5
-zxcvbn-c 1.0.1
+zxcvbn-c 1.0.1 ignore # constraint from maximum version of Cabal used by Setup.hs requires <2.4
=====================================
patches/cabal-install/2.4.0.0/remove-zip-archive
=====================================
@@ -0,0 +1,200 @@
+From 8217174d13c801d171d5f7e337f4bd77596cc530 Mon Sep 17 00:00:00 2001
+From: Emily Pillmore <emily at kadena.io>
+Date: Fri, 30 Nov 2018 23:06:05 -0500
+Subject: [PATCH] remove zip format code, zip-archive dependency, redundant +
+ unused imports
+
+Index: b/Distribution/Client/CmdSdist.hs
+===================================================================
+--- a/Distribution/Client/CmdSdist.hs
++++ b/Distribution/Client/CmdSdist.hs
+@@ -58,20 +58,17 @@ import Distribution.Verbosity
+
+ import qualified Codec.Archive.Tar as Tar
+ import qualified Codec.Archive.Tar.Entry as Tar
+-import qualified Codec.Archive.Zip as Zip
+ import qualified Codec.Compression.GZip as GZip
+ import Control.Exception
+ ( throwIO )
+ import Control.Monad
+- ( when, forM, forM_ )
++ ( when, forM_ )
+ import Control.Monad.Trans
+ ( liftIO )
+ import Control.Monad.State.Lazy
+ ( StateT, modify, gets, evalStateT )
+ import Control.Monad.Writer.Lazy
+ ( WriterT, tell, execWriterT )
+-import Data.Bits
+- ( shiftL )
+ import qualified Data.ByteString.Char8 as BS
+ import qualified Data.ByteString.Lazy.Char8 as BSL
+ import Data.Either
+@@ -119,8 +116,7 @@ sdistCommand = CommandUI
+ (choiceOpt
+ [ (Flag TargzFormat, ([], ["targz"]),
+ "Produce a '.tar.gz' format archive (default and required for uploading to hackage)")
+- , (Flag ZipFormat, ([], ["zip"]),
+- "Produce a '.zip' format archive")
++ -- ...
+ ]
+ )
+ , option ['o'] ["output-dir", "outputdir"]
+@@ -188,7 +184,6 @@ sdistAction SdistFlags{..} targetStrings
+ ext = case format of
+ SourceList _ -> "list"
+ Archive TargzFormat -> "tar.gz"
+- Archive ZipFormat -> "zip"
+
+ outputPath pkg = case mOutputPath' of
+ Just path
+@@ -274,20 +269,7 @@ packageToSdist verbosity projectRootDir
+ write . normalize . GZip.compress . Tar.write $ entries
+ when (outputFile /= "-") $
+ notice verbosity $ "Wrote tarball sdist to " ++ outputFile ++ "\n"
+- Archive ZipFormat -> do
+- let prefix = prettyShow (packageId pkg)
+- entries <- forM files $ \(perm, file) -> do
+- let perm' = case perm of
+- -- -rwxr-xr-x
+- Exec -> 0o010755 `shiftL` 16
+- -- -rw-r--r--
+- NoExec -> 0o010644 `shiftL` 16
+- contents <- BSL.readFile file
+- return $ (Zip.toEntry (prefix </> file) 0 contents) { Zip.eExternalFileAttributes = perm' }
+- let archive = foldr Zip.addEntryToArchive Zip.emptyArchive entries
+- write (Zip.fromArchive archive)
+- when (outputFile /= "-") $
+- notice verbosity $ "Wrote zip sdist to " ++ outputFile ++ "\n"
++
+ setCurrentDirectory oldPwd
+
+ --
+Index: b/Distribution/Client/DistDirLayout.hs
+===================================================================
+--- a/Distribution/Client/DistDirLayout.hs
++++ b/Distribution/Client/DistDirLayout.hs
+@@ -230,8 +230,7 @@ defaultDistDirLayout projectRoot mdistDi
+ where
+ ext = case format of
+ TargzFormat -> "tar.gz"
+- ZipFormat -> "zip"
+-
++
+ distSdistDirectory = distDirectory </> "sdist"
+
+ distTempDirectory = distDirectory </> "tmp"
+Index: b/Distribution/Client/Setup.hs
+===================================================================
+--- a/Distribution/Client/Setup.hs
++++ b/Distribution/Client/Setup.hs
+@@ -2298,7 +2298,7 @@ data SDistExFlags = SDistExFlags {
+ }
+ deriving (Show, Generic)
+
+-data ArchiveFormat = TargzFormat | ZipFormat -- ...
++data ArchiveFormat = TargzFormat -- ...
+ deriving (Show, Eq)
+
+ defaultSDistExFlags :: SDistExFlags
+@@ -2325,8 +2325,7 @@ sdistCommand = Cabal.sdistCommand {
+ (choiceOpt
+ [ (Flag TargzFormat, ([], ["targz"]),
+ "Produce a '.tar.gz' format archive (default and required for uploading to hackage)")
+- , (Flag ZipFormat, ([], ["zip"]),
+- "Produce a '.zip' format archive")
++ -- ...
+ ])
+ ]
+
+Index: b/Distribution/Client/SrcDist.hs
+===================================================================
+--- a/Distribution/Client/SrcDist.hs
++++ b/Distribution/Client/SrcDist.hs
+@@ -24,15 +24,13 @@ import Distribution.PackageDescription.P
+ ( readGenericPackageDescription )
+ import Distribution.Simple.Utils
+ ( createDirectoryIfMissingVerbose, defaultPackageDesc
+- , warn, die', notice, withTempDirectory )
++ , warn, notice, withTempDirectory )
+ import Distribution.Client.Setup
+ ( SDistFlags(..), SDistExFlags(..), ArchiveFormat(..) )
+ import Distribution.Simple.Setup
+ ( Flag(..), sdistCommand, flagToList, fromFlag, fromFlagOrDefault
+ , defaultSDistFlags )
+ import Distribution.Simple.BuildPaths ( srcPref)
+-import Distribution.Simple.Program (requireProgram, simpleProgram, programPath)
+-import Distribution.Simple.Program.Db (emptyProgramDb)
+ import Distribution.Text ( display )
+ import Distribution.Verbosity (Verbosity, normal, lessVerbose)
+ import Distribution.Version (mkVersion, orLaterVersion, intersectVersionRanges)
+@@ -43,9 +41,7 @@ import Distribution.Compat.Exception
+
+ import System.FilePath ((</>), (<.>))
+ import Control.Monad (when, unless, liftM)
+-import System.Directory (doesFileExist, removeFile, canonicalizePath, getTemporaryDirectory)
+-import System.Process (runProcess, waitForProcess)
+-import System.Exit (ExitCode(..))
++import System.Directory (getTemporaryDirectory)
+ import Control.Exception (IOException, evaluate)
+
+ -- |Create a source distribution.
+@@ -103,7 +99,6 @@ sdist flags exflags = do
+ format = fromFlag (sDistFormat exflags)
+ createArchive = case format of
+ TargzFormat -> createTarGzArchive
+- ZipFormat -> createZipArchive
+
+ tarBallName :: PackageDescription -> String
+ tarBallName = display . packageId
+@@ -117,38 +112,6 @@ createTarGzArchive verbosity pkg tmpDir
+ where
+ tarBallFilePath = targetPref </> tarBallName pkg <.> "tar.gz"
+
+--- | Create a zip archive from a tree of source files.
+-createZipArchive :: Verbosity -> PackageDescription -> FilePath -> FilePath
+- -> IO ()
+-createZipArchive verbosity pkg tmpDir targetPref = do
+- let dir = tarBallName pkg
+- zipfile = targetPref </> dir <.> "zip"
+- (zipProg, _) <- requireProgram verbosity zipProgram emptyProgramDb
+-
+- -- zip has an annoying habit of updating the target rather than creating
+- -- it from scratch. While that might sound like an optimisation, it doesn't
+- -- remove files already in the archive that are no longer present in the
+- -- uncompressed tree.
+- alreadyExists <- doesFileExist zipfile
+- when alreadyExists $ removeFile zipfile
+-
+- -- We call zip with a different CWD, so have to make the path
+- -- absolute. Can't just use 'canonicalizePath zipfile' since this function
+- -- requires its argument to refer to an existing file.
+- zipfileAbs <- fmap (</> dir <.> "zip") . canonicalizePath $ targetPref
+-
+- --TODO: use runProgramInvocation, but has to be able to set CWD
+- hnd <- runProcess (programPath zipProg) ["-q", "-r", zipfileAbs, dir]
+- (Just tmpDir)
+- Nothing Nothing Nothing Nothing
+- exitCode <- waitForProcess hnd
+- unless (exitCode == ExitSuccess) $
+- die' verbosity $ "Generating the zip file failed "
+- ++ "(zip returned exit code " ++ show exitCode ++ ")"
+- notice verbosity $ "Source zip archive created: " ++ zipfile
+- where
+- zipProgram = simpleProgram "zip"
+-
+ -- | List all source files of a given add-source dependency. Exits with error if
+ -- something is wrong (e.g. there is no .cabal file in the given directory).
+ allPackageSourceFiles :: Verbosity -> SetupScriptOptions -> FilePath
+Index: b/cabal-install.cabal
+===================================================================
+--- a/cabal-install.cabal
++++ b/cabal-install.cabal
+@@ -326,7 +326,6 @@ executable cabal
+ zlib >= 0.5.3 && < 0.7,
+ hackage-security >= 0.5.2.2 && < 0.6,
+ text >= 1.2.3 && < 1.3,
+- zip-archive >= 0.3.2.5 && < 0.4,
+ parsec >= 3.1.13.0 && < 3.2
+
+ if flag(native-dns)
=====================================
patches/cabal-install/2.4.0.0/series
=====================================
@@ -0,0 +1 @@
+remove-zip-archive
=====================================
test-packages.pl
=====================================
@@ -377,9 +377,9 @@ for my $group (sort @groups) {
#"-v",
"--config-file",
"$sandboxdir/config",
- "--ghc-pkg-option=--global-package-db=$dbpath",
- "--global",
- "install",
+ "new-install",
+ "--package-db=clear",
+ "--package-db=$dbpath",
"--dry-run",
"--force-reinstall",
"--max-backjumps",
View it on GitLab: https://salsa.debian.org/haskell-team/package-plan/compare/67369b0c900176fe17bc065717470be57e800d1b...2be2e402a0c95c86185b7776e19568e4578a1481
--
View it on GitLab: https://salsa.debian.org/haskell-team/package-plan/compare/67369b0c900176fe17bc065717470be57e800d1b...2be2e402a0c95c86185b7776e19568e4578a1481
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-haskell-commits/attachments/20190730/3907a81d/attachment-0001.html>
More information about the Pkg-haskell-commits
mailing list