* dropunused: Support --jobs
* Support "onlyingroup=" in preferred content expressions.
* Support --onlyingroup= matching option.
+ * Setup.hs: Stop installing man pages, desktop files, and the
+ git-annex-shell and git-remote-tor-annex symlinks.
+ Anything still relying on that, eg via cabal v1-install will need to
+ change to using make install-home.
-- Joey Hess <id@joeyh.name> Mon, 26 Jun 2023 13:10:40 -0400
-{-# LANGUAGE NamedFieldPuns #-}
{-# OPTIONS_GHC -fno-warn-tabs #-}
{- cabal setup file -}
import Distribution.Simple
-import Distribution.Simple.LocalBuildInfo
-import Distribution.Simple.Setup
-import Distribution.Simple.Utils (installOrdinaryFiles, rawSystemExit)
-import Distribution.PackageDescription (PackageDescription(..))
-import Distribution.Verbosity (Verbosity)
-import System.FilePath
-import Control.Applicative
-import Control.Monad
-import System.Directory
-import Data.List
-import Data.Maybe
-import Control.Exception
-import qualified System.Info
-
-import qualified Build.DesktopFile as DesktopFile
import qualified Build.Configure as Configure
-import Build.Mans (buildMans)
-import Utility.SafeCommand
main :: IO ()
main = defaultMainWithHooks simpleUserHooks
{ preConf = \_ _ -> do
Configure.run Configure.tests
return (Nothing, [])
- , postCopy = myPostCopy
}
-
-myPostCopy :: Args -> CopyFlags -> PackageDescription -> LocalBuildInfo -> IO ()
-myPostCopy _ flags pkg lbi = when (System.Info.os /= "mingw32") $ do
- installGitAnnexLinks dest verbosity pkg lbi
- installManpages dest verbosity pkg lbi
- installDesktopFile dest verbosity pkg lbi
- where
- dest = fromFlag $ copyDest flags
- verbosity = fromFlag $ copyVerbosity flags
-
-installGitAnnexLinks :: CopyDest -> Verbosity -> PackageDescription -> LocalBuildInfo -> IO ()
-installGitAnnexLinks copyDest verbosity pkg lbi = do
- rawSystemExit verbosity "ln"
- ["-sf", "git-annex", dstBinDir </> "git-annex-shell"]
- rawSystemExit verbosity "ln"
- ["-sf", "git-annex", dstBinDir </> "git-remote-tor-annex"]
- where
- dstBinDir = bindir $ absoluteInstallDirs pkg lbi copyDest
-
-{- See http://www.haskell.org/haskellwiki/Cabal/Developer-FAQ#Installing_manpages -}
-installManpages :: CopyDest -> Verbosity -> PackageDescription -> LocalBuildInfo -> IO ()
-installManpages copyDest verbosity pkg lbi =
- installOrdinaryFiles verbosity dstManDir =<< srcManpages
- where
- dstManDir = mandir (absoluteInstallDirs pkg lbi copyDest) </> "man1"
- -- If mdwn2man fails, perhaps because perl is not available,
- -- we just skip installing man pages.
- srcManpages = zip (repeat "man") . map takeFileName . catMaybes
- <$> buildMans
-
-installDesktopFile :: CopyDest -> Verbosity -> PackageDescription -> LocalBuildInfo -> IO ()
-installDesktopFile copyDest _verbosity pkg lbi
- | progfile copyDest == progfile NoCopyDest =
- DesktopFile.installUser (progfile copyDest)
- `catch` installerror
- | otherwise = return ()
- where
- progfile cd = bindir (absoluteInstallDirs pkg lbi cd) </> "git-annex"
- installerror :: SomeException -> IO ()
- installerror e = putStrLn ("Warning: Installation of desktop integration files did not succeed (" ++ show e ++ "); skipping.")
location: git://git-annex.branchable.com/
custom-setup
- Setup-Depends: base (>= 4.11.1.0 && < 5.0), split, unix-compat (< 0.7),
- filepath, exceptions, bytestring, IfElse, data-default,
+ Setup-Depends: base (>= 4.11.1.0 && < 5.0), split,
+ filepath, exceptions, bytestring,
filepath-bytestring (>= 1.4.2.1.4),
process (>= 1.6.3),
time (>= 1.5.0),
directory (>= 1.2.7.0),
- async, utf8-string, transformers, Cabal (< 4.0)
+ async, Cabal (< 4.0)
Executable git-annex
Main-Is: git-annex.hs