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. Which was added back in 2019 in
6491b62614
because cabal new-build
(now the default) already didn't use Setup in a way that let its
installation of those things work.
Notably this means Setup does not need to depend on unix-compat, which is
useful because in 0.7 it removed System.PosixCompat.User, which Setup
needed to determine where to install the desktop files. See
https://github.com/haskell-pkg-janitors/unix-compat/issues/3
This commit is contained in:
parent
fa92383993
commit
393275c105
3 changed files with 7 additions and 62 deletions
|
@ -30,6 +30,10 @@ git-annex (10.20230627) UNRELEASED; urgency=medium
|
||||||
* dropunused: Support --jobs
|
* dropunused: Support --jobs
|
||||||
* Support "onlyingroup=" in preferred content expressions.
|
* Support "onlyingroup=" in preferred content expressions.
|
||||||
* Support --onlyingroup= matching option.
|
* 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
|
-- Joey Hess <id@joeyh.name> Mon, 26 Jun 2023 13:10:40 -0400
|
||||||
|
|
||||||
|
|
59
Setup.hs
59
Setup.hs
|
@ -1,72 +1,13 @@
|
||||||
{-# LANGUAGE NamedFieldPuns #-}
|
|
||||||
{-# OPTIONS_GHC -fno-warn-tabs #-}
|
{-# OPTIONS_GHC -fno-warn-tabs #-}
|
||||||
|
|
||||||
{- cabal setup file -}
|
{- cabal setup file -}
|
||||||
|
|
||||||
import Distribution.Simple
|
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 qualified Build.Configure as Configure
|
||||||
import Build.Mans (buildMans)
|
|
||||||
import Utility.SafeCommand
|
|
||||||
|
|
||||||
main :: IO ()
|
main :: IO ()
|
||||||
main = defaultMainWithHooks simpleUserHooks
|
main = defaultMainWithHooks simpleUserHooks
|
||||||
{ preConf = \_ _ -> do
|
{ preConf = \_ _ -> do
|
||||||
Configure.run Configure.tests
|
Configure.run Configure.tests
|
||||||
return (Nothing, [])
|
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.")
|
|
||||||
|
|
|
@ -299,13 +299,13 @@ source-repository head
|
||||||
location: git://git-annex.branchable.com/
|
location: git://git-annex.branchable.com/
|
||||||
|
|
||||||
custom-setup
|
custom-setup
|
||||||
Setup-Depends: base (>= 4.11.1.0 && < 5.0), split, unix-compat (< 0.7),
|
Setup-Depends: base (>= 4.11.1.0 && < 5.0), split,
|
||||||
filepath, exceptions, bytestring, IfElse, data-default,
|
filepath, exceptions, bytestring,
|
||||||
filepath-bytestring (>= 1.4.2.1.4),
|
filepath-bytestring (>= 1.4.2.1.4),
|
||||||
process (>= 1.6.3),
|
process (>= 1.6.3),
|
||||||
time (>= 1.5.0),
|
time (>= 1.5.0),
|
||||||
directory (>= 1.2.7.0),
|
directory (>= 1.2.7.0),
|
||||||
async, utf8-string, transformers, Cabal (< 4.0)
|
async, Cabal (< 4.0)
|
||||||
|
|
||||||
Executable git-annex
|
Executable git-annex
|
||||||
Main-Is: git-annex.hs
|
Main-Is: git-annex.hs
|
||||||
|
|
Loading…
Reference in a new issue