diff --git a/src/Debian/Debianize/Finalize.hs b/src/Debian/Debianize/Finalize.hs index f43ba73..3659536 100644 --- a/src/Debian/Debianize/Finalize.hs +++ b/src/Debian/Debianize/Finalize.hs @@ -62,6 +62,9 @@ import System.FilePath ((<.>), (), makeRelative, splitFileName, takeDirectory import System.IO (hPutStrLn, stderr) import Text.Parsec.Rfc2822 (NameAddr(..)) import Distribution.Pretty (Pretty(pretty)) +#if MIN_VERSION_Cabal(3,14,0) +import Distribution.Utils.Path (interpretSymbolicPath) +#endif -- | @debianize customize@ initializes the CabalT state from the -- environment and the cabal package description in (and possibly the @@ -582,7 +585,12 @@ makeUtilsPackage pkgDesc hc = installedExec = Set.unions (Map.elems installedExecMap) prefixPath <- dataTop - let dataFilePaths = Set.fromList (zip (List.map (prefixPath ) (Cabal.dataFiles pkgDesc)) (Cabal.dataFiles pkgDesc)) :: Set (FilePath, FilePath) +#if MIN_VERSION_Cabal(3,14,0) + let dFpD = List.map interpretSymbolicPath (Cabal.dataFiles pkgDesc) +#else + let dFpD = Cabal.dataFiles pkgDesc +#endif + dataFilePaths = Set.fromList (zip (List.map (prefixPath ) dFpD) dFpD) :: Set (FilePath, FilePath) execFilePaths :: Set FilePath execFilePaths = Set.map (unUnqualComponentName . Cabal.exeName) (Set.filter (Cabal.buildable . Cabal.buildInfo) (Set.fromList (Cabal.executables pkgDesc))) :: Set FilePath let availableData = Set.union installedData dataFilePaths diff --git a/src/Debian/Debianize/InputCabal.hs b/src/Debian/Debianize/InputCabal.hs index cb44128..9f09b70 100644 --- a/src/Debian/Debianize/InputCabal.hs +++ b/src/Debian/Debianize/InputCabal.hs @@ -28,6 +28,7 @@ import Distribution.PackageDescription.Parsec (readGenericPackageDescription) import Distribution.Types.ComponentRequestedSpec (ComponentRequestedSpec(ComponentRequestedSpec)) #if MIN_VERSION_Cabal(3,14,0) import Distribution.Simple.Utils (defaultPackageDescCwd, die', setupMessage) +import Distribution.Utils.Path (relativeSymbolicPath) #else import Distribution.Simple.Utils (defaultPackageDesc, die', setupMessage) #endif @@ -59,7 +60,7 @@ inputCabalization flags = -- and from that create a finalized PackageDescription for the -- given CompilerId. #if MIN_VERSION_Cabal(3,14,0) - genPkgDesc <- liftIO $ defaultPackageDescCwd vb >>= readGenericPackageDescription vb None + genPkgDesc <- liftIO $ defaultPackageDescCwd vb >>= readGenericPackageDescription vb Nothing . relativeSymbolicPath #else genPkgDesc <- liftIO $ defaultPackageDesc vb >>= readGenericPackageDescription vb #endif diff --git a/src/Debian/Debianize/InputDebian.hs b/src/Debian/Debianize/InputDebian.hs index fd5e2f2..ed9e70e 100644 --- a/src/Debian/Debianize/InputDebian.hs +++ b/src/Debian/Debianize/InputDebian.hs @@ -1,4 +1,5 @@ -- | Read an existing Debianization from a directory file. +{-# LANGUAGE CPP #-} {-# LANGUAGE DeriveDataTypeable, FlexibleInstances, ScopedTypeVariables, TypeSynonymInstances #-} {-# OPTIONS_GHC -Wall -fno-warn-orphans #-} module Debian.Debianize.InputDebian @@ -38,6 +39,9 @@ import Debian.Relation (BinPkgName(..), parseRelations, Relations, SrcPkgName(.. --import Debug.Trace (trace) import Distribution.Package (PackageIdentifier(..), unPackageName) import qualified Distribution.PackageDescription as Cabal (dataDir, PackageDescription(package)) +#if MIN_VERSION_Cabal(3,14,0) +import Distribution.Utils.Path (interpretSymbolicPath) +#endif import Prelude hiding (break, lines, log, null, readFile, sum, words) import System.Directory (doesFileExist) import System.FilePath ((), dropExtension, takeExtension) @@ -298,6 +302,10 @@ dataDest = do dataTop :: Monad m => CabalT m FilePath dataTop = do d <- use packageDescription +#if MIN_VERSION_Cabal(3,14,0) + return $ case interpretSymbolicPath Nothing (Cabal.dataDir d) of +#else return $ case Cabal.dataDir d of +#endif "" -> "." x -> x