Skip to content

Commit 5012bdd

Browse files
committed
Port code to handle the new and improved "SymbolicPath" type in Cabal.
This locks us into Cabal 3.14.x or later since we don't want to mess around with CPP and conditional compilation.
1 parent 14af262 commit 5012bdd

File tree

2 files changed

+8
-8
lines changed

2 files changed

+8
-8
lines changed

cabal2spec.cabal

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: cabal2spec
2-
version: 2.7.1
2+
version: 2.8.1
33
synopsis: Convert Cabal files into rpm spec files
44
description: Convert
55
Cabal files into a
@@ -30,7 +30,7 @@ source-repository head
3030
library
3131
exposed-modules: Cabal2Spec
3232
hs-source-dirs: src
33-
build-depends: base > 4.12 && < 5, Cabal >= 3.8 && < 3.13, filepath, time >= 1.5
33+
build-depends: base > 4.12 && < 5, Cabal >= 3.14 && < 3.15, filepath, time >= 1.5
3434
default-language: Haskell2010
3535

3636
executable cabal2spec

src/Cabal2Spec.hs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import Distribution.Simple.PackageDescription
1515
import Distribution.System
1616
import Distribution.Text
1717
import Distribution.Types.ComponentRequestedSpec
18-
import Distribution.Utils.Path ( getSymbolicPath )
18+
import Distribution.Utils.Path ( getSymbolicPath, makeSymbolicPath )
1919
import Distribution.Utils.ShortText ( fromShortText )
2020
import Distribution.Verbosity
2121
import Distribution.Version
@@ -29,7 +29,7 @@ type CopyrightYear = Int
2929
cabal2spec :: Platform -> CompilerId -> FlagAssignment -> ForceBinary -> RunTests -> Maybe CopyrightYear
3030
-> FilePath -> FilePath -> IO ()
3131
cabal2spec platform compilerId flags forceBinary runTests copyrightYear cabalFile specFile = do
32-
gpd <- readGenericPackageDescription silent cabalFile
32+
gpd <- readGenericPackageDescription silent Nothing (makeSymbolicPath cabalFile)
3333
case finalizePD flags requestedComponents (const True) platform (unknownCompilerInfo compilerId NoAbiTag) [] gpd of
3434
Left missing -> fail ("finalizePD: " ++ show missing)
3535
Right (pd,_) -> createSpecFile specFile pd forceBinary runTests flags copyrightYear
@@ -231,8 +231,8 @@ createSpecFile specFile pkgDesc forceBinary runTests flagAssignment copyrightYea
231231
let licensefiles = map getSymbolicPath (licenseFiles pkgDesc)
232232

233233
-- remove docs from datafiles (#38)
234-
docsUnfiltered <- fmap sort (findDocs (extraSrcFiles pkgDesc ++ extraDocFiles pkgDesc) licensefiles)
235-
let datafiles = dataFiles pkgDesc
234+
docsUnfiltered <- fmap sort (findDocs (map getSymbolicPath (extraSrcFiles pkgDesc) ++ map getSymbolicPath (extraDocFiles pkgDesc)) licensefiles)
235+
let datafiles = map getSymbolicPath (dataFiles pkgDesc)
236236
dupdocs = docsUnfiltered `intersect` datafiles
237237
docs = docsUnfiltered \\ datafiles
238238
unless (null dupdocs) $
@@ -260,8 +260,8 @@ createSpecFile specFile pkgDesc forceBinary runTests flagAssignment copyrightYea
260260

261261
let listDataFiles = unless (null (dataFiles pkgDesc)) $ do
262262
put ("%dir %{_datadir}/" ++ pkg_name ++ "-%{version}")
263-
mapM_ (put . (("%dir %{_datadir}/" ++ pkg_name ++ "-%{version}/")++) . avoidSquareBrackets) (sort (listDirs (dataFiles pkgDesc)))
264-
mapM_ (put . (("%{_datadir}/" ++ pkg_name ++ "-%{version}/")++) . avoidSquareBrackets) (sort (dataFiles pkgDesc))
263+
mapM_ (put . (("%dir %{_datadir}/" ++ pkg_name ++ "-%{version}/")++) . avoidSquareBrackets) (sort (listDirs (map getSymbolicPath (dataFiles pkgDesc))))
264+
mapM_ (put . (("%{_datadir}/" ++ pkg_name ++ "-%{version}/")++) . avoidSquareBrackets) (sort (map getSymbolicPath (dataFiles pkgDesc)))
265265

266266
listDirs :: [FilePath] -> [FilePath]
267267
listDirs = nub . concatMap (map joinPath . drop 1 . inits) . nub . map init . filter (\p -> length p > 1) . map splitDirectories

0 commit comments

Comments
 (0)